{"version":3,"sources":["../../node_modules/regenerator-runtime/runtime.js","../../node_modules/parcel-bundler/src/builtins/bundle-url.js","../../node_modules/parcel-bundler/src/builtins/bundle-loader.js","site.js","../../node_modules/quasar/package.json","../../node_modules/vue/dist/vue.common.prod.js","../../node_modules/vue/dist/vue.common.js","../../node_modules/quasar/src/plugins/Platform.js","../../node_modules/quasar/src/utils/event.js","../../node_modules/quasar/src/utils/debounce.js","../../node_modules/quasar/src/plugins/Screen.js","../../node_modules/quasar/src/plugins/Dark.js","../../node_modules/quasar/src/history.js","../../node_modules/quasar/lang/en-us.js","../../node_modules/quasar/src/lang.js","../../node_modules/quasar/src/utils/colors.js","../../node_modules/quasar/src/utils/private/key-composition.js","../../node_modules/quasar/src/body.js","../../node_modules/quasar/icon-set/material-icons.js","../../node_modules/quasar/src/icon-set.js","../../node_modules/quasar/src/install.js","../../node_modules/quasar/src/ssr-update.js","../../node_modules/quasar/src/vue-plugin.js","../../node_modules/quasar/src/utils/format.js","../../node_modules/quasar/src/utils/private/cache.js","../../node_modules/quasar/src/mixins/attrs.js","../../node_modules/quasar/src/components/ajax-bar/QAjaxBar.js","../../node_modules/quasar/src/components/ajax-bar/index.js","../../node_modules/quasar/src/mixins/size.js","../../node_modules/quasar/src/mixins/tag.js","../../node_modules/quasar/src/mixins/listeners.js","../../node_modules/quasar/src/utils/private/slot.js","../../node_modules/quasar/src/components/icon/QIcon.js","../../node_modules/quasar/src/components/avatar/QAvatar.js","../../node_modules/quasar/src/components/avatar/index.js","../../node_modules/quasar/src/components/badge/QBadge.js","../../node_modules/quasar/src/components/badge/index.js","../../node_modules/quasar/src/mixins/dark.js","../../node_modules/quasar/src/components/banner/QBanner.js","../../node_modules/quasar/src/components/banner/index.js","../../node_modules/quasar/src/components/bar/QBar.js","../../node_modules/quasar/src/components/bar/index.js","../../node_modules/quasar/src/mixins/align.js","../../node_modules/quasar/src/components/breadcrumbs/QBreadcrumbs.js","../../node_modules/quasar/src/mixins/router-link.js","../../node_modules/quasar/src/components/breadcrumbs/QBreadcrumbsEl.js","../../node_modules/quasar/src/components/breadcrumbs/index.js","../../node_modules/quasar/src/components/spinner/spinner-mixin.js","../../node_modules/quasar/src/components/spinner/QSpinner.js","../../node_modules/quasar/src/utils/dom.js","../../node_modules/quasar/src/utils/throttle.js","../../node_modules/quasar/src/directives/Ripple.js","../../node_modules/quasar/src/mixins/ripple.js","../../node_modules/quasar/src/mixins/btn.js","../../node_modules/quasar/src/components/btn/QBtn.js","../../node_modules/quasar/src/components/btn/index.js","../../node_modules/quasar/src/mixins/transition.js","../../node_modules/quasar/src/components/btn-group/QBtnGroup.js","../../node_modules/quasar/src/utils/private/selection.js","../../node_modules/quasar/src/mixins/anchor.js","../../node_modules/quasar/src/mixins/timeout.js","../../node_modules/quasar/src/mixins/model-toggle.js","../../node_modules/quasar/src/utils/private/focus-manager.js","../../node_modules/quasar/src/mixins/portal.js","../../node_modules/quasar/src/utils/private/vm.js","../../node_modules/quasar/src/components/menu/ClickOutside.js","../../node_modules/quasar/src/utils/scroll.js","../../node_modules/quasar/src/utils/private/escape-key.js","../../node_modules/quasar/src/utils/private/position-engine.js","../../node_modules/quasar/src/components/menu/QMenu.js","../../node_modules/quasar/src/utils/uid.js","../../node_modules/quasar/src/components/btn-dropdown/QBtnDropdown.js","../../node_modules/quasar/src/components/btn-dropdown/index.js","../../node_modules/quasar/src/components/btn-group/index.js","../../node_modules/quasar/src/mixins/form.js","../../node_modules/quasar/src/components/btn-toggle/QBtnToggle.js","../../node_modules/quasar/src/components/btn-toggle/index.js","../../node_modules/quasar/src/components/card/QCard.js","../../node_modules/quasar/src/components/card/QCardSection.js","../../node_modules/quasar/src/components/card/QCardActions.js","../../node_modules/quasar/src/components/card/index.js","../../node_modules/quasar/src/utils/private/touch.js","../../node_modules/quasar/src/directives/TouchSwipe.js","../../node_modules/quasar/src/mixins/panel.js","../../node_modules/quasar/src/mixins/fullscreen.js","../../node_modules/quasar/src/utils/is.js","../../node_modules/quasar/src/components/carousel/QCarousel.js","../../node_modules/quasar/src/components/carousel/QCarouselSlide.js","../../node_modules/quasar/src/components/carousel/QCarouselControl.js","../../node_modules/quasar/src/components/carousel/index.js","../../node_modules/quasar/src/components/chat/QChatMessage.js","../../node_modules/quasar/src/components/chat/index.js","../../node_modules/quasar/src/mixins/option-size.js","../../node_modules/quasar/src/mixins/refocus-target.js","../../node_modules/quasar/src/mixins/checkbox.js","../../node_modules/quasar/src/components/checkbox/QCheckbox.js","../../node_modules/quasar/src/components/checkbox/index.js","../../node_modules/quasar/src/components/chip/QChip.js","../../node_modules/quasar/src/components/chip/index.js","../../node_modules/quasar/src/components/circular-progress/QCircularProgress.js","../../node_modules/quasar/src/components/circular-progress/index.js","../../node_modules/quasar/src/utils/patterns.js","../../node_modules/quasar/src/directives/TouchPan.js","../../node_modules/quasar/src/components/slider/slider-utils.js","../../node_modules/quasar/src/components/slider/QSlider.js","../../node_modules/quasar/src/mixins/can-render.js","../../node_modules/quasar/src/components/resize-observer/QResizeObserver.js","../../node_modules/quasar/src/utils/private/inject-obj-prop.js","../../node_modules/quasar/src/components/tabs/QTabs.js","../../node_modules/quasar/src/components/tabs/QTab.js","../../node_modules/quasar/src/components/tab-panels/QTabPanels.js","../../node_modules/quasar/src/components/tab-panels/QTabPanel.js","../../node_modules/quasar/src/components/color/QColor.js","../../node_modules/quasar/src/components/color/index.js","../../node_modules/quasar/src/utils/private/date-persian.js","../../node_modules/quasar/src/mixins/datetime.js","../../node_modules/quasar/src/utils/date.js","../../node_modules/quasar/src/components/date/QDate.js","../../node_modules/quasar/src/components/date/index.js","../../node_modules/quasar/src/mixins/history.js","../../node_modules/quasar/src/mixins/prevent-scroll.js","../../node_modules/quasar/src/components/dialog/QDialog.js","../../node_modules/quasar/src/components/dialog/index.js","../../node_modules/quasar/src/components/drawer/QDrawer.js","../../node_modules/quasar/src/components/drawer/index.js","../../node_modules/quasar/src/components/tooltip/QTooltip.js","../../node_modules/quasar/src/components/item/QList.js","../../node_modules/quasar/src/components/item/QItem.js","../../node_modules/quasar/src/components/item/QItemSection.js","../../node_modules/quasar/src/components/editor/editor-utils.js","../../node_modules/quasar/src/components/editor/editor-caret.js","../../node_modules/quasar/src/utils/extend.js","../../node_modules/quasar/src/components/editor/QEditor.js","../../node_modules/quasar/src/components/editor/index.js","../../node_modules/quasar/src/components/item/QItemLabel.js","../../node_modules/quasar/src/components/slide-transition/QSlideTransition.js","../../node_modules/quasar/src/components/separator/QSeparator.js","../../node_modules/quasar/src/components/expansion-item/QExpansionItem.js","../../node_modules/quasar/src/components/expansion-item/index.js","../../node_modules/quasar/src/mixins/fab.js","../../node_modules/quasar/src/components/fab/QFab.js","../../node_modules/quasar/src/components/fab/QFabAction.js","../../node_modules/quasar/src/components/fab/index.js","../../node_modules/quasar/src/mixins/validate.js","../../node_modules/quasar/src/components/field/QField.js","../../node_modules/quasar/src/components/field/index.js","../../node_modules/quasar/src/mixins/file.js","../../node_modules/quasar/src/components/file/QFile.js","../../node_modules/quasar/src/components/file/index.js","../../node_modules/quasar/src/components/footer/QFooter.js","../../node_modules/quasar/src/components/footer/index.js","../../node_modules/quasar/src/components/form/QForm.js","../../node_modules/quasar/src/components/form/index.js","../../node_modules/quasar/src/components/header/QHeader.js","../../node_modules/quasar/src/components/header/index.js","../../node_modules/quasar/src/components/icon/index.js","../../node_modules/quasar/src/mixins/ratio.js","../../node_modules/quasar/src/components/img/QImg.js","../../node_modules/quasar/src/components/img/index.js","../../node_modules/quasar/src/components/infinite-scroll/QInfiniteScroll.js","../../node_modules/quasar/src/components/infinite-scroll/index.js","../../node_modules/quasar/src/components/inner-loading/QInnerLoading.js","../../node_modules/quasar/src/components/inner-loading/index.js","../../node_modules/quasar/src/mixins/mask.js","../../node_modules/quasar/src/mixins/composition.js","../../node_modules/quasar/src/components/input/QInput.js","../../node_modules/quasar/src/components/input/index.js","../../node_modules/quasar/src/directives/Intersection.js","../../node_modules/quasar/src/components/intersection/QIntersection.js","../../node_modules/quasar/src/components/intersection/index.js","../../node_modules/quasar/src/components/item/index.js","../../node_modules/quasar/src/components/knob/QKnob.js","../../node_modules/quasar/src/components/knob/index.js","../../node_modules/quasar/src/components/scroll-observer/QScrollObserver.js","../../node_modules/quasar/src/components/layout/QLayout.js","../../node_modules/quasar/src/components/layout/index.js","../../node_modules/quasar/src/components/markup-table/QMarkupTable.js","../../node_modules/quasar/src/components/markup-table/index.js","../../node_modules/quasar/src/components/menu/index.js","../../node_modules/quasar/src/components/no-ssr/QNoSsr.js","../../node_modules/quasar/src/components/no-ssr/index.js","../../node_modules/quasar/src/components/radio/QRadio.js","../../node_modules/quasar/src/components/toggle/QToggle.js","../../node_modules/quasar/src/components/option-group/QOptionGroup.js","../../node_modules/quasar/src/components/option-group/index.js","../../node_modules/quasar/src/components/page/QPage.js","../../node_modules/quasar/src/components/page/QPageContainer.js","../../node_modules/quasar/src/components/page/index.js","../../node_modules/quasar/src/components/page-sticky/QPageSticky.js","../../node_modules/quasar/src/components/page-scroller/QPageScroller.js","../../node_modules/quasar/src/components/page-scroller/index.js","../../node_modules/quasar/src/components/page-sticky/index.js","../../node_modules/quasar/src/components/pagination/QPagination.js","../../node_modules/quasar/src/components/pagination/index.js","../../node_modules/quasar/src/utils/frame-debounce.js","../../node_modules/quasar/src/components/parallax/QParallax.js","../../node_modules/quasar/src/components/parallax/index.js","../../node_modules/quasar/src/utils/clone.js","../../node_modules/quasar/src/components/popup-edit/QPopupEdit.js","../../node_modules/quasar/src/components/popup-edit/index.js","../../node_modules/quasar/src/components/popup-proxy/QPopupProxy.js","../../node_modules/quasar/src/components/popup-proxy/index.js","../../node_modules/quasar/src/components/linear-progress/QLinearProgress.js","../../node_modules/quasar/src/components/linear-progress/index.js","../../node_modules/quasar/src/components/pull-to-refresh/QPullToRefresh.js","../../node_modules/quasar/src/components/pull-to-refresh/index.js","../../node_modules/quasar/src/components/radio/index.js","../../node_modules/quasar/src/components/range/QRange.js","../../node_modules/quasar/src/components/range/index.js","../../node_modules/quasar/src/components/rating/QRating.js","../../node_modules/quasar/src/components/rating/index.js","../../node_modules/quasar/src/components/resize-observer/index.js","../../node_modules/quasar/src/components/responsive/QResponsive.js","../../node_modules/quasar/src/components/responsive/index.js","../../node_modules/quasar/src/components/scroll-area/QScrollArea.js","../../node_modules/quasar/src/components/scroll-area/index.js","../../node_modules/quasar/src/components/scroll-observer/index.js","../../node_modules/quasar/src/mixins/virtual-scroll.js","../../node_modules/quasar/src/components/select/QSelect.js","../../node_modules/quasar/src/components/select/index.js","../../node_modules/quasar/src/components/separator/index.js","../../node_modules/quasar/src/components/skeleton/QSkeleton.js","../../node_modules/quasar/src/components/skeleton/index.js","../../node_modules/quasar/src/components/slide-item/QSlideItem.js","../../node_modules/quasar/src/components/slide-item/index.js","../../node_modules/quasar/src/components/slide-transition/index.js","../../node_modules/quasar/src/components/slider/index.js","../../node_modules/quasar/src/components/space/QSpace.js","../../node_modules/quasar/src/components/space/index.js","../../node_modules/quasar/src/components/spinner/QSpinnerAudio.js","../../node_modules/quasar/src/components/spinner/QSpinnerBall.js","../../node_modules/quasar/src/components/spinner/QSpinnerBars.js","../../node_modules/quasar/src/components/spinner/QSpinnerBox.js","../../node_modules/quasar/src/components/spinner/QSpinnerClock.js","../../node_modules/quasar/src/components/spinner/QSpinnerComment.js","../../node_modules/quasar/src/components/spinner/QSpinnerCube.js","../../node_modules/quasar/src/components/spinner/QSpinnerDots.js","../../node_modules/quasar/src/components/spinner/QSpinnerFacebook.js","../../node_modules/quasar/src/components/spinner/QSpinnerGears.js","../../node_modules/quasar/src/components/spinner/QSpinnerGrid.js","../../node_modules/quasar/src/components/spinner/QSpinnerHearts.js","../../node_modules/quasar/src/components/spinner/QSpinnerHourglass.js","../../node_modules/quasar/src/components/spinner/QSpinnerInfinity.js","../../node_modules/quasar/src/components/spinner/QSpinnerIos.js","../../node_modules/quasar/src/components/spinner/QSpinnerOrbit.js","../../node_modules/quasar/src/components/spinner/QSpinnerOval.js","../../node_modules/quasar/src/components/spinner/QSpinnerPie.js","../../node_modules/quasar/src/components/spinner/QSpinnerPuff.js","../../node_modules/quasar/src/components/spinner/QSpinnerRadio.js","../../node_modules/quasar/src/components/spinner/QSpinnerRings.js","../../node_modules/quasar/src/components/spinner/QSpinnerTail.js","../../node_modules/quasar/src/components/spinner/index.js","../../node_modules/quasar/src/components/splitter/QSplitter.js","../../node_modules/quasar/src/components/splitter/index.js","../../node_modules/quasar/src/components/stepper/StepHeader.js","../../node_modules/quasar/src/components/stepper/QStep.js","../../node_modules/quasar/src/components/stepper/QStepper.js","../../node_modules/quasar/src/components/stepper/QStepperNavigation.js","../../node_modules/quasar/src/components/stepper/index.js","../../node_modules/quasar/src/components/tab-panels/index.js","../../node_modules/quasar/src/components/table/table-top.js","../../node_modules/quasar/src/components/table/QTh.js","../../node_modules/quasar/src/components/table/table-header.js","../../node_modules/quasar/src/components/table/table-body.js","../../node_modules/quasar/src/components/table/table-bottom.js","../../node_modules/quasar/src/components/table/table-grid.js","../../node_modules/quasar/src/components/table/get-table-middle.js","../../node_modules/quasar/src/components/virtual-scroll/QVirtualScroll.js","../../node_modules/quasar/src/utils/private/sort.js","../../node_modules/quasar/src/components/table/table-sort.js","../../node_modules/quasar/src/components/table/table-filter.js","../../node_modules/quasar/src/components/table/table-pagination.js","../../node_modules/quasar/src/components/table/table-row-selection.js","../../node_modules/quasar/src/components/table/table-row-expand.js","../../node_modules/quasar/src/components/table/table-column-selection.js","../../node_modules/quasar/src/components/table/QTable.js","../../node_modules/quasar/src/components/table/QTr.js","../../node_modules/quasar/src/components/table/QTd.js","../../node_modules/quasar/src/components/table/index.js","../../node_modules/quasar/src/components/tabs/QRouteTab.js","../../node_modules/quasar/src/components/tabs/index.js","../../node_modules/quasar/src/components/time/QTime.js","../../node_modules/quasar/src/components/time/index.js","../../node_modules/quasar/src/components/timeline/QTimeline.js","../../node_modules/quasar/src/components/timeline/QTimelineEntry.js","../../node_modules/quasar/src/components/timeline/index.js","../../node_modules/quasar/src/components/toggle/index.js","../../node_modules/quasar/src/components/toolbar/QToolbar.js","../../node_modules/quasar/src/components/toolbar/QToolbarTitle.js","../../node_modules/quasar/src/components/toolbar/index.js","../../node_modules/quasar/src/components/tooltip/index.js","../../node_modules/quasar/src/components/tree/QTree.js","../../node_modules/quasar/src/components/tree/index.js","../../node_modules/quasar/src/components/uploader/QUploaderBase.js","../../node_modules/quasar/src/components/uploader/uploader-xhr-mixin.js","../../node_modules/quasar/src/components/uploader/QUploader.js","../../node_modules/quasar/src/components/uploader/QUploaderAddTrigger.js","../../node_modules/quasar/src/components/uploader/index.js","../../node_modules/quasar/src/components/video/QVideo.js","../../node_modules/quasar/src/components/video/index.js","../../node_modules/quasar/src/components/virtual-scroll/index.js","../../node_modules/quasar/src/components.js","../../node_modules/quasar/src/directives/ClosePopup.js","../../node_modules/quasar/src/directives/GoBack.js","../../node_modules/quasar/src/utils/morph.js","../../node_modules/quasar/src/directives/Morph.js","../../node_modules/quasar/src/directives/Mutation.js","../../node_modules/quasar/src/directives/ScrollFire.js","../../node_modules/quasar/src/directives/Scroll.js","../../node_modules/quasar/src/directives/TouchHold.js","../../node_modules/quasar/src/directives/TouchRepeat.js","../../node_modules/quasar/src/directives.js","../../node_modules/quasar/src/plugins/AddressbarColor.js","../../node_modules/quasar/src/plugins/AppFullscreen.js","../../node_modules/quasar/src/plugins/AppVisibility.js","../../node_modules/quasar/src/components/dialog-bottom-sheet/BottomSheet.js","../../node_modules/quasar/src/utils/private/global-dialog.js","../../node_modules/quasar/src/plugins/BottomSheet.js","../../node_modules/quasar/src/plugins/Cookies.js","../../node_modules/quasar/src/components/dialog-plugin/DialogPlugin.js","../../node_modules/quasar/src/plugins/Dialog.js","../../node_modules/quasar/src/plugins/LoadingBar.js","../../node_modules/quasar/src/plugins/Loading.js","../../node_modules/quasar/src/plugins/Meta.js","../../node_modules/quasar/src/plugins/Notify.js","../../node_modules/quasar/src/utils/private/web-storage.js","../../node_modules/quasar/src/plugins/LocalStorage.js","../../node_modules/quasar/src/plugins/SessionStorage.js","../../node_modules/quasar/src/plugins.js","../../node_modules/quasar/src/utils/copy-to-clipboard.js","../../node_modules/quasar/src/utils/export-file.js","../../node_modules/quasar/src/utils/open-url.js","../../node_modules/quasar/src/utils/run-sequential-promises.js","../../node_modules/quasar/src/utils.js","../../node_modules/quasar/src/index.esm.js","../../node_modules/linq-es2015/lib/generators.js","../../node_modules/linq-es2015/lib/utilities.js","../../node_modules/linq-es2015/lib/iterators.js","../../node_modules/linq-es2015/lib/linq.js","../../node_modules/parcel-bundler/src/builtins/loaders/browser/js-loader.js","../../node_modules/parcel-bundler/src/builtins/loaders/browser/css-loader.js"],"names":["bundleURL","getBundleURLCached","getBundleURL","Error","err","matches","stack","match","getBaseURL","url","replace","exports","require","loadBundlesLazy","bundles","Array","isArray","id","length","Promise","resolve","code","LazyPromise","reject","loadBundles","slice","then","all","map","loadBundle","bundleLoaders","registerBundleLoader","type","loader","module","load","register","bundle","substring","lastIndexOf","toLowerCase","bundleLoader","resolved","catch","e","executor","promise","prototype","onSuccess","onError","_typeof","o","Symbol","iterator","constructor","_regeneratorRuntime","t","r","Object","n","hasOwnProperty","defineProperty","value","i","a","c","asyncIterator","u","toStringTag","define","enumerable","configurable","writable","wrap","Generator","create","Context","makeInvokeMethod","tryCatch","arg","call","h","l","f","s","y","GeneratorFunction","GeneratorFunctionPrototype","p","d","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","__await","callInvokeWithMethodAndArg","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","return","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","displayName","isGeneratorFunction","name","mark","setPrototypeOf","__proto__","awrap","async","keys","reverse","pop","prev","charAt","stop","rval","handle","complete","finish","_catch","delegateYield","asyncGeneratorStep","gen","_next","_throw","key","info","error","_asyncToGenerator","fn","self","args","arguments","apply","undefined","init","_init","_callee","_callee$","_context","version","description","typings","main","files","scripts","clean","dev","build","test","lint","repository","keywords","author","email","license","bugs","funding","homepage","devDependencies","eslint","recast","rimraf","rollup","table","vetur","tags","attributes","browserslist","engines","node","npm","yarn","_vue","_interopRequireDefault","obj","__esModule","default","isSSR","window","fromSSR","onSSR","iosEmulated","iosCorrection","getMatch","userAgent","platformMatch","exec","indexOf","browser","versionNumber","platform","getPlatformMatch","hasTouch","navigator","maxTouchPoints","applyIosCorrection","is","mac","desktop","Math","min","innerHeight","innerWidth","assign","mobile","ios","getPlatform","UA","matched","parseInt","knownMobiles","android","bb","blackberry","ipad","iphone","ipod","kindle","playbook","silk","edga","edgios","edge","crios","chrome","fxios","firefox","winphone","opr","safari","vivaldi","webkit","rv","iemobile","ie","opera","electron","document","location","href","bex","Capacitor","capacitor","nativeMobile","nativeMobileWrapper","_cordovaNative","cordova","querySelector","vendor","ssrClient","has","touch","webStorage","within","iframe","client","localStorage","top","Platform","install","$q","queues","server","q","ctx","parseSSR","ssr","takeover","Vue","util","defineReactive","req","headers","_default","listenOpts","hasPassive","passiveCapture","notPassiveCapture","opts","get","passive","notPassive","capture","addEventListener","removeEventListener","noop","leftClick","button","middleClick","rightClick","position","touches","changedTouches","targetTouches","clientY","left","clientX","getEventPath","path","composedPath","el","target","tagName","parentElement","LINE_HEIGHT","PAGE_HEIGHT","getMouseWheelDistance","x","deltaX","deltaY","deltaMode","multiplier","shiftKey","stopPropagation","prevent","cancelable","preventDefault","stopAndPrevent","stopAndPreventClick","evt","handler","preventDraggable","status","__dragPrevented","querySelectorAll","bubbles","CustomEvent","createEvent","initEvent","addEvt","targetName","events","concat","cleanEvt","wait","immediate","timeout","debounced","clearTimeout","setTimeout","later","cancel","_Platform","_event","_debounce","SIZE_LIST","width","height","sizes","sm","md","lg","xl","lt","gt","xs","setSizes","setDebounce","cfg","screen","visualViewport","scrollingElement","documentElement","getSize","max","clientWidth","clientHeight","scale","classes","bodyClasses","update","force","w","body","classList","remove","add","updateEvt","updateSizes","updateDebounce","deb","start","style","getComputedStyle","getPropertyValue","delay","debounce","Dark","isActive","mode","dark","set","val","Q_BODY_CLASSES","toggle","initialVal","ssrSet","__fromSSR","originalSet","__media","matchMedia","__updateMedia","addListener","removeListener","getTrue","filterInvalidPath","normalizeExitPath","startsWith","substr","endsWith","getShouldExitFn","backButtonExit","exitPaths","filter","includes","hash","__history","qConf","backButton","Plugins","App","entry","condition","index","splice","shouldExit","backHandler","app","exitApp","history","back","isoName","nativeName","label","clear","ok","close","select","search","refresh","expand","collapse","date","days","split","daysShort","months","monthsShort","firstDayOfWeek","format24h","pluralDay","noData","noResults","loading","selectedRecords","rows","recordsPerPage","allRows","pagination","end","total","columns","editor","bold","italic","strikethrough","underline","unorderedList","orderedList","subscript","superscript","hyperlink","toggleFullscreen","quote","center","right","justify","print","outdent","indent","removeFormat","formatting","fontSize","align","hr","undo","redo","heading1","heading2","heading3","heading4","heading5","heading6","paragraph","size1","size2","size3","size4","size5","size6","size7","defaultFont","viewSource","tree","noNodes","_enUs","getLocale","language","languages","browserLanguage","userLanguage","systemLanguage","Plugin","lang","initialLang","defaultLang","langObject","ssrContext","rtl","console","dir","attrs","Q_HTML_ATTRS","Q_PREV_LANG","setAttribute","props","reRGBA","rgbToHex","b","alpha","round","toString","rgbToString","hexToRgb","hex","num","hsvToRgb","floor","rgbToHsv","textToRgb","str","color","m","rgb","parseFloat","lighten","percent","abs","R","G","B","luminosity","pow","brightness","blend","fgColor","bgColor","rgb1","r1","g1","b1","a1","rgb2","r2","g2","b2","a2","ret","changeAlpha","offset","setBrand","element","Element","setProperty","getBrand","trim","getPaletteColor","colorName","createElement","className","appendChild","result","stringToRgb","lastKeyCompositionStatus","onKeyDownComposition","isComposing","shouldIgnoreKey","qKeyEvent","isKeyCode","keyCodes","keyCode","_colors","_keyComposition","getMobilePlatform","getBodyClasses","cls","iosStatusBarPadding","clientUpdate","newCls","setColors","brand","setBodyClasses","bodyClass","join","positive","negative","warning","arrow","up","down","dropdown","chevron","colorPicker","spectrum","tune","palette","pullToRefresh","icon","carousel","navigationIcon","chip","selected","datetime","arrowLeft","arrowRight","now","today","heading","size","font","expansionItem","denseIcon","fab","activeIcon","field","first","last","rating","stepper","active","tabs","arrowUp","firstPage","prevPage","nextPage","lastPage","uploader","upload","removeQueue","removeUploaded","_materialIcons","iconSet","initialSet","materialIcons","setObject","def","_package","_interopRequireWildcard","_Screen","_Dark","_history","_lang","_body","_iconSet","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","autoInstalled","Screen","config","__qInstalled","freeze","Body","History","Lang","IconSet","mixin","beforeCreate","$root","$options","components","component","options","directives","unbind","directive","plugins","param","_install","mounted","run","Q_HEAD_TAGS","Q_BODY_ATTRS","Q_BODY_TAGS","mixins","_ssrUpdate","ssrUpdate","units","humanStorageSize","bytes","toFixed","capitalize","toUpperCase","between","normalizeToInterval","pad","char","vm","k","cacheWithFn","getPropCacheMixin","propName","proxyPropName","data","source","prop","watch","oldObj","$delete","$set","_cache","ariaHidden","iconAsButton","tabindex","role","_format","_attrs","xhr","XMLHttpRequest","open","positionValues","highjackCount","translate","pos","horiz","transform","inc","amount","random","highjackAjax","stackEntry","_","stopStack","loadStart","hijackFilter","getHijackFilter","once","loadEnd","restoreAjax","extend","String","validator","Boolean","skipHijack","Function","calls","progress","onScreen","animate","computed","horizontal","sizeProp","opacity","methods","speed","oldSpeed","newSpeed","__work","timer","$emit","increment","hijacked","beforeDestroy","render","class","_QAjaxBar","getSizeMixin","sizeStyle","tag","slot","slotName","otherwise","$scopedSlots","uniqueSlot","mergeSlot","mergeSlotSafely","_size","_tag","_listeners","_slot","defaultViewBox","sameFn","ionFn","libMap","matMap","o_","r_","s_","symMap","sym_o_","sym_r_","sym_s_","libRE","RegExp","matRE","symRE","mRE","imgRE","svgUseRE","ionRE","faRE","ListenersMixin","SizeMixin","TagMixin","none","iconMapFn","res","content","viewBox","svg","nodes","$createElement","img","src","svguse","on","qListeners","focusable","_QIcon","textColor","square","rounded","contentStyle","QIcon","staticClass","_QAvatar","floating","transparent","multiLine","outline","Number","verticalAlign","text","_QBadge","isDark","_dark","DarkMixin","inlineActions","dense","actions","child","_QBanner","_QBar","alignMap","around","evenly","stretch","alignValues","alignClass","vertical","_align","disabledValues","AlignMixin","separator","separatorColor","activeColor","gutter","sepClass","activeClass","els","len","comp","middle","disabled","componentOptions","propsData","disable","trailingSlashRE","equals","current","isSameRoute","query","params","isIncludedRoute","routerLinkProps","to","exact","append","exactActiveClass","hasHrefLink","hasRouterLinkProps","$router","resolvedLink","__getLink","hasRouterLink","hasLink","linkTag","fallbackTag","linkAttrs","linkIsActive","$route","route","linkIsExactActive","linkClass","__navigateToRouterLink","returnRouterError","metaKey","altKey","ctrlKey","__navigateOnClick","go","navigate","defaultPrevented","_routerLink","RouterLinkMixin","iconClass","renderData","click","_QBreadcrumbs","_QBreadcrumbsEl","cSize","_spinnerMixin","thickness","getBoundingClientRect","property","css","cssBatch","elements","ready","readyState","getElement","_isVue","$el","childHasFocus","focusedEl","contains","nextElementSibling","getBodyFullscreenElement","activeEl","limit","_dom","_throttle","showRipple","forceCenter","modifiers","innerNode","diameter","sqrt","radius","centerX","centerY","abort","updateModifiers","ripple","early","destroy","__qripple","_qripple","inserted","binding","__qripple_destroyed","enabled","qSkipRipple","keystart","throttle","oldValue","_Ripple","Ripple","_ripple","btnPadding","formTypes","mediaTypeRe","btnDesignOptions","getBtnDesign","defaultValue","flat","unelevated","RippleMixin","iconRight","reduce","acc","glossy","fabMini","padding","noCaps","noWrap","isRounded","isActionable","computedTabIndex","design","percentage","colors","shape","innerClasses","wrapperStyle","minWidth","minHeight","_QSpinner","_btn","touchTarget","keyboardTarget","mouseTarget","iconAttrs","BtnMixin","darkPercentage","hasLabel","computedRipple","percentageStyle","transition","onEvents","mousedown","__onLoadingEvt","touchstart","keydown","keyup","__onKeydown","__onMousedown","__onTouchstart","activeElement","focus","onClickCleanup","__cleanup","__onPressEnd","touchTargetEl","avoidMouseRipple","mouseTimer","MouseEvent","cancelBubble","dispatchEvent","destroying","blurTarget","$refs","inner","ref","QSpinner","_QBtn","transitionShow","transitionHide","transitionProps","show","defaultTransitionShow","hide","defaultTransitionHide","appear","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","spread","clearSelection","getSelection","selection","empty","removeAllRanges","addRange","createRange","_selection","noParentEvent","contextMenu","anchorEl","__unconfigureAnchorEl","__configureAnchorEl","__pickAnchorEl","__showCondition","__contextClick","$nextTick","__toggleKey","__mobileCleanup","touchTimer","showing","__mobilePrevent","__mobileTouch","context","evts","__setAnchorEl","parentNode","parentEl","__changeScrollEvent","scrollTarget","fnProp","fnHandler","__scrollFn","created","__configureScrollTarget","__unconfigureScrollTarget","noParentEventWatcher","$watch","__scrollTarget","__anchorCleanup","__tickFnList","__timeoutFnList","deactivated","tick","removeTick","removeTimeout","__useTick","registerFnName","removeFnName","registerTick","_isDestroyed","__useTimeout","registerTimeout","__processModelChange","hideOnRouteChange","input","payload","__processShow","__preparePortal","__show","__processHide","__hide","queue","waitFlags","clearFlag","flag","addFocusWaitFlag","removeFocusWaitFlag","addFocusFn","removeFocusFn","_focusManager","closePortalMenus","separateClosePopup","$parent","__renderPortal","closePortals","depth","isOnGlobalDialog","Portal","inheritAttrs","contentClass","__showPortal","isReady","focusObj","__portalIsAccessible","__portalIsActive","fullscreen","isCapable","__portal","newParent","__onGlobalDialog","unwatchFullscreen","__hidePortal","$destroy","parent","$mount","$forceUpdate","getVmOfNode","__vue__","isVmChildOf","childVm","parentVm","_vm","handlers","hasModalsAbove","execHandlers","list","globalHandler","hasAttribute","bind","vnode","vmEl","componentInstance","trigger","toggleEl","qClickOutside","nodeType","__qclickoutside","__qclickoutside_old","timerFocusin","indexClick","findIndex","indexFocus","scrollTargets","rtlHasScrollBugStatus","rtlHasScrollBug","scroller","spacer","direction","overflow","scrollLeft","getScrollTarget","targetEl","closest","getScrollHeight","scrollHeight","getScrollWidth","scrollWidth","getVerticalScrollPosition","pageYOffset","scrollY","scrollTop","getScrollPosition","getHorizontalScrollPosition","pageXOffset","scrollX","animVerticalScrollTo","duration","prevTime","performance","setScroll","requestAnimationFrame","nowTime","frameTime","newPos","animScrollTo","animHorizontalScrollTo","setHorizontalScroll","scrollTo","setVerticalScrollPosition","setScrollPosition","setHorizontalScrollPosition","getScrollbarWidth","outer","visibility","w1","offsetWidth","w2","hasScrollbar","onY","Node","ELEMENT_NODE","escDown","__install","__installed","_scroll","vpLeft","vpTop","validatePosition","parts","validateOffset","horizontalPos","parsePosition","getAnchorProps","bottom","getAbsoluteAnchorProps","absoluteOffset","getTargetProps","offsetHeight","getTopLeftProps","anchorProps","targetProps","anchorOrigin","selfOrigin","setPosition","offsetLeft","offsetTop","cover","elStyle","maxHeight","maxWidth","fit","applyBoundaries","hasChanged","offsetY","offsetX","currentHeight","currentWidth","margin","anchorY","anchorX","_anchor","_timeout","_modelToggle","_portal","_transition","_ClickOutside","_escapeKey","_positionEngine","AttrsMixin","AnchorMixin","TimeoutMixin","ModelToggleMixin","PortalMixin","TransitionMixin","ClickOutside","persistent","autoClose","noRouteDismiss","noRefocus","noFocus","anchor","touchPosition","menuClass","__onAutoClose","qAttrs","preventScroll","__refocusTarget","EscapeKey","escEvt","unwatch","updatePosition","blur","__registerTick","__registerTimeout","__avoidAutoClose","__removeTick","hiding","__onClickOutside","targetClassList","buf","bufIdx","hexBytes","randomBytes","lib","crypto","msCrypto","getRandomValues","Uint8Array","BUFFER_SIZE","_QBtnGroup","_QMenu","_uid","menuTransitionProps","dropdownIcon","menuAnchor","menuSelf","menuOffset","disableMainBtn","disableDropdown","noIconAnimation","toggleAriaLabel","menu","targetUid","Arrow","QMenu","QBtn","$props","scopedSlots","Btn","QBtnGroup","uid","_QBtnDropdown","formAttrs","__injectFormInput","action","domProps","formDomProps","FormFieldMixin","nameProp","for","_form","FormMixin","required","every","opt","toggleColor","toggleTextColor","readonly","clearable","hasActiveValue","find","btnOptions","mergeOption","__set","_QBtnToggle","bordered","_QCard","_QCardSection","_QCardActions","directions","modifiersAll","getModifierDirections","mod","shouldStart","event","draggable","nodeName","qClonedBy","_touch","parseArg","__qtouchswipe","styleCleanup","__qtouchswipe_destroyed","mouse","mouseCapture","mousecapture","sensitivity","mouseStart","touchStart","mouseEvent","time","Date","move","distX","absX","distY","absY","velX","velY","withDelay","distance","_TouchSwipe","getPanelWrapper","PanelWrapper","PanelParentMixin","TouchSwipe","animated","infinite","swipeable","transitionPrev","transitionNext","keepAlive","keepAliveInclude","keepAliveExclude","keepAliveMax","panelIndex","panelTransition","panelDirectives","__swipe","contentKey","transitionPrevComputed","transitionNextComputed","keepAliveProps","include","exclude","needsUniqueWrapper","newVal","oldVal","__isValidPanelName","__getPanelIndex","__forcedPanelTransition","__updatePanelTransition","__go","previous","goTo","panels","panel","__getEnabledPanels","startIndex","slots","__updatePanelIndex","__getPanelContent","__renderPanels","PanelChildMixin","fullscreenCounter","noRouteFullscreenExit","inFullscreen","exitFullscreen","setFullscreen","container","replaceChild","fullscreenFillerNode","__historyFullscreen","scrollIntoView","beforeMount","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isDeepEqual","iter","entries","buffer","flags","valueOf","isObject","isDate","isRegexp","isNumber","isFinite","deepEqual","object","regexp","number","_panel","_fullscreen","_is","FullscreenMixin","controlType","controlColor","controlTextColor","autoplay","arrows","prevIcon","nextIcon","navigation","navigationPosition","navigationActiveIcon","thumbnails","navigationPositionComputed","arrowIcons","ico","navIcon","navActiveIcon","controlProps","clearInterval","__startTimer","__getNavigationContainer","mapping","__getContent","btnProps","onClick","maxIndex","slide","imgSrc","backgroundImage","_QCarousel","_QCarouselSlide","_QCarouselControl","avatar","stamp","labelSanitize","nameSanitize","textSanitize","stampSanitize","textClass","op","messageClass","containerClass","sizeClass","__wrapStamp","__getText","contentList","withSlots","domPropText","some","msg","_QChatMessage","__refocusTargetEl","refocusTarget","_optionSize","_refocusTarget","OptionSizeMixin","RefocusTargetMixin","trueValue","falseValue","indeterminateValue","checkedIcon","uncheckedIcon","indeterminateIcon","toggleOrder","toggleIndeterminate","leftLabel","keepColor","isTrue","modelIsArray","isFalse","isIndeterminate","computedTabindex","innerClass","state","checked","__getNextValue","__onKeyup","__getInner","_checkbox","CheckboxMixin","computedIcon","fill","_QCheckbox","model","iconRemove","iconSelected","clickable","removable","removeAriaLabel","isClickable","hasLeftIcon","leftIcon","removeIcon","__onClick","__onRemove","_QChip","circumference","PI","strokeDashArray","centerColor","trackColor","angle","indeterminate","showValue","instantFeedback","normalizedValue","svgStyle","circleStyle","viewBoxAttr","strokeDashOffset","strokeWidth","__getCircle","stroke","cx","cy","svgChild","_QCircularProgress","hexa","hexOrHexa","rgba","testPattern","fulltime","timeOrFulltime","hexColor","hexaColor","hexOrHexaColor","rgbColor","rgbaColor","rgbOrRgbaColor","hexOrRgbColor","hexaOrRgbaColor","anyColor","getChanges","isFinal","synthetic","isFirst","lastDir","delta","lastX","lastY","__qtouchpan","__qtouchpan_destroyed","handleEvent","lastEvt","mouseAllDir","mousealldir","clone","TouchEvent","initialEvent","detected","isMouseEvt","cursor","preserveCursor","preservecursor","withDelayedFn","_TouchPan","markerPrefixClass","defaultMarkerConvertFn","SliderMixin","TouchPan","innerMin","innerMax","step","snap","hideSelection","markerLabelsClass","labelColor","labelTextColor","labelAlways","switchLabelSide","markers","markerLabels","switchMarkerLabelsSide","trackImg","innerTrackImg","innerTrackColor","selectionColor","selectionImg","thumbSize","trackSize","thumbColor","thumbPath","preventFocus","dragging","axis","labelSide","isReversed","computedInnerMin","__getInnerMin","computedInnerMax","__getInnerMax","editable","computedDecimals","computedStep","trackLen","innerBarLen","innerMinRatio","__convertModelToRatio","innerMaxRatio","positionProp","thicknessProp","orientation","selectionBarClass","markerClass","__getAxisClass","trackContainerClass","pinClass","__getPositionClass","labelClass","textContainerClass","markerLabelsContainerClass","trackClass","trackStyle","innerBarClass","innerBarStyle","markerStep","markerTicks","markerLabelClass","prefix","markerLabelsList","__getMarkerList","__getMarkerLabelStyle","markerScope","markerList","markerMap","markerLabelsMap","getStyle","markerStyle","backgroundSize","panDirectives","__onPan","__convertRatioToModel","ratio","modulo","__getDraggingRatio","item","filterFn","__getMarkerLabelsContent","marker","__updatePosition","__updateValue","__getDragging","__onBlur","__onActivate","__onDeactivate","__onMobileClick","__getTextContainerStyle","__getThumb","thumb","thumbContent","pinColor","textContainerStyle","nodeData","injectThumb","trackContent","selectionBarStyle","trackContainerAttrs","trackContainerEvents","_sliderUtils","labelValue","curRatio","modelRatio","thumbLabel","thumbClasses","thumbStyle","thumbPinColor","thumbTextContainerStyle","thumbTextClass","__onFocus","modelUpdate","change","stepVal","canRender","_canRender","CanRenderMixin","hasObserver","immediately","__emit","curDocView","__onObjLoad","contentDocument","defaultView","ResizeObserver","observer","observe","unobserve","injectProp","injectMultipleProps","_QResizeObserver","_injectObjProp","getIndicatorClass","getDefaultBestScore","matchedLen","queryDiff","hrefLen","redirected","hasQueryIncluded","targetQuery","matchingQuery","provide","$tabs","breakpoint","shrink","activeBgColor","indicatorColor","rightIcon","outsideArrows","mobileArrows","switchIndicator","narrowIndicator","inlineLabel","scrollable","leftArrow","rightArrow","tabNameList","currentModel","hasFocus","avoidRouteWatcher","isRTL","__localUpdateArrows","__updateModel","setCurrent","skipEmit","__recalculateScroll","arrowsEnabled","__updateArrowsFn","tabProps","indicatorClass","hasActiveTab","scroll","rtlPosCorrection","posFn","focusin","__onFocusin","focusout","__onFocusout","__animate","__registerScrollTick","__updateContainer","domSize","scrollSize","children","__registerUpdateArrowsTick","localJustify","oldName","newName","oldTab","tabVmList","tab","newTab","oldEl","tabIndicator","newEl","animateTimer","oldPos","__registerAnimateTick","__scrollToTabEl","contentRef","ceil","rect","__animScrollTo","__stopAnimScroll","scrollTimer","setInterval","__scrollTowards","__scrollToStart","MAX_SAFE_INTEGER","__scrollToEnd","__onKbdNavigate","fromEl","dirPrev","dirNext","rtlDir","__updateActiveRoute","bestScore","vmList","vmLen","currentQuery","currentQueryLen","tabIndex","redirectedFrom","queryLen","newScore","__removeFocusTimeout","__registerFocusTimeout","__verifyRouteModel","__registerScrollToTabTimeout","__removeScrollToTabTimeout","__watchRoute","unwatchRoute","fullPath","__registerTab","tabVm","__unregisterTab","activated","hadRouteWatcher","QResizeObserver","resize","inject","alert","alertIcon","keyboard","second","third","hardError","reqId","message","narrow","indicator","__renderTab","_patterns","_QSlider","_QTabs","_QTab","_QTabPanels","_QTabPanel","alphaTrackImg","formatModel","noHeader","noHeaderTabs","noFooter","topView","view","__parseModel","forceHex","forceAlpha","isHex","isOutputHex","hasAlpha","currentBgColor","backgroundColor","headerClass","spectrumStyle","background","spectrumPointerStyle","computedPalette","__spectrumChange","unshift","__getHeader","__getFooter","QTabs","QTab","__updateErrorIcon","__onEditorChange","QTabPanels","QTabPanel","__getSpectrumTab","__getTuneTab","__getPaletteTab","__spectrumClick","__activate","__spectrumPan","paddingBottom","QSlider","__onHueChange","__onNumericChange","inputmode","maxlength","__onPalettePick","__onSpectrumChange","__update","hsv","selectionEnd","setSelectionRange","inp","errorIcon","pageX","pageY","_QColor","breaks","toJalaali","gy","gm","gd","getDate","getMonth","getFullYear","d2j","g2d","toGregorian","jy","jm","jd","d2g","j2d","isValidJalaaliDate","jalaaliMonthLength","isLeapJalaaliYear","jalCalLeap","bl","jump","leap","jp","div","jalCal","withoutLeap","leapJ","march","jdn","j","_datePersian","calendars","mask","locale","calendar","landscape","computedMask","__getMask","computedLocale","__getLocale","computedColor","computedTextColor","__getCurrentDate","dateOnly","timeFill","jDate","year","month","day","hour","minute","millisecond","__getCurrentTime","getHours","getMinutes","getSeconds","getMilliseconds","__getDayHash","MILLISECONDS_IN_DAY","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","defaultMask","token","reverseToken","regexStore","getRegexData","dateLocale","regexText","YY","YYYY","M","MMM","MMMM","D","H","S","A","aa","Z","ZZ","X","regex","getDateLocale","paramDateLocale","langProps","formatTimezone","delimeter","sign","absOffset","hours","minutes","applyYearMonthDayChange","setDate","setMonth","setFullYear","daysInMonth","applyYearMonthDay","maxDay","getChange","rawMod","normalizeMod","years","seconds","milliseconds","adjustDate","utc","extractDate","__splitDate","tzOffset","getTimezoneOffset","timezoneOffset","defaultModel","dateHash","timeHash","langOpts","tzString","isValid","parse","buildDate","getDayOfWeek","dow","getDay","getWeekOfYear","thursday","firstThursday","ds","setHours","weekDiff","getDayIdentifier","getDateIdentifier","onlyDate","getTime","isBetweenDates","from","d1","d2","cur","inclusiveFrom","inclusiveTo","addToDate","subtractFromDate","startOfDate","unit","endOfDate","getMaxDate","getMinDate","getDiff","sub","interval","getDateDiff","subtract","getDayOfYear","inferDateFormat","getDateBetween","low","high","isSameDate","date2","getOrdinal","formatter","forcedYear","MM","Q","Qo","Do","DD","DDD","DDDD","dd","dddd","ddd","E","ww","HH","hh","mm","ss","SS","SSS","forcedTimezoneOffset","formatDate","__forcedYear","__forcedTimezoneOffset","Infinity","_datetime","_date","yearsInterval","views","viewIsValid","yearMonthValidator","lineStr","DateTimeMixin","multiple","range","title","subtitle","defaultYearMonth","yearsInMonthView","eventColor","emitImmediately","navigationMinYearMonth","navigationMaxYearMonth","noUnset","todayBtn","minimal","innerMask","innerLocale","viewModel","__getViewModel","monthDirection","yearDirection","startYear","editRange","lastEmitValue","__updateViewModel","isImmediate","normalizedModel","daysModel","__decodeString","rangeModel","getNativeDateFn","gDate","encodeObjectFn","daysInModel","headerTitle","headerSubtitle","minSelectedModel","maxSelectedModel","sort","dateArrow","computedFirstDayOfWeek","daysOfWeek","evtColor","minNav","maxNav","navBoundaries","daysMap","__getMonthHash","rangeMap","hashFrom","hashTo","rangeView","initHash","final","finalHash","fromHash","toHash","viewMonthHash","includeFrom","includeTo","selectionDaysMap","dayHash","eventDaysMap","viewDays","endDay","prevJM","prevJY","in","rangeFrom","rangeTo","editRangeFrom","editRangeTo","afterDays","setToday","__addToModel","setCalendarTo","setView","offsetCalendar","descending","setEditingRange","__getDefaultViewModel","decoded","__getNavigation","boundaries","__getCalendarView","__goToMonth","__goToYear","__onDayClick","mouseover","__onDayMouseover","__getMonthsView","currentYear","isDisabled","__setMonth","__getYearsView","__setYear","__emitImmediately","__toggleDate","monthHash","__removeFromModel","__getShortDate","dayIndex","dayProps","newHash","__emitValue","reason","details","__getEmitParams","__encodeEntry","changed","ranges","_QDate","__addHistory","__historyEntry","__removeHistory","scrollPositionX","scrollPositionY","maxScrollTop","bodyLeft","bodyTop","closeTimer","registered","vpPendingUpdate","onWheel","shouldPreventScroll","shift","onAppleScroll","onAppleResize","hasViewport","overflowY","qScrollPrevented","__preventScroll","preventedScroll","_preventScroll","maximizedModals","positionClass","standard","defaultTransitions","backdropAttrs","HistoryMixin","PreventScrollMixin","allowFocusOutside","noEscDismiss","noBackdropDismiss","noShake","seamless","maximized","fullWidth","fullHeight","animating","__updateMaximized","useBackdrop","__preventFocusout","selector","__getInnerNode","shake","focusTarget","shakeTimeout","isMaximized","__onFocusChange","__onBackdropClick","relatedTarget","backdropEvt","_QDialog","mouseEvents","layout","side","mini","miniToOverlay","miniWidth","showIfAbove","behavior","elevated","overlay","noSwipeOpen","noSwipeClose","noSwipeBackdrop","belowBreakpoint","totalWidth","lastDesktopState","__applyPosition","__applyBackdrop","__updateBelowBreakpoint","newSide","oldSide","instances","space","onLayout","rightSide","__updateSizeOnLayout","__animateMini","isMini","otherSide","fixed","onScreenOverlay","backdropClass","headerSlot","footerSlot","aboveStyle","header","footer","stateDirection","onNativeEvents","openDirective","__openByTouch","contentCloseDirective","__closeByTouch","backdropCloseDirective","scrollbarWidth","__lastPosition","retry","backdrop","lastBackdropBg","__setBackdropVisible","__setScrollable","timerMini","opened","noEvent","__removeTimeout","__updateLocal","watcher","_QDrawer","hideDelay","MutationObserver","childList","characterData","subtree","disconnect","__delayShow","__delayHide","insetLevel","focused","manualFocus","thumbnail","_QTooltip","_QList","_QItem","_QItemSection","btn","caret","runCmd","cmd","__getGroup","getBtn","clickHandler","toggled","tip","Key","fromCharCode","QTooltip","innerHTML","buttonProps","toolbarToggleColor","toolbarColor","toolbarPush","toolbarTextColor","getDropdown","onlyIcons","Items","closeDropdown","Dropdown","toolbarBackgroundClass","inactiveClass","noIcons","htmlTip","QItem","restore","QItemSection","QList","highlight","QBtnDropdown","fixedLabel","fixedIcon","getToolbar","buttons","isViewingSource","fb","group","getFonts","defaultFontLabel","defaultFontIcon","fonts","aliases","default_font","alias","getLinkEditor","ie11","link","editLinkUrl","updateLink","execCommand","__onInput","getBlockElement","display","currentStyle","isChildOf","orSame","chars","selectNode","setStart","count","setEnd","TEXT_NODE","textContent","lp","childNodes","urlRegex","Caret","_range","sel","anchorNode","focusNode","rangeCount","getRangeAt","startContainer","save","startOffset","endContainer","endOffset","selectAllChildren","collapseToEnd","savePosition","charCount","focusOffset","previousSibling","savedPos","restorePosition","hasParent","spanLevel","blockParent","hasParents","recursive","queryCommandValue","queryCommandState","getParentAttribute","attrib","getAttribute","can","win","write","selectWord","cloneContents","selectNodeContents","__setContent","isCollapsed","modify","anchorOffset","collapsed","detach","endNode","hasOwn","notPlainObject","isPlainObject","copy","copyIsArray","deep","_editorUtils","_editorCaret","_extend","definitions","placeholder","toolbar","toolbarBg","toolbarOutline","toolbarRounded","paragraphTag","hasToolbar","buttonDef","strike","unordered","ordered","viewsource","h1","h2","h3","h4","h5","h6","userDef","innerStyle","col","onEditor","lastEmit","innerText","refreshToolbar","__offsetBottom","__onPointerStart","__onSelectionchange","getContentEl","fontFamily","toolbars","bars","contenteditable","_QEditor","overline","caption","lines","__begin","__end","lastEvent","timerFallback","animListener","enter","leave","insetMap","true","margins","spaced","inset","classPrefix","insetClass","_QItemLabel","_QSlideTransition","_QSeparator","eventName","LINK_PROPS","labelLines","captionLines","expandIcon","expandedIcon","expandIconClass","headerInsetLevel","contentInsetLevel","expandSeparator","defaultOpened","hideExpandIcon","expandIconToggle","switchToggleSide","denseToggle","popup","headerStyle","$on","__eventHandler","$off","linkProps","expansionIcon","activeToggleIcon","headerSlotScope","expanded","detailsId","toggleAriaAttrs","__onHeaderClick","__toggleIconKeyboard","__toggleIcon","__getToggleIcon","QItemLabel","QSlideTransition","QSeparator","_QExpansionItem","labelPositions","labelPosition","externalLabel","hideLabel","labelStyle","formClass","stacked","labelProps","_fab","FabMixin","__qFab","hideIcon","verticalActionsAlign","actionsClasses","actionsAttrs","iconHolderClasses","slotScope","__onChildClick","__getIcon","kebab","camel","slotFn","anchorMap","anchorValues","_QFab","_QFabAction","lazyRulesValues","errorMessage","noErrorIcon","rules","reactiveRules","lazyRules","isDirty","innerError","innerErrorMessage","__validateIfNeeded","__resetValidation","unwatchRules","hasActiveRules","innerLoading","debouncedValidate","hasError","invalid","getElementById","hasRules","computedErrorMessage","validate","validateIndex","resetValidation","setDirty","promises","rule","changedRules","_validate","getTargetUid","ValidateMixin","stackLabel","hint","hideHint","suffix","filled","outlined","borderless","standout","labelSlot","bottomSlots","hideBottomSpace","itemAligned","counter","clearIcon","autofocus","maxValues","hasValue","__getControl","innerValue","computedCounter","floatingLabel","inputValue","hideSelected","displayValue","shouldRenderBottom","fieldClass","styleType","controlSlotScope","emitValue","bottomSlotScope","__focus","prepend","slotsEvents","__getControlContainer","__getInnerAppendNode","clearableEvents","__getInnerAppend","__getControlChild","hasShadow","__getShadowControl","rawControl","control","__getDefaultSlot","__getBottom","hasCounter","__onControlPopupShow","hasPopupOpen","__onControlFocusin","__onControlPopupHide","__onControlFocusout","focusoutTimer","__clearValue","__onPreRender","__onPostRender","before","controlEvents","after","__getControlEvents","shouldActivate","_QField","filterFiles","rejectedFiles","failedPropValidation","acceptedFiles","file","stopAndPreventDrag","dataTransfer","dropEffect","accept","maxFileSize","maxTotalSize","maxFiles","extensions","ext","maxFilesNumber","maxTotalSizeNumber","pickFiles","ev","__getFileInput","addFiles","__addFiles","__processFiles","filesToProcess","currentFileList","__key","webkitRelativePath","lastModified","filenameMap","filteredFiles","filesNumber","__onDragOver","dnd","__onDragLeave","elementsFromPoint","__onDrop","__getDnd","dragenter","dragover","dragleave","drop","FileValueMixin","dt","DataTransfer","ClipboardEvent","clipboardData","items","_file","QField","FileMixin","File","FileList","useChips","counterLabel","inputClass","inputStyle","selectedString","totalSize","counterProps","inputAttrs","isAppending","removeAtIndex","removeFile","fileList","fileInput","__getInput","__getSelection","__getFiller","QChip","_QFile","reveal","heightHint","revealed","windowHeight","__updateRevealed","containerHeight","hidden","revealOnFocus","__onResize","inflexionPosition","_QFooter","noErrorFocus","noResetFocus","greedy","submit","shouldFocus","registeredComponents","getValidationComponents","emit","validateComponent","valid","errors","activeError","_isBeingDestroyed","_inactive","getElementsByClassName","_QForm","revealOffset","_QHeader","ratioStyle","naturalRatio","_ratio","RatioMixin","srcset","alt","placeholderSrc","basic","contain","imgClass","imgStyle","nativeContextMenu","notDraggable","noDefaultSpinner","spinnerColor","spinnerSize","currentSrc","image","isLoading","__load","__updateWatcher","att","imgAttrs","imgContainerStyle","backgroundPosition","__onLoad","__computeRatio","__updateSrc","__onError","ratioTimer","Image","onerror","destroyed","onload","decode","naturalHeight","naturalWidth","__getImage","nativeImg","slotVm","_QImg","initialIndex","isFetching","isWorking","renderLoadingSlot","resume","immediatePoll","updateScrollTarget","__setDebounce","__updateSvgAnimations","poll","scrollPosition","heightBefore","heightAfter","heightDifference","setIndex","oldPoll","isRetry","getElementsByTagName","__scrollPosition","_QInfiniteScroll","labelClasses","_QInnerLoading","NAMED_MASKS","phone","card","TOKENS","pattern","negate","N","toLocaleUpperCase","toLocaleLowerCase","KEYS","tokenRegexMask","escRegex","MARKER","reverseFillMask","fillMask","unmaskedValue","__updateMaskInternals","autogrow","__updateMaskValue","__unmask","hasMask","__getInitialMaskedValue","masked","__mask","__fillWithMask","__getPaddedMaskMarked","maskMarked","padPos","computedUnmask","maskReplaced","fillChar","fillCharEscaped","unmask","extract","firstMatch","unmaskChar","negateChar","char1","esc","char2","unmaskMatcher","extractLast","extractMatcher","re","unmaskMatch","extractMatch","extractMatcherLength","rawVal","updateMaskInternals","inputType","endReverse","unmasked","preMasked","__moveCursorRightReverse","__moveCursorRight","maxEnd","__pastedTextStart","__moveCursorForPaste","__moveCursorLeft","noMarkBefore","__moveCursorLeftReverse","__onMaskedClick","__selectionAnchor","__onMaskedKeydown","selectionStart","selectionDirection","__maskReverse","valIndex","output","maskIndex","valChar","maskDef","firstTokenIndex","isJapanese","isChinese","isKorean","isPlainText","__onComposition","qComposing","_mask","_composition","MaskMixin","CompositionMixin","shadowText","stopValueWatcher","emitCachedValue","typedNumber","tempValue","__adjustHeight","isTextarea","isTypeText","paste","__onPaste","__onChange","__onFinishEditing","compositionstart","compositionupdate","compositionend","animationend","__onAnimationend","getNativeElement","stopWatcher","emitValueFn","NaN","emitTimer","parentStyle","changeOverflow","marginBottom","__getCurValue","_QInput","defaultCfg","threshold","root","rootMargin","IntersectionObserver","rootBounds","isIntersecting","__qvisible","__qvisible_destroyed","_Intersection","Intersection","ssrPrerender","__trigger","_QIntersection","QCircularProgress","decimals","computedInstantFeedback","__click","__keydown","__keyup","__updateCenterPosition","centerPosition","__pan","asin","__getNameInput","internal","_QKnob","dirChanged","dirChangePos","getPosition","directionChanged","clearTimer","cancelAnimationFrame","_QScrollObserver","targetStyle","targetChildStyle","scrollbarEvtAction","__updateScrollEvent","QScrollObserver","__onPageScroll","__onPageResize","__onContainerResize","resized","__updateScrollbarWidth","timerScrollbar","__restoreScrollbar","__hideScrollbar","_QLayout","wrapCells","_QMarkupTable","_QNoSsr","iconColor","computedIconColor","_QRadio","_QToggle","radio","QRadio","checkbox","QCheckbox","QToggle","typeValues","inline","_QOptionGroup","pageContainer","styleFn","paddingTop","_QPage","_QPageContainer","attach","posX","posY","_QPageSticky","QPageSticky","scrollOffset","__isVisible","__updateVisibility","heightWatcher","_QPageScroller","getBool","maxPages","iconPrev","iconNext","iconFirst","iconLast","toFn","boundaryLinks","boundaryNumbers","directionLinks","ellipses","activeDesign","activeTextColor","newPage","__min","__max","inputPlaceholder","__maxPages","__boundaryLinks","__boundaryNumbers","__directionLinks","__ellipses","__btnDesign","__btnActiveDesign","icons","activeBtnProps","btnConfig","pgFrom","pgTo","ellipsesStart","ellipsesEnd","boundaryStart","boundaryEnd","marginalStyle","inputEvents","updateModel","setByOffset","__getBtn","page","contentStart","contentEnd","contentMiddle","QInput","_QPagination","frame","callArgs","_frameDebounce","scrolling","percentScrolled","working","__updatePos","__stop","__start","containerTop","containerBottom","__setPos","mediaHeight","media","videoHeight","__resizeHandler","frameDebounce","mediaParent","onloadstart","loadedmetadata","_QParallax","cloneDeep","_clone","labelSet","labelCancel","autoSave","modelChanged","modelValue","initialValue","defaultSlotScope","__reposition","__changeModel","menuProps","__hasChanged","__close","validated","before-show","before-hide","_QPopupEdit","parsedBreakpoint","__onHide","__updateType","Ctor","sealedOptions","QDialog","_QPopupProxy","stripe","motion","widthReverse","transitionSuffix","modelStyle","modelClasses","stripeStyle","stripeClass","_QLinearProgress","PULLER_HEIGHT","OFFSET_TOP","noMouse","pullRatio","pulling","pullPosition","positionCSS","__pull","__animateTo","_QPullToRefresh","dragType","MIN","RANGE","MAX","dragRange","dragOnlyRange","leftLabelColor","leftLabelTextColor","rightLabelColor","rightLabelTextColor","leftLabelValue","rightLabelValue","leftThumbColor","rightThumbColor","curMinRatio","curMaxRatio","modelMinRatio","modelMaxRatio","ratioMin","ratioMax","thumbAttrs","thumbMinEvents","__getEvents","thumbMaxEvents","thumbMinLabel","thumbMaxLabel","thumbMinClasses","thumbMaxClasses","thumbMinStyle","zIndex","thumbMaxStyle","thumbMinPinColor","thumbMaxPinColor","thumbMinTextContainerStyle","thumbMaxTextContainerStyle","thumbMinTextClass","thumbMaxTextClass","minThumb","valueMin","valueMax","offsetRatio","offsetModel","rangeValue","rangeRatio","localModel","minR","maxR","ratioDelta","modelDelta","which","_QRange","iconHalf","iconAriaLabel","colorHalf","colorSelected","noReset","noDimming","mouseModel","iconData","iconLen","selIconLen","halfIconLen","colorLen","selColorLen","halfColorLen","selIcon","halfIcon","selColor","halfColor","iconLabel","iMax","stars","halfIndex","half","exSelected","__setHoverValue","mouseout","_QRating","_QResponsive","getMinThumbSize","axisList","dirProps","dist","verticalThumbStyle","horizontalThumbStyle","barStyle","verticalBarStyle","horizontalBarStyle","contentActiveStyle","visible","tempShowing","panning","hover","verticalScrollPercentage","diff","horizontalScrollPercentage","verticalThumbHidden","horizontalThumbHidden","verticalThumbStart","verticalThumbSize","horizontalThumbStart","horizontalThumbSize","verticalStyle","horizontalStyle","verticalThumbClass","horizontalThumbClass","verticalBarClass","horizontalBarClass","scrollComputed","thumbHidden","thumbStart","thumbClass","barClass","mainStyle","verticalThumbDirectives","__panThumb","horizontalThumbDirectives","scrollAttrs","getScroll","getScrollPercentage","setScrollPercentage","__updateVerticalScroll","__updateHorizontalScroll","__updateScrollSize","refPos","dProp","containerSize","__setScroll","__mouseDown","verticalThumb","horizontalThumb","__verticalMouseDown","__horizontalMouseDown","$listeners","__emitScroll","__mouseEnter","__mouseLeave","mouseenter","mouseleave","_QScrollArea","aggBucketSize","scrollToEdges","filterProto","sumFn","getScrollDetails","beforeRef","afterRef","stickyStart","stickyEnd","parentCalc","propElSize","scrollStart","scrollViewSize","scrollMaxSize","offsetStart","offsetEnd","previousElementSibling","parentRect","childRect","sumSize","sizeAgg","lastTo","fromAgg","toAgg","commonVirtScrollProps","virtualScrollSliceSize","virtualScrollSliceRatioBefore","virtualScrollSliceRatioAfter","virtualScrollItemSize","virtualScrollStickySizeStart","virtualScrollStickySizeEnd","tableColspan","setOverflowAnchor","contentEl","isSupported","overflowAnchor","_qOverflowAnimationFrame","dataset","qVsAnchor","commonVirtPropsList","virtualScrollHorizontal","virtualScrollSliceRange","needsSliceRecalc","__setVirtualScrollSize","needsReset","colspanAttr","colspan","virtualScrollItemSizeComputed","__resetVirtualScroll","prevToIndex","toIndex","scrollEl","__getVirtualScrollTarget","scrollDetails","__getVirtualScrollEl","__scrollViewSize","__setVirtualScrollSliceRange","virtualScrollLength","__onVirtualScrollEvt","listLastIndex","listEndOffset","virtualScrollPaddingAfter","prevScrollStart","__updateVirtualScrollSizes","scrollMaxStart","virtualScrollSizes","virtualScrollSizesAgg","listOffset","virtualScrollPaddingBefore","alignForce","alignEnd","alignRange","virtualScrollSliceSizeComputed","rangeChanged","__onBlurRefocusFn","sizeBefore","tempTo","sizeAfter","posStart","posEnd","sizeDiff","childrenLength","sizeFn","fullReset","defaultSize","oldVirtualScrollSizesLength","jMax","baseSize","__padVirtualScroll","paddingSize","_virtualScroll","validateNewValueMode","reEscapeList","VirtualScroll","displayValueSanitize","optionValue","optionLabel","optionDisable","hideDropdownIcon","fillInput","optionsDense","optionsDark","optionsSelectedClass","optionsSanitize","optionsCover","menuShrink","popupContentClass","popupContentStyle","useInput","newValueMode","mapOptions","inputDebounce","autocomplete","dialog","optionIndex","dialogFieldFocused","innerValueCache","userInputValue","__resetInputValue","__updateMenu","newLength","oldLength","isOptionsDark","computedInputClass","menuContentClass","mapNull","__getOption","noOptions","getOptionLabel","ariaCurrentValue","sanitizeFn","sanitize","displayAsText","selectedScope","__removeAtIndexAndFocus","toggleOption","optionScope","optionEls","__optionScopeCache","isOptionDisabled","itemProps","computedOptionsSelectedClass","itemAttrs","isOptionSelected","itemEvents","mousemove","setOptionIndex","option","dropdownArrowIcon","squaredMenu","innerOptionsValue","getOptionValue","__getPropValueFn","inputControlEvents","__onTargetKeydown","__onTargetAutocomplete","keypress","__onTargetKeypress","__selectInputText","hasDialog","comboboxAttrs","listboxAttrs","getEmittingOptionValue","unique","updateInputValue","keepOpen","optValue","hidePopup","moveOptionSelection","skipInputValue","moveAnimationFrame","__setInputValue","defaultInputValue","defaultVal","__onTargetKeyup","inputTimer","needle","findFn","extractFn","fillFn","afterFilter","newValueModeValid","tabShouldSelect","__closeMenu","showPopup","optionsLength","searchBuffer","searchBufferExp","keyRepeat","searchRe","menuContent","scope","fromDialog","isTarget","__getOptions","optionSlot","innerLoadingIndicator","noFiltering","keepClosed","afterUpdateFn","filterId","afterFn","__getMenu","__onMenuShow","__onDialogFieldFocus","__onDialogFieldBlur","__getDialog","transitionShowComputed","__onDialogBeforeHide","__onDialogHide","__onDialogShow","updateMenuPosition","_QSelect","skeletonTypes","skeletonAnimations","animation","_QSkeleton","slotsDef","leftColor","rightColor","topColor","bottomColor","langDir","__emitSlide","__showing","isReset","__dir","__size","__scale","__axis","dirs","_QSlideItem","_QSpace","_QSpinnerAudio","_QSpinnerBall","_QSpinnerBars","_QSpinnerBox","_QSpinnerClock","_QSpinnerComment","_QSpinnerCube","_QSpinnerDots","_QSpinnerFacebook","_QSpinnerGears","_QSpinnerGrid","_QSpinnerHearts","_QSpinnerHourglass","_QSpinnerInfinity","_QSpinnerIos","_QSpinnerOrbit","_QSpinnerOval","_QSpinnerPie","_QSpinnerPuff","_QSpinnerRadio","_QSpinnerRings","_QSpinnerTail","limits","beforeClass","afterClass","separatorClass","separatorStyle","__normalize","computedLimits","styles","__getCSSValue","separatorDirectives","__maxValue","__value","__multiplier","__normalized","_QSplitter","isDisable","isError","isDone","headerNav","nav","hasPrefix","doneIcon","defaultIcon","inactiveIcon","errorColor","doneColor","inactiveColor","activate","_StepHeader","StepWrapper","__keepScroll","StepHeader","alternativeLabels","contracted","headerClasses","_QStep","_QStepper","_QStepperNavigation","marginalsScope","computedPagination","pagesNumber","isFirstPage","isLastPage","__getTopDiv","topLeft","topRight","topSelection","hasSelection","hasSelectionMode","rowsSelectedNumber","titleClass","autoWidth","$vnode","colsMap","sortable","__iconClass","__thClass","_QTh","headerSelectedValue","someRowsSelected","allRowsSelected","__getTHead","__getTHeadTR","computedColspan","__getProgress","headerCell","__getHeaderScope","computedCols","headerCellCol","QTh","singleSelection","grid","multipleSelection","__onMultipleSelectionSet","tableHeaderStyle","tableHeaderClass","cols","computedColsMap","partialSelected","multipleSelect","__updateSelection","computedRows","getRowKey","__getTBodyTR","row","bodySlot","pageIndex","isRowSelected","__getBodyScope","__trClass","bodyCell","bodyCellCol","__getBodyCellScope","__tdClass","__tdStyle","getCellValue","__getBodySelectionScope","adding","dblclick","contextmenu","__getTBody","topRow","bottomRow","__getVirtualTBodyTR","__injectBodyCommonScope","rowIndex","firstRowIndex","isRowExpanded","__updateExpanded","format","hideBottom","hideSelectedBanner","hideNoData","hidePagination","iconFirstPage","iconPrevPage","iconNextPage","iconLastPage","__getBottomDiv","nothingToDisplay","loadingLabel","noResultsLabel","noDataLabel","selectedRowsLabel","__getPaginationDiv","rowsPerPage","paginationLabel","paginationSlot","hasOpts","rowsPerPageOptions","rowsPerPageLabel","QSelect","computedRowsPerPageOptions","pag","setPagination","lastRowIndex","computedRowsNumber","filteredSortedRowsNumber","__getGridHeader","gridHeader","__getGridBody","cardDefaultClass","cardClass","cardStyle","cardContainerClass","cardContainerStyle","conf","_getTableMiddle","comps","QMarkupTable","itemsFn","itemsSize","virtualScrollScope","mapFn","getTableMiddle","sortString","localeCompare","sortNumber","sortDate","sortBoolean","_sort","sortMethod","sortBy","colList","toLocaleString","columnSortOrder","columnToSort","sortOrder","binaryStateSort","filterMethod","terms","cellValue","lowerTerms","samePagination","oldPag","newPag","fixPagination","innerPagination","oldLastPage","currentPage","__sendServerRequest","requestServerInteraction","forceServerRequest","newPagination","isServerSide","selectedKeys","added","getVal","innerExpanded","setExpanded","visibleColumns","names","_tableTop","_tableHeader","_tableBody","_tableBottom","_tableGrid","_QVirtualScroll","_tableSort","_tableFilter","_tablePagination","_tableRowSelection","_tableRowExpand","_tableColumnSelection","commonVirtPropsObj","Top","TableHeader","TableBody","Bottom","TableGrid","Sort","Filter","Pagination","RowSelection","RowExpand","ColumnSelection","rowKey","hideHeader","virtualScroll","tableStyle","tableClass","hasVirtScroll","virtScroll","filteredSortedRows","rowsNumber","__containerClass","virtProps","__getBody","resetVirtualScroll","virtSlots","topContent","QVirtualScroll","__onVScroll","rowEl","QLinearProgress","noHover","_QTable","_QTr","_QTd","routeModel","_QRouteTab","defaultDate","hourOptions","minuteOptions","secondOptions","withSeconds","nowBtn","__getDefaultDateModel","isAM","innerModel","defaultDateModel","stringModel","computedFormat24h","pointerStyle","forHour","divider","minLink","secLink","hourInSelection","minuteInSelection","secondInSelection","validHours","am","__getValidValues","pm","validMinutes","validSeconds","viewValidOptions","positions","actualVal","setNow","testFn","__getWheelDist","__getNormalizedClockValue","__shouldAbortInteraction","__updateClock","__getClockRect","__goToNextView","clock","__drag","draggingClockRect","dragCache","clockRect","cacheVal","__onKeyupHour","__setHour","__onKeyupMinute","__setMinute","__onKeyupSecond","__setSecond","__setAm","__setPm","__getClock","__verifyAndUpdate","_QTime","__timeline","colorClass","dot","_QTimeline","_QTimelineEntry","_QToolbar","_QToolbarTitle","tickStrategyOptions","nodeKey","labelKey","childrenKey","selectedColor","tickStrategy","ticked","noSelectionUnset","defaultExpandAll","accordion","filt","noConnectors","noTransition","noNodesLabel","computedControlColor","textColorClass","selectedColorClass","meta","travel","isParent","selectable","expandable","hasTicking","strictTicking","leafFilteredTicking","leafTicking","tickable","lazy","matchesFilter","noTick","innerTicked","indeterminateNextState","getNodeByKey","getTickedNodes","getExpandedNodes","isExpanded","collapseAll","expandAll","__setExpanded","fail","isTicked","setTicked","__getSlotScope","__getChildren","__getNode","__getNodeMedia","__onExpandClick","__onTickedClick","__blur","_QTree","noThumbnails","autoUpload","hideUploadBtn","__qUploaderGetInput","__getInputControl","queuedFiles","uploadedFiles","uploadSize","uploadedSize","isUploading","canUpload","isBusy","canAddFiles","uploadProgress","uploadProgressLabel","__getProgressLabel","uploadedSizeLabel","uploadSizeLabel","__revokeImgURLs","removeUploadedFiles","__removeFiles","removeQueuedFiles","statusList","cb","removed","__status","__img","URL","revokeObjectURL","__abort","__updateFile","__uploaded","__progress","__sizeLabel","__progressLabel","localFiles","createObjectURL","__getList","getFn","fieldName","formFields","withCredentials","sendRaw","batch","factory","xhrs","workingThreads","xhrProps","abortPromises","__runFactory","__uploadFiles","failed","form","FormData","getProp","fields","aborted","uploadIndex","uploadIndexSize","maxUploadSize","loaded","onreadystatechange","head","setRequestHeader","send","Blob","_QUploaderBase","_uploaderXhrMixin","QUploaderBase","UploaderXHRMixin","_QUploader","_QUploaderAddTrigger","fetchpriority","referrerpolicy","iframeData","frameborder","allowfullscreen","_QVideo","_index","_index2","_index3","_index4","_index5","_index6","_index7","_index8","_index9","_index10","_index11","_index12","_index13","_index14","_index15","_index16","_index17","_index18","_index19","_index20","_index21","_index22","_index23","_index24","_index25","_index26","_index27","_index28","_index29","_index30","_index31","_index32","_index33","_index34","_index35","_index36","_index37","_index38","_index39","_index40","_index41","_index42","_index43","_index44","_index45","_index46","_index47","_index48","_index49","_index50","_index51","_index52","_index53","_index54","_index55","_index56","_index57","_index58","_index59","_index60","_index61","_index62","_index63","_index64","_index65","_index66","_index67","_index68","_index69","_index70","_index71","_index72","_index73","_index74","_index75","_index76","_index77","_index78","_index79","getDepth","__qclosepopup","handlerKey","__qclosepopup_destroyed","__qgoback","goBack","goBackKey","__qgoback_destroyed","single","router","offsetBase","getAbsolutePosition","cssText","boundingRect","baseRect","marginLeft","marginRight","marginTop","marginH","marginV","widthM","heightM","getAbsoluteSize","styleEdges","styleBorderRadiuses","reStyleSkipKey","reStyleSkipRule","styleLen","val1","val2","zIndexPositions","getMaxZIndex","elStart","zIndexNum","normalizeElements","normalizeOptions","onEnd","waitFor","easing","useCSS","usecss","hideFromClone","hidefromclone","keepToClone","keeptoclone","tween","tweenFromOpacity","tweenToOpacity","isValidElement","ownerDocument","morph","_options","cancelStatus","endElementTo","elFrom","qMorphCancel","animationFromClone","animationFromTween","animationToClone","animationTo","elFromParent","elFromNext","elFromPosition","elFromParentWidthBefore","elFromParentHeightBefore","borderWidth","elFromBorderWidth","borderStyle","elFromBorderStyle","borderColor","elFromBorderColor","borderRadius","elFromBorderRadius","elFromBackground","elFromTransform","elFromPositioningType","elFromCssText","elFromClassSaved","elFromStyleSaved","elFromClone","cloneNode","elFromTween","pointerEvents","insertBefore","onToggle","calculateFinalState","elTo","elFromParentWidthAfter","elFromParentHeightAfter","elToParentWidthBefore","elToParentHeightBefore","elToParent","elToParentWidthAfter","elToParentHeightAfter","elToClone","elToNext","elToBorderWidth","elToBorderStyle","elToBorderColor","elToBorderRadius","elToBackground","elToTransform","elToPositioningType","elToCssText","elToClassSaved","elToStyleSaved","elToPosition","scaleX","scaleY","elFromParentWidthDiff","elFromParentHeightDiff","elToParentWidthDiff","elToParentHeightDiff","elFromCloneWidth","elFromCloneHeight","elToCloneWidth","elToCloneHeight","elSharedSize","elToNeedsFixedPosition","flex","elFromZIndex","elToZIndex","documentScroll","overflowX","commonCleanup","resizeFrom","resizeTo","resizeFromTween","resizeToTween","tweenFrom","tweenTo","transformOrigin","cleanup","qAnimId","keyframesFromTween","keyframesFrom","keyframeToStart","keyframesTo","animationDirection","animationName","endFn","_morph","morphGroups","mods","changeClass","clsAction","cancelFn","insertArgs","updateArgs","updateValue","__qmorph","__qmorph_destroyed","attributeOldValue","characterDataOldValue","__qmutation","__qmutation_destroyed","__qscrollfire","__qscrollfire_destroyed","elBottom","__qscroll","__qscroll_destroyed","__qtouchhold","__qtouchhold_destroyed","origin","startTime","triggered","mouseSensitivity","touchSensitivity","keyRegex","shouldEnd","__qtouchrepeat","__qtouchrepeat_destroyed","durations","durationsLast","keyboardStart","keyboardEvent","repeatCount","keyCapture","keycapture","_ClosePopup","_GoBack","_Morph","_Mutation","_ScrollFire","_Scroll","_TouchHold","_TouchRepeat","metaValue","getMetaTag","setColor","metaTag","newTag","StatusBar","backgroundColorByHexString","addressbarColor","prefixes","promisify","checkActive","plugin","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","request","exit","__getErr","appVisible","msHidden","webkitHidden","optsGrid","optsList","attrsGridItem","dialogProps","onOk","__getGrid","QCardSection","QCard","ssrAPI","okCancel","merge","appRoot","getDialogParent","elRoot","DefaultComponent","klass","isCustom","DialogComponent","okFns","cancelFns","API","onCancel","onDismiss","emittedOK","_BottomSheet","_globalDialog","bottomSheet","globalDialog","BottomSheet","encode","string","encodeURIComponent","decodeURIComponent","stringifyCookieValue","JSON","stringify","read","getString","msOffset","setMilliseconds","toUTCString","parseExpireString","timestamp","expire","expireValue","expires","keyValue","cookie","domain","sameSite","httpOnly","secure","other","qCookies","setHeader","cookieSource","cookies","getObject","getAll","prompt","html","stackButtons","spinner","vmColor","hasForm","okLabel","cancelLabel","okDisabled","okProps","cancelProps","getPrompt","getOptions","QOptionGroup","getButtons","QCardActions","getData","getSection","_DialogPlugin","DialogPlugin","setDefaults","loadingBar","bar","devtools","_routerRoot","QAjaxBar","activeGroups","originalDefaults","messageColor","customClass","defaults","registerProps","newProps","ignoreDefaults","Loading","after-leave","paramProps","lastGroup","updateId","ssrTakeover","normalize","titleTemplate","metaType","metaProp","metaLink","template","old","bodyFilter","htmlFilter","htmlAttr","removeAttribute","bodyAttr","parseMeta","hasMeta","__qMeta","$children","updateClient","__currentMeta","__Q_META__","script","getAttr","seed","getHead","getServerMeta","noscript","nonce","tokens","triggerMeta","__qMetaUpdate","$getMetaHTML","__qMetaUnwatch","groups","notificationsList","emptyRE","positionList","badgePositions","notifTypes","ongoing","addNotification","originalApi","logError","Api","notif","hasMedia","hasText","hasContent","progressClass","progressStyle","animationDuration","closeBtn","noDismiss","dismiss","wrapperClass","leftClass","multiline","actionsClass","original","badge","badgePosition","badgeClass","badgeColor","badgeTextColor","removeNotification","Notifications","mainChild","iconSize","QAvatar","msgChild","msgData","msgNode","badgeStyle","registerType","typeName","typeOpts","notify","vert","getEmptyStorage","getLength","getItem","getIndex","getKey","getAllKeys","isEmpty","getStorage","setItem","removeItem","_webStorage","storage","sessionStorage","_AddressbarColor","_AppFullscreen","_AppVisibility","_Cookies","_Dialog","_LoadingBar","_Loading","_Meta","_Notify","_LocalStorage","_SessionStorage","fallback","area","contentEditable","clipboard","writeText","fileName","rawData","mimeType","blob","msSaveOrOpenBlob","download","parseFeatures","winFeatures","noopener","feat","openWindow","windowFeatures","InAppBrowser","loadUrl","openExternal","shell","SafariViewController","isAvailable","available","parsePromises","sequentialPromises","isList","totalJobs","resultAggregator","resultKeys","keyName","runSequentialPromises","threadsNumber","abortOnFail","jobIndex","hasAborted","threads","getPromiseThread","runNextPromise","currentJobIndex","_copyToClipboard","_exportFile","_openUrl","_runSequentialPromises","_vuePlugin","_exportNames","_utils","VuePlugin","charset","rel"],"mappings":"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","file":"site.js","sourceRoot":"js","sourcesContent":["/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var defineProperty = Object.defineProperty || function (obj, key, desc) { obj[key] = desc.value; };\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n defineProperty(generator, \"_invoke\", { value: makeInvokeMethod(innerFn, self, context) });\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n defineProperty(Gp, \"constructor\", { value: GeneratorFunctionPrototype, configurable: true });\n defineProperty(\n GeneratorFunctionPrototype,\n \"constructor\",\n { value: GeneratorFunction, configurable: true }\n );\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n defineProperty(this, \"_invoke\", { value: enqueue });\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var methodName = context.method;\n var method = delegate.iterator[methodName];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method, or a missing .next mehtod, always terminate the\n // yield* loop.\n context.delegate = null;\n\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (methodName === \"throw\" && delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n if (methodName !== \"return\") {\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a '\" + methodName + \"' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(val) {\n var object = Object(val);\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable || iterable === \"\") {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n throw new TypeError(typeof iterable + \" is not iterable\");\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var bundleURL = null;\nfunction getBundleURLCached() {\n if (!bundleURL) {\n bundleURL = getBundleURL();\n }\n\n return bundleURL;\n}\n\nfunction getBundleURL() {\n // Attempt to find the URL of the current script and use that as the base URL\n try {\n throw new Error;\n } catch (err) {\n var matches = ('' + err.stack).match(/(https?|file|ftp|chrome-extension|moz-extension):\\/\\/[^)\\n]+/g);\n if (matches) {\n return getBaseURL(matches[0]);\n }\n }\n\n return '/';\n}\n\nfunction getBaseURL(url) {\n return ('' + url).replace(/^((?:https?|file|ftp|chrome-extension|moz-extension):\\/\\/.+)?\\/[^/]+(?:\\?.*)?$/, '$1') + '/';\n}\n\nexports.getBundleURL = getBundleURLCached;\nexports.getBaseURL = getBaseURL;\n","var getBundleURL = require('./bundle-url').getBundleURL;\n\nfunction loadBundlesLazy(bundles) {\n if (!Array.isArray(bundles)) {\n bundles = [bundles]\n }\n\n var id = bundles[bundles.length - 1];\n\n try {\n return Promise.resolve(require(id));\n } catch (err) {\n if (err.code === 'MODULE_NOT_FOUND') {\n return new LazyPromise(function (resolve, reject) {\n loadBundles(bundles.slice(0, -1))\n .then(function () {\n return require(id);\n })\n .then(resolve, reject);\n });\n }\n\n throw err;\n }\n}\n\nfunction loadBundles(bundles) {\n return Promise.all(bundles.map(loadBundle));\n}\n\nvar bundleLoaders = {};\nfunction registerBundleLoader(type, loader) {\n bundleLoaders[type] = loader;\n}\n\nmodule.exports = exports = loadBundlesLazy;\nexports.load = loadBundles;\nexports.register = registerBundleLoader;\n\nvar bundles = {};\nfunction loadBundle(bundle) {\n var id;\n if (Array.isArray(bundle)) {\n id = bundle[1];\n bundle = bundle[0];\n }\n\n if (bundles[bundle]) {\n return bundles[bundle];\n }\n\n var type = (bundle.substring(bundle.lastIndexOf('.') + 1, bundle.length) || bundle).toLowerCase();\n var bundleLoader = bundleLoaders[type];\n if (bundleLoader) {\n return bundles[bundle] = bundleLoader(getBundleURL() + bundle)\n .then(function (resolved) {\n if (resolved) {\n module.bundle.register(id, resolved);\n }\n\n return resolved;\n }).catch(function(e) {\n delete bundles[bundle];\n \n throw e;\n });\n }\n}\n\nfunction LazyPromise(executor) {\n this.executor = executor;\n this.promise = null;\n}\n\nLazyPromise.prototype.then = function (onSuccess, onError) {\n if (this.promise === null) this.promise = new Promise(this.executor)\n return this.promise.then(onSuccess, onError)\n};\n\nLazyPromise.prototype.catch = function (onError) {\n if (this.promise === null) this.promise = new Promise(this.executor)\n return this.promise.catch(onError)\n};\n","import 'regenerator-runtime/runtime'; // Enable js async/await with parcel and babel.\r\n\r\nasync function init() {\r\n await import('./site-vue');\r\n await import('./site-app');\r\n}\r\n\r\ninit();","module.exports={name:\"quasar\",version:\"1.22.9\",description:\"Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time\",module:\"src/index.esm.js\",typings:\"dist/types/index.d.ts\",main:\"dist/quasar.common.js\",files:[\"dist\",\"lang\",\"icon-set\",\"src\",\"wrappers\"],scripts:{clean:\"node build/script.clean.js\",dev:\"cd ./dev && node ./script.dev.js dev && cd ..\",\"dev:ssr\":\"cd ./dev && node ./script.dev.js dev -m ssr && cd ..\",\"dev:cordova:ios\":\"cd ./dev && node ./script.dev.js dev -m cordova -T ios && cd ..\",\"dev:cordova:android\":\"cd ./dev && node ./script.dev.js dev -m cordova -T android && cd ..\",\"dev:capacitor:ios\":\"cd ./dev && node ./script.dev.js dev -m capacitor -T ios && cd ..\",\"dev:capacitor:android\":\"cd ./dev && node ./script.dev.js dev -m capacitor -T android && cd ..\",\"dev:umd\":\"node build/script.test-umd.js\",\"dev:quploader\":\"cd dev/upload-server && yarn && cd ../.. && node dev/upload-server/server.js\",build:\"node build/script.build.js\",test:\"yarn lint && yarn build\",lint:\"eslint --ext .js,.vue src dev\",\"lint-fix\":\"eslint --ext .js,.vue src dev --fix\"},repository:{type:\"git\",url:\"git+https://github.com/quasarframework/quasar.git\"},keywords:[\"vuejs\",\"vue\",\"quasar\",\"js\",\"phone\",\"tablet\",\"desktop\",\"spa\",\"pwa\",\"website\",\"electron\"],author:{name:\"Razvan Stoenescu\",email:\"razvan.stoenescu@gmail.com\",url:\"https://quasar.dev\"},license:\"MIT\",bugs:{url:\"https://github.com/quasarframework/quasar/issues\"},funding:{type:\"github\",url:\"https://donate.quasar.dev\"},homepage:\"https://quasar.dev\",devDependencies:{\"@quasar/app\":\"^2.0.6\",\"@quasar/extras\":\"^1.15.5\",\"@rollup/plugin-buble\":\"^0.21.1\",\"@rollup/plugin-json\":\"^4.0.2\",\"@rollup/plugin-node-resolve\":\"^7.1.0\",\"babel-eslint\":\"^10.0.2\",\"babel-preset-es2015-rollup\":\"^3.0.0\",eslint:\"^7.4.0\",\"eslint-config-standard\":\"^12.0.0\",\"eslint-friendly-formatter\":\"^4.0.1\",\"eslint-loader\":\"^4.0.2\",\"eslint-plugin-import\":\"^2.18.2\",\"eslint-plugin-node\":\"^9.1.0\",\"eslint-plugin-promise\":\"^4.2.1\",\"eslint-plugin-standard\":\"^4.0.1\",\"eslint-plugin-vue\":\"^5.2.3\",\"friendly-errors-webpack-plugin\":\"^1.7.0\",\"json-beautify\":\"^1.1.1\",\"module-alias\":\"^2.2.2\",recast:\"^0.18.5\",rimraf:\"^3.0.1\",rollup:\"^1.31.0\",table:\"^5.4.6\",\"uglify-es\":\"^3.3.9\"},vetur:{tags:\"dist/vetur/quasar-tags.json\",attributes:\"dist/vetur/quasar-attributes.json\"},\"web-types\":\"dist/web-types/web-types.json\",browserslist:[\"last 1 version, not dead, ie >= 11\"],engines:{node:\">= 10.0.0\",npm:\">= 5.6.0\",yarn:\">= 1.6.0\"}};","/*!\n * Vue.js v2.6.14\n * (c) 2014-2021 Evan You\n * Released under the MIT License.\n */\n\"use strict\";var e=Object.freeze({});function t(e){return null==e}function n(e){return null!=e}function r(e){return!0===e}function i(e){return\"string\"==typeof e||\"number\"==typeof e||\"symbol\"==typeof e||\"boolean\"==typeof e}function o(e){return null!==e&&\"object\"==typeof e}var a=Object.prototype.toString;function s(e){return\"[object Object]\"===a.call(e)}function c(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function u(e){return n(e)&&\"function\"==typeof e.then&&\"function\"==typeof e.catch}function l(e){return null==e?\"\":Array.isArray(e)||s(e)&&e.toString===a?JSON.stringify(e,null,2):String(e)}function f(e){var t=parseFloat(e);return isNaN(t)?e:t}function p(e,t){for(var n=Object.create(null),r=e.split(\",\"),i=0;i-1)return e.splice(n,1)}}var m=Object.prototype.hasOwnProperty;function y(e,t){return m.call(e,t)}function g(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var _=/-(\\w)/g,b=g(function(e){return e.replace(_,function(e,t){return t?t.toUpperCase():\"\"})}),$=g(function(e){return e.charAt(0).toUpperCase()+e.slice(1)}),w=/\\B([A-Z])/g,C=g(function(e){return e.replace(w,\"-$1\").toLowerCase()});var x=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function k(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function A(e,t){for(var n in t)e[n]=t[n];return e}function O(e){for(var t={},n=0;n0,Z=J&&J.indexOf(\"edge/\")>0,G=(J&&J.indexOf(\"android\"),J&&/iphone|ipad|ipod|ios/.test(J)||\"ios\"===K),X=(J&&/chrome\\/\\d+/.test(J),J&&/phantomjs/.test(J),J&&J.match(/firefox\\/(\\d+)/)),Y={}.watch,Q=!1;if(V)try{var ee={};Object.defineProperty(ee,\"passive\",{get:function(){Q=!0}}),window.addEventListener(\"test-passive\",null,ee)}catch(e){}var te=function(){return void 0===B&&(B=!V&&!z&&\"undefined\"!=typeof global&&(global.process&&\"server\"===global.process.env.VUE_ENV)),B},ne=V&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function re(e){return\"function\"==typeof e&&/native code/.test(e.toString())}var ie,oe=\"undefined\"!=typeof Symbol&&re(Symbol)&&\"undefined\"!=typeof Reflect&&re(Reflect.ownKeys);ie=\"undefined\"!=typeof Set&&re(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var ae=S,se=0,ce=function(){this.id=se++,this.subs=[]};ce.prototype.addSub=function(e){this.subs.push(e)},ce.prototype.removeSub=function(e){h(this.subs,e)},ce.prototype.depend=function(){ce.target&&ce.target.addDep(this)},ce.prototype.notify=function(){for(var e=this.subs.slice(),t=0,n=e.length;t-1)if(o&&!y(i,\"default\"))a=!1;else if(\"\"===a||a===C(e)){var c=Re(String,i.type);(c<0||s0&&(ct((u=e(u,(a||\"\")+\"_\"+c))[0])&&ct(f)&&(s[l]=he(f.text+u[0].text),u.shift()),s.push.apply(s,u)):i(u)?ct(f)?s[l]=he(f.text+u):\"\"!==u&&s.push(he(u)):ct(u)&&ct(f)?s[l]=he(f.text+u.text):(r(o._isVList)&&n(u.tag)&&t(u.key)&&n(a)&&(u.key=\"__vlist\"+a+\"_\"+c+\"__\"),s.push(u)));return s}(e):void 0}function ct(e){return n(e)&&n(e.text)&&!1===e.isComment}function ut(e,t){if(e){for(var n=Object.create(null),r=oe?Reflect.ownKeys(e):Object.keys(e),i=0;i0,a=t?!!t.$stable:!o,s=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&r&&r!==e&&s===r.$key&&!o&&!r.$hasNormal)return r;for(var c in i={},t)t[c]&&\"$\"!==c[0]&&(i[c]=vt(n,c,t[c]))}else i={};for(var u in n)u in i||(i[u]=ht(n,u));return t&&Object.isExtensible(t)&&(t._normalized=i),R(i,\"$stable\",a),R(i,\"$key\",s),R(i,\"$hasNormal\",o),i}function vt(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({}),t=(e=e&&\"object\"==typeof e&&!Array.isArray(e)?[e]:st(e))&&e[0];return e&&(!t||1===e.length&&t.isComment&&!pt(t))?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function ht(e,t){return function(){return e[t]}}function mt(e,t){var r,i,a,s,c;if(Array.isArray(e)||\"string\"==typeof e)for(r=new Array(e.length),i=0,a=e.length;idocument.createEvent(\"Event\").timeStamp&&(cn=function(){return un.now()})}function ln(){var e,t;for(sn=cn(),on=!0,en.sort(function(e,t){return e.id-t.id}),an=0;anan&&en[n].id>e.id;)n--;en.splice(n+1,0,e)}else en.push(e);rn||(rn=!0,Qe(ln))}}(this)},pn.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||o(e)||this.deep){var t=this.value;if(this.value=e,this.user){var n='callback for watcher \"'+this.expression+'\"';Be(this.cb,this.vm,[e,t],this.vm,n)}else this.cb.call(this.vm,e,t)}}},pn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},pn.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},pn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||h(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var dn={enumerable:!0,configurable:!0,get:S,set:S};function vn(e,t,n){dn.get=function(){return this[t][n]},dn.set=function(e){this[t][n]=e},Object.defineProperty(e,n,dn)}function hn(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},i=e.$options._propKeys=[];e.$parent&&$e(!1);var o=function(o){i.push(o);var a=Ie(o,t,n,e);xe(r,o,a),o in e||vn(e,\"_props\",o)};for(var a in t)o(a);$e(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]=\"function\"!=typeof t[n]?S:x(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;s(t=e._data=\"function\"==typeof t?function(e,t){le();try{return e.call(t,t)}catch(e){return He(e,t,\"data()\"),{}}finally{fe()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,i=(e.$options.methods,n.length);for(;i--;){var o=n[i];r&&y(r,o)||(a=void 0,36!==(a=(o+\"\").charCodeAt(0))&&95!==a&&vn(e,\"_data\",o))}var a;Ce(t,!0)}(e):Ce(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=te();for(var i in t){var o=t[i],a=\"function\"==typeof o?o:o.get;r||(n[i]=new pn(e,a||S,S,mn)),i in e||yn(e,i,o)}}(e,t.computed),t.watch&&t.watch!==Y&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var i=0;i-1:\"string\"==typeof e?e.split(\",\").indexOf(t)>-1:(n=e,\"[object RegExp]\"===a.call(n)&&e.test(t));var n}function On(e,t){var n=e.cache,r=e.keys,i=e._vnode;for(var o in n){var a=n[o];if(a){var s=a.name;s&&!t(s)&&Sn(n,o,r,i)}}}function Sn(e,t,n,r){var i=e[t];!i||r&&i.tag===r.tag||i.componentInstance.$destroy(),e[t]=null,h(n,t)}!function(t){t.prototype._init=function(t){var n=this;n._uid=$n++,n._isVue=!0,t&&t._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var i=r.componentOptions;n.propsData=i.propsData,n._parentListeners=i.listeners,n._renderChildren=i.children,n._componentTag=i.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(n,t):n.$options=De(wn(n.constructor),t||{},n),n._renderProxy=n,n._self=n,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(n),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Wt(e,t)}(n),function(t){t._vnode=null,t._staticTrees=null;var n=t.$options,r=t.$vnode=n._parentVnode,i=r&&r.context;t.$slots=lt(n._renderChildren,i),t.$scopedSlots=e,t._c=function(e,n,r,i){return Ht(t,e,n,r,i,!1)},t.$createElement=function(e,n,r,i){return Ht(t,e,n,r,i,!0)};var o=r&&r.data;xe(t,\"$attrs\",o&&o.attrs||e,null,!0),xe(t,\"$listeners\",n._parentListeners||e,null,!0)}(n),Qt(n,\"beforeCreate\"),function(e){var t=ut(e.$options.inject,e);t&&($e(!1),Object.keys(t).forEach(function(n){xe(e,n,t[n])}),$e(!0))}(n),hn(n),function(e){var t=e.$options.provide;t&&(e._provided=\"function\"==typeof t?t.call(e):t)}(n),Qt(n,\"created\"),n.$options.el&&n.$mount(n.$options.el)}}(Cn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,\"$data\",t),Object.defineProperty(e.prototype,\"$props\",n),e.prototype.$set=ke,e.prototype.$delete=Ae,e.prototype.$watch=function(e,t,n){if(s(t))return bn(this,e,t,n);(n=n||{}).user=!0;var r=new pn(this,e,t,n);if(n.immediate){var i='callback for immediate watcher \"'+r.expression+'\"';le(),Be(t,this,[r.value],this,i),fe()}return function(){r.teardown()}}}(Cn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var i=0,o=e.length;i1?k(t):t;for(var n=k(arguments,1),r='event handler for \"'+e+'\"',i=0,o=t.length;iparseInt(this.max)&&Sn(e,t[0],t,this._vnode),this.vnodeToCache=null}}},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var e in this.cache)Sn(this.cache,e,this.keys)},mounted:function(){var e=this;this.cacheVNode(),this.$watch(\"include\",function(t){On(e,function(e){return An(t,e)})}),this.$watch(\"exclude\",function(t){On(e,function(e){return!An(t,e)})})},updated:function(){this.cacheVNode()},render:function(){var e=this.$slots.default,t=zt(e),n=t&&t.componentOptions;if(n){var r=kn(n),i=this.include,o=this.exclude;if(i&&(!r||!An(i,r))||o&&r&&An(o,r))return t;var a=this.cache,s=this.keys,c=null==t.key?n.Ctor.cid+(n.tag?\"::\"+n.tag:\"\"):t.key;a[c]?(t.componentInstance=a[c].componentInstance,h(s,c),s.push(c)):(this.vnodeToCache=t,this.keyToCache=c),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return F}};Object.defineProperty(e,\"config\",t),e.util={warn:ae,extend:A,mergeOptions:De,defineReactive:xe},e.set=ke,e.delete=Ae,e.nextTick=Qe,e.observable=function(e){return Ce(e),e},e.options=Object.create(null),I.forEach(function(t){e.options[t+\"s\"]=Object.create(null)}),e.options._base=e,A(e.options.components,Nn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=k(arguments,1);return n.unshift(this),\"function\"==typeof e.install?e.install.apply(e,n):\"function\"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=De(this.options,e),this}}(e),xn(e),function(e){I.forEach(function(t){e[t]=function(e,n){return n?(\"component\"===t&&s(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),\"directive\"===t&&\"function\"==typeof n&&(n={bind:n,update:n}),this.options[t+\"s\"][e]=n,n):this.options[t+\"s\"][e]}})}(e)}(Cn),Object.defineProperty(Cn.prototype,\"$isServer\",{get:te}),Object.defineProperty(Cn.prototype,\"$ssrContext\",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Cn,\"FunctionalRenderContext\",{value:Et}),Cn.version=\"2.6.14\";var En=p(\"style,class\"),jn=p(\"input,textarea,option,select,progress\"),Dn=function(e,t,n){return\"value\"===n&&jn(e)&&\"button\"!==t||\"selected\"===n&&\"option\"===e||\"checked\"===n&&\"input\"===e||\"muted\"===n&&\"video\"===e},Ln=p(\"contenteditable,draggable,spellcheck\"),In=p(\"events,caret,typing,plaintext-only\"),Mn=function(e,t){return Bn(t)||\"false\"===t?\"false\":\"contenteditable\"===e&&In(t)?t:\"true\"},Fn=p(\"allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,truespeed,typemustmatch,visible\"),Pn=\"http://www.w3.org/1999/xlink\",Rn=function(e){return\":\"===e.charAt(5)&&\"xlink\"===e.slice(0,5)},Hn=function(e){return Rn(e)?e.slice(6,e.length):\"\"},Bn=function(e){return null==e||!1===e};function Un(e){for(var t=e.data,r=e,i=e;n(i.componentInstance);)(i=i.componentInstance._vnode)&&i.data&&(t=Vn(i.data,t));for(;n(r=r.parent);)r&&r.data&&(t=Vn(t,r.data));return function(e,t){if(n(e)||n(t))return zn(e,Kn(t));return\"\"}(t.staticClass,t.class)}function Vn(e,t){return{staticClass:zn(e.staticClass,t.staticClass),class:n(e.class)?[e.class,t.class]:t.class}}function zn(e,t){return e?t?e+\" \"+t:e:t||\"\"}function Kn(e){return Array.isArray(e)?function(e){for(var t,r=\"\",i=0,o=e.length;i-1?mr(e,t,n):Fn(t)?Bn(n)?e.removeAttribute(t):(n=\"allowfullscreen\"===t&&\"EMBED\"===e.tagName?\"true\":t,e.setAttribute(t,n)):Ln(t)?e.setAttribute(t,Mn(t,n)):Rn(t)?Bn(n)?e.removeAttributeNS(Pn,Hn(t)):e.setAttributeNS(Pn,t,n):mr(e,t,n)}function mr(e,t,n){if(Bn(n))e.removeAttribute(t);else{if(q&&!W&&\"TEXTAREA\"===e.tagName&&\"placeholder\"===t&&\"\"!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener(\"input\",r)};e.addEventListener(\"input\",r),e.__ieph=!0}e.setAttribute(t,n)}}var yr={create:vr,update:vr};function gr(e,r){var i=r.elm,o=r.data,a=e.data;if(!(t(o.staticClass)&&t(o.class)&&(t(a)||t(a.staticClass)&&t(a.class)))){var s=Un(r),c=i._transitionClasses;n(c)&&(s=zn(s,Kn(c))),s!==i._prevClass&&(i.setAttribute(\"class\",s),i._prevClass=s)}}var _r,br,$r,wr,Cr,xr,kr={create:gr,update:gr},Ar=/[\\w).+\\-_$\\]]/;function Or(e){var t,n,r,i,o,a=!1,s=!1,c=!1,u=!1,l=0,f=0,p=0,d=0;for(r=0;r=0&&\" \"===(h=e.charAt(v));v--);h&&Ar.test(h)||(u=!0)}}else void 0===i?(d=r+1,i=e.slice(0,r).trim()):m();function m(){(o||(o=[])).push(e.slice(d,r).trim()),d=r+1}if(void 0===i?i=e.slice(0,r).trim():0!==d&&m(),o)for(r=0;r-1?{exp:e.slice(0,wr),key:'\"'+e.slice(wr+1)+'\"'}:{exp:e,key:null};br=e,wr=Cr=xr=0;for(;!zr();)Kr($r=Vr())?qr($r):91===$r&&Jr($r);return{exp:e.slice(0,Cr),key:e.slice(Cr+1,xr)}}(e);return null===n.key?e+\"=\"+t:\"$set(\"+n.exp+\", \"+n.key+\", \"+t+\")\"}function Vr(){return br.charCodeAt(++wr)}function zr(){return wr>=_r}function Kr(e){return 34===e||39===e}function Jr(e){var t=1;for(Cr=wr;!zr();)if(Kr(e=Vr()))qr(e);else if(91===e&&t++,93===e&&t--,0===t){xr=wr;break}}function qr(e){for(var t=e;!zr()&&(e=Vr())!==t;);}var Wr,Zr=\"__r\",Gr=\"__c\";function Xr(e,t,n){var r=Wr;return function i(){null!==t.apply(null,arguments)&&ei(e,i,n,r)}}var Yr=Ke&&!(X&&Number(X[1])<=53);function Qr(e,t,n,r){if(Yr){var i=sn,o=t;t=o._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=i||e.timeStamp<=0||e.target.ownerDocument!==document)return o.apply(this,arguments)}}Wr.addEventListener(e,t,Q?{capture:n,passive:r}:n)}function ei(e,t,n,r){(r||Wr).removeEventListener(e,t._wrapper||t,n)}function ti(e,r){if(!t(e.data.on)||!t(r.data.on)){var i=r.data.on||{},o=e.data.on||{};Wr=r.elm,function(e){if(n(e[Zr])){var t=q?\"change\":\"input\";e[t]=[].concat(e[Zr],e[t]||[]),delete e[Zr]}n(e[Gr])&&(e.change=[].concat(e[Gr],e.change||[]),delete e[Gr])}(i),it(i,o,Qr,ei,Xr,r.context),Wr=void 0}}var ni,ri={create:ti,update:ti};function ii(e,r){if(!t(e.data.domProps)||!t(r.data.domProps)){var i,o,a=r.elm,s=e.data.domProps||{},c=r.data.domProps||{};for(i in n(c.__ob__)&&(c=r.data.domProps=A({},c)),s)i in c||(a[i]=\"\");for(i in c){if(o=c[i],\"textContent\"===i||\"innerHTML\"===i){if(r.children&&(r.children.length=0),o===s[i])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if(\"value\"===i&&\"PROGRESS\"!==a.tagName){a._value=o;var u=t(o)?\"\":String(o);oi(a,u)&&(a.value=u)}else if(\"innerHTML\"===i&&Wn(a.tagName)&&t(a.innerHTML)){(ni=ni||document.createElement(\"div\")).innerHTML=\"\"+o+\"\";for(var l=ni.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;l.firstChild;)a.appendChild(l.firstChild)}else if(o!==s[i])try{a[i]=o}catch(e){}}}}function oi(e,t){return!e.composing&&(\"OPTION\"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var r=e.value,i=e._vModifiers;if(n(i)){if(i.number)return f(r)!==f(t);if(i.trim)return r.trim()!==t.trim()}return r!==t}(e,t))}var ai={create:ii,update:ii},si=g(function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\\))/g).forEach(function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t});function ci(e){var t=ui(e.style);return e.staticStyle?A(e.staticStyle,t):t}function ui(e){return Array.isArray(e)?O(e):\"string\"==typeof e?si(e):e}var li,fi=/^--/,pi=/\\s*!important$/,di=function(e,t,n){if(fi.test(t))e.style.setProperty(t,n);else if(pi.test(n))e.style.setProperty(C(t),n.replace(pi,\"\"),\"important\");else{var r=hi(t);if(Array.isArray(n))for(var i=0,o=n.length;i-1?t.split(gi).forEach(function(t){return e.classList.add(t)}):e.classList.add(t);else{var n=\" \"+(e.getAttribute(\"class\")||\"\")+\" \";n.indexOf(\" \"+t+\" \")<0&&e.setAttribute(\"class\",(n+t).trim())}}function bi(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(\" \")>-1?t.split(gi).forEach(function(t){return e.classList.remove(t)}):e.classList.remove(t),e.classList.length||e.removeAttribute(\"class\");else{for(var n=\" \"+(e.getAttribute(\"class\")||\"\")+\" \",r=\" \"+t+\" \";n.indexOf(r)>=0;)n=n.replace(r,\" \");(n=n.trim())?e.setAttribute(\"class\",n):e.removeAttribute(\"class\")}}function $i(e){if(e){if(\"object\"==typeof e){var t={};return!1!==e.css&&A(t,wi(e.name||\"v\")),A(t,e),t}return\"string\"==typeof e?wi(e):void 0}}var wi=g(function(e){return{enterClass:e+\"-enter\",enterToClass:e+\"-enter-to\",enterActiveClass:e+\"-enter-active\",leaveClass:e+\"-leave\",leaveToClass:e+\"-leave-to\",leaveActiveClass:e+\"-leave-active\"}}),Ci=V&&!W,xi=\"transition\",ki=\"animation\",Ai=\"transition\",Oi=\"transitionend\",Si=\"animation\",Ti=\"animationend\";Ci&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Ai=\"WebkitTransition\",Oi=\"webkitTransitionEnd\"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Si=\"WebkitAnimation\",Ti=\"webkitAnimationEnd\"));var Ni=V?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Ei(e){Ni(function(){Ni(e)})}function ji(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),_i(e,t))}function Di(e,t){e._transitionClasses&&h(e._transitionClasses,t),bi(e,t)}function Li(e,t,n){var r=Mi(e,t),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===xi?Oi:Ti,c=0,u=function(){e.removeEventListener(s,l),n()},l=function(t){t.target===e&&++c>=a&&u()};setTimeout(function(){c0&&(n=xi,l=a,f=o.length):t===ki?u>0&&(n=ki,l=u,f=c.length):f=(n=(l=Math.max(a,u))>0?a>u?xi:ki:null)?n===xi?o.length:c.length:0,{type:n,timeout:l,propCount:f,hasTransform:n===xi&&Ii.test(r[Ai+\"Property\"])}}function Fi(e,t){for(;e.length1}function Vi(e,t){!0!==t.data.show&&Ri(t)}var zi=function(e){var o,a,s={},c=e.modules,u=e.nodeOps;for(o=0;ov?_(e,t(i[y+1])?null:i[y+1].elm,i,d,y,o):d>y&&$(r,p,v)}(p,h,y,o,l):n(y)?(n(e.text)&&u.setTextContent(p,\"\"),_(p,null,y,0,y.length-1,o)):n(h)?$(h,0,h.length-1):n(e.text)&&u.setTextContent(p,\"\"):e.text!==i.text&&u.setTextContent(p,i.text),n(v)&&n(d=v.hook)&&n(d=d.postpatch)&&d(e,i)}}}function k(e,t,i){if(r(i)&&n(e.parent))e.parent.data.pendingInsert=t;else for(var o=0;o-1,a.selected!==o&&(a.selected=o);else if(E(Zi(a),r))return void(e.selectedIndex!==s&&(e.selectedIndex=s));i||(e.selectedIndex=-1)}}function Wi(e,t){return t.every(function(t){return!E(t,e)})}function Zi(e){return\"_value\"in e?e._value:e.value}function Gi(e){e.target.composing=!0}function Xi(e){e.target.composing&&(e.target.composing=!1,Yi(e.target,\"input\"))}function Yi(e,t){var n=document.createEvent(\"HTMLEvents\");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function Qi(e){return!e.componentInstance||e.data&&e.data.transition?e:Qi(e.componentInstance._vnode)}var eo={model:Ki,show:{bind:function(e,t,n){var r=t.value,i=(n=Qi(n)).data&&n.data.transition,o=e.__vOriginalDisplay=\"none\"===e.style.display?\"\":e.style.display;r&&i?(n.data.show=!0,Ri(n,function(){e.style.display=o})):e.style.display=r?o:\"none\"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=Qi(n)).data&&n.data.transition?(n.data.show=!0,r?Ri(n,function(){e.style.display=e.__vOriginalDisplay}):Hi(n,function(){e.style.display=\"none\"})):e.style.display=r?e.__vOriginalDisplay:\"none\")},unbind:function(e,t,n,r,i){i||(e.style.display=e.__vOriginalDisplay)}}},to={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function no(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?no(zt(t.children)):e}function ro(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var i=n._parentListeners;for(var o in i)t[b(o)]=i[o];return t}function io(e,t){if(/\\d-keep-alive$/.test(t.tag))return e(\"keep-alive\",{props:t.componentOptions.propsData})}var oo=function(e){return e.tag||pt(e)},ao=function(e){return\"show\"===e.name},so={name:\"transition\",props:to,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(oo)).length){var r=this.mode,o=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return o;var a=no(o);if(!a)return o;if(this._leaving)return io(e,o);var s=\"__transition-\"+this._uid+\"-\";a.key=null==a.key?a.isComment?s+\"comment\":s+a.tag:i(a.key)?0===String(a.key).indexOf(s)?a.key:s+a.key:a.key;var c=(a.data||(a.data={})).transition=ro(this),u=this._vnode,l=no(u);if(a.data.directives&&a.data.directives.some(ao)&&(a.data.show=!0),l&&l.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(a,l)&&!pt(l)&&(!l.componentInstance||!l.componentInstance._vnode.isComment)){var f=l.data.transition=A({},c);if(\"out-in\"===r)return this._leaving=!0,ot(f,\"afterLeave\",function(){t._leaving=!1,t.$forceUpdate()}),io(e,o);if(\"in-out\"===r){if(pt(a))return u;var p,d=function(){p()};ot(c,\"afterEnter\",d),ot(c,\"enterCancelled\",d),ot(f,\"delayLeave\",function(e){p=e})}}return o}}},co=A({tag:String,moveClass:String},to);function uo(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function lo(e){e.data.newPos=e.elm.getBoundingClientRect()}function fo(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,i=t.top-n.top;if(r||i){e.data.moved=!0;var o=e.elm.style;o.transform=o.WebkitTransform=\"translate(\"+r+\"px,\"+i+\"px)\",o.transitionDuration=\"0s\"}}delete co.mode;var po={Transition:so,TransitionGroup:{props:co,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var i=Gt(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,i(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||\"span\",n=Object.create(null),r=this.prevChildren=this.children,i=this.$slots.default||[],o=this.children=[],a=ro(this),s=0;s-1?Xn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Xn[e]=/HTMLUnknownElement/.test(t.toString())},A(Cn.options.directives,eo),A(Cn.options.components,po),Cn.prototype.__patch__=V?zi:S,Cn.prototype.$mount=function(e,t){return function(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=ve),Qt(e,\"beforeMount\"),r=function(){e._update(e._render(),n)},new pn(e,r,S,{before:function(){e._isMounted&&!e._isDestroyed&&Qt(e,\"beforeUpdate\")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,Qt(e,\"mounted\")),e}(this,e=e&&V?Qn(e):void 0,t)},V&&setTimeout(function(){F.devtools&&ne&&ne.emit(\"init\",Cn)},0);var vo=/\\{\\{((?:.|\\r?\\n)+?)\\}\\}/g,ho=/[-.*+?^${}()|[\\]\\/\\\\]/g,mo=g(function(e){var t=e[0].replace(ho,\"\\\\$&\"),n=e[1].replace(ho,\"\\\\$&\");return new RegExp(t+\"((?:.|\\\\n)+?)\"+n,\"g\")});var yo={staticKeys:[\"staticClass\"],transformNode:function(e,t){t.warn;var n=Pr(e,\"class\");n&&(e.staticClass=JSON.stringify(n));var r=Fr(e,\"class\",!1);r&&(e.classBinding=r)},genData:function(e){var t=\"\";return e.staticClass&&(t+=\"staticClass:\"+e.staticClass+\",\"),e.classBinding&&(t+=\"class:\"+e.classBinding+\",\"),t}};var go,_o={staticKeys:[\"staticStyle\"],transformNode:function(e,t){t.warn;var n=Pr(e,\"style\");n&&(e.staticStyle=JSON.stringify(si(n)));var r=Fr(e,\"style\",!1);r&&(e.styleBinding=r)},genData:function(e){var t=\"\";return e.staticStyle&&(t+=\"staticStyle:\"+e.staticStyle+\",\"),e.styleBinding&&(t+=\"style:(\"+e.styleBinding+\"),\"),t}},bo=function(e){return(go=go||document.createElement(\"div\")).innerHTML=e,go.textContent},$o=p(\"area,base,br,col,embed,frame,hr,img,input,isindex,keygen,link,meta,param,source,track,wbr\"),wo=p(\"colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr,source\"),Co=p(\"address,article,aside,base,blockquote,body,caption,col,colgroup,dd,details,dialog,div,dl,dt,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,legend,li,menuitem,meta,optgroup,option,param,rp,rt,source,style,summary,tbody,td,tfoot,th,thead,title,tr,track\"),xo=/^\\s*([^\\s\"'<>\\/=]+)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/,ko=/^\\s*((?:v-[\\w-]+:|@|:|#)\\[[^=]+?\\][^\\s\"'<>\\/=]*)(?:\\s*(=)\\s*(?:\"([^\"]*)\"+|'([^']*)'+|([^\\s\"'=<>`]+)))?/,Ao=\"[a-zA-Z_][\\\\-\\\\.0-9_a-zA-Z\"+P.source+\"]*\",Oo=\"((?:\"+Ao+\"\\\\:)?\"+Ao+\")\",So=new RegExp(\"^<\"+Oo),To=/^\\s*(\\/?)>/,No=new RegExp(\"^<\\\\/\"+Oo+\"[^>]*>\"),Eo=/^]+>/i,jo=/^\",\""\":'\"',\"&\":\"&\",\" \":\"\\n\",\" \":\"\\t\",\"'\":\"'\"},Fo=/&(?:lt|gt|quot|amp|#39);/g,Po=/&(?:lt|gt|quot|amp|#39|#10|#9);/g,Ro=p(\"pre,textarea\",!0),Ho=function(e,t){return e&&Ro(e)&&\"\\n\"===t[0]};function Bo(e,t){var n=t?Po:Fo;return e.replace(n,function(e){return Mo[e]})}var Uo,Vo,zo,Ko,Jo,qo,Wo,Zo,Go=/^@|^v-on:/,Xo=/^v-|^@|^:|^#/,Yo=/([\\s\\S]*?)\\s+(?:in|of)\\s+([\\s\\S]*)/,Qo=/,([^,\\}\\]]*)(?:,([^,\\}\\]]*))?$/,ea=/^\\(|\\)$/g,ta=/^\\[.*\\]$/,na=/:(.*)$/,ra=/^:|^\\.|^v-bind:/,ia=/\\.[^.\\]]+(?=[^\\]]*$)/g,oa=/^v-slot(:|$)|^#/,aa=/[\\r\\n]/,sa=/[ \\f\\t\\r\\n]+/g,ca=g(bo),ua=\"_empty_\";function la(e,t,n){return{type:1,tag:e,attrsList:t,attrsMap:ya(t),rawAttrsMap:{},parent:n,children:[]}}function fa(e,t){Uo=t.warn||Tr,qo=t.isPreTag||T,Wo=t.mustUseProp||T,Zo=t.getTagNamespace||T;t.isReservedTag;zo=Nr(t.modules,\"transformNode\"),Ko=Nr(t.modules,\"preTransformNode\"),Jo=Nr(t.modules,\"postTransformNode\"),Vo=t.delimiters;var n,r,i=[],o=!1!==t.preserveWhitespace,a=t.whitespace,s=!1,c=!1;function u(e){if(l(e),s||e.processed||(e=pa(e,t)),i.length||e===n||n.if&&(e.elseif||e.else)&&va(n,{exp:e.elseif,block:e}),r&&!e.forbidden)if(e.elseif||e.else)a=e,(u=function(e){var t=e.length;for(;t--;){if(1===e[t].type)return e[t];e.pop()}}(r.children))&&u.if&&va(u,{exp:a.elseif,block:a});else{if(e.slotScope){var o=e.slotTarget||'\"default\"';(r.scopedSlots||(r.scopedSlots={}))[o]=e}r.children.push(e),e.parent=r}var a,u;e.children=e.children.filter(function(e){return!e.slotScope}),l(e),e.pre&&(s=!1),qo(e.tag)&&(c=!1);for(var f=0;f]*>)\",\"i\")),p=e.replace(f,function(e,n,r){return u=r.length,Lo(l)||\"noscript\"===l||(n=n.replace(//g,\"$1\").replace(//g,\"$1\")),Ho(l,n)&&(n=n.slice(1)),t.chars&&t.chars(n),\"\"});c+=e.length-p.length,e=p,A(l,c-u,c)}else{var d=e.indexOf(\"<\");if(0===d){if(jo.test(e)){var v=e.indexOf(\"--\\x3e\");if(v>=0){t.shouldKeepComment&&t.comment(e.substring(4,v),c,c+v+3),C(v+3);continue}}if(Do.test(e)){var h=e.indexOf(\"]>\");if(h>=0){C(h+2);continue}}var m=e.match(Eo);if(m){C(m[0].length);continue}var y=e.match(No);if(y){var g=c;C(y[0].length),A(y[1],g,c);continue}var _=x();if(_){k(_),Ho(_.tagName,e)&&C(1);continue}}var b=void 0,$=void 0,w=void 0;if(d>=0){for($=e.slice(d);!(No.test($)||So.test($)||jo.test($)||Do.test($)||(w=$.indexOf(\"<\",1))<0);)d+=w,$=e.slice(d);b=e.substring(0,d)}d<0&&(b=e),b&&C(b.length),t.chars&&b&&t.chars(b,c-b.length,c)}if(e===n){t.chars&&t.chars(e);break}}function C(t){c+=t,e=e.substring(t)}function x(){var t=e.match(So);if(t){var n,r,i={tagName:t[1],attrs:[],start:c};for(C(t[0].length);!(n=e.match(To))&&(r=e.match(ko)||e.match(xo));)r.start=c,C(r[0].length),r.end=c,i.attrs.push(r);if(n)return i.unarySlash=n[1],C(n[0].length),i.end=c,i}}function k(e){var n=e.tagName,c=e.unarySlash;o&&(\"p\"===r&&Co(n)&&A(r),s(n)&&r===n&&A(n));for(var u=a(n)||!!c,l=e.attrs.length,f=new Array(l),p=0;p=0&&i[a].lowerCasedTag!==s;a--);else a=0;if(a>=0){for(var u=i.length-1;u>=a;u--)t.end&&t.end(i[u].tag,n,o);i.length=a,r=a&&i[a-1].tag}else\"br\"===s?t.start&&t.start(e,[],!0,n,o):\"p\"===s&&(t.start&&t.start(e,[],!1,n,o),t.end&&t.end(e,n,o))}A()}(e,{warn:Uo,expectHTML:t.expectHTML,isUnaryTag:t.isUnaryTag,canBeLeftOpenTag:t.canBeLeftOpenTag,shouldDecodeNewlines:t.shouldDecodeNewlines,shouldDecodeNewlinesForHref:t.shouldDecodeNewlinesForHref,shouldKeepComment:t.comments,outputSourceRange:t.outputSourceRange,start:function(e,o,a,l,f){var p=r&&r.ns||Zo(e);q&&\"svg\"===p&&(o=function(e){for(var t=[],n=0;nc&&(s.push(o=e.slice(c,i)),a.push(JSON.stringify(o)));var u=Or(r[1].trim());a.push(\"_s(\"+u+\")\"),s.push({\"@binding\":u}),c=i+r[0].length}return c-1\"+(\"true\"===o?\":(\"+t+\")\":\":_q(\"+t+\",\"+o+\")\")),Mr(e,\"change\",\"var $$a=\"+t+\",$$el=$event.target,$$c=$$el.checked?(\"+o+\"):(\"+a+\");if(Array.isArray($$a)){var $$v=\"+(r?\"_n(\"+i+\")\":i)+\",$$i=_i($$a,$$v);if($$el.checked){$$i<0&&(\"+Ur(t,\"$$a.concat([$$v])\")+\")}else{$$i>-1&&(\"+Ur(t,\"$$a.slice(0,$$i).concat($$a.slice($$i+1))\")+\")}}else{\"+Ur(t,\"$$c\")+\"}\",null,!0)}(e,r,i);else if(\"input\"===o&&\"radio\"===a)!function(e,t,n){var r=n&&n.number,i=Fr(e,\"value\")||\"null\";Er(e,\"checked\",\"_q(\"+t+\",\"+(i=r?\"_n(\"+i+\")\":i)+\")\"),Mr(e,\"change\",Ur(t,i),null,!0)}(e,r,i);else if(\"input\"===o||\"textarea\"===o)!function(e,t,n){var r=e.attrsMap.type,i=n||{},o=i.lazy,a=i.number,s=i.trim,c=!o&&\"range\"!==r,u=o?\"change\":\"range\"===r?Zr:\"input\",l=\"$event.target.value\";s&&(l=\"$event.target.value.trim()\"),a&&(l=\"_n(\"+l+\")\");var f=Ur(t,l);c&&(f=\"if($event.target.composing)return;\"+f),Er(e,\"value\",\"(\"+t+\")\"),Mr(e,u,f,null,!0),(s||a)&&Mr(e,\"blur\",\"$forceUpdate()\")}(e,r,i);else if(!F.isReservedTag(o))return Br(e,r,i),!1;return!0},text:function(e,t){t.value&&Er(e,\"textContent\",\"_s(\"+t.value+\")\",t)},html:function(e,t){t.value&&Er(e,\"innerHTML\",\"_s(\"+t.value+\")\",t)}},isPreTag:function(e){return\"pre\"===e},isUnaryTag:$o,mustUseProp:Dn,canBeLeftOpenTag:wo,isReservedTag:Zn,getTagNamespace:Gn,staticKeys:function(e){return e.reduce(function(e,t){return e.concat(t.staticKeys||[])},[]).join(\",\")}($a)},ka=g(function(e){return p(\"type,tag,attrsList,attrsMap,plain,parent,children,attrs,start,end,rawAttrsMap\"+(e?\",\"+e:\"\"))});function Aa(e,t){e&&(wa=ka(t.staticKeys||\"\"),Ca=t.isReservedTag||T,function e(t){t.static=function(e){if(2===e.type)return!1;if(3===e.type)return!0;return!(!e.pre&&(e.hasBindings||e.if||e.for||d(e.tag)||!Ca(e.tag)||function(e){for(;e.parent;){if(\"template\"!==(e=e.parent).tag)return!1;if(e.for)return!0}return!1}(e)||!Object.keys(e).every(wa)))}(t);if(1===t.type){if(!Ca(t.tag)&&\"slot\"!==t.tag&&null==t.attrsMap[\"inline-template\"])return;for(var n=0,r=t.children.length;n|^function(?:\\s+[\\w$]+)?\\s*\\(/,Sa=/\\([^)]*?\\);*$/,Ta=/^[A-Za-z_$][\\w$]*(?:\\.[A-Za-z_$][\\w$]*|\\['[^']*?']|\\[\"[^\"]*?\"]|\\[\\d+]|\\[[A-Za-z_$][\\w$]*])*$/,Na={esc:27,tab:9,enter:13,space:32,up:38,left:37,right:39,down:40,delete:[8,46]},Ea={esc:[\"Esc\",\"Escape\"],tab:\"Tab\",enter:\"Enter\",space:[\" \",\"Spacebar\"],up:[\"Up\",\"ArrowUp\"],left:[\"Left\",\"ArrowLeft\"],right:[\"Right\",\"ArrowRight\"],down:[\"Down\",\"ArrowDown\"],delete:[\"Backspace\",\"Delete\",\"Del\"]},ja=function(e){return\"if(\"+e+\")return null;\"},Da={stop:\"$event.stopPropagation();\",prevent:\"$event.preventDefault();\",self:ja(\"$event.target !== $event.currentTarget\"),ctrl:ja(\"!$event.ctrlKey\"),shift:ja(\"!$event.shiftKey\"),alt:ja(\"!$event.altKey\"),meta:ja(\"!$event.metaKey\"),left:ja(\"'button' in $event && $event.button !== 0\"),middle:ja(\"'button' in $event && $event.button !== 1\"),right:ja(\"'button' in $event && $event.button !== 2\")};function La(e,t){var n=t?\"nativeOn:\":\"on:\",r=\"\",i=\"\";for(var o in e){var a=Ia(e[o]);e[o]&&e[o].dynamic?i+=o+\",\"+a+\",\":r+='\"'+o+'\":'+a+\",\"}return r=\"{\"+r.slice(0,-1)+\"}\",i?n+\"_d(\"+r+\",[\"+i.slice(0,-1)+\"])\":n+r}function Ia(e){if(!e)return\"function(){}\";if(Array.isArray(e))return\"[\"+e.map(function(e){return Ia(e)}).join(\",\")+\"]\";var t=Ta.test(e.value),n=Oa.test(e.value),r=Ta.test(e.value.replace(Sa,\"\"));if(e.modifiers){var i=\"\",o=\"\",a=[];for(var s in e.modifiers)if(Da[s])o+=Da[s],Na[s]&&a.push(s);else if(\"exact\"===s){var c=e.modifiers;o+=ja([\"ctrl\",\"shift\",\"alt\",\"meta\"].filter(function(e){return!c[e]}).map(function(e){return\"$event.\"+e+\"Key\"}).join(\"||\"))}else a.push(s);return a.length&&(i+=function(e){return\"if(!$event.type.indexOf('key')&&\"+e.map(Ma).join(\"&&\")+\")return null;\"}(a)),o&&(i+=o),\"function($event){\"+i+(t?\"return \"+e.value+\".apply(null, arguments)\":n?\"return (\"+e.value+\").apply(null, arguments)\":r?\"return \"+e.value:e.value)+\"}\"}return t||n?e.value:\"function($event){\"+(r?\"return \"+e.value:e.value)+\"}\"}function Ma(e){var t=parseInt(e,10);if(t)return\"$event.keyCode!==\"+t;var n=Na[e],r=Ea[e];return\"_k($event.keyCode,\"+JSON.stringify(e)+\",\"+JSON.stringify(n)+\",$event.key,\"+JSON.stringify(r)+\")\"}var Fa={on:function(e,t){e.wrapListeners=function(e){return\"_g(\"+e+\",\"+t.value+\")\"}},bind:function(e,t){e.wrapData=function(n){return\"_b(\"+n+\",'\"+e.tag+\"',\"+t.value+\",\"+(t.modifiers&&t.modifiers.prop?\"true\":\"false\")+(t.modifiers&&t.modifiers.sync?\",true\":\"\")+\")\"}},cloak:S},Pa=function(e){this.options=e,this.warn=e.warn||Tr,this.transforms=Nr(e.modules,\"transformCode\"),this.dataGenFns=Nr(e.modules,\"genData\"),this.directives=A(A({},Fa),e.directives);var t=e.isReservedTag||T;this.maybeComponent=function(e){return!!e.component||!t(e.tag)},this.onceId=0,this.staticRenderFns=[],this.pre=!1};function Ra(e,t){var n=new Pa(t);return{render:\"with(this){return \"+(e?\"script\"===e.tag?\"null\":Ha(e,n):'_c(\"div\")')+\"}\",staticRenderFns:n.staticRenderFns}}function Ha(e,t){if(e.parent&&(e.pre=e.pre||e.parent.pre),e.staticRoot&&!e.staticProcessed)return Ba(e,t);if(e.once&&!e.onceProcessed)return Ua(e,t);if(e.for&&!e.forProcessed)return za(e,t);if(e.if&&!e.ifProcessed)return Va(e,t);if(\"template\"!==e.tag||e.slotTarget||t.pre){if(\"slot\"===e.tag)return function(e,t){var n=e.slotName||'\"default\"',r=Wa(e,t),i=\"_t(\"+n+(r?\",function(){return \"+r+\"}\":\"\"),o=e.attrs||e.dynamicAttrs?Xa((e.attrs||[]).concat(e.dynamicAttrs||[]).map(function(e){return{name:b(e.name),value:e.value,dynamic:e.dynamic}})):null,a=e.attrsMap[\"v-bind\"];!o&&!a||r||(i+=\",null\");o&&(i+=\",\"+o);a&&(i+=(o?\"\":\",null\")+\",\"+a);return i+\")\"}(e,t);var n;if(e.component)n=function(e,t,n){var r=t.inlineTemplate?null:Wa(t,n,!0);return\"_c(\"+e+\",\"+Ka(t,n)+(r?\",\"+r:\"\")+\")\"}(e.component,e,t);else{var r;(!e.plain||e.pre&&t.maybeComponent(e))&&(r=Ka(e,t));var i=e.inlineTemplate?null:Wa(e,t,!0);n=\"_c('\"+e.tag+\"'\"+(r?\",\"+r:\"\")+(i?\",\"+i:\"\")+\")\"}for(var o=0;o>>0}(a):\"\")+\")\"}(e,e.scopedSlots,t)+\",\"),e.model&&(n+=\"model:{value:\"+e.model.value+\",callback:\"+e.model.callback+\",expression:\"+e.model.expression+\"},\"),e.inlineTemplate){var o=function(e,t){var n=e.children[0];if(n&&1===n.type){var r=Ra(n,t.options);return\"inlineTemplate:{render:function(){\"+r.render+\"},staticRenderFns:[\"+r.staticRenderFns.map(function(e){return\"function(){\"+e+\"}\"}).join(\",\")+\"]}\"}}(e,t);o&&(n+=o+\",\")}return n=n.replace(/,$/,\"\")+\"}\",e.dynamicAttrs&&(n=\"_b(\"+n+',\"'+e.tag+'\",'+Xa(e.dynamicAttrs)+\")\"),e.wrapData&&(n=e.wrapData(n)),e.wrapListeners&&(n=e.wrapListeners(n)),n}function Ja(e){return 1===e.type&&(\"slot\"===e.tag||e.children.some(Ja))}function qa(e,t){var n=e.attrsMap[\"slot-scope\"];if(e.if&&!e.ifProcessed&&!n)return Va(e,t,qa,\"null\");if(e.for&&!e.forProcessed)return za(e,t,qa);var r=e.slotScope===ua?\"\":String(e.slotScope),i=\"function(\"+r+\"){return \"+(\"template\"===e.tag?e.if&&n?\"(\"+e.if+\")?\"+(Wa(e,t)||\"undefined\")+\":undefined\":Wa(e,t)||\"undefined\":Ha(e,t))+\"}\",o=r?\"\":\",proxy:true\";return\"{key:\"+(e.slotTarget||'\"default\"')+\",fn:\"+i+o+\"}\"}function Wa(e,t,n,r,i){var o=e.children;if(o.length){var a=o[0];if(1===o.length&&a.for&&\"template\"!==a.tag&&\"slot\"!==a.tag){var s=n?t.maybeComponent(a)?\",1\":\",0\":\"\";return\"\"+(r||Ha)(a,t)+s}var c=n?function(e,t){for(var n=0,r=0;r':'
',ns.innerHTML.indexOf(\" \")>0}var as=!!V&&os(!1),ss=!!V&&os(!0),cs=g(function(e){var t=Qn(e);return t&&t.innerHTML}),us=Cn.prototype.$mount;Cn.prototype.$mount=function(e,t){if((e=e&&Qn(e))===document.body||e===document.documentElement)return this;var n=this.$options;if(!n.render){var r=n.template;if(r)if(\"string\"==typeof r)\"#\"===r.charAt(0)&&(r=cs(r));else{if(!r.nodeType)return this;r=r.innerHTML}else e&&(r=function(e){if(e.outerHTML)return e.outerHTML;var t=document.createElement(\"div\");return t.appendChild(e.cloneNode(!0)),t.innerHTML}(e));if(r){var i=is(r,{outputSourceRange:!1,shouldDecodeNewlines:as,shouldDecodeNewlinesForHref:ss,delimiters:n.delimiters,comments:n.comments},this),o=i.render,a=i.staticRenderFns;n.render=o,n.staticRenderFns=a}}return us.call(this,e,t)},Cn.compile=is,module.exports=Cn;","if (process.env.NODE_ENV === 'production') {\n module.exports = require('./vue.common.prod.js')\n} else {\n module.exports = require('./vue.common.dev.js')\n}\n","/* eslint-disable no-useless-escape */\n/* eslint-disable no-unused-expressions */\n/* eslint-disable no-mixed-operators */\n\nimport Vue from 'vue'\n\nexport const isSSR = typeof window === 'undefined'\nexport let fromSSR = false\nexport let onSSR = isSSR\n\nexport let iosEmulated = false\nexport let iosCorrection\n\nfunction getMatch (userAgent, platformMatch) {\n const match = /(edge|edga|edgios)\\/([\\w.]+)/.exec(userAgent) ||\n /(opr)[\\/]([\\w.]+)/.exec(userAgent) ||\n /(vivaldi)[\\/]([\\w.]+)/.exec(userAgent) ||\n /(chrome|crios)[\\/]([\\w.]+)/.exec(userAgent) ||\n /(iemobile)[\\/]([\\w.]+)/.exec(userAgent) ||\n /(version)(applewebkit)[\\/]([\\w.]+).*(safari)[\\/]([\\w.]+)/.exec(userAgent) ||\n /(webkit)[\\/]([\\w.]+).*(version)[\\/]([\\w.]+).*(safari)[\\/]([\\w.]+)/.exec(userAgent) ||\n /(firefox|fxios)[\\/]([\\w.]+)/.exec(userAgent) ||\n /(webkit)[\\/]([\\w.]+)/.exec(userAgent) ||\n /(opera)(?:.*version|)[\\/]([\\w.]+)/.exec(userAgent) ||\n /(msie) ([\\w.]+)/.exec(userAgent) ||\n (userAgent.indexOf('trident') >= 0 && /(rv)(?::| )([\\w.]+)/.exec(userAgent)) ||\n (userAgent.indexOf('compatible') < 0 && /(mozilla)(?:.*? rv:([\\w.]+)|)/.exec(userAgent)) ||\n []\n\n return {\n browser: match[5] || match[3] || match[1] || '',\n version: match[2] || match[4] || '0',\n versionNumber: match[4] || match[2] || '0',\n platform: platformMatch[0] || ''\n }\n}\n\nfunction getPlatformMatch (userAgent) {\n return /(ipad)/.exec(userAgent) ||\n /(ipod)/.exec(userAgent) ||\n /(windows phone)/.exec(userAgent) ||\n /(iphone)/.exec(userAgent) ||\n /(kindle)/.exec(userAgent) ||\n /(silk)/.exec(userAgent) ||\n /(android)/.exec(userAgent) ||\n /(win)/.exec(userAgent) ||\n /(mac)/.exec(userAgent) ||\n /(linux)/.exec(userAgent) ||\n /(cros)/.exec(userAgent) ||\n /(playbook)/.exec(userAgent) ||\n /(bb)/.exec(userAgent) ||\n /(blackberry)/.exec(userAgent) ||\n []\n}\n\nconst hasTouch = isSSR === false\n ? 'ontouchstart' in window || window.navigator.maxTouchPoints > 0\n : false\n\nfunction applyIosCorrection (is) {\n iosCorrection = { is: { ...is } }\n\n delete is.mac\n delete is.desktop\n\n const platform = Math.min(window.innerHeight, window.innerWidth) > 414\n ? 'ipad'\n : 'iphone'\n\n Object.assign(is, {\n mobile: true,\n ios: true,\n platform,\n [ platform ]: true\n })\n}\n\nfunction getPlatform (UA) {\n const\n userAgent = UA.toLowerCase(),\n platformMatch = getPlatformMatch(userAgent),\n matched = getMatch(userAgent, platformMatch),\n browser = {}\n\n if (matched.browser) {\n browser[matched.browser] = true\n browser.version = matched.version\n browser.versionNumber = parseInt(matched.versionNumber, 10)\n }\n\n if (matched.platform) {\n browser[matched.platform] = true\n }\n\n const knownMobiles = browser.android ||\n browser.ios ||\n browser.bb ||\n browser.blackberry ||\n browser.ipad ||\n browser.iphone ||\n browser.ipod ||\n browser.kindle ||\n browser.playbook ||\n browser.silk ||\n browser['windows phone']\n\n // These are all considered mobile platforms, meaning they run a mobile browser\n if (knownMobiles === true || userAgent.indexOf('mobile') > -1) {\n browser.mobile = true\n\n if (browser.edga || browser.edgios) {\n browser.edge = true\n matched.browser = 'edge'\n }\n else if (browser.crios) {\n browser.chrome = true\n matched.browser = 'chrome'\n }\n else if (browser.fxios) {\n browser.firefox = true\n matched.browser = 'firefox'\n }\n }\n // If it's not mobile we should consider it's desktop platform, meaning it runs a desktop browser\n // It's a workaround for anonymized user agents\n // (browser.cros || browser.mac || browser.linux || browser.win)\n else {\n browser.desktop = true\n }\n\n // Set iOS if on iPod, iPad or iPhone\n if (browser.ipod || browser.ipad || browser.iphone) {\n browser.ios = true\n }\n\n if (browser['windows phone']) {\n browser.winphone = true\n delete browser['windows phone']\n }\n\n // Chrome, Opera 15+, Vivaldi and Safari are webkit based browsers\n if (\n browser.chrome ||\n browser.opr ||\n browser.safari ||\n browser.vivaldi ||\n // we expect unknown, non iOS mobile browsers to be webkit based\n (\n browser.mobile === true &&\n browser.ios !== true &&\n knownMobiles !== true\n )\n ) {\n browser.webkit = true\n }\n\n // IE11 has a new token so we will assign it msie to avoid breaking changes\n if (browser.rv || browser.iemobile) {\n matched.browser = 'ie'\n browser.ie = true\n }\n\n // Blackberry browsers are marked as Safari on BlackBerry\n if (browser.safari && browser.blackberry || browser.bb) {\n matched.browser = 'blackberry'\n browser.blackberry = true\n }\n\n // Playbook browsers are marked as Safari on Playbook\n if (browser.safari && browser.playbook) {\n matched.browser = 'playbook'\n browser.playbook = true\n }\n\n // Opera 15+ are identified as opr\n if (browser.opr) {\n matched.browser = 'opera'\n browser.opera = true\n }\n\n // Stock Android browsers are marked as Safari on Android.\n if (browser.safari && browser.android) {\n matched.browser = 'android'\n browser.android = true\n }\n\n // Kindle browsers are marked as Safari on Kindle\n if (browser.safari && browser.kindle) {\n matched.browser = 'kindle'\n browser.kindle = true\n }\n\n // Kindle Silk browsers are marked as Safari on Kindle\n if (browser.safari && browser.silk) {\n matched.browser = 'silk'\n browser.silk = true\n }\n\n if (browser.vivaldi) {\n matched.browser = 'vivaldi'\n browser.vivaldi = true\n }\n\n // Assign the name and platform variable\n browser.name = matched.browser\n browser.platform = matched.platform\n\n if (isSSR === false) {\n if (userAgent.indexOf('electron') > -1) {\n browser.electron = true\n }\n else if (document.location.href.indexOf('-extension://') > -1) {\n browser.bex = true\n }\n else {\n if (window.Capacitor !== void 0) {\n browser.capacitor = true\n browser.nativeMobile = true\n browser.nativeMobileWrapper = 'capacitor'\n }\n else if (window._cordovaNative !== void 0 || window.cordova !== void 0) {\n browser.cordova = true\n browser.nativeMobile = true\n browser.nativeMobileWrapper = 'cordova'\n }\n\n if (\n hasTouch === true &&\n browser.mac === true &&\n (\n (browser.desktop === true && browser.safari === true) ||\n (\n browser.nativeMobile === true &&\n browser.android !== true &&\n browser.ios !== true &&\n browser.ipad !== true\n )\n )\n ) {\n /*\n * Correction needed for iOS since the default\n * setting on iPad is to request desktop view; if we have\n * touch support and the user agent says it's a\n * desktop, we infer that it's an iPhone/iPad with desktop view\n * so we must fix the false positives\n */\n applyIosCorrection(browser)\n }\n }\n\n fromSSR = browser.nativeMobile === void 0 &&\n browser.electron === void 0 &&\n document.querySelector('[data-server-rendered]') !== null\n\n if (fromSSR === true) {\n onSSR = true\n }\n }\n\n return browser\n}\n\nconst userAgent = isSSR !== true\n ? navigator.userAgent || navigator.vendor || window.opera\n : ''\n\nconst ssrClient = {\n has: {\n touch: false,\n webStorage: false\n },\n within: { iframe: false }\n}\n\n// We export \"client\" for hydration error-free parts,\n// like touch directives who do not (and must NOT) wait\n// for the client takeover;\n// Do NOT import this directly in your app, unless you really know\n// what you are doing.\nexport const client = isSSR === false\n ? {\n userAgent,\n is: getPlatform(userAgent),\n has: {\n touch: hasTouch,\n webStorage: (() => {\n try {\n if (window.localStorage) {\n return true\n }\n }\n catch (e) {}\n return false\n })()\n },\n within: {\n iframe: window.self !== window.top\n }\n }\n : ssrClient\n\nconst Platform = {\n install ($q, queues) {\n if (isSSR === true) {\n // we're on server-side, so we push\n // to the server queue instead of\n // applying directly\n queues.server.push((q, ctx) => {\n q.platform = this.parseSSR(ctx.ssr)\n })\n }\n else if (fromSSR === true) {\n // must match with server-side before\n // client taking over in order to prevent\n // hydration errors\n Object.assign(this, client, iosCorrection, ssrClient)\n\n // takeover should increase accuracy for\n // the rest of the props; we also avoid\n // hydration errors\n queues.takeover.push(q => {\n onSSR = fromSSR = false\n Object.assign(q.platform, client)\n iosCorrection = void 0\n })\n\n // we need to make platform reactive\n // for the takeover phase\n Vue.util.defineReactive($q, 'platform', this)\n }\n else {\n // we don't have any business with SSR, so\n // directly applying...\n Object.assign(this, client)\n $q.platform = this\n }\n }\n}\n\nif (isSSR === true) {\n Platform.parseSSR = (/* ssrContext */ ssr) => {\n const userAgent = ssr.req.headers['user-agent'] || ssr.req.headers['User-Agent'] || ''\n return {\n ...client,\n userAgent,\n is: getPlatform(userAgent)\n }\n }\n}\nelse {\n iosEmulated = client.is.ios === true &&\n window.navigator.vendor.toLowerCase().indexOf('apple') === -1\n}\n\nexport default Platform\n","export const listenOpts = {\n hasPassive: false,\n passiveCapture: true,\n notPassiveCapture: true\n}\n\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get () {\n Object.assign(listenOpts, {\n hasPassive: true,\n passive: { passive: true },\n notPassive: { passive: false },\n passiveCapture: { passive: true, capture: true },\n notPassiveCapture: { passive: false, capture: true }\n })\n }\n })\n window.addEventListener('qtest', null, opts)\n window.removeEventListener('qtest', null, opts)\n}\ncatch (e) {}\n\nexport function noop () {}\n\nexport function leftClick (e) {\n return e.button === 0\n}\n\nexport function middleClick (e) {\n return e.button === 1\n}\n\nexport function rightClick (e) {\n return e.button === 2\n}\n\nexport function position (e) {\n if (e.touches && e.touches[0]) {\n e = e.touches[0]\n }\n else if (e.changedTouches && e.changedTouches[0]) {\n e = e.changedTouches[0]\n }\n else if (e.targetTouches && e.targetTouches[0]) {\n e = e.targetTouches[0]\n }\n\n return {\n top: e.clientY,\n left: e.clientX\n }\n}\n\nexport function getEventPath (e) {\n if (e.path) {\n return e.path\n }\n if (e.composedPath) {\n return e.composedPath()\n }\n\n const path = []\n let el = e.target\n\n while (el) {\n path.push(el)\n\n if (el.tagName === 'HTML') {\n path.push(document)\n path.push(window)\n return path\n }\n\n el = el.parentElement\n }\n}\n\n// Reasonable defaults\nconst\n LINE_HEIGHT = 40,\n PAGE_HEIGHT = 800\n\nexport function getMouseWheelDistance (e) {\n let x = e.deltaX, y = e.deltaY\n\n if ((x || y) && e.deltaMode) {\n const multiplier = e.deltaMode === 1 ? LINE_HEIGHT : PAGE_HEIGHT\n x *= multiplier\n y *= multiplier\n }\n\n if (e.shiftKey && !x) {\n [y, x] = [x, y]\n }\n\n return { x, y }\n}\n\nexport function stop (e) {\n e.stopPropagation()\n}\n\nexport function prevent (e) {\n e.cancelable !== false && e.preventDefault()\n}\n\nexport function stopAndPrevent (e) {\n e.cancelable !== false && e.preventDefault()\n e.stopPropagation()\n}\n\nexport function stopAndPreventClick (evt) {\n stopAndPrevent(evt)\n\n if (evt.type === 'mousedown') {\n const handler = e => {\n e.target === evt.target && stopAndPrevent(e)\n document.removeEventListener('click', handler, listenOpts.notPassiveCapture)\n }\n\n document.addEventListener('click', handler, listenOpts.notPassiveCapture)\n }\n}\n\nexport function preventDraggable (el, status) {\n if (el === void 0 || (status === true && el.__dragPrevented === true)) {\n return\n }\n\n const fn = status === true\n ? el => {\n el.__dragPrevented = true\n el.addEventListener('dragstart', prevent, listenOpts.notPassiveCapture)\n }\n : el => {\n delete el.__dragPrevented\n el.removeEventListener('dragstart', prevent, listenOpts.notPassiveCapture)\n }\n\n el.querySelectorAll('a, img').forEach(fn)\n}\n\nexport function create (name, { bubbles = false, cancelable = false } = {}) {\n try {\n return new CustomEvent(name, { bubbles, cancelable })\n }\n catch (e) {\n // IE doesn't support `new Event()`, so...\n const evt = document.createEvent('Event')\n evt.initEvent(name, bubbles, cancelable)\n return evt\n }\n}\n\nexport function addEvt (ctx, targetName, events) {\n const name = `__q_${targetName}_evt`\n\n ctx[name] = ctx[name] !== void 0\n ? ctx[name].concat(events)\n : events\n\n events.forEach(evt => {\n evt[0].addEventListener(evt[1], ctx[evt[2]], listenOpts[evt[3]])\n })\n}\n\nexport function cleanEvt (ctx, targetName) {\n const name = `__q_${targetName}_evt`\n\n if (ctx[name] !== void 0) {\n ctx[name].forEach(evt => {\n evt[0].removeEventListener(evt[1], ctx[evt[2]], listenOpts[evt[3]])\n })\n ctx[name] = void 0\n }\n}\n\n/*\n * also update /types/utils/event.d.ts\n */\n\nexport default {\n listenOpts,\n leftClick,\n middleClick,\n rightClick,\n position,\n getEventPath,\n getMouseWheelDistance,\n stop,\n prevent,\n stopAndPrevent,\n preventDraggable,\n create\n}\n","export default function (fn, wait = 250, immediate) {\n let timeout\n\n function debounced (/* ...args */) {\n const args = arguments\n\n const later = () => {\n timeout = void 0\n if (immediate !== true) {\n fn.apply(this, args)\n }\n }\n\n clearTimeout(timeout)\n if (immediate === true && timeout === void 0) {\n fn.apply(this, args)\n }\n timeout = setTimeout(later, wait)\n }\n\n debounced.cancel = () => {\n clearTimeout(timeout)\n }\n\n return debounced\n}\n","import Vue from 'vue'\n\nimport { isSSR, fromSSR, client } from './Platform.js'\nimport { listenOpts, noop } from '../utils/event.js'\nimport debounce from '../utils/debounce.js'\n\nconst SIZE_LIST = ['sm', 'md', 'lg', 'xl']\nconst { passive } = listenOpts\n\nexport default {\n width: 0,\n height: 0,\n\n name: 'xs',\n\n sizes: {\n sm: 600,\n md: 1024,\n lg: 1440,\n xl: 1920\n },\n\n lt: {\n sm: true,\n md: true,\n lg: true,\n xl: true\n },\n gt: {\n xs: false,\n sm: false,\n md: false,\n lg: false\n },\n xs: true,\n sm: false,\n md: false,\n lg: false,\n xl: false,\n\n setSizes: noop,\n setDebounce: noop,\n\n install ($q, queues, cfg) {\n if (isSSR === true) {\n $q.screen = this\n return\n }\n\n const { visualViewport } = window\n const target = visualViewport || window\n const scrollingElement = document.scrollingElement || document.documentElement\n const getSize = visualViewport === void 0 || client.is.mobile === true\n ? () => [\n Math.max(window.innerWidth, scrollingElement.clientWidth),\n Math.max(window.innerHeight, scrollingElement.clientHeight)\n ]\n : () => [\n visualViewport.width * visualViewport.scale + window.innerWidth - scrollingElement.clientWidth,\n visualViewport.height * visualViewport.scale + window.innerHeight - scrollingElement.clientHeight\n ]\n\n const classes = cfg.screen !== void 0 && cfg.screen.bodyClasses === true\n\n const update = force => {\n const [ w, h ] = getSize()\n\n if (h !== this.height) {\n this.height = h\n }\n\n if (w !== this.width) {\n this.width = w\n }\n else if (force !== true) {\n return\n }\n\n let s = this.sizes\n\n this.gt.xs = w >= s.sm\n this.gt.sm = w >= s.md\n this.gt.md = w >= s.lg\n this.gt.lg = w >= s.xl\n this.lt.sm = w < s.sm\n this.lt.md = w < s.md\n this.lt.lg = w < s.lg\n this.lt.xl = w < s.xl\n this.xs = this.lt.sm\n this.sm = this.gt.xs === true && this.lt.md === true\n this.md = this.gt.sm === true && this.lt.lg === true\n this.lg = this.gt.md === true && this.lt.xl === true\n this.xl = this.gt.lg\n\n s = (this.xs === true && 'xs') ||\n (this.sm === true && 'sm') ||\n (this.md === true && 'md') ||\n (this.lg === true && 'lg') ||\n 'xl'\n\n if (s !== this.name) {\n if (classes === true) {\n document.body.classList.remove(`screen--${this.name}`)\n document.body.classList.add(`screen--${s}`)\n }\n this.name = s\n }\n }\n\n let updateEvt, updateSizes = {}, updateDebounce = 16\n\n this.setSizes = sizes => {\n SIZE_LIST.forEach(name => {\n if (sizes[name] !== void 0) {\n updateSizes[name] = sizes[name]\n }\n })\n }\n this.setDebounce = deb => {\n updateDebounce = deb\n }\n\n const start = () => {\n const style = getComputedStyle(document.body)\n\n // if css props available\n if (style.getPropertyValue('--q-size-sm')) {\n SIZE_LIST.forEach(name => {\n this.sizes[name] = parseInt(style.getPropertyValue(`--q-size-${name}`), 10)\n })\n }\n\n this.setSizes = sizes => {\n SIZE_LIST.forEach(name => {\n if (sizes[name]) {\n this.sizes[name] = sizes[name]\n }\n })\n update(true)\n }\n\n this.setDebounce = delay => {\n updateEvt !== void 0 && target.removeEventListener('resize', updateEvt, passive)\n updateEvt = delay > 0\n ? debounce(update, delay)\n : update\n target.addEventListener('resize', updateEvt, passive)\n }\n\n this.setDebounce(updateDebounce)\n\n if (Object.keys(updateSizes).length > 0) {\n this.setSizes(updateSizes)\n updateSizes = void 0 // free up memory\n }\n else {\n update()\n }\n\n // due to optimizations, this would be left out otherwise\n classes === true && this.name === 'xs' &&\n document.body.classList.add('screen--xs')\n }\n\n if (fromSSR === true) {\n queues.takeover.push(start)\n }\n else {\n start()\n }\n\n Vue.util.defineReactive($q, 'screen', this)\n }\n}\n","import Vue from 'vue'\n\nimport { isSSR, fromSSR } from './Platform.js'\nimport { noop } from '../utils/event.js'\n\nconst Dark = {\n isActive: false,\n mode: false,\n\n install ($q, queues, { dark }) {\n this.isActive = dark === true\n\n if (isSSR === true) {\n queues.server.push((q, ctx) => {\n q.dark = {\n isActive: false,\n mode: false,\n set: val => {\n ctx.ssr.Q_BODY_CLASSES = ctx.ssr.Q_BODY_CLASSES\n .replace(' body--light', '')\n .replace(' body--dark', '') + ` body--${val === true ? 'dark' : 'light'}`\n\n q.dark.isActive = val === true\n q.dark.mode = val\n },\n toggle: () => {\n q.dark.set(q.dark.isActive === false)\n }\n }\n\n q.dark.set(dark)\n })\n\n this.set = noop\n return\n }\n\n const initialVal = dark !== void 0\n ? dark\n : false\n\n if (fromSSR === true) {\n const ssrSet = val => {\n this.__fromSSR = val\n }\n\n const originalSet = this.set\n\n this.set = ssrSet\n ssrSet(initialVal)\n\n queues.takeover.push(() => {\n this.set = originalSet\n this.set(this.__fromSSR)\n })\n }\n else {\n this.set(initialVal)\n }\n\n Vue.util.defineReactive(this, 'isActive', this.isActive)\n Vue.util.defineReactive($q, 'dark', this)\n },\n\n set (val) {\n this.mode = val\n\n if (val === 'auto') {\n if (this.__media === void 0) {\n this.__media = window.matchMedia('(prefers-color-scheme: dark)')\n this.__updateMedia = () => { this.set('auto') }\n this.__media.addListener(this.__updateMedia)\n }\n\n val = this.__media.matches\n }\n else if (this.__media !== void 0) {\n this.__media.removeListener(this.__updateMedia)\n this.__media = void 0\n }\n\n this.isActive = val === true\n\n document.body.classList.remove(`body--${val === true ? 'light' : 'dark'}`)\n document.body.classList.add(`body--${val === true ? 'dark' : 'light'}`)\n },\n\n toggle () {\n Dark.set(Dark.isActive === false)\n },\n\n __media: void 0\n}\n\nexport default Dark\n","import { isSSR, client } from './plugins/Platform.js'\nimport { noop } from './utils/event.js'\n\nconst getTrue = () => true\n\nfunction filterInvalidPath (path) {\n return typeof path === 'string' &&\n path !== '' &&\n path !== '/' &&\n path !== '#/'\n}\n\nfunction normalizeExitPath (path) {\n path.startsWith('#') === true && (path = path.substr(1))\n path.startsWith('/') === false && (path = '/' + path)\n path.endsWith('/') === true && (path = path.substr(0, path.length - 1))\n return '#' + path\n}\n\nfunction getShouldExitFn (cfg) {\n if (cfg.backButtonExit === false) {\n return () => false\n }\n\n if (cfg.backButtonExit === '*') {\n return getTrue\n }\n\n // Add default root path\n const exitPaths = [ '#/' ]\n\n // Add custom exit paths\n Array.isArray(cfg.backButtonExit) === true && exitPaths.push(\n ...cfg.backButtonExit.filter(filterInvalidPath).map(normalizeExitPath)\n )\n\n return () => exitPaths.includes(window.location.hash)\n}\n\nexport default {\n __history: [],\n add: noop,\n remove: noop,\n\n install (cfg) {\n if (isSSR === true) {\n return\n }\n\n const { cordova, capacitor } = client.is\n\n if (cordova !== true && capacitor !== true) {\n return\n }\n\n const qConf = cfg[cordova === true ? 'cordova' : 'capacitor']\n\n if (qConf !== void 0 && qConf.backButton === false) {\n return\n }\n\n // if the '@capacitor/app' plugin is not installed\n // then we got nothing to do\n if (\n // if we're on Capacitor mode\n capacitor === true &&\n // and it's also not in Capacitor's main instance\n (window.Capacitor === void 0 || window.Capacitor.Plugins.App === void 0)\n ) {\n return\n }\n\n this.add = entry => {\n if (entry.condition === void 0) {\n entry.condition = getTrue\n }\n this.__history.push(entry)\n }\n\n this.remove = entry => {\n const index = this.__history.indexOf(entry)\n if (index >= 0) {\n this.__history.splice(index, 1)\n }\n }\n\n const shouldExit = getShouldExitFn(\n Object.assign(\n { backButtonExit: true },\n qConf\n )\n )\n\n const backHandler = () => {\n if (this.__history.length) {\n const entry = this.__history[this.__history.length - 1]\n\n if (entry.condition() === true) {\n this.__history.pop()\n entry.handler()\n }\n }\n else if (shouldExit() === true) {\n navigator.app.exitApp()\n }\n else {\n window.history.back()\n }\n }\n\n if (cordova === true) {\n document.addEventListener('deviceready', () => {\n document.addEventListener('backbutton', backHandler, false)\n })\n }\n else {\n window.Capacitor.Plugins.App.addListener('backButton', backHandler)\n }\n }\n}\n","export default {\n isoName: 'en-us',\n nativeName: 'English (US)',\n label: {\n clear: 'Clear',\n ok: 'OK',\n cancel: 'Cancel',\n close: 'Close',\n set: 'Set',\n select: 'Select',\n reset: 'Reset',\n remove: 'Remove',\n update: 'Update',\n create: 'Create',\n search: 'Search',\n filter: 'Filter',\n refresh: 'Refresh',\n expand: function (label) { return label ? `Expand \"${label}\"` : 'Expand' },\n collapse: function (label) { return label ? `Collapse \"${label}\"` : 'Collapse' }\n },\n date: {\n days: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n daysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_'),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n firstDayOfWeek: 0, // 0-6, 0 - Sunday, 1 Monday, ...\n format24h: false,\n pluralDay: 'days'\n },\n table: {\n noData: 'No data available',\n noResults: 'No matching records found',\n loading: 'Loading...',\n selectedRecords: function (rows) {\n return rows === 1\n ? '1 record selected.'\n : (rows === 0 ? 'No' : rows) + ' records selected.'\n },\n recordsPerPage: 'Records per page:',\n allRows: 'All',\n pagination: function (start, end, total) {\n return start + '-' + end + ' of ' + total\n },\n columns: 'Columns'\n },\n editor: {\n url: 'URL',\n bold: 'Bold',\n italic: 'Italic',\n strikethrough: 'Strikethrough',\n underline: 'Underline',\n unorderedList: 'Unordered List',\n orderedList: 'Ordered List',\n subscript: 'Subscript',\n superscript: 'Superscript',\n hyperlink: 'Hyperlink',\n toggleFullscreen: 'Toggle Fullscreen',\n quote: 'Quote',\n left: 'Left align',\n center: 'Center align',\n right: 'Right align',\n justify: 'Justify align',\n print: 'Print',\n outdent: 'Decrease indentation',\n indent: 'Increase indentation',\n removeFormat: 'Remove formatting',\n formatting: 'Formatting',\n fontSize: 'Font Size',\n align: 'Align',\n hr: 'Insert Horizontal Rule',\n undo: 'Undo',\n redo: 'Redo',\n heading1: 'Heading 1',\n heading2: 'Heading 2',\n heading3: 'Heading 3',\n heading4: 'Heading 4',\n heading5: 'Heading 5',\n heading6: 'Heading 6',\n paragraph: 'Paragraph',\n code: 'Code',\n size1: 'Very small',\n size2: 'A bit small',\n size3: 'Normal',\n size4: 'Medium-large',\n size5: 'Big',\n size6: 'Very big',\n size7: 'Maximum',\n defaultFont: 'Default Font',\n viewSource: 'View Source'\n },\n tree: {\n noNodes: 'No nodes available',\n noResults: 'No matching nodes found'\n }\n}\n","import Vue from 'vue'\n\nimport defaultLang from '../lang/en-us.js'\nimport { isSSR, fromSSR } from './plugins/Platform.js'\n\nfunction getLocale () {\n if (isSSR === true) { return }\n\n const val =\n navigator.language ||\n navigator.languages[0] ||\n navigator.browserLanguage ||\n navigator.userLanguage ||\n navigator.systemLanguage\n\n if (val) {\n return val.toLowerCase()\n }\n}\n\nconst Plugin = {\n getLocale,\n\n install ($q, queues, lang) {\n const initialLang = lang || defaultLang\n\n this.set = (langObject = defaultLang, ssrContext) => {\n const lang = {\n ...langObject,\n rtl: langObject.rtl === true,\n getLocale\n }\n\n if (isSSR === true) {\n if (ssrContext === void 0) {\n console.error('SSR ERROR: second param required: Quasar.lang.set(lang, ssrContext)')\n return\n }\n\n const dir = lang.rtl === true ? 'rtl' : 'ltr'\n const attrs = `lang=${lang.isoName} dir=${dir}`\n\n lang.set = ssrContext.$q.lang.set\n\n ssrContext.Q_HTML_ATTRS = ssrContext.Q_PREV_LANG !== void 0\n ? ssrContext.Q_HTML_ATTRS.replace(ssrContext.Q_PREV_LANG, attrs)\n : attrs\n\n ssrContext.Q_PREV_LANG = attrs\n ssrContext.$q.lang = lang\n }\n else {\n if (fromSSR === false) {\n const el = document.documentElement\n el.setAttribute('dir', lang.rtl === true ? 'rtl' : 'ltr')\n el.setAttribute('lang', lang.isoName)\n }\n\n lang.set = this.set\n $q.lang = this.props = lang\n this.isoName = lang.isoName\n this.nativeName = lang.nativeName\n }\n }\n\n if (isSSR === true) {\n queues.server.push((q, ctx) => {\n q.lang = {}\n q.lang.set = langObject => {\n this.set(langObject, ctx.ssr)\n }\n\n q.lang.set(initialLang)\n })\n\n this.isoName = initialLang.isoName\n this.nativeName = initialLang.nativeName\n this.props = initialLang\n }\n else {\n Vue.util.defineReactive($q, 'lang', {})\n this.set(initialLang)\n }\n }\n}\n\nexport default Plugin\nexport { defaultLang }\n","const reRGBA = /^rgb(a)?\\((\\d{1,3}),(\\d{1,3}),(\\d{1,3}),?([01]?\\.?\\d*?)?\\)$/\n\nexport function rgbToHex ({ r, g, b, a }) {\n const alpha = a !== void 0\n\n r = Math.round(r)\n g = Math.round(g)\n b = Math.round(b)\n\n if (\n r > 255 ||\n g > 255 ||\n b > 255 ||\n (alpha && a > 100)\n ) {\n throw new TypeError('Expected 3 numbers below 256 (and optionally one below 100)')\n }\n\n a = alpha\n ? (Math.round(255 * a / 100) | 1 << 8).toString(16).slice(1)\n : ''\n\n return '#' + ((b | g << 8 | r << 16) | 1 << 24).toString(16).slice(1) + a\n}\n\nexport function rgbToString ({ r, g, b, a }) {\n return `rgb${a !== void 0 ? 'a' : ''}(${r},${g},${b}${a !== void 0 ? ',' + (a / 100) : ''})`\n}\n\nexport function hexToRgb (hex) {\n if (typeof hex !== 'string') {\n throw new TypeError('Expected a string')\n }\n\n hex = hex.replace(/^#/, '')\n\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2]\n }\n else if (hex.length === 4) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2] + hex[3] + hex[3]\n }\n\n const num = parseInt(hex, 16)\n\n return hex.length > 6\n ? { r: num >> 24 & 255, g: num >> 16 & 255, b: num >> 8 & 255, a: Math.round((num & 255) / 2.55) }\n : { r: num >> 16, g: num >> 8 & 255, b: num & 255 }\n}\n\nexport function hsvToRgb ({ h, s, v, a }) {\n let r, g, b\n s = s / 100\n v = v / 100\n\n h = h / 360\n const\n i = Math.floor(h * 6),\n f = h * 6 - i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s)\n\n switch (i % 6) {\n case 0:\n r = v\n g = t\n b = p\n break\n case 1:\n r = q\n g = v\n b = p\n break\n case 2:\n r = p\n g = v\n b = t\n break\n case 3:\n r = p\n g = q\n b = v\n break\n case 4:\n r = t\n g = p\n b = v\n break\n case 5:\n r = v\n g = p\n b = q\n break\n }\n\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255),\n a\n }\n}\n\nexport function rgbToHsv ({ r, g, b, a }) {\n const\n max = Math.max(r, g, b),\n min = Math.min(r, g, b),\n d = max - min,\n s = (max === 0 ? 0 : d / max),\n v = max / 255\n let h\n\n switch (max) {\n case min:\n h = 0\n break\n case r:\n h = (g - b) + d * (g < b ? 6 : 0)\n h /= 6 * d\n break\n case g:\n h = (b - r) + d * 2\n h /= 6 * d\n break\n case b:\n h = (r - g) + d * 4\n h /= 6 * d\n break\n }\n\n return {\n h: Math.round(h * 360),\n s: Math.round(s * 100),\n v: Math.round(v * 100),\n a\n }\n}\n\nexport function textToRgb (str) {\n if (typeof str !== 'string') {\n throw new TypeError('Expected a string')\n }\n\n const color = str.replace(/ /g, '')\n\n const m = reRGBA.exec(color)\n\n if (m === null) {\n return hexToRgb(color)\n }\n\n const rgb = {\n r: Math.min(255, parseInt(m[2], 10)),\n g: Math.min(255, parseInt(m[3], 10)),\n b: Math.min(255, parseInt(m[4], 10))\n }\n\n if (m[1]) {\n const alpha = parseFloat(m[5])\n rgb.a = Math.min(1, isNaN(alpha) === true ? 1 : alpha) * 100\n }\n\n return rgb\n}\n\n/* works as darken if percent < 0 */\nexport function lighten (color, percent) {\n if (typeof color !== 'string') {\n throw new TypeError('Expected a string as color')\n }\n if (typeof percent !== 'number') {\n throw new TypeError('Expected a numeric percent')\n }\n\n const rgb = textToRgb(color),\n t = percent < 0 ? 0 : 255,\n p = Math.abs(percent) / 100,\n R = rgb.r,\n G = rgb.g,\n B = rgb.b\n\n return '#' + (\n 0x1000000 + (Math.round((t - R) * p) + R) * 0x10000 +\n (Math.round((t - G) * p) + G) * 0x100 +\n (Math.round((t - B) * p) + B)\n ).toString(16).slice(1)\n}\n\nexport function luminosity (color) {\n if (typeof color !== 'string' && (!color || color.r === void 0)) {\n throw new TypeError('Expected a string or a {r, g, b} object as color')\n }\n\n const\n rgb = typeof color === 'string' ? textToRgb(color) : color,\n r = rgb.r / 255,\n g = rgb.g / 255,\n b = rgb.b / 255,\n R = r <= 0.03928 ? r / 12.92 : Math.pow((r + 0.055) / 1.055, 2.4),\n G = g <= 0.03928 ? g / 12.92 : Math.pow((g + 0.055) / 1.055, 2.4),\n B = b <= 0.03928 ? b / 12.92 : Math.pow((b + 0.055) / 1.055, 2.4)\n return 0.2126 * R + 0.7152 * G + 0.0722 * B\n}\n\nexport function brightness (color) {\n if (typeof color !== 'string' && (!color || color.r === void 0)) {\n throw new TypeError('Expected a string or a {r, g, b} object as color')\n }\n\n const rgb = typeof color === 'string'\n ? textToRgb(color)\n : color\n\n return (rgb.r * 299 + rgb.g * 587 + rgb.b * 114) / 1000\n}\n\nexport function blend (fgColor, bgColor) {\n if (typeof fgColor !== 'string' && (!fgColor || fgColor.r === void 0)) {\n throw new TypeError('Expected a string or a {r, g, b[, a]} object as fgColor')\n }\n\n if (typeof bgColor !== 'string' && (!bgColor || bgColor.r === void 0)) {\n throw new TypeError('Expected a string or a {r, g, b[, a]} object as bgColor')\n }\n\n const\n rgb1 = typeof fgColor === 'string' ? textToRgb(fgColor) : fgColor,\n r1 = rgb1.r / 255,\n g1 = rgb1.g / 255,\n b1 = rgb1.b / 255,\n a1 = rgb1.a !== void 0 ? rgb1.a / 100 : 1,\n rgb2 = typeof bgColor === 'string' ? textToRgb(bgColor) : bgColor,\n r2 = rgb2.r / 255,\n g2 = rgb2.g / 255,\n b2 = rgb2.b / 255,\n a2 = rgb2.a !== void 0 ? rgb2.a / 100 : 1,\n a = a1 + a2 * (1 - a1),\n r = Math.round(((r1 * a1 + r2 * a2 * (1 - a1)) / a) * 255),\n g = Math.round(((g1 * a1 + g2 * a2 * (1 - a1)) / a) * 255),\n b = Math.round(((b1 * a1 + b2 * a2 * (1 - a1)) / a) * 255)\n\n const ret = { r, g, b, a: Math.round(a * 100) }\n return typeof fgColor === 'string'\n ? rgbToHex(ret)\n : ret\n}\n\nexport function changeAlpha (color, offset) {\n if (typeof color !== 'string') {\n throw new TypeError('Expected a string as color')\n }\n\n if (offset === void 0 || offset < -1 || offset > 1) {\n throw new TypeError('Expected offset to be between -1 and 1')\n }\n\n const { r, g, b, a } = textToRgb(color)\n const alpha = a !== void 0 ? a / 100 : 0\n\n return rgbToHex({\n r, g, b, a: Math.round(Math.min(1, Math.max(0, alpha + offset)) * 100)\n })\n}\n\nexport function setBrand (color, value, element = document.body) {\n if (typeof color !== 'string') {\n throw new TypeError('Expected a string as color')\n }\n if (typeof value !== 'string') {\n throw new TypeError('Expected a string as value')\n }\n if (!(element instanceof Element)) {\n throw new TypeError('Expected a DOM element')\n }\n\n element.style.setProperty(`--q-color-${color}`, value)\n}\n\nexport function getBrand (color, element = document.body) {\n if (typeof color !== 'string') {\n throw new TypeError('Expected a string as color')\n }\n if (!(element instanceof Element)) {\n throw new TypeError('Expected a DOM element')\n }\n\n return getComputedStyle(element).getPropertyValue(`--q-color-${color}`).trim() || null\n}\n\nexport function getPaletteColor (colorName) {\n if (typeof colorName !== 'string') {\n throw new TypeError('Expected a string as color')\n }\n\n const el = document.createElement('div')\n\n el.className = `text-${colorName} invisible fixed no-pointer-events`\n document.body.appendChild(el)\n\n const result = getComputedStyle(el).getPropertyValue('color')\n\n el.remove()\n\n return rgbToHex(textToRgb(result))\n}\n\n// TODO: remove in v2\nexport const stringToRgb = textToRgb\n\nexport default {\n rgbToHex,\n hexToRgb,\n hsvToRgb,\n rgbToHsv,\n textToRgb,\n lighten,\n luminosity,\n brightness,\n blend,\n changeAlpha,\n setBrand,\n getBrand,\n getPaletteColor\n}\n","let lastKeyCompositionStatus = false\n\nexport function onKeyDownComposition (evt) {\n lastKeyCompositionStatus = evt.isComposing === true\n}\n\nexport function shouldIgnoreKey (evt) {\n return lastKeyCompositionStatus === true ||\n evt !== Object(evt) ||\n evt.isComposing === true ||\n evt.qKeyEvent === true\n}\n\nexport function isKeyCode (evt, keyCodes) {\n return shouldIgnoreKey(evt) === true\n ? false\n : [].concat(keyCodes).includes(evt.keyCode)\n}\n","import { setBrand } from './utils/colors.js'\nimport { noop } from './utils/event.js'\nimport { onKeyDownComposition } from './utils/private/key-composition.js'\nimport { isSSR, fromSSR, client, iosCorrection } from './plugins/Platform.js'\n\nfunction getMobilePlatform (is) {\n if (is.ios === true) return 'ios'\n if (is.android === true) return 'android'\n}\n\nfunction getBodyClasses ({ is, has, within }, cfg) {\n const cls = [\n is.desktop === true ? 'desktop' : 'mobile',\n `${has.touch === false ? 'no-' : ''}touch`\n ]\n\n if (is.mobile === true) {\n const mobile = getMobilePlatform(is)\n mobile !== void 0 && cls.push('platform-' + mobile)\n }\n\n if (is.nativeMobile === true) {\n const type = is.nativeMobileWrapper\n\n cls.push(type)\n cls.push('native-mobile')\n\n if (\n is.ios === true &&\n (cfg[type] === void 0 || cfg[type].iosStatusBarPadding !== false)\n ) {\n cls.push('q-ios-padding')\n }\n }\n else if (is.electron === true) {\n cls.push('electron')\n }\n else if (is.bex === true) {\n cls.push('bex')\n }\n\n within.iframe === true && cls.push('within-iframe')\n\n return cls\n}\n\n// SSR takeover corrections\nfunction clientUpdate () {\n const classes = document.body.className\n let newCls = classes\n\n if (iosCorrection !== void 0) {\n newCls = newCls.replace('desktop', 'platform-ios mobile')\n }\n\n if (client.has.touch === true) {\n newCls = newCls.replace('no-touch', 'touch')\n }\n\n if (client.within.iframe === true) {\n newCls += ' within-iframe'\n }\n\n if (classes !== newCls) {\n document.body.className = newCls\n }\n}\n\nfunction setColors (brand) {\n for (const color in brand) {\n setBrand(color, brand[color])\n }\n}\n\nexport default {\n install (queues, cfg) {\n if (isSSR === true) {\n queues.server.push((q, ctx) => {\n const\n cls = getBodyClasses(q.platform, cfg),\n fn = ctx.ssr.setBodyClasses\n\n if (cfg.screen !== void 0 && cfg.screen.bodyClass === true) {\n cls.push('screen--xs')\n }\n\n if (typeof fn === 'function') {\n fn(cls)\n }\n else {\n ctx.ssr.Q_BODY_CLASSES = cls.join(' ')\n }\n })\n\n return\n }\n\n if (fromSSR === true) {\n clientUpdate()\n }\n else {\n const cls = getBodyClasses(client, cfg)\n\n if (client.is.ie === true && client.is.versionNumber === 11) {\n cls.forEach(c => document.body.classList.add(c))\n }\n else {\n document.body.classList.add.apply(document.body.classList, cls)\n }\n }\n\n cfg.brand !== void 0 && setColors(cfg.brand)\n\n if (client.is.ios === true) {\n // needed for iOS button active state\n document.body.addEventListener('touchstart', noop)\n }\n\n window.addEventListener('keydown', onKeyDownComposition, true)\n }\n}\n","export default {\n name: 'material-icons',\n type: {\n positive: 'check_circle',\n negative: 'warning',\n info: 'info',\n warning: 'priority_high'\n },\n arrow: {\n up: 'arrow_upward',\n right: 'arrow_forward',\n down: 'arrow_downward',\n left: 'arrow_back',\n dropdown: 'arrow_drop_down'\n },\n chevron: {\n left: 'chevron_left',\n right: 'chevron_right'\n },\n colorPicker: {\n spectrum: 'gradient',\n tune: 'tune',\n palette: 'style'\n },\n pullToRefresh: {\n icon: 'refresh'\n },\n carousel: {\n left: 'chevron_left',\n right: 'chevron_right',\n up: 'keyboard_arrow_up',\n down: 'keyboard_arrow_down',\n navigationIcon: 'lens'\n },\n chip: {\n remove: 'cancel',\n selected: 'check'\n },\n datetime: {\n arrowLeft: 'chevron_left',\n arrowRight: 'chevron_right',\n now: 'access_time',\n today: 'today'\n },\n editor: {\n bold: 'format_bold',\n italic: 'format_italic',\n strikethrough: 'strikethrough_s',\n underline: 'format_underlined',\n unorderedList: 'format_list_bulleted',\n orderedList: 'format_list_numbered',\n subscript: 'vertical_align_bottom',\n superscript: 'vertical_align_top',\n hyperlink: 'link',\n toggleFullscreen: 'fullscreen',\n quote: 'format_quote',\n left: 'format_align_left',\n center: 'format_align_center',\n right: 'format_align_right',\n justify: 'format_align_justify',\n print: 'print',\n outdent: 'format_indent_decrease',\n indent: 'format_indent_increase',\n removeFormat: 'format_clear',\n formatting: 'text_format',\n fontSize: 'format_size',\n align: 'format_align_left',\n hr: 'remove',\n undo: 'undo',\n redo: 'redo',\n heading: 'format_size',\n code: 'code',\n size: 'format_size',\n font: 'font_download',\n viewSource: 'code'\n },\n expansionItem: {\n icon: 'keyboard_arrow_down',\n denseIcon: 'arrow_drop_down'\n },\n fab: {\n icon: 'add',\n activeIcon: 'close'\n },\n field: {\n clear: 'cancel',\n error: 'error'\n },\n pagination: {\n first: 'first_page',\n prev: 'keyboard_arrow_left',\n next: 'keyboard_arrow_right',\n last: 'last_page'\n },\n rating: {\n icon: 'grade'\n },\n stepper: {\n done: 'check',\n active: 'edit',\n error: 'warning'\n },\n tabs: {\n left: 'chevron_left',\n right: 'chevron_right',\n up: 'keyboard_arrow_up',\n down: 'keyboard_arrow_down'\n },\n table: {\n arrowUp: 'arrow_upward',\n warning: 'warning',\n firstPage: 'first_page',\n prevPage: 'chevron_left',\n nextPage: 'chevron_right',\n lastPage: 'last_page'\n },\n tree: {\n icon: 'play_arrow'\n },\n uploader: {\n done: 'done',\n clear: 'clear',\n add: 'add_box',\n upload: 'cloud_upload',\n removeQueue: 'clear_all',\n removeUploaded: 'done_all'\n }\n}\n","import Vue from 'vue'\n\nimport { isSSR } from './plugins/Platform.js'\nimport materialIcons from '../icon-set/material-icons.js'\n\nexport default {\n install ($q, queues, iconSet) {\n const initialSet = iconSet || materialIcons\n\n this.set = (setObject, ssrContext) => {\n const def = { ...setObject }\n\n if (isSSR === true) {\n if (ssrContext === void 0) {\n console.error('SSR ERROR: second param required: Quasar.iconSet.set(iconSet, ssrContext)')\n return\n }\n\n def.set = ssrContext.$q.iconSet.set\n ssrContext.$q.iconSet = def\n }\n else {\n def.set = this.set\n $q.iconSet = def\n }\n }\n\n if (isSSR === true) {\n queues.server.push((q, ctx) => {\n q.iconSet = {}\n q.iconSet.set = setObject => {\n this.set(setObject, ctx.ssr)\n }\n\n q.iconSet.set(initialSet)\n })\n }\n else {\n Vue.util.defineReactive($q, 'iconMapFn', void 0)\n Vue.util.defineReactive($q, 'iconSet', {})\n\n this.set(initialSet)\n }\n }\n}\n","import { version } from '../package.json'\nimport Platform, { isSSR } from './plugins/Platform.js'\nimport Screen from './plugins/Screen.js'\nimport Dark from './plugins/Dark.js'\nimport History from './history.js'\nimport Lang from './lang.js'\nimport Body from './body.js'\nimport IconSet from './icon-set.js'\n\nconst autoInstalled = [\n Platform, Screen, Dark\n]\n\nexport const queues = {\n server: [], // on SSR update\n takeover: [] // on client takeover\n}\n\nexport const $q = {\n version,\n config: {}\n}\n\nexport default function (Vue, opts = {}) {\n if (this.__qInstalled === true) { return }\n this.__qInstalled = true\n\n const cfg = $q.config = Object.freeze(opts.config || {})\n\n // required plugins\n Platform.install($q, queues)\n Body.install(queues, cfg)\n Dark.install($q, queues, cfg)\n Screen.install($q, queues, cfg)\n History.install(cfg)\n Lang.install($q, queues, opts.lang)\n IconSet.install($q, queues, opts.iconSet)\n\n if (isSSR === true) {\n Vue.mixin({\n beforeCreate () {\n this.$q = this.$root.$options.$q\n }\n })\n }\n else {\n Vue.prototype.$q = $q\n }\n\n opts.components && Object.keys(opts.components).forEach(key => {\n const c = opts.components[key]\n if (typeof c === 'function') {\n Vue.component(c.options.name, c)\n }\n })\n\n opts.directives && Object.keys(opts.directives).forEach(key => {\n const d = opts.directives[key]\n if (d.name !== void 0 && d.unbind !== void 0) {\n Vue.directive(d.name, d)\n }\n })\n\n if (opts.plugins) {\n const param = { $q, queues, cfg }\n Object.keys(opts.plugins).forEach(key => {\n const p = opts.plugins[key]\n if (typeof p.install === 'function' && autoInstalled.includes(p) === false) {\n p.install(param)\n }\n })\n }\n}\n","import { $q, queues } from './install.js'\n\nconst mixin = {\n mounted () {\n queues.takeover.forEach(run => {\n run(this.$q)\n })\n }\n}\n\nexport default function (ctx) {\n if (ctx.ssr) {\n const q = {\n ...$q,\n ssrContext: ctx.ssr\n }\n\n Object.assign(ctx.ssr, {\n Q_HEAD_TAGS: '',\n Q_BODY_ATTRS: '',\n Q_BODY_TAGS: ''\n })\n\n ctx.app.$q = ctx.ssr.$q = q\n\n queues.server.forEach(run => {\n run(q, ctx)\n })\n }\n else {\n const mixins = ctx.app.mixins || []\n if (mixins.includes(mixin) === false) {\n ctx.app.mixins = mixins.concat(mixin)\n }\n }\n}\n","import install from './install.js'\nimport { version } from '../package.json'\nimport lang from './lang.js'\nimport iconSet from './icon-set.js'\nimport ssrUpdate from './ssr-update.js'\n\nexport default {\n version,\n install,\n lang,\n iconSet,\n ssrUpdate\n}\n","const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB']\n\nexport function humanStorageSize (bytes) {\n let u = 0\n\n while (parseInt(bytes, 10) >= 1024 && u < units.length - 1) {\n bytes /= 1024\n ++u\n }\n\n return `${bytes.toFixed(1)}${units[u]}`\n}\n\nexport function capitalize (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n\nexport function between (v, min, max) {\n return max <= min\n ? min\n : Math.min(max, Math.max(min, v))\n}\n\nexport function normalizeToInterval (v, min, max) {\n if (max <= min) {\n return min\n }\n\n const size = (max - min + 1)\n\n let index = min + (v - min) % size\n if (index < min) {\n index = size + index\n }\n\n return index === 0 ? 0 : index // fix for (-a % a) => -0\n}\n\nexport function pad (v, length = 2, char = '0') {\n if (v === void 0 || v === null) {\n return v\n }\n\n const val = '' + v\n return val.length >= length\n ? val\n : new Array(length - val.length + 1).join(char) + val\n}\n\nexport default {\n humanStorageSize,\n capitalize,\n between,\n normalizeToInterval,\n pad\n}\n","import { isSSR } from '../../plugins/Platform.js'\n\nexport default function cache (vm, key, obj) {\n if (isSSR === true) return obj\n\n const k = `__qcache_${key}`\n return vm[k] === void 0\n ? (vm[k] = obj)\n : vm[k]\n}\n\nexport function cacheWithFn (vm, key, fn) {\n if (isSSR === true) return fn()\n\n const k = `__qcache_${key}`\n return vm[k] === void 0\n ? (vm[k] = fn())\n : vm[k]\n}\n\nexport function getPropCacheMixin (propName, proxyPropName) {\n return {\n data () {\n const target = {}\n const source = this[propName]\n\n for (const prop in source) {\n target[prop] = source[prop]\n }\n\n return { [proxyPropName]: target }\n },\n\n watch: {\n [propName] (newObj, oldObj) {\n const target = this[proxyPropName]\n\n if (oldObj !== void 0) {\n // we first delete obsolete events\n for (const prop in oldObj) {\n if (newObj[prop] === void 0) {\n this.$delete(target, prop)\n }\n }\n }\n\n for (const prop in newObj) {\n // we then update changed events\n if (target[prop] !== newObj[prop]) {\n this.$set(target, prop, newObj[prop])\n }\n }\n }\n }\n }\n}\n","import { getPropCacheMixin } from '../utils/private/cache.js'\n\nexport const ariaHidden = { 'aria-hidden': 'true' }\n\nexport const iconAsButton = { tabindex: 0, type: 'button', 'aria-hidden': false, role: null }\n\nexport default getPropCacheMixin('$attrs', 'qAttrs')\n","import Vue from 'vue'\n\nimport { between } from '../../utils/format.js'\nimport { isSSR } from '../../plugins/Platform.js'\nimport { ariaHidden } from '../../mixins/attrs'\n\nconst\n xhr = isSSR ? null : XMLHttpRequest,\n open = isSSR ? null : xhr.prototype.open,\n positionValues = [ 'top', 'right', 'bottom', 'left' ]\n\nlet stack = []\nlet highjackCount = 0\n\nfunction translate ({ p, pos, active, horiz, reverse, dir }) {\n let x = 1, y = 1\n\n if (horiz === true) {\n if (reverse === true) { x = -1 }\n if (pos === 'bottom') { y = -1 }\n return { transform: `translate3d(${x * (p - 100)}%,${active ? 0 : y * -200}%,0)` }\n }\n\n if (reverse === true) { y = -1 }\n if (pos === 'right') { x = -1 }\n return { transform: `translate3d(${active ? 0 : dir * x * -200}%,${y * (p - 100)}%,0)` }\n}\n\nfunction inc (p, amount) {\n if (typeof amount !== 'number') {\n if (p < 25) {\n amount = Math.random() * 3 + 3\n }\n else if (p < 65) {\n amount = Math.random() * 3\n }\n else if (p < 85) {\n amount = Math.random() * 2\n }\n else if (p < 99) {\n amount = 0.6\n }\n else {\n amount = 0\n }\n }\n return between(p + amount, 0, 100)\n}\n\nfunction highjackAjax (stackEntry) {\n highjackCount++\n\n stack.push(stackEntry)\n\n if (highjackCount > 1) { return }\n\n xhr.prototype.open = function (_, url) {\n const stopStack = []\n\n const loadStart = () => {\n stack.forEach(entry => {\n const hijackFilter = entry.getHijackFilter()\n if (\n hijackFilter === null ||\n hijackFilter(url) === true\n ) {\n entry.start()\n stopStack.push(entry.stop)\n }\n })\n }\n\n const loadEnd = () => {\n stopStack.forEach(stop => { stop() })\n }\n\n this.addEventListener('loadstart', loadStart, { once: true })\n this.addEventListener('loadend', loadEnd, { once: true })\n\n open.apply(this, arguments)\n }\n}\n\nfunction restoreAjax (start) {\n stack = stack.filter(entry => entry.start !== start)\n\n highjackCount = Math.max(0, highjackCount - 1)\n if (!highjackCount) {\n xhr.prototype.open = open\n }\n}\n\nexport default Vue.extend({\n name: 'QAjaxBar',\n\n props: {\n position: {\n type: String,\n default: 'top',\n validator: val => positionValues.includes(val)\n },\n\n size: {\n type: String,\n default: '2px'\n },\n\n color: String,\n reverse: Boolean,\n\n skipHijack: Boolean,\n hijackFilter: Function\n },\n\n data () {\n return {\n calls: 0,\n progress: 0,\n onScreen: false,\n animate: true\n }\n },\n\n computed: {\n classes () {\n return `q-loading-bar q-loading-bar--${this.position}` +\n (this.color !== void 0 ? ` bg-${this.color}` : '') +\n (this.animate === true ? '' : ' no-transition')\n },\n\n style () {\n const active = this.onScreen\n\n const o = translate({\n p: this.progress,\n pos: this.position,\n active,\n horiz: this.horizontal,\n reverse: this.$q.lang.rtl === true && ['top', 'bottom'].includes(this.position)\n ? this.reverse === false\n : this.reverse,\n dir: this.$q.lang.rtl === true ? -1 : 1\n })\n\n o[this.sizeProp] = this.size\n o.opacity = active ? 1 : 0\n\n return o\n },\n\n horizontal () {\n return this.position === 'top' || this.position === 'bottom'\n },\n\n sizeProp () {\n return this.horizontal ? 'height' : 'width'\n },\n\n attrs () {\n return this.onScreen === true\n ? {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': this.progress\n }\n : ariaHidden\n }\n },\n\n methods: {\n start (speed = 300) {\n const oldSpeed = this.speed\n const newSpeed = this.speed = Math.max(0, speed) || 0\n\n this.calls++\n\n if (this.calls > 1) {\n if (oldSpeed === 0 && newSpeed > 0) {\n this.__work()\n }\n else if (oldSpeed > 0 && newSpeed <= 0) {\n clearTimeout(this.timer)\n }\n\n return this.calls\n }\n\n clearTimeout(this.timer)\n this.$emit('start')\n\n this.progress = 0\n\n this.timer = setTimeout(() => {\n this.animate = true\n newSpeed > 0 && this.__work()\n }, this.onScreen === true ? 500 : 1)\n\n if (this.onScreen !== true) {\n this.onScreen = true\n this.animate = false\n }\n\n return this.calls\n },\n\n increment (amount) {\n if (this.calls > 0) {\n this.progress = inc(this.progress, amount)\n }\n\n return this.calls\n },\n\n stop () {\n this.calls = Math.max(0, this.calls - 1)\n\n if (this.calls > 0) {\n return this.calls\n }\n\n clearTimeout(this.timer)\n this.$emit('stop')\n\n const end = () => {\n this.animate = true\n this.progress = 100\n this.timer = setTimeout(() => {\n this.onScreen = false\n }, 1000)\n }\n\n if (this.progress === 0) {\n this.timer = setTimeout(end, 1)\n }\n else {\n end()\n }\n\n return this.calls\n },\n\n __work () {\n if (this.progress < 100) {\n this.timer = setTimeout(() => {\n this.increment()\n this.__work()\n }, this.speed)\n }\n }\n },\n\n mounted () {\n if (this.skipHijack !== true) {\n this.hijacked = true\n highjackAjax({\n start: this.start,\n stop: this.stop,\n getHijackFilter: () => this.hijackFilter || null\n })\n }\n },\n\n beforeDestroy () {\n clearTimeout(this.timer)\n this.hijacked === true && restoreAjax(this.start)\n },\n\n render (h) {\n return h('div', {\n class: this.classes,\n style: this.style,\n attrs: this.attrs\n })\n }\n})\n","import QAjaxBar from './QAjaxBar.js'\n\nexport {\n QAjaxBar\n}\n","export const sizes = {\n xs: 18,\n sm: 24,\n md: 32,\n lg: 38,\n xl: 46\n}\n\nexport function getSizeMixin (sizes) {\n return {\n props: {\n size: String\n },\n\n computed: {\n sizeStyle () {\n if (this.size !== void 0) {\n return { fontSize: this.size in sizes ? `${sizes[this.size]}px` : this.size }\n }\n }\n }\n }\n}\n\nexport default getSizeMixin(sizes)\n","export default {\n props: {\n tag: {\n type: String,\n default: 'div'\n }\n }\n}\n","import { getPropCacheMixin } from '../utils/private/cache.js'\nexport default getPropCacheMixin('$listeners', 'qListeners')\n","export function slot (vm, slotName, otherwise) {\n return vm.$scopedSlots[slotName] !== void 0\n ? vm.$scopedSlots[slotName]()\n : otherwise\n}\n\nexport function uniqueSlot (vm, slotName, otherwise) {\n return vm.$scopedSlots[slotName] !== void 0\n ? [].concat(vm.$scopedSlots[slotName]())\n : otherwise\n}\n\n/**\n * Source definitely exists,\n * so it's merged with the possible slot\n */\nexport function mergeSlot (source, vm, slotName) {\n return vm.$scopedSlots[slotName] !== void 0\n ? source.concat(vm.$scopedSlots[slotName]())\n : source\n}\n\n/**\n * Merge with possible slot,\n * even if source might not exist\n */\nexport function mergeSlotSafely (source, vm, slotName) {\n if (vm.$scopedSlots[slotName] === void 0) {\n return source\n }\n\n const slot = vm.$scopedSlots[slotName]()\n return source !== void 0\n ? source.concat(slot)\n : slot\n}\n","import Vue from 'vue'\n\nimport SizeMixin from '../../mixins/size.js'\nimport TagMixin from '../../mixins/tag.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot, mergeSlot } from '../../utils/private/slot.js'\n\nconst defaultViewBox = '0 0 24 24'\n\nconst sameFn = i => i\nconst ionFn = i => `ionicons ${i}`\n\nconst libMap = {\n 'mdi-': i => `mdi ${i}`,\n 'icon-': sameFn, // fontawesome equiv\n 'bt-': i => `bt ${i}`,\n 'eva-': i => `eva ${i}`,\n 'ion-md': ionFn,\n 'ion-ios': ionFn,\n 'ion-logo': ionFn,\n 'iconfont ': sameFn,\n 'ti-': i => `themify-icon ${i}`,\n 'bi-': i => `bootstrap-icons ${i}`\n}\n\nconst matMap = {\n o_: '-outlined',\n r_: '-round',\n s_: '-sharp'\n}\n\nconst symMap = {\n sym_o_: '-outlined',\n sym_r_: '-rounded',\n sym_s_: '-sharp'\n}\n\nconst libRE = new RegExp('^(' + Object.keys(libMap).join('|') + ')')\nconst matRE = new RegExp('^(' + Object.keys(matMap).join('|') + ')')\nconst symRE = new RegExp('^(' + Object.keys(symMap).join('|') + ')')\nconst mRE = /^[Mm]\\s?[-+]?\\.?\\d/\nconst imgRE = /^img:/\nconst svgUseRE = /^svguse:/\nconst ionRE = /^ion-/\nconst faRE = /^(fa-(sharp|solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /\n\nexport default Vue.extend({\n name: 'QIcon',\n\n mixins: [ ListenersMixin, SizeMixin, TagMixin ],\n\n props: {\n tag: {\n type: String,\n default: 'i'\n },\n\n name: String,\n color: String,\n left: Boolean,\n right: Boolean\n },\n\n computed: {\n classes () {\n return 'q-icon' +\n (this.left === true ? ' on-left' : '') +\n (this.right === true ? ' on-right' : '') +\n (this.color !== void 0 ? ` text-${this.color}` : '')\n },\n\n type () {\n let cls\n let icon = this.name\n\n if (icon === 'none' || !icon) {\n return { none: true }\n }\n\n if (this.$q.iconMapFn !== void 0) {\n const res = this.$q.iconMapFn(icon)\n if (res !== void 0) {\n if (res.icon !== void 0) {\n icon = res.icon\n if (icon === 'none' || !icon) {\n return { none: true }\n }\n }\n else {\n return {\n cls: res.cls,\n content: res.content !== void 0\n ? res.content\n : ' '\n }\n }\n }\n }\n\n if (mRE.test(icon) === true) {\n const [ def, viewBox = defaultViewBox ] = icon.split('|')\n\n return {\n svg: true,\n viewBox,\n nodes: def.split('&&').map(path => {\n const [ d, style, transform ] = path.split('@@')\n return this.$createElement('path', {\n attrs: { d, transform },\n style\n })\n })\n }\n }\n\n if (imgRE.test(icon) === true) {\n return {\n img: true,\n src: icon.substring(4)\n }\n }\n\n if (svgUseRE.test(icon) === true) {\n const [ def, viewBox = defaultViewBox ] = icon.split('|')\n\n return {\n svguse: true,\n src: def.substring(7),\n viewBox\n }\n }\n\n let content = ' '\n const matches = icon.match(libRE)\n\n if (matches !== null) {\n cls = libMap[ matches[ 1 ] ](icon)\n }\n else if (faRE.test(icon) === true) {\n cls = icon\n }\n else if (ionRE.test(icon) === true) {\n cls = `ionicons ion-${this.$q.platform.is.ios === true ? 'ios' : 'md'}${icon.substr(3)}`\n }\n else if (symRE.test(icon) === true) {\n // \"notranslate\" class is for Google Translate\n // to avoid tampering with Material Symbols ligature font\n //\n // Caution: To be able to add suffix to the class name,\n // keep the 'material-symbols' at the end of the string.\n cls = 'notranslate material-symbols'\n\n const matches = icon.match(symRE)\n if (matches !== null) {\n icon = icon.substring(6)\n cls += symMap[ matches[ 1 ] ]\n }\n\n content = icon\n }\n else {\n // \"notranslate\" class is for Google Translate\n // to avoid tampering with Material Icons ligature font\n //\n // Caution: To be able to add suffix to the class name,\n // keep the 'material-icons' at the end of the string.\n cls = 'notranslate material-icons'\n\n const matches = icon.match(matRE)\n if (matches !== null) {\n icon = icon.substring(2)\n cls += matMap[ matches[ 1 ] ]\n }\n\n content = icon\n }\n\n return {\n cls,\n content\n }\n }\n },\n\n render (h) {\n const data = {\n class: this.classes,\n style: this.sizeStyle,\n on: { ...this.qListeners },\n attrs: {\n 'aria-hidden': 'true',\n role: 'presentation'\n }\n }\n\n if (this.type.none === true) {\n return h(this.tag, data, slot(this, 'default'))\n }\n\n if (this.type.img === true) {\n return h('span', data, mergeSlot([\n h('img', {\n attrs: { src: this.type.src }\n })\n ], this, 'default'))\n }\n\n if (this.type.svg === true) {\n return h('span', data, mergeSlot([\n h('svg', {\n attrs: {\n viewBox: this.type.viewBox || '0 0 24 24',\n focusable: 'false' /* needed for IE11 */\n }\n }, this.type.nodes)\n ], this, 'default'))\n }\n\n if (this.type.svguse === true) {\n return h('span', data, mergeSlot([\n h('svg', {\n attrs: {\n viewBox: this.type.viewBox,\n focusable: 'false' /* needed for IE11 */\n }\n }, [\n h('use', { attrs: { 'xlink:href': this.type.src } })\n ])\n ], this, 'default'))\n }\n\n if (this.type.cls !== void 0) {\n data.class += ' ' + this.type.cls\n }\n\n return h(this.tag, data, mergeSlot([\n this.type.content\n ], this, 'default'))\n }\n})\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport SizeMixin from '../../mixins/size.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { mergeSlotSafely } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QAvatar',\n\n mixins: [ ListenersMixin, SizeMixin ],\n\n props: {\n fontSize: String,\n\n color: String,\n textColor: String,\n\n icon: String,\n square: Boolean,\n rounded: Boolean\n },\n\n computed: {\n classes () {\n return {\n [`bg-${this.color}`]: this.color,\n [`text-${this.textColor} q-chip--colored`]: this.textColor,\n 'q-avatar--square': this.square,\n 'rounded-borders': this.rounded\n }\n },\n\n contentStyle () {\n if (this.fontSize) {\n return { fontSize: this.fontSize }\n }\n }\n },\n\n render (h) {\n const icon = this.icon !== void 0\n ? [ h(QIcon, { props: { name: this.icon } }) ]\n : void 0\n\n return h('div', {\n staticClass: 'q-avatar',\n style: this.sizeStyle,\n class: this.classes,\n on: { ...this.qListeners }\n }, [\n h('div', {\n staticClass: 'q-avatar__content row flex-center overflow-hidden',\n style: this.contentStyle\n }, mergeSlotSafely(icon, this, 'default'))\n ])\n }\n})\n","import QAvatar from './QAvatar.js'\n\nexport {\n QAvatar\n}\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QBadge',\n\n mixins: [ ListenersMixin ],\n\n props: {\n color: String,\n textColor: String,\n\n floating: Boolean,\n transparent: Boolean,\n multiLine: Boolean,\n outline: Boolean,\n rounded: Boolean,\n\n label: [Number, String],\n\n align: {\n type: String,\n validator: v => ['top', 'middle', 'bottom'].includes(v)\n }\n },\n\n computed: {\n style () {\n if (this.align !== void 0) {\n return { verticalAlign: this.align }\n }\n },\n\n classes () {\n const text = this.outline === true\n ? this.color || this.textColor\n : this.textColor\n\n return 'q-badge flex inline items-center no-wrap' +\n ` q-badge--${this.multiLine === true ? 'multi' : 'single'}-line` +\n (this.outline === true\n ? ' q-badge--outline'\n : (this.color !== void 0 ? ` bg-${this.color}` : '')\n ) +\n (text !== void 0 ? ` text-${text}` : '') +\n (this.floating === true ? ' q-badge--floating' : '') +\n (this.rounded === true ? ' q-badge--rounded' : '') +\n (this.transparent === true ? ' q-badge--transparent' : '')\n },\n\n attrs () {\n return {\n role: 'status',\n 'aria-label': this.label\n }\n }\n },\n\n render (h) {\n return h('div', {\n style: this.style,\n class: this.classes,\n attrs: this.attrs,\n on: { ...this.qListeners }\n }, this.label !== void 0 ? [ this.label ] : slot(this, 'default'))\n }\n})\n","import QBadge from './QBadge.js'\n\nexport {\n QBadge\n}\n","export default {\n props: {\n dark: {\n type: Boolean,\n default: null\n }\n },\n\n computed: {\n isDark () {\n return this.dark === null\n ? this.$q.dark.isActive\n : this.dark\n }\n }\n}\n","import Vue from 'vue'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nconst attrs = { role: 'alert' }\n\nexport default Vue.extend({\n name: 'QBanner',\n\n mixins: [ ListenersMixin, DarkMixin ],\n\n props: {\n inlineActions: Boolean,\n dense: Boolean,\n rounded: Boolean\n },\n\n render (h) {\n const actions = slot(this, 'action')\n const child = [\n h('div', {\n staticClass: 'q-banner__avatar col-auto row items-center self-start'\n }, slot(this, 'avatar')),\n\n h('div', {\n staticClass: 'q-banner__content col text-body2'\n }, slot(this, 'default'))\n ]\n\n actions !== void 0 && child.push(\n h('div', {\n staticClass: 'q-banner__actions row items-center justify-end',\n class: `col-${this.inlineActions === true ? 'auto' : 'all'}`\n }, actions)\n )\n\n return h('div', {\n staticClass: 'q-banner row items-center',\n class: {\n 'q-banner--top-padding': actions !== void 0 && !this.inlineActions,\n 'q-banner--dense': this.dense,\n 'q-banner--dark q-dark': this.isDark,\n 'rounded-borders': this.rounded\n },\n attrs,\n on: { ...this.qListeners }\n }, child)\n }\n})\n","import QBanner from './QBanner.js'\n\nexport {\n QBanner\n}\n","import Vue from 'vue'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nconst attrs = { role: 'toolbar' }\n\nexport default Vue.extend({\n name: 'QBar',\n\n mixins: [ ListenersMixin, DarkMixin ],\n\n props: {\n dense: Boolean\n },\n\n computed: {\n classes () {\n return `q-bar--${this.dense === true ? 'dense' : 'standard'} ` +\n `q-bar--${this.isDark === true ? 'dark' : 'light'}`\n }\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-bar row no-wrap items-center',\n class: this.classes,\n attrs,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import QBar from './QBar.js'\n\nexport {\n QBar\n}\n","const\n alignMap = {\n left: 'start',\n center: 'center',\n right: 'end',\n between: 'between',\n around: 'around',\n evenly: 'evenly',\n stretch: 'stretch'\n },\n alignValues = Object.keys(alignMap)\n\nexport default {\n props: {\n align: {\n type: String,\n validator: v => alignValues.includes(v)\n }\n },\n\n computed: {\n alignClass () {\n const align = this.align === void 0\n ? (this.vertical === true ? 'stretch' : 'left')\n : this.align\n\n return `${this.vertical === true ? 'items' : 'justify'}-${alignMap[align]}`\n }\n }\n}\n","import Vue from 'vue'\n\nimport AlignMixin from '../../mixins/align.js'\nimport { slot } from '../../utils/private/slot.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nconst disabledValues = [ true, '' ]\n\nexport default Vue.extend({\n name: 'QBreadcrumbs',\n\n mixins: [ ListenersMixin, AlignMixin ],\n\n props: {\n separator: {\n type: String,\n default: '/'\n },\n separatorColor: String,\n\n activeColor: {\n type: String,\n default: 'primary'\n },\n\n gutter: {\n type: String,\n validator: v => ['none', 'xs', 'sm', 'md', 'lg', 'xl'].includes(v),\n default: 'sm'\n }\n },\n\n computed: {\n classes () {\n return `${this.alignClass}${this.gutter === 'none' ? '' : ` q-gutter-${this.gutter}`}`\n },\n\n sepClass () {\n return this.separatorColor\n ? ` text-${this.separatorColor}`\n : ''\n },\n\n activeClass () {\n return ` text-${this.activeColor}`\n }\n },\n\n render (h) {\n const nodes = slot(this, 'default')\n if (nodes === void 0) { return }\n\n let els = 1\n\n const\n child = [],\n len = nodes.filter(c => c.tag !== void 0 && c.tag.endsWith('-QBreadcrumbsEl')).length,\n separator = this.$scopedSlots.separator !== void 0\n ? this.$scopedSlots.separator\n : () => this.separator\n\n nodes.forEach(comp => {\n if (comp.tag !== void 0 && comp.tag.endsWith('-QBreadcrumbsEl')) {\n const middle = els < len\n const disabled = disabledValues.includes(comp.componentOptions.propsData.disable)\n const cls = middle === true\n ? (disabled !== true ? this.activeClass : '')\n : ' q-breadcrumbs--last'\n\n els++\n\n child.push(h('div', {\n staticClass: 'flex items-center' + cls\n }, [ comp ]))\n\n middle === true && child.push(h('div', {\n staticClass: 'q-breadcrumbs__separator' + this.sepClass\n }, separator()))\n }\n else {\n child.push(comp)\n }\n })\n\n return h('div', {\n staticClass: 'q-breadcrumbs',\n on: { ...this.qListeners }\n }, [\n h('div', {\n staticClass: 'flex items-center',\n class: this.classes\n }, child)\n ])\n }\n})\n","const trailingSlashRE = /\\/?$/\n\nfunction equals (current, target) {\n if (Object.keys(current).length !== Object.keys(target).length) {\n return false\n }\n\n // route query and params are strings when read from URL\n for (const key in target) {\n if (!(key in current) || String(current[key]) !== String(target[key])) {\n return false\n }\n }\n return true\n}\n\nfunction includes (current, target) {\n for (const key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction isSameRoute (current, target) {\n if (!target) {\n return false\n }\n\n if (current.path && target.path) {\n return (\n current.path.replace(trailingSlashRE, '') === target.path.replace(trailingSlashRE, '') &&\n current.hash === target.hash &&\n equals(current.query, target.query)\n )\n }\n\n return typeof current.name === 'string' &&\n current.name === target.name &&\n current.hash === target.hash &&\n equals(current.query, target.query) === true &&\n equals(current.params, target.params) === true\n}\n\nfunction isIncludedRoute (current, target) {\n return current.path.replace(trailingSlashRE, '/').indexOf(target.path.replace(trailingSlashRE, '/')) === 0 &&\n (typeof target.hash !== 'string' || target.hash.length < 2 || current.hash === target.hash) &&\n includes(current.query, target.query) === true\n}\n\nexport const routerLinkProps = {\n // router-link\n to: [String, Object],\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: {\n type: String,\n default: 'q-router-link--active'\n },\n exactActiveClass: {\n type: String,\n default: 'q-router-link--exact-active'\n },\n\n // regular link\n href: String,\n target: String,\n\n // state\n disable: Boolean\n}\n\n// external props: type, tag\n// external: fallbackTag\n\nexport default {\n props: routerLinkProps,\n\n computed: {\n hasHrefLink () {\n return this.disable !== true && this.href !== void 0\n },\n\n // beware, it gets overwritten in QRouteTab\n hasRouterLinkProps () {\n return this.$router !== void 0 &&\n this.disable !== true &&\n this.hasHrefLink !== true &&\n this.to !== void 0 && this.to !== null && this.to !== ''\n },\n\n resolvedLink () {\n return this.hasRouterLinkProps === true\n ? this.__getLink(this.to, this.append)\n : null\n },\n\n hasRouterLink () {\n return this.resolvedLink !== null\n },\n\n hasLink () {\n return this.hasHrefLink === true || this.hasRouterLink === true\n },\n\n linkTag () {\n return this.type === 'a' || this.hasLink === true\n ? 'a'\n : (this.tag || this.fallbackTag || 'div')\n },\n\n linkAttrs () {\n return this.hasHrefLink === true\n ? {\n href: this.href,\n target: this.target\n }\n : (\n this.hasRouterLink === true\n ? {\n href: this.resolvedLink.href,\n target: this.target\n }\n : {}\n )\n },\n\n linkIsActive () {\n return this.hasRouterLink === true &&\n isIncludedRoute(this.$route, this.resolvedLink.route)\n },\n\n linkIsExactActive () {\n return this.hasRouterLink === true &&\n isSameRoute(this.$route, this.resolvedLink.route)\n },\n\n linkClass () {\n return this.hasRouterLink === true\n ? (\n this.linkIsExactActive === true\n ? ` ${this.exactActiveClass} ${this.activeClass}`\n : (\n this.exact === true\n ? ''\n : (this.linkIsActive === true ? ` ${this.activeClass}` : '')\n )\n )\n : ''\n }\n },\n\n methods: {\n __getLink (to, append) {\n // we protect from accessing this.$route without\n // actually needing it so that we won't trigger\n // unnecessary updates in computed props using this method\n try {\n return append === true\n ? this.$router.resolve(to, this.$route, true)\n : this.$router.resolve(to)\n }\n catch (_) {}\n\n return null\n },\n\n /**\n * @returns Promise | Promise\n */\n __navigateToRouterLink (\n e,\n { returnRouterError, to, replace = this.replace, append } = {}\n ) {\n if (this.disable === true) {\n // ensure native navigation is prevented in all cases,\n // like in QRouteTab where hasRouterLinkProps does not care about disable state\n e.preventDefault()\n return Promise.resolve(false)\n }\n\n if (\n // don't redirect with control keys;\n // should match RouterLink from Vue Router\n e.metaKey || e.altKey || e.ctrlKey || e.shiftKey ||\n\n // don't redirect on right click\n (e.button !== void 0 && e.button !== 0) ||\n\n // don't redirect if it should open in a new window\n this.target === '_blank'\n ) {\n return Promise.resolve(false)\n }\n\n e.preventDefault()\n\n const resolvedLink = to === void 0\n ? this.resolvedLink\n : this.__getLink(to, append)\n\n if (resolvedLink === null) {\n return Promise[returnRouterError === true ? 'reject' : 'resolve'](false)\n }\n\n const promise = this.$router[replace === true ? 'replace' : 'push'](resolvedLink.location)\n\n return returnRouterError === true\n ? promise\n : promise.catch(() => {})\n },\n\n __navigateOnClick (e) {\n if (this.hasRouterLink === true) {\n const go = opts => this.__navigateToRouterLink(e, opts)\n\n this.$emit('click', e, go)\n\n // for backward compatibility\n e.navigate === false && e.preventDefault()\n\n e.defaultPrevented !== true && go()\n }\n else {\n this.$emit('click', e)\n }\n }\n }\n}\n","import Vue from 'vue'\n\nimport { mergeSlot } from '../../utils/private/slot.js'\nimport ListenersMixin from '../../mixins/listeners.js'\nimport RouterLinkMixin from '../../mixins/router-link.js'\n\nimport QIcon from '../icon/QIcon.js'\n\nexport default Vue.extend({\n name: 'QBreadcrumbsEl',\n\n mixins: [ ListenersMixin, RouterLinkMixin ],\n\n props: {\n label: String,\n icon: String\n },\n\n computed: {\n iconClass () {\n return 'q-breadcrumbs__el-icon' +\n (this.label !== void 0 ? ' q-breadcrumbs__el-icon--with-label' : '')\n },\n\n renderData () {\n return {\n staticClass: 'q-breadcrumbs__el q-link ' +\n 'flex inline items-center relative-position ' +\n (this.disable !== true ? 'q-link--focusable' + this.linkClass : 'q-breadcrumbs__el--disabled'),\n attrs: this.linkAttrs,\n on: {\n ...this.qListeners,\n click: this.__navigateOnClick\n }\n }\n }\n },\n\n beforeCreate () {\n this.fallbackTag = 'span'\n },\n\n render (h) {\n const child = []\n\n this.icon !== void 0 && child.push(\n h(QIcon, {\n class: this.iconClass,\n props: { name: this.icon }\n })\n )\n\n this.label !== void 0 && child.push(this.label)\n\n return h(this.linkTag, this.renderData, mergeSlot(child, this, 'default'))\n }\n})\n","import QBreadcrumbs from './QBreadcrumbs.js'\nimport QBreadcrumbsEl from './QBreadcrumbsEl.js'\n\nexport {\n QBreadcrumbs,\n QBreadcrumbsEl\n}\n","import { sizes } from '../../mixins/size.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nexport default {\n mixins: [ ListenersMixin ],\n\n props: {\n color: String,\n size: {\n type: [Number, String],\n default: '1em'\n }\n },\n\n computed: {\n cSize () {\n return this.size in sizes\n ? `${sizes[this.size]}px`\n : this.size\n },\n\n classes () {\n if (this.color) {\n return `text-${this.color}`\n }\n }\n }\n}\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinner',\n\n mixins: [ mixin ],\n\n props: {\n thickness: {\n type: Number,\n default: 5\n }\n },\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner q-spinner-mat',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '25 25 50 50'\n }\n }, [\n h('circle', {\n staticClass: 'path',\n attrs: {\n 'cx': '50',\n 'cy': '50',\n 'r': '20',\n 'fill': 'none',\n 'stroke': 'currentColor',\n 'stroke-width': this.thickness,\n 'stroke-miterlimit': '10'\n }\n })\n ])\n }\n})\n","export function offset (el) {\n if (el === window) {\n return { top: 0, left: 0 }\n }\n const { top, left } = el.getBoundingClientRect()\n return { top, left }\n}\n\nexport function style (el, property) {\n return window.getComputedStyle(el).getPropertyValue(property)\n}\n\nexport function height (el) {\n return el === window\n ? window.innerHeight\n : el.getBoundingClientRect().height\n}\n\nexport function width (el) {\n return el === window\n ? window.innerWidth\n : el.getBoundingClientRect().width\n}\n\nexport function css (element, css) {\n const style = element.style\n\n Object.keys(css).forEach(prop => {\n style[prop] = css[prop]\n })\n}\n\nexport function cssBatch (elements, style) {\n elements.forEach(el => css(el, style))\n}\n\nexport function ready (fn) {\n if (typeof fn !== 'function') {\n return\n }\n\n if (document.readyState !== 'loading') {\n return fn()\n }\n\n document.addEventListener('DOMContentLoaded', fn, false)\n}\n\n// internal\nexport function getElement (el) {\n const type = typeof el\n\n if (type === 'function') {\n el = el()\n }\n\n if (type === 'string') {\n try {\n el = document.querySelector(el)\n }\n catch (err) {}\n }\n\n if (el !== Object(el)) {\n return null\n }\n\n return el._isVue === true && el.$el !== void 0\n ? el.$el\n : el\n}\n\n// internal\nexport function childHasFocus (el, focusedEl) {\n if (el === void 0 || el.contains(focusedEl) === true) {\n return true\n }\n\n for (let next = el.nextElementSibling; next !== null; next = next.nextElementSibling) {\n if (next.contains(focusedEl)) {\n return true\n }\n }\n\n return false\n}\n\n// internal\nexport function getBodyFullscreenElement (activeEl) {\n return activeEl === document.documentElement || activeEl === null\n ? document.body\n : activeEl\n}\n\nexport default {\n offset,\n style,\n height,\n width,\n css,\n cssBatch,\n ready\n}\n","export default function (fn, limit = 250) {\n let wait = false, result\n\n return function (/* ...args */) {\n if (wait === false) {\n wait = true\n setTimeout(() => { wait = false }, limit)\n result = fn.apply(this, arguments)\n }\n\n return result\n }\n}\n","import { css } from '../utils/dom.js'\nimport { position, stop, addEvt, cleanEvt } from '../utils/event.js'\nimport { isKeyCode } from '../utils/private/key-composition.js'\nimport { client } from '../plugins/Platform.js'\nimport throttle from '../utils/throttle.js'\nimport { $q } from '../install.js'\n\nfunction showRipple (evt, el, ctx, forceCenter) {\n ctx.modifiers.stop === true && stop(evt)\n\n const color = ctx.modifiers.color\n let center = ctx.modifiers.center\n center = center === true || forceCenter === true\n\n const\n node = document.createElement('span'),\n innerNode = document.createElement('span'),\n pos = position(evt),\n { left, top, width, height } = el.getBoundingClientRect(),\n diameter = Math.sqrt(width * width + height * height),\n radius = diameter / 2,\n centerX = `${(width - diameter) / 2}px`,\n x = center ? centerX : `${pos.left - left - radius}px`,\n centerY = `${(height - diameter) / 2}px`,\n y = center ? centerY : `${pos.top - top - radius}px`\n\n innerNode.className = 'q-ripple__inner'\n css(innerNode, {\n height: `${diameter}px`,\n width: `${diameter}px`,\n transform: `translate3d(${x},${y},0) scale3d(.2,.2,1)`,\n opacity: 0\n })\n\n node.className = `q-ripple${color ? ' text-' + color : ''}`\n node.setAttribute('dir', 'ltr')\n node.appendChild(innerNode)\n el.appendChild(node)\n\n const abort = () => {\n node.remove()\n clearTimeout(timer)\n }\n ctx.abort.push(abort)\n\n let timer = setTimeout(() => {\n innerNode.classList.add('q-ripple__inner--enter')\n innerNode.style.transform = `translate3d(${centerX},${centerY},0) scale3d(1,1,1)`\n innerNode.style.opacity = 0.2\n\n timer = setTimeout(() => {\n innerNode.classList.remove('q-ripple__inner--enter')\n innerNode.classList.add('q-ripple__inner--leave')\n innerNode.style.opacity = 0\n\n timer = setTimeout(() => {\n node.remove()\n ctx.abort.splice(ctx.abort.indexOf(abort), 1)\n }, 275)\n }, 250)\n }, 50)\n}\n\nfunction updateModifiers (ctx, { modifiers, value, arg }) {\n const cfg = Object.assign({}, $q.config.ripple, modifiers, value)\n ctx.modifiers = {\n early: cfg.early === true,\n stop: cfg.stop === true,\n center: cfg.center === true,\n color: cfg.color || arg,\n keyCodes: [].concat(cfg.keyCodes || 13)\n }\n}\n\nfunction destroy (el) {\n const ctx = el.__qripple\n if (ctx !== void 0) {\n ctx.abort.forEach(fn => { fn() })\n cleanEvt(ctx, 'main')\n delete el._qripple\n }\n}\n\nexport default {\n name: 'ripple',\n\n inserted (el, binding) {\n if (el.__qripple !== void 0) {\n destroy(el)\n el.__qripple_destroyed = true\n }\n\n const ctx = {\n enabled: binding.value !== false,\n modifiers: {},\n abort: [],\n\n start (evt) {\n if (\n ctx.enabled === true &&\n evt.qSkipRipple !== true &&\n // on ENTER in form IE emits a PointerEvent with negative client cordinates\n (client.is.ie !== true || evt.clientX >= 0) &&\n evt.type === (ctx.modifiers.early === true ? 'pointerdown' : 'click')\n ) {\n showRipple(evt, el, ctx, evt.qKeyEvent === true)\n }\n },\n\n keystart: throttle(evt => {\n if (\n ctx.enabled === true &&\n evt.qSkipRipple !== true &&\n isKeyCode(evt, ctx.modifiers.keyCodes) === true &&\n evt.type === `key${ctx.modifiers.early === true ? 'down' : 'up'}`\n ) {\n showRipple(evt, el, ctx, true)\n }\n }, 300)\n }\n\n updateModifiers(ctx, binding)\n\n el.__qripple = ctx\n\n addEvt(ctx, 'main', [\n [ el, 'pointerdown', 'start', 'passive' ],\n [ el, 'click', 'start', 'passive' ],\n [ el, 'keydown', 'keystart', 'passive' ],\n [ el, 'keyup', 'keystart', 'passive' ]\n ])\n },\n\n update (el, binding) {\n const ctx = el.__qripple\n if (ctx !== void 0 && binding.oldValue !== binding.value) {\n ctx.enabled = binding.value !== false\n\n if (ctx.enabled === true && Object(binding.value) === binding.value) {\n updateModifiers(ctx, binding)\n }\n }\n },\n\n unbind (el) {\n if (el.__qripple_destroyed === void 0) {\n destroy(el)\n }\n else {\n delete el.__qripple_destroyed\n }\n }\n}\n","import Ripple from '../directives/Ripple.js'\n\nexport default {\n directives: {\n Ripple\n },\n\n props: {\n ripple: {\n type: [Boolean, Object],\n default: true\n }\n }\n}\n","import AlignMixin from './align.js'\nimport RippleMixin from './ripple.js'\nimport ListenersMixin from './listeners.js'\nimport RouterLinkMixin from './router-link.js'\nimport { getSizeMixin } from './size.js'\n\nexport const btnPadding = {\n none: 0,\n xs: 4,\n sm: 8,\n md: 16,\n lg: 24,\n xl: 32\n}\n\nconst formTypes = [ 'button', 'submit', 'reset' ]\nconst mediaTypeRe = /[^\\s]\\/[^\\s]/\n\nexport const btnDesignOptions = [ 'flat', 'outline', 'push', 'unelevated' ]\nexport const getBtnDesign = (vm, defaultValue) => {\n if (vm.flat === true) return 'flat'\n if (vm.outline === true) return 'outline'\n if (vm.push === true) return 'push'\n if (vm.unelevated === true) return 'unelevated'\n return defaultValue\n}\n\nexport default {\n mixins: [\n ListenersMixin,\n RippleMixin,\n RouterLinkMixin,\n AlignMixin,\n getSizeMixin({\n xs: 8,\n sm: 10,\n md: 14,\n lg: 20,\n xl: 24\n })\n ],\n\n props: {\n type: {\n type: String,\n default: 'button'\n },\n\n to: [ Object, String ],\n replace: Boolean,\n append: Boolean,\n\n label: [ Number, String ],\n icon: String,\n iconRight: String,\n\n ...btnDesignOptions.reduce(\n (acc, val) => (acc[ val ] = Boolean) && acc,\n {}\n ),\n\n square: Boolean,\n round: Boolean,\n rounded: Boolean,\n glossy: Boolean,\n\n size: String,\n fab: Boolean,\n fabMini: Boolean,\n padding: String,\n\n color: String,\n textColor: String,\n noCaps: Boolean,\n noWrap: Boolean,\n dense: Boolean,\n\n tabindex: [ Number, String ],\n\n align: { default: 'center' },\n stack: Boolean,\n stretch: Boolean,\n loading: {\n type: Boolean,\n default: null\n },\n disable: Boolean\n },\n\n computed: {\n style () {\n if (this.fab === false && this.fabMini === false) {\n return this.sizeStyle\n }\n },\n\n isRounded () {\n return this.rounded === true || this.fab === true || this.fabMini === true\n },\n\n isActionable () {\n return this.disable !== true && this.loading !== true\n },\n\n computedTabIndex () {\n return this.isActionable === true ? this.tabindex || 0 : -1\n },\n\n design () {\n return getBtnDesign(this, 'standard')\n },\n\n attrs () {\n const acc = { tabindex: this.computedTabIndex }\n\n if (this.hasLink === true) {\n Object.assign(acc, this.linkAttrs)\n }\n else if (formTypes.includes(this.type) === true) {\n acc.type = this.type\n }\n\n if (this.linkTag === 'a') {\n if (this.disable === true) {\n acc['aria-disabled'] = 'true'\n }\n else if (acc.href === void 0) {\n acc.role = 'button'\n }\n\n if (this.hasRouterLink !== true && mediaTypeRe.test(this.type) === true) {\n acc.type = this.type\n }\n }\n else if (this.disable === true) {\n acc.disabled = ''\n acc['aria-disabled'] = 'true'\n }\n\n if (this.loading === true && this.percentage !== void 0) {\n acc.role = 'progressbar'\n acc['aria-valuemin'] = 0\n acc['aria-valuemax'] = 100\n acc['aria-valuenow'] = this.percentage\n }\n\n return acc\n },\n\n classes () {\n let colors\n\n if (this.color !== void 0) {\n if (this.flat === true || this.outline === true) {\n colors = `text-${this.textColor || this.color}`\n }\n else {\n colors = `bg-${this.color} text-${this.textColor || 'white'}`\n }\n }\n else if (this.textColor) {\n colors = `text-${this.textColor}`\n }\n\n const shape = this.round === true\n ? 'round'\n : `rectangle${this.isRounded === true ? ' q-btn--rounded' : (this.square === true ? ' q-btn--square' : '')}`\n\n return `q-btn--${this.design} q-btn--${shape}` +\n (colors !== void 0 ? ' ' + colors : '') +\n (this.isActionable === true ? ' q-btn--actionable q-focusable q-hoverable' : (this.disable === true ? ' disabled' : '')) +\n (this.fab === true ? ' q-btn--fab' : (this.fabMini === true ? ' q-btn--fab-mini' : '')) +\n (this.noCaps === true ? ' q-btn--no-uppercase' : '') +\n (this.noWrap === true ? '' : ' q-btn--wrap') + // this is for IE11\n (this.dense === true ? ' q-btn--dense' : '') +\n (this.stretch === true ? ' no-border-radius self-stretch' : '') +\n (this.glossy === true ? ' glossy' : '')\n },\n\n innerClasses () {\n return this.alignClass + (this.stack === true ? ' column' : ' row') +\n (this.noWrap === true ? ' no-wrap text-no-wrap' : '') +\n (this.loading === true ? ' q-btn__content--hidden' : '')\n },\n\n wrapperStyle () {\n if (this.padding !== void 0) {\n return {\n padding: this.padding\n .split(/\\s+/)\n .map(v => v in btnPadding ? btnPadding[v] + 'px' : v)\n .join(' '),\n minWidth: '0',\n minHeight: '0'\n }\n }\n }\n }\n}\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\nimport QSpinner from '../spinner/QSpinner.js'\n\nimport BtnMixin from '../../mixins/btn.js'\n\nimport { mergeSlot } from '../../utils/private/slot.js'\nimport { stop, prevent, stopAndPrevent, listenOpts } from '../../utils/event.js'\nimport { isKeyCode } from '../../utils/private/key-composition.js'\n\nconst { passiveCapture } = listenOpts\n\nlet\n touchTarget = void 0,\n keyboardTarget = void 0,\n mouseTarget = void 0\n\nconst iconAttrs = { role: 'img', 'aria-hidden': 'true' }\n\nexport default Vue.extend({\n name: 'QBtn',\n\n mixins: [ BtnMixin ],\n\n props: {\n percentage: Number,\n darkPercentage: Boolean\n },\n\n computed: {\n hasLabel () {\n return this.label !== void 0 && this.label !== null && this.label !== ''\n },\n\n computedRipple () {\n return this.ripple === false\n ? false\n : {\n keyCodes: this.hasLink === true ? [ 13, 32 ] : [ 13 ],\n ...(this.ripple === true ? {} : this.ripple)\n }\n },\n\n percentageStyle () {\n const val = Math.max(0, Math.min(100, this.percentage))\n if (val > 0) {\n return { transition: 'transform 0.6s', transform: `translateX(${val - 100}%)` }\n }\n },\n\n onEvents () {\n if (this.loading === true) {\n return {\n mousedown: this.__onLoadingEvt,\n touchstart: this.__onLoadingEvt,\n click: this.__onLoadingEvt,\n keydown: this.__onLoadingEvt,\n keyup: this.__onLoadingEvt\n }\n }\n\n if (this.isActionable === true) {\n const on = {\n ...this.qListeners,\n click: this.click,\n keydown: this.__onKeydown,\n mousedown: this.__onMousedown\n }\n\n if (this.$q.platform.has.touch === true) {\n on[ `${on.touchstart === void 0 ? '&' : ''}touchstart` ] = this.__onTouchstart\n }\n\n return on\n }\n\n return {\n // needed; especially for disabled tags\n click: stopAndPrevent\n }\n },\n\n directives () {\n if (this.disable !== true && this.ripple !== false) {\n return [{\n name: 'ripple',\n value: this.computedRipple,\n modifiers: { center: this.round }\n }]\n }\n }\n },\n\n methods: {\n click (e) {\n if (e !== void 0) {\n if (e.defaultPrevented === true) {\n return\n }\n\n const el = document.activeElement\n // focus button if it came from ENTER on form\n // prevent the new submit (already done)\n if (\n this.type === 'submit' &&\n (\n (this.$q.platform.is.ie === true && (e.clientX < 0 || e.clientY < 0)) ||\n (\n el !== document.body &&\n this.$el.contains(el) === false &&\n // required for iOS and desktop Safari\n el.contains(this.$el) === false\n )\n )\n ) {\n this.$el.focus()\n\n const onClickCleanup = () => {\n document.removeEventListener('keydown', stopAndPrevent, true)\n document.removeEventListener('keyup', onClickCleanup, passiveCapture)\n this.$el !== void 0 && this.$el.removeEventListener('blur', onClickCleanup, passiveCapture)\n }\n\n document.addEventListener('keydown', stopAndPrevent, true)\n document.addEventListener('keyup', onClickCleanup, passiveCapture)\n this.$el.addEventListener('blur', onClickCleanup, passiveCapture)\n }\n }\n\n this.__navigateOnClick(e)\n },\n\n __onKeydown (e) {\n this.$emit('keydown', e)\n\n if (isKeyCode(e, [ 13, 32 ]) === true) {\n if (keyboardTarget !== this.$el) {\n keyboardTarget !== void 0 && this.__cleanup()\n\n if (e.defaultPrevented !== true) {\n // focus external button if the focus helper was focused before\n this.$el.focus()\n\n keyboardTarget = this.$el\n this.$el.classList.add('q-btn--active')\n document.addEventListener('keyup', this.__onPressEnd, true)\n this.$el.addEventListener('blur', this.__onPressEnd, passiveCapture)\n }\n }\n\n stopAndPrevent(e)\n }\n },\n\n __onTouchstart (e) {\n this.$emit('touchstart', e)\n\n if (touchTarget !== this.$el) {\n touchTarget !== void 0 && this.__cleanup()\n\n if (e.defaultPrevented !== true) {\n touchTarget = this.$el\n const target = this.touchTargetEl = e.target\n target.addEventListener('touchcancel', this.__onPressEnd, passiveCapture)\n target.addEventListener('touchend', this.__onPressEnd, passiveCapture)\n }\n }\n\n // avoid duplicated mousedown event\n // triggering another early ripple\n this.avoidMouseRipple = true\n clearTimeout(this.mouseTimer)\n this.mouseTimer = setTimeout(() => {\n this.avoidMouseRipple = false\n }, 200)\n },\n\n __onMousedown (e) {\n e.qSkipRipple = this.avoidMouseRipple === true\n this.$emit('mousedown', e)\n\n if (mouseTarget !== this.$el) {\n mouseTarget !== void 0 && this.__cleanup()\n\n if (e.defaultPrevented !== true) {\n mouseTarget = this.$el\n this.$el.classList.add('q-btn--active')\n document.addEventListener('mouseup', this.__onPressEnd, passiveCapture)\n }\n }\n },\n\n __onPressEnd (e) {\n // needed for IE (because it emits blur when focusing button from focus helper)\n if (e !== void 0 && e.type === 'blur' && document.activeElement === this.$el) {\n return\n }\n\n if (e !== void 0 && e.type === 'keyup') {\n if (keyboardTarget === this.$el && isKeyCode(e, [ 13, 32 ]) === true) {\n // for click trigger\n const evt = new MouseEvent('click', e)\n evt.qKeyEvent = true\n e.defaultPrevented === true && prevent(evt)\n e.cancelBubble === true && stop(evt)\n this.$el.dispatchEvent(evt)\n\n stopAndPrevent(e)\n\n // for ripple\n e.qKeyEvent = true\n }\n\n this.$emit('keyup', e)\n }\n\n this.__cleanup()\n },\n\n __cleanup (destroying) {\n const blurTarget = this.$refs.blurTarget\n\n if (\n destroying !== true &&\n (touchTarget === this.$el || mouseTarget === this.$el) &&\n blurTarget !== void 0 &&\n blurTarget !== document.activeElement &&\n this.$el.contains(document.activeElement) === true\n ) {\n blurTarget.setAttribute('tabindex', -1)\n blurTarget.focus()\n }\n\n if (touchTarget === this.$el) {\n const target = this.touchTargetEl\n target.removeEventListener('touchcancel', this.__onPressEnd, passiveCapture)\n target.removeEventListener('touchend', this.__onPressEnd, passiveCapture)\n touchTarget = this.touchTargetEl = void 0\n }\n\n if (mouseTarget === this.$el) {\n document.removeEventListener('mouseup', this.__onPressEnd, passiveCapture)\n mouseTarget = void 0\n }\n\n if (keyboardTarget === this.$el) {\n document.removeEventListener('keyup', this.__onPressEnd, true)\n this.$el !== void 0 && this.$el.removeEventListener('blur', this.__onPressEnd, passiveCapture)\n keyboardTarget = void 0\n }\n\n this.$el !== void 0 && this.$el.classList.remove('q-btn--active')\n },\n\n __onLoadingEvt (evt) {\n stopAndPrevent(evt)\n evt.qSkipRipple = true\n }\n },\n\n beforeDestroy () {\n this.__cleanup(true)\n },\n\n render (h) {\n let inner = []\n\n this.icon !== void 0 && inner.push(\n h(QIcon, {\n attrs: iconAttrs,\n props: { name: this.icon, left: this.stack === false && this.hasLabel === true }\n })\n )\n\n this.hasLabel === true && inner.push(\n h('span', { staticClass: 'block' }, [ this.label ])\n )\n\n inner = mergeSlot(inner, this, 'default')\n\n if (this.iconRight !== void 0 && this.round === false) {\n inner.push(\n h(QIcon, {\n attrs: iconAttrs,\n props: { name: this.iconRight, right: this.stack === false && this.hasLabel === true }\n })\n )\n }\n\n const child = [\n h('span', {\n staticClass: 'q-focus-helper',\n ref: 'blurTarget'\n })\n ]\n\n if (this.loading === true && this.percentage !== void 0) {\n child.push(\n h('span', {\n staticClass: 'q-btn__progress absolute-full overflow-hidden',\n class: this.darkPercentage === true ? 'q-btn__progress--dark' : ''\n }, [\n h('span', {\n staticClass: 'q-btn__progress-indicator fit block',\n style: this.percentageStyle\n })\n ])\n )\n }\n\n child.push(\n h('span', {\n staticClass: 'q-btn__wrapper col row q-anchor--skip',\n style: this.wrapperStyle\n }, [\n h('span', {\n staticClass: 'q-btn__content text-center col items-center q-anchor--skip',\n class: this.innerClasses\n }, inner)\n ])\n )\n\n this.loading !== null && child.push(\n h('transition', {\n props: { name: 'q-transition--fade' }\n }, this.loading === true ? [\n h('span', {\n key: 'loading',\n staticClass: 'absolute-full flex flex-center'\n }, this.$scopedSlots.loading !== void 0 ? this.$scopedSlots.loading() : [ h(QSpinner) ])\n ] : void 0)\n )\n\n return h(this.hasLink === true || this.type === 'a' ? 'a' : 'button', {\n staticClass: 'q-btn q-btn-item non-selectable no-outline',\n class: this.classes,\n style: this.style,\n attrs: this.attrs,\n on: this.onEvents,\n directives: this.directives\n }, child)\n }\n})\n","import QBtn from './QBtn.js'\n\nexport {\n QBtn\n}\n","export default {\n props: {\n transitionShow: {\n type: String,\n default: 'fade'\n },\n\n transitionHide: {\n type: String,\n default: 'fade'\n }\n },\n\n computed: {\n transitionProps () {\n const show = `q-transition--${this.transitionShow || this.defaultTransitionShow}`\n const hide = `q-transition--${this.transitionHide || this.defaultTransitionHide}`\n\n return {\n appear: true,\n\n enterClass: `${show}-enter`,\n enterActiveClass: `${show}-enter-active`,\n enterToClass: `${show}-enter-to`,\n\n leaveClass: `${hide}-leave`,\n leaveActiveClass: `${hide}-leave-active`,\n leaveToClass: `${hide}-leave-to`\n }\n }\n }\n}\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QBtnGroup',\n\n mixin: [ ListenersMixin ],\n\n props: {\n unelevated: Boolean,\n outline: Boolean,\n flat: Boolean,\n rounded: Boolean,\n square: Boolean,\n push: Boolean,\n stretch: Boolean,\n glossy: Boolean,\n spread: Boolean\n },\n\n computed: {\n classes () {\n return ['unelevated', 'outline', 'flat', 'rounded', 'square', 'push', 'stretch', 'glossy']\n .filter(t => this[t] === true)\n .map(t => `q-btn-group--${t}`).join(' ')\n }\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-btn-group row no-wrap ' +\n (this.spread === true ? 'q-btn-group--spread' : 'inline'),\n class: this.classes,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import Platform from '../../plugins/Platform.js'\n\nexport function clearSelection () {\n if (window.getSelection !== void 0) {\n const selection = window.getSelection()\n if (selection.empty !== void 0) {\n selection.empty()\n }\n else if (selection.removeAllRanges !== void 0) {\n selection.removeAllRanges()\n Platform.is.mobile !== true && selection.addRange(document.createRange())\n }\n }\n else if (document.selection !== void 0) {\n document.selection.empty()\n }\n}\n","import { clearSelection } from '../utils/private/selection.js'\nimport { addEvt, cleanEvt, prevent, listenOpts } from '../utils/event.js'\nimport { getElement } from '../utils/dom.js'\nimport { isKeyCode } from '../utils/private/key-composition.js'\n\nexport default {\n props: {\n target: {\n default: true\n },\n noParentEvent: Boolean,\n contextMenu: Boolean\n },\n\n watch: {\n contextMenu (val) {\n if (this.anchorEl !== void 0) {\n this.__unconfigureAnchorEl()\n this.__configureAnchorEl(val)\n }\n },\n\n target () {\n if (this.anchorEl !== void 0) {\n this.__unconfigureAnchorEl()\n }\n\n this.__pickAnchorEl()\n },\n\n noParentEvent (val) {\n if (this.anchorEl !== void 0) {\n if (val === true) {\n this.__unconfigureAnchorEl()\n }\n else {\n this.__configureAnchorEl()\n }\n }\n }\n },\n\n methods: {\n __showCondition (evt) {\n // abort with no parent configured or on multi-touch\n if (this.anchorEl === void 0) {\n return false\n }\n if (evt === void 0) {\n return true\n }\n return evt.touches === void 0 || evt.touches.length <= 1\n },\n\n __contextClick (evt) {\n this.hide(evt)\n this.$nextTick(() => {\n this.show(evt)\n })\n prevent(evt)\n },\n\n __toggleKey (evt) {\n isKeyCode(evt, 13) === true && this.toggle(evt)\n },\n\n __mobileCleanup (evt) {\n this.anchorEl.classList.remove('non-selectable')\n clearTimeout(this.touchTimer)\n\n if (this.showing === true && evt !== void 0) {\n clearSelection()\n }\n },\n\n __mobilePrevent: prevent,\n\n __mobileTouch (evt) {\n this.__mobileCleanup(evt)\n\n if (this.__showCondition(evt) !== true) {\n return\n }\n\n this.hide(evt)\n this.anchorEl.classList.add('non-selectable')\n\n const target = evt.target\n addEvt(this, 'anchor', [\n [ target, 'touchmove', '__mobileCleanup', 'passive' ],\n [ target, 'touchend', '__mobileCleanup', 'passive' ],\n [ target, 'touchcancel', '__mobileCleanup', 'passive' ],\n [ this.anchorEl, 'contextmenu', '__mobilePrevent', 'notPassive' ]\n ])\n\n this.touchTimer = setTimeout(() => {\n this.show(evt)\n }, 300)\n },\n\n __unconfigureAnchorEl () {\n cleanEvt(this, 'anchor')\n },\n\n __configureAnchorEl (context = this.contextMenu) {\n if (this.noParentEvent === true || this.anchorEl === void 0) { return }\n\n let evts\n\n if (context === true) {\n if (this.$q.platform.is.mobile === true) {\n evts = [\n [ this.anchorEl, 'touchstart', '__mobileTouch', 'passive' ]\n ]\n }\n else {\n evts = [\n [ this.anchorEl, 'click', 'hide', 'passive' ],\n [ this.anchorEl, 'contextmenu', '__contextClick', 'notPassive' ]\n ]\n }\n }\n else {\n evts = [\n [ this.anchorEl, 'click', 'toggle', 'passive' ],\n [ this.anchorEl, 'keyup', '__toggleKey', 'passive' ]\n ]\n }\n\n addEvt(this, 'anchor', evts)\n },\n\n __setAnchorEl (el) {\n this.anchorEl = el\n while (this.anchorEl.classList.contains('q-anchor--skip')) {\n this.anchorEl = this.anchorEl.parentNode\n }\n this.__configureAnchorEl()\n },\n\n __pickAnchorEl () {\n if (this.target === false || this.target === '' || this.parentEl === null) {\n this.anchorEl = void 0\n }\n else if (this.target === true) {\n this.__setAnchorEl(this.parentEl)\n }\n else {\n this.anchorEl = getElement(this.target) || void 0\n\n if (this.anchorEl !== void 0) {\n this.__configureAnchorEl()\n }\n else {\n console.error(`Anchor: target \"${this.target}\" not found`, this)\n }\n }\n },\n\n __changeScrollEvent (scrollTarget, fn) {\n const fnProp = `${fn !== void 0 ? 'add' : 'remove'}EventListener`\n const fnHandler = fn !== void 0 ? fn : this.__scrollFn\n\n if (scrollTarget !== window) {\n scrollTarget[fnProp]('scroll', fnHandler, listenOpts.passive)\n }\n\n window[fnProp]('scroll', fnHandler, listenOpts.passive)\n\n this.__scrollFn = fn\n }\n },\n\n created () {\n if (\n typeof this.__configureScrollTarget === 'function' &&\n typeof this.__unconfigureScrollTarget === 'function'\n ) {\n this.noParentEventWatcher = this.$watch('noParentEvent', () => {\n if (this.__scrollTarget !== void 0) {\n this.__unconfigureScrollTarget()\n this.__configureScrollTarget()\n }\n })\n }\n },\n\n mounted () {\n this.parentEl = this.$el.parentNode\n this.__pickAnchorEl()\n\n if (this.value === true && this.anchorEl === void 0) {\n this.$emit('input', false)\n }\n },\n\n beforeDestroy () {\n clearTimeout(this.touchTimer)\n this.noParentEventWatcher !== void 0 && this.noParentEventWatcher()\n this.__anchorCleanup !== void 0 && this.__anchorCleanup()\n this.__unconfigureAnchorEl()\n }\n}\n","export default {\n created () {\n this.__tickFnList = []\n this.__timeoutFnList = []\n },\n\n deactivated () {\n this.__tickFnList.forEach(tick => { tick.removeTick() })\n this.__timeoutFnList.forEach(tick => { tick.removeTimeout() })\n },\n\n beforeDestroy () {\n this.__tickFnList.forEach(tick => { tick.removeTick() })\n this.__tickFnList = void 0\n\n this.__timeoutFnList.forEach(tick => { tick.removeTimeout() })\n this.__timeoutFnList = void 0\n },\n\n methods: {\n __useTick (registerFnName, removeFnName) {\n const tick = {\n removeTick () {\n tick.fn = void 0\n },\n\n registerTick: fn => {\n tick.fn = fn\n\n this.$nextTick(() => {\n if (tick.fn === fn) {\n // we also check if VM is destroyed, since if it\n // got to trigger one nextTick() we cannot stop it\n this._isDestroyed === false && tick.fn()\n tick.fn = void 0\n }\n })\n }\n }\n\n this.__tickFnList.push(tick)\n\n this[registerFnName] = tick.registerTick\n removeFnName !== void 0 && (this[removeFnName] = tick.removeTick)\n },\n\n __useTimeout (registerFnName, removeFnName) {\n const timeout = {\n removeTimeout () {\n clearTimeout(timeout.timer)\n },\n\n registerTimeout: (fn, delay) => {\n clearTimeout(timeout.timer)\n\n if (this._isDestroyed === false) {\n timeout.timer = setTimeout(fn, delay)\n }\n }\n }\n\n this.__timeoutFnList.push(timeout)\n\n this[registerFnName] = timeout.registerTimeout\n removeFnName !== void 0 && (this[removeFnName] = timeout.removeTimeout)\n }\n }\n}\n","import { isSSR } from '../plugins/Platform.js'\n\nimport ListenersMixin from './listeners.js'\n\nexport default {\n mixins: [ ListenersMixin ],\n\n props: {\n value: {\n type: Boolean,\n default: void 0\n }\n },\n\n data () {\n return {\n showing: false\n }\n },\n\n watch: {\n value (val) {\n this.__processModelChange(val)\n },\n\n $route () {\n this.hideOnRouteChange === true && this.showing === true && this.hide()\n }\n },\n\n methods: {\n toggle (evt) {\n this[this.showing === true ? 'hide' : 'show'](evt)\n },\n\n show (evt) {\n if (\n this.disable === true ||\n (this.__showCondition !== void 0 && this.__showCondition(evt) !== true)\n ) {\n return\n }\n\n if (this.qListeners.input !== void 0 && isSSR === false) {\n this.$emit('input', true)\n this.payload = evt\n this.$nextTick(() => {\n if (this.payload === evt) {\n this.payload = void 0\n }\n })\n }\n\n if (this.value === void 0 || this.qListeners.input === void 0 || isSSR === true) {\n this.__processShow(evt)\n }\n },\n\n __processShow (evt) {\n if (this.showing === true) {\n return\n }\n\n // need to call it before setting showing to true\n // in order to not ruin the animation\n this.__preparePortal !== void 0 && this.__preparePortal()\n\n this.showing = true\n\n this.$emit('before-show', evt)\n\n if (this.__show !== void 0) {\n this.__show(evt)\n }\n else {\n this.$emit('show', evt)\n }\n },\n\n hide (evt) {\n if (this.disable === true) {\n return\n }\n\n if (this.qListeners.input !== void 0 && isSSR === false) {\n this.$emit('input', false)\n this.payload = evt\n this.$nextTick(() => {\n if (this.payload === evt) {\n this.payload = void 0\n }\n })\n }\n if (this.value === void 0 || this.qListeners.input === void 0 || isSSR === true) {\n this.__processHide(evt)\n }\n },\n\n __processHide (evt) {\n if (this.showing === false) {\n return\n }\n\n this.showing = false\n\n this.$emit('before-hide', evt)\n\n if (this.__hide !== void 0) {\n this.__hide(evt)\n }\n else {\n this.$emit('hide', evt)\n }\n },\n\n __processModelChange (val) {\n if (this.disable === true && val === true) {\n this.qListeners.input !== void 0 && this.$emit('input', false)\n }\n else if ((val === true) !== this.showing) {\n this[`__process${val === true ? 'Show' : 'Hide'}`](this.payload)\n }\n }\n }\n}\n","let queue = []\nlet waitFlags = []\n\nfunction clearFlag (flag) {\n waitFlags = waitFlags.filter(entry => entry !== flag)\n}\n\nexport function addFocusWaitFlag (flag) {\n clearFlag(flag)\n waitFlags.push(flag)\n}\n\nexport function removeFocusWaitFlag (flag) {\n clearFlag(flag)\n\n if (waitFlags.length === 0 && queue.length > 0) {\n // only call last focus handler (can't focus multiple things at once)\n queue[ queue.length - 1 ]()\n queue = []\n }\n}\n\nexport function addFocusFn (fn) {\n if (waitFlags.length === 0) {\n fn()\n }\n else {\n queue.push(fn)\n }\n}\n\nexport function removeFocusFn (fn) {\n queue = queue.filter(entry => entry !== fn)\n}\n","import Vue from 'vue'\n\nimport { isSSR } from '../plugins/Platform.js'\nimport { getBodyFullscreenElement } from '../utils/dom.js'\nimport { addFocusWaitFlag, removeFocusWaitFlag } from '../utils/private/focus-manager.js'\nimport debounce from '../utils/debounce.js'\n\nexport function closePortalMenus (vm, evt) {\n do {\n if (vm.$options.name === 'QMenu') {\n vm.hide(evt)\n\n // is this a point of separation?\n if (vm.separateClosePopup === true) {\n return vm.$parent\n }\n }\n else if (vm.__renderPortal !== void 0) {\n // treat it as point of separation if parent is QPopupProxy\n // (so mobile matches desktop behavior)\n // and hide it too\n if (vm.$parent !== void 0 && vm.$parent.$options.name === 'QPopupProxy') {\n vm.hide(evt)\n return vm.$parent\n }\n else {\n return vm\n }\n }\n vm = vm.$parent\n } while (\n vm !== void 0 && (\n vm.$el.contains === void 0 || // IE polyfill does not work on comments\n vm.$el.contains(evt.target) !== true\n )\n )\n}\n\nexport function closePortals (vm, evt, depth) {\n while (depth !== 0 && vm !== void 0) {\n if (vm.__renderPortal !== void 0) {\n depth--\n\n if (vm.$options.name === 'QMenu') {\n vm = closePortalMenus(vm, evt)\n continue\n }\n\n vm.hide(evt)\n }\n\n vm = vm.$parent\n }\n}\n\nfunction isOnGlobalDialog (vm) {\n while (vm !== void 0) {\n if (vm.$options.name === 'QGlobalDialog') {\n return true\n }\n if (vm.$options.name === 'QDialog') {\n return false\n }\n\n vm = vm.$parent\n }\n return false\n}\n\nconst Portal = {\n inheritAttrs: false,\n\n props: {\n contentClass: [ Array, String, Object ],\n contentStyle: [ Array, String, Object ]\n },\n\n methods: {\n __showPortal (isReady) {\n if (isReady === true) {\n removeFocusWaitFlag(this.focusObj)\n this.__portalIsAccessible = true\n return\n }\n\n this.__portalIsAccessible = false\n\n if (this.__portalIsActive === true) { return }\n this.__portalIsActive = true\n\n if (this.focusObj === void 0) {\n this.focusObj = {}\n }\n\n addFocusWaitFlag(this.focusObj)\n\n if (this.$q.fullscreen !== void 0 && this.$q.fullscreen.isCapable === true) {\n const append = () => {\n if (this.__portal === void 0) {\n return\n }\n\n const newParent = getBodyFullscreenElement(this.$q.fullscreen.activeEl)\n\n if (\n this.__portal.$el.parentElement !== newParent &&\n newParent.contains(this.$el) === (this.__onGlobalDialog === false)\n ) {\n newParent.appendChild(this.__portal.$el)\n }\n }\n\n this.unwatchFullscreen = this.$watch('$q.fullscreen.activeEl', debounce(append, 50))\n\n if (this.__onGlobalDialog === false || this.$q.fullscreen.isActive === true) {\n append()\n }\n }\n else if (this.__portal !== void 0 && this.__onGlobalDialog === false) {\n document.body.appendChild(this.__portal.$el)\n }\n },\n\n __hidePortal (isReady) {\n this.__portalIsAccessible = false\n\n if (isReady !== true) { return }\n\n this.__portalIsActive = false\n removeFocusWaitFlag(this.focusObj)\n\n if (this.__portal !== void 0) {\n if (this.unwatchFullscreen !== void 0) {\n this.unwatchFullscreen()\n this.unwatchFullscreen = void 0\n }\n\n if (this.__onGlobalDialog === false) {\n this.__portal.$destroy()\n this.__portal.$el.remove()\n }\n\n this.__portal = void 0\n }\n },\n\n __preparePortal () {\n if (this.__portal === void 0) {\n this.__portal = this.__onGlobalDialog === true\n ? {\n $el: this.$el,\n $refs: this.$refs\n }\n : new Vue({\n name: 'QPortal',\n parent: this,\n\n inheritAttrs: false,\n\n render: h => this.__renderPortal(h),\n\n components: this.$options.components,\n directives: this.$options.directives\n }).$mount()\n }\n }\n },\n\n render (h) {\n if (this.__onGlobalDialog === true) {\n return this.__renderPortal(h)\n }\n\n if (this.__portal !== void 0) {\n this.__portal.$forceUpdate()\n }\n },\n\n beforeDestroy () {\n this.__hidePortal(true)\n }\n}\n\nif (isSSR === false) {\n Portal.created = function () {\n this.__onGlobalDialog = isOnGlobalDialog(this.$parent)\n }\n}\n\nexport default Portal\n","export function getVmOfNode (el) {\n for (let node = el; node !== null; node = node.parentNode) {\n // node.__vue__ can be null if the instance was destroyed\n if (node.__vue__ !== void 0) {\n return node.__vue__\n }\n }\n}\n\nexport function isVmChildOf (childVm, parentVm) {\n // node.__vue__ can be null if the instance was destroyed\n if (childVm === null || parentVm === null) {\n return null\n }\n\n for (let vm = childVm; vm !== void 0; vm = vm.$parent) {\n if (vm === parentVm) {\n return true\n }\n }\n return false\n}\n","import { client } from '../../plugins/Platform.js'\nimport { listenOpts } from '../../utils/event.js'\nimport { getVmOfNode, isVmChildOf } from '../../utils/private/vm.js'\n\nlet timer\n\nconst\n { notPassiveCapture, passiveCapture } = listenOpts,\n handlers = {\n click: [],\n focus: []\n }\n\nfunction hasModalsAbove (node) {\n while ((node = node.nextElementSibling) !== null) {\n if (node.classList.contains('q-dialog--modal')) {\n return true\n }\n }\n\n return false\n}\n\nfunction execHandlers (list, evt) {\n for (let i = list.length - 1; i >= 0; i--) {\n if (list[i](evt) === void 0) {\n return\n }\n }\n}\n\nfunction globalHandler (evt) {\n clearTimeout(timer)\n\n // prevent autofocus on body resulting from blur\n if (\n evt.type === 'focusin' && (\n (client.is.ie === true && evt.target === document.body) ||\n evt.target.hasAttribute('tabindex') === true\n )\n ) {\n timer = setTimeout(() => {\n execHandlers(handlers.focus, evt)\n }, client.is.ie === true ? 500 : 200)\n }\n else {\n execHandlers(handlers.click, evt)\n }\n}\n\nexport default {\n name: 'click-outside',\n\n bind (el, { value, arg }, vnode) {\n const vmEl = vnode.componentInstance || vnode.context\n\n const ctx = {\n trigger: value,\n toggleEl: arg,\n\n handler (evt) {\n const target = evt.target\n\n if (\n evt.qClickOutside !== true &&\n document.body.contains(target) === true &&\n target.nodeType !== 8 &&\n // directives that prevent click by using pointer-events none generate click on html element\n target !== document.documentElement &&\n target.classList.contains('no-pointer-events') === false &&\n hasModalsAbove(el) !== true &&\n (\n ctx.toggleEl === void 0 ||\n ctx.toggleEl.contains(target) === false\n ) &&\n (\n target === document.body ||\n isVmChildOf(getVmOfNode(target), vmEl) === false\n )\n ) {\n // mark the event as being processed by clickOutside\n // used to prevent refocus after menu close\n evt.qClickOutside = true\n\n return ctx.trigger(evt)\n }\n }\n }\n\n if (el.__qclickoutside) {\n el.__qclickoutside_old = el.__qclickoutside\n }\n\n el.__qclickoutside = ctx\n\n if (handlers.click.length === 0) {\n document.addEventListener('mousedown', globalHandler, notPassiveCapture)\n document.addEventListener('touchstart', globalHandler, notPassiveCapture)\n document.addEventListener('focusin', globalHandler, passiveCapture)\n }\n\n handlers.click.push(ctx.handler)\n\n ctx.timerFocusin = setTimeout(() => {\n handlers.focus.push(ctx.handler)\n }, 500)\n },\n\n update (el, { value, oldValue, arg }) {\n const ctx = el.__qclickoutside\n\n if (value !== oldValue) {\n ctx.trigger = value\n }\n if (arg !== ctx.arg) {\n ctx.toggleEl = arg\n }\n },\n\n unbind (el) {\n const ctx = el.__qclickoutside_old || el.__qclickoutside\n if (ctx !== void 0) {\n clearTimeout(ctx.timerFocusin)\n\n const\n indexClick = handlers.click.findIndex(h => h === ctx.handler),\n indexFocus = handlers.focus.findIndex(h => h === ctx.handler)\n\n indexClick > -1 && handlers.click.splice(indexClick, 1)\n indexFocus > -1 && handlers.focus.splice(indexFocus, 1)\n\n if (handlers.click.length === 0) {\n clearTimeout(timer)\n document.removeEventListener('mousedown', globalHandler, notPassiveCapture)\n document.removeEventListener('touchstart', globalHandler, notPassiveCapture)\n document.removeEventListener('focusin', globalHandler, passiveCapture)\n }\n\n delete el[el.__qclickoutside_old ? '__qclickoutside_old' : '__qclickoutside']\n }\n }\n}\n","import { isSSR } from '../plugins/Platform.js'\nimport { css, getElement } from './dom.js'\n\nconst scrollTargets = isSSR === true\n ? []\n : [ null, document, document.body, document.scrollingElement, document.documentElement ]\n\nlet rtlHasScrollBugStatus\nexport function rtlHasScrollBug () {\n if (isSSR === true) {\n return false\n }\n\n if (rtlHasScrollBugStatus === void 0) {\n const scroller = document.createElement('div')\n const spacer = document.createElement('div')\n\n Object.assign(scroller.style, {\n direction: 'rtl',\n width: '1px',\n height: '1px',\n overflow: 'auto'\n })\n\n Object.assign(spacer.style, {\n width: '1000px',\n height: '1px'\n })\n\n scroller.appendChild(spacer)\n document.body.appendChild(scroller)\n scroller.scrollLeft = -1000\n\n rtlHasScrollBugStatus = scroller.scrollLeft >= 0\n\n scroller.remove()\n }\n\n return rtlHasScrollBugStatus\n}\n\nexport function getScrollTarget (el, targetEl) {\n let target = getElement(targetEl)\n\n if (target === null) {\n if (el !== Object(el) || typeof el.closest !== 'function') {\n return window\n }\n\n target = el.closest('.scroll,.scroll-y,.overflow-auto')\n }\n\n return scrollTargets.includes(target)\n ? window\n : target\n}\n\nexport function getScrollHeight (el) {\n return (el === window ? document.body : el).scrollHeight\n}\n\nexport function getScrollWidth (el) {\n return (el === window ? document.body : el).scrollWidth\n}\n\nexport function getVerticalScrollPosition (scrollTarget) {\n return scrollTarget === window\n ? window.pageYOffset || window.scrollY || document.body.scrollTop || 0\n : scrollTarget.scrollTop\n}\n\nexport const getScrollPosition = getVerticalScrollPosition\n\nexport function getHorizontalScrollPosition (scrollTarget) {\n return scrollTarget === window\n ? window.pageXOffset || window.scrollX || document.body.scrollLeft || 0\n : scrollTarget.scrollLeft\n}\n\nexport function animVerticalScrollTo (el, to, duration = 0 /* , prevTime */) {\n const prevTime = arguments[ 3 ] === void 0 ? performance.now() : arguments[ 3 ]\n const pos = getVerticalScrollPosition(el)\n\n if (duration <= 0) {\n if (pos !== to) {\n setScroll(el, to)\n }\n return\n }\n\n requestAnimationFrame(nowTime => {\n const frameTime = nowTime - prevTime\n const newPos = pos + (to - pos) / Math.max(frameTime, duration) * frameTime\n setScroll(el, newPos)\n if (newPos !== to) {\n animVerticalScrollTo(el, to, duration - frameTime, nowTime)\n }\n })\n}\n\nexport const animScrollTo = animVerticalScrollTo\n\nexport function animHorizontalScrollTo (el, to, duration = 0 /* , prevTime */) {\n const prevTime = arguments[ 3 ] === void 0 ? performance.now() : arguments[ 3 ]\n const pos = getHorizontalScrollPosition(el)\n\n if (duration <= 0) {\n if (pos !== to) {\n setHorizontalScroll(el, to)\n }\n return\n }\n\n requestAnimationFrame(nowTime => {\n const frameTime = nowTime - prevTime\n const newPos = pos + (to - pos) / Math.max(frameTime, duration) * frameTime\n setHorizontalScroll(el, newPos)\n if (newPos !== to) {\n animHorizontalScrollTo(el, to, duration - frameTime, nowTime)\n }\n })\n}\n\nfunction setScroll (scrollTarget, offset) {\n if (scrollTarget === window) {\n window.scrollTo(window.pageXOffset || window.scrollX || document.body.scrollLeft || 0, offset)\n return\n }\n scrollTarget.scrollTop = offset\n}\n\nfunction setHorizontalScroll (scrollTarget, offset) {\n if (scrollTarget === window) {\n window.scrollTo(offset, window.pageYOffset || window.scrollY || document.body.scrollTop || 0)\n return\n }\n scrollTarget.scrollLeft = offset\n}\n\nexport function setVerticalScrollPosition (scrollTarget, offset, duration) {\n if (duration) {\n animVerticalScrollTo(scrollTarget, offset, duration)\n return\n }\n setScroll(scrollTarget, offset)\n}\n\nexport const setScrollPosition = setVerticalScrollPosition\n\nexport function setHorizontalScrollPosition (scrollTarget, offset, duration) {\n if (duration) {\n animHorizontalScrollTo(scrollTarget, offset, duration)\n return\n }\n setHorizontalScroll(scrollTarget, offset)\n}\n\nlet size\nexport function getScrollbarWidth () {\n if (size !== void 0) {\n return size\n }\n\n const\n inner = document.createElement('p'),\n outer = document.createElement('div')\n\n css(inner, {\n width: '100%',\n height: '200px'\n })\n css(outer, {\n position: 'absolute',\n top: '0px',\n left: '0px',\n visibility: 'hidden',\n width: '200px',\n height: '150px',\n overflow: 'hidden'\n })\n\n outer.appendChild(inner)\n\n document.body.appendChild(outer)\n\n const w1 = inner.offsetWidth\n outer.style.overflow = 'scroll'\n let w2 = inner.offsetWidth\n\n if (w1 === w2) {\n w2 = outer.clientWidth\n }\n\n outer.remove()\n size = w1 - w2\n\n return size\n}\n\nexport function hasScrollbar (el, onY = true) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) {\n return false\n }\n\n return onY\n ? (\n el.scrollHeight > el.clientHeight && (\n el.classList.contains('scroll') ||\n el.classList.contains('overflow-auto') ||\n [ 'auto', 'scroll' ].includes(window.getComputedStyle(el)['overflow-y'])\n )\n )\n : (\n el.scrollWidth > el.clientWidth && (\n el.classList.contains('scroll') ||\n el.classList.contains('overflow-auto') ||\n [ 'auto', 'scroll' ].includes(window.getComputedStyle(el)['overflow-x'])\n )\n )\n}\n\nexport default {\n getScrollTarget,\n\n getScrollHeight,\n getScrollWidth,\n\n getScrollPosition,\n getVerticalScrollPosition,\n getHorizontalScrollPosition,\n rtlHasScrollBug,\n\n animScrollTo,\n animVerticalScrollTo,\n animHorizontalScrollTo,\n\n setScrollPosition,\n setVerticalScrollPosition,\n setHorizontalScrollPosition,\n\n getScrollbarWidth,\n hasScrollbar\n}\n","import { isKeyCode } from './key-composition.js'\n\nconst handlers = []\nlet escDown = false\n\nexport default {\n __install () {\n this.__installed = true\n window.addEventListener('keydown', evt => {\n escDown = evt.keyCode === 27\n })\n window.addEventListener('blur', () => {\n escDown === true && (escDown = false)\n })\n window.addEventListener('keyup', evt => {\n if (escDown === true) {\n escDown = false\n\n if (handlers.length !== 0 && isKeyCode(evt, 27) === true) {\n handlers[handlers.length - 1].fn(evt)\n }\n }\n })\n },\n\n register (comp, fn) {\n if (comp.$q.platform.is.desktop === true) {\n this.__installed !== true && this.__install()\n handlers.push({ comp, fn })\n }\n },\n\n pop (comp) {\n if (comp.$q.platform.is.desktop === true) {\n const index = handlers.findIndex(h => h.comp === comp)\n if (index > -1) {\n handlers.splice(index, 1)\n }\n }\n }\n}\n","import { getScrollbarWidth } from '../scroll.js'\nimport { client } from '../../plugins/Platform.js'\n\nlet vpLeft, vpTop\n\nexport function validatePosition (pos) {\n const parts = pos.split(' ')\n if (parts.length !== 2) {\n return false\n }\n if ([ 'top', 'center', 'bottom' ].includes(parts[0]) !== true) {\n console.error('Anchor/Self position must start with one of top/center/bottom')\n return false\n }\n if ([ 'left', 'middle', 'right', 'start', 'end' ].includes(parts[1]) !== true) {\n console.error('Anchor/Self position must end with one of left/middle/right/start/end')\n return false\n }\n return true\n}\n\nexport function validateOffset (val) {\n if (!val) { return true }\n if (val.length !== 2) { return false }\n if (typeof val[0] !== 'number' || typeof val[1] !== 'number') {\n return false\n }\n return true\n}\n\nconst horizontalPos = {\n 'start#ltr': 'left',\n 'start#rtl': 'right',\n 'end#ltr': 'right',\n 'end#rtl': 'left'\n}\n\n;[ 'left', 'middle', 'right' ].forEach(pos => {\n horizontalPos[`${pos}#ltr`] = pos\n horizontalPos[`${pos}#rtl`] = pos\n})\n\nexport function parsePosition (pos, rtl) {\n const parts = pos.split(' ')\n return {\n vertical: parts[0],\n horizontal: horizontalPos[`${parts[1]}#${rtl === true ? 'rtl' : 'ltr'}`]\n }\n}\n\nexport function getAnchorProps (el, offset) {\n let { top, left, right, bottom, width, height } = el.getBoundingClientRect()\n\n if (offset !== void 0) {\n top -= offset[1]\n left -= offset[0]\n bottom += offset[1]\n right += offset[0]\n\n width += offset[0]\n height += offset[1]\n }\n\n return {\n top, bottom, height,\n left, right, width,\n middle: left + (right - left) / 2,\n center: top + (bottom - top) / 2\n }\n}\n\nfunction getAbsoluteAnchorProps (el, absoluteOffset, offset) {\n let { top, left } = el.getBoundingClientRect()\n\n top += absoluteOffset.top\n left += absoluteOffset.left\n\n if (offset !== void 0) {\n top += offset[ 1 ]\n left += offset[ 0 ]\n }\n\n return {\n top, bottom: top + 1, height: 1,\n left, right: left + 1, width: 1,\n middle: left,\n center: top\n }\n}\n\nexport function getTargetProps (el) {\n return {\n top: 0,\n center: el.offsetHeight / 2,\n bottom: el.offsetHeight,\n left: 0,\n middle: el.offsetWidth / 2,\n right: el.offsetWidth\n }\n}\n\nfunction getTopLeftProps (anchorProps, targetProps, cfg) {\n return {\n top: anchorProps[ cfg.anchorOrigin.vertical ] - targetProps[ cfg.selfOrigin.vertical ],\n left: anchorProps[ cfg.anchorOrigin.horizontal ] - targetProps[ cfg.selfOrigin.horizontal ]\n }\n}\n\n// cfg: { el, anchorEl, anchorOrigin, selfOrigin, offset, absoluteOffset, cover, fit, maxHeight, maxWidth }\nexport function setPosition (cfg) {\n if (client.is.ios === true && window.visualViewport !== void 0) {\n // uses the q-position-engine CSS class\n\n const el = document.body.style\n const { offsetLeft: left, offsetTop: top } = window.visualViewport\n\n if (left !== vpLeft) {\n el.setProperty('--q-pe-left', left + 'px')\n vpLeft = left\n }\n if (top !== vpTop) {\n el.setProperty('--q-pe-top', top + 'px')\n vpTop = top\n }\n }\n\n // scroll position might change\n // if max-height/-width changes, so we\n // need to restore it after we calculate\n // the new positioning\n const { scrollLeft, scrollTop } = cfg.el\n\n const anchorProps = cfg.absoluteOffset === void 0\n ? getAnchorProps(cfg.anchorEl, cfg.cover === true ? [ 0, 0 ] : cfg.offset)\n : getAbsoluteAnchorProps(cfg.anchorEl, cfg.absoluteOffset, cfg.offset)\n\n let elStyle = {\n maxHeight: cfg.maxHeight,\n maxWidth: cfg.maxWidth,\n visibility: 'visible'\n }\n\n if (cfg.fit === true || cfg.cover === true) {\n elStyle.minWidth = anchorProps.width + 'px'\n if (cfg.cover === true) {\n elStyle.minHeight = anchorProps.height + 'px'\n }\n }\n\n Object.assign(cfg.el.style, elStyle)\n\n const targetProps = getTargetProps(cfg.el)\n let props = getTopLeftProps(anchorProps, targetProps, cfg)\n\n if (cfg.absoluteOffset === void 0 || cfg.offset === void 0) {\n applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin)\n }\n else { // we have touch position or context menu with offset\n const { top, left } = props // cache initial values\n\n // apply initial boundaries\n applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin)\n\n let hasChanged = false\n\n // did it flip vertically?\n if (props.top !== top) {\n hasChanged = true\n const offsetY = 2 * cfg.offset[ 1 ]\n anchorProps.center = anchorProps.top -= offsetY\n anchorProps.bottom -= offsetY + 2\n }\n\n // did it flip horizontally?\n if (props.left !== left) {\n hasChanged = true\n const offsetX = 2 * cfg.offset[ 0 ]\n anchorProps.middle = anchorProps.left -= offsetX\n anchorProps.right -= offsetX + 2\n }\n\n if (hasChanged === true) {\n // re-calculate props with the new anchor\n props = getTopLeftProps(anchorProps, targetProps, cfg)\n\n // and re-apply boundaries\n applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin)\n }\n }\n\n elStyle = {\n top: props.top + 'px',\n left: props.left + 'px'\n }\n\n if (props.maxHeight !== void 0) {\n elStyle.maxHeight = props.maxHeight + 'px'\n\n if (anchorProps.height > props.maxHeight) {\n elStyle.minHeight = elStyle.maxHeight\n }\n }\n if (props.maxWidth !== void 0) {\n elStyle.maxWidth = props.maxWidth + 'px'\n\n if (anchorProps.width > props.maxWidth) {\n elStyle.minWidth = elStyle.maxWidth\n }\n }\n\n Object.assign(cfg.el.style, elStyle)\n\n // restore scroll position\n if (cfg.el.scrollTop !== scrollTop) {\n cfg.el.scrollTop = scrollTop\n }\n if (cfg.el.scrollLeft !== scrollLeft) {\n cfg.el.scrollLeft = scrollLeft\n }\n}\n\nfunction applyBoundaries (props, anchorProps, targetProps, anchorOrigin, selfOrigin) {\n const\n currentHeight = targetProps.bottom,\n currentWidth = targetProps.right,\n margin = getScrollbarWidth(),\n innerHeight = window.innerHeight - margin,\n innerWidth = document.body.clientWidth\n\n if (props.top < 0 || props.top + currentHeight > innerHeight) {\n if (selfOrigin.vertical === 'center') {\n props.top = anchorProps[anchorOrigin.vertical] > innerHeight / 2\n ? Math.max(0, innerHeight - currentHeight)\n : 0\n props.maxHeight = Math.min(currentHeight, innerHeight)\n }\n else if (anchorProps[anchorOrigin.vertical] > innerHeight / 2) {\n const anchorY = Math.min(\n innerHeight,\n anchorOrigin.vertical === 'center'\n ? anchorProps.center\n : (anchorOrigin.vertical === selfOrigin.vertical ? anchorProps.bottom : anchorProps.top)\n )\n props.maxHeight = Math.min(currentHeight, anchorY)\n props.top = Math.max(0, anchorY - currentHeight)\n }\n else {\n props.top = Math.max(0, anchorOrigin.vertical === 'center'\n ? anchorProps.center\n : (anchorOrigin.vertical === selfOrigin.vertical ? anchorProps.top : anchorProps.bottom)\n )\n props.maxHeight = Math.min(currentHeight, innerHeight - props.top)\n }\n }\n\n if (props.left < 0 || props.left + currentWidth > innerWidth) {\n props.maxWidth = Math.min(currentWidth, innerWidth)\n if (selfOrigin.horizontal === 'middle') {\n props.left = anchorProps[anchorOrigin.horizontal] > innerWidth / 2\n ? Math.max(0, innerWidth - currentWidth)\n : 0\n }\n else if (anchorProps[anchorOrigin.horizontal] > innerWidth / 2) {\n const anchorX = Math.min(\n innerWidth,\n anchorOrigin.horizontal === 'middle'\n ? anchorProps.middle\n : (anchorOrigin.horizontal === selfOrigin.horizontal ? anchorProps.right : anchorProps.left)\n )\n props.maxWidth = Math.min(currentWidth, anchorX)\n props.left = Math.max(0, anchorX - props.maxWidth)\n }\n else {\n props.left = Math.max(0, anchorOrigin.horizontal === 'middle'\n ? anchorProps.middle\n : (anchorOrigin.horizontal === selfOrigin.horizontal ? anchorProps.left : anchorProps.right)\n )\n props.maxWidth = Math.min(currentWidth, innerWidth - props.left)\n }\n }\n}\n","import Vue from 'vue'\n\nimport AnchorMixin from '../../mixins/anchor.js'\nimport TimeoutMixin from '../../mixins/timeout.js'\nimport ModelToggleMixin from '../../mixins/model-toggle.js'\nimport DarkMixin from '../../mixins/dark.js'\nimport PortalMixin, { closePortalMenus } from '../../mixins/portal.js'\nimport TransitionMixin from '../../mixins/transition.js'\nimport AttrsMixin from '../../mixins/attrs.js'\nimport { client } from '../../plugins/Platform.js'\n\nimport ClickOutside from './ClickOutside.js'\nimport { getScrollTarget } from '../../utils/scroll.js'\nimport { create, stop, position, stopAndPreventClick } from '../../utils/event.js'\nimport EscapeKey from '../../utils/private/escape-key.js'\n\nimport { slot } from '../../utils/private/slot.js'\nimport { addFocusFn } from '../../utils/private/focus-manager.js'\n\nimport {\n validatePosition, validateOffset, setPosition, parsePosition\n} from '../../utils/private/position-engine.js'\n\nexport default Vue.extend({\n name: 'QMenu',\n\n mixins: [\n AttrsMixin,\n DarkMixin,\n AnchorMixin,\n TimeoutMixin,\n ModelToggleMixin,\n PortalMixin,\n TransitionMixin\n ],\n\n directives: {\n ClickOutside\n },\n\n props: {\n persistent: Boolean,\n autoClose: Boolean,\n separateClosePopup: Boolean,\n\n noRouteDismiss: Boolean,\n noRefocus: Boolean,\n noFocus: Boolean,\n\n fit: Boolean,\n cover: Boolean,\n\n square: Boolean,\n\n anchor: {\n type: String,\n validator: validatePosition\n },\n self: {\n type: String,\n validator: validatePosition\n },\n offset: {\n type: Array,\n validator: validateOffset\n },\n\n scrollTarget: {\n default: void 0\n },\n\n touchPosition: Boolean,\n\n maxHeight: {\n type: String,\n default: null\n },\n maxWidth: {\n type: String,\n default: null\n }\n },\n\n computed: {\n anchorOrigin () {\n return parsePosition(\n this.anchor || (\n this.cover === true ? 'center middle' : 'bottom start'\n ),\n this.$q.lang.rtl\n )\n },\n\n selfOrigin () {\n return this.cover === true\n ? this.anchorOrigin\n : parsePosition(this.self || 'top start', this.$q.lang.rtl)\n },\n\n menuClass () {\n return (this.square === true ? ' q-menu--square' : '') +\n (this.isDark === true ? ' q-menu--dark q-dark' : '')\n },\n\n hideOnRouteChange () {\n return this.persistent !== true &&\n this.noRouteDismiss !== true\n },\n\n onEvents () {\n const on = {\n ...this.qListeners,\n // stop propagating these events from children\n input: stop,\n 'popup-show': stop,\n 'popup-hide': stop\n }\n\n if (this.autoClose === true) {\n on.click = this.__onAutoClose\n }\n\n return on\n },\n\n attrs () {\n return {\n tabindex: -1,\n role: 'menu',\n ...this.qAttrs\n }\n }\n },\n\n methods: {\n focus () {\n addFocusFn(() => {\n let node = this.__portal !== void 0 && this.__portal.$refs !== void 0\n ? this.__portal.$refs.inner\n : void 0\n\n if (node !== void 0 && node.contains(document.activeElement) !== true) {\n node = node.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]') ||\n node.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]') ||\n node.querySelector('[autofocus], [data-autofocus]') ||\n node\n node.focus({ preventScroll: true })\n }\n })\n },\n\n __show (evt) {\n // IE can have null document.activeElement\n this.__refocusTarget = client.is.mobile !== true && this.noRefocus === false && document.activeElement !== null\n ? document.activeElement\n : void 0\n\n EscapeKey.register(this, escEvt => {\n if (this.persistent !== true) {\n this.$emit('escape-key')\n this.hide(escEvt)\n }\n })\n\n this.__showPortal()\n this.__configureScrollTarget()\n\n this.absoluteOffset = void 0\n\n if (evt !== void 0 && (this.touchPosition || this.contextMenu)) {\n const pos = position(evt)\n\n if (pos.left !== void 0) {\n const { top, left } = this.anchorEl.getBoundingClientRect()\n this.absoluteOffset = { left: pos.left - left, top: pos.top - top }\n }\n }\n\n if (this.unwatch === void 0) {\n this.unwatch = this.$watch(\n () => this.$q.screen.width + '|' + this.$q.screen.height + '|' + this.self + '|' + this.anchor + '|' + this.$q.lang.rtl,\n this.updatePosition\n )\n }\n\n this.$el.dispatchEvent(create('popup-show', { bubbles: true }))\n\n // IE can have null document.activeElement\n if (this.noFocus !== true && document.activeElement !== null) {\n document.activeElement.blur()\n }\n\n this.__registerTick(() => {\n this.updatePosition()\n this.noFocus !== true && this.focus()\n })\n\n this.__registerTimeout(() => {\n // required in order to avoid the \"double-tap needed\" issue\n if (this.$q.platform.is.ios === true) {\n // if auto-close, then this click should\n // not close the menu\n this.__avoidAutoClose = this.autoClose\n this.__portal.$el.click()\n }\n\n this.updatePosition()\n this.__showPortal(true) // done showing\n this.$emit('show', evt)\n }, 300)\n },\n\n __hide (evt) {\n this.__removeTick()\n this.__anchorCleanup(true)\n this.__hidePortal()\n\n // check null for IE\n if (\n this.__refocusTarget !== void 0 &&\n this.__refocusTarget !== null &&\n (\n // menu was hidden from code or ESC plugin\n evt === void 0 ||\n // menu was not closed from a mouse or touch clickOutside\n evt.qClickOutside !== true\n )\n ) {\n ((evt && evt.type.indexOf('key') === 0\n ? this.__refocusTarget.closest('[tabindex]:not([tabindex^=\"-\"])')\n : void 0\n ) || this.__refocusTarget).focus()\n this.__refocusTarget = void 0\n }\n\n this.$el.dispatchEvent(create('popup-hide', { bubbles: true }))\n\n // should __removeTimeout() if this gets removed\n this.__registerTimeout(() => {\n this.__hidePortal(true) // done hiding, now destroy\n this.$emit('hide', evt)\n }, 300)\n },\n\n __anchorCleanup (hiding) {\n this.absoluteOffset = void 0\n\n if (this.unwatch !== void 0) {\n this.unwatch()\n this.unwatch = void 0\n }\n\n if (hiding === true || this.showing === true) {\n EscapeKey.pop(this)\n this.__unconfigureScrollTarget()\n }\n },\n\n __unconfigureScrollTarget () {\n if (this.__scrollTarget !== void 0) {\n this.__changeScrollEvent(this.__scrollTarget)\n this.__scrollTarget = void 0\n }\n },\n\n __configureScrollTarget () {\n if (this.anchorEl !== void 0 || this.scrollTarget !== void 0) {\n this.__scrollTarget = getScrollTarget(this.anchorEl, this.scrollTarget)\n this.__changeScrollEvent(this.__scrollTarget, this.updatePosition)\n }\n },\n\n __onAutoClose (e) {\n // if auto-close, then the ios double-tap fix which\n // issues a click should not close the menu\n if (this.__avoidAutoClose !== true) {\n closePortalMenus(this, e)\n this.qListeners.click !== void 0 && this.$emit('click', e)\n }\n else {\n this.__avoidAutoClose = false\n }\n },\n\n updatePosition () {\n if (this.anchorEl === void 0 || this.__portal === void 0) {\n return\n }\n\n const el = this.__portal.$el\n\n if (el.nodeType === 8) { // IE replaces the comment with delay\n setTimeout(this.updatePosition, 25)\n return\n }\n\n setPosition({\n el,\n offset: this.offset,\n anchorEl: this.anchorEl,\n anchorOrigin: this.anchorOrigin,\n selfOrigin: this.selfOrigin,\n absoluteOffset: this.absoluteOffset,\n fit: this.fit,\n cover: this.cover,\n maxHeight: this.maxHeight,\n maxWidth: this.maxWidth\n })\n },\n\n __onClickOutside (e) {\n if (this.persistent !== true && this.showing === true) {\n const targetClassList = e.target.classList\n\n closePortalMenus(this, e)\n if (\n // always prevent touch event\n e.type === 'touchstart' ||\n // prevent click if it's on a dialog backdrop\n targetClassList.contains('q-dialog__backdrop')\n ) {\n stopAndPreventClick(e)\n }\n return true\n }\n },\n\n __renderPortal (h) {\n return h('transition', {\n props: { ...this.transitionProps }\n }, [\n this.showing === true ? h('div', {\n ref: 'inner',\n staticClass: 'q-menu q-position-engine scroll' + this.menuClass,\n class: this.contentClass,\n style: this.contentStyle,\n attrs: this.attrs,\n on: this.onEvents,\n directives: [{\n name: 'click-outside',\n value: this.__onClickOutside,\n arg: this.anchorEl\n }]\n }, slot(this, 'default')) : null\n ])\n }\n },\n\n created () {\n this.__useTick('__registerTick', '__removeTick')\n this.__useTimeout('__registerTimeout')\n },\n\n mounted () {\n this.__processModelChange(this.value)\n },\n\n beforeDestroy () {\n this.__refocusTarget = void 0\n\n // When the menu is destroyed while open we can only emit the event on anchorEl\n if (this.showing === true && this.anchorEl !== void 0) {\n this.anchorEl.dispatchEvent(\n create('popup-hide', { bubbles: true })\n )\n }\n }\n})\n","/**\n * Based on the work of https://github.com/jchook/uuid-random\n */\n\nlet\n buf,\n bufIdx = 0\nconst hexBytes = new Array(256)\n\n// Pre-calculate toString(16) for speed\nfor (let i = 0; i < 256; i++) {\n hexBytes[i] = (i + 0x100).toString(16).substr(1)\n}\n\n// Use best available PRNG\nconst randomBytes = (() => {\n // Node & Browser support\n const lib = typeof crypto !== 'undefined'\n ? crypto\n : (\n typeof window !== 'undefined'\n ? window.msCrypto // IE11\n : void 0\n )\n\n if (lib !== void 0) {\n if (lib.randomBytes !== void 0) {\n return lib.randomBytes\n }\n if (lib.getRandomValues !== void 0) {\n return n => {\n var bytes = new Uint8Array(n)\n lib.getRandomValues(bytes)\n return bytes\n }\n }\n }\n\n return n => {\n const r = []\n for (let i = n; i > 0; i--) {\n r.push(Math.floor(Math.random() * 256))\n }\n return r\n }\n})()\n\n// Buffer random numbers for speed\n// Reduce memory usage by decreasing this number (min 16)\n// or improve speed by increasing this number (try 16384)\nconst BUFFER_SIZE = 4096\n\nexport default function () {\n // Buffer some random bytes for speed\n if (buf === void 0 || (bufIdx + 16 > BUFFER_SIZE)) {\n bufIdx = 0\n buf = randomBytes(BUFFER_SIZE)\n }\n\n const b = Array.prototype.slice.call(buf, bufIdx, (bufIdx += 16))\n b[6] = (b[6] & 0x0f) | 0x40\n b[8] = (b[8] & 0x3f) | 0x80\n\n return hexBytes[b[0]] + hexBytes[b[1]] +\n hexBytes[b[2]] + hexBytes[b[3]] + '-' +\n hexBytes[b[4]] + hexBytes[b[5]] + '-' +\n hexBytes[b[6]] + hexBytes[b[7]] + '-' +\n hexBytes[b[8]] + hexBytes[b[9]] + '-' +\n hexBytes[b[10]] + hexBytes[b[11]] +\n hexBytes[b[12]] + hexBytes[b[13]] +\n hexBytes[b[14]] + hexBytes[b[15]]\n}\n","import Vue from 'vue'\n\nimport BtnMixin from '../../mixins/btn.js'\nimport AttrsMixin from '../../mixins/attrs.js'\nimport TransitionMixin from '../../mixins/transition.js'\n\nimport QIcon from '../icon/QIcon.js'\nimport QBtn from '../btn/QBtn.js'\nimport QBtnGroup from '../btn-group/QBtnGroup.js'\nimport QMenu from '../menu/QMenu.js'\n\nimport { slot } from '../../utils/private/slot.js'\nimport { stop } from '../../utils/event.js'\nimport cache from '../../utils/private/cache.js'\nimport uid from '../../utils/uid.js'\n\n// let's not duplicate type checking and prop validations\n// so just specify the props here with no type description\nconst menuTransitionProps = Object.keys(TransitionMixin.props).reduce(\n (acc, key) => (acc[ key ] = {}) && acc,\n {}\n)\n\nexport default Vue.extend({\n name: 'QBtnDropdown',\n\n mixins: [ BtnMixin, AttrsMixin ],\n\n inheritAttrs: false,\n\n props: {\n value: Boolean,\n split: Boolean,\n dropdownIcon: String,\n\n contentClass: [ Array, String, Object ],\n contentStyle: [ Array, String, Object ],\n\n cover: Boolean,\n persistent: Boolean,\n noRouteDismiss: Boolean,\n autoClose: Boolean,\n\n menuAnchor: {\n type: String,\n default: 'bottom end'\n },\n menuSelf: {\n type: String,\n default: 'top end'\n },\n menuOffset: Array,\n ...menuTransitionProps,\n\n disableMainBtn: Boolean,\n disableDropdown: Boolean,\n\n noIconAnimation: Boolean,\n\n toggleAriaLabel: String\n },\n\n data () {\n return {\n showing: this.value\n }\n },\n\n watch: {\n value (val) {\n this.$refs.menu !== void 0 && this.$refs.menu[val ? 'show' : 'hide']()\n },\n\n split () {\n this.hide()\n }\n },\n\n render (h) {\n const label = slot(this, 'label', [])\n const attrs = {\n 'aria-expanded': this.showing === true ? 'true' : 'false',\n 'aria-haspopup': 'true',\n 'aria-controls': this.targetUid,\n 'aria-label': this.toggleAriaLabel || this.$q.lang.label[ this.showing === true ? 'collapse' : 'expand' ](this.label)\n }\n\n if (\n this.disable === true ||\n (\n (this.split === false && this.disableMainBtn === true) ||\n this.disableDropdown === true\n )\n ) {\n attrs['aria-disabled'] = 'true'\n }\n\n const Arrow = [\n h(QIcon, {\n props: { name: this.dropdownIcon || this.$q.iconSet.arrow.dropdown },\n class: 'q-btn-dropdown__arrow' +\n (this.showing === true && this.noIconAnimation === false ? ' rotate-180' : '') +\n (this.split === false ? ' q-btn-dropdown__arrow-container' : '')\n })\n ]\n\n this.disableDropdown !== true && Arrow.push(\n h(QMenu, {\n ref: 'menu',\n attrs: {\n id: this.targetUid\n },\n props: {\n cover: this.cover,\n fit: true,\n persistent: this.persistent,\n noRouteDismiss: this.noRouteDismiss,\n autoClose: this.autoClose,\n anchor: this.menuAnchor,\n self: this.menuSelf,\n offset: this.menuOffset,\n contentClass: this.contentClass,\n contentStyle: this.contentStyle,\n separateClosePopup: true,\n transitionShow: this.transitionShow,\n transitionHide: this.transitionHide\n },\n on: cache(this, 'menu', {\n 'before-show': e => {\n this.showing = true\n this.$emit('before-show', e)\n },\n show: e => {\n this.$emit('show', e)\n this.$emit('input', true)\n },\n 'before-hide': e => {\n this.showing = false\n this.$emit('before-hide', e)\n },\n hide: e => {\n this.$emit('hide', e)\n this.$emit('input', false)\n }\n })\n }, slot(this, 'default'))\n )\n\n if (this.split === false) {\n return h(QBtn, {\n class: 'q-btn-dropdown q-btn-dropdown--simple',\n props: {\n ...this.$props,\n disable: this.disable === true || this.disableMainBtn === true,\n noWrap: true,\n round: false\n },\n attrs: {\n ...attrs,\n ...this.qAttrs\n },\n on: cache(this, 'nonSpl', {\n click: e => {\n this.$emit('click', e)\n }\n }),\n scopedSlots: {\n loading: this.$scopedSlots.loading\n }\n }, label.concat(Arrow))\n }\n\n const Btn = h(QBtn, {\n class: 'q-btn-dropdown--current',\n props: {\n ...this.$props,\n disable: this.disable === true || this.disableMainBtn === true,\n noWrap: true,\n iconRight: this.iconRight,\n round: false\n },\n attrs: this.qAttrs,\n on: cache(this, 'spl', {\n click: e => {\n stop(e) // prevent showing the menu on click\n this.hide()\n this.$emit('click', e)\n }\n }),\n scopedSlots: {\n loading: this.$scopedSlots.loading\n }\n }, label)\n\n return h(QBtnGroup, {\n props: {\n outline: this.outline,\n flat: this.flat,\n rounded: this.rounded,\n square: this.square,\n push: this.push,\n unelevated: this.unelevated,\n glossy: this.glossy,\n stretch: this.stretch\n },\n staticClass: 'q-btn-dropdown q-btn-dropdown--split no-wrap q-btn-item'\n }, [\n Btn,\n\n h(QBtn, {\n staticClass: 'q-btn-dropdown__arrow-container q-anchor--skip',\n attrs,\n props: {\n disable: this.disable === true || this.disableDropdown === true,\n outline: this.outline,\n flat: this.flat,\n rounded: this.rounded,\n push: this.push,\n size: this.size,\n color: this.color,\n textColor: this.textColor,\n dense: this.dense,\n ripple: this.ripple\n }\n }, Arrow)\n ])\n },\n\n methods: {\n toggle (evt) {\n this.$refs.menu && this.$refs.menu.toggle(evt)\n },\n\n show (evt) {\n this.$refs.menu && this.$refs.menu.show(evt)\n },\n\n hide (evt) {\n this.$refs.menu && this.$refs.menu.hide(evt)\n }\n },\n\n created () {\n this.targetUid = `d_${uid()}`\n },\n\n mounted () {\n this.value === true && this.show()\n }\n})\n","import QBtnDropdown from './QBtnDropdown.js'\n\nexport {\n QBtnDropdown\n}\n","import QBtnGroup from './QBtnGroup.js'\n\nexport {\n QBtnGroup\n}\n","export default {\n props: {\n name: String\n },\n\n computed: {\n formAttrs () {\n return {\n type: 'hidden',\n name: this.name,\n value: this.value\n }\n }\n },\n\n methods: {\n __injectFormInput (child, action, className) {\n child[action](\n this.$createElement('input', {\n staticClass: 'hidden',\n class: className,\n attrs: this.formAttrs,\n domProps: this.formDomProps\n })\n )\n }\n }\n}\n\nexport const FormFieldMixin = {\n props: {\n name: String\n },\n\n computed: {\n nameProp () {\n return this.name || this.for\n }\n }\n}\n","import Vue from 'vue'\n\nimport QBtn from '../btn/QBtn.js'\nimport QBtnGroup from '../btn-group/QBtnGroup.js'\n\nimport ListenersMixin from '../../mixins/listeners.js'\nimport FormMixin from '../../mixins/form.js'\nimport RippleMixin from '../../mixins/ripple.js'\n\nimport { slot, mergeSlot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QBtnToggle',\n\n mixins: [ ListenersMixin, RippleMixin, FormMixin ],\n\n props: {\n value: {\n required: true\n },\n\n options: {\n type: Array,\n required: true,\n validator: v => v.every(\n opt => ('label' in opt || 'icon' in opt || 'slot' in opt) && 'value' in opt\n )\n },\n\n // To avoid seeing the active raise shadow through the transparent button, give it a color (even white).\n color: String,\n textColor: String,\n toggleColor: {\n type: String,\n default: 'primary'\n },\n toggleTextColor: String,\n\n outline: Boolean,\n flat: Boolean,\n unelevated: Boolean,\n rounded: Boolean,\n push: Boolean,\n glossy: Boolean,\n\n size: String,\n padding: String,\n\n noCaps: Boolean,\n noWrap: Boolean,\n dense: Boolean,\n readonly: Boolean,\n disable: Boolean,\n\n stack: Boolean,\n stretch: Boolean,\n\n spread: Boolean,\n\n clearable: Boolean\n },\n\n computed: {\n hasActiveValue () {\n return this.options.find(opt => opt.value === this.value) !== void 0\n },\n\n formAttrs () {\n return {\n type: 'hidden',\n name: this.name,\n value: this.value\n }\n },\n\n btnOptions () {\n const mergeOption = (opt, key) => opt[key] === void 0 ? this[key] : opt[key]\n\n return this.options.map((opt, i) => ({\n slot: opt.slot,\n\n options: {\n key: i,\n class: opt.class,\n style: opt.style,\n on: {\n ...this.qListeners,\n click: e => this.__set(opt.value, opt, e)\n },\n attrs: {\n 'aria-pressed': opt.value === this.value ? 'true' : 'false',\n ...opt.attrs\n },\n props: {\n ...opt,\n slot: void 0,\n class: void 0,\n style: void 0,\n value: void 0,\n attrs: void 0,\n\n outline: this.outline,\n flat: this.flat,\n rounded: this.rounded,\n push: this.push,\n unelevated: this.unelevated,\n dense: this.dense,\n\n disable: this.disable === true || opt.disable === true,\n\n // Options that come from the button specific options first, then from general props\n color: opt.value === this.value ? mergeOption(opt, 'toggleColor') : mergeOption(opt, 'color'),\n textColor: opt.value === this.value ? mergeOption(opt, 'toggleTextColor') : mergeOption(opt, 'textColor'),\n noCaps: mergeOption(opt, 'noCaps') === true,\n noWrap: mergeOption(opt, 'noWrap') === true,\n\n size: mergeOption(opt, 'size'),\n padding: mergeOption(opt, 'padding'),\n ripple: mergeOption(opt, 'ripple'),\n stack: mergeOption(opt, 'stack') === true,\n stretch: mergeOption(opt, 'stretch') === true\n }\n }\n }))\n }\n },\n\n methods: {\n __set (value, opt, e) {\n if (this.readonly !== true) {\n if (this.value === value) {\n if (this.clearable === true) {\n this.$emit('input', null, null)\n this.$emit('clear')\n }\n }\n else {\n this.$emit('input', value, opt)\n }\n\n this.$emit('click', e)\n }\n }\n },\n\n render (h) {\n const child = this.btnOptions.map(opt => {\n return h(QBtn, { ...opt.options }, opt.slot !== void 0 ? slot(this, opt.slot) : void 0)\n })\n\n if (this.name !== void 0 && this.disable !== true && this.hasActiveValue === true) {\n this.__injectFormInput(child, 'push')\n }\n\n return h(QBtnGroup, {\n staticClass: 'q-btn-toggle',\n props: {\n outline: this.outline,\n flat: this.flat,\n rounded: this.rounded,\n push: this.push,\n stretch: this.stretch,\n unelevated: this.unelevated,\n glossy: this.glossy,\n spread: this.spread\n }\n }, mergeSlot(child, this, 'default'))\n }\n})\n","import QBtnToggle from './QBtnToggle.js'\n\nexport {\n QBtnToggle\n}\n","import Vue from 'vue'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport TagMixin from '../../mixins/tag.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QCard',\n\n mixins: [ ListenersMixin, DarkMixin, TagMixin ],\n\n props: {\n square: Boolean,\n flat: Boolean,\n bordered: Boolean\n },\n\n computed: {\n classes () {\n return 'q-card' +\n (this.isDark === true ? ' q-card--dark q-dark' : '') +\n (this.bordered === true ? ' q-card--bordered' : '') +\n (this.square === true ? ' q-card--square no-border-radius' : '') +\n (this.flat === true ? ' q-card--flat no-shadow' : '')\n }\n },\n\n render (h) {\n return h(this.tag, {\n class: this.classes,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import Vue from 'vue'\n\nimport TagMixin from '../../mixins/tag.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QCardSection',\n\n mixins: [ ListenersMixin, TagMixin ],\n\n props: {\n horizontal: Boolean\n },\n\n computed: {\n classes () {\n return 'q-card__section ' +\n `q-card__section--${this.horizontal === true ? 'horiz row no-wrap' : 'vert'}`\n }\n },\n\n render (h) {\n return h(this.tag, {\n class: this.classes,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import Vue from 'vue'\n\nimport AlignMixin from '../../mixins/align.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QCardActions',\n\n mixins: [ ListenersMixin, AlignMixin ],\n\n props: {\n vertical: Boolean\n },\n\n computed: {\n classes () {\n return `q-card__actions--${this.vertical === true ? 'vert column' : 'horiz row'} ${this.alignClass}`\n }\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-card__actions',\n class: this.classes,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import QCard from './QCard.js'\nimport QCardSection from './QCardSection.js'\nimport QCardActions from './QCardActions.js'\n\nexport {\n QCard,\n QCardSection,\n QCardActions\n}\n","const directions = [ 'left', 'right', 'up', 'down', 'horizontal', 'vertical' ]\n\nconst modifiersAll = {\n left: true,\n right: true,\n up: true,\n down: true,\n horizontal: true,\n vertical: true,\n all: true\n}\n\nexport function getModifierDirections (mod) {\n const dir = {}\n\n directions.forEach(direction => {\n if (mod[direction]) {\n dir[direction] = true\n }\n })\n\n if (Object.keys(dir).length === 0) {\n return modifiersAll\n }\n\n if (dir.horizontal === true) {\n dir.left = dir.right = true\n }\n if (dir.vertical === true) {\n dir.up = dir.down = true\n }\n if (dir.left === true && dir.right === true) {\n dir.horizontal = true\n }\n if (dir.up === true && dir.down === true) {\n dir.vertical = true\n }\n if (dir.horizontal === true && dir.vertical === true) {\n dir.all = true\n }\n\n return dir\n}\n\nexport function shouldStart (evt, ctx) {\n return ctx.event === void 0 &&\n evt.target !== void 0 &&\n evt.target.draggable !== true &&\n typeof ctx.handler === 'function' &&\n evt.target.nodeName.toUpperCase() !== 'INPUT' &&\n (evt.qClonedBy === void 0 || evt.qClonedBy.indexOf(ctx.uid) === -1)\n}\n","import { client } from '../plugins/Platform.js'\nimport { getModifierDirections, shouldStart } from '../utils/private/touch.js'\nimport { addEvt, cleanEvt, position, leftClick, stopAndPrevent, preventDraggable, noop } from '../utils/event.js'\nimport { clearSelection } from '../utils/private/selection.js'\n\nfunction parseArg (arg) {\n // delta (min velocity -- dist / time)\n // mobile min distance on first move\n // desktop min distance until deciding if it's a swipe or not\n const data = [0.06, 6, 50]\n\n if (typeof arg === 'string' && arg.length) {\n arg.split(':').forEach((val, index) => {\n const v = parseFloat(val)\n v && (data[index] = v)\n })\n }\n\n return data\n}\n\nfunction destroy (el) {\n const ctx = el.__qtouchswipe\n\n if (ctx !== void 0) {\n cleanEvt(ctx, 'main')\n cleanEvt(ctx, 'temp')\n\n client.is.firefox === true && preventDraggable(el, false)\n ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n delete el.__qtouchswipe\n }\n}\n\nexport default {\n name: 'touch-swipe',\n\n bind (el, { value, arg, modifiers }) {\n if (el.__qtouchswipe !== void 0) {\n destroy(el)\n el.__qtouchswipe_destroyed = true\n }\n\n // early return, we don't need to do anything\n if (modifiers.mouse !== true && client.has.touch !== true) {\n return\n }\n\n const mouseCapture = modifiers.mouseCapture === true || modifiers.mousecapture === true ? 'Capture' : ''\n\n const ctx = {\n handler: value,\n sensitivity: parseArg(arg),\n\n modifiers: modifiers,\n direction: getModifierDirections(modifiers),\n\n noop,\n\n mouseStart (evt) {\n if (shouldStart(evt, ctx) && leftClick(evt)) {\n addEvt(ctx, 'temp', [\n [ document, 'mousemove', 'move', `notPassive${mouseCapture}` ],\n [ document, 'mouseup', 'end', 'notPassiveCapture' ]\n ])\n ctx.start(evt, true)\n }\n },\n\n touchStart (evt) {\n if (shouldStart(evt, ctx)) {\n const target = evt.target\n addEvt(ctx, 'temp', [\n [ target, 'touchmove', 'move', 'notPassiveCapture' ],\n [ target, 'touchcancel', 'end', 'notPassiveCapture' ],\n [ target, 'touchend', 'end', 'notPassiveCapture' ]\n ])\n ctx.start(evt)\n }\n },\n\n start (evt, mouseEvent) {\n client.is.firefox === true && preventDraggable(el, true)\n\n const pos = position(evt)\n\n ctx.event = {\n x: pos.left,\n y: pos.top,\n time: Date.now(),\n mouse: mouseEvent === true,\n dir: false\n }\n },\n\n move (evt) {\n if (ctx.event === void 0) {\n return\n }\n\n if (ctx.event.dir !== false) {\n stopAndPrevent(evt)\n return\n }\n\n const time = Date.now() - ctx.event.time\n\n if (time === 0) {\n return\n }\n\n const\n pos = position(evt),\n distX = pos.left - ctx.event.x,\n absX = Math.abs(distX),\n distY = pos.top - ctx.event.y,\n absY = Math.abs(distY)\n\n if (ctx.event.mouse !== true) {\n if (absX < ctx.sensitivity[1] && absY < ctx.sensitivity[1]) {\n ctx.end(evt)\n return\n }\n }\n else if (absX < ctx.sensitivity[2] && absY < ctx.sensitivity[2]) {\n return\n }\n\n const\n velX = absX / time,\n velY = absY / time\n\n if (\n ctx.direction.vertical === true &&\n absX < absY &&\n absX < 100 &&\n velY > ctx.sensitivity[0]\n ) {\n ctx.event.dir = distY < 0 ? 'up' : 'down'\n }\n\n if (\n ctx.direction.horizontal === true &&\n absX > absY &&\n absY < 100 &&\n velX > ctx.sensitivity[0]\n ) {\n ctx.event.dir = distX < 0 ? 'left' : 'right'\n }\n\n if (\n ctx.direction.up === true &&\n absX < absY &&\n distY < 0 &&\n absX < 100 &&\n velY > ctx.sensitivity[0]\n ) {\n ctx.event.dir = 'up'\n }\n\n if (\n ctx.direction.down === true &&\n absX < absY &&\n distY > 0 &&\n absX < 100 &&\n velY > ctx.sensitivity[0]\n ) {\n ctx.event.dir = 'down'\n }\n\n if (\n ctx.direction.left === true &&\n absX > absY &&\n distX < 0 &&\n absY < 100 &&\n velX > ctx.sensitivity[0]\n ) {\n ctx.event.dir = 'left'\n }\n\n if (\n ctx.direction.right === true &&\n absX > absY &&\n distX > 0 &&\n absY < 100 &&\n velX > ctx.sensitivity[0]\n ) {\n ctx.event.dir = 'right'\n }\n\n if (ctx.event.dir !== false) {\n stopAndPrevent(evt)\n\n if (ctx.event.mouse === true) {\n document.body.classList.add('no-pointer-events--children')\n document.body.classList.add('non-selectable')\n clearSelection()\n\n ctx.styleCleanup = withDelay => {\n ctx.styleCleanup = void 0\n\n document.body.classList.remove('non-selectable')\n\n const remove = () => {\n document.body.classList.remove('no-pointer-events--children')\n }\n\n if (withDelay === true) { setTimeout(remove, 50) }\n else { remove() }\n }\n }\n\n ctx.handler({\n evt,\n touch: ctx.event.mouse !== true,\n mouse: ctx.event.mouse,\n direction: ctx.event.dir,\n duration: time,\n distance: {\n x: absX,\n y: absY\n }\n })\n }\n else {\n ctx.end(evt)\n }\n },\n\n end (evt) {\n if (ctx.event === void 0) {\n return\n }\n\n cleanEvt(ctx, 'temp')\n client.is.firefox === true && preventDraggable(el, false)\n ctx.styleCleanup !== void 0 && ctx.styleCleanup(true)\n evt !== void 0 && ctx.event.dir !== false && stopAndPrevent(evt)\n\n ctx.event = void 0\n }\n }\n\n el.__qtouchswipe = ctx\n\n modifiers.mouse === true && addEvt(ctx, 'main', [\n [ el, 'mousedown', 'mouseStart', `passive${mouseCapture}` ]\n ])\n\n client.has.touch === true && addEvt(ctx, 'main', [\n [ el, 'touchstart', 'touchStart', `passive${modifiers.capture === true ? 'Capture' : ''}` ],\n [ el, 'touchmove', 'noop', 'notPassiveCapture' ] // cannot be passive (ex: iOS scroll)\n ])\n },\n\n update (el, { oldValue, value }) {\n const ctx = el.__qtouchswipe\n if (ctx !== void 0 && oldValue !== value) {\n typeof value !== 'function' && ctx.end()\n ctx.handler = value\n }\n },\n\n unbind (el) {\n if (el.__qtouchswipe_destroyed === void 0) {\n destroy(el)\n }\n else {\n delete el.__qtouchswipe_destroyed\n }\n }\n}\n","import Vue from 'vue'\n\nimport TouchSwipe from '../directives/TouchSwipe.js'\n\nimport ListenersMixin from './listeners.js'\n\nimport { stop } from '../utils/event.js'\nimport { slot } from '../utils/private/slot.js'\nimport cache, { cacheWithFn } from '../utils/private/cache.js'\n\nfunction getPanelWrapper (h) {\n return h('div', {\n staticClass: 'q-panel scroll',\n attrs: { role: 'tabpanel' },\n // stop propagation of content emitted @input\n // which would tamper with Panel's model\n on: cache(this, 'stop', { input: stop })\n }, slot(this, 'default'))\n}\n\nconst PanelWrapper = Vue.extend({\n render: getPanelWrapper\n})\n\nexport const PanelParentMixin = {\n mixins: [ ListenersMixin ],\n\n directives: {\n TouchSwipe\n },\n\n props: {\n value: {\n required: true\n },\n\n animated: Boolean,\n infinite: Boolean,\n swipeable: Boolean,\n vertical: Boolean,\n\n transitionPrev: String,\n transitionNext: String,\n\n keepAlive: Boolean,\n keepAliveInclude: [ String, Array, RegExp ],\n keepAliveExclude: [ String, Array, RegExp ],\n keepAliveMax: Number\n },\n\n data () {\n return {\n panelIndex: null,\n panelTransition: null\n }\n },\n\n computed: {\n panelDirectives () {\n if (this.swipeable === true) {\n return [{\n name: 'touch-swipe',\n value: this.__swipe,\n modifiers: {\n horizontal: this.vertical !== true,\n vertical: this.vertical,\n mouse: true\n }\n }]\n }\n },\n\n contentKey () {\n return typeof this.value === 'string' || typeof this.value === 'number'\n ? this.value\n : String(this.value)\n },\n\n transitionPrevComputed () {\n return this.transitionPrev || `slide-${this.vertical === true ? 'down' : 'right'}`\n },\n\n transitionNextComputed () {\n return this.transitionNext || `slide-${this.vertical === true ? 'up' : 'left'}`\n },\n\n keepAliveProps () {\n return {\n include: this.keepAliveInclude,\n exclude: this.keepAliveExclude,\n max: this.keepAliveMax\n }\n },\n\n needsUniqueWrapper () {\n return this.keepAliveInclude !== void 0 ||\n this.keepAliveExclude !== void 0\n }\n },\n\n watch: {\n value (newVal, oldVal) {\n const index = this.__isValidPanelName(newVal) === true\n ? this.__getPanelIndex(newVal)\n : -1\n\n if (this.__forcedPanelTransition !== true) {\n this.__updatePanelTransition(\n index === -1 ? 0 : (index < this.__getPanelIndex(oldVal) ? -1 : 1)\n )\n }\n\n if (this.panelIndex !== index) {\n this.panelIndex = index\n this.$emit('before-transition', newVal, oldVal)\n this.$nextTick(() => {\n this.$emit('transition', newVal, oldVal)\n })\n }\n }\n },\n\n methods: {\n next () {\n this.__go(1)\n },\n\n previous () {\n this.__go(-1)\n },\n\n goTo (name) {\n this.$emit('input', name)\n },\n\n __isValidPanelName (name) {\n return name !== void 0 && name !== null && name !== ''\n },\n\n __getPanelIndex (name) {\n return this.panels.findIndex(panel => {\n const opt = panel.componentOptions.propsData\n return opt.name === name &&\n opt.disable !== '' &&\n opt.disable !== true\n })\n },\n\n __getEnabledPanels () {\n return this.panels.filter(panel => {\n const opt = panel.componentOptions.propsData\n return opt.disable !== '' && opt.disable !== true\n })\n },\n\n __updatePanelTransition (direction) {\n const val = direction !== 0 && this.animated === true && this.panelIndex !== -1\n ? 'q-transition--' + (direction === -1 ? this.transitionPrevComputed : this.transitionNextComputed)\n : null\n\n if (this.panelTransition !== val) {\n this.panelTransition = val\n }\n },\n\n __go (direction, startIndex = this.panelIndex) {\n let index = startIndex + direction\n const slots = this.panels\n\n while (index > -1 && index < slots.length) {\n const opt = slots[index].componentOptions\n\n if (\n opt !== void 0 &&\n opt.propsData.disable !== '' &&\n opt.propsData.disable !== true\n ) {\n this.__updatePanelTransition(direction)\n this.__forcedPanelTransition = true\n this.$emit('input', slots[index].componentOptions.propsData.name)\n setTimeout(() => {\n this.__forcedPanelTransition = false\n })\n return\n }\n\n index += direction\n }\n\n if (this.infinite === true && slots.length > 0 && startIndex !== -1 && startIndex !== slots.length) {\n this.__go(direction, direction === -1 ? slots.length : -1)\n }\n },\n\n __swipe (evt) {\n const dir = this.vertical === true ? 'up' : 'left'\n this.__go((this.$q.lang.rtl === true ? -1 : 1) * (evt.direction === dir ? 1 : -1))\n },\n\n __updatePanelIndex () {\n const index = this.__getPanelIndex(this.value)\n\n if (this.panelIndex !== index) {\n this.panelIndex = index\n }\n\n return true\n },\n\n __getPanelContent (h) {\n if (this.panels.length === 0) {\n return\n }\n\n const panel = this.__isValidPanelName(this.value) &&\n this.__updatePanelIndex() &&\n this.panels[this.panelIndex]\n\n const content = this.keepAlive === true\n ? [\n h('keep-alive', { props: this.keepAliveProps }, [\n h(\n this.needsUniqueWrapper === true\n ? cacheWithFn(this, this.contentKey, () => Vue.extend({\n name: this.contentKey,\n render: getPanelWrapper\n }))\n : PanelWrapper,\n { key: this.contentKey },\n [ panel ]\n )\n ])\n ]\n : [\n h('div', {\n staticClass: 'q-panel scroll',\n key: this.contentKey,\n attrs: { role: 'tabpanel' },\n // stop propagation of content emitted @input\n // which would tamper with Panel's model\n on: cache(this, 'stop', { input: stop })\n }, [ panel ])\n ]\n\n return this.animated === true\n ? [\n h('transition', {\n props: {\n name: this.panelTransition\n }\n }, content)\n ]\n : content\n }\n },\n\n render (h) {\n this.panels = slot(this, 'default', []).filter(\n panel => panel !== void 0 &&\n panel.componentOptions !== void 0 &&\n panel.componentOptions.propsData !== void 0 &&\n this.__isValidPanelName(panel.componentOptions.propsData.name)\n )\n\n return this.__renderPanels(h)\n }\n}\n\nexport const PanelChildMixin = {\n mixins: [ ListenersMixin ],\n\n props: {\n name: {\n required: true\n },\n disable: Boolean\n }\n}\n","import History from '../history.js'\n\nlet fullscreenCounter = 0\n\nexport default {\n props: {\n fullscreen: Boolean,\n noRouteFullscreenExit: Boolean\n },\n\n data () {\n return {\n inFullscreen: false\n }\n },\n\n watch: {\n $route () {\n this.noRouteFullscreenExit !== true && this.exitFullscreen()\n },\n\n fullscreen (v) {\n if (this.inFullscreen !== v) {\n this.toggleFullscreen()\n }\n },\n\n inFullscreen (v) {\n this.$emit('update:fullscreen', v)\n this.$emit('fullscreen', v)\n }\n },\n\n methods: {\n toggleFullscreen () {\n if (this.inFullscreen === true) {\n this.exitFullscreen()\n }\n else {\n this.setFullscreen()\n }\n },\n\n setFullscreen () {\n if (this.inFullscreen === true) {\n return\n }\n\n this.inFullscreen = true\n this.container = this.$el.parentNode\n this.container.replaceChild(this.fullscreenFillerNode, this.$el)\n document.body.appendChild(this.$el)\n\n fullscreenCounter++\n\n if (fullscreenCounter === 1) {\n document.body.classList.add('q-body--fullscreen-mixin')\n }\n\n this.__historyFullscreen = {\n handler: this.exitFullscreen\n }\n History.add(this.__historyFullscreen)\n },\n\n exitFullscreen () {\n if (this.inFullscreen !== true) {\n return\n }\n\n if (this.__historyFullscreen !== void 0) {\n History.remove(this.__historyFullscreen)\n this.__historyFullscreen = void 0\n }\n this.container.replaceChild(this.$el, this.fullscreenFillerNode)\n this.inFullscreen = false\n\n fullscreenCounter = Math.max(0, fullscreenCounter - 1)\n\n if (fullscreenCounter === 0) {\n document.body.classList.remove('q-body--fullscreen-mixin')\n\n if (this.$el.scrollIntoView !== void 0) {\n setTimeout(() => { this.$el.scrollIntoView() })\n }\n }\n }\n },\n\n beforeMount () {\n this.fullscreenFillerNode = document.createElement('span')\n },\n\n mounted () {\n this.fullscreen === true && this.setFullscreen()\n },\n\n beforeDestroy () {\n this.exitFullscreen()\n }\n}\n","const\n hasMap = typeof Map === 'function',\n hasSet = typeof Set === 'function',\n hasArrayBuffer = typeof ArrayBuffer === 'function'\n\nexport function isDeepEqual (a, b) {\n if (a === b) {\n return true\n }\n\n if (a !== null && b !== null && typeof a === 'object' && typeof b === 'object') {\n if (a.constructor !== b.constructor) {\n return false\n }\n\n let length, i\n\n if (a.constructor === Array) {\n length = a.length\n\n if (length !== b.length) {\n return false\n }\n\n for (i = length; i-- !== 0;) {\n if (isDeepEqual(a[i], b[i]) !== true) {\n return false\n }\n }\n\n return true\n }\n\n if (hasMap === true && a.constructor === Map) {\n if (a.size !== b.size) {\n return false\n }\n\n let iter = a.entries()\n\n i = iter.next()\n while (i.done !== true) {\n if (b.has(i.value[0]) !== true) {\n return false\n }\n i = iter.next()\n }\n\n iter = a.entries()\n i = iter.next()\n while (i.done !== true) {\n if (isDeepEqual(i.value[1], b.get(i.value[0])) !== true) {\n return false\n }\n i = iter.next()\n }\n\n return true\n }\n\n if (hasSet === true && a.constructor === Set) {\n if (a.size !== b.size) {\n return false\n }\n\n const iter = a.entries()\n\n i = iter.next()\n while (i.done !== true) {\n if (b.has(i.value[0]) !== true) {\n return false\n }\n i = iter.next()\n }\n\n return true\n }\n\n if (hasArrayBuffer === true && a.buffer != null && a.buffer.constructor === ArrayBuffer) {\n length = a.length\n\n if (length !== b.length) {\n return false\n }\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) {\n return false\n }\n }\n\n return true\n }\n\n if (a.constructor === RegExp) {\n return a.source === b.source && a.flags === b.flags\n }\n\n if (a.valueOf !== Object.prototype.valueOf) {\n return a.valueOf() === b.valueOf()\n }\n\n if (a.toString !== Object.prototype.toString) {\n return a.toString() === b.toString()\n }\n\n const keys = Object.keys(a).filter(key => a[key] !== void 0)\n length = keys.length\n\n if (length !== Object.keys(b).filter(key => b[key] !== void 0).length) {\n return false\n }\n\n for (i = length; i-- !== 0;) {\n const key = keys[i]\n if (isDeepEqual(a[key], b[key]) !== true) {\n return false\n }\n }\n\n return true\n }\n\n // true if both NaN, false otherwise\n return a !== a && b !== b // eslint-disable-line no-self-compare\n}\n\n// not perfect, but what we ARE interested is for Arrays not to slip in\n// as spread operator will mess things up in various areas\n// see https://jsbench.me/tbl0iliyax/1\nexport function isObject (v) {\n return v !== null && typeof v === 'object' && Array.isArray(v) !== true\n}\n\nexport function isDate (v) {\n return Object.prototype.toString.call(v) === '[object Date]'\n}\n\nexport function isRegexp (v) {\n return Object.prototype.toString.call(v) === '[object RegExp]'\n}\n\nexport function isNumber (v) {\n return typeof v === 'number' && isFinite(v)\n}\n\nexport default {\n deepEqual: isDeepEqual,\n object: isObject,\n date: isDate,\n regexp: isRegexp,\n number: isNumber\n}\n","import Vue from 'vue'\n\nimport QBtn from '../btn/QBtn.js'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport { PanelParentMixin } from '../../mixins/panel.js'\nimport FullscreenMixin from '../../mixins/fullscreen.js'\n\nimport { isNumber } from '../../utils/is.js'\nimport { mergeSlot } from '../../utils/private/slot.js'\nimport cache from '../../utils/private/cache.js'\n\nexport default Vue.extend({\n name: 'QCarousel',\n\n mixins: [ DarkMixin, PanelParentMixin, FullscreenMixin ],\n\n props: {\n height: String,\n padding: Boolean,\n\n controlType: {\n type: String,\n validator: v => [ 'regular', 'flat', 'outline', 'push', 'unelevated' ].includes(v),\n default: 'flat'\n },\n controlColor: String,\n controlTextColor: String,\n\n autoplay: [ Number, Boolean ],\n\n arrows: Boolean,\n prevIcon: String,\n nextIcon: String,\n\n navigation: Boolean,\n navigationPosition: {\n type: String,\n validator: v => [ 'top', 'right', 'bottom', 'left' ].includes(v)\n },\n navigationIcon: String,\n navigationActiveIcon: String,\n\n thumbnails: Boolean\n },\n\n computed: {\n style () {\n if (this.inFullscreen !== true && this.height !== void 0) {\n return {\n height: this.height\n }\n }\n },\n\n direction () {\n return this.vertical === true ? 'vertical' : 'horizontal'\n },\n\n classes () {\n return `q-carousel q-panel-parent q-carousel--with${this.padding === true ? '' : 'out'}-padding` +\n (this.inFullscreen === true ? ' fullscreen' : '') +\n (this.isDark === true ? ' q-carousel--dark q-dark' : '') +\n (this.arrows === true ? ` q-carousel--arrows-${this.direction}` : '') +\n (this.navigation === true ? ` q-carousel--navigation-${this.navigationPositionComputed}` : '')\n },\n\n arrowIcons () {\n const ico = [\n this.prevIcon || this.$q.iconSet.carousel[this.vertical === true ? 'up' : 'left'],\n this.nextIcon || this.$q.iconSet.carousel[this.vertical === true ? 'down' : 'right']\n ]\n\n return this.vertical === false && this.$q.lang.rtl === true\n ? ico.reverse()\n : ico\n },\n\n navIcon () {\n return this.navigationIcon || this.$q.iconSet.carousel.navigationIcon\n },\n\n navActiveIcon () {\n return this.navigationActiveIcon || this.navIcon\n },\n\n navigationPositionComputed () {\n return this.navigationPosition || (this.vertical === true ? 'right' : 'bottom')\n },\n\n controlProps () {\n return {\n color: this.controlColor,\n textColor: this.controlTextColor,\n round: true,\n [ this.controlType ]: true,\n dense: true\n }\n },\n\n transitionPrevComputed () {\n return this.transitionPrev || 'fade'\n },\n\n transitionNextComputed () {\n return this.transitionNext || 'fade'\n }\n },\n\n watch: {\n value () {\n if (this.autoplay) {\n clearInterval(this.timer)\n this.__startTimer()\n }\n },\n\n autoplay (val) {\n if (val) {\n this.__startTimer()\n }\n else {\n clearInterval(this.timer)\n }\n }\n },\n\n methods: {\n __startTimer () {\n const duration = isNumber(this.autoplay) === true\n ? this.autoplay\n : 5000\n\n this.timer = setTimeout(\n duration >= 0 ? this.next : this.previous,\n Math.abs(duration)\n )\n },\n\n __getNavigationContainer (h, type, mapping) {\n return h('div', {\n class: 'q-carousel__control q-carousel__navigation no-wrap absolute flex' +\n ` q-carousel__navigation--${type} q-carousel__navigation--${this.navigationPositionComputed}` +\n (this.controlColor !== void 0 ? ` text-${this.controlColor}` : '')\n }, [\n h('div', {\n staticClass: 'q-carousel__navigation-inner flex flex-center no-wrap'\n }, this.__getEnabledPanels().map(mapping))\n ])\n },\n\n __getContent (h) {\n const node = []\n\n if (this.navigation === true) {\n const fn = this.$scopedSlots['navigation-icon'] !== void 0\n ? this.$scopedSlots['navigation-icon']\n : opts => h(QBtn, {\n key: 'nav' + opts.name,\n class: `q-carousel__navigation-icon q-carousel__navigation-icon--${opts.active === true ? '' : 'in'}active`,\n props: opts.btnProps,\n on: cache(this, 'nav#' + opts.name, { click: opts.onClick })\n })\n\n const maxIndex = this.panels.length - 1\n node.push(\n this.__getNavigationContainer(h, 'buttons', (panel, index) => {\n const name = panel.componentOptions.propsData.name\n const active = this.panelIndex === index\n\n return fn({\n index,\n maxIndex,\n name,\n active,\n btnProps: {\n icon: active === true ? this.navActiveIcon : this.navIcon,\n size: 'sm',\n ...this.controlProps\n },\n onClick: () => { this.goTo(name) }\n })\n })\n )\n }\n else if (this.thumbnails === true) {\n const color = this.controlColor !== void 0\n ? ` text-${this.controlColor}`\n : ''\n\n node.push(this.__getNavigationContainer(h, 'thumbnails', panel => {\n const slide = panel.componentOptions.propsData\n\n return h('img', {\n class: `q-carousel__thumbnail q-carousel__thumbnail--${slide.name === this.value ? '' : 'in'}active` + color,\n attrs: {\n src: slide.imgSrc\n },\n key: 'tmb#' + slide.name,\n on: cache(this, 'tmb#' + slide.name, { click: () => { this.goTo(slide.name) } })\n })\n }))\n }\n\n if (this.arrows === true && this.panelIndex >= 0) {\n if (this.infinite === true || this.panelIndex > 0) {\n node.push(\n h('div', {\n key: 'prev',\n staticClass: `q-carousel__control q-carousel__arrow q-carousel__prev-arrow q-carousel__prev-arrow--${this.direction} absolute flex flex-center`\n }, [\n h(QBtn, {\n props: { icon: this.arrowIcons[0], ...this.controlProps },\n on: cache(this, 'prev', { click: this.previous })\n })\n ])\n )\n }\n\n if (this.infinite === true || this.panelIndex < this.panels.length - 1) {\n node.push(\n h('div', {\n key: 'next',\n staticClass: `q-carousel__control q-carousel__arrow q-carousel__next-arrow q-carousel__next-arrow--${this.direction} absolute flex flex-center`\n }, [\n h(QBtn, {\n props: { icon: this.arrowIcons[1], ...this.controlProps },\n on: cache(this, 'next', { click: this.next })\n })\n ])\n )\n }\n }\n\n return mergeSlot(node, this, 'control')\n },\n\n __renderPanels (h) {\n return h('div', {\n style: this.style,\n class: this.classes,\n on: { ...this.qListeners }\n }, [\n h('div', {\n staticClass: 'q-carousel__slides-container',\n directives: this.panelDirectives\n }, this.__getPanelContent(h))\n ].concat(this.__getContent(h)))\n }\n },\n\n mounted () {\n this.autoplay && this.__startTimer()\n },\n\n beforeDestroy () {\n clearInterval(this.timer)\n }\n})\n","import Vue from 'vue'\n\nimport { PanelChildMixin } from '../../mixins/panel.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QCarouselSlide',\n\n mixins: [ PanelChildMixin ],\n\n props: {\n imgSrc: String\n },\n\n computed: {\n style () {\n if (this.imgSrc) {\n return {\n backgroundImage: `url(\"${this.imgSrc}\")`\n }\n }\n }\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-carousel__slide',\n style: this.style,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QCarouselControl',\n\n mixins: [ ListenersMixin ],\n\n props: {\n position: {\n type: String,\n default: 'bottom-right',\n validator: v => [\n 'top-right', 'top-left',\n 'bottom-right', 'bottom-left',\n 'top', 'right', 'bottom', 'left'\n ].includes(v)\n },\n offset: {\n type: Array,\n default: () => [18, 18],\n validator: v => v.length === 2\n }\n },\n\n computed: {\n classes () {\n return `absolute-${this.position}`\n },\n\n style () {\n return {\n margin: `${this.offset[1]}px ${this.offset[0]}px`\n }\n }\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-carousel__control absolute',\n style: this.style,\n class: this.classes,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import QCarousel from './QCarousel.js'\nimport QCarouselSlide from './QCarouselSlide.js'\nimport QCarouselControl from './QCarouselControl.js'\n\nexport {\n QCarousel,\n QCarouselSlide,\n QCarouselControl\n}\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nexport default Vue.extend({\n name: 'QChatMessage',\n\n mixins: [ ListenersMixin ],\n\n props: {\n sent: Boolean,\n label: String,\n bgColor: String,\n textColor: String,\n name: String,\n avatar: String,\n text: Array,\n stamp: String,\n size: String,\n labelSanitize: Boolean,\n nameSanitize: Boolean,\n textSanitize: Boolean,\n stampSanitize: Boolean\n },\n\n computed: {\n textClass () {\n return `q-message-text-content q-message-text-content--${this.op}` +\n (this.textColor !== void 0 ? ` text-${this.textColor}` : '')\n },\n\n messageClass () {\n return `q-message-text q-message-text--${this.op}` +\n (this.bgColor !== void 0 ? ` text-${this.bgColor}` : '')\n },\n\n containerClass () {\n return 'q-message-container row items-end no-wrap' +\n (this.sent === true ? ' reverse' : '')\n },\n\n sizeClass () {\n if (this.size !== void 0) {\n return `col-${this.size}`\n }\n },\n\n op () {\n return this.sent === true ? 'sent' : 'received'\n }\n },\n\n methods: {\n __wrapStamp (h, node) {\n if (this.$scopedSlots.stamp !== void 0) {\n return [ node, h('div', { staticClass: 'q-message-stamp' }, this.$scopedSlots.stamp()) ]\n }\n\n if (this.stamp) {\n const domPropStamp = this.stampSanitize === true ? 'textContent' : 'innerHTML'\n\n return [\n node,\n h('div', {\n staticClass: 'q-message-stamp',\n domProps: { [domPropStamp]: this.stamp }\n })\n ]\n }\n\n return [ node ]\n },\n\n __getText (h, contentList, withSlots) {\n const domPropText = this.textSanitize === true ? 'textContent' : 'innerHTML'\n\n if (\n withSlots === true &&\n contentList.some(entry => entry.tag === void 0 && entry.text !== void 0) === true\n ) {\n return [\n h('div', { class: this.messageClass }, [\n h('div', { class: this.textClass }, this.__wrapStamp(h, h('div', contentList)))\n ])\n ]\n }\n\n const content = withSlots !== true\n ? text => h('div', { domProps: { [domPropText]: text } })\n : (contentList.length > 1 ? text => text : text => h('div', [text]))\n\n return contentList.map((msg, index) => h('div', {\n key: index,\n class: this.messageClass\n }, [\n h('div', { class: this.textClass }, this.__wrapStamp(h, content(msg)))\n ]))\n }\n },\n\n render (h) {\n const container = []\n\n if (this.$scopedSlots.avatar !== void 0) {\n container.push(this.$scopedSlots.avatar())\n }\n else if (this.avatar !== void 0) {\n container.push(\n h('img', {\n class: `q-message-avatar q-message-avatar--${this.op}`,\n attrs: { src: this.avatar, 'aria-hidden': 'true' }\n })\n )\n }\n\n const msg = []\n\n if (this.$scopedSlots.name !== void 0) {\n msg.push(\n h('div', {\n class: `q-message-name q-message-name--${this.op}`\n }, this.$scopedSlots.name())\n )\n }\n else if (this.name !== void 0) {\n msg.push(\n h('div', {\n class: `q-message-name q-message-name--${this.op}`,\n domProps: { [this.nameSanitize === true ? 'textContent' : 'innerHTML']: this.name }\n })\n )\n }\n\n this.text !== void 0 && msg.push(\n this.__getText(h, this.text)\n )\n\n this.$scopedSlots.default !== void 0 && msg.push(\n this.__getText(h, this.$scopedSlots.default(), true)\n )\n\n container.push(\n h('div', { class: this.sizeClass }, msg)\n )\n\n const child = []\n\n if (this.$scopedSlots.label !== void 0) {\n child.push(\n h('div', { staticClass: 'q-message-label' }, this.$scopedSlots.label())\n )\n }\n else if (this.label !== void 0) {\n child.push(\n h('div', {\n staticClass: 'q-message-label',\n domProps: { [this.labelSanitize === true ? 'textContent' : 'innerHTML']: this.label }\n })\n )\n }\n\n child.push(\n h('div', { class: this.containerClass }, container)\n )\n\n return h('div', {\n class: `q-message q-message-${this.op}`,\n on: { ...this.qListeners }\n }, child)\n }\n})\n","import QChatMessage from './QChatMessage.js'\n\nexport {\n QChatMessage\n}\n","import { getSizeMixin } from './size.js'\n\nexport default getSizeMixin({\n xs: 30,\n sm: 35,\n md: 40,\n lg: 50,\n xl: 60\n})\n","export default {\n computed: {\n __refocusTargetEl () {\n if (this.disable !== true) {\n return this.$createElement('span', {\n ref: 'refocusTarget',\n staticClass: 'no-outline',\n attrs: { tabindex: -1 }\n })\n }\n }\n },\n\n methods: {\n __refocusTarget (e) {\n if (e !== void 0 && e.type.indexOf('key') === 0) {\n if (document.activeElement !== this.$el && this.$el.contains(document.activeElement) === true) {\n this.$el.focus()\n }\n }\n else if ((e === void 0 || this.$el.contains(e.target) === true) && this.$refs.refocusTarget !== void 0) {\n this.$refs.refocusTarget.focus()\n }\n }\n }\n}\n","import DarkMixin from './dark.js'\nimport { stopAndPrevent } from '../utils/event.js'\n\nimport FormMixin from './form.js'\nimport OptionSizeMixin from './option-size.js'\nimport RefocusTargetMixin from './refocus-target.js'\n\nimport { slot, mergeSlot } from '../utils/private/slot.js'\nimport cache from '../utils/private/cache.js'\n\nexport default {\n mixins: [ DarkMixin, OptionSizeMixin, FormMixin, RefocusTargetMixin ],\n\n props: {\n value: {\n required: true,\n default: null\n },\n val: {},\n\n trueValue: { default: true },\n falseValue: { default: false },\n indeterminateValue: { default: null },\n\n checkedIcon: String,\n uncheckedIcon: String,\n indeterminateIcon: String,\n\n toggleOrder: {\n type: String,\n validator: v => v === 'tf' || v === 'ft'\n },\n toggleIndeterminate: Boolean,\n\n label: String,\n leftLabel: Boolean,\n\n color: String,\n keepColor: Boolean,\n dense: Boolean,\n\n disable: Boolean,\n tabindex: [String, Number]\n },\n\n computed: {\n isTrue () {\n return this.modelIsArray === true\n ? this.index > -1\n : this.value === this.trueValue\n },\n\n isFalse () {\n return this.modelIsArray === true\n ? this.index === -1\n : this.value === this.falseValue\n },\n\n isIndeterminate () {\n return this.isTrue === false && this.isFalse === false\n },\n\n index () {\n if (this.modelIsArray === true) {\n return this.value.indexOf(this.val)\n }\n },\n\n modelIsArray () {\n return this.val !== void 0 && Array.isArray(this.value)\n },\n\n computedTabindex () {\n return this.disable === true ? -1 : this.tabindex || 0\n },\n\n classes () {\n return `q-${this.type} cursor-pointer no-outline row inline no-wrap items-center` +\n (this.disable === true ? ' disabled' : '') +\n (this.isDark === true ? ` q-${this.type}--dark` : '') +\n (this.dense === true ? ` q-${this.type}--dense` : '') +\n (this.leftLabel === true ? ' reverse' : '')\n },\n\n innerClass () {\n const state = this.isTrue === true ? 'truthy' : (this.isFalse === true ? 'falsy' : 'indet')\n const color = this.color !== void 0 && (\n this.keepColor === true ||\n (this.type === 'toggle' ? this.isTrue === true : this.isFalse !== true)\n )\n ? ` text-${this.color}`\n : ''\n\n return `q-${this.type}__inner--${state}${color}`\n },\n\n formAttrs () {\n const prop = { type: 'checkbox' }\n\n this.name !== void 0 && Object.assign(prop, {\n checked: this.isTrue,\n name: this.name,\n value: this.modelIsArray === true\n ? this.val\n : this.trueValue\n })\n\n return prop\n },\n\n attrs () {\n const attrs = {\n tabindex: this.computedTabindex,\n role: this.type === 'toggle' ? 'switch' : 'checkbox',\n 'aria-label': this.label,\n 'aria-checked': this.isIndeterminate === true\n ? 'mixed'\n : (this.isTrue === true ? 'true' : 'false')\n }\n\n if (this.disable === true) {\n attrs['aria-disabled'] = 'true'\n }\n\n return attrs\n }\n },\n\n methods: {\n toggle (e) {\n if (e !== void 0) {\n stopAndPrevent(e)\n this.__refocusTarget(e)\n }\n\n if (this.disable !== true) {\n this.$emit('input', this.__getNextValue(), e)\n }\n },\n\n __getNextValue () {\n if (this.modelIsArray === true) {\n if (this.isTrue === true) {\n const val = this.value.slice()\n val.splice(this.index, 1)\n return val\n }\n\n return this.value.concat([ this.val ])\n }\n\n if (this.isTrue === true) {\n if (this.toggleOrder !== 'ft' || this.toggleIndeterminate === false) {\n return this.falseValue\n }\n }\n else if (this.isFalse === true) {\n if (this.toggleOrder === 'ft' || this.toggleIndeterminate === false) {\n return this.trueValue\n }\n }\n else {\n return this.toggleOrder !== 'ft'\n ? this.trueValue\n : this.falseValue\n }\n\n return this.indeterminateValue\n },\n\n __onKeydown (e) {\n if (e.keyCode === 13 || e.keyCode === 32) {\n stopAndPrevent(e)\n }\n },\n\n __onKeyup (e) {\n if (e.keyCode === 13 || e.keyCode === 32) {\n this.toggle(e)\n }\n }\n },\n\n render (h) {\n const inner = this.__getInner(h)\n\n this.disable !== true && this.__injectFormInput(\n inner,\n 'unshift',\n `q-${this.type}__native absolute q-ma-none q-pa-none`\n )\n\n const child = [\n h('div', {\n staticClass: `q-${this.type}__inner relative-position non-selectable`,\n class: this.innerClass,\n style: this.sizeStyle,\n attrs: { 'aria-hidden': 'true' }\n }, inner)\n ]\n\n if (this.__refocusTargetEl !== void 0) {\n child.push(this.__refocusTargetEl)\n }\n\n const label = this.label !== void 0\n ? mergeSlot([ this.label ], this, 'default')\n : slot(this, 'default')\n\n label !== void 0 && child.push(\n h('div', {\n staticClass: `q-${this.type}__label q-anchor--skip`\n }, label)\n )\n\n return h('div', {\n class: this.classes,\n attrs: this.attrs,\n on: cache(this, 'inpExt', {\n click: this.toggle,\n keydown: this.__onKeydown,\n keyup: this.__onKeyup\n })\n }, child)\n }\n}\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport CheckboxMixin from '../../mixins/checkbox.js'\n\nexport default Vue.extend({\n name: 'QCheckbox',\n\n mixins: [ CheckboxMixin ],\n\n computed: {\n computedIcon () {\n return this.isTrue === true\n ? this.checkedIcon\n : (this.isIndeterminate === true\n ? this.indeterminateIcon\n : this.uncheckedIcon\n )\n }\n },\n\n methods: {\n __getInner (h) {\n return this.computedIcon !== void 0\n ? [\n h('div', {\n key: 'icon',\n staticClass: 'q-checkbox__icon-container absolute-full flex flex-center no-wrap'\n }, [\n h(QIcon, {\n staticClass: 'q-checkbox__icon',\n props: { name: this.computedIcon }\n })\n ])\n ]\n : [\n h('div', {\n key: 'svg',\n staticClass: 'q-checkbox__bg absolute'\n }, [\n h('svg', {\n staticClass: 'q-checkbox__svg fit absolute-full',\n attrs: { focusable: 'false' /* needed for IE11 */, viewBox: '0 0 24 24' }\n }, [\n h('path', {\n staticClass: 'q-checkbox__truthy',\n attrs: {\n fill: 'none',\n d: 'M1.73,12.91 8.1,19.28 22.79,4.59'\n }\n }),\n\n h('path', {\n staticClass: 'q-checkbox__indet',\n attrs: {\n d: 'M4,14H20V10H4'\n }\n })\n ])\n ])\n ]\n }\n },\n\n created () {\n this.type = 'checkbox'\n }\n})\n","import QCheckbox from './QCheckbox.js'\n\nexport {\n QCheckbox\n}\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport RippleMixin from '../../mixins/ripple.js'\nimport { getSizeMixin } from '../../mixins/size.js'\n\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { mergeSlotSafely } from '../../utils/private/slot.js'\nimport cache from '../../utils/private/cache.js'\n\nexport default Vue.extend({\n name: 'QChip',\n\n mixins: [\n RippleMixin,\n DarkMixin,\n getSizeMixin({\n xs: 8,\n sm: 10,\n md: 14,\n lg: 20,\n xl: 24\n })\n ],\n\n model: {\n event: 'remove'\n },\n\n props: {\n dense: Boolean,\n\n icon: String,\n iconRight: String,\n iconRemove: String,\n iconSelected: String,\n label: [String, Number],\n\n color: String,\n textColor: String,\n\n value: {\n type: Boolean,\n default: true\n },\n selected: {\n type: Boolean,\n default: null\n },\n\n square: Boolean,\n outline: Boolean,\n clickable: Boolean,\n removable: Boolean,\n\n removeAriaLabel: String,\n\n tabindex: [String, Number],\n disable: Boolean\n },\n\n computed: {\n classes () {\n const text = this.outline === true\n ? this.color || this.textColor\n : this.textColor\n\n return {\n [`bg-${this.color}`]: this.outline === false && this.color !== void 0,\n [`text-${text} q-chip--colored`]: text,\n disabled: this.disable,\n 'q-chip--dense': this.dense,\n 'q-chip--outline': this.outline,\n 'q-chip--selected': this.selected,\n 'q-chip--clickable cursor-pointer non-selectable q-hoverable': this.isClickable,\n 'q-chip--square': this.square,\n 'q-chip--dark q-dark': this.isDark\n }\n },\n\n hasLeftIcon () {\n return this.selected === true || this.icon !== void 0\n },\n\n leftIcon () {\n return this.selected === true\n ? this.iconSelected || this.$q.iconSet.chip.selected\n : this.icon\n },\n\n removeIcon () {\n return this.iconRemove || this.$q.iconSet.chip.remove\n },\n\n isClickable () {\n return this.disable === false && (this.clickable === true || this.selected !== null)\n },\n\n attrs () {\n const chip = this.disable === true\n ? { tabindex: -1, 'aria-disabled': 'true' }\n : { tabindex: this.tabindex || 0 }\n const remove = {\n ...chip,\n role: 'button',\n 'aria-hidden': 'false',\n 'aria-label': this.removeAriaLabel || this.$q.lang.label.remove\n }\n\n return { chip, remove }\n }\n },\n\n methods: {\n __onKeyup (e) {\n e.keyCode === 13 /* ENTER */ && this.__onClick(e)\n },\n\n __onClick (e) {\n if (!this.disable) {\n this.$emit('update:selected', !this.selected)\n this.$emit('click', e)\n }\n },\n\n __onRemove (e) {\n if (e.keyCode === void 0 || e.keyCode === 13) {\n stopAndPrevent(e)\n !this.disable && this.$emit('remove', false)\n }\n },\n\n __getContent (h) {\n const child = []\n\n this.isClickable === true && child.push(\n h('div', { staticClass: 'q-focus-helper' })\n )\n\n this.hasLeftIcon === true && child.push(\n h(QIcon, {\n staticClass: 'q-chip__icon q-chip__icon--left',\n props: { name: this.leftIcon }\n })\n )\n\n const label = this.label !== void 0\n ? [ h('div', { staticClass: 'ellipsis' }, [ this.label ]) ]\n : void 0\n\n child.push(\n h('div', {\n staticClass: 'q-chip__content col row no-wrap items-center q-anchor--skip'\n }, mergeSlotSafely(label, this, 'default'))\n )\n\n this.iconRight && child.push(\n h(QIcon, {\n staticClass: 'q-chip__icon q-chip__icon--right',\n props: { name: this.iconRight }\n })\n )\n\n this.removable === true && child.push(\n h(QIcon, {\n staticClass: 'q-chip__icon q-chip__icon--remove cursor-pointer',\n props: { name: this.removeIcon },\n attrs: this.attrs.remove,\n on: cache(this, 'non', {\n click: this.__onRemove,\n keyup: this.__onRemove\n })\n })\n )\n\n return child\n }\n },\n\n render (h) {\n if (this.value === false) { return }\n\n const data = {\n staticClass: 'q-chip row inline no-wrap items-center',\n class: this.classes,\n style: this.sizeStyle\n }\n\n this.isClickable === true && Object.assign(data, {\n attrs: this.attrs.chip,\n on: cache(this, 'click', {\n click: this.__onClick,\n keyup: this.__onKeyup\n }),\n directives: cache(this, 'dir#' + this.ripple, [\n { name: 'ripple', value: this.ripple }\n ])\n })\n\n return h('div', data, this.__getContent(h))\n }\n})\n","import QChip from './QChip.js'\n\nexport {\n QChip\n}\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\nimport SizeMixin from '../../mixins/size.js'\nimport { mergeSlotSafely } from '../../utils/private/slot.js'\nimport { between } from '../../utils/format.js'\n\nconst\n radius = 50,\n diameter = 2 * radius,\n circumference = diameter * Math.PI,\n strokeDashArray = Math.round(circumference * 1000) / 1000\n\nexport default Vue.extend({\n name: 'QCircularProgress',\n\n mixins: [ ListenersMixin, SizeMixin ],\n\n props: {\n value: {\n type: Number,\n default: 0\n },\n\n min: {\n type: Number,\n default: 0\n },\n max: {\n type: Number,\n default: 100\n },\n\n color: String,\n centerColor: String,\n trackColor: String,\n\n fontSize: String,\n rounded: Boolean,\n\n // ratio\n thickness: {\n type: Number,\n default: 0.2,\n validator: v => v >= 0 && v <= 1\n },\n\n angle: {\n type: Number,\n default: 0\n },\n\n indeterminate: Boolean,\n showValue: Boolean,\n reverse: Boolean,\n\n instantFeedback: Boolean\n },\n\n computed: {\n normalizedValue () {\n return between(this.value, this.min, this.max)\n },\n\n svgStyle () {\n const angle = this.$q.lang.rtl === true ? -this.angle : this.angle\n\n return {\n transform: this.reverse !== (this.$q.lang.rtl === true)\n ? `scale3d(-1, 1, 1) rotate3d(0, 0, 1, ${-90 - angle}deg)`\n : `rotate3d(0, 0, 1, ${angle - 90}deg)`\n }\n },\n\n circleStyle () {\n if (this.instantFeedback !== true && this.indeterminate !== true) {\n return { transition: 'stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease' }\n }\n },\n\n viewBox () {\n return diameter / (1 - this.thickness / 2)\n },\n\n viewBoxAttr () {\n return `${this.viewBox / 2} ${this.viewBox / 2} ${this.viewBox} ${this.viewBox}`\n },\n\n strokeDashOffset () {\n const progress = 1 - (this.normalizedValue - this.min) / (this.max - this.min)\n return progress * circumference\n },\n\n strokeWidth () {\n return this.thickness / 2 * this.viewBox\n },\n\n attrs () {\n return {\n role: 'progressbar',\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-valuenow': this.indeterminate === true ? void 0 : this.normalizedValue\n }\n }\n },\n\n methods: {\n __getCircle (h, { thickness, offset, color, cls, rounded }) {\n return h('circle', {\n staticClass: 'q-circular-progress__' + cls,\n class: color !== void 0 ? `text-${color}` : null,\n style: this.circleStyle,\n attrs: {\n fill: 'transparent',\n stroke: 'currentColor',\n 'stroke-width': thickness,\n 'stroke-dasharray': strokeDashArray,\n 'stroke-dashoffset': offset,\n 'stroke-linecap': rounded,\n cx: this.viewBox,\n cy: this.viewBox,\n r: radius\n }\n })\n }\n },\n\n render (h) {\n const svgChild = []\n\n this.centerColor !== void 0 && this.centerColor !== 'transparent' && svgChild.push(\n h('circle', {\n staticClass: 'q-circular-progress__center',\n class: `text-${this.centerColor}`,\n attrs: {\n fill: 'currentColor',\n r: radius - this.strokeWidth / 2,\n cx: this.viewBox,\n cy: this.viewBox\n }\n })\n )\n\n this.trackColor !== void 0 && this.trackColor !== 'transparent' && svgChild.push(\n this.__getCircle(h, {\n cls: 'track',\n thickness: this.strokeWidth,\n offset: 0,\n color: this.trackColor\n })\n )\n\n svgChild.push(\n this.__getCircle(h, {\n cls: 'circle',\n thickness: this.strokeWidth,\n offset: this.strokeDashOffset,\n color: this.color,\n rounded: this.rounded === true ? 'round' : void 0\n })\n )\n\n const child = [\n h('svg', {\n staticClass: 'q-circular-progress__svg',\n style: this.svgStyle,\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n viewBox: this.viewBoxAttr,\n 'aria-hidden': 'true'\n }\n }, svgChild)\n ]\n\n this.showValue === true && child.push(\n h('div', {\n staticClass: 'q-circular-progress__text absolute-full row flex-center content-center',\n style: { fontSize: this.fontSize }\n }, this.$scopedSlots.default !== void 0 ? this.$scopedSlots.default() : [ h('div', [ this.normalizedValue ]) ])\n )\n\n return h('div', {\n staticClass: 'q-circular-progress',\n class: `q-circular-progress--${this.indeterminate === true ? 'in' : ''}determinate`,\n style: this.sizeStyle,\n on: { ...this.qListeners },\n attrs: this.attrs\n }, mergeSlotSafely(child, this, 'internal'))\n }\n})\n","import QCircularProgress from './QCircularProgress.js'\n\nexport {\n QCircularProgress\n}\n","// file referenced from docs\n\nconst\n hex = /^#[0-9a-fA-F]{3}([0-9a-fA-F]{3})?$/,\n hexa = /^#[0-9a-fA-F]{4}([0-9a-fA-F]{4})?$/,\n hexOrHexa = /^#([0-9a-fA-F]{3}|[0-9a-fA-F]{4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})$/,\n rgb = /^rgb\\(((0|[1-9][\\d]?|1[\\d]{0,2}|2[\\d]?|2[0-4][\\d]|25[0-5]),){2}(0|[1-9][\\d]?|1[\\d]{0,2}|2[\\d]?|2[0-4][\\d]|25[0-5])\\)$/,\n rgba = /^rgba\\(((0|[1-9][\\d]?|1[\\d]{0,2}|2[\\d]?|2[0-4][\\d]|25[0-5]),){2}(0|[1-9][\\d]?|1[\\d]{0,2}|2[\\d]?|2[0-4][\\d]|25[0-5]),(0|0\\.[0-9]+[1-9]|0\\.[1-9]+|1)\\)$/\n\nexport const testPattern = {\n date: v => /^-?[\\d]+\\/[0-1]\\d\\/[0-3]\\d$/.test(v),\n time: v => /^([0-1]?\\d|2[0-3]):[0-5]\\d$/.test(v),\n fulltime: v => /^([0-1]?\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/.test(v),\n timeOrFulltime: v => /^([0-1]?\\d|2[0-3]):[0-5]\\d(:[0-5]\\d)?$/.test(v),\n\n // -- RFC 5322 --\n // -- Added in v1.18.10 --\n // This is a basic helper validation.\n // For something more complex (like RFC 822) you should write and use your own rule.\n // We won't be accepting PRs to enhance the one below because of the reason above.\n email: v => /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(v),\n\n hexColor: v => hex.test(v),\n hexaColor: v => hexa.test(v),\n hexOrHexaColor: v => hexOrHexa.test(v),\n\n rgbColor: v => rgb.test(v),\n rgbaColor: v => rgba.test(v),\n rgbOrRgbaColor: v => rgb.test(v) || rgba.test(v),\n\n hexOrRgbColor: v => hex.test(v) || rgb.test(v),\n hexaOrRgbaColor: v => hexa.test(v) || rgba.test(v),\n anyColor: v => hexOrHexa.test(v) || rgb.test(v) || rgba.test(v)\n}\n\nexport default {\n testPattern\n}\n","import { client } from '../plugins/Platform.js'\nimport { getModifierDirections, shouldStart } from '../utils/private/touch.js'\nimport { addEvt, cleanEvt, position, leftClick, prevent, stop, stopAndPrevent, preventDraggable, noop } from '../utils/event.js'\nimport { clearSelection } from '../utils/private/selection.js'\n\nfunction getChanges (evt, ctx, isFinal) {\n const pos = position(evt)\n let\n dir,\n distX = pos.left - ctx.event.x,\n distY = pos.top - ctx.event.y,\n absX = Math.abs(distX),\n absY = Math.abs(distY)\n\n const direction = ctx.direction\n\n if (direction.horizontal === true && direction.vertical !== true) {\n dir = distX < 0 ? 'left' : 'right'\n }\n else if (direction.horizontal !== true && direction.vertical === true) {\n dir = distY < 0 ? 'up' : 'down'\n }\n else if (direction.up === true && distY < 0) {\n dir = 'up'\n if (absX > absY) {\n if (direction.left === true && distX < 0) {\n dir = 'left'\n }\n else if (direction.right === true && distX > 0) {\n dir = 'right'\n }\n }\n }\n else if (direction.down === true && distY > 0) {\n dir = 'down'\n if (absX > absY) {\n if (direction.left === true && distX < 0) {\n dir = 'left'\n }\n else if (direction.right === true && distX > 0) {\n dir = 'right'\n }\n }\n }\n else if (direction.left === true && distX < 0) {\n dir = 'left'\n if (absX < absY) {\n if (direction.up === true && distY < 0) {\n dir = 'up'\n }\n else if (direction.down === true && distY > 0) {\n dir = 'down'\n }\n }\n }\n else if (direction.right === true && distX > 0) {\n dir = 'right'\n if (absX < absY) {\n if (direction.up === true && distY < 0) {\n dir = 'up'\n }\n else if (direction.down === true && distY > 0) {\n dir = 'down'\n }\n }\n }\n\n let synthetic = false\n\n if (dir === void 0 && isFinal === false) {\n if (ctx.event.isFirst === true || ctx.event.lastDir === void 0) {\n return {}\n }\n\n dir = ctx.event.lastDir\n synthetic = true\n\n if (dir === 'left' || dir === 'right') {\n pos.left -= distX\n absX = 0\n distX = 0\n }\n else {\n pos.top -= distY\n absY = 0\n distY = 0\n }\n }\n\n return {\n synthetic,\n payload: {\n evt,\n touch: ctx.event.mouse !== true,\n mouse: ctx.event.mouse === true,\n position: pos,\n direction: dir,\n isFirst: ctx.event.isFirst,\n isFinal: isFinal === true,\n duration: Date.now() - ctx.event.time,\n distance: {\n x: absX,\n y: absY\n },\n offset: {\n x: distX,\n y: distY\n },\n delta: {\n x: pos.left - ctx.event.lastX,\n y: pos.top - ctx.event.lastY\n }\n }\n }\n}\n\nfunction destroy (el) {\n const ctx = el.__qtouchpan\n if (ctx !== void 0) {\n // emit the end event when the directive is destroyed while active\n // this is only needed in TouchPan because the rest of the touch directives do not emit an end event\n // the condition is also checked in the start of function but we avoid the call\n ctx.event !== void 0 && ctx.end()\n\n cleanEvt(ctx, 'main')\n cleanEvt(ctx, 'temp')\n\n client.is.firefox === true && preventDraggable(el, false)\n ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n delete el.__qtouchpan\n }\n}\n\nlet uid = 0\n\nexport default {\n name: 'touch-pan',\n\n bind (el, { value, modifiers }) {\n if (el.__qtouchpan !== void 0) {\n destroy(el)\n el.__qtouchpan_destroyed = true\n }\n\n // early return, we don't need to do anything\n if (modifiers.mouse !== true && client.has.touch !== true) {\n return\n }\n\n function handleEvent (evt, mouseEvent) {\n if (modifiers.mouse === true && mouseEvent === true) {\n stopAndPrevent(evt)\n }\n else {\n modifiers.stop === true && stop(evt)\n modifiers.prevent === true && prevent(evt)\n }\n }\n\n const ctx = {\n uid: 'qvtp_' + (uid++),\n handler: value,\n modifiers,\n direction: getModifierDirections(modifiers),\n\n noop,\n\n mouseStart (evt) {\n if (shouldStart(evt, ctx) && leftClick(evt)) {\n addEvt(ctx, 'temp', [\n [ document, 'mousemove', 'move', 'notPassiveCapture' ],\n [ document, 'mouseup', 'end', 'passiveCapture' ]\n ])\n\n ctx.start(evt, true)\n }\n },\n\n touchStart (evt) {\n if (shouldStart(evt, ctx)) {\n const target = evt.target\n\n addEvt(ctx, 'temp', [\n [ target, 'touchmove', 'move', 'notPassiveCapture' ],\n [ target, 'touchcancel', 'end', 'passiveCapture' ],\n [ target, 'touchend', 'end', 'passiveCapture' ]\n ])\n\n ctx.start(evt)\n }\n },\n\n start (evt, mouseEvent) {\n client.is.firefox === true && preventDraggable(el, true)\n ctx.lastEvt = evt\n\n const pos = position(evt)\n\n /*\n * Stop propagation so possible upper v-touch-pan don't catch this as well;\n * If we're not the target (based on modifiers), we'll re-emit the event later\n */\n if (mouseEvent === true || modifiers.stop === true) {\n /*\n * are we directly switching to detected state?\n * clone event only otherwise\n */\n if (\n ctx.direction.all !== true &&\n (mouseEvent !== true || (ctx.modifiers.mouseAllDir !== true && ctx.modifiers.mousealldir !== true))\n ) {\n const clone = evt.type.indexOf('mouse') > -1\n ? new MouseEvent(evt.type, evt)\n : new TouchEvent(evt.type, evt)\n\n evt.defaultPrevented === true && prevent(clone)\n evt.cancelBubble === true && stop(clone)\n\n clone.qClonedBy = evt.qClonedBy === void 0\n ? [ctx.uid]\n : evt.qClonedBy.concat(ctx.uid)\n clone.qKeyEvent = evt.qKeyEvent\n clone.qClickOutside = evt.qClickOutside\n\n ctx.initialEvent = {\n target: evt.target,\n event: clone\n }\n }\n\n stop(evt)\n }\n\n ctx.event = {\n x: pos.left,\n y: pos.top,\n time: Date.now(),\n mouse: mouseEvent === true,\n detected: false,\n isFirst: true,\n isFinal: false,\n lastX: pos.left,\n lastY: pos.top\n }\n },\n\n move (evt) {\n if (ctx.event === void 0) {\n return\n }\n\n ctx.lastEvt = evt\n\n const isMouseEvt = ctx.event.mouse === true\n const start = () => {\n handleEvent(evt, isMouseEvt)\n\n let cursor\n if (ctx.modifiers.preserveCursor !== true && ctx.modifiers.preservecursor !== true) {\n cursor = document.documentElement.style.cursor || ''\n document.documentElement.style.cursor = 'grabbing'\n }\n isMouseEvt === true && document.body.classList.add('no-pointer-events--children')\n document.body.classList.add('non-selectable')\n clearSelection()\n\n ctx.styleCleanup = withDelayedFn => {\n ctx.styleCleanup = void 0\n\n if (cursor !== void 0) {\n document.documentElement.style.cursor = cursor\n }\n document.body.classList.remove('non-selectable')\n\n if (isMouseEvt === true) {\n const remove = () => {\n document.body.classList.remove('no-pointer-events--children')\n }\n\n if (withDelayedFn !== void 0) {\n setTimeout(() => {\n remove()\n withDelayedFn()\n }, 50)\n }\n else { remove() }\n }\n else if (withDelayedFn !== void 0) {\n withDelayedFn()\n }\n }\n }\n\n if (ctx.event.detected === true) {\n ctx.event.isFirst !== true && handleEvent(evt, ctx.event.mouse)\n\n const { payload, synthetic } = getChanges(evt, ctx, false)\n\n if (payload !== void 0) {\n if (ctx.handler(payload) === false) {\n ctx.end(evt)\n }\n else {\n if (ctx.styleCleanup === void 0 && ctx.event.isFirst === true) {\n start()\n }\n\n ctx.event.lastX = payload.position.left\n ctx.event.lastY = payload.position.top\n ctx.event.lastDir = synthetic === true ? void 0 : payload.direction\n ctx.event.isFirst = false\n }\n }\n\n return\n }\n\n if (\n ctx.direction.all === true ||\n (isMouseEvt === true && (ctx.modifiers.mouseAllDir === true || ctx.modifiers.mousealldir === true))\n ) {\n start()\n ctx.event.detected = true\n ctx.move(evt)\n return\n }\n\n const\n pos = position(evt),\n distX = pos.left - ctx.event.x,\n distY = pos.top - ctx.event.y,\n absX = Math.abs(distX),\n absY = Math.abs(distY)\n\n if (absX !== absY) {\n if (\n (ctx.direction.horizontal === true && absX > absY) ||\n (ctx.direction.vertical === true && absX < absY) ||\n (ctx.direction.up === true && absX < absY && distY < 0) ||\n (ctx.direction.down === true && absX < absY && distY > 0) ||\n (ctx.direction.left === true && absX > absY && distX < 0) ||\n (ctx.direction.right === true && absX > absY && distX > 0)\n ) {\n ctx.event.detected = true\n ctx.move(evt)\n }\n else {\n ctx.end(evt, true)\n }\n }\n },\n\n end (evt, abort) {\n if (ctx.event === void 0) {\n return\n }\n\n cleanEvt(ctx, 'temp')\n client.is.firefox === true && preventDraggable(el, false)\n\n if (abort === true) {\n ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n if (ctx.event.detected !== true && ctx.initialEvent !== void 0) {\n ctx.initialEvent.target.dispatchEvent(ctx.initialEvent.event)\n }\n }\n else if (ctx.event.detected === true) {\n ctx.event.isFirst === true && ctx.handler(getChanges(evt === void 0 ? ctx.lastEvt : evt, ctx).payload)\n\n const { payload } = getChanges(evt === void 0 ? ctx.lastEvt : evt, ctx, true)\n const fn = () => { ctx.handler(payload) }\n\n if (ctx.styleCleanup !== void 0) {\n ctx.styleCleanup(fn)\n }\n else {\n fn()\n }\n }\n\n ctx.event = void 0\n ctx.initialEvent = void 0\n ctx.lastEvt = void 0\n }\n }\n\n el.__qtouchpan = ctx\n\n modifiers.mouse === true && addEvt(ctx, 'main', [\n [ el, 'mousedown', 'mouseStart', `passive${modifiers.mouseCapture === true || modifiers.mousecapture === true ? 'Capture' : ''}` ]\n ])\n\n client.has.touch === true && addEvt(ctx, 'main', [\n [ el, 'touchstart', 'touchStart', `passive${modifiers.capture === true ? 'Capture' : ''}` ],\n [ el, 'touchmove', 'noop', 'notPassiveCapture' ] // cannot be passive (ex: iOS scroll)\n ])\n },\n\n update (el, { oldValue, value }) {\n const ctx = el.__qtouchpan\n if (ctx !== void 0 && oldValue !== value) {\n typeof value !== 'function' && ctx.end()\n ctx.handler = value\n }\n },\n\n unbind (el) {\n if (el.__qtouchpan_destroyed === void 0) {\n destroy(el)\n }\n else {\n delete el.__qtouchpan_destroyed\n }\n }\n}\n","import TouchPan from '../../directives/TouchPan.js'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport FormMixin from '../../mixins/form.js'\n\nimport { between } from '../../utils/format.js'\nimport { position } from '../../utils/event.js'\nimport { isNumber, isObject } from '../../utils/is.js'\n\nconst markerPrefixClass = 'q-slider__marker-labels'\nconst defaultMarkerConvertFn = v => ({ value: v })\n\n// PGDOWN, LEFT, DOWN, PGUP, RIGHT, UP\nexport const keyCodes = [ 34, 37, 40, 33, 39, 38 ]\n\nexport const SliderMixin = {\n mixins: [ DarkMixin, FormMixin ],\n\n directives: {\n TouchPan\n },\n\n props: {\n min: {\n type: Number,\n default: 0\n },\n max: {\n type: Number,\n default: 100\n },\n innerMin: Number,\n innerMax: Number,\n\n step: {\n type: Number,\n default: 1,\n validator: v => v >= 0\n },\n\n snap: Boolean,\n\n vertical: Boolean,\n reverse: Boolean,\n\n hideSelection: Boolean,\n\n color: String,\n markerLabelsClass: String,\n\n label: Boolean,\n labelColor: String,\n labelTextColor: String,\n labelAlways: Boolean,\n switchLabelSide: Boolean,\n\n markers: [ Boolean, Number ],\n markerLabels: [ Boolean, Array, Object, Function ],\n switchMarkerLabelsSide: Boolean,\n\n trackImg: String,\n trackColor: String,\n innerTrackImg: String,\n innerTrackColor: String,\n selectionColor: String,\n selectionImg: String,\n\n thumbSize: {\n type: String,\n default: '20px'\n },\n trackSize: {\n type: String,\n default: '4px'\n },\n\n disable: Boolean,\n readonly: Boolean,\n dense: Boolean,\n\n tabindex: [ String, Number ],\n\n thumbColor: String,\n thumbPath: {\n type: String,\n default: 'M 4, 10 a 6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0'\n }\n },\n\n data () {\n return {\n active: false,\n preventFocus: false,\n focus: false,\n dragging: false\n }\n },\n\n computed: {\n axis () {\n return this.vertical === true ? '--v' : '--h'\n },\n\n labelSide () {\n return '-' + (this.switchLabelSide === true ? 'switched' : 'standard')\n },\n\n isReversed () {\n return this.vertical === true\n ? this.reverse === true\n : this.reverse !== (this.$q.lang.rtl === true)\n },\n\n computedInnerMin () {\n return this.__getInnerMin(this.innerMin)\n },\n\n computedInnerMax () {\n return this.__getInnerMax(this.innerMax)\n },\n\n editable () {\n return this.disable !== true && this.readonly !== true &&\n this.computedInnerMin < this.computedInnerMax\n },\n\n computedDecimals () {\n return (String(this.step).trim('0').split('.')[ 1 ] || '').length\n },\n\n computedStep () {\n return this.step === 0 ? 1 : this.step\n },\n\n computedTabindex () {\n return this.editable === true ? this.tabindex || 0 : -1\n },\n\n trackLen () {\n return this.max - this.min\n },\n\n innerBarLen () {\n return this.computedInnerMax - this.computedInnerMin\n },\n\n innerMinRatio () {\n return this.__convertModelToRatio(this.computedInnerMin)\n },\n\n innerMaxRatio () {\n return this.__convertModelToRatio(this.computedInnerMax)\n },\n\n positionProp () {\n return this.vertical === true\n ? (this.isReversed === true ? 'bottom' : 'top')\n : (this.isReversed === true ? 'right' : 'left')\n },\n\n sizeProp () {\n return this.vertical === true ? 'height' : 'width'\n },\n\n thicknessProp () {\n return this.vertical === true ? 'width' : 'height'\n },\n\n orientation () {\n return this.vertical === true ? 'vertical' : 'horizontal'\n },\n\n attributes () {\n const acc = {\n role: 'slider',\n 'aria-valuemin': this.computedInnerMin,\n 'aria-valuemax': this.computedInnerMax,\n 'aria-orientation': this.orientation,\n 'data-step': this.step\n }\n\n if (this.disable === true) {\n acc[ 'aria-disabled' ] = 'true'\n }\n else if (this.readonly === true) {\n acc[ 'aria-readonly' ] = 'true'\n }\n\n return acc\n },\n\n classes () {\n return `q-slider q-slider${this.axis} q-slider--${this.active === true ? '' : 'in'}active inline no-wrap ` +\n (this.vertical === true ? 'row' : 'column') +\n (this.disable === true ? ' disabled' : ' q-slider--enabled' + (this.editable === true ? ' q-slider--editable' : '')) +\n (this.focus === 'both' ? ' q-slider--focus' : '') +\n (this.label || this.labelAlways === true ? ' q-slider--label' : '') +\n (this.labelAlways === true ? ' q-slider--label-always' : '') +\n (this.isDark === true ? ' q-slider--dark' : '') +\n (this.dense === true ? ' q-slider--dense q-slider--dense' + this.axis : '')\n },\n\n selectionBarClass () {\n const color = this.selectionColor || this.color\n return 'q-slider__selection absolute' +\n (color !== void 0 ? ` text-${color}` : '')\n },\n\n markerClass () {\n return this.__getAxisClass('markers') + ' absolute overflow-hidden'\n },\n trackContainerClass () {\n return this.__getAxisClass('track-container')\n },\n pinClass () {\n return this.__getPositionClass('pin')\n },\n labelClass () {\n return this.__getPositionClass('label')\n },\n textContainerClass () {\n return this.__getPositionClass('text-container')\n },\n markerLabelsContainerClass () {\n return this.__getPositionClass('marker-labels-container') +\n (this.markerLabelsClass !== void 0 ? ` ${this.markerLabelsClass}` : '')\n },\n\n trackClass () {\n return 'q-slider__track relative-position no-outline' +\n (this.trackColor !== void 0 ? ` bg-${this.trackColor}` : '')\n },\n trackStyle () {\n const acc = { [ this.thicknessProp ]: this.trackSize }\n if (this.trackImg !== void 0) {\n acc.backgroundImage = `url(${this.trackImg}) !important`\n }\n return acc\n },\n\n innerBarClass () {\n return 'q-slider__inner absolute' +\n (this.innerTrackColor !== void 0 ? ` bg-${this.innerTrackColor}` : '')\n },\n\n innerBarStyle () {\n const acc = {\n [ this.positionProp ]: `${100 * this.innerMinRatio}%`,\n [ this.sizeProp ]: `${100 * (this.innerMaxRatio - this.innerMinRatio)}%`\n }\n if (this.innerTrackImg !== void 0) {\n acc.backgroundImage = `url(${this.innerTrackImg}) !important`\n }\n return acc\n },\n\n markerStep () {\n return isNumber(this.markers) === true ? this.markers : this.computedStep\n },\n\n markerTicks () {\n const acc = []\n const step = this.markerStep\n\n let value = this.min\n do {\n acc.push(value)\n value += step\n } while (value < this.max)\n\n acc.push(this.max)\n return acc\n },\n\n markerLabelClass () {\n const prefix = ` ${markerPrefixClass}${this.axis}-`\n return markerPrefixClass +\n `${prefix}${this.switchMarkerLabelsSide === true ? 'switched' : 'standard'}` +\n `${prefix}${this.isReversed === true ? 'rtl' : 'ltr'}`\n },\n\n markerLabelsList () {\n if (this.markerLabels === false) { return null }\n\n return this.__getMarkerList(this.markerLabels).map((entry, index) => ({\n index,\n value: entry.value,\n label: entry.label || entry.value,\n classes: this.markerLabelClass +\n (entry.classes !== void 0 ? ' ' + entry.classes : ''),\n style: {\n ...this.__getMarkerLabelStyle(entry.value),\n ...(entry.style || {})\n }\n }))\n },\n\n markerScope () {\n return {\n markerList: this.markerLabelsList,\n markerMap: this.markerLabelsMap,\n classes: this.markerLabelClass,\n getStyle: this.__getMarkerLabelStyle\n }\n },\n\n markerStyle () {\n if (this.innerBarLen !== 0) {\n const size = 100 * this.markerStep / this.innerBarLen\n\n return {\n ...this.innerBarStyle,\n backgroundSize: this.vertical === true\n ? `2px ${size}%`\n : `${size}% 2px`\n }\n }\n\n return null\n },\n\n markerLabelsMap () {\n if (this.markerLabels === false) { return null }\n\n const acc = {}\n this.markerLabelsList.forEach(entry => {\n acc[ entry.value ] = entry\n })\n return acc\n },\n\n panDirectives () {\n return this.editable === true\n ? [{\n name: 'touch-pan',\n value: this.__onPan,\n modifiers: {\n [ this.orientation ]: true,\n prevent: true,\n stop: true,\n mouse: true,\n mouseAllDir: true\n }\n }]\n : null\n }\n },\n\n methods: {\n __getInnerMin (val) {\n return isNaN(val) === true || this.innerMin < this.min\n ? this.min\n : this.innerMin\n },\n\n __getInnerMax (val) {\n return isNaN(val) === true || val > this.max\n ? this.max\n : this.innerMax\n },\n\n __getPositionClass (name) {\n const cls = 'q-slider__' + name\n return `${cls} ${cls}${this.axis} ${cls}${this.axis}${this.labelSide}`\n },\n\n __getAxisClass (name) {\n const cls = 'q-slider__' + name\n return `${cls} ${cls}${this.axis}`\n },\n\n __convertRatioToModel (ratio) {\n let model = this.min + ratio * (this.max - this.min)\n\n if (this.step > 0) {\n const modulo = (model - this.min) % this.step\n model += (Math.abs(modulo) >= this.step / 2 ? (modulo < 0 ? -1 : 1) * this.step : 0) - modulo\n }\n\n if (this.computedDecimals > 0) {\n model = parseFloat(model.toFixed(this.computedDecimals))\n }\n\n return between(model, this.computedInnerMin, this.computedInnerMax)\n },\n\n __convertModelToRatio (model) {\n return this.trackLen === 0\n ? 0\n : (model - this.min) / this.trackLen\n },\n\n __getDraggingRatio (evt, dragging) {\n const\n pos = position(evt),\n val = this.vertical === true\n ? between((pos.top - dragging.top) / dragging.height, 0, 1)\n : between((pos.left - dragging.left) / dragging.width, 0, 1)\n\n return between(\n this.isReversed === true ? 1.0 - val : val,\n this.innerMinRatio,\n this.innerMaxRatio\n )\n },\n\n __getMarkerList (def) {\n if (def === false) { return null }\n\n if (def === true) {\n return this.markerTicks.map(defaultMarkerConvertFn)\n }\n\n if (typeof def === 'function') {\n return this.markerTicks.map(value => {\n const item = def(value)\n return isObject(item) === true ? { ...item, value } : { value, label: item }\n })\n }\n\n const filterFn = ({ value }) => value >= this.min && value <= this.max\n\n if (Array.isArray(def) === true) {\n return def\n .map(item => (isObject(item) === true ? item : { value: item }))\n .filter(filterFn)\n }\n\n return Object.keys(def).map(key => {\n const item = def[ key ]\n const value = Number(key)\n return isObject(item) === true ? { ...item, value } : { value, label: item }\n }).filter(filterFn)\n },\n\n __getMarkerLabelStyle (val) {\n return { [ this.positionProp ]: `${100 * (val - this.min) / this.trackLen}%` }\n },\n\n __getMarkerLabelsContent (h) {\n if (this.$scopedSlots[ 'marker-label-group' ] !== void 0) {\n return this.$scopedSlots[ 'marker-label-group' ](this.markerScope)\n }\n\n const fn = this.$scopedSlots[ 'marker-label' ]\n if (fn !== void 0) {\n return this.markerLabelsList.map(marker => fn({\n marker,\n ...this.markerScope\n }))\n }\n\n return this.markerLabelsList.map(marker => h('div', {\n key: marker.value,\n style: marker.style,\n class: marker.classes\n }, marker.label))\n },\n\n __onPan (event) {\n if (event.isFinal === true) {\n if (this.dragging !== void 0) {\n this.__updatePosition(event.evt)\n // only if touch, because we also have mousedown/up:\n event.touch === true && this.__updateValue(true)\n this.dragging = void 0\n this.$emit('pan', 'end')\n }\n this.active = false\n this.focus = false\n }\n else if (event.isFirst === true) {\n this.dragging = this.__getDragging(event.evt)\n this.__updatePosition(event.evt)\n this.__updateValue()\n this.active = true\n this.$emit('pan', 'start')\n }\n else {\n this.__updatePosition(event.evt)\n this.__updateValue()\n }\n },\n\n __onBlur () {\n this.focus = false\n },\n\n __onActivate (evt) {\n this.__updatePosition(evt, this.__getDragging(evt))\n this.__updateValue()\n\n this.preventFocus = true\n this.active = true\n\n document.addEventListener('mouseup', this.__onDeactivate, true)\n },\n\n __onDeactivate () {\n this.preventFocus = false\n this.active = false\n\n this.__updateValue(true)\n this.__onBlur()\n\n document.removeEventListener('mouseup', this.__onDeactivate, true)\n },\n\n __onMobileClick (evt) {\n this.__updatePosition(evt, this.__getDragging(evt))\n this.__updateValue(true)\n },\n\n __onKeyup (evt) {\n if (keyCodes.includes(evt.keyCode)) {\n this.__updateValue(true)\n }\n },\n\n __getTextContainerStyle (ratio) {\n if (this.vertical === true) { return null }\n\n const p = this.$q.lang.rtl !== this.reverse ? 1 - ratio : ratio\n return {\n transform: `translateX(calc(${2 * p - 1} * ${this.thumbSize} / 2 + ${50 - 100 * p}%))`\n }\n },\n\n __getThumb (h, thumb) {\n const thumbContent = [\n h('svg', {\n class: 'q-slider__thumb-shape absolute-full',\n attrs: {\n viewBox: '0 0 20 20',\n 'aria-hidden': 'true'\n }\n }, [\n h('path', {\n attrs: { d: this.thumbPath }\n })\n ]),\n\n h('div', { class: 'q-slider__focus-ring fit' })\n ]\n\n if (this.label === true || this.labelAlways === true) {\n thumbContent.push(\n h('div', {\n class: this.pinClass + ' absolute fit no-pointer-events' + thumb.pinColor\n }, [\n h('div', {\n class: this.labelClass,\n style: { minWidth: this.thumbSize }\n }, [\n h('div', {\n class: this.textContainerClass,\n style: thumb.textContainerStyle\n }, [\n h('span', { class: thumb.textClass }, thumb.label)\n ])\n ])\n ])\n )\n\n if (this.name !== void 0 && this.disable !== true) {\n this.__injectFormInput(thumbContent, 'push')\n }\n }\n\n return h('div', {\n class: thumb.classes,\n style: thumb.style,\n ...thumb.nodeData\n }, thumbContent)\n },\n\n __getContent (h, injectThumb) {\n const trackContent = []\n\n this.innerTrackColor !== 'transparent' && trackContent.push(\n h('div', {\n key: 'inner',\n class: this.innerBarClass,\n style: this.innerBarStyle\n })\n )\n\n this.selectionColor !== 'transparent' && trackContent.push(\n h('div', {\n key: 'selection',\n class: this.selectionBarClass,\n style: this.selectionBarStyle\n })\n )\n\n this.markers !== false && trackContent.push(\n h('div', {\n key: 'marker',\n class: this.markerClass,\n style: this.markerStyle\n })\n )\n\n injectThumb(trackContent)\n\n const content = [\n h(\n 'div',\n {\n key: 'trackC',\n class: this.trackContainerClass,\n attrs: this.trackContainerAttrs,\n on: this.trackContainerEvents,\n directives: this.panDirectives\n },\n [\n h('div', {\n class: this.trackClass,\n style: this.trackStyle\n }, trackContent)\n ]\n )\n ]\n\n if (this.markerLabels !== false) {\n const action = this.switchMarkerLabelsSide === true\n ? 'unshift'\n : 'push'\n\n content[ action ](\n h('div', {\n key: 'markerL',\n class: this.markerLabelsContainerClass\n }, this.__getMarkerLabelsContent(h))\n )\n }\n\n return content\n }\n },\n\n beforeDestroy () {\n document.removeEventListener('mouseup', this.__onDeactivate, true)\n }\n}\n","import Vue from 'vue'\n\nimport {\n keyCodes,\n SliderMixin\n} from './slider-utils.js'\n\nimport { between } from '../../utils/format.js'\nimport { stopAndPrevent } from '../../utils/event.js'\n\nexport default Vue.extend({\n name: 'QSlider',\n\n mixins: [ SliderMixin ],\n\n props: {\n value: {\n required: true,\n default: null,\n validator: v => typeof v === 'number' || v === null\n },\n\n labelValue: [ String, Number ]\n },\n\n data () {\n const innerMin = this.__getInnerMin(this.innerMin)\n const innerMax = this.__getInnerMax(this.innerMax)\n return {\n model: this.value === null ? innerMin : between(this.value, innerMin, innerMax),\n curRatio: 0\n }\n },\n\n computed: {\n modelRatio () {\n return this.__convertModelToRatio(this.model)\n },\n\n ratio () {\n return this.active === true ? this.curRatio : this.modelRatio\n },\n\n selectionBarStyle () {\n const acc = {\n [ this.positionProp ]: `${100 * this.innerMinRatio}%`,\n [ this.sizeProp ]: `${100 * (this.ratio - this.innerMinRatio)}%`\n }\n if (this.selectionImg !== void 0) {\n acc.backgroundImage = `url(${this.selectionImg}) !important`\n }\n return acc\n },\n\n thumbLabel () {\n return this.labelValue !== void 0\n ? this.labelValue\n : this.model\n },\n\n thumbClasses () {\n const color = this.thumbColor || this.color\n return `q-slider__thumb q-slider__thumb${this.axis} q-slider__thumb${this.axis}-${this.isReversed === true ? 'rtl' : 'ltr'} absolute non-selectable` +\n (\n this.preventFocus === false && this.focus === true\n ? ' q-slider--focus'\n : ''\n ) +\n (color !== void 0 ? ` text-${color}` : '')\n },\n\n thumbStyle () {\n return {\n width: this.thumbSize,\n height: this.thumbSize,\n [ this.positionProp ]: `${100 * this.ratio}%`\n }\n },\n\n thumbPinColor () {\n return this.labelColor !== void 0\n ? ` text-${this.labelColor}`\n : ''\n },\n\n thumbTextContainerStyle () {\n return this.__getTextContainerStyle(this.ratio)\n },\n\n thumbTextClass () {\n return 'q-slider__text' +\n (this.labelTextColor !== void 0 ? ` text-${this.labelTextColor}` : '')\n },\n\n trackContainerEvents () {\n if (this.editable !== true) {\n return {}\n }\n\n return this.$q.platform.is.mobile === true\n ? { click: this.__onMobileClick }\n : {\n mousedown: this.__onActivate,\n focus: this.__onFocus,\n blur: this.__onBlur,\n keydown: this.__onKeydown,\n keyup: this.__onKeyup\n }\n },\n\n trackContainerAttrs () {\n return {\n tabindex: this.$q.platform.is.mobile !== true\n ? this.computedTabindex\n : null\n }\n },\n\n modelUpdate () {\n return `${this.value}|${this.computedInnerMin}|${this.computedInnerMax}`\n }\n },\n\n watch: {\n modelUpdate () {\n this.model = this.value === null\n ? this.computedInnerMin\n : between(this.value, this.computedInnerMin, this.computedInnerMax)\n }\n },\n\n methods: {\n __updateValue (change) {\n if (this.model !== this.value) {\n this.$emit('input', this.model)\n }\n change === true && this.$emit('change', this.model)\n },\n\n __getDragging () {\n return this.$el.getBoundingClientRect()\n },\n\n __updatePosition (event, dragging = this.dragging) {\n const ratio = this.__getDraggingRatio(event, dragging)\n\n this.model = this.__convertRatioToModel(ratio)\n this.curRatio = this.snap !== true || this.computedStep === 0\n ? ratio\n : this.__convertModelToRatio(this.model)\n },\n\n __onFocus () {\n this.focus = true\n },\n\n __onKeydown (evt) {\n if (!keyCodes.includes(evt.keyCode)) {\n return\n }\n\n stopAndPrevent(evt)\n\n const\n stepVal = ([34, 33].includes(evt.keyCode) ? 10 : 1) * this.computedStep,\n offset = (\n ([ 34, 37, 40 ].includes(evt.keyCode) ? -1 : 1) *\n (this.isReversed === true ? -1 : 1) *\n (this.vertical === true ? -1 : 1) * stepVal\n )\n\n this.model = between(\n parseFloat((this.model + offset).toFixed(this.computedDecimals)),\n this.computedInnerMin,\n this.computedInnerMax\n )\n\n this.__updateValue()\n }\n },\n\n render (h) {\n const content = this.__getContent(h, node => {\n node.push(\n this.__getThumb(h, {\n pinColor: this.thumbPinColor,\n textContainerStyle: this.thumbTextContainerStyle,\n textClass: this.thumbTextClass,\n label: this.thumbLabel,\n classes: this.thumbClasses,\n style: this.thumbStyle,\n nodeData: {}\n })\n )\n })\n\n return h('div', {\n class: this.classes + (this.value === null ? ' q-slider--no-value' : ''),\n attrs: {\n ...this.attributes,\n 'aria-valuenow': this.value\n }\n }, content)\n }\n})\n","// using it to manage SSR rendering with best performance\nimport { onSSR } from '../plugins/Platform.js'\n\nexport default {\n data () {\n return {\n canRender: !onSSR\n }\n },\n\n mounted () {\n this.canRender === false && (this.canRender = true)\n }\n}\n","import Vue from 'vue'\n\nimport { listenOpts } from '../../utils/event.js'\nimport CanRenderMixin from '../../mixins/can-render.js'\nimport { isSSR } from '../../plugins/Platform.js'\nimport cache from '../../utils/private/cache.js'\n\nexport default Vue.extend({\n name: 'QResizeObserver',\n\n mixins: [ CanRenderMixin ],\n\n props: {\n debounce: {\n type: [ String, Number ],\n default: 100\n }\n },\n\n data () {\n return this.hasObserver === true\n ? {}\n : { url: this.$q.platform.is.ie === true ? null : 'about:blank' }\n },\n\n methods: {\n trigger (immediately) {\n if (immediately === true || this.debounce === 0 || this.debounce === '0') {\n this.__emit()\n }\n else if (this.timer === null) {\n this.timer = setTimeout(this.__emit, this.debounce)\n }\n },\n\n __emit () {\n if (this.timer !== null) {\n clearTimeout(this.timer)\n this.timer = null\n }\n\n if (!this.$el || !this.$el.parentNode) {\n return\n }\n\n const\n parent = this.$el.parentNode,\n size = {\n width: parent.offsetWidth,\n height: parent.offsetHeight\n }\n\n if (size.width === this.size.width && size.height === this.size.height) {\n return\n }\n\n this.size = size\n this.$emit('resize', this.size)\n },\n\n __cleanup () {\n if (this.curDocView !== void 0) {\n // iOS is fuzzy, need to check it first\n if (this.curDocView.removeEventListener !== void 0) {\n this.curDocView.removeEventListener('resize', this.trigger, listenOpts.passive)\n }\n this.curDocView = void 0\n }\n },\n\n __onObjLoad () {\n this.__cleanup()\n\n if (this.$el.contentDocument) {\n this.curDocView = this.$el.contentDocument.defaultView\n this.curDocView.addEventListener('resize', this.trigger, listenOpts.passive)\n }\n\n this.__emit()\n }\n },\n\n render (h) {\n if (this.canRender === false || this.hasObserver === true) {\n return\n }\n\n return h('object', {\n style: this.style,\n attrs: {\n tabindex: -1, // fix for Firefox\n type: 'text/html',\n data: this.url,\n 'aria-hidden': 'true'\n },\n on: cache(this, 'load', {\n load: this.__onObjLoad\n })\n })\n },\n\n beforeCreate () {\n this.size = { width: -1, height: -1 }\n if (isSSR === true) { return }\n\n this.hasObserver = typeof ResizeObserver !== 'undefined'\n\n if (this.hasObserver !== true) {\n this.style = `${this.$q.platform.is.ie ? 'visibility:hidden;' : ''}display:block;position:absolute;top:0;left:0;right:0;bottom:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;`\n }\n },\n\n mounted () {\n this.timer = null\n\n if (this.hasObserver === true) {\n this.observer = new ResizeObserver(this.trigger)\n this.observer.observe(this.$el.parentNode)\n this.__emit()\n return\n }\n\n if (this.$q.platform.is.ie === true) {\n this.url = 'about:blank'\n this.__emit()\n }\n else {\n this.__onObjLoad()\n }\n },\n\n beforeDestroy () {\n clearTimeout(this.timer)\n\n if (this.hasObserver === true) {\n if (this.observer !== void 0 && this.$el.parentNode) {\n this.observer.unobserve(this.$el.parentNode)\n }\n return\n }\n\n this.__cleanup()\n }\n})\n","export function injectProp (target, propName, get, set) {\n Object.defineProperty(target, propName, {\n get,\n set,\n enumerable: true\n })\n return target\n}\n\nexport function injectMultipleProps (target, props) {\n Object.keys(props).forEach(key => {\n injectProp(target, key, props[ key ])\n })\n return target\n}\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\n\nimport TimeoutMixin from '../../mixins/timeout.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { stop, noop } from '../../utils/event.js'\nimport { slot } from '../../utils/private/slot.js'\nimport cache from '../../utils/private/cache.js'\nimport { rtlHasScrollBug } from '../../utils/scroll.js'\nimport { injectProp } from '../../utils/private/inject-obj-prop.js'\n\nfunction getIndicatorClass (color, top, vertical) {\n const pos = vertical === true\n ? ['left', 'right']\n : ['top', 'bottom']\n\n return `absolute-${top === true ? pos[0] : pos[1]}${color ? ` text-${color}` : ''}`\n}\n\nconst alignValues = [ 'left', 'center', 'right', 'justify' ]\nconst getDefaultBestScore = () => ({ matchedLen: 0, queryDiff: 9999, hrefLen: 0, exact: false, redirected: true })\n\nfunction hasQueryIncluded (targetQuery, matchingQuery) {\n for (const key in targetQuery) {\n if (targetQuery[ key ] !== matchingQuery[ key ]) {\n return false\n }\n }\n\n return true\n}\n\nexport default Vue.extend({\n name: 'QTabs',\n\n mixins: [ TimeoutMixin, ListenersMixin ],\n\n provide () {\n return { $tabs: this }\n },\n\n props: {\n value: [Number, String],\n\n align: {\n type: String,\n default: 'center',\n validator: v => alignValues.includes(v)\n },\n breakpoint: {\n type: [String, Number],\n default: 600\n },\n\n vertical: Boolean,\n shrink: Boolean,\n stretch: Boolean,\n\n activeClass: String,\n activeColor: String,\n activeBgColor: String,\n indicatorColor: String,\n leftIcon: String,\n rightIcon: String,\n\n outsideArrows: Boolean,\n mobileArrows: Boolean,\n\n switchIndicator: Boolean,\n\n narrowIndicator: Boolean,\n inlineLabel: Boolean,\n noCaps: Boolean,\n\n dense: Boolean,\n\n contentClass: String\n },\n\n data () {\n return {\n scrollable: false,\n leftArrow: true,\n rightArrow: false,\n justify: false,\n\n tabNameList: [],\n\n // used by children\n currentModel: this.value,\n hasFocus: false,\n avoidRouteWatcher: false // false | string (uid)\n }\n },\n\n watch: {\n isRTL () {\n this.__localUpdateArrows()\n },\n\n value (name) {\n this.__updateModel({ name, setCurrent: true, skipEmit: true })\n },\n\n outsideArrows () {\n this.__recalculateScroll()\n },\n\n arrowsEnabled (v) {\n this.__localUpdateArrows = v === true\n ? this.__updateArrowsFn\n : noop\n\n this.__recalculateScroll()\n }\n },\n\n computed: {\n // used by children\n tabProps () {\n return {\n activeClass: this.activeClass,\n activeColor: this.activeColor,\n activeBgColor: this.activeBgColor,\n indicatorClass: getIndicatorClass(\n this.indicatorColor,\n this.switchIndicator,\n this.vertical\n ),\n narrowIndicator: this.narrowIndicator,\n inlineLabel: this.inlineLabel,\n noCaps: this.noCaps\n }\n },\n\n // used by children\n hasActiveTab () {\n return this.tabNameList.some(entry => entry.name === this.currentModel)\n },\n\n arrowsEnabled () {\n return this.$q.platform.is.desktop === true || this.mobileArrows === true\n },\n\n alignClass () {\n const align = this.scrollable === true\n ? 'left'\n : (this.justify === true ? 'justify' : this.align)\n\n return `q-tabs__content--align-${align}`\n },\n\n classes () {\n return 'q-tabs row no-wrap items-center' +\n ` q-tabs--${this.scrollable === true ? '' : 'not-'}scrollable` +\n ` q-tabs--${this.vertical === true ? 'vertical' : 'horizontal'}` +\n ` q-tabs__arrows--${this.arrowsEnabled === true && this.outsideArrows === true ? 'outside' : 'inside'}` +\n (this.dense === true ? ' q-tabs--dense' : '') +\n (this.shrink === true ? ' col-shrink' : '') +\n (this.stretch === true ? ' self-stretch' : '')\n },\n\n innerClass () {\n return 'q-tabs__content row no-wrap items-center self-stretch hide-scrollbar relative-position ' +\n this.alignClass +\n (this.contentClass !== void 0 ? ` ${this.contentClass}` : '') +\n (this.$q.platform.is.mobile === true ? ' scroll' : '')\n },\n\n domProps () {\n return this.vertical === true\n ? { container: 'height', content: 'offsetHeight', scroll: 'scrollHeight' }\n : { container: 'width', content: 'offsetWidth', scroll: 'scrollWidth' }\n },\n\n isRTL () {\n return this.vertical !== true && this.$q.lang.rtl === true\n },\n\n rtlPosCorrection () {\n return rtlHasScrollBug() === false && this.isRTL === true\n },\n\n // let's speed up execution of time-sensitive scrollTowards()\n // with a computed variable by directly applying the minimal\n // number of instructions on get/set functions\n posFn () {\n return this.rtlPosCorrection === true\n ? { get: content => Math.abs(content.scrollLeft), set: (content, pos) => { content.scrollLeft = -pos } }\n : (\n this.vertical === true\n ? { get: content => content.scrollTop, set: (content, pos) => { content.scrollTop = pos } }\n : { get: content => content.scrollLeft, set: (content, pos) => { content.scrollLeft = pos } }\n )\n },\n\n onEvents () {\n return {\n input: stop,\n ...this.qListeners,\n focusin: this.__onFocusin,\n focusout: this.__onFocusout\n }\n }\n },\n\n methods: {\n // used by children too\n __updateModel ({ name, setCurrent, skipEmit }) {\n if (this.currentModel !== name) {\n if (skipEmit !== true && this.qListeners.input !== void 0) {\n this.$emit('input', name)\n }\n\n if (setCurrent === true || this.qListeners.input === void 0) {\n this.__animate(this.currentModel, name)\n this.currentModel = name\n }\n }\n },\n\n __recalculateScroll () {\n this.__registerScrollTick(() => {\n this.__updateContainer({\n width: this.$el.offsetWidth,\n height: this.$el.offsetHeight\n })\n })\n },\n\n __updateContainer (domSize) {\n // it can be called faster than component being initialized\n // so we need to protect against that case\n // (one example of such case is the docs release notes page)\n if (this.domProps === void 0 || !this.$refs.content) { return }\n\n const\n size = domSize[ this.domProps.container ],\n scrollSize = Math.min(\n this.$refs.content[this.domProps.scroll],\n Array.prototype.reduce.call(\n this.$refs.content.children,\n (acc, el) => acc + (el[ this.domProps.content ] || 0),\n 0\n )\n ),\n scroll = size > 0 && scrollSize > size // when there is no tab, in Chrome, size === 0 and scrollSize === 1\n\n if (this.scrollable !== scroll) {\n this.scrollable = scroll\n }\n\n // Arrows need to be updated even if the scroll status was already true\n scroll === true && this.__registerUpdateArrowsTick(this.__localUpdateArrows)\n\n const localJustify = size < parseInt(this.breakpoint, 10)\n\n if (this.justify !== localJustify) {\n this.justify = localJustify\n }\n },\n\n __animate (oldName, newName) {\n const\n oldTab = oldName !== void 0 && oldName !== null && oldName !== ''\n ? this.tabVmList.find(tab => tab.name === oldName)\n : null,\n newTab = newName !== void 0 && newName !== null && newName !== ''\n ? this.tabVmList.find(tab => tab.name === newName)\n : null\n\n if (oldTab && newTab) {\n const\n oldEl = oldTab.$refs.tabIndicator,\n newEl = newTab.$refs.tabIndicator\n\n clearTimeout(this.animateTimer)\n\n oldEl.style.transition = 'none'\n oldEl.style.transform = 'none'\n newEl.style.transition = 'none'\n newEl.style.transform = 'none'\n\n const\n oldPos = oldEl.getBoundingClientRect(),\n newPos = newEl.getBoundingClientRect()\n\n newEl.style.transform = this.vertical === true\n ? `translate3d(0,${oldPos.top - newPos.top}px,0) scale3d(1,${newPos.height ? oldPos.height / newPos.height : 1},1)`\n : `translate3d(${oldPos.left - newPos.left}px,0,0) scale3d(${newPos.width ? oldPos.width / newPos.width : 1},1,1)`\n\n // allow scope updates to kick in (QRouteTab needs more time)\n this.__registerAnimateTick(() => {\n this.animateTimer = setTimeout(() => {\n newEl.style.transition = 'transform .25s cubic-bezier(.4, 0, .2, 1)'\n newEl.style.transform = 'none'\n }, 70)\n })\n }\n\n if (newTab && this.scrollable === true) {\n this.__scrollToTabEl(newTab.$el)\n }\n },\n\n __scrollToTabEl (el) {\n const\n contentRef = this.$refs.content,\n { left, width, top, height } = contentRef.getBoundingClientRect(),\n newPos = el.getBoundingClientRect()\n\n let offset = this.vertical === true ? newPos.top - top : newPos.left - left\n\n if (offset < 0) {\n contentRef[ this.vertical === true ? 'scrollTop' : 'scrollLeft' ] += Math.floor(offset)\n this.__localUpdateArrows()\n return\n }\n\n offset += this.vertical === true ? newPos.height - height : newPos.width - width\n if (offset > 0) {\n contentRef[ this.vertical === true ? 'scrollTop' : 'scrollLeft' ] += Math.ceil(offset)\n this.__localUpdateArrows()\n }\n },\n\n __updateArrowsFn () {\n const content = this.$refs.content\n if (content !== null) {\n const\n rect = content.getBoundingClientRect(),\n pos = this.vertical === true ? content.scrollTop : Math.abs(content.scrollLeft)\n\n if (this.isRTL === true) {\n this.leftArrow = Math.ceil(pos + rect.width) < content.scrollWidth - 1\n this.rightArrow = pos > 0\n }\n else {\n this.leftArrow = pos > 0\n this.rightArrow = this.vertical === true\n ? Math.ceil(pos + rect.height) < content.scrollHeight\n : Math.ceil(pos + rect.width) < content.scrollWidth\n }\n }\n },\n\n __animScrollTo (value) {\n this.__stopAnimScroll()\n this.scrollTimer = setInterval(() => {\n if (this.__scrollTowards(value) === true) {\n this.__stopAnimScroll()\n }\n }, 5)\n },\n\n __scrollToStart () {\n this.__animScrollTo(this.rtlPosCorrection === true ? Number.MAX_SAFE_INTEGER : 0)\n },\n\n __scrollToEnd () {\n this.__animScrollTo(this.rtlPosCorrection === true ? 0 : Number.MAX_SAFE_INTEGER)\n },\n\n __stopAnimScroll () {\n clearInterval(this.scrollTimer)\n },\n\n // used by children\n __onKbdNavigate (keyCode, fromEl) {\n const tabs = Array.prototype.filter.call(\n this.$refs.content.children,\n el => el === fromEl || (el.matches && el.matches('.q-tab.q-focusable') === true)\n )\n\n const len = tabs.length\n if (len === 0) { return }\n\n if (keyCode === 36) { // Home\n this.__scrollToTabEl(tabs[ 0 ])\n tabs[ 0 ].focus()\n return true\n }\n if (keyCode === 35) { // End\n this.__scrollToTabEl(tabs[ len - 1 ])\n tabs[ len - 1 ].focus()\n return true\n }\n\n const dirPrev = keyCode === (this.vertical === true ? 38 /* ArrowUp */ : 37 /* ArrowLeft */)\n const dirNext = keyCode === (this.vertical === true ? 40 /* ArrowDown */ : 39 /* ArrowRight */)\n\n const dir = dirPrev === true ? -1 : (dirNext === true ? 1 : void 0)\n\n if (dir !== void 0) {\n const rtlDir = this.isRTL === true ? -1 : 1\n const index = tabs.indexOf(fromEl) + dir * rtlDir\n\n if (index >= 0 && index < len) {\n this.__scrollToTabEl(tabs[ index ])\n tabs[ index ].focus({ preventScroll: true })\n }\n\n return true\n }\n },\n\n __scrollTowards (value) {\n const\n content = this.$refs.content,\n { get, set } = this.posFn\n\n let\n done = false,\n pos = get(content)\n\n const direction = value < pos ? -1 : 1\n\n pos += direction * 5\n\n if (pos < 0) {\n done = true\n pos = 0\n }\n else if (\n (direction === -1 && pos <= value) ||\n (direction === 1 && pos >= value)\n ) {\n done = true\n pos = value\n }\n\n set(content, pos)\n this.__localUpdateArrows()\n\n return done\n },\n\n // do not use directly; use __verifyRouteModel() instead\n __updateActiveRoute () {\n let name = null, bestScore = getDefaultBestScore()\n\n const vmList = this.tabVmList.filter(tab => tab.hasRouterLink === true)\n const vmLen = vmList.length\n\n const { query: currentQuery } = this.$route\n const currentQueryLen = Object.keys(currentQuery).length\n\n for (let tabIndex = 0; tabIndex < vmLen; tabIndex++) {\n const tab = vmList[tabIndex]\n const exact = tab.exact === true\n\n // if a) it doesn't respect the active/exact active status\n // or b) we already found an exact match and this one isn't set as exact\n // then we don't deal with it\n if (\n tab[ exact === true ? 'linkIsExactActive' : 'linkIsActive' ] !== true ||\n (bestScore.exact === true && exact !== true)\n ) {\n continue\n }\n\n const { route, href } = tab.resolvedLink\n const { matched, query, hash } = route\n const redirected = route.redirectedFrom !== void 0\n\n if (exact === true) {\n // hey, we found the perfect match; no more searching!\n if (redirected === false) {\n name = tab.name\n break\n }\n\n if (bestScore.exact === false) {\n // we reset values so we can discard previous non-exact matches\n // and so we can register this exact one below\n bestScore = getDefaultBestScore()\n }\n }\n\n // if best is non-redirected and this one is redirected\n // then this one is inferior so we don't care about it\n if (bestScore.redirected === false && redirected === true) {\n continue\n }\n\n const queryLen = Object.keys(query).length\n\n if (\n // if it's exact it already perfectly includes current query\n // so no point in computing it\n exact === false &&\n queryLen !== 0 &&\n hasQueryIncluded(query, currentQuery) === false\n ) {\n // it has query and it doesn't includes the current one\n continue\n }\n\n const newScore = {\n exact,\n redirected,\n matchedLen: matched.length,\n queryDiff: exact === true\n ? 0 // avoid computing as it's 0 anyway\n : currentQueryLen - queryLen,\n hrefLen: href.length - hash.length\n }\n\n if (newScore.matchedLen > bestScore.matchedLen) {\n // it matches more routes so it's more specific so we set it as current champion\n name = tab.name\n bestScore = newScore\n continue\n }\n else if (newScore.matchedLen !== bestScore.matchedLen) {\n // it matches less routes than the current champion so we discard it\n continue\n }\n\n if (newScore.queryDiff < bestScore.queryDiff) {\n // query is closer to the current one so we set it as current champion\n name = tab.name\n bestScore = newScore\n continue\n }\n else if (newScore.queryDiff !== bestScore.queryDiff) {\n continue\n }\n\n if (newScore.hrefLen > bestScore.hrefLen) {\n // href is lengthier so it's more specific so we set it as current champion\n name = tab.name\n bestScore = newScore\n }\n }\n\n if (\n name === null &&\n this.tabVmList.some(tab => tab.hasRouterLink === void 0 && tab.name === this.currentModel) === true\n ) {\n // we shouldn't interfere if non-route tab is active\n return\n }\n\n this.__updateModel({ name, setCurrent: true })\n },\n\n __onFocusin (e) {\n this.__removeFocusTimeout()\n\n if (\n this.hasFocus !== true &&\n this.$el &&\n e.target &&\n typeof e.target.closest === 'function'\n ) {\n const tab = e.target.closest('.q-tab')\n\n // if the target is contained by a QTab/QRouteTab\n // (it might be other elements focused, like additional QBtn)\n if (tab && this.$el.contains(tab) === true) {\n this.hasFocus = true\n\n if (this.scrollable === true) {\n this.__scrollToTabEl(tab)\n }\n }\n }\n\n this.qListeners.focusin !== void 0 && this.$emit('focusin', e)\n },\n\n __onFocusout (e) {\n this.__registerFocusTimeout(() => { this.hasFocus = false }, 30)\n this.qListeners.focusout !== void 0 && this.$emit('focusout', e)\n },\n\n // used by children\n __verifyRouteModel () {\n if (this.avoidRouteWatcher === false) {\n this.__registerScrollToTabTimeout(this.__updateActiveRoute)\n }\n else {\n this.__removeScrollToTabTimeout()\n }\n },\n\n __watchRoute () {\n if (this.unwatchRoute === void 0) {\n const unwatch = this.$watch(() => this.$route.fullPath, this.__verifyRouteModel)\n this.unwatchRoute = () => {\n unwatch()\n this.unwatchRoute = void 0\n }\n }\n },\n\n // used by children\n __registerTab (tabVm) {\n // we avoid setting tabVmList in data() as this would\n // make the whole vm reactive\n this.tabVmList.push(tabVm)\n // ...so we extract only the needed stuff out of it\n // into data() defined tabNameList\n this.tabNameList.push(\n injectProp({}, 'name', () => tabVm.name)\n )\n\n this.__recalculateScroll()\n\n // if it's a QTab\n if (tabVm.hasRouterLink === void 0 || this.$route === void 0) {\n // we should position to the currently active tab (if any)\n this.__registerScrollToTabTimeout(() => {\n if (this.scrollable === true) {\n const value = this.currentModel\n const newTab = value !== void 0 && value !== null && value !== ''\n ? this.tabVmList.find(tab => tab.name === value)\n : null\n\n newTab && this.__scrollToTabEl(newTab.$el)\n }\n })\n }\n // else if it's a QRouteTab with a valid link\n else {\n this.__watchRoute()\n\n if (tabVm.hasRouterLink === true) {\n this.__verifyRouteModel()\n }\n }\n },\n\n // used by children\n __unregisterTab (tabVm) {\n const index = this.tabVmList.indexOf(tabVm)\n\n this.tabVmList.splice(index, 1)\n this.tabNameList.splice(index, 1)\n\n this.__recalculateScroll()\n\n // if we're watching route and this tab is a QRouteTab\n if (this.unwatchRoute !== void 0 && tabVm.hasRouterLink !== void 0) {\n // unwatch route if we don't have any QRouteTabs left\n if (this.tabVmList.every(tab => tab.hasRouterLink === void 0) === true) {\n this.unwatchRoute()\n }\n\n // then update model\n this.__verifyRouteModel()\n }\n },\n\n __cleanup () {\n clearTimeout(this.animateTimer)\n this.__stopAnimScroll()\n this.unwatchRoute !== void 0 && this.unwatchRoute()\n }\n },\n\n created () {\n this.__useTick('__registerScrollTick')\n this.__useTick('__registerUpdateArrowsTick')\n this.__useTick('__registerAnimateTick')\n\n this.__useTimeout('__registerFocusTimeout', '__removeFocusTimeout')\n this.__useTimeout('__registerScrollToTabTimeout', '__removeScrollToTabTimeout')\n\n Object.assign(this, {\n tabVmList: [],\n __localUpdateArrows: this.arrowsEnabled === true\n ? this.__updateArrowsFn\n : noop\n })\n },\n\n activated () {\n this.hadRouteWatcher === true && this.__watchRoute()\n this.__recalculateScroll()\n },\n\n deactivated () {\n this.hadRouteWatcher = this.unwatchRoute !== void 0\n this.__cleanup()\n },\n\n beforeDestroy () {\n this.__cleanup()\n },\n\n render (h) {\n const child = [\n h(QResizeObserver, {\n on: cache(this, 'resize', { resize: this.__updateContainer })\n }),\n\n h('div', {\n ref: 'content',\n class: this.innerClass,\n on: this.arrowsEnabled === true ? cache(this, 'scroll', { scroll: this.__updateArrowsFn }) : void 0\n }, slot(this, 'default'))\n ]\n\n this.arrowsEnabled === true && child.push(\n h(QIcon, {\n class: 'q-tabs__arrow q-tabs__arrow--start absolute q-tab__icon' +\n (this.leftArrow === true ? '' : ' q-tabs__arrow--faded'),\n props: { name: this.leftIcon || this.$q.iconSet.tabs[ this.vertical === true ? 'up' : 'left' ] },\n on: cache(this, 'onS', {\n '&mousedown': this.__scrollToStart,\n '&touchstart': this.__scrollToStart,\n '&mouseup': this.__stopAnimScroll,\n '&mouseleave': this.__stopAnimScroll,\n '&touchend': this.__stopAnimScroll\n })\n }),\n\n h(QIcon, {\n class: 'q-tabs__arrow q-tabs__arrow--end absolute q-tab__icon' +\n (this.rightArrow === true ? '' : ' q-tabs__arrow--faded'),\n props: { name: this.rightIcon || this.$q.iconSet.tabs[ this.vertical === true ? 'down' : 'right' ] },\n on: cache(this, 'onE', {\n '&mousedown': this.__scrollToEnd,\n '&touchstart': this.__scrollToEnd,\n '&mouseup': this.__stopAnimScroll,\n '&mouseleave': this.__stopAnimScroll,\n '&touchend': this.__stopAnimScroll\n })\n })\n )\n\n return h('div', {\n class: this.classes,\n on: this.onEvents,\n attrs: { role: 'tablist' }\n }, child)\n }\n})\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport RippleMixin from '../../mixins/ripple.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { stop, stopAndPrevent } from '../../utils/event.js'\nimport { mergeSlot } from '../../utils/private/slot.js'\nimport { isKeyCode, shouldIgnoreKey } from '../../utils/private/key-composition.js'\nimport uid from '../../utils/uid.js'\nimport { isDeepEqual } from '../../utils/is.js'\n\nlet id = 0\n\nexport default Vue.extend({\n name: 'QTab',\n\n mixins: [ RippleMixin, ListenersMixin ],\n\n inject: {\n $tabs: {\n default () {\n console.error('QTab/QRouteTab components need to be child of QTabs')\n }\n }\n },\n\n props: {\n icon: String,\n label: [Number, String],\n\n alert: [Boolean, String],\n alertIcon: String,\n\n name: {\n type: [Number, String],\n default: () => `t_${id++}`\n },\n\n noCaps: Boolean,\n\n tabindex: [String, Number],\n disable: Boolean,\n\n contentClass: String\n },\n\n computed: {\n isActive () {\n return this.$tabs.currentModel === this.name\n },\n\n classes () {\n return 'q-tab relative-position self-stretch flex flex-center text-center' +\n (\n this.isActive === true\n ? (\n ' q-tab--active' +\n (this.$tabs.tabProps.activeClass ? ' ' + this.$tabs.tabProps.activeClass : '') +\n (this.$tabs.tabProps.activeColor ? ` text-${this.$tabs.tabProps.activeColor}` : '') +\n (this.$tabs.tabProps.activeBgColor ? ` bg-${this.$tabs.tabProps.activeBgColor}` : '')\n )\n : ' q-tab--inactive'\n ) +\n (this.icon && this.label && this.$tabs.tabProps.inlineLabel === false ? ' q-tab--full' : '') +\n (this.noCaps === true || this.$tabs.tabProps.noCaps === true ? ' q-tab--no-caps' : '') +\n (this.disable === true ? ' disabled' : ' q-focusable q-hoverable cursor-pointer') +\n (this.hasRouterLinkProps !== void 0 ? this.linkClass : '')\n },\n\n innerClass () {\n return 'q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable ' +\n (this.$tabs.tabProps.inlineLabel === true ? 'row no-wrap q-tab__content--inline' : 'column') +\n (this.contentClass !== void 0 ? ` ${this.contentClass}` : '')\n },\n\n computedTabIndex () {\n return (\n this.disable === true ||\n this.$tabs.hasFocus === true ||\n (this.isActive === false && this.$tabs.hasActiveTab === true)\n )\n ? -1\n : this.tabindex || 0\n },\n\n computedRipple () {\n return this.ripple === false\n ? false\n : Object.assign(\n { keyCodes: [13, 32], early: true },\n this.ripple === true ? {} : this.ripple\n )\n },\n\n onEvents () {\n return {\n input: stop,\n ...this.qListeners,\n click: this.__onClick,\n keydown: this.__onKeydown\n }\n },\n\n attrs () {\n const attrs = {\n ...this.linkAttrs,\n tabindex: this.computedTabIndex,\n role: 'tab',\n 'aria-selected': this.isActive === true ? 'true' : 'false'\n }\n\n if (this.disable === true) {\n attrs['aria-disabled'] = 'true'\n }\n\n return attrs\n }\n },\n\n methods: {\n __onClick (e, keyboard) {\n if (keyboard !== true && this.$refs.blurTarget !== void 0) {\n this.$refs.blurTarget.focus({ preventScroll: true })\n }\n\n if (this.disable === true) {\n // we should hinder native navigation though\n this.hasRouterLink === true && stopAndPrevent(e)\n return\n }\n\n // do we have a QTab?\n if (this.hasRouterLinkProps === void 0) {\n this.$tabs.__updateModel({ name: this.name })\n this.qListeners.click !== void 0 && this.$emit('click', e)\n return\n }\n\n if (this.hasRouterLink === true) {\n const go = (first, second, third) => {\n // for backwards compatibility\n const { to, replace, append, returnRouterError } = e.navigate === false\n ? { to: first, replace: second, append: third }\n : (first || {})\n\n // if requiring to go to another route, then we\n // let the QTabs route watcher do its job,\n // otherwise directly select this\n let hardError\n const reqId = to === void 0 || (append === this.append && isDeepEqual(to, this.to) === true)\n ? (this.$tabs.avoidRouteWatcher = uid())\n : null\n\n return this.__navigateToRouterLink(e, { to, replace, append, returnRouterError: true })\n .catch(err => { hardError = err })\n .then(result => {\n if (reqId === this.$tabs.avoidRouteWatcher) {\n this.$tabs.avoidRouteWatcher = false\n\n // if we don't have any hard errors, except for\n // when navigating to the same route (on all other errors,\n // like when navigation was aborted in a nav guard, we don't activate this tab)\n if (\n hardError === void 0 ||\n hardError.message.startsWith('Avoided redundant navigation') === true\n ) {\n this.$tabs.__updateModel({ name: this.name })\n }\n }\n\n return hardError !== void 0 && returnRouterError === true\n ? Promise.reject(hardError)\n : result\n })\n }\n\n this.qListeners.click !== void 0 && this.$emit('click', e, go)\n\n // for backwards compatibility\n e.navigate === false && e.preventDefault()\n\n e.defaultPrevented !== true && go()\n\n return\n }\n\n this.qListeners.click !== void 0 && this.$emit('click', e)\n },\n\n __onKeydown (e) {\n if (isKeyCode(e, [ 13, 32 ])) {\n this.__onClick(e, true)\n }\n else if (\n shouldIgnoreKey(e) !== true &&\n e.keyCode >= 35 &&\n e.keyCode <= 40 &&\n e.altKey !== true &&\n e.metaKey !== true\n ) {\n this.$tabs.__onKbdNavigate(e.keyCode, this.$el) === true && stopAndPrevent(e)\n }\n\n this.qListeners.keydown !== void 0 && this.$emit('keydown', e)\n },\n\n __getContent (h) {\n const\n narrow = this.$tabs.tabProps.narrowIndicator,\n content = [],\n indicator = h('div', {\n ref: 'tabIndicator',\n staticClass: 'q-tab__indicator',\n class: this.$tabs.tabProps.indicatorClass\n })\n\n this.icon !== void 0 && content.push(\n h(QIcon, {\n staticClass: 'q-tab__icon',\n props: { name: this.icon }\n })\n )\n\n this.label !== void 0 && content.push(\n h('div', {\n staticClass: 'q-tab__label'\n }, [ this.label ])\n )\n\n this.alert !== false && content.push(\n this.alertIcon !== void 0\n ? h(QIcon, {\n staticClass: 'q-tab__alert-icon',\n props: {\n color: this.alert !== true\n ? this.alert\n : void 0,\n name: this.alertIcon\n }\n })\n : h('div', {\n staticClass: 'q-tab__alert',\n class: this.alert !== true\n ? `text-${this.alert}`\n : null\n })\n )\n\n narrow === true && content.push(indicator)\n\n const node = [\n h('div', { staticClass: 'q-focus-helper', attrs: { tabindex: -1 }, ref: 'blurTarget' }),\n h('div', { class: this.innerClass }, mergeSlot(content, this, 'default'))\n ]\n\n narrow === false && node.push(indicator)\n\n return node\n },\n\n __renderTab (h, tag) {\n const data = {\n class: this.classes,\n attrs: this.attrs,\n on: this.onEvents,\n directives: this.ripple === false || this.disable === true ? null : [\n { name: 'ripple', value: this.computedRipple }\n ]\n }\n\n return h(tag, data, this.__getContent(h))\n }\n },\n\n mounted () {\n this.$tabs.__registerTab(this)\n },\n\n beforeDestroy () {\n this.$tabs.__unregisterTab(this)\n },\n\n render (h) {\n return this.__renderTab(h, 'div')\n }\n})\n","import Vue from 'vue'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport { PanelParentMixin } from '../../mixins/panel.js'\n\nexport default Vue.extend({\n name: 'QTabPanels',\n\n mixins: [ DarkMixin, PanelParentMixin ],\n\n computed: {\n classes () {\n return 'q-tab-panels q-panel-parent' +\n (this.isDark === true ? ' q-tab-panels--dark q-dark' : '')\n }\n },\n\n methods: {\n __renderPanels (h) {\n return h('div', {\n class: this.classes,\n directives: this.panelDirectives,\n on: { ...this.qListeners }\n }, this.__getPanelContent(h))\n }\n }\n})\n","import Vue from 'vue'\n\nimport { PanelChildMixin } from '../../mixins/panel.js'\nimport { slot } from '../../utils/private/slot.js'\n\nconst attrs = { role: 'tabpanel' }\n\nexport default Vue.extend({\n name: 'QTabPanel',\n\n mixins: [ PanelChildMixin ],\n\n render (h) {\n return h('div', {\n staticClass: 'q-tab-panel',\n attrs,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import Vue from 'vue'\n\nimport { testPattern } from '../../utils/patterns.js'\nimport throttle from '../../utils/throttle.js'\nimport cache from '../../utils/private/cache.js'\nimport { stop } from '../../utils/event.js'\nimport { hexToRgb, rgbToHex, rgbToString, textToRgb, rgbToHsv, hsvToRgb, luminosity } from '../../utils/colors.js'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport FormMixin from '../../mixins/form.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport TouchPan from '../../directives/TouchPan.js'\n\nimport QSlider from '../slider/QSlider.js'\nimport QIcon from '../icon/QIcon.js'\n\nimport QTabs from '../tabs/QTabs.js'\nimport QTab from '../tabs/QTab.js'\nimport QTabPanels from '../tab-panels/QTabPanels.js'\nimport QTabPanel from '../tab-panels/QTabPanel.js'\n\nconst palette = [\n 'rgb(255,204,204)', 'rgb(255,230,204)', 'rgb(255,255,204)', 'rgb(204,255,204)', 'rgb(204,255,230)', 'rgb(204,255,255)', 'rgb(204,230,255)', 'rgb(204,204,255)', 'rgb(230,204,255)', 'rgb(255,204,255)',\n 'rgb(255,153,153)', 'rgb(255,204,153)', 'rgb(255,255,153)', 'rgb(153,255,153)', 'rgb(153,255,204)', 'rgb(153,255,255)', 'rgb(153,204,255)', 'rgb(153,153,255)', 'rgb(204,153,255)', 'rgb(255,153,255)',\n 'rgb(255,102,102)', 'rgb(255,179,102)', 'rgb(255,255,102)', 'rgb(102,255,102)', 'rgb(102,255,179)', 'rgb(102,255,255)', 'rgb(102,179,255)', 'rgb(102,102,255)', 'rgb(179,102,255)', 'rgb(255,102,255)',\n 'rgb(255,51,51)', 'rgb(255,153,51)', 'rgb(255,255,51)', 'rgb(51,255,51)', 'rgb(51,255,153)', 'rgb(51,255,255)', 'rgb(51,153,255)', 'rgb(51,51,255)', 'rgb(153,51,255)', 'rgb(255,51,255)',\n 'rgb(255,0,0)', 'rgb(255,128,0)', 'rgb(255,255,0)', 'rgb(0,255,0)', 'rgb(0,255,128)', 'rgb(0,255,255)', 'rgb(0,128,255)', 'rgb(0,0,255)', 'rgb(128,0,255)', 'rgb(255,0,255)',\n 'rgb(245,0,0)', 'rgb(245,123,0)', 'rgb(245,245,0)', 'rgb(0,245,0)', 'rgb(0,245,123)', 'rgb(0,245,245)', 'rgb(0,123,245)', 'rgb(0,0,245)', 'rgb(123,0,245)', 'rgb(245,0,245)',\n 'rgb(214,0,0)', 'rgb(214,108,0)', 'rgb(214,214,0)', 'rgb(0,214,0)', 'rgb(0,214,108)', 'rgb(0,214,214)', 'rgb(0,108,214)', 'rgb(0,0,214)', 'rgb(108,0,214)', 'rgb(214,0,214)',\n 'rgb(163,0,0)', 'rgb(163,82,0)', 'rgb(163,163,0)', 'rgb(0,163,0)', 'rgb(0,163,82)', 'rgb(0,163,163)', 'rgb(0,82,163)', 'rgb(0,0,163)', 'rgb(82,0,163)', 'rgb(163,0,163)',\n 'rgb(92,0,0)', 'rgb(92,46,0)', 'rgb(92,92,0)', 'rgb(0,92,0)', 'rgb(0,92,46)', 'rgb(0,92,92)', 'rgb(0,46,92)', 'rgb(0,0,92)', 'rgb(46,0,92)', 'rgb(92,0,92)',\n 'rgb(255,255,255)', 'rgb(205,205,205)', 'rgb(178,178,178)', 'rgb(153,153,153)', 'rgb(127,127,127)', 'rgb(102,102,102)', 'rgb(76,76,76)', 'rgb(51,51,51)', 'rgb(25,25,25)', 'rgb(0,0,0)'\n]\n\nconst thumbPath = 'M5 5 h10 v10 h-10 v-10 z'\nconst alphaTrackImg = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAH0lEQVQoU2NkYGAwZkAFZ5G5jPRRgOYEVDeB3EBjBQBOZwTVugIGyAAAAABJRU5ErkJggg=='\n\nexport default Vue.extend({\n name: 'QColor',\n\n mixins: [ ListenersMixin, DarkMixin, FormMixin ],\n\n directives: {\n TouchPan\n },\n\n props: {\n value: String,\n\n defaultValue: String,\n defaultView: {\n type: String,\n default: 'spectrum',\n validator: v => ['spectrum', 'tune', 'palette'].includes(v)\n },\n\n formatModel: {\n type: String,\n default: 'auto',\n validator: v => ['auto', 'hex', 'rgb', 'hexa', 'rgba'].includes(v)\n },\n\n palette: Array,\n\n noHeader: Boolean,\n noHeaderTabs: Boolean,\n noFooter: Boolean,\n\n square: Boolean,\n flat: Boolean,\n bordered: Boolean,\n\n disable: Boolean,\n readonly: Boolean\n },\n\n data () {\n return {\n topView: this.formatModel === 'auto'\n ? (\n (this.value === void 0 || this.value === null || this.value === '' || this.value.startsWith('#'))\n ? 'hex'\n : 'rgb'\n )\n : (this.formatModel.startsWith('hex') ? 'hex' : 'rgb'),\n view: this.defaultView,\n model: this.__parseModel(this.value || this.defaultValue)\n }\n },\n\n watch: {\n value (v) {\n const model = this.__parseModel(v || this.defaultValue)\n if (model.hex !== this.model.hex) {\n this.model = model\n }\n },\n\n defaultValue (v) {\n if (!this.value && v) {\n const model = this.__parseModel(v)\n if (model.hex !== this.model.hex) {\n this.model = model\n }\n }\n }\n },\n\n computed: {\n editable () {\n return this.disable !== true && this.readonly !== true\n },\n\n forceHex () {\n return this.formatModel === 'auto'\n ? null\n : this.formatModel.indexOf('hex') > -1\n },\n\n forceAlpha () {\n return this.formatModel === 'auto'\n ? null\n : this.formatModel.indexOf('a') > -1\n },\n\n isHex () {\n return this.value === void 0 ||\n this.value === null ||\n this.value === '' ||\n this.value.startsWith('#')\n },\n\n isOutputHex () {\n return this.forceHex !== null\n ? this.forceHex\n : this.isHex\n },\n\n formAttrs () {\n return {\n type: 'hidden',\n name: this.name,\n value: this.model[ this.isOutputHex === true ? 'hex' : 'rgb' ]\n }\n },\n\n hasAlpha () {\n if (this.forceAlpha !== null) {\n return this.forceAlpha\n }\n return this.model.a !== void 0\n },\n\n currentBgColor () {\n return {\n backgroundColor: this.model.rgb || '#000'\n }\n },\n\n headerClass () {\n const light = this.model.a !== void 0 && this.model.a < 65\n ? true\n : luminosity(this.model) > 0.4\n\n return `q-color-picker__header-content--${light ? 'light' : 'dark'}`\n },\n\n spectrumStyle () {\n return {\n background: `hsl(${this.model.h},100%,50%)`\n }\n },\n\n spectrumPointerStyle () {\n return {\n top: `${100 - this.model.v}%`,\n [this.$q.lang.rtl === true ? 'right' : 'left']: `${this.model.s}%`\n }\n },\n\n computedPalette () {\n return this.palette !== void 0 && this.palette.length > 0\n ? this.palette\n : palette\n },\n\n classes () {\n return 'q-color-picker' +\n (this.bordered === true ? ' q-color-picker--bordered' : '') +\n (this.square === true ? ' q-color-picker--square no-border-radius' : '') +\n (this.flat === true ? ' q-color-picker--flat no-shadow' : '') +\n (this.disable === true ? ' disabled' : '') +\n (this.isDark === true ? ' q-color-picker--dark q-dark' : '')\n },\n\n attrs () {\n if (this.disable === true) {\n return { 'aria-disabled': 'true' }\n }\n if (this.readonly === true) {\n return { 'aria-readonly': 'true' }\n }\n }\n },\n\n created () {\n this.__spectrumChange = throttle(this.__spectrumChange, 20)\n },\n\n render (h) {\n const child = [ this.__getContent(h) ]\n\n if (this.name !== void 0 && this.disable !== true) {\n this.__injectFormInput(child, 'push')\n }\n\n this.noHeader !== true && child.unshift(\n this.__getHeader(h)\n )\n\n this.noFooter !== true && child.push(\n this.__getFooter(h)\n )\n\n return h('div', {\n class: this.classes,\n attrs: this.attrs,\n on: { ...this.qListeners }\n }, child)\n },\n\n methods: {\n __getHeader (h) {\n const child = []\n\n this.noHeaderTabs !== true && child.push(\n h(QTabs, {\n class: 'q-color-picker__header-tabs',\n props: {\n value: this.topView,\n dense: true,\n align: 'justify'\n },\n on: cache(this, 'topVTab', {\n input: val => { this.topView = val }\n })\n }, [\n h(QTab, {\n props: {\n label: 'HEX' + (this.hasAlpha === true ? 'A' : ''),\n name: 'hex',\n ripple: false\n }\n }),\n\n h(QTab, {\n props: {\n label: 'RGB' + (this.hasAlpha === true ? 'A' : ''),\n name: 'rgb',\n ripple: false\n }\n })\n ])\n )\n\n child.push(\n h('div', {\n staticClass: 'q-color-picker__header-banner row flex-center no-wrap'\n }, [\n h('input', {\n staticClass: 'fit',\n domProps: { value: this.model[this.topView] },\n attrs: this.editable !== true ? {\n readonly: true\n } : null,\n on: cache(this, 'topIn', {\n input: evt => {\n this.__updateErrorIcon(this.__onEditorChange(evt) === true)\n },\n change: stop,\n blur: evt => {\n this.__onEditorChange(evt, true) === true && this.$forceUpdate()\n this.__updateErrorIcon(false)\n }\n })\n }),\n\n h(QIcon, {\n ref: 'errorIcon',\n staticClass: 'q-color-picker__error-icon absolute no-pointer-events',\n props: { name: this.$q.iconSet.type.negative }\n })\n ])\n )\n\n return h('div', {\n staticClass: 'q-color-picker__header relative-position overflow-hidden'\n }, [\n h('div', { staticClass: 'q-color-picker__header-bg absolute-full' }),\n\n h('div', {\n staticClass: 'q-color-picker__header-content',\n class: this.headerClass,\n style: this.currentBgColor\n }, child)\n ])\n },\n\n __getContent (h) {\n return h(QTabPanels, {\n props: {\n value: this.view,\n animated: true\n }\n }, [\n h(QTabPanel, {\n staticClass: 'q-color-picker__spectrum-tab overflow-hidden',\n props: { name: 'spectrum' }\n }, this.__getSpectrumTab(h)),\n\n h(QTabPanel, {\n staticClass: 'q-pa-md q-color-picker__tune-tab',\n props: { name: 'tune' }\n }, this.__getTuneTab(h)),\n\n h(QTabPanel, {\n staticClass: 'q-color-picker__palette-tab',\n props: { name: 'palette' }\n }, this.__getPaletteTab(h))\n ])\n },\n\n __getFooter (h) {\n return h('div', {\n staticClass: 'q-color-picker__footer relative-position overflow-hidden'\n }, [\n h(QTabs, {\n staticClass: 'absolute-full',\n props: {\n value: this.view,\n dense: true,\n align: 'justify'\n },\n on: cache(this, 'ftIn', {\n input: val => { this.view = val }\n })\n }, [\n h(QTab, {\n props: {\n icon: this.$q.iconSet.colorPicker.spectrum,\n name: 'spectrum',\n ripple: false\n }\n }),\n\n h(QTab, {\n props: {\n icon: this.$q.iconSet.colorPicker.tune,\n name: 'tune',\n ripple: false\n }\n }),\n\n h(QTab, {\n props: {\n icon: this.$q.iconSet.colorPicker.palette,\n name: 'palette',\n ripple: false\n }\n })\n ])\n ])\n },\n\n __getSpectrumTab (h) {\n return [\n h('div', {\n ref: 'spectrum',\n staticClass: 'q-color-picker__spectrum non-selectable relative-position cursor-pointer',\n style: this.spectrumStyle,\n class: { readonly: this.editable !== true },\n on: this.editable === true\n ? cache(this, 'spectrT', {\n click: this.__spectrumClick,\n mousedown: this.__activate\n })\n : null,\n directives: this.editable === true\n ? cache(this, 'spectrDir', [{\n name: 'touch-pan',\n modifiers: {\n prevent: true,\n stop: true,\n mouse: true\n },\n value: this.__spectrumPan\n }])\n : null\n }, [\n h('div', { style: { paddingBottom: '100%' } }),\n h('div', { staticClass: 'q-color-picker__spectrum-white absolute-full' }),\n h('div', { staticClass: 'q-color-picker__spectrum-black absolute-full' }),\n h('div', {\n staticClass: 'absolute',\n style: this.spectrumPointerStyle\n }, [\n this.model.hex !== void 0 ? h('div', { staticClass: 'q-color-picker__spectrum-circle' }) : null\n ])\n ]),\n\n h('div', {\n staticClass: 'q-color-picker__sliders'\n }, [\n h(QSlider, {\n staticClass: 'q-color-picker__hue non-selectable',\n props: {\n value: this.model.h,\n min: 0,\n max: 360,\n trackSize: '8px',\n innerTrackColor: 'transparent',\n selectionColor: 'transparent',\n readonly: this.editable !== true,\n thumbPath\n },\n on: cache(this, 'hueSlide', {\n input: this.__onHueChange,\n change: val => this.__onHueChange(val, true)\n })\n }),\n\n this.hasAlpha === true\n ? h(QSlider, {\n staticClass: 'q-color-picker__alpha non-selectable',\n props: {\n value: this.model.a,\n min: 0,\n max: 100,\n trackSize: '8px',\n trackColor: 'white',\n innerTrackColor: 'transparent',\n selectionColor: 'transparent',\n trackImg: alphaTrackImg,\n readonly: this.editable !== true,\n hideSelection: true,\n thumbPath\n },\n on: cache(this, 'alphaSlide', {\n input: value => this.__onNumericChange(value, 'a', 100),\n change: value => this.__onNumericChange(value, 'a', 100, void 0, true)\n })\n })\n : null\n ])\n ]\n },\n\n __getTuneTab (h) {\n const attrs = {\n inputmode: 'numeric',\n maxlength: 3,\n readonly: this.editable !== true\n }\n\n return [\n h('div', { staticClass: 'row items-center no-wrap' }, [\n h('div', ['R']),\n h(QSlider, {\n props: {\n value: this.model.r,\n min: 0,\n max: 255,\n color: 'red',\n dark: this.isDark,\n readonly: this.editable !== true\n },\n on: cache(this, 'rSlide', {\n input: value => this.__onNumericChange(value, 'r', 255),\n change: value => this.__onNumericChange(value, 'r', 255, void 0, true)\n })\n }),\n h('input', {\n domProps: { value: this.model.r },\n attrs,\n on: cache(this, 'rIn', {\n input: evt => this.__onNumericChange(evt.target.value, 'r', 255, evt),\n change: stop,\n blur: evt => this.__onNumericChange(evt.target.value, 'r', 255, evt, true)\n })\n })\n ]),\n\n h('div', { staticClass: 'row items-center no-wrap' }, [\n h('div', ['G']),\n h(QSlider, {\n props: {\n value: this.model.g,\n min: 0,\n max: 255,\n color: 'green',\n dark: this.isDark,\n readonly: this.editable !== true\n },\n on: cache(this, 'gSlide', {\n input: value => this.__onNumericChange(value, 'g', 255),\n change: value => this.__onNumericChange(value, 'g', 255, void 0, true)\n })\n }),\n h('input', {\n domProps: { value: this.model.g },\n attrs,\n on: cache(this, 'gIn', {\n input: evt => this.__onNumericChange(evt.target.value, 'g', 255, evt),\n change: stop,\n blur: evt => this.__onNumericChange(evt.target.value, 'g', 255, evt, true)\n })\n })\n ]),\n\n h('div', { staticClass: 'row items-center no-wrap' }, [\n h('div', ['B']),\n h(QSlider, {\n props: {\n value: this.model.b,\n min: 0,\n max: 255,\n color: 'blue',\n readonly: this.editable !== true,\n dark: this.isDark\n },\n on: cache(this, 'bSlide', {\n input: value => this.__onNumericChange(value, 'b', 255),\n change: value => this.__onNumericChange(value, 'b', 255, void 0, true)\n })\n }),\n h('input', {\n domProps: { value: this.model.b },\n attrs,\n on: cache(this, 'bIn', {\n input: evt => this.__onNumericChange(evt.target.value, 'b', 255, evt),\n change: stop,\n blur: evt => this.__onNumericChange(evt.target.value, 'b', 255, evt, true)\n })\n })\n ]),\n\n this.hasAlpha === true ? h('div', { staticClass: 'row items-center no-wrap' }, [\n h('div', ['A']),\n h(QSlider, {\n props: {\n value: this.model.a,\n color: 'grey',\n readonly: this.editable !== true,\n dark: this.isDark\n },\n on: cache(this, 'aSlide', {\n input: value => this.__onNumericChange(value, 'a', 100),\n change: value => this.__onNumericChange(value, 'a', 100, void 0, true)\n })\n }),\n h('input', {\n domProps: { value: this.model.a },\n attrs,\n on: cache(this, 'aIn', {\n input: evt => this.__onNumericChange(evt.target.value, 'a', 100, evt),\n change: stop,\n blur: evt => this.__onNumericChange(evt.target.value, 'a', 100, evt, true)\n })\n })\n ]) : null\n ]\n },\n\n __getPaletteTab (h) {\n return [\n h('div', {\n staticClass: 'row items-center q-color-picker__palette-rows',\n class: this.editable === true\n ? 'q-color-picker__palette-rows--editable'\n : ''\n }, this.computedPalette.map(color => h('div', {\n staticClass: 'q-color-picker__cube col-auto',\n style: { backgroundColor: color },\n on: this.editable === true ? cache(this, 'palette#' + color, {\n click: () => {\n this.__onPalettePick(color)\n }\n }) : null\n })))\n ]\n },\n\n __onSpectrumChange (left, top, change) {\n const panel = this.$refs.spectrum\n if (panel === void 0) { return }\n\n const\n width = panel.clientWidth,\n height = panel.clientHeight,\n rect = panel.getBoundingClientRect()\n\n let x = Math.min(width, Math.max(0, left - rect.left))\n\n if (this.$q.lang.rtl === true) {\n x = width - x\n }\n\n const\n y = Math.min(height, Math.max(0, top - rect.top)),\n s = Math.round(100 * x / width),\n v = Math.round(100 * Math.max(0, Math.min(1, -(y / height) + 1))),\n rgb = hsvToRgb({\n h: this.model.h,\n s,\n v,\n a: this.hasAlpha === true ? this.model.a : void 0\n })\n\n this.model.s = s\n this.model.v = v\n this.__update(rgb, change)\n },\n\n __onHueChange (h, change) {\n h = Math.round(h)\n const rgb = hsvToRgb({\n h,\n s: this.model.s,\n v: this.model.v,\n a: this.hasAlpha === true ? this.model.a : void 0\n })\n\n this.model.h = h\n this.__update(rgb, change)\n },\n\n __onNumericChange (value, formatModel, max, evt, change) {\n evt !== void 0 && stop(evt)\n\n if (!/^[0-9]+$/.test(value)) {\n change === true && this.$forceUpdate()\n return\n }\n\n const val = Math.floor(Number(value))\n\n if (val < 0 || val > max) {\n change === true && this.$forceUpdate()\n return\n }\n\n const rgb = {\n r: formatModel === 'r' ? val : this.model.r,\n g: formatModel === 'g' ? val : this.model.g,\n b: formatModel === 'b' ? val : this.model.b,\n a: this.hasAlpha === true\n ? (formatModel === 'a' ? val : this.model.a)\n : void 0\n }\n\n if (formatModel !== 'a') {\n const hsv = rgbToHsv(rgb)\n this.model.h = hsv.h\n this.model.s = hsv.s\n this.model.v = hsv.v\n }\n\n this.__update(rgb, change)\n\n if (evt !== void 0 && change !== true && evt.target.selectionEnd !== void 0) {\n const index = evt.target.selectionEnd\n this.$nextTick(() => {\n evt.target.setSelectionRange(index, index)\n })\n }\n },\n\n __onEditorChange (evt, change) {\n let rgb\n const inp = evt.target.value\n\n stop(evt)\n\n if (this.topView === 'hex') {\n if (\n inp.length !== (this.hasAlpha === true ? 9 : 7) ||\n !/^#[0-9A-Fa-f]+$/.test(inp)\n ) {\n return true\n }\n\n rgb = hexToRgb(inp)\n }\n else {\n let model\n\n if (!inp.endsWith(')')) {\n return true\n }\n else if (this.hasAlpha !== true && inp.startsWith('rgb(')) {\n model = inp.substring(4, inp.length - 1).split(',').map(n => parseInt(n, 10))\n\n if (\n model.length !== 3 ||\n !/^rgb\\([0-9]{1,3},[0-9]{1,3},[0-9]{1,3}\\)$/.test(inp)\n ) {\n return true\n }\n }\n else if (this.hasAlpha === true && inp.startsWith('rgba(')) {\n model = inp.substring(5, inp.length - 1).split(',')\n\n if (\n model.length !== 4 ||\n !/^rgba\\([0-9]{1,3},[0-9]{1,3},[0-9]{1,3},(0|0\\.[0-9]+[1-9]|0\\.[1-9]+|1)\\)$/.test(inp)\n ) {\n return true\n }\n\n for (let i = 0; i < 3; i++) {\n const v = parseInt(model[i], 10)\n if (v < 0 || v > 255) {\n return true\n }\n model[i] = v\n }\n\n const v = parseFloat(model[3])\n if (v < 0 || v > 1) {\n return true\n }\n model[3] = v\n }\n else {\n return true\n }\n\n if (\n model[0] < 0 || model[0] > 255 ||\n model[1] < 0 || model[1] > 255 ||\n model[2] < 0 || model[2] > 255 ||\n (this.hasAlpha === true && (model[3] < 0 || model[3] > 1))\n ) {\n return true\n }\n\n rgb = {\n r: model[0],\n g: model[1],\n b: model[2],\n a: this.hasAlpha === true\n ? model[3] * 100\n : void 0\n }\n }\n\n const hsv = rgbToHsv(rgb)\n this.model.h = hsv.h\n this.model.s = hsv.s\n this.model.v = hsv.v\n\n this.__update(rgb, change)\n\n if (change !== true) {\n const index = evt.target.selectionEnd\n this.$nextTick(() => {\n evt.target.setSelectionRange(index, index)\n })\n }\n },\n\n __onPalettePick (color) {\n const def = this.__parseModel(color)\n const rgb = { r: def.r, g: def.g, b: def.b, a: def.a }\n\n if (rgb.a === void 0) {\n rgb.a = this.model.a\n }\n\n this.model.h = def.h\n this.model.s = def.s\n this.model.v = def.v\n\n this.__update(rgb, true)\n },\n\n __update (rgb, change) {\n // update internally\n this.model.hex = rgbToHex(rgb)\n this.model.rgb = rgbToString(rgb)\n this.model.r = rgb.r\n this.model.g = rgb.g\n this.model.b = rgb.b\n this.model.a = rgb.a\n\n const value = this.model[this.isOutputHex === true ? 'hex' : 'rgb']\n\n // emit new value\n this.$emit('input', value)\n change === true && this.$emit('change', value)\n },\n\n __updateErrorIcon (val) {\n // we MUST avoid vue triggering a render,\n // so manually changing this\n if (this.$refs.errorIcon !== void 0) {\n this.$refs.errorIcon.$el.style.opacity = val ? 1 : 0\n }\n },\n\n __parseModel (v) {\n const forceAlpha = this.forceAlpha !== void 0\n ? this.forceAlpha\n : (\n this.formatModel === 'auto'\n ? null\n : this.formatModel.indexOf('a') > -1\n )\n\n if (typeof v !== 'string' || v.length === 0 || testPattern.anyColor(v.replace(/ /g, '')) !== true) {\n return {\n h: 0,\n s: 0,\n v: 0,\n r: 0,\n g: 0,\n b: 0,\n a: forceAlpha === true ? 100 : void 0,\n hex: void 0,\n rgb: void 0\n }\n }\n\n const model = textToRgb(v)\n\n if (forceAlpha === true && model.a === void 0) {\n model.a = 100\n }\n\n model.hex = rgbToHex(model)\n model.rgb = rgbToString(model)\n\n return Object.assign(model, rgbToHsv(model))\n },\n\n __spectrumPan (evt) {\n if (evt.isFinal) {\n this.__onSpectrumChange(\n evt.position.left,\n evt.position.top,\n true\n )\n }\n else {\n this.__spectrumChange(evt)\n }\n },\n\n // throttled in created()\n __spectrumChange (evt) {\n this.__onSpectrumChange(\n evt.position.left,\n evt.position.top\n )\n },\n\n __spectrumClick (evt) {\n this.__onSpectrumChange(\n evt.pageX - window.pageXOffset,\n evt.pageY - window.pageYOffset,\n true\n )\n },\n\n __activate (evt) {\n this.__onSpectrumChange(\n evt.pageX - window.pageXOffset,\n evt.pageY - window.pageYOffset\n )\n }\n }\n})\n","import QColor from './QColor.js'\n\nexport {\n QColor\n}\n","// taken from https://github.com/jalaali/jalaali-js\n\n/*\n Jalaali years starting the 33-year rule.\n*/\nconst breaks = [ -61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210,\n 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178\n]\n\n/*\n Converts a Gregorian date to Jalaali.\n*/\nexport function toJalaali (gy, gm, gd) {\n if (Object.prototype.toString.call(gy) === '[object Date]') {\n gd = gy.getDate()\n gm = gy.getMonth() + 1\n gy = gy.getFullYear()\n }\n return d2j(g2d(gy, gm, gd))\n}\n\n/*\n Converts a Jalaali date to Gregorian.\n*/\nexport function toGregorian (jy, jm, jd) {\n return d2g(j2d(jy, jm, jd))\n}\n\n/*\n Checks whether a Jalaali date is valid or not.\n*/\nexport function isValidJalaaliDate (jy, jm, jd) {\n return jy >= -61 && jy <= 3177 &&\n jm >= 1 && jm <= 12 &&\n jd >= 1 && jd <= jalaaliMonthLength(jy, jm)\n}\n\n/*\n Is this a leap year or not?\n*/\nfunction isLeapJalaaliYear (jy) {\n return jalCalLeap(jy) === 0\n}\n\n/*\n Number of days in a given month in a Jalaali year.\n*/\nexport function jalaaliMonthLength (jy, jm) {\n if (jm <= 6) return 31\n if (jm <= 11) return 30\n if (isLeapJalaaliYear(jy)) return 30\n return 29\n}\n\n/*\n This function determines if the Jalaali (Persian) year is\n leap (366-day long) or is the common year (365 days)\n\n @param jy Jalaali calendar year (-61 to 3177)\n @returns number of years since the last leap year (0 to 4)\n */\nfunction jalCalLeap (jy) {\n const bl = breaks.length\n let\n jp = breaks[0],\n jm,\n jump,\n leap,\n n,\n i\n\n if (jy < jp || jy >= breaks[bl - 1]) { throw new Error('Invalid Jalaali year ' + jy) }\n\n for (i = 1; i < bl; i += 1) {\n jm = breaks[i]\n jump = jm - jp\n if (jy < jm) { break }\n jp = jm\n }\n n = jy - jp\n\n if (jump - n < 6) { n = n - jump + div(jump + 4, 33) * 33 }\n leap = mod(mod(n + 1, 33) - 1, 4)\n if (leap === -1) {\n leap = 4\n }\n\n return leap\n}\n\n/*\n This function determines if the Jalaali (Persian) year is\n leap (366-day long) or is the common year (365 days), and\n finds the day in March (Gregorian calendar) of the first\n day of the Jalaali year (jy).\n\n @param jy Jalaali calendar year (-61 to 3177)\n @param withoutLeap when don't need leap (true or false) default is false\n @return\n leap: number of years since the last leap year (0 to 4)\n gy: Gregorian year of the beginning of Jalaali year\n march: the March day of Farvardin the 1st (1st day of jy)\n @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm\n @see: http://www.fourmilab.ch/documents/calendar/\n*/\nfunction jalCal (jy, withoutLeap) {\n const\n bl = breaks.length,\n gy = jy + 621\n let\n leapJ = -14,\n jp = breaks[0],\n jm,\n jump,\n leap,\n n,\n i\n\n if (jy < jp || jy >= breaks[bl - 1]) { throw new Error('Invalid Jalaali year ' + jy) }\n\n // Find the limiting years for the Jalaali year jy.\n for (i = 1; i < bl; i += 1) {\n jm = breaks[i]\n jump = jm - jp\n if (jy < jm) { break }\n leapJ = leapJ + div(jump, 33) * 8 + div(mod(jump, 33), 4)\n jp = jm\n }\n n = jy - jp\n\n // Find the number of leap years from AD 621 to the beginning\n // of the current Jalaali year in the Persian calendar.\n leapJ = leapJ + div(n, 33) * 8 + div(mod(n, 33) + 3, 4)\n if (mod(jump, 33) === 4 && jump - n === 4) { leapJ += 1 }\n\n // And the same in the Gregorian calendar (until the year gy).\n const leapG = div(gy, 4) - div((div(gy, 100) + 1) * 3, 4) - 150\n\n // Determine the Gregorian date of Farvardin the 1st.\n const march = 20 + leapJ - leapG\n\n // Find how many years have passed since the last leap year.\n if (!withoutLeap) {\n if (jump - n < 6) { n = n - jump + div(jump + 4, 33) * 33 }\n leap = mod(mod(n + 1, 33) - 1, 4)\n if (leap === -1) {\n leap = 4\n }\n }\n\n return {\n leap: leap,\n gy: gy,\n march: march\n }\n}\n\n/*\n Converts a date of the Jalaali calendar to the Julian Day number.\n\n @param jy Jalaali year (1 to 3100)\n @param jm Jalaali month (1 to 12)\n @param jd Jalaali day (1 to 29/31)\n @return Julian Day number\n*/\nfunction j2d (jy, jm, jd) {\n const r = jalCal(jy, true)\n return g2d(r.gy, 3, r.march) + (jm - 1) * 31 - div(jm, 7) * (jm - 7) + jd - 1\n}\n\n/*\n Converts the Julian Day number to a date in the Jalaali calendar.\n\n @param jdn Julian Day number\n @return\n jy: Jalaali year (1 to 3100)\n jm: Jalaali month (1 to 12)\n jd: Jalaali day (1 to 29/31)\n*/\nfunction d2j (jdn) {\n const gy = d2g(jdn).gy // Calculate Gregorian year (gy).\n let\n jy = gy - 621,\n jd,\n jm,\n k\n const\n r = jalCal(jy, false),\n jdn1f = g2d(gy, 3, r.march)\n\n // Find number of days that passed since 1 Farvardin.\n k = jdn - jdn1f\n if (k >= 0) {\n if (k <= 185) {\n // The first 6 months.\n jm = 1 + div(k, 31)\n jd = mod(k, 31) + 1\n return { jy: jy,\n jm: jm,\n jd: jd\n }\n }\n else {\n // The remaining months.\n k -= 186\n }\n }\n else {\n // Previous Jalaali year.\n jy -= 1\n k += 179\n if (r.leap === 1) { k += 1 }\n }\n jm = 7 + div(k, 30)\n jd = mod(k, 30) + 1\n return { jy: jy,\n jm: jm,\n jd: jd\n }\n}\n\n/*\n Calculates the Julian Day number from Gregorian or Julian\n calendar dates. This integer number corresponds to the noon of\n the date (i.e. 12 hours of Universal Time).\n The procedure was tested to be good since 1 March, -100100 (of both\n calendars) up to a few million years into the future.\n\n @param gy Calendar year (years BC numbered 0, -1, -2, ...)\n @param gm Calendar month (1 to 12)\n @param gd Calendar day of the month (1 to 28/29/30/31)\n @return Julian Day number\n*/\nfunction g2d (gy, gm, gd) {\n let d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4) +\n div(153 * mod(gm + 9, 12) + 2, 5) +\n gd - 34840408\n d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752\n return d\n}\n\n/*\n Calculates Gregorian and Julian calendar dates from the Julian Day number\n (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both\n calendars) to some millions years ahead of the present.\n\n @param jdn Julian Day number\n @return\n gy: Calendar year (years BC numbered 0, -1, -2, ...)\n gm: Calendar month (1 to 12)\n gd: Calendar day of the month M (1 to 28/29/30/31)\n*/\nfunction d2g (jdn) {\n let j = 4 * jdn + 139361631\n j = j + div(div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908\n const\n i = div(mod(j, 1461), 4) * 5 + 308,\n gd = div(mod(i, 153), 5) + 1,\n gm = mod(div(i, 153), 12) + 1,\n gy = div(j, 1461) - 100100 + div(8 - gm, 6)\n return {\n gy: gy,\n gm: gm,\n gd: gd\n }\n}\n\n/*\n Utility helper functions.\n*/\n\nfunction div (a, b) {\n return ~~(a / b)\n}\n\nfunction mod (a, b) {\n return a - ~~(a / b) * b\n}\n","import { toJalaali } from '../utils/private/date-persian.js'\n\nimport DarkMixin from './dark.js'\nimport FormMixin from './form.js'\nimport ListenersMixin from './listeners.js'\n\nimport { pad } from '../utils/format.js'\n\nconst calendars = [ 'gregorian', 'persian' ]\n\nexport default {\n mixins: [ DarkMixin, FormMixin, ListenersMixin ],\n\n props: {\n value: {\n required: true\n },\n\n mask: {\n type: String\n },\n locale: Object,\n\n calendar: {\n type: String,\n validator: v => calendars.includes(v),\n default: 'gregorian'\n },\n\n landscape: Boolean,\n\n color: String,\n textColor: String,\n\n square: Boolean,\n flat: Boolean,\n bordered: Boolean,\n\n readonly: Boolean,\n disable: Boolean\n },\n\n computed: {\n computedMask () {\n return this.__getMask()\n },\n\n computedLocale () {\n return this.__getLocale()\n },\n\n editable () {\n return this.disable !== true && this.readonly !== true\n },\n\n computedColor () {\n return this.color || 'primary'\n },\n\n computedTextColor () {\n return this.textColor || 'white'\n },\n\n computedTabindex () {\n return this.editable === true ? 0 : -1\n },\n\n headerClass () {\n const cls = []\n this.color !== void 0 && cls.push(`bg-${this.color}`)\n this.textColor !== void 0 && cls.push(`text-${this.textColor}`)\n return cls.join(' ')\n }\n },\n\n methods: {\n __getLocale () {\n return this.locale !== void 0\n ? { ...this.$q.lang.date, ...this.locale }\n : this.$q.lang.date\n },\n\n __getCurrentDate (dateOnly) {\n const d = new Date()\n const timeFill = dateOnly === true ? null : 0\n\n if (this.calendar === 'persian') {\n const jDate = toJalaali(d)\n return {\n year: jDate.jy,\n month: jDate.jm,\n day: jDate.jd\n }\n }\n\n return {\n year: d.getFullYear(),\n month: d.getMonth() + 1,\n day: d.getDate(),\n hour: timeFill,\n minute: timeFill,\n second: timeFill,\n millisecond: timeFill\n }\n },\n\n __getCurrentTime () {\n const d = new Date()\n\n return {\n hour: d.getHours(),\n minute: d.getMinutes(),\n second: d.getSeconds(),\n millisecond: d.getMilliseconds()\n }\n },\n\n __getDayHash (date) {\n return date.year + '/' + pad(date.month) + '/' + pad(date.day)\n }\n }\n}\n","/* eslint no-fallthrough: 0 */\n\nimport { isDate } from './is.js'\nimport { pad, capitalize } from './format.js'\nimport { jalaaliMonthLength } from './private/date-persian.js'\nimport lang, { defaultLang } from '../lang.js'\n\nconst\n MILLISECONDS_IN_DAY = 86400000,\n MILLISECONDS_IN_HOUR = 3600000,\n MILLISECONDS_IN_MINUTE = 60000,\n defaultMask = 'YYYY-MM-DDTHH:mm:ss.SSSZ',\n token = /\\[((?:[^\\]\\\\]|\\\\]|\\\\)*)\\]|d{1,4}|M{1,4}|m{1,2}|w{1,2}|Qo|Do|D{1,4}|YY(?:YY)?|H{1,2}|h{1,2}|s{1,2}|S{1,3}|Z{1,2}|a{1,2}|[AQExX]/g,\n reverseToken = /(\\[[^\\]]*\\])|d{1,4}|M{1,4}|m{1,2}|w{1,2}|Qo|Do|D{1,4}|YY(?:YY)?|H{1,2}|h{1,2}|s{1,2}|S{1,3}|Z{1,2}|a{1,2}|[AQExX]|([.*+:?^,\\s${}()|\\\\]+)/g,\n regexStore = {}\n\nfunction getRegexData (mask, dateLocale) {\n const\n days = '(' + dateLocale.days.join('|') + ')',\n key = mask + days\n\n if (regexStore[ key ] !== void 0) {\n return regexStore[ key ]\n }\n\n const\n daysShort = '(' + dateLocale.daysShort.join('|') + ')',\n months = '(' + dateLocale.months.join('|') + ')',\n monthsShort = '(' + dateLocale.monthsShort.join('|') + ')'\n\n const map = {}\n let index = 0\n\n const regexText = mask.replace(reverseToken, match => {\n index++\n switch (match) {\n case 'YY':\n map.YY = index\n return '(-?\\\\d{1,2})'\n case 'YYYY':\n map.YYYY = index\n return '(-?\\\\d{1,4})'\n case 'M':\n map.M = index\n return '(\\\\d{1,2})'\n case 'MM':\n map.M = index // bumping to M\n return '(\\\\d{2})'\n case 'MMM':\n map.MMM = index\n return monthsShort\n case 'MMMM':\n map.MMMM = index\n return months\n case 'D':\n map.D = index\n return '(\\\\d{1,2})'\n case 'Do':\n map.D = index++ // bumping to D\n return '(\\\\d{1,2}(st|nd|rd|th))'\n case 'DD':\n map.D = index // bumping to D\n return '(\\\\d{2})'\n case 'H':\n map.H = index\n return '(\\\\d{1,2})'\n case 'HH':\n map.H = index // bumping to H\n return '(\\\\d{2})'\n case 'h':\n map.h = index\n return '(\\\\d{1,2})'\n case 'hh':\n map.h = index // bumping to h\n return '(\\\\d{2})'\n case 'm':\n map.m = index\n return '(\\\\d{1,2})'\n case 'mm':\n map.m = index // bumping to m\n return '(\\\\d{2})'\n case 's':\n map.s = index\n return '(\\\\d{1,2})'\n case 'ss':\n map.s = index // bumping to s\n return '(\\\\d{2})'\n case 'S':\n map.S = index\n return '(\\\\d{1})'\n case 'SS':\n map.S = index // bump to S\n return '(\\\\d{2})'\n case 'SSS':\n map.S = index // bump to S\n return '(\\\\d{3})'\n case 'A':\n map.A = index\n return '(AM|PM)'\n case 'a':\n map.a = index\n return '(am|pm)'\n case 'aa':\n map.aa = index\n return '(a\\\\.m\\\\.|p\\\\.m\\\\.)'\n\n case 'ddd':\n return daysShort\n case 'dddd':\n return days\n case 'Q':\n case 'd':\n case 'E':\n return '(\\\\d{1})'\n case 'Qo':\n return '(1st|2nd|3rd|4th)'\n case 'DDD':\n case 'DDDD':\n return '(\\\\d{1,3})'\n case 'w':\n return '(\\\\d{1,2})'\n case 'ww':\n return '(\\\\d{2})'\n\n case 'Z': // to split: (?:(Z)()()|([+-])?(\\\\d{2}):?(\\\\d{2}))\n map.Z = index\n return '(Z|[+-]\\\\d{2}:\\\\d{2})'\n case 'ZZ':\n map.ZZ = index\n return '(Z|[+-]\\\\d{2}\\\\d{2})'\n\n case 'X':\n map.X = index\n return '(-?\\\\d+)'\n case 'x':\n map.x = index\n return '(-?\\\\d{4,})'\n\n default:\n index--\n if (match[ 0 ] === '[') {\n match = match.substring(1, match.length - 1)\n }\n return match.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n }\n })\n\n const res = { map, regex: new RegExp('^' + regexText) }\n regexStore[ key ] = res\n\n return res\n}\n\nfunction getDateLocale (paramDateLocale, langProps) {\n return paramDateLocale !== void 0\n ? paramDateLocale\n : (\n langProps !== void 0\n ? langProps.date\n : defaultLang.date\n )\n}\n\nfunction formatTimezone (offset, delimeter = '') {\n const\n sign = offset > 0 ? '-' : '+',\n absOffset = Math.abs(offset),\n hours = Math.floor(absOffset / 60),\n minutes = absOffset % 60\n\n return sign + pad(hours) + delimeter + pad(minutes)\n}\n\nfunction applyYearMonthDayChange (date, mod, sign) {\n let\n year = date.getFullYear(),\n month = date.getMonth()\n\n const day = date.getDate()\n\n if (mod.year !== void 0) {\n year += sign * mod.year\n delete mod.year\n }\n\n if (mod.month !== void 0) {\n month += sign * mod.month\n delete mod.month\n }\n\n date.setDate(1)\n date.setMonth(2)\n\n date.setFullYear(year)\n date.setMonth(month)\n date.setDate(Math.min(day, daysInMonth(date)))\n\n if (mod.date !== void 0) {\n date.setDate(date.getDate() + sign * mod.date)\n delete mod.date\n }\n\n return date\n}\n\nfunction applyYearMonthDay (date, mod, middle) {\n const\n year = mod.year !== void 0 ? mod.year : date[ `get${middle}FullYear` ](),\n month = mod.month !== void 0 ? mod.month - 1 : date[ `get${middle}Month` ](),\n maxDay = (new Date(year, month + 1, 0)).getDate(),\n day = Math.min(maxDay, mod.date !== void 0 ? mod.date : date[ `get${middle}Date` ]())\n\n date[ `set${middle}Date` ](1)\n date[ `set${middle}Month` ](2)\n\n date[ `set${middle}FullYear` ](year)\n date[ `set${middle}Month` ](month)\n date[ `set${middle}Date` ](day)\n\n delete mod.year\n delete mod.month\n delete mod.date\n\n return date\n}\n\nfunction getChange (date, rawMod, sign) {\n const\n mod = normalizeMod(rawMod),\n d = new Date(date),\n t = mod.year !== void 0 || mod.month !== void 0 || mod.date !== void 0\n ? applyYearMonthDayChange(d, mod, sign) // removes year/month/day\n : d\n\n for (const key in mod) {\n const op = capitalize(key)\n t[ `set${op}` ](t[ `get${op}` ]() + sign * mod[ key ])\n }\n\n return t\n}\n\nfunction normalizeMod (mod) {\n const acc = { ...mod }\n\n if (mod.years !== void 0) {\n acc.year = mod.years\n delete acc.years\n }\n\n if (mod.months !== void 0) {\n acc.month = mod.months\n delete acc.months\n }\n\n if (mod.days !== void 0) {\n acc.date = mod.days\n delete acc.days\n }\n if (mod.day !== void 0) {\n acc.date = mod.day\n delete acc.day\n }\n\n if (mod.hour !== void 0) {\n acc.hours = mod.hour\n delete acc.hour\n }\n\n if (mod.minute !== void 0) {\n acc.minutes = mod.minute\n delete acc.minute\n }\n\n if (mod.second !== void 0) {\n acc.seconds = mod.second\n delete acc.second\n }\n\n if (mod.millisecond !== void 0) {\n acc.milliseconds = mod.millisecond\n delete acc.millisecond\n }\n\n return acc\n}\n\nexport function adjustDate (date, rawMod, utc) {\n const\n mod = normalizeMod(rawMod),\n middle = utc === true ? 'UTC' : '',\n d = new Date(date),\n t = mod.year !== void 0 || mod.month !== void 0 || mod.date !== void 0\n ? applyYearMonthDay(d, mod, middle) // removes year/month/day\n : d\n\n for (const key in mod) {\n const op = key.charAt(0).toUpperCase() + key.slice(1)\n t[ `set${middle}${op}` ](mod[ key ])\n }\n\n return t\n}\n\nexport function extractDate (str, mask, dateLocale) {\n const d = __splitDate(str, mask, dateLocale)\n\n const date = new Date(\n d.year,\n d.month === null ? null : d.month - 1,\n d.day === null ? 1 : d.day,\n d.hour,\n d.minute,\n d.second,\n d.millisecond\n )\n\n const tzOffset = date.getTimezoneOffset()\n\n return d.timezoneOffset === null || d.timezoneOffset === tzOffset\n ? date\n : getChange(date, { minutes: d.timezoneOffset - tzOffset }, 1)\n}\n\nexport function __splitDate (str, mask, dateLocale, calendar, defaultModel) {\n const date = {\n year: null,\n month: null,\n day: null,\n hour: null,\n minute: null,\n second: null,\n millisecond: null,\n timezoneOffset: null,\n dateHash: null,\n timeHash: null\n }\n\n defaultModel !== void 0 && Object.assign(date, defaultModel)\n\n if (\n str === void 0 ||\n str === null ||\n str === '' ||\n typeof str !== 'string'\n ) {\n return date\n }\n\n if (mask === void 0) {\n mask = defaultMask\n }\n\n const\n langOpts = getDateLocale(dateLocale, lang.props),\n months = langOpts.months,\n monthsShort = langOpts.monthsShort\n\n const { regex, map } = getRegexData(mask, langOpts)\n\n const match = str.match(regex)\n\n if (match === null) {\n return date\n }\n\n let tzString = ''\n\n if (map.X !== void 0 || map.x !== void 0) {\n const stamp = parseInt(match[ map.X !== void 0 ? map.X : map.x ], 10)\n\n if (isNaN(stamp) === true || stamp < 0) {\n return date\n }\n\n const d = new Date(stamp * (map.X !== void 0 ? 1000 : 1))\n\n date.year = d.getFullYear()\n date.month = d.getMonth() + 1\n date.day = d.getDate()\n date.hour = d.getHours()\n date.minute = d.getMinutes()\n date.second = d.getSeconds()\n date.millisecond = d.getMilliseconds()\n }\n else {\n if (map.YYYY !== void 0) {\n date.year = parseInt(match[ map.YYYY ], 10)\n }\n else if (map.YY !== void 0) {\n const y = parseInt(match[ map.YY ], 10)\n date.year = y < 0 ? y : 2000 + y\n }\n\n if (map.M !== void 0) {\n date.month = parseInt(match[ map.M ], 10)\n if (date.month < 1 || date.month > 12) {\n return date\n }\n }\n else if (map.MMM !== void 0) {\n date.month = monthsShort.indexOf(match[ map.MMM ]) + 1\n }\n else if (map.MMMM !== void 0) {\n date.month = months.indexOf(match[ map.MMMM ]) + 1\n }\n\n if (map.D !== void 0) {\n date.day = parseInt(match[ map.D ], 10)\n\n if (date.year === null || date.month === null || date.day < 1) {\n return date\n }\n\n const maxDay = calendar !== 'persian'\n ? (new Date(date.year, date.month, 0)).getDate()\n : jalaaliMonthLength(date.year, date.month)\n\n if (date.day > maxDay) {\n return date\n }\n }\n\n if (map.H !== void 0) {\n date.hour = parseInt(match[ map.H ], 10) % 24\n }\n else if (map.h !== void 0) {\n date.hour = parseInt(match[ map.h ], 10) % 12\n if (\n (map.A && match[ map.A ] === 'PM') ||\n (map.a && match[ map.a ] === 'pm') ||\n (map.aa && match[ map.aa ] === 'p.m.')\n ) {\n date.hour += 12\n }\n date.hour = date.hour % 24\n }\n\n if (map.m !== void 0) {\n date.minute = parseInt(match[ map.m ], 10) % 60\n }\n\n if (map.s !== void 0) {\n date.second = parseInt(match[ map.s ], 10) % 60\n }\n\n if (map.S !== void 0) {\n date.millisecond = parseInt(match[ map.S ], 10) * 10 ** (3 - match[ map.S ].length)\n }\n\n if (map.Z !== void 0 || map.ZZ !== void 0) {\n tzString = (map.Z !== void 0 ? match[ map.Z ].replace(':', '') : match[ map.ZZ ])\n date.timezoneOffset = (tzString[ 0 ] === '+' ? -1 : 1) * (60 * tzString.slice(1, 3) + 1 * tzString.slice(3, 5))\n }\n }\n\n date.dateHash = pad(date.year, 6) + '/' + pad(date.month) + '/' + pad(date.day)\n date.timeHash = pad(date.hour) + ':' + pad(date.minute) + ':' + pad(date.second) + tzString\n\n return date\n}\n\nexport function isValid (date) {\n return typeof date === 'number'\n ? true\n : isNaN(Date.parse(date)) === false\n}\n\nexport function buildDate (mod, utc) {\n return adjustDate(new Date(), mod, utc)\n}\n\nexport function getDayOfWeek (date) {\n const dow = new Date(date).getDay()\n return dow === 0 ? 7 : dow\n}\n\nexport function getWeekOfYear (date) {\n // Remove time components of date\n const thursday = new Date(date.getFullYear(), date.getMonth(), date.getDate())\n\n // Change date to Thursday same week\n thursday.setDate(thursday.getDate() - ((thursday.getDay() + 6) % 7) + 3)\n\n // Take January 4th as it is always in week 1 (see ISO 8601)\n const firstThursday = new Date(thursday.getFullYear(), 0, 4)\n\n // Change date to Thursday same week\n firstThursday.setDate(firstThursday.getDate() - ((firstThursday.getDay() + 6) % 7) + 3)\n\n // Check if daylight-saving-time-switch occurred and correct for it\n const ds = thursday.getTimezoneOffset() - firstThursday.getTimezoneOffset()\n thursday.setHours(thursday.getHours() - ds)\n\n // Number of weeks between target Thursday and first Thursday\n const weekDiff = (thursday - firstThursday) / (MILLISECONDS_IN_DAY * 7)\n return 1 + Math.floor(weekDiff)\n}\n\nfunction getDayIdentifier (date) {\n return date.getFullYear() * 10000 + date.getMonth() * 100 + date.getDate()\n}\n\nfunction getDateIdentifier (date, onlyDate /* = false */) {\n const d = new Date(date)\n return onlyDate === true ? getDayIdentifier(d) : d.getTime()\n}\n\nexport function isBetweenDates (date, from, to, opts = {}) {\n const\n d1 = getDateIdentifier(from, opts.onlyDate),\n d2 = getDateIdentifier(to, opts.onlyDate),\n cur = getDateIdentifier(date, opts.onlyDate)\n\n return (cur > d1 || (opts.inclusiveFrom === true && cur === d1)) &&\n (cur < d2 || (opts.inclusiveTo === true && cur === d2))\n}\n\nexport function addToDate (date, mod) {\n return getChange(date, mod, 1)\n}\nexport function subtractFromDate (date, mod) {\n return getChange(date, mod, -1)\n}\n\nexport function startOfDate (date, unit, utc) {\n const\n t = new Date(date),\n prefix = `set${utc === true ? 'UTC' : ''}`\n\n switch (unit) {\n case 'year':\n case 'years':\n t[ `${prefix}Month` ](0)\n case 'month':\n case 'months':\n t[ `${prefix}Date` ](1)\n case 'day':\n case 'days':\n case 'date':\n t[ `${prefix}Hours` ](0)\n case 'hour':\n case 'hours':\n t[ `${prefix}Minutes` ](0)\n case 'minute':\n case 'minutes':\n t[ `${prefix}Seconds` ](0)\n case 'second':\n case 'seconds':\n t[ `${prefix}Milliseconds` ](0)\n }\n return t\n}\n\nexport function endOfDate (date, unit, utc) {\n const\n t = new Date(date),\n prefix = `set${utc === true ? 'UTC' : ''}`\n\n switch (unit) {\n case 'year':\n case 'years':\n t[ `${prefix}Month` ](11)\n case 'month':\n case 'months':\n t[ `${prefix}Date` ](daysInMonth(t))\n case 'day':\n case 'days':\n case 'date':\n t[ `${prefix}Hours` ](23)\n case 'hour':\n case 'hours':\n t[ `${prefix}Minutes` ](59)\n case 'minute':\n case 'minutes':\n t[ `${prefix}Seconds` ](59)\n case 'second':\n case 'seconds':\n t[ `${prefix}Milliseconds` ](999)\n }\n return t\n}\n\nexport function getMaxDate (date /* , ...args */) {\n let t = new Date(date)\n Array.prototype.slice.call(arguments, 1).forEach(d => {\n t = Math.max(t, new Date(d))\n })\n return t\n}\n\nexport function getMinDate (date /*, ...args */) {\n let t = new Date(date)\n Array.prototype.slice.call(arguments, 1).forEach(d => {\n t = Math.min(t, new Date(d))\n })\n return t\n}\n\nfunction getDiff (t, sub, interval) {\n return (\n (t.getTime() - t.getTimezoneOffset() * MILLISECONDS_IN_MINUTE) -\n (sub.getTime() - sub.getTimezoneOffset() * MILLISECONDS_IN_MINUTE)\n ) / interval\n}\n\nexport function getDateDiff (date, subtract, unit = 'days') {\n const\n t = new Date(date),\n sub = new Date(subtract)\n\n switch (unit) {\n case 'years':\n case 'year':\n return (t.getFullYear() - sub.getFullYear())\n\n case 'months':\n case 'month':\n return (t.getFullYear() - sub.getFullYear()) * 12 + t.getMonth() - sub.getMonth()\n\n case 'days':\n case 'day':\n case 'date':\n return getDiff(startOfDate(t, 'day'), startOfDate(sub, 'day'), MILLISECONDS_IN_DAY)\n\n case 'hours':\n case 'hour':\n return getDiff(startOfDate(t, 'hour'), startOfDate(sub, 'hour'), MILLISECONDS_IN_HOUR)\n\n case 'minutes':\n case 'minute':\n return getDiff(startOfDate(t, 'minute'), startOfDate(sub, 'minute'), MILLISECONDS_IN_MINUTE)\n\n case 'seconds':\n case 'second':\n return getDiff(startOfDate(t, 'second'), startOfDate(sub, 'second'), 1000)\n }\n}\n\nexport function getDayOfYear (date) {\n return getDateDiff(date, startOfDate(date, 'year'), 'days') + 1\n}\n\nexport function inferDateFormat (date) {\n return isDate(date) === true\n ? 'date'\n : (typeof date === 'number' ? 'number' : 'string')\n}\n\nexport function getDateBetween (date, min, max) {\n const t = new Date(date)\n\n if (min) {\n const low = new Date(min)\n if (t < low) {\n return low\n }\n }\n\n if (max) {\n const high = new Date(max)\n if (t > high) {\n return high\n }\n }\n\n return t\n}\n\nexport function isSameDate (date, date2, unit) {\n const\n t = new Date(date),\n d = new Date(date2)\n\n if (unit === void 0) {\n return t.getTime() === d.getTime()\n }\n\n switch (unit) {\n case 'second':\n case 'seconds':\n if (t.getSeconds() !== d.getSeconds()) {\n return false\n }\n case 'minute': // intentional fall-through\n case 'minutes':\n if (t.getMinutes() !== d.getMinutes()) {\n return false\n }\n case 'hour': // intentional fall-through\n case 'hours':\n if (t.getHours() !== d.getHours()) {\n return false\n }\n case 'day': // intentional fall-through\n case 'days':\n case 'date':\n if (t.getDate() !== d.getDate()) {\n return false\n }\n case 'month': // intentional fall-through\n case 'months':\n if (t.getMonth() !== d.getMonth()) {\n return false\n }\n case 'year': // intentional fall-through\n case 'years':\n if (t.getFullYear() !== d.getFullYear()) {\n return false\n }\n break\n default:\n throw new Error(`date isSameDate unknown unit ${unit}`)\n }\n\n return true\n}\n\nexport function daysInMonth (date) {\n return (new Date(date.getFullYear(), date.getMonth() + 1, 0)).getDate()\n}\n\nfunction getOrdinal (n) {\n if (n >= 11 && n <= 13) {\n return `${n}th`\n }\n switch (n % 10) {\n case 1: return `${n}st`\n case 2: return `${n}nd`\n case 3: return `${n}rd`\n }\n return `${n}th`\n}\n\nconst formatter = {\n // Year: 00, 01, ..., 99\n YY (date, _, forcedYear) {\n // workaround for < 1900 with new Date()\n const y = this.YYYY(date, _, forcedYear) % 100\n return y >= 0\n ? pad(y)\n : '-' + pad(Math.abs(y))\n },\n\n // Year: 1900, 1901, ..., 2099\n YYYY (date, _, forcedYear) {\n // workaround for < 1900 with new Date()\n return forcedYear !== void 0 && forcedYear !== null\n ? forcedYear\n : date.getFullYear()\n },\n\n // Month: 1, 2, ..., 12\n M (date) {\n return date.getMonth() + 1\n },\n\n // Month: 01, 02, ..., 12\n MM (date) {\n return pad(date.getMonth() + 1)\n },\n\n // Month Short Name: Jan, Feb, ...\n MMM (date, dateLocale) {\n return dateLocale.monthsShort[ date.getMonth() ]\n },\n\n // Month Name: January, February, ...\n MMMM (date, dateLocale) {\n return dateLocale.months[ date.getMonth() ]\n },\n\n // Quarter: 1, 2, 3, 4\n Q (date) {\n return Math.ceil((date.getMonth() + 1) / 3)\n },\n\n // Quarter: 1st, 2nd, 3rd, 4th\n Qo (date) {\n return getOrdinal(this.Q(date))\n },\n\n // Day of month: 1, 2, ..., 31\n D (date) {\n return date.getDate()\n },\n\n // Day of month: 1st, 2nd, ..., 31st\n Do (date) {\n return getOrdinal(date.getDate())\n },\n\n // Day of month: 01, 02, ..., 31\n DD (date) {\n return pad(date.getDate())\n },\n\n // Day of year: 1, 2, ..., 366\n DDD (date) {\n return getDayOfYear(date)\n },\n\n // Day of year: 001, 002, ..., 366\n DDDD (date) {\n return pad(getDayOfYear(date), 3)\n },\n\n // Day of week: 0, 1, ..., 6\n d (date) {\n return date.getDay()\n },\n\n // Day of week: Su, Mo, ...\n dd (date, dateLocale) {\n return this.dddd(date, dateLocale).slice(0, 2)\n },\n\n // Day of week: Sun, Mon, ...\n ddd (date, dateLocale) {\n return dateLocale.daysShort[ date.getDay() ]\n },\n\n // Day of week: Sunday, Monday, ...\n dddd (date, dateLocale) {\n return dateLocale.days[ date.getDay() ]\n },\n\n // Day of ISO week: 1, 2, ..., 7\n E (date) {\n return date.getDay() || 7\n },\n\n // Week of Year: 1 2 ... 52 53\n w (date) {\n return getWeekOfYear(date)\n },\n\n // Week of Year: 01 02 ... 52 53\n ww (date) {\n return pad(getWeekOfYear(date))\n },\n\n // Hour: 0, 1, ... 23\n H (date) {\n return date.getHours()\n },\n\n // Hour: 00, 01, ..., 23\n HH (date) {\n return pad(date.getHours())\n },\n\n // Hour: 1, 2, ..., 12\n h (date) {\n const hours = date.getHours()\n if (hours === 0) {\n return 12\n }\n if (hours > 12) {\n return hours % 12\n }\n return hours\n },\n\n // Hour: 01, 02, ..., 12\n hh (date) {\n return pad(this.h(date))\n },\n\n // Minute: 0, 1, ..., 59\n m (date) {\n return date.getMinutes()\n },\n\n // Minute: 00, 01, ..., 59\n mm (date) {\n return pad(date.getMinutes())\n },\n\n // Second: 0, 1, ..., 59\n s (date) {\n return date.getSeconds()\n },\n\n // Second: 00, 01, ..., 59\n ss (date) {\n return pad(date.getSeconds())\n },\n\n // 1/10 of second: 0, 1, ..., 9\n S (date) {\n return Math.floor(date.getMilliseconds() / 100)\n },\n\n // 1/100 of second: 00, 01, ..., 99\n SS (date) {\n return pad(Math.floor(date.getMilliseconds() / 10))\n },\n\n // Millisecond: 000, 001, ..., 999\n SSS (date) {\n return pad(date.getMilliseconds(), 3)\n },\n\n // Meridiem: AM, PM\n A (date) {\n return this.H(date) < 12 ? 'AM' : 'PM'\n },\n\n // Meridiem: am, pm\n a (date) {\n return this.H(date) < 12 ? 'am' : 'pm'\n },\n\n // Meridiem: a.m., p.m.\n aa (date) {\n return this.H(date) < 12 ? 'a.m.' : 'p.m.'\n },\n\n // Timezone: -01:00, +00:00, ... +12:00\n Z (date, dateLocale, forcedYear, forcedTimezoneOffset) {\n const tzOffset = forcedTimezoneOffset === void 0 || forcedTimezoneOffset === null\n ? date.getTimezoneOffset()\n : forcedTimezoneOffset\n\n return formatTimezone(tzOffset, ':')\n },\n\n // Timezone: -0100, +0000, ... +1200\n ZZ (date, dateLocale, forcedYear, forcedTimezoneOffset) {\n const tzOffset = forcedTimezoneOffset === void 0 || forcedTimezoneOffset === null\n ? date.getTimezoneOffset()\n : forcedTimezoneOffset\n\n return formatTimezone(tzOffset)\n },\n\n // Seconds timestamp: 512969520\n X (date) {\n return Math.floor(date.getTime() / 1000)\n },\n\n // Milliseconds timestamp: 512969520900\n x (date) {\n return date.getTime()\n }\n}\n\nexport function formatDate (val, mask, dateLocale, __forcedYear, __forcedTimezoneOffset) {\n if (\n (val !== 0 && !val) ||\n val === Infinity ||\n val === -Infinity\n ) {\n return\n }\n\n const date = new Date(val)\n\n if (isNaN(date)) {\n return\n }\n\n if (mask === void 0) {\n mask = defaultMask\n }\n\n const locale = getDateLocale(dateLocale, lang.props)\n\n return mask.replace(\n token,\n (match, text) => (\n match in formatter\n ? formatter[ match ](date, locale, __forcedYear, __forcedTimezoneOffset)\n : (text === void 0 ? match : text.split('\\\\]').join(']'))\n )\n )\n}\n\nexport function clone (date) {\n return isDate(date) === true\n ? new Date(date.getTime())\n : date\n}\n\nexport default {\n isValid,\n extractDate,\n buildDate,\n getDayOfWeek,\n getWeekOfYear,\n isBetweenDates,\n addToDate,\n subtractFromDate,\n adjustDate,\n startOfDate,\n endOfDate,\n getMaxDate,\n getMinDate,\n getDateDiff,\n getDayOfYear,\n inferDateFormat,\n getDateBetween,\n isSameDate,\n daysInMonth,\n formatDate,\n clone\n}\n","import Vue from 'vue'\n\nimport QBtn from '../btn/QBtn.js'\nimport DateTimeMixin from '../../mixins/datetime.js'\n\nimport { slot } from '../../utils/private/slot.js'\nimport { formatDate, __splitDate, getDateDiff } from '../../utils/date.js'\nimport { pad } from '../../utils/format.js'\nimport { jalaaliMonthLength, toGregorian } from '../../utils/private/date-persian.js'\nimport cache from '../../utils/private/cache.js'\nimport { isObject } from '../../utils/is.js'\n\nconst yearsInterval = 20\nconst views = [ 'Calendar', 'Years', 'Months' ]\nconst viewIsValid = v => views.includes(v)\nconst yearMonthValidator = v => /^-?[\\d]+\\/[0-1]\\d$/.test(v)\nconst lineStr = ' \\u2014 '\n\nexport default Vue.extend({\n name: 'QDate',\n\n mixins: [ DateTimeMixin ],\n\n props: {\n multiple: Boolean,\n range: Boolean,\n\n title: String,\n subtitle: String,\n\n mask: {\n // this mask is forced\n // when using persian calendar\n default: 'YYYY/MM/DD'\n },\n\n defaultYearMonth: {\n type: String,\n validator: yearMonthValidator\n },\n\n yearsInMonthView: Boolean,\n\n events: [ Array, Function ],\n eventColor: [ String, Function ],\n\n emitImmediately: Boolean,\n\n options: [ Array, Function ],\n\n navigationMinYearMonth: {\n type: String,\n validator: yearMonthValidator\n },\n\n navigationMaxYearMonth: {\n type: String,\n validator: yearMonthValidator\n },\n\n noUnset: Boolean,\n\n firstDayOfWeek: [ String, Number ],\n todayBtn: Boolean,\n minimal: Boolean,\n defaultView: {\n type: String,\n default: 'Calendar',\n validator: viewIsValid\n }\n },\n\n data () {\n const\n innerMask = this.__getMask(),\n innerLocale = this.__getLocale(),\n viewModel = this.__getViewModel(innerMask, innerLocale),\n year = viewModel.year,\n direction = this.$q.lang.rtl === true ? 'right' : 'left'\n\n return {\n view: this.defaultView,\n monthDirection: direction,\n yearDirection: direction,\n startYear: year - (year % yearsInterval) - (year < 0 ? yearsInterval : 0),\n editRange: void 0,\n innerMask,\n innerLocale,\n viewModel // model of current calendar view\n }\n },\n\n watch: {\n value (v) {\n if (this.lastEmitValue === v) {\n this.lastEmitValue = 0\n }\n else {\n const model = this.__getViewModel(this.innerMask, this.innerLocale)\n this.__updateViewModel(model.year, model.month, model)\n }\n },\n\n view () {\n if (this.$refs.blurTarget !== void 0 && this.$el.contains(document.activeElement) === true) {\n this.$refs.blurTarget.focus()\n }\n },\n\n 'viewModel.year' (year) {\n this.$emit('navigation', { year, month: this.viewModel.month })\n },\n\n 'viewModel.month' (month) {\n this.$emit('navigation', { year: this.viewModel.year, month })\n },\n\n computedMask (val) {\n this.__updateValue(val, this.innerLocale, 'mask')\n this.innerMask = val\n },\n\n computedLocale (val) {\n this.__updateValue(this.innerMask, val, 'locale')\n this.innerLocale = val\n }\n },\n\n computed: {\n classes () {\n const type = this.landscape === true ? 'landscape' : 'portrait'\n return `q-date q-date--${type} q-date--${type}-${this.minimal === true ? 'minimal' : 'standard'}` +\n (this.isDark === true ? ' q-date--dark q-dark' : '') +\n (this.bordered === true ? ' q-date--bordered' : '') +\n (this.square === true ? ' q-date--square no-border-radius' : '') +\n (this.flat === true ? ' q-date--flat no-shadow' : '') +\n (this.disable === true ? ' disabled' : (this.readonly === true ? ' q-date--readonly' : ''))\n },\n\n isImmediate () {\n return this.emitImmediately === true &&\n this.multiple !== true &&\n this.range !== true\n },\n\n normalizedModel () {\n return Array.isArray(this.value) === true\n ? this.value\n : (this.value !== null && this.value !== void 0 ? [ this.value ] : [])\n },\n\n daysModel () {\n return this.normalizedModel\n .filter(date => typeof date === 'string')\n .map(date => this.__decodeString(date, this.innerMask, this.innerLocale))\n .filter(date =>\n date.dateHash !== null &&\n date.day !== null &&\n date.month !== null &&\n date.year !== null\n )\n },\n\n rangeModel () {\n const fn = date => this.__decodeString(date, this.innerMask, this.innerLocale)\n return this.normalizedModel\n .filter(date => isObject(date) === true && date.from !== void 0 && date.to !== void 0)\n .map(range => ({ from: fn(range.from), to: fn(range.to) }))\n .filter(range => range.from.dateHash !== null && range.to.dateHash !== null && range.from.dateHash < range.to.dateHash)\n },\n\n getNativeDateFn () {\n return this.calendar !== 'persian'\n ? model => new Date(model.year, model.month - 1, model.day)\n : model => {\n const gDate = toGregorian(model.year, model.month, model.day)\n return new Date(gDate.gy, gDate.gm - 1, gDate.gd)\n }\n },\n\n encodeObjectFn () {\n return this.calendar === 'persian'\n ? this.__getDayHash\n : (date, mask, locale) => formatDate(\n new Date(\n date.year,\n date.month - 1,\n date.day,\n date.hour,\n date.minute,\n date.second,\n date.millisecond\n ),\n mask === void 0 ? this.innerMask : mask,\n locale === void 0 ? this.innerLocale : locale,\n date.year,\n date.timezoneOffset\n )\n },\n\n daysInModel () {\n return this.daysModel.length + this.rangeModel.reduce(\n (acc, range) => acc + 1 + getDateDiff(\n this.getNativeDateFn(range.to),\n this.getNativeDateFn(range.from)\n ),\n 0\n )\n },\n\n headerTitle () {\n if (this.title !== void 0 && this.title !== null && this.title.length > 0) {\n return this.title\n }\n\n if (this.editRange !== void 0) {\n const model = this.editRange.init\n const date = this.getNativeDateFn(model)\n\n return this.innerLocale.daysShort[ date.getDay() ] + ', ' +\n this.innerLocale.monthsShort[ model.month - 1 ] + ' ' +\n model.day + lineStr + '?'\n }\n\n if (this.daysInModel === 0) {\n return lineStr\n }\n\n if (this.daysInModel > 1) {\n return `${this.daysInModel} ${this.innerLocale.pluralDay}`\n }\n\n const model = this.daysModel[0]\n const date = this.getNativeDateFn(model)\n\n if (isNaN(date.valueOf()) === true) {\n return lineStr\n }\n\n if (this.innerLocale.headerTitle !== void 0) {\n return this.innerLocale.headerTitle(date, model)\n }\n\n return this.innerLocale.daysShort[ date.getDay() ] + ', ' +\n this.innerLocale.monthsShort[ model.month - 1 ] + ' ' +\n model.day\n },\n\n headerSubtitle () {\n if (this.subtitle !== void 0 && this.subtitle !== null && this.subtitle.length > 0) {\n return this.subtitle\n }\n\n if (this.daysInModel === 0) {\n return lineStr\n }\n\n if (this.daysInModel > 1) {\n const from = this.minSelectedModel\n const to = this.maxSelectedModel\n const month = this.innerLocale.monthsShort\n\n return month[from.month - 1] + (\n from.year !== to.year\n ? ' ' + from.year + lineStr + month[to.month - 1] + ' '\n : (\n from.month !== to.month\n ? lineStr + month[to.month - 1]\n : ''\n )\n ) + ' ' + to.year\n }\n\n return this.daysModel[0].year\n },\n\n minSelectedModel () {\n const model = this.daysModel.concat(this.rangeModel.map(range => range.from))\n .sort((a, b) => a.year - b.year || a.month - b.month)\n\n return model[0]\n },\n\n maxSelectedModel () {\n const model = this.daysModel.concat(this.rangeModel.map(range => range.to))\n .sort((a, b) => b.year - a.year || b.month - a.month)\n\n return model[0]\n },\n\n dateArrow () {\n const val = [ this.$q.iconSet.datetime.arrowLeft, this.$q.iconSet.datetime.arrowRight ]\n return this.$q.lang.rtl === true ? val.reverse() : val\n },\n\n computedFirstDayOfWeek () {\n return this.firstDayOfWeek !== void 0\n ? Number(this.firstDayOfWeek)\n : this.innerLocale.firstDayOfWeek\n },\n\n daysOfWeek () {\n const\n days = this.innerLocale.daysShort,\n first = this.computedFirstDayOfWeek\n\n return first > 0\n ? days.slice(first, 7).concat(days.slice(0, first))\n : days\n },\n\n daysInMonth () {\n const date = this.viewModel\n return this.calendar !== 'persian'\n ? (new Date(date.year, date.month, 0)).getDate()\n : jalaaliMonthLength(date.year, date.month)\n },\n\n today () {\n return this.__getCurrentDate()\n },\n\n evtColor () {\n return typeof this.eventColor === 'function'\n ? this.eventColor\n : () => this.eventColor\n },\n\n minNav () {\n if (this.navigationMinYearMonth !== void 0) {\n const data = this.navigationMinYearMonth.split('/')\n return { year: parseInt(data[0], 10), month: parseInt(data[1], 10) }\n }\n },\n\n maxNav () {\n if (this.navigationMaxYearMonth !== void 0) {\n const data = this.navigationMaxYearMonth.split('/')\n return { year: parseInt(data[0], 10), month: parseInt(data[1], 10) }\n }\n },\n\n navBoundaries () {\n const data = {\n month: { prev: true, next: true },\n year: { prev: true, next: true }\n }\n\n if (this.minNav !== void 0 && this.minNav.year >= this.viewModel.year) {\n data.year.prev = false\n if (this.minNav.year === this.viewModel.year && this.minNav.month >= this.viewModel.month) {\n data.month.prev = false\n }\n }\n\n if (this.maxNav !== void 0 && this.maxNav.year <= this.viewModel.year) {\n data.year.next = false\n if (this.maxNav.year === this.viewModel.year && this.maxNav.month <= this.viewModel.month) {\n data.month.next = false\n }\n }\n\n return data\n },\n\n daysMap () {\n const map = {}\n\n this.daysModel.forEach(entry => {\n const hash = this.__getMonthHash(entry)\n\n if (map[hash] === void 0) {\n map[hash] = []\n }\n\n map[hash].push(entry.day)\n })\n\n return map\n },\n\n rangeMap () {\n const map = {}\n\n this.rangeModel.forEach(entry => {\n const hashFrom = this.__getMonthHash(entry.from)\n const hashTo = this.__getMonthHash(entry.to)\n\n if (map[hashFrom] === void 0) {\n map[hashFrom] = []\n }\n\n map[hashFrom].push({\n from: entry.from.day,\n to: hashFrom === hashTo ? entry.to.day : void 0,\n range: entry\n })\n\n if (hashFrom < hashTo) {\n let hash\n const { year, month } = entry.from\n const cur = month < 12\n ? { year, month: month + 1 }\n : { year: year + 1, month: 1 }\n\n while ((hash = this.__getMonthHash(cur)) <= hashTo) {\n if (map[hash] === void 0) {\n map[hash] = []\n }\n\n map[hash].push({\n from: void 0,\n to: hash === hashTo ? entry.to.day : void 0,\n range: entry\n })\n\n cur.month++\n if (cur.month > 12) {\n cur.year++\n cur.month = 1\n }\n }\n }\n })\n\n return map\n },\n\n rangeView () {\n if (this.editRange === void 0) {\n return\n }\n\n const { init, initHash, final, finalHash } = this.editRange\n\n const [ from, to ] = initHash <= finalHash\n ? [ init, final ]\n : [ final, init ]\n\n const fromHash = this.__getMonthHash(from)\n const toHash = this.__getMonthHash(to)\n\n if (fromHash !== this.viewMonthHash && toHash !== this.viewMonthHash) {\n return\n }\n\n const view = {}\n\n if (fromHash === this.viewMonthHash) {\n view.from = from.day\n view.includeFrom = true\n }\n else {\n view.from = 1\n }\n\n if (toHash === this.viewMonthHash) {\n view.to = to.day\n view.includeTo = true\n }\n else {\n view.to = this.daysInMonth\n }\n\n return view\n },\n\n viewMonthHash () {\n return this.__getMonthHash(this.viewModel)\n },\n\n selectionDaysMap () {\n const map = {}\n\n if (this.options === void 0) {\n for (let i = 1; i <= this.daysInMonth; i++) {\n map[i] = true\n }\n\n return map\n }\n\n const fn = typeof this.options === 'function'\n ? this.options\n : date => this.options.includes(date)\n\n for (let i = 1; i <= this.daysInMonth; i++) {\n const dayHash = this.viewMonthHash + '/' + pad(i)\n map[i] = fn(dayHash)\n }\n\n return map\n },\n\n eventDaysMap () {\n const map = {}\n\n if (this.events === void 0) {\n for (let i = 1; i <= this.daysInMonth; i++) {\n map[i] = false\n }\n }\n else {\n const fn = typeof this.events === 'function'\n ? this.events\n : date => this.events.includes(date)\n\n for (let i = 1; i <= this.daysInMonth; i++) {\n const dayHash = this.viewMonthHash + '/' + pad(i)\n map[i] = fn(dayHash) === true && this.evtColor(dayHash)\n }\n }\n\n return map\n },\n\n viewDays () {\n let date, endDay\n const { year, month } = this.viewModel\n\n if (this.calendar !== 'persian') {\n date = new Date(year, month - 1, 1)\n endDay = (new Date(year, month - 1, 0)).getDate()\n }\n else {\n const gDate = toGregorian(year, month, 1)\n date = new Date(gDate.gy, gDate.gm - 1, gDate.gd)\n let prevJM = month - 1\n let prevJY = year\n if (prevJM === 0) {\n prevJM = 12\n prevJY--\n }\n endDay = jalaaliMonthLength(prevJY, prevJM)\n }\n\n return {\n days: date.getDay() - this.computedFirstDayOfWeek - 1,\n endDay\n }\n },\n\n days () {\n const res = []\n const { days, endDay } = this.viewDays\n\n const len = days < 0 ? days + 7 : days\n if (len < 6) {\n for (let i = endDay - len; i <= endDay; i++) {\n res.push({ i, fill: true })\n }\n }\n\n const index = res.length\n\n for (let i = 1; i <= this.daysInMonth; i++) {\n const day = { i, event: this.eventDaysMap[i], classes: [] }\n\n if (this.selectionDaysMap[i] === true) {\n day.in = true\n day.flat = true\n }\n\n res.push(day)\n }\n\n // if current view has days in model\n if (this.daysMap[this.viewMonthHash] !== void 0) {\n this.daysMap[this.viewMonthHash].forEach(day => {\n const i = index + day - 1\n Object.assign(res[i], {\n selected: true,\n unelevated: true,\n flat: false,\n color: this.computedColor,\n textColor: this.computedTextColor\n })\n })\n }\n\n // if current view has ranges in model\n if (this.rangeMap[this.viewMonthHash] !== void 0) {\n this.rangeMap[this.viewMonthHash].forEach(entry => {\n if (entry.from !== void 0) {\n const from = index + entry.from - 1\n const to = index + (entry.to || this.daysInMonth) - 1\n\n for (let day = from; day <= to; day++) {\n Object.assign(res[day], {\n range: entry.range,\n unelevated: true,\n color: this.computedColor,\n textColor: this.computedTextColor\n })\n }\n\n Object.assign(res[from], {\n rangeFrom: true,\n flat: false\n })\n\n entry.to !== void 0 && Object.assign(res[to], {\n rangeTo: true,\n flat: false\n })\n }\n else if (entry.to !== void 0) {\n const to = index + entry.to - 1\n\n for (let day = index; day <= to; day++) {\n Object.assign(res[day], {\n range: entry.range,\n unelevated: true,\n color: this.computedColor,\n textColor: this.computedTextColor\n })\n }\n\n Object.assign(res[to], {\n flat: false,\n rangeTo: true\n })\n }\n else {\n const to = index + this.daysInMonth - 1\n for (let day = index; day <= to; day++) {\n Object.assign(res[day], {\n range: entry.range,\n unelevated: true,\n color: this.computedColor,\n textColor: this.computedTextColor\n })\n }\n }\n })\n }\n\n if (this.rangeView !== void 0) {\n const from = index + this.rangeView.from - 1\n const to = index + this.rangeView.to - 1\n\n for (let day = from; day <= to; day++) {\n res[day].color = this.computedColor\n res[day].editRange = true\n }\n\n if (this.rangeView.includeFrom === true) {\n res[from].editRangeFrom = true\n }\n if (this.rangeView.includeTo === true) {\n res[to].editRangeTo = true\n }\n }\n\n if (this.viewModel.year === this.today.year && this.viewModel.month === this.today.month) {\n res[index + this.today.day - 1].today = true\n }\n\n const left = res.length % 7\n if (left > 0) {\n const afterDays = 7 - left\n for (let i = 1; i <= afterDays; i++) {\n res.push({ i, fill: true })\n }\n }\n\n res.forEach(day => {\n let cls = 'q-date__calendar-item '\n\n if (day.fill === true) {\n cls += 'q-date__calendar-item--fill'\n }\n else {\n cls += `q-date__calendar-item--${day.in === true ? 'in' : 'out'}`\n\n if (day.range !== void 0) {\n cls += ` q-date__range${day.rangeTo === true ? '-to' : (day.rangeFrom === true ? '-from' : '')}`\n }\n\n if (day.editRange === true) {\n cls += ` q-date__edit-range${day.editRangeFrom === true ? '-from' : ''}${day.editRangeTo === true ? '-to' : ''}`\n }\n\n if (day.range !== void 0 || day.editRange === true) {\n cls += ` text-${day.color}`\n }\n }\n\n day.classes = cls\n })\n\n return res\n },\n\n attrs () {\n if (this.disable === true) {\n return { 'aria-disabled': 'true' }\n }\n if (this.readonly === true) {\n return { 'aria-readonly': 'true' }\n }\n }\n },\n\n methods: {\n setToday () {\n const date = this.today\n const month = this.daysMap[this.__getMonthHash(date)]\n\n if (month === void 0 || month.includes(date.day) === false) {\n this.__addToModel(date)\n }\n\n this.setCalendarTo(this.today.year, this.today.month)\n },\n\n setView (view) {\n if (viewIsValid(view) === true) {\n this.view = view\n }\n },\n\n offsetCalendar (type, descending) {\n if (['month', 'year'].includes(type)) {\n this[`__goTo${type === 'month' ? 'Month' : 'Year'}`](\n descending === true ? -1 : 1\n )\n }\n },\n\n setCalendarTo (year, month) {\n this.view = 'Calendar'\n this.__updateViewModel(year, month)\n },\n\n setEditingRange (from, to) {\n if (this.range === false || !from) {\n this.editRange = void 0\n return\n }\n\n const init = Object.assign({ ...this.viewModel }, from)\n const final = to !== void 0\n ? Object.assign({ ...this.viewModel }, to)\n : init\n\n this.editRange = {\n init,\n initHash: this.__getDayHash(init),\n final,\n finalHash: this.__getDayHash(final)\n }\n\n this.setCalendarTo(init.year, init.month)\n },\n\n __getMask () {\n return this.calendar === 'persian' ? 'YYYY/MM/DD' : this.mask\n },\n\n __decodeString (date, mask, locale) {\n return __splitDate(\n date,\n mask,\n locale,\n this.calendar,\n {\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n }\n )\n },\n\n __getViewModel (mask, locale) {\n const model = Array.isArray(this.value) === true\n ? this.value\n : (this.value ? [ this.value ] : [])\n\n if (model.length === 0) {\n return this.__getDefaultViewModel()\n }\n\n const decoded = this.__decodeString(\n model[0].from !== void 0 ? model[0].from : model[0],\n mask,\n locale\n )\n\n return decoded.dateHash === null\n ? this.__getDefaultViewModel()\n : decoded\n },\n\n __getDefaultViewModel () {\n let year, month\n\n if (this.defaultYearMonth !== void 0) {\n const d = this.defaultYearMonth.split('/')\n year = parseInt(d[0], 10)\n month = parseInt(d[1], 10)\n }\n else {\n // may come from data() where computed\n // props are not yet available\n const d = this.today !== void 0\n ? this.today\n : this.__getCurrentDate()\n\n year = d.year\n month = d.month\n }\n\n return {\n year,\n month,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n dateHash: year + '/' + pad(month) + '/01'\n }\n },\n\n __getHeader (h) {\n if (this.minimal === true) { return }\n\n return h('div', {\n staticClass: 'q-date__header',\n class: this.headerClass\n }, [\n h('div', {\n staticClass: 'relative-position'\n }, [\n h('transition', {\n props: {\n name: 'q-transition--fade'\n }\n }, [\n h('div', {\n key: 'h-yr-' + this.headerSubtitle,\n staticClass: 'q-date__header-subtitle q-date__header-link',\n class: this.view === 'Years' ? 'q-date__header-link--active' : 'cursor-pointer',\n attrs: { tabindex: this.computedTabindex },\n on: cache(this, 'vY', {\n click: () => { this.view = 'Years' },\n keyup: e => { e.keyCode === 13 && (this.view = 'Years') }\n })\n }, [ this.headerSubtitle ])\n ])\n ]),\n\n h('div', {\n staticClass: 'q-date__header-title relative-position flex no-wrap'\n }, [\n h('div', {\n staticClass: 'relative-position col'\n }, [\n h('transition', {\n props: {\n name: 'q-transition--fade'\n }\n }, [\n h('div', {\n key: 'h-sub' + this.headerTitle,\n staticClass: 'q-date__header-title-label q-date__header-link',\n class: this.view === 'Calendar' ? 'q-date__header-link--active' : 'cursor-pointer',\n attrs: { tabindex: this.computedTabindex },\n on: cache(this, 'vC', {\n click: () => { this.view = 'Calendar' },\n keyup: e => { e.keyCode === 13 && (this.view = 'Calendar') }\n })\n }, [ this.headerTitle ])\n ])\n ]),\n\n this.todayBtn === true ? h(QBtn, {\n staticClass: 'q-date__header-today self-start',\n props: {\n icon: this.$q.iconSet.datetime.today,\n flat: true,\n size: 'sm',\n round: true,\n tabindex: this.computedTabindex\n },\n on: cache(this, 'today', { click: this.setToday })\n }) : null\n ])\n ])\n },\n\n __getNavigation (h, { label, view, key, dir, goTo, boundaries, cls }) {\n return [\n h('div', {\n staticClass: 'row items-center q-date__arrow'\n }, [\n h(QBtn, {\n props: {\n round: true,\n dense: true,\n size: 'sm',\n flat: true,\n icon: this.dateArrow[0],\n tabindex: this.computedTabindex,\n disable: boundaries.prev === false\n },\n on: cache(this, 'go-#' + view, { click () { goTo(-1) } })\n })\n ]),\n\n h('div', {\n staticClass: 'relative-position overflow-hidden flex flex-center' + cls\n }, [\n h('transition', {\n props: {\n name: 'q-transition--jump-' + dir\n }\n }, [\n h('div', { key }, [\n h(QBtn, {\n props: {\n flat: true,\n dense: true,\n noCaps: true,\n label,\n tabindex: this.computedTabindex\n },\n on: cache(this, 'view#' + view, { click: () => { this.view = view } })\n })\n ])\n ])\n ]),\n\n h('div', {\n staticClass: 'row items-center q-date__arrow'\n }, [\n h(QBtn, {\n props: {\n round: true,\n dense: true,\n size: 'sm',\n flat: true,\n icon: this.dateArrow[1],\n tabindex: this.computedTabindex,\n disable: boundaries.next === false\n },\n on: cache(this, 'go+#' + view, { click () { goTo(1) } })\n })\n ])\n ]\n },\n\n __getCalendarView (h) {\n return [\n h('div', {\n key: 'calendar-view',\n staticClass: 'q-date__view q-date__calendar'\n }, [\n h('div', {\n staticClass: 'q-date__navigation row items-center no-wrap'\n }, this.__getNavigation(h, {\n label: this.innerLocale.months[ this.viewModel.month - 1 ],\n view: 'Months',\n key: this.viewModel.month,\n dir: this.monthDirection,\n goTo: this.__goToMonth,\n boundaries: this.navBoundaries.month,\n cls: ' col'\n }).concat(this.__getNavigation(h, {\n label: this.viewModel.year,\n view: 'Years',\n key: this.viewModel.year,\n dir: this.yearDirection,\n goTo: this.__goToYear,\n boundaries: this.navBoundaries.year,\n cls: ''\n }))),\n\n h('div', {\n staticClass: 'q-date__calendar-weekdays row items-center no-wrap'\n }, this.daysOfWeek.map(day => h('div', { staticClass: 'q-date__calendar-item' }, [ h('div', [ day ]) ]))),\n\n h('div', {\n staticClass: 'q-date__calendar-days-container relative-position overflow-hidden'\n }, [\n h('transition', {\n props: {\n name: 'q-transition--slide-' + this.monthDirection\n }\n }, [\n h('div', {\n key: this.viewMonthHash,\n staticClass: 'q-date__calendar-days fit'\n }, this.days.map(day => h('div', { staticClass: day.classes }, [\n day.in === true\n ? h(QBtn, {\n staticClass: day.today === true ? 'q-date__today' : null,\n props: {\n dense: true,\n flat: day.flat,\n unelevated: day.unelevated,\n color: day.color,\n textColor: day.textColor,\n label: day.i,\n tabindex: this.computedTabindex\n },\n on: cache(this, 'day#' + day.i, {\n click: () => { this.__onDayClick(day.i) },\n mouseover: () => { this.__onDayMouseover(day.i) }\n })\n }, day.event !== false ? [\n h('div', { staticClass: 'q-date__event bg-' + day.event })\n ] : null)\n : h('div', [ day.i ])\n ])))\n ])\n ])\n ])\n ]\n },\n\n __getMonthsView (h) {\n const currentYear = this.viewModel.year === this.today.year\n const isDisabled = month => {\n return (\n (this.minNav !== void 0 && this.viewModel.year === this.minNav.year && this.minNav.month > month) ||\n (this.maxNav !== void 0 && this.viewModel.year === this.maxNav.year && this.maxNav.month < month)\n )\n }\n\n const content = this.innerLocale.monthsShort.map((month, i) => {\n const active = this.viewModel.month === i + 1\n\n return h('div', {\n staticClass: 'q-date__months-item flex flex-center'\n }, [\n h(QBtn, {\n staticClass: currentYear === true && this.today.month === i + 1 ? 'q-date__today' : null,\n props: {\n flat: active !== true,\n label: month,\n unelevated: active,\n color: active === true ? this.computedColor : null,\n textColor: active === true ? this.computedTextColor : null,\n tabindex: this.computedTabindex,\n disable: isDisabled(i + 1)\n },\n on: cache(this, 'month#' + i, { click: () => { this.__setMonth(i + 1) } })\n })\n ])\n })\n\n this.yearsInMonthView === true && content.unshift(\n h('div', { staticClass: 'row no-wrap full-width' }, [\n this.__getNavigation(h, {\n label: this.viewModel.year,\n view: 'Years',\n key: this.viewModel.year,\n dir: this.yearDirection,\n goTo: this.__goToYear,\n boundaries: this.navBoundaries.year,\n cls: ' col'\n })\n ])\n )\n\n return h('div', {\n key: 'months-view',\n staticClass: 'q-date__view q-date__months flex flex-center'\n }, content)\n },\n\n __getYearsView (h) {\n const\n start = this.startYear,\n stop = start + yearsInterval,\n years = []\n\n const isDisabled = year => {\n return (\n (this.minNav !== void 0 && this.minNav.year > year) ||\n (this.maxNav !== void 0 && this.maxNav.year < year)\n )\n }\n\n for (let i = start; i <= stop; i++) {\n const active = this.viewModel.year === i\n\n years.push(\n h('div', {\n staticClass: 'q-date__years-item flex flex-center'\n }, [\n h(QBtn, {\n key: 'yr' + i,\n staticClass: this.today.year === i ? 'q-date__today' : null,\n props: {\n flat: !active,\n label: i,\n dense: true,\n unelevated: active,\n color: active === true ? this.computedColor : null,\n textColor: active === true ? this.computedTextColor : null,\n tabindex: this.computedTabindex,\n disable: isDisabled(i)\n },\n on: cache(this, 'yr#' + i, { click: () => { this.__setYear(i) } })\n })\n ])\n )\n }\n\n return h('div', {\n staticClass: 'q-date__view q-date__years flex flex-center'\n }, [\n h('div', {\n staticClass: 'col-auto'\n }, [\n h(QBtn, {\n props: {\n round: true,\n dense: true,\n flat: true,\n icon: this.dateArrow[0],\n tabindex: this.computedTabindex,\n disable: isDisabled(start)\n },\n on: cache(this, 'y-', { click: () => { this.startYear -= yearsInterval } })\n })\n ]),\n\n h('div', {\n staticClass: 'q-date__years-content col self-stretch row items-center'\n }, years),\n\n h('div', {\n staticClass: 'col-auto'\n }, [\n h(QBtn, {\n props: {\n round: true,\n dense: true,\n flat: true,\n icon: this.dateArrow[1],\n tabindex: this.computedTabindex,\n disable: isDisabled(stop)\n },\n on: cache(this, 'y+', { click: () => { this.startYear += yearsInterval } })\n })\n ])\n ])\n },\n\n __goToMonth (offset) {\n let year = this.viewModel.year\n let month = Number(this.viewModel.month) + offset\n\n if (month === 13) {\n month = 1\n year++\n }\n else if (month === 0) {\n month = 12\n year--\n }\n\n this.__updateViewModel(year, month)\n this.isImmediate === true && this.__emitImmediately('month')\n },\n\n __goToYear (offset) {\n const year = Number(this.viewModel.year) + offset\n this.__updateViewModel(year, this.viewModel.month)\n this.isImmediate === true && this.__emitImmediately('year')\n },\n\n __setYear (year) {\n this.__updateViewModel(year, this.viewModel.month)\n this.view = this.defaultView === 'Years' ? 'Months' : 'Calendar'\n this.isImmediate === true && this.__emitImmediately('year')\n },\n\n __setMonth (month) {\n this.__updateViewModel(this.viewModel.year, month)\n this.view = 'Calendar'\n this.isImmediate === true && this.__emitImmediately('month')\n },\n\n __getMonthHash (date) {\n return date.year + '/' + pad(date.month)\n },\n\n __toggleDate (date, monthHash) {\n const month = this.daysMap[monthHash]\n const fn = month !== void 0 && month.includes(date.day) === true\n ? this.__removeFromModel\n : this.__addToModel\n\n fn(date)\n },\n\n __getShortDate (date) {\n return { year: date.year, month: date.month, day: date.day }\n },\n\n __onDayClick (dayIndex) {\n const day = { ...this.viewModel, day: dayIndex }\n\n if (this.range === false) {\n this.__toggleDate(day, this.viewMonthHash)\n return\n }\n\n if (this.editRange === void 0) {\n const dayProps = this.days.find(day => day.fill !== true && day.i === dayIndex)\n\n if (dayProps.range !== void 0) {\n this.__removeFromModel({ target: day, from: dayProps.range.from, to: dayProps.range.to })\n return\n }\n\n if (dayProps.selected === true) {\n this.__removeFromModel(day)\n return\n }\n\n const initHash = this.__getDayHash(day)\n\n this.editRange = {\n init: day,\n initHash,\n final: day,\n finalHash: initHash\n }\n\n this.$emit('range-start', this.__getShortDate(day))\n }\n else {\n const\n initHash = this.editRange.initHash,\n finalHash = this.__getDayHash(day),\n payload = initHash <= finalHash\n ? { from: this.editRange.init, to: day }\n : { from: day, to: this.editRange.init }\n\n this.editRange = void 0\n this.__addToModel(initHash === finalHash ? day : { target: day, ...payload })\n\n this.$emit('range-end', {\n from: this.__getShortDate(payload.from),\n to: this.__getShortDate(payload.to)\n })\n }\n },\n\n __onDayMouseover (dayIndex) {\n if (this.editRange !== void 0) {\n const final = { ...this.viewModel, day: dayIndex }\n\n Object.assign(this.editRange, {\n final,\n finalHash: this.__getDayHash(final)\n })\n }\n },\n\n __updateViewModel (year, month, time) {\n if (this.minNav !== void 0 && year <= this.minNav.year) {\n year = this.minNav.year\n if (month < this.minNav.month) {\n month = this.minNav.month\n }\n }\n\n if (this.maxNav !== void 0 && year >= this.maxNav.year) {\n year = this.maxNav.year\n if (month > this.maxNav.month) {\n month = this.maxNav.month\n }\n }\n\n if (time !== void 0) {\n const { hour, minute, second, millisecond, timezoneOffset, timeHash } = time\n Object.assign(this.viewModel, { hour, minute, second, millisecond, timezoneOffset, timeHash })\n }\n\n const newHash = year + '/' + pad(month) + '/01'\n\n if (newHash !== this.viewModel.dateHash) {\n this.monthDirection = (this.viewModel.dateHash < newHash) === (this.$q.lang.rtl !== true) ? 'left' : 'right'\n if (year !== this.viewModel.year) {\n this.yearDirection = this.monthDirection\n }\n\n this.$nextTick(() => {\n this.startYear = year - year % yearsInterval - (year < 0 ? yearsInterval : 0)\n Object.assign(this.viewModel, {\n year,\n month,\n day: 1,\n dateHash: newHash\n })\n })\n }\n },\n\n __emitValue (val, action, date) {\n const value = val !== null && val.length === 1 && this.multiple === false\n ? val[0]\n : val\n\n this.lastEmitValue = value\n\n const { reason, details } = this.__getEmitParams(action, date)\n this.$emit('input', value, reason, details)\n },\n\n __emitImmediately (reason) {\n const date = this.daysModel[0] !== void 0 && this.daysModel[0].dateHash !== null\n ? { ...this.daysModel[0] }\n : { ...this.viewModel } // inherit day, hours, minutes, milliseconds...\n\n // nextTick required because of animation delay in viewModel\n this.$nextTick(() => {\n date.year = this.viewModel.year\n date.month = this.viewModel.month\n\n const maxDay = this.calendar !== 'persian'\n ? (new Date(date.year, date.month, 0)).getDate()\n : jalaaliMonthLength(date.year, date.month)\n\n date.day = Math.min(Math.max(1, date.day), maxDay)\n\n const value = this.__encodeEntry(date)\n this.lastEmitValue = value\n\n const { details } = this.__getEmitParams('', date)\n this.$emit('input', value, reason, details)\n })\n },\n\n __getEmitParams (action, date) {\n return date.from !== void 0\n ? {\n reason: `${action}-range`,\n details: {\n ...this.__getShortDate(date.target),\n from: this.__getShortDate(date.from),\n to: this.__getShortDate(date.to),\n changed: true // TODO remove in v2; legacy purposes\n }\n }\n : {\n reason: `${action}-day`,\n details: {\n ...this.__getShortDate(date),\n changed: true // TODO remove in v2; legacy purposes\n }\n }\n },\n\n __encodeEntry (date, mask, locale) {\n return date.from !== void 0\n ? { from: this.encodeObjectFn(date.from, mask, locale), to: this.encodeObjectFn(date.to, mask, locale) }\n : this.encodeObjectFn(date, mask, locale)\n },\n\n __addToModel (date) {\n let value\n\n if (this.multiple === true) {\n if (date.from !== void 0) {\n // we also need to filter out intersections\n\n const fromHash = this.__getDayHash(date.from)\n const toHash = this.__getDayHash(date.to)\n\n const days = this.daysModel\n .filter(day => day.dateHash < fromHash || day.dateHash > toHash)\n\n const ranges = this.rangeModel\n .filter(({ from, to }) => to.dateHash < fromHash || from.dateHash > toHash)\n\n value = days.concat(ranges).concat(date).map(entry => this.__encodeEntry(entry))\n }\n else {\n const model = this.normalizedModel.slice()\n model.push(this.__encodeEntry(date))\n value = model\n }\n }\n else {\n value = this.__encodeEntry(date)\n }\n\n this.__emitValue(value, 'add', date)\n },\n\n __removeFromModel (date) {\n if (this.noUnset === true) {\n return\n }\n\n let model = null\n\n if (this.multiple === true && Array.isArray(this.value) === true) {\n const val = this.__encodeEntry(date)\n\n if (date.from !== void 0) {\n model = this.value.filter(\n date => date.from !== void 0\n ? (date.from !== val.from && date.to !== val.to)\n : true\n )\n }\n else {\n model = this.value.filter(date => date !== val)\n }\n\n if (model.length === 0) {\n model = null\n }\n }\n\n this.__emitValue(model, 'remove', date)\n },\n\n __updateValue (mask, locale, reason) {\n const model = this.daysModel\n .concat(this.rangeModel)\n .map(entry => this.__encodeEntry(entry, mask, locale))\n .filter(entry => {\n return entry.from !== void 0\n ? entry.from.dateHash !== null && entry.to.dateHash !== null\n : entry.dateHash !== null\n })\n\n this.$emit('input', (this.multiple === true ? model : model[0]) || null, reason)\n }\n },\n\n render (h) {\n const content = [\n h('div', {\n staticClass: 'q-date__content col relative-position'\n }, [\n h('transition', {\n props: { name: 'q-transition--fade' }\n }, [\n this[`__get${this.view}View`](h)\n ])\n ])\n ]\n\n const def = slot(this, 'default')\n def !== void 0 && content.push(\n h('div', { staticClass: 'q-date__actions' }, def)\n )\n\n if (this.name !== void 0 && this.disable !== true) {\n this.__injectFormInput(content, 'push')\n }\n\n return h('div', {\n class: this.classes,\n attrs: this.attrs,\n on: { ...this.qListeners }\n }, [\n this.__getHeader(h),\n\n h('div', {\n staticClass: 'q-date__main col column',\n attrs: { tabindex: -1 },\n ref: 'blurTarget'\n }, content)\n ])\n }\n})\n","import QDate from './QDate.js'\n\nexport {\n QDate\n}\n","import History from '../history.js'\n\nexport default {\n methods: {\n __addHistory () {\n this.__historyEntry = {\n condition: () => { return this.hideOnRouteChange === true },\n handler: this.hide\n }\n History.add(this.__historyEntry)\n },\n\n __removeHistory () {\n if (this.__historyEntry !== void 0) {\n History.remove(this.__historyEntry)\n this.__historyEntry = void 0\n }\n }\n },\n\n beforeDestroy () {\n this.showing === true && this.__removeHistory()\n }\n}\n","import { getEventPath, listenOpts, stopAndPrevent } from '../utils/event.js'\nimport { hasScrollbar, getScrollPosition, getHorizontalScrollPosition } from '../utils/scroll.js'\nimport { client } from '../plugins/Platform.js'\n\nlet\n registered = 0,\n scrollPositionX,\n scrollPositionY,\n maxScrollTop,\n vpPendingUpdate = false,\n bodyLeft,\n bodyTop,\n href,\n closeTimer\n\nfunction onWheel (e) {\n if (shouldPreventScroll(e)) {\n stopAndPrevent(e)\n }\n}\n\nfunction shouldPreventScroll (e) {\n if (e.target === document.body || e.target.classList.contains('q-layout__backdrop')) {\n return true\n }\n\n const\n path = getEventPath(e),\n shift = e.shiftKey && !e.deltaX,\n scrollY = !shift && Math.abs(e.deltaX) <= Math.abs(e.deltaY),\n delta = shift || scrollY ? e.deltaY : e.deltaX\n\n for (let index = 0; index < path.length; index++) {\n const el = path[index]\n\n if (hasScrollbar(el, scrollY)) {\n return scrollY\n ? (\n delta < 0 && el.scrollTop === 0\n ? true\n : delta > 0 && el.scrollTop + el.clientHeight === el.scrollHeight\n )\n : (\n delta < 0 && el.scrollLeft === 0\n ? true\n : delta > 0 && el.scrollLeft + el.clientWidth === el.scrollWidth\n )\n }\n }\n\n return true\n}\n\nfunction onAppleScroll (e) {\n if (e.target === document) {\n // required, otherwise iOS blocks further scrolling\n // until the mobile scrollbar dissappears\n document.scrollingElement.scrollTop = document.scrollingElement.scrollTop // eslint-disable-line\n }\n}\n\nfunction onAppleResize (evt) {\n if (vpPendingUpdate === true) {\n return\n }\n\n vpPendingUpdate = true\n\n requestAnimationFrame(() => {\n vpPendingUpdate = false\n\n const\n { height } = evt.target,\n { clientHeight, scrollTop } = document.scrollingElement\n\n if (maxScrollTop === void 0 || height !== window.innerHeight) {\n maxScrollTop = clientHeight - height\n document.scrollingElement.scrollTop = scrollTop\n }\n\n if (scrollTop > maxScrollTop) {\n document.scrollingElement.scrollTop -= Math.ceil((scrollTop - maxScrollTop) / 8)\n }\n })\n}\n\nfunction apply (action) {\n const\n body = document.body,\n hasViewport = window.visualViewport !== void 0\n\n if (action === 'add') {\n const overflowY = window.getComputedStyle(body).overflowY\n\n scrollPositionX = getHorizontalScrollPosition(window)\n scrollPositionY = getScrollPosition(window)\n bodyLeft = body.style.left\n bodyTop = body.style.top\n\n href = window.location.href\n\n body.style.left = `-${scrollPositionX}px`\n body.style.top = `-${scrollPositionY}px`\n if (overflowY !== 'hidden' && (overflowY === 'scroll' || body.scrollHeight > window.innerHeight)) {\n body.classList.add('q-body--force-scrollbar')\n }\n\n body.classList.add('q-body--prevent-scroll')\n document.qScrollPrevented = true\n\n if (client.is.ios === true) {\n if (hasViewport === true) {\n window.scrollTo(0, 0)\n window.visualViewport.addEventListener('resize', onAppleResize, listenOpts.passiveCapture)\n window.visualViewport.addEventListener('scroll', onAppleResize, listenOpts.passiveCapture)\n window.scrollTo(0, 0)\n }\n else {\n window.addEventListener('scroll', onAppleScroll, listenOpts.passiveCapture)\n }\n }\n }\n\n if (client.is.desktop === true && client.is.mac === true) {\n // ref. https://developers.google.com/web/updates/2017/01/scrolling-intervention\n window[`${action}EventListener`]('wheel', onWheel, listenOpts.notPassive)\n }\n\n if (action === 'remove') {\n if (client.is.ios === true) {\n if (hasViewport === true) {\n window.visualViewport.removeEventListener('resize', onAppleResize, listenOpts.passiveCapture)\n window.visualViewport.removeEventListener('scroll', onAppleResize, listenOpts.passiveCapture)\n }\n else {\n window.removeEventListener('scroll', onAppleScroll, listenOpts.passiveCapture)\n }\n }\n\n body.classList.remove('q-body--prevent-scroll')\n body.classList.remove('q-body--force-scrollbar')\n document.qScrollPrevented = false\n\n body.style.left = bodyLeft\n body.style.top = bodyTop\n\n // scroll back only if route has not changed\n if (window.location.href === href) {\n window.scrollTo(scrollPositionX, scrollPositionY)\n }\n\n maxScrollTop = void 0\n }\n}\n\nexport function preventScroll (state) {\n let action = 'add'\n\n if (state === true) {\n registered++\n\n if (closeTimer !== void 0) {\n clearTimeout(closeTimer)\n closeTimer = void 0\n return\n }\n\n if (registered > 1) {\n return\n }\n }\n else {\n if (registered === 0) {\n return\n }\n\n registered--\n\n if (registered > 0) {\n return\n }\n\n action = 'remove'\n\n if (client.is.ios === true && client.is.nativeMobile === true) {\n clearTimeout(closeTimer)\n\n closeTimer = setTimeout(() => {\n apply(action)\n closeTimer = void 0\n }, 100)\n return\n }\n }\n\n apply(action)\n}\n\nexport default {\n methods: {\n __preventScroll (state) {\n if (\n state !== this.preventedScroll &&\n (this.preventedScroll !== void 0 || state === true)\n ) {\n this.preventedScroll = state\n preventScroll(state)\n }\n }\n }\n}\n","import Vue from 'vue'\n\nimport HistoryMixin from '../../mixins/history.js'\nimport TimeoutMixin from '../../mixins/timeout.js'\nimport ModelToggleMixin from '../../mixins/model-toggle.js'\nimport PortalMixin from '../../mixins/portal.js'\nimport PreventScrollMixin from '../../mixins/prevent-scroll.js'\nimport AttrsMixin, { ariaHidden } from '../../mixins/attrs.js'\nimport TransitionMixin from '../../mixins/transition.js'\n\nimport { childHasFocus } from '../../utils/dom.js'\nimport EscapeKey from '../../utils/private/escape-key.js'\nimport { slot } from '../../utils/private/slot.js'\nimport { create, stop } from '../../utils/event.js'\nimport cache from '../../utils/private/cache.js'\nimport { addFocusFn } from '../../utils/private/focus-manager.js'\nimport { client } from '../../plugins/Platform.js'\n\nlet maximizedModals = 0\n\nconst positionClass = {\n standard: 'fixed-full flex-center',\n top: 'fixed-top justify-center',\n bottom: 'fixed-bottom justify-center',\n right: 'fixed-right items-center',\n left: 'fixed-left items-center'\n}\n\nconst defaultTransitions = {\n standard: ['scale', 'scale'],\n top: ['slide-down', 'slide-up'],\n bottom: ['slide-up', 'slide-down'],\n right: ['slide-left', 'slide-right'],\n left: ['slide-right', 'slide-left']\n}\n\nconst backdropAttrs = {\n ...ariaHidden,\n tabindex: -1\n}\n\nexport default Vue.extend({\n name: 'QDialog',\n\n mixins: [\n AttrsMixin,\n TransitionMixin,\n HistoryMixin,\n TimeoutMixin,\n ModelToggleMixin,\n PortalMixin,\n PreventScrollMixin\n ],\n\n props: {\n persistent: Boolean,\n autoClose: Boolean,\n allowFocusOutside: Boolean,\n\n noEscDismiss: Boolean,\n noBackdropDismiss: Boolean,\n noRouteDismiss: Boolean,\n noRefocus: Boolean,\n noFocus: Boolean,\n noShake: Boolean,\n\n seamless: Boolean,\n\n maximized: Boolean,\n fullWidth: Boolean,\n fullHeight: Boolean,\n\n square: Boolean,\n\n position: {\n type: String,\n default: 'standard',\n validator: val => val === 'standard' ||\n ['top', 'bottom', 'left', 'right'].includes(val)\n },\n\n transitionShow: String,\n transitionHide: String\n },\n\n data () {\n return {\n animating: false\n }\n },\n\n watch: {\n maximized (state) {\n this.showing === true && this.__updateMaximized(state)\n },\n\n useBackdrop (v) {\n this.__preventScroll(v)\n this.__preventFocusout(v)\n }\n },\n\n computed: {\n classes () {\n return `q-dialog__inner--${this.maximized === true ? 'maximized' : 'minimized'} ` +\n `q-dialog__inner--${this.position} ${positionClass[this.position]}` +\n (this.animating === true ? ' q-dialog__inner--animating' : '') +\n (this.fullWidth === true ? ' q-dialog__inner--fullwidth' : '') +\n (this.fullHeight === true ? ' q-dialog__inner--fullheight' : '') +\n (this.square === true ? ' q-dialog__inner--square' : '')\n },\n\n defaultTransitionShow () {\n return defaultTransitions[this.position][0]\n },\n\n defaultTransitionHide () {\n return defaultTransitions[this.position][1]\n },\n\n useBackdrop () {\n return this.showing === true && this.seamless !== true\n },\n\n hideOnRouteChange () {\n return this.persistent !== true &&\n this.noRouteDismiss !== true &&\n this.seamless !== true\n },\n\n onEvents () {\n const on = {\n ...this.qListeners,\n // stop propagating these events from children\n input: stop,\n 'popup-show': stop,\n 'popup-hide': stop\n }\n\n if (this.autoClose === true) {\n on.click = this.__onAutoClose\n }\n\n return on\n },\n\n attrs () {\n return {\n role: 'dialog',\n 'aria-modal': this.useBackdrop === true ? 'true' : 'false',\n ...this.qAttrs\n }\n }\n },\n\n methods: {\n focus (selector) {\n addFocusFn(() => {\n let node = this.__getInnerNode()\n\n if (node === void 0 || node.contains(document.activeElement) === true) {\n return\n }\n\n node = (selector !== '' ? node.querySelector(selector) : null) ||\n node.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]') ||\n node.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]') ||\n node.querySelector('[autofocus], [data-autofocus]') ||\n node\n node.focus({ preventScroll: true })\n })\n },\n\n shake (focusTarget) {\n if (focusTarget && typeof focusTarget.focus === 'function') {\n focusTarget.focus({ preventScroll: true })\n }\n else {\n this.focus()\n }\n\n this.$emit('shake')\n\n const node = this.__getInnerNode()\n\n if (node !== void 0) {\n node.classList.remove('q-animate--scale')\n node.classList.add('q-animate--scale')\n clearTimeout(this.shakeTimeout)\n this.shakeTimeout = setTimeout(() => {\n node.classList.remove('q-animate--scale')\n }, 170)\n }\n },\n\n __getInnerNode () {\n return this.__portal !== void 0 && this.__portal.$refs !== void 0\n ? this.__portal.$refs.inner\n : void 0\n },\n\n __show (evt) {\n this.__addHistory()\n\n // IE can have null document.activeElement\n this.__refocusTarget = client.is.mobile !== true && this.noRefocus === false && document.activeElement !== null\n ? document.activeElement\n : void 0\n\n this.$el.dispatchEvent(create('popup-show', { bubbles: true }))\n this.__updateMaximized(this.maximized)\n\n EscapeKey.register(this, escEvt => {\n if (this.seamless !== true) {\n if (this.persistent === true || this.noEscDismiss === true) {\n this.maximized !== true && this.noShake !== true && this.shake()\n }\n else {\n this.$emit('escape-key')\n this.hide(escEvt)\n }\n }\n })\n\n this.__showPortal()\n this.animating = true\n\n if (this.noFocus !== true) {\n // IE can have null document.activeElement\n document.activeElement !== null && document.activeElement.blur()\n this.__registerTick(this.focus)\n }\n else {\n this.__removeTick()\n }\n\n // should __removeTimeout() if this gets removed\n this.__registerTimeout(() => {\n if (this.$q.platform.is.ios === true) {\n if (this.seamless !== true && document.activeElement) {\n const\n { top, bottom } = document.activeElement.getBoundingClientRect(),\n { innerHeight } = window,\n height = window.visualViewport !== void 0\n ? window.visualViewport.height\n : innerHeight\n\n if (top > 0 && bottom > height / 2) {\n document.scrollingElement.scrollTop = Math.min(\n document.scrollingElement.scrollHeight - height,\n bottom >= innerHeight\n ? Infinity\n : Math.ceil(document.scrollingElement.scrollTop + bottom - height / 2)\n )\n }\n\n document.activeElement.scrollIntoView()\n }\n\n // required in order to avoid the \"double-tap needed\" issue\n this.__portal.$el.click()\n }\n\n this.animating = false\n this.__showPortal(true) // done showing\n this.$emit('show', evt)\n }, 300)\n },\n\n __hide (evt) {\n this.__removeTick()\n this.__removeHistory()\n this.__cleanup(true)\n this.__hidePortal()\n this.animating = true\n\n // check null for IE\n if (this.__refocusTarget !== void 0 && this.__refocusTarget !== null) {\n ((evt && evt.type.indexOf('key') === 0\n ? this.__refocusTarget.closest('[tabindex]:not([tabindex^=\"-\"])')\n : void 0\n ) || this.__refocusTarget).focus()\n this.__refocusTarget = void 0\n }\n\n this.$el.dispatchEvent(create('popup-hide', { bubbles: true }))\n\n // should __removeTimeout() if this gets removed\n this.__registerTimeout(() => {\n this.__hidePortal(true) // done hiding, now destroy\n this.animating = false\n this.$emit('hide', evt)\n }, 300)\n },\n\n __cleanup (hiding) {\n clearTimeout(this.shakeTimeout)\n\n if (hiding === true || this.showing === true) {\n EscapeKey.pop(this)\n this.__updateMaximized(false)\n\n if (this.seamless !== true) {\n this.__preventScroll(false)\n this.__preventFocusout(false)\n }\n }\n },\n\n __updateMaximized (active) {\n if (active === true) {\n if (this.isMaximized !== true) {\n maximizedModals < 1 && document.body.classList.add('q-body--dialog')\n maximizedModals++\n\n this.isMaximized = true\n }\n }\n else if (this.isMaximized === true) {\n if (maximizedModals < 2) {\n document.body.classList.remove('q-body--dialog')\n }\n\n maximizedModals--\n this.isMaximized = false\n }\n },\n\n __preventFocusout (state) {\n if (this.$q.platform.is.desktop === true) {\n const action = `${state === true ? 'add' : 'remove'}EventListener`\n document.body[action]('focusin', this.__onFocusChange)\n }\n },\n\n __onAutoClose (e) {\n this.hide(e)\n this.qListeners.click !== void 0 && this.$emit('click', e)\n },\n\n __onBackdropClick (e) {\n if (this.persistent !== true && this.noBackdropDismiss !== true) {\n this.hide(e)\n }\n else if (this.noShake !== true) {\n this.shake(e.relatedTarget)\n }\n },\n\n __onFocusChange (e) {\n // the focus is not in a vue child component\n if (\n this.allowFocusOutside !== true &&\n this.__portalIsAccessible === true &&\n childHasFocus(this.__portal.$el, e.target) !== true\n ) {\n this.focus('[tabindex]:not([tabindex=\"-1\"])')\n }\n },\n\n __renderPortal (h) {\n return h('div', {\n staticClass: `q-dialog fullscreen no-pointer-events q-dialog--${this.useBackdrop === true ? 'modal' : 'seamless'}`,\n class: this.contentClass,\n style: this.contentStyle,\n attrs: this.attrs\n }, [\n h('transition', {\n props: { name: 'q-transition--fade' }\n }, this.useBackdrop === true ? [\n h('div', {\n staticClass: 'q-dialog__backdrop fixed-full',\n attrs: backdropAttrs,\n on: cache(this, 'bkdrop', {\n [ this.backdropEvt ]: this.__onBackdropClick\n })\n })\n ] : null),\n\n h('transition', {\n props: { ...this.transitionProps }\n }, [\n this.showing === true ? h('div', {\n ref: 'inner',\n staticClass: 'q-dialog__inner flex no-pointer-events',\n class: this.classes,\n attrs: { tabindex: -1 },\n on: this.onEvents\n }, slot(this, 'default')) : null\n ])\n ])\n }\n },\n\n created () {\n this.__useTick('__registerTick', '__removeTick')\n this.__useTimeout('__registerTimeout')\n this.backdropEvt = this.$q.platform.is.ios === true || this.$q.platform.is.safari ? 'click' : 'focusin'\n },\n\n mounted () {\n this.__processModelChange(this.value)\n },\n\n beforeDestroy () {\n this.__cleanup()\n this.__refocusTarget = void 0\n }\n})\n","import QDialog from './QDialog.js'\n\nexport {\n QDialog\n}\n","import Vue from 'vue'\n\nimport HistoryMixin from '../../mixins/history.js'\nimport TimeoutMixin from '../../mixins/timeout.js'\nimport ModelToggleMixin from '../../mixins/model-toggle.js'\nimport PreventScrollMixin from '../../mixins/prevent-scroll.js'\nimport DarkMixin from '../../mixins/dark.js'\n\nimport TouchPan from '../../directives/TouchPan.js'\n\nimport { between } from '../../utils/format.js'\nimport { slot } from '../../utils/private/slot.js'\nimport cache from '../../utils/private/cache.js'\nimport { ariaHidden } from '../../mixins/attrs'\n\nconst duration = 150\n\nconst mouseEvents = [\n 'mouseover', 'mouseout', 'mouseenter', 'mouseleave'\n]\n\nexport default Vue.extend({\n name: 'QDrawer',\n\n inject: {\n layout: {\n default () {\n console.error('QDrawer needs to be child of QLayout')\n }\n }\n },\n\n mixins: [ DarkMixin, HistoryMixin, TimeoutMixin, ModelToggleMixin, PreventScrollMixin ],\n\n directives: {\n TouchPan\n },\n\n props: {\n side: {\n type: String,\n default: 'left',\n validator: v => ['left', 'right'].includes(v)\n },\n\n width: {\n type: Number,\n default: 300\n },\n\n mini: Boolean,\n miniToOverlay: Boolean,\n miniWidth: {\n type: Number,\n default: 57\n },\n\n breakpoint: {\n type: Number,\n default: 1023\n },\n showIfAbove: Boolean,\n\n behavior: {\n type: String,\n validator: v => ['default', 'desktop', 'mobile'].includes(v),\n default: 'default'\n },\n\n bordered: Boolean,\n elevated: Boolean,\n contentStyle: [String, Object, Array],\n contentClass: [String, Object, Array],\n\n overlay: Boolean,\n persistent: Boolean,\n noSwipeOpen: Boolean,\n noSwipeClose: Boolean,\n noSwipeBackdrop: Boolean\n },\n\n data () {\n const belowBreakpoint = (\n this.behavior === 'mobile' ||\n (this.behavior !== 'desktop' && this.layout.totalWidth <= this.breakpoint)\n )\n\n return {\n belowBreakpoint,\n showing: this.showIfAbove === true && belowBreakpoint === false\n ? true\n : this.value === true\n }\n },\n\n watch: {\n belowBreakpoint (val) {\n if (val === true) { // from lg to xs\n this.lastDesktopState = this.showing\n this.showing === true && this.hide(false)\n }\n else if (\n this.overlay === false &&\n this.behavior !== 'mobile' &&\n this.lastDesktopState !== false\n ) { // from xs to lg\n if (this.showing === true) {\n this.__applyPosition(0)\n this.__applyBackdrop(0)\n this.__cleanup()\n }\n else {\n this.show(false)\n }\n }\n },\n\n 'layout.totalWidth' () {\n if (this.layout.container === true || document.qScrollPrevented !== true) {\n this.__updateBelowBreakpoint()\n }\n },\n\n side (newSide, oldSide) {\n if (this.layout.instances[oldSide] === this) {\n this.layout.instances[oldSide] = void 0\n this.layout[oldSide].space = false\n this.layout[oldSide].offset = 0\n }\n\n this.layout.instances[newSide] = this\n this.layout[newSide].size = this.size\n this.layout[newSide].space = this.onLayout\n this.layout[newSide].offset = this.offset\n },\n\n behavior () {\n this.__updateBelowBreakpoint()\n },\n\n breakpoint () {\n this.__updateBelowBreakpoint()\n },\n\n 'layout.container' (val) {\n this.showing === true && this.__preventScroll(val !== true)\n val === true && this.__updateBelowBreakpoint()\n },\n\n 'layout.scrollbarWidth' () {\n this.__applyPosition(this.showing === true ? 0 : void 0)\n },\n\n offset (val) {\n this.__update('offset', val)\n },\n\n onLayout (val) {\n this.$emit('on-layout', val)\n this.__update('space', val)\n },\n\n rightSide () {\n this.__applyPosition()\n },\n\n size (val) {\n this.__applyPosition()\n this.__updateSizeOnLayout(this.miniToOverlay, val)\n },\n\n miniToOverlay (val) {\n this.__updateSizeOnLayout(val, this.size)\n },\n\n '$q.lang.rtl' () {\n this.__applyPosition()\n },\n\n mini () {\n if (this.value === true) {\n this.__animateMini()\n this.layout.__animate()\n }\n },\n\n isMini (val) {\n this.$emit('mini-state', val)\n }\n },\n\n computed: {\n rightSide () {\n return this.side === 'right'\n },\n\n otherSide () {\n return this.rightSide === true ? 'left' : 'right'\n },\n\n offset () {\n return this.showing === true && this.belowBreakpoint === false && this.overlay === false\n ? (this.miniToOverlay === true ? this.miniWidth : this.size)\n : 0\n },\n\n size () {\n return this.isMini === true\n ? this.miniWidth\n : this.width\n },\n\n fixed () {\n return this.overlay === true ||\n this.miniToOverlay === true ||\n this.layout.view.indexOf(this.rightSide ? 'R' : 'L') > -1 ||\n (this.$q.platform.is.ios && this.layout.container === true)\n },\n\n onLayout () {\n return this.showing === true && this.belowBreakpoint === false && this.overlay === false\n },\n\n onScreenOverlay () {\n return this.showing === true && this.belowBreakpoint === false && this.overlay === true\n },\n\n backdropClass () {\n return this.showing === false ? 'hidden' : null\n },\n\n headerSlot () {\n return this.rightSide === true\n ? this.layout.rows.top[2] === 'r'\n : this.layout.rows.top[0] === 'l'\n },\n\n footerSlot () {\n return this.rightSide === true\n ? this.layout.rows.bottom[2] === 'r'\n : this.layout.rows.bottom[0] === 'l'\n },\n\n aboveStyle () {\n const css = {}\n\n if (this.layout.header.space === true && this.headerSlot === false) {\n if (this.fixed === true) {\n css.top = `${this.layout.header.offset}px`\n }\n else if (this.layout.header.space === true) {\n css.top = `${this.layout.header.size}px`\n }\n }\n\n if (this.layout.footer.space === true && this.footerSlot === false) {\n if (this.fixed === true) {\n css.bottom = `${this.layout.footer.offset}px`\n }\n else if (this.layout.footer.space === true) {\n css.bottom = `${this.layout.footer.size}px`\n }\n }\n\n return css\n },\n\n style () {\n const style = { width: `${this.size}px` }\n return this.belowBreakpoint === true\n ? style\n : Object.assign(style, this.aboveStyle)\n },\n\n classes () {\n return `q-drawer--${this.side}` +\n (this.bordered === true ? ' q-drawer--bordered' : '') +\n (this.isDark === true ? ' q-drawer--dark q-dark' : '') +\n (this.showing !== true ? ' q-layout--prevent-focus' : '') +\n (\n this.belowBreakpoint === true\n ? ' fixed q-drawer--on-top q-drawer--mobile q-drawer--top-padding'\n : ` q-drawer--${this.isMini === true ? 'mini' : 'standard'}` +\n (this.fixed === true || this.onLayout !== true ? ' fixed' : '') +\n (this.overlay === true || this.miniToOverlay === true ? ' q-drawer--on-top' : '') +\n (this.headerSlot === true ? ' q-drawer--top-padding' : '')\n )\n },\n\n stateDirection () {\n return (this.$q.lang.rtl === true ? -1 : 1) * (this.rightSide === true ? 1 : -1)\n },\n\n isMini () {\n return this.mini === true && this.belowBreakpoint !== true\n },\n\n onNativeEvents () {\n if (this.belowBreakpoint !== true) {\n const evt = {\n '!click': e => { this.$emit('click', e) }\n }\n\n mouseEvents.forEach(name => {\n evt[name] = e => {\n this.qListeners[name] !== void 0 && this.$emit(name, e)\n }\n })\n\n return evt\n }\n },\n\n hideOnRouteChange () {\n return this.persistent !== true &&\n (this.belowBreakpoint === true || this.onScreenOverlay === true)\n },\n\n openDirective () {\n const dir = this.$q.lang.rtl === true ? this.side : this.otherSide\n\n return [{\n name: 'touch-pan',\n value: this.__openByTouch,\n modifiers: {\n [ dir ]: true,\n mouse: true\n }\n }]\n },\n\n contentCloseDirective () {\n if (this.noSwipeClose !== true) {\n const dir = this.$q.lang.rtl === true ? this.otherSide : this.side\n\n return [{\n name: 'touch-pan',\n value: this.__closeByTouch,\n modifiers: {\n [ dir ]: true,\n mouse: true\n }\n }]\n }\n },\n\n backdropCloseDirective () {\n if (this.noSwipeBackdrop !== true) {\n const dir = this.$q.lang.rtl === true ? this.otherSide : this.side\n\n return [{\n name: 'touch-pan',\n value: this.__closeByTouch,\n modifiers: {\n [ dir ]: true,\n mouse: true,\n mouseAllDir: true\n }\n }]\n }\n }\n },\n\n methods: {\n __applyPosition (position) {\n if (position === void 0) {\n this.$nextTick(() => {\n position = this.showing === true ? 0 : this.size\n this.__applyPosition(this.stateDirection * position)\n })\n }\n else if (this.$refs.content !== void 0) {\n if (\n this.layout.container === true &&\n this.rightSide === true &&\n (this.belowBreakpoint === true || Math.abs(position) === this.size)\n ) {\n position += this.stateDirection * this.layout.scrollbarWidth\n }\n\n if (this.__lastPosition !== position) {\n this.$refs.content.style.transform = `translateX(${position}px)`\n this.__lastPosition = position\n }\n }\n },\n\n __applyBackdrop (x, retry) {\n if (this.$refs.backdrop !== void 0) {\n this.$refs.backdrop.style.backgroundColor =\n this.lastBackdropBg = `rgba(0,0,0,${x * 0.4})`\n }\n else {\n // rendered nodes might not have\n // picked up this.showing change yet,\n // so we need one retry\n retry !== true && this.$nextTick(() => {\n this.__applyBackdrop(x, true)\n })\n }\n },\n\n __setBackdropVisible (v) {\n if (this.$refs.backdrop !== void 0) {\n this.$refs.backdrop.classList[v === true ? 'remove' : 'add']('hidden')\n }\n },\n\n __setScrollable (v) {\n const action = v === true\n ? 'remove'\n : (this.layout.container !== true ? 'add' : '')\n\n action !== '' && document.body.classList[action]('q-body--drawer-toggle')\n },\n\n __animateMini () {\n if (this.timerMini !== void 0) {\n clearTimeout(this.timerMini)\n }\n else if (this.$el !== void 0) {\n this.$el.classList.add('q-drawer--mini-animate')\n }\n this.timerMini = setTimeout(() => {\n this.$el !== void 0 && this.$el.classList.remove('q-drawer--mini-animate')\n this.timerMini = void 0\n }, 150)\n },\n\n __openByTouch (evt) {\n if (this.showing !== false) {\n // some browsers might capture and trigger this\n // even if Drawer has just been opened (but animation is still pending)\n return\n }\n\n const\n width = this.size,\n position = between(evt.distance.x, 0, width)\n\n if (evt.isFinal === true) {\n const\n el = this.$refs.content,\n opened = position >= Math.min(75, width)\n\n el.classList.remove('no-transition')\n\n if (opened === true) {\n this.show()\n }\n else {\n this.layout.__animate()\n this.__applyBackdrop(0)\n this.__applyPosition(this.stateDirection * width)\n el.classList.remove('q-drawer--delimiter')\n el.classList.add('q-layout--prevent-focus')\n this.__setBackdropVisible(false)\n }\n\n return\n }\n\n this.__applyPosition(\n (this.$q.lang.rtl === true ? this.rightSide !== true : this.rightSide)\n ? Math.max(width - position, 0)\n : Math.min(0, position - width)\n )\n this.__applyBackdrop(\n between(position / width, 0, 1)\n )\n\n if (evt.isFirst === true) {\n const el = this.$refs.content\n el.classList.add('no-transition')\n el.classList.add('q-drawer--delimiter')\n el.classList.remove('q-layout--prevent-focus')\n this.__setBackdropVisible(true)\n }\n },\n\n __closeByTouch (evt) {\n if (this.showing !== true) {\n // some browsers might capture and trigger this\n // even if Drawer has just been closed (but animation is still pending)\n return\n }\n\n const\n width = this.size,\n dir = evt.direction === this.side,\n position = (this.$q.lang.rtl === true ? dir !== true : dir)\n ? between(evt.distance.x, 0, width)\n : 0\n\n if (evt.isFinal === true) {\n const opened = Math.abs(position) < Math.min(75, width)\n this.$refs.content.classList.remove('no-transition')\n\n if (opened === true) {\n this.layout.__animate()\n this.__applyBackdrop(1)\n this.__applyPosition(0)\n }\n else {\n this.hide()\n }\n\n return\n }\n\n this.__applyPosition(this.stateDirection * position)\n this.__applyBackdrop(between(1 - position / width, 0, 1))\n\n if (evt.isFirst === true) {\n this.$refs.content.classList.add('no-transition')\n }\n },\n\n __show (evt, noEvent) {\n this.__addHistory()\n\n this.__setBackdropVisible(true)\n evt !== false && this.layout.__animate()\n this.__applyPosition(0)\n\n if (this.belowBreakpoint === true) {\n const otherSide = this.layout.instances[this.otherSide]\n if (otherSide !== void 0 && otherSide.belowBreakpoint === true) {\n otherSide.hide(false)\n }\n\n this.__applyBackdrop(1)\n this.layout.container !== true && this.__preventScroll(true)\n }\n else {\n this.__applyBackdrop(0)\n evt !== false && this.__setScrollable(false)\n }\n\n this.__registerTimeout(() => {\n evt !== false && this.__setScrollable(true)\n noEvent !== true && this.$emit('show', evt)\n }, duration)\n },\n\n __hide (evt, noEvent) {\n this.__removeHistory()\n\n evt !== false && this.layout.__animate()\n\n this.__applyBackdrop(0)\n this.__applyPosition(this.stateDirection * this.size)\n this.__setBackdropVisible(false)\n\n this.__cleanup()\n\n if (noEvent !== true) {\n this.__registerTimeout(() => { this.$emit('hide', evt) }, duration)\n }\n else {\n this.__removeTimeout()\n }\n },\n\n __cleanup () {\n this.__preventScroll(false)\n this.__setScrollable(true)\n },\n\n __update (prop, val) {\n if (this.layout[this.side][prop] !== val) {\n this.layout[this.side][prop] = val\n }\n },\n\n __updateLocal (prop, val) {\n if (this[prop] !== val) {\n this[prop] = val\n }\n },\n\n __updateSizeOnLayout (miniToOverlay, size) {\n this.__update('size', miniToOverlay === true ? this.miniWidth : size)\n },\n\n __updateBelowBreakpoint () {\n this.__updateLocal('belowBreakpoint', (\n this.behavior === 'mobile' ||\n (this.behavior !== 'desktop' && this.layout.totalWidth <= this.breakpoint)\n ))\n }\n },\n\n created () {\n this.__useTimeout('__registerTimeout', '__removeTimeout')\n\n this.layout.instances[this.side] = this\n this.__updateSizeOnLayout(this.miniToOverlay, this.size)\n this.__update('space', this.onLayout)\n this.__update('offset', this.offset)\n\n if (\n this.showIfAbove === true &&\n this.value !== true &&\n this.showing === true &&\n this.qListeners.input !== void 0\n ) {\n this.$emit('input', true)\n }\n },\n\n mounted () {\n this.$emit('on-layout', this.onLayout)\n this.$emit('mini-state', this.isMini)\n\n this.lastDesktopState = this.showIfAbove === true\n\n const fn = () => {\n const action = this.showing === true ? 'show' : 'hide'\n this[`__${action}`](false, true)\n }\n\n if (this.layout.totalWidth !== 0) {\n // make sure that all computed properties\n // have been updated before calling __show/__hide()\n this.$nextTick(fn)\n return\n }\n\n this.watcher = this.$watch('layout.totalWidth', () => {\n this.watcher()\n this.watcher = void 0\n\n if (this.showing === false && this.showIfAbove === true && this.belowBreakpoint === false) {\n this.show(false)\n }\n else {\n fn()\n }\n })\n },\n\n beforeDestroy () {\n this.watcher !== void 0 && this.watcher()\n clearTimeout(this.timerMini)\n\n this.showing === true && this.__cleanup()\n\n if (this.layout.instances[this.side] === this) {\n this.layout.instances[this.side] = void 0\n this.__update('size', 0)\n this.__update('offset', 0)\n this.__update('space', false)\n }\n },\n\n render (h) {\n const child = []\n\n if (this.belowBreakpoint === true) {\n this.noSwipeOpen !== true && child.push(\n h('div', {\n staticClass: `q-drawer__opener fixed-${this.side}`,\n attrs: ariaHidden,\n directives: this.openDirective\n })\n )\n\n child.push(\n h('div', {\n ref: 'backdrop',\n staticClass: 'fullscreen q-drawer__backdrop',\n class: this.backdropClass,\n attrs: ariaHidden,\n style: this.lastBackdropBg !== void 0\n ? { backgroundColor: this.lastBackdropBg }\n : null,\n on: cache(this, 'bkdrop', { click: this.hide }),\n directives: this.showing === false\n ? void 0\n : this.backdropCloseDirective\n })\n )\n }\n\n const content = [\n h('div', {\n staticClass: 'q-drawer__content fit ' + (this.layout.container === true ? 'overflow-auto' : 'scroll'),\n class: this.contentClass,\n style: this.contentStyle\n }, this.isMini === true && this.$scopedSlots.mini !== void 0\n ? this.$scopedSlots.mini()\n : slot(this, 'default')\n )\n ]\n\n if (this.elevated === true && this.showing === true) {\n content.push(\n h('div', {\n staticClass: 'q-layout__shadow absolute-full overflow-hidden no-pointer-events'\n })\n )\n }\n\n child.push(\n h('aside', {\n ref: 'content',\n staticClass: 'q-drawer',\n class: this.classes,\n style: this.style,\n on: this.onNativeEvents,\n directives: this.belowBreakpoint === true\n ? this.contentCloseDirective\n : void 0\n }, content)\n )\n\n return h('div', { staticClass: 'q-drawer-container' }, child)\n }\n})\n","import QDrawer from './QDrawer.js'\n\nexport {\n QDrawer\n}\n","import Vue from 'vue'\n\nimport AnchorMixin from '../../mixins/anchor.js'\nimport TimeoutMixin from '../../mixins/timeout.js'\nimport ModelToggleMixin from '../../mixins/model-toggle.js'\nimport PortalMixin from '../../mixins/portal.js'\nimport TransitionMixin from '../../mixins/transition.js'\n\nimport { getScrollTarget } from '../../utils/scroll.js'\nimport { addEvt, cleanEvt } from '../../utils/event.js'\nimport { clearSelection } from '../../utils/private/selection.js'\nimport { slot } from '../../utils/private/slot.js'\nimport {\n validatePosition, validateOffset, setPosition, parsePosition\n} from '../../utils/private/position-engine.js'\n\nconst attrs = { role: 'tooltip' }\n\nexport default Vue.extend({\n name: 'QTooltip',\n\n mixins: [ AnchorMixin, TimeoutMixin, ModelToggleMixin, PortalMixin, TransitionMixin ],\n\n props: {\n maxHeight: {\n type: String,\n default: null\n },\n maxWidth: {\n type: String,\n default: null\n },\n\n transitionShow: {\n default: 'jump-down'\n },\n transitionHide: {\n default: 'jump-up'\n },\n\n anchor: {\n type: String,\n default: 'bottom middle',\n validator: validatePosition\n },\n self: {\n type: String,\n default: 'top middle',\n validator: validatePosition\n },\n offset: {\n type: Array,\n default: () => [14, 14],\n validator: validateOffset\n },\n\n scrollTarget: {\n default: void 0\n },\n\n delay: {\n type: Number,\n default: 0\n },\n\n hideDelay: {\n type: Number,\n default: 0\n }\n },\n\n computed: {\n anchorOrigin () {\n return parsePosition(this.anchor, this.$q.lang.rtl)\n },\n\n selfOrigin () {\n return parsePosition(this.self, this.$q.lang.rtl)\n },\n\n hideOnRouteChange () {\n return this.persistent !== true\n }\n },\n\n methods: {\n __show (evt) {\n this.__showPortal()\n\n this.__registerTick(() => {\n this.observer = new MutationObserver(() => this.updatePosition())\n this.observer.observe(this.__portal.$el, { attributes: false, childList: true, characterData: true, subtree: true })\n this.updatePosition()\n this.__configureScrollTarget()\n })\n\n if (this.unwatch === void 0) {\n this.unwatch = this.$watch(\n () => this.$q.screen.width + '|' + this.$q.screen.height + '|' + this.self + '|' + this.anchor + '|' + this.$q.lang.rtl,\n this.updatePosition\n )\n }\n\n // should __removeTimeout() if this gets removed\n this.__registerTimeout(() => {\n this.__showPortal(true)\n this.$emit('show', evt)\n }, 300)\n },\n\n __hide (evt) {\n this.__removeTick()\n this.__anchorCleanup()\n this.__hidePortal()\n\n // should __removeTimeout() if this gets removed\n this.__registerTimeout(() => {\n this.__hidePortal(true) // done hiding, now destroy\n this.$emit('hide', evt)\n }, 300)\n },\n\n __anchorCleanup () {\n if (this.observer !== void 0) {\n this.observer.disconnect()\n this.observer = void 0\n }\n\n if (this.unwatch !== void 0) {\n this.unwatch()\n this.unwatch = void 0\n }\n\n this.__unconfigureScrollTarget()\n cleanEvt(this, 'tooltipTemp')\n },\n\n updatePosition () {\n if (this.anchorEl === void 0 || this.__portal === void 0) {\n return\n }\n\n const el = this.__portal.$el\n\n if (el.nodeType === 8) { // IE replaces the comment with delay\n setTimeout(this.updatePosition, 25)\n return\n }\n\n setPosition({\n el,\n offset: this.offset,\n anchorEl: this.anchorEl,\n anchorOrigin: this.anchorOrigin,\n selfOrigin: this.selfOrigin,\n maxHeight: this.maxHeight,\n maxWidth: this.maxWidth\n })\n },\n\n __delayShow (evt) {\n if (this.$q.platform.is.mobile === true) {\n clearSelection()\n document.body.classList.add('non-selectable')\n\n const target = this.anchorEl\n const evts = ['touchmove', 'touchcancel', 'touchend', 'click']\n .map(e => ([ target, e, '__delayHide', 'passiveCapture' ]))\n\n addEvt(this, 'tooltipTemp', evts)\n }\n\n this.__registerTimeout(() => { this.show(evt) }, this.delay)\n },\n\n __delayHide (evt) {\n if (this.$q.platform.is.mobile === true) {\n cleanEvt(this, 'tooltipTemp')\n clearSelection()\n // delay needed otherwise selection still occurs\n setTimeout(() => {\n document.body.classList.remove('non-selectable')\n }, 10)\n }\n\n // should __removeTimeout() if this gets removed\n this.__registerTimeout(() => { this.hide(evt) }, this.hideDelay)\n },\n\n __configureAnchorEl () {\n if (this.noParentEvent === true || this.anchorEl === void 0) { return }\n\n const evts = this.$q.platform.is.mobile === true\n ? [\n [ this.anchorEl, 'touchstart', '__delayShow', 'passive' ]\n ]\n : [\n [ this.anchorEl, 'mouseenter', '__delayShow', 'passive' ],\n [ this.anchorEl, 'mouseleave', '__delayHide', 'passive' ]\n ]\n\n addEvt(this, 'anchor', evts)\n },\n\n __unconfigureScrollTarget () {\n if (this.__scrollTarget !== void 0) {\n this.__changeScrollEvent(this.__scrollTarget)\n this.__scrollTarget = void 0\n }\n },\n\n __configureScrollTarget () {\n if (this.anchorEl !== void 0 || this.scrollTarget !== void 0) {\n this.__scrollTarget = getScrollTarget(this.anchorEl, this.scrollTarget)\n const fn = this.noParentEvent === true\n ? this.updatePosition\n : this.hide\n\n this.__changeScrollEvent(this.__scrollTarget, fn)\n }\n },\n\n __renderPortal (h) {\n return h('transition', {\n props: { ...this.transitionProps }\n }, [\n this.showing === true ? h('div', {\n staticClass: 'q-tooltip q-tooltip--style q-position-engine no-pointer-events',\n class: this.contentClass,\n style: this.contentStyle,\n attrs\n }, slot(this, 'default')) : null\n ])\n }\n },\n\n created () {\n this.__useTick('__registerTick', '__removeTick')\n this.__useTimeout('__registerTimeout')\n },\n\n mounted () {\n this.__processModelChange(this.value)\n }\n})\n","import Vue from 'vue'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QList',\n\n mixins: [ ListenersMixin, DarkMixin ],\n\n props: {\n bordered: Boolean,\n dense: Boolean,\n separator: Boolean,\n padding: Boolean,\n\n tag: {\n type: String,\n default: 'div'\n }\n },\n\n computed: {\n classes () {\n return 'q-list' +\n (this.bordered === true ? ' q-list--bordered' : '') +\n (this.dense === true ? ' q-list--dense' : '') +\n (this.separator === true ? ' q-list--separator' : '') +\n (this.isDark === true ? ' q-list--dark' : '') +\n (this.padding === true ? ' q-list--padding' : '')\n }\n },\n\n render (h) {\n return h(this.tag, {\n class: this.classes,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import Vue from 'vue'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport TagMixin from '../../mixins/tag.js'\nimport RouterLinkMixin from '../../mixins/router-link.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { uniqueSlot } from '../../utils/private/slot.js'\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { isKeyCode } from '../../utils/private/key-composition.js'\n\nexport default Vue.extend({\n name: 'QItem',\n\n mixins: [ DarkMixin, RouterLinkMixin, TagMixin, ListenersMixin ],\n\n props: {\n active: {\n type: Boolean,\n default: null\n },\n\n clickable: Boolean,\n dense: Boolean,\n insetLevel: Number,\n\n tabindex: [ String, Number ],\n\n focused: Boolean,\n manualFocus: Boolean\n },\n\n computed: {\n isActionable () {\n return this.clickable === true ||\n this.hasLink === true ||\n this.tag === 'label'\n },\n\n isClickable () {\n return this.disable !== true && this.isActionable === true\n },\n\n classes () {\n return 'q-item q-item-type row no-wrap' +\n (this.dense === true ? ' q-item--dense' : '') +\n (this.isDark === true ? ' q-item--dark' : '') +\n (\n this.hasLink === true && this.active === null\n ? this.linkClass\n : (\n this.active === true\n ? ` q-item--active${this.activeClass !== void 0 ? ` ${this.activeClass}` : ''} `\n : ''\n )\n ) +\n (this.disable === true ? ' disabled' : '') +\n (\n this.isClickable === true\n ? ' q-item--clickable q-link cursor-pointer ' +\n (this.manualFocus === true ? 'q-manual-focusable' : 'q-focusable q-hoverable') +\n (this.focused === true ? ' q-manual-focusable--focused' : '')\n : ''\n )\n },\n\n style () {\n if (this.insetLevel !== void 0) {\n const dir = this.$q.lang.rtl === true ? 'Right' : 'Left'\n return {\n ['padding' + dir]: (16 + this.insetLevel * 56) + 'px'\n }\n }\n },\n\n onEvents () {\n return {\n ...this.qListeners,\n click: this.__onClick,\n keyup: this.__onKeyup\n }\n }\n },\n\n methods: {\n __onClick (e) {\n if (this.isClickable === true) {\n if (this.$refs.blurTarget !== void 0) {\n if (e.qKeyEvent !== true && document.activeElement === this.$el) {\n this.$refs.blurTarget.focus()\n }\n else if (document.activeElement === this.$refs.blurTarget) {\n this.$el.focus()\n }\n }\n\n this.__navigateOnClick(e)\n }\n },\n\n __onKeyup (e) {\n if (this.isClickable === true && isKeyCode(e, 13) === true) {\n stopAndPrevent(e)\n\n // for ripple\n e.qKeyEvent = true\n\n // for click trigger\n const evt = new MouseEvent('click', e)\n evt.qKeyEvent = true\n this.$el.dispatchEvent(evt)\n }\n\n this.$emit('keyup', e)\n },\n\n __getContent (h) {\n const child = uniqueSlot(this, 'default', [])\n\n this.isClickable === true && child.unshift(\n h('div', { staticClass: 'q-focus-helper', attrs: { tabindex: -1 }, ref: 'blurTarget' })\n )\n\n return child\n }\n },\n\n render (h) {\n const data = {\n class: this.classes,\n style: this.style,\n attrs: { role: 'listitem' },\n on: this.onEvents\n }\n\n if (this.isClickable === true) {\n data.attrs.tabindex = this.tabindex || '0'\n Object.assign(data.attrs, this.linkAttrs)\n }\n else if (this.isActionable === true) {\n data.attrs['aria-disabled'] = 'true'\n }\n\n return h(\n this.linkTag,\n data,\n this.__getContent(h)\n )\n }\n})\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QItemSection',\n\n mixins: [ ListenersMixin ],\n\n props: {\n avatar: Boolean,\n thumbnail: Boolean,\n side: Boolean,\n top: Boolean,\n noWrap: Boolean\n },\n\n computed: {\n classes () {\n const side = this.avatar || this.side || this.thumbnail\n\n return {\n 'q-item__section--top': this.top,\n 'q-item__section--avatar': this.avatar,\n 'q-item__section--thumbnail': this.thumbnail,\n 'q-item__section--side': side,\n 'q-item__section--nowrap': this.noWrap,\n 'q-item__section--main': !side,\n [`justify-${this.top ? 'start' : 'center'}`]: true\n }\n }\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-item__section column',\n class: this.classes,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import QBtn from '../btn/QBtn.js'\nimport QBtnDropdown from '../btn-dropdown/QBtnDropdown.js'\nimport QIcon from '../icon/QIcon.js'\nimport QTooltip from '../tooltip/QTooltip.js'\nimport QList from '../item/QList.js'\nimport QItem from '../item/QItem.js'\nimport QItemSection from '../item/QItemSection.js'\n\nimport { prevent, stop } from '../../utils/event.js'\nimport { slot } from '../../utils/private/slot.js'\nimport { shouldIgnoreKey } from '../../utils/private/key-composition.js'\n\nfunction run (e, btn, vm) {\n if (btn.handler) {\n btn.handler(e, vm, vm.caret)\n }\n else {\n vm.runCmd(btn.cmd, btn.param)\n }\n}\n\nfunction __getGroup (h, children) {\n return h('div', {\n staticClass: 'q-editor__toolbar-group'\n }, children)\n}\n\nfunction getBtn (h, vm, btn, clickHandler, active = false) {\n const\n toggled = active || (btn.type === 'toggle'\n ? (btn.toggled ? btn.toggled(vm) : btn.cmd && vm.caret.is(btn.cmd, btn.param))\n : false),\n child = [],\n events = {\n click (e) {\n clickHandler && clickHandler()\n run(e, btn, vm)\n }\n }\n\n if (btn.tip && vm.$q.platform.is.desktop) {\n const Key = btn.key\n ? h('div', [h('small', `(CTRL + ${String.fromCharCode(btn.key)})`)])\n : null\n child.push(\n h(QTooltip, { props: { delay: 1000 } }, [\n h('div', { domProps: { innerHTML: btn.tip } }),\n Key\n ])\n )\n }\n\n return h(QBtn, {\n props: {\n ...vm.buttonProps,\n icon: btn.icon !== null ? btn.icon : void 0,\n color: toggled ? btn.toggleColor || vm.toolbarToggleColor : btn.color || vm.toolbarColor,\n textColor: toggled && !vm.toolbarPush ? null : btn.textColor || vm.toolbarTextColor,\n label: btn.label,\n disable: btn.disable ? (typeof btn.disable === 'function' ? btn.disable(vm) : true) : false,\n size: 'sm'\n },\n on: events\n }, child)\n}\n\nfunction getDropdown (h, vm, btn) {\n const onlyIcons = btn.list === 'only-icons'\n let\n label = btn.label,\n icon = btn.icon !== null ? btn.icon : void 0,\n contentClass,\n Items\n\n function closeDropdown () {\n Dropdown.componentInstance.hide()\n }\n\n if (onlyIcons) {\n Items = btn.options.map(btn => {\n const active = btn.type === void 0\n ? vm.caret.is(btn.cmd, btn.param)\n : false\n\n if (active) {\n label = btn.tip\n icon = btn.icon !== null ? btn.icon : void 0\n }\n return getBtn(h, vm, btn, closeDropdown, active)\n })\n contentClass = vm.toolbarBackgroundClass\n Items = [\n __getGroup(h, Items)\n ]\n }\n else {\n const activeClass = vm.toolbarToggleColor !== void 0\n ? `text-${vm.toolbarToggleColor}`\n : null\n const inactiveClass = vm.toolbarTextColor !== void 0\n ? `text-${vm.toolbarTextColor}`\n : null\n\n const noIcons = btn.list === 'no-icons'\n\n Items = btn.options.map(btn => {\n const disable = btn.disable ? btn.disable(vm) : false\n const active = btn.type === void 0\n ? vm.caret.is(btn.cmd, btn.param)\n : false\n\n if (active) {\n label = btn.tip\n icon = btn.icon !== null ? btn.icon : void 0\n }\n\n const htmlTip = btn.htmlTip\n\n return h(\n QItem,\n {\n props: { active, activeClass, clickable: true, disable: disable, dense: true },\n on: {\n click (e) {\n closeDropdown()\n vm.$refs.content && vm.$refs.content.focus()\n vm.caret.restore()\n run(e, btn, vm)\n }\n }\n },\n [\n noIcons === true\n ? null\n : h(QItemSection, {\n class: active ? activeClass : inactiveClass,\n props: { side: true }\n }, [\n h(QIcon, { props: { name: btn.icon !== null ? btn.icon : void 0 } })\n ]),\n\n h(QItemSection, [\n htmlTip\n ? h('div', {\n staticClass: 'text-no-wrap',\n domProps: { innerHTML: btn.htmlTip }\n })\n : (\n btn.tip\n ? h('div', { staticClass: 'text-no-wrap' }, [ btn.tip ])\n : null\n )\n ])\n ]\n )\n })\n contentClass = [vm.toolbarBackgroundClass, inactiveClass]\n Items = [\n h(QList, [ Items ])\n ]\n }\n\n const highlight = btn.highlight && label !== btn.label\n const Dropdown = h(\n QBtnDropdown,\n {\n props: {\n ...vm.buttonProps,\n noCaps: true,\n noWrap: true,\n color: highlight ? vm.toolbarToggleColor : vm.toolbarColor,\n textColor: highlight && !vm.toolbarPush ? null : vm.toolbarTextColor,\n label: btn.fixedLabel ? btn.label : label,\n icon: btn.fixedIcon ? (btn.icon !== null ? btn.icon : void 0) : icon,\n contentClass\n }\n },\n Items\n )\n return Dropdown\n}\n\nexport function getToolbar (h, vm) {\n if (vm.caret) {\n return vm.buttons\n .filter(f => {\n return !vm.isViewingSource || f.find(fb => fb.cmd === 'viewsource')\n })\n .map(group => __getGroup(\n h,\n group.map(btn => {\n if (vm.isViewingSource && btn.cmd !== 'viewsource') {\n return false\n }\n\n if (btn.type === 'slot') {\n return slot(vm, btn.slot)\n }\n\n if (btn.type === 'dropdown') {\n return getDropdown(h, vm, btn)\n }\n\n return getBtn(h, vm, btn)\n })\n ))\n }\n}\n\nexport function getFonts (defaultFont, defaultFontLabel, defaultFontIcon, fonts = {}) {\n const aliases = Object.keys(fonts)\n if (aliases.length === 0) {\n return {}\n }\n\n const def = {\n default_font: {\n cmd: 'fontName',\n param: defaultFont,\n icon: defaultFontIcon,\n tip: defaultFontLabel\n }\n }\n\n aliases.forEach(alias => {\n const name = fonts[alias]\n def[alias] = {\n cmd: 'fontName',\n param: name,\n icon: defaultFontIcon,\n tip: name,\n htmlTip: `${name}`\n }\n })\n\n return def\n}\n\nexport function getLinkEditor (h, vm, ie11) {\n if (vm.caret) {\n const color = vm.toolbarColor || vm.toolbarTextColor\n let link = vm.editLinkUrl\n const updateLink = () => {\n vm.caret.restore()\n\n if (link !== vm.editLinkUrl) {\n document.execCommand('createLink', false, link === '' ? ' ' : link)\n }\n\n vm.editLinkUrl = null\n\n ie11 === true && vm.$nextTick(vm.__onInput)\n }\n\n return [\n h('div', { staticClass: 'q-mx-xs', 'class': `text-${color}` }, [`${vm.$q.lang.editor.url}: `]),\n h('input', {\n key: 'qedt_btm_input',\n staticClass: 'col q-editor__link-input',\n domProps: {\n value: link\n },\n on: {\n input: e => {\n stop(e)\n link = e.target.value\n },\n keydown: event => {\n if (shouldIgnoreKey(event) === true) {\n return\n }\n\n switch (event.keyCode) {\n case 13: // ENTER key\n prevent(event)\n return updateLink()\n case 27: // ESCAPE key\n prevent(event)\n vm.caret.restore()\n if (!vm.editLinkUrl || vm.editLinkUrl === 'https://') {\n document.execCommand('unlink')\n }\n vm.editLinkUrl = null\n break\n }\n }\n }\n }),\n __getGroup(h, [\n h(QBtn, {\n key: 'qedt_btm_rem',\n attrs: { tabindex: -1 },\n props: {\n ...vm.buttonProps,\n label: vm.$q.lang.label.remove,\n noCaps: true\n },\n on: {\n click: () => {\n vm.caret.restore()\n document.execCommand('unlink')\n vm.editLinkUrl = null\n\n ie11 === true && vm.$nextTick(vm.__onInput)\n }\n }\n }),\n h(QBtn, {\n key: 'qedt_btm_upd',\n props: {\n ...vm.buttonProps,\n label: vm.$q.lang.label.update,\n noCaps: true\n },\n on: {\n click: updateLink\n }\n })\n ])\n ]\n }\n}\n","import { noop } from '../../utils/event.js'\n\nfunction getBlockElement (el, parent) {\n if (parent && el === parent) {\n return null\n }\n\n const nodeName = el.nodeName.toLowerCase()\n\n if (['div', 'li', 'ul', 'ol', 'blockquote'].includes(nodeName) === true) {\n return el\n }\n\n const\n style = window.getComputedStyle\n ? window.getComputedStyle(el)\n : el.currentStyle,\n display = style.display\n\n if (display === 'block' || display === 'table') {\n return el\n }\n\n return getBlockElement(el.parentNode)\n}\n\nfunction isChildOf (el, parent, orSame) {\n return !el || el === document.body\n ? false\n : (orSame === true && el === parent) || (parent === document ? document.body : parent).contains(el.parentNode)\n}\n\nfunction createRange (node, chars, range) {\n if (!range) {\n range = document.createRange()\n range.selectNode(node)\n range.setStart(node, 0)\n }\n\n if (chars.count === 0) {\n range.setEnd(node, chars.count)\n }\n else if (chars.count > 0) {\n if (node.nodeType === Node.TEXT_NODE) {\n if (node.textContent.length < chars.count) {\n chars.count -= node.textContent.length\n }\n else {\n range.setEnd(node, chars.count)\n chars.count = 0\n }\n }\n else {\n for (let lp = 0; chars.count !== 0 && lp < node.childNodes.length; lp++) {\n range = createRange(node.childNodes[lp], chars, range)\n }\n }\n }\n\n return range\n}\n\nconst urlRegex = /^https?:\\/\\//\n\nexport class Caret {\n constructor (el, vm) {\n this.el = el\n this.vm = vm\n this._range = null\n }\n\n get selection () {\n if (this.el) {\n const sel = document.getSelection()\n\n // only when the selection in element\n if (isChildOf(sel.anchorNode, this.el, true) && isChildOf(sel.focusNode, this.el, true)) {\n return sel\n }\n }\n\n return null\n }\n\n get hasSelection () {\n return this.selection !== null\n ? this.selection.toString().length > 0\n : false\n }\n\n get range () {\n const sel = this.selection\n\n if (sel !== null && sel.rangeCount) {\n return sel.getRangeAt(0)\n }\n\n return this._range\n }\n\n get parent () {\n const range = this.range\n\n if (range !== null) {\n const node = range.startContainer\n\n return node.nodeType === document.ELEMENT_NODE\n ? node\n : node.parentNode\n }\n\n return null\n }\n\n get blockParent () {\n const parent = this.parent\n\n if (parent !== null) {\n return getBlockElement(parent, this.el)\n }\n\n return null\n }\n\n save (range = this.range) {\n if (range !== null) {\n this._range = range\n }\n }\n\n restore (range = this._range) {\n const\n r = document.createRange(),\n sel = document.getSelection()\n\n if (range !== null) {\n r.setStart(range.startContainer, range.startOffset)\n r.setEnd(range.endContainer, range.endOffset)\n sel.removeAllRanges()\n sel.addRange(r)\n }\n else {\n sel.selectAllChildren(this.el)\n sel.collapseToEnd()\n }\n }\n\n savePosition () {\n let charCount = -1, node\n const\n selection = document.getSelection(),\n parentEl = this.el.parentNode\n\n if (selection.focusNode && isChildOf(selection.focusNode, parentEl)) {\n node = selection.focusNode\n charCount = selection.focusOffset\n\n while (node && node !== parentEl) {\n if (node !== this.el && node.previousSibling) {\n node = node.previousSibling\n charCount += node.textContent.length\n }\n else {\n node = node.parentNode\n }\n }\n }\n\n this.savedPos = charCount\n }\n\n restorePosition (length = 0) {\n if (this.savedPos > 0 && this.savedPos < length) {\n const\n selection = window.getSelection(),\n range = createRange(this.el, { count: this.savedPos })\n\n if (range) {\n range.collapse(false)\n selection.removeAllRanges()\n selection.addRange(range)\n }\n }\n }\n\n hasParent (name, spanLevel) {\n const el = spanLevel\n ? this.parent\n : this.blockParent\n\n return el !== null\n ? el.nodeName.toLowerCase() === name.toLowerCase()\n : false\n }\n\n hasParents (list, recursive, el = this.parent) {\n if (el === null) {\n return false\n }\n\n if (list.includes(el.nodeName.toLowerCase()) === true) {\n return true\n }\n\n return recursive === true\n ? this.hasParents(list, recursive, el.parentNode)\n : false\n }\n\n is (cmd, param) {\n if (this.selection === null) {\n return false\n }\n\n switch (cmd) {\n case 'formatBlock':\n if (param === 'DIV' && this.parent === this.el) {\n return true\n }\n return this.hasParent(param, param === 'PRE')\n case 'link':\n return this.hasParent('A', true)\n case 'fontSize':\n return document.queryCommandValue(cmd) === param\n case 'fontName':\n const res = document.queryCommandValue(cmd)\n return res === `\"${param}\"` || res === param\n case 'fullscreen':\n return this.vm.inFullscreen\n case 'viewsource':\n return this.vm.isViewingSource\n case void 0:\n return false\n default:\n const state = document.queryCommandState(cmd)\n return param !== void 0 ? state === param : state\n }\n }\n\n getParentAttribute (attrib) {\n if (this.parent !== null) {\n return this.parent.getAttribute(attrib)\n }\n\n return null\n }\n\n can (name) {\n if (name === 'outdent') {\n return this.hasParents(['blockquote', 'li'], true)\n }\n\n if (name === 'indent') {\n return this.hasParents(['li'], true)\n }\n\n if (name === 'link') {\n return this.selection !== null || this.is('link')\n }\n }\n\n apply (cmd, param, done = noop) {\n if (cmd === 'formatBlock') {\n if (['BLOCKQUOTE', 'H1', 'H2', 'H3', 'H4', 'H5', 'H6'].includes(param) && this.is(cmd, param)) {\n cmd = 'outdent'\n param = null\n }\n\n if (param === 'PRE' && this.is(cmd, 'PRE')) {\n param = 'P'\n }\n }\n else if (cmd === 'print') {\n done()\n\n const win = window.open()\n\n win.document.write(`\n \n \n \n Print - ${document.title}\n \n \n
${this.el.innerHTML}
\n \n \n `)\n win.print()\n win.close()\n\n return\n }\n else if (cmd === 'link') {\n const link = this.getParentAttribute('href')\n\n if (link === null) {\n const selection = this.selectWord(this.selection)\n const url = selection ? selection.toString() : ''\n\n if (!url.length) {\n if (!this.range || !this.range.cloneContents().querySelector('img')) {\n return\n }\n }\n\n this.vm.editLinkUrl = urlRegex.test(url) ? url : 'https://'\n document.execCommand('createLink', false, this.vm.editLinkUrl)\n\n this.save(selection.getRangeAt(0))\n }\n else {\n this.vm.editLinkUrl = link\n\n this.range.selectNodeContents(this.parent)\n this.save()\n }\n\n return\n }\n else if (cmd === 'fullscreen') {\n this.vm.toggleFullscreen()\n done()\n\n return\n }\n else if (cmd === 'viewsource') {\n this.vm.isViewingSource = this.vm.isViewingSource === false\n this.vm.__setContent(this.vm.value)\n done()\n\n return\n }\n\n document.execCommand(cmd, false, param)\n\n done()\n }\n\n selectWord (sel) {\n if (sel === null || sel.isCollapsed !== true || /* IE 11 */ sel.modify === void 0) {\n return sel\n }\n\n // Detect if selection is backwards\n const range = document.createRange()\n range.setStart(sel.anchorNode, sel.anchorOffset)\n range.setEnd(sel.focusNode, sel.focusOffset)\n const direction = range.collapsed ? ['backward', 'forward'] : ['forward', 'backward']\n range.detach()\n\n // modify() works on the focus of the selection\n const\n endNode = sel.focusNode,\n endOffset = sel.focusOffset\n sel.collapse(sel.anchorNode, sel.anchorOffset)\n sel.modify('move', direction[0], 'character')\n sel.modify('move', direction[1], 'word')\n sel.extend(endNode, endOffset)\n sel.modify('extend', direction[1], 'character')\n sel.modify('extend', direction[0], 'word')\n\n return sel\n }\n}\n","const\n toString = Object.prototype.toString,\n hasOwn = Object.prototype.hasOwnProperty,\n notPlainObject = new Set(\n ['Boolean', 'Number', 'String', 'Function', 'Array', 'Date', 'RegExp']\n .map(name => '[object ' + name + ']')\n )\n\nfunction isPlainObject (obj) {\n if (obj !== Object(obj) || notPlainObject.has(toString.call(obj)) === true) {\n return false\n }\n\n if (\n obj.constructor &&\n hasOwn.call(obj, 'constructor') === false &&\n hasOwn.call(obj.constructor.prototype, 'isPrototypeOf') === false\n ) {\n return false\n }\n\n let key\n for (key in obj) {}\n\n return key === void 0 || hasOwn.call(obj, key)\n}\n\nexport default function extend () {\n let\n options, name, src, copy, copyIsArray, clone,\n target = arguments[0] || {},\n i = 1,\n deep = false\n const length = arguments.length\n\n if (typeof target === 'boolean') {\n deep = target\n target = arguments[1] || {}\n i = 2\n }\n\n if (Object(target) !== target && typeof target !== 'function') {\n target = {}\n }\n\n if (length === i) {\n target = this\n i--\n }\n\n for (; i < length; i++) {\n if ((options = arguments[i]) !== null) {\n for (name in options) {\n src = target[name]\n copy = options[name]\n\n if (target === copy) {\n continue\n }\n\n if (deep === true && copy && ((copyIsArray = Array.isArray(copy)) || isPlainObject(copy) === true)) {\n if (copyIsArray === true) {\n clone = Array.isArray(src) === true ? src : []\n }\n else {\n clone = isPlainObject(src) === true ? src : {}\n }\n\n target[name] = extend(deep, clone, copy)\n }\n else if (copy !== void 0) {\n target[name] = copy\n }\n }\n }\n }\n\n return target\n}\n","import Vue from 'vue'\n\nimport { getToolbar, getFonts, getLinkEditor } from './editor-utils.js'\nimport { Caret } from './editor-caret.js'\n\nimport FullscreenMixin from '../../mixins/fullscreen.js'\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { isSSR } from '../../plugins/Platform.js'\nimport { stopAndPrevent } from '../../utils/event.js'\nimport extend from '../../utils/extend.js'\nimport { shouldIgnoreKey } from '../../utils/private/key-composition.js'\nimport { addFocusFn } from '../../utils/private/focus-manager.js'\n\nexport default Vue.extend({\n name: 'QEditor',\n\n mixins: [ ListenersMixin, FullscreenMixin, DarkMixin ],\n\n props: {\n value: {\n type: String,\n required: true\n },\n readonly: Boolean,\n disable: Boolean,\n minHeight: {\n type: String,\n default: '10rem'\n },\n maxHeight: String,\n height: String,\n definitions: Object,\n fonts: Object,\n placeholder: String,\n\n toolbar: {\n type: Array,\n validator: v => v.length === 0 || v.every(group => group.length),\n default () {\n return [\n ['left', 'center', 'right', 'justify'],\n ['bold', 'italic', 'underline', 'strike'],\n ['undo', 'redo']\n ]\n }\n },\n toolbarColor: String,\n toolbarBg: String,\n toolbarTextColor: String,\n toolbarToggleColor: {\n type: String,\n default: 'primary'\n },\n toolbarOutline: Boolean,\n toolbarPush: Boolean,\n toolbarRounded: Boolean,\n\n paragraphTag: {\n type: String,\n validator: v => ['div', 'p'].includes(v),\n default: 'div'\n },\n\n contentStyle: Object,\n contentClass: [Object, Array, String],\n\n square: Boolean,\n flat: Boolean,\n dense: Boolean\n },\n\n computed: {\n editable () {\n return !this.readonly && !this.disable\n },\n\n hasToolbar () {\n return this.toolbar && this.toolbar.length > 0\n },\n\n toolbarBackgroundClass () {\n if (this.toolbarBg) {\n return `bg-${this.toolbarBg}`\n }\n },\n\n buttonProps () {\n const flat = this.toolbarOutline !== true &&\n this.toolbarPush !== true\n\n return {\n type: 'a',\n flat,\n noWrap: true,\n outline: this.toolbarOutline,\n push: this.toolbarPush,\n rounded: this.toolbarRounded,\n dense: true,\n color: this.toolbarColor,\n disable: !this.editable,\n size: 'sm'\n }\n },\n\n buttonDef () {\n const\n e = this.$q.lang.editor,\n i = this.$q.iconSet.editor\n\n return {\n bold: { cmd: 'bold', icon: i.bold, tip: e.bold, key: 66 },\n italic: { cmd: 'italic', icon: i.italic, tip: e.italic, key: 73 },\n strike: { cmd: 'strikeThrough', icon: i.strikethrough, tip: e.strikethrough, key: 83 },\n underline: { cmd: 'underline', icon: i.underline, tip: e.underline, key: 85 },\n unordered: { cmd: 'insertUnorderedList', icon: i.unorderedList, tip: e.unorderedList },\n ordered: { cmd: 'insertOrderedList', icon: i.orderedList, tip: e.orderedList },\n subscript: { cmd: 'subscript', icon: i.subscript, tip: e.subscript, htmlTip: 'x2' },\n superscript: { cmd: 'superscript', icon: i.superscript, tip: e.superscript, htmlTip: 'x2' },\n link: { cmd: 'link', disable: vm => vm.caret && !vm.caret.can('link'), icon: i.hyperlink, tip: e.hyperlink, key: 76 },\n fullscreen: { cmd: 'fullscreen', icon: i.toggleFullscreen, tip: e.toggleFullscreen, key: 70 },\n viewsource: { cmd: 'viewsource', icon: i.viewSource, tip: e.viewSource },\n\n quote: { cmd: 'formatBlock', param: 'BLOCKQUOTE', icon: i.quote, tip: e.quote, key: 81 },\n left: { cmd: 'justifyLeft', icon: i.left, tip: e.left },\n center: { cmd: 'justifyCenter', icon: i.center, tip: e.center },\n right: { cmd: 'justifyRight', icon: i.right, tip: e.right },\n justify: { cmd: 'justifyFull', icon: i.justify, tip: e.justify },\n\n print: { type: 'no-state', cmd: 'print', icon: i.print, tip: e.print, key: 80 },\n outdent: { type: 'no-state', disable: vm => vm.caret && !vm.caret.can('outdent'), cmd: 'outdent', icon: i.outdent, tip: e.outdent },\n indent: { type: 'no-state', disable: vm => vm.caret && !vm.caret.can('indent'), cmd: 'indent', icon: i.indent, tip: e.indent },\n removeFormat: { type: 'no-state', cmd: 'removeFormat', icon: i.removeFormat, tip: e.removeFormat },\n hr: { type: 'no-state', cmd: 'insertHorizontalRule', icon: i.hr, tip: e.hr },\n undo: { type: 'no-state', cmd: 'undo', icon: i.undo, tip: e.undo, key: 90 },\n redo: { type: 'no-state', cmd: 'redo', icon: i.redo, tip: e.redo, key: 89 },\n\n h1: { cmd: 'formatBlock', param: 'H1', icon: i.heading1 || i.heading, tip: e.heading1, htmlTip: `

${e.heading1}

` },\n h2: { cmd: 'formatBlock', param: 'H2', icon: i.heading2 || i.heading, tip: e.heading2, htmlTip: `

${e.heading2}

` },\n h3: { cmd: 'formatBlock', param: 'H3', icon: i.heading3 || i.heading, tip: e.heading3, htmlTip: `

${e.heading3}

` },\n h4: { cmd: 'formatBlock', param: 'H4', icon: i.heading4 || i.heading, tip: e.heading4, htmlTip: `

${e.heading4}

` },\n h5: { cmd: 'formatBlock', param: 'H5', icon: i.heading5 || i.heading, tip: e.heading5, htmlTip: `
${e.heading5}
` },\n h6: { cmd: 'formatBlock', param: 'H6', icon: i.heading6 || i.heading, tip: e.heading6, htmlTip: `
${e.heading6}
` },\n p: { cmd: 'formatBlock', param: this.paragraphTag.toUpperCase(), icon: i.heading, tip: e.paragraph },\n code: { cmd: 'formatBlock', param: 'PRE', icon: i.code, htmlTip: `${e.code}` },\n\n 'size-1': { cmd: 'fontSize', param: '1', icon: i.size1 || i.size, tip: e.size1, htmlTip: `${e.size1}` },\n 'size-2': { cmd: 'fontSize', param: '2', icon: i.size2 || i.size, tip: e.size2, htmlTip: `${e.size2}` },\n 'size-3': { cmd: 'fontSize', param: '3', icon: i.size3 || i.size, tip: e.size3, htmlTip: `${e.size3}` },\n 'size-4': { cmd: 'fontSize', param: '4', icon: i.size4 || i.size, tip: e.size4, htmlTip: `${e.size4}` },\n 'size-5': { cmd: 'fontSize', param: '5', icon: i.size5 || i.size, tip: e.size5, htmlTip: `${e.size5}` },\n 'size-6': { cmd: 'fontSize', param: '6', icon: i.size6 || i.size, tip: e.size6, htmlTip: `${e.size6}` },\n 'size-7': { cmd: 'fontSize', param: '7', icon: i.size7 || i.size, tip: e.size7, htmlTip: `${e.size7}` }\n }\n },\n\n buttons () {\n const userDef = this.definitions || {}\n const def = this.definitions || this.fonts\n ? extend(\n true,\n {},\n this.buttonDef,\n userDef,\n getFonts(\n this.defaultFont,\n this.$q.lang.editor.defaultFont,\n this.$q.iconSet.editor.font,\n this.fonts\n )\n )\n : this.buttonDef\n\n return this.toolbar.map(\n group => group.map(token => {\n if (token.options) {\n return {\n type: 'dropdown',\n icon: token.icon,\n label: token.label,\n size: 'sm',\n dense: true,\n fixedLabel: token.fixedLabel,\n fixedIcon: token.fixedIcon,\n highlight: token.highlight,\n list: token.list,\n options: token.options.map(item => def[item])\n }\n }\n\n const obj = def[token]\n\n if (obj) {\n return obj.type === 'no-state' || (userDef[token] && (\n obj.cmd === void 0 || (this.buttonDef[obj.cmd] && this.buttonDef[obj.cmd].type === 'no-state')\n ))\n ? obj\n : Object.assign({ type: 'toggle' }, obj)\n }\n else {\n return {\n type: 'slot',\n slot: token\n }\n }\n })\n )\n },\n\n keys () {\n const\n k = {},\n add = btn => {\n if (btn.key) {\n k[btn.key] = {\n cmd: btn.cmd,\n param: btn.param\n }\n }\n }\n\n this.buttons.forEach(group => {\n group.forEach(token => {\n if (token.options) {\n token.options.forEach(add)\n }\n else {\n add(token)\n }\n })\n })\n return k\n },\n\n innerStyle () {\n return this.inFullscreen\n ? this.contentStyle\n : [\n {\n minHeight: this.minHeight,\n height: this.height,\n maxHeight: this.maxHeight\n },\n this.contentStyle\n ]\n },\n\n classes () {\n return `q-editor q-editor--${this.isViewingSource === true ? 'source' : 'default'}` +\n (this.disable === true ? ' disabled' : '') +\n (this.inFullscreen === true ? ' fullscreen column' : '') +\n (this.square === true ? ' q-editor--square no-border-radius' : '') +\n (this.flat === true ? ' q-editor--flat' : '') +\n (this.dense === true ? ' q-editor--dense' : '') +\n (this.isDark === true ? ' q-editor--dark q-dark' : '')\n },\n\n innerClass () {\n return [\n this.contentClass,\n { col: this.inFullscreen, 'overflow-auto': this.inFullscreen || this.maxHeight }\n ]\n },\n\n attrs () {\n if (this.disable === true) {\n return { 'aria-disabled': 'true' }\n }\n if (this.readonly === true) {\n return { 'aria-readonly': 'true' }\n }\n },\n\n onEditor () {\n return {\n focusin: this.__onFocusin,\n focusout: this.__onFocusout\n }\n }\n },\n\n data () {\n return {\n lastEmit: this.value,\n editLinkUrl: null,\n isViewingSource: false\n }\n },\n\n watch: {\n value (v) {\n if (this.lastEmit !== v) {\n this.lastEmit = v\n this.__setContent(v, true)\n }\n }\n },\n\n methods: {\n __onInput () {\n if (this.$refs.content !== void 0) {\n const val = this.isViewingSource === true\n ? this.$refs.content.innerText\n : this.$refs.content.innerHTML\n\n if (val !== this.value) {\n this.lastEmit = val\n this.$emit('input', val)\n }\n }\n },\n\n __onKeydown (e) {\n this.$emit('keydown', e)\n\n if (e.ctrlKey !== true || shouldIgnoreKey(e) === true) {\n this.refreshToolbar()\n this.$q.platform.is.ie && this.$nextTick(this.__onInput)\n return\n }\n\n const key = e.keyCode\n const target = this.keys[key]\n if (target !== void 0) {\n const { cmd, param } = target\n stopAndPrevent(e)\n this.runCmd(cmd, param, false)\n }\n },\n\n __onClick (e) {\n this.refreshToolbar()\n this.$emit('click', e)\n },\n\n __onBlur (e) {\n if (this.$refs.content !== void 0) {\n const { scrollTop, scrollHeight } = this.$refs.content\n this.__offsetBottom = scrollHeight - scrollTop\n }\n this.$q.platform.is.ie !== true && this.caret.save()\n this.$emit('blur', e)\n },\n\n __onFocus (e) {\n this.$nextTick(() => {\n if (this.$refs.content !== void 0 && this.__offsetBottom !== void 0) {\n this.$refs.content.scrollTop = this.$refs.content.scrollHeight - this.__offsetBottom\n }\n })\n this.$emit('focus', e)\n },\n\n __onFocusin (e) {\n if (\n this.$el.contains(e.target) === true &&\n (\n e.relatedTarget === null ||\n this.$el.contains(e.relatedTarget) !== true\n )\n ) {\n const prop = `inner${this.isViewingSource === true ? 'Text' : 'HTML'}`\n this.caret.restorePosition(this.$refs.content[prop].length)\n this.refreshToolbar()\n }\n },\n\n __onFocusout (e) {\n if (\n this.$el.contains(e.target) === true &&\n (\n e.relatedTarget === null ||\n this.$el.contains(e.relatedTarget) !== true\n )\n ) {\n this.caret.savePosition()\n this.refreshToolbar()\n }\n },\n\n // mousedown, touchstart\n __onPointerStart (e) {\n this.__offsetBottom = void 0\n this.qListeners[e.type] !== void 0 && this.$emit(e.type, e)\n },\n\n __onSelectionchange () {\n this.caret.save()\n },\n\n runCmd (cmd, param, update = true) {\n this.focus()\n this.caret.restore()\n this.caret.apply(cmd, param, () => {\n this.focus()\n this.caret.save()\n if (this.$q.platform.is.ie === true || this.$q.platform.is.edge === true) {\n this.$nextTick(this.__onInput)\n }\n if (update) {\n this.refreshToolbar()\n }\n })\n },\n\n refreshToolbar () {\n setTimeout(() => {\n this.editLinkUrl = null\n this.$forceUpdate()\n }, 1)\n },\n\n focus () {\n addFocusFn(() => {\n this.$refs.content !== void 0 && this.$refs.content.focus({ preventScroll: true })\n })\n },\n\n getContentEl () {\n return this.$refs.content\n },\n\n __setContent (v, restorePosition) {\n if (this.$refs.content !== void 0) {\n if (restorePosition === true) {\n this.caret.savePosition()\n }\n\n const prop = `inner${this.isViewingSource === true ? 'Text' : 'HTML'}`\n this.$refs.content[prop] = v\n\n if (restorePosition === true) {\n this.caret.restorePosition(this.$refs.content[prop].length)\n this.refreshToolbar()\n }\n }\n }\n },\n\n created () {\n if (isSSR === false) {\n document.execCommand('defaultParagraphSeparator', false, this.paragraphTag)\n this.defaultFont = window.getComputedStyle(document.body).fontFamily\n }\n },\n\n mounted () {\n this.caret = new Caret(this.$refs.content, this)\n this.__setContent(this.value)\n this.refreshToolbar()\n\n document.addEventListener('selectionchange', this.__onSelectionchange)\n },\n\n beforeDestroy () {\n document.removeEventListener('selectionchange', this.__onSelectionchange)\n },\n\n render (h) {\n let toolbars\n\n if (this.hasToolbar) {\n const bars = [\n h('div', {\n key: 'qedt_top',\n staticClass: 'q-editor__toolbar row no-wrap scroll-x',\n class: this.toolbarBackgroundClass\n }, getToolbar(h, this))\n ]\n\n this.editLinkUrl !== null && bars.push(\n h('div', {\n key: 'qedt_btm',\n staticClass: 'q-editor__toolbar row no-wrap items-center scroll-x',\n class: this.toolbarBackgroundClass\n }, getLinkEditor(h, this, this.$q.platform.is.ie))\n )\n\n toolbars = h('div', {\n key: 'toolbar_ctainer',\n staticClass: 'q-editor__toolbars-container'\n }, bars)\n }\n\n const on = {\n ...this.qListeners,\n input: this.__onInput,\n keydown: this.__onKeydown,\n click: this.__onClick,\n blur: this.__onBlur,\n focus: this.__onFocus,\n\n // clean saved scroll position\n mousedown: this.__onPointerStart,\n touchstart: this.__onPointerStart\n }\n\n return h('div', {\n style: {\n height: this.inFullscreen === true ? '100%' : null\n },\n class: this.classes,\n attrs: this.attrs,\n on: this.onEditor\n }, [\n toolbars,\n\n h(\n 'div',\n {\n ref: 'content',\n staticClass: 'q-editor__content',\n style: this.innerStyle,\n class: this.innerClass,\n attrs: {\n contenteditable: this.editable,\n placeholder: this.placeholder\n },\n domProps: isSSR\n ? { innerHTML: this.value }\n : void 0,\n on\n }\n )\n ])\n }\n})\n","import QEditor from './QEditor.js'\n\nexport {\n QEditor\n}\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QItemLabel',\n\n mixins: [ ListenersMixin ],\n\n props: {\n overline: Boolean,\n caption: Boolean,\n header: Boolean,\n lines: [ Number, String ]\n },\n\n computed: {\n classes () {\n return {\n 'q-item__label--overline text-overline': this.overline,\n 'q-item__label--caption text-caption': this.caption,\n 'q-item__label--header': this.header,\n 'ellipsis': parseInt(this.lines, 10) === 1\n }\n },\n\n style () {\n if (this.lines !== void 0 && parseInt(this.lines, 10) > 1) {\n return {\n overflow: 'hidden',\n display: '-webkit-box',\n '-webkit-box-orient': 'vertical',\n '-webkit-line-clamp': this.lines\n }\n }\n }\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-item__label',\n style: this.style,\n class: this.classes,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import Vue from 'vue'\n\nimport { slot } from '../../utils/private/slot.js'\nimport cache from '../../utils/private/cache.js'\n\nexport default Vue.extend({\n name: 'QSlideTransition',\n\n props: {\n appear: Boolean,\n duration: {\n type: Number,\n default: 300\n }\n },\n\n methods: {\n __begin (el, height, done) {\n // here overflowY is 'hidden'\n if (height !== void 0) {\n el.style.height = `${height}px`\n }\n el.style.transition = `height ${this.duration}ms cubic-bezier(.25, .8, .50, 1)`\n\n this.animating = true\n this.done = done\n },\n\n __end (el, event) {\n el.style.overflowY = null\n el.style.height = null\n el.style.transition = null\n this.__cleanup()\n event !== this.lastEvent && this.$emit(event)\n },\n\n __cleanup () {\n this.done && this.done()\n this.done = null\n this.animating = false\n\n clearTimeout(this.timer)\n clearTimeout(this.timerFallback)\n this.el !== void 0 && this.el.removeEventListener('transitionend', this.animListener)\n this.animListener = null\n }\n },\n\n beforeDestroy () {\n this.animating && this.__cleanup()\n },\n\n render (h) {\n return h('transition', {\n props: {\n css: false,\n appear: this.appear\n },\n on: cache(this, 'tr', {\n enter: (el, done) => {\n let pos = 0\n this.el = el\n\n // if animationg overflowY is already 'hidden'\n if (this.animating === true) {\n this.__cleanup()\n pos = el.offsetHeight === el.scrollHeight ? 0 : void 0\n }\n else {\n this.lastEvent = 'hide'\n el.style.overflowY = 'hidden'\n }\n\n this.__begin(el, pos, done)\n\n this.timer = setTimeout(() => {\n el.style.height = `${el.scrollHeight}px`\n this.animListener = evt => {\n if (Object(evt) !== evt || evt.target === el) {\n this.__end(el, 'show')\n }\n }\n el.addEventListener('transitionend', this.animListener)\n this.timerFallback = setTimeout(this.animListener, this.duration * 1.1)\n }, 100)\n },\n\n leave: (el, done) => {\n let pos\n this.el = el\n\n if (this.animating === true) {\n this.__cleanup()\n }\n else {\n this.lastEvent = 'show'\n // we need to set overflowY 'hidden' before calculating the height\n // or else we get small differences\n el.style.overflowY = 'hidden'\n pos = el.scrollHeight\n }\n\n this.__begin(el, pos, done)\n\n this.timer = setTimeout(() => {\n el.style.height = 0\n this.animListener = evt => {\n if (Object(evt) !== evt || evt.target === el) {\n this.__end(el, 'hide')\n }\n }\n el.addEventListener('transitionend', this.animListener)\n this.timerFallback = setTimeout(this.animListener, this.duration * 1.1)\n }, 100)\n }\n })\n }, slot(this, 'default'))\n }\n})\n","import Vue from 'vue'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nconst insetMap = {\n true: 'inset',\n item: 'item-inset',\n 'item-thumbnail': 'item-thumbnail-inset'\n}\n\nexport const margins = {\n xs: 2,\n sm: 4,\n md: 8,\n lg: 16,\n xl: 24\n}\n\nexport default Vue.extend({\n name: 'QSeparator',\n\n mixins: [ DarkMixin, ListenersMixin ],\n\n props: {\n spaced: [ Boolean, String ],\n inset: [ Boolean, String ],\n vertical: Boolean,\n color: String,\n size: String\n },\n\n computed: {\n orientation () {\n return this.vertical === true\n ? 'vertical'\n : 'horizontal'\n },\n\n classPrefix () {\n return ` q-separator--${this.orientation}`\n },\n\n insetClass () {\n return this.inset !== false\n ? `${this.classPrefix}-${insetMap[this.inset]}`\n : ''\n },\n\n classes () {\n return `q-separator${this.classPrefix}${this.insetClass}` +\n (this.color !== void 0 ? ` bg-${this.color}` : '') +\n (this.isDark === true ? ' q-separator--dark' : '')\n },\n\n style () {\n const style = {}\n\n if (this.size !== void 0) {\n style[ this.vertical === true ? 'width' : 'height' ] = this.size\n }\n\n if (this.spaced !== false) {\n const size = this.spaced === true\n ? `${margins.md}px`\n : this.spaced in margins ? `${margins[this.spaced]}px` : this.spaced\n\n const props = this.vertical === true\n ? [ 'Left', 'Right' ]\n : [ 'Top', 'Bottom' ]\n\n style[`margin${props[0]}`] = style[`margin${props[1]}`] = size\n }\n\n return style\n },\n\n attrs () {\n return {\n 'aria-orientation': this.orientation\n }\n }\n },\n\n render (h) {\n return h('hr', {\n staticClass: 'q-separator',\n class: this.classes,\n style: this.style,\n attrs: this.attrs,\n on: { ...this.qListeners }\n })\n }\n})\n","import Vue from 'vue'\n\nimport QItem from '../item/QItem.js'\nimport QItemSection from '../item/QItemSection.js'\nimport QItemLabel from '../item/QItemLabel.js'\nimport QIcon from '../icon/QIcon.js'\nimport QSlideTransition from '../slide-transition/QSlideTransition.js'\nimport QSeparator from '../separator/QSeparator.js'\n\nimport { routerLinkProps } from '../../mixins/router-link.js'\nimport TimeoutMixin from '../../mixins/timeout.js'\nimport ModelToggleMixin from '../../mixins/model-toggle.js'\nimport DarkMixin from '../../mixins/dark.js'\n\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { slot } from '../../utils/private/slot.js'\nimport cache from '../../utils/private/cache.js'\nimport uid from '../../utils/uid.js'\n\nconst eventName = 'q:expansion-item:close'\nconst LINK_PROPS = Object.keys(routerLinkProps)\n\nexport default Vue.extend({\n name: 'QExpansionItem',\n\n mixins: [ DarkMixin, TimeoutMixin, ModelToggleMixin ],\n\n props: {\n ...routerLinkProps,\n\n icon: String,\n\n label: String,\n labelLines: [ Number, String ],\n\n caption: String,\n captionLines: [ Number, String ],\n\n dense: Boolean,\n\n toggleAriaLabel: String,\n expandIcon: String,\n expandedIcon: String,\n expandIconClass: [ Array, String, Object ],\n duration: Number,\n\n headerInsetLevel: Number,\n contentInsetLevel: Number,\n\n expandSeparator: Boolean,\n defaultOpened: Boolean,\n hideExpandIcon: Boolean,\n expandIconToggle: Boolean,\n switchToggleSide: Boolean,\n denseToggle: Boolean,\n group: String,\n popup: Boolean,\n\n headerStyle: [Array, String, Object],\n headerClass: [Array, String, Object]\n },\n\n data () {\n return {\n showing: this.value !== void 0\n ? this.value\n : this.defaultOpened\n }\n },\n\n watch: {\n showing (val) {\n val === true && this.group !== void 0 && this.$root.$emit(eventName, this)\n },\n\n group (newVal, oldVal) {\n if (newVal !== void 0 && oldVal === void 0) {\n this.$root.$on(eventName, this.__eventHandler)\n }\n else if (newVal === void 0 && oldVal !== void 0) {\n this.$root.$off(eventName, this.__eventHandler)\n }\n }\n },\n\n computed: {\n classes () {\n return `q-expansion-item--${this.showing === true ? 'expanded' : 'collapsed'}` +\n ` q-expansion-item--${this.popup === true ? 'popup' : 'standard'}`\n },\n\n contentStyle () {\n if (this.contentInsetLevel !== void 0) {\n const dir = this.$q.lang.rtl === true ? 'Right' : 'Left'\n return {\n ['padding' + dir]: (this.contentInsetLevel * 56) + 'px'\n }\n }\n },\n\n hasLink () {\n return this.disable !== true && (\n this.href !== void 0 ||\n (this.to !== void 0 && this.to !== null && this.to !== '')\n )\n },\n\n linkProps () {\n const acc = {}\n LINK_PROPS.forEach(key => {\n acc[ key ] = this[ key ]\n })\n return acc\n },\n\n isClickable () {\n return this.hasLink === true || this.expandIconToggle !== true\n },\n\n expansionIcon () {\n return this.expandedIcon !== void 0 && this.showing === true\n ? this.expandedIcon\n : this.expandIcon || this.$q.iconSet.expansionItem[this.denseToggle === true ? 'denseIcon' : 'icon']\n },\n\n activeToggleIcon () {\n return this.disable !== true && (this.hasLink === true || this.expandIconToggle === true)\n },\n\n headerSlotScope () {\n return {\n expanded: this.showing === true,\n detailsId: this.targetUid,\n toggle: this.toggle,\n show: this.show,\n hide: this.hide\n }\n },\n\n toggleAriaAttrs () {\n const toggleAriaLabel = this.toggleAriaLabel !== void 0\n ? this.toggleAriaLabel\n : this.$q.lang.label[ this.showing === true ? 'collapse' : 'expand' ](this.label)\n\n return {\n role: 'button',\n 'aria-expanded': this.showing === true ? 'true' : 'false',\n 'aria-controls': this.targetUid,\n 'aria-label': toggleAriaLabel\n }\n }\n },\n\n methods: {\n __onHeaderClick (e) {\n this.hasLink !== true && this.toggle(e)\n this.$emit('click', e)\n },\n\n __toggleIconKeyboard (e) {\n e.keyCode === 13 && this.__toggleIcon(e, true)\n },\n\n __toggleIcon (e, keyboard) {\n keyboard !== true && this.$refs.blurTarget !== void 0 && this.$refs.blurTarget.focus()\n this.toggle(e)\n stopAndPrevent(e)\n },\n\n __eventHandler (comp) {\n this !== comp && this.group === comp.group && this.hide()\n },\n\n __getToggleIcon (h) {\n const data = {\n staticClass: `q-focusable relative-position cursor-pointer${this.denseToggle === true && this.switchToggleSide === true ? ' items-end' : ''}`,\n class: this.expandIconClass,\n props: {\n side: this.switchToggleSide !== true,\n avatar: this.switchToggleSide\n }\n }\n\n const child = [\n h(QIcon, {\n staticClass: 'q-expansion-item__toggle-icon',\n class: this.expandedIcon === void 0 && this.showing === true\n ? 'q-expansion-item__toggle-icon--rotated'\n : void 0,\n props: { name: this.expansionIcon }\n })\n ]\n\n if (this.activeToggleIcon === true) {\n Object.assign(data, {\n attrs: {\n tabindex: 0,\n ...this.toggleAriaAttrs\n },\n on: cache(this, 'inpExt', {\n click: this.__toggleIcon,\n keyup: this.__toggleIconKeyboard\n })\n })\n\n child.unshift(\n h('div', {\n ref: 'blurTarget',\n staticClass: 'q-expansion-item__toggle-focus q-icon q-focus-helper q-focus-helper--rounded',\n attrs: { tabindex: -1 }\n })\n )\n }\n\n return h(QItemSection, data, child)\n },\n\n __getHeader (h) {\n let child\n\n if (this.$scopedSlots.header !== void 0) {\n child = [].concat(this.$scopedSlots.header(this.headerSlotScope))\n }\n else {\n child = [\n h(QItemSection, [\n h(QItemLabel, {\n props: { lines: this.labelLines }\n }, [ this.label || '' ]),\n\n this.caption\n ? h(QItemLabel, {\n props: { lines: this.captionLines, caption: true }\n }, [ this.caption ])\n : null\n ])\n ]\n\n this.icon && child[this.switchToggleSide === true ? 'push' : 'unshift'](\n h(QItemSection, {\n props: {\n side: this.switchToggleSide === true,\n avatar: this.switchToggleSide !== true\n }\n }, [\n h(QIcon, {\n props: { name: this.icon }\n })\n ])\n )\n }\n\n this.disable !== true && this.hideExpandIcon !== true && child[this.switchToggleSide === true ? 'unshift' : 'push'](\n this.__getToggleIcon(h)\n )\n\n const data = {\n ref: 'item',\n style: this.headerStyle,\n class: this.headerClass,\n props: {\n dark: this.isDark,\n disable: this.disable,\n dense: this.dense,\n insetLevel: this.headerInsetLevel\n }\n }\n\n if (this.isClickable === true) {\n data.props.clickable = true\n\n if (this.hasLink === true) {\n Object.assign(data.props, this.linkProps)\n }\n else {\n data.attrs = this.toggleAriaAttrs\n }\n\n data.on = {\n ...this.qListeners,\n click: this.__onHeaderClick\n }\n }\n\n return h(QItem, data, child)\n },\n\n __getContent (h) {\n const node = [\n this.__getHeader(h),\n\n h(QSlideTransition, {\n props: { duration: this.duration },\n on: cache(this, 'slide', {\n show: () => { this.$emit('after-show') },\n hide: () => { this.$emit('after-hide') }\n })\n }, [\n h('div', {\n staticClass: 'q-expansion-item__content relative-position',\n style: this.contentStyle,\n attrs: { id: this.targetUid },\n directives: [{ name: 'show', value: this.showing }]\n }, slot(this, 'default'))\n ])\n ]\n\n if (this.expandSeparator) {\n node.push(\n h(QSeparator, {\n staticClass: 'q-expansion-item__border q-expansion-item__border--top absolute-top',\n props: { dark: this.isDark }\n }),\n h(QSeparator, {\n staticClass: 'q-expansion-item__border q-expansion-item__border--bottom absolute-bottom',\n props: { dark: this.isDark }\n })\n )\n }\n\n return node\n }\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-expansion-item q-item-type',\n class: this.classes\n }, [\n h(\n 'div',\n { staticClass: 'q-expansion-item__container relative-position' },\n this.__getContent(h)\n )\n ])\n },\n\n created () {\n this.group !== void 0 && this.$root.$on(eventName, this.__eventHandler)\n this.targetUid = `e_${uid()}`\n },\n\n beforeDestroy () {\n this.group !== void 0 && this.$root.$off(eventName, this.__eventHandler)\n }\n})\n","import QExpansionItem from './QExpansionItem.js'\n\nexport {\n QExpansionItem\n}\n","import ListenersMixin from './listeners.js'\n\nconst labelPositions = ['top', 'right', 'bottom', 'left']\n\nexport default {\n mixins: [ ListenersMixin ],\n\n props: {\n type: {\n type: String,\n default: 'a'\n },\n\n outline: Boolean,\n push: Boolean,\n flat: Boolean,\n unelevated: Boolean,\n\n color: String,\n textColor: String,\n glossy: Boolean,\n\n square: Boolean,\n padding: String,\n\n label: {\n type: [ String, Number ],\n default: ''\n },\n labelPosition: {\n type: String,\n default: 'right',\n validator: v => labelPositions.includes(v)\n },\n externalLabel: Boolean,\n hideLabel: {\n type: Boolean\n },\n labelClass: [ Array, String, Object ],\n labelStyle: [ Array, String, Object ],\n\n disable: Boolean,\n\n tabindex: [ Number, String ]\n },\n\n computed: {\n formClass () {\n return `q-fab--form-${this.square === true ? 'square' : 'rounded'}`\n },\n\n stacked () {\n return this.externalLabel === false && ['top', 'bottom'].includes(this.labelPosition)\n },\n\n labelProps () {\n if (this.externalLabel === true) {\n const hideLabel = this.hideLabel === null\n ? this.showing === false\n : this.hideLabel\n\n return {\n action: 'push',\n data: {\n staticClass: 'q-fab__label q-tooltip--style q-fab__label--external' +\n ` q-fab__label--external-${this.labelPosition}` +\n (hideLabel === true ? ' q-fab__label--external-hidden' : ''),\n style: this.labelStyle,\n class: this.labelClass\n }\n }\n }\n\n return {\n action: [ 'left', 'top' ].includes(this.labelPosition)\n ? 'unshift'\n : 'push',\n data: {\n staticClass: `q-fab__label q-fab__label--internal q-fab__label--internal-${this.labelPosition}` +\n (this.hideLabel === true ? ' q-fab__label--internal-hidden' : ''),\n style: this.labelStyle,\n class: this.labelClass\n }\n }\n }\n }\n}\n","import Vue from 'vue'\n\nimport QBtn from '../btn/QBtn.js'\nimport QIcon from '../icon/QIcon.js'\n\nimport FabMixin from '../../mixins/fab.js'\nimport AttrsMixin from '../../mixins/attrs.js'\nimport ModelToggleMixin from '../../mixins/model-toggle.js'\n\nimport { slot, mergeSlot } from '../../utils/private/slot.js'\nimport cache from '../../utils/private/cache.js'\nimport uid from '../../utils/uid.js'\n\nconst directions = ['up', 'right', 'down', 'left']\nconst alignValues = [ 'left', 'center', 'right' ]\n\nexport default Vue.extend({\n name: 'QFab',\n\n inheritAttrs: false,\n\n mixins: [ FabMixin, AttrsMixin, ModelToggleMixin ],\n\n provide () {\n return {\n __qFab: this\n }\n },\n\n props: {\n icon: String,\n activeIcon: String,\n\n hideIcon: Boolean,\n hideLabel: {\n default: null\n },\n\n direction: {\n type: String,\n default: 'right',\n validator: v => directions.includes(v)\n },\n\n persistent: Boolean,\n\n verticalActionsAlign: {\n type: String,\n default: 'center',\n validator: v => alignValues.includes(v)\n }\n },\n\n data () {\n return {\n showing: this.value === true\n }\n },\n\n computed: {\n hideOnRouteChange () {\n return this.persistent !== true\n },\n\n classes () {\n return `q-fab--align-${this.verticalActionsAlign} ${this.formClass}` +\n (this.showing === true ? ' q-fab--opened' : '')\n },\n\n actionsClasses () {\n return `q-fab__actions--${this.direction}` + (this.showing === true ? ' q-fab__actions--opened' : '')\n },\n\n actionsAttrs () {\n const attrs = {\n id: this.targetUid,\n role: 'menu'\n }\n\n if (this.showing !== true) {\n attrs['aria-hidden'] = 'true'\n }\n\n return attrs\n },\n\n iconHolderClasses () {\n return this.showing === true ? 'q-fab__icon-holder--opened' : ''\n },\n\n attrs () {\n return {\n 'aria-expanded': this.showing === true ? 'true' : 'false',\n 'aria-haspopup': 'true',\n 'aria-controls': this.targetUid,\n ...this.qAttrs\n }\n },\n\n slotScope () {\n return { opened: this.showing }\n }\n },\n\n methods: {\n __onChildClick (evt) {\n this.hide(evt)\n\n if (this.$refs.trigger && this.$refs.trigger.$el) {\n this.$refs.trigger.$el.focus()\n }\n },\n\n __getIcon (h, kebab, camel) {\n const slotFn = this.$scopedSlots[kebab]\n const staticClass = `q-fab__${kebab} absolute-full`\n\n return slotFn === void 0\n ? h(QIcon, { staticClass, props: { name: this[camel] || this.$q.iconSet.fab[camel] } })\n : h('div', { staticClass }, slotFn(this.slotScope))\n }\n },\n\n render (h) {\n const child = []\n\n this.hideIcon !== true && child.push(\n h('div', { staticClass: 'q-fab__icon-holder', class: this.iconHolderClasses }, [\n this.__getIcon(h, 'icon', 'icon'),\n this.__getIcon(h, 'active-icon', 'activeIcon')\n ])\n )\n\n if (this.label !== '' || this.$scopedSlots.label !== void 0) {\n child[this.labelProps.action](\n h('div', this.labelProps.data, this.$scopedSlots.label !== void 0 ? this.$scopedSlots.label(this.slotScope) : [ this.label ])\n )\n }\n\n return h('div', {\n staticClass: 'q-fab z-fab row inline justify-center',\n class: this.classes,\n on: { ...this.qListeners }\n }, [\n h(QBtn, {\n ref: 'trigger',\n class: this.formClass,\n props: {\n ...this.$props,\n noWrap: true,\n stack: this.stacked,\n align: void 0,\n icon: void 0,\n label: void 0,\n noCaps: true,\n fab: true\n },\n attrs: this.attrs,\n on: cache(this, 'tog', {\n click: this.toggle\n })\n }, mergeSlot(child, this, 'tooltip')),\n\n h('div', {\n staticClass: 'q-fab__actions flex no-wrap inline',\n class: this.actionsClasses,\n attrs: this.actionsAttrs\n }, slot(this, 'default'))\n ])\n },\n\n created () {\n this.targetUid = `fb_${uid()}`\n }\n})\n","import Vue from 'vue'\n\nimport QBtn from '../btn/QBtn.js'\nimport QIcon from '../icon/QIcon.js'\n\nimport FabMixin from '../../mixins/fab.js'\n\nimport { noop } from '../../utils/event.js'\nimport { mergeSlot } from '../../utils/private/slot.js'\n\nconst anchorMap = {\n start: 'self-end',\n center: 'self-center',\n end: 'self-start'\n}\n\nconst anchorValues = Object.keys(anchorMap)\n\nexport default Vue.extend({\n name: 'QFabAction',\n\n mixins: [ FabMixin ],\n\n props: {\n icon: {\n type: String,\n default: ''\n },\n\n anchor: {\n type: String,\n validator: v => anchorValues.includes(v)\n },\n\n to: [ String, Object ],\n replace: Boolean\n },\n\n inject: {\n __qFab: {\n default () {\n return {\n showing: true,\n __onChildClick: noop\n }\n }\n }\n },\n\n computed: {\n classes () {\n const align = anchorMap[this.anchor]\n return this.formClass + (align !== void 0 ? ` ${align}` : '')\n },\n\n onEvents () {\n return {\n ...this.qListeners,\n click: this.click\n }\n },\n\n isDisabled () {\n return this.__qFab.showing !== true || this.disable === true\n }\n },\n\n methods: {\n click (e) {\n this.__qFab.__onChildClick(e)\n this.$emit('click', e)\n }\n },\n\n render (h) {\n const child = []\n\n if (this.$scopedSlots.icon !== void 0) {\n child.push(this.$scopedSlots.icon())\n }\n else if (this.icon !== '') {\n child.push(\n h(QIcon, {\n props: { name: this.icon }\n })\n )\n }\n\n if (this.label !== '' || this.$scopedSlots.label !== void 0) {\n child[this.labelProps.action](\n h('div', this.labelProps.data, this.$scopedSlots.label !== void 0 ? this.$scopedSlots.label() : [ this.label ])\n )\n }\n\n return h(QBtn, {\n class: this.classes,\n props: {\n ...this.$props,\n noWrap: true,\n stack: this.stacked,\n icon: void 0,\n label: void 0,\n noCaps: true,\n fabMini: true,\n disable: this.isDisabled\n },\n on: this.onEvents\n }, mergeSlot(child, this, 'default'))\n }\n})\n","import QFab from './QFab.js'\nimport QFabAction from './QFabAction.js'\n\nexport {\n QFab,\n QFabAction\n}\n","import { testPattern } from '../utils/patterns.js'\nimport debounce from '../utils/debounce.js'\n\nconst lazyRulesValues = [ true, false, 'ondemand' ]\n\nexport default {\n props: {\n value: {},\n\n error: {\n type: Boolean,\n default: null\n },\n errorMessage: String,\n noErrorIcon: Boolean,\n\n rules: Array,\n reactiveRules: Boolean,\n lazyRules: {\n type: [ Boolean, String ],\n validator: v => lazyRulesValues.includes(v)\n }\n },\n\n data () {\n return {\n isDirty: null,\n innerError: false,\n innerErrorMessage: void 0\n }\n },\n\n watch: {\n value () {\n this.__validateIfNeeded()\n },\n\n disable (val) {\n if (val === true) {\n this.__resetValidation()\n }\n else {\n this.__validateIfNeeded(true)\n }\n },\n\n reactiveRules: {\n handler (val) {\n if (val === true) {\n if (this.unwatchRules === void 0) {\n this.unwatchRules = this.$watch('rules', () => {\n this.__validateIfNeeded(true)\n })\n }\n }\n else if (this.unwatchRules !== void 0) {\n this.unwatchRules()\n this.unwatchRules = void 0\n }\n },\n immediate: true\n },\n\n focused (focused) {\n if (focused === true) {\n if (this.isDirty === null) {\n this.isDirty = false\n }\n }\n else if (this.isDirty === false) {\n this.isDirty = true\n\n if (\n this.hasActiveRules === true &&\n this.lazyRules !== 'ondemand' &&\n // Don't re-trigger if it's already in progress;\n // It might mean that focus switched to submit btn and\n // QForm's submit() has been called already (ENTER key)\n this.innerLoading === false\n ) {\n this.debouncedValidate()\n }\n }\n },\n\n hasError (invalid) {\n const targetEl = document.getElementById(this.targetUid)\n targetEl !== null && targetEl.setAttribute('aria-invalid', invalid === true)\n }\n },\n\n computed: {\n hasRules () {\n return this.rules !== void 0 &&\n this.rules !== null &&\n this.rules.length > 0\n },\n\n hasActiveRules () {\n return this.disable !== true && this.hasRules === true\n },\n\n hasError () {\n return this.error === true || this.innerError === true\n },\n\n computedErrorMessage () {\n return typeof this.errorMessage === 'string' && this.errorMessage.length > 0\n ? this.errorMessage\n : this.innerErrorMessage\n }\n },\n\n created () {\n this.debouncedValidate = debounce(this.validate, 0)\n },\n\n mounted () {\n this.validateIndex = 0\n },\n\n beforeDestroy () {\n this.unwatchRules !== void 0 && this.unwatchRules()\n this.debouncedValidate.cancel()\n },\n\n methods: {\n resetValidation () {\n this.isDirty = null\n this.__resetValidation()\n },\n\n /*\n * Return value\n * - true (validation succeeded)\n * - false (validation failed)\n * - Promise (pending async validation)\n */\n validate (val = this.value) {\n if (this.hasActiveRules !== true) {\n return true\n }\n\n const index = ++this.validateIndex\n\n const setDirty = this.innerLoading !== true\n ? () => this.isDirty !== true && (this.isDirty = true)\n : () => {}\n\n const update = (err, msg) => {\n err === true && setDirty()\n\n if (this.innerError !== err) {\n this.innerError = err\n }\n\n const m = msg || void 0\n\n if (this.innerErrorMessage !== m) {\n this.innerErrorMessage = m\n }\n\n if (this.innerLoading !== false) {\n this.innerLoading = false\n }\n }\n\n const promises = []\n\n for (let i = 0; i < this.rules.length; i++) {\n const rule = this.rules[i]\n let res\n\n if (typeof rule === 'function') {\n res = rule(val, testPattern)\n }\n else if (typeof rule === 'string' && testPattern[rule] !== void 0) {\n res = testPattern[rule](val)\n }\n\n if (res === false || typeof res === 'string') {\n update(true, res)\n return false\n }\n else if (res !== true && res !== void 0) {\n promises.push(res)\n }\n }\n\n if (promises.length === 0) {\n update(false)\n return true\n }\n\n if (this.innerLoading !== true) {\n this.innerLoading = true\n }\n\n return Promise.all(promises).then(\n res => {\n if (res === void 0 || Array.isArray(res) === false || res.length === 0) {\n index === this.validateIndex && update(false)\n return true\n }\n\n const msg = res.find(r => r === false || typeof r === 'string')\n index === this.validateIndex && update(msg !== void 0, msg)\n return msg === void 0\n },\n e => {\n if (index === this.validateIndex) {\n console.error(e)\n update(true)\n }\n\n return false\n }\n )\n },\n\n __resetValidation () {\n this.debouncedValidate.cancel()\n this.validateIndex++\n this.innerLoading = false\n this.innerError = false\n this.innerErrorMessage = void 0\n },\n\n __validateIfNeeded (changedRules) {\n if (\n this.hasActiveRules === true &&\n this.lazyRules !== 'ondemand' &&\n (this.isDirty === true || (this.lazyRules !== true && changedRules !== true))\n ) {\n this.debouncedValidate()\n }\n }\n }\n}\n","import Vue from 'vue'\n\nimport { fromSSR } from '../../plugins/Platform.js'\n\nimport QIcon from '../icon/QIcon.js'\nimport QSpinner from '../spinner/QSpinner.js'\n\nimport ValidateMixin from '../../mixins/validate.js'\nimport DarkMixin from '../../mixins/dark.js'\nimport AttrsMixin, { iconAsButton } from '../../mixins/attrs.js'\n\nimport { slot } from '../../utils/private/slot.js'\nimport uid from '../../utils/uid.js'\nimport { stop, prevent, stopAndPrevent } from '../../utils/event.js'\nimport { addFocusFn, removeFocusFn } from '../../utils/private/focus-manager.js'\n\nfunction getTargetUid (val) {\n return val === void 0 ? `f_${uid()}` : val\n}\n\nexport default Vue.extend({\n name: 'QField',\n\n mixins: [ DarkMixin, ValidateMixin, AttrsMixin ],\n\n inheritAttrs: false,\n\n props: {\n label: String,\n stackLabel: Boolean,\n hint: String,\n hideHint: Boolean,\n prefix: String,\n suffix: String,\n\n labelColor: String,\n color: String,\n bgColor: String,\n\n filled: Boolean,\n outlined: Boolean,\n borderless: Boolean,\n standout: [Boolean, String],\n\n square: Boolean,\n\n loading: Boolean,\n\n labelSlot: Boolean,\n\n bottomSlots: Boolean,\n hideBottomSpace: Boolean,\n\n rounded: Boolean,\n dense: Boolean,\n itemAligned: Boolean,\n\n counter: Boolean,\n\n clearable: Boolean,\n clearIcon: String,\n\n disable: Boolean,\n readonly: Boolean,\n\n autofocus: Boolean,\n\n for: String,\n\n maxlength: [Number, String],\n maxValues: [Number, String] // private, do not add to JSON; internally needed by QSelect\n },\n\n data () {\n return {\n focused: false,\n targetUid: getTargetUid(this.for),\n\n // used internally by validation for QInput\n // or menu handling for QSelect\n innerLoading: false\n }\n },\n\n watch: {\n for (val) {\n // don't transform targetUid into a computed\n // prop as it will break SSR\n this.targetUid = getTargetUid(val)\n }\n },\n\n computed: {\n editable () {\n return this.disable !== true && this.readonly !== true\n },\n\n hasValue () {\n const value = this.__getControl === void 0 ? this.value : this.innerValue\n\n return value !== void 0 &&\n value !== null &&\n ('' + value).length > 0\n },\n\n computedCounter () {\n if (this.counter !== false) {\n const len = typeof this.value === 'string' || typeof this.value === 'number'\n ? ('' + this.value).length\n : (Array.isArray(this.value) === true ? this.value.length : 0)\n\n const max = this.maxlength !== void 0\n ? this.maxlength\n : this.maxValues\n\n return len + (max !== void 0 ? ' / ' + max : '')\n }\n },\n\n floatingLabel () {\n return this.stackLabel === true ||\n this.focused === true ||\n typeof this.inputValue === 'number' ||\n (typeof this.inputValue === 'string' && this.inputValue.length > 0) ||\n (\n this.hideSelected !== true &&\n this.hasValue === true &&\n (this.type !== 'number' || isNaN(this.value) === false)\n ) ||\n (\n this.displayValue !== void 0 &&\n this.displayValue !== null &&\n ('' + this.displayValue).length > 0\n )\n },\n\n shouldRenderBottom () {\n return this.bottomSlots === true ||\n this.hint !== void 0 ||\n this.hasRules === true ||\n this.counter === true ||\n this.error !== null\n },\n\n classes () {\n return {\n [this.fieldClass]: this.fieldClass !== void 0,\n\n [`q-field--${this.styleType}`]: true,\n 'q-field--rounded': this.rounded,\n 'q-field--square': this.square,\n\n 'q-field--focused': this.focused === true,\n 'q-field--highlighted': this.focused === true || this.hasError === true,\n 'q-field--float': this.floatingLabel,\n 'q-field--labeled': this.hasLabel,\n\n 'q-field--dense': this.dense,\n 'q-field--item-aligned q-item-type': this.itemAligned,\n 'q-field--dark': this.isDark,\n\n 'q-field--auto-height': this.__getControl === void 0,\n\n 'q-field--with-bottom': this.hideBottomSpace !== true && this.shouldRenderBottom === true,\n 'q-field--error': this.hasError,\n\n 'q-field--readonly': this.readonly === true && this.disable !== true,\n 'q-field--disabled': this.disable === true\n }\n },\n\n styleType () {\n if (this.filled === true) { return 'filled' }\n if (this.outlined === true) { return 'outlined' }\n if (this.borderless === true) { return 'borderless' }\n if (this.standout) { return 'standout' }\n return 'standard'\n },\n\n contentClass () {\n const cls = []\n\n if (this.hasError === true) {\n cls.push('text-negative')\n }\n else if (typeof this.standout === 'string' && this.standout.length > 0 && this.focused === true) {\n return this.standout\n }\n else if (this.color !== void 0) {\n cls.push('text-' + this.color)\n }\n\n if (this.bgColor !== void 0) {\n cls.push(`bg-${this.bgColor}`)\n }\n\n return cls\n },\n\n hasLabel () {\n return this.labelSlot === true || this.label !== void 0\n },\n\n labelClass () {\n if (\n this.labelColor !== void 0 &&\n this.hasError !== true\n ) {\n return 'text-' + this.labelColor\n }\n },\n\n controlSlotScope () {\n return {\n id: this.targetUid,\n field: this.$el,\n editable: this.editable,\n focused: this.focused,\n floatingLabel: this.floatingLabel,\n value: this.value,\n emitValue: this.__emitValue\n }\n },\n\n bottomSlotScope () {\n return {\n id: this.targetUid,\n field: this.$el,\n editable: this.editable,\n focused: this.focused,\n value: this.value,\n errorMessage: this.computedErrorMessage\n }\n },\n\n attrs () {\n const attrs = {\n for: this.targetUid\n }\n\n if (this.disable === true) {\n attrs['aria-disabled'] = 'true'\n }\n else if (this.readonly === true) {\n attrs['aria-readonly'] = 'true'\n }\n\n return attrs\n }\n },\n\n methods: {\n focus () {\n addFocusFn(this.__focus)\n },\n\n blur () {\n removeFocusFn(this.__focus)\n const el = document.activeElement\n // IE can have null document.activeElement\n if (el !== null && this.$el.contains(el)) {\n el.blur()\n }\n },\n\n __focus () {\n const el = document.activeElement\n let target = this.$refs.target\n // IE can have null document.activeElement\n if (target !== void 0 && (el === null || el.id !== this.targetUid)) {\n target.hasAttribute('tabindex') === true || (target = target.querySelector('[tabindex]'))\n target !== null && target !== el && target.focus({ preventScroll: true })\n }\n },\n\n __getContent (h) {\n const node = []\n\n this.$scopedSlots.prepend !== void 0 && node.push(\n h('div', {\n staticClass: 'q-field__prepend q-field__marginal row no-wrap items-center',\n key: 'prepend',\n on: this.slotsEvents\n }, this.$scopedSlots.prepend())\n )\n\n node.push(\n h('div', {\n staticClass: 'q-field__control-container col relative-position row no-wrap q-anchor--skip'\n }, this.__getControlContainer(h))\n )\n\n this.hasError === true && this.noErrorIcon === false && node.push(\n this.__getInnerAppendNode(h, 'error', [\n h(QIcon, { props: { name: this.$q.iconSet.field.error, color: 'negative' } })\n ])\n )\n\n if (this.loading === true || this.innerLoading === true) {\n node.push(\n this.__getInnerAppendNode(\n h,\n 'inner-loading-append',\n this.$scopedSlots.loading !== void 0\n ? this.$scopedSlots.loading()\n : [ h(QSpinner, { props: { color: this.color } }) ]\n )\n )\n }\n else if (this.clearable === true && this.hasValue === true && this.editable === true) {\n node.push(\n this.__getInnerAppendNode(h, 'inner-clearable-append', [\n h(QIcon, {\n staticClass: 'q-field__focusable-action',\n props: { tag: 'button', name: this.clearIcon || this.$q.iconSet.field.clear },\n attrs: iconAsButton,\n on: this.clearableEvents\n })\n ])\n )\n }\n\n this.$scopedSlots.append !== void 0 && node.push(\n h('div', {\n staticClass: 'q-field__append q-field__marginal row no-wrap items-center',\n key: 'append',\n on: this.slotsEvents\n }, this.$scopedSlots.append())\n )\n\n this.__getInnerAppend !== void 0 && node.push(\n this.__getInnerAppendNode(h, 'inner-append', this.__getInnerAppend(h))\n )\n\n this.__getControlChild !== void 0 && node.push(\n this.__getControlChild(h)\n )\n\n return node\n },\n\n __getControlContainer (h) {\n const node = []\n\n this.prefix !== void 0 && this.prefix !== null && node.push(\n h('div', {\n staticClass: 'q-field__prefix no-pointer-events row items-center'\n }, [ this.prefix ])\n )\n\n if (this.hasShadow === true && this.__getShadowControl !== void 0) {\n node.push(\n this.__getShadowControl(h)\n )\n }\n\n if (this.__getControl !== void 0) {\n node.push(this.__getControl(h))\n }\n // internal usage only:\n else if (this.$scopedSlots.rawControl !== void 0) {\n node.push(this.$scopedSlots.rawControl())\n }\n else if (this.$scopedSlots.control !== void 0) {\n node.push(\n h('div', {\n ref: 'target',\n staticClass: 'q-field__native row',\n attrs: {\n tabindex: -1,\n ...this.qAttrs,\n 'data-autofocus': this.autofocus || void 0\n }\n }, this.$scopedSlots.control(this.controlSlotScope))\n )\n }\n\n this.hasLabel === true && node.push(\n h('div', {\n staticClass: 'q-field__label no-pointer-events absolute ellipsis',\n class: this.labelClass\n }, [ slot(this, 'label', this.label) ])\n )\n\n this.suffix !== void 0 && this.suffix !== null && node.push(\n h('div', {\n staticClass: 'q-field__suffix no-pointer-events row items-center'\n }, [ this.suffix ])\n )\n\n return node.concat(\n this.__getDefaultSlot !== void 0\n ? this.__getDefaultSlot(h)\n : slot(this, 'default')\n )\n },\n\n __getBottom (h) {\n let msg, key\n\n if (this.hasError === true) {\n key = 'q--slot-error'\n\n if (this.$scopedSlots.error !== void 0) {\n msg = this.$scopedSlots.error(this.bottomSlotScope)\n }\n else if (this.computedErrorMessage !== void 0) {\n msg = [ h('div', { attrs: { role: 'alert' } }, [ this.computedErrorMessage ]) ]\n key = this.computedErrorMessage\n }\n }\n else if (this.hideHint !== true || this.focused === true) {\n key = 'q--slot-hint'\n\n if (this.$scopedSlots.hint !== void 0) {\n msg = this.$scopedSlots.hint(this.bottomSlotScope)\n }\n else if (this.hint !== void 0) {\n msg = [ h('div', [ this.hint ]) ]\n key = this.hint\n }\n }\n\n const hasCounter = this.counter === true || this.$scopedSlots.counter !== void 0\n\n if (this.hideBottomSpace === true && hasCounter === false && msg === void 0) {\n return\n }\n\n const main = h('div', {\n key,\n staticClass: 'q-field__messages col'\n }, msg)\n\n return h('div', {\n staticClass: 'q-field__bottom row items-start q-field__bottom--' +\n (this.hideBottomSpace !== true ? 'animated' : 'stale'),\n on: { click: prevent }\n }, [\n this.hideBottomSpace === true\n ? main\n : h('transition', { props: { name: 'q-transition--field-message' } }, [\n main\n ]),\n\n hasCounter === true\n ? h('div', {\n staticClass: 'q-field__counter'\n }, this.$scopedSlots.counter !== void 0 ? this.$scopedSlots.counter() : [ this.computedCounter ])\n : null\n ])\n },\n\n __getInnerAppendNode (h, key, content) {\n return content === null ? null : h('div', {\n staticClass: 'q-field__append q-field__marginal row no-wrap items-center q-anchor--skip',\n key\n }, content)\n },\n\n __onControlPopupShow (e) {\n e !== void 0 && stop(e)\n this.$emit('popup-show', e)\n this.hasPopupOpen = true\n this.__onControlFocusin(e)\n },\n\n __onControlPopupHide (e) {\n e !== void 0 && stop(e)\n this.$emit('popup-hide', e)\n this.hasPopupOpen = false\n this.__onControlFocusout(e)\n },\n\n __onControlFocusin (e) {\n clearTimeout(this.focusoutTimer)\n if (this.editable === true && this.focused === false) {\n this.focused = true\n this.$emit('focus', e)\n }\n },\n\n __onControlFocusout (e, then) {\n clearTimeout(this.focusoutTimer)\n this.focusoutTimer = setTimeout(() => {\n if (\n document.hasFocus() === true && (\n this.hasPopupOpen === true ||\n this.$refs === void 0 ||\n this.$refs.control === void 0 ||\n this.$refs.control.contains(document.activeElement) !== false\n )\n ) {\n return\n }\n\n if (this.focused === true) {\n this.focused = false\n this.$emit('blur', e)\n }\n\n then !== void 0 && then()\n })\n },\n\n __clearValue (e) {\n // prevent activating the field but keep focus on desktop\n stopAndPrevent(e)\n\n if (this.$q.platform.is.mobile !== true) {\n const el = this.$refs.target || this.$el\n el.focus()\n }\n else if (this.$el.contains(document.activeElement) === true) {\n document.activeElement.blur()\n }\n\n if (this.type === 'file') {\n // do not let focus be triggered\n // as it will make the native file dialog\n // appear for another selection\n this.$refs.input.value = null\n }\n\n this.$emit('input', null)\n this.$emit('clear', this.value)\n\n this.$nextTick(() => {\n this.resetValidation()\n\n if (this.$q.platform.is.mobile !== true) {\n this.isDirty = false\n }\n })\n },\n\n __emitValue (value) {\n this.$emit('input', value)\n }\n },\n\n render (h) {\n this.__onPreRender !== void 0 && this.__onPreRender()\n this.__onPostRender !== void 0 && this.$nextTick(this.__onPostRender)\n\n const attrs = this.__getControl === void 0 && this.$scopedSlots.control === void 0\n ? {\n ...this.qAttrs,\n 'data-autofocus': this.autofocus || void 0,\n ...this.attrs\n }\n : this.attrs\n\n return h('label', {\n staticClass: 'q-field q-validation-component row no-wrap items-start',\n class: this.classes,\n attrs\n }, [\n this.$scopedSlots.before !== void 0 ? h('div', {\n staticClass: 'q-field__before q-field__marginal row no-wrap items-center',\n on: this.slotsEvents\n }, this.$scopedSlots.before()) : null,\n\n h('div', {\n staticClass: 'q-field__inner relative-position col self-stretch'\n }, [\n h('div', {\n ref: 'control',\n staticClass: 'q-field__control relative-position row no-wrap',\n class: this.contentClass,\n attrs: { tabindex: -1 },\n on: this.controlEvents\n }, this.__getContent(h)),\n\n this.shouldRenderBottom === true\n ? this.__getBottom(h)\n : null\n ]),\n\n this.$scopedSlots.after !== void 0 ? h('div', {\n staticClass: 'q-field__after q-field__marginal row no-wrap items-center',\n on: this.slotsEvents\n }, this.$scopedSlots.after()) : null\n ])\n },\n\n created () {\n this.__onPreRender !== void 0 && this.__onPreRender()\n\n this.slotsEvents = { click: prevent }\n\n this.clearableEvents = { click: this.__clearValue }\n\n this.controlEvents = this.__getControlEvents !== void 0\n ? this.__getControlEvents()\n : {\n focusin: this.__onControlFocusin,\n focusout: this.__onControlFocusout,\n 'popup-show': this.__onControlPopupShow,\n 'popup-hide': this.__onControlPopupHide\n }\n },\n\n mounted () {\n if (fromSSR === true && this.for === void 0) {\n this.targetUid = getTargetUid()\n }\n\n this.autofocus === true && this.focus()\n },\n\n activated () {\n if (this.shouldActivate !== true) { return }\n this.autofocus === true && this.focus()\n },\n\n deactivated () {\n this.shouldActivate = true\n },\n\n beforeDestroy () {\n clearTimeout(this.focusoutTimer)\n }\n})\n","import QField from './QField.js'\n\nexport {\n QField\n}\n","import Platform from '../plugins/Platform.js'\nimport { stop, stopAndPrevent } from '../utils/event.js'\nimport cache from '../utils/private/cache.js'\n\nfunction filterFiles (files, rejectedFiles, failedPropValidation, filterFn) {\n const acceptedFiles = []\n\n files.forEach(file => {\n if (filterFn(file) === true) {\n acceptedFiles.push(file)\n }\n else {\n rejectedFiles.push({ failedPropValidation, file })\n }\n })\n\n return acceptedFiles\n}\n\nfunction stopAndPreventDrag (e) {\n e && e.dataTransfer && (e.dataTransfer.dropEffect = 'copy')\n stopAndPrevent(e)\n}\n\nexport default {\n props: {\n multiple: Boolean,\n accept: String,\n capture: String,\n maxFileSize: [ Number, String ],\n maxTotalSize: [ Number, String ],\n maxFiles: [ Number, String ],\n filter: Function\n },\n\n computed: {\n extensions () {\n if (this.accept !== void 0) {\n return this.accept.split(',').map(ext => {\n ext = ext.trim()\n if (ext === '*') { // support \"*\"\n return '*/'\n }\n else if (ext.endsWith('/*')) { // support \"image/*\" or \"*/*\"\n ext = ext.slice(0, ext.length - 1)\n }\n return ext.toUpperCase()\n })\n }\n },\n\n maxFilesNumber () {\n return parseInt(this.maxFiles, 10)\n },\n\n maxTotalSizeNumber () {\n return parseInt(this.maxTotalSize, 10)\n }\n },\n\n methods: {\n pickFiles (ev) {\n if (this.editable === true) {\n if (ev !== Object(ev)) {\n ev = { target: null }\n }\n\n if (ev.target !== null && ev.target.matches('input[type=\"file\"]') === true) {\n // stop propagation if it's not a real pointer event\n ev.clientX === 0 && ev.clientY === 0 && stop(ev)\n }\n else {\n const input = this.__getFileInput()\n input && input !== ev.target && input.click(ev)\n }\n }\n },\n\n addFiles (files) {\n if (this.editable && files) {\n this.__addFiles(null, files)\n }\n },\n\n __processFiles (e, filesToProcess, currentFileList, append) {\n let files = Array.from(filesToProcess || e.target.files)\n const rejectedFiles = []\n\n const done = () => {\n if (rejectedFiles.length > 0) {\n this.$emit('rejected', rejectedFiles)\n }\n }\n\n // filter file types\n if (this.accept !== void 0 && this.extensions.indexOf('*/') === -1) {\n files = filterFiles(files, rejectedFiles, 'accept', file => {\n return this.extensions.some(ext => (\n file.type.toUpperCase().startsWith(ext) ||\n file.name.toUpperCase().endsWith(ext)\n ))\n })\n\n if (files.length === 0) { return done() }\n }\n\n // filter max file size\n if (this.maxFileSize !== void 0) {\n const maxFileSize = parseInt(this.maxFileSize, 10)\n files = filterFiles(files, rejectedFiles, 'max-file-size', file => {\n return file.size <= maxFileSize\n })\n\n if (files.length === 0) { return done() }\n }\n\n // Cordova/iOS allows selecting multiple files even when the\n // multiple attribute is not specified. We also normalize drag'n'dropped\n // files here:\n if (this.multiple !== true && files.length > 0) {\n files = [ files[0] ]\n }\n\n files.forEach(file => {\n file.__key = file.webkitRelativePath + file.lastModified + file.name + file.size\n })\n\n if (append === true) {\n // Avoid duplicate files\n const filenameMap = currentFileList.map(entry => entry.__key)\n files = filterFiles(files, rejectedFiles, 'duplicate', file => {\n return filenameMap.includes(file.__key) === false\n })\n }\n\n if (files.length === 0) { return done() }\n\n if (this.maxTotalSize !== void 0) {\n let size = append === true\n ? currentFileList.reduce((total, file) => total + file.size, 0)\n : 0\n\n files = filterFiles(files, rejectedFiles, 'max-total-size', file => {\n size += file.size\n return size <= this.maxTotalSizeNumber\n })\n\n if (files.length === 0) { return done() }\n }\n\n // do we have custom filter function?\n if (typeof this.filter === 'function') {\n const filteredFiles = this.filter(files)\n files = filterFiles(files, rejectedFiles, 'filter', file => {\n return filteredFiles.includes(file)\n })\n }\n\n if (this.maxFiles !== void 0) {\n let filesNumber = append === true\n ? currentFileList.length\n : 0\n\n files = filterFiles(files, rejectedFiles, 'max-files', () => {\n filesNumber++\n return filesNumber <= this.maxFilesNumber\n })\n\n if (files.length === 0) { return done() }\n }\n\n done()\n\n if (files.length > 0) {\n return files\n }\n },\n\n __onDragOver (e) {\n stopAndPreventDrag(e)\n this.dnd !== true && (this.dnd = true)\n },\n\n __onDragLeave (e) {\n stopAndPrevent(e)\n\n // Safari bug: relatedTarget is null for over 10 years\n // https://bugs.webkit.org/show_bug.cgi?id=66547\n const gone = e.relatedTarget !== null || Platform.is.safari !== true\n ? e.relatedTarget !== this.$refs.dnd\n : document.elementsFromPoint(e.clientX, e.clientY).includes(this.$refs.dnd) === false\n\n gone === true && (this.dnd = false)\n },\n\n __onDrop (e) {\n stopAndPreventDrag(e)\n const files = e.dataTransfer.files\n\n if (files.length > 0) {\n this.__addFiles(null, files)\n }\n\n this.dnd = false\n },\n\n __getDnd (h, type) {\n if (this.dnd === true) {\n return h('div', {\n staticClass: `q-${type}__dnd absolute-full`,\n ref: 'dnd',\n on: cache(this, 'dnd', {\n dragenter: stopAndPreventDrag,\n dragover: stopAndPreventDrag,\n dragleave: this.__onDragLeave,\n drop: this.__onDrop\n })\n })\n }\n }\n }\n}\n\nexport const FileValueMixin = {\n computed: {\n formDomProps () {\n if (this.type !== 'file') {\n return\n }\n\n try {\n const dt = 'DataTransfer' in window\n ? new DataTransfer()\n : ('ClipboardEvent' in window\n ? new ClipboardEvent('').clipboardData\n : void 0\n )\n\n if (Object(this.value) === this.value) {\n ('length' in this.value\n ? Array.from(this.value)\n : [ this.value ]\n ).forEach(file => {\n dt.items.add(file)\n })\n }\n\n return {\n files: dt.files\n }\n }\n catch (e) {\n return {\n files: void 0\n }\n }\n }\n }\n}\n","import Vue from 'vue'\n\nimport QField from '../field/QField.js'\nimport QChip from '../chip/QChip.js'\n\nimport { FormFieldMixin } from '../../mixins/form.js'\nimport FileMixin, { FileValueMixin } from '../../mixins/file.js'\n\nimport { isSSR } from '../../plugins/Platform'\nimport { humanStorageSize } from '../../utils/format.js'\nimport cache from '../../utils/private/cache.js'\nimport { prevent } from '../../utils/event.js'\n\nexport default Vue.extend({\n name: 'QFile',\n\n mixins: [ QField, FileMixin, FormFieldMixin, FileValueMixin ],\n\n props: {\n /* SSR does not know about File & FileList */\n value: isSSR === true\n ? {}\n : [ File, FileList, Array ],\n\n append: Boolean,\n useChips: Boolean,\n displayValue: [ String, Number ],\n\n tabindex: {\n type: [ String, Number ],\n default: 0\n },\n\n counterLabel: Function,\n\n inputClass: [ Array, String, Object ],\n inputStyle: [ Array, String, Object ]\n },\n\n data () {\n return {\n dnd: false\n }\n },\n\n computed: {\n innerValue () {\n return Object(this.value) === this.value\n ? ('length' in this.value ? Array.from(this.value) : [ this.value ])\n : []\n },\n\n selectedString () {\n return this.innerValue\n .map(file => file.name)\n .join(', ')\n },\n\n totalSize () {\n return humanStorageSize(\n this.innerValue.reduce((acc, file) => acc + file.size, 0)\n )\n },\n\n counterProps () {\n return {\n totalSize: this.totalSize,\n filesNumber: this.innerValue.length,\n maxFiles: this.maxFiles\n }\n },\n\n computedCounter () {\n if (this.counterLabel !== void 0) {\n return this.counterLabel(this.counterProps)\n }\n\n const max = this.maxFiles\n return `${this.innerValue.length}${max !== void 0 ? ' / ' + max : ''} (${this.totalSize})`\n },\n\n inputAttrs () {\n return {\n tabindex: -1,\n type: 'file',\n title: '', // try to remove default tooltip,\n accept: this.accept,\n capture: this.capture,\n name: this.nameProp,\n ...this.qAttrs,\n id: this.targetUid,\n disabled: this.editable !== true\n }\n },\n\n isAppending () {\n return this.multiple === true && this.append === true\n },\n\n fieldClass () {\n return 'q-file q-field--auto-height' + (this.dnd === true ? ' q-file--dnd' : '')\n }\n },\n\n methods: {\n removeAtIndex (index) {\n const files = this.innerValue.slice()\n files.splice(index, 1)\n this.__emitValue(files)\n },\n\n removeFile (file) {\n const index = this.innerValue.findIndex(file)\n if (index > -1) {\n this.removeAtIndex(index)\n }\n },\n\n __emitValue (files) {\n this.$emit('input', this.multiple === true ? files : files[0])\n },\n\n __onKeydown (e) {\n // prevent form submit if ENTER is pressed\n e.keyCode === 13 && prevent(e)\n },\n\n __onKeyup (e) {\n // only on ENTER and SPACE to match native input field\n if (e.keyCode === 13 || e.keyCode === 32) {\n this.pickFiles(e)\n }\n },\n\n __getFileInput () {\n return this.$refs.input\n },\n\n __addFiles (e, fileList) {\n const files = this.__processFiles(e, fileList, this.innerValue, this.isAppending)\n const fileInput = this.__getFileInput()\n\n if (fileInput !== void 0) {\n fileInput.value = ''\n }\n\n // if nothing to do...\n if (files === void 0) { return }\n\n // protect against input @change being called in a loop\n // like it happens on Safari, so don't emit same thing:\n if (\n this.multiple === true\n ? this.value && files.every(f => this.innerValue.includes(f))\n : this.value === files[ 0 ]\n ) {\n return\n }\n\n this.__emitValue(\n this.isAppending === true\n ? this.innerValue.concat(files)\n : files\n )\n },\n\n __getControl (h) {\n const data = {\n ref: 'target',\n staticClass: 'q-field__native row items-center cursor-pointer',\n attrs: {\n tabindex: this.tabindex\n }\n }\n\n if (this.editable === true) {\n data.on = cache(this, 'native', {\n dragover: this.__onDragOver,\n dragleave: this.__onDragLeave,\n keydown: this.__onKeydown,\n keyup: this.__onKeyup\n })\n }\n\n return h('div', data, [ this.__getInput(h) ].concat(this.__getSelection(h)))\n },\n\n __getControlChild (h) {\n return this.__getDnd(h, 'file')\n },\n\n __getFiller (h) {\n return [\n h('input', {\n class: [ this.inputClass, 'q-file__filler' ],\n style: this.inputStyle\n })\n ]\n },\n\n __getSelection (h) {\n if (this.$scopedSlots.file !== void 0) {\n return this.innerValue.length === 0\n ? this.__getFiller(h)\n : this.innerValue.map((file, index) => this.$scopedSlots.file({ index, file, ref: this }))\n }\n\n if (this.$scopedSlots.selected !== void 0) {\n return this.innerValue.length === 0\n ? this.__getFiller(h)\n : this.$scopedSlots.selected({ files: this.innerValue, ref: this })\n }\n\n if (this.useChips === true) {\n return this.innerValue.length === 0\n ? this.__getFiller(h)\n : this.innerValue.map((file, i) => h(QChip, {\n key: 'file-' + i,\n props: {\n removable: this.editable,\n dense: true,\n textColor: this.color,\n tabindex: this.tabindex\n },\n on: cache(this, 'rem#' + i, {\n remove: () => { this.removeAtIndex(i) }\n })\n }, [\n h('span', {\n staticClass: 'ellipsis',\n domProps: {\n textContent: file.name\n }\n })\n ]))\n }\n\n const textContent = this.displayValue !== void 0\n ? this.displayValue\n : this.selectedString\n\n return textContent.length > 0\n ? [\n h('div', {\n style: this.inputStyle,\n class: this.inputClass,\n domProps: { textContent }\n })\n ]\n : this.__getFiller(h)\n },\n\n __getInput (h) {\n const data = {\n ref: 'input',\n staticClass: 'q-field__input fit absolute-full cursor-pointer',\n attrs: this.inputAttrs,\n domProps: this.formDomProps,\n on: cache(this, 'input', {\n change: this.__addFiles\n })\n }\n\n if (this.multiple === true) {\n data.attrs.multiple = true\n }\n\n return h('input', data)\n }\n },\n\n created () {\n // necessary for QField's clearable\n // and FileValueMixin\n this.type = 'file'\n }\n})\n","import QFile from './QFile.js'\n\nexport {\n QFile\n}\n","import Vue from 'vue'\n\nimport { onSSR } from '../../plugins/Platform.js'\n\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { mergeSlot } from '../../utils/private/slot.js'\nimport { stop } from '../../utils/event.js'\nimport cache from '../../utils/private/cache.js'\n\nexport default Vue.extend({\n name: 'QFooter',\n\n mixins: [ ListenersMixin ],\n\n inject: {\n layout: {\n default () {\n console.error('QFooter needs to be child of QLayout')\n }\n }\n },\n\n props: {\n value: {\n type: Boolean,\n default: true\n },\n reveal: Boolean,\n bordered: Boolean,\n elevated: Boolean,\n\n heightHint: {\n type: [String, Number],\n default: 50\n }\n },\n\n data () {\n return {\n size: parseInt(this.heightHint, 10),\n revealed: true,\n windowHeight: onSSR || this.layout.container ? 0 : window.innerHeight\n }\n },\n\n watch: {\n value (val) {\n this.__update('space', val)\n this.__updateLocal('revealed', true)\n this.layout.__animate()\n },\n\n offset (val) {\n this.__update('offset', val)\n },\n\n reveal (val) {\n val === false && this.__updateLocal('revealed', this.value)\n },\n\n revealed (val) {\n this.layout.__animate()\n this.$emit('reveal', val)\n },\n\n 'layout.scroll' () {\n this.__updateRevealed()\n },\n\n 'layout.height' () {\n this.__updateRevealed()\n },\n\n size () {\n this.__updateRevealed()\n },\n\n '$q.screen.height' (val) {\n this.layout.container !== true && this.__updateLocal('windowHeight', val)\n }\n },\n\n computed: {\n fixed () {\n return this.reveal === true ||\n this.layout.view.indexOf('F') > -1 ||\n (this.$q.platform.is.ios && this.layout.container === true)\n },\n\n containerHeight () {\n return this.layout.container === true\n ? this.layout.containerHeight\n : this.windowHeight\n },\n\n offset () {\n if (this.value !== true) {\n return 0\n }\n if (this.fixed === true) {\n return this.revealed === true ? this.size : 0\n }\n const offset = this.layout.scroll.position + this.containerHeight + this.size - this.layout.height\n return offset > 0 ? offset : 0\n },\n\n hidden () {\n return this.value !== true || (this.fixed === true && this.revealed !== true)\n },\n\n revealOnFocus () {\n return this.value === true && this.hidden === true && this.reveal === true\n },\n\n classes () {\n return (this.fixed === true ? 'fixed' : 'absolute') + '-bottom' +\n (this.bordered === true ? ' q-footer--bordered' : '') +\n (this.hidden === true ? ' q-footer--hidden' : '') +\n (this.value !== true ? ' q-layout--prevent-focus' : '') +\n (this.value !== true && this.fixed !== true ? ' hidden' : '')\n },\n\n style () {\n const\n view = this.layout.rows.bottom,\n css = {}\n\n if (view[0] === 'l' && this.layout.left.space === true) {\n css[this.$q.lang.rtl === true ? 'right' : 'left'] = `${this.layout.left.size}px`\n }\n if (view[2] === 'r' && this.layout.right.space === true) {\n css[this.$q.lang.rtl === true ? 'left' : 'right'] = `${this.layout.right.size}px`\n }\n\n return css\n },\n\n onEvents () {\n return {\n ...this.qListeners,\n focusin: this.__onFocusin,\n input: stop\n }\n }\n },\n\n render (h) {\n const child = mergeSlot([\n h(QResizeObserver, {\n props: { debounce: 0 },\n on: cache(this, 'resize', { resize: this.__onResize })\n })\n ], this, 'default')\n\n this.elevated === true && child.push(\n h('div', {\n staticClass: 'q-layout__shadow absolute-full overflow-hidden no-pointer-events'\n })\n )\n\n return h('footer', {\n staticClass: 'q-footer q-layout__section--marginal',\n class: this.classes,\n style: this.style,\n on: this.onEvents\n }, child)\n },\n\n created () {\n this.layout.instances.footer = this\n this.value === true && this.__update('size', this.size)\n this.__update('space', this.value)\n this.__update('offset', this.offset)\n },\n\n beforeDestroy () {\n if (this.layout.instances.footer === this) {\n this.layout.instances.footer = void 0\n this.__update('size', 0)\n this.__update('offset', 0)\n this.__update('space', false)\n }\n },\n\n methods: {\n __onResize ({ height }) {\n this.__updateLocal('size', height)\n this.__update('size', height)\n },\n\n __update (prop, val) {\n if (this.layout.footer[prop] !== val) {\n this.layout.footer[prop] = val\n }\n },\n\n __updateLocal (prop, val) {\n if (this[prop] !== val) {\n this[prop] = val\n }\n },\n\n __updateRevealed () {\n if (this.reveal !== true) { return }\n\n const { direction, position, inflexionPosition } = this.layout.scroll\n\n this.__updateLocal('revealed', (\n direction === 'up' ||\n position - inflexionPosition < 100 ||\n this.layout.height - this.containerHeight - position - this.size < 300\n ))\n },\n\n __onFocusin (evt) {\n if (this.revealOnFocus === true) {\n this.__updateLocal('revealed', true)\n }\n\n this.$emit('focusin', evt)\n }\n }\n})\n","import QFooter from './QFooter.js'\n\nexport {\n QFooter\n}\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { slot } from '../../utils/private/slot.js'\nimport { addFocusFn } from '../../utils/private/focus-manager.js'\n\nexport default Vue.extend({\n name: 'QForm',\n\n mixins: [ ListenersMixin ],\n\n props: {\n autofocus: Boolean,\n noErrorFocus: Boolean,\n noResetFocus: Boolean,\n greedy: Boolean\n },\n\n computed: {\n onEvents () {\n return {\n ...this.qListeners,\n submit: this.submit,\n reset: this.reset\n }\n }\n },\n\n mounted () {\n this.validateIndex = 0\n this.autofocus === true && this.focus()\n },\n\n activated () {\n if (this.shouldActivate !== true) { return }\n this.autofocus === true && this.focus()\n },\n\n deactivated () {\n this.shouldActivate = true\n },\n\n methods: {\n validate (shouldFocus) {\n const focus = typeof shouldFocus === 'boolean'\n ? shouldFocus\n : this.noErrorFocus !== true\n\n const index = ++this.validateIndex\n\n const registeredComponents = this.getValidationComponents().filter(c => c.disable !== true)\n\n const emit = (res, ref) => {\n this.$emit('validation-' + (res === true ? 'success' : 'error'), ref)\n }\n\n const validateComponent = comp => {\n const valid = comp.validate()\n\n return typeof valid.then === 'function'\n ? valid.then(\n valid => ({ valid, comp }),\n err => ({ valid: false, comp, err })\n )\n : Promise.resolve({ valid, comp })\n }\n\n const errorsPromise = this.greedy === true\n ? Promise\n .all(registeredComponents.map(validateComponent))\n .then(res => res.filter(r => r.valid !== true))\n : registeredComponents\n .reduce(\n (acc, comp) => acc.then(() => {\n return validateComponent(comp).then(r => {\n if (r.valid === false) { return Promise.reject(r) }\n })\n }),\n Promise.resolve()\n )\n .catch(error => [ error ])\n\n return errorsPromise.then(errors => {\n if (errors === void 0 || errors.length === 0) {\n index === this.validateIndex && emit(true)\n return true\n }\n\n if (index === this.validateIndex) {\n const { comp, err } = errors[0]\n\n err !== void 0 && console.error(err)\n emit(false, comp)\n\n if (focus === true) {\n // Try to focus first mounted and active component\n const activeError = errors.find(({ comp }) => (\n typeof comp.focus === 'function' &&\n comp._isBeingDestroyed !== true &&\n comp._isDestroyed !== true &&\n comp._inactive !== true\n ))\n\n if (activeError !== void 0) {\n activeError.comp.focus()\n }\n }\n }\n\n return false\n })\n },\n\n resetValidation () {\n this.validateIndex++\n\n this.getValidationComponents().forEach(comp => {\n typeof comp.resetValidation === 'function' && comp.resetValidation()\n })\n },\n\n submit (evt) {\n evt !== void 0 && stopAndPrevent(evt)\n\n const index = this.validateIndex + 1\n\n this.validate().then(val => {\n // if not outdated && validation succeeded\n if (index === this.validateIndex && val === true) {\n if (this.qListeners.submit !== void 0) {\n this.$emit('submit', evt)\n }\n else if (evt !== void 0 && evt.target !== void 0 && typeof evt.target.submit === 'function') {\n evt.target.submit()\n }\n }\n })\n },\n\n reset (evt) {\n evt !== void 0 && stopAndPrevent(evt)\n\n this.$emit('reset')\n\n this.$nextTick(() => { // allow userland to reset values before\n this.resetValidation()\n if (this.autofocus === true && this.noResetFocus !== true) {\n this.focus()\n }\n })\n },\n\n focus () {\n addFocusFn(() => {\n if (!this.$el) { return }\n\n const target = this.$el.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]') ||\n this.$el.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]') ||\n this.$el.querySelector('[autofocus], [data-autofocus]') ||\n Array.prototype.find.call(this.$el.querySelectorAll('[tabindex]'), el => el.tabIndex > -1)\n\n target !== null && target !== void 0 && target.focus({ preventScroll: true })\n })\n },\n\n getValidationComponents () {\n return Array.prototype.map.call(\n this.$el.getElementsByClassName('q-validation-component'),\n field => field.__vue__\n ).filter(c => c !== void 0 && typeof c.validate === 'function')\n }\n },\n\n render (h) {\n return h('form', {\n staticClass: 'q-form',\n on: this.onEvents\n }, slot(this, 'default'))\n }\n})\n","import QForm from './QForm.js'\n\nexport {\n QForm\n}\n","import Vue from 'vue'\n\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { uniqueSlot } from '../../utils/private/slot.js'\nimport { stop } from '../../utils/event.js'\nimport cache from '../../utils/private/cache.js'\n\nexport default Vue.extend({\n name: 'QHeader',\n\n mixins: [ ListenersMixin ],\n\n inject: {\n layout: {\n default () {\n console.error('QHeader needs to be child of QLayout')\n }\n }\n },\n\n props: {\n value: {\n type: Boolean,\n default: true\n },\n reveal: Boolean,\n revealOffset: {\n type: Number,\n default: 250\n },\n bordered: Boolean,\n elevated: Boolean,\n\n heightHint: {\n type: [String, Number],\n default: 50\n }\n },\n\n data () {\n return {\n size: parseInt(this.heightHint, 10),\n revealed: true\n }\n },\n\n watch: {\n value (val) {\n this.__update('space', val)\n this.__updateLocal('revealed', true)\n this.layout.__animate()\n },\n\n offset (val) {\n this.__update('offset', val)\n },\n\n reveal (val) {\n val === false && this.__updateLocal('revealed', this.value)\n },\n\n revealed (val) {\n this.layout.__animate()\n this.$emit('reveal', val)\n },\n\n 'layout.scroll' (scroll) {\n this.reveal === true && this.__updateLocal('revealed',\n scroll.direction === 'up' ||\n scroll.position <= this.revealOffset ||\n scroll.position - scroll.inflexionPosition < 100\n )\n }\n },\n\n computed: {\n fixed () {\n return this.reveal === true ||\n this.layout.view.indexOf('H') > -1 ||\n (this.$q.platform.is.ios && this.layout.container === true)\n },\n\n offset () {\n if (this.value !== true) {\n return 0\n }\n if (this.fixed === true) {\n return this.revealed === true ? this.size : 0\n }\n const offset = this.size - this.layout.scroll.position\n return offset > 0 ? offset : 0\n },\n\n hidden () {\n return this.value !== true || (this.fixed === true && this.revealed !== true)\n },\n\n revealOnFocus () {\n return this.value === true && this.hidden === true && this.reveal === true\n },\n\n classes () {\n return (this.fixed === true ? 'fixed' : 'absolute') + '-top' +\n (this.bordered === true ? ' q-header--bordered' : '') +\n (this.hidden === true ? ' q-header--hidden' : '') +\n (this.value !== true ? ' q-layout--prevent-focus' : '')\n },\n\n style () {\n const\n view = this.layout.rows.top,\n css = {}\n\n if (view[0] === 'l' && this.layout.left.space === true) {\n css[this.$q.lang.rtl === true ? 'right' : 'left'] = `${this.layout.left.size}px`\n }\n if (view[2] === 'r' && this.layout.right.space === true) {\n css[this.$q.lang.rtl === true ? 'left' : 'right'] = `${this.layout.right.size}px`\n }\n\n return css\n },\n\n onEvents () {\n return {\n ...this.qListeners,\n focusin: this.__onFocusin,\n input: stop\n }\n }\n },\n\n render (h) {\n const child = uniqueSlot(this, 'default', [])\n\n this.elevated === true && child.push(\n h('div', {\n staticClass: 'q-layout__shadow absolute-full overflow-hidden no-pointer-events'\n })\n )\n\n child.push(\n h(QResizeObserver, {\n props: { debounce: 0 },\n on: cache(this, 'resize', { resize: this.__onResize })\n })\n )\n\n return h('header', {\n staticClass: 'q-header q-layout__section--marginal',\n class: this.classes,\n style: this.style,\n on: this.onEvents\n }, child)\n },\n\n created () {\n this.layout.instances.header = this\n this.value === true && this.__update('size', this.size)\n this.__update('space', this.value)\n this.__update('offset', this.offset)\n },\n\n beforeDestroy () {\n if (this.layout.instances.header === this) {\n this.layout.instances.header = void 0\n this.__update('size', 0)\n this.__update('offset', 0)\n this.__update('space', false)\n }\n },\n\n methods: {\n __onResize ({ height }) {\n this.__updateLocal('size', height)\n this.__update('size', height)\n },\n\n __update (prop, val) {\n if (this.layout.header[prop] !== val) {\n this.layout.header[prop] = val\n }\n },\n\n __updateLocal (prop, val) {\n if (this[prop] !== val) {\n this[prop] = val\n }\n },\n\n __onFocusin (evt) {\n if (this.revealOnFocus === true) {\n this.__updateLocal('revealed', true)\n }\n\n this.$emit('focusin', evt)\n }\n }\n})\n","import QHeader from './QHeader.js'\n\nexport {\n QHeader\n}\n","import QIcon from './QIcon.js'\n\nexport {\n QIcon\n}\n","export default {\n props: {\n ratio: [ String, Number ]\n },\n\n computed: {\n ratioStyle () {\n const ratio = this.ratio || this.naturalRatio\n\n if (ratio !== void 0) {\n return { paddingBottom: `${100 / ratio}%` }\n }\n }\n }\n}\n","import Vue from 'vue'\n\nimport QSpinner from '../spinner/QSpinner.js'\n\nimport RatioMixin from '../../mixins/ratio.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QImg',\n\n mixins: [ ListenersMixin, RatioMixin ],\n\n props: {\n src: String,\n srcset: String,\n sizes: String,\n alt: String,\n width: String,\n height: String,\n\n placeholderSrc: String,\n\n basic: Boolean,\n contain: Boolean,\n position: {\n type: String,\n default: '50% 50%'\n },\n\n transition: {\n type: String,\n default: 'fade'\n },\n\n imgClass: [ Array, String, Object ],\n imgStyle: Object,\n\n nativeContextMenu: Boolean,\n notDraggable: Boolean,\n\n noDefaultSpinner: Boolean,\n spinnerColor: String,\n spinnerSize: String\n },\n\n data () {\n return {\n currentSrc: '',\n image: null,\n isLoading: !!this.src,\n hasError: false,\n naturalRatio: void 0\n }\n },\n\n watch: {\n src () {\n this.__load()\n },\n\n srcset (val) {\n this.__updateWatcher(val)\n }\n },\n\n computed: {\n url () {\n return this.currentSrc || this.placeholderSrc || void 0\n },\n\n attrs () {\n const att = { role: 'img' }\n if (this.alt !== void 0) {\n att['aria-label'] = this.alt\n }\n return att\n },\n\n imgAttrs () {\n const att = { src: this.url, 'aria-hidden': 'true' }\n if (this.notDraggable === true) {\n att.draggable = false\n }\n return att\n },\n\n imgContainerStyle () {\n return Object.assign(\n {\n backgroundSize: this.contain === true ? 'contain' : 'cover',\n backgroundPosition: this.position\n },\n this.imgStyle,\n { backgroundImage: `url(\"${this.url}\")` })\n },\n\n style () {\n return {\n width: this.width,\n height: this.height\n }\n },\n\n classes () {\n return 'q-img overflow-hidden' +\n (this.nativeContextMenu === true ? ' q-img--menu' : '')\n }\n },\n\n methods: {\n __onLoad (img) {\n this.isLoading = false\n this.hasError = false\n this.__computeRatio(img)\n this.__updateSrc()\n this.__updateWatcher(this.srcset)\n this.$emit('load', this.currentSrc)\n },\n\n __onError (err) {\n clearTimeout(this.ratioTimer)\n this.isLoading = false\n this.hasError = true\n this.currentSrc = ''\n this.$emit('error', err)\n },\n\n __updateSrc () {\n if (this.image !== void 0 && this.isLoading === false) {\n const src = this.image.currentSrc || this.image.src\n if (this.currentSrc !== src) {\n this.currentSrc = src\n }\n }\n },\n\n __updateWatcher (srcset) {\n if (srcset) {\n if (this.unwatch === void 0) {\n this.unwatch = this.$watch('$q.screen.width', this.__updateSrc)\n }\n }\n else if (this.unwatch !== void 0) {\n this.unwatch()\n this.unwatch = void 0\n }\n },\n\n __load () {\n clearTimeout(this.ratioTimer)\n this.hasError = false\n\n if (!this.src) {\n this.isLoading = false\n this.image = void 0\n this.currentSrc = ''\n return\n }\n\n this.isLoading = true\n\n const img = new Image()\n this.image = img\n\n img.onerror = err => {\n // if we are still rendering same image\n if (this.image === img && this.destroyed !== true) {\n this.__onError(err)\n }\n }\n\n img.onload = () => {\n if (this.destroyed === true) {\n return\n }\n\n // if we are still rendering same image\n if (this.image === img) {\n if (img.decode !== void 0) {\n img\n .decode()\n .catch(err => {\n if (this.image === img && this.destroyed !== true) {\n this.__onError(err)\n }\n })\n .then(() => {\n if (this.image === img && this.destroyed !== true) {\n this.__onLoad(img)\n }\n })\n }\n else {\n this.__onLoad(img)\n }\n }\n }\n\n img.src = this.src\n\n if (this.srcset) {\n img.srcset = this.srcset\n }\n\n if (this.sizes !== void 0) {\n img.sizes = this.sizes\n }\n else {\n Object.assign(img, {\n height: this.height,\n width: this.width\n })\n }\n },\n\n __computeRatio (img) {\n const { naturalHeight, naturalWidth } = img\n\n if (naturalHeight || naturalWidth) {\n this.naturalRatio = naturalHeight === 0\n ? 1\n : naturalWidth / naturalHeight\n }\n else {\n this.ratioTimer = setTimeout(() => {\n if (this.image === img && this.destroyed !== true) {\n this.__computeRatio(img)\n }\n }, 100)\n }\n },\n\n __getImage (h) {\n const nativeImg = this.nativeContextMenu === true\n ? [\n h('img', {\n staticClass: 'absolute-full fit',\n attrs: this.imgAttrs\n })\n ]\n : void 0\n\n const content = this.url !== void 0\n ? h('div', {\n key: this.url,\n staticClass: 'q-img__image absolute-full',\n class: this.imgClass,\n style: this.imgContainerStyle\n }, nativeImg)\n : null\n\n return this.basic === true\n ? content\n : h('transition', {\n props: { name: 'q-transition--' + this.transition }\n }, [ content ])\n },\n\n __getContent (h) {\n const slotVm = slot(this, this.hasError === true ? 'error' : 'default')\n\n if (this.basic === true) {\n return h('div', {\n key: 'content',\n staticClass: 'q-img__content absolute-full'\n }, slotVm)\n }\n\n const content = this.isLoading === true\n ? h('div', {\n key: 'placeholder',\n staticClass: 'q-img__loading absolute-full flex flex-center'\n }, this.$scopedSlots.loading !== void 0\n ? this.$scopedSlots.loading()\n : (\n this.noDefaultSpinner === false\n ? [\n h(QSpinner, {\n props: {\n color: this.spinnerColor,\n size: this.spinnerSize\n }\n })\n ]\n : void 0\n )\n )\n : h('div', {\n key: 'content',\n staticClass: 'q-img__content absolute-full'\n }, slotVm)\n\n return h('transition', {\n props: { name: 'q-transition--fade' }\n }, [ content ])\n }\n },\n\n render (h) {\n return h('div', {\n class: this.classes,\n style: this.style,\n attrs: this.attrs,\n on: { ...this.qListeners }\n }, [\n h('div', { style: this.ratioStyle }),\n this.__getImage(h),\n this.__getContent(h)\n ])\n },\n\n beforeMount () {\n if (this.placeholderSrc !== void 0 && this.ratio === void 0) {\n const img = new Image()\n img.src = this.placeholderSrc\n this.__computeRatio(img)\n }\n this.isLoading === true && this.__load()\n },\n\n beforeDestroy () {\n this.destroyed = true\n clearTimeout(this.ratioTimer)\n this.unwatch !== void 0 && this.unwatch()\n }\n})\n","import QImg from './QImg.js'\n\nexport {\n QImg\n}\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport debounce from '../../utils/debounce.js'\nimport { height } from '../../utils/dom.js'\nimport { getScrollTarget, getScrollHeight, getScrollPosition, setScrollPosition } from '../../utils/scroll.js'\nimport { listenOpts } from '../../utils/event.js'\nimport { slot, uniqueSlot } from '../../utils/private/slot.js'\n\nconst { passive } = listenOpts\n\nexport default Vue.extend({\n name: 'QInfiniteScroll',\n\n mixins: [ ListenersMixin ],\n\n props: {\n offset: {\n type: Number,\n default: 500\n },\n\n debounce: {\n type: [ String, Number ],\n default: 100\n },\n\n scrollTarget: {\n default: void 0\n },\n\n initialIndex: Number,\n\n disable: Boolean,\n reverse: Boolean\n },\n\n data () {\n return {\n index: this.initialIndex || 0,\n isFetching: false,\n isWorking: true\n }\n },\n\n computed: {\n renderLoadingSlot () {\n return this.disable !== true && this.isWorking === true\n }\n },\n\n watch: {\n disable (val) {\n if (val === true) { this.stop() }\n else { this.resume() }\n },\n\n reverse () {\n if (this.isFetching === false && this.isWorking === true) {\n this.immediatePoll()\n }\n },\n\n scrollTarget () {\n this.updateScrollTarget()\n },\n\n debounce (val) {\n this.__setDebounce(val)\n },\n\n isFetching () {\n this.__updateSvgAnimations()\n },\n\n renderLoadingSlot () {\n this.__updateSvgAnimations()\n }\n },\n\n methods: {\n poll () {\n if (this.disable === true || this.isFetching === true || this.isWorking === false) {\n return\n }\n\n const\n scrollHeight = getScrollHeight(this.__scrollTarget),\n scrollPosition = getScrollPosition(this.__scrollTarget),\n containerHeight = height(this.__scrollTarget)\n\n if (this.reverse === false) {\n if (Math.round(scrollPosition + containerHeight + this.offset) >= Math.round(scrollHeight)) {\n this.trigger()\n }\n }\n else if (Math.round(scrollPosition) < this.offset) {\n this.trigger()\n }\n },\n\n trigger () {\n if (this.disable === true || this.isFetching === true || this.isWorking === false) {\n return\n }\n\n this.index++\n this.isFetching = true\n\n const heightBefore = getScrollHeight(this.__scrollTarget)\n\n this.$emit('load', this.index, stop => {\n if (this.isWorking === true) {\n this.isFetching = false\n this.$nextTick(() => {\n if (this.reverse === true) {\n const\n heightAfter = getScrollHeight(this.__scrollTarget),\n scrollPosition = getScrollPosition(this.__scrollTarget),\n heightDifference = heightAfter - heightBefore\n\n setScrollPosition(this.__scrollTarget, scrollPosition + heightDifference)\n }\n\n if (stop === true) {\n this.stop()\n }\n else {\n this.$el.closest('body') && this.poll()\n }\n })\n }\n })\n },\n\n reset () {\n this.index = 0\n },\n\n resume () {\n if (this.isWorking === false) {\n this.isWorking = true\n this.__scrollTarget.addEventListener('scroll', this.poll, passive)\n }\n this.immediatePoll()\n },\n\n stop () {\n if (this.isWorking === true) {\n this.isWorking = false\n this.isFetching = false\n this.__scrollTarget.removeEventListener('scroll', this.poll, passive)\n typeof this.poll.cancel === 'function' && this.poll.cancel()\n }\n },\n\n updateScrollTarget () {\n if (this.__scrollTarget && this.isWorking === true) {\n this.__scrollTarget.removeEventListener('scroll', this.poll, passive)\n }\n\n this.__scrollTarget = getScrollTarget(this.$el, this.scrollTarget)\n\n if (this.isWorking === true) {\n this.__scrollTarget.addEventListener('scroll', this.poll, passive)\n\n if (this.reverse === true) {\n const\n scrollHeight = getScrollHeight(this.__scrollTarget),\n containerHeight = height(this.__scrollTarget)\n\n setScrollPosition(this.__scrollTarget, scrollHeight - containerHeight)\n }\n\n this.immediatePoll()\n }\n },\n\n setIndex (index) {\n this.index = index\n },\n\n __setDebounce (val) {\n val = parseInt(val, 10)\n\n const oldPoll = this.poll\n\n this.poll = val <= 0\n ? this.immediatePoll\n : debounce(this.immediatePoll, isNaN(val) === true ? 100 : val)\n\n if (this.__scrollTarget && this.isWorking === true) {\n if (oldPoll !== void 0) {\n this.__scrollTarget.removeEventListener('scroll', oldPoll, passive)\n }\n\n this.__scrollTarget.addEventListener('scroll', this.poll, passive)\n }\n },\n\n __updateSvgAnimations (isRetry) {\n if (this.renderLoadingSlot === true) {\n const el = this.$refs.loading\n\n if (!el) {\n isRetry !== true && this.$nextTick(() => {\n this.__updateSvgAnimations(true)\n })\n return\n }\n\n // we need to pause svg animations (if any) when hiding\n // otherwise the browser will keep on recalculating the style\n const action = `${ this.isFetching === true ? 'un' : '' }pauseAnimations`\n Array.from(el.getElementsByTagName('svg')).forEach(el => {\n el[ action ]()\n })\n }\n }\n },\n\n mounted () {\n this.immediatePoll = this.poll\n this.__setDebounce(this.debounce)\n this.updateScrollTarget()\n this.isFetching === false && this.__updateSvgAnimations()\n },\n\n activated () {\n if (this.__scrollPosition !== void 0 && this.__scrollTarget) {\n setScrollPosition(this.__scrollTarget, this.__scrollPosition)\n }\n },\n\n deactivated () {\n this.__scrollPosition = this.__scrollTarget\n ? getScrollPosition(this.__scrollTarget)\n : void 0\n },\n\n beforeDestroy () {\n this.stop()\n },\n\n render (h) {\n const child = uniqueSlot(this, 'default', [])\n\n if (this.renderLoadingSlot === true) {\n child[this.reverse === false ? 'push' : 'unshift'](\n h('div', {\n ref: 'loading',\n staticClass: 'q-infinite-scroll__loading',\n class: this.isFetching === true ? '' : 'invisible'\n }, slot(this, 'loading'))\n )\n }\n\n return h('div', {\n staticClass: 'q-infinite-scroll',\n on: { ...this.qListeners }\n }, child)\n }\n})\n","import QInfiniteScroll from './QInfiniteScroll.js'\n\nexport {\n QInfiniteScroll\n}\n","import Vue from 'vue'\n\nimport QSpinner from '../spinner/QSpinner.js'\n\nimport TransitionMixin from '../../mixins/transition.js'\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nexport default Vue.extend({\n name: 'QInnerLoading',\n\n mixins: [ ListenersMixin, DarkMixin, TransitionMixin ],\n\n props: {\n showing: Boolean,\n color: String,\n\n size: {\n type: [String, Number],\n default: 42\n },\n\n label: String,\n labelClass: String,\n labelStyle: [ String, Array, Object ]\n },\n\n computed: {\n classes () {\n return 'q-inner-loading absolute-full column flex-center' +\n (this.isDark === true ? ' q-inner-loading--dark' : '')\n },\n\n labelClasses () {\n return 'q-inner-loading__label' +\n (this.labelClass !== void 0 ? ` ${this.labelClass}` : '')\n }\n },\n\n methods: {\n __getInner (h) {\n const child = [\n h(QSpinner, {\n props: {\n size: this.size,\n color: this.color\n }\n })\n ]\n\n if (this.label !== void 0) {\n child.push(\n h('div', {\n class: this.labelClasses,\n style: this.labelStyle\n }, [ this.label ])\n )\n }\n\n return child\n },\n\n __getContent (h) {\n return this.showing === true\n ? [\n h('div',\n {\n staticClass: this.classes,\n on: { ...this.qListeners }\n },\n this.$scopedSlots.default !== void 0\n ? this.$scopedSlots.default()\n : this.__getInner(h)\n )\n ]\n : void 0\n }\n },\n\n render (h) {\n return h('transition', { props: { ...this.transitionProps } }, this.__getContent(h))\n }\n})\n","import QInnerLoading from './QInnerLoading.js'\n\nexport {\n QInnerLoading\n}\n","import { shouldIgnoreKey } from '../utils/private/key-composition.js'\n\n// leave NAMED_MASKS at top of file (code referenced from docs)\nconst NAMED_MASKS = {\n date: '####/##/##',\n datetime: '####/##/## ##:##',\n time: '##:##',\n fulltime: '##:##:##',\n phone: '(###) ### - ####',\n card: '#### #### #### ####'\n}\n\nconst TOKENS = {\n '#': { pattern: '[\\\\d]', negate: '[^\\\\d]' },\n\n S: { pattern: '[a-zA-Z]', negate: '[^a-zA-Z]' },\n N: { pattern: '[0-9a-zA-Z]', negate: '[^0-9a-zA-Z]' },\n\n A: { pattern: '[a-zA-Z]', negate: '[^a-zA-Z]', transform: v => v.toLocaleUpperCase() },\n a: { pattern: '[a-zA-Z]', negate: '[^a-zA-Z]', transform: v => v.toLocaleLowerCase() },\n\n X: { pattern: '[0-9a-zA-Z]', negate: '[^0-9a-zA-Z]', transform: v => v.toLocaleUpperCase() },\n x: { pattern: '[0-9a-zA-Z]', negate: '[^0-9a-zA-Z]', transform: v => v.toLocaleLowerCase() }\n}\n\nconst KEYS = Object.keys(TOKENS)\nKEYS.forEach(key => {\n TOKENS[key].regex = new RegExp(TOKENS[key].pattern)\n})\n\nconst\n tokenRegexMask = new RegExp('\\\\\\\\([^.*+?^${}()|([\\\\]])|([.*+?^${}()|[\\\\]])|([' + KEYS.join('') + '])|(.)', 'g'),\n escRegex = /[.*+?^${}()|[\\]\\\\]/g\n\nconst MARKER = String.fromCharCode(1)\n\nexport default {\n props: {\n mask: String,\n reverseFillMask: Boolean,\n fillMask: [Boolean, String],\n unmaskedValue: Boolean\n },\n\n watch: {\n type () {\n this.__updateMaskInternals()\n },\n\n autogrow () {\n this.__updateMaskInternals()\n },\n\n mask (v) {\n if (v !== void 0) {\n this.__updateMaskValue(this.innerValue, true)\n }\n else {\n const val = this.__unmask(this.innerValue)\n this.__updateMaskInternals()\n this.value !== val && this.$emit('input', val)\n }\n },\n\n fillMask () {\n this.hasMask === true && this.__updateMaskValue(this.innerValue, true)\n },\n\n reverseFillMask () {\n this.hasMask === true && this.__updateMaskValue(this.innerValue, true)\n },\n\n unmaskedValue () {\n this.hasMask === true && this.__updateMaskValue(this.innerValue)\n }\n },\n\n methods: {\n __getInitialMaskedValue () {\n this.__updateMaskInternals()\n\n if (this.hasMask === true) {\n const masked = this.__mask(this.__unmask(this.value))\n\n return this.fillMask !== false\n ? this.__fillWithMask(masked)\n : masked\n }\n\n return this.value\n },\n\n __getPaddedMaskMarked (size) {\n if (size < this.maskMarked.length) {\n return this.maskMarked.slice(-size)\n }\n\n let\n maskMarked = this.maskMarked,\n pad = ''\n const\n padPos = maskMarked.indexOf(MARKER)\n\n if (padPos > -1) {\n for (let i = size - maskMarked.length; i > 0; i--) {\n pad += MARKER\n }\n\n maskMarked = maskMarked.slice(0, padPos) + pad + maskMarked.slice(padPos)\n }\n\n return maskMarked\n },\n\n __updateMaskInternals () {\n this.hasMask = this.mask !== void 0 &&\n this.mask.length > 0 &&\n (this.autogrow === true || ['textarea', 'text', 'search', 'url', 'tel', 'password'].includes(this.type))\n\n if (this.hasMask === false) {\n this.computedUnmask = void 0\n this.maskMarked = ''\n this.maskReplaced = ''\n return\n }\n\n const\n computedMask = NAMED_MASKS[this.mask] === void 0\n ? this.mask\n : NAMED_MASKS[this.mask],\n fillChar = typeof this.fillMask === 'string' && this.fillMask.length > 0\n ? this.fillMask.slice(0, 1)\n : '_',\n fillCharEscaped = fillChar.replace(escRegex, '\\\\$&'),\n unmask = [],\n extract = [],\n mask = []\n\n let\n firstMatch = this.reverseFillMask === true,\n unmaskChar = '',\n negateChar = ''\n\n computedMask.replace(tokenRegexMask, (_, char1, esc, token, char2) => {\n if (token !== void 0) {\n const c = TOKENS[token]\n mask.push(c)\n negateChar = c.negate\n if (firstMatch === true) {\n extract.push('(?:' + negateChar + '+)?(' + c.pattern + '+)?(?:' + negateChar + '+)?(' + c.pattern + '+)?')\n firstMatch = false\n }\n extract.push('(?:' + negateChar + '+)?(' + c.pattern + ')?')\n }\n else if (esc !== void 0) {\n unmaskChar = '\\\\' + (esc === '\\\\' ? '' : esc)\n mask.push(esc)\n unmask.push('([^' + unmaskChar + ']+)?' + unmaskChar + '?')\n }\n else {\n const c = char1 !== void 0 ? char1 : char2\n unmaskChar = c === '\\\\' ? '\\\\\\\\\\\\\\\\' : c.replace(escRegex, '\\\\\\\\$&')\n mask.push(c)\n unmask.push('([^' + unmaskChar + ']+)?' + unmaskChar + '?')\n }\n })\n\n const\n unmaskMatcher = new RegExp(\n '^' +\n unmask.join('') +\n '(' + (unmaskChar === '' ? '.' : '[^' + unmaskChar + ']') + '+)?' +\n (unmaskChar === '' ? '' : '[' + unmaskChar + ']*') + '$'\n ),\n extractLast = extract.length - 1,\n extractMatcher = extract.map((re, index) => {\n if (index === 0 && this.reverseFillMask === true) {\n return new RegExp('^' + fillCharEscaped + '*' + re)\n }\n else if (index === extractLast) {\n return new RegExp(\n '^' + re +\n '(' + (negateChar === '' ? '.' : negateChar) + '+)?' +\n (this.reverseFillMask === true ? '$' : fillCharEscaped + '*')\n )\n }\n\n return new RegExp('^' + re)\n })\n\n this.computedMask = mask\n this.computedUnmask = val => {\n const unmaskMatch = unmaskMatcher.exec(this.reverseFillMask === true ? val : val.slice(0, mask.length + 1))\n if (unmaskMatch !== null) {\n val = unmaskMatch.slice(1).join('')\n }\n\n const\n extractMatch = [],\n extractMatcherLength = extractMatcher.length\n\n for (let i = 0, str = val; i < extractMatcherLength; i++) {\n const m = extractMatcher[i].exec(str)\n\n if (m === null) {\n break\n }\n\n str = str.slice(m.shift().length)\n extractMatch.push(...m)\n }\n if (extractMatch.length > 0) {\n return extractMatch.join('')\n }\n\n return val\n }\n this.maskMarked = mask.map(v => typeof v === 'string' ? v : MARKER).join('')\n this.maskReplaced = this.maskMarked.split(MARKER).join(fillChar)\n },\n\n __updateMaskValue (rawVal, updateMaskInternals, inputType) {\n const\n inp = this.$refs.input,\n end = inp.selectionEnd,\n endReverse = inp.value.length - end,\n unmasked = this.__unmask(rawVal)\n\n // Update here so unmask uses the original fillChar\n updateMaskInternals === true && this.__updateMaskInternals()\n\n const\n preMasked = this.__mask(unmasked),\n masked = this.fillMask !== false\n ? this.__fillWithMask(preMasked)\n : preMasked,\n changed = this.innerValue !== masked\n\n // We want to avoid \"flickering\" so we set value immediately\n inp.value !== masked && (inp.value = masked)\n\n changed === true && (this.innerValue = masked)\n\n document.activeElement === inp && this.$nextTick(() => {\n if (masked === this.maskReplaced) {\n const cursor = this.reverseFillMask === true ? this.maskReplaced.length : 0\n inp.setSelectionRange(cursor, cursor, 'forward')\n\n return\n }\n\n if (inputType === 'insertFromPaste' && this.reverseFillMask !== true) {\n const maxEnd = inp.selectionEnd\n let cursor = end - 1\n // each non-marker char means we move once to right\n for (let i = this.__pastedTextStart; i <= cursor && i < maxEnd; i++) {\n if (this.maskMarked[i] !== MARKER) {\n cursor++\n }\n }\n this.__moveCursorRight(inp, cursor)\n\n return\n }\n\n if (['deleteContentBackward', 'deleteContentForward'].indexOf(inputType) > -1) {\n const cursor = this.reverseFillMask === true\n ? (\n end === 0\n ? (masked.length > preMasked.length ? 1 : 0)\n : Math.max(0, masked.length - (masked === this.maskReplaced ? 0 : Math.min(preMasked.length, endReverse) + 1)) + 1\n )\n : end\n inp.setSelectionRange(cursor, cursor, 'forward')\n\n return\n }\n\n if (this.reverseFillMask === true) {\n if (changed === true) {\n const cursor = Math.max(0, masked.length - (masked === this.maskReplaced ? 0 : Math.min(preMasked.length, endReverse + 1)))\n\n if (cursor === 1 && end === 1) {\n inp.setSelectionRange(cursor, cursor, 'forward')\n }\n else {\n this.__moveCursorRightReverse(inp, cursor)\n }\n }\n else {\n const cursor = masked.length - endReverse\n inp.setSelectionRange(cursor, cursor, 'backward')\n }\n }\n else {\n if (changed === true) {\n const cursor = Math.max(0, this.maskMarked.indexOf(MARKER), Math.min(preMasked.length, end) - 1)\n this.__moveCursorRight(inp, cursor)\n }\n else {\n const cursor = end - 1\n this.__moveCursorRight(inp, cursor)\n }\n }\n })\n\n const val = this.unmaskedValue === true\n ? this.__unmask(masked)\n : masked\n\n String(this.value) !== val && this.__emitValue(val, true)\n },\n\n __moveCursorForPaste (inp, start, end) {\n const preMasked = this.__mask(this.__unmask(inp.value))\n\n start = Math.max(0, this.maskMarked.indexOf(MARKER), Math.min(preMasked.length, start))\n this.__pastedTextStart = start\n\n inp.setSelectionRange(start, end, 'forward')\n },\n\n __moveCursorLeft (inp, cursor) {\n const noMarkBefore = this.maskMarked.slice(cursor - 1).indexOf(MARKER) === -1\n let i = Math.max(0, cursor - 1)\n\n for (; i >= 0; i--) {\n if (this.maskMarked[i] === MARKER) {\n cursor = i\n noMarkBefore === true && cursor++\n break\n }\n }\n\n if (\n i < 0 &&\n this.maskMarked[cursor] !== void 0 &&\n this.maskMarked[cursor] !== MARKER\n ) {\n return this.__moveCursorRight(inp, 0)\n }\n\n cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward')\n },\n\n __moveCursorRight (inp, cursor) {\n const limit = inp.value.length\n let i = Math.min(limit, cursor + 1)\n\n for (; i <= limit; i++) {\n if (this.maskMarked[i] === MARKER) {\n cursor = i\n break\n }\n else if (this.maskMarked[i - 1] === MARKER) {\n cursor = i\n }\n }\n\n if (\n i > limit &&\n this.maskMarked[cursor - 1] !== void 0 &&\n this.maskMarked[cursor - 1] !== MARKER\n ) {\n return this.__moveCursorLeft(inp, limit)\n }\n\n inp.setSelectionRange(cursor, cursor, 'forward')\n },\n\n __moveCursorLeftReverse (inp, cursor) {\n const maskMarked = this.__getPaddedMaskMarked(inp.value.length)\n let i = Math.max(0, cursor - 1)\n\n for (; i >= 0; i--) {\n if (maskMarked[i - 1] === MARKER) {\n cursor = i\n break\n }\n else if (maskMarked[i] === MARKER) {\n cursor = i\n if (i === 0) {\n break\n }\n }\n }\n\n if (\n i < 0 &&\n maskMarked[cursor] !== void 0 &&\n maskMarked[cursor] !== MARKER\n ) {\n return this.__moveCursorRightReverse(inp, 0)\n }\n\n cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward')\n },\n\n __moveCursorRightReverse (inp, cursor) {\n const\n limit = inp.value.length,\n maskMarked = this.__getPaddedMaskMarked(limit),\n noMarkBefore = maskMarked.slice(0, cursor + 1).indexOf(MARKER) === -1\n let i = Math.min(limit, cursor + 1)\n\n for (; i <= limit; i++) {\n if (maskMarked[i - 1] === MARKER) {\n cursor = i\n cursor > 0 && noMarkBefore === true && cursor--\n break\n }\n }\n\n if (\n i > limit &&\n maskMarked[cursor - 1] !== void 0 &&\n maskMarked[cursor - 1] !== MARKER\n ) {\n return this.__moveCursorLeftReverse(inp, limit)\n }\n\n inp.setSelectionRange(cursor, cursor, 'forward')\n },\n\n __onMaskedClick (e) {\n this.qListeners.click !== void 0 && this.$emit('click', e)\n\n this.__selectionAnchor = void 0\n },\n\n __onMaskedKeydown (e) {\n this.qListeners.keydown !== void 0 && this.$emit('keydown', e)\n\n if (shouldIgnoreKey(e) === true) {\n return\n }\n\n const\n inp = this.$refs.input,\n start = inp.selectionStart,\n end = inp.selectionEnd\n\n if (!e.shiftKey) {\n this.__selectionAnchor = void 0\n }\n\n if (e.keyCode === 37 || e.keyCode === 39) { // Left / Right\n if (e.shiftKey && this.__selectionAnchor === void 0) {\n this.__selectionAnchor = inp.selectionDirection === 'forward' ? start : end\n }\n\n const fn = this['__moveCursor' + (e.keyCode === 39 ? 'Right' : 'Left') + (this.reverseFillMask === true ? 'Reverse' : '')]\n\n e.preventDefault()\n fn(inp, this.__selectionAnchor === start ? end : start)\n\n if (e.shiftKey) {\n const anchor = this.__selectionAnchor\n const cursor = inp.selectionStart\n inp.setSelectionRange(Math.min(anchor, cursor), Math.max(anchor, cursor), 'forward')\n }\n }\n else if (\n e.keyCode === 8 && // Backspace\n this.reverseFillMask !== true &&\n start === end\n ) {\n this.__moveCursorLeft(inp, start)\n inp.setSelectionRange(inp.selectionStart, end, 'backward')\n }\n else if (\n e.keyCode === 46 && // Delete\n this.reverseFillMask === true &&\n start === end\n ) {\n this.__moveCursorRightReverse(inp, end)\n inp.setSelectionRange(start, inp.selectionEnd, 'forward')\n }\n\n this.$emit('keydown', e)\n },\n\n __mask (val) {\n if (val === void 0 || val === null || val === '') { return '' }\n\n if (this.reverseFillMask === true) {\n return this.__maskReverse(val)\n }\n\n const mask = this.computedMask\n\n let valIndex = 0, output = ''\n\n for (let maskIndex = 0; maskIndex < mask.length; maskIndex++) {\n const\n valChar = val[valIndex],\n maskDef = mask[maskIndex]\n\n if (typeof maskDef === 'string') {\n output += maskDef\n valChar === maskDef && valIndex++\n }\n else if (valChar !== void 0 && maskDef.regex.test(valChar)) {\n output += maskDef.transform !== void 0\n ? maskDef.transform(valChar)\n : valChar\n valIndex++\n }\n else {\n return output\n }\n }\n\n return output\n },\n\n __maskReverse (val) {\n const\n mask = this.computedMask,\n firstTokenIndex = this.maskMarked.indexOf(MARKER)\n\n let valIndex = val.length - 1, output = ''\n\n for (let maskIndex = mask.length - 1; maskIndex >= 0 && valIndex > -1; maskIndex--) {\n const maskDef = mask[maskIndex]\n\n let valChar = val[valIndex]\n\n if (typeof maskDef === 'string') {\n output = maskDef + output\n valChar === maskDef && valIndex--\n }\n else if (valChar !== void 0 && maskDef.regex.test(valChar)) {\n do {\n output = (maskDef.transform !== void 0 ? maskDef.transform(valChar) : valChar) + output\n valIndex--\n valChar = val[valIndex]\n // eslint-disable-next-line no-unmodified-loop-condition\n } while (firstTokenIndex === maskIndex && valChar !== void 0 && maskDef.regex.test(valChar))\n }\n else {\n return output\n }\n }\n\n return output\n },\n\n __unmask (val) {\n return typeof val !== 'string' || this.computedUnmask === void 0\n ? (typeof val === 'number' ? this.computedUnmask('' + val) : val)\n : this.computedUnmask(val)\n },\n\n __fillWithMask (val) {\n if (this.maskReplaced.length - val.length <= 0) {\n return val\n }\n\n return this.reverseFillMask === true && val.length > 0\n ? this.maskReplaced.slice(0, -val.length) + val\n : val + this.maskReplaced.slice(val.length)\n }\n }\n}\n","import { client } from '../plugins/Platform.js'\n\nconst isJapanese = /[\\u3000-\\u303f\\u3040-\\u309f\\u30a0-\\u30ff\\uff00-\\uff9f\\u4e00-\\u9faf\\u3400-\\u4dbf]/\nconst isChinese = /[\\u4e00-\\u9fff\\u3400-\\u4dbf\\u{20000}-\\u{2a6df}\\u{2a700}-\\u{2b73f}\\u{2b740}-\\u{2b81f}\\u{2b820}-\\u{2ceaf}\\uf900-\\ufaff\\u3300-\\u33ff\\ufe30-\\ufe4f\\uf900-\\ufaff\\u{2f800}-\\u{2fa1f}]/u\nconst isKorean = /[\\u3131-\\u314e\\u314f-\\u3163\\uac00-\\ud7a3]/\nconst isPlainText = /[a-z0-9_ -]$/i\n\nexport default {\n methods: {\n __onComposition (e) {\n if (e.type === 'compositionend' || e.type === 'change') {\n if (e.target.qComposing !== true) { return }\n e.target.qComposing = false\n this.__onInput(e)\n }\n else if (\n e.type === 'compositionupdate' &&\n e.target.qComposing !== true &&\n typeof e.data === 'string'\n ) {\n const isComposing = client.is.firefox === true\n ? isPlainText.test(e.data) === false\n : isJapanese.test(e.data) === true || isChinese.test(e.data) === true || isKorean.test(e.data) === true\n\n if (isComposing === true) {\n e.target.qComposing = true\n }\n }\n }\n }\n}\n","import Vue from 'vue'\n\nimport QField from '../field/QField.js'\n\nimport { FormFieldMixin } from '../../mixins/form.js'\nimport { FileValueMixin } from '../../mixins/file.js'\nimport MaskMixin from '../../mixins/mask.js'\nimport CompositionMixin from '../../mixins/composition.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { stop } from '../../utils/event.js'\nimport { addFocusFn } from '../../utils/private/focus-manager.js'\n\nexport default Vue.extend({\n name: 'QInput',\n\n mixins: [\n QField,\n MaskMixin,\n CompositionMixin,\n FormFieldMixin,\n FileValueMixin,\n ListenersMixin\n ],\n\n props: {\n value: { required: false },\n\n shadowText: String,\n\n type: {\n type: String,\n default: 'text'\n },\n\n debounce: [String, Number],\n\n autogrow: Boolean, // makes a textarea\n\n inputClass: [Array, String, Object],\n inputStyle: [Array, String, Object]\n },\n\n watch: {\n value (v) {\n if (this.hasMask === true) {\n if (this.stopValueWatcher === true) {\n this.stopValueWatcher = false\n\n if (String(v) === this.emitCachedValue) {\n return\n }\n }\n\n this.__updateMaskValue(v)\n }\n else if (this.innerValue !== v) {\n this.innerValue = v\n\n if (\n this.type === 'number' &&\n this.hasOwnProperty('tempValue') === true\n ) {\n if (this.typedNumber === true) {\n this.typedNumber = false\n }\n else {\n delete this.tempValue\n }\n }\n }\n\n // textarea only\n this.autogrow === true && this.$nextTick(this.__adjustHeight)\n },\n\n // some browsers lose the native input value\n // so we need to reattach it dynamically\n // (like type=\"password\" <-> type=\"text\"; see #12078)\n type () {\n if (this.$refs.input) {\n this.$refs.input.value = this.value\n }\n },\n\n autogrow (autogrow) {\n // textarea only\n if (autogrow === true) {\n this.$nextTick(this.__adjustHeight)\n }\n // if it has a number of rows set respect it\n else if (this.qAttrs.rows > 0 && this.$refs.input !== void 0) {\n const inp = this.$refs.input\n inp.style.height = 'auto'\n }\n },\n\n dense () {\n this.autogrow === true && this.$nextTick(this.__adjustHeight)\n }\n },\n\n data () {\n return { innerValue: this.__getInitialMaskedValue() }\n },\n\n computed: {\n isTextarea () {\n return this.type === 'textarea' || this.autogrow === true\n },\n\n isTypeText () {\n return this.isTextarea === true || ['text', 'search', 'url', 'tel', 'password'].includes(this.type)\n },\n\n fieldClass () {\n return `q-${this.isTextarea === true ? 'textarea' : 'input'}` +\n (this.autogrow === true ? ' q-textarea--autogrow' : '')\n },\n\n hasShadow () {\n return this.type !== 'file' &&\n typeof this.shadowText === 'string' &&\n this.shadowText.length > 0\n },\n\n onEvents () {\n const on = {\n ...this.qListeners,\n input: this.__onInput,\n paste: this.__onPaste,\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n change: this.__onChange,\n blur: this.__onFinishEditing,\n focus: stop\n }\n\n on.compositionstart = on.compositionupdate = on.compositionend = this.__onComposition\n\n if (this.hasMask === true) {\n on.keydown = this.__onMaskedKeydown\n // reset selection anchor on pointer selection\n on.click = this.__onMaskedClick\n }\n\n if (this.autogrow === true) {\n on.animationend = this.__onAnimationend\n }\n\n return on\n },\n\n inputAttrs () {\n const attrs = {\n tabindex: 0,\n 'data-autofocus': this.autofocus || void 0,\n rows: this.type === 'textarea' ? 6 : void 0,\n 'aria-label': this.label,\n name: this.nameProp,\n ...this.qAttrs,\n id: this.targetUid,\n type: this.type,\n maxlength: this.maxlength,\n disabled: this.disable === true,\n readonly: this.readonly === true\n }\n\n if (this.autogrow === true) {\n attrs.rows = 1\n }\n\n return attrs\n }\n },\n\n methods: {\n focus () {\n addFocusFn(() => {\n const el = document.activeElement\n if (\n this.$refs.input !== void 0 &&\n this.$refs.input !== el &&\n // IE can have null document.activeElement\n (el === null || el.id !== this.targetUid)\n ) {\n this.$refs.input.focus({ preventScroll: true })\n }\n })\n },\n\n select () {\n this.$refs.input !== void 0 && this.$refs.input.select()\n },\n\n getNativeElement () {\n return this.$refs.input\n },\n\n __onPaste (e) {\n if (this.hasMask === true && this.reverseFillMask !== true) {\n const inp = e.target\n this.__moveCursorForPaste(inp, inp.selectionStart, inp.selectionEnd)\n }\n\n this.$emit('paste', e)\n },\n\n __onInput (e) {\n if (!e || !e.target || e.target.qComposing === true) {\n return\n }\n\n if (this.type === 'file') {\n this.$emit('input', e.target.files)\n return\n }\n\n const val = e.target.value\n\n if (this.hasMask === true) {\n this.__updateMaskValue(val, false, e.inputType)\n }\n else {\n this.__emitValue(val)\n\n if (this.isTypeText === true && e.target === document.activeElement) {\n const { selectionStart, selectionEnd } = e.target\n\n if (selectionStart !== void 0 && selectionEnd !== void 0) {\n this.$nextTick(() => {\n if (e.target === document.activeElement && val.indexOf(e.target.value) === 0) {\n e.target.setSelectionRange(selectionStart, selectionEnd)\n }\n })\n }\n }\n }\n\n // we need to trigger it immediately too,\n // to avoid \"flickering\"\n this.autogrow === true && this.__adjustHeight()\n },\n\n __onAnimationend (e) {\n this.qListeners.animationend !== void 0 && this.$emit('animationend', e)\n this.__adjustHeight()\n },\n\n __emitValue (val, stopWatcher) {\n this.emitValueFn = () => {\n if (\n this.type !== 'number' &&\n this.hasOwnProperty('tempValue') === true\n ) {\n delete this.tempValue\n }\n\n if (this.value !== val && this.emitCachedValue !== val) {\n this.emitCachedValue = val\n\n stopWatcher === true && (this.stopValueWatcher = true)\n this.$emit('input', val)\n\n this.$nextTick(() => {\n this.emitCachedValue === val && (this.emitCachedValue = NaN)\n })\n }\n\n this.emitValueFn = void 0\n }\n\n if (this.type === 'number') {\n this.typedNumber = true\n this.tempValue = val\n }\n\n if (this.debounce !== void 0) {\n clearTimeout(this.emitTimer)\n this.tempValue = val\n this.emitTimer = setTimeout(this.emitValueFn, this.debounce)\n }\n else {\n this.emitValueFn()\n }\n },\n\n // textarea only\n __adjustHeight () {\n requestAnimationFrame(() => {\n const inp = this.$refs.input\n if (inp !== void 0) {\n const parentStyle = inp.parentNode.style\n // chrome does not keep scroll #15498\n const { scrollTop } = inp\n // chrome calculates a smaller scrollHeight when in a .column container\n const { overflowY, maxHeight } = this.$q.platform.is.firefox === true\n ? {}\n : window.getComputedStyle(inp)\n // on firefox or if overflowY is specified as scroll #14263, #14344\n // we don't touch overflow\n // firefox is not so bad in the end\n const changeOverflow = overflowY !== void 0 && overflowY !== 'scroll'\n\n // reset height of textarea to a small size to detect the real height\n // but keep the total control size the same\n changeOverflow === true && (inp.style.overflowY = 'hidden')\n parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px'\n inp.style.height = '1px'\n\n inp.style.height = inp.scrollHeight + 'px'\n // we should allow scrollbars only\n // if there is maxHeight and content is taller than maxHeight\n changeOverflow === true && (inp.style.overflowY = parseInt(maxHeight, 10) < inp.scrollHeight ? 'auto' : 'hidden')\n parentStyle.marginBottom = ''\n inp.scrollTop = scrollTop\n }\n })\n },\n\n __onChange (e) {\n this.__onComposition(e)\n\n clearTimeout(this.emitTimer)\n this.emitValueFn !== void 0 && this.emitValueFn()\n\n this.$emit('change', e)\n },\n\n __onFinishEditing (e) {\n e !== void 0 && stop(e)\n\n clearTimeout(this.emitTimer)\n this.emitValueFn !== void 0 && this.emitValueFn()\n\n this.typedNumber = false\n this.stopValueWatcher = false\n delete this.tempValue\n\n // we need to use setTimeout instead of this.$nextTick\n // to avoid a bug where focusout is not emitted for type date/time/week/...\n this.type !== 'file' && setTimeout(() => {\n if (this.$refs.input !== void 0) {\n this.$refs.input.value = this.innerValue !== void 0 ? this.innerValue : ''\n }\n })\n },\n\n __getCurValue () {\n return this.hasOwnProperty('tempValue') === true\n ? this.tempValue\n : (this.innerValue !== void 0 ? this.innerValue : '')\n },\n\n __getShadowControl (h) {\n return h('div', {\n staticClass: 'q-field__native q-field__shadow absolute-bottom no-pointer-events' +\n (this.isTextarea === true ? '' : ' text-no-wrap')\n }, [\n h('span', { staticClass: 'invisible' }, this.__getCurValue()),\n h('span', this.shadowText)\n ])\n },\n\n __getControl (h) {\n return h(this.isTextarea === true ? 'textarea' : 'input', {\n ref: 'input',\n staticClass: 'q-field__native q-placeholder',\n style: this.inputStyle,\n class: this.inputClass,\n attrs: this.inputAttrs,\n on: this.onEvents,\n domProps: this.type !== 'file'\n ? { value: this.__getCurValue() }\n : this.formDomProps\n })\n }\n },\n\n created () {\n this.emitCachedValue = NaN\n },\n\n mounted () {\n // textarea only\n this.autogrow === true && this.__adjustHeight()\n },\n\n beforeDestroy () {\n this.__onFinishEditing()\n }\n})\n","import QInput from './QInput.js'\n\nexport {\n QInput\n}\n","import { isDeepEqual } from '../utils/is.js'\n\nconst defaultCfg = {\n threshold: 0,\n root: null,\n rootMargin: '0px'\n}\n\nfunction update (el, ctx, value) {\n let handler, cfg, changed\n\n if (typeof value === 'function') {\n handler = value\n cfg = defaultCfg\n changed = ctx.cfg === void 0\n }\n else {\n handler = value.handler\n cfg = Object.assign({}, defaultCfg, value.cfg)\n changed = ctx.cfg === void 0 || isDeepEqual(ctx.cfg, cfg) === false\n }\n\n if (ctx.handler !== handler) {\n ctx.handler = handler\n }\n\n if (changed === true) {\n ctx.cfg = cfg\n ctx.observer !== void 0 && ctx.observer.unobserve(el)\n\n ctx.observer = new IntersectionObserver(([ entry ]) => {\n if (typeof ctx.handler === 'function') {\n // if observed element is part of a vue transition\n // then we need to be careful...\n if (\n entry.rootBounds === null &&\n (el.__vue__ !== void 0 ? el.__vue__._inactive !== true : document.body.contains(el) === true)\n ) {\n ctx.observer.unobserve(el)\n ctx.observer.observe(el)\n return\n }\n\n const res = ctx.handler(entry, ctx.observer)\n\n if (\n res === false ||\n (ctx.once === true && entry.isIntersecting === true)\n ) {\n destroy(el)\n }\n }\n }, cfg)\n\n ctx.observer.observe(el)\n }\n}\n\nfunction destroy (el) {\n const ctx = el.__qvisible\n\n if (ctx !== void 0) {\n ctx.observer !== void 0 && ctx.observer.unobserve(el)\n delete el.__qvisible\n }\n}\n\nexport default {\n name: 'intersection',\n\n inserted (el, { modifiers, value }) {\n if (el.__qvisible !== void 0) {\n destroy(el)\n el.__qvisible_destroyed = true\n }\n\n const ctx = {\n once: modifiers.once === true\n }\n\n update(el, ctx, value)\n\n el.__qvisible = ctx\n },\n\n update (el, binding) {\n const ctx = el.__qvisible\n ctx !== void 0 && update(el, ctx, binding.value)\n },\n\n unbind (el) {\n if (el.__qvisible_destroyed === void 0) {\n destroy(el)\n }\n else {\n delete el.__qvisible_destroyed\n }\n }\n}\n","import Vue from 'vue'\n\nimport { onSSR } from '../../plugins/Platform.js'\n\nimport Intersection from '../../directives/Intersection.js'\n\nimport TagMixin from '../../mixins/tag.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QIntersection',\n\n mixins: [ TagMixin, ListenersMixin ],\n\n directives: {\n Intersection\n },\n\n props: {\n once: Boolean,\n transition: String,\n\n ssrPrerender: Boolean,\n\n margin: String,\n threshold: [ Number, Array ],\n root: {\n default: null\n },\n\n disable: Boolean\n },\n\n data () {\n return {\n showing: onSSR === true ? this.ssrPrerender : false\n }\n },\n\n computed: {\n value () {\n return this.root !== void 0 || this.margin !== void 0 || this.threshold !== void 0\n ? {\n handler: this.__trigger,\n cfg: {\n root: this.root,\n rootMargin: this.margin,\n threshold: this.threshold\n }\n }\n : this.__trigger\n },\n\n directives () {\n if (this.disable !== true && (onSSR !== true || this.once !== true || this.ssrPrerender !== true)) {\n return [{\n name: 'intersection',\n value: this.value,\n modifiers: {\n once: this.once\n }\n }]\n }\n }\n },\n\n methods: {\n __trigger (entry) {\n if (this.showing !== entry.isIntersecting) {\n this.showing = entry.isIntersecting\n\n if (this.qListeners.visibility !== void 0) {\n this.$emit('visibility', this.showing)\n }\n }\n }\n },\n\n render (h) {\n const content = this.showing === true\n ? [ h('div', { key: 'content' }, slot(this, 'default')) ]\n : void 0\n\n return h(this.tag, {\n staticClass: 'q-intersection',\n on: { ...this.qListeners },\n directives: this.directives\n }, this.transition\n ? [\n h('transition', {\n props: { name: 'q-transition--' + this.transition }\n }, content)\n ]\n : content\n )\n }\n})\n","import QIntersection from './QIntersection.js'\n\nexport {\n QIntersection\n}\n","import QList from './QList.js'\n\nimport QItem from './QItem.js'\nimport QItemSection from './QItemSection.js'\nimport QItemLabel from './QItemLabel.js'\n\nexport {\n QList,\n\n QItem,\n QItemSection,\n QItemLabel\n}\n","import Vue from 'vue'\n\nimport { position, stopAndPrevent } from '../../utils/event.js'\nimport { between, normalizeToInterval } from '../../utils/format.js'\nimport { slot } from '../../utils/private/slot.js'\nimport cache from '../../utils/private/cache.js'\n\nimport QCircularProgress from '../circular-progress/QCircularProgress.js'\nimport FormMixin from '../../mixins/form.js'\nimport TouchPan from '../../directives/TouchPan.js'\n\n// PGDOWN, LEFT, DOWN, PGUP, RIGHT, UP\nconst keyCodes = [34, 37, 40, 33, 39, 38]\n\nexport default Vue.extend({\n name: 'QKnob',\n\n mixins: [\n { props: QCircularProgress.options.props },\n FormMixin\n ],\n\n directives: {\n TouchPan\n },\n\n props: {\n innerMin: Number,\n innerMax: Number,\n\n step: {\n type: Number,\n default: 1,\n validator: v => v >= 0\n },\n\n tabindex: {\n type: [Number, String],\n default: 0\n },\n\n disable: Boolean,\n readonly: Boolean\n },\n\n data () {\n const innerMin = this.__getInnerMin(this.innerMin)\n const innerMax = this.__getInnerMax(this.innerMax)\n\n return {\n model: this.value === null ? innerMin : between(this.value, innerMin, innerMax),\n dragging: false\n }\n },\n\n watch: {\n modelUpdate () {\n this.model = this.value === null\n ? this.computedInnerMin\n : between(this.value, this.computedInnerMin, this.computedInnerMax)\n\n this.__updateValue(true)\n }\n },\n\n computed: {\n classes () {\n return 'q-knob non-selectable' + (\n this.editable === true\n ? ' q-knob--editable'\n : (this.disable === true ? ' disabled' : '')\n )\n },\n\n computedInnerMin () {\n return this.__getInnerMin(this.innerMin)\n },\n\n computedInnerMax () {\n return this.__getInnerMax(this.innerMax)\n },\n\n modelUpdate () {\n return `${this.value}|${this.computedInnerMin}|${this.computedInnerMax}`\n },\n\n editable () {\n return this.disable === false && this.readonly === false\n },\n\n decimals () {\n return (String(this.step).trim('0').split('.')[1] || '').length\n },\n\n computedStep () {\n return this.step === 0 ? 1 : this.step\n },\n\n computedInstantFeedback () {\n return this.instantFeedback === true ||\n this.dragging === true\n },\n\n onEvents () {\n return this.$q.platform.is.mobile === true\n ? { click: this.__click }\n : {\n mousedown: this.__activate,\n click: this.__click,\n keydown: this.__keydown,\n keyup: this.__keyup\n }\n },\n\n attrs () {\n const attrs = {\n role: 'slider',\n 'aria-valuemin': this.computedInnerMin,\n 'aria-valuemax': this.computedInnerMax,\n 'aria-valuenow': this.value\n }\n\n if (this.editable === true) {\n attrs.tabindex = this.tabindex\n }\n else {\n attrs[`aria-${this.disable === true ? 'disabled' : 'readonly'}`] = ''\n }\n\n return attrs\n }\n },\n\n methods: {\n __getInnerMin (val) {\n return isNaN(val) === true || this.innerMin < this.min\n ? this.min\n : this.innerMin\n },\n\n __getInnerMax (val) {\n return isNaN(val) === true || val > this.max\n ? this.max\n : this.innerMax\n },\n\n __updateCenterPosition () {\n const { top, left, width, height } = this.$el.getBoundingClientRect()\n this.centerPosition = {\n top: top + height / 2,\n left: left + width / 2\n }\n },\n\n __pan (event) {\n if (event.isFinal) {\n this.__updatePosition(event.evt, true)\n this.dragging = false\n }\n else if (event.isFirst) {\n this.__updateCenterPosition()\n this.dragging = true\n this.__updatePosition(event.evt)\n }\n else {\n this.__updatePosition(event.evt)\n }\n },\n\n __click (evt) {\n this.__updateCenterPosition()\n this.__updatePosition(evt, true)\n },\n\n __keydown (evt) {\n if (!keyCodes.includes(evt.keyCode)) {\n return\n }\n\n stopAndPrevent(evt)\n\n const\n step = ([34, 33].includes(evt.keyCode) ? 10 : 1) * this.computedStep,\n offset = [34, 37, 40].includes(evt.keyCode) ? -step : step\n\n this.model = between(\n parseFloat((this.model + offset).toFixed(this.decimals)),\n this.computedInnerMin,\n this.computedInnerMax\n )\n\n this.__updateValue()\n },\n\n __keyup (evt) {\n if (keyCodes.includes(evt.keyCode)) {\n this.__updateValue(true)\n }\n },\n\n __activate (evt) {\n this.__updateCenterPosition()\n this.__updatePosition(evt)\n },\n\n __updatePosition (evt, change) {\n const\n center = this.centerPosition,\n pos = position(evt),\n height = Math.abs(pos.top - center.top),\n distance = Math.sqrt(\n height ** 2 +\n Math.abs(pos.left - center.left) ** 2\n )\n\n let angle = Math.asin(height / distance) * (180 / Math.PI)\n\n if (pos.top < center.top) {\n angle = center.left < pos.left ? 90 - angle : 270 + angle\n }\n else {\n angle = center.left < pos.left ? angle + 90 : 270 - angle\n }\n\n if (this.$q.lang.rtl === true) {\n angle = normalizeToInterval(-angle - this.angle, 0, 360)\n }\n else if (this.angle) {\n angle = normalizeToInterval(angle - this.angle, 0, 360)\n }\n\n if (this.reverse === true) {\n angle = 360 - angle\n }\n\n let model = this.min + (angle / 360) * (this.max - this.min)\n\n if (this.step !== 0) {\n const\n step = this.computedStep,\n modulo = model % step\n\n model = model - modulo +\n (Math.abs(modulo) >= step / 2 ? (modulo < 0 ? -1 : 1) * step : 0)\n\n model = parseFloat(model.toFixed(this.decimals))\n }\n\n model = between(model, this.computedInnerMin, this.computedInnerMax)\n\n this.$emit('drag-value', model)\n\n if (this.model !== model) {\n this.model = model\n }\n\n this.__updateValue(change)\n },\n\n __updateValue (change) {\n this.value !== this.model && this.$emit('input', this.model)\n change === true && this.$emit('change', this.model)\n },\n\n __getNameInput () {\n return this.$createElement('input', { attrs: this.formAttrs })\n }\n },\n\n render (h) {\n const data = {\n class: this.classes,\n attrs: this.attrs,\n props: {\n ...this.$props,\n value: this.model,\n instantFeedback: this.computedInstantFeedback\n }\n }\n\n if (this.editable === true) {\n data.on = this.onEvents\n data.directives = cache(this, 'dir', [{\n name: 'touch-pan',\n value: this.__pan,\n modifiers: {\n prevent: true,\n stop: true,\n mouse: true\n }\n }])\n\n if (this.name !== void 0) {\n data.scopedSlots = {\n internal: this.__getNameInput\n }\n }\n }\n\n return h(QCircularProgress, data, slot(this, 'default'))\n }\n})\n","import QKnob from './QKnob.js'\n\nexport {\n QKnob\n}\n","import Vue from 'vue'\n\nimport { getScrollPosition, getScrollTarget, getHorizontalScrollPosition } from '../../utils/scroll.js'\nimport { listenOpts, noop } from '../../utils/event.js'\n\nconst { passive } = listenOpts\n\nexport default Vue.extend({\n name: 'QScrollObserver',\n\n props: {\n debounce: [ String, Number ],\n horizontal: Boolean,\n\n scrollTarget: {\n default: void 0\n }\n },\n\n render: noop, // eslint-disable-line\n\n data () {\n return {\n pos: 0,\n dir: this.horizontal === true ? 'right' : 'down',\n dirChanged: false,\n dirChangePos: 0\n }\n },\n\n watch: {\n scrollTarget () {\n this.__unconfigureScrollTarget()\n this.__configureScrollTarget()\n },\n\n '$q.lang.rtl' () {\n this.__emit()\n }\n },\n\n methods: {\n getPosition () {\n return {\n position: this.pos,\n direction: this.dir,\n directionChanged: this.dirChanged,\n inflexionPosition: this.dirChangePos\n }\n },\n\n trigger (immediately) {\n if (immediately === true || this.debounce === 0 || this.debounce === '0') {\n this.__emit()\n }\n else if (this.clearTimer === void 0) {\n const [ timer, fn ] = this.debounce\n ? [ setTimeout(this.__emit, this.debounce), clearTimeout ]\n : [ requestAnimationFrame(this.__emit), cancelAnimationFrame ]\n\n this.clearTimer = () => {\n fn(timer)\n this.clearTimer = void 0\n }\n }\n },\n\n __emit () {\n this.clearTimer !== void 0 && this.clearTimer()\n\n const fn = this.horizontal === true\n ? getHorizontalScrollPosition\n : getScrollPosition\n\n const\n pos = Math.max(0, fn(this.__scrollTarget)),\n delta = pos - this.pos,\n dir = this.horizontal === true\n ? delta < 0 ? 'left' : 'right'\n : delta < 0 ? 'up' : 'down'\n\n this.dirChanged = this.dir !== dir\n\n if (this.dirChanged) {\n this.dir = dir\n this.dirChangePos = this.pos\n }\n\n this.pos = pos\n this.$emit('scroll', this.getPosition())\n },\n\n __configureScrollTarget () {\n this.__scrollTarget = getScrollTarget(this.$el.parentNode, this.scrollTarget)\n this.__scrollTarget.addEventListener('scroll', this.trigger, passive)\n this.trigger(true)\n },\n\n __unconfigureScrollTarget () {\n if (this.__scrollTarget !== void 0) {\n this.__scrollTarget.removeEventListener('scroll', this.trigger, passive)\n this.__scrollTarget = void 0\n }\n }\n },\n\n mounted () {\n this.__configureScrollTarget()\n },\n\n beforeDestroy () {\n this.clearTimer !== void 0 && this.clearTimer()\n this.__unconfigureScrollTarget()\n }\n})\n","import Vue from 'vue'\n\nimport { onSSR } from '../../plugins/Platform.js'\n\nimport QScrollObserver from '../scroll-observer/QScrollObserver.js'\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { getScrollbarWidth } from '../../utils/scroll.js'\nimport { mergeSlot } from '../../utils/private/slot.js'\nimport cache from '../../utils/private/cache.js'\n\nexport default Vue.extend({\n name: 'QLayout',\n\n mixins: [ ListenersMixin ],\n\n provide () {\n return {\n layout: this\n }\n },\n\n props: {\n container: Boolean,\n view: {\n type: String,\n default: 'hhh lpr fff',\n validator: v => /^(h|l)h(h|r) lpr (f|l)f(f|r)$/.test(v.toLowerCase())\n }\n },\n\n data () {\n return {\n // page related\n height: this.$q.screen.height,\n width: this.container === true ? 0 : this.$q.screen.width,\n\n // container only prop\n containerHeight: 0,\n scrollbarWidth: onSSR === true ? 0 : getScrollbarWidth(),\n\n header: {\n size: 0,\n offset: 0,\n space: false\n },\n right: {\n size: 300,\n offset: 0,\n space: false\n },\n footer: {\n size: 0,\n offset: 0,\n space: false\n },\n left: {\n size: 300,\n offset: 0,\n space: false\n },\n\n scroll: {\n position: 0,\n direction: 'down'\n }\n }\n },\n\n computed: {\n rows () {\n const rows = this.view.toLowerCase().split(' ')\n return {\n top: rows[0].split(''),\n middle: rows[1].split(''),\n bottom: rows[2].split('')\n }\n },\n\n style () {\n return this.container === true\n ? null\n : { minHeight: this.$q.screen.height + 'px' }\n },\n\n // used by container only\n targetStyle () {\n if (this.scrollbarWidth !== 0) {\n return { [this.$q.lang.rtl === true ? 'left' : 'right']: `${this.scrollbarWidth}px` }\n }\n },\n\n targetChildStyle () {\n if (this.scrollbarWidth !== 0) {\n return {\n [this.$q.lang.rtl === true ? 'right' : 'left']: 0,\n [this.$q.lang.rtl === true ? 'left' : 'right']: `-${this.scrollbarWidth}px`,\n width: `calc(100% + ${this.scrollbarWidth}px)`\n }\n }\n },\n\n totalWidth () {\n return this.width + this.scrollbarWidth\n },\n\n classes () {\n return 'q-layout q-layout--' +\n (this.container === true ? 'containerized' : 'standard')\n },\n\n scrollbarEvtAction () {\n return this.container !== true && this.scrollbarWidth > 0\n ? 'add' : 'remove'\n }\n },\n\n watch: {\n scrollbarEvtAction: '__updateScrollEvent'\n },\n\n created () {\n this.instances = {}\n },\n\n mounted () {\n this.scrollbarEvtAction === 'add' && this.__updateScrollEvent('add')\n },\n\n beforeDestroy () {\n this.scrollbarEvtAction === 'add' && this.__updateScrollEvent('remove')\n },\n\n render (h) {\n const layout = h('div', {\n class: this.classes,\n style: this.style,\n attrs: { tabindex: -1 },\n on: { ...this.qListeners }\n }, mergeSlot([\n h(QScrollObserver, {\n on: cache(this, 'scroll', { scroll: this.__onPageScroll })\n }),\n\n h(QResizeObserver, {\n on: cache(this, 'resizeOut', { resize: this.__onPageResize })\n })\n ], this, 'default'))\n\n return this.container === true\n ? h('div', {\n staticClass: 'q-layout-container overflow-hidden'\n }, [\n h(QResizeObserver, {\n on: cache(this, 'resizeIn', { resize: this.__onContainerResize })\n }),\n h('div', {\n staticClass: 'absolute-full',\n style: this.targetStyle\n }, [\n h('div', {\n staticClass: 'scroll',\n style: this.targetChildStyle\n }, [ layout ])\n ])\n ])\n : layout\n },\n\n methods: {\n __animate () {\n if (this.timer !== void 0) {\n clearTimeout(this.timer)\n }\n else {\n document.body.classList.add('q-body--layout-animate')\n }\n this.timer = setTimeout(() => {\n document.body.classList.remove('q-body--layout-animate')\n this.timer = void 0\n }, 150)\n },\n\n __onPageScroll (data) {\n if (this.container === true || document.qScrollPrevented !== true) {\n this.scroll = data\n }\n this.qListeners.scroll !== void 0 && this.$emit('scroll', data)\n },\n\n __onPageResize ({ height, width }) {\n let resized = false\n\n if (this.height !== height) {\n resized = true\n this.height = height\n if (this.qListeners['scroll-height'] !== void 0) {\n this.$emit('scroll-height', height)\n }\n this.__updateScrollbarWidth()\n }\n if (this.width !== width) {\n resized = true\n this.width = width\n }\n\n if (resized === true && this.qListeners.resize !== void 0) {\n this.$emit('resize', { height, width })\n }\n },\n\n __onContainerResize ({ height }) {\n if (this.containerHeight !== height) {\n this.containerHeight = height\n this.__updateScrollbarWidth()\n }\n },\n\n __updateScrollbarWidth () {\n if (this.container === true) {\n const width = this.height > this.containerHeight\n ? getScrollbarWidth()\n : 0\n\n if (this.scrollbarWidth !== width) {\n this.scrollbarWidth = width\n }\n }\n },\n\n __updateScrollEvent (action) {\n if (this.timerScrollbar !== void 0 && action === 'remove') {\n clearTimeout(this.timerScrollbar)\n this.__restoreScrollbar()\n }\n\n window[`${action}EventListener`]('resize', this.__hideScrollbar)\n },\n\n __hideScrollbar () {\n if (this.timerScrollbar === void 0) {\n const el = document.body\n\n // if it has no scrollbar then there's nothing to do\n if (el.scrollHeight > this.$q.screen.height) {\n return\n }\n\n el.classList.add('hide-scrollbar')\n }\n else {\n clearTimeout(this.timerScrollbar)\n }\n\n this.timerScrollbar = setTimeout(this.__restoreScrollbar, 200)\n },\n\n __restoreScrollbar () {\n this.timerScrollbar = void 0\n document.body.classList.remove('hide-scrollbar')\n }\n }\n})\n","import QLayout from './QLayout.js'\n\nexport {\n QLayout\n}\n","import Vue from 'vue'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QMarkupTable',\n\n mixins: [ DarkMixin, ListenersMixin ],\n\n props: {\n dense: Boolean,\n flat: Boolean,\n bordered: Boolean,\n square: Boolean,\n separator: {\n type: String,\n default: 'horizontal',\n validator: v => ['horizontal', 'vertical', 'cell', 'none'].includes(v)\n },\n wrapCells: Boolean\n },\n\n computed: {\n classes () {\n return `q-table--${this.separator}-separator` +\n (this.isDark === true ? ' q-table--dark q-table__card--dark q-dark' : '') +\n (this.dense === true ? ' q-table--dense' : '') +\n (this.flat === true ? ' q-table--flat' : '') +\n (this.bordered === true ? ' q-table--bordered' : '') +\n (this.square === true ? ' q-table--square' : '') +\n (this.wrapCells === false ? ' q-table--no-wrap' : '')\n }\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-markup-table q-table__container q-table__card',\n class: this.classes,\n on: { ...this.qListeners }\n }, [\n h('table', { staticClass: 'q-table' }, slot(this, 'default'))\n ])\n }\n})\n","import QMarkupTable from './QMarkupTable.js'\n\nexport {\n QMarkupTable\n}\n","import QMenu from './QMenu.js'\n\nexport {\n QMenu\n}\n","import Vue from 'vue'\n\nimport CanRenderMixin from '../../mixins/can-render.js'\nimport TagMixin from '../../mixins/tag.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QNoSsr',\n\n mixins: [ CanRenderMixin, TagMixin, ListenersMixin ],\n\n props: {\n placeholder: String\n },\n\n render (h) {\n const data = {\n on: { ...this.qListeners }\n }\n\n if (this.canRender === true) {\n const node = slot(this, 'default')\n return node === void 0\n ? node\n : (node.length > 1 ? h(this.tag, data, node) : node[0])\n }\n\n data.staticClass = 'q-no-ssr-placeholder'\n\n const node = slot(this, 'placeholder')\n if (node !== void 0) {\n return node.length > 1\n ? h(this.tag, data, node)\n : node[0]\n }\n\n if (this.placeholder !== void 0) {\n return h(this.tag, data, [\n this.placeholder\n ])\n }\n }\n})\n","import QNoSsr from './QNoSsr.js'\n\nexport {\n QNoSsr\n}\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport OptionSizeMixin from '../../mixins/option-size.js'\nimport FormMixin from '../../mixins/form.js'\nimport RefocusTargetMixin from '../../mixins/refocus-target.js'\n\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { slot, mergeSlot } from '../../utils/private/slot.js'\nimport cache from '../../utils/private/cache.js'\n\nexport default Vue.extend({\n name: 'QRadio',\n\n mixins: [ DarkMixin, OptionSizeMixin, FormMixin, RefocusTargetMixin ],\n\n props: {\n value: {\n required: true\n },\n val: {\n required: true\n },\n\n label: String,\n leftLabel: Boolean,\n\n checkedIcon: String,\n uncheckedIcon: String,\n\n color: String,\n keepColor: Boolean,\n dense: Boolean,\n\n disable: Boolean,\n tabindex: [String, Number]\n },\n\n computed: {\n isTrue () {\n return this.value === this.val\n },\n\n classes () {\n return 'q-radio cursor-pointer no-outline row inline no-wrap items-center' +\n (this.disable === true ? ' disabled' : '') +\n (this.isDark === true ? ' q-radio--dark' : '') +\n (this.dense === true ? ' q-radio--dense' : '') +\n (this.leftLabel === true ? ' reverse' : '')\n },\n\n innerClass () {\n const color = this.color !== void 0 && (\n this.keepColor === true ||\n this.isTrue === true\n )\n ? ` text-${this.color}`\n : ''\n\n return `q-radio__inner--${this.isTrue === true ? 'truthy' : 'falsy'}${color}`\n },\n\n computedIcon () {\n return this.isTrue === true\n ? this.checkedIcon\n : this.uncheckedIcon\n },\n\n computedTabindex () {\n return this.disable === true ? -1 : this.tabindex || 0\n },\n\n formAttrs () {\n const prop = { type: 'radio' }\n\n this.name !== void 0 && Object.assign(prop, {\n name: this.name,\n value: this.val\n })\n\n return prop\n },\n\n formDomProps () {\n if (this.name !== void 0 && this.isTrue === true) {\n return { checked: true }\n }\n },\n\n attrs () {\n const attrs = {\n tabindex: this.computedTabindex,\n role: 'radio',\n 'aria-label': this.label,\n 'aria-checked': this.isTrue === true ? 'true' : 'false'\n }\n\n if (this.disable === true) {\n attrs['aria-disabled'] = 'true'\n }\n\n return attrs\n }\n },\n\n methods: {\n set (e) {\n if (e !== void 0) {\n stopAndPrevent(e)\n this.__refocusTarget(e)\n }\n\n if (this.disable !== true && this.isTrue !== true) {\n this.$emit('input', this.val, e)\n }\n }\n },\n\n render (h) {\n const content = this.computedIcon !== void 0\n ? [\n h('div', {\n key: 'icon',\n staticClass: 'q-radio__icon-container absolute-full flex flex-center no-wrap'\n }, [\n h(QIcon, {\n staticClass: 'q-radio__icon',\n props: { name: this.computedIcon }\n })\n ])\n ]\n : [\n h('svg', {\n key: 'svg',\n staticClass: 'q-radio__bg absolute non-selectable',\n attrs: { focusable: 'false' /* needed for IE11 */, viewBox: '0 0 24 24' }\n }, [\n h('path', {\n attrs: {\n d: 'M12,22a10,10 0 0 1 -10,-10a10,10 0 0 1 10,-10a10,10 0 0 1 10,10a10,10 0 0 1 -10,10m0,-22a12,12 0 0 0 -12,12a12,12 0 0 0 12,12a12,12 0 0 0 12,-12a12,12 0 0 0 -12,-12'\n }\n }),\n\n h('path', {\n staticClass: 'q-radio__check',\n attrs: {\n d: 'M12,6a6,6 0 0 0 -6,6a6,6 0 0 0 6,6a6,6 0 0 0 6,-6a6,6 0 0 0 -6,-6'\n }\n })\n ])\n ]\n\n this.disable !== true && this.__injectFormInput(\n content,\n 'unshift',\n 'q-radio__native q-ma-none q-pa-none'\n )\n\n const child = [\n h('div', {\n staticClass: 'q-radio__inner relative-position',\n class: this.innerClass,\n style: this.sizeStyle,\n attrs: { 'aria-hidden': 'true' }\n }, content)\n ]\n\n if (this.__refocusTargetEl !== void 0) {\n child.push(this.__refocusTargetEl)\n }\n\n const label = this.label !== void 0\n ? mergeSlot([ this.label ], this, 'default')\n : slot(this, 'default')\n\n label !== void 0 && child.push(\n h('div', {\n staticClass: 'q-radio__label q-anchor--skip'\n }, label)\n )\n\n return h('div', {\n class: this.classes,\n attrs: this.attrs,\n on: cache(this, 'inpExt', {\n click: this.set,\n keydown: e => {\n if (e.keyCode === 13 || e.keyCode === 32) {\n stopAndPrevent(e)\n }\n },\n keyup: e => {\n if (e.keyCode === 13 || e.keyCode === 32) {\n this.set(e)\n }\n }\n })\n }, child)\n }\n})\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\nimport CheckboxMixin from '../../mixins/checkbox.js'\n\nexport default Vue.extend({\n name: 'QToggle',\n\n mixins: [ CheckboxMixin ],\n\n props: {\n icon: String,\n\n iconColor: String\n },\n\n computed: {\n computedIcon () {\n return (\n this.isTrue === true\n ? this.checkedIcon\n : (this.isIndeterminate === true ? this.indeterminateIcon : this.uncheckedIcon)\n ) || this.icon\n },\n\n computedIconColor () {\n if (this.isTrue === true) {\n return this.iconColor\n }\n }\n },\n\n methods: {\n __getInner (h) {\n return [\n h('div', { staticClass: 'q-toggle__track' }),\n\n h('div', {\n staticClass: 'q-toggle__thumb absolute flex flex-center no-wrap'\n }, this.computedIcon !== void 0\n ? [\n h(QIcon, {\n props: {\n name: this.computedIcon,\n color: this.computedIconColor\n }\n })\n ]\n : void 0\n )\n ]\n }\n },\n\n created () {\n this.type = 'toggle'\n }\n})\n","import Vue from 'vue'\n\nimport QRadio from '../radio/QRadio.js'\nimport QCheckbox from '../checkbox/QCheckbox.js'\nimport QToggle from '../toggle/QToggle.js'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport cache from '../../utils/private/cache.js'\n\nconst components = {\n radio: QRadio,\n checkbox: QCheckbox,\n toggle: QToggle\n}\n\nconst typeValues = Object.keys(components)\n\nexport default Vue.extend({\n name: 'QOptionGroup',\n\n mixins: [ DarkMixin, ListenersMixin ],\n\n props: {\n value: {\n required: true\n },\n options: {\n type: Array,\n validator (opts) {\n return opts.every(opt => 'value' in opt && 'label' in opt)\n }\n },\n\n name: String,\n\n type: {\n default: 'radio',\n validator: v => typeValues.includes(v)\n },\n\n color: String,\n keepColor: Boolean,\n dense: Boolean,\n\n size: String,\n\n leftLabel: Boolean,\n inline: Boolean,\n disable: Boolean\n },\n\n computed: {\n component () {\n return components[this.type]\n },\n\n model () {\n return Array.isArray(this.value)\n ? this.value.slice()\n : this.value\n },\n\n classes () {\n return 'q-option-group q-gutter-x-sm' +\n (this.inline === true ? ' q-option-group--inline' : '')\n },\n\n attrs () {\n if (this.type === 'radio') {\n const attrs = {\n role: 'radiogroup'\n }\n\n if (this.disable === true) {\n attrs['aria-disabled'] = 'true'\n }\n\n return attrs\n }\n\n return { role: 'group' }\n }\n },\n\n methods: {\n __update (value) {\n this.$emit('input', value)\n }\n },\n\n created () {\n const isArray = Array.isArray(this.value)\n\n if (this.type === 'radio') {\n if (isArray) {\n console.error('q-option-group: model should not be array')\n }\n }\n else if (isArray === false) {\n console.error('q-option-group: model should be array in your case')\n }\n },\n\n render (h) {\n return h('div', {\n class: this.classes,\n attrs: this.attrs,\n on: { ...this.qListeners }\n }, this.options.map((opt, i) => {\n const child = this.$scopedSlots[ 'label-' + i ] !== void 0\n ? this.$scopedSlots[ 'label-' + i ](opt)\n : (\n this.$scopedSlots.label !== void 0\n ? this.$scopedSlots.label(opt)\n : void 0\n )\n\n return h('div', [\n h(this.component, {\n props: {\n value: this.value,\n val: opt.value,\n name: opt.name === void 0 ? this.name : opt.name,\n disable: this.disable || opt.disable,\n label: child === void 0 ? opt.label : void 0,\n leftLabel: opt.leftLabel === void 0 ? this.leftLabel : opt.leftLabel,\n color: opt.color === void 0 ? this.color : opt.color,\n checkedIcon: opt.checkedIcon,\n uncheckedIcon: opt.uncheckedIcon,\n dark: opt.dark || this.isDark,\n size: opt.size === void 0 ? this.size : opt.size,\n dense: this.dense,\n keepColor: opt.keepColor === void 0 ? this.keepColor : opt.keepColor\n },\n on: cache(this, 'inp', {\n input: this.__update\n })\n }, child)\n ])\n }))\n }\n})\n","import QOptionGroup from './QOptionGroup.js'\n\nexport {\n QOptionGroup\n}\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QPage',\n\n mixins: [ ListenersMixin ],\n\n inject: {\n pageContainer: {\n default () {\n console.error('QPage needs to be child of QPageContainer')\n }\n },\n layout: {}\n },\n\n props: {\n padding: Boolean,\n styleFn: Function\n },\n\n computed: {\n style () {\n const offset =\n (this.layout.header.space === true ? this.layout.header.size : 0) +\n (this.layout.footer.space === true ? this.layout.footer.size : 0)\n\n if (typeof this.styleFn === 'function') {\n const height = this.layout.container === true\n ? this.layout.containerHeight\n : this.$q.screen.height\n\n return this.styleFn(offset, height)\n }\n\n return {\n minHeight: this.layout.container === true\n ? (this.layout.containerHeight - offset) + 'px'\n : (\n this.$q.screen.height === 0\n ? `calc(100vh - ${offset}px)`\n : (this.$q.screen.height - offset) + 'px'\n )\n }\n },\n\n classes () {\n if (this.padding === true) {\n return 'q-layout-padding'\n }\n }\n },\n\n render (h) {\n return h('main', {\n staticClass: 'q-page',\n style: this.style,\n class: this.classes,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QPageContainer',\n\n mixins: [ ListenersMixin ],\n\n inject: {\n layout: {\n default () {\n console.error('QPageContainer needs to be child of QLayout')\n }\n }\n },\n\n provide: {\n pageContainer: true\n },\n\n computed: {\n style () {\n const css = {}\n\n if (this.layout.header.space === true) {\n css.paddingTop = `${this.layout.header.size}px`\n }\n if (this.layout.right.space === true) {\n css[`padding${this.$q.lang.rtl === true ? 'Left' : 'Right'}`] = `${this.layout.right.size}px`\n }\n if (this.layout.footer.space === true) {\n css.paddingBottom = `${this.layout.footer.size}px`\n }\n if (this.layout.left.space === true) {\n css[`padding${this.$q.lang.rtl === true ? 'Right' : 'Left'}`] = `${this.layout.left.size}px`\n }\n\n return css\n }\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-page-container',\n style: this.style,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import QPage from './QPage.js'\nimport QPageContainer from './QPageContainer.js'\n\nexport {\n QPage,\n QPageContainer\n}\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QPageSticky',\n\n mixins: [ ListenersMixin ],\n\n inject: {\n layout: {\n default () {\n console.error('QPageSticky needs to be child of QLayout')\n }\n }\n },\n\n props: {\n position: {\n type: String,\n default: 'bottom-right',\n validator: v => [\n 'top-right', 'top-left',\n 'bottom-right', 'bottom-left',\n 'top', 'right', 'bottom', 'left'\n ].includes(v)\n },\n offset: {\n type: Array,\n validator: v => v.length === 2\n },\n expand: Boolean\n },\n\n computed: {\n attach () {\n const pos = this.position\n\n return {\n top: pos.indexOf('top') > -1,\n right: pos.indexOf('right') > -1,\n bottom: pos.indexOf('bottom') > -1,\n left: pos.indexOf('left') > -1,\n vertical: pos === 'top' || pos === 'bottom',\n horizontal: pos === 'left' || pos === 'right'\n }\n },\n\n top () {\n return this.layout.header.offset\n },\n\n right () {\n return this.layout.right.offset\n },\n\n bottom () {\n return this.layout.footer.offset\n },\n\n left () {\n return this.layout.left.offset\n },\n\n style () {\n let\n posX = 0,\n posY = 0\n\n const\n attach = this.attach,\n dir = this.$q.lang.rtl === true ? -1 : 1\n\n if (attach.top === true && this.top !== 0) {\n posY = `${this.top}px`\n }\n else if (attach.bottom === true && this.bottom !== 0) {\n posY = `${-this.bottom}px`\n }\n\n if (attach.left === true && this.left !== 0) {\n posX = `${dir * this.left}px`\n }\n else if (attach.right === true && this.right !== 0) {\n posX = `${-dir * this.right}px`\n }\n\n const css = { transform: `translate(${posX}, ${posY})` }\n\n if (this.offset) {\n css.margin = `${this.offset[1]}px ${this.offset[0]}px`\n }\n\n if (attach.vertical === true) {\n if (this.left !== 0) {\n css[this.$q.lang.rtl === true ? 'right' : 'left'] = `${this.left}px`\n }\n if (this.right !== 0) {\n css[this.$q.lang.rtl === true ? 'left' : 'right'] = `${this.right}px`\n }\n }\n else if (attach.horizontal === true) {\n if (this.top !== 0) {\n css.top = `${this.top}px`\n }\n if (this.bottom !== 0) {\n css.bottom = `${this.bottom}px`\n }\n }\n\n return css\n },\n\n classes () {\n return `fixed-${this.position} q-page-sticky--${this.expand === true ? 'expand' : 'shrink'}`\n }\n },\n\n render (h) {\n const content = slot(this, 'default')\n\n return h('div', {\n staticClass: 'q-page-sticky row flex-center',\n class: this.classes,\n style: this.style,\n on: { ...this.qListeners }\n },\n this.expand === true\n ? content\n : [ h('div', content) ]\n )\n }\n})\n","import Vue from 'vue'\n\nimport QPageSticky from '../page-sticky/QPageSticky.js'\nimport { getScrollTarget, setScrollPosition } from '../../utils/scroll.js'\n\nexport default Vue.extend({\n name: 'QPageScroller',\n\n mixins: [ QPageSticky ],\n\n props: {\n scrollOffset: {\n type: Number,\n default: 1000\n },\n\n reverse: Boolean,\n\n duration: {\n type: Number,\n default: 300\n },\n\n offset: {\n default: () => [18, 18]\n }\n },\n\n inject: {\n layout: {\n default () {\n console.error('QPageScroller needs to be used within a QLayout')\n }\n }\n },\n\n data () {\n return {\n showing: this.__isVisible()\n }\n },\n\n computed: {\n scrollHeight () {\n return this.layout.height - (\n this.layout.container === true\n ? this.layout.containerHeight\n : this.$q.screen.height\n )\n },\n\n onEvents () {\n return {\n ...this.qListeners,\n click: this.__onClick\n }\n }\n },\n\n watch: {\n 'layout.scroll.position' () {\n this.__updateVisibility()\n },\n\n reverse: {\n handler (val) {\n if (val === true) {\n if (this.heightWatcher === void 0) {\n this.heightWatcher = this.$watch('scrollHeight', this.__updateVisibility)\n }\n }\n else if (this.heightWatcher !== void 0) {\n this.__cleanup()\n }\n },\n immediate: true\n }\n },\n\n methods: {\n __isVisible () {\n return this.reverse === true\n ? this.scrollHeight - this.layout.scroll.position > this.scrollOffset\n : this.layout.scroll.position > this.scrollOffset\n },\n\n __onClick (e) {\n const target = getScrollTarget(this.layout.container === true ? this.$el : this.layout.$el)\n setScrollPosition(target, this.reverse === true ? this.layout.height : 0, this.duration)\n this.$emit('click', e)\n },\n\n __updateVisibility () {\n const newVal = this.__isVisible()\n if (this.showing !== newVal) {\n this.showing = newVal\n }\n },\n\n __cleanup () {\n this.heightWatcher()\n this.heightWatcher = void 0\n }\n },\n\n render (h) {\n return h('transition', {\n props: { name: 'q-transition--fade' }\n },\n this.showing === true\n ? [\n h('div', {\n staticClass: 'q-page-scroller',\n on: this.onEvents\n }, [\n QPageSticky.options.render.call(this, h)\n ])\n ]\n : null\n )\n },\n\n beforeDestroy () {\n this.heightWatcher !== void 0 && this.__cleanup()\n }\n})\n","import QPageScroller from './QPageScroller.js'\n\nexport {\n QPageScroller\n}\n","import QPageSticky from './QPageSticky.js'\n\nexport {\n QPageSticky\n}\n","import Vue from 'vue'\n\nimport QBtn from '../btn/QBtn.js'\nimport QInput from '../input/QInput.js'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\nimport { btnDesignOptions, btnPadding, getBtnDesign } from '../../mixins/btn.js'\n\nimport { stop } from '../../utils/event.js'\nimport { between } from '../../utils/format.js'\nimport { isKeyCode } from '../../utils/private/key-composition.js'\nimport cache from '../../utils/private/cache.js'\n\nfunction getBool (val, otherwise) {\n return [ true, false ].includes(val)\n ? val\n : otherwise\n}\n\nexport default Vue.extend({\n name: 'QPagination',\n\n mixins: [ DarkMixin, ListenersMixin ],\n\n props: {\n value: {\n type: Number,\n required: true\n },\n min: {\n type: [ Number, String ],\n default: 1\n },\n max: {\n type: [ Number, String ],\n required: true\n },\n maxPages: {\n type: [ Number, String ],\n default: 0,\n validator: v => (\n (typeof v === 'string' ? parseInt(v, 10) : v) >= 0\n )\n },\n\n inputStyle: [Array, String, Object],\n inputClass: [Array, String, Object],\n\n size: String,\n\n disable: Boolean,\n\n input: Boolean,\n\n iconPrev: String,\n iconNext: String,\n iconFirst: String,\n iconLast: String,\n\n toFn: Function,\n\n boundaryLinks: {\n type: Boolean,\n default: null\n },\n boundaryNumbers: {\n type: Boolean,\n default: null\n },\n directionLinks: {\n type: Boolean,\n default: null\n },\n ellipses: {\n type: Boolean,\n default: null\n },\n\n ripple: {\n type: [Boolean, Object],\n default: null\n },\n\n round: Boolean,\n rounded: Boolean,\n\n flat: Boolean,\n outline: Boolean,\n unelevated: Boolean,\n push: Boolean,\n glossy: Boolean,\n\n color: {\n type: String,\n default: 'primary'\n },\n textColor: String,\n\n activeDesign: {\n type: String,\n default: '',\n values: v => v === '' || btnDesignOptions.includes(v)\n },\n activeColor: String,\n activeTextColor: String,\n\n padding: {\n type: String,\n default: '3px 2px'\n }\n },\n\n data () {\n return {\n newPage: null\n }\n },\n\n watch: {\n min () {\n this.model = this.value\n },\n\n max () {\n this.model = this.value\n }\n },\n\n computed: {\n model: {\n get () {\n return this.value\n },\n set (val) {\n val = parseInt(val, 10)\n if (this.disable || isNaN(val)) {\n return\n }\n const value = between(val, this.__min, this.__max)\n this.$emit('input', value)\n }\n },\n\n inputPlaceholder () {\n return this.model + ' / ' + this.__max\n },\n\n __min () {\n return parseInt(this.min, 10)\n },\n\n __max () {\n return parseInt(this.max, 10)\n },\n\n __maxPages () {\n return parseInt(this.maxPages, 10)\n },\n\n __boundaryLinks () {\n return getBool(this.boundaryLinks, this.input)\n },\n\n __boundaryNumbers () {\n return getBool(this.boundaryNumbers, !this.input)\n },\n\n __directionLinks () {\n return getBool(this.directionLinks, this.input)\n },\n\n __ellipses () {\n return getBool(this.ellipses, !this.input)\n },\n\n __btnDesign () {\n return getBtnDesign(this, 'flat')\n },\n\n __btnActiveDesign () {\n // we also reset non-active design\n const acc = { [ this.__btnDesign ]: false }\n if (this.activeDesign !== '') {\n acc[ this.activeDesign ] = true\n }\n return acc\n },\n\n icons () {\n const ico = [\n this.iconFirst || this.$q.iconSet.pagination.first,\n this.iconPrev || this.$q.iconSet.pagination.prev,\n this.iconNext || this.$q.iconSet.pagination.next,\n this.iconLast || this.$q.iconSet.pagination.last\n ]\n return this.$q.lang.rtl === true ? ico.reverse() : ico\n },\n\n attrs () {\n const attrs = { role: 'navigation' }\n if (this.disable === true) {\n attrs['aria-disabled'] = 'true'\n }\n return attrs\n },\n\n btnProps () {\n return {\n [ this.__btnDesign ]: true,\n\n round: this.round,\n rounded: this.rounded,\n\n padding: this.padding,\n\n color: this.color,\n textColor: this.textColor,\n\n size: this.size,\n ripple: this.ripple !== null\n ? this.ripple\n : true\n }\n },\n\n activeBtnProps () {\n return {\n ...this.__btnActiveDesign,\n color: this.activeColor || this.color,\n textColor: this.activeTextColor || this.textColor\n }\n },\n\n btnConfig () {\n let maxPages = Math.max(\n this.__maxPages,\n 1 + (this.__ellipses ? 2 : 0) + (this.__boundaryNumbers ? 2 : 0)\n )\n\n const acc = {\n pgFrom: this.__min,\n pgTo: this.__max,\n ellipsesStart: false,\n ellipsesEnd: false,\n boundaryStart: false,\n boundaryEnd: false,\n marginalStyle: {\n minWidth: `${Math.max(2, String(this.__max).length)}em`\n }\n }\n\n if (this.__maxPages && maxPages < (this.__max - this.__min + 1)) {\n maxPages = 1 + Math.floor(maxPages / 2) * 2\n acc.pgFrom = Math.max(this.__min, Math.min(this.__max - maxPages + 1, this.value - Math.floor(maxPages / 2)))\n acc.pgTo = Math.min(this.__max, acc.pgFrom + maxPages - 1)\n\n if (this.__boundaryNumbers) {\n acc.boundaryStart = true\n acc.pgFrom++\n }\n\n if (this.__ellipses && acc.pgFrom > (this.__min + (this.__boundaryNumbers ? 1 : 0))) {\n acc.ellipsesStart = true\n acc.pgFrom++\n }\n\n if (this.__boundaryNumbers) {\n acc.boundaryEnd = true\n acc.pgTo--\n }\n\n if (this.__ellipses && acc.pgTo < (this.__max - (this.__boundaryNumbers ? 1 : 0))) {\n acc.ellipsesEnd = true\n acc.pgTo--\n }\n }\n\n return acc\n },\n\n inputEvents () {\n const updateModel = () => {\n this.model = this.newPage\n this.newPage = null\n }\n\n return {\n input: val => { this.newPage = val },\n keyup: e => { isKeyCode(e, 13) === true && updateModel() },\n blur: updateModel\n }\n }\n },\n\n methods: {\n set (value) {\n this.model = value\n },\n\n setByOffset (offset) {\n this.model = this.model + offset\n },\n\n __getBtn (h, data, props, page, active) {\n data.props = {\n ...this.btnProps,\n ...props\n }\n data.attrs = {\n 'aria-label': page,\n 'aria-current': 'false',\n ...data.attrs\n }\n\n if (active === true) {\n Object.assign(data.props, this.activeBtnProps)\n data.attrs[ 'aria-current' ] = 'true'\n }\n\n if (page !== void 0) {\n if (this.toFn !== void 0) {\n data.props.to = this.toFn(page)\n }\n else {\n data.on = { click: () => { this.set(page) } }\n }\n }\n\n return h(QBtn, data)\n }\n },\n\n render (h) {\n const contentStart = []\n const contentEnd = []\n let contentMiddle\n\n if (this.__boundaryLinks === true) {\n contentStart.push(\n this.__getBtn(h, {\n key: 'bls'\n }, {\n disable: this.disable || this.value <= this.__min,\n icon: this.icons[ 0 ]\n }, this.__min)\n )\n contentEnd.unshift(\n this.__getBtn(h, {\n key: 'ble'\n }, {\n disable: this.disable || this.value >= this.__max,\n icon: this.icons[ 3 ]\n }, this.__max)\n )\n }\n\n if (this.__directionLinks === true) {\n contentStart.push(\n this.__getBtn(h, {\n key: 'bdp'\n }, {\n disable: this.disable || this.value <= this.__min,\n icon: this.icons[ 1 ]\n }, this.value - 1)\n )\n contentEnd.unshift(\n this.__getBtn(h, {\n key: 'bdn'\n }, {\n disable: this.disable || this.value >= this.__max,\n icon: this.icons[ 2 ]\n }, this.value + 1)\n )\n }\n\n if (this.input !== true) { // has buttons instead of inputbox\n contentMiddle = []\n const { pgFrom, pgTo, marginalStyle: style } = this.btnConfig\n\n if (this.btnConfig.boundaryStart === true) {\n const active = this.__min === this.value\n contentStart.push(\n this.__getBtn(h, {\n key: 'bns',\n style\n }, {\n disable: this.disable,\n label: this.__min\n }, this.__min, active)\n )\n }\n\n if (this.btnConfig.boundaryEnd === true) {\n const active = this.__max === this.value\n contentEnd.unshift(\n this.__getBtn(h, {\n key: 'bne',\n style\n }, {\n disable: this.disable,\n label: this.__max\n }, this.__max, active)\n )\n }\n\n if (this.btnConfig.ellipsesStart === true) {\n contentStart.push(\n this.__getBtn(h, {\n key: 'bes',\n style\n }, {\n disable: this.disable,\n label: '…',\n ripple: false\n }, pgFrom - 1)\n )\n }\n\n if (this.btnConfig.ellipsesEnd === true) {\n contentEnd.unshift(\n this.__getBtn(h, {\n key: 'bee',\n style\n }, {\n disable: this.disable,\n label: '…',\n ripple: false\n }, pgTo + 1)\n )\n }\n\n for (let i = pgFrom; i <= pgTo; i++) {\n contentMiddle.push(\n this.__getBtn(h, {\n key: `bpg${i}`,\n style\n }, {\n disable: this.disable,\n label: i\n }, i, i === this.value)\n )\n }\n }\n\n return h('div', {\n staticClass: 'q-pagination row no-wrap items-center',\n class: { disabled: this.disable },\n attrs: this.attrs,\n on: { ...this.qListeners }\n }, [\n h('div', {\n staticClass: 'q-pagination__content row no-wrap items-center'\n }, [\n ...contentStart,\n\n h('div', {\n staticClass: 'q-pagination__middle row justify-center',\n on: this.input === true\n ? cache(this, 'stop', { input: stop })\n : null\n }, this.input === true\n ? [\n h(QInput, {\n staticClass: 'inline',\n style: { width: `${this.inputPlaceholder.length / 1.5}em` },\n props: {\n type: 'number',\n dense: true,\n value: this.newPage,\n disable: this.disable,\n dark: this.isDark,\n borderless: true,\n inputClass: this.inputClass,\n inputStyle: this.inputStyle\n },\n attrs: {\n placeholder: this.inputPlaceholder,\n min: this.__min,\n max: this.__max\n },\n on: { ...this.inputEvents }\n })\n ]\n : contentMiddle\n ),\n\n ...contentEnd\n ])\n ])\n }\n})\n","import QPagination from './QPagination.js'\n\nexport {\n QPagination\n}\n","export default function (fn) {\n let wait = false, frame, callArgs\n\n function debounced (/* ...args */) {\n callArgs = arguments\n if (wait === true) { return }\n\n wait = true\n frame = requestAnimationFrame(() => {\n fn.apply(this, callArgs)\n callArgs = void 0\n wait = false\n })\n }\n\n debounced.cancel = () => {\n window.cancelAnimationFrame(frame)\n wait = false\n }\n\n return debounced\n}\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { height, offset } from '../../utils/dom.js'\nimport frameDebounce from '../../utils/frame-debounce.js'\nimport { getScrollTarget } from '../../utils/scroll.js'\nimport { slot } from '../../utils/private/slot.js'\nimport { listenOpts } from '../../utils/event.js'\n\nconst { passive } = listenOpts\n\nexport default Vue.extend({\n name: 'QParallax',\n\n mixins: [ ListenersMixin ],\n\n props: {\n src: String,\n height: {\n type: Number,\n default: 500\n },\n speed: {\n type: Number,\n default: 1,\n validator: v => v >= 0 && v <= 1\n },\n\n scrollTarget: {\n default: void 0\n }\n },\n\n data () {\n return {\n scrolling: false,\n percentScrolled: 0\n }\n },\n\n watch: {\n height () {\n this.working === true && this.__updatePos()\n },\n\n scrollTarget () {\n if (this.working === true) {\n this.__stop()\n this.__start()\n }\n }\n },\n\n methods: {\n __update (percentage) {\n this.percentScrolled = percentage\n this.qListeners.scroll !== void 0 && this.$emit('scroll', percentage)\n },\n\n __updatePos () {\n let containerTop, containerHeight, containerBottom\n\n if (this.__scrollTarget === window) {\n containerTop = 0\n containerHeight = window.innerHeight\n containerBottom = containerHeight\n }\n else {\n containerTop = offset(this.__scrollTarget).top\n containerHeight = height(this.__scrollTarget)\n containerBottom = containerTop + containerHeight\n }\n\n const top = offset(this.$el).top\n const bottom = top + this.height\n\n if (this.observer !== void 0 || (bottom > containerTop && top < containerBottom)) {\n const percent = (containerBottom - top) / (this.height + containerHeight)\n this.__setPos((this.mediaHeight - this.height) * percent * this.speed)\n this.__update(percent)\n }\n },\n\n __setPos (offset) {\n // apply it immediately without any delay\n this.media.style.transform = `translate3d(-50%,${Math.round(offset)}px,0)`\n },\n\n __onResize () {\n this.mediaHeight = this.media.naturalHeight || this.media.videoHeight || height(this.media)\n this.working === true && this.__updatePos()\n },\n\n __start () {\n this.working = true\n this.__scrollTarget = getScrollTarget(this.$el, this.scrollTarget)\n this.__scrollTarget.addEventListener('scroll', this.__updatePos, passive)\n window.addEventListener('resize', this.__resizeHandler, passive)\n this.__updatePos()\n },\n\n __stop () {\n if (this.working === true) {\n this.working = false\n this.__setPos.cancel()\n this.__update.cancel()\n this.__resizeHandler.cancel()\n this.__scrollTarget.removeEventListener('scroll', this.__updatePos, passive)\n window.removeEventListener('resize', this.__resizeHandler, passive)\n this.__scrollTarget = void 0\n }\n }\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-parallax',\n style: { height: `${this.height}px` },\n on: { ...this.qListeners }\n }, [\n h('div', {\n ref: 'mediaParent',\n staticClass: 'q-parallax__media absolute-full'\n }, this.$scopedSlots.media !== void 0 ? this.$scopedSlots.media() : [\n h('img', {\n ref: 'media',\n attrs: {\n src: this.src\n }\n })\n ]),\n\n h(\n 'div',\n { staticClass: 'q-parallax__content absolute-full column flex-center' },\n this.$scopedSlots.content !== void 0\n ? this.$scopedSlots.content({ percentScrolled: this.percentScrolled })\n : slot(this, 'default')\n )\n ])\n },\n\n mounted () {\n this.__setPos = frameDebounce(this.__setPos)\n this.__update = frameDebounce(this.__update)\n this.__resizeHandler = frameDebounce(this.__onResize)\n\n this.media = this.$scopedSlots.media !== void 0\n ? this.$refs.mediaParent.children[0]\n : this.$refs.media\n\n this.media.onload = this.media.onloadstart = this.media.loadedmetadata = this.__onResize\n this.__onResize()\n this.media.style.display = 'initial'\n\n if (window.IntersectionObserver !== void 0) {\n this.observer = new IntersectionObserver(entries => {\n this[entries[0].isIntersecting === true ? '__start' : '__stop']()\n })\n\n this.observer.observe(this.$el)\n }\n else {\n this.__start()\n }\n },\n\n beforeDestroy () {\n this.__stop()\n this.observer !== void 0 && this.observer.disconnect()\n this.media.onload = this.media.onloadstart = this.media.loadedmetadata = null\n }\n})\n","import QParallax from './QParallax.js'\n\nexport {\n QParallax\n}\n","// adapted from https://stackoverflow.com/a/40294058\n\nexport default function cloneDeep (data, hash = new WeakMap()) {\n if (Object(data) !== data) return data\n if (hash.has(data)) return hash.get(data)\n\n const result = data instanceof Date\n ? new Date(data)\n : (data instanceof RegExp\n ? new RegExp(data.source, data.flags)\n : (data instanceof Set\n ? new Set()\n : (data instanceof Map\n ? new Map()\n : (typeof data.constructor !== 'function'\n ? Object.create(null)\n : (data.prototype !== void 0 && typeof data.prototype.constructor === 'function'\n ? data\n : new data.constructor()\n )\n )\n )\n )\n )\n\n if (typeof data.constructor === 'function' && typeof data.valueOf === 'function') {\n const val = data.valueOf()\n\n if (Object(val) !== val) {\n const result = new data.constructor(val)\n\n hash.set(data, result)\n\n return result\n }\n }\n\n hash.set(data, result)\n\n if (data instanceof Set) {\n data.forEach(val => {\n result.add(cloneDeep(val, hash))\n })\n }\n else if (data instanceof Map) {\n data.forEach((val, key) => {\n result.set(key, cloneDeep(val, hash))\n })\n }\n\n return Object.assign(\n result,\n ...Object.keys(data).map(key => ({ [key]: cloneDeep(data[key], hash) }))\n )\n}\n","import Vue from 'vue'\n\nimport QMenu from '../menu/QMenu.js'\nimport QBtn from '../btn/QBtn.js'\n\nimport AttrsMixin from '../../mixins/attrs.js'\n\nimport clone from '../../utils/clone.js'\nimport { isDeepEqual } from '../../utils/is.js'\nimport { slot } from '../../utils/private/slot.js'\nimport { isKeyCode } from '../../utils/private/key-composition.js'\nimport cache from '../../utils/private/cache.js'\nimport { injectProp } from '../../utils/private/inject-obj-prop.js'\n\nexport default Vue.extend({\n name: 'QPopupEdit',\n\n mixins: [ AttrsMixin ],\n\n props: {\n value: {\n required: true\n },\n title: String,\n buttons: Boolean,\n labelSet: String,\n labelCancel: String,\n\n color: {\n type: String,\n default: 'primary'\n },\n validate: {\n type: Function,\n default: () => true\n },\n\n autoSave: Boolean,\n\n /* menu props overrides */\n cover: {\n type: Boolean,\n default: true\n },\n contentClass: String,\n /* end of menu props */\n\n disable: Boolean\n },\n\n data () {\n return {\n modelChanged: false,\n model: null\n }\n },\n\n computed: {\n classes () {\n return 'q-popup-edit' +\n (this.contentClass !== void 0 ? ` ${this.contentClass}` : '')\n },\n\n modelValue () {\n return this.modelChanged === true ? this.model : this.value\n },\n\n initialValue () {\n return this.modelChanged !== true ? this.model : this.value\n },\n\n defaultSlotScope () {\n return injectProp({\n initialValue: this.initialValue,\n updatePosition: this.__reposition,\n emitValue: this.__changeModel,\n validate: this.validate,\n set: this.set,\n cancel: this.cancel\n }, 'value', () => this.modelValue, this.__changeModel)\n },\n\n menuProps () {\n return {\n ...this.qAttrs,\n cover: this.cover,\n contentClass: this.classes\n }\n }\n },\n\n methods: {\n set () {\n if (this.validate(this.modelValue) !== true) {\n return\n }\n if (this.__hasChanged() === true) {\n this.$emit('save', this.modelValue, this.initialValue)\n this.modelChanged === true && this.$emit('input', this.modelValue)\n }\n this.__close()\n },\n\n cancel () {\n if (this.__hasChanged() === true) {\n this.$emit('cancel', this.modelValue, this.initialValue)\n this.modelChanged !== true && this.$emit('input', this.initialValue)\n }\n this.__close()\n },\n\n show (e) {\n this.$refs.menu !== void 0 && this.$refs.menu.show(e)\n },\n\n hide (e) {\n this.$refs.menu !== void 0 && this.$refs.menu.hide(e)\n },\n\n __hasChanged () {\n return isDeepEqual(this.modelValue, this.initialValue) === false\n },\n\n __changeModel (val) {\n if (this.disable !== true) {\n this.model = val\n this.modelChanged = true\n }\n },\n\n __close () {\n this.validated = true\n this.$refs.menu.showing === true && this.$refs.menu.hide()\n },\n\n __reposition () {\n this.$nextTick(() => {\n this.$refs.menu.updatePosition()\n })\n },\n\n __getContent (h) {\n const\n title = slot(this, 'title', this.title),\n child = this.$scopedSlots.default === void 0\n ? []\n : [].concat(this.$scopedSlots.default(this.defaultSlotScope))\n\n title && child.unshift(\n h('div', { staticClass: 'q-dialog__title q-mt-sm q-mb-sm' }, [ title ])\n )\n\n this.buttons === true && child.push(\n h('div', { staticClass: 'q-popup-edit__buttons row justify-center no-wrap' }, [\n h(QBtn, {\n props: {\n flat: true,\n color: this.color,\n label: this.labelCancel || this.$q.lang.label.cancel\n },\n on: cache(this, 'cancel', { click: this.cancel })\n }),\n h(QBtn, {\n props: {\n flat: true,\n color: this.color,\n label: this.labelSet || this.$q.lang.label.set\n },\n on: cache(this, 'ok', { click: this.set })\n })\n ])\n )\n\n return child\n }\n },\n\n render (h) {\n if (this.disable === true) { return }\n\n return h(QMenu, {\n ref: 'menu',\n props: this.menuProps,\n on: cache(this, 'menu', {\n 'before-show': () => {\n this.validated = false\n this.modelChanged = false\n this.model = clone(this.value)\n this.watcher = this.$watch('value', this.__reposition)\n this.$emit('before-show')\n },\n\n show: () => {\n this.$emit('show')\n },\n\n 'escape-key': this.cancel,\n\n 'before-hide': () => {\n this.watcher()\n\n if (this.validated === false && this.__hasChanged() === true) {\n if (this.autoSave === true && this.validate(this.model) === true) {\n this.$emit('save', this.modelValue, this.initialValue)\n this.modelChanged === true && this.$emit('input', this.modelValue)\n }\n else {\n this.$emit('cancel', this.modelValue, this.initialValue)\n this.modelChanged !== true && this.$emit('input', this.initialValue)\n }\n }\n\n this.$emit('before-hide')\n },\n\n hide: () => {\n this.$emit('hide')\n },\n\n keyup: e => {\n isKeyCode(e, 13) === true && this.set()\n }\n })\n }, this.__getContent(h))\n }\n})\n","import QPopupEdit from './QPopupEdit.js'\n\nexport {\n QPopupEdit\n}\n","import Vue from 'vue'\n\nimport QDialog from '../dialog/QDialog.js'\nimport QMenu from '../menu/QMenu.js'\n\nimport AnchorMixin from '../../mixins/anchor.js'\nimport { slot } from '../../utils/private/slot.js'\nimport AttrsMixin from '../../mixins/attrs.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nexport default Vue.extend({\n name: 'QPopupProxy',\n\n mixins: [ AttrsMixin, ListenersMixin, AnchorMixin ],\n\n props: {\n breakpoint: {\n type: [String, Number],\n default: 450\n }\n },\n\n data () {\n const breakpoint = parseInt(this.breakpoint, 10)\n return {\n type: this.$q.screen.width < breakpoint || this.$q.screen.height < breakpoint\n ? 'dialog'\n : 'menu'\n }\n },\n\n computed: {\n parsedBreakpoint () {\n return parseInt(this.breakpoint, 10)\n },\n\n onEvents () {\n return {\n ...this.qListeners,\n hide: this.__onHide\n }\n }\n },\n\n watch: {\n '$q.screen.width' (width) {\n if (this.$refs.popup.showing !== true) {\n this.__updateType(width, this.$q.screen.height, this.parsedBreakpoint)\n }\n },\n\n '$q.screen.height' (height) {\n if (this.$refs.popup.showing !== true) {\n this.__updateType(this.$q.screen.width, height, this.parsedBreakpoint)\n }\n },\n\n breakpoint (breakpoint) {\n if (this.$refs.popup.showing !== true) {\n this.__updateType(this.$q.screen.width, this.$q.screen.height, parseInt(breakpoint, 10))\n }\n }\n },\n\n methods: {\n toggle (evt) {\n this.$refs.popup.toggle(evt)\n },\n\n show (evt) {\n this.$refs.popup.show(evt)\n },\n\n hide (evt) {\n this.$refs.popup.hide(evt)\n },\n\n __onHide (evt) {\n this.__updateType(this.$q.screen.width, this.$q.screen.height, this.parsedBreakpoint)\n this.$emit('hide', evt)\n },\n\n __updateType (width, height, breakpoint) {\n const type = width < breakpoint || height < breakpoint\n ? 'dialog'\n : 'menu'\n\n if (this.type !== type) {\n this.type = type\n }\n }\n },\n\n render (h) {\n const def = slot(this, 'default')\n\n const props = (\n this.type === 'menu' &&\n def !== void 0 &&\n def[0] !== void 0 &&\n def[0].componentOptions !== void 0 &&\n def[0].componentOptions.Ctor !== void 0 &&\n def[0].componentOptions.Ctor.sealedOptions !== void 0 &&\n ['QDate', 'QTime', 'QCarousel', 'QColor'].includes(\n def[0].componentOptions.Ctor.sealedOptions.name\n )\n ) ? { cover: true, maxHeight: '99vh' } : {}\n\n const data = {\n ref: 'popup',\n props: { ...props, ...this.qAttrs },\n on: this.onEvents\n }\n\n let component\n\n if (this.type === 'dialog') {\n component = QDialog\n }\n else {\n component = QMenu\n data.props.target = this.target\n data.props.contextMenu = this.contextMenu\n data.props.noParentEvent = true\n data.props.separateClosePopup = true\n }\n\n return h(component, data, def)\n }\n})\n","import QPopupProxy from './QPopupProxy.js'\n\nexport {\n QPopupProxy\n}\n","import Vue from 'vue'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport { getSizeMixin } from '../../mixins/size.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { mergeSlot } from '../../utils/private/slot.js'\n\nfunction width (val, reverse, $q) {\n return {\n transform: reverse === true\n ? `translateX(${$q.lang.rtl === true ? '-' : ''}100%) scale3d(${-val},1,1)`\n : `scale3d(${val},1,1)`\n }\n}\n\nexport default Vue.extend({\n name: 'QLinearProgress',\n\n mixins: [\n ListenersMixin,\n DarkMixin,\n getSizeMixin({\n xs: 2,\n sm: 4,\n md: 6,\n lg: 10,\n xl: 14\n })\n ],\n\n props: {\n value: {\n type: Number,\n default: 0\n },\n buffer: Number,\n\n color: String,\n trackColor: String,\n\n reverse: Boolean,\n stripe: Boolean,\n indeterminate: Boolean,\n query: Boolean,\n rounded: Boolean,\n\n instantFeedback: Boolean\n },\n\n computed: {\n motion () {\n return this.indeterminate === true || this.query === true\n },\n\n widthReverse () {\n return this.reverse !== this.query\n },\n\n classes () {\n return 'q-linear-progress' +\n (this.color !== void 0 ? ` text-${this.color}` : '') +\n (this.reverse === true || this.query === true ? ' q-linear-progress--reverse' : '') +\n (this.rounded === true ? ' rounded-borders' : '')\n },\n\n trackStyle () {\n return width(this.buffer !== void 0 ? this.buffer : 1, this.widthReverse, this.$q)\n },\n\n transitionSuffix () {\n return `with${this.instantFeedback === true ? 'out' : ''}-transition`\n },\n\n trackClass () {\n return `q-linear-progress__track absolute-full q-linear-progress__track--${this.transitionSuffix}` +\n ` q-linear-progress__track--${this.isDark === true ? 'dark' : 'light'}` +\n (this.trackColor !== void 0 ? ` bg-${this.trackColor}` : '')\n },\n\n modelStyle () {\n return width(this.motion === true ? 1 : this.value, this.widthReverse, this.$q)\n },\n\n modelClasses () {\n return `q-linear-progress__model absolute-full q-linear-progress__model--${this.transitionSuffix}` +\n ` q-linear-progress__model--${this.motion === true ? 'in' : ''}determinate`\n },\n\n stripeStyle () {\n return { width: (this.value * 100) + '%' }\n },\n\n stripeClass () {\n return `q-linear-progress__stripe q-linear-progress__stripe--${this.transitionSuffix}`\n + ` absolute-${this.reverse === true ? 'right' : 'left'}`\n },\n\n attrs () {\n return {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 1,\n 'aria-valuenow': this.indeterminate === true ? void 0 : this.value\n }\n }\n },\n\n render (h) {\n const child = [\n h('div', {\n style: this.trackStyle,\n class: this.trackClass\n }),\n\n h('div', {\n style: this.modelStyle,\n class: this.modelClasses\n })\n ]\n\n this.stripe === true && this.motion === false && child.push(\n h('div', {\n style: this.stripeStyle,\n class: this.stripeClass\n })\n )\n\n return h('div', {\n style: this.sizeStyle,\n class: this.classes,\n attrs: this.attrs,\n on: { ...this.qListeners }\n }, mergeSlot(child, this, 'default'))\n }\n})\n","import QLinearProgress from './QLinearProgress.js'\n\nexport {\n QLinearProgress\n}\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\nimport QSpinner from '../spinner/QSpinner.js'\nimport TouchPan from '../../directives/TouchPan.js'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { getScrollTarget, getScrollPosition } from '../../utils/scroll.js'\nimport { between } from '../../utils/format.js'\nimport { prevent } from '../../utils/event.js'\nimport { slot } from '../../utils/private/slot.js'\n\nconst\n PULLER_HEIGHT = 40,\n OFFSET_TOP = 20\n\nexport default Vue.extend({\n name: 'QPullToRefresh',\n\n mixins: [ ListenersMixin ],\n\n directives: {\n TouchPan\n },\n\n props: {\n color: String,\n bgColor: String,\n icon: String,\n noMouse: Boolean,\n disable: Boolean,\n\n scrollTarget: {\n default: void 0\n }\n },\n\n data () {\n return {\n state: 'pull',\n pullRatio: 0,\n pulling: false,\n pullPosition: -PULLER_HEIGHT,\n animating: false,\n positionCSS: {}\n }\n },\n\n computed: {\n style () {\n return {\n opacity: this.pullRatio,\n transform: `translateY(${this.pullPosition}px) rotate(${this.pullRatio * 360}deg)`\n }\n },\n\n classes () {\n return 'q-pull-to-refresh__puller row flex-center' +\n (this.animating === true ? ' q-pull-to-refresh__puller--animating' : '') +\n (this.bgColor !== void 0 ? ` bg-${this.bgColor}` : '')\n },\n\n directives () {\n if (this.disable !== true) {\n const modifiers = {\n down: true\n }\n\n if (this.noMouse !== true) {\n modifiers.mouse = true\n }\n\n return [{\n name: 'touch-pan',\n modifiers,\n value: this.__pull\n }]\n }\n },\n\n contentClass () {\n return `q-pull-to-refresh__content${this.pulling === true ? ' no-pointer-events' : ''}`\n }\n },\n\n watch: {\n scrollTarget () {\n this.updateScrollTarget()\n }\n },\n\n methods: {\n trigger () {\n this.$emit('refresh', () => {\n this.__animateTo({ pos: -PULLER_HEIGHT, ratio: 0 }, () => {\n this.state = 'pull'\n })\n })\n },\n\n updateScrollTarget () {\n this.__scrollTarget = getScrollTarget(this.$el, this.scrollTarget)\n },\n\n __pull (event) {\n if (event.isFinal === true) {\n if (this.pulling === true) {\n this.pulling = false\n\n if (this.state === 'pulled') {\n this.state = 'refreshing'\n this.__animateTo({ pos: OFFSET_TOP })\n this.trigger()\n }\n else if (this.state === 'pull') {\n this.__animateTo({ pos: -PULLER_HEIGHT, ratio: 0 })\n }\n }\n\n return\n }\n\n if (this.animating === true || this.state === 'refreshing') {\n return false\n }\n\n if (event.isFirst === true) {\n if (getScrollPosition(this.__scrollTarget) !== 0 || event.direction !== 'down') {\n if (this.pulling === true) {\n this.pulling = false\n this.state = 'pull'\n this.__animateTo({ pos: -PULLER_HEIGHT, ratio: 0 })\n }\n\n return false\n }\n\n this.pulling = true\n\n const { top, left } = this.$el.getBoundingClientRect()\n this.positionCSS = {\n top: top + 'px',\n left: left + 'px',\n width: window.getComputedStyle(this.$el).getPropertyValue('width')\n }\n }\n\n prevent(event.evt)\n\n const distance = Math.min(140, Math.max(0, event.distance.y))\n this.pullPosition = distance - PULLER_HEIGHT\n this.pullRatio = between(distance / (OFFSET_TOP + PULLER_HEIGHT), 0, 1)\n\n const state = this.pullPosition > OFFSET_TOP ? 'pulled' : 'pull'\n\n if (this.state !== state) {\n this.state = state\n }\n },\n\n __animateTo ({ pos, ratio }, done) {\n this.animating = true\n this.pullPosition = pos\n\n if (ratio !== void 0) {\n this.pullRatio = ratio\n }\n\n clearTimeout(this.timer)\n this.timer = setTimeout(() => {\n this.animating = false\n done && done()\n }, 300)\n }\n },\n\n mounted () {\n this.updateScrollTarget()\n },\n\n beforeDestroy () {\n clearTimeout(this.timer)\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-pull-to-refresh',\n on: { ...this.qListeners },\n directives: this.directives\n }, [\n h('div', {\n class: this.contentClass\n }, slot(this, 'default')),\n\n h('div', {\n staticClass: 'q-pull-to-refresh__puller-container fixed row flex-center no-pointer-events z-top',\n style: this.positionCSS\n }, [\n h('div', {\n style: this.style,\n class: this.classes\n }, [\n this.state !== 'refreshing'\n ? h(QIcon, {\n props: {\n name: this.icon || this.$q.iconSet.pullToRefresh.icon,\n color: this.color,\n size: '32px'\n }\n })\n : h(QSpinner, {\n props: {\n size: '24px',\n color: this.color\n }\n })\n ])\n ])\n ])\n }\n})\n","import QPullToRefresh from './QPullToRefresh.js'\n\nexport {\n QPullToRefresh\n}\n","import QRadio from './QRadio.js'\n\nexport {\n QRadio\n}\n","import Vue from 'vue'\n\nimport {\n SliderMixin,\n keyCodes\n} from '../slider/slider-utils.js'\n\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { between } from '../../utils/format.js'\n\nconst dragType = {\n MIN: 0,\n RANGE: 1,\n MAX: 2\n}\n\nexport default Vue.extend({\n name: 'QRange',\n\n mixins: [ SliderMixin ],\n\n props: {\n value: {\n type: Object,\n default: () => ({ min: null, max: null }),\n validator: v => 'min' in v && 'max' in v\n },\n\n dragRange: Boolean,\n dragOnlyRange: Boolean,\n\n leftLabelColor: String,\n leftLabelTextColor: String,\n rightLabelColor: String,\n rightLabelTextColor: String,\n\n leftLabelValue: [ String, Number ],\n rightLabelValue: [ String, Number ],\n\n leftThumbColor: String,\n rightThumbColor: String\n },\n\n data () {\n const innerMin = this.__getInnerMin(this.innerMin)\n const innerMax = this.__getInnerMax(this.innerMax)\n return {\n model: {\n min: this.value.min === null ? innerMin : between(this.value.min, innerMin, innerMax),\n max: this.value.max === null ? innerMax : between(this.value.max, innerMin, innerMax)\n },\n curMinRatio: 0,\n curMaxRatio: 0\n }\n },\n\n computed: {\n modelMinRatio () {\n return this.__convertModelToRatio(this.model.min)\n },\n modelMaxRatio () {\n return this.__convertModelToRatio(this.model.max)\n },\n\n ratioMin () {\n return this.active === true ? this.curMinRatio : this.modelMinRatio\n },\n ratioMax () {\n return this.active === true ? this.curMaxRatio : this.modelMaxRatio\n },\n\n selectionBarStyle () {\n const acc = {\n [ this.positionProp ]: `${100 * this.ratioMin}%`,\n [ this.sizeProp ]: `${100 * (this.ratioMax - this.ratioMin)}%`\n }\n if (this.selectionImg !== void 0) {\n acc.backgroundImage = `url(${this.selectionImg}) !important`\n }\n return acc\n },\n\n trackContainerEvents () {\n if (this.editable !== true) {\n return {}\n }\n\n if (this.$q.platform.is.mobile === true) {\n return { click: this.__onMobileClick }\n }\n\n const evt = { mousedown: this.__onActivate }\n\n if (this.dragRange === true || this.dragOnlyRange === true) {\n Object.assign(evt, {\n focus: () => { this.focus = 'both' },\n blur: this.__onBlur,\n keydown: this.__onKeydown,\n keyup: this.__onKeyup\n })\n }\n\n return evt\n },\n\n trackContainerAttrs () {\n return {\n tabindex: this.$q.platform.is.mobile !== true && (this.dragRange || this.dragOnlyRange === true)\n ? this.computedTabindex\n : null\n }\n },\n\n thumbAttrs () {\n return {\n tabindex: this.dragOnlyRange !== true ? this.computedTabindex : null\n }\n },\n\n thumbMinEvents () {\n return this.__getEvents('min')\n },\n thumbMaxEvents () {\n return this.__getEvents('max')\n },\n\n thumbMinLabel () {\n return this.leftLabelValue !== void 0\n ? this.leftLabelValue\n : this.model.min\n },\n thumbMaxLabel () {\n return this.rightLabelValue !== void 0\n ? this.rightLabelValue\n : this.model.max\n },\n\n thumbMinClasses () {\n const color = this.leftThumbColor || this.thumbColor || this.color\n return `q-slider__thumb q-slider__thumb${this.axis} q-slider__thumb${this.axis}-${this.isReversed === true ? 'rtl' : 'ltr'} absolute non-selectable` +\n (\n this.preventFocus === false && (this.focus === 'min' || this.focus === 'both')\n ? ' q-slider--focus'\n : ''\n ) +\n (color !== void 0 ? ` text-${color}` : '')\n },\n thumbMaxClasses () {\n const color = this.rightThumbColor || this.thumbColor || this.color\n return `q-slider__thumb q-slider__thumb${this.axis} q-slider__thumb${this.axis}-${this.isReversed === true ? 'rtl' : 'ltr'} absolute non-selectable` +\n (\n this.preventFocus === false && (this.focus === 'max' || this.focus === 'both')\n ? ' q-slider--focus'\n : ''\n ) +\n (color !== void 0 ? ` text-${color}` : '')\n },\n\n thumbMinStyle () {\n return {\n width: this.thumbSize,\n height: this.thumbSize,\n [ this.positionProp ]: `${100 * this.ratioMin}%`,\n zIndex: this.focus === 'min' ? 2 : void 0\n }\n },\n thumbMaxStyle () {\n return {\n width: this.thumbSize,\n height: this.thumbSize,\n [ this.positionProp ]: `${100 * this.ratioMax}%`,\n zIndex: this.focus === 'max' ? 2 : void 0\n }\n },\n\n thumbMinPinColor () {\n const color = this.leftLabelColor || this.labelColor\n return color !== void 0\n ? ` text-${color}`\n : ''\n },\n thumbMaxPinColor () {\n const color = this.rightLabelColor || this.labelColor\n return color !== void 0\n ? ` text-${color}`\n : ''\n },\n\n thumbMinTextContainerStyle () {\n return this.__getTextContainerStyle(this.ratioMin)\n },\n thumbMaxTextContainerStyle () {\n return this.__getTextContainerStyle(this.ratioMax)\n },\n\n thumbMinTextClass () {\n const color = this.leftLabelTextColor || this.labelTextColor\n return 'q-slider__text' +\n (color !== void 0 ? ` text-${color}` : '')\n },\n thumbMaxTextClass () {\n const color = this.rightLabelTextColor || this.labelTextColor\n return 'q-slider__text' +\n (color !== void 0 ? ` text-${color}` : '')\n },\n\n formAttrs () {\n return {\n type: 'hidden',\n name: this.name,\n value: `${this.value.min}|${this.value.max}`\n }\n },\n\n modelUpdate () {\n return `${this.value.min}|${this.value.max}|${this.computedInnerMin}|${this.computedInnerMax}`\n }\n },\n\n watch: {\n modelUpdate () {\n this.model.min = this.value.min === null\n ? this.computedInnerMin\n : between(this.value.min, this.computedInnerMin, this.computedInnerMax)\n\n this.model.max = this.value.max === null\n ? this.computedInnerMax\n : between(this.value.max, this.computedInnerMin, this.computedInnerMax)\n }\n },\n\n methods: {\n __updateValue (change) {\n if (this.model.min !== this.value.min || this.model.max !== this.value.max) {\n this.$emit('input', { ...this.model })\n }\n change === true && this.$emit('change', { ...this.model })\n },\n\n __getDragging (event) {\n const\n { left, top, width, height } = this.$el.getBoundingClientRect(),\n sensitivity = this.dragOnlyRange === true\n ? 0\n : (\n this.vertical === true\n ? this.$refs.minThumb.offsetHeight / (2 * height)\n : this.$refs.minThumb.offsetWidth / (2 * width)\n )\n\n const dragging = {\n left,\n top,\n width,\n height,\n valueMin: this.model.min,\n valueMax: this.model.max,\n ratioMin: this.modelMinRatio,\n ratioMax: this.modelMaxRatio\n }\n\n const ratio = this.__getDraggingRatio(event, dragging)\n\n if (this.dragOnlyRange !== true && ratio < dragging.ratioMin + sensitivity) {\n dragging.type = dragType.MIN\n }\n else if (this.dragOnlyRange === true || ratio < dragging.ratioMax - sensitivity) {\n if (this.dragRange === true || this.dragOnlyRange === true) {\n dragging.type = dragType.RANGE\n Object.assign(dragging, {\n offsetRatio: ratio,\n offsetModel: this.__convertRatioToModel(ratio),\n rangeValue: dragging.valueMax - dragging.valueMin,\n rangeRatio: dragging.ratioMax - dragging.ratioMin\n })\n }\n else {\n dragging.type = dragging.ratioMax - ratio < ratio - dragging.ratioMin\n ? dragType.MAX\n : dragType.MIN\n }\n }\n else {\n dragging.type = dragType.MAX\n }\n\n return dragging\n },\n\n __updatePosition (event, dragging = this.dragging) {\n let pos\n const ratio = this.__getDraggingRatio(event, dragging)\n const localModel = this.__convertRatioToModel(ratio)\n\n switch (dragging.type) {\n case dragType.MIN:\n if (ratio <= dragging.ratioMax) {\n pos = {\n minR: ratio,\n maxR: dragging.ratioMax,\n min: localModel,\n max: dragging.valueMax\n }\n this.focus = 'min'\n }\n else {\n pos = {\n minR: dragging.ratioMax,\n maxR: ratio,\n min: dragging.valueMax,\n max: localModel\n }\n this.focus = 'max'\n }\n break\n\n case dragType.MAX:\n if (ratio >= dragging.ratioMin) {\n pos = {\n minR: dragging.ratioMin,\n maxR: ratio,\n min: dragging.valueMin,\n max: localModel\n }\n this.focus = 'max'\n }\n else {\n pos = {\n minR: ratio,\n maxR: dragging.ratioMin,\n min: localModel,\n max: dragging.valueMin\n }\n this.focus = 'min'\n }\n break\n\n case dragType.RANGE:\n const\n ratioDelta = ratio - dragging.offsetRatio,\n minR = between(dragging.ratioMin + ratioDelta, 0, 1 - dragging.rangeRatio),\n modelDelta = localModel - dragging.offsetModel,\n min = between(dragging.valueMin + modelDelta, this.min, this.max - dragging.rangeValue)\n\n pos = {\n minR,\n maxR: minR + dragging.rangeRatio,\n min: parseFloat(min.toFixed(this.computedDecimals)),\n max: parseFloat((min + dragging.rangeValue).toFixed(this.computedDecimals))\n }\n\n this.focus = 'both'\n break\n }\n\n // If either of the values to be emitted are null, set them to the defaults the user has entered.\n this.model = this.model.min === null || this.model.max === null\n ? { min: pos.min || this.min, max: pos.max || this.max }\n : { min: pos.min, max: pos.max }\n\n if (this.snap !== true || this.step === 0) {\n this.curMinRatio = pos.minR\n this.curMaxRatio = pos.maxR\n }\n else {\n this.curMinRatio = this.__convertModelToRatio(this.model.min)\n this.curMaxRatio = this.__convertModelToRatio(this.model.max)\n }\n },\n\n __getEvents (side) {\n return this.$q.platform.is.mobile !== true && this.editable === true && this.dragOnlyRange !== true\n ? {\n focus: () => { this.focus = side },\n blur: this.__onBlur,\n keydown: this.__onKeydown,\n keyup: this.__onKeyup\n }\n : {}\n },\n\n __onKeydown (evt) {\n if (!keyCodes.includes(evt.keyCode)) {\n return\n }\n\n stopAndPrevent(evt)\n\n const\n stepVal = ([ 34, 33 ].includes(evt.keyCode) ? 10 : 1) * this.computedStep,\n offset = (\n ([ 34, 37, 40 ].includes(evt.keyCode) ? -1 : 1) *\n (this.isReversed === true ? -1 : 1) *\n (this.vertical === true ? -1 : 1) * stepVal\n )\n\n if (this.focus === 'both') {\n const interval = this.model.max - this.model.min\n const min = between(\n parseFloat((this.model.min + offset).toFixed(this.computedDecimals)),\n this.computedInnerMin,\n this.computedInnerMax - interval\n )\n\n this.model = {\n min,\n max: parseFloat((min + interval).toFixed(this.computedDecimals))\n }\n }\n else if (this.focus === false) {\n return\n }\n else {\n const which = this.focus\n\n this.model = {\n ...this.model,\n [ which ]: between(\n parseFloat((this.model[ which ] + offset).toFixed(this.computedDecimals)),\n which === 'min' ? this.computedInnerMin : this.model.min,\n which === 'max' ? this.computedInnerMax : this.model.max\n )\n }\n }\n\n this.__updateValue()\n }\n },\n\n render (h) {\n const content = this.__getContent(h, node => {\n node.push(\n this.__getThumb(h, {\n pinColor: this.thumbMinPinColor,\n textContainerStyle: this.thumbMinTextContainerStyle,\n textClass: this.thumbMinTextClass,\n label: this.thumbMinLabel,\n classes: this.thumbMinClasses,\n style: this.thumbMinStyle,\n nodeData: {\n ref: 'minThumb',\n key: 'tmin',\n on: this.thumbMinEvents,\n attrs: this.thumbAttrs\n }\n }),\n\n this.__getThumb(h, {\n pinColor: this.thumbMaxPinColor,\n textContainerStyle: this.thumbMaxTextContainerStyle,\n textClass: this.thumbMaxTextClass,\n label: this.thumbMaxLabel,\n classes: this.thumbMaxClasses,\n style: this.thumbMaxStyle,\n nodeData: {\n key: 'tmax',\n on: this.thumbMaxEvents,\n attrs: this.thumbAttrs\n }\n })\n )\n })\n\n return h('div', {\n class: 'q-range ' + this.classes + (\n this.value.min === null || this.value.max === null\n ? ' q-slider--no-value'\n : ''\n ),\n attrs: {\n ...this.attributes,\n 'aria-valuenow': this.value.min + '|' + this.value.max\n }\n }, content)\n }\n})\n","import QRange from './QRange.js'\n\nexport {\n QRange\n}\n","import Vue from 'vue'\n\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { between } from '../../utils/format.js'\nimport QIcon from '../icon/QIcon.js'\n\nimport SizeMixin from '../../mixins/size.js'\nimport FormMixin from '../../mixins/form.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport cache from '../../utils/private/cache.js'\nimport { mergeSlot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QRating',\n\n mixins: [ SizeMixin, FormMixin, ListenersMixin ],\n\n props: {\n value: {\n type: Number,\n required: true\n },\n\n max: {\n type: [String, Number],\n default: 5\n },\n\n icon: [String, Array],\n iconHalf: [String, Array],\n iconSelected: [String, Array],\n\n iconAriaLabel: [String, Array],\n\n color: [String, Array],\n colorHalf: [String, Array],\n colorSelected: [String, Array],\n\n noReset: Boolean,\n noDimming: Boolean,\n\n readonly: Boolean,\n disable: Boolean\n },\n\n data () {\n return {\n mouseModel: 0\n }\n },\n\n computed: {\n editable () {\n return this.readonly !== true && this.disable !== true\n },\n\n classes () {\n return `q-rating--${this.editable === true ? '' : 'non-'}editable` +\n (this.noDimming === true ? ' q-rating--no-dimming' : '') +\n (this.disable === true ? ' disabled' : '') +\n (this.color !== void 0 && Array.isArray(this.color) === false ? ` text-${this.color}` : '')\n },\n\n iconData () {\n const\n iconLen = Array.isArray(this.icon) === true ? this.icon.length : 0,\n selIconLen = Array.isArray(this.iconSelected) === true ? this.iconSelected.length : 0,\n halfIconLen = Array.isArray(this.iconHalf) === true ? this.iconHalf.length : 0,\n colorLen = Array.isArray(this.color) === true ? this.color.length : 0,\n selColorLen = Array.isArray(this.colorSelected) === true ? this.colorSelected.length : 0,\n halfColorLen = Array.isArray(this.colorHalf) === true ? this.colorHalf.length : 0\n\n return {\n iconLen,\n icon: iconLen > 0 ? this.icon[iconLen - 1] : this.icon,\n selIconLen,\n selIcon: selIconLen > 0 ? this.iconSelected[selIconLen - 1] : this.iconSelected,\n halfIconLen,\n halfIcon: halfIconLen > 0 ? this.iconHalf[selIconLen - 1] : this.iconHalf,\n colorLen,\n color: colorLen > 0 ? this.color[colorLen - 1] : this.color,\n selColorLen,\n selColor: selColorLen > 0 ? this.colorSelected[selColorLen - 1] : this.colorSelected,\n halfColorLen,\n halfColor: halfColorLen > 0 ? this.colorHalf[halfColorLen - 1] : this.colorHalf\n }\n },\n\n iconLabel () {\n if (typeof this.iconAriaLabel === 'string') {\n const label = this.iconAriaLabel.length > 0 ? `${this.iconAriaLabel} ` : ''\n\n return i => `${label}${i}`\n }\n\n if (Array.isArray(this.iconAriaLabel) === true) {\n const iMax = this.iconAriaLabel.length\n\n if (iMax > 0) {\n return i => this.iconAriaLabel[Math.min(i, iMax) - 1]\n }\n }\n\n return (i, label) => `${label} ${i}`\n },\n\n stars () {\n const\n acc = [],\n icons = this.iconData,\n ceil = Math.ceil(this.value),\n tabindex = this.editable === true ? 0 : null\n\n const halfIndex = this.iconHalf === void 0 || ceil === this.value\n ? -1\n : ceil\n\n for (let i = 1; i <= this.max; i++) {\n const\n active = (this.mouseModel === 0 && this.value >= i) || (this.mouseModel > 0 && this.mouseModel >= i),\n half = halfIndex === i && this.mouseModel < i,\n exSelected = this.mouseModel > 0 && (half === true ? ceil : this.value) >= i && this.mouseModel < i,\n color = half === true\n ? (i <= icons.halfColorLen ? this.colorHalf[i - 1] : icons.halfColor)\n : (\n icons.selColor !== void 0 && active === true\n ? (i <= icons.selColorLen ? this.colorSelected[i - 1] : icons.selColor)\n : (i <= icons.colorLen ? this.color[i - 1] : icons.color)\n ),\n name = (\n half === true\n ? (i <= icons.halfIconLen ? this.iconHalf[i - 1] : icons.halfIcon)\n : (\n icons.selIcon !== void 0 && (active === true || exSelected === true)\n ? (i <= icons.selIconLen ? this.iconSelected[i - 1] : icons.selIcon)\n : (i <= icons.iconLen ? this.icon[i - 1] : icons.icon)\n )\n ) || this.$q.iconSet.rating.icon\n\n acc.push({\n name,\n\n attrs: {\n tabindex,\n role: 'radio',\n 'aria-checked': this.value === i ? 'true' : 'false',\n 'aria-label': this.iconLabel(i, name)\n },\n\n classes: 'q-rating__icon' +\n (active === true || half === true ? ' q-rating__icon--active' : '') +\n (exSelected === true ? ' q-rating__icon--exselected' : '') +\n (this.mouseModel === i ? ' q-rating__icon--hovered' : '') +\n (color !== void 0 ? ` text-${color}` : '')\n })\n }\n\n return acc\n },\n\n attrs () {\n const attrs = {\n role: 'radiogroup'\n }\n if (this.disable === true) {\n attrs[ 'aria-disabled' ] = 'true'\n }\n if (this.readonly === true) {\n attrs[ 'aria-readonly' ] = 'true'\n }\n return attrs\n }\n },\n\n methods: {\n __set (value) {\n if (this.editable === true) {\n const\n model = between(parseInt(value, 10), 1, parseInt(this.max, 10)),\n newVal = this.noReset !== true && this.value === model ? 0 : model\n\n newVal !== this.value && this.$emit('input', newVal)\n this.mouseModel = 0\n }\n },\n\n __setHoverValue (value) {\n if (this.editable === true) {\n this.mouseModel = value\n }\n },\n\n __keyup (e, i) {\n switch (e.keyCode) {\n case 13:\n case 32:\n this.__set(i)\n return stopAndPrevent(e)\n case 37: // LEFT ARROW\n case 40: // DOWN ARROW\n if (this.$refs[`rt${i - 1}`]) {\n this.$refs[`rt${i - 1}`].focus()\n }\n return stopAndPrevent(e)\n case 39: // RIGHT ARROW\n case 38: // UP ARROW\n if (this.$refs[`rt${i + 1}`]) {\n this.$refs[`rt${i + 1}`].focus()\n }\n return stopAndPrevent(e)\n }\n }\n },\n\n render (h) {\n const child = []\n\n this.stars.forEach(({ classes, name, attrs }, index) => {\n const i = index + 1\n\n child.push(\n h('div', {\n key: i,\n ref: `rt${i}`,\n class: 'q-rating__icon-container flex flex-center',\n attrs,\n on: cache(this, 'i#' + i, {\n click: () => { this.__set(i) },\n mouseover: () => { this.__setHoverValue(i) },\n mouseout: () => { this.mouseModel = 0 },\n focus: () => { this.__setHoverValue(i) },\n blur: () => { this.mouseModel = 0 },\n keyup: e => { this.__keyup(e, i) }\n })\n }, mergeSlot(\n [h(QIcon, { class: classes, props: { name } })],\n this, `tip-${i}`\n ))\n )\n })\n\n if (this.name !== void 0 && this.disable !== true) {\n this.__injectFormInput(child, 'push')\n }\n\n return h('div', {\n staticClass: 'q-rating row inline items-center',\n class: this.classes,\n style: this.sizeStyle,\n attrs: this.attrs,\n on: { ...this.qListeners }\n }, child)\n }\n})\n","import QRating from './QRating.js'\n\nexport {\n QRating\n}\n","import QResizeObserver from './QResizeObserver.js'\n\nexport {\n QResizeObserver\n}\n","import Vue from 'vue'\n\nimport RatioMixin from '../../mixins/ratio.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QResponsive',\n\n mixins: [ RatioMixin, ListenersMixin ],\n\n render (h) {\n return h('div', {\n staticClass: 'q-responsive',\n on: { ...this.qListeners }\n }, [\n h('div', {\n staticClass: 'q-responsive__filler overflow-hidden'\n }, [\n h('div', { style: this.ratioStyle })\n ]),\n\n h('div', {\n staticClass: 'q-responsive__content absolute-full fit'\n }, slot(this, 'default'))\n ])\n }\n})\n","import QResponsive from './QResponsive.js'\n\nexport {\n QResponsive\n}\n","import Vue from 'vue'\n\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\nimport QScrollObserver from '../scroll-observer/QScrollObserver.js'\n\nimport TouchPan from '../../directives/TouchPan.js'\n\nimport { between } from '../../utils/format.js'\nimport { setVerticalScrollPosition, setHorizontalScrollPosition } from '../../utils/scroll.js'\nimport { mergeSlot } from '../../utils/private/slot.js'\nimport cache from '../../utils/private/cache.js'\nimport debounce from '../../utils/debounce.js'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport { ariaHidden } from '../../mixins/attrs'\n\nconst getMinThumbSize = size => (size >= 250 ? 50 : Math.ceil(size / 5))\n\nconst axisList = [ 'vertical', 'horizontal' ]\nconst dirProps = {\n vertical: { offset: 'offsetY', scroll: 'scrollTop', dir: 'down', dist: 'y' },\n horizontal: { offset: 'offsetX', scroll: 'scrollLeft', dir: 'right', dist: 'x' }\n}\n\nexport default Vue.extend({\n name: 'QScrollArea',\n\n mixins: [ DarkMixin ],\n\n directives: {\n TouchPan\n },\n\n props: {\n thumbStyle: Object,\n verticalThumbStyle: Object,\n horizontalThumbStyle: Object,\n\n barStyle: [ Array, String, Object ],\n verticalBarStyle: [ Array, String, Object ],\n horizontalBarStyle: [ Array, String, Object ],\n\n contentStyle: [ Array, String, Object ],\n contentActiveStyle: [ Array, String, Object ],\n\n delay: {\n type: [ String, Number ],\n default: 1000\n },\n\n visible: {\n type: Boolean,\n default: null\n },\n\n horizontal: Boolean,\n\n tabindex: [ String, Number ]\n },\n\n data () {\n return {\n // state management\n tempShowing: false,\n panning: false,\n hover: false,\n\n // other...\n container: {\n vertical: 0,\n horizontal: 0\n },\n\n scroll: {\n vertical: {\n position: 0,\n size: 0\n },\n\n horizontal: {\n position: 0,\n size: 0\n }\n }\n }\n },\n\n computed: {\n classes () {\n return 'q-scrollarea' +\n (this.isDark === true ? ' q-scrollarea--dark' : '')\n },\n\n verticalScrollPercentage () {\n const diff = this.scroll.vertical.size - this.container.vertical\n if (diff <= 0) { return 0 }\n const p = between(this.scroll.vertical.position / diff, 0, 1)\n return Math.round(p * 10000) / 10000\n },\n\n horizontalScrollPercentage () {\n const diff = this.scroll.horizontal.size - this.container.horizontal\n if (diff <= 0) { return 0 }\n const p = between(Math.abs(this.scroll.horizontal.position) / diff, 0, 1)\n return Math.round(p * 10000) / 10000\n },\n\n verticalThumbHidden () {\n return (\n (this.visible === null ? this.hover : this.visible) !== true &&\n this.tempShowing === false &&\n this.panning === false\n ) || this.scroll.vertical.size <= this.container.vertical + 1\n },\n\n horizontalThumbHidden () {\n return (\n (this.visible === null ? this.hover : this.visible) !== true &&\n this.tempShowing === false &&\n this.panning === false\n ) || this.scroll.horizontal.size <= this.container.horizontal + 1\n },\n\n verticalThumbStart () {\n return this.verticalScrollPercentage * (this.container.vertical - this.verticalThumbSize)\n },\n\n horizontalThumbStart () {\n return this.horizontalScrollPercentage * (this.container.horizontal - this.horizontalThumbSize)\n },\n\n verticalThumbSize () {\n return Math.round(\n between(\n this.container.vertical * this.container.vertical / this.scroll.vertical.size,\n getMinThumbSize(this.container.vertical),\n this.container.vertical\n )\n )\n },\n\n horizontalThumbSize () {\n return Math.round(\n between(\n this.container.horizontal * this.container.horizontal / this.scroll.horizontal.size,\n getMinThumbSize(this.container.horizontal),\n this.container.horizontal\n )\n )\n },\n\n verticalStyle () {\n return {\n ...this.thumbStyle,\n ...this.verticalThumbStyle,\n top: `${this.verticalThumbStart}px`,\n height: `${this.verticalThumbSize}px`\n }\n },\n\n horizontalStyle () {\n return {\n ...this.thumbStyle,\n ...this.horizontalThumbStyle,\n [ this.$q.lang.rtl === true ? 'right' : 'left' ]: `${this.horizontalThumbStart}px`,\n width: `${this.horizontalThumbSize}px`\n }\n },\n\n verticalThumbClass () {\n return 'q-scrollarea__thumb q-scrollarea__thumb--v absolute-right' +\n (this.verticalThumbHidden === true ? ' q-scrollarea__thumb--invisible' : '')\n },\n\n horizontalThumbClass () {\n return 'q-scrollarea__thumb q-scrollarea__thumb--h absolute-bottom' +\n (this.horizontalThumbHidden === true ? ' q-scrollarea__thumb--invisible' : '')\n },\n\n verticalBarClass () {\n return 'q-scrollarea__bar q-scrollarea__bar--v absolute-right' +\n (this.verticalThumbHidden === true ? ' q-scrollarea__bar--invisible' : '')\n },\n\n horizontalBarClass () {\n return 'q-scrollarea__bar q-scrollarea__bar--h absolute-bottom' +\n (this.horizontalThumbHidden === true ? ' q-scrollarea__bar--invisible' : '')\n },\n\n scrollComputed () {\n return {\n vertical: {\n ...this.scroll.vertical,\n percentage: this.verticalScrollPercentage,\n thumbHidden: this.verticalThumbHidden,\n thumbStart: this.verticalThumbStart,\n thumbSize: this.verticalThumbSize,\n style: this.verticalStyle,\n thumbClass: this.verticalThumbClass,\n barClass: this.verticalBarClass\n },\n horizontal: {\n ...this.scroll.horizontal,\n percentage: this.horizontalScrollPercentage,\n thumbHidden: this.horizontalThumbHidden,\n thumbStart: this.horizontalThumbStart,\n thumbSize: this.horizontalThumbSize,\n style: this.horizontalStyle,\n thumbClass: this.horizontalThumbClass,\n barClass: this.horizontalBarClass\n }\n }\n },\n\n mainStyle () {\n return this.verticalThumbHidden === true && this.horizontalThumbHidden === true\n ? this.contentStyle\n : this.contentActiveStyle\n },\n\n verticalThumbDirectives () {\n return [{\n name: 'touch-pan',\n modifiers: {\n vertical: true,\n prevent: true,\n mouse: true,\n mouseAllDir: true\n },\n value: e => { this.__panThumb(e, 'vertical') }\n }]\n },\n\n horizontalThumbDirectives () {\n return [{\n name: 'touch-pan',\n modifiers: {\n horizontal: true,\n prevent: true,\n mouse: true,\n mouseAllDir: true\n },\n value: e => { this.__panThumb(e, 'horizontal') }\n }]\n },\n\n scrollAttrs () {\n if (this.tabindex !== void 0) {\n return { tabindex: this.tabindex }\n }\n }\n },\n\n watch: {\n '$q.lang.rtl' (rtl) {\n this.setScrollPosition('horizontal', Math.abs(this.scroll.horizontal.position) * (rtl === true ? -1 : 1))\n }\n },\n\n methods: {\n getScrollTarget () {\n return this.$refs.target\n },\n\n getScroll () {\n const info = {}\n\n axisList.forEach(axis => {\n const data = this.scrollComputed[ axis ]\n\n info[ axis + 'Position' ] = data.position\n info[ axis + 'Percentage' ] = data.percentage\n info[ axis + 'Size' ] = data.size\n info[ axis + 'ContainerSize' ] = this.container[ axis ]\n })\n\n return info\n },\n\n getScrollPosition (axis) {\n if (axis === 'both') {\n return {\n top: this.scroll.vertical.position,\n left: this.scroll.horizontal.position\n }\n }\n\n if (axisList.includes(axis) !== true) {\n axis = this.horizontal === true ? 'horizontal' : 'vertical'\n }\n\n return this.scroll[axis].position\n },\n\n getScrollPercentage (axis) {\n if (axis === 'both') {\n return {\n top: this.verticalScrollPercentage,\n left: this.horizontalScrollPercentage\n }\n }\n\n if (axisList.includes(axis) !== true) {\n axis = this.horizontal === true ? 'horizontal' : 'vertical'\n }\n\n return this[`${axis}ScrollPercentage`]\n },\n\n setScrollPosition (axis, offset, duration) {\n if (axisList.includes(axis) === false) {\n if (isNaN(axis) === true) {\n console.error('[QScrollArea]: wrong first param of setScrollPosition (vertical/horizontal)')\n return\n }\n\n [axis, offset, duration] = [this.horizontal === true ? 'horizontal' : 'vertical', axis, offset]\n }\n\n const fn = axis === 'vertical'\n ? setVerticalScrollPosition\n : setHorizontalScrollPosition\n\n fn(this.$refs.target, offset, duration)\n },\n\n setScrollPercentage (axis, percentage, duration) {\n if (axisList.includes(axis) === false) {\n if (isNaN(axis) === true) {\n console.error('[QScrollArea]: wrong first param of setScrollPercentage (vertical/horizontal)')\n return\n }\n\n [axis, percentage, duration] = [this.horizontal === true ? 'horizontal' : 'vertical', axis, percentage]\n }\n\n this.setScrollPosition(\n axis,\n percentage * (this.scroll[axis].size - this.container[axis]) * (axis === 'horizontal' && this.$q.lang.rtl === true ? -1 : 1),\n duration\n )\n },\n\n __updateContainer ({ height, width }) {\n let change = false\n\n if (this.container.vertical !== height) {\n this.container.vertical = height\n change = true\n }\n\n if (this.container.horizontal !== width) {\n this.container.horizontal = width\n change = true\n }\n\n change === true && this.__startTimer()\n },\n\n __updateVerticalScroll ({ position }) {\n if (this.scroll.vertical.position !== position) {\n this.scroll.vertical.position = position\n this.__startTimer()\n }\n },\n\n __updateHorizontalScroll ({ position }) {\n if (this.scroll.horizontal.position !== position) {\n this.scroll.horizontal.position = position\n this.__startTimer()\n }\n },\n\n __updateScrollSize ({ height, width }) {\n let change = false\n\n if (this.scroll.horizontal.size !== width) {\n this.scroll.horizontal.size = width\n change = true\n }\n\n if (this.scroll.vertical.size !== height) {\n this.scroll.vertical.size = height\n change = true\n }\n\n change === true && this.__startTimer()\n },\n\n __panThumb (e, axis) {\n const data = this.scrollComputed[ axis ]\n\n if (e.isFinal === true) {\n if (this.panning !== true) {\n return\n }\n\n this.panning = false\n }\n else if (e.isFirst === true) {\n if (data.thumbHidden === true) {\n return\n }\n\n this.refPos = data.position\n this.panning = true\n }\n else if (this.panning !== true) {\n return\n }\n\n const dProp = dirProps[ axis ]\n const containerSize = this.container[axis]\n\n const multiplier = (data.size - containerSize) / (containerSize - data.thumbSize)\n const distance = e.distance[dProp.dist]\n const pos = this.refPos + (e.direction === dProp.dir ? 1 : -1) * distance * multiplier\n\n this.__setScroll(pos, axis)\n },\n\n __mouseDown (evt, axis) {\n const data = this.scrollComputed[ axis ]\n\n if (data.thumbHidden !== true) {\n const offset = evt[ dirProps[ axis ].offset ]\n if (offset < data.thumbStart || offset > data.thumbStart + data.thumbSize) {\n const pos = offset - data.thumbSize / 2\n this.__setScroll(pos / this.container[ axis ] * data.size, axis)\n }\n\n const ref = axis === 'vertical' ? this.$refs.verticalThumb : this.$refs.horizontalThumb\n // activate thumb pan\n if (ref !== void 0) {\n ref.dispatchEvent(new MouseEvent(evt.type, evt))\n }\n }\n },\n\n __verticalMouseDown (evt) {\n this.__mouseDown(evt, 'vertical')\n },\n\n __horizontalMouseDown (evt) {\n this.__mouseDown(evt, 'horizontal')\n },\n\n __startTimer () {\n if (this.tempShowing === true) {\n clearTimeout(this.timer)\n }\n else {\n this.tempShowing = true\n }\n\n this.timer = setTimeout(() => { this.tempShowing = false }, this.delay)\n this.$listeners.scroll !== void 0 && this.__emitScroll()\n },\n\n __setScroll (offset, axis) {\n this.$refs.target[ dirProps[ axis ].scroll ] = offset\n },\n\n __mouseEnter () {\n this.hover = true\n },\n\n __mouseLeave () {\n this.hover = false\n }\n },\n\n render (h) {\n return h('div', {\n class: this.classes,\n on: cache(this, 'desk', {\n mouseenter: this.__mouseEnter,\n mouseleave: this.__mouseLeave\n })\n }, [\n h('div', {\n ref: 'target',\n staticClass: 'q-scrollarea__container scroll relative-position fit hide-scrollbar',\n attrs: this.scrollAttrs\n }, [\n h('div', {\n staticClass: 'q-scrollarea__content absolute',\n style: this.mainStyle\n }, mergeSlot([\n h(QResizeObserver, {\n props: { debounce: 0 },\n on: cache(this, 'resizeIn', { resize: this.__updateScrollSize })\n })\n ], this, 'default')),\n\n h(QScrollObserver, {\n on: cache(this, 'scrollV', { scroll: this.__updateVerticalScroll })\n }),\n\n h(QScrollObserver, {\n props: { horizontal: true },\n on: cache(this, 'scrollH', { scroll: this.__updateHorizontalScroll })\n })\n ]),\n\n h(QResizeObserver, {\n props: { debounce: 0 },\n on: cache(this, 'resizeOut', { resize: this.__updateContainer })\n }),\n\n h('div', {\n class: this.verticalBarClass,\n style: [ this.barStyle, this.verticalBarStyle ],\n attrs: ariaHidden,\n on: cache(this, 'barV', {\n mousedown: this.__verticalMouseDown\n })\n }),\n\n h('div', {\n class: this.horizontalBarClass,\n style: [ this.barStyle, this.horizontalBarStyle ],\n attrs: ariaHidden,\n on: cache(this, 'barH', {\n mousedown: this.__horizontalMouseDown\n })\n }),\n\n h('div', {\n ref: 'verticalThumb',\n class: this.verticalThumbClass,\n style: this.verticalStyle,\n attrs: ariaHidden,\n directives: this.verticalThumbDirectives\n }),\n\n h('div', {\n ref: 'horizontalThumb',\n class: this.horizontalThumbClass,\n style: this.horizontalStyle,\n attrs: ariaHidden,\n directives: this.horizontalThumbDirectives\n })\n ])\n },\n\n created () {\n // we have lots of listeners, so\n // ensure we're not emitting same info\n // multiple times\n this.__emitScroll = debounce(() => {\n const info = this.getScroll()\n info.ref = this\n this.$emit('scroll', info)\n }, 0)\n },\n\n activated () {\n if (this.__scrollPosition === void 0) { return }\n\n const scrollTarget = this.getScrollTarget()\n\n if (scrollTarget !== void 0) {\n setHorizontalScrollPosition(scrollTarget, this.__scrollPosition.left)\n setVerticalScrollPosition(scrollTarget, this.__scrollPosition.top)\n }\n },\n\n deactivated () {\n this.__scrollPosition = this.getScrollPosition('both')\n },\n\n beforeDestroy () {\n this.__emitScroll.cancel()\n clearTimeout(this.timer)\n }\n})\n","import QScrollArea from './QScrollArea.js'\n\nexport {\n QScrollArea\n}\n","import QScrollObserver from './QScrollObserver.js'\n\nexport {\n QScrollObserver\n}\n","import debounce from '../utils/debounce.js'\nimport { rtlHasScrollBug } from '../utils/scroll.js'\n\nconst aggBucketSize = 1000\n\nconst scrollToEdges = [\n 'start',\n 'center',\n 'end',\n 'start-force',\n 'center-force',\n 'end-force'\n]\n\nconst filterProto = Array.prototype.filter\n\nfunction sumFn (acc, h) {\n return acc + h\n}\n\nfunction getScrollDetails (\n parent,\n child,\n beforeRef,\n afterRef,\n horizontal,\n rtl,\n stickyStart,\n stickyEnd\n) {\n const\n parentCalc = parent === window ? document.scrollingElement || document.documentElement : parent,\n propElSize = horizontal === true ? 'offsetWidth' : 'offsetHeight',\n details = {\n scrollStart: 0,\n scrollViewSize: -stickyStart - stickyEnd,\n scrollMaxSize: 0,\n offsetStart: -stickyStart,\n offsetEnd: -stickyEnd\n }\n\n if (horizontal === true) {\n if (parent === window) {\n details.scrollStart = window.pageXOffset || window.scrollX || document.body.scrollLeft || 0\n details.scrollViewSize += document.documentElement.clientWidth\n }\n else {\n details.scrollStart = parentCalc.scrollLeft\n details.scrollViewSize += parentCalc.clientWidth\n }\n details.scrollMaxSize = parentCalc.scrollWidth\n\n if (rtl === true) {\n details.scrollStart = (rtlHasScrollBug() === true ? details.scrollMaxSize - details.scrollViewSize : 0) - details.scrollStart\n }\n }\n else {\n if (parent === window) {\n details.scrollStart = window.pageYOffset || window.scrollY || document.body.scrollTop || 0\n details.scrollViewSize += document.documentElement.clientHeight\n }\n else {\n details.scrollStart = parentCalc.scrollTop\n details.scrollViewSize += parentCalc.clientHeight\n }\n details.scrollMaxSize = parentCalc.scrollHeight\n }\n\n if (beforeRef !== void 0) {\n for (let el = beforeRef.previousElementSibling; el !== null; el = el.previousElementSibling) {\n if (el.classList.contains('q-virtual-scroll--skip') === false) {\n details.offsetStart += el[propElSize]\n }\n }\n }\n if (afterRef !== void 0) {\n for (let el = afterRef.nextElementSibling; el !== null; el = el.nextElementSibling) {\n if (el.classList.contains('q-virtual-scroll--skip') === false) {\n details.offsetEnd += el[propElSize]\n }\n }\n }\n\n if (child !== parent) {\n const\n parentRect = parentCalc.getBoundingClientRect(),\n childRect = child.getBoundingClientRect()\n\n if (horizontal === true) {\n details.offsetStart += childRect.left - parentRect.left\n details.offsetEnd -= childRect.width\n }\n else {\n details.offsetStart += childRect.top - parentRect.top\n details.offsetEnd -= childRect.height\n }\n\n if (parent !== window) {\n details.offsetStart += details.scrollStart\n }\n details.offsetEnd += details.scrollMaxSize - details.offsetStart\n }\n\n return details\n}\n\nfunction setScroll (parent, scroll, horizontal, rtl) {\n if (scroll === 'end') {\n scroll = (parent === window ? document.body : parent)[horizontal === true ? 'scrollWidth' : 'scrollHeight']\n }\n\n if (parent === window) {\n if (horizontal === true) {\n if (rtl === true) {\n scroll = (rtlHasScrollBug() === true ? document.body.scrollWidth - document.documentElement.clientWidth : 0) - scroll\n }\n window.scrollTo(scroll, window.pageYOffset || window.scrollY || document.body.scrollTop || 0)\n }\n else {\n window.scrollTo(window.pageXOffset || window.scrollX || document.body.scrollLeft || 0, scroll)\n }\n }\n else if (horizontal === true) {\n if (rtl === true) {\n scroll = (rtlHasScrollBug() === true ? parent.scrollWidth - parent.offsetWidth : 0) - scroll\n }\n parent.scrollLeft = scroll\n }\n else {\n parent.scrollTop = scroll\n }\n}\n\nfunction sumSize (sizeAgg, size, from, to) {\n if (from >= to) { return 0 }\n\n const\n lastTo = size.length,\n fromAgg = Math.floor(from / aggBucketSize),\n toAgg = Math.floor((to - 1) / aggBucketSize) + 1\n\n let total = sizeAgg.slice(fromAgg, toAgg).reduce(sumFn, 0)\n\n if (from % aggBucketSize !== 0) {\n total -= size.slice(fromAgg * aggBucketSize, from).reduce(sumFn, 0)\n }\n if (to % aggBucketSize !== 0 && to !== lastTo) {\n total -= size.slice(to, toAgg * aggBucketSize).reduce(sumFn, 0)\n }\n\n return total\n}\n\nconst commonVirtScrollProps = {\n virtualScrollSliceSize: {\n type: [ Number, String ],\n default: null\n },\n\n virtualScrollSliceRatioBefore: {\n type: [ Number, String ],\n default: 1\n },\n\n virtualScrollSliceRatioAfter: {\n type: [ Number, String ],\n default: 1\n },\n\n virtualScrollItemSize: {\n type: [ Number, String ],\n default: 24\n },\n\n virtualScrollStickySizeStart: {\n type: [ Number, String ],\n default: 0\n },\n\n virtualScrollStickySizeEnd: {\n type: [ Number, String ],\n default: 0\n },\n\n tableColspan: [ Number, String ]\n}\n\nfunction setOverflowAnchor (contentEl, index) {\n if (setOverflowAnchor.isSupported === void 0) {\n setOverflowAnchor.isSupported = window.getComputedStyle(document.body).overflowAnchor !== void 0\n }\n\n if (setOverflowAnchor.isSupported === false || contentEl === void 0) {\n return\n }\n\n cancelAnimationFrame(contentEl._qOverflowAnimationFrame)\n contentEl._qOverflowAnimationFrame = requestAnimationFrame(() => {\n if (contentEl === void 0) {\n return\n }\n\n const children = contentEl.children || []\n\n filterProto\n .call(children, el => el.dataset && el.dataset.qVsAnchor !== void 0)\n .forEach(el => {\n delete el.dataset.qVsAnchor\n })\n\n const el = children[index]\n\n if (el && el.dataset) {\n el.dataset.qVsAnchor = ''\n }\n })\n}\n\nexport const commonVirtPropsList = Object.keys(commonVirtScrollProps)\n\nexport default {\n props: {\n virtualScrollHorizontal: Boolean,\n ...commonVirtScrollProps\n },\n\n data () {\n return {\n virtualScrollSliceRange: { from: 0, to: 0 }\n }\n },\n\n watch: {\n needsSliceRecalc () {\n this.__setVirtualScrollSize()\n },\n\n needsReset () {\n this.reset()\n }\n },\n\n computed: {\n needsReset () {\n return ['virtualScrollItemSizeComputed', 'virtualScrollHorizontal']\n .map(p => this[p]).join(';')\n },\n\n needsSliceRecalc () {\n return this.needsReset + ';' + ['virtualScrollSliceRatioBefore', 'virtualScrollSliceRatioAfter']\n .map(p => this[p]).join(';')\n },\n\n colspanAttr () {\n return this.tableColspan !== void 0\n ? { colspan: this.tableColspan }\n : { colspan: 100 }\n },\n\n virtualScrollItemSizeComputed () {\n return this.virtualScrollItemSize\n }\n },\n\n methods: {\n reset () {\n this.__resetVirtualScroll(this.prevToIndex, true)\n },\n\n refresh (toIndex) {\n this.__resetVirtualScroll(toIndex === void 0 ? this.prevToIndex : toIndex)\n },\n\n scrollTo (toIndex, edge) {\n const scrollEl = this.__getVirtualScrollTarget()\n\n if (scrollEl === void 0 || scrollEl === null || scrollEl.nodeType === 8) {\n return\n }\n\n const scrollDetails = getScrollDetails(\n scrollEl,\n this.__getVirtualScrollEl(),\n this.$refs.before,\n this.$refs.after,\n this.virtualScrollHorizontal,\n this.$q.lang.rtl,\n this.virtualScrollStickySizeStart,\n this.virtualScrollStickySizeEnd\n )\n\n this.__scrollViewSize !== scrollDetails.scrollViewSize && this.__setVirtualScrollSize(scrollDetails.scrollViewSize)\n\n this.__setVirtualScrollSliceRange(\n scrollEl,\n scrollDetails,\n Math.min(this.virtualScrollLength - 1, Math.max(0, parseInt(toIndex, 10) || 0)),\n 0,\n scrollToEdges.indexOf(edge) > -1 ? edge : (this.prevToIndex > -1 && toIndex > this.prevToIndex ? 'end' : 'start')\n )\n },\n\n __onVirtualScrollEvt () {\n const scrollEl = this.__getVirtualScrollTarget()\n\n if (scrollEl === void 0 || scrollEl === null || scrollEl.nodeType === 8) {\n return\n }\n\n const\n scrollDetails = getScrollDetails(\n scrollEl,\n this.__getVirtualScrollEl(),\n this.$refs.before,\n this.$refs.after,\n this.virtualScrollHorizontal,\n this.$q.lang.rtl,\n this.virtualScrollStickySizeStart,\n this.virtualScrollStickySizeEnd\n ),\n listLastIndex = this.virtualScrollLength - 1,\n listEndOffset = scrollDetails.scrollMaxSize - scrollDetails.offsetStart - scrollDetails.offsetEnd - this.virtualScrollPaddingAfter\n\n if (this.prevScrollStart === scrollDetails.scrollStart) {\n return\n }\n\n if (scrollDetails.scrollMaxSize <= 0) {\n this.__setVirtualScrollSliceRange(scrollEl, scrollDetails, 0, 0)\n\n return\n }\n\n this.__scrollViewSize !== scrollDetails.scrollViewSize && this.__setVirtualScrollSize(scrollDetails.scrollViewSize)\n\n this.__updateVirtualScrollSizes(this.virtualScrollSliceRange.from)\n\n const scrollMaxStart = Math.floor(scrollDetails.scrollMaxSize -\n Math.max(scrollDetails.scrollViewSize, scrollDetails.offsetEnd) -\n Math.min(this.virtualScrollSizes[listLastIndex], scrollDetails.scrollViewSize / 2))\n\n if (scrollMaxStart > 0 && Math.ceil(scrollDetails.scrollStart) >= scrollMaxStart) {\n this.__setVirtualScrollSliceRange(\n scrollEl,\n scrollDetails,\n listLastIndex,\n scrollDetails.scrollMaxSize - scrollDetails.offsetEnd - this.virtualScrollSizesAgg.reduce(sumFn, 0)\n )\n\n return\n }\n\n let\n toIndex = 0,\n listOffset = scrollDetails.scrollStart - scrollDetails.offsetStart,\n offset = listOffset\n\n if (listOffset <= listEndOffset && listOffset + scrollDetails.scrollViewSize >= this.virtualScrollPaddingBefore) {\n listOffset -= this.virtualScrollPaddingBefore\n toIndex = this.virtualScrollSliceRange.from\n offset = listOffset\n }\n else {\n for (let j = 0; listOffset >= this.virtualScrollSizesAgg[j] && toIndex < listLastIndex; j++) {\n listOffset -= this.virtualScrollSizesAgg[j]\n toIndex += aggBucketSize\n }\n }\n\n while (listOffset > 0 && toIndex < listLastIndex) {\n listOffset -= this.virtualScrollSizes[toIndex]\n if (listOffset > -scrollDetails.scrollViewSize) {\n toIndex++\n offset = listOffset\n }\n else {\n offset = this.virtualScrollSizes[toIndex] + listOffset\n }\n }\n\n this.__setVirtualScrollSliceRange(\n scrollEl,\n scrollDetails,\n toIndex,\n offset\n )\n },\n\n __setVirtualScrollSliceRange (scrollEl, scrollDetails, toIndex, offset, align) {\n const alignForce = typeof align === 'string' && align.indexOf('-force') > -1\n const alignEnd = alignForce === true ? align.replace('-force', '') : align\n const alignRange = alignEnd !== void 0 ? alignEnd : 'start'\n\n let\n from = Math.max(0, toIndex - this.virtualScrollSliceSizeComputed[alignRange]),\n to = from + this.virtualScrollSliceSizeComputed.total\n\n if (to > this.virtualScrollLength) {\n to = this.virtualScrollLength\n from = Math.max(0, to - this.virtualScrollSliceSizeComputed.total)\n }\n\n this.prevScrollStart = scrollDetails.scrollStart\n\n const rangeChanged = from !== this.virtualScrollSliceRange.from || to !== this.virtualScrollSliceRange.to\n\n if (rangeChanged === false && alignEnd === void 0) {\n this.__emitScroll(toIndex)\n\n return\n }\n\n const { activeElement } = document\n const contentEl = this.$refs.content\n if (\n rangeChanged === true &&\n contentEl !== void 0 &&\n contentEl !== activeElement &&\n contentEl.contains(activeElement) === true\n ) {\n contentEl.addEventListener('focusout', this.__onBlurRefocusFn)\n\n setTimeout(() => {\n contentEl !== void 0 && contentEl.removeEventListener('focusout', this.__onBlurRefocusFn)\n })\n }\n\n setOverflowAnchor(contentEl, toIndex - from)\n\n const sizeBefore = alignEnd !== void 0 ? this.virtualScrollSizes.slice(from, toIndex).reduce(sumFn, 0) : 0\n\n if (rangeChanged === true) {\n // vue key matching algorithm works only if\n // the array of VNodes changes on only one of the ends\n // so we first change one end and then the other\n\n const tempTo = to >= this.virtualScrollSliceRange.from && from <= this.virtualScrollSliceRange.to\n ? this.virtualScrollSliceRange.to\n : to\n this.virtualScrollSliceRange = { from, to: tempTo }\n this.virtualScrollPaddingBefore = sumSize(this.virtualScrollSizesAgg, this.virtualScrollSizes, 0, from)\n this.virtualScrollPaddingAfter = sumSize(this.virtualScrollSizesAgg, this.virtualScrollSizes, this.virtualScrollSliceRange.to, this.virtualScrollLength)\n\n requestAnimationFrame(() => {\n if (this.virtualScrollSliceRange.to !== to && this.prevScrollStart === scrollDetails.scrollStart) {\n this.virtualScrollSliceRange = { from: this.virtualScrollSliceRange.from, to }\n this.virtualScrollPaddingAfter = sumSize(this.virtualScrollSizesAgg, this.virtualScrollSizes, to, this.virtualScrollLength)\n }\n })\n }\n\n requestAnimationFrame(() => {\n // if the scroll was changed give up\n // (another call to __setVirtualScrollSliceRange before animation frame)\n if (this.prevScrollStart !== scrollDetails.scrollStart) {\n return\n }\n\n if (rangeChanged === true) {\n this.__updateVirtualScrollSizes(from)\n }\n\n const\n sizeAfter = this.virtualScrollSizes.slice(from, toIndex).reduce(sumFn, 0),\n posStart = sizeAfter + scrollDetails.offsetStart + this.virtualScrollPaddingBefore,\n posEnd = posStart + this.virtualScrollSizes[toIndex]\n\n let scrollPosition = posStart + offset\n\n if (alignEnd !== void 0) {\n const sizeDiff = sizeAfter - sizeBefore\n const scrollStart = scrollDetails.scrollStart + sizeDiff\n\n scrollPosition = alignForce !== true && scrollStart < posStart && posEnd < scrollStart + scrollDetails.scrollViewSize\n ? scrollStart\n : (\n alignEnd === 'end'\n ? posEnd - scrollDetails.scrollViewSize\n : posStart - (alignEnd === 'start' ? 0 : Math.round((scrollDetails.scrollViewSize - this.virtualScrollSizes[toIndex]) / 2))\n )\n }\n\n this.prevScrollStart = scrollPosition\n\n setScroll(\n scrollEl,\n scrollPosition,\n this.virtualScrollHorizontal,\n this.$q.lang.rtl\n )\n\n this.__emitScroll(toIndex)\n })\n },\n\n __updateVirtualScrollSizes (from) {\n const contentEl = this.$refs.content\n\n if (contentEl !== void 0) {\n const\n children = filterProto.call(contentEl.children || [], el => el.classList && el.classList.contains('q-virtual-scroll--skip') === false), // fallback [] for IE\n childrenLength = children.length,\n sizeFn = this.virtualScrollHorizontal === true\n ? el => el.getBoundingClientRect().width\n : el => el.offsetHeight\n\n let\n index = from,\n size, diff\n\n for (let i = 0; i < childrenLength;) {\n size = sizeFn(children[i])\n i++\n\n while (i < childrenLength && children[i].classList.contains('q-virtual-scroll--with-prev') === true) {\n size += sizeFn(children[i])\n i++\n }\n\n diff = size - this.virtualScrollSizes[index]\n\n if (diff !== 0) {\n this.virtualScrollSizes[index] += diff\n this.virtualScrollSizesAgg[Math.floor(index / aggBucketSize)] += diff\n }\n\n index++\n }\n }\n },\n\n __resetVirtualScroll (toIndex, fullReset) {\n const defaultSize = 1 * this.virtualScrollItemSizeComputed\n\n if (fullReset === true || Array.isArray(this.virtualScrollSizes) === false) {\n this.virtualScrollSizes = []\n }\n\n const oldVirtualScrollSizesLength = this.virtualScrollSizes.length\n\n this.virtualScrollSizes.length = this.virtualScrollLength\n\n for (let i = this.virtualScrollLength - 1; i >= oldVirtualScrollSizesLength; i--) {\n this.virtualScrollSizes[i] = defaultSize\n }\n\n const jMax = Math.floor((this.virtualScrollLength - 1) / aggBucketSize)\n this.virtualScrollSizesAgg = []\n for (let j = 0; j <= jMax; j++) {\n let size = 0\n const iMax = Math.min((j + 1) * aggBucketSize, this.virtualScrollLength)\n for (let i = j * aggBucketSize; i < iMax; i++) {\n size += this.virtualScrollSizes[i]\n }\n this.virtualScrollSizesAgg.push(size)\n }\n\n this.prevToIndex = -1\n this.prevScrollStart = void 0\n\n this.virtualScrollPaddingBefore = sumSize(this.virtualScrollSizesAgg, this.virtualScrollSizes, 0, this.virtualScrollSliceRange.from)\n this.virtualScrollPaddingAfter = sumSize(this.virtualScrollSizesAgg, this.virtualScrollSizes, this.virtualScrollSliceRange.to, this.virtualScrollLength)\n\n if (toIndex >= 0) {\n this.__updateVirtualScrollSizes(this.virtualScrollSliceRange.from)\n\n this.$nextTick(() => {\n this.scrollTo(toIndex)\n })\n }\n else {\n this.__onVirtualScrollEvt()\n }\n },\n\n __setVirtualScrollSize (scrollViewSize) {\n if (scrollViewSize === void 0 && typeof window !== 'undefined') {\n const scrollEl = this.__getVirtualScrollTarget()\n\n if (scrollEl !== void 0 && scrollEl !== null && scrollEl.nodeType !== 8) {\n scrollViewSize = getScrollDetails(\n scrollEl,\n this.__getVirtualScrollEl(),\n this.$refs.before,\n this.$refs.after,\n this.virtualScrollHorizontal,\n this.$q.lang.rtl,\n this.virtualScrollStickySizeStart,\n this.virtualScrollStickySizeEnd\n ).scrollViewSize\n }\n }\n\n this.__scrollViewSize = scrollViewSize\n\n const virtualScrollSliceRatioBefore = parseFloat(this.virtualScrollSliceRatioBefore) || 0\n const virtualScrollSliceRatioAfter = parseFloat(this.virtualScrollSliceRatioAfter) || 0\n const multiplier = 1 + virtualScrollSliceRatioBefore + virtualScrollSliceRatioAfter\n const view = scrollViewSize === void 0 || scrollViewSize <= 0\n ? 1\n : Math.ceil(scrollViewSize / this.virtualScrollItemSizeComputed)\n const baseSize = Math.max(\n 1,\n view,\n Math.ceil((this.virtualScrollSliceSize > 0 ? this.virtualScrollSliceSize : 10) / multiplier)\n )\n\n this.virtualScrollSliceSizeComputed = {\n total: Math.ceil(baseSize * multiplier),\n start: Math.ceil(baseSize * virtualScrollSliceRatioBefore),\n center: Math.ceil(baseSize * (0.5 + virtualScrollSliceRatioBefore)),\n end: Math.ceil(baseSize * (1 + virtualScrollSliceRatioBefore)),\n view\n }\n },\n\n __padVirtualScroll (h, tag, content) {\n const paddingSize = this.virtualScrollHorizontal === true ? 'width' : 'height'\n const style = {\n ['--q-virtual-scroll-item-' + paddingSize]: this.virtualScrollItemSizeComputed + 'px'\n }\n\n return [\n tag === 'tbody'\n ? h(tag, {\n staticClass: 'q-virtual-scroll__padding',\n key: 'before',\n ref: 'before'\n }, [\n h('tr', [\n h('td', {\n style: { [paddingSize]: `${this.virtualScrollPaddingBefore}px`, ...style },\n attrs: this.colspanAttr\n })\n ])\n ])\n : h(tag, {\n staticClass: 'q-virtual-scroll__padding',\n key: 'before',\n ref: 'before',\n style: { [paddingSize]: `${this.virtualScrollPaddingBefore}px`, ...style }\n }),\n\n h(tag, {\n staticClass: 'q-virtual-scroll__content',\n key: 'content',\n ref: 'content',\n attrs: { tabindex: -1 }\n }, content),\n\n tag === 'tbody'\n ? h(tag, {\n staticClass: 'q-virtual-scroll__padding',\n key: 'after',\n ref: 'after'\n }, [\n h('tr', [\n h('td', {\n style: { [paddingSize]: `${this.virtualScrollPaddingAfter}px`, ...style },\n attrs: this.colspanAttr\n })\n ])\n ])\n : h(tag, {\n staticClass: 'q-virtual-scroll__padding',\n key: 'after',\n ref: 'after',\n style: { [paddingSize]: `${this.virtualScrollPaddingAfter}px`, ...style }\n })\n ]\n },\n\n __emitScroll (index) {\n if (this.prevToIndex !== index) {\n this.qListeners['virtual-scroll'] !== void 0 && this.$emit('virtual-scroll', {\n index,\n from: this.virtualScrollSliceRange.from,\n to: this.virtualScrollSliceRange.to - 1,\n direction: index < this.prevToIndex ? 'decrease' : 'increase',\n ref: this\n })\n\n this.prevToIndex = index\n }\n },\n\n __onBlurRefocusFn () {\n this.$refs.content !== void 0 && this.$refs.content.focus()\n }\n },\n\n created () {\n this.__setVirtualScrollSize()\n },\n\n activated () {\n if (this.shouldActivate !== true) { return }\n\n const scrollEl = this.__getVirtualScrollTarget()\n\n if (this.prevScrollStart !== void 0 && scrollEl !== void 0 && scrollEl !== null && scrollEl.nodeType !== 8) {\n setScroll(\n scrollEl,\n this.prevScrollStart,\n this.virtualScrollHorizontal,\n this.$q.lang.rtl\n )\n }\n else {\n this.scrollTo(this.prevToIndex)\n }\n },\n\n deactivated () {\n this.shouldActivate = true\n },\n\n beforeMount () {\n this.__onVirtualScrollEvt = debounce(this.__onVirtualScrollEvt, this.$q.platform.is.ios === true ? 120 : 35)\n this.__setVirtualScrollSize()\n },\n\n beforeDestroy () {\n this.__onVirtualScrollEvt.cancel()\n }\n}\n","import Vue from 'vue'\n\nimport QField from '../field/QField.js'\nimport QIcon from '../icon/QIcon.js'\nimport QChip from '../chip/QChip.js'\n\nimport QItem from '../item/QItem.js'\nimport QItemSection from '../item/QItemSection.js'\nimport QItemLabel from '../item/QItemLabel.js'\n\nimport QMenu from '../menu/QMenu.js'\nimport QDialog from '../dialog/QDialog.js'\n\nimport { isDeepEqual } from '../../utils/is.js'\nimport { stop, prevent, stopAndPrevent } from '../../utils/event.js'\nimport { normalizeToInterval } from '../../utils/format.js'\nimport { shouldIgnoreKey, isKeyCode } from '../../utils/private/key-composition.js'\nimport { mergeSlot } from '../../utils/private/slot.js'\nimport cache from '../../utils/private/cache.js'\n\nimport { FormFieldMixin } from '../../mixins/form.js'\nimport VirtualScroll from '../../mixins/virtual-scroll.js'\nimport CompositionMixin from '../../mixins/composition.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nconst validateNewValueMode = v => ['add', 'add-unique', 'toggle'].includes(v)\nconst reEscapeList = '.*+?^${}()|[]\\\\'\n\nexport default Vue.extend({\n name: 'QSelect',\n\n mixins: [\n QField,\n VirtualScroll,\n CompositionMixin,\n FormFieldMixin,\n ListenersMixin\n ],\n\n props: {\n value: {\n required: true\n },\n\n multiple: Boolean,\n\n displayValue: [String, Number],\n displayValueSanitize: Boolean,\n dropdownIcon: String,\n\n options: {\n type: Array,\n default: () => []\n },\n\n optionValue: [Function, String],\n optionLabel: [Function, String],\n optionDisable: [Function, String],\n\n hideSelected: Boolean,\n hideDropdownIcon: Boolean,\n fillInput: Boolean,\n\n maxValues: [Number, String],\n\n optionsDense: Boolean,\n optionsDark: {\n type: Boolean,\n default: null\n },\n optionsSelectedClass: String,\n optionsSanitize: Boolean,\n\n optionsCover: Boolean,\n\n menuShrink: Boolean,\n menuAnchor: String,\n menuSelf: String,\n menuOffset: Array,\n\n popupContentClass: String,\n popupContentStyle: [String, Array, Object],\n\n useInput: Boolean,\n useChips: Boolean,\n\n newValueMode: {\n type: String,\n validator: validateNewValueMode\n },\n\n mapOptions: Boolean,\n emitValue: Boolean,\n\n inputDebounce: {\n type: [Number, String],\n default: 500\n },\n\n inputClass: [Array, String, Object],\n inputStyle: [Array, String, Object],\n\n tabindex: {\n type: [String, Number],\n default: 0\n },\n\n autocomplete: String,\n\n transitionShow: String,\n transitionHide: String,\n\n behavior: {\n type: String,\n validator: v => ['default', 'menu', 'dialog'].includes(v),\n default: 'default'\n },\n\n virtualScrollItemSize: {\n type: [ Number, String ],\n default: void 0\n }\n },\n\n data () {\n return {\n menu: false,\n dialog: false,\n optionIndex: -1,\n inputValue: '',\n dialogFieldFocused: false\n }\n },\n\n watch: {\n innerValue: {\n handler (val) {\n this.innerValueCache = val\n\n if (\n this.useInput === true &&\n this.fillInput === true &&\n this.multiple !== true &&\n // Prevent re-entering in filter while filtering\n // Also prevent clearing inputValue while filtering\n this.innerLoading !== true &&\n ((this.dialog !== true && this.menu !== true) || this.hasValue !== true)\n ) {\n this.userInputValue !== true && this.__resetInputValue()\n if (this.dialog === true || this.menu === true) {\n this.filter('')\n }\n }\n },\n immediate: true\n },\n\n fillInput () {\n this.__resetInputValue()\n },\n\n menu (show) {\n this.__updateMenu(show)\n },\n\n virtualScrollLength (newLength, oldLength) {\n if (this.menu === true && this.innerLoading === false) {\n this.__resetVirtualScroll(-1, true)\n\n this.$nextTick(() => {\n if (this.menu === true && this.innerLoading === false) {\n if (newLength > oldLength) {\n this.__resetVirtualScroll()\n }\n else {\n this.__updateMenu(true)\n }\n }\n })\n }\n }\n },\n\n computed: {\n isOptionsDark () {\n return this.optionsDark === null\n ? this.isDark\n : this.optionsDark\n },\n\n virtualScrollLength () {\n return Array.isArray(this.options)\n ? this.options.length\n : 0\n },\n\n fieldClass () {\n return `q-select q-field--auto-height q-select--with${this.useInput !== true ? 'out' : ''}-input` +\n ` q-select--with${this.useChips !== true ? 'out' : ''}-chips` +\n ` q-select--${this.multiple === true ? 'multiple' : 'single'}`\n },\n\n computedInputClass () {\n if (this.hideSelected === true || this.innerValue.length === 0) {\n return this.inputClass\n }\n\n return this.inputClass === void 0\n ? 'q-field__input--padding'\n : [this.inputClass, 'q-field__input--padding']\n },\n\n menuContentClass () {\n return (this.virtualScrollHorizontal === true ? 'q-virtual-scroll--horizontal' : '') +\n (this.popupContentClass ? ' ' + this.popupContentClass : '')\n },\n\n innerValue () {\n const\n mapNull = this.mapOptions === true && this.multiple !== true,\n val = this.value !== void 0 && (this.value !== null || mapNull === true)\n ? (this.multiple === true && Array.isArray(this.value) ? this.value : [ this.value ])\n : []\n\n if (this.mapOptions === true && Array.isArray(this.options) === true) {\n const cache = this.mapOptions === true && this.innerValueCache !== void 0\n ? this.innerValueCache\n : []\n const values = val.map(v => this.__getOption(v, cache))\n\n return this.value === null && mapNull === true\n ? values.filter(v => v !== null)\n : values\n }\n\n return val\n },\n\n noOptions () {\n return this.virtualScrollLength === 0\n },\n\n selectedString () {\n return this.innerValue\n .map(opt => this.getOptionLabel(opt))\n .join(', ')\n },\n\n ariaCurrentValue () {\n return this.displayValue !== void 0\n ? this.displayValue\n : this.selectedString\n },\n\n sanitizeFn () {\n return this.optionsSanitize === true\n ? () => true\n : opt => opt !== void 0 && opt !== null && opt.sanitize === true\n },\n\n displayAsText () {\n return this.displayValueSanitize === true || (\n this.displayValue === void 0 && (\n this.optionsSanitize === true ||\n this.innerValue.some(this.sanitizeFn)\n )\n )\n },\n\n computedTabindex () {\n return this.focused === true ? this.tabindex : -1\n },\n\n selectedScope () {\n return this.innerValue.map((opt, i) => ({\n index: i,\n opt,\n sanitize: this.sanitizeFn(opt),\n selected: true,\n removeAtIndex: this.__removeAtIndexAndFocus,\n toggleOption: this.toggleOption,\n tabindex: this.computedTabindex\n }))\n },\n\n optionScope () {\n if (this.virtualScrollLength === 0) {\n return []\n }\n\n const { from, to } = this.virtualScrollSliceRange\n const { options, optionEls } = this.__optionScopeCache\n\n return this.options.slice(from, to).map((opt, i) => {\n const disable = this.isOptionDisabled(opt)\n const index = from + i\n\n const itemProps = {\n clickable: true,\n active: false,\n activeClass: this.computedOptionsSelectedClass,\n manualFocus: true,\n focused: false,\n disable,\n tabindex: -1,\n dense: this.optionsDense,\n dark: this.isOptionsDark\n }\n\n const itemAttrs = {\n role: 'option',\n id: `${this.targetUid}_${index}`\n }\n\n if (disable !== true) {\n this.isOptionSelected(opt) === true && (itemProps.active = true)\n itemAttrs['aria-selected'] = itemProps.active === true ? 'true' : 'false'\n\n this.optionIndex === index && (itemProps.focused = true)\n }\n\n const itemEvents = {\n click: () => { this.toggleOption(opt) }\n }\n\n if (this.$q.platform.is.desktop === true) {\n itemEvents.mousemove = () => { this.menu === true && this.setOptionIndex(index) }\n }\n\n const option = {\n index,\n opt,\n sanitize: this.sanitizeFn(opt),\n selected: itemProps.active,\n focused: itemProps.focused,\n toggleOption: this.toggleOption,\n setOptionIndex: this.setOptionIndex,\n itemProps,\n itemAttrs\n }\n\n if (options[i] === void 0 || isDeepEqual(option, options[i]) !== true) {\n options[i] = option\n optionEls[i] = void 0\n }\n\n return {\n ...option,\n itemEvents\n }\n })\n },\n\n dropdownArrowIcon () {\n return this.dropdownIcon !== void 0\n ? this.dropdownIcon\n : this.$q.iconSet.arrow.dropdown\n },\n\n squaredMenu () {\n return this.optionsCover === false &&\n this.outlined !== true &&\n this.standout !== true &&\n this.borderless !== true &&\n this.rounded !== true\n },\n\n computedOptionsSelectedClass () {\n return this.optionsSelectedClass !== void 0\n ? this.optionsSelectedClass\n : (this.color !== void 0 ? `text-${this.color}` : '')\n },\n\n innerOptionsValue () {\n return this.innerValue.map(opt => this.getOptionValue(opt))\n },\n\n // returns method to get value of an option;\n // takes into account 'option-value' prop\n getOptionValue () {\n return this.__getPropValueFn('optionValue', 'value')\n },\n\n // returns method to get label of an option;\n // takes into account 'option-label' prop\n getOptionLabel () {\n return this.__getPropValueFn('optionLabel', 'label')\n },\n\n // returns method to tell if an option is disabled;\n // takes into account 'option-disable' prop\n isOptionDisabled () {\n const fn = this.__getPropValueFn('optionDisable', 'disable')\n return (...args) => fn.apply(null, args) === true\n },\n\n inputControlEvents () {\n const on = {\n input: this.__onInput,\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\n // switching focus before confirming composition choice\n // this also fixes the issue where some browsers e.g. iOS Chrome\n // fires \"change\" instead of \"input\" on autocomplete.\n change: this.__onChange,\n keydown: this.__onTargetKeydown,\n keyup: this.__onTargetAutocomplete,\n keypress: this.__onTargetKeypress,\n focus: this.__selectInputText,\n click: e => {\n this.hasDialog === true && stop(e)\n }\n }\n\n on.compositionstart = on.compositionupdate = on.compositionend = this.__onComposition\n\n return on\n },\n\n virtualScrollItemSizeComputed () {\n return this.virtualScrollItemSize === void 0\n ? (this.optionsDense === true ? 24 : 48)\n : this.virtualScrollItemSize\n },\n\n comboboxAttrs () {\n const attrs = {\n tabindex: this.tabindex,\n role: 'combobox',\n 'aria-label': this.label,\n 'aria-readonly': this.readonly === true ? 'true' : 'false',\n 'aria-autocomplete': this.useInput === true ? 'list' : 'none',\n 'aria-expanded': this.menu === true ? 'true' : 'false',\n 'aria-controls': `${this.targetUid}_lb`\n }\n\n if (this.optionIndex >= 0) {\n attrs['aria-activedescendant'] = `${this.targetUid}_${this.optionIndex}`\n }\n\n return attrs\n },\n\n listboxAttrs () {\n return {\n id: `${this.targetUid}_lb`,\n role: 'listbox',\n 'aria-multiselectable': this.multiple === true ? 'true' : 'false'\n }\n }\n },\n\n methods: {\n getEmittingOptionValue (opt) {\n return this.emitValue === true\n ? this.getOptionValue(opt)\n : opt\n },\n\n removeAtIndex (index) {\n if (index > -1 && index < this.innerValue.length) {\n if (this.multiple === true) {\n const model = this.value.slice()\n this.$emit('remove', { index, value: model.splice(index, 1)[0] })\n this.$emit('input', model)\n }\n else {\n this.$emit('input', null)\n }\n }\n },\n\n __removeAtIndexAndFocus (index) {\n this.removeAtIndex(index)\n this.__focus()\n },\n\n add (opt, unique) {\n const val = this.getEmittingOptionValue(opt)\n\n if (this.multiple !== true) {\n this.fillInput === true && this.updateInputValue(\n this.getOptionLabel(opt),\n true,\n true\n )\n\n this.$emit('input', val)\n return\n }\n\n if (this.innerValue.length === 0) {\n this.$emit('add', { index: 0, value: val })\n this.$emit('input', this.multiple === true ? [ val ] : val)\n return\n }\n\n if (unique === true && this.isOptionSelected(opt) === true) {\n return\n }\n\n if (this.maxValues !== void 0 && this.value.length >= this.maxValues) {\n return\n }\n\n const model = this.value.slice()\n\n this.$emit('add', { index: model.length, value: val })\n model.push(val)\n this.$emit('input', model)\n },\n\n toggleOption (opt, keepOpen) {\n if (this.editable !== true || opt === void 0 || this.isOptionDisabled(opt) === true) {\n return\n }\n\n const optValue = this.getOptionValue(opt)\n\n if (this.multiple !== true) {\n if (keepOpen !== true) {\n this.updateInputValue(\n this.fillInput === true ? this.getOptionLabel(opt) : '',\n true,\n true\n )\n\n this.dialogFieldFocused = false\n document.activeElement.blur()\n\n this.hidePopup()\n }\n\n this.$refs.target !== void 0 && this.$refs.target.focus()\n\n if (\n this.innerValue.length === 0 ||\n isDeepEqual(this.getOptionValue(this.innerValue[0]), optValue) !== true\n ) {\n this.$emit('input', this.emitValue === true ? optValue : opt)\n }\n return\n }\n\n (this.hasDialog !== true || this.dialogFieldFocused === true) && this.__focus()\n\n this.__selectInputText()\n\n if (this.innerValue.length === 0) {\n const val = this.emitValue === true ? optValue : opt\n this.$emit('add', { index: 0, value: val })\n this.$emit('input', this.multiple === true ? [ val ] : val)\n return\n }\n\n const\n model = this.value.slice(),\n index = this.innerOptionsValue.findIndex(v => isDeepEqual(v, optValue))\n\n if (index > -1) {\n this.$emit('remove', { index, value: model.splice(index, 1)[0] })\n }\n else {\n if (this.maxValues !== void 0 && model.length >= this.maxValues) {\n return\n }\n\n const val = this.emitValue === true ? optValue : opt\n\n this.$emit('add', { index: model.length, value: val })\n model.push(val)\n }\n\n this.$emit('input', model)\n },\n\n setOptionIndex (index) {\n if (this.$q.platform.is.desktop !== true) { return }\n\n const val = index > -1 && index < this.virtualScrollLength\n ? index\n : -1\n\n if (this.optionIndex !== val) {\n this.optionIndex = val\n }\n },\n\n moveOptionSelection (offset = 1, skipInputValue) {\n if (this.menu === true) {\n let index = this.optionIndex\n do {\n index = normalizeToInterval(\n index + offset,\n -1,\n this.virtualScrollLength - 1\n )\n }\n while (index !== -1 && index !== this.optionIndex && this.isOptionDisabled(this.options[index]) === true)\n\n if (this.optionIndex !== index) {\n cancelAnimationFrame(this.moveAnimationFrame)\n this.moveAnimationFrame = requestAnimationFrame(() => {\n this.setOptionIndex(index)\n this.scrollTo(index)\n\n if (skipInputValue !== true && this.useInput === true && this.fillInput === true) {\n this.__setInputValue(index >= 0\n ? this.getOptionLabel(this.options[index])\n : this.defaultInputValue\n )\n }\n })\n }\n }\n },\n\n __getOption (value, innerValueCache) {\n const fn = opt => isDeepEqual(this.getOptionValue(opt), value)\n return this.options.find(fn) || innerValueCache.find(fn) || value\n },\n\n __getPropValueFn (propName, defaultVal) {\n const val = this[propName] !== void 0\n ? this[propName]\n : defaultVal\n\n return typeof val === 'function'\n ? val\n : opt => (opt !== null && typeof opt === 'object' && val in opt ? opt[ val ] : opt)\n },\n\n isOptionSelected (opt) {\n const val = this.getOptionValue(opt)\n return this.innerOptionsValue.find(v => isDeepEqual(v, val)) !== void 0\n },\n\n __selectInputText (e) {\n if (\n this.useInput === true &&\n this.$refs.target !== void 0 &&\n (e === void 0 || (this.$refs.target === e.target && e.target.value === this.selectedString))\n ) {\n this.$refs.target.select()\n }\n },\n\n __onTargetKeyup (e) {\n // if ESC and we have an opened menu\n // then stop propagation (might be caught by a QDialog\n // and so it will also close the QDialog, which is wrong)\n if (isKeyCode(e, 27) === true && this.menu === true) {\n stop(e)\n // on ESC we need to close the dialog also\n this.hidePopup()\n this.__resetInputValue()\n }\n\n this.$emit('keyup', e)\n },\n\n __onTargetAutocomplete (e) {\n const { value } = e.target\n\n if (e.keyCode !== void 0) {\n this.__onTargetKeyup(e)\n return\n }\n\n e.target.value = ''\n clearTimeout(this.inputTimer)\n this.__resetInputValue()\n\n if (typeof value === 'string' && value.length > 0) {\n const needle = value.toLocaleLowerCase()\n const findFn = extractFn => {\n const option = this.options.find(opt => extractFn(opt).toLocaleLowerCase() === needle)\n\n if (option === void 0) {\n return false\n }\n\n if (this.innerValue.indexOf(option) === -1) {\n this.toggleOption(option)\n }\n else {\n this.hidePopup()\n }\n\n return true\n }\n const fillFn = afterFilter => {\n if (findFn(this.getOptionValue) === true) {\n return\n }\n if (findFn(this.getOptionLabel) === true || afterFilter === true) {\n return\n }\n\n this.filter(value, true, () => fillFn(true))\n }\n\n fillFn()\n }\n else {\n this.__clearValue(e)\n }\n },\n\n __onTargetKeypress (e) {\n this.$emit('keypress', e)\n },\n\n __onTargetKeydown (e) {\n this.$emit('keydown', e)\n\n if (shouldIgnoreKey(e) === true) {\n return\n }\n\n const newValueModeValid = this.inputValue.length > 0 &&\n (this.newValueMode !== void 0 || this.qListeners['new-value'] !== void 0)\n const tabShouldSelect = e.shiftKey !== true &&\n this.multiple !== true &&\n (this.optionIndex > -1 || newValueModeValid === true)\n\n // escape\n if (e.keyCode === 27) {\n prevent(e) // prevent clearing the inputValue\n return\n }\n\n // tab\n if (e.keyCode === 9 && tabShouldSelect === false) {\n this.__closeMenu()\n return\n }\n\n if (e.target === void 0 || e.target.id !== this.targetUid) { return }\n\n // down\n if (\n e.keyCode === 40 &&\n this.innerLoading !== true &&\n this.menu === false\n ) {\n stopAndPrevent(e)\n this.showPopup()\n return\n }\n\n // backspace\n if (\n e.keyCode === 8 &&\n this.hideSelected !== true &&\n this.inputValue.length === 0\n ) {\n if (this.multiple === true && Array.isArray(this.value)) {\n this.removeAtIndex(this.value.length - 1)\n }\n else if (this.multiple !== true && this.value !== null) {\n this.$emit('input', null)\n }\n return\n }\n\n // home, end - 36, 35\n if (\n (e.keyCode === 35 || e.keyCode === 36) &&\n (typeof this.inputValue !== 'string' || this.inputValue.length === 0)\n ) {\n stopAndPrevent(e)\n this.optionIndex = -1\n this.moveOptionSelection(e.keyCode === 36 ? 1 : -1, this.multiple)\n }\n\n // pg up, pg down - 33, 34\n if (\n (e.keyCode === 33 || e.keyCode === 34) &&\n this.virtualScrollSliceSizeComputed !== void 0\n ) {\n stopAndPrevent(e)\n this.optionIndex = Math.max(\n -1,\n Math.min(\n this.virtualScrollLength,\n this.optionIndex + (e.keyCode === 33 ? -1 : 1) * this.virtualScrollSliceSizeComputed.view\n )\n )\n this.moveOptionSelection(e.keyCode === 33 ? 1 : -1, this.multiple)\n }\n\n // up, down\n if (e.keyCode === 38 || e.keyCode === 40) {\n stopAndPrevent(e)\n this.moveOptionSelection(e.keyCode === 38 ? -1 : 1, this.multiple)\n }\n\n const optionsLength = this.virtualScrollLength\n\n // clear search buffer if expired\n if (this.searchBuffer === void 0 || this.searchBufferExp < Date.now()) {\n this.searchBuffer = ''\n }\n\n // keyboard search when not having use-input\n if (\n optionsLength > 0 &&\n this.useInput !== true &&\n e.key !== void 0 &&\n e.key.length === 1 && // printable char\n e.altKey === false && // not kbd shortcut\n e.ctrlKey === false && // not kbd shortcut\n e.metaKey === false && // not kbd shortcut, especially on macOS with Command key\n (e.keyCode !== 32 || this.searchBuffer.length > 0) // space in middle of search\n ) {\n this.menu !== true && this.showPopup(e)\n\n const\n char = e.key.toLocaleLowerCase(),\n keyRepeat = this.searchBuffer.length === 1 && this.searchBuffer[0] === char\n\n this.searchBufferExp = Date.now() + 1500\n if (keyRepeat === false) {\n stopAndPrevent(e)\n this.searchBuffer += char\n }\n\n const searchRe = new RegExp('^' + this.searchBuffer.split('').map(l => reEscapeList.indexOf(l) > -1 ? '\\\\' + l : l).join('.*'), 'i')\n\n let index = this.optionIndex\n\n if (keyRepeat === true || index < 0 || searchRe.test(this.getOptionLabel(this.options[index])) !== true) {\n do {\n index = normalizeToInterval(index + 1, -1, optionsLength - 1)\n }\n while (index !== this.optionIndex && (\n this.isOptionDisabled(this.options[index]) === true ||\n searchRe.test(this.getOptionLabel(this.options[index])) !== true\n ))\n }\n\n if (this.optionIndex !== index) {\n this.$nextTick(() => {\n this.setOptionIndex(index)\n this.scrollTo(index)\n\n if (index >= 0 && this.useInput === true && this.fillInput === true) {\n this.__setInputValue(this.getOptionLabel(this.options[index]))\n }\n })\n }\n\n return\n }\n\n // enter, space (when not using use-input and not in search), or tab (when not using multiple and option selected)\n // same target is checked above\n if (\n e.keyCode !== 13 &&\n (e.keyCode !== 32 || this.useInput === true || this.searchBuffer !== '') &&\n (e.keyCode !== 9 || tabShouldSelect === false)\n ) { return }\n\n e.keyCode !== 9 && stopAndPrevent(e)\n\n if (this.optionIndex > -1 && this.optionIndex < optionsLength) {\n this.toggleOption(this.options[this.optionIndex])\n return\n }\n\n if (newValueModeValid === true) {\n const done = (val, mode) => {\n if (mode) {\n if (validateNewValueMode(mode) !== true) {\n return\n }\n }\n else {\n mode = this.newValueMode\n }\n\n if (val === void 0 || val === null) {\n return\n }\n\n this.updateInputValue('', this.multiple !== true, true)\n\n this[mode === 'toggle' ? 'toggleOption' : 'add'](\n val,\n mode === 'add-unique'\n )\n\n if (this.multiple !== true) {\n this.$refs.target !== void 0 && this.$refs.target.focus()\n this.hidePopup()\n }\n }\n\n if (this.qListeners['new-value'] !== void 0) {\n this.$emit('new-value', this.inputValue, done)\n }\n else {\n done(this.inputValue)\n }\n\n if (this.multiple !== true) {\n return\n }\n }\n\n if (this.menu === true) {\n this.__closeMenu()\n }\n else if (this.innerLoading !== true) {\n this.showPopup()\n }\n },\n\n __getVirtualScrollEl () {\n return this.hasDialog === true\n ? this.$refs.menuContent\n : (\n this.$refs.menu !== void 0 && this.$refs.menu.__portal !== void 0\n ? this.$refs.menu.__portal.$el\n : void 0\n )\n },\n\n __getVirtualScrollTarget () {\n return this.__getVirtualScrollEl()\n },\n\n __getSelection (h) {\n if (this.hideSelected === true) {\n return []\n }\n\n if (this.$scopedSlots['selected-item'] !== void 0) {\n return this.selectedScope.map(scope => this.$scopedSlots['selected-item'](scope)).slice()\n }\n\n if (this.$scopedSlots.selected !== void 0) {\n return [].concat(this.$scopedSlots.selected())\n }\n\n if (this.useChips === true) {\n return this.selectedScope.map((scope, i) => h(QChip, {\n key: 'rem#' + i,\n props: {\n removable: this.editable === true && this.isOptionDisabled(scope.opt) !== true,\n dense: true,\n textColor: this.color,\n tabindex: this.computedTabindex\n },\n on: cache(this, 'rem#' + i, {\n remove () { scope.removeAtIndex(i) }\n })\n }, [\n h('span', {\n staticClass: 'ellipsis',\n domProps: {\n [scope.sanitize === true ? 'textContent' : 'innerHTML']: this.getOptionLabel(scope.opt)\n }\n })\n ]))\n }\n\n return [\n h('span', {\n domProps: {\n [this.displayAsText ? 'textContent' : 'innerHTML']: this.ariaCurrentValue\n }\n })\n ]\n },\n\n __getControl (h, fromDialog) {\n const child = this.__getSelection(h)\n const isTarget = fromDialog === true || this.dialog !== true || this.hasDialog !== true\n\n if (this.useInput === true) {\n child.push(this.__getInput(h, fromDialog, isTarget))\n }\n // there can be only one (when dialog is opened the control in dialog should be target)\n else if (this.editable === true) {\n const attrs = isTarget === true ? this.comboboxAttrs : void 0\n\n child.push(\n h('input', {\n ref: isTarget === true ? 'target' : void 0,\n key: 'd_t',\n staticClass: 'q-select__focus-target',\n attrs: {\n id: isTarget === true ? this.targetUid : void 0,\n readonly: true,\n 'data-autofocus': (fromDialog === true ? isTarget === true : this.autofocus) || void 0,\n ...attrs\n },\n on: cache(this, 'f-tget', {\n keydown: this.__onTargetKeydown,\n keyup: this.__onTargetKeyup,\n keypress: this.__onTargetKeypress\n })\n })\n )\n\n if (isTarget === true && typeof this.autocomplete === 'string' && this.autocomplete.length > 0) {\n child.push(\n h('input', {\n key: 'autoinp',\n staticClass: 'q-select__autocomplete-input',\n domProps: { value: this.ariaCurrentValue },\n attrs: { autocomplete: this.autocomplete, tabindex: -1 },\n on: cache(this, 'autoinp', {\n keyup: this.__onTargetAutocomplete\n })\n })\n )\n }\n }\n\n if (this.nameProp !== void 0 && this.disable !== true && this.innerOptionsValue.length > 0) {\n const opts = this.innerOptionsValue.map(value => h('option', {\n attrs: { value, selected: true }\n }))\n\n child.push(\n h('select', {\n staticClass: 'hidden',\n attrs: {\n name: this.nameProp,\n multiple: this.multiple\n }\n }, opts)\n )\n }\n\n const attrs = this.useInput === true || isTarget !== true ? void 0 : this.qAttrs\n\n return h('div', { staticClass: 'q-field__native row items-center', attrs }, child)\n },\n\n __getOptions (h) {\n if (this.menu !== true) {\n return void 0\n }\n\n if (this.noOptions === true) {\n return this.$scopedSlots['no-option'] !== void 0\n ? this.$scopedSlots['no-option']({ inputValue: this.inputValue })\n : void 0\n }\n\n if (\n this.$scopedSlots.option !== void 0 &&\n this.__optionScopeCache.optionSlot !== this.$scopedSlots.option\n ) {\n this.__optionScopeCache.optionSlot = this.$scopedSlots.option\n this.__optionScopeCache.optionEls = []\n }\n\n const fn = this.$scopedSlots.option !== void 0\n ? this.$scopedSlots.option\n : scope => h(QItem, {\n key: scope.index,\n props: scope.itemProps,\n attrs: scope.itemAttrs,\n on: scope.itemEvents\n }, [\n h(QItemSection, [\n h(QItemLabel, {\n domProps: {\n [scope.sanitize === true ? 'textContent' : 'innerHTML']: this.getOptionLabel(scope.opt)\n }\n })\n ])\n ])\n\n const { optionEls } = this.__optionScopeCache\n\n let options = this.__padVirtualScroll(h, 'div', this.optionScope.map((scope, i) => {\n if (optionEls[i] === void 0) {\n optionEls[i] = fn(scope)\n }\n\n return optionEls[i]\n }))\n\n if (this.$scopedSlots['before-options'] !== void 0) {\n options = this.$scopedSlots['before-options']().concat(options)\n }\n\n return mergeSlot(options, this, 'after-options')\n },\n\n __getInnerAppend (h) {\n return this.loading !== true && this.innerLoadingIndicator !== true && this.hideDropdownIcon !== true\n ? [\n h(QIcon, {\n staticClass: 'q-select__dropdown-icon' + (this.menu === true ? ' rotate-180' : ''),\n props: { name: this.dropdownArrowIcon }\n })\n ]\n : null\n },\n\n __getInput (h, fromDialog, isTarget) {\n const attrs = isTarget === true ? { ...this.comboboxAttrs, ...this.qAttrs } : void 0\n\n const options = {\n ref: isTarget === true ? 'target' : void 0,\n key: 'i_t',\n staticClass: 'q-field__input q-placeholder col',\n style: this.inputStyle,\n class: this.computedInputClass,\n domProps: { value: this.inputValue !== void 0 ? this.inputValue : '' },\n attrs: {\n // required for Android in order to show ENTER key when in form\n type: 'search',\n ...attrs,\n id: isTarget === true ? this.targetUid : void 0,\n maxlength: this.maxlength, // this is converted to prop by QField\n autocomplete: this.autocomplete,\n 'data-autofocus': (fromDialog === true ? isTarget === true : this.autofocus) || void 0,\n disabled: this.disable === true,\n readonly: this.readonly === true\n },\n on: this.inputControlEvents\n }\n\n if (fromDialog !== true && this.hasDialog === true) {\n options.staticClass += ' no-pointer-events'\n }\n\n return h('input', options)\n },\n\n __onChange (e) {\n this.__onComposition(e)\n },\n\n __onInput (e) {\n clearTimeout(this.inputTimer)\n\n if (e && e.target && e.target.qComposing === true) {\n return\n }\n\n this.__setInputValue(e.target.value || '')\n // mark it here as user input so that if updateInputValue is called\n // before filter is called the indicator is reset\n this.userInputValue = true\n this.defaultInputValue = this.inputValue\n\n if (\n this.focused !== true &&\n (this.hasDialog !== true || this.dialogFieldFocused === true)\n ) {\n this.__focus()\n }\n\n if (this.qListeners.filter !== void 0) {\n this.inputTimer = setTimeout(() => {\n this.filter(this.inputValue)\n }, this.inputDebounce)\n }\n },\n\n __setInputValue (inputValue) {\n if (this.inputValue !== inputValue) {\n this.inputValue = inputValue\n this.$emit('input-value', inputValue)\n }\n },\n\n updateInputValue (val, noFiltering, internal) {\n this.userInputValue = internal !== true\n\n if (this.useInput === true) {\n this.__setInputValue(val)\n\n if (noFiltering === true || internal !== true) {\n this.defaultInputValue = val\n }\n\n noFiltering !== true && this.filter(val)\n }\n },\n\n filter (val, keepClosed, afterUpdateFn) {\n if (this.qListeners.filter === void 0 || (keepClosed !== true && this.focused !== true)) {\n return\n }\n\n if (this.innerLoading === true) {\n this.$emit('filter-abort')\n }\n else {\n this.innerLoading = true\n this.innerLoadingIndicator = true\n }\n\n if (\n val !== '' &&\n this.multiple !== true &&\n this.innerValue.length > 0 &&\n this.userInputValue !== true &&\n val === this.getOptionLabel(this.innerValue[0])\n ) {\n val = ''\n }\n\n const filterId = setTimeout(() => {\n this.menu === true && (this.menu = false)\n }, 10)\n clearTimeout(this.filterId)\n this.filterId = filterId\n\n this.$emit(\n 'filter',\n val,\n (fn, afterFn) => {\n if ((keepClosed === true || this.focused === true) && this.filterId === filterId) {\n clearTimeout(this.filterId)\n\n typeof fn === 'function' && fn()\n\n // hide indicator to allow arrow to animate\n this.innerLoadingIndicator = false\n\n this.$nextTick(() => {\n this.innerLoading = false\n\n if (this.editable === true) {\n if (keepClosed === true) {\n this.menu === true && this.hidePopup()\n }\n else if (this.menu === true) {\n this.__updateMenu(true)\n }\n else {\n this.menu = true\n this.hasDialog === true && (this.dialog = true)\n }\n }\n\n typeof afterFn === 'function' && this.$nextTick(() => { afterFn(this) })\n typeof afterUpdateFn === 'function' && this.$nextTick(() => { afterUpdateFn(this) })\n })\n }\n },\n () => {\n if (this.focused === true && this.filterId === filterId) {\n clearTimeout(this.filterId)\n this.innerLoading = false\n this.innerLoadingIndicator = false\n }\n this.menu === true && (this.menu = false)\n }\n )\n },\n\n __getControlEvents () {\n const focusout = e => {\n this.__onControlFocusout(e, () => {\n this.__resetInputValue()\n this.__closeMenu()\n })\n }\n\n return {\n focusin: this.__onControlFocusin,\n focusout,\n 'popup-show': this.__onControlPopupShow,\n 'popup-hide': e => {\n e !== void 0 && stop(e)\n this.$emit('popup-hide', e)\n this.hasPopupOpen = false\n focusout(e)\n },\n click: e => {\n // label from QField will propagate click on the input (except IE)\n prevent(e)\n\n if (this.hasDialog !== true && this.menu === true) {\n this.__closeMenu()\n this.$refs.target !== void 0 && this.$refs.target.focus()\n return\n }\n\n this.showPopup(e)\n }\n }\n },\n\n __getControlChild (h) {\n if (\n this.editable !== false && (\n this.dialog === true || // dialog always has menu displayed, so need to render it\n this.noOptions !== true ||\n this.$scopedSlots['no-option'] !== void 0\n )\n ) {\n return this[`__get${this.hasDialog === true ? 'Dialog' : 'Menu'}`](h)\n }\n },\n\n __getMenu (h) {\n return h(QMenu, {\n key: 'menu',\n ref: 'menu',\n props: {\n value: this.menu,\n fit: this.menuShrink !== true,\n cover: this.optionsCover === true && this.noOptions !== true && this.useInput !== true,\n anchor: this.menuAnchor,\n self: this.menuSelf,\n offset: this.menuOffset,\n contentClass: this.menuContentClass,\n contentStyle: this.popupContentStyle,\n dark: this.isOptionsDark,\n noParentEvent: true,\n noRefocus: true,\n noFocus: true,\n square: this.squaredMenu,\n transitionShow: this.transitionShow,\n transitionHide: this.transitionHide,\n separateClosePopup: true\n },\n attrs: this.listboxAttrs,\n on: cache(this, 'menu', {\n '&scroll': this.__onVirtualScrollEvt,\n 'before-hide': this.__closeMenu,\n show: this.__onMenuShow\n })\n }, this.__getOptions(h))\n },\n\n __onMenuShow () {\n this.__setVirtualScrollSize()\n },\n\n __onDialogFieldFocus (e) {\n stop(e)\n this.$refs.target !== void 0 && this.$refs.target.focus()\n this.dialogFieldFocused = true\n window.scrollTo(window.pageXOffset || window.scrollX || document.body.scrollLeft || 0, 0)\n },\n\n __onDialogFieldBlur (e) {\n stop(e)\n this.$nextTick(() => {\n this.dialogFieldFocused = false\n })\n },\n\n __getDialog (h) {\n const content = [\n h(QField, {\n staticClass: `col-auto ${this.fieldClass}`,\n props: {\n ...this.$props,\n for: this.targetUid,\n dark: this.isOptionsDark,\n square: true,\n filled: true,\n itemAligned: false,\n loading: this.innerLoadingIndicator,\n stackLabel: this.inputValue.length > 0\n },\n on: {\n ...this.qListeners,\n focus: this.__onDialogFieldFocus,\n blur: this.__onDialogFieldBlur\n },\n scopedSlots: {\n ...this.$scopedSlots,\n rawControl: () => this.__getControl(h, true),\n before: void 0,\n after: void 0\n }\n })\n ]\n\n this.menu === true && content.push(\n h('div', {\n key: 'virtMenu',\n ref: 'menuContent',\n staticClass: 'col scroll',\n class: this.menuContentClass,\n style: this.popupContentStyle,\n attrs: this.listboxAttrs,\n on: cache(this, 'virtMenu', {\n click: prevent,\n '&scroll': this.__onVirtualScrollEvt\n })\n }, this.__getOptions(h))\n )\n\n return h(QDialog, {\n key: 'dialog',\n ref: 'dialog',\n props: {\n value: this.dialog,\n dark: this.isOptionsDark,\n position: this.useInput === true ? 'top' : void 0,\n transitionShow: this.transitionShowComputed,\n transitionHide: this.transitionHide\n },\n on: cache(this, 'dialog', {\n 'before-hide': this.__onDialogBeforeHide,\n hide: this.__onDialogHide,\n show: this.__onDialogShow\n })\n }, [\n h('div', {\n staticClass: 'q-select__dialog' +\n (this.isOptionsDark === true ? ' q-select__dialog--dark q-dark' : '') +\n (this.dialogFieldFocused === true ? ' q-select__dialog--focused' : '')\n }, content)\n ])\n },\n\n __onDialogBeforeHide () {\n if (this.useInput !== true || this.$q.platform.is.desktop === true) {\n this.$refs.dialog.__refocusTarget = this.$el.querySelector('.q-field__native > [tabindex]:last-child')\n }\n this.focused = false\n this.dialogFieldFocused = false\n },\n\n __onDialogHide (e) {\n if (this.$q.platform.is.desktop !== true) {\n document.activeElement.blur()\n }\n this.hidePopup()\n this.focused === false && this.$emit('blur', e)\n this.__resetInputValue()\n },\n\n __onDialogShow () {\n const el = document.activeElement\n // IE can have null document.activeElement\n if (\n (el === null || el.id !== this.targetUid) &&\n this.$refs.target !== el &&\n this.$refs.target !== void 0\n ) {\n this.$refs.target.focus()\n }\n\n this.__setVirtualScrollSize()\n },\n\n __closeMenu () {\n if (this.__optionScopeCache !== void 0) {\n this.__optionScopeCache.optionEls = []\n }\n\n if (this.dialog === true) {\n return\n }\n\n this.optionIndex = -1\n\n if (this.menu === true) {\n this.menu = false\n }\n\n if (this.focused === false) {\n clearTimeout(this.filterId)\n this.filterId = void 0\n\n if (this.innerLoading === true) {\n this.$emit('filter-abort')\n this.innerLoading = false\n this.innerLoadingIndicator = false\n }\n }\n },\n\n showPopup (e) {\n if (this.editable !== true) {\n return\n }\n\n if (this.hasDialog === true) {\n this.__onControlFocusin(e)\n this.dialog = true\n this.$nextTick(() => {\n this.__focus()\n })\n }\n else {\n this.__focus()\n }\n\n if (this.qListeners.filter !== void 0) {\n this.filter(this.inputValue)\n }\n else if (this.noOptions !== true || this.$scopedSlots['no-option'] !== void 0) {\n this.menu = true\n }\n },\n\n hidePopup () {\n this.dialog = false\n this.__closeMenu()\n },\n\n __resetInputValue () {\n this.useInput === true && this.updateInputValue(\n this.multiple !== true && this.fillInput === true && this.innerValue.length > 0\n ? this.getOptionLabel(this.innerValue[0]) || ''\n : '',\n true,\n true\n )\n },\n\n __updateMenu (show) {\n let optionIndex = -1\n\n if (show === true) {\n if (this.innerValue.length > 0) {\n const val = this.getOptionValue(this.innerValue[0])\n optionIndex = this.options.findIndex(v => isDeepEqual(this.getOptionValue(v), val))\n }\n\n this.__resetVirtualScroll(optionIndex)\n }\n\n this.setOptionIndex(optionIndex)\n },\n\n __onPreRender () {\n this.hasDialog = this.$q.platform.is.mobile !== true && this.behavior !== 'dialog'\n ? false\n : this.behavior !== 'menu' && (\n this.useInput === true\n ? this.$scopedSlots['no-option'] !== void 0 || this.qListeners.filter !== void 0 || this.noOptions === false\n : true\n )\n\n this.transitionShowComputed = this.hasDialog === true && this.useInput === true && this.$q.platform.is.ios === true\n ? 'fade'\n : this.transitionShow\n },\n\n __onPostRender () {\n if (this.dialog === false && this.$refs.menu !== void 0) {\n this.$refs.menu.updatePosition()\n }\n },\n\n updateMenuPosition () {\n this.__onPostRender()\n }\n },\n\n beforeMount () {\n this.__optionScopeCache = {\n optionSlot: this.$scopedSlots.option,\n options: [],\n optionEls: []\n }\n },\n\n beforeDestroy () {\n this.__optionScopeCache = void 0\n clearTimeout(this.inputTimer)\n }\n})\n","import QSelect from './QSelect.js'\n\nexport {\n QSelect\n}\n","import QSeparator from './QSeparator.js'\n\nexport {\n QSeparator\n}\n","import Vue from 'vue'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport TagMixin from '../../mixins/tag.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport const skeletonTypes = [\n 'text', 'rect', 'circle',\n 'QBtn', 'QBadge', 'QChip', 'QToolbar',\n 'QCheckbox', 'QRadio', 'QToggle',\n 'QSlider', 'QRange', 'QInput',\n 'QAvatar'\n]\n\nexport const skeletonAnimations = [\n 'wave', 'pulse', 'pulse-x', 'pulse-y', 'fade', 'blink', 'none'\n]\n\nexport default Vue.extend({\n name: 'QSkeleton',\n\n mixins: [ DarkMixin, TagMixin, ListenersMixin ],\n\n props: {\n type: {\n type: String,\n validator: v => skeletonTypes.includes(v),\n default: 'rect'\n },\n\n animation: {\n type: String,\n validator: v => skeletonAnimations.includes(v),\n default: 'wave'\n },\n\n square: Boolean,\n bordered: Boolean,\n\n size: String,\n width: String,\n height: String\n },\n\n computed: {\n style () {\n return this.size !== void 0\n ? { width: this.size, height: this.size }\n : { width: this.width, height: this.height }\n },\n\n classes () {\n return `q-skeleton--${this.isDark === true ? 'dark' : 'light'} q-skeleton--type-${this.type}` +\n (this.animation !== 'none' ? ` q-skeleton--anim q-skeleton--anim-${this.animation}` : '') +\n (this.square === true ? ' q-skeleton--square' : '') +\n (this.bordered === true ? ' q-skeleton--bordered' : '')\n }\n },\n\n render (h) {\n return h(this.tag, {\n staticClass: 'q-skeleton',\n class: this.classes,\n style: this.style,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import QSkeleton from './QSkeleton.js'\n\nexport {\n QSkeleton\n}\n","import Vue from 'vue'\n\nimport TouchPan from '../../directives/TouchPan.js'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\nimport { cacheWithFn } from '../../utils/private/cache.js'\n\nconst slotsDef = [\n ['left', 'center', 'start', 'width'],\n ['right', 'center', 'end', 'width'],\n ['top', 'start', 'center', 'height'],\n ['bottom', 'end', 'center', 'height']\n]\n\nexport default Vue.extend({\n name: 'QSlideItem',\n\n mixins: [ DarkMixin, ListenersMixin ],\n\n props: {\n leftColor: String,\n rightColor: String,\n topColor: String,\n bottomColor: String\n },\n\n directives: {\n TouchPan\n },\n\n computed: {\n langDir () {\n return this.$q.lang.rtl === true\n ? { left: 'right', right: 'left' }\n : { left: 'left', right: 'right' }\n }\n },\n\n methods: {\n reset () {\n this.$refs.content.style.transform = 'translate(0,0)'\n this.__emitSlide(this.__showing, 0, true)\n },\n\n __emitSlide (side, ratio, isReset) {\n this.qListeners.slide !== void 0 && this.$emit('slide', { side, ratio, isReset })\n },\n\n __pan (evt) {\n const node = this.$refs.content\n\n if (evt.isFirst) {\n this.__dir = null\n this.__size = { left: 0, right: 0, top: 0, bottom: 0 }\n this.__scale = 0\n\n node.classList.add('no-transition')\n\n slotsDef.forEach(slot => {\n if (this.$scopedSlots[slot[0]] !== void 0) {\n const node = this.$refs[slot[0] + 'Content']\n node.style.transform = 'scale(1)'\n this.__size[slot[0]] = node.getBoundingClientRect()[slot[3]]\n }\n })\n\n this.__axis = (evt.direction === 'up' || evt.direction === 'down')\n ? 'Y'\n : 'X'\n }\n else if (evt.isFinal) {\n node.classList.remove('no-transition')\n\n if (this.__scale === 1) {\n node.style.transform = `translate${this.__axis}(${this.__dir * 100}%)`\n\n this.timer = setTimeout(() => {\n this.$emit(this.__showing, { reset: this.reset })\n this.$emit('action', { side: this.__showing, reset: this.reset })\n }, 230)\n }\n else {\n node.style.transform = 'translate(0,0)'\n this.__emitSlide(this.__showing, 0, true)\n }\n\n return\n }\n else {\n evt.direction = this.__axis === 'X'\n ? evt.offset.x < 0 ? 'left' : 'right'\n : evt.offset.y < 0 ? 'up' : 'down'\n }\n\n if (\n (this.$scopedSlots.left === void 0 && evt.direction === this.langDir.right) ||\n (this.$scopedSlots.right === void 0 && evt.direction === this.langDir.left) ||\n (this.$scopedSlots.top === void 0 && evt.direction === 'down') ||\n (this.$scopedSlots.bottom === void 0 && evt.direction === 'up')\n ) {\n node.style.transform = 'translate(0,0)'\n return\n }\n\n let showing, dir, dist\n\n if (this.__axis === 'X') {\n dir = evt.direction === 'left' ? -1 : 1\n showing = dir === 1 ? this.langDir.left : this.langDir.right\n dist = evt.distance.x\n }\n else {\n dir = evt.direction === 'up' ? -2 : 2\n showing = dir === 2 ? 'top' : 'bottom'\n dist = evt.distance.y\n }\n\n if (this.__dir !== null && Math.abs(dir) !== Math.abs(this.__dir)) {\n return\n }\n\n if (this.__dir !== dir) {\n ['left', 'right', 'top', 'bottom'].forEach(d => {\n if (this.$refs[d] !== void 0) {\n this.$refs[d].style.visibility = showing === d\n ? 'visible'\n : 'hidden'\n }\n })\n this.__showing = showing\n this.__dir = dir\n }\n\n this.__scale = Math.max(0, Math.min(1, (dist - 40) / this.__size[showing]))\n\n node.style.transform = `translate${this.__axis}(${dist * dir / Math.abs(dir)}px)`\n this.$refs[`${showing}Content`].style.transform = `scale(${this.__scale})`\n\n this.__emitSlide(showing, this.__scale, false)\n }\n },\n\n render (h) {\n const\n content = [],\n slots = {\n left: this.$scopedSlots[this.langDir.right] !== void 0,\n right: this.$scopedSlots[this.langDir.left] !== void 0,\n up: this.$scopedSlots.bottom !== void 0,\n down: this.$scopedSlots.top !== void 0\n },\n dirs = Object.keys(slots).filter(key => slots[key] === true)\n\n slotsDef.forEach(slot => {\n const dir = slot[0]\n\n if (this.$scopedSlots[dir] !== void 0) {\n content.push(\n h('div', {\n ref: dir,\n class: `q-slide-item__${dir} absolute-full row no-wrap items-${slot[1]} justify-${slot[2]}` +\n (this[dir + 'Color'] !== void 0 ? ` bg-${this[dir + 'Color']}` : '')\n }, [\n h('div', { ref: dir + 'Content' }, this.$scopedSlots[dir]())\n ])\n )\n }\n })\n\n content.push(\n h('div', {\n ref: 'content',\n key: 'content',\n staticClass: 'q-slide-item__content',\n directives: dirs.length > 0\n ? cacheWithFn(this, 'dir#' + dirs.join(''), () => {\n const modifiers = {\n prevent: true,\n stop: true,\n mouse: true\n }\n\n dirs.forEach(dir => {\n modifiers[dir] = true\n })\n\n return [{\n name: 'touch-pan',\n value: this.__pan,\n modifiers\n }]\n })\n : null\n }, slot(this, 'default'))\n )\n\n return h('div', {\n staticClass: 'q-slide-item q-item-type overflow-hidden',\n class: this.isDark === true ? 'q-slide-item--dark q-dark' : '',\n on: { ...this.qListeners }\n }, content)\n },\n\n beforeDestroy () {\n clearTimeout(this.timer)\n }\n})\n","import QSlideItem from './QSlideItem.js'\n\nexport {\n QSlideItem\n}\n","import QSlideTransition from './QSlideTransition.js'\n\nexport {\n QSlideTransition\n}\n","import QSlider from './QSlider.js'\n\nexport {\n QSlider\n}\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nexport default Vue.extend({\n name: 'QSpace',\n\n mixins: [ ListenersMixin ],\n\n render (h) {\n return h('div', {\n staticClass: 'q-space',\n on: { ...this.qListeners }\n })\n }\n})\n","import QSpace from './QSpace.js'\n\nexport {\n QSpace\n}\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerAudio',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'fill': 'currentColor',\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 55 80',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('g', {\n attrs: {\n 'transform': 'matrix(1 0 0 -1 0 80)'\n }\n }, [\n h('rect', {\n attrs: {\n 'width': '10',\n 'height': '20',\n 'rx': '3'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'height',\n 'begin': '0s',\n 'dur': '4.3s',\n 'values': '20;45;57;80;64;32;66;45;64;23;66;13;64;56;34;34;2;23;76;79;20',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('rect', {\n attrs: {\n 'x': '15',\n 'width': '10',\n 'height': '80',\n 'rx': '3'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'height',\n 'begin': '0s',\n 'dur': '2s',\n 'values': '80;55;33;5;75;23;73;33;12;14;60;80',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('rect', {\n attrs: {\n 'x': '30',\n 'width': '10',\n 'height': '50',\n 'rx': '3'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'height',\n 'begin': '0s',\n 'dur': '1.4s',\n 'values': '50;34;78;23;56;23;34;76;80;54;21;50',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('rect', {\n attrs: {\n 'x': '45',\n 'width': '10',\n 'height': '30',\n 'rx': '3'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'height',\n 'begin': '0s',\n 'dur': '2s',\n 'values': '30;45;13;80;56;72;45;76;34;23;67;30',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerBall',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'stroke': 'currentColor',\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 57 57',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('g', {\n attrs: {\n 'transform': 'translate(1 1)',\n 'stroke-width': '2',\n 'fill': 'none',\n 'fill-rule': 'evenodd'\n }\n }, [\n h('circle', {\n attrs: {\n 'cx': '5',\n 'cy': '50',\n 'r': '5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'cy',\n 'begin': '0s',\n 'dur': '2.2s',\n 'values': '50;5;50;50',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'cx',\n 'begin': '0s',\n 'dur': '2.2s',\n 'values': '5;27;49;5',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '27',\n 'cy': '5',\n 'r': '5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'cy',\n 'begin': '0s',\n 'dur': '2.2s',\n 'from': '5',\n 'to': '5',\n 'values': '5;50;50;5',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'cx',\n 'begin': '0s',\n 'dur': '2.2s',\n 'from': '27',\n 'to': '27',\n 'values': '27;49;5;27',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '49',\n 'cy': '50',\n 'r': '5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'cy',\n 'begin': '0s',\n 'dur': '2.2s',\n 'values': '50;50;5;50',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'cx',\n 'from': '49',\n 'to': '49',\n 'begin': '0s',\n 'dur': '2.2s',\n 'values': '49;5;27;49',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerBars',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'fill': 'currentColor',\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 135 140',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('rect', {\n attrs: {\n 'y': '10',\n 'width': '15',\n 'height': '120',\n 'rx': '6'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'height',\n 'begin': '0.5s',\n 'dur': '1s',\n 'values': '120;110;100;90;80;70;60;50;40;140;120',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'y',\n 'begin': '0.5s',\n 'dur': '1s',\n 'values': '10;15;20;25;30;35;40;45;50;0;10',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('rect', {\n attrs: {\n 'x': '30',\n 'y': '10',\n 'width': '15',\n 'height': '120',\n 'rx': '6'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'height',\n 'begin': '0.25s',\n 'dur': '1s',\n 'values': '120;110;100;90;80;70;60;50;40;140;120',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'y',\n 'begin': '0.25s',\n 'dur': '1s',\n 'values': '10;15;20;25;30;35;40;45;50;0;10',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('rect', {\n attrs: {\n 'x': '60',\n 'width': '15',\n 'height': '140',\n 'rx': '6'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'height',\n 'begin': '0s',\n 'dur': '1s',\n 'values': '120;110;100;90;80;70;60;50;40;140;120',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'y',\n 'begin': '0s',\n 'dur': '1s',\n 'values': '10;15;20;25;30;35;40;45;50;0;10',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('rect', {\n attrs: {\n 'x': '90',\n 'y': '10',\n 'width': '15',\n 'height': '120',\n 'rx': '6'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'height',\n 'begin': '0.25s',\n 'dur': '1s',\n 'values': '120;110;100;90;80;70;60;50;40;140;120',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'y',\n 'begin': '0.25s',\n 'dur': '1s',\n 'values': '10;15;20;25;30;35;40;45;50;0;10',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('rect', {\n attrs: {\n 'x': '120',\n 'y': '10',\n 'width': '15',\n 'height': '120',\n 'rx': '6'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'height',\n 'begin': '0.5s',\n 'dur': '1s',\n 'values': '120;110;100;90;80;70;60;50;40;140;120',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'y',\n 'begin': '0.5s',\n 'dur': '1s',\n 'values': '10;15;20;25;30;35;40;45;50;0;10',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerBox',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': '0 0 100 100',\n 'preserveAspectRatio': 'xMidYMid'\n }\n }, [\n h('rect', {\n attrs: {\n 'x': '25',\n 'y': '25',\n 'width': '50',\n 'height': '50',\n 'fill': 'none',\n 'stroke-width': '4',\n 'stroke': 'currentColor'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'id': 'spinnerBox',\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 50 50',\n 'to': '180 50 50',\n 'dur': '0.5s',\n 'begin': 'rectBox.end'\n }\n })\n ]),\n h('rect', {\n attrs: {\n 'x': '27',\n 'y': '27',\n 'width': '46',\n 'height': '50',\n 'fill': 'currentColor'\n }\n }, [\n h('animate', {\n attrs: {\n 'id': 'rectBox',\n 'attributeName': 'height',\n 'begin': '0s;spinnerBox.end',\n 'dur': '1.3s',\n 'from': '50',\n 'to': '0',\n 'fill': 'freeze'\n }\n })\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerClock',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': '0 0 100 100',\n 'preserveAspectRatio': 'xMidYMid'\n }\n }, [\n h('circle', {\n attrs: {\n 'cx': '50',\n 'cy': '50',\n 'r': '48',\n 'fill': 'none',\n 'stroke-width': '4',\n 'stroke-miterlimit': '10',\n 'stroke': 'currentColor'\n }\n }),\n h('line', {\n attrs: {\n 'stroke-linecap': 'round',\n 'stroke-width': '4',\n 'stroke-miterlimit': '10',\n 'stroke': 'currentColor',\n 'x1': '50',\n 'y1': '50',\n 'x2': '85',\n 'y2': '50.5'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 50 50',\n 'to': '360 50 50',\n 'dur': '2s',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('line', {\n attrs: {\n 'stroke-linecap': 'round',\n 'stroke-width': '4',\n 'stroke-miterlimit': '10',\n 'stroke': 'currentColor',\n 'x1': '50',\n 'y1': '50',\n 'x2': '49.5',\n 'y2': '74'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 50 50',\n 'to': '360 50 50',\n 'dur': '15s',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerComment',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': '0 0 100 100',\n 'preserveAspectRatio': 'xMidYMid'\n }\n }, [\n h('rect', {\n attrs: {\n 'x': '0',\n 'y': '0',\n 'width': '100',\n 'height': '100',\n 'fill': 'none'\n }\n }),\n h('path', {\n attrs: {\n 'd': 'M78,19H22c-6.6,0-12,5.4-12,12v31c0,6.6,5.4,12,12,12h37.2c0.4,3,1.8,5.6,3.7,7.6c2.4,2.5,5.1,4.1,9.1,4 c-1.4-2.1-2-7.2-2-10.3c0-0.4,0-0.8,0-1.3h8c6.6,0,12-5.4,12-12V31C90,24.4,84.6,19,78,19z',\n 'fill': 'currentColor'\n }\n }),\n h('circle', {\n attrs: {\n 'cx': '30',\n 'cy': '47',\n 'r': '5',\n 'fill': '#fff'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'opacity',\n 'from': '0',\n 'to': '1',\n 'values': '0;1;1',\n 'keyTimes': '0;0.2;1',\n 'dur': '1s',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '50',\n 'cy': '47',\n 'r': '5',\n 'fill': '#fff'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'opacity',\n 'from': '0',\n 'to': '1',\n 'values': '0;0;1;1',\n 'keyTimes': '0;0.2;0.4;1',\n 'dur': '1s',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '70',\n 'cy': '47',\n 'r': '5',\n 'fill': '#fff'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'opacity',\n 'from': '0',\n 'to': '1',\n 'values': '0;0;1;1',\n 'keyTimes': '0;0.4;0.6;1',\n 'dur': '1s',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerCube',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': '0 0 100 100',\n 'preserveAspectRatio': 'xMidYMid'\n }\n }, [\n h('rect', {\n attrs: {\n 'x': '0',\n 'y': '0',\n 'width': '100',\n 'height': '100',\n 'fill': 'none'\n }\n }),\n h('g', {\n attrs: {\n 'transform': 'translate(25 25)'\n }\n }, [\n h('rect', {\n attrs: {\n 'x': '-20',\n 'y': '-20',\n 'width': '40',\n 'height': '40',\n 'fill': 'currentColor',\n 'opacity': '0.9'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'scale',\n 'from': '1.5',\n 'to': '1',\n 'repeatCount': 'indefinite',\n 'begin': '0s',\n 'dur': '1s',\n 'calcMode': 'spline',\n 'keySplines': '0.2 0.8 0.2 0.8',\n 'keyTimes': '0;1'\n }\n })\n ])\n ]),\n h('g', {\n attrs: {\n 'transform': 'translate(75 25)'\n }\n }, [\n h('rect', {\n attrs: {\n 'x': '-20',\n 'y': '-20',\n 'width': '40',\n 'height': '40',\n 'fill': 'currentColor',\n 'opacity': '0.8'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'scale',\n 'from': '1.5',\n 'to': '1',\n 'repeatCount': 'indefinite',\n 'begin': '0.1s',\n 'dur': '1s',\n 'calcMode': 'spline',\n 'keySplines': '0.2 0.8 0.2 0.8',\n 'keyTimes': '0;1'\n }\n })\n ])\n ]),\n h('g', {\n attrs: {\n 'transform': 'translate(25 75)'\n }\n }, [\n h('rect', {\n staticClass: 'cube',\n attrs: {\n 'x': '-20',\n 'y': '-20',\n 'width': '40',\n 'height': '40',\n 'fill': 'currentColor',\n 'opacity': '0.7'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'scale',\n 'from': '1.5',\n 'to': '1',\n 'repeatCount': 'indefinite',\n 'begin': '0.3s',\n 'dur': '1s',\n 'calcMode': 'spline',\n 'keySplines': '0.2 0.8 0.2 0.8',\n 'keyTimes': '0;1'\n }\n })\n ])\n ]),\n h('g', {\n attrs: {\n 'transform': 'translate(75 75)'\n }\n }, [\n h('rect', {\n staticClass: 'cube',\n attrs: {\n 'x': '-20',\n 'y': '-20',\n 'width': '40',\n 'height': '40',\n 'fill': 'currentColor',\n 'opacity': '0.6'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'scale',\n 'from': '1.5',\n 'to': '1',\n 'repeatCount': 'indefinite',\n 'begin': '0.2s',\n 'dur': '1s',\n 'calcMode': 'spline',\n 'keySplines': '0.2 0.8 0.2 0.8',\n 'keyTimes': '0;1'\n }\n })\n ])\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerDots',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'fill': 'currentColor',\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 120 30',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('circle', {\n attrs: {\n 'cx': '15',\n 'cy': '15',\n 'r': '15'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'r',\n 'from': '15',\n 'to': '15',\n 'begin': '0s',\n 'dur': '0.8s',\n 'values': '15;9;15',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'from': '1',\n 'to': '1',\n 'begin': '0s',\n 'dur': '0.8s',\n 'values': '1;.5;1',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '60',\n 'cy': '15',\n 'r': '9',\n 'fill-opacity': '.3'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'r',\n 'from': '9',\n 'to': '9',\n 'begin': '0s',\n 'dur': '0.8s',\n 'values': '9;15;9',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'from': '.5',\n 'to': '.5',\n 'begin': '0s',\n 'dur': '0.8s',\n 'values': '.5;1;.5',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '105',\n 'cy': '15',\n 'r': '15'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'r',\n 'from': '15',\n 'to': '15',\n 'begin': '0s',\n 'dur': '0.8s',\n 'values': '15;9;15',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'from': '1',\n 'to': '1',\n 'begin': '0s',\n 'dur': '0.8s',\n 'values': '1;.5;1',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerFacebook',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 100 100',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'preserveAspectRatio': 'xMidYMid'\n }\n }, [\n h('g', {\n attrs: {\n 'transform': 'translate(20 50)'\n }\n }, [\n h('rect', {\n attrs: {\n 'x': '-10',\n 'y': '-30',\n 'width': '20',\n 'height': '60',\n 'fill': 'currentColor',\n 'opacity': '0.6'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'scale',\n 'from': '2',\n 'to': '1',\n 'begin': '0s',\n 'repeatCount': 'indefinite',\n 'dur': '1s',\n 'calcMode': 'spline',\n 'keySplines': '0.1 0.9 0.4 1',\n 'keyTimes': '0;1',\n 'values': '2;1'\n }\n })\n ])\n ]),\n h('g', {\n attrs: {\n 'transform': 'translate(50 50)'\n }\n }, [\n h('rect', {\n attrs: {\n 'x': '-10',\n 'y': '-30',\n 'width': '20',\n 'height': '60',\n 'fill': 'currentColor',\n 'opacity': '0.8'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'scale',\n 'from': '2',\n 'to': '1',\n 'begin': '0.1s',\n 'repeatCount': 'indefinite',\n 'dur': '1s',\n 'calcMode': 'spline',\n 'keySplines': '0.1 0.9 0.4 1',\n 'keyTimes': '0;1',\n 'values': '2;1'\n }\n })\n ])\n ]),\n h('g', {\n attrs: {\n 'transform': 'translate(80 50)'\n }\n }, [\n h('rect', {\n attrs: {\n 'x': '-10',\n 'y': '-30',\n 'width': '20',\n 'height': '60',\n 'fill': 'currentColor',\n 'opacity': '0.9'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'scale',\n 'from': '2',\n 'to': '1',\n 'begin': '0.2s',\n 'repeatCount': 'indefinite',\n 'dur': '1s',\n 'calcMode': 'spline',\n 'keySplines': '0.1 0.9 0.4 1',\n 'keyTimes': '0;1',\n 'values': '2;1'\n }\n })\n ])\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerGears',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 100 100',\n 'preserveAspectRatio': 'xMidYMid',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('g', {\n attrs: {\n 'transform': 'translate(-20,-20)'\n }\n }, [\n h('path', {\n attrs: {\n 'd': 'M79.9,52.6C80,51.8,80,50.9,80,50s0-1.8-0.1-2.6l-5.1-0.4c-0.3-2.4-0.9-4.6-1.8-6.7l4.2-2.9c-0.7-1.6-1.6-3.1-2.6-4.5 L70,35c-1.4-1.9-3.1-3.5-4.9-4.9l2.2-4.6c-1.4-1-2.9-1.9-4.5-2.6L59.8,27c-2.1-0.9-4.4-1.5-6.7-1.8l-0.4-5.1C51.8,20,50.9,20,50,20 s-1.8,0-2.6,0.1l-0.4,5.1c-2.4,0.3-4.6,0.9-6.7,1.8l-2.9-4.1c-1.6,0.7-3.1,1.6-4.5,2.6l2.1,4.6c-1.9,1.4-3.5,3.1-5,4.9l-4.5-2.1 c-1,1.4-1.9,2.9-2.6,4.5l4.1,2.9c-0.9,2.1-1.5,4.4-1.8,6.8l-5,0.4C20,48.2,20,49.1,20,50s0,1.8,0.1,2.6l5,0.4 c0.3,2.4,0.9,4.7,1.8,6.8l-4.1,2.9c0.7,1.6,1.6,3.1,2.6,4.5l4.5-2.1c1.4,1.9,3.1,3.5,5,4.9l-2.1,4.6c1.4,1,2.9,1.9,4.5,2.6l2.9-4.1 c2.1,0.9,4.4,1.5,6.7,1.8l0.4,5.1C48.2,80,49.1,80,50,80s1.8,0,2.6-0.1l0.4-5.1c2.3-0.3,4.6-0.9,6.7-1.8l2.9,4.2 c1.6-0.7,3.1-1.6,4.5-2.6L65,69.9c1.9-1.4,3.5-3,4.9-4.9l4.6,2.2c1-1.4,1.9-2.9,2.6-4.5L73,59.8c0.9-2.1,1.5-4.4,1.8-6.7L79.9,52.6 z M50,65c-8.3,0-15-6.7-15-15c0-8.3,6.7-15,15-15s15,6.7,15,15C65,58.3,58.3,65,50,65z',\n 'fill': 'currentColor'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '90 50 50',\n 'to': '0 50 50',\n 'dur': '1s',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ]),\n h('g', {\n attrs: {\n 'transform': 'translate(20,20) rotate(15 50 50)'\n }\n }, [\n h('path', {\n attrs: {\n 'd': 'M79.9,52.6C80,51.8,80,50.9,80,50s0-1.8-0.1-2.6l-5.1-0.4c-0.3-2.4-0.9-4.6-1.8-6.7l4.2-2.9c-0.7-1.6-1.6-3.1-2.6-4.5 L70,35c-1.4-1.9-3.1-3.5-4.9-4.9l2.2-4.6c-1.4-1-2.9-1.9-4.5-2.6L59.8,27c-2.1-0.9-4.4-1.5-6.7-1.8l-0.4-5.1C51.8,20,50.9,20,50,20 s-1.8,0-2.6,0.1l-0.4,5.1c-2.4,0.3-4.6,0.9-6.7,1.8l-2.9-4.1c-1.6,0.7-3.1,1.6-4.5,2.6l2.1,4.6c-1.9,1.4-3.5,3.1-5,4.9l-4.5-2.1 c-1,1.4-1.9,2.9-2.6,4.5l4.1,2.9c-0.9,2.1-1.5,4.4-1.8,6.8l-5,0.4C20,48.2,20,49.1,20,50s0,1.8,0.1,2.6l5,0.4 c0.3,2.4,0.9,4.7,1.8,6.8l-4.1,2.9c0.7,1.6,1.6,3.1,2.6,4.5l4.5-2.1c1.4,1.9,3.1,3.5,5,4.9l-2.1,4.6c1.4,1,2.9,1.9,4.5,2.6l2.9-4.1 c2.1,0.9,4.4,1.5,6.7,1.8l0.4,5.1C48.2,80,49.1,80,50,80s1.8,0,2.6-0.1l0.4-5.1c2.3-0.3,4.6-0.9,6.7-1.8l2.9,4.2 c1.6-0.7,3.1-1.6,4.5-2.6L65,69.9c1.9-1.4,3.5-3,4.9-4.9l4.6,2.2c1-1.4,1.9-2.9,2.6-4.5L73,59.8c0.9-2.1,1.5-4.4,1.8-6.7L79.9,52.6 z M50,65c-8.3,0-15-6.7-15-15c0-8.3,6.7-15,15-15s15,6.7,15,15C65,58.3,58.3,65,50,65z',\n 'fill': 'currentColor'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 50 50',\n 'to': '90 50 50',\n 'dur': '1s',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerGrid',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'fill': 'currentColor',\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 105 105',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('circle', {\n attrs: {\n 'cx': '12.5',\n 'cy': '12.5',\n 'r': '12.5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'begin': '0s',\n 'dur': '1s',\n 'values': '1;.2;1',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '12.5',\n 'cy': '52.5',\n 'r': '12.5',\n 'fill-opacity': '.5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'begin': '100ms',\n 'dur': '1s',\n 'values': '1;.2;1',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '52.5',\n 'cy': '12.5',\n 'r': '12.5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'begin': '300ms',\n 'dur': '1s',\n 'values': '1;.2;1',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '52.5',\n 'cy': '52.5',\n 'r': '12.5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'begin': '600ms',\n 'dur': '1s',\n 'values': '1;.2;1',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '92.5',\n 'cy': '12.5',\n 'r': '12.5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'begin': '800ms',\n 'dur': '1s',\n 'values': '1;.2;1',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '92.5',\n 'cy': '52.5',\n 'r': '12.5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'begin': '400ms',\n 'dur': '1s',\n 'values': '1;.2;1',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '12.5',\n 'cy': '92.5',\n 'r': '12.5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'begin': '700ms',\n 'dur': '1s',\n 'values': '1;.2;1',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '52.5',\n 'cy': '92.5',\n 'r': '12.5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'begin': '500ms',\n 'dur': '1s',\n 'values': '1;.2;1',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '92.5',\n 'cy': '92.5',\n 'r': '12.5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'begin': '200ms',\n 'dur': '1s',\n 'values': '1;.2;1',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerHearts',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'fill': 'currentColor',\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 140 64',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('path', {\n attrs: {\n 'd': 'M30.262 57.02L7.195 40.723c-5.84-3.976-7.56-12.06-3.842-18.063 3.715-6 11.467-7.65 17.306-3.68l4.52 3.76 2.6-5.274c3.716-6.002 11.47-7.65 17.304-3.68 5.84 3.97 7.56 12.054 3.842 18.062L34.49 56.118c-.897 1.512-2.793 1.915-4.228.9z',\n 'fill-opacity': '.5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'begin': '0s',\n 'dur': '1.4s',\n 'values': '0.5;1;0.5',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('path', {\n attrs: {\n 'd': 'M105.512 56.12l-14.44-24.272c-3.716-6.008-1.996-14.093 3.843-18.062 5.835-3.97 13.588-2.322 17.306 3.68l2.6 5.274 4.52-3.76c5.84-3.97 13.593-2.32 17.308 3.68 3.718 6.003 1.998 14.088-3.842 18.064L109.74 57.02c-1.434 1.014-3.33.61-4.228-.9z',\n 'fill-opacity': '.5'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'fill-opacity',\n 'begin': '0.7s',\n 'dur': '1.4s',\n 'values': '0.5;1;0.5',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('path', {\n attrs: {\n 'd': 'M67.408 57.834l-23.01-24.98c-5.864-6.15-5.864-16.108 0-22.248 5.86-6.14 15.37-6.14 21.234 0L70 16.168l4.368-5.562c5.863-6.14 15.375-6.14 21.235 0 5.863 6.14 5.863 16.098 0 22.247l-23.007 24.98c-1.43 1.556-3.757 1.556-5.188 0z'\n }\n })\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerHourglass',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 100 100',\n 'preserveAspectRatio': 'xMidYMid',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('g', [\n h('path', {\n staticClass: 'glass',\n attrs: {\n 'fill': 'none',\n 'stroke': 'currentColor',\n 'stroke-width': '5',\n 'stroke-miterlimit': '10',\n 'd': 'M58.4,51.7c-0.9-0.9-1.4-2-1.4-2.3s0.5-0.4,1.4-1.4 C70.8,43.8,79.8,30.5,80,15.5H70H30H20c0.2,15,9.2,28.1,21.6,32.3c0.9,0.9,1.4,1.2,1.4,1.5s-0.5,1.6-1.4,2.5 C29.2,56.1,20.2,69.5,20,85.5h10h40h10C79.8,69.5,70.8,55.9,58.4,51.7z'\n }\n }),\n h('clipPath', {\n attrs: {\n 'id': 'uil-hourglass-clip1'\n }\n }, [\n h('rect', {\n staticClass: 'clip',\n attrs: {\n 'x': '15',\n 'y': '20',\n 'width': '70',\n 'height': '25'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'height',\n 'from': '25',\n 'to': '0',\n 'dur': '1s',\n 'repeatCount': 'indefinite',\n 'values': '25;0;0',\n 'keyTimes': '0;0.5;1'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'y',\n 'from': '20',\n 'to': '45',\n 'dur': '1s',\n 'repeatCount': 'indefinite',\n 'values': '20;45;45',\n 'keyTimes': '0;0.5;1'\n }\n })\n ])\n ]),\n h('clipPath', {\n attrs: {\n 'id': 'uil-hourglass-clip2'\n }\n }, [\n h('rect', {\n staticClass: 'clip',\n attrs: {\n 'x': '15',\n 'y': '55',\n 'width': '70',\n 'height': '25'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'height',\n 'from': '0',\n 'to': '25',\n 'dur': '1s',\n 'repeatCount': 'indefinite',\n 'values': '0;25;25',\n 'keyTimes': '0;0.5;1'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'y',\n 'from': '80',\n 'to': '55',\n 'dur': '1s',\n 'repeatCount': 'indefinite',\n 'values': '80;55;55',\n 'keyTimes': '0;0.5;1'\n }\n })\n ])\n ]),\n h('path', {\n staticClass: 'sand',\n attrs: {\n 'd': 'M29,23c3.1,11.4,11.3,19.5,21,19.5S67.9,34.4,71,23H29z',\n 'clip-path': 'url(#uil-hourglass-clip1)',\n 'fill': 'currentColor'\n }\n }),\n h('path', {\n staticClass: 'sand',\n attrs: {\n 'd': 'M71.6,78c-3-11.6-11.5-20-21.5-20s-18.5,8.4-21.5,20H71.6z',\n 'clip-path': 'url(#uil-hourglass-clip2)',\n 'fill': 'currentColor'\n }\n }),\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 50 50',\n 'to': '180 50 50',\n 'repeatCount': 'indefinite',\n 'dur': '1s',\n 'values': '0 50 50;0 50 50;180 50 50',\n 'keyTimes': '0;0.7;1'\n }\n })\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerInfinity',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 100 100',\n 'preserveAspectRatio': 'xMidYMid'\n }\n }, [\n h('path', {\n attrs: {\n 'd': 'M24.3,30C11.4,30,5,43.3,5,50s6.4,20,19.3,20c19.3,0,32.1-40,51.4-40C88.6,30,95,43.3,95,50s-6.4,20-19.3,20C56.4,70,43.6,30,24.3,30z',\n 'fill': 'none',\n 'stroke': 'currentColor',\n 'stroke-width': '8',\n 'stroke-dasharray': '10.691205342610678 10.691205342610678',\n 'stroke-dashoffset': '0'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-dashoffset',\n 'from': '0',\n 'to': '21.382410685221355',\n 'begin': '0',\n 'dur': '2s',\n 'repeatCount': 'indefinite',\n 'fill': 'freeze'\n }\n })\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerIos',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'stroke': 'currentColor',\n 'fill': 'currentColor',\n 'viewBox': '0 0 64 64'\n }\n }, [\n h('g', {\n attrs: {\n 'stroke-width': '4',\n 'stroke-linecap': 'round'\n }\n }, [\n h('line', {\n attrs: {\n 'y1': '17',\n 'y2': '29',\n 'transform': 'translate(32,32) rotate(180)'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'dur': '750ms',\n 'values': '1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('line', {\n attrs: {\n 'y1': '17',\n 'y2': '29',\n 'transform': 'translate(32,32) rotate(210)'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'dur': '750ms',\n 'values': '0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('line', {\n attrs: {\n 'y1': '17',\n 'y2': '29',\n 'transform': 'translate(32,32) rotate(240)'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'dur': '750ms',\n 'values': '.1;0;1;.85;.7;.65;.55;.45;.35;.25;.15;.1',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('line', {\n attrs: {\n 'y1': '17',\n 'y2': '29',\n 'transform': 'translate(32,32) rotate(270)'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'dur': '750ms',\n 'values': '.15;.1;0;1;.85;.7;.65;.55;.45;.35;.25;.15',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('line', {\n attrs: {\n 'y1': '17',\n 'y2': '29',\n 'transform': 'translate(32,32) rotate(300)'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'dur': '750ms',\n 'values': '.25;.15;.1;0;1;.85;.7;.65;.55;.45;.35;.25',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('line', {\n attrs: {\n 'y1': '17',\n 'y2': '29',\n 'transform': 'translate(32,32) rotate(330)'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'dur': '750ms',\n 'values': '.35;.25;.15;.1;0;1;.85;.7;.65;.55;.45;.35',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('line', {\n attrs: {\n 'y1': '17',\n 'y2': '29',\n 'transform': 'translate(32,32) rotate(0)'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'dur': '750ms',\n 'values': '.45;.35;.25;.15;.1;0;1;.85;.7;.65;.55;.45',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('line', {\n attrs: {\n 'y1': '17',\n 'y2': '29',\n 'transform': 'translate(32,32) rotate(30)'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'dur': '750ms',\n 'values': '.55;.45;.35;.25;.15;.1;0;1;.85;.7;.65;.55',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('line', {\n attrs: {\n 'y1': '17',\n 'y2': '29',\n 'transform': 'translate(32,32) rotate(60)'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'dur': '750ms',\n 'values': '.65;.55;.45;.35;.25;.15;.1;0;1;.85;.7;.65',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('line', {\n attrs: {\n 'y1': '17',\n 'y2': '29',\n 'transform': 'translate(32,32) rotate(90)'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'dur': '750ms',\n 'values': '.7;.65;.55;.45;.35;.25;.15;.1;0;1;.85;.7',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('line', {\n attrs: {\n 'y1': '17',\n 'y2': '29',\n 'transform': 'translate(32,32) rotate(120)'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'dur': '750ms',\n 'values': '.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1;.85',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('line', {\n attrs: {\n 'y1': '17',\n 'y2': '29',\n 'transform': 'translate(32,32) rotate(150)'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'dur': '750ms',\n 'values': '1;.85;.7;.65;.55;.45;.35;.25;.15;.1;0;1',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerOrbit',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': '0 0 100 100',\n 'preserveAspectRatio': 'xMidYMid'\n }\n }, [\n h('circle', {\n attrs: {\n 'cx': '50',\n 'cy': '50',\n 'r': '44',\n 'fill': 'none',\n 'stroke-width': '4',\n 'stroke-opacity': '.5',\n 'stroke': 'currentColor'\n }\n }),\n h('circle', {\n attrs: {\n 'cx': '8',\n 'cy': '54',\n 'r': '6',\n 'fill': 'currentColor',\n 'stroke-width': '3',\n 'stroke': 'currentColor'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 50 48',\n 'to': '360 50 52',\n 'dur': '2s',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerOval',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'stroke': 'currentColor',\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 38 38',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('g', {\n attrs: {\n 'transform': 'translate(1 1)',\n 'stroke-width': '2',\n 'fill': 'none',\n 'fill-rule': 'evenodd'\n }\n }, [\n h('circle', {\n attrs: {\n 'stroke-opacity': '.5',\n 'cx': '18',\n 'cy': '18',\n 'r': '18'\n }\n }),\n h('path', {\n attrs: {\n 'd': 'M36 18c0-9.94-8.06-18-18-18'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 18 18',\n 'to': '360 18 18',\n 'dur': '1s',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerPie',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 100 100',\n 'preserveAspectRatio': 'xMidYMid',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('path', {\n attrs: {\n 'd': 'M0 50A50 50 0 0 1 50 0L50 50L0 50',\n 'fill': 'currentColor',\n 'opacity': '0.5'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 50 50',\n 'to': '360 50 50',\n 'dur': '0.8s',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('path', {\n attrs: {\n 'd': 'M50 0A50 50 0 0 1 100 50L50 50L50 0',\n 'fill': 'currentColor',\n 'opacity': '0.5'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 50 50',\n 'to': '360 50 50',\n 'dur': '1.6s',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('path', {\n attrs: {\n 'd': 'M100 50A50 50 0 0 1 50 100L50 50L100 50',\n 'fill': 'currentColor',\n 'opacity': '0.5'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 50 50',\n 'to': '360 50 50',\n 'dur': '2.4s',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('path', {\n attrs: {\n 'd': 'M50 100A50 50 0 0 1 0 50L50 50L50 100',\n 'fill': 'currentColor',\n 'opacity': '0.5'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 50 50',\n 'to': '360 50 50',\n 'dur': '3.2s',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerPuff',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'stroke': 'currentColor',\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 44 44',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('g', {\n attrs: {\n 'fill': 'none',\n 'fill-rule': 'evenodd',\n 'stroke-width': '2'\n }\n }, [\n h('circle', {\n attrs: {\n 'cx': '22',\n 'cy': '22',\n 'r': '1'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'r',\n 'begin': '0s',\n 'dur': '1.8s',\n 'values': '1; 20',\n 'calcMode': 'spline',\n 'keyTimes': '0; 1',\n 'keySplines': '0.165, 0.84, 0.44, 1',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'begin': '0s',\n 'dur': '1.8s',\n 'values': '1; 0',\n 'calcMode': 'spline',\n 'keyTimes': '0; 1',\n 'keySplines': '0.3, 0.61, 0.355, 1',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '22',\n 'cy': '22',\n 'r': '1'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'r',\n 'begin': '-0.9s',\n 'dur': '1.8s',\n 'values': '1; 20',\n 'calcMode': 'spline',\n 'keyTimes': '0; 1',\n 'keySplines': '0.165, 0.84, 0.44, 1',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'begin': '-0.9s',\n 'dur': '1.8s',\n 'values': '1; 0',\n 'calcMode': 'spline',\n 'keyTimes': '0; 1',\n 'keySplines': '0.3, 0.61, 0.355, 1',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerRadio',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 100 100',\n 'preserveAspectRatio': 'xMidYMid',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('g', {\n attrs: {\n 'transform': 'scale(0.55)'\n }\n }, [\n h('circle', {\n attrs: {\n 'cx': '30',\n 'cy': '150',\n 'r': '30',\n 'fill': 'currentColor'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'opacity',\n 'from': '0',\n 'to': '1',\n 'dur': '1s',\n 'begin': '0',\n 'repeatCount': 'indefinite',\n 'keyTimes': '0;0.5;1',\n 'values': '0;1;1'\n }\n })\n ]),\n h('path', {\n attrs: {\n 'd': 'M90,150h30c0-49.7-40.3-90-90-90v30C63.1,90,90,116.9,90,150z',\n 'fill': 'currentColor'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'opacity',\n 'from': '0',\n 'to': '1',\n 'dur': '1s',\n 'begin': '0.1',\n 'repeatCount': 'indefinite',\n 'keyTimes': '0;0.5;1',\n 'values': '0;1;1'\n }\n })\n ]),\n h('path', {\n attrs: {\n 'd': 'M150,150h30C180,67.2,112.8,0,30,0v30C96.3,30,150,83.7,150,150z',\n 'fill': 'currentColor'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'opacity',\n 'from': '0',\n 'to': '1',\n 'dur': '1s',\n 'begin': '0.2',\n 'repeatCount': 'indefinite',\n 'keyTimes': '0;0.5;1',\n 'values': '0;1;1'\n }\n })\n ])\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerRings',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'stroke': 'currentColor',\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 45 45',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('g', {\n attrs: {\n 'fill': 'none',\n 'fill-rule': 'evenodd',\n 'transform': 'translate(1 1)',\n 'stroke-width': '2'\n }\n }, [\n h('circle', {\n attrs: {\n 'cx': '22',\n 'cy': '22',\n 'r': '6'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'r',\n 'begin': '1.5s',\n 'dur': '3s',\n 'values': '6;22',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'begin': '1.5s',\n 'dur': '3s',\n 'values': '1;0',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-width',\n 'begin': '1.5s',\n 'dur': '3s',\n 'values': '2;0',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '22',\n 'cy': '22',\n 'r': '6'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'r',\n 'begin': '3s',\n 'dur': '3s',\n 'values': '6;22',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-opacity',\n 'begin': '3s',\n 'dur': '3s',\n 'values': '1;0',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n }),\n h('animate', {\n attrs: {\n 'attributeName': 'stroke-width',\n 'begin': '3s',\n 'dur': '3s',\n 'values': '2;0',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'cx': '22',\n 'cy': '22',\n 'r': '8'\n }\n }, [\n h('animate', {\n attrs: {\n 'attributeName': 'r',\n 'begin': '0s',\n 'dur': '1.5s',\n 'values': '6;1;2;3;4;5;6',\n 'calcMode': 'linear',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n ])\n }\n})\n","import Vue from 'vue'\n\nimport mixin from './spinner-mixin.js'\n\nexport default Vue.extend({\n name: 'QSpinnerTail',\n\n mixins: [mixin],\n\n render (h) {\n return h('svg', {\n staticClass: 'q-spinner',\n class: this.classes,\n on: { ...this.qListeners },\n attrs: {\n focusable: 'false' /* needed for IE11 */,\n 'width': this.cSize,\n 'height': this.cSize,\n 'viewBox': '0 0 38 38',\n 'xmlns': 'http://www.w3.org/2000/svg'\n }\n }, [\n h('defs', [\n h('linearGradient', {\n attrs: {\n 'x1': '8.042%',\n 'y1': '0%',\n 'x2': '65.682%',\n 'y2': '23.865%',\n 'id': 'a'\n }\n }, [\n h('stop', {\n attrs: {\n 'stop-color': 'currentColor',\n 'stop-opacity': '0',\n 'offset': '0%'\n }\n }),\n h('stop', {\n attrs: {\n 'stop-color': 'currentColor',\n 'stop-opacity': '.631',\n 'offset': '63.146%'\n }\n }),\n h('stop', {\n attrs: {\n 'stop-color': 'currentColor',\n 'offset': '100%'\n }\n })\n ])\n ]),\n h('g', {\n attrs: {\n 'transform': 'translate(1 1)',\n 'fill': 'none',\n 'fill-rule': 'evenodd'\n }\n }, [\n h('path', {\n attrs: {\n 'd': 'M36 18c0-9.94-8.06-18-18-18',\n 'stroke': 'url(#a)',\n 'stroke-width': '2'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 18 18',\n 'to': '360 18 18',\n 'dur': '0.9s',\n 'repeatCount': 'indefinite'\n }\n })\n ]),\n h('circle', {\n attrs: {\n 'fill': 'currentColor',\n 'cx': '36',\n 'cy': '18',\n 'r': '1'\n }\n }, [\n h('animateTransform', {\n attrs: {\n 'attributeName': 'transform',\n 'type': 'rotate',\n 'from': '0 18 18',\n 'to': '360 18 18',\n 'dur': '0.9s',\n 'repeatCount': 'indefinite'\n }\n })\n ])\n ])\n ])\n }\n})\n","import QSpinner from './QSpinner.js'\n\nimport QSpinnerAudio from './QSpinnerAudio.js'\nimport QSpinnerBall from './QSpinnerBall.js'\nimport QSpinnerBars from './QSpinnerBars.js'\nimport QSpinnerBox from './QSpinnerBox.js'\nimport QSpinnerClock from './QSpinnerClock.js'\nimport QSpinnerComment from './QSpinnerComment.js'\nimport QSpinnerCube from './QSpinnerCube.js'\nimport QSpinnerDots from './QSpinnerDots.js'\nimport QSpinnerFacebook from './QSpinnerFacebook.js'\nimport QSpinnerGears from './QSpinnerGears.js'\nimport QSpinnerGrid from './QSpinnerGrid.js'\nimport QSpinnerHearts from './QSpinnerHearts.js'\nimport QSpinnerHourglass from './QSpinnerHourglass.js'\nimport QSpinnerInfinity from './QSpinnerInfinity.js'\nimport QSpinnerIos from './QSpinnerIos.js'\nimport QSpinnerOrbit from './QSpinnerOrbit.js'\nimport QSpinnerOval from './QSpinnerOval.js'\nimport QSpinnerPie from './QSpinnerPie.js'\nimport QSpinnerPuff from './QSpinnerPuff.js'\nimport QSpinnerRadio from './QSpinnerRadio.js'\nimport QSpinnerRings from './QSpinnerRings.js'\nimport QSpinnerTail from './QSpinnerTail.js'\n\nexport {\n QSpinner,\n\n QSpinnerAudio,\n QSpinnerBall,\n QSpinnerBars,\n QSpinnerBox,\n QSpinnerClock,\n QSpinnerComment,\n QSpinnerCube,\n QSpinnerDots,\n QSpinnerFacebook,\n QSpinnerGears,\n QSpinnerGrid,\n QSpinnerHearts,\n QSpinnerHourglass,\n QSpinnerInfinity,\n QSpinnerIos,\n QSpinnerOrbit,\n QSpinnerOval,\n QSpinnerPie,\n QSpinnerPuff,\n QSpinnerRadio,\n QSpinnerRings,\n QSpinnerTail\n}\n","import Vue from 'vue'\n\nimport TouchPan from '../../directives/TouchPan.js'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot, mergeSlot } from '../../utils/private/slot.js'\nimport { stop } from '../../utils/event.js'\nimport cache from '../../utils/private/cache.js'\n\nexport default Vue.extend({\n name: 'QSplitter',\n\n mixins: [ DarkMixin, ListenersMixin ],\n\n directives: {\n TouchPan\n },\n\n props: {\n value: {\n type: Number,\n required: true\n },\n reverse: Boolean,\n unit: {\n type: String,\n default: '%',\n validator: v => [ '%', 'px' ].includes(v)\n },\n\n limits: {\n type: Array,\n validator: v => {\n if (v.length !== 2) return false\n if (typeof v[0] !== 'number' || typeof v[1] !== 'number') return false\n return v[0] >= 0 && v[0] <= v[1]\n }\n },\n\n emitImmediately: Boolean,\n\n horizontal: Boolean,\n disable: Boolean,\n\n beforeClass: [Array, String, Object],\n afterClass: [Array, String, Object],\n\n separatorClass: [Array, String, Object],\n separatorStyle: [Array, String, Object]\n },\n\n watch: {\n value: {\n immediate: true,\n handler (v) {\n this.__normalize(v, this.computedLimits)\n }\n },\n\n limits: {\n deep: true,\n handler () {\n this.$nextTick(() => {\n this.__normalize(this.value, this.computedLimits)\n })\n }\n }\n },\n\n computed: {\n classes () {\n return (this.horizontal === true ? 'column' : 'row') +\n ` q-splitter--${this.horizontal === true ? 'horizontal' : 'vertical'}` +\n ` q-splitter--${this.disable === true ? 'disabled' : 'workable'}` +\n (this.isDark === true ? ' q-splitter--dark' : '')\n },\n\n prop () {\n return this.horizontal === true ? 'height' : 'width'\n },\n\n side () {\n return this.reverse !== true ? 'before' : 'after'\n },\n\n computedLimits () {\n return this.limits !== void 0\n ? this.limits\n : (this.unit === '%' ? [ 10, 90 ] : [ 50, Infinity ])\n },\n\n styles () {\n return {\n [this.side]: {\n [this.prop]: this.__getCSSValue(this.value)\n }\n }\n },\n\n separatorDirectives () {\n if (this.disable !== true) {\n return [{\n name: 'touch-pan',\n value: this.__pan,\n modifiers: {\n [ this.horizontal === true ? 'vertical' : 'horizontal' ]: true,\n prevent: true,\n stop: true,\n mouse: true,\n mouseAllDir: true\n }\n }]\n }\n }\n },\n\n methods: {\n __pan (evt) {\n if (evt.isFirst === true) {\n const size = this.$el.getBoundingClientRect()[this.prop]\n\n this.__dir = this.horizontal === true ? 'up' : 'left'\n this.__maxValue = this.unit === '%' ? 100 : size\n this.__value = Math.min(this.__maxValue, this.computedLimits[1], Math.max(this.computedLimits[0], this.value))\n this.__multiplier = (this.reverse !== true ? 1 : -1) *\n (this.horizontal === true ? 1 : (this.$q.lang.rtl === true ? -1 : 1)) *\n (this.unit === '%' ? (size === 0 ? 0 : 100 / size) : 1)\n\n this.$el.classList.add('q-splitter--active')\n return\n }\n\n if (evt.isFinal === true) {\n if (this.__normalized !== this.value) {\n this.$emit('input', this.__normalized)\n }\n\n this.$el.classList.remove('q-splitter--active')\n return\n }\n\n const val = this.__value +\n this.__multiplier *\n (evt.direction === this.__dir ? -1 : 1) *\n evt.distance[this.horizontal === true ? 'y' : 'x']\n\n this.__normalized = Math.min(this.__maxValue, this.computedLimits[1], Math.max(this.computedLimits[0], val))\n\n this.$refs[this.side].style[this.prop] = this.__getCSSValue(this.__normalized)\n\n if (this.emitImmediately === true && this.value !== this.__normalized) {\n this.$emit('input', this.__normalized)\n }\n },\n\n __normalize (val, limits) {\n if (val < limits[0]) {\n this.$emit('input', limits[0])\n }\n else if (val > limits[1]) {\n this.$emit('input', limits[1])\n }\n },\n\n __getCSSValue (value) {\n return (this.unit === '%' ? value : Math.round(value)) + this.unit\n }\n },\n\n render (h) {\n const attrs = this.disable === true ? { 'aria-disabled': 'true' } : void 0\n const child = [\n h('div', {\n ref: 'before',\n staticClass: 'q-splitter__panel q-splitter__before' + (this.reverse === true ? ' col' : ''),\n style: this.styles.before,\n class: this.beforeClass,\n on: cache(this, 'stop', { input: stop })\n }, slot(this, 'before')),\n\n h('div', {\n staticClass: 'q-splitter__separator',\n style: this.separatorStyle,\n class: this.separatorClass,\n attrs\n }, [\n h('div', {\n staticClass: 'absolute-full q-splitter__separator-area',\n directives: this.separatorDirectives\n }, slot(this, 'separator'))\n ]),\n\n h('div', {\n ref: 'after',\n staticClass: 'q-splitter__panel q-splitter__after' + (this.reverse === true ? '' : ' col'),\n style: this.styles.after,\n class: this.afterClass,\n on: cache(this, 'stop', { input: stop })\n }, slot(this, 'after'))\n ]\n\n return h('div', {\n staticClass: 'q-splitter no-wrap',\n class: this.classes,\n on: { ...this.qListeners }\n }, mergeSlot(child, this, 'default'))\n }\n})\n","import QSplitter from './QSplitter.js'\n\nexport {\n QSplitter\n}\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\nimport Ripple from '../../directives/Ripple.js'\n\nimport AttrsMixin from '../../mixins/attrs.js'\n\nimport cache from '../../utils/private/cache.js'\n\nexport default Vue.extend({\n name: 'StepHeader',\n\n mixins: [ AttrsMixin ],\n\n directives: {\n Ripple\n },\n\n props: {\n stepper: {},\n step: {}\n },\n\n computed: {\n isActive () {\n return this.stepper.value === this.step.name\n },\n\n isDisable () {\n const opt = this.step.disable\n return opt === true || opt === ''\n },\n\n isError () {\n const opt = this.step.error\n return opt === true || opt === ''\n },\n\n isDone () {\n const opt = this.step.done\n return this.isDisable === false && (opt === true || opt === '')\n },\n\n headerNav () {\n const\n opt = this.step.headerNav,\n nav = opt === true || opt === '' || opt === void 0\n\n return this.isDisable === false &&\n this.stepper.headerNav &&\n nav\n },\n\n hasPrefix () {\n return this.step.prefix &&\n (this.isActive === false || this.stepper.activeIcon === 'none') &&\n (this.isError === false || this.stepper.errorIcon === 'none') &&\n (this.isDone === false || this.stepper.doneIcon === 'none')\n },\n\n icon () {\n const defaultIcon = this.step.icon || this.stepper.inactiveIcon\n\n if (this.isActive === true) {\n const icon = this.step.activeIcon || this.stepper.activeIcon\n return icon === 'none'\n ? defaultIcon\n : icon || this.$q.iconSet.stepper.active\n }\n\n if (this.isError === true) {\n const icon = this.step.errorIcon || this.stepper.errorIcon\n return icon === 'none'\n ? defaultIcon\n : icon || this.$q.iconSet.stepper.error\n }\n\n if (this.isDisable === false && this.isDone === true) {\n const icon = this.step.doneIcon || this.stepper.doneIcon\n return icon === 'none'\n ? defaultIcon\n : icon || this.$q.iconSet.stepper.done\n }\n\n return defaultIcon\n },\n\n color () {\n const errorColor = this.isError === true\n ? this.step.errorColor || this.stepper.errorColor\n : void 0\n\n if (this.isActive === true) {\n const color = this.step.activeColor || this.stepper.activeColor || this.step.color\n return color !== void 0\n ? color\n : errorColor\n }\n if (errorColor !== void 0) {\n return errorColor\n }\n if (this.isDisable === false && this.isDone === true) {\n return this.step.doneColor || this.stepper.doneColor || this.step.color || this.stepper.inactiveColor\n }\n\n return this.step.color || this.stepper.inactiveColor\n },\n\n classes () {\n return 'q-stepper__tab col-grow flex items-center no-wrap relative-position' +\n (this.color !== void 0 ? ` text-${this.color}` : '') +\n (this.isError === true\n ? ' q-stepper__tab--error q-stepper__tab--error-with-' + (this.hasPrefix === true ? 'prefix' : 'icon')\n : '') +\n (this.isActive === true ? ' q-stepper__tab--active' : '') +\n (this.isDone === true ? ' q-stepper__tab--done' : '') +\n (this.headerNav === true ? ' q-stepper__tab--navigation q-focusable q-hoverable' : '') +\n (this.isDisable === true ? ' q-stepper__tab--disabled' : '')\n }\n },\n\n methods: {\n activate () {\n this.$refs.blurTarget !== void 0 && this.$refs.blurTarget.focus()\n this.isActive === false && this.stepper.goTo(this.step.name)\n },\n\n keyup (e) {\n if (e.keyCode === 13 && this.isActive === false) {\n this.stepper.goTo(this.step.name)\n }\n }\n },\n\n render (h) {\n const data = { class: this.classes }\n\n if (this.stepper.headerNav === true) {\n data.directives = [{\n name: 'ripple',\n value: this.headerNav\n }]\n }\n\n this.headerNav === true && Object.assign(data, {\n on: cache(this, 'headnavon', {\n click: this.activate,\n keyup: this.keyup\n }),\n attrs: this.isDisable === true\n ? { tabindex: -1, 'aria-disabled': 'true' }\n : { tabindex: this.qAttrs.tabindex || 0 }\n })\n\n const child = [\n h('div', { staticClass: 'q-focus-helper', attrs: { tabindex: -1 }, ref: 'blurTarget' }),\n\n h('div', { staticClass: 'q-stepper__dot row flex-center q-stepper__line relative-position' }, [\n h('span', { staticClass: 'row flex-center' }, [\n this.hasPrefix === true\n ? this.step.prefix\n : h(QIcon, { props: { name: this.icon } })\n ])\n ])\n ]\n\n if (this.step.title !== void 0 && this.step.title !== null) {\n const content = [\n h('div', { staticClass: 'q-stepper__title' }, [ this.step.title ])\n ]\n\n if (this.step.caption !== void 0 && this.step.caption !== null) {\n content.push(\n h('div', { staticClass: 'q-stepper__caption' }, [ this.step.caption ])\n )\n }\n\n child.push(\n h('div', {\n staticClass: 'q-stepper__label q-stepper__line relative-position'\n }, content)\n )\n }\n\n return h('div', data, child)\n }\n})\n","import Vue from 'vue'\n\nimport QSlideTransition from '../slide-transition/QSlideTransition.js'\nimport StepHeader from './StepHeader.js'\n\nimport { PanelChildMixin } from '../../mixins/panel.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nconst attrs = { role: 'tabpanel' }\n\nconst StepWrapper = Vue.extend({\n name: 'QStepWrapper',\n\n render (h) {\n return h('div', {\n staticClass: 'q-stepper__step-content'\n }, [\n h('div', {\n staticClass: 'q-stepper__step-inner'\n }, slot(this, 'default'))\n ])\n }\n})\n\nexport default Vue.extend({\n name: 'QStep',\n\n inject: {\n stepper: {\n default () {\n console.error('QStep needs to be child of QStepper')\n }\n }\n },\n\n mixins: [ PanelChildMixin ],\n\n props: {\n icon: String,\n color: String,\n title: {\n type: String,\n required: true\n },\n caption: String,\n prefix: [ String, Number ],\n\n doneIcon: String,\n doneColor: String,\n activeIcon: String,\n activeColor: String,\n errorIcon: String,\n errorColor: String,\n\n headerNav: {\n type: Boolean,\n default: true\n },\n done: Boolean,\n error: Boolean\n },\n\n computed: {\n isActive () {\n return this.stepper.value === this.name\n },\n\n onEvents () {\n return this.isActive !== true ||\n this.stepper.vertical !== true ||\n (this.$q.platform.is.ios !== true && this.$q.platform.is.chrome === true)\n ? { ...this.qListeners }\n : { ...this.qListeners, scroll: this.__keepScroll }\n }\n },\n\n methods: {\n __keepScroll (ev) {\n const { target } = ev\n if (target.scrollTop > 0) {\n target.scrollTop = 0\n }\n this.qListeners.scroll !== void 0 && this.$emit('scroll', ev)\n }\n },\n\n render (h) {\n const vertical = this.stepper.vertical\n const content = vertical === true && this.stepper.keepAlive === true\n ? h(\n 'keep-alive',\n this.isActive === true\n ? [ h(StepWrapper, { key: this.name }, slot(this, 'default')) ]\n : void 0\n )\n : (\n vertical !== true || this.isActive === true\n ? StepWrapper.options.render.call(this, h)\n : void 0\n )\n\n return h(\n 'div',\n {\n staticClass: 'q-stepper__step',\n attrs,\n on: this.onEvents\n },\n vertical === true\n ? [\n h(StepHeader, {\n props: {\n stepper: this.stepper,\n step: this\n }\n }),\n\n this.stepper.animated === true\n ? h(QSlideTransition, [ content ])\n : content\n ]\n : [ content ]\n )\n }\n})\n","import Vue from 'vue'\n\nimport StepHeader from './StepHeader.js'\n\nimport { PanelParentMixin } from '../../mixins/panel.js'\nimport DarkMixin from '../../mixins/dark.js'\n\nimport { slot, mergeSlot } from '../../utils/private/slot.js'\nimport { stop } from '../../utils/event.js'\nimport cache from '../../utils/private/cache.js'\n\nexport default Vue.extend({\n name: 'QStepper',\n\n provide () {\n return {\n stepper: this\n }\n },\n\n mixins: [ DarkMixin, PanelParentMixin ],\n\n props: {\n flat: Boolean,\n bordered: Boolean,\n alternativeLabels: Boolean,\n headerNav: Boolean,\n contracted: Boolean,\n headerClass: String,\n\n inactiveColor: String,\n inactiveIcon: String,\n doneIcon: String,\n doneColor: String,\n activeIcon: String,\n activeColor: String,\n errorIcon: String,\n errorColor: String\n },\n\n computed: {\n classes () {\n return `q-stepper q-stepper--${this.vertical === true ? 'vertical' : 'horizontal'}` +\n (this.flat === true || this.isDark === true ? ' q-stepper--flat no-shadow' : '') +\n (this.bordered === true || (this.isDark === true && this.flat === false) ? ' q-stepper--bordered' : '') +\n (this.isDark === true ? ' q-stepper--dark q-dark' : '')\n },\n\n headerClasses () {\n return 'q-stepper__header row items-stretch justify-between' +\n ` q-stepper__header--${this.alternativeLabels === true ? 'alternative' : 'standard'}-labels` +\n (this.flat === false || this.bordered === true ? ' q-stepper__header--border' : '') +\n (this.contracted === true ? ' q-stepper__header--contracted' : '') +\n (this.headerClass !== void 0 ? ` ${this.headerClass}` : '')\n }\n },\n\n methods: {\n __getContent (h) {\n const top = slot(this, 'message', [])\n\n if (this.vertical === true) {\n this.__isValidPanelName(this.value) && this.__updatePanelIndex()\n\n const content = h('div', {\n staticClass: 'q-stepper__content',\n // stop propagation of content emitted @input\n // which would tamper with Panel's model\n on: cache(this, 'stop', { input: stop })\n }, slot(this, 'default'))\n\n return top === void 0\n ? [ content ]\n : top.concat(content)\n }\n\n return [\n h('div', { class: this.headerClasses }, this.panels.map(panel => {\n const step = panel.componentOptions.propsData\n\n return h(StepHeader, {\n key: step.name,\n props: {\n stepper: this,\n step\n }\n })\n }))\n ].concat(\n top,\n\n h('div', {\n staticClass: 'q-stepper__content q-panel-parent',\n directives: this.panelDirectives\n }, this.__getPanelContent(h))\n )\n },\n\n __renderPanels (h) {\n return h('div', {\n class: this.classes,\n on: { ...this.qListeners }\n }, mergeSlot(this.__getContent(h), this, 'navigation'))\n }\n }\n})\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QStepperNavigation',\n\n mixins: [ ListenersMixin ],\n\n render (h) {\n return h('div', {\n staticClass: 'q-stepper__nav',\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import QStep from './QStep.js'\nimport QStepper from './QStepper.js'\nimport QStepperNavigation from './QStepperNavigation.js'\n\nexport {\n QStep,\n QStepper,\n QStepperNavigation\n}\n","import QTabPanels from './QTabPanels.js'\nimport QTabPanel from './QTabPanel.js'\n\nexport {\n QTabPanels,\n QTabPanel\n}\n","export default {\n computed: {\n marginalsScope () {\n return {\n pagination: this.computedPagination,\n pagesNumber: this.pagesNumber,\n isFirstPage: this.isFirstPage,\n isLastPage: this.isLastPage,\n firstPage: this.firstPage,\n prevPage: this.prevPage,\n nextPage: this.nextPage,\n lastPage: this.lastPage,\n\n inFullscreen: this.inFullscreen,\n toggleFullscreen: this.toggleFullscreen\n }\n }\n },\n\n methods: {\n __getTopDiv (h) {\n const\n top = this.$scopedSlots.top,\n topLeft = this.$scopedSlots['top-left'],\n topRight = this.$scopedSlots['top-right'],\n topSelection = this.$scopedSlots['top-selection'],\n hasSelection = this.hasSelectionMode === true &&\n topSelection !== void 0 &&\n this.rowsSelectedNumber > 0,\n staticClass = 'q-table__top relative-position row items-center'\n\n if (top !== void 0) {\n return h('div', { staticClass }, [ top(this.marginalsScope) ])\n }\n\n let child\n\n if (hasSelection === true) {\n child = topSelection(this.marginalsScope).slice()\n }\n else {\n child = []\n\n if (topLeft !== void 0) {\n child.push(\n h('div', { staticClass: 'q-table__control' }, [\n topLeft(this.marginalsScope)\n ])\n )\n }\n else if (this.title) {\n child.push(\n h('div', { staticClass: 'q-table__control' }, [\n h('div', { staticClass: 'q-table__title', class: this.titleClass }, this.title)\n ])\n )\n }\n }\n\n if (topRight !== void 0) {\n child.push(h('div', { staticClass: 'q-table__separator col' }))\n child.push(\n h('div', { staticClass: 'q-table__control' }, [\n topRight(this.marginalsScope)\n ])\n )\n }\n\n if (child.length === 0) {\n return\n }\n\n return h('div', { staticClass }, child)\n }\n }\n}\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot, uniqueSlot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QTh',\n\n mixins: [ ListenersMixin ],\n\n props: {\n props: Object,\n autoWidth: Boolean\n },\n\n render (h) {\n const on = { ...this.qListeners }\n\n if (this.props === void 0) {\n return h('th', {\n on,\n class: this.autoWidth === true ? 'q-table--col-auto-width' : null\n }, slot(this, 'default'))\n }\n\n let col, child\n const name = this.$vnode.key\n\n if (name) {\n col = this.props.colsMap[name]\n if (col === void 0) { return }\n }\n else {\n col = this.props.col\n }\n\n if (col.sortable === true) {\n const action = col.align === 'right'\n ? 'unshift'\n : 'push'\n\n child = uniqueSlot(this, 'default', [])\n child[action](\n h(QIcon, {\n props: { name: this.$q.iconSet.table.arrowUp },\n staticClass: col.__iconClass\n })\n )\n }\n else {\n child = slot(this, 'default')\n }\n\n const evt = col.sortable === true\n ? {\n click: evt => {\n this.props.sort(col)\n this.$emit('click', evt)\n }\n }\n : {}\n\n return h('th', {\n on: { ...on, ...evt },\n style: col.headerStyle,\n class: col.__thClass +\n (this.autoWidth === true ? ' q-table--col-auto-width' : '')\n }, child)\n }\n})\n","import QCheckbox from '../checkbox/QCheckbox.js'\nimport QTh from './QTh.js'\n\nimport cache from '../../utils/private/cache.js'\nimport { injectProp } from '../../utils/private/inject-obj-prop.js'\n\nexport default {\n computed: {\n headerSelectedValue () {\n return this.someRowsSelected === true\n ? null\n : this.allRowsSelected\n }\n },\n\n methods: {\n __getTHead (h) {\n const child = this.__getTHeadTR(h)\n\n if (this.loading === true && this.$scopedSlots.loading === void 0) {\n child.push(\n h('tr', { staticClass: 'q-table__progress' }, [\n h('th', {\n staticClass: 'relative-position',\n attrs: { colspan: this.computedColspan }\n }, this.__getProgress(h))\n ])\n )\n }\n\n return h('thead', child)\n },\n\n __getTHeadTR (h) {\n const\n header = this.$scopedSlots.header,\n headerCell = this.$scopedSlots['header-cell']\n\n if (header !== void 0) {\n return header(\n this.__getHeaderScope({ header: true })\n ).slice()\n }\n\n const child = this.computedCols.map(col => {\n const\n headerCellCol = this.$scopedSlots[`header-cell-${col.name}`],\n slot = headerCellCol !== void 0 ? headerCellCol : headerCell,\n props = this.__getHeaderScope({ col })\n\n return slot !== void 0\n ? slot(props)\n : h(QTh, {\n key: col.name,\n props: { props }\n }, col.label)\n })\n\n if (this.singleSelection === true && this.grid !== true) {\n child.unshift(h('th', { staticClass: 'q-table--col-auto-width' }, [' ']))\n }\n else if (this.multipleSelection === true) {\n const slot = this.$scopedSlots['header-selection']\n const content = slot !== void 0\n ? slot(this.__getHeaderScope({}))\n : [\n h(QCheckbox, {\n props: {\n color: this.color,\n value: this.headerSelectedValue,\n dark: this.isDark,\n dense: this.dense\n },\n on: cache(this, 'inp', {\n input: this.__onMultipleSelectionSet\n })\n })\n ]\n\n child.unshift(\n h('th', { staticClass: 'q-table--col-auto-width' }, content)\n )\n }\n\n return [\n h('tr', {\n style: this.tableHeaderStyle,\n class: this.tableHeaderClass\n }, child)\n ]\n },\n\n __getHeaderScope (data) {\n Object.assign(data, {\n cols: this.computedCols,\n sort: this.sort,\n colsMap: this.computedColsMap,\n color: this.color,\n dark: this.isDark,\n dense: this.dense\n })\n\n if (this.multipleSelection === true) {\n injectProp(\n data,\n 'selected',\n () => this.headerSelectedValue,\n this.__onMultipleSelectionSet\n )\n\n data.partialSelected = this.someRowsSelected\n data.multipleSelect = true\n }\n\n return data\n },\n\n __onMultipleSelectionSet (val) {\n if (this.someRowsSelected === true) {\n val = false\n }\n this.__updateSelection(\n this.computedRows.map(this.getRowKey),\n this.computedRows,\n val\n )\n }\n }\n}\n","import QCheckbox from '../checkbox/QCheckbox.js'\n\nimport { injectProp } from '../../utils/private/inject-obj-prop.js'\n\nexport default {\n methods: {\n __getTBodyTR (h, row, bodySlot, pageIndex) {\n const\n key = this.getRowKey(row),\n selected = this.isRowSelected(key)\n\n if (bodySlot !== void 0) {\n return bodySlot(\n this.__getBodyScope({\n key,\n row,\n pageIndex,\n __trClass: selected ? 'selected' : ''\n })\n )\n }\n\n const\n bodyCell = this.$scopedSlots['body-cell'],\n child = this.computedCols.map(col => {\n const\n bodyCellCol = this.$scopedSlots[`body-cell-${col.name}`],\n slot = bodyCellCol !== void 0 ? bodyCellCol : bodyCell\n\n return slot !== void 0\n ? slot(this.__getBodyCellScope({ key, row, pageIndex, col }))\n : h('td', {\n class: col.__tdClass(row),\n style: col.__tdStyle(row)\n }, this.getCellValue(col, row))\n })\n\n if (this.hasSelectionMode === true) {\n const slot = this.$scopedSlots['body-selection']\n const content = slot !== void 0\n ? slot(this.__getBodySelectionScope({ key, row, pageIndex }))\n : [\n h(QCheckbox, {\n props: {\n value: selected,\n color: this.color,\n dark: this.isDark,\n dense: this.dense\n },\n on: {\n input: (adding, evt) => {\n this.__updateSelection([ key ], [ row ], adding, evt)\n }\n }\n })\n ]\n\n child.unshift(\n h('td', { staticClass: 'q-table--col-auto-width' }, content)\n )\n }\n\n const data = { key, class: { selected }, on: {} }\n\n if (this.qListeners['row-click'] !== void 0) {\n data.class['cursor-pointer'] = true\n data.on.click = evt => {\n this.$emit('row-click', evt, row, pageIndex)\n }\n }\n\n if (this.qListeners['row-dblclick'] !== void 0) {\n data.class['cursor-pointer'] = true\n data.on.dblclick = evt => {\n this.$emit('row-dblclick', evt, row, pageIndex)\n }\n }\n\n if (this.qListeners['row-contextmenu'] !== void 0) {\n data.class['cursor-pointer'] = true\n data.on.contextmenu = evt => {\n this.$emit('row-contextmenu', evt, row, pageIndex)\n }\n }\n\n return h('tr', data, child)\n },\n\n __getTBody (h) {\n const\n body = this.$scopedSlots.body,\n topRow = this.$scopedSlots['top-row'],\n bottomRow = this.$scopedSlots['bottom-row']\n\n let child = this.computedRows.map(\n (row, pageIndex) => this.__getTBodyTR(h, row, body, pageIndex)\n )\n\n if (topRow !== void 0) {\n child = topRow({ cols: this.computedCols }).concat(child)\n }\n if (bottomRow !== void 0) {\n child = child.concat(bottomRow({ cols: this.computedCols }))\n }\n\n return h('tbody', child)\n },\n\n __getVirtualTBodyTR (h) {\n const body = this.$scopedSlots.body\n return props => this.__getTBodyTR(h, props.item, body, props.index)\n },\n\n __getBodyScope (data) {\n this.__injectBodyCommonScope(data)\n\n data.cols = data.cols.map(col => injectProp(\n { ...col },\n 'value',\n () => this.getCellValue(col, data.row)\n ))\n\n return data\n },\n\n __getBodyCellScope (data) {\n this.__injectBodyCommonScope(data)\n return injectProp(data, 'value', () => this.getCellValue(data.col, data.row))\n },\n\n __getBodySelectionScope (data) {\n this.__injectBodyCommonScope(data)\n return data\n },\n\n __injectBodyCommonScope (data) {\n Object.assign(data, {\n cols: this.computedCols,\n colsMap: this.computedColsMap,\n sort: this.sort,\n rowIndex: this.firstRowIndex + data.pageIndex,\n color: this.color,\n dark: this.isDark,\n dense: this.dense\n })\n\n this.hasSelectionMode === true && injectProp(\n data,\n 'selected',\n () => this.isRowSelected(data.key),\n (adding, evt) => {\n this.__updateSelection([ data.key ], [ data.row ], adding, evt)\n }\n )\n\n injectProp(\n data,\n 'expand',\n () => this.isRowExpanded(data.key),\n adding => { this.__updateExpanded(data.key, adding) }\n )\n },\n\n getCellValue (col, row) {\n const val = typeof col.field === 'function' ? col.field(row) : row[col.field]\n return col.format !== void 0 ? col.format(val, row) : val\n }\n }\n}\n","import QSelect from '../select/QSelect.js'\nimport QBtn from '../btn/QBtn.js'\nimport QIcon from '../icon/QIcon.js'\n\nimport cache from '../../utils/private/cache.js'\n\nconst staticClass = 'q-table__bottom row items-center'\n\nexport default {\n props: {\n hideBottom: Boolean,\n hideSelectedBanner: Boolean,\n hideNoData: Boolean,\n hidePagination: Boolean\n },\n\n computed: {\n navIcon () {\n const ico = [\n this.iconFirstPage || this.$q.iconSet.table.firstPage,\n this.iconPrevPage || this.$q.iconSet.table.prevPage,\n this.iconNextPage || this.$q.iconSet.table.nextPage,\n this.iconLastPage || this.$q.iconSet.table.lastPage\n ]\n return this.$q.lang.rtl === true ? ico.reverse() : ico\n }\n },\n\n methods: {\n __getBottomDiv (h) {\n if (this.hideBottom === true) {\n return\n }\n\n if (this.nothingToDisplay === true) {\n if (this.hideNoData === true) {\n return\n }\n\n const message = this.loading === true\n ? this.loadingLabel || this.$q.lang.table.loading\n : (this.filter ? this.noResultsLabel || this.$q.lang.table.noResults : this.noDataLabel || this.$q.lang.table.noData)\n\n const noData = this.$scopedSlots['no-data']\n const children = noData !== void 0\n ? [ noData({ message, icon: this.$q.iconSet.table.warning, filter: this.filter }) ]\n : [\n h(QIcon, {\n staticClass: 'q-table__bottom-nodata-icon',\n props: { name: this.$q.iconSet.table.warning }\n }),\n message\n ]\n\n return h('div', {\n staticClass: staticClass + ' q-table__bottom--nodata'\n }, children)\n }\n\n const bottom = this.$scopedSlots.bottom\n\n if (bottom !== void 0) {\n return h('div', { staticClass }, [ bottom(this.marginalsScope) ])\n }\n\n const child = this.hideSelectedBanner !== true && this.hasSelectionMode === true && this.rowsSelectedNumber > 0\n ? [\n h('div', { staticClass: 'q-table__control' }, [\n h('div', [\n (this.selectedRowsLabel || this.$q.lang.table.selectedRecords)(this.rowsSelectedNumber)\n ])\n ])\n ]\n : []\n\n if (this.hidePagination !== true) {\n return h('div', {\n staticClass: staticClass + ' justify-end'\n }, this.__getPaginationDiv(h, child))\n }\n\n if (child.length > 0) {\n return h('div', { staticClass }, child)\n }\n },\n\n __getPaginationDiv (h, child) {\n let control\n const\n { rowsPerPage } = this.computedPagination,\n paginationLabel = this.paginationLabel || this.$q.lang.table.pagination,\n paginationSlot = this.$scopedSlots.pagination,\n hasOpts = this.rowsPerPageOptions.length > 1\n\n child.push(\n h('div', { staticClass: 'q-table__separator col' })\n )\n\n if (hasOpts === true) {\n child.push(\n h('div', { staticClass: 'q-table__control' }, [\n h('span', { staticClass: 'q-table__bottom-item' }, [\n this.rowsPerPageLabel || this.$q.lang.table.recordsPerPage\n ]),\n h(QSelect, {\n staticClass: 'q-table__select inline q-table__bottom-item',\n props: {\n color: this.color,\n value: rowsPerPage,\n options: this.computedRowsPerPageOptions,\n displayValue: rowsPerPage === 0\n ? this.$q.lang.table.allRows\n : rowsPerPage,\n dark: this.isDark,\n borderless: true,\n dense: true,\n optionsDense: true,\n optionsCover: true\n },\n on: cache(this, 'pgSize', {\n input: pag => {\n this.setPagination({\n page: 1,\n rowsPerPage: pag.value\n })\n }\n })\n })\n ])\n )\n }\n\n if (paginationSlot !== void 0) {\n control = paginationSlot(this.marginalsScope)\n }\n else {\n control = [\n h('span', rowsPerPage !== 0 ? { staticClass: 'q-table__bottom-item' } : {}, [\n rowsPerPage\n ? paginationLabel(this.firstRowIndex + 1, Math.min(this.lastRowIndex, this.computedRowsNumber), this.computedRowsNumber)\n : paginationLabel(1, this.filteredSortedRowsNumber, this.computedRowsNumber)\n ])\n ]\n\n if (rowsPerPage !== 0 && this.pagesNumber > 1) {\n const btnProps = {\n color: this.color,\n round: true,\n dense: true,\n flat: true\n }\n\n if (this.dense === true) {\n btnProps.size = 'sm'\n }\n\n this.pagesNumber > 2 && control.push(\n h(QBtn, {\n key: 'pgFirst',\n props: {\n ...btnProps,\n icon: this.navIcon[0],\n disable: this.isFirstPage\n },\n on: cache(this, 'pgFirst', { click: this.firstPage })\n })\n )\n\n control.push(\n h(QBtn, {\n key: 'pgPrev',\n props: {\n ...btnProps,\n icon: this.navIcon[1],\n disable: this.isFirstPage\n },\n on: cache(this, 'pgPrev', { click: this.prevPage })\n }),\n\n h(QBtn, {\n key: 'pgNext',\n props: {\n ...btnProps,\n icon: this.navIcon[2],\n disable: this.isLastPage\n },\n on: cache(this, 'pgNext', { click: this.nextPage })\n })\n )\n\n this.pagesNumber > 2 && control.push(\n h(QBtn, {\n key: 'pgLast',\n props: {\n ...btnProps,\n icon: this.navIcon[3],\n disable: this.isLastPage\n },\n on: cache(this, 'pgLast', { click: this.lastPage })\n })\n )\n }\n }\n\n child.push(\n h('div', { staticClass: 'q-table__control' }, control)\n )\n\n return child\n }\n }\n}\n","import QCheckbox from '../checkbox/QCheckbox.js'\nimport QSeparator from '../separator/QSeparator.js'\n\nexport default {\n methods: {\n __getGridHeader (h) {\n const child = this.gridHeader === true\n ? [\n h('table', { staticClass: 'q-table' }, [\n this.__getTHead(h)\n ])\n ]\n : (\n this.loading === true && this.$scopedSlots.loading === void 0\n ? this.__getProgress(h)\n : void 0\n )\n\n return h('div', { staticClass: 'q-table__middle' }, child)\n },\n\n __getGridBody (h) {\n const item = this.$scopedSlots.item !== void 0\n ? this.$scopedSlots.item\n : scope => {\n const child = scope.cols.map(\n col => h('div', { staticClass: 'q-table__grid-item-row' }, [\n h('div', { staticClass: 'q-table__grid-item-title' }, [ col.label ]),\n h('div', { staticClass: 'q-table__grid-item-value' }, [ col.value ])\n ])\n )\n\n if (this.hasSelectionMode === true) {\n const slot = this.$scopedSlots['body-selection']\n const content = slot !== void 0\n ? slot(scope)\n : [\n h(QCheckbox, {\n props: {\n value: scope.selected,\n color: this.color,\n dark: this.isDark,\n dense: this.dense\n },\n on: {\n input: (adding, evt) => {\n this.__updateSelection([ scope.key ], [ scope.row ], adding, evt)\n }\n }\n })\n ]\n\n child.unshift(\n h('div', { staticClass: 'q-table__grid-item-row' }, content),\n h(QSeparator, { props: { dark: this.isDark } })\n )\n }\n\n const data = {\n staticClass: 'q-table__grid-item-card' + this.cardDefaultClass,\n class: this.cardClass,\n style: this.cardStyle,\n on: {}\n }\n\n if (this.qListeners['row-click'] !== void 0 || this.qListeners['row-dblclick'] !== void 0) {\n data.staticClass += ' cursor-pointer'\n }\n\n if (this.qListeners['row-click'] !== void 0) {\n data.on.click = evt => {\n this.$emit('row-click', evt, scope.row, scope.pageIndex)\n }\n }\n\n if (this.qListeners['row-dblclick'] !== void 0) {\n data.on.dblclick = evt => {\n this.$emit('row-dblclick', evt, scope.row, scope.pageIndex)\n }\n }\n\n return h('div', {\n staticClass: 'q-table__grid-item col-xs-12 col-sm-6 col-md-4 col-lg-3',\n class: scope.selected === true ? 'q-table__grid-item--selected' : ''\n }, [\n h('div', data, child)\n ])\n }\n\n return h('div', {\n staticClass: 'q-table__grid-content row',\n class: this.cardContainerClass,\n style: this.cardContainerStyle\n }, this.computedRows.map((row, pageIndex) => {\n return item(this.__getBodyScope({\n key: this.getRowKey(row),\n row,\n pageIndex\n }))\n }))\n }\n }\n}\n","export default function (h, conf, content) {\n return h('div', {\n ...conf,\n staticClass: 'q-table__middle' + (conf.staticClass !== void 0 ? ' ' + conf.staticClass : '')\n }, [\n h('table', { staticClass: 'q-table' }, content)\n ])\n}\n","import Vue from 'vue'\n\nimport QList from '../item/QList.js'\nimport QMarkupTable from '../markup-table/QMarkupTable.js'\nimport getTableMiddle from '../table/get-table-middle.js'\n\nimport VirtualScroll from '../../mixins/virtual-scroll.js'\nimport AttrsMixin from '../../mixins/attrs.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { getScrollTarget } from '../../utils/scroll.js'\nimport { listenOpts } from '../../utils/event.js'\nimport { mergeSlot } from '../../utils/private/slot.js'\n\nconst comps = {\n list: QList,\n table: QMarkupTable\n}\n\nexport default Vue.extend({\n name: 'QVirtualScroll',\n\n mixins: [ AttrsMixin, ListenersMixin, VirtualScroll ],\n\n props: {\n type: {\n type: String,\n default: 'list',\n validator: v => ['list', 'table', '__qtable'].includes(v)\n },\n\n items: {\n type: Array,\n default: () => []\n },\n\n itemsFn: Function,\n itemsSize: Number,\n\n scrollTarget: {\n default: void 0\n }\n },\n\n computed: {\n virtualScrollLength () {\n return this.itemsSize >= 0 && this.itemsFn !== void 0\n ? parseInt(this.itemsSize, 10)\n : (Array.isArray(this.items) ? this.items.length : 0)\n },\n\n virtualScrollScope () {\n if (this.virtualScrollLength === 0) {\n return []\n }\n\n const mapFn = (item, i) => ({\n index: this.virtualScrollSliceRange.from + i,\n item\n })\n\n if (this.itemsFn === void 0) {\n return this.items.slice(this.virtualScrollSliceRange.from, this.virtualScrollSliceRange.to).map(mapFn)\n }\n\n return this.itemsFn(this.virtualScrollSliceRange.from, this.virtualScrollSliceRange.to - this.virtualScrollSliceRange.from).map(mapFn)\n },\n\n classes () {\n return 'q-virtual-scroll q-virtual-scroll' + (this.virtualScrollHorizontal === true ? '--horizontal' : '--vertical') +\n (this.scrollTarget !== void 0 ? '' : ' scroll')\n },\n\n attrs () {\n return this.scrollTarget !== void 0 ? void 0 : { tabindex: 0 }\n }\n },\n\n watch: {\n virtualScrollLength () {\n this.__resetVirtualScroll()\n },\n\n scrollTarget () {\n this.__unconfigureScrollTarget()\n this.__configureScrollTarget()\n }\n },\n\n methods: {\n __getVirtualScrollEl () {\n return this.$el\n },\n\n __getVirtualScrollTarget () {\n return this.__scrollTarget\n },\n\n __configureScrollTarget () {\n this.__scrollTarget = getScrollTarget(this.$el, this.scrollTarget)\n this.__scrollTarget.addEventListener('scroll', this.__onVirtualScrollEvt, listenOpts.passive)\n },\n\n __unconfigureScrollTarget () {\n if (this.__scrollTarget !== void 0) {\n this.__scrollTarget.removeEventListener('scroll', this.__onVirtualScrollEvt, listenOpts.passive)\n this.__scrollTarget = void 0\n }\n }\n },\n\n beforeMount () {\n this.__resetVirtualScroll()\n },\n\n mounted () {\n this.__configureScrollTarget()\n },\n\n activated () {\n this.__configureScrollTarget()\n },\n\n deactivated () {\n this.__unconfigureScrollTarget()\n },\n\n beforeDestroy () {\n this.__unconfigureScrollTarget()\n },\n\n render (h) {\n if (this.$scopedSlots.default === void 0) {\n console.error('QVirtualScroll: default scoped slot is required for rendering', this)\n return\n }\n\n let child = this.__padVirtualScroll(\n h,\n this.type === 'list' ? 'div' : 'tbody',\n this.virtualScrollScope.map(this.$scopedSlots.default)\n )\n\n if (this.$scopedSlots.before !== void 0) {\n child = this.$scopedSlots.before().concat(child)\n }\n\n child = mergeSlot(child, this, 'after')\n\n return this.type === '__qtable'\n ? getTableMiddle(h, { staticClass: this.classes }, child)\n : h(comps[this.type], {\n class: this.classes,\n attrs: this.attrs,\n props: this.qAttrs,\n on: { ...this.qListeners }\n }, child)\n }\n})\n","export function sortString (a, b) {\n if (typeof a !== 'string') {\n throw new TypeError('The value for sorting must be a String')\n }\n return a.localeCompare(b)\n}\n\nexport function sortNumber (a, b) {\n return a - b\n}\n\nexport function sortDate (a, b) {\n return (new Date(a)) - (new Date(b))\n}\n\nexport function sortBoolean (a, b) {\n return a && !b\n ? -1\n : (!a && b ? 1 : 0)\n}\n","import { sortDate } from '../../utils/private/sort.js'\nimport { isNumber, isDate, isObject } from '../../utils/is.js'\n\nexport default {\n props: {\n sortMethod: {\n type: Function,\n default (data, sortBy, descending) {\n const col = this.colList.find(def => def.name === sortBy)\n if (col === void 0 || col.field === void 0) {\n return data\n }\n\n const\n dir = descending === true ? -1 : 1,\n val = typeof col.field === 'function'\n ? v => col.field(v)\n : v => v[col.field]\n\n return data.sort((a, b) => {\n let\n A = val(a),\n B = val(b)\n\n if (A === null || A === void 0) {\n return -1 * dir\n }\n if (B === null || B === void 0) {\n return 1 * dir\n }\n if (col.sort !== void 0) {\n return col.sort(A, B, a, b) * dir\n }\n if (isNumber(A) === true && isNumber(B) === true) {\n return (A - B) * dir\n }\n if (isDate(A) === true && isDate(B) === true) {\n return sortDate(A, B) * dir\n }\n if (typeof A === 'boolean' && typeof B === 'boolean') {\n return (A - B) * dir\n }\n\n [A, B] = [A, B].map(s => (s + '').toLocaleString().toLowerCase())\n\n return A < B\n ? -1 * dir\n : (A === B ? 0 : dir)\n })\n }\n },\n\n columnSortOrder: {\n type: String,\n validator: v => v === 'ad' || v === 'da',\n default: 'ad'\n }\n },\n\n computed: {\n columnToSort () {\n const { sortBy } = this.computedPagination\n\n if (sortBy) {\n return this.colList.find(def => def.name === sortBy) || null\n }\n }\n },\n\n methods: {\n sort (col /* String(col name) or Object(col definition) */) {\n let sortOrder = this.columnSortOrder\n\n if (isObject(col) === true) {\n if (col.sortOrder) {\n sortOrder = col.sortOrder\n }\n\n col = col.name\n }\n else {\n const def = this.colList.find(def => def.name === col)\n if (def !== void 0 && def.sortOrder) {\n sortOrder = def.sortOrder\n }\n }\n\n let { sortBy, descending } = this.computedPagination\n\n if (sortBy !== col) {\n sortBy = col\n descending = sortOrder === 'da'\n }\n else if (this.binaryStateSort === true) {\n descending = !descending\n }\n else if (descending === true) {\n if (sortOrder === 'ad') {\n sortBy = null\n }\n else {\n descending = false\n }\n }\n else { // ascending\n if (sortOrder === 'ad') {\n descending = true\n }\n else {\n sortBy = null\n }\n }\n\n this.setPagination({ sortBy, descending, page: 1 })\n }\n }\n}\n","export default {\n props: {\n filter: [String, Object],\n filterMethod: {\n type: Function,\n default (rows, terms, cols = this.computedCols, cellValue = this.getCellValue) {\n const lowerTerms = terms ? terms.toLowerCase() : ''\n return rows.filter(\n row => cols.some(col => {\n const val = cellValue(col, row) + ''\n const haystack = (val === 'undefined' || val === 'null') ? '' : val.toLowerCase()\n return haystack.indexOf(lowerTerms) !== -1\n })\n )\n }\n }\n },\n\n watch: {\n filter: {\n handler () {\n this.$nextTick(() => {\n this.setPagination({ page: 1 }, true)\n })\n },\n deep: true\n }\n }\n}\n","function samePagination (oldPag, newPag) {\n for (const prop in newPag) {\n if (newPag[prop] !== oldPag[prop]) {\n return false\n }\n }\n return true\n}\n\nfunction fixPagination (p) {\n if (p.page < 1) {\n p.page = 1\n }\n if (p.rowsPerPage !== void 0 && p.rowsPerPage < 1) {\n p.rowsPerPage = 0\n }\n return p\n}\n\nexport default {\n props: {\n pagination: Object,\n rowsPerPageOptions: {\n type: Array,\n default: () => [ 5, 7, 10, 15, 20, 25, 50, 0 ]\n }\n },\n\n computed: {\n computedPagination () {\n const pag = this.qListeners['update:pagination'] !== void 0\n ? { ...this.innerPagination, ...this.pagination }\n : this.innerPagination\n\n return fixPagination(pag)\n },\n\n firstRowIndex () {\n const { page, rowsPerPage } = this.computedPagination\n return (page - 1) * rowsPerPage\n },\n\n lastRowIndex () {\n const { page, rowsPerPage } = this.computedPagination\n return page * rowsPerPage\n },\n\n isFirstPage () {\n return this.computedPagination.page === 1\n },\n\n pagesNumber () {\n return this.computedPagination.rowsPerPage === 0\n ? 1\n : Math.max(\n 1,\n Math.ceil(this.computedRowsNumber / this.computedPagination.rowsPerPage)\n )\n },\n\n isLastPage () {\n return this.lastRowIndex === 0\n ? true\n : this.computedPagination.page >= this.pagesNumber\n },\n\n computedRowsPerPageOptions () {\n const opts = this.rowsPerPageOptions.includes(this.innerPagination.rowsPerPage)\n ? this.rowsPerPageOptions\n : [ this.innerPagination.rowsPerPage ].concat(this.rowsPerPageOptions)\n\n return opts.map(count => ({\n label: count === 0 ? this.$q.lang.table.allRows : '' + count,\n value: count\n }))\n }\n },\n\n watch: {\n pagesNumber (lastPage, oldLastPage) {\n if (lastPage === oldLastPage) {\n return\n }\n\n const currentPage = this.computedPagination.page\n if (lastPage && !currentPage) {\n this.setPagination({ page: 1 })\n }\n else if (lastPage < currentPage) {\n this.setPagination({ page: lastPage })\n }\n }\n },\n\n methods: {\n __sendServerRequest (pagination) {\n this.requestServerInteraction({\n pagination,\n filter: this.filter\n })\n },\n\n setPagination (val, forceServerRequest) {\n const newPagination = fixPagination({\n ...this.computedPagination,\n ...val\n })\n\n if (samePagination(this.computedPagination, newPagination)) {\n if (this.isServerSide === true && forceServerRequest === true) {\n this.__sendServerRequest(newPagination)\n }\n return\n }\n\n if (this.isServerSide === true) {\n this.__sendServerRequest(newPagination)\n return\n }\n\n if (this.pagination !== void 0 && this.qListeners['update:pagination'] !== void 0) {\n this.$emit('update:pagination', newPagination)\n }\n else {\n this.innerPagination = newPagination\n }\n },\n\n firstPage () {\n this.setPagination({ page: 1 })\n },\n\n prevPage () {\n const { page } = this.computedPagination\n if (page > 1) {\n this.setPagination({ page: page - 1 })\n }\n },\n\n nextPage () {\n const { page, rowsPerPage } = this.computedPagination\n if (this.lastRowIndex > 0 && page * rowsPerPage < this.computedRowsNumber) {\n this.setPagination({ page: page + 1 })\n }\n },\n\n lastPage () {\n this.setPagination({ page: this.pagesNumber })\n }\n },\n\n created () {\n if (this.qListeners['update:pagination'] !== void 0) {\n this.$emit('update:pagination', { ...this.computedPagination })\n }\n }\n}\n","export default {\n props: {\n selection: {\n type: String,\n default: 'none',\n validator: v => ['single', 'multiple', 'none'].includes(v)\n },\n selected: {\n type: Array,\n default: () => []\n }\n },\n\n computed: {\n selectedKeys () {\n const keys = {}\n this.selected.map(this.getRowKey).forEach(key => {\n keys[key] = true\n })\n return keys\n },\n\n hasSelectionMode () {\n return this.selection !== 'none'\n },\n\n singleSelection () {\n return this.selection === 'single'\n },\n\n multipleSelection () {\n return this.selection === 'multiple'\n },\n\n allRowsSelected () {\n return this.computedRows.length > 0 && this.computedRows.every(\n row => this.selectedKeys[ this.getRowKey(row) ] === true\n )\n },\n\n someRowsSelected () {\n return this.allRowsSelected !== true &&\n this.computedRows.some(row => this.selectedKeys[ this.getRowKey(row) ] === true)\n },\n\n rowsSelectedNumber () {\n return this.selected.length\n }\n },\n\n methods: {\n isRowSelected (key) {\n return this.selectedKeys[key] === true\n },\n\n clearSelection () {\n this.$emit('update:selected', [])\n },\n\n __updateSelection (keys, rows, added, evt) {\n this.$emit('selection', { rows, added, keys, evt })\n\n const payload = this.singleSelection === true\n ? (added === true ? rows : [])\n : (\n added === true\n ? this.selected.concat(rows)\n : this.selected.filter(\n row => keys.includes(this.getRowKey(row)) === false\n )\n )\n\n this.$emit('update:selected', payload)\n }\n }\n}\n","function getVal (val) {\n return Array.isArray(val)\n ? val.slice()\n : []\n}\n\nexport default {\n props: {\n expanded: Array // sync\n },\n\n data () {\n return {\n innerExpanded: getVal(this.expanded)\n }\n },\n\n watch: {\n expanded (val) {\n this.innerExpanded = getVal(val)\n }\n },\n\n methods: {\n isRowExpanded (key) {\n return this.innerExpanded.includes(key)\n },\n\n setExpanded (val) {\n if (this.expanded !== void 0) {\n this.$emit('update:expanded', val)\n }\n else {\n this.innerExpanded = val\n }\n },\n\n __updateExpanded (key, add) {\n const target = this.innerExpanded.slice()\n const index = target.indexOf(key)\n\n if (add === true) {\n if (index === -1) {\n target.push(key)\n this.setExpanded(target)\n }\n }\n else if (index !== -1) {\n target.splice(index, 1)\n this.setExpanded(target)\n }\n }\n }\n}\n","import { isNumber } from '../../utils/is.js'\n\nexport default {\n props: {\n visibleColumns: Array\n },\n\n computed: {\n colList () {\n if (this.columns !== void 0) {\n return this.columns\n }\n\n // we infer columns from first row\n const row = this.data[0]\n\n return row !== void 0\n ? Object.keys(row).map(name => ({\n name,\n label: name.toUpperCase(),\n field: name,\n align: isNumber(row[name]) ? 'right' : 'left',\n sortable: true\n }))\n : []\n },\n\n computedCols () {\n const { sortBy, descending } = this.computedPagination\n\n const cols = this.visibleColumns !== void 0\n ? this.colList.filter(col => col.required === true || this.visibleColumns.includes(col.name) === true)\n : this.colList\n\n return cols.map(col => {\n const align = col.align || 'right'\n const alignClass = `text-${align}`\n\n return {\n ...col,\n align,\n __iconClass: `q-table__sort-icon q-table__sort-icon--${align}`,\n __thClass: alignClass +\n (col.headerClasses !== void 0 ? ' ' + col.headerClasses : '') +\n (col.sortable === true ? ' sortable' : '') +\n (col.name === sortBy ? ` sorted ${descending === true ? 'sort-desc' : ''}` : ''),\n\n __tdStyle: col.style !== void 0\n ? (\n typeof col.style !== 'function'\n ? () => col.style\n : col.style\n )\n : () => null,\n\n __tdClass: col.classes !== void 0\n ? (\n typeof col.classes !== 'function'\n ? () => alignClass + ' ' + col.classes\n : row => alignClass + ' ' + col.classes(row)\n )\n : () => alignClass\n }\n })\n },\n\n computedColsMap () {\n const names = {}\n this.computedCols.forEach(col => {\n names[col.name] = col\n })\n return names\n },\n\n computedColspan () {\n return this.tableColspan !== void 0\n ? this.tableColspan\n : this.computedCols.length + (this.hasSelectionMode === true ? 1 : 0)\n }\n }\n}\n","import Vue from 'vue'\n\nimport Top from './table-top.js'\nimport TableHeader from './table-header.js'\nimport TableBody from './table-body.js'\nimport Bottom from './table-bottom.js'\nimport TableGrid from './table-grid.js'\nimport QVirtualScroll from '../virtual-scroll/QVirtualScroll.js'\nimport QLinearProgress from '../linear-progress/QLinearProgress.js'\nimport getTableMiddle from './get-table-middle.js'\n\nimport { commonVirtPropsList } from '../../mixins/virtual-scroll.js'\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport Sort from './table-sort.js'\nimport Filter from './table-filter.js'\nimport Pagination from './table-pagination.js'\nimport RowSelection from './table-row-selection.js'\nimport RowExpand from './table-row-expand.js'\nimport ColumnSelection from './table-column-selection.js'\nimport FullscreenMixin from '../../mixins/fullscreen.js'\n\nimport cache from '../../utils/private/cache.js'\n\nconst commonVirtPropsObj = {}\ncommonVirtPropsList.forEach(p => { commonVirtPropsObj[p] = {} })\n\nexport default Vue.extend({\n name: 'QTable',\n\n mixins: [\n DarkMixin,\n ListenersMixin,\n\n FullscreenMixin,\n Top,\n TableHeader,\n TableBody,\n Bottom,\n TableGrid,\n Sort,\n Filter,\n Pagination,\n RowSelection,\n RowExpand,\n ColumnSelection\n ],\n\n props: {\n data: {\n type: Array,\n default: () => []\n },\n rowKey: {\n type: [ String, Function ],\n default: 'id'\n },\n\n columns: Array,\n loading: Boolean,\n binaryStateSort: Boolean,\n\n iconFirstPage: String,\n iconPrevPage: String,\n iconNextPage: String,\n iconLastPage: String,\n\n title: String,\n\n hideHeader: Boolean,\n\n grid: Boolean,\n gridHeader: Boolean,\n\n dense: Boolean,\n flat: Boolean,\n bordered: Boolean,\n square: Boolean,\n separator: {\n type: String,\n default: 'horizontal',\n validator: v => ['horizontal', 'vertical', 'cell', 'none'].includes(v)\n },\n wrapCells: Boolean,\n\n virtualScroll: Boolean,\n ...commonVirtPropsObj,\n\n noDataLabel: String,\n noResultsLabel: String,\n loadingLabel: String,\n selectedRowsLabel: Function,\n rowsPerPageLabel: String,\n paginationLabel: Function,\n\n color: {\n type: String,\n default: 'grey-8'\n },\n\n titleClass: [String, Array, Object],\n tableStyle: [String, Array, Object],\n tableClass: [String, Array, Object],\n tableHeaderStyle: [String, Array, Object],\n tableHeaderClass: [String, Array, Object],\n cardContainerClass: [String, Array, Object],\n cardContainerStyle: [String, Array, Object],\n cardStyle: [String, Array, Object],\n cardClass: [String, Array, Object]\n },\n\n data () {\n return {\n innerPagination: Object.assign({\n sortBy: null,\n descending: false,\n page: 1,\n rowsPerPage: this.rowsPerPageOptions.length > 0\n ? this.rowsPerPageOptions[0]\n : 5\n }, this.pagination)\n }\n },\n\n watch: {\n needsReset () {\n this.hasVirtScroll === true && this.$refs.virtScroll !== void 0 && this.$refs.virtScroll.reset()\n }\n },\n\n computed: {\n getRowKey () {\n return typeof this.rowKey === 'function'\n ? this.rowKey\n : row => row[this.rowKey]\n },\n\n hasVirtScroll () {\n return this.grid !== true && this.virtualScroll === true\n },\n\n needsReset () {\n return ['tableStyle', 'tableClass', 'tableHeaderStyle', 'tableHeaderClass', '__containerClass']\n .map(p => this[p]).join(';')\n },\n\n filteredSortedRows () {\n let rows = this.data\n\n if (this.isServerSide === true || rows.length === 0) {\n return rows\n }\n\n const { sortBy, descending } = this.computedPagination\n\n if (this.filter) {\n rows = this.filterMethod(rows, this.filter, this.computedCols, this.getCellValue)\n }\n\n if (this.columnToSort !== void 0) {\n rows = this.sortMethod(\n this.data === rows ? rows.slice() : rows,\n sortBy,\n descending\n )\n }\n\n return rows\n },\n\n filteredSortedRowsNumber () {\n return this.filteredSortedRows.length\n },\n\n computedRows () {\n let rows = this.filteredSortedRows\n\n if (this.isServerSide === true) {\n return rows\n }\n\n const { rowsPerPage } = this.computedPagination\n\n if (rowsPerPage !== 0) {\n if (this.firstRowIndex === 0 && this.data !== rows) {\n if (rows.length > this.lastRowIndex) {\n rows = rows.slice(0, this.lastRowIndex)\n }\n }\n else {\n rows = rows.slice(this.firstRowIndex, this.lastRowIndex)\n }\n }\n\n return rows\n },\n\n computedRowsNumber () {\n return this.isServerSide === true\n ? this.computedPagination.rowsNumber || 0\n : this.filteredSortedRowsNumber\n },\n\n nothingToDisplay () {\n return this.computedRows.length === 0\n },\n\n isServerSide () {\n return this.computedPagination.rowsNumber !== void 0\n },\n\n cardDefaultClass () {\n return ' q-table__card' +\n (this.isDark === true ? ' q-table__card--dark q-dark' : '') +\n (this.square === true ? ' q-table--square' : '') +\n (this.flat === true ? ' q-table--flat' : '') +\n (this.bordered === true ? ' q-table--bordered' : '')\n },\n\n __containerClass () {\n return `q-table__container q-table--${this.separator}-separator column no-wrap` +\n (this.grid === true ? ' q-table--grid' : this.cardDefaultClass) +\n (this.isDark === true ? ' q-table--dark' : '') +\n (this.dense === true ? ' q-table--dense' : '') +\n (this.wrapCells === false ? ' q-table--no-wrap' : '') +\n (this.inFullscreen === true ? ' fullscreen scroll' : '')\n },\n\n containerClass () {\n // do not trigger a refresh of the table when the loading status is changed\n return this.__containerClass +\n (this.loading === true ? ' q-table--loading' : '')\n },\n\n virtProps () {\n const props = {}\n\n commonVirtPropsList\n .forEach(p => { props[p] = this[p] })\n\n if (props.virtualScrollItemSize === void 0) {\n props.virtualScrollItemSize = this.dense === true ? 28 : 48\n }\n\n return props\n }\n },\n\n render (h) {\n const child = [ this.__getTopDiv(h) ]\n const data = { staticClass: this.containerClass }\n\n if (this.grid === true) {\n child.push(this.__getGridHeader(h))\n }\n else {\n Object.assign(data, {\n class: this.cardClass,\n style: this.cardStyle\n })\n }\n\n child.push(\n this.__getBody(h),\n this.__getBottomDiv(h)\n )\n\n if (this.loading === true && this.$scopedSlots.loading !== void 0) {\n child.push(\n this.$scopedSlots.loading()\n )\n }\n\n return h('div', data, child)\n },\n\n methods: {\n requestServerInteraction (prop = {}) {\n this.$nextTick(() => {\n this.$emit('request', {\n pagination: prop.pagination || this.computedPagination,\n filter: prop.filter || this.filter,\n getCellValue: this.getCellValue\n })\n })\n },\n\n resetVirtualScroll () {\n this.hasVirtScroll === true && this.$refs.virtScroll.reset()\n },\n\n __getBody (h) {\n if (this.grid === true) {\n return this.__getGridBody(h)\n }\n\n const header = this.hideHeader !== true ? this.__getTHead(h) : null\n\n if (this.hasVirtScroll === true) {\n const topRow = this.$scopedSlots['top-row']\n const bottomRow = this.$scopedSlots['bottom-row']\n\n const virtSlots = {\n default: this.__getVirtualTBodyTR(h)\n }\n\n if (topRow !== void 0) {\n const topContent = h('tbody', topRow({ cols: this.computedCols }))\n\n virtSlots.before = header === null\n ? () => [topContent]\n : () => [header].concat(topContent)\n }\n else if (header !== null) {\n virtSlots.before = () => header\n }\n\n if (bottomRow !== void 0) {\n virtSlots.after = () => h('tbody', bottomRow({ cols: this.computedCols }))\n }\n\n return h(QVirtualScroll, {\n ref: 'virtScroll',\n props: {\n ...this.virtProps,\n items: this.computedRows,\n type: '__qtable',\n tableColspan: this.computedColspan\n },\n on: cache(this, 'vs', {\n 'virtual-scroll': this.__onVScroll\n }),\n class: this.tableClass,\n style: this.tableStyle,\n scopedSlots: virtSlots\n })\n }\n\n return getTableMiddle(h, {\n staticClass: 'scroll',\n class: this.tableClass,\n style: this.tableStyle\n }, [\n header,\n this.__getTBody(h)\n ])\n },\n\n scrollTo (toIndex, edge) {\n if (this.$refs.virtScroll !== void 0) {\n this.$refs.virtScroll.scrollTo(toIndex, edge)\n return\n }\n\n toIndex = parseInt(toIndex, 10)\n const rowEl = this.$el.querySelector(`tbody tr:nth-of-type(${toIndex + 1})`)\n\n if (rowEl !== null) {\n const scrollTarget = this.$el.querySelector('.q-table__middle.scroll')\n const offsetTop = rowEl.offsetTop - this.virtualScrollStickySizeStart\n const direction = offsetTop < scrollTarget.scrollTop ? 'decrease' : 'increase'\n\n scrollTarget.scrollTop = offsetTop\n\n this.$emit('virtual-scroll', {\n index: toIndex,\n from: 0,\n to: this.pagination.rowsPerPage - 1,\n direction\n })\n }\n },\n\n __onVScroll (info) {\n this.$emit('virtual-scroll', info)\n },\n\n __getProgress (h) {\n return [\n h(QLinearProgress, {\n staticClass: 'q-table__linear-progress',\n props: {\n color: this.color,\n dark: this.isDark,\n indeterminate: true,\n trackColor: 'transparent'\n }\n })\n ]\n }\n }\n})\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QTr',\n\n mixins: [ ListenersMixin ],\n\n props: {\n props: Object,\n noHover: Boolean\n },\n\n computed: {\n classes () {\n return 'q-tr' + (this.props === void 0 || this.props.header === true ? '' : ' ' + this.props.__trClass) +\n (this.noHover === true ? ' q-tr--no-hover' : '')\n }\n },\n\n render (h) {\n return h('tr', {\n on: { ...this.qListeners },\n class: this.classes\n }, slot(this, 'default'))\n }\n})\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QTd',\n\n mixins: [ ListenersMixin ],\n\n props: {\n props: Object,\n autoWidth: Boolean,\n noHover: Boolean\n },\n\n computed: {\n classes () {\n return 'q-td' + (this.autoWidth === true ? ' q-table--col-auto-width' : '') +\n (this.noHover === true ? ' q-td--no-hover' : '') + ' '\n }\n },\n\n render (h) {\n const on = this.qListeners\n\n if (this.props === void 0) {\n return h('td', {\n on,\n class: this.classes\n }, slot(this, 'default'))\n }\n\n const name = this.$vnode.key\n\n const col = this.props.colsMap !== void 0 && name\n ? this.props.colsMap[name]\n : this.props.col\n\n if (col === void 0) { return }\n\n const row = this.props.row\n\n return h('td', {\n on,\n style: col.__tdStyle(row),\n class: this.classes + col.__tdClass(row)\n }, slot(this, 'default'))\n }\n})\n","import QTable from './QTable.js'\nimport QTh from './QTh.js'\nimport QTr from './QTr.js'\nimport QTd from './QTd.js'\n\nexport {\n QTable,\n QTh,\n QTr,\n QTd\n}\n","import Vue from 'vue'\n\nimport QTab from './QTab.js'\nimport RouterLinkMixin from '../../mixins/router-link.js'\n\nexport default Vue.extend({\n name: 'QRouteTab',\n\n mixins: [ QTab, RouterLinkMixin ],\n\n watch: {\n routeModel () {\n this.$tabs.__verifyRouteModel()\n }\n },\n\n computed: {\n routeModel () {\n return `${this.name} | ${this.exact} | ${(this.resolvedLink || {}).href}`\n },\n\n // overwritten from RouterLinkMixin\n // because we want to discard the \"disable\" state\n hasRouterLinkProps () {\n return this.$router !== void 0 &&\n this.hasHrefLink !== true &&\n this.to !== void 0 && this.to !== null && this.to !== ''\n }\n },\n\n render (h) {\n return this.__renderTab(h, this.linkTag)\n }\n})\n","import QTabs from './QTabs.js'\nimport QTab from './QTab.js'\nimport QRouteTab from './QRouteTab.js'\n\nexport {\n QTabs,\n QTab,\n QRouteTab\n}\n","import Vue from 'vue'\n\nimport QBtn from '../btn/QBtn.js'\nimport TouchPan from '../../directives/TouchPan.js'\n\nimport { slot } from '../../utils/private/slot.js'\nimport { formatDate, __splitDate } from '../../utils/date.js'\nimport { position } from '../../utils/event.js'\nimport { pad } from '../../utils/format.js'\nimport cache from '../../utils/private/cache.js'\nimport DateTimeMixin from '../../mixins/datetime.js'\n\nexport default Vue.extend({\n name: 'QTime',\n\n mixins: [ DateTimeMixin ],\n\n directives: {\n TouchPan\n },\n\n props: {\n mask: {\n default: null\n },\n\n format24h: {\n type: Boolean,\n default: null\n },\n\n defaultDate: {\n type: String,\n validator: v => /^-?[\\d]+\\/[0-1]\\d\\/[0-3]\\d$/.test(v)\n },\n\n options: Function,\n hourOptions: Array,\n minuteOptions: Array,\n secondOptions: Array,\n\n withSeconds: Boolean,\n nowBtn: Boolean\n },\n\n data () {\n const model = __splitDate(\n this.value,\n this.__getMask(),\n this.__getLocale(),\n this.calendar,\n this.__getDefaultDateModel()\n )\n\n let view = 'Hour'\n\n if (model.hour !== null) {\n if (model.minute === null) {\n view = 'Minute'\n }\n else if (this.withSeconds === true && model.second === null) {\n view = 'Second'\n }\n }\n\n return {\n view,\n isAM: model.hour === null || model.hour < 12,\n innerModel: model\n }\n },\n\n watch: {\n value (v) {\n const model = __splitDate(\n v,\n this.computedMask,\n this.computedLocale,\n this.calendar,\n this.defaultDateModel\n )\n\n if (\n model.dateHash !== this.innerModel.dateHash ||\n model.timeHash !== this.innerModel.timeHash\n ) {\n this.innerModel = model\n\n if (model.hour === null) {\n this.view = 'Hour'\n }\n else {\n this.isAM = model.hour < 12\n }\n }\n },\n\n computedMask () {\n this.$nextTick(() => {\n this.__updateValue()\n })\n },\n\n computedLocale () {\n this.$nextTick(() => {\n this.__updateValue()\n })\n }\n },\n\n computed: {\n classes () {\n return `q-time q-time--${this.landscape === true ? 'landscape' : 'portrait'}` +\n (this.isDark === true ? ' q-time--dark q-dark' : '') +\n (this.disable === true ? ' disabled' : (this.readonly === true ? ' q-time--readonly' : '')) +\n (this.bordered === true ? ' q-time--bordered' : '') +\n (this.square === true ? ' q-time--square no-border-radius' : '') +\n (this.flat === true ? ' q-time--flat no-shadow' : '')\n },\n\n stringModel () {\n const time = this.innerModel\n\n return {\n hour: time.hour === null\n ? '--'\n : (\n this.computedFormat24h === true\n ? pad(time.hour)\n : String(\n this.isAM === true\n ? (time.hour === 0 ? 12 : time.hour)\n : (time.hour > 12 ? time.hour - 12 : time.hour)\n )\n ),\n minute: time.minute === null\n ? '--'\n : pad(time.minute),\n second: time.second === null\n ? '--'\n : pad(time.second)\n }\n },\n\n defaultDateModel () {\n return this.__getDefaultDateModel()\n },\n\n computedFormat24h () {\n return this.format24h !== null\n ? this.format24h\n : this.$q.lang.date.format24h\n },\n\n pointerStyle () {\n const\n forHour = this.view === 'Hour',\n divider = forHour === true ? 12 : 60,\n amount = this.innerModel[this.view.toLowerCase()],\n degrees = Math.round(amount * (360 / divider)) - 180\n\n let transform = `rotate(${degrees}deg) translateX(-50%)`\n\n if (\n forHour === true &&\n this.computedFormat24h === true &&\n this.innerModel.hour >= 12\n ) {\n transform += ' scale(.7)'\n }\n\n return { transform }\n },\n\n minLink () {\n return this.innerModel.hour !== null\n },\n\n secLink () {\n return this.minLink === true && this.innerModel.minute !== null\n },\n\n hourInSelection () {\n return this.hourOptions !== void 0\n ? val => this.hourOptions.includes(val)\n : (\n this.options !== void 0\n ? val => this.options(val, null, null)\n : void 0\n )\n },\n\n minuteInSelection () {\n return this.minuteOptions !== void 0\n ? val => this.minuteOptions.includes(val)\n : (\n this.options !== void 0\n ? val => this.options(this.innerModel.hour, val, null)\n : void 0\n )\n },\n\n secondInSelection () {\n return this.secondOptions !== void 0\n ? val => this.secondOptions.includes(val)\n : (\n this.options !== void 0\n ? val => this.options(this.innerModel.hour, this.innerModel.minute, val)\n : void 0\n )\n },\n\n validHours () {\n if (this.hourInSelection !== void 0) {\n const am = this.__getValidValues(0, 11, this.hourInSelection)\n const pm = this.__getValidValues(12, 11, this.hourInSelection)\n return { am, pm, values: am.values.concat(pm.values) }\n }\n },\n\n validMinutes () {\n if (this.minuteInSelection !== void 0) {\n return this.__getValidValues(0, 59, this.minuteInSelection)\n }\n },\n\n validSeconds () {\n if (this.secondInSelection !== void 0) {\n return this.__getValidValues(0, 59, this.secondInSelection)\n }\n },\n\n viewValidOptions () {\n switch (this.view) {\n case 'Hour':\n return this.validHours\n case 'Minute':\n return this.validMinutes\n case 'Second':\n return this.validSeconds\n }\n },\n\n positions () {\n let start, end, offset = 0, step = 1\n const values = this.viewValidOptions !== void 0\n ? this.viewValidOptions.values\n : void 0\n\n if (this.view === 'Hour') {\n if (this.computedFormat24h === true) {\n start = 0\n end = 23\n }\n else {\n start = 0\n end = 11\n\n if (this.isAM === false) {\n offset = 12\n }\n }\n }\n else {\n start = 0\n end = 55\n step = 5\n }\n\n const pos = []\n\n for (let val = start, index = start; val <= end; val += step, index++) {\n const\n actualVal = val + offset,\n disable = values !== void 0 && values.includes(actualVal) === false,\n label = this.view === 'Hour' && val === 0\n ? (this.computedFormat24h === true ? '00' : '12')\n : val\n\n pos.push({ val: actualVal, index, disable, label })\n }\n\n return pos\n }\n },\n\n methods: {\n setNow () {\n const date = {\n ...this.__getCurrentDate(),\n ...this.__getCurrentTime()\n }\n\n this.__updateValue(date)\n Object.assign(this.innerModel, date) // reset any pending changes to innerModel\n\n this.view = 'Hour'\n },\n\n __getValidValues (start, count, testFn) {\n const values = Array.apply(null, { length: count + 1 })\n .map((_, index) => {\n const i = index + start\n return {\n index: i,\n val: testFn(i) === true // force boolean\n }\n })\n .filter(v => v.val === true)\n .map(v => v.index)\n\n return {\n min: values[0],\n max: values[values.length - 1],\n values,\n threshold: count + 1\n }\n },\n\n __getWheelDist (a, b, threshold) {\n const diff = Math.abs(a - b)\n return Math.min(diff, threshold - diff)\n },\n\n __getNormalizedClockValue (val, { min, max, values, threshold }) {\n if (val === min) {\n return min\n }\n\n if (val < min || val > max) {\n return this.__getWheelDist(val, min, threshold) <= this.__getWheelDist(val, max, threshold)\n ? min\n : max\n }\n\n const\n index = values.findIndex(v => val <= v),\n before = values[index - 1],\n after = values[index]\n\n return val - before <= after - val\n ? before\n : after\n },\n\n __getMask () {\n return this.calendar !== 'persian' && this.mask !== null\n ? this.mask\n : `HH:mm${this.withSeconds === true ? ':ss' : ''}`\n },\n\n __getDefaultDateModel () {\n if (typeof this.defaultDate !== 'string') {\n const date = this.__getCurrentDate(true)\n date.dateHash = this.__getDayHash(date)\n return date\n }\n\n return __splitDate(this.defaultDate, 'YYYY/MM/DD', void 0, this.calendar)\n },\n\n __click (evt) {\n if (this.__shouldAbortInteraction() !== true) {\n // __activate() has already updated the offset\n // (on desktop only, through mousedown event)\n if (this.$q.platform.is.desktop !== true) {\n this.__updateClock(evt, this.__getClockRect())\n }\n\n this.__goToNextView()\n }\n },\n\n __activate (evt) {\n if (this.__shouldAbortInteraction() !== true) {\n this.__updateClock(evt, this.__getClockRect())\n }\n },\n\n __shouldAbortInteraction () {\n return this._isBeingDestroyed === true ||\n this._isDestroyed === true ||\n // if we have limited options, can we actually set any?\n (\n this.viewValidOptions !== void 0 &&\n (\n this.viewValidOptions.values.length === 0 ||\n (\n this.view === 'Hour' && this.computedFormat24h !== true &&\n this.validHours[this.isAM === true ? 'am' : 'pm'].values.length === 0\n )\n )\n )\n },\n\n __getClockRect () {\n const\n clock = this.$refs.clock,\n { top, left, width } = clock.getBoundingClientRect(),\n dist = width / 2\n\n return {\n top: top + dist,\n left: left + dist,\n dist: dist * 0.7\n }\n },\n\n __goToNextView () {\n if (this.view === 'Hour') {\n this.view = 'Minute'\n }\n else if (this.withSeconds && this.view === 'Minute') {\n this.view = 'Second'\n }\n },\n\n __drag (event) {\n if (this.__shouldAbortInteraction() === true) {\n return\n }\n\n if (event.isFirst === true) {\n this.draggingClockRect = this.__getClockRect()\n this.dragCache = this.__updateClock(event.evt, this.draggingClockRect)\n return\n }\n\n this.dragCache = this.__updateClock(event.evt, this.draggingClockRect, this.dragCache)\n\n if (event.isFinal === true) {\n this.draggingClockRect = false\n this.dragCache = null\n this.__goToNextView()\n }\n },\n\n __updateClock (evt, clockRect, cacheVal) {\n const\n pos = position(evt),\n height = Math.abs(pos.top - clockRect.top),\n distance = Math.sqrt(\n Math.pow(Math.abs(pos.top - clockRect.top), 2) +\n Math.pow(Math.abs(pos.left - clockRect.left), 2)\n )\n\n let\n val,\n angle = Math.asin(height / distance) * (180 / Math.PI)\n\n if (pos.top < clockRect.top) {\n angle = clockRect.left < pos.left ? 90 - angle : 270 + angle\n }\n else {\n angle = clockRect.left < pos.left ? angle + 90 : 270 - angle\n }\n\n if (this.view === 'Hour') {\n val = angle / 30\n\n if (this.validHours !== void 0) {\n const am = this.computedFormat24h !== true\n ? this.isAM === true\n : (\n this.validHours.am.values.length > 0 && this.validHours.pm.values.length > 0\n ? distance >= clockRect.dist\n : this.validHours.am.values.length > 0\n )\n\n val = this.__getNormalizedClockValue(\n val + (am === true ? 0 : 12),\n this.validHours[am === true ? 'am' : 'pm']\n )\n }\n else {\n val = Math.round(val)\n\n if (this.computedFormat24h === true) {\n if (distance < clockRect.dist) {\n if (val < 12) {\n val += 12\n }\n }\n else if (val === 12) {\n val = 0\n }\n }\n else if (this.isAM === true && val === 12) {\n val = 0\n }\n else if (this.isAM === false && val !== 12) {\n val += 12\n }\n }\n\n if (this.computedFormat24h === true) {\n this.isAM = val < 12\n }\n }\n else {\n val = Math.round(angle / 6) % 60\n\n if (this.view === 'Minute' && this.validMinutes !== void 0) {\n val = this.__getNormalizedClockValue(val, this.validMinutes)\n }\n else if (this.view === 'Second' && this.validSeconds !== void 0) {\n val = this.__getNormalizedClockValue(val, this.validSeconds)\n }\n }\n\n if (cacheVal !== val) {\n this[`__set${this.view}`](val)\n }\n\n return val\n },\n\n __onKeyupHour (e) {\n if (e.keyCode === 13) { // ENTER\n this.view = 'Hour'\n }\n else if ([ 37, 39 ].includes(e.keyCode)) {\n const payload = e.keyCode === 37 ? -1 : 1\n\n if (this.validHours !== void 0) {\n const values = this.computedFormat24h === true\n ? this.validHours.values\n : this.validHours[this.isAM === true ? 'am' : 'pm'].values\n\n if (values.length === 0) { return }\n\n if (this.innerModel.hour === null) {\n this.__setHour(values[0])\n }\n else {\n const index = (\n values.length +\n values.indexOf(this.innerModel.hour) +\n payload\n ) % values.length\n\n this.__setHour(values[index])\n }\n }\n else {\n const\n wrap = this.computedFormat24h === true ? 24 : 12,\n offset = this.computedFormat24h !== true && this.isAM === false ? 12 : 0,\n val = this.innerModel.hour === null ? -payload : this.innerModel.hour\n\n this.__setHour(offset + (24 + val + payload) % wrap)\n }\n }\n },\n\n __onKeyupMinute (e) {\n if (e.keyCode === 13) { // ENTER\n this.view = 'Minute'\n }\n else if ([ 37, 39 ].includes(e.keyCode)) {\n const payload = e.keyCode === 37 ? -1 : 1\n\n if (this.validMinutes !== void 0) {\n const values = this.validMinutes.values\n\n if (values.length === 0) { return }\n\n if (this.innerModel.minute === null) {\n this.__setMinute(values[0])\n }\n else {\n const index = (\n values.length +\n values.indexOf(this.innerModel.minute) +\n payload\n ) % values.length\n\n this.__setMinute(values[index])\n }\n }\n else {\n const val = this.innerModel.minute === null ? -payload : this.innerModel.minute\n this.__setMinute((60 + val + payload) % 60)\n }\n }\n },\n\n __onKeyupSecond (e) {\n if (e.keyCode === 13) { // ENTER\n this.view = 'Second'\n }\n else if ([ 37, 39 ].includes(e.keyCode)) {\n const payload = e.keyCode === 37 ? -1 : 1\n\n if (this.validSeconds !== void 0) {\n const values = this.validSeconds.values\n\n if (values.length === 0) { return }\n\n if (this.innerModel.seconds === null) {\n this.__setSecond(values[0])\n }\n else {\n const index = (\n values.length +\n values.indexOf(this.innerModel.second) +\n payload\n ) % values.length\n\n this.__setSecond(values[index])\n }\n }\n else {\n const val = this.innerModel.second === null ? -payload : this.innerModel.second\n this.__setSecond((60 + val + payload) % 60)\n }\n }\n },\n\n __getHeader (h) {\n const label = [\n h('div', {\n staticClass: 'q-time__link',\n class: this.view === 'Hour' ? 'q-time__link--active' : 'cursor-pointer',\n attrs: { tabindex: this.computedTabindex },\n on: cache(this, 'vH', {\n click: () => { this.view = 'Hour' },\n keyup: this.__onKeyupHour\n })\n }, [ this.stringModel.hour ]),\n\n h('div', [ ':' ]),\n\n h(\n 'div',\n this.minLink === true\n ? {\n staticClass: 'q-time__link',\n class: this.view === 'Minute' ? 'q-time__link--active' : 'cursor-pointer',\n attrs: { tabindex: this.computedTabindex },\n on: cache(this, 'vM', {\n click: () => { this.view = 'Minute' },\n keyup: this.__onKeyupMinute\n })\n }\n : { staticClass: 'q-time__link' },\n [ this.stringModel.minute ]\n )\n ]\n\n if (this.withSeconds === true) {\n label.push(\n h('div', [ ':' ]),\n\n h(\n 'div',\n this.secLink === true\n ? {\n staticClass: 'q-time__link',\n class: this.view === 'Second' ? 'q-time__link--active' : 'cursor-pointer',\n attrs: { tabindex: this.computedTabindex },\n on: cache(this, 'vS', {\n click: () => { this.view = 'Second' },\n keyup: this.__onKeyupSecond\n })\n }\n : { staticClass: 'q-time__link' },\n [ this.stringModel.second ]\n )\n )\n }\n\n return h('div', {\n staticClass: 'q-time__header flex flex-center no-wrap',\n class: this.headerClass\n }, [\n h('div', {\n staticClass: 'q-time__header-label row items-center no-wrap',\n attrs: { dir: 'ltr' }\n }, label),\n\n this.computedFormat24h === false ? h('div', {\n staticClass: 'q-time__header-ampm column items-between no-wrap'\n }, [\n h('div', {\n staticClass: 'q-time__link',\n class: this.isAM === true ? 'q-time__link--active' : 'cursor-pointer',\n attrs: { tabindex: this.computedTabindex },\n on: cache(this, 'AM', {\n click: this.__setAm,\n keyup: e => { e.keyCode === 13 && this.__setAm() }\n })\n }, [ 'AM' ]),\n\n h('div', {\n staticClass: 'q-time__link',\n class: this.isAM !== true ? 'q-time__link--active' : 'cursor-pointer',\n attrs: { tabindex: this.computedTabindex },\n on: cache(this, 'PM', {\n click: this.__setPm,\n keyup: e => { e.keyCode === 13 && this.__setPm() }\n })\n }, [ 'PM' ])\n ]) : null\n ])\n },\n\n __getClock (h) {\n const\n view = this.view.toLowerCase(),\n current = this.innerModel[view]\n\n return h('div', {\n staticClass: 'q-time__content col relative-position'\n }, [\n h('transition', {\n props: { name: 'q-transition--scale' }\n }, [\n h('div', {\n key: 'clock' + this.view,\n staticClass: 'q-time__container-parent absolute-full'\n }, [\n h('div', {\n ref: 'clock',\n staticClass: 'q-time__container-child fit overflow-hidden'\n }, [\n h('div', {\n staticClass: 'q-time__clock cursor-pointer non-selectable',\n on: cache(this, 'click', {\n click: this.__click,\n mousedown: this.__activate\n }),\n directives: cache(this, 'touch', [{\n name: 'touch-pan',\n value: this.__drag,\n modifiers: {\n stop: true,\n prevent: true,\n mouse: true\n }\n }])\n }, [\n h('div', { staticClass: 'q-time__clock-circle fit' }, [\n h('div', {\n staticClass: 'q-time__clock-pointer',\n style: this.pointerStyle,\n class: this.innerModel[view] === null ? 'hidden' : (this.color !== void 0 ? `text-${this.color}` : '')\n }),\n\n this.positions.map(pos => h('div', {\n staticClass: `q-time__clock-position row flex-center q-time__clock-pos-${pos.index}`,\n class: pos.val === current\n ? this.headerClass.concat(' q-time__clock-position--active')\n : (pos.disable === true ? 'q-time__clock-position--disable' : null)\n }, [ h('span', [ pos.label ]) ]))\n ])\n ])\n ])\n ])\n ]),\n\n this.nowBtn === true ? h(QBtn, {\n staticClass: 'q-time__now-button absolute',\n props: {\n icon: this.$q.iconSet.datetime.now,\n unelevated: true,\n size: 'sm',\n round: true,\n color: this.color,\n textColor: this.textColor,\n tabindex: this.computedTabindex\n },\n on: cache(this, 'now', {\n click: this.setNow\n })\n }) : null\n ])\n },\n\n __setHour (hour) {\n if (this.innerModel.hour !== hour) {\n this.innerModel.hour = hour\n this.innerModel.minute = null\n this.innerModel.second = null\n }\n },\n\n __setMinute (minute) {\n if (this.innerModel.minute !== minute) {\n this.innerModel.minute = minute\n this.innerModel.second = null\n this.withSeconds !== true && this.__updateValue({ minute })\n }\n },\n\n __setSecond (second) {\n this.innerModel.second !== second && this.__updateValue({ second })\n },\n\n __setAm () {\n if (this.isAM === false) {\n this.isAM = true\n\n if (this.innerModel.hour !== null) {\n this.innerModel.hour -= 12\n this.__verifyAndUpdate()\n }\n }\n },\n\n __setPm () {\n if (this.isAM === true) {\n this.isAM = false\n\n if (this.innerModel.hour !== null) {\n this.innerModel.hour += 12\n this.__verifyAndUpdate()\n }\n }\n },\n\n __verifyAndUpdate () {\n if (this.hourInSelection !== void 0 && this.hourInSelection(this.innerModel.hour) !== true) {\n this.innerModel = __splitDate()\n this.view = 'Hour'\n return\n }\n\n if (this.minuteInSelection !== void 0 && this.minuteInSelection(this.innerModel.minute) !== true) {\n this.innerModel.minute = null\n this.innerModel.second = null\n this.view = 'Minute'\n return\n }\n\n if (this.withSeconds === true && this.secondInSelection !== void 0 && this.secondInSelection(this.innerModel.second) !== true) {\n this.innerModel.second = null\n this.view = 'Second'\n return\n }\n\n if (this.innerModel.hour === null || this.innerModel.minute === null || (this.withSeconds === true && this.innerModel.second === null)) {\n return\n }\n\n this.__updateValue()\n },\n\n __updateValue (obj) {\n const date = Object.assign({ ...this.innerModel }, obj)\n\n const val = this.calendar === 'persian'\n ? pad(date.hour) + ':' +\n pad(date.minute) +\n (this.withSeconds === true ? ':' + pad(date.second) : '')\n : formatDate(\n new Date(\n date.year,\n date.month === null ? null : date.month - 1,\n date.day,\n date.hour,\n date.minute,\n date.second,\n date.millisecond\n ),\n this.computedMask,\n this.computedLocale,\n date.year,\n date.timezoneOffset\n )\n\n date.changed = val !== this.value\n this.$emit('input', val, date)\n }\n },\n\n render (h) {\n const child = [\n this.__getClock(h)\n ]\n\n const def = slot(this, 'default')\n def !== void 0 && child.push(\n h('div', { staticClass: 'q-time__actions' }, def)\n )\n\n if (this.name !== void 0 && this.disable !== true) {\n this.__injectFormInput(child, 'push')\n }\n\n return h('div', {\n class: this.classes,\n on: { ...this.qListeners },\n attrs: { tabindex: -1 }\n }, [\n this.__getHeader(h),\n h('div', { staticClass: 'q-time__main col overflow-auto' }, child)\n ])\n }\n})\n","import QTime from './QTime.js'\n\nexport {\n QTime\n}\n","import Vue from 'vue'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QTimeline',\n\n mixins: [ DarkMixin, ListenersMixin ],\n\n provide () {\n return {\n __timeline: this\n }\n },\n\n props: {\n color: {\n type: String,\n default: 'primary'\n },\n side: {\n type: String,\n default: 'right',\n validator: v => ['left', 'right'].includes(v)\n },\n layout: {\n type: String,\n default: 'dense',\n validator: v => ['dense', 'comfortable', 'loose'].includes(v)\n }\n },\n\n computed: {\n classes () {\n return `q-timeline--${this.layout} q-timeline--${this.layout}--${this.side}` +\n (this.isDark === true ? ' q-timeline--dark' : '')\n }\n },\n\n render (h) {\n return h('ul', {\n staticClass: 'q-timeline',\n class: this.classes,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot, uniqueSlot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QTimelineEntry',\n\n inject: {\n __timeline: {\n default () {\n console.error('QTimelineEntry needs to be child of QTimeline')\n }\n }\n },\n\n mixins: [ ListenersMixin ],\n\n props: {\n heading: Boolean,\n tag: {\n type: String,\n default: 'h3'\n },\n side: {\n type: String,\n default: 'right',\n validator: v => ['left', 'right'].includes(v)\n },\n\n icon: String,\n avatar: String,\n\n color: String,\n\n title: String,\n subtitle: String,\n body: String\n },\n\n computed: {\n colorClass () {\n return `text-${this.color || this.__timeline.color}`\n },\n\n classes () {\n return `q-timeline__entry--${this.side}` +\n (this.icon !== void 0 || this.avatar !== void 0 ? ' q-timeline__entry--icon' : '')\n },\n\n reverse () {\n return this.__timeline.layout === 'comfortable' && this.__timeline.side === 'left'\n }\n },\n\n render (h) {\n const child = uniqueSlot(this, 'default', [])\n\n if (this.body !== void 0) {\n child.unshift(this.body)\n }\n\n if (this.heading === true) {\n const content = [\n h('div'),\n h('div'),\n h(\n this.tag,\n { staticClass: 'q-timeline__heading-title' },\n child\n )\n ]\n\n return h('div', {\n staticClass: 'q-timeline__heading',\n on: { ...this.qListeners }\n }, this.reverse === true ? content.reverse() : content)\n }\n\n let dot\n\n if (this.icon !== void 0) {\n dot = [\n h(QIcon, {\n staticClass: 'row items-center justify-center',\n props: { name: this.icon }\n })\n ]\n }\n else if (this.avatar !== void 0) {\n dot = [\n h('img', {\n staticClass: 'q-timeline__dot-img',\n domProps: { src: this.avatar }\n })\n ]\n }\n\n const content = [\n h('div', { staticClass: 'q-timeline__subtitle' }, [\n h('span', slot(this, 'subtitle', [ this.subtitle ]))\n ]),\n\n h('div', {\n staticClass: 'q-timeline__dot',\n class: this.colorClass\n }, dot),\n\n h('div', { staticClass: 'q-timeline__content' }, [\n h('h6', { staticClass: 'q-timeline__title' }, slot(this, 'title', [ this.title ]))\n ].concat(child))\n ]\n\n return h('li', {\n staticClass: 'q-timeline__entry',\n class: this.classes,\n on: { ...this.qListeners }\n }, this.reverse === true ? content.reverse() : content)\n }\n})\n","import QTimeline from './QTimeline.js'\nimport QTimelineEntry from './QTimelineEntry.js'\n\nexport {\n QTimeline,\n QTimelineEntry\n}\n","import QToggle from './QToggle.js'\n\nexport {\n QToggle\n}\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nconst attrs = { role: 'toolbar' }\n\nexport default Vue.extend({\n name: 'QToolbar',\n\n mixins: [ ListenersMixin ],\n\n props: {\n inset: Boolean\n },\n\n render (h) {\n return h('div', {\n staticClass: 'q-toolbar row no-wrap items-center',\n class: this.inset ? 'q-toolbar--inset' : null,\n attrs,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/private/slot.js'\n\nexport default Vue.extend({\n name: 'QToolbarTitle',\n\n mixins: [ ListenersMixin ],\n\n props: {\n shrink: Boolean\n },\n\n computed: {\n classes () {\n return 'q-toolbar__title ellipsis' +\n (this.shrink === true ? ' col-shrink' : '')\n }\n },\n\n render (h) {\n return h('div', {\n class: this.classes,\n on: { ...this.qListeners }\n }, slot(this, 'default'))\n }\n})\n","import QToolbar from './QToolbar.js'\nimport QToolbarTitle from './QToolbarTitle.js'\n\nexport {\n QToolbar,\n QToolbarTitle\n}\n","import QTooltip from './QTooltip.js'\n\nexport {\n QTooltip\n}\n","import Vue from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\nimport QCheckbox from '../checkbox/QCheckbox.js'\nimport QSlideTransition from '../slide-transition/QSlideTransition.js'\nimport QSpinner from '../spinner/QSpinner.js'\nimport DarkMixin from '../../mixins/dark.js'\n\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { shouldIgnoreKey } from '../../utils/private/key-composition.js'\nimport cache from '../../utils/private/cache.js'\nimport { injectProp } from '../../utils/private/inject-obj-prop.js'\n\nconst tickStrategyOptions = [ 'none', 'strict', 'leaf', 'leaf-filtered' ]\n\nexport default Vue.extend({\n name: 'QTree',\n\n mixins: [ DarkMixin ],\n\n props: {\n nodes: {\n type: Array,\n required: true\n },\n nodeKey: {\n type: String,\n required: true\n },\n labelKey: {\n type: String,\n default: 'label'\n },\n childrenKey: {\n type: String,\n default: 'children'\n },\n\n dense: Boolean,\n\n color: String,\n controlColor: String,\n textColor: String,\n selectedColor: String,\n\n icon: String,\n\n tickStrategy: {\n type: String,\n default: 'none',\n validator: v => tickStrategyOptions.includes(v)\n },\n ticked: Array, // sync\n expanded: Array, // sync\n selected: {}, // sync\n\n noSelectionUnset: Boolean,\n\n defaultExpandAll: Boolean,\n accordion: Boolean,\n\n filter: String,\n filterMethod: {\n type: Function,\n default (node, filter) {\n const filt = filter.toLowerCase()\n return node[this.labelKey] &&\n node[this.labelKey].toLowerCase().indexOf(filt) > -1\n }\n },\n\n duration: Number,\n noConnectors: Boolean,\n noTransition: Boolean,\n\n noNodesLabel: String,\n noResultsLabel: String\n },\n\n computed: {\n classes () {\n return `q-tree q-tree--${this.dense === true ? 'dense' : 'standard'}` +\n (this.noConnectors === true ? ' q-tree--no-connectors' : '') +\n (this.isDark === true ? ' q-tree--dark' : '') +\n (this.color !== void 0 ? ` text-${this.color}` : '')\n },\n\n hasSelection () {\n return this.selected !== void 0\n },\n\n computedIcon () {\n return this.icon || this.$q.iconSet.tree.icon\n },\n\n computedControlColor () {\n return this.controlColor || this.color\n },\n\n textColorClass () {\n if (this.textColor !== void 0) {\n return `text-${this.textColor}`\n }\n },\n\n selectedColorClass () {\n const color = this.selectedColor || this.color\n if (color) {\n return `text-${color}`\n }\n },\n\n meta () {\n const meta = {}\n\n const travel = (node, parent) => {\n const tickStrategy = node.tickStrategy || (parent ? parent.tickStrategy : this.tickStrategy)\n const\n key = node[this.nodeKey],\n isParent = node[this.childrenKey] && node[this.childrenKey].length > 0,\n selectable = node.disabled !== true && this.hasSelection === true && node.selectable !== false,\n expandable = node.disabled !== true && node.expandable !== false,\n hasTicking = tickStrategy !== 'none',\n strictTicking = tickStrategy === 'strict',\n leafFilteredTicking = tickStrategy === 'leaf-filtered',\n leafTicking = tickStrategy === 'leaf' || tickStrategy === 'leaf-filtered'\n\n let tickable = node.disabled !== true && node.tickable !== false\n if (leafTicking === true && tickable === true && parent && parent.tickable !== true) {\n tickable = false\n }\n\n let lazy = node.lazy\n if (\n lazy === true &&\n this.lazy[key] !== void 0 &&\n Array.isArray(node[this.childrenKey]) === true\n ) {\n lazy = this.lazy[key]\n }\n\n const m = {\n key,\n parent,\n isParent,\n lazy,\n disabled: node.disabled,\n link: node.disabled !== true && (selectable === true || (expandable === true && (isParent === true || lazy === true))),\n children: [],\n matchesFilter: this.filter ? this.filterMethod(node, this.filter) : true,\n\n selected: key === this.selected && selectable === true,\n selectable,\n expanded: isParent === true ? this.innerExpanded.includes(key) : false,\n expandable,\n noTick: node.noTick === true || (strictTicking !== true && lazy && lazy !== 'loaded'),\n tickable,\n tickStrategy,\n hasTicking,\n strictTicking,\n leafFilteredTicking,\n leafTicking,\n ticked: strictTicking === true\n ? this.innerTicked.includes(key)\n : (isParent === true ? false : this.innerTicked.includes(key))\n }\n\n meta[key] = m\n\n if (isParent === true) {\n m.children = node[this.childrenKey].map(n => travel(n, m))\n\n if (this.filter) {\n if (m.matchesFilter !== true) {\n m.matchesFilter = m.children.some(n => n.matchesFilter)\n }\n else if (\n m.noTick !== true &&\n m.disabled !== true &&\n m.tickable === true &&\n leafFilteredTicking === true &&\n m.children.every(n => n.matchesFilter !== true || n.noTick === true || n.tickable !== true) === true\n ) {\n m.tickable = false\n }\n }\n\n if (m.matchesFilter === true) {\n if (m.noTick !== true && strictTicking !== true && m.children.every(n => n.noTick) === true) {\n m.noTick = true\n }\n\n if (leafTicking) {\n m.ticked = false\n m.indeterminate = m.children.some(node => node.indeterminate === true)\n m.tickable = m.tickable === true && m.children.some(node => node.tickable)\n\n if (m.indeterminate !== true) {\n const sel = m.children\n .reduce((acc, meta) => meta.ticked === true ? acc + 1 : acc, 0)\n\n if (sel === m.children.length) {\n m.ticked = true\n }\n else if (sel > 0) {\n m.indeterminate = true\n }\n }\n\n if (m.indeterminate === true) {\n m.indeterminateNextState = m.children\n .every(meta => meta.tickable !== true || meta.ticked !== true)\n }\n }\n }\n }\n\n return m\n }\n\n this.nodes.forEach(node => travel(node, null))\n return meta\n }\n },\n\n data () {\n return {\n lazy: {},\n innerTicked: this.ticked || [],\n innerExpanded: this.expanded || []\n }\n },\n\n watch: {\n ticked (val) {\n this.innerTicked = val\n },\n\n expanded (val) {\n this.innerExpanded = val\n }\n },\n\n methods: {\n getNodeByKey (key) {\n const reduce = [].reduce\n\n const find = (result, node) => {\n if (result || !node) {\n return result\n }\n if (Array.isArray(node) === true) {\n return reduce.call(Object(node), find, result)\n }\n if (node[this.nodeKey] === key) {\n return node\n }\n if (node[this.childrenKey]) {\n return find(null, node[this.childrenKey])\n }\n }\n\n return find(null, this.nodes)\n },\n\n getTickedNodes () {\n return this.innerTicked.map(key => this.getNodeByKey(key))\n },\n\n getExpandedNodes () {\n return this.innerExpanded.map(key => this.getNodeByKey(key))\n },\n\n isExpanded (key) {\n return key && this.meta[key]\n ? this.meta[key].expanded\n : false\n },\n\n collapseAll () {\n if (this.expanded !== void 0) {\n this.$emit('update:expanded', [])\n }\n else {\n this.innerExpanded = []\n }\n },\n\n expandAll () {\n const\n expanded = this.innerExpanded,\n travel = node => {\n if (node[this.childrenKey] && node[this.childrenKey].length > 0) {\n if (node.expandable !== false && node.disabled !== true) {\n expanded.push(node[this.nodeKey])\n node[this.childrenKey].forEach(travel)\n }\n }\n }\n\n this.nodes.forEach(travel)\n\n if (this.expanded !== void 0) {\n this.$emit('update:expanded', expanded)\n }\n else {\n this.innerExpanded = expanded\n }\n },\n\n setExpanded (key, state, node = this.getNodeByKey(key), meta = this.meta[key]) {\n if (meta.lazy && meta.lazy !== 'loaded') {\n if (meta.lazy === 'loading') {\n return\n }\n\n this.$set(this.lazy, key, 'loading')\n if (Array.isArray(node[this.childrenKey]) !== true) {\n this.$set(node, this.childrenKey, [])\n }\n this.$emit('lazy-load', {\n node,\n key,\n done: children => {\n this.lazy[key] = 'loaded'\n this.$set(node, this.childrenKey, Array.isArray(children) === true ? children : [])\n this.$nextTick(() => {\n const m = this.meta[key]\n if (m && m.isParent === true) {\n this.__setExpanded(key, true)\n }\n })\n },\n fail: () => {\n this.$delete(this.lazy, key)\n if (node[this.childrenKey].length === 0) {\n this.$delete(node, this.childrenKey)\n }\n }\n })\n }\n else if (meta.isParent === true && meta.expandable === true) {\n this.__setExpanded(key, state)\n }\n },\n\n __setExpanded (key, state) {\n let target = this.innerExpanded\n const emit = this.expanded !== void 0\n\n if (emit === true) {\n target = target.slice()\n }\n\n if (state) {\n if (this.accordion) {\n if (this.meta[key]) {\n const collapse = []\n if (this.meta[key].parent) {\n this.meta[key].parent.children.forEach(m => {\n if (m.key !== key && m.expandable === true) {\n collapse.push(m.key)\n }\n })\n }\n else {\n this.nodes.forEach(node => {\n const k = node[this.nodeKey]\n if (k !== key) {\n collapse.push(k)\n }\n })\n }\n if (collapse.length > 0) {\n target = target.filter(k => collapse.includes(k) === false)\n }\n }\n }\n\n target = target.concat([ key ])\n .filter((key, index, self) => self.indexOf(key) === index)\n }\n else {\n target = target.filter(k => k !== key)\n }\n\n if (emit === true) {\n this.$emit('update:expanded', target)\n }\n else {\n this.innerExpanded = target\n }\n },\n\n isTicked (key) {\n return key && this.meta[key]\n ? this.meta[key].ticked\n : false\n },\n\n setTicked (keys, state) {\n let target = this.innerTicked\n const emit = this.ticked !== void 0\n\n if (emit === true) {\n target = target.slice()\n }\n\n if (state) {\n target = target.concat(keys)\n .filter((key, index, self) => self.indexOf(key) === index)\n }\n else {\n target = target.filter(k => keys.includes(k) === false)\n }\n\n if (emit === true) {\n this.$emit('update:ticked', target)\n }\n },\n\n __getSlotScope (node, meta, key) {\n const scope = { tree: this, node, key, color: this.color, dark: this.isDark }\n\n injectProp(\n scope,\n 'expanded',\n () => { return meta.expanded },\n val => { val !== meta.expanded && this.setExpanded(key, val) }\n )\n\n injectProp(\n scope,\n 'ticked',\n () => { return meta.ticked },\n val => { val !== meta.ticked && this.setTicked([ key ], val) }\n )\n\n return scope\n },\n\n __getChildren (h, nodes) {\n return (\n this.filter\n ? nodes.filter(n => this.meta[n[this.nodeKey]].matchesFilter)\n : nodes\n ).map(child => this.__getNode(h, child))\n },\n\n __getNodeMedia (h, node) {\n if (node.icon !== void 0) {\n return h(QIcon, {\n staticClass: 'q-tree__icon q-mr-sm',\n props: { name: node.icon, color: node.iconColor }\n })\n }\n const src = node.img || node.avatar\n if (src) {\n return h('img', {\n staticClass: `q-tree__${node.img ? 'img' : 'avatar'} q-mr-sm`,\n attrs: { src }\n })\n }\n },\n\n __getNode (h, node) {\n const\n key = node[this.nodeKey],\n meta = this.meta[key],\n header = node.header\n ? this.$scopedSlots[`header-${node.header}`] || this.$scopedSlots['default-header']\n : this.$scopedSlots['default-header']\n\n const children = meta.isParent === true\n ? this.__getChildren(h, node[this.childrenKey])\n : []\n\n const isParent = children.length > 0 || (meta.lazy && meta.lazy !== 'loaded')\n\n let body = node.body\n ? this.$scopedSlots[`body-${node.body}`] || this.$scopedSlots['default-body']\n : this.$scopedSlots['default-body']\n const slotScope = header !== void 0 || body !== void 0\n ? this.__getSlotScope(node, meta, key)\n : null\n\n if (body !== void 0) {\n body = h('div', { staticClass: 'q-tree__node-body relative-position' }, [\n h('div', { class: this.textColorClass }, [\n body(slotScope)\n ])\n ])\n }\n\n return h('div', {\n key,\n staticClass: 'q-tree__node relative-position',\n class: { 'q-tree__node--parent': isParent, 'q-tree__node--child': !isParent }\n }, [\n h('div', {\n staticClass: 'q-tree__node-header relative-position row no-wrap items-center',\n class: {\n 'q-tree__node--link q-hoverable q-focusable': meta.link,\n 'q-tree__node--selected': meta.selected,\n 'q-tree__node--disabled': meta.disabled\n },\n attrs: { tabindex: meta.link ? 0 : -1 },\n on: {\n click: (e) => {\n this.__onClick(node, meta, e)\n },\n keypress: e => {\n if (shouldIgnoreKey(e) !== true) {\n if (e.keyCode === 13) { this.__onClick(node, meta, e, true) }\n else if (e.keyCode === 32) { this.__onExpandClick(node, meta, e, true) }\n }\n }\n }\n }, [\n h('div', { staticClass: 'q-focus-helper', attrs: { tabindex: -1 }, ref: `blurTarget_${meta.key}` }),\n\n meta.lazy === 'loading'\n ? h(QSpinner, {\n staticClass: 'q-tree__spinner',\n props: { color: this.computedControlColor }\n })\n : (\n isParent === true\n ? h(QIcon, {\n staticClass: 'q-tree__arrow',\n class: { 'q-tree__arrow--rotate': meta.expanded },\n props: { name: this.computedIcon },\n on: {\n click: e => {\n this.__onExpandClick(node, meta, e)\n }\n }\n })\n : null\n ),\n\n meta.hasTicking === true && meta.noTick !== true\n ? h(QCheckbox, {\n staticClass: 'q-tree__tickbox',\n props: {\n value: meta.indeterminate === true ? null : meta.ticked,\n color: this.computedControlColor,\n dark: this.isDark,\n dense: true,\n keepColor: true,\n disable: meta.tickable !== true\n },\n on: {\n keydown: stopAndPrevent,\n input: v => {\n this.__onTickedClick(meta, v)\n }\n }\n })\n : null,\n\n h('div', {\n 'staticClass': 'q-tree__node-header-content col row no-wrap items-center',\n class: meta.selected ? this.selectedColorClass : this.textColorClass\n }, [\n header\n ? header(slotScope)\n : [\n this.__getNodeMedia(h, node),\n h('div', node[this.labelKey])\n ]\n ])\n ]),\n\n isParent === true\n ? (\n this.noTransition === true\n ? h('div', {\n staticClass: 'q-tree__node-collapsible',\n class: this.textColorClass,\n directives: [{ name: 'show', value: meta.expanded }]\n }, [\n body,\n\n h('div', {\n staticClass: 'q-tree__children',\n class: { 'q-tree__node--disabled': meta.disabled }\n }, children)\n ])\n\n : h(QSlideTransition, {\n props: { duration: this.duration },\n on: cache(this, 'slide', {\n show: () => { this.$emit('after-show') },\n hide: () => { this.$emit('after-hide') }\n })\n }, [\n h('div', {\n staticClass: 'q-tree__node-collapsible',\n class: this.textColorClass,\n directives: [{ name: 'show', value: meta.expanded }]\n }, [\n body,\n\n h('div', {\n staticClass: 'q-tree__children',\n class: { 'q-tree__node--disabled': meta.disabled }\n }, children)\n ])\n ])\n )\n : body\n ])\n },\n\n __blur (key) {\n const blurTarget = this.$refs[`blurTarget_${key}`]\n blurTarget !== void 0 && blurTarget.focus()\n },\n\n __onClick (node, meta, e, keyboard) {\n keyboard !== true && this.__blur(meta.key)\n\n if (this.hasSelection && meta.selectable) {\n if (this.noSelectionUnset === false) {\n this.$emit('update:selected', meta.key !== this.selected ? meta.key : null)\n }\n else if (meta.key !== this.selected) {\n this.$emit('update:selected', meta.key === void 0 ? null : meta.key)\n }\n }\n else {\n this.__onExpandClick(node, meta, e, keyboard)\n }\n\n if (typeof node.handler === 'function') {\n node.handler(node)\n }\n },\n\n __onExpandClick (node, meta, e, keyboard) {\n if (e !== void 0) {\n stopAndPrevent(e)\n }\n keyboard !== true && this.__blur(meta.key)\n this.setExpanded(meta.key, !meta.expanded, node, meta)\n },\n\n __onTickedClick (meta, state) {\n if (meta.indeterminate === true) {\n state = meta.indeterminateNextState\n }\n if (meta.strictTicking) {\n this.setTicked([ meta.key ], state)\n }\n else if (meta.leafTicking) {\n const keys = []\n const travel = meta => {\n if (meta.isParent) {\n if (state !== true && meta.noTick !== true && meta.tickable === true) {\n keys.push(meta.key)\n }\n if (meta.leafTicking === true) {\n meta.children.forEach(travel)\n }\n }\n else if (\n meta.noTick !== true &&\n meta.tickable === true &&\n (meta.leafFilteredTicking !== true || meta.matchesFilter === true)\n ) {\n keys.push(meta.key)\n }\n }\n travel(meta)\n this.setTicked(keys, state)\n }\n }\n },\n\n render (h) {\n const children = this.__getChildren(h, this.nodes)\n\n return h(\n 'div', {\n class: this.classes\n },\n children.length === 0\n ? (\n this.filter\n ? this.noResultsLabel || this.$q.lang.tree.noResults\n : this.noNodesLabel || this.$q.lang.tree.noNodes\n )\n : children\n )\n },\n\n created () {\n this.defaultExpandAll === true && this.expandAll()\n }\n})\n","import QTree from './QTree.js'\n\nexport {\n QTree\n}\n","import Vue from 'vue'\n\nimport QBtn from '../btn/QBtn.js'\nimport QIcon from '../icon/QIcon.js'\nimport QSpinner from '../spinner/QSpinner.js'\nimport QCircularProgress from '../circular-progress/QCircularProgress.js'\n\nimport FileMixin from '../../mixins/file.js'\nimport DarkMixin from '../../mixins/dark.js'\n\nimport { stop } from '../../utils/event.js'\nimport { humanStorageSize } from '../../utils/format.js'\nimport cache from '../../utils/private/cache.js'\n\nexport default Vue.extend({\n name: 'QUploaderBase',\n\n mixins: [ DarkMixin, FileMixin ],\n\n props: {\n label: String,\n\n color: String,\n textColor: String,\n\n square: Boolean,\n flat: Boolean,\n bordered: Boolean,\n\n noThumbnails: Boolean,\n autoUpload: Boolean,\n hideUploadBtn: Boolean,\n\n disable: Boolean,\n readonly: Boolean\n },\n\n provide () {\n return {\n __qUploaderGetInput: this.__getInputControl\n }\n },\n\n data () {\n return {\n files: [],\n queuedFiles: [],\n uploadedFiles: [],\n dnd: false,\n expanded: false,\n\n uploadSize: 0,\n uploadedSize: 0\n }\n },\n\n watch: {\n isUploading (newVal, oldVal) {\n if (oldVal === false && newVal === true) {\n this.$emit('start')\n }\n else if (oldVal === true && newVal === false) {\n this.$emit('finish')\n }\n }\n },\n\n computed: {\n /*\n * When extending:\n * Required : isUploading\n * Optional: isBusy\n */\n\n canUpload () {\n return this.editable === true &&\n this.isBusy !== true &&\n this.isUploading !== true &&\n this.queuedFiles.length > 0\n },\n\n canAddFiles () {\n return (\n this.editable === true &&\n this.isUploading !== true &&\n // if single selection and no files are queued:\n (this.multiple === true || this.queuedFiles.length === 0) &&\n // if max-files is set and current number of files does not exceeds it:\n (this.maxFiles === void 0 || this.files.length < this.maxFilesNumber) &&\n // if max-total-size is set and current upload size does not exceeds it:\n (this.maxTotalSize === void 0 || this.uploadSize < this.maxTotalSizeNumber)\n )\n },\n\n uploadProgress () {\n return this.uploadSize === 0\n ? 0\n : this.uploadedSize / this.uploadSize\n },\n\n uploadProgressLabel () {\n return this.__getProgressLabel(this.uploadProgress)\n },\n\n uploadedSizeLabel () {\n return humanStorageSize(this.uploadedSize)\n },\n\n uploadSizeLabel () {\n return humanStorageSize(this.uploadSize)\n },\n\n colorClass () {\n const cls = []\n this.color !== void 0 && cls.push(`bg-${this.color}`)\n this.textColor !== void 0 && cls.push(`text-${this.textColor}`)\n return cls.join(' ')\n },\n\n editable () {\n return this.disable !== true && this.readonly !== true\n }\n },\n\n methods: {\n reset () {\n if (!this.disable) {\n this.abort()\n this.uploadedSize = 0\n this.uploadSize = 0\n this.__revokeImgURLs()\n this.files = []\n this.queuedFiles = []\n this.uploadedFiles = []\n }\n },\n\n removeUploadedFiles () {\n this.__removeFiles([ 'uploaded' ], () => {\n this.uploadedFiles = []\n })\n },\n\n removeQueuedFiles () {\n this.__removeFiles([ 'idle', 'failed' ], ({ size }) => {\n this.uploadSize -= size\n this.queuedFiles = []\n })\n },\n\n __removeFiles (statusList, cb) {\n if (this.disable === true) {\n return\n }\n\n const removed = {\n files: [],\n size: 0\n }\n\n const files = this.files.filter(f => {\n if (statusList.indexOf(f.__status) === -1) {\n return true\n }\n\n removed.size += f.size\n removed.files.push(f)\n\n f.__img !== void 0 && window.URL.revokeObjectURL(f.__img.src)\n\n return false\n })\n\n if (removed.files.length > 0) {\n this.files = files\n cb !== void 0 && cb(removed)\n this.$emit('removed', removed.files)\n }\n },\n\n removeFile (file) {\n if (this.disable) { return }\n\n if (file.__status === 'uploaded') {\n this.uploadedFiles = this.uploadedFiles.filter(f => f.__key !== file.__key)\n }\n else if (file.__status === 'uploading') {\n file.__abort()\n }\n else {\n this.uploadSize -= file.size\n }\n\n this.files = this.files.filter(f => {\n if (f.__key !== file.__key) {\n return true\n }\n\n f.__img !== void 0 && window.URL.revokeObjectURL(f.__img.src)\n\n return false\n })\n this.queuedFiles = this.queuedFiles.filter(f => f.__key !== file.__key)\n this.$emit('removed', [ file ])\n },\n\n __revokeImgURLs () {\n this.files.forEach(f => {\n f.__img !== void 0 && window.URL.revokeObjectURL(f.__img.src)\n })\n },\n\n __getFileInput () {\n return this.$refs.input ||\n this.$el.getElementsByClassName('q-uploader__input')[0]\n },\n\n __getProgressLabel (p) {\n return (p * 100).toFixed(2) + '%'\n },\n\n __updateFile (file, status, uploadedSize) {\n file.__status = status\n\n if (status === 'idle') {\n file.__uploaded = 0\n file.__progress = 0\n file.__sizeLabel = humanStorageSize(file.size)\n file.__progressLabel = '0.00%'\n return\n }\n if (status === 'failed') {\n this.$forceUpdate()\n return\n }\n\n file.__uploaded = status === 'uploaded'\n ? file.size\n : uploadedSize\n\n file.__progress = status === 'uploaded'\n ? 1\n : Math.min(0.9999, file.__uploaded / file.size)\n\n file.__progressLabel = this.__getProgressLabel(file.__progress)\n this.$forceUpdate()\n },\n\n __addFiles (e, fileList) {\n const localFiles = this.__processFiles(e, fileList, this.files, true)\n const fileInput = this.__getFileInput()\n\n if (fileInput !== void 0) {\n fileInput.value = ''\n }\n\n if (localFiles === void 0) { return }\n\n localFiles.forEach(file => {\n this.__updateFile(file, 'idle')\n this.uploadSize += file.size\n\n if (this.noThumbnails !== true && file.type.toUpperCase().startsWith('IMAGE')) {\n const img = new Image()\n img.src = window.URL.createObjectURL(file)\n file.__img = img\n }\n })\n\n this.files = this.files.concat(localFiles)\n this.queuedFiles = this.queuedFiles.concat(localFiles)\n this.$emit('added', localFiles)\n this.autoUpload === true && this.upload()\n },\n\n __getBtn (h, show, icon, fn) {\n if (show === true) {\n return h(QBtn, {\n props: {\n type: 'a',\n icon: this.$q.iconSet.uploader[icon],\n flat: true,\n dense: true\n },\n on: { click: icon === 'add' ? this.pickFiles : fn }\n }, icon === 'add' ? this.__getInputControl(h) : null)\n }\n },\n\n __getInputControl (h) {\n return [\n h('input', {\n ref: 'input',\n staticClass: 'q-uploader__input overflow-hidden absolute-full',\n attrs: {\n tabindex: -1,\n type: 'file',\n title: '', // try to remove default tooltip\n accept: this.accept,\n capture: this.capture,\n ...(this.multiple === true ? { multiple: true } : {})\n },\n on: cache(this, 'input', {\n mousedown: stop, // need to stop refocus from QBtn\n click: this.pickFiles,\n change: this.__addFiles\n })\n })\n ]\n },\n\n __getHeader (h) {\n if (this.$scopedSlots.header !== void 0) {\n return this.$scopedSlots.header(this)\n }\n\n return [\n h('div', {\n staticClass: 'q-uploader__header-content column'\n }, [\n h('div', {\n staticClass: 'flex flex-center no-wrap q-gutter-xs'\n }, [\n this.__getBtn(h, this.queuedFiles.length > 0, 'removeQueue', this.removeQueuedFiles),\n this.__getBtn(h, this.uploadedFiles.length > 0, 'removeUploaded', this.removeUploadedFiles),\n\n this.isUploading === true\n ? h(QSpinner, { staticClass: 'q-uploader__spinner' })\n : null,\n\n h('div', { staticClass: 'col column justify-center' }, [\n this.label !== void 0\n ? h('div', { staticClass: 'q-uploader__title' }, [ this.label ])\n : null,\n\n h('div', { staticClass: 'q-uploader__subtitle' }, [\n this.uploadSizeLabel + ' / ' + this.uploadProgressLabel\n ])\n ]),\n\n this.__getBtn(h, this.canAddFiles, 'add', this.pickFiles),\n this.__getBtn(h, this.hideUploadBtn === false && this.canUpload === true, 'upload', this.upload),\n this.__getBtn(h, this.isUploading, 'clear', this.abort)\n ])\n ])\n ]\n },\n\n __getList (h) {\n if (this.$scopedSlots.list !== void 0) {\n return this.$scopedSlots.list(this)\n }\n\n return this.files.map(file => h('div', {\n key: file.__key,\n staticClass: 'q-uploader__file relative-position',\n class: {\n 'q-uploader__file--img': this.noThumbnails !== true && file.__img !== void 0,\n 'q-uploader__file--failed': file.__status === 'failed',\n 'q-uploader__file--uploaded': file.__status === 'uploaded'\n },\n style: this.noThumbnails !== true && file.__img !== void 0 ? {\n backgroundImage: 'url(\"' + file.__img.src + '\")'\n } : null\n }, [\n h('div', {\n staticClass: 'q-uploader__file-header row flex-center no-wrap'\n }, [\n file.__status === 'failed'\n ? h(QIcon, {\n staticClass: 'q-uploader__file-status',\n props: {\n name: this.$q.iconSet.type.negative,\n color: 'negative'\n }\n })\n : null,\n\n h('div', { staticClass: 'q-uploader__file-header-content col' }, [\n h('div', { staticClass: 'q-uploader__title' }, [ file.name ]),\n h('div', {\n staticClass: 'q-uploader__subtitle row items-center no-wrap'\n }, [\n file.__sizeLabel + ' / ' + file.__progressLabel\n ])\n ]),\n\n file.__status === 'uploading'\n ? h(QCircularProgress, {\n props: {\n value: file.__progress,\n min: 0,\n max: 1,\n indeterminate: file.__progress === 0\n }\n })\n : h(QBtn, {\n props: {\n round: true,\n dense: true,\n flat: true,\n icon: this.$q.iconSet.uploader[file.__status === 'uploaded' ? 'done' : 'clear']\n },\n on: {\n click: () => { this.removeFile(file) }\n }\n })\n ])\n ]))\n }\n },\n\n beforeDestroy () {\n this.isUploading === true && this.abort()\n this.files.length > 0 && this.__revokeImgURLs()\n },\n\n render (h) {\n const children = [\n h('div', {\n staticClass: 'q-uploader__header',\n class: this.colorClass\n }, this.__getHeader(h)),\n\n h('div', {\n staticClass: 'q-uploader__list scroll'\n }, this.__getList(h)),\n\n this.__getDnd(h, 'uploader')\n ]\n\n this.isBusy === true && children.push(\n h('div', {\n staticClass: 'q-uploader__overlay absolute-full flex flex-center'\n }, [ h(QSpinner) ])\n )\n\n return h('div', {\n staticClass: 'q-uploader column no-wrap',\n class: {\n 'q-uploader--dark q-dark': this.isDark,\n 'q-uploader--bordered': this.bordered,\n 'q-uploader--square no-border-radius': this.square,\n 'q-uploader--flat no-shadow': this.flat,\n 'disabled q-uploader--disable': this.disable,\n 'q-uploader--dnd': this.dnd\n },\n on: this.canAddFiles === true\n ? cache(this, 'drag', {\n dragover: this.__onDragOver,\n dragleave: this.__onDragLeave\n })\n : null\n }, children)\n }\n})\n","function getFn (prop) {\n return typeof prop === 'function'\n ? prop\n : () => prop\n}\n\nexport default {\n props: {\n url: [ Function, String ],\n method: {\n type: [ Function, String ],\n default: 'POST'\n },\n fieldName: {\n type: [ Function, String ],\n default: file => file.name\n },\n headers: [ Function, Array ],\n formFields: [ Function, Array ],\n withCredentials: [ Function, Boolean ],\n sendRaw: [ Function, Boolean ],\n\n batch: [ Function, Boolean ],\n factory: Function\n },\n\n data () {\n return {\n xhrs: [],\n promises: [],\n workingThreads: 0\n }\n },\n\n computed: {\n xhrProps () {\n return {\n url: getFn(this.url),\n method: getFn(this.method),\n headers: getFn(this.headers),\n formFields: getFn(this.formFields),\n fieldName: getFn(this.fieldName),\n withCredentials: getFn(this.withCredentials),\n sendRaw: getFn(this.sendRaw),\n batch: getFn(this.batch)\n }\n },\n\n isUploading () {\n return this.workingThreads > 0\n },\n\n isBusy () {\n return this.promises.length > 0\n }\n },\n\n methods: {\n abort () {\n this.xhrs.forEach(x => { x.abort() })\n\n if (this.promises.length > 0) {\n this.abortPromises = true\n }\n },\n\n upload () {\n if (this.canUpload === false) {\n return\n }\n\n const queue = this.queuedFiles.slice(0)\n this.queuedFiles = []\n\n if (this.xhrProps.batch(queue)) {\n this.__runFactory(queue)\n }\n else {\n queue.forEach(file => {\n this.__runFactory([ file ])\n })\n }\n },\n\n __runFactory (files) {\n this.workingThreads++\n\n if (typeof this.factory !== 'function') {\n this.__uploadFiles(files, {})\n return\n }\n\n const res = this.factory(files)\n\n if (!res) {\n this.$emit(\n 'factory-failed',\n new Error('QUploader: factory() does not return properly'),\n files\n )\n this.workingThreads--\n }\n else if (typeof res.catch === 'function' && typeof res.then === 'function') {\n this.promises.push(res)\n\n const failed = err => {\n if (this._isBeingDestroyed !== true && this._isDestroyed !== true) {\n this.promises = this.promises.filter(p => p !== res)\n\n if (this.promises.length === 0) {\n this.abortPromises = false\n }\n\n this.queuedFiles = this.queuedFiles.concat(files)\n files.forEach(f => { this.__updateFile(f, 'failed') })\n\n this.$emit('factory-failed', err, files)\n this.workingThreads--\n }\n }\n\n res.then(factory => {\n if (this.abortPromises === true) {\n failed(new Error('Aborted'))\n }\n else if (this._isBeingDestroyed !== true && this._isDestroyed !== true) {\n this.promises = this.promises.filter(p => p !== res)\n this.__uploadFiles(files, factory)\n }\n }).catch(failed)\n }\n else {\n this.__uploadFiles(files, res || {})\n }\n },\n\n __uploadFiles (files, factory) {\n const\n form = new FormData(),\n xhr = new XMLHttpRequest()\n\n const getProp = (name, arg) => {\n return factory[name] !== void 0\n ? getFn(factory[name])(arg)\n : this.xhrProps[name](arg)\n }\n\n const url = getProp('url', files)\n\n if (!url) {\n console.error('q-uploader: invalid or no URL specified')\n this.workingThreads--\n return\n }\n\n const fields = getProp('formFields', files)\n fields !== void 0 && fields.forEach(field => {\n form.append(field.name, field.value)\n })\n\n let\n uploadIndex = 0,\n uploadIndexSize = 0,\n uploadedSize = 0,\n maxUploadSize = 0,\n aborted\n\n xhr.upload.addEventListener('progress', e => {\n if (aborted === true) { return }\n\n const loaded = Math.min(maxUploadSize, e.loaded)\n\n this.uploadedSize += loaded - uploadedSize\n uploadedSize = loaded\n\n let size = uploadedSize - uploadIndexSize\n for (let i = uploadIndex; size > 0 && i < files.length; i++) {\n const\n file = files[i],\n uploaded = size > file.size\n\n if (uploaded) {\n size -= file.size\n uploadIndex++\n uploadIndexSize += file.size\n this.__updateFile(file, 'uploading', file.size)\n }\n else {\n this.__updateFile(file, 'uploading', size)\n return\n }\n }\n }, false)\n\n xhr.onreadystatechange = () => {\n if (xhr.readyState < 4) {\n return\n }\n\n if (xhr.status && xhr.status < 400) {\n this.uploadedFiles = this.uploadedFiles.concat(files)\n files.forEach(f => { this.__updateFile(f, 'uploaded') })\n this.$emit('uploaded', { files, xhr })\n }\n else {\n aborted = true\n this.uploadedSize -= uploadedSize\n this.queuedFiles = this.queuedFiles.concat(files)\n files.forEach(f => { this.__updateFile(f, 'failed') })\n this.$emit('failed', { files, xhr })\n }\n\n this.workingThreads--\n this.xhrs = this.xhrs.filter(x => x !== xhr)\n }\n\n xhr.open(\n getProp('method', files),\n url\n )\n\n if (getProp('withCredentials', files) === true) {\n xhr.withCredentials = true\n }\n\n const headers = getProp('headers', files)\n headers !== void 0 && headers.forEach(head => {\n xhr.setRequestHeader(head.name, head.value)\n })\n\n const sendRaw = getProp('sendRaw', files)\n\n files.forEach(file => {\n this.__updateFile(file, 'uploading', 0)\n if (sendRaw !== true) {\n form.append(getProp('fieldName', file), file, file.name)\n }\n file.xhr = xhr\n file.__abort = () => { xhr.abort() }\n maxUploadSize += file.size\n })\n\n this.$emit('uploading', { files, xhr })\n this.xhrs.push(xhr)\n\n if (sendRaw === true) {\n xhr.send(new Blob(files))\n }\n else {\n xhr.send(form)\n }\n }\n }\n}\n","import Vue from 'vue'\n\nimport QUploaderBase from './QUploaderBase.js'\nimport UploaderXHRMixin from './uploader-xhr-mixin.js'\n\nexport default Vue.extend({\n name: 'QUploader',\n mixins: [ QUploaderBase, UploaderXHRMixin ]\n})\n","import Vue from 'vue'\n\nexport default Vue.extend({\n name: 'QUploaderAddTrigger',\n\n inject: {\n __qUploaderGetInput: {\n default () {\n console.error('QUploaderAddTrigger needs to be child of QUploader')\n }\n }\n },\n\n render (h) {\n return this.__qUploaderGetInput(h)\n }\n})\n","import QUploader from './QUploader.js'\nimport QUploaderBase from './QUploaderBase.js'\nimport QUploaderAddTrigger from './QUploaderAddTrigger.js'\n\nexport {\n QUploader,\n QUploaderBase,\n QUploaderAddTrigger\n}\n","import Vue from 'vue'\n\nimport RatioMixin from '../../mixins/ratio.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nexport default Vue.extend({\n name: 'QVideo',\n\n mixins: [ RatioMixin, ListenersMixin ],\n\n props: {\n src: {\n type: String,\n required: true\n },\n\n title: String,\n\n fetchpriority: {\n type: String,\n default: 'auto'\n },\n loading: {\n type: String,\n default: 'eager'\n },\n referrerpolicy: {\n type: String,\n default: 'strict-origin-when-cross-origin'\n }\n },\n\n computed: {\n iframeData () {\n return {\n attrs: {\n src: this.src,\n frameborder: '0',\n title: this.title,\n allowfullscreen: true,\n fetchpriority: this.fetchpriority,\n loading: this.loading,\n referrerpolicy: this.referrerpolicy\n }\n }\n },\n\n classes () {\n return 'q-video' +\n (this.ratio !== void 0 ? ' q-video--responsive' : '')\n }\n },\n\n render (h) {\n return h('div', {\n class: this.classes,\n style: this.ratioStyle,\n on: { ...this.qListeners }\n }, [\n h('iframe', this.iframeData)\n ])\n }\n})\n","import QVideo from './QVideo.js'\n\nexport {\n QVideo\n}\n","import QVirtualScroll from './QVirtualScroll.js'\n\nexport {\n QVirtualScroll\n}\n","export * from './components/ajax-bar/index.js'\nexport * from './components/avatar/index.js'\nexport * from './components/badge/index.js'\nexport * from './components/banner/index.js'\nexport * from './components/bar/index.js'\nexport * from './components/breadcrumbs/index.js'\nexport * from './components/btn/index.js'\nexport * from './components/btn-dropdown/index.js'\nexport * from './components/btn-group/index.js'\nexport * from './components/btn-toggle/index.js'\nexport * from './components/card/index.js'\nexport * from './components/carousel/index.js'\nexport * from './components/chat/index.js'\nexport * from './components/checkbox/index.js'\nexport * from './components/chip/index.js'\nexport * from './components/circular-progress/index.js'\nexport * from './components/color/index.js'\nexport * from './components/date/index.js'\nexport * from './components/dialog/index.js'\nexport * from './components/drawer/index.js'\nexport * from './components/editor/index.js'\nexport * from './components/expansion-item/index.js'\nexport * from './components/fab/index.js'\nexport * from './components/field/index.js'\nexport * from './components/file/index.js'\nexport * from './components/footer/index.js'\nexport * from './components/form/index.js'\nexport * from './components/header/index.js'\nexport * from './components/icon/index.js'\nexport * from './components/img/index.js'\nexport * from './components/infinite-scroll/index.js'\nexport * from './components/inner-loading/index.js'\nexport * from './components/input/index.js'\nexport * from './components/intersection/index.js'\nexport * from './components/item/index.js'\nexport * from './components/knob/index.js'\nexport * from './components/layout/index.js'\nexport * from './components/markup-table/index.js'\nexport * from './components/menu/index.js'\nexport * from './components/no-ssr/index.js'\nexport * from './components/option-group/index.js'\nexport * from './components/page/index.js'\nexport * from './components/page-scroller/index.js'\nexport * from './components/page-sticky/index.js'\nexport * from './components/pagination/index.js'\nexport * from './components/parallax/index.js'\nexport * from './components/popup-edit/index.js'\nexport * from './components/popup-proxy/index.js'\nexport * from './components/linear-progress/index.js'\nexport * from './components/pull-to-refresh/index.js'\nexport * from './components/radio/index.js'\nexport * from './components/range/index.js'\nexport * from './components/rating/index.js'\nexport * from './components/resize-observer/index.js'\nexport * from './components/responsive/index.js'\nexport * from './components/scroll-area/index.js'\nexport * from './components/scroll-observer/index.js'\nexport * from './components/select/index.js'\nexport * from './components/separator/index.js'\nexport * from './components/skeleton/index.js'\nexport * from './components/slide-item/index.js'\nexport * from './components/slide-transition/index.js'\nexport * from './components/slider/index.js'\nexport * from './components/space/index.js'\nexport * from './components/spinner/index.js'\nexport * from './components/splitter/index.js'\nexport * from './components/stepper/index.js'\nexport * from './components/tab-panels/index.js'\nexport * from './components/table/index.js'\nexport * from './components/tabs/index.js'\nexport * from './components/time/index.js'\nexport * from './components/timeline/index.js'\nexport * from './components/toggle/index.js'\nexport * from './components/toolbar/index.js'\nexport * from './components/tooltip/index.js'\nexport * from './components/tree/index.js'\nexport * from './components/uploader/index.js'\nexport * from './components/video/index.js'\nexport * from './components/virtual-scroll/index.js'\n","import { closePortals } from '../mixins/portal.js'\nimport { isKeyCode } from '../utils/private/key-composition.js'\n\n/*\n * depth\n * < 0 --> close all chain\n * 0 --> disabled\n * > 0 --> close chain up to N parent\n */\n\nfunction getDepth (value) {\n if (value === false) {\n return 0\n }\n if (value === true || value === void 0) {\n return 1\n }\n\n const depth = parseInt(value, 10)\n return isNaN(depth) ? 0 : depth\n}\n\nfunction destroy (el) {\n const ctx = el.__qclosepopup\n if (ctx !== void 0) {\n el.removeEventListener('click', ctx.handler)\n el.removeEventListener('keyup', ctx.handlerKey)\n delete el.__qclosepopup\n }\n}\n\nexport default {\n name: 'close-popup',\n\n bind (el, { value }, vnode) {\n if (el.__qclosepopup !== void 0) {\n destroy(el)\n el.__qclosepopup_destroyed = true\n }\n\n const ctx = {\n depth: getDepth(value),\n\n handler (evt) {\n // allow @click to be emitted\n ctx.depth !== 0 && setTimeout(() => {\n closePortals(vnode.componentInstance || vnode.context, evt, ctx.depth)\n })\n },\n\n handlerKey (evt) {\n isKeyCode(evt, 13) === true && ctx.handler(evt)\n }\n }\n\n el.__qclosepopup = ctx\n\n el.addEventListener('click', ctx.handler)\n el.addEventListener('keyup', ctx.handlerKey)\n },\n\n update (el, { value, oldValue }) {\n if (el.__qclosepopup !== void 0 && value !== oldValue) {\n el.__qclosepopup.depth = getDepth(value)\n }\n },\n\n unbind (el) {\n if (el.__qclosepopup_destroyed === void 0) {\n destroy(el)\n }\n else {\n delete el.__qclosepopup_destroyed\n }\n }\n}\n","import { client } from '../plugins/Platform.js'\nimport { isKeyCode } from '../utils/private/key-composition.js'\n\nfunction destroy (el) {\n const ctx = el.__qgoback\n if (ctx !== void 0) {\n el.removeEventListener('click', ctx.goBack)\n el.removeEventListener('keyup', ctx.goBackKey)\n delete el.__qgoback\n }\n}\n\nexport default {\n name: 'go-back',\n\n bind (el, { value, modifiers }, vnode) {\n if (el.__qgoback !== void 0) {\n destroy(el)\n el.__qgoback_destroyed = true\n }\n\n const ctx = {\n value,\n\n position: window.history.length - 1,\n single: modifiers.single,\n\n goBack () {\n const router = vnode.context.$router\n\n if (ctx.single === true) {\n router.go(-1)\n }\n else if (client.is.nativeMobile === true) {\n router.go(ctx.position - window.history.length)\n }\n else {\n router.replace(ctx.value)\n }\n },\n\n goBackKey (e) {\n // if ENTER key\n isKeyCode(e, 13) === true && ctx.goBack()\n }\n }\n\n el.__qgoback = ctx\n\n el.addEventListener('click', ctx.goBack)\n el.addEventListener('keyup', ctx.goBackKey)\n },\n\n update (el, { value, oldValue }) {\n const ctx = el.__qgoback\n\n if (ctx !== void 0 && value !== oldValue) {\n ctx.value = value\n }\n },\n\n unbind (el) {\n if (el.__qgoback_destroyed === void 0) {\n destroy(el)\n }\n else {\n delete el.__qgoback_destroyed\n }\n }\n}\n","import { getElement } from './dom.js'\nimport { isObject } from './is'\n\nlet id = 0\nlet offsetBase = void 0\n\nfunction getAbsolutePosition (el, resize) {\n if (offsetBase === void 0) {\n offsetBase = document.createElement('div')\n offsetBase.style.cssText = 'position: absolute; left: 0; top: 0'\n document.body.appendChild(offsetBase)\n }\n\n const boundingRect = el.getBoundingClientRect()\n const baseRect = offsetBase.getBoundingClientRect()\n const { marginLeft, marginRight, marginTop, marginBottom } = window.getComputedStyle(el)\n const marginH = parseInt(marginLeft, 10) + parseInt(marginRight, 10)\n const marginV = parseInt(marginTop, 10) + parseInt(marginBottom, 10)\n\n return {\n left: boundingRect.left - baseRect.left,\n top: boundingRect.top - baseRect.top,\n width: boundingRect.right - boundingRect.left,\n height: boundingRect.bottom - boundingRect.top,\n widthM: boundingRect.right - boundingRect.left + (resize === true ? 0 : marginH),\n heightM: boundingRect.bottom - boundingRect.top + (resize === true ? 0 : marginV),\n marginH: resize === true ? marginH : 0,\n marginV: resize === true ? marginV : 0\n }\n}\n\nfunction getAbsoluteSize (el) {\n return {\n width: el.scrollWidth,\n height: el.scrollHeight\n }\n}\n\n// firefox rulez\nconst styleEdges = [ 'Top', 'Right', 'Bottom', 'Left' ]\nconst styleBorderRadiuses = [ 'borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius' ]\nconst reStyleSkipKey = /-block|-inline|block-|inline-/\nconst reStyleSkipRule = /(-block|-inline|block-|inline-).*:/\n\nfunction getComputedStyle (el, props) {\n const style = window.getComputedStyle(el)\n const fixed = {}\n for (let i = 0; i < props.length; i++) {\n const prop = props[i]\n\n if (style[prop] === '') {\n if (prop === 'cssText') {\n const styleLen = style.length\n let val = ''\n\n for (let i = 0; i < styleLen; i++) {\n if (reStyleSkipKey.test(style[i]) !== true) {\n val += style[i] + ': ' + style[style[i]] + '; '\n }\n }\n\n fixed[prop] = val\n }\n else if ([ 'borderWidth', 'borderStyle', 'borderColor' ].indexOf(prop) > -1) {\n const suffix = prop.replace('border', '')\n let val = ''\n for (let j = 0; j < styleEdges.length; j++) {\n const subProp = 'border' + styleEdges[j] + suffix\n val += style[subProp] + ' '\n }\n fixed[prop] = val\n }\n else if (prop === 'borderRadius') {\n let val1 = ''\n let val2 = ''\n for (let j = 0; j < styleBorderRadiuses.length; j++) {\n const val = style[styleBorderRadiuses[j]].split(' ')\n val1 += val[0] + ' '\n val2 += (val[1] === void 0 ? val[0] : val[1]) + ' '\n }\n fixed[prop] = val1 + '/ ' + val2\n }\n else {\n fixed[prop] = style[prop]\n }\n }\n else {\n if (prop === 'cssText') {\n fixed[prop] = style[prop]\n .split(';')\n .filter(val => reStyleSkipRule.test(val) !== true)\n .join(';')\n }\n else {\n fixed[prop] = style[prop]\n }\n }\n }\n\n return fixed\n}\n\nconst zIndexPositions = ['absolute', 'fixed', 'relative', 'sticky']\n\nfunction getMaxZIndex (elStart) {\n let el = elStart\n let maxIndex = 0\n\n while (el !== null && el !== document) {\n const { position, zIndex } = window.getComputedStyle(el)\n const zIndexNum = Number(zIndex)\n\n if (\n zIndexNum > maxIndex &&\n (el === elStart || zIndexPositions.includes(position) === true)\n ) {\n maxIndex = zIndexNum\n }\n\n el = el.parentNode\n }\n\n return maxIndex\n}\n\nfunction normalizeElements (opts) {\n return {\n from: opts.from,\n to: opts.to !== void 0\n ? opts.to\n : opts.from\n }\n}\n\nfunction normalizeOptions (options) {\n if (typeof options === 'number') {\n options = {\n duration: options\n }\n }\n else if (typeof options === 'function') {\n options = {\n onEnd: options\n }\n }\n\n return {\n ...options,\n\n waitFor: options.waitFor === void 0 ? 0 : options.waitFor,\n\n duration: isNaN(options.duration) === true ? 300 : parseInt(options.duration, 10),\n easing: typeof options.easing === 'string' && options.easing.length > 0 ? options.easing : 'ease-in-out',\n delay: isNaN(options.delay) === true ? 0 : parseInt(options.delay, 10),\n fill: typeof options.fill === 'string' && options.fill.length > 0 ? options.fill : 'none',\n\n resize: options.resize === true,\n useCSS: options.useCSS === true || options.usecss === true,\n hideFromClone: options.hideFromClone === true || options.hidefromclone === true,\n keepToClone: options.keepToClone === true || options.keeptoclone === true,\n\n tween: options.tween === true,\n tweenFromOpacity: isNaN(options.tweenFromOpacity) === true ? 0.6 : parseFloat(options.tweenFromOpacity),\n tweenToOpacity: isNaN(options.tweenToOpacity) === true ? 0.5 : parseFloat(options.tweenToOpacity)\n }\n}\n\nfunction isValidElement (element) {\n return element &&\n element.ownerDocument === document &&\n element.parentNode !== null\n}\n\nexport default function morph (_options) {\n let cancel = () => false\n let cancelStatus = false\n let endElementTo = true\n\n const elements = normalizeElements(_options)\n const options = normalizeOptions(_options)\n\n const elFrom = getElement(elements.from)\n if (isValidElement(elFrom) !== true) {\n // we return a cancel function that return false, meaning the cancel function failed\n return cancel\n }\n // we clean other morphs running on this element\n typeof elFrom.qMorphCancel === 'function' && elFrom.qMorphCancel()\n\n let animationFromClone = void 0\n let animationFromTween = void 0\n let animationToClone = void 0\n let animationTo = void 0\n\n const elFromParent = elFrom.parentNode\n const elFromNext = elFrom.nextElementSibling\n\n // we get the dimensions and characteristics\n // of the parent of the initial element before changes\n const elFromPosition = getAbsolutePosition(elFrom, options.resize)\n const {\n width: elFromParentWidthBefore,\n height: elFromParentHeightBefore\n } = getAbsoluteSize(elFromParent)\n const {\n borderWidth: elFromBorderWidth,\n borderStyle: elFromBorderStyle,\n borderColor: elFromBorderColor,\n borderRadius: elFromBorderRadius,\n backgroundColor: elFromBackground,\n transform: elFromTransform,\n position: elFromPositioningType,\n cssText: elFromCssText\n } = getComputedStyle(elFrom, [ 'borderWidth', 'borderStyle', 'borderColor', 'borderRadius', 'backgroundColor', 'transform', 'position', 'cssText' ])\n const elFromClassSaved = elFrom.classList.toString()\n const elFromStyleSaved = elFrom.style.cssText\n\n // we make a clone of the initial element and\n // use it to display until the final element is ready\n // and to change the occupied space during animation\n const elFromClone = elFrom.cloneNode(true)\n const elFromTween = options.tween === true ? elFrom.cloneNode(true) : void 0\n\n if (elFromTween !== void 0) {\n elFromTween.className = elFromTween.classList.toString().split(' ').filter(c => /^bg-/.test(c) === false).join(' ')\n }\n\n // if the initial element is not going to be removed do not show the placeholder\n options.hideFromClone === true && elFromClone.classList.add('q-morph--internal')\n\n // prevent interaction with placeholder\n elFromClone.setAttribute('aria-hidden', 'true')\n elFromClone.style.transition = 'none'\n elFromClone.style.animation = 'none'\n elFromClone.style.pointerEvents = 'none'\n elFromParent.insertBefore(elFromClone, elFromNext)\n\n // we mark the element with its cleanup function\n elFrom.qMorphCancel = () => {\n cancelStatus = true\n\n // we clean the clone of the initial element\n elFromClone.remove()\n elFromTween !== void 0 && elFromTween.remove()\n\n options.hideFromClone === true && elFromClone.classList.remove('q-morph--internal')\n\n // we remove the cleanup function from the element\n elFrom.qMorphCancel = void 0\n }\n\n // will be called after Vue catches up with the changes done by _options.onToggle() function\n const calculateFinalState = () => {\n const elTo = getElement(elements.to)\n if (cancelStatus === true || isValidElement(elTo) !== true) {\n typeof elFrom.qMorphCancel === 'function' && elFrom.qMorphCancel()\n\n return\n }\n // we clean other morphs running on this element\n elFrom !== elTo && typeof elTo.qMorphCancel === 'function' && elTo.qMorphCancel()\n\n // we hide the final element and the clone of the initial element\n // we don't hide the final element if we want both it and the animated one visible\n options.keepToClone !== true && elTo.classList.add('q-morph--internal')\n elFromClone.classList.add('q-morph--internal')\n\n // we get the dimensions of the parent of the initial element after changes\n // the difference is how much we should animate the clone\n const {\n width: elFromParentWidthAfter,\n height: elFromParentHeightAfter\n } = getAbsoluteSize(elFromParent)\n\n // we get the dimensions of the parent of the final element before changes\n const {\n width: elToParentWidthBefore,\n height: elToParentHeightBefore\n } = getAbsoluteSize(elTo.parentNode)\n\n // then we show the clone of the initial element if we don't want it hidden\n options.hideFromClone !== true && elFromClone.classList.remove('q-morph--internal')\n\n // we mark the element with its cleanup function\n elTo.qMorphCancel = () => {\n cancelStatus = true\n\n // we clean the clone of the initial element\n elFromClone.remove()\n elFromTween !== void 0 && elFromTween.remove()\n\n options.hideFromClone === true && elFromClone.classList.remove('q-morph--internal')\n\n // we show the final element\n options.keepToClone !== true && elTo.classList.remove('q-morph--internal')\n\n // we remove the cleanup function from the elements\n elFrom.qMorphCancel = void 0\n elTo.qMorphCancel = void 0\n }\n\n // will be called after waitFor (give time to render the final element)\n const animate = () => {\n if (cancelStatus === true) {\n typeof elTo.qMorphCancel === 'function' && elTo.qMorphCancel()\n\n return\n }\n\n // now the animation starts, so we only need the clone\n // of the initial element as a spacer\n // we also hide it to calculate the dimensions of the\n // parent of the final element after the changes\n if (options.hideFromClone !== true) {\n elFromClone.classList.add('q-morph--internal')\n elFromClone.innerHTML = ''\n elFromClone.style.left = 0\n elFromClone.style.right = 'unset'\n elFromClone.style.top = 0\n elFromClone.style.bottom = 'unset'\n elFromClone.style.transform = 'none'\n }\n\n // we show the final element\n if (options.keepToClone !== true) {\n elTo.classList.remove('q-morph--internal')\n }\n\n // we get the dimensions of the parent of the final element after changes\n // the difference is how much we should animate the clone\n const elToParent = elTo.parentNode\n const {\n width: elToParentWidthAfter,\n height: elToParentHeightAfter\n } = getAbsoluteSize(elToParent)\n\n const elToClone = elTo.cloneNode(options.keepToClone)\n elToClone.setAttribute('aria-hidden', 'true')\n if (options.keepToClone !== true) {\n elToClone.style.left = 0\n elToClone.style.right = 'unset'\n elToClone.style.top = 0\n elToClone.style.bottom = 'unset'\n elToClone.style.transform = 'none'\n elToClone.style.pointerEvents = 'none'\n }\n elToClone.classList.add('q-morph--internal')\n\n // if elFrom is the same as elTo the next element is elFromClone\n const elToNext = elTo === elFrom && elFromParent === elToParent ? elFromClone : elTo.nextElementSibling\n elToParent.insertBefore(elToClone, elToNext)\n\n const {\n borderWidth: elToBorderWidth,\n borderStyle: elToBorderStyle,\n borderColor: elToBorderColor,\n borderRadius: elToBorderRadius,\n backgroundColor: elToBackground,\n transform: elToTransform,\n position: elToPositioningType,\n cssText: elToCssText\n } = getComputedStyle(elTo, [ 'borderWidth', 'borderStyle', 'borderColor', 'borderRadius', 'backgroundColor', 'transform', 'position', 'cssText' ])\n const elToClassSaved = elTo.classList.toString()\n const elToStyleSaved = elTo.style.cssText\n\n // we set the computed styles on the element (to be able to remove classes)\n elTo.style.cssText = elToCssText\n elTo.style.transform = 'none'\n elTo.style.animation = 'none'\n elTo.style.transition = 'none'\n // we strip the background classes (background color can no longer be animated if !important is used)\n elTo.className = elToClassSaved.split(' ').filter(c => /^bg-/.test(c) === false).join(' ')\n\n const elToPosition = getAbsolutePosition(elTo, options.resize)\n\n const deltaX = elFromPosition.left - elToPosition.left\n const deltaY = elFromPosition.top - elToPosition.top\n const scaleX = elFromPosition.width / (elToPosition.width > 0 ? elToPosition.width : 10)\n const scaleY = elFromPosition.height / (elToPosition.height > 0 ? elToPosition.height : 100)\n\n const elFromParentWidthDiff = elFromParentWidthBefore - elFromParentWidthAfter\n const elFromParentHeightDiff = elFromParentHeightBefore - elFromParentHeightAfter\n const elToParentWidthDiff = elToParentWidthAfter - elToParentWidthBefore\n const elToParentHeightDiff = elToParentHeightAfter - elToParentHeightBefore\n\n const elFromCloneWidth = Math.max(elFromPosition.widthM, elFromParentWidthDiff)\n const elFromCloneHeight = Math.max(elFromPosition.heightM, elFromParentHeightDiff)\n const elToCloneWidth = Math.max(elToPosition.widthM, elToParentWidthDiff)\n const elToCloneHeight = Math.max(elToPosition.heightM, elToParentHeightDiff)\n\n const elSharedSize = elFrom === elTo &&\n [ 'absolute', 'fixed' ].includes(elToPositioningType) === false &&\n [ 'absolute', 'fixed' ].includes(elFromPositioningType) === false\n\n // if the final element has fixed position or if a parent\n // has fixed position we need to animate it as fixed\n let elToNeedsFixedPosition = elToPositioningType === 'fixed'\n let parent = elToParent\n while (elToNeedsFixedPosition !== true && parent !== document) {\n elToNeedsFixedPosition = window.getComputedStyle(parent).position === 'fixed'\n parent = parent.parentNode\n }\n\n // we show the spacer for the initial element\n if (options.hideFromClone !== true) {\n elFromClone.style.display = 'block'\n elFromClone.style.flex = '0 0 auto'\n elFromClone.style.opacity = 0\n elFromClone.style.minWidth = 'unset'\n elFromClone.style.maxWidth = 'unset'\n elFromClone.style.minHeight = 'unset'\n elFromClone.style.maxHeight = 'unset'\n elFromClone.classList.remove('q-morph--internal')\n }\n\n // we show the spacer for the final element\n if (options.keepToClone !== true) {\n elToClone.style.display = 'block'\n elToClone.style.flex = '0 0 auto'\n elToClone.style.opacity = 0\n elToClone.style.minWidth = 'unset'\n elToClone.style.maxWidth = 'unset'\n elToClone.style.minHeight = 'unset'\n elToClone.style.maxHeight = 'unset'\n }\n elToClone.classList.remove('q-morph--internal')\n\n // we apply classes specified by user\n if (typeof options.classes === 'string') {\n elTo.className += ' ' + options.classes\n }\n\n // we apply styles specified by user\n if (typeof options.style === 'string') {\n elTo.style.cssText += ' ' + options.style\n }\n else if (isObject(options.style) === true) {\n for (const prop in options.style) {\n elTo.style[prop] = options.style[prop]\n }\n }\n\n const elFromZIndex = getMaxZIndex(elFromClone)\n const elToZIndex = getMaxZIndex(elTo)\n\n // we position the morphing element\n // if we use fixed position for the final element we need to adjust for scroll\n const documentScroll = elToNeedsFixedPosition === true\n ? document.documentElement\n : { scrollLeft: 0, scrollTop: 0 }\n elTo.style.position = elToNeedsFixedPosition === true ? 'fixed' : 'absolute'\n elTo.style.left = `${elToPosition.left - documentScroll.scrollLeft}px`\n elTo.style.right = 'unset'\n elTo.style.top = `${elToPosition.top - documentScroll.scrollTop}px`\n elTo.style.margin = 0\n\n if (options.resize === true) {\n elTo.style.minWidth = 'unset'\n elTo.style.maxWidth = 'unset'\n elTo.style.minHeight = 'unset'\n elTo.style.maxHeight = 'unset'\n elTo.style.overflow = 'hidden'\n elTo.style.overflowX = 'hidden'\n elTo.style.overflowY = 'hidden'\n }\n\n document.body.appendChild(elTo)\n\n if (elFromTween !== void 0) {\n elFromTween.style.cssText = elFromCssText\n elFromTween.style.transform = 'none'\n elFromTween.style.animation = 'none'\n elFromTween.style.transition = 'none'\n\n elFromTween.style.position = elTo.style.position\n elFromTween.style.left = `${elFromPosition.left - documentScroll.scrollLeft}px`\n elFromTween.style.right = 'unset'\n elFromTween.style.top = `${elFromPosition.top - documentScroll.scrollTop}px`\n elFromTween.style.margin = 0\n elFromTween.style.pointerEvents = 'none'\n\n if (options.resize === true) {\n elFromTween.style.minWidth = 'unset'\n elFromTween.style.maxWidth = 'unset'\n elFromTween.style.minHeight = 'unset'\n elFromTween.style.maxHeight = 'unset'\n elFromTween.style.overflow = 'hidden'\n elFromTween.style.overflowX = 'hidden'\n elFromTween.style.overflowY = 'hidden'\n }\n\n document.body.appendChild(elFromTween)\n }\n\n const commonCleanup = aborted => {\n // we put the element back in it's place\n // and restore the styles and classes\n if (elFrom === elTo && endElementTo !== true) {\n elTo.style.cssText = elFromStyleSaved\n elTo.className = elFromClassSaved\n }\n else {\n elTo.style.cssText = elToStyleSaved\n elTo.className = elToClassSaved\n }\n elToClone.parentNode === elToParent && elToParent.insertBefore(elTo, elToClone)\n\n // we clean the spacers\n elFromClone.remove()\n elToClone.remove()\n elFromTween !== void 0 && elFromTween.remove()\n\n // cancel will be no longer available\n cancel = () => false\n\n elFrom.qMorphCancel = void 0\n elTo.qMorphCancel = void 0\n\n // we are ready\n if (typeof options.onEnd === 'function') {\n options.onEnd(endElementTo === true ? 'to' : 'from', aborted === true)\n }\n }\n\n if (options.useCSS !== true && typeof elTo.animate === 'function') {\n const resizeFrom = options.resize === true\n ? {\n transform: `translate(${deltaX}px, ${deltaY}px)`,\n width: `${elFromCloneWidth}px`,\n height: `${elFromCloneHeight}px`\n }\n : {\n transform: `translate(${deltaX}px, ${deltaY}px) scale(${scaleX}, ${scaleY})`\n }\n const resizeTo = options.resize === true\n ? {\n width: `${elToCloneWidth}px`,\n height: `${elToCloneHeight}px`\n }\n : {}\n const resizeFromTween = options.resize === true\n ? {\n width: `${elFromCloneWidth}px`,\n height: `${elFromCloneHeight}px`\n }\n : {}\n const resizeToTween = options.resize === true\n ? {\n transform: `translate(${-1 * deltaX}px, ${-1 * deltaY}px)`,\n width: `${elToCloneWidth}px`,\n height: `${elToCloneHeight}px`\n }\n : {\n transform: `translate(${-1 * deltaX}px, ${-1 * deltaY}px) scale(${1 / scaleX}, ${1 / scaleY})`\n }\n const tweenFrom = elFromTween !== void 0\n ? { opacity: options.tweenToOpacity }\n : { backgroundColor: elFromBackground }\n const tweenTo = elFromTween !== void 0\n ? { opacity: 1 }\n : { backgroundColor: elToBackground }\n animationTo = elTo.animate([\n {\n margin: 0,\n borderWidth: elFromBorderWidth,\n borderStyle: elFromBorderStyle,\n borderColor: elFromBorderColor,\n borderRadius: elFromBorderRadius,\n zIndex: elFromZIndex,\n transformOrigin: '0 0',\n ...resizeFrom,\n ...tweenFrom\n },\n {\n margin: 0,\n borderWidth: elToBorderWidth,\n borderStyle: elToBorderStyle,\n borderColor: elToBorderColor,\n borderRadius: elToBorderRadius,\n zIndex: elToZIndex,\n transformOrigin: '0 0',\n transform: elToTransform,\n ...resizeTo,\n ...tweenTo\n }\n ], {\n duration: options.duration,\n easing: options.easing,\n fill: options.fill,\n delay: options.delay\n })\n\n animationFromTween = elFromTween === void 0 ? void 0 : elFromTween.animate([\n {\n opacity: options.tweenFromOpacity,\n margin: 0,\n borderWidth: elFromBorderWidth,\n borderStyle: elFromBorderStyle,\n borderColor: elFromBorderColor,\n borderRadius: elFromBorderRadius,\n zIndex: elFromZIndex,\n transformOrigin: '0 0',\n transform: elFromTransform,\n ...resizeFromTween\n },\n {\n opacity: 0,\n margin: 0,\n borderWidth: elToBorderWidth,\n borderStyle: elToBorderStyle,\n borderColor: elToBorderColor,\n borderRadius: elToBorderRadius,\n zIndex: elToZIndex,\n transformOrigin: '0 0',\n ...resizeToTween\n }\n ], {\n duration: options.duration,\n easing: options.easing,\n fill: options.fill,\n delay: options.delay\n })\n\n animationFromClone = options.hideFromClone === true || elSharedSize === true ? void 0 : elFromClone.animate([\n {\n margin: `${elFromParentHeightDiff < 0 ? elFromParentHeightDiff / 2 : 0}px ${elFromParentWidthDiff < 0 ? elFromParentWidthDiff / 2 : 0}px`,\n width: `${elFromCloneWidth + elFromPosition.marginH}px`,\n height: `${elFromCloneHeight + elFromPosition.marginV}px`\n },\n {\n margin: 0,\n width: 0,\n height: 0\n }\n ], {\n duration: options.duration,\n easing: options.easing,\n fill: options.fill,\n delay: options.delay\n })\n\n animationToClone = options.keepToClone === true ? void 0 : elToClone.animate([\n elSharedSize === true\n ? {\n margin: `${elFromParentHeightDiff < 0 ? elFromParentHeightDiff / 2 : 0}px ${elFromParentWidthDiff < 0 ? elFromParentWidthDiff / 2 : 0}px`,\n width: `${elFromCloneWidth + elFromPosition.marginH}px`,\n height: `${elFromCloneHeight + elFromPosition.marginV}px`\n }\n : {\n margin: 0,\n width: 0,\n height: 0\n },\n {\n margin: `${elToParentHeightDiff < 0 ? elToParentHeightDiff / 2 : 0}px ${elToParentWidthDiff < 0 ? elToParentWidthDiff / 2 : 0}px`,\n width: `${elToCloneWidth + elToPosition.marginH}px`,\n height: `${elToCloneHeight + elToPosition.marginV}px`\n }\n ], {\n duration: options.duration,\n easing: options.easing,\n fill: options.fill,\n delay: options.delay\n })\n\n const cleanup = abort => {\n animationFromClone !== void 0 && animationFromClone.cancel()\n animationFromTween !== void 0 && animationFromTween.cancel()\n animationToClone !== void 0 && animationToClone.cancel()\n animationTo.cancel()\n\n animationTo.removeEventListener('finish', cleanup)\n animationTo.removeEventListener('cancel', cleanup)\n\n commonCleanup(abort)\n\n // we clean the animations\n animationFromClone = void 0\n animationFromTween = void 0\n animationToClone = void 0\n animationTo = void 0\n }\n\n elFrom.qMorphCancel = () => {\n elFrom.qMorphCancel = void 0\n cancelStatus = true\n cleanup()\n }\n elTo.qMorphCancel = () => {\n elTo.qMorphCancel = void 0\n cancelStatus = true\n cleanup()\n }\n\n animationTo.addEventListener('finish', cleanup)\n animationTo.addEventListener('cancel', cleanup)\n\n cancel = abort => {\n // we are not in a morph that we can cancel\n if (cancelStatus === true || animationTo === void 0) {\n return false\n }\n\n if (abort === true) {\n cleanup(true)\n return true\n }\n\n endElementTo = endElementTo !== true\n\n animationFromClone !== void 0 && animationFromClone.reverse()\n animationFromTween !== void 0 && animationFromTween.reverse()\n animationToClone !== void 0 && animationToClone.reverse()\n animationTo.reverse()\n\n return true\n }\n }\n else {\n const qAnimId = `q-morph-anim-${++id}`\n const style = document.createElement('style')\n const resizeFrom = options.resize === true\n ? `\n transform: translate(${deltaX}px, ${deltaY}px);\n width: ${elFromCloneWidth}px;\n height: ${elFromCloneHeight}px;\n `\n : `transform: translate(${deltaX}px, ${deltaY}px) scale(${scaleX}, ${scaleY});`\n const resizeTo = options.resize === true\n ? `\n width: ${elToCloneWidth}px;\n height: ${elToCloneHeight}px;\n `\n : ''\n const resizeFromTween = options.resize === true\n ? `\n width: ${elFromCloneWidth}px;\n height: ${elFromCloneHeight}px;\n `\n : ''\n const resizeToTween = options.resize === true\n ? `\n transform: translate(${-1 * deltaX}px, ${-1 * deltaY}px);\n width: ${elToCloneWidth}px;\n height: ${elToCloneHeight}px;\n `\n : `transform: translate(${-1 * deltaX}px, ${-1 * deltaY}px) scale(${1 / scaleX}, ${1 / scaleY});`\n const tweenFrom = elFromTween !== void 0\n ? `opacity: ${options.tweenToOpacity};`\n : `background-color: ${elFromBackground};`\n const tweenTo = elFromTween !== void 0\n ? 'opacity: 1;'\n : `background-color: ${elToBackground};`\n const keyframesFromTween = elFromTween === void 0\n ? ''\n : `\n @keyframes ${qAnimId}-from-tween {\n 0% {\n opacity: ${options.tweenFromOpacity};\n margin: 0;\n border-width: ${elFromBorderWidth};\n border-style: ${elFromBorderStyle};\n border-color: ${elFromBorderColor};\n border-radius: ${elFromBorderRadius};\n z-index: ${elFromZIndex};\n transform-origin: 0 0;\n transform: ${elFromTransform};\n ${resizeFromTween}\n }\n\n 100% {\n opacity: 0;\n margin: 0;\n border-width: ${elToBorderWidth};\n border-style: ${elToBorderStyle};\n border-color: ${elToBorderColor};\n border-radius: ${elToBorderRadius};\n z-index: ${elToZIndex};\n transform-origin: 0 0;\n ${resizeToTween}\n }\n }\n `\n const keyframesFrom = options.hideFromClone === true || elSharedSize === true\n ? ''\n : `\n @keyframes ${qAnimId}-from {\n 0% {\n margin: ${elFromParentHeightDiff < 0 ? elFromParentHeightDiff / 2 : 0}px ${elFromParentWidthDiff < 0 ? elFromParentWidthDiff / 2 : 0}px;\n width: ${elFromCloneWidth + elFromPosition.marginH}px;\n height: ${elFromCloneHeight + elFromPosition.marginV}px;\n }\n\n 100% {\n margin: 0;\n width: 0;\n height: 0;\n }\n }\n `\n const keyframeToStart = elSharedSize === true\n ? `\n margin: ${elFromParentHeightDiff < 0 ? elFromParentHeightDiff / 2 : 0}px ${elFromParentWidthDiff < 0 ? elFromParentWidthDiff / 2 : 0}px;\n width: ${elFromCloneWidth + elFromPosition.marginH}px;\n height: ${elFromCloneHeight + elFromPosition.marginV}px;\n `\n : `\n margin: 0;\n width: 0;\n height: 0;\n `\n const keyframesTo = options.keepToClone === true\n ? ''\n : `\n @keyframes ${qAnimId}-to {\n 0% {\n ${keyframeToStart}\n }\n\n 100% {\n margin: ${elToParentHeightDiff < 0 ? elToParentHeightDiff / 2 : 0}px ${elToParentWidthDiff < 0 ? elToParentWidthDiff / 2 : 0}px;\n width: ${elToCloneWidth + elToPosition.marginH}px;\n height: ${elToCloneHeight + elToPosition.marginV}px;\n }\n }\n `\n style.innerHTML = `\n @keyframes ${qAnimId} {\n 0% {\n margin: 0;\n border-width: ${elFromBorderWidth};\n border-style: ${elFromBorderStyle};\n border-color: ${elFromBorderColor};\n border-radius: ${elFromBorderRadius};\n background-color: ${elFromBackground};\n z-index: ${elFromZIndex};\n transform-origin: 0 0;\n ${resizeFrom}\n ${tweenFrom}\n }\n\n 100% {\n margin: 0;\n border-width: ${elToBorderWidth};\n border-style: ${elToBorderStyle};\n border-color: ${elToBorderColor};\n border-radius: ${elToBorderRadius};\n background-color: ${elToBackground};\n z-index: ${elToZIndex};\n transform-origin: 0 0;\n transform: ${elToTransform};\n ${resizeTo}\n ${tweenTo}\n }\n }\n\n ${keyframesFrom}\n\n ${keyframesFromTween}\n\n ${keyframesTo}\n `\n document.head.appendChild(style)\n\n let animationDirection = 'normal'\n\n elFromClone.style.animation = `${options.duration}ms ${options.easing} ${options.delay}ms ${animationDirection} ${options.fill} ${qAnimId}-from`\n if (elFromTween !== void 0) {\n elFromTween.style.animation = `${options.duration}ms ${options.easing} ${options.delay}ms ${animationDirection} ${options.fill} ${qAnimId}-from-tween`\n }\n elToClone.style.animation = `${options.duration}ms ${options.easing} ${options.delay}ms ${animationDirection} ${options.fill} ${qAnimId}-to`\n elTo.style.animation = `${options.duration}ms ${options.easing} ${options.delay}ms ${animationDirection} ${options.fill} ${qAnimId}`\n\n const cleanup = evt => {\n if (evt === Object(evt) && evt.animationName !== qAnimId) {\n return\n }\n\n elTo.removeEventListener('animationend', cleanup)\n elTo.removeEventListener('animationcancel', cleanup)\n\n commonCleanup()\n\n // we clean the animations\n style.remove()\n }\n\n elFrom.qMorphCancel = () => {\n elFrom.qMorphCancel = void 0\n cancelStatus = true\n cleanup()\n }\n elTo.qMorphCancel = () => {\n elTo.qMorphCancel = void 0\n cancelStatus = true\n cleanup()\n }\n\n elTo.addEventListener('animationend', cleanup)\n elTo.addEventListener('animationcancel', cleanup)\n\n cancel = abort => {\n // we are not in a morph that we can cancel\n if (cancelStatus === true || !elTo || !elFromClone || !elToClone) {\n return false\n }\n\n if (abort === true) {\n cleanup()\n\n return true\n }\n\n endElementTo = endElementTo !== true\n\n animationDirection = animationDirection === 'normal' ? 'reverse' : 'normal'\n\n elFromClone.style.animationDirection = animationDirection\n elFromTween.style.animationDirection = animationDirection\n elToClone.style.animationDirection = animationDirection\n elTo.style.animationDirection = animationDirection\n\n return true\n }\n }\n }\n\n if (\n options.waitFor > 0 ||\n options.waitFor === 'transitionend' ||\n (options.waitFor === Object(options.waitFor) && typeof options.waitFor.then === 'function')\n ) {\n const delayPromise = options.waitFor > 0\n ? new Promise(resolve => setTimeout(resolve, options.waitFor))\n : (\n options.waitFor === 'transitionend'\n ? new Promise(resolve => {\n const timer = setTimeout(() => {\n endFn()\n }, 400)\n\n const endFn = ev => {\n clearTimeout(timer)\n\n if (elTo) {\n elTo.removeEventListener('transitionend', endFn)\n elTo.removeEventListener('transitioncancel', endFn)\n }\n\n resolve()\n }\n\n elTo.addEventListener('transitionend', endFn)\n elTo.addEventListener('transitioncancel', endFn)\n })\n : options.waitFor\n )\n\n delayPromise\n .then(animate)\n .catch(() => {\n typeof elTo.qMorphCancel === 'function' && elTo.qMorphCancel()\n })\n }\n else {\n animate()\n }\n }\n\n typeof _options.onToggle === 'function' && _options.onToggle()\n requestAnimationFrame(calculateFinalState)\n\n // we return the cancel function\n // returns:\n // false if the cancel cannot be performed (the morph ended already or has not started)\n // true else\n return abort => cancel(abort)\n}\n","import morph from '../utils/morph.js'\n\nconst morphGroups = {}\nconst props = [\n 'duration', 'delay', 'easing', 'fill',\n 'classes', 'style', 'duration', 'resize',\n 'useCSS', 'hideFromClone', 'keepToClone', 'tween',\n 'tweenFromOpacity', 'tweenToOpacity',\n 'waitFor', 'onEnd'\n]\nconst mods = [\n 'resize', 'useCSS', 'hideFromClone', 'keepToClone', 'tween'\n]\n\nfunction changeClass (ctx, action) {\n if (ctx.clsAction !== action) {\n ctx.clsAction = action\n ctx.el.classList[action]('q-morph--invisible')\n }\n}\n\nfunction trigger (group) {\n if (group.animating === true || group.queue.length < 2) {\n return\n }\n\n const [ from, to ] = group.queue\n\n group.animating = true\n from.animating = true\n to.animating = true\n\n changeClass(from, 'remove')\n changeClass(to, 'remove')\n\n const cancelFn = morph({\n from: from.el,\n to: to.el,\n onToggle () {\n changeClass(from, 'add')\n changeClass(to, 'remove')\n },\n ...to.opts,\n onEnd (dir, aborted) {\n to.opts.onEnd !== void 0 && to.opts.onEnd(dir, aborted)\n\n if (aborted === true) {\n return\n }\n\n from.animating = false\n to.animating = false\n\n group.animating = false\n group.cancel = void 0\n group.queue.shift()\n\n trigger(group)\n }\n })\n\n group.cancel = () => {\n cancelFn(true) // abort\n group.cancel = void 0\n }\n}\n\nfunction updateModifiers (mod, ctx) {\n const opts = ctx.opts\n\n mods.forEach(name => {\n opts[name] = mod[name] === true\n })\n}\n\nfunction insertArgs (arg, ctx) {\n const opts = typeof arg === 'string' && arg.length > 0\n ? arg.split(':') : []\n\n ctx.name = opts[0]\n ctx.group = opts[1]\n\n Object.assign(ctx.opts, {\n duration: isNaN(opts[2]) === true\n ? 300\n : parseFloat(opts[2]),\n waitFor: opts[3]\n })\n}\n\nfunction updateArgs (arg, ctx) {\n if (arg.group !== void 0) {\n ctx.group = arg.group\n }\n if (arg.name !== void 0) {\n ctx.name = arg.name\n }\n\n const opts = ctx.opts\n\n props.forEach(name => {\n if (arg[name] !== void 0) {\n opts[name] = arg[name]\n }\n })\n}\n\nfunction updateModel (name, ctx) {\n if (ctx.name === name) {\n const group = morphGroups[ctx.group]\n\n // if group is not registered\n if (group === void 0) {\n morphGroups[ctx.group] = {\n name: ctx.group,\n model: name,\n queue: [ ctx ],\n animating: false\n }\n\n changeClass(ctx, 'remove')\n }\n // if model changed\n else if (group.model !== name) {\n group.model = name\n group.queue.push(ctx)\n\n if (group.animating === false && group.queue.length === 2) {\n trigger(group)\n }\n }\n\n return\n }\n\n if (ctx.animating === false) {\n changeClass(ctx, 'add')\n }\n}\n\nfunction updateValue (ctx, value) {\n let model\n\n if (Object(value) === value) {\n model = '' + value.model\n updateArgs(value, ctx)\n updateModifiers(value, ctx)\n }\n else {\n model = '' + value\n }\n\n if (model !== ctx.model) {\n ctx.model = model\n updateModel(model, ctx)\n }\n else if (ctx.animating === false && ctx.clsAction !== void 0) {\n // ensure HMR\n ctx.el.classList[ctx.clsAction]('q-morph--invisible')\n }\n}\n\nfunction destroy (el) {\n const ctx = el.__qmorph\n\n if (ctx !== void 0) {\n const group = morphGroups[ctx.group]\n\n if (group !== void 0) {\n const index = group.queue.indexOf(ctx)\n\n if (index !== -1) {\n group.queue = group.queue.filter(item => item !== ctx)\n\n if (group.queue.length === 0) {\n group.cancel !== void 0 && group.cancel()\n delete morphGroups[ctx.group]\n }\n }\n }\n\n if (ctx.clsAction === 'add') {\n el.classList.remove('q-morph--invisible')\n }\n\n delete el.__qmorph\n }\n}\n\nexport default {\n name: 'morph',\n\n inserted (el, binding) {\n if (el.__qmorph !== void 0) {\n destroy(el)\n el.__qmorph_destroyed = true\n }\n\n const ctx = {\n el,\n animating: false,\n opts: {}\n }\n\n updateModifiers(binding.modifiers, ctx)\n insertArgs(binding.arg, ctx)\n updateValue(ctx, binding.value)\n\n el.__qmorph = ctx\n },\n\n update (el, binding) {\n const ctx = el.__qmorph\n ctx !== void 0 && updateValue(ctx, binding.value)\n },\n\n unbind (el) {\n if (el.__qmorph_destroyed === void 0) {\n destroy(el)\n }\n else {\n delete el.__qmorph_destroyed\n }\n }\n}\n","const defaultCfg = {\n childList: true,\n subtree: true,\n attributes: true,\n characterData: true,\n attributeOldValue: true,\n characterDataOldValue: true\n}\n\nfunction update (el, ctx, value) {\n ctx.handler = value\n ctx.observer !== void 0 && ctx.observer.disconnect()\n\n ctx.observer = new MutationObserver(list => {\n if (typeof ctx.handler === 'function') {\n const res = ctx.handler(list)\n if (res === false || ctx.once === true) {\n destroy(el)\n }\n }\n })\n\n ctx.observer.observe(el, ctx.opts)\n}\n\nfunction destroy (el) {\n const ctx = el.__qmutation\n\n if (ctx !== void 0) {\n ctx.observer !== void 0 && ctx.observer.disconnect()\n delete el.__qmutation\n }\n}\n\nexport default {\n name: 'mutation',\n\n inserted (el, { modifiers: { once, ...mod }, value }) {\n if (el.__qmutation !== void 0) {\n destroy(el)\n el.__qmutation_destroyed = true\n }\n\n const ctx = {\n once,\n opts: Object.keys(mod).length === 0\n ? defaultCfg\n : mod\n }\n\n update(el, ctx, value)\n\n el.__qmutation = ctx\n },\n\n update (el, { oldValue, value }) {\n const ctx = el.__qmutation\n if (ctx !== void 0 && oldValue !== value) {\n update(el, ctx, value)\n }\n },\n\n unbind (el) {\n if (el.__qmutation_destroyed === void 0) {\n destroy(el)\n }\n else {\n delete el.__qmutation_destroyed\n }\n }\n}\n","import debounce from '../utils/debounce.js'\nimport { height, offset } from '../utils/dom.js'\nimport { getScrollTarget } from '../utils/scroll.js'\nimport { listenOpts } from '../utils/event.js'\n\nfunction update (ctx, { value, oldValue }) {\n if (typeof value !== 'function') {\n ctx.scrollTarget.removeEventListener('scroll', ctx.scroll, listenOpts.passive)\n return\n }\n\n ctx.handler = value\n if (typeof oldValue !== 'function') {\n ctx.scrollTarget.addEventListener('scroll', ctx.scroll, listenOpts.passive)\n ctx.scroll()\n }\n}\n\nfunction destroy (el) {\n const ctx = el.__qscrollfire\n if (ctx !== void 0) {\n ctx.scrollTarget.removeEventListener('scroll', ctx.scroll, listenOpts.passive)\n ctx.scroll.cancel()\n delete el.__qscrollfire\n }\n}\n\nexport default {\n name: 'scroll-fire',\n\n inserted (el, binding) {\n if (el.__qscrollfire !== void 0) {\n destroy(el)\n el.__qscrollfire_destroyed = true\n }\n\n const ctx = {\n scrollTarget: getScrollTarget(el),\n scroll: debounce(() => {\n let containerBottom, elBottom\n\n if (ctx.scrollTarget === window) {\n elBottom = el.getBoundingClientRect().bottom\n containerBottom = window.innerHeight\n }\n else {\n elBottom = offset(el).top + height(el)\n containerBottom = offset(ctx.scrollTarget).top + height(ctx.scrollTarget)\n }\n\n if (elBottom > 0 && elBottom < containerBottom) {\n ctx.scrollTarget.removeEventListener('scroll', ctx.scroll, listenOpts.passive)\n ctx.handler(el)\n }\n }, 25)\n }\n\n update(ctx, binding)\n\n el.__qscrollfire = ctx\n },\n\n update (el, binding) {\n if (el.__qscrollfire !== void 0 && binding.value !== binding.oldValue) {\n update(el.__qscrollfire, binding)\n }\n },\n\n unbind (el) {\n if (el.__qscrollfire_destroyed === void 0) {\n destroy(el)\n }\n else {\n delete el.__qscrollfire_destroyed\n }\n }\n}\n","import { getScrollTarget, getVerticalScrollPosition, getHorizontalScrollPosition } from '../utils/scroll.js'\nimport { listenOpts } from '../utils/event.js'\n\nfunction update (ctx, { value, oldValue }) {\n if (typeof value !== 'function') {\n ctx.scrollTarget.removeEventListener('scroll', ctx.scroll, listenOpts.passive)\n return\n }\n\n ctx.handler = value\n if (typeof oldValue !== 'function') {\n ctx.scrollTarget.addEventListener('scroll', ctx.scroll, listenOpts.passive)\n }\n}\n\nfunction destroy (el) {\n const ctx = el.__qscroll\n if (ctx !== void 0) {\n ctx.scrollTarget.removeEventListener('scroll', ctx.scroll, listenOpts.passive)\n delete el.__qscroll\n }\n}\n\nexport default {\n name: 'scroll',\n\n inserted (el, binding) {\n if (el.__qscroll !== void 0) {\n destroy(el)\n el.__qscroll_destroyed = true\n }\n\n const ctx = {\n scrollTarget: getScrollTarget(el),\n scroll () {\n ctx.handler(\n getVerticalScrollPosition(ctx.scrollTarget),\n getHorizontalScrollPosition(ctx.scrollTarget)\n )\n }\n }\n\n update(ctx, binding)\n\n el.__qscroll = ctx\n },\n\n update (el, binding) {\n if (el.__qscroll !== void 0 && binding.oldValue !== binding.value) {\n update(el.__qscroll, binding)\n }\n },\n\n unbind (el) {\n if (el.__qscroll_destroyed === void 0) {\n destroy(el)\n }\n else {\n delete el.__qscroll_destroyed\n }\n }\n}\n","import { client } from '../plugins/Platform.js'\nimport { addEvt, cleanEvt, position, leftClick, stopAndPrevent, noop } from '../utils/event.js'\nimport { clearSelection } from '../utils/private/selection.js'\n\nfunction destroy (el) {\n const ctx = el.__qtouchhold\n if (ctx !== void 0) {\n cleanEvt(ctx, 'main')\n cleanEvt(ctx, 'temp')\n\n clearTimeout(ctx.timer)\n ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n delete el.__qtouchhold\n }\n}\n\nexport default {\n name: 'touch-hold',\n\n bind (el, binding) {\n if (el.__qtouchhold !== void 0) {\n destroy(el)\n el.__qtouchhold_destroyed = true\n }\n\n const { modifiers } = binding\n\n // early return, we don't need to do anything\n if (modifiers.mouse !== true && client.has.touch !== true) {\n return\n }\n\n const ctx = {\n handler: binding.value,\n noop,\n\n mouseStart (evt) {\n if (typeof ctx.handler === 'function' && leftClick(evt) === true) {\n addEvt(ctx, 'temp', [\n [ document, 'mousemove', 'move', 'passiveCapture' ],\n [ document, 'click', 'end', 'notPassiveCapture' ]\n ])\n ctx.start(evt, true)\n }\n },\n\n touchStart (evt) {\n if (evt.target !== void 0 && typeof ctx.handler === 'function') {\n const target = evt.target\n addEvt(ctx, 'temp', [\n [ target, 'touchmove', 'move', 'passiveCapture' ],\n [ target, 'touchcancel', 'end', 'notPassiveCapture' ],\n [ target, 'touchend', 'end', 'notPassiveCapture' ]\n ])\n ctx.start(evt)\n }\n },\n\n start (evt, mouseEvent) {\n ctx.origin = position(evt)\n\n const startTime = Date.now()\n\n if (client.is.mobile === true) {\n document.body.classList.add('non-selectable')\n clearSelection()\n\n ctx.styleCleanup = withDelay => {\n ctx.styleCleanup = void 0\n\n const remove = () => {\n document.body.classList.remove('non-selectable')\n }\n\n if (withDelay === true) {\n clearSelection()\n setTimeout(remove, 10)\n }\n else { remove() }\n }\n }\n\n ctx.triggered = false\n ctx.sensitivity = mouseEvent === true\n ? ctx.mouseSensitivity\n : ctx.touchSensitivity\n\n ctx.timer = setTimeout(() => {\n clearSelection()\n ctx.triggered = true\n\n ctx.handler({\n evt,\n touch: mouseEvent !== true,\n mouse: mouseEvent === true,\n position: ctx.origin,\n duration: Date.now() - startTime\n })\n }, ctx.duration)\n },\n\n move (evt) {\n const { top, left } = position(evt)\n if (\n Math.abs(left - ctx.origin.left) >= ctx.sensitivity ||\n Math.abs(top - ctx.origin.top) >= ctx.sensitivity\n ) {\n clearTimeout(ctx.timer)\n }\n },\n\n end (evt) {\n cleanEvt(ctx, 'temp')\n\n // delay needed otherwise selection still occurs\n ctx.styleCleanup !== void 0 && ctx.styleCleanup(ctx.triggered)\n\n if (ctx.triggered === true) {\n evt !== void 0 && stopAndPrevent(evt)\n }\n else {\n clearTimeout(ctx.timer)\n }\n }\n }\n\n // duration in ms, touch in pixels, mouse in pixels\n const data = [600, 5, 7]\n\n if (typeof binding.arg === 'string' && binding.arg.length > 0) {\n binding.arg.split(':').forEach((val, index) => {\n const v = parseInt(val, 10)\n v && (data[index] = v)\n })\n }\n\n [ ctx.duration, ctx.touchSensitivity, ctx.mouseSensitivity ] = data\n\n el.__qtouchhold = ctx\n\n modifiers.mouse === true && addEvt(ctx, 'main', [\n [ el, 'mousedown', 'mouseStart', `passive${modifiers.mouseCapture === true || modifiers.mousecapture === true ? 'Capture' : ''}` ]\n ])\n\n client.has.touch === true && addEvt(ctx, 'main', [\n [ el, 'touchstart', 'touchStart', `passive${modifiers.capture === true ? 'Capture' : ''}` ],\n [ el, 'touchend', 'noop', 'passiveCapture' ]\n ])\n },\n\n update (el, binding) {\n const ctx = el.__qtouchhold\n if (ctx !== void 0 && binding.oldValue !== binding.value) {\n typeof binding.value !== 'function' && ctx.end()\n ctx.handler = binding.value\n }\n },\n\n unbind (el) {\n if (el.__qtouchhold_destroyed === void 0) {\n destroy(el)\n }\n else {\n delete el.__qtouchhold_destroyed\n }\n }\n}\n","import { client } from '../plugins/Platform.js'\nimport { addEvt, cleanEvt, position, leftClick, stopAndPrevent, noop } from '../utils/event.js'\nimport { clearSelection } from '../utils/private/selection.js'\nimport { isKeyCode } from '../utils/private/key-composition.js'\n\nconst\n keyCodes = {\n esc: 27,\n tab: 9,\n enter: 13,\n space: 32,\n up: 38,\n left: 37,\n right: 39,\n down: 40,\n 'delete': [8, 46]\n },\n keyRegex = new RegExp(`^([\\\\d+]+|${Object.keys(keyCodes).join('|')})$`, 'i')\n\nfunction shouldEnd (evt, origin) {\n const { top, left } = position(evt)\n\n return Math.abs(left - origin.left) >= 7 ||\n Math.abs(top - origin.top) >= 7\n}\n\nfunction destroy (el) {\n const ctx = el.__qtouchrepeat\n if (ctx !== void 0) {\n clearTimeout(ctx.timer)\n\n cleanEvt(ctx, 'main')\n cleanEvt(ctx, 'temp')\n\n ctx.styleCleanup !== void 0 && ctx.styleCleanup()\n\n delete el.__qtouchrepeat\n }\n}\n\nexport default {\n name: 'touch-repeat',\n\n bind (el, { modifiers, value, arg }) {\n if (el.__qtouchrepeat !== void 0) {\n destroy(el)\n el.__qtouchrepeat_destroyed = true\n }\n\n const keyboard = Object.keys(modifiers).reduce((acc, key) => {\n if (keyRegex.test(key) === true) {\n const keyCode = isNaN(parseInt(key, 10)) ? keyCodes[key.toLowerCase()] : parseInt(key, 10)\n keyCode >= 0 && acc.push(keyCode)\n }\n return acc\n }, [])\n\n // early return, we don't need to do anything\n if (\n modifiers.mouse !== true &&\n client.has.touch !== true &&\n keyboard.length === 0\n ) {\n return\n }\n\n const durations = typeof arg === 'string' && arg.length > 0\n ? arg.split(':').map(val => parseInt(val, 10))\n : [0, 600, 300]\n\n const durationsLast = durations.length - 1\n\n const ctx = {\n keyboard,\n handler: value,\n\n noop,\n\n mouseStart (evt) {\n if (ctx.event === void 0 && typeof ctx.handler === 'function' && leftClick(evt) === true) {\n addEvt(ctx, 'temp', [\n [ document, 'mousemove', 'move', 'passiveCapture' ],\n [ document, 'click', 'end', 'notPassiveCapture' ]\n ])\n ctx.start(evt, true)\n }\n },\n\n keyboardStart (evt) {\n if (typeof ctx.handler === 'function' && isKeyCode(evt, keyboard) === true) {\n if (durations[0] === 0 || ctx.event !== void 0) {\n stopAndPrevent(evt)\n el.focus()\n if (ctx.event !== void 0) {\n return\n }\n }\n\n addEvt(ctx, 'temp', [\n [ document, 'keyup', 'end', 'notPassiveCapture' ],\n [ document, 'click', 'end', 'notPassiveCapture' ]\n ])\n ctx.start(evt, false, true)\n }\n },\n\n touchStart (evt) {\n if (evt.target !== void 0 && typeof ctx.handler === 'function') {\n const target = evt.target\n addEvt(ctx, 'temp', [\n [ target, 'touchmove', 'move', 'passiveCapture' ],\n [ target, 'touchcancel', 'end', 'notPassiveCapture' ],\n [ target, 'touchend', 'end', 'notPassiveCapture' ]\n ])\n ctx.start(evt)\n }\n },\n\n start (evt, mouseEvent, keyboardEvent) {\n if (keyboardEvent !== true) {\n ctx.origin = position(evt)\n }\n\n function styleCleanup (withDelay) {\n ctx.styleCleanup = void 0\n\n document.documentElement.style.cursor = ''\n\n const remove = () => {\n document.body.classList.remove('non-selectable')\n }\n\n if (withDelay === true) {\n clearSelection()\n setTimeout(remove, 10)\n }\n else { remove() }\n }\n\n if (client.is.mobile === true) {\n document.body.classList.add('non-selectable')\n clearSelection()\n ctx.styleCleanup = styleCleanup\n }\n\n ctx.event = {\n touch: mouseEvent !== true && keyboardEvent !== true,\n mouse: mouseEvent === true,\n keyboard: keyboardEvent === true,\n startTime: Date.now(),\n repeatCount: 0\n }\n\n const fn = () => {\n if (ctx.event === void 0) {\n return\n }\n\n if (ctx.event.repeatCount === 0) {\n ctx.event.evt = evt\n\n if (keyboardEvent === true) {\n ctx.event.keyCode = evt.keyCode\n }\n else {\n ctx.event.position = position(evt)\n }\n\n if (client.is.mobile !== true) {\n document.documentElement.style.cursor = 'pointer'\n document.body.classList.add('non-selectable')\n clearSelection()\n ctx.styleCleanup = styleCleanup\n }\n }\n\n ctx.event.duration = Date.now() - ctx.event.startTime\n ctx.event.repeatCount += 1\n\n ctx.handler(ctx.event)\n\n const index = durationsLast < ctx.event.repeatCount\n ? durationsLast\n : ctx.event.repeatCount\n\n ctx.timer = setTimeout(fn, durations[index])\n }\n\n if (durations[0] === 0) {\n fn()\n }\n else {\n ctx.timer = setTimeout(fn, durations[0])\n }\n },\n\n move (evt) {\n if (ctx.event !== void 0 && shouldEnd(evt, ctx.origin) === true) {\n clearTimeout(ctx.timer)\n }\n },\n\n end (evt) {\n if (ctx.event === void 0) {\n return\n }\n\n ctx.styleCleanup !== void 0 && ctx.styleCleanup(true)\n evt !== void 0 && ctx.event.repeatCount > 0 && stopAndPrevent(evt)\n\n cleanEvt(ctx, 'temp')\n clearTimeout(ctx.timer)\n\n ctx.event = void 0\n }\n }\n\n el.__qtouchrepeat = ctx\n\n modifiers.mouse === true && addEvt(ctx, 'main', [\n [ el, 'mousedown', 'mouseStart', `passive${modifiers.mouseCapture === true || modifiers.mousecapture === true ? 'Capture' : ''}` ]\n ])\n\n client.has.touch === true && addEvt(ctx, 'main', [\n [ el, 'touchstart', 'touchStart', `passive${modifiers.capture === true ? 'Capture' : ''}` ],\n [ el, 'touchend', 'noop', 'passiveCapture' ]\n ])\n\n keyboard.length > 0 && addEvt(ctx, 'main', [\n [ el, 'keydown', 'keyboardStart', `notPassive${modifiers.keyCapture === true || modifiers.keycapture === true ? 'Capture' : ''}` ]\n ])\n },\n\n update (el, { oldValue, value }) {\n const ctx = el.__qtouchrepeat\n if (ctx !== void 0 && oldValue !== value) {\n typeof value !== 'function' && ctx.end()\n ctx.handler = value\n }\n },\n\n unbind (el) {\n if (el.__qtouchrepeat_destroyed === void 0) {\n destroy(el)\n }\n else {\n delete el.__qtouchrepeat_destroyed\n }\n }\n}\n","import ClosePopup from './directives/ClosePopup.js'\nimport GoBack from './directives/GoBack.js'\nimport Intersection from './directives/Intersection.js'\nimport Morph from './directives/Morph.js'\nimport Mutation from './directives/Mutation.js'\nimport Ripple from './directives/Ripple.js'\nimport ScrollFire from './directives/ScrollFire.js'\nimport Scroll from './directives/Scroll.js'\nimport TouchHold from './directives/TouchHold.js'\nimport TouchPan from './directives/TouchPan.js'\nimport TouchRepeat from './directives/TouchRepeat.js'\nimport TouchSwipe from './directives/TouchSwipe.js'\n\nexport {\n ClosePopup,\n GoBack,\n Intersection,\n Morph,\n Mutation,\n Ripple,\n ScrollFire,\n Scroll,\n TouchHold,\n TouchPan,\n TouchRepeat,\n TouchSwipe\n}\n","import Platform, { isSSR } from './Platform.js'\nimport { noop } from '../utils/event.js'\nimport { getBrand } from '../utils/colors.js'\n\nlet metaValue\n\nfunction getProp () {\n if (Platform.is.winphone) {\n return 'msapplication-navbutton-color'\n }\n if (Platform.is.safari) {\n return 'apple-mobile-web-app-status-bar-style'\n }\n // Chrome, Firefox OS, Opera, Vivaldi\n return 'theme-color'\n}\n\nfunction getMetaTag (v) {\n const els = document.getElementsByTagName('META')\n for (const i in els) {\n if (els[i].name === v) {\n return els[i]\n }\n }\n}\n\nfunction setColor (hexColor) {\n if (metaValue === void 0) {\n // cache it\n metaValue = getProp()\n }\n\n let metaTag = getMetaTag(metaValue)\n const newTag = metaTag === void 0\n\n if (newTag) {\n metaTag = document.createElement('meta')\n metaTag.setAttribute('name', metaValue)\n }\n\n metaTag.setAttribute('content', hexColor)\n\n if (newTag) {\n document.head.appendChild(metaTag)\n }\n}\n\nexport default {\n install ({ $q, cfg }) {\n this.set = isSSR === false && Platform.is.mobile === true && (\n Platform.is.nativeMobile === true ||\n Platform.is.winphone === true || Platform.is.safari === true ||\n Platform.is.webkit === true || Platform.is.vivaldi === true\n )\n ? hexColor => {\n const val = hexColor || getBrand('primary')\n\n if (Platform.is.nativeMobile === true && window.StatusBar) {\n window.StatusBar.backgroundColorByHexString(val)\n }\n else {\n setColor(val)\n }\n }\n : noop\n\n $q.addressbarColor = this\n\n cfg.addressbarColor && this.set(cfg.addressbarColor)\n }\n}\n","import Vue from 'vue'\n\nimport { isSSR, client } from './Platform.js'\n\nconst prefixes = {}\n\n// needed for consistency across browsers,\n// including IE11 which does not return anything\nfunction promisify (target, fn) {\n try {\n const res = target[fn]()\n return res === void 0\n ? Promise.resolve()\n : res\n }\n catch (err) {\n return Promise.reject(err)\n }\n}\n\nfunction checkActive (plugin) {\n plugin.activeEl = document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement ||\n null\n\n plugin.isActive = plugin.activeEl !== null\n}\n\nexport default {\n isCapable: false,\n isActive: false,\n activeEl: null,\n\n request (target) {\n if (this.isCapable === true) {\n const el = target || document.documentElement\n\n if (el !== this.activeEl) {\n const q = client.is.ie === true && this.activeEl !== null && el.contains(this.activeEl)\n ? this.exit()\n : Promise.resolve()\n\n return q\n .then(() => promisify(el, prefixes.request))\n .catch(error => (\n this.activeEl !== null\n ? this.exit().then(() => promisify(el, prefixes.request))\n : Promise.reject(error)\n ))\n .then(res => {\n checkActive(this)\n return res\n })\n }\n }\n\n return this.__getErr()\n },\n\n exit () {\n return this.isCapable === true && this.isActive === true\n ? promisify(document, prefixes.exit).then(res => {\n checkActive(this)\n return this.isActive ? this.exit() : res\n })\n : this.__getErr()\n },\n\n toggle (target) {\n const el = target || document.documentElement\n\n return this.activeEl === el\n ? this.exit()\n : this.request(el)\n },\n\n install ({ $q }) {\n $q.fullscreen = this\n\n this.__getErr = () => Promise.resolve()\n\n if (isSSR === true) { return }\n\n prefixes.request = [\n 'requestFullscreen',\n 'msRequestFullscreen', 'mozRequestFullScreen', 'webkitRequestFullscreen'\n ].find(request => document.documentElement[request] !== void 0)\n\n this.isCapable = prefixes.request !== void 0\n\n if (this.isCapable === false) {\n // it means the browser does NOT support it\n this.__getErr = () => Promise.reject('Not capable')\n return\n }\n\n prefixes.exit = [\n 'exitFullscreen',\n 'msExitFullscreen', 'mozCancelFullScreen', 'webkitExitFullscreen'\n ].find(exit => document[exit])\n\n checkActive(this)\n\n ;[\n 'onfullscreenchange',\n 'onmsfullscreenchange', 'onwebkitfullscreenchange'\n ].forEach(evt => {\n document[evt] = () => {\n checkActive(this)\n }\n })\n\n Vue.util.defineReactive(this, 'isActive', this.isActive)\n Vue.util.defineReactive(this, 'activeEl', this.activeEl)\n }\n}\n","import Vue from 'vue'\n\nimport { isSSR } from './Platform.js'\n\nexport default {\n appVisible: false,\n\n install ({ $q }) {\n if (isSSR === true) {\n this.appVisible = $q.appVisible = true\n return\n }\n\n let prop, evt\n\n if (typeof document.hidden !== 'undefined') { // Opera 12.10 and Firefox 18 and later support\n prop = 'hidden'\n evt = 'visibilitychange'\n }\n else if (typeof document.msHidden !== 'undefined') {\n prop = 'msHidden'\n evt = 'msvisibilitychange'\n }\n else if (typeof document.webkitHidden !== 'undefined') {\n prop = 'webkitHidden'\n evt = 'webkitvisibilitychange'\n }\n\n const update = () => {\n this.appVisible = $q.appVisible = !document[prop]\n }\n\n update()\n\n if (evt && typeof document[prop] !== 'undefined') {\n Vue.util.defineReactive($q, 'appVisible', this.appVisible)\n document.addEventListener(evt, update, false)\n }\n }\n}\n","import Vue from 'vue'\n\nimport QDialog from '../dialog/QDialog.js'\n\nimport QIcon from '../icon/QIcon.js'\nimport QSeparator from '../separator/QSeparator.js'\n\nimport QCard from '../card/QCard.js'\nimport QCardSection from '../card/QCardSection.js'\n\nimport QItem from '../item/QItem.js'\nimport QItemSection from '../item/QItemSection.js'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport AttrsMixin from '../../mixins/attrs.js'\n\nimport cache from '../../utils/private/cache.js'\n\nconst optsGrid = {\n staticClass: 'row items-stretch justify-start',\n attrs: { role: 'list' }\n}\nconst optsList = { attrs: { role: 'list' } }\nconst attrsGridItem = { tabindex: 0, role: 'listitem' }\n\nexport default Vue.extend({\n name: 'BottomSheetPlugin',\n\n mixins: [ DarkMixin, AttrsMixin ],\n\n inheritAttrs: false,\n\n props: {\n title: String,\n message: String,\n actions: Array,\n\n grid: Boolean,\n\n cardClass: [String, Array, Object],\n cardStyle: [String, Array, Object]\n },\n\n computed: {\n dialogProps () {\n return {\n ...this.qAttrs,\n position: 'bottom'\n }\n }\n },\n\n methods: {\n show () {\n this.$refs.dialog.show()\n },\n\n hide () {\n this.$refs.dialog.hide()\n },\n\n onOk (action) {\n this.$emit('ok', action)\n this.hide()\n },\n\n __getGrid (h) {\n return this.actions.map(action => {\n const img = action.avatar || action.img\n\n return action.label === void 0\n ? h(QSeparator, {\n staticClass: 'col-all',\n props: { dark: this.isDark }\n })\n : h('div', {\n staticClass: 'q-bottom-sheet__item q-hoverable q-focusable cursor-pointer relative-position',\n class: action.classes,\n style: action.style,\n attrs: attrsGridItem,\n on: {\n click: () => {\n this.onOk(action)\n },\n keyup: e => {\n e.keyCode === 13 && this.onOk(action)\n }\n }\n }, [\n h('div', { staticClass: 'q-focus-helper' }),\n\n action.icon\n ? h(QIcon, { props: { name: action.icon, color: action.color } })\n : (\n img\n ? h('img', {\n attrs: { src: img },\n staticClass: action.avatar ? 'q-bottom-sheet__avatar' : null\n })\n : h('div', { staticClass: 'q-bottom-sheet__empty-icon' })\n ),\n\n h('div', [ action.label ])\n ])\n })\n },\n\n __getList (h) {\n return this.actions.map(action => {\n const img = action.avatar || action.img\n\n return action.label === void 0\n ? h(QSeparator, { props: { spaced: true, dark: this.isDark } })\n : h(QItem, {\n staticClass: 'q-bottom-sheet__item',\n class: action.classes,\n style: action.style,\n props: {\n tabindex: 0,\n clickable: true,\n dark: this.isDark\n },\n on: {\n click: () => {\n this.onOk(action)\n }\n }\n }, [\n h(QItemSection, { props: { avatar: true } }, [\n action.icon\n ? h(QIcon, { props: { name: action.icon, color: action.color } })\n : (\n img\n ? h('img', {\n attrs: { src: img },\n staticClass: action.avatar ? 'q-bottom-sheet__avatar' : null\n })\n : null\n )\n ]),\n h(QItemSection, [ action.label ])\n ])\n })\n }\n },\n\n render (h) {\n const child = []\n\n this.title && child.push(\n h(QCardSection, {\n staticClass: 'q-dialog__title'\n }, [ this.title ])\n )\n\n this.message && child.push(\n h(QCardSection, {\n staticClass: 'q-dialog__message'\n }, [ this.message ])\n )\n\n child.push(\n this.grid === true\n ? h('div', optsGrid, this.__getGrid(h))\n : h('div', optsList, this.__getList(h))\n )\n\n return h(QDialog, {\n ref: 'dialog',\n props: this.dialogProps,\n on: cache(this, 'hide', {\n hide: () => {\n this.$emit('hide')\n }\n })\n }, [\n h(QCard, {\n staticClass: `q-bottom-sheet q-bottom-sheet--${this.grid === true ? 'grid' : 'list'}` +\n (this.isDark === true ? ' q-bottom-sheet--dark q-dark' : ''),\n style: this.cardStyle,\n class: this.cardClass\n }, child)\n ])\n }\n})\n","import Vue from 'vue'\n\nimport { isSSR } from '../../plugins/Platform.js'\n\nconst ssrAPI = {\n onOk: () => ssrAPI,\n okCancel: () => ssrAPI,\n hide: () => ssrAPI,\n update: () => ssrAPI\n}\n\nexport function merge (target, source) {\n for (const key in source) {\n if (key !== 'spinner' && Object(source[key]) === source[key]) {\n target[key] = Object(target[key]) !== target[key]\n ? {}\n : { ...target[key] }\n\n merge(target[key], source[key])\n }\n else {\n target[key] = source[key]\n }\n }\n}\n\nlet appRoot\n\nfunction getDialogParent (parent, root) {\n if (parent !== void 0) { return parent }\n if (root !== void 0) { return root }\n\n if (appRoot === void 0) {\n const elRoot = document.getElementById('q-app')\n\n if (elRoot && elRoot.__vue__) {\n appRoot = elRoot.__vue__.$root\n }\n }\n\n return appRoot\n}\n\nexport default function (DefaultComponent) {\n return ({ className, class: klass, style, component, root, parent, ...props }) => {\n if (isSSR === true) { return ssrAPI }\n\n klass !== void 0 && (props.cardClass = klass)\n style !== void 0 && (props.cardStyle = style)\n\n const isCustom = component !== void 0\n let DialogComponent, attrs\n\n if (isCustom === true) {\n DialogComponent = component\n }\n else {\n DialogComponent = DefaultComponent\n attrs = props\n }\n\n const\n okFns = [],\n cancelFns = [],\n API = {\n onOk (fn) {\n okFns.push(fn)\n return API\n },\n onCancel (fn) {\n cancelFns.push(fn)\n return API\n },\n onDismiss (fn) {\n okFns.push(fn)\n cancelFns.push(fn)\n return API\n },\n hide () {\n vm.$refs.dialog.hide()\n return API\n },\n update ({ className, class: klass, style, component, root, parent, ...cfg }) {\n if (vm !== null) {\n klass !== void 0 && (cfg.cardClass = klass)\n style !== void 0 && (cfg.cardStyle = style)\n\n if (isCustom === true) {\n Object.assign(props, cfg)\n }\n else {\n merge(props, cfg)\n\n // need to change \"attrs\" reference to\n // actually reflect it in underlying component\n // when we force update it\n attrs = { ...props }\n }\n\n vm.$forceUpdate()\n }\n\n return API\n }\n }\n\n const node = document.createElement('div')\n document.body.appendChild(node)\n\n let emittedOK = false\n\n const on = {\n ok: data => {\n emittedOK = true\n okFns.forEach(fn => { fn(data) })\n },\n\n hide: () => {\n vm.$destroy()\n vm.$el.remove()\n vm = null\n\n if (emittedOK !== true) {\n cancelFns.forEach(fn => { fn() })\n }\n }\n }\n\n let vm = new Vue({\n name: 'QGlobalDialog',\n\n el: node,\n parent: getDialogParent(parent, root),\n\n render (h) {\n return h(DialogComponent, {\n ref: 'dialog',\n props,\n attrs,\n on\n })\n },\n\n mounted () {\n if (this.$refs.dialog !== void 0) {\n this.$refs.dialog.show()\n }\n else {\n on['hook:mounted'] = () => {\n this.$refs.dialog !== void 0 && this.$refs.dialog.show()\n }\n }\n }\n })\n\n return API\n }\n}\n","import BottomSheet from '../components/dialog-bottom-sheet/BottomSheet.js'\nimport globalDialog from '../utils/private/global-dialog.js'\n\nexport default {\n install ({ $q }) {\n this.create = $q.bottomSheet = globalDialog(BottomSheet)\n }\n}\n","import { isSSR } from './Platform.js'\n\nfunction encode (string) {\n return encodeURIComponent(string)\n}\n\nfunction decode (string) {\n return decodeURIComponent(string)\n}\n\nfunction stringifyCookieValue (value) {\n return encode(value === Object(value) ? JSON.stringify(value) : '' + value)\n}\n\nfunction read (string) {\n if (string === '') {\n return string\n }\n\n if (string.indexOf('\"') === 0) {\n // This is a quoted cookie as according to RFC2068, unescape...\n string = string.slice(1, -1).replace(/\\\\\"/g, '\"').replace(/\\\\\\\\/g, '\\\\')\n }\n\n // Replace server-side written pluses with spaces.\n // If we can't decode the cookie, ignore it, it's unusable.\n // If we can't parse the cookie, ignore it, it's unusable.\n string = decode(string.replace(/\\+/g, ' '))\n\n try {\n string = JSON.parse(string)\n }\n catch (e) {}\n\n return string\n}\n\nfunction getString (msOffset) {\n const time = new Date()\n time.setMilliseconds(time.getMilliseconds() + msOffset)\n return time.toUTCString()\n}\n\nfunction parseExpireString (str) {\n let timestamp = 0\n\n const days = str.match(/(\\d+)d/)\n const hours = str.match(/(\\d+)h/)\n const minutes = str.match(/(\\d+)m/)\n const seconds = str.match(/(\\d+)s/)\n\n if (days) { timestamp += days[1] * 864e+5 }\n if (hours) { timestamp += hours[1] * 36e+5 }\n if (minutes) { timestamp += minutes[1] * 6e+4 }\n if (seconds) { timestamp += seconds[1] * 1000 }\n\n return timestamp === 0\n ? str\n : getString(timestamp)\n}\n\nfunction set (key, val, opts = {}, ssr) {\n let expire, expireValue\n\n if (opts.expires !== void 0) {\n // if it's a Date Object\n if (Object.prototype.toString.call(opts.expires) === '[object Date]') {\n expire = opts.expires.toUTCString()\n }\n // if it's a String (eg. \"15m\", \"1h\", \"13d\", \"1d 15m\", \"31s\")\n // possible units: d (days), h (hours), m (minutes), s (seconds)\n else if (typeof opts.expires === 'string') {\n expire = parseExpireString(opts.expires)\n }\n // otherwise it must be a Number (defined in days)\n else {\n expireValue = parseFloat(opts.expires)\n expire = isNaN(expireValue) === false\n ? getString(expireValue * 864e+5)\n : opts.expires\n }\n }\n\n const keyValue = `${encode(key)}=${stringifyCookieValue(val)}`\n\n const cookie = [\n keyValue,\n expire !== void 0 ? '; Expires=' + expire : '', // use expires attribute, max-age is not supported by IE\n opts.path ? '; Path=' + opts.path : '',\n opts.domain ? '; Domain=' + opts.domain : '',\n opts.sameSite ? '; SameSite=' + opts.sameSite : '',\n opts.httpOnly ? '; HttpOnly' : '',\n opts.secure ? '; Secure' : '',\n opts.other ? '; ' + opts.other : ''\n ].join('')\n\n if (ssr) {\n if (ssr.req.qCookies) {\n ssr.req.qCookies.push(cookie)\n }\n else {\n ssr.req.qCookies = [ cookie ]\n }\n\n ssr.res.setHeader('Set-Cookie', ssr.req.qCookies)\n\n // make temporary update so future get()\n // within same SSR timeframe would return the set value\n\n let all = ssr.req.headers.cookie || ''\n\n if (expire !== void 0 && expireValue < 0) {\n const val = get(key, ssr)\n if (val !== void 0) {\n all = all\n .replace(`${key}=${val}; `, '')\n .replace(`; ${key}=${val}`, '')\n .replace(`${key}=${val}`, '')\n }\n }\n else {\n all = all\n ? `${keyValue}; ${all}`\n : cookie\n }\n\n ssr.req.headers.cookie = all\n }\n else {\n document.cookie = cookie\n }\n}\n\nfunction get (key, ssr) {\n const\n cookieSource = ssr ? ssr.req.headers : document,\n cookies = cookieSource.cookie ? cookieSource.cookie.split('; ') : [],\n l = cookies.length\n let\n result = key ? null : {},\n i = 0,\n parts,\n name,\n cookie\n\n for (; i < l; i++) {\n parts = cookies[i].split('=')\n name = decode(parts.shift())\n cookie = parts.join('=')\n\n if (!key) {\n result[name] = cookie\n }\n else if (key === name) {\n result = read(cookie)\n break\n }\n }\n\n return result\n}\n\nfunction remove (key, options, ssr) {\n set(\n key,\n '',\n { expires: -1, ...options },\n ssr\n )\n}\n\nfunction has (key, ssr) {\n return get(key, ssr) !== null\n}\n\nexport function getObject (ssr) {\n return {\n get: key => get(key, ssr),\n set: (key, val, opts) => set(key, val, opts, ssr),\n has: key => has(key, ssr),\n remove: (key, options) => remove(key, options, ssr),\n getAll: () => get(null, ssr)\n }\n}\n\nexport default {\n parseSSR (ssrContext) {\n return ssrContext !== void 0\n ? getObject(ssrContext)\n : this\n },\n\n install ({ $q, queues }) {\n if (isSSR === true) {\n queues.server.push((q, ctx) => {\n q.cookies = getObject(ctx.ssr)\n })\n }\n else {\n Object.assign(this, getObject())\n $q.cookies = this\n }\n }\n}\n","import Vue from 'vue'\n\nimport QDialog from '../dialog/QDialog.js'\nimport QBtn from '../btn/QBtn.js'\n\nimport clone from '../../utils/clone.js'\nimport { isKeyCode } from '../../utils/private/key-composition.js'\n\nimport QCard from '../card/QCard.js'\nimport QCardSection from '../card/QCardSection.js'\nimport QCardActions from '../card/QCardActions.js'\nimport QSeparator from '../separator/QSeparator.js'\n\nimport QInput from '../input/QInput.js'\nimport QOptionGroup from '../option-group/QOptionGroup.js'\n\nimport QSpinner from '../spinner/QSpinner.js'\n\nimport DarkMixin from '../../mixins/dark.js'\nimport AttrsMixin from '../../mixins/attrs.js'\n\nimport cache from '../../utils/private/cache.js'\nimport { isObject } from '../../utils/is.js'\n\nexport default Vue.extend({\n name: 'DialogPlugin',\n\n mixins: [ DarkMixin, AttrsMixin ],\n\n inheritAttrs: false,\n\n props: {\n title: String,\n message: String,\n prompt: Object,\n options: Object,\n progress: [ Boolean, Object ],\n\n html: Boolean,\n\n ok: {\n type: [ String, Object, Boolean ],\n default: true\n },\n cancel: [ String, Object, Boolean ],\n focus: {\n type: String,\n default: 'ok',\n validator: v => ['ok', 'cancel', 'none'].includes(v)\n },\n\n stackButtons: Boolean,\n color: String,\n\n cardClass: [ String, Array, Object ],\n cardStyle: [ String, Array, Object ]\n },\n\n computed: {\n classes () {\n return 'q-dialog-plugin' +\n (this.isDark === true ? ' q-dialog-plugin--dark q-dark' : '') +\n (this.progress !== false ? ' q-dialog-plugin--progress' : '')\n },\n\n spinner () {\n if (this.progress !== false) {\n return isObject(this.progress) === true\n ? {\n component: this.progress.spinner || QSpinner,\n props: { color: this.progress.color || this.vmColor }\n }\n : {\n component: QSpinner,\n props: { color: this.vmColor }\n }\n }\n },\n\n hasForm () {\n return this.prompt !== void 0 || this.options !== void 0\n },\n\n okLabel () {\n return isObject(this.ok) === true\n ? this.$q.lang.label.ok\n : (\n this.ok === true\n ? this.$q.lang.label.ok\n : this.ok\n )\n },\n\n cancelLabel () {\n return isObject(this.cancel) === true\n ? this.$q.lang.label.cancel\n : (\n this.cancel === true\n ? this.$q.lang.label.cancel\n : this.cancel\n )\n },\n\n vmColor () {\n return this.color || (this.isDark === true ? 'amber' : 'primary')\n },\n\n okDisabled () {\n if (this.prompt !== void 0) {\n return this.prompt.isValid !== void 0 &&\n this.prompt.isValid(this.prompt.model) !== true\n }\n if (this.options !== void 0) {\n return this.options.isValid !== void 0 &&\n this.options.isValid(this.options.model) !== true\n }\n },\n\n okProps () {\n return {\n color: this.vmColor,\n label: this.okLabel,\n ripple: false,\n disable: this.okDisabled,\n ...(isObject(this.ok) === true ? this.ok : { flat: true })\n }\n },\n\n cancelProps () {\n return {\n color: this.vmColor,\n label: this.cancelLabel,\n ripple: false,\n ...(isObject(this.cancel) === true ? this.cancel : { flat: true })\n }\n }\n },\n\n methods: {\n show () {\n this.$refs.dialog.show()\n },\n\n hide () {\n this.$refs.dialog.hide()\n },\n\n getPrompt (h) {\n return [\n h(QInput, {\n props: {\n value: this.prompt.model,\n type: this.prompt.type,\n\n label: this.prompt.label,\n stackLabel: this.prompt.stackLabel,\n\n outlined: this.prompt.outlined,\n filled: this.prompt.filled,\n standout: this.prompt.standout,\n rounded: this.prompt.rounded,\n square: this.prompt.square,\n\n counter: this.prompt.counter,\n maxlength: this.prompt.maxlength,\n prefix: this.prompt.prefix,\n suffix: this.prompt.suffix,\n\n color: this.vmColor,\n dense: true,\n autofocus: true,\n dark: this.isDark\n },\n attrs: this.prompt.attrs,\n on: cache(this, 'prompt', {\n input: v => { this.prompt.model = v },\n keyup: evt => {\n // if ENTER key\n if (\n this.okDisabled !== true &&\n this.prompt.type !== 'textarea' &&\n isKeyCode(evt, 13) === true\n ) {\n this.onOk()\n }\n }\n })\n })\n ]\n },\n\n getOptions (h) {\n return [\n h(QOptionGroup, {\n props: {\n value: this.options.model,\n type: this.options.type,\n color: this.vmColor,\n inline: this.options.inline,\n options: this.options.items,\n dark: this.isDark\n },\n on: cache(this, 'opts', {\n input: v => { this.options.model = v }\n })\n })\n ]\n },\n\n getButtons (h) {\n const child = []\n\n this.cancel && child.push(h(QBtn, {\n props: this.cancelProps,\n attrs: { 'data-autofocus': this.focus === 'cancel' && this.hasForm !== true },\n on: cache(this, 'cancel', { click: this.onCancel })\n }))\n\n this.ok && child.push(h(QBtn, {\n props: this.okProps,\n attrs: { 'data-autofocus': this.focus === 'ok' && this.hasForm !== true },\n on: cache(this, 'ok', { click: this.onOk })\n }))\n\n if (child.length > 0) {\n return h(QCardActions, {\n staticClass: this.stackButtons === true ? 'items-end' : null,\n props: {\n vertical: this.stackButtons,\n align: 'right'\n }\n }, child)\n }\n },\n\n onOk () {\n this.$emit('ok', clone(this.getData()))\n this.hide()\n },\n\n onCancel () {\n this.hide()\n },\n\n getData () {\n return this.prompt !== void 0\n ? this.prompt.model\n : (this.options !== void 0 ? this.options.model : void 0)\n },\n\n getSection (h, staticClass, text) {\n return this.html === true\n ? h(QCardSection, {\n staticClass,\n domProps: { innerHTML: text }\n })\n : h(QCardSection, { staticClass }, [ text ])\n }\n },\n\n render (h) {\n const child = []\n\n this.title && child.push(\n this.getSection(h, 'q-dialog__title', this.title)\n )\n\n this.progress !== false && child.push(\n h(QCardSection, { staticClass: 'q-dialog__progress' }, [\n h(this.spinner.component, {\n props: this.spinner.props\n })\n ])\n )\n\n this.message && child.push(\n this.getSection(h, 'q-dialog__message', this.message)\n )\n\n if (this.prompt !== void 0) {\n child.push(\n h(\n QCardSection,\n { staticClass: 'scroll q-dialog-plugin__form' },\n this.getPrompt(h)\n )\n )\n }\n else if (this.options !== void 0) {\n child.push(\n h(QSeparator, { props: { dark: this.isDark } }),\n h(\n QCardSection,\n { staticClass: 'scroll q-dialog-plugin__form' },\n this.getOptions(h)\n ),\n h(QSeparator, { props: { dark: this.isDark } })\n )\n }\n\n if (this.ok || this.cancel) {\n child.push(this.getButtons(h))\n }\n\n return h(QDialog, {\n ref: 'dialog',\n\n props: {\n ...this.qAttrs,\n value: this.value\n },\n\n on: cache(this, 'hide', {\n hide: () => {\n this.$emit('hide')\n }\n })\n }, [\n h(QCard, {\n staticClass: this.classes,\n style: this.cardStyle,\n class: this.cardClass,\n props: { dark: this.isDark }\n }, child)\n ])\n }\n})\n","import DialogPlugin from '../components/dialog-plugin/DialogPlugin.js'\nimport globalDialog from '../utils/private/global-dialog.js'\n\nexport default {\n install ({ $q }) {\n this.create = $q.dialog = globalDialog(DialogPlugin)\n }\n}\n","import Vue from 'vue'\n\nimport { isSSR } from './Platform.js'\nimport { noop } from '../utils/event.js'\nimport { isObject } from '../utils/is.js'\nimport QAjaxBar from '../components/ajax-bar/QAjaxBar.js'\n\nexport default {\n isActive: false,\n start: noop,\n stop: noop,\n increment: noop,\n setDefaults: noop,\n\n install ({ $q, cfg }) {\n $q.loadingBar = this\n\n if (isSSR === true) {\n return\n }\n\n const props = cfg.loadingBar !== void 0\n ? { ...cfg.loadingBar }\n : {}\n const on = {\n start: () => {\n this.isActive = true\n },\n\n stop: () => {\n this.isActive = false\n }\n }\n\n const bar = new Vue({\n name: 'LoadingBar',\n\n // hide App from Vue devtools\n devtools: { hide: true },\n\n beforeCreate () {\n // prevent error in Vue devtools\n this._routerRoot === void 0 && (this._routerRoot = {})\n },\n\n render: h => h(QAjaxBar, {\n ref: 'bar',\n props,\n on\n })\n }).$mount().$refs.bar\n\n Object.assign(this, {\n start: bar.start,\n stop: bar.stop,\n increment: bar.increment,\n setDefaults: opts => {\n isObject(opts) === true && Object.assign(props, opts)\n bar.$parent.$forceUpdate()\n }\n })\n\n Vue.util.defineReactive(this, 'isActive', this.isActive)\n Vue.util.defineReactive(bar, 'isActive', this.isActive)\n bar.setDefaults = this.setDefaults\n\n document.body.appendChild(bar.$parent.$el)\n }\n}\n","import Vue from 'vue'\n\nimport QSpinner from '../components/spinner/QSpinner.js'\nimport { isSSR } from './Platform.js'\nimport cache from '../utils/private/cache.js'\nimport { isObject } from '../utils/is.js'\nimport { preventScroll } from '../mixins/prevent-scroll.js'\n\nlet\n vm,\n uid = 0,\n timeout,\n props = {},\n activeGroups = {}\n\nconst originalDefaults = {\n group: '__default_quasar_group__',\n delay: 0,\n message: false,\n spinnerSize: 80,\n spinnerColor: 'white',\n messageColor: 'white',\n backgroundColor: 'black',\n spinner: QSpinner,\n customClass: ''\n}\n\nconst defaults = { ...originalDefaults }\n\nfunction registerProps (opts) {\n if (opts && opts.group !== void 0 && activeGroups[ opts.group ] !== void 0) {\n return Object.assign(activeGroups[ opts.group ], opts)\n }\n\n const newProps = isObject(opts) === true && opts.ignoreDefaults === true\n ? { ...originalDefaults, ...opts }\n : { ...defaults, ...opts }\n\n activeGroups[ newProps.group ] = newProps\n return newProps\n}\n\nconst Loading = {\n isActive: false,\n\n show (opts) {\n if (isSSR === true) { return }\n\n props = registerProps(opts)\n const { group } = props\n\n props.customClass += ` text-${props.backgroundColor}`\n\n this.isActive = true\n\n if (vm !== void 0) {\n props.uid = uid\n vm.$forceUpdate()\n }\n else {\n props.uid = ++uid\n clearTimeout(timeout)\n\n timeout = setTimeout(() => {\n timeout = void 0\n\n const node = document.createElement('div')\n document.body.appendChild(node)\n\n vm = new Vue({\n name: 'QLoading',\n\n // hide App from Vue devtools\n devtools: { hide: true },\n\n beforeCreate () {\n // prevent error in Vue devtools\n this._routerRoot === void 0 && (this._routerRoot = {})\n },\n\n el: node,\n\n mounted () {\n preventScroll(true)\n },\n\n render: (h) => {\n return h('transition', {\n props: {\n name: 'q-transition--fade',\n appear: true\n },\n on: cache(this, 'tr', {\n 'after-leave': () => {\n // might be called to finalize\n // previous leave, even if it was cancelled\n if (this.isActive !== true && vm !== void 0) {\n preventScroll(false)\n vm.$destroy()\n vm.$el.remove()\n vm = void 0\n }\n }\n })\n }, [\n this.isActive === true ? h('div', {\n staticClass: 'q-loading fullscreen column flex-center z-max',\n key: props.uid,\n class: props.customClass.trim()\n }, [\n h(props.spinner, {\n props: {\n color: props.spinnerColor,\n size: props.spinnerSize\n }\n }),\n\n (props.message && h('div', {\n class: `text-${props.messageColor}`,\n domProps: {\n [props.sanitize === true ? 'textContent' : 'innerHTML']: props.message\n }\n })) || void 0\n ]) : null\n ])\n }\n })\n }, props.delay)\n }\n\n return paramProps => {\n // if we don't have params (or not an Object param) then we need to hide this group\n if (paramProps === void 0 || Object(paramProps) !== paramProps) {\n this.hide(group)\n return\n }\n\n // else we have params so we need to update this group\n this.show({ ...paramProps, group })\n }\n },\n\n hide (group) {\n if (this.isActive === true) {\n if (group === void 0) {\n // clear out any active groups\n activeGroups = {}\n }\n else if (activeGroups[ group ] === void 0) {\n // we've already hidden it so nothing to do\n return\n }\n else {\n // remove active group\n delete activeGroups[ group ]\n\n const keys = Object.keys(activeGroups)\n\n // if there are other groups registered then\n // show last registered one since that one is still active\n if (keys.length !== 0) {\n // get last registered group\n const lastGroup = keys[ keys.length - 1 ]\n this.show({ group: lastGroup })\n return\n }\n }\n\n if (timeout !== void 0) {\n clearTimeout(timeout)\n timeout = void 0\n }\n\n this.isActive = false\n }\n },\n\n setDefaults (opts) {\n isObject(opts) === true && Object.assign(defaults, opts)\n },\n\n install ({ $q, cfg: { loading } }) {\n this.setDefaults(loading)\n $q.loading = this\n }\n}\n\nif (isSSR === false) {\n Vue.util.defineReactive(Loading, 'isActive', Loading.isActive)\n}\n\nexport default Loading\n","import Vue from 'vue'\n\nimport { isSSR, fromSSR } from './Platform.js'\nimport extend from '../utils/extend.js'\n\nlet updateId, ssrTakeover\n\nfunction normalize (meta) {\n if (meta.title) {\n meta.title = meta.titleTemplate\n ? meta.titleTemplate(meta.title)\n : meta.title\n delete meta.titleTemplate\n }\n\n ;[['meta', 'content'], ['link', 'href']].forEach(type => {\n const\n metaType = meta[type[0]],\n metaProp = type[1]\n\n for (const name in metaType) {\n const metaLink = metaType[name]\n\n if (metaLink.template) {\n if (Object.keys(metaLink).length === 1) {\n delete metaType[name]\n }\n else {\n metaLink[metaProp] = metaLink.template(metaLink[metaProp] || '')\n delete metaLink.template\n }\n }\n }\n })\n}\n\nfunction changed (old, def) {\n if (Object.keys(old).length !== Object.keys(def).length) {\n return true\n }\n for (const key in old) {\n if (old[key] !== def[key]) {\n return true\n }\n }\n}\n\nfunction bodyFilter (name) {\n return ['class', 'style'].includes(name) === false\n}\n\nfunction htmlFilter (name) {\n return ['lang', 'dir'].includes(name) === false\n}\n\nfunction diff (meta, other) {\n const add = {}, remove = {}\n\n if (meta === void 0) {\n return { add: other, remove }\n }\n\n if (meta.title !== other.title) {\n add.title = other.title\n }\n\n ;['meta', 'link', 'script', 'htmlAttr', 'bodyAttr'].forEach(type => {\n const old = meta[type], cur = other[type]\n remove[type] = []\n\n if (old === void 0 || old === null) {\n add[type] = cur\n return\n }\n\n add[type] = {}\n\n for (const key in old) {\n if (cur.hasOwnProperty(key) === false) {\n remove[type].push(key)\n }\n }\n for (const key in cur) {\n if (old.hasOwnProperty(key) === false) {\n add[type][key] = cur[key]\n }\n else if (changed(old[key], cur[key]) === true) {\n remove[type].push(key)\n add[type][key] = cur[key]\n }\n }\n })\n\n return { add, remove }\n}\n\nfunction apply ({ add, remove }) {\n if (add.title) {\n document.title = add.title\n }\n\n if (Object.keys(remove).length > 0) {\n ['meta', 'link', 'script'].forEach(type => {\n remove[type].forEach(name => {\n document.head.querySelector(`${type}[data-qmeta=\"${name}\"]`).remove()\n })\n })\n remove.htmlAttr.filter(htmlFilter).forEach(name => {\n document.documentElement.removeAttribute(name)\n })\n remove.bodyAttr.filter(bodyFilter).forEach(name => {\n document.body.removeAttribute(name)\n })\n }\n\n ;['meta', 'link', 'script'].forEach(type => {\n const metaType = add[type]\n\n for (const name in metaType) {\n const tag = document.createElement(type)\n for (const att in metaType[name]) {\n if (att !== 'innerHTML') {\n tag.setAttribute(att, metaType[name][att])\n }\n }\n tag.setAttribute('data-qmeta', name)\n if (type === 'script') {\n tag.innerHTML = metaType[name].innerHTML || ''\n }\n document.head.appendChild(tag)\n }\n })\n Object.keys(add.htmlAttr).filter(htmlFilter).forEach(name => {\n document.documentElement.setAttribute(name, add.htmlAttr[name] || '')\n })\n Object.keys(add.bodyAttr).filter(bodyFilter).forEach(name => {\n document.body.setAttribute(name, add.bodyAttr[name] || '')\n })\n}\n\nfunction parseMeta (component, meta) {\n if (component._inactive === true) { return }\n\n // if it has meta\n if (hasMeta(component) === true) {\n extend(true, meta, component.__qMeta)\n\n if (component.$options.meta.stopPropagation === true) {\n return\n }\n }\n\n component.$children.forEach(child => {\n parseMeta(child, meta)\n })\n}\n\nfunction updateClient () {\n if (ssrTakeover === true) {\n ssrTakeover = false\n this.$root.__currentMeta = window.__Q_META__\n }\n\n const meta = {\n title: '',\n titleTemplate: null,\n meta: {},\n link: {},\n script: {},\n htmlAttr: {},\n bodyAttr: {}\n }\n parseMeta(this.$root, meta)\n normalize(meta)\n\n apply(diff(this.$root.__currentMeta, meta))\n this.$root.__currentMeta = meta\n}\n\nfunction getAttr (seed) {\n return att => {\n const val = seed[att]\n return att + (val !== true && val !== void 0 ? `=\"${val}\"` : '')\n }\n}\n\nfunction getHead (meta) {\n let output = ''\n if (meta.title) {\n output += `${meta.title}`\n }\n ;['meta', 'link', 'script'].forEach(type => {\n const metaType = meta[type]\n\n for (const att in metaType) {\n const attrs = Object.keys(metaType[att])\n .filter(att => att !== 'innerHTML')\n .map(getAttr(metaType[att]))\n\n output += `<${type} ${attrs.join(' ')} data-qmeta=\"${att}\">`\n if (type === 'script') {\n output += `${metaType[att].innerHTML || ''}`\n }\n }\n })\n return output\n}\n\nfunction getServerMeta (app, html, ctx) {\n const meta = {\n title: '',\n titleTemplate: null,\n meta: {},\n link: {},\n htmlAttr: {},\n bodyAttr: {},\n noscript: {}\n }\n\n parseMeta(app, meta)\n normalize(meta)\n\n const nonce = ctx !== void 0 && ctx.nonce !== void 0\n ? ` nonce=\"${ctx.nonce}\"`\n : ''\n\n const tokens = {\n '%%Q_HTML_ATTRS%%': Object.keys(meta.htmlAttr)\n .filter(htmlFilter)\n .map(getAttr(meta.htmlAttr))\n .join(' '),\n '%%Q_HEAD_TAGS%%': getHead(meta),\n '%%Q_BODY_ATTRS%%': Object.keys(meta.bodyAttr)\n .filter(bodyFilter)\n .map(getAttr(meta.bodyAttr))\n .join(' '),\n '%%Q_BODY_TAGS%%': Object.keys(meta.noscript)\n .map(name => ``)\n .join('') +\n `window.__Q_META__=${delete meta.noscript && JSON.stringify(meta)}`\n }\n\n Object.keys(tokens).forEach(key => {\n html = html.replace(key, tokens[key])\n })\n\n return html\n}\n\nfunction beforeCreate () {\n if (typeof this.$options.meta === 'function') {\n if (this.$options.computed === void 0) {\n this.$options.computed = {}\n }\n this.$options.computed.__qMeta = this.$options.meta\n }\n else if (hasMeta(this) === true) {\n this.__qMeta = this.$options.meta\n }\n}\n\n// needs to be really fast\nfunction hasMeta (vm) {\n return vm.$options.meta !== void 0 &&\n vm.$options.meta !== null\n}\n\nfunction triggerMeta () {\n hasMeta(this) === true && this.__qMetaUpdate()\n}\n\nexport default {\n install ({ queues }) {\n if (isSSR === true) {\n Vue.prototype.$getMetaHTML = app => {\n return (html, ctx) => getServerMeta(app, html, ctx)\n }\n\n Vue.mixin({ beforeCreate })\n\n queues.server.push((_, ctx) => {\n ctx.ssr.Q_HTML_ATTRS += ' %%Q_HTML_ATTRS%%'\n Object.assign(ctx.ssr, {\n Q_HEAD_TAGS: '%%Q_HEAD_TAGS%%',\n Q_BODY_ATTRS: '%%Q_BODY_ATTRS%%',\n Q_BODY_TAGS: '%%Q_BODY_TAGS%%'\n })\n })\n }\n else {\n ssrTakeover = fromSSR\n\n Vue.mixin({\n beforeCreate,\n created () {\n if (hasMeta(this) === true) {\n this.__qMetaUnwatch = this.$watch('__qMeta', this.__qMetaUpdate)\n }\n },\n activated: triggerMeta,\n deactivated: triggerMeta,\n beforeMount: triggerMeta,\n destroyed () {\n if (hasMeta(this) === true) {\n this.__qMetaUnwatch()\n this.__qMetaUpdate()\n }\n },\n methods: {\n __qMetaUpdate () {\n clearTimeout(updateId)\n updateId = setTimeout(updateClient.bind(this), 50)\n }\n }\n })\n }\n }\n}\n","import Vue from 'vue'\n\nimport QAvatar from '../components/avatar/QAvatar.js'\nimport QIcon from '../components/icon/QIcon.js'\nimport QBtn from '../components/btn/QBtn.js'\nimport QSpinner from '../components/spinner/QSpinner.js'\n\nimport { noop } from '../utils/event.js'\nimport { getBodyFullscreenElement } from '../utils/dom.js'\nimport debounce from '../utils/debounce.js'\nimport { isObject } from '../utils/is.js'\n\nimport { isSSR } from './Platform.js'\n\nlet uid = 0, vm\n\nconst defaults = {}\nconst groups = {}\nconst notificationsList = {}\nconst positionClass = {}\nconst emptyRE = /^\\s*$/\n\nconst positionList = [\n 'top-left', 'top-right',\n 'bottom-left', 'bottom-right',\n 'top', 'bottom', 'left', 'right', 'center'\n]\n\nconst badgePositions = [\n 'top-left', 'top-right',\n 'bottom-left', 'bottom-right'\n]\n\nconst notifTypes = {\n positive: {\n icon: $q => $q.iconSet.type.positive,\n color: 'positive'\n },\n\n negative: {\n icon: $q => $q.iconSet.type.negative,\n color: 'negative'\n },\n\n warning: {\n icon: $q => $q.iconSet.type.warning,\n color: 'warning',\n textColor: 'dark'\n },\n\n info: {\n icon: $q => $q.iconSet.type.info,\n color: 'info'\n },\n\n ongoing: {\n group: false,\n timeout: 0,\n spinner: true,\n color: 'grey-8'\n }\n}\n\nfunction addNotification (config, vm, originalApi) {\n if (!config) {\n return logError('parameter required')\n }\n\n let Api\n const notif = { textColor: 'white' }\n\n if (config.ignoreDefaults !== true) {\n Object.assign(notif, defaults)\n }\n\n if (isObject(config) === false) {\n if (notif.type) {\n Object.assign(notif, notifTypes[notif.type])\n }\n\n config = { message: config }\n }\n\n Object.assign(notif, notifTypes[config.type || notif.type], config)\n\n if (typeof notif.icon === 'function') {\n notif.icon = notif.icon(vm.$q)\n }\n\n if (!notif.spinner) {\n notif.spinner = false\n }\n else if (notif.spinner === true) {\n notif.spinner = QSpinner\n }\n\n notif.meta = {\n hasMedia: Boolean(notif.spinner !== false || notif.icon || notif.avatar),\n hasText: hasContent(notif.message) || hasContent(notif.caption)\n }\n\n if (notif.position) {\n if (positionList.includes(notif.position) === false) {\n return logError('wrong position', config)\n }\n }\n else {\n notif.position = 'bottom'\n }\n\n if (notif.timeout === void 0) {\n notif.timeout = 5000\n }\n else {\n const t = parseInt(notif.timeout, 10)\n if (isNaN(t) || t < 0) {\n return logError('wrong timeout', config)\n }\n notif.timeout = t\n }\n\n if (notif.timeout === 0) {\n notif.progress = false\n }\n else if (notif.progress === true) {\n notif.meta.progressClass = 'q-notification__progress' + (\n notif.progressClass\n ? ` ${notif.progressClass}`\n : ''\n )\n\n notif.meta.progressStyle = {\n animationDuration: `${notif.timeout + 1000}ms`\n }\n }\n\n const actions = (\n Array.isArray(config.actions) === true\n ? config.actions\n : []\n ).concat(\n config.ignoreDefaults !== true && Array.isArray(defaults.actions) === true\n ? defaults.actions\n : []\n ).concat(\n notifTypes[config.type] !== void 0 && Array.isArray(notifTypes[config.type].actions) === true\n ? notifTypes[config.type].actions\n : []\n )\n\n const { closeBtn } = notif\n closeBtn && actions.push({\n label: typeof closeBtn === 'string'\n ? closeBtn\n : vm.$q.lang.label.close\n })\n\n notif.actions = actions.map(({ handler, noDismiss, style, class: klass, attrs, ...props }) => ({\n staticClass: klass,\n style,\n props: { flat: true, ...props },\n attrs,\n on: {\n click: typeof handler === 'function'\n ? () => {\n handler()\n noDismiss !== true && dismiss()\n }\n : () => { dismiss() }\n }\n }))\n\n if (notif.multiLine === void 0) {\n notif.multiLine = notif.actions.length > 1\n }\n\n Object.assign(notif.meta, {\n staticClass: 'q-notification row items-stretch' +\n ` q-notification--${notif.multiLine === true ? 'multi-line' : 'standard'}` +\n (notif.color !== void 0 ? ` bg-${notif.color}` : '') +\n (notif.textColor !== void 0 ? ` text-${notif.textColor}` : '') +\n (notif.classes !== void 0 ? ` ${notif.classes}` : ''),\n\n wrapperClass: 'q-notification__wrapper col relative-position border-radius-inherit ' +\n (notif.multiLine === true ? 'column no-wrap justify-center' : 'row items-center'),\n\n contentClass: 'q-notification__content row items-center' +\n (notif.multiLine === true ? '' : ' col'),\n\n leftClass: notif.meta.hasText === true ? 'additional' : 'single',\n\n attrs: {\n role: 'alert',\n ...notif.attrs\n }\n })\n\n if (notif.group === false) {\n notif.group = void 0\n notif.meta.group = void 0\n }\n else {\n if (notif.group === void 0 || notif.group === true) {\n // do not replace notifications with different buttons\n notif.group = [\n notif.message,\n notif.caption,\n notif.multiline\n ].concat(\n notif.actions.map(({ props }) => `${props.label}*${props.icon}`)\n ).join('|')\n }\n\n notif.meta.group = notif.group + '|' + notif.position\n }\n\n if (notif.actions.length === 0) {\n notif.actions = void 0\n }\n else {\n notif.meta.actionsClass = 'q-notification__actions row items-center ' +\n (notif.multiLine === true ? 'justify-end' : 'col-auto') +\n (notif.meta.hasMedia === true ? ' q-notification__actions--with-media' : '')\n }\n\n if (originalApi !== void 0) {\n // reset timeout if any\n clearTimeout(originalApi.notif.meta.timer)\n\n // retain uid\n notif.meta.uid = originalApi.notif.meta.uid\n\n // replace notif\n const index = notificationsList[notif.position].indexOf(originalApi.notif)\n notificationsList[notif.position][index] = notif\n }\n else {\n const original = groups[notif.meta.group]\n\n // woohoo, it's a new notification\n if (original === void 0) {\n notif.meta.uid = uid++\n notif.meta.badge = 1\n\n if (['left', 'right', 'center'].indexOf(notif.position) !== -1) {\n notificationsList[notif.position].splice(\n Math.floor(notificationsList[notif.position].length / 2),\n 0,\n notif\n )\n }\n else {\n const action = notif.position.indexOf('top') > -1 ? 'unshift' : 'push'\n notificationsList[notif.position][action](notif)\n }\n\n if (notif.group !== void 0) {\n groups[notif.meta.group] = notif\n }\n }\n // ok, so it's NOT a new one\n else {\n // reset timeout if any\n clearTimeout(original.meta.timer)\n\n if (notif.badgePosition !== void 0) {\n if (badgePositions.includes(notif.badgePosition) === false) {\n return logError('wrong badgePosition', config)\n }\n }\n else {\n notif.badgePosition = `top-${notif.position.indexOf('left') > -1 ? 'right' : 'left'}`\n }\n\n notif.meta.uid = original.meta.uid\n notif.meta.badge = original.meta.badge + 1\n notif.meta.badgeClass = `q-notification__badge q-notification__badge--${notif.badgePosition}` +\n (notif.badgeColor !== void 0 ? ` bg-${notif.badgeColor}` : '') +\n (notif.badgeTextColor !== void 0 ? ` text-${notif.badgeTextColor}` : '') +\n (notif.badgeClass ? ` ${notif.badgeClass}` : '')\n\n const index = notificationsList[notif.position].indexOf(original)\n notificationsList[notif.position][index] = groups[notif.meta.group] = notif\n }\n }\n\n const dismiss = () => {\n removeNotification(notif, vm)\n Api = void 0\n }\n\n vm.$forceUpdate()\n\n if (notif.timeout > 0) {\n notif.meta.timer = setTimeout(() => {\n dismiss()\n }, notif.timeout + /* show duration */ 1000)\n }\n\n // only non-groupable can be updated\n if (notif.group !== void 0) {\n return props => {\n if (props !== void 0) {\n logError('trying to update a grouped one which is forbidden', config)\n }\n else {\n dismiss()\n }\n }\n }\n\n Api = {\n dismiss,\n config,\n notif\n }\n\n if (originalApi !== void 0) {\n Object.assign(originalApi, Api)\n return\n }\n\n return props => {\n // if notification wasn't previously dismissed\n if (Api !== void 0) {\n // if no params, then we must dismiss the notification\n if (props === void 0) {\n Api.dismiss()\n }\n // otherwise we're updating it\n else {\n const newNotif = Object.assign({}, Api.config, props, {\n group: false,\n position: notif.position\n })\n\n addNotification(newNotif, vm, Api)\n }\n }\n }\n}\n\nfunction removeNotification (notif, vm) {\n clearTimeout(notif.meta.timer)\n\n const index = notificationsList[notif.position].indexOf(notif)\n if (index !== -1) {\n if (notif.group !== void 0) {\n delete groups[notif.meta.group]\n }\n\n const el = vm.$refs['' + notif.meta.uid]\n\n if (el) {\n const { width, height } = getComputedStyle(el)\n\n el.style.left = `${el.offsetLeft}px`\n el.style.width = width\n el.style.height = height\n }\n\n notificationsList[notif.position].splice(index, 1)\n\n vm.$forceUpdate()\n\n if (typeof notif.onDismiss === 'function') {\n notif.onDismiss()\n }\n }\n}\n\nfunction hasContent (str) {\n return str !== void 0 &&\n str !== null &&\n emptyRE.test(str) !== true\n}\n\nfunction logError (error, config) {\n console.error(`Notify: ${error}`, config)\n return false\n}\n\nconst Notifications = {\n name: 'QNotifications',\n\n // hide App from Vue devtools\n devtools: { hide: true },\n\n beforeCreate () {\n // prevent error in Vue devtools\n this._routerRoot === void 0 && (this._routerRoot = {})\n },\n\n render (h) {\n return h('div', { staticClass: 'q-notifications' }, positionList.map(pos => {\n return h('transition-group', {\n key: pos,\n staticClass: positionClass[pos],\n tag: 'div',\n props: {\n name: `q-notification--${pos}`,\n mode: 'out-in'\n }\n }, notificationsList[pos].map(notif => {\n const { meta } = notif\n const mainChild = []\n\n if (meta.hasMedia === true) {\n if (notif.spinner !== false) {\n mainChild.push(\n h(notif.spinner, {\n staticClass: 'q-notification__spinner q-notification__spinner--' + meta.leftClass,\n props: { color: notif.spinnerColor, size: notif.spinnerSize }\n })\n )\n }\n else if (notif.icon) {\n mainChild.push(\n h(QIcon, {\n staticClass: 'q-notification__icon q-notification__icon--' + meta.leftClass,\n attrs: { role: 'img' },\n props: { name: notif.icon, color: notif.iconColor, size: notif.iconSize }\n })\n )\n }\n else if (notif.avatar) {\n mainChild.push(\n h(QAvatar, { staticClass: 'q-notification__avatar q-notification__avatar--' + meta.leftClass }, [\n h('img', { attrs: { src: notif.avatar, 'aria-hidden': 'true' } })\n ])\n )\n }\n }\n\n if (meta.hasText === true) {\n let msgChild\n const msgData = { staticClass: 'q-notification__message col' }\n\n if (notif.html === true) {\n msgData.domProps = {\n innerHTML: notif.caption\n ? `
${notif.message}
${notif.caption}
`\n : notif.message\n }\n }\n else {\n const msgNode = [ notif.message ]\n msgChild = notif.caption\n ? [\n h('div', msgNode),\n h('div', { staticClass: 'q-notification__caption' }, [notif.caption])\n ]\n : msgNode\n }\n\n mainChild.push(\n h('div', msgData, msgChild)\n )\n }\n\n const child = [\n h('div', { staticClass: meta.contentClass }, mainChild)\n ]\n\n notif.progress === true && child.push(\n h('div', {\n key: `${meta.uid}|p|${meta.badge}`,\n staticClass: meta.progressClass,\n style: meta.progressStyle\n })\n )\n\n notif.actions !== void 0 && child.push(\n h('div', {\n staticClass: meta.actionsClass\n }, notif.actions.map(action => h(QBtn, { ...action })))\n )\n\n meta.badge > 1 && child.push(\n h('div', {\n key: `${meta.uid}|${meta.badge}`,\n staticClass: meta.badgeClass,\n style: notif.badgeStyle\n }, [ meta.badge ])\n )\n\n return h('div', {\n ref: '' + meta.uid,\n key: meta.uid,\n staticClass: meta.staticClass,\n attrs: meta.attrs\n }, [\n h('div', { staticClass: meta.wrapperClass }, child)\n ])\n }))\n }))\n },\n\n mounted () {\n if (this.$q.fullscreen !== void 0 && this.$q.fullscreen.isCapable === true) {\n const append = () => {\n const newParent = getBodyFullscreenElement(this.$q.fullscreen.activeEl)\n\n if (this.$el.parentElement !== newParent) {\n newParent.appendChild(this.$el)\n }\n }\n\n this.unwatchFullscreen = this.$watch('$q.fullscreen.activeEl', debounce(append, 50))\n\n if (this.$q.fullscreen.isActive === true) {\n append()\n }\n }\n },\n\n beforeDestroy () {\n this.unwatchFullscreen !== void 0 && this.unwatchFullscreen()\n }\n}\n\nexport default {\n setDefaults (opts) {\n if (isSSR !== true && isObject(opts) === true) {\n Object.assign(defaults, opts)\n }\n },\n\n registerType (typeName, typeOpts) {\n if (isSSR !== true && isObject(typeOpts) === true) {\n notifTypes[typeName] = typeOpts\n }\n },\n\n install ({ $q }) {\n $q.notify = this.create = isSSR === true\n ? noop\n : opts => addNotification(opts, vm)\n\n $q.notify.setDefaults = this.setDefaults\n $q.notify.registerType = this.registerType\n\n if ($q.config.notify !== void 0) {\n this.setDefaults($q.config.notify)\n }\n\n if (isSSR !== true) {\n positionList.forEach(pos => {\n notificationsList[pos] = []\n\n const\n vert = ['left', 'center', 'right'].includes(pos) === true ? 'center' : (pos.indexOf('top') > -1 ? 'top' : 'bottom'),\n align = pos.indexOf('left') > -1 ? 'start' : (pos.indexOf('right') > -1 ? 'end' : 'center'),\n classes = ['left', 'right'].includes(pos) ? `items-${pos === 'left' ? 'start' : 'end'} justify-center` : (pos === 'center' ? 'flex-center' : `items-${align}`)\n\n positionClass[pos] = `q-notifications__list q-notifications__list--${vert} fixed column no-wrap ${classes}`\n })\n\n const node = document.createElement('div')\n document.body.appendChild(node)\n\n vm = new Vue(Notifications)\n vm.$mount(node)\n }\n }\n}\n","import { noop } from '../event.js'\nimport { isDate, isRegexp } from '../is.js'\n\nfunction encode (value) {\n if (isDate(value) === true) {\n return '__q_date|' + value.toUTCString()\n }\n if (isRegexp(value) === true) {\n return '__q_expr|' + value.source\n }\n if (typeof value === 'number') {\n return '__q_numb|' + value\n }\n if (typeof value === 'boolean') {\n return '__q_bool|' + (value ? '1' : '0')\n }\n if (typeof value === 'string') {\n return '__q_strn|' + value\n }\n if (typeof value === 'function') {\n return '__q_strn|' + value.toString()\n }\n if (value === Object(value)) {\n return '__q_objt|' + JSON.stringify(value)\n }\n\n // hmm, we don't know what to do with it,\n // so just return it as is\n return value\n}\n\nfunction decode (value) {\n const length = value.length\n if (length < 9) {\n // then it wasn't encoded by us\n return value\n }\n\n const type = value.substr(0, 8)\n const source = value.substring(9)\n\n switch (type) {\n case '__q_date':\n return new Date(source)\n\n case '__q_expr':\n return new RegExp(source)\n\n case '__q_numb':\n return Number(source)\n\n case '__q_bool':\n return Boolean(source === '1')\n\n case '__q_strn':\n return '' + source\n\n case '__q_objt':\n return JSON.parse(source)\n\n default:\n // hmm, we reached here, we don't know the type,\n // then it means it wasn't encoded by us, so just\n // return whatever value it is\n return value\n }\n}\n\nexport function getEmptyStorage () {\n const getVal = () => null\n\n return {\n has: () => false,\n getLength: () => 0,\n getItem: getVal,\n getIndex: getVal,\n getKey: getVal,\n getAll: () => {},\n getAllKeys: () => [],\n set: noop,\n remove: noop,\n clear: noop,\n isEmpty: () => true\n }\n}\n\nexport function getStorage (type) {\n const\n webStorage = window[type + 'Storage'],\n get = key => {\n const item = webStorage.getItem(key)\n return item\n ? decode(item)\n : null\n }\n\n return {\n has: key => webStorage.getItem(key) !== null,\n getLength: () => webStorage.length,\n getItem: get,\n getIndex: index => {\n return index < webStorage.length\n ? get(webStorage.key(index))\n : null\n },\n getKey: index => {\n return index < webStorage.length\n ? webStorage.key(index)\n : null\n },\n getAll: () => {\n let key\n const result = {}, len = webStorage.length\n\n for (let i = 0; i < len; i++) {\n key = webStorage.key(i)\n result[key] = get(key)\n }\n\n return result\n },\n getAllKeys: () => {\n const result = [], len = webStorage.length\n\n for (let i = 0; i < len; i++) {\n result.push(webStorage.key(i))\n }\n\n return result\n },\n set: (key, value) => { webStorage.setItem(key, encode(value)) },\n remove: key => { webStorage.removeItem(key) },\n clear: () => { webStorage.clear() },\n isEmpty: () => webStorage.length === 0\n }\n}\n","import { isSSR, client } from './Platform.js'\nimport { getEmptyStorage, getStorage } from '../utils/private/web-storage.js'\n\nexport default {\n install ({ $q }) {\n const storage = isSSR === true || client.has.webStorage === false\n ? getEmptyStorage()\n : getStorage('local')\n\n $q.localStorage = storage\n Object.assign(this, storage)\n }\n}\n","import { isSSR, client } from './Platform.js'\nimport { getEmptyStorage, getStorage } from '../utils/private/web-storage.js'\n\nexport default {\n install ({ $q }) {\n const storage = isSSR === true || client.has.webStorage === false\n ? getEmptyStorage()\n : getStorage('session')\n\n $q.sessionStorage = storage\n Object.assign(this, storage)\n }\n}\n","import AddressbarColor from './plugins/AddressbarColor.js'\nimport AppFullscreen from './plugins/AppFullscreen.js'\nimport AppVisibility from './plugins/AppVisibility.js'\nimport BottomSheet from './plugins/BottomSheet.js'\nimport Cookies from './plugins/Cookies.js'\nimport Dark from './plugins/Dark.js'\nimport Dialog from './plugins/Dialog.js'\nimport LoadingBar from './plugins/LoadingBar.js'\nimport Loading from './plugins/Loading.js'\nimport Meta from './plugins/Meta.js'\nimport Notify from './plugins/Notify.js'\nimport Platform from './plugins/Platform.js'\nimport Screen from './plugins/Screen.js'\nimport LocalStorage from './plugins/LocalStorage.js'\nimport SessionStorage from './plugins/SessionStorage.js'\n\nexport {\n AddressbarColor,\n AppFullscreen,\n AppVisibility,\n BottomSheet,\n Cookies,\n Dark,\n Dialog,\n LoadingBar,\n Loading,\n Meta,\n Notify,\n Platform,\n Screen,\n LocalStorage,\n SessionStorage\n}\n","function fallback (text) {\n const area = document.createElement('textarea')\n area.value = text\n area.contentEditable = true\n area.style.position = 'fixed' // avoid scrolling to bottom\n\n document.body.appendChild(area)\n area.focus()\n area.select()\n\n const res = document.execCommand('copy')\n\n area.remove()\n return res\n}\n\nexport default function (text) {\n return navigator.clipboard !== void 0\n ? navigator.clipboard.writeText(text)\n : new Promise((resolve, reject) => {\n const res = fallback(text)\n if (res) {\n resolve(true)\n }\n else {\n reject(res)\n }\n })\n}\n","function clean (link) {\n // allow time for iOS\n setTimeout(() => {\n window.URL.revokeObjectURL(link.href)\n }, 10000)\n link.remove()\n}\n\nexport default function (fileName, rawData, mimeType) {\n const blob = new Blob([ rawData ], { type: mimeType || 'text/plain' })\n\n // IE11 has its own stuff...\n if (window.navigator.msSaveOrOpenBlob) {\n return window.navigator.msSaveOrOpenBlob(blob, fileName)\n }\n\n const link = document.createElement('a')\n\n link.download = fileName\n link.href = window.URL.createObjectURL(blob)\n\n link.classList.add('hidden')\n link.style.position = 'fixed' // avoid scrolling to bottom\n document.body.appendChild(link)\n\n try {\n link.click()\n clean(link)\n return true\n }\n catch (err) {\n clean(link)\n return err\n }\n}\n","import Vue from 'vue'\n\nimport Platform from '../plugins/Platform.js'\n\nimport { noop } from '../utils/event.js'\n\nfunction parseFeatures (winFeatures) {\n const cfg = Object.assign({ noopener: true }, winFeatures)\n const feat = []\n Object.keys(cfg).forEach(key => {\n if (cfg[key] === true) {\n feat.push(key)\n }\n })\n return feat.join(',')\n}\n\nfunction openWindow (url, reject, windowFeatures) {\n let open = window.open\n\n if (Platform.is.cordova === true) {\n if (cordova !== void 0 && cordova.InAppBrowser !== void 0 && cordova.InAppBrowser.open !== void 0) {\n open = cordova.InAppBrowser.open\n }\n else if (navigator !== void 0 && navigator.app !== void 0) {\n return navigator.app.loadUrl(url, {\n openExternal: true\n })\n }\n }\n else if (Vue.prototype.$q.electron !== void 0) {\n return Vue.prototype.$q.electron.shell.openExternal(url)\n }\n\n const win = open(url, '_blank', parseFeatures(windowFeatures))\n\n if (win) {\n Platform.is.desktop && win.focus()\n return win\n }\n else {\n reject && reject()\n }\n}\n\nexport default (url, reject, windowFeatures) => {\n if (\n Platform.is.ios === true &&\n window.SafariViewController !== void 0\n ) {\n window.SafariViewController.isAvailable(available => {\n if (available) {\n window.SafariViewController.show(\n { url },\n noop,\n reject\n )\n }\n else {\n openWindow(url, reject, windowFeatures)\n }\n })\n return\n }\n\n return openWindow(url, reject, windowFeatures)\n}\n","\nfunction parsePromises (sequentialPromises) {\n const isList = Array.isArray(sequentialPromises)\n\n if (isList === true) {\n const totalJobs = sequentialPromises.length\n return {\n isList,\n totalJobs,\n resultAggregator: Array(totalJobs).fill(null)\n }\n }\n\n const resultKeys = Object.keys(sequentialPromises)\n const resultAggregator = {}\n resultKeys.forEach(keyName => { resultAggregator[ keyName ] = null })\n\n return {\n isList,\n totalJobs: resultKeys.length,\n resultAggregator,\n resultKeys\n }\n}\n\n/**\n * Run a list of Promises sequentially, optionally on multiple threads.\n *\n * @param {*} sequentialPromises - Array of Functions or Object with Functions as values\n * Array of Function form: [ (resultAggregator: Array) => Promise, ... ]\n * Object form: { [key: string]: (resultAggregator: object) => Promise, ... }\n * @param {*} opts - Optional options Object\n * Object form: { threadsNumber?: number, abortOnFail?: boolean }\n * Default: { threadsNumber: 1, abortOnFail: true }\n * When configuring threadsNumber AND using http requests, be\n * aware of the maximum threads that the hosting browser\n * supports (usually 5); any number of threads above that\n * won't add any real benefits\n * @returns Promise | Object>\n * With opts.abortOnFail set to true (which is default):\n * When sequentialPromises param is Array:\n * The Promise resolves with an Array of Objects of the following form:\n * [ { key: number, status: 'fulfilled', value: any }, ... ]\n * The Promise rejects with an Object of the following form:\n * { key: number, status: 'rejected', reason: Error, resultAggregator: array }\n * When sequentialPromises param is Object:\n * The Promise resolves with an Object of the following form:\n * { [key: string]: { key: string, status: 'fulfilled', value: any }, ... }\n * The Promise rejects with an Object of the following form:\n * { key: string, status: 'rejected', reason: Error, resultAggregator: object }\n * With opts.abortOnFail set to false:\n * The Promise is never rejected (no catch() needed)\n * The Promise resolves with:\n * An Array of Objects (when sequentialPromises param is also an Array) of the following form:\n * [ { key: number, status: 'fulfilled', value: any } | { status: 'rejected', reason: Error }, ... ]\n * An Object (when sequentialPromises param is also an Object) of the following form:\n * { [key: string]: { key: string, status: 'fulfilled', value: any } | { key: string, status: 'rejected', reason: Error }, ... }\n */\nexport default function runSequentialPromises (\n sequentialPromises,\n { threadsNumber = 1, abortOnFail = true } = {}\n) {\n let jobIndex = -1, hasAborted = false\n\n const { isList, totalJobs, resultAggregator, resultKeys } = parsePromises(sequentialPromises)\n\n const getPromiseThread = () => new Promise((resolve, reject) => {\n function runNextPromise () {\n const currentJobIndex = ++jobIndex\n\n if (hasAborted === true || currentJobIndex >= totalJobs) {\n resolve()\n return\n }\n\n const key = isList === true ? currentJobIndex : resultKeys[ currentJobIndex ]\n\n sequentialPromises[ key ](resultAggregator)\n .then(value => {\n if (hasAborted === true) {\n resolve()\n return // early exit\n }\n\n resultAggregator[ key ] = { key, status: 'fulfilled', value }\n\n // timeout so it doesn't interfere with the .catch() below\n setTimeout(runNextPromise)\n })\n .catch(reason => {\n if (hasAborted === true) {\n resolve()\n return // early exit\n }\n\n const result = { key, status: 'rejected', reason }\n resultAggregator[ key ] = result\n\n if (abortOnFail === true) {\n hasAborted = true\n reject({ ...result, resultAggregator })\n return // early exit\n }\n\n // timeout so no interference\n setTimeout(runNextPromise)\n })\n }\n\n runNextPromise()\n })\n\n const threads = Array(threadsNumber).fill(getPromiseThread())\n return Promise.all(threads).then(() => resultAggregator)\n}\n","import clone from './utils/clone.js'\nimport colors from './utils/colors.js'\nimport copyToClipboard from './utils/copy-to-clipboard.js'\nimport date from './utils/date.js'\nimport debounce from './utils/debounce.js'\nimport dom from './utils/dom.js'\nimport event, { noop } from './utils/event.js'\nimport exportFile from './utils/export-file.js'\nimport extend from './utils/extend.js'\nimport format from './utils/format.js'\nimport frameDebounce from './utils/frame-debounce.js'\nimport is from './utils/is.js'\nimport morph from './utils/morph.js'\nimport openURL from './utils/open-url.js'\nimport patterns from './utils/patterns.js'\nimport runSequentialPromises from './utils/run-sequential-promises.js'\nimport scroll from './utils/scroll.js'\nimport throttle from './utils/throttle.js'\nimport uid from './utils/uid.js'\n\nexport {\n clone,\n colors,\n copyToClipboard,\n date,\n debounce,\n dom,\n event,\n noop,\n exportFile,\n extend,\n format,\n frameDebounce,\n is,\n morph,\n openURL,\n patterns,\n runSequentialPromises,\n scroll,\n throttle,\n uid\n}\n","import VuePlugin from './vue-plugin.js'\n\nimport * as components from './components.js'\nimport * as directives from './directives.js'\nimport * as plugins from './plugins.js'\n\nexport * from './components.js'\nexport * from './directives.js'\nexport * from './plugins.js'\nexport * from './utils.js'\n\nexport default {\n ...VuePlugin,\n install (Vue, opts) {\n VuePlugin.install(Vue, {\n components,\n directives,\n plugins,\n ...opts\n })\n }\n}\n","\"use strict\";\r\n///////////////////////////////////////////////////////////////////////////////\r\n//\r\n// Licensed under the Apache License, Version 2.0 ( the \"License\" ); you may \r\n// not use this file except in compliance with the License. You may obtain a \r\n// copy of the License at\r\n//\r\n// http://www.apache.org/licenses/LICENSE-2.0\r\n//\r\n// Unless required by applicable law or agreed to in writing, software \r\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\r\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the \r\n// License for the specific language governing permissions and limitations \r\n// under the License.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nfunction* Forward(target) {\r\n yield* target;\r\n}\r\nexports.Forward = Forward;\r\nfunction* Reverse(target) {\r\n for (let i = target.length - 1; i >= 0; i--) {\r\n yield target[i];\r\n }\r\n}\r\nexports.Reverse = Reverse;\r\nfunction* Select(target, transform) {\r\n let index = 0;\r\n for (let value of target) {\r\n yield transform(value, index++);\r\n }\r\n}\r\nexports.Select = Select;\r\nfunction* DefaultIfEmpty(target, defaultValue) {\r\n let iterator = target[Symbol.iterator]();\r\n let result = iterator.next();\r\n if (result.done) {\r\n yield defaultValue;\r\n }\r\n else {\r\n yield* target;\r\n }\r\n}\r\nexports.DefaultIfEmpty = DefaultIfEmpty;\r\nfunction* ChunkBy(target, keySelect, elementSelector, resultSelector) {\r\n let key, box, i = 0;\r\n for (let value of target) {\r\n let newKey = keySelect(value, i++);\r\n if (key !== newKey && box) {\r\n yield resultSelector(key, box);\r\n box = undefined;\r\n }\r\n if (!box) {\r\n box = new Array();\r\n }\r\n key = newKey;\r\n box.push(elementSelector(value));\r\n }\r\n if (box) {\r\n yield resultSelector(key, box);\r\n }\r\n}\r\nexports.ChunkBy = ChunkBy;\r\nfunction* Distinct(target, keySelector) {\r\n let set = new Set();\r\n for (let value of target) {\r\n let key = keySelector(value);\r\n if (set.has(key))\r\n continue;\r\n set.add(key);\r\n yield value;\r\n }\r\n}\r\nexports.Distinct = Distinct;\r\nfunction* DistinctFast(target) {\r\n let set = new Set();\r\n for (let value of target) {\r\n if (set.has(value))\r\n continue;\r\n set.add(value);\r\n yield value;\r\n }\r\n}\r\nexports.DistinctFast = DistinctFast;\r\nfunction* OfType(target, obj, typeName) {\r\n if (typeName) {\r\n for (let value of target) {\r\n if (typeName == typeof (value)) {\r\n yield value;\r\n }\r\n else if (value instanceof obj) {\r\n yield value;\r\n }\r\n }\r\n }\r\n else {\r\n for (let value of target) {\r\n if (value instanceof obj) {\r\n yield value;\r\n }\r\n }\r\n }\r\n}\r\nexports.OfType = OfType;\r\nfunction* Where(target, predicate) {\r\n let index = 0;\r\n for (let value of target) {\r\n if (!predicate(value, index++))\r\n continue;\r\n yield value;\r\n }\r\n}\r\nexports.Where = Where;\r\nfunction* Skip(target, skip) {\r\n let index = 0;\r\n for (let value of target) {\r\n if (skip > index++)\r\n continue;\r\n yield value;\r\n }\r\n}\r\nexports.Skip = Skip;\r\nfunction* SkipWhile(target, predicate) {\r\n let index = 0, skipped = false;\r\n for (let value of target) {\r\n if (!skipped && !(skipped = !predicate(value, index++)))\r\n continue;\r\n yield value;\r\n }\r\n}\r\nexports.SkipWhile = SkipWhile;\r\nfunction* TakeWhile(target, predicate) {\r\n let index = 0;\r\n for (let value of target) {\r\n if (!predicate(value, index++))\r\n break;\r\n yield value;\r\n }\r\n}\r\nexports.TakeWhile = TakeWhile;\r\nfunction* Intersect(target, exceptions, condition, keySelect) {\r\n if (keySelect) {\r\n for (let value of target) {\r\n if (condition == exceptions.has(keySelect(value)))\r\n continue;\r\n yield value;\r\n }\r\n }\r\n else {\r\n for (let value of target) {\r\n if (condition == exceptions.has(value))\r\n continue;\r\n yield value;\r\n }\r\n }\r\n}\r\nexports.Intersect = Intersect;\r\nfunction* Repeat(value, count) {\r\n for (let i = 0; i < count; i++) {\r\n yield value;\r\n }\r\n}\r\nexports.Repeat = Repeat;\r\nfunction* Range(value, count) {\r\n let current = value;\r\n for (let i = 0; i < count; i++) {\r\n yield current;\r\n current++;\r\n }\r\n}\r\nexports.Range = Range;\r\nfunction* Union(first, second, keySelector) {\r\n let set = new Set();\r\n for (let value of first) {\r\n let key = keySelector(value);\r\n if (set.has(key))\r\n continue;\r\n set.add(key);\r\n yield value;\r\n }\r\n for (let value of second) {\r\n let key = keySelector(value);\r\n if (set.has(key))\r\n continue;\r\n set.add(key);\r\n yield value;\r\n }\r\n}\r\nexports.Union = Union;\r\nfunction* UnionFast(first, second) {\r\n let set = new Set();\r\n for (let value of first) {\r\n if (set.has(value))\r\n continue;\r\n set.add(value);\r\n yield value;\r\n }\r\n for (let value of second) {\r\n if (set.has(value))\r\n continue;\r\n set.add(value);\r\n yield value;\r\n }\r\n}\r\nexports.UnionFast = UnionFast;\r\nfunction* Join(target, oKeySelect, transform, map) {\r\n for (let value of target) {\r\n let key = oKeySelect(value);\r\n if (key == null)\r\n continue;\r\n let innerSet = map.get(key);\r\n if (!innerSet)\r\n continue;\r\n for (let inner of innerSet) {\r\n yield transform(value, inner);\r\n }\r\n }\r\n}\r\nexports.Join = Join;\r\nfunction* GroupJoin(target, oKeySelect, transform, map) {\r\n for (let value of target) {\r\n let innerSet = undefined;\r\n let key = oKeySelect(value);\r\n innerSet = map.get(key);\r\n yield transform(value, innerSet);\r\n }\r\n}\r\nexports.GroupJoin = GroupJoin;\r\nfunction* GroupBy(map, resultSelect) {\r\n for (let key of map.keys()) {\r\n yield resultSelect(key, map.get(key));\r\n }\r\n}\r\nexports.GroupBy = GroupBy;\r\nfunction* SelectMany(target, selector, transform) {\r\n let index = 0;\r\n for (let item of target) {\r\n for (let collectionItem of selector(item, index++)) {\r\n yield transform(item, collectionItem);\r\n }\r\n }\r\n}\r\nexports.SelectMany = SelectMany;\r\nfunction* Concat(target, second) {\r\n yield* target;\r\n yield* second;\r\n}\r\nexports.Concat = Concat;\r\nfunction* Zip(first, second, transform, _index = 0) {\r\n let iteratorOne = first[Symbol.iterator]();\r\n let iteratorTwo = second[Symbol.iterator]();\r\n let retOne, retTwo;\r\n while (!(retOne = iteratorOne.next()).done && !(retTwo = iteratorTwo.next()).done) {\r\n yield transform(retOne.value, retTwo.value);\r\n }\r\n}\r\nexports.Zip = Zip;\r\n/** Copyright (c) ENikS. All rights reserved. */\r\n","\"use strict\";\r\n///////////////////////////////////////////////////////////////////////////////\r\n//\r\n// Licensed under the Apache License, Version 2.0 ( the \"License\" ); you may \r\n// not use this file except in compliance with the License. You may obtain a \r\n// copy of the License at\r\n//\r\n// http://www.apache.org/licenses/LICENSE-2.0\r\n//\r\n// Unless required by applicable law or agreed to in writing, software \r\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\r\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the \r\n// License for the specific language governing permissions and limitations \r\n// under the License.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//-----------------------------------------------------------------------------\r\n// Utility Functions\r\n//-----------------------------------------------------------------------------\r\n/** Default predicate, always true */\r\nexports.trueFn = () => true;\r\n/** Default transformer, returns self */\r\nexports.selfFn = (o) => o;\r\n/** Default Grouping */\r\nexports.defGrouping = (a, b) => {\r\n if (!b[exports.CONST_KEY]) {\r\n b[exports.CONST_KEY] = a;\r\n }\r\n return b;\r\n};\r\nexports.defCompare = (a, b) => {\r\n return a == b ? 0 : a > b ? 1 : -1;\r\n};\r\n/** Returns default value for the type */\r\nfunction getDefaultVal(type, value = undefined) {\r\n if (typeof type !== exports.CONST_STRING)\r\n throw new TypeError(exports.CONST_NO_STRING);\r\n // Handle simple types (primitives and plain function/object)\r\n switch (type) {\r\n case exports.CONST_BOOLEAN: return false;\r\n case exports.CONST_NUMBER: return 0;\r\n case exports.CONST_OBJECT: return null === value ? null : undefined;\r\n case exports.CONST_STRING: return exports.CONST_EMPTY_STRING;\r\n case exports.CONST_SYMBOL: return Symbol();\r\n }\r\n return undefined;\r\n}\r\nexports.getDefaultVal = getDefaultVal;\r\n/** Returns a map of element based on extracted keys **/\r\nfunction getKeyedMap(iterable, keySelector, selElement = exports.selfFn) {\r\n let map = new Map();\r\n for (let value of iterable) {\r\n let key = keySelector(value);\r\n let group = map.get(key);\r\n if (!group) {\r\n group = [];\r\n map.set(key, group);\r\n }\r\n group.push(selElement(value));\r\n }\r\n return map;\r\n}\r\nexports.getKeyedMap = getKeyedMap;\r\nfunction getKeyedMapFast(iterable, keySelector) {\r\n let map = new Map();\r\n for (let value of iterable) {\r\n let key = keySelector(value);\r\n let group = map.get(key);\r\n if (!group) {\r\n group = [];\r\n map.set(key, group);\r\n }\r\n group.push(value);\r\n }\r\n return map;\r\n}\r\nexports.getKeyedMapFast = getKeyedMapFast;\r\nfunction getKeys(iterable, keySelector) {\r\n let set = new Set();\r\n if (keySelector) {\r\n for (let value of iterable) {\r\n let key = keySelector(value);\r\n set.add(key);\r\n }\r\n }\r\n else {\r\n for (let value of iterable) {\r\n set.add(value);\r\n }\r\n }\r\n return set;\r\n}\r\nexports.getKeys = getKeys;\r\n//-----------------------------------------------------------------------------\r\n// Constants\r\n//-----------------------------------------------------------------------------\r\nexports.CONST_INVALID_KEY = \"Key selector returned undefined Key\";\r\nexports.CONST_NO_STRING = \"Type must be a string.\";\r\nexports.CONST_DUPLICATE = \"Object already has property [key]\";\r\nexports.CONST_NOTHING_FOUND = \"No element satisfies the condition in predicate\";\r\nexports.CONST_NO_ELEMENTS = \"The source sequence is empty.\";\r\nexports.CONST_TOO_MANY = \"More than one element satisfies the condition in predicate.\";\r\nexports.CONST_OUTOFRANGE = \"Argument Out Of Range\";\r\nexports.CONST_KEY = \"key\";\r\nexports.CONST_UNDEFINED = \"undefined\";\r\nexports.CONST_LENGTH = \"length\";\r\nexports.CONST_FUNCTION = \"function\";\r\nexports.CONST_BOOLEAN = \"boolean\";\r\nexports.CONST_NUMBER = \"number\";\r\nexports.CONST_OBJECT = \"object\";\r\nexports.CONST_STRING = \"string\";\r\nexports.CONST_SYMBOL = \"symbol\";\r\nexports.CONST_EMPTY_STRING = \"\";\r\n/** Copyright (c) ENikS. All rights reserved. */\r\n","\"use strict\";\r\n///////////////////////////////////////////////////////////////////////////////\r\n//\r\n// Licensed under the Apache License, Version 2.0 ( the \"License\" ); you may \r\n// not use this file except in compliance with the License. You may obtain a \r\n// copy of the License at\r\n//\r\n// http://www.apache.org/licenses/LICENSE-2.0\r\n//\r\n// Unless required by applicable law or agreed to in writing, software \r\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\r\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the \r\n// License for the specific language governing permissions and limitations \r\n// under the License.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\n//-----------------------------------------------------------------------------\r\n// CSharp Enumerator implementation\r\n//-----------------------------------------------------------------------------\r\n// Gets Iterator and turns it into CSharpEnumerator \r\nclass CSharpEnumerator {\r\n constructor(sourceIterator) {\r\n this._iterator = sourceIterator;\r\n }\r\n /** Gets the current element in the collection. */\r\n get Current() {\r\n return this._result.value;\r\n }\r\n /** Advances the enumerator to the next element of the collection.*/\r\n MoveNext() {\r\n this._result = this._iterator.next();\r\n return !this._result.done;\r\n }\r\n /** Sets the enumerator to its initial position, which is before the first\r\n * element in the collection. */\r\n Reset() {\r\n throw \"JavaScript iterators could not be Reset\";\r\n }\r\n}\r\nexports.CSharpEnumerator = CSharpEnumerator;\r\n/** Copyright (c) ENikS. All rights reserved. */\r\n","\"use strict\";\r\n///////////////////////////////////////////////////////////////////////////////\r\n//\r\n// Licensed under the Apache License, Version 2.0 ( the \"License\" ); you may \r\n// not use this file except in compliance with the License. You may obtain a \r\n// copy of the License at\r\n//\r\n// http://www.apache.org/licenses/LICENSE-2.0\r\n//\r\n// Unless required by applicable law or agreed to in writing, software \r\n// distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\r\n// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the \r\n// License for the specific language governing permissions and limitations \r\n// under the License.\r\nObject.defineProperty(exports, \"__esModule\", { value: true });\r\nconst Generator = require(\"./generators\");\r\nconst Constant = require(\"./utilities\");\r\nconst Iterator = require(\"./iterators\");\r\n//-----------------------------------------------------------------------------\r\n// Implementation of EnumerableConstructor interface\r\n//-----------------------------------------------------------------------------\r\n/**\r\n* Converts any Iterable object into LINQ-able object\r\n* @param TSource An Array, Map, Set, String or other Iterable object.\r\n*/\r\nfunction getEnumerable(TSource) {\r\n return new EnumerableImpl(TSource);\r\n}\r\nexports.default = getEnumerable;\r\nexports.AsEnumerable = getEnumerable;\r\nexports.asEnumerable = getEnumerable;\r\nexports.From = getEnumerable;\r\nexports.from = getEnumerable;\r\n/**\r\n* Generates of elements starting with . T is any\r\n* type which could be cast to number: number, enum, etc.\r\n* @param start First value in sequence.\r\n* @param count Number of elements to iteratel.\r\n* @example\r\n* var sum = Range(0, 7).Sum();\r\n*/\r\nfunction getRange(start, count) {\r\n return new EnumerableImpl(undefined, Generator.Range, [start, count]);\r\n}\r\nexports.range = getRange;\r\nexports.Range = getRange;\r\n/**\r\n* Repeat element of type T of times.\r\n* @param start First value in sequence.\r\n* @param count Number of elements to iteratel.\r\n* @example\r\n* var sum = Repeat(\"v\", 7);\r\n*/\r\nfunction getRepeat(value, count) {\r\n return new EnumerableImpl(undefined, Generator.Repeat, [value, count]);\r\n}\r\nexports.repeat = getRepeat;\r\nexports.Repeat = getRepeat;\r\n//-----------------------------------------------------------------------------\r\n// Enumerable Implementation\r\n//-----------------------------------------------------------------------------\r\nclass EnumerableImpl {\r\n constructor(target, factory, arg) {\r\n this._target = target;\r\n this._factory = factory;\r\n this._factoryArg = arg;\r\n // JavaScript naming convention\r\n this['aggregate'] = this.Aggregate;\r\n this['all'] = this.All;\r\n this['any'] = this.Any;\r\n this['average'] = this.Average;\r\n this['chunkBy'] = this.ChunkBy;\r\n this['contains'] = this.Contains;\r\n this['count'] = this.Count;\r\n this['max'] = this.Max;\r\n this['min'] = this.Min;\r\n this['elementAt'] = this.ElementAt;\r\n this['elementAtOrDefault'] = this.ElementAtOrDefault;\r\n this['first'] = this.First;\r\n this['firstOrDefault'] = this.FirstOrDefault;\r\n this['last'] = this.Last;\r\n this['lastOrDefault'] = this.LastOrDefault;\r\n this['sequenceEqual'] = this.SequenceEqual;\r\n this['single'] = this.Single;\r\n this['singleOrDefault'] = this.SingleOrDefault;\r\n this['sum'] = this.Sum;\r\n this['toArray'] = this.ToArray;\r\n this['toMap'] = this.ToMap;\r\n this['toDictionary'] = this.ToDictionary;\r\n this['defaultIfEmpty'] = this.DefaultIfEmpty;\r\n this['concat'] = this.Concat;\r\n this['distinct'] = this.Distinct;\r\n this['except'] = this.Except;\r\n this['groupBy'] = this.GroupBy;\r\n this['groupJoin'] = this.GroupJoin;\r\n this['intersect'] = this.Intersect;\r\n this['join'] = this.Join;\r\n this['ofType'] = this.OfType;\r\n this['orderBy'] = this.OrderBy;\r\n this['orderByDescend'] = this.OrderByDescending;\r\n this['range'] = this.Range;\r\n this['repeat'] = this.Repeat;\r\n this['reverse'] = this.Reverse;\r\n this['select'] = this.Select;\r\n this['selectMany'] = this.SelectMany;\r\n this['skip'] = this.Skip;\r\n this['skipWhile'] = this.SkipWhile;\r\n this['take'] = this.Take;\r\n this['takeWhile'] = this.TakeWhile;\r\n this['union'] = this.Union;\r\n this['where'] = this.Where;\r\n this['zip'] = this.Zip;\r\n }\r\n ///////////////////////////////////////////////////////////////////////////\r\n /** Returns JavaScript iterator */\r\n [Symbol.iterator]() {\r\n return (null != this._factory) ? this._factory.apply(this, this._factoryArg)\r\n : this._target[Symbol.iterator]();\r\n }\r\n /** Returns C# style enumerator */\r\n GetEnumerator() {\r\n return new Iterator.CSharpEnumerator(this[Symbol.iterator]());\r\n }\r\n Aggregate(alpha, beta = Constant.selfFn, gamma = Constant.selfFn) {\r\n let zero;\r\n let method;\r\n let selector;\r\n if (Constant.CONST_FUNCTION === typeof alpha) {\r\n method = alpha;\r\n selector = beta;\r\n }\r\n else {\r\n zero = alpha;\r\n method = beta;\r\n selector = gamma;\r\n }\r\n let result = zero;\r\n for (let value of this) {\r\n if ([null, undefined].indexOf(result) > -1 || (isNaN(result) && !result))\r\n result = Constant.getDefaultVal(typeof (value));\r\n result = method(result, value);\r\n }\r\n return selector(result);\r\n }\r\n All(predicate = Constant.trueFn) {\r\n for (let value of this) {\r\n if (!predicate(value)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n Any(predicate) {\r\n let iterator;\r\n // Check if at least one exist\r\n if (!predicate && (iterator = this[Symbol.iterator]())) {\r\n return !iterator.next().done;\r\n }\r\n // Check if any satisfy the criteria\r\n for (let value of this) {\r\n if (predicate(value)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n Average(func = Constant.selfFn) {\r\n let sum = 0, count = 0;\r\n for (let value of this) {\r\n sum += func(value);\r\n count++;\r\n }\r\n return sum / count;\r\n }\r\n Contains(value, equal = (a, b) => a === b) {\r\n for (let item of this) {\r\n if (equal(item, value)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n Count(predicate) {\r\n let count = 0;\r\n if (predicate) {\r\n for (let value of this) {\r\n if (predicate(value)) {\r\n count++;\r\n }\r\n }\r\n }\r\n else if (this._target && this._target[Constant.CONST_LENGTH]) {\r\n count = this._target[Constant.CONST_LENGTH];\r\n }\r\n else {\r\n for (let value of this) {\r\n count++;\r\n }\r\n }\r\n return count;\r\n }\r\n Max(transform = Constant.selfFn) {\r\n let value, max, hasValue = false;\r\n for (let item of this) {\r\n value = transform(item);\r\n if (hasValue) {\r\n if (max < value)\r\n max = value;\r\n }\r\n else {\r\n max = value;\r\n hasValue = true;\r\n }\r\n }\r\n if (!hasValue)\r\n throw Constant.CONST_NO_ELEMENTS;\r\n return max;\r\n }\r\n Min(transform = Constant.selfFn) {\r\n let value, min, hasValue = false;\r\n for (let item of this) {\r\n value = transform(item);\r\n if (hasValue) {\r\n if (min > value)\r\n min = value;\r\n }\r\n else {\r\n min = value;\r\n hasValue = true;\r\n }\r\n }\r\n if (!hasValue)\r\n throw Constant.CONST_NO_ELEMENTS;\r\n return min;\r\n }\r\n ElementAt(index) {\r\n if (Array.isArray(this._target)) {\r\n if (0 > index ||\r\n this._target[Constant.CONST_LENGTH] <= index) {\r\n throw Constant.CONST_OUTOFRANGE;\r\n }\r\n return this._target[index];\r\n }\r\n let count = 0;\r\n for (let value of this) {\r\n if (index > count++) {\r\n continue;\r\n }\r\n return value;\r\n }\r\n throw Constant.CONST_OUTOFRANGE;\r\n }\r\n ElementAtOrDefault(index) {\r\n if (Array.isArray(this._target)) {\r\n let length = this._target[Constant.CONST_LENGTH];\r\n if (0 > index || length <= index) {\r\n let value = this._target[0];\r\n return 0 < length\r\n ? Constant.getDefaultVal(typeof (value), value)\r\n : undefined;\r\n }\r\n return this._target[index];\r\n }\r\n let value, count = 0;\r\n for (let item of this) {\r\n if (index === count++) {\r\n return item;\r\n }\r\n value = item;\r\n }\r\n return Constant.getDefaultVal(typeof value, value); // Last good value\r\n }\r\n First(predicate = Constant.trueFn) {\r\n for (let value of this) {\r\n if (predicate(value)) {\r\n return value;\r\n }\r\n }\r\n throw Constant.CONST_NOTHING_FOUND;\r\n }\r\n FirstOrDefault(predicate = Constant.trueFn) {\r\n let value;\r\n for (let item of this) {\r\n value = item;\r\n if (predicate(item)) {\r\n return item;\r\n }\r\n }\r\n return Constant.getDefaultVal(typeof value); // Last good value\r\n }\r\n Last(predicate = Constant.trueFn) {\r\n let value, found = false;\r\n for (let item of this) {\r\n if (predicate(item)) {\r\n value = item;\r\n found = true;\r\n }\r\n }\r\n if (!found) {\r\n throw Constant.CONST_NOTHING_FOUND;\r\n }\r\n return value;\r\n }\r\n LastOrDefault(predicate = Constant.trueFn) {\r\n let value, lastKnown, found = false;\r\n for (let item of this) {\r\n if (predicate(item)) {\r\n value = item;\r\n found = true;\r\n }\r\n lastKnown = item;\r\n }\r\n return (found) ? value : Constant.getDefaultVal(typeof lastKnown);\r\n }\r\n SequenceEqual(other, equal = (a, b) => a === b) {\r\n let res1, res2;\r\n let it1 = this[Symbol.iterator]();\r\n let it2 = other[Symbol.iterator]();\r\n while (true) {\r\n res1 = it1.next();\r\n res2 = it2.next();\r\n if (res1.done && res2.done)\r\n return true;\r\n if ((res1.done != res2.done) || !equal(res1.value, res2.value)) {\r\n return false;\r\n }\r\n }\r\n ;\r\n }\r\n Single(predicate = Constant.trueFn) {\r\n let value, hasValue = false;\r\n for (let item of this) {\r\n if (predicate(item)) {\r\n if (!hasValue) {\r\n value = item;\r\n hasValue = true;\r\n }\r\n else {\r\n throw Constant.CONST_TOO_MANY;\r\n }\r\n }\r\n }\r\n if (hasValue)\r\n return value;\r\n throw Constant.CONST_NOTHING_FOUND;\r\n }\r\n SingleOrDefault(predicate = Constant.trueFn) {\r\n let value, lastKnown, hasValue = false;\r\n for (let item of this) {\r\n if (predicate(item)) {\r\n if (!hasValue) {\r\n value = item;\r\n hasValue = true;\r\n }\r\n else {\r\n throw Constant.CONST_TOO_MANY;\r\n }\r\n }\r\n lastKnown = item;\r\n }\r\n return (hasValue) ? value : Constant.getDefaultVal(typeof lastKnown);\r\n }\r\n Sum(transform = Constant.selfFn) {\r\n let sum = 0;\r\n for (let value of this) {\r\n sum += transform(value);\r\n }\r\n return sum;\r\n }\r\n ToArray() {\r\n let array = [];\r\n for (let value of this) {\r\n array.push(value);\r\n }\r\n return array;\r\n }\r\n ToMap(keySelector, elementSelector = Constant.selfFn) {\r\n let dictionary = new Map();\r\n for (let value of this) {\r\n dictionary.set(keySelector(value), elementSelector(value));\r\n }\r\n return dictionary;\r\n }\r\n ToDictionary(keySelector, elementSelector = Constant.selfFn) {\r\n let dictionary = new Map();\r\n for (let value of this) {\r\n dictionary.set(keySelector(value), elementSelector(value));\r\n }\r\n return dictionary;\r\n }\r\n Cast() {\r\n // TODO: Remove any once TypeScript 2.0 out\r\n return this;\r\n }\r\n //-------------------------------------------------------------------------\r\n // Deferred execution methods\r\n //-------------------------------------------------------------------------\r\n DefaultIfEmpty(defaultValue = undefined) {\r\n return new EnumerableImpl(undefined, Generator.DefaultIfEmpty, [this, defaultValue]);\r\n }\r\n Concat(second) {\r\n return new EnumerableImpl(undefined, Generator.Concat, [this, second]);\r\n }\r\n ChunkBy(keySelect, elementSelector = Constant.selfFn, resultSelector = (a, b) => b) {\r\n return new EnumerableImpl(undefined, Generator.ChunkBy, [this, keySelect, elementSelector, resultSelector]);\r\n }\r\n Distinct(keySelector) {\r\n if (keySelector)\r\n return new EnumerableImpl(undefined, Generator.Distinct, [this, keySelector]);\r\n return new EnumerableImpl(undefined, Generator.DistinctFast, [this]);\r\n }\r\n Except(other, keySelector) {\r\n return new EnumerableImpl(undefined, Generator.Intersect, [this, Constant.getKeys(other, keySelector), true, keySelector]);\r\n }\r\n GroupBy(selKey, selElement = Constant.selfFn, selResult = Constant.defGrouping) {\r\n let map = Constant.getKeyedMap(this, selKey, selElement);\r\n return new EnumerableImpl(undefined, Generator.GroupBy, [map, selResult]);\r\n }\r\n GroupJoin(inner, oKeySelect, iKeySelect, resultSelector = Constant.defGrouping) {\r\n return new EnumerableImpl(undefined, Generator.GroupJoin, [this, oKeySelect, resultSelector,\r\n Constant.getKeyedMapFast(inner, iKeySelect)]);\r\n }\r\n Intersect(other, keySelector) {\r\n return new EnumerableImpl(undefined, Generator.Intersect, [this,\r\n Constant.getKeys(other, keySelector),\r\n false, keySelector]);\r\n }\r\n Join(inner, oSelector, iSelector, transform) {\r\n return new EnumerableImpl(undefined, Generator.Join, [this, oSelector, transform, Constant.getKeyedMapFast(inner, iSelector)]);\r\n }\r\n OfType(obj) {\r\n let typeName;\r\n switch (obj) {\r\n case Number:\r\n typeName = Constant.CONST_NUMBER;\r\n break;\r\n case Boolean:\r\n typeName = Constant.CONST_BOOLEAN;\r\n break;\r\n case String:\r\n typeName = Constant.CONST_STRING;\r\n break;\r\n case Symbol:\r\n typeName = Constant.CONST_SYMBOL;\r\n break;\r\n default:\r\n typeName = undefined;\r\n }\r\n return new EnumerableImpl(undefined, Generator.OfType, [this, obj, typeName]);\r\n }\r\n OrderBy(keySelect, equal) {\r\n return new OrderedLinq(this, (array) => Generator.Forward(array), keySelect, equal);\r\n }\r\n OrderByDescending(keySelect, equal) {\r\n return new OrderedLinq(this, (array) => Generator.Reverse(array), keySelect, equal, true);\r\n }\r\n Range(start, count) {\r\n return new EnumerableImpl(undefined, Generator.Range, [start, count]);\r\n }\r\n Repeat(element, count) {\r\n return new EnumerableImpl(undefined, Generator.Repeat, [element, count]);\r\n }\r\n Reverse() {\r\n let array = Array.isArray(this._target)\r\n ? this._target : this.ToArray();\r\n return new EnumerableImpl(undefined, Generator.Reverse, [array]);\r\n }\r\n Select(transform) {\r\n return new EnumerableImpl(undefined, Generator.Select, [this, transform]);\r\n }\r\n SelectMany(selector = Constant.selfFn, result = (x, s) => s) {\r\n return new EnumerableImpl(undefined, Generator.SelectMany, [this, selector, result]);\r\n }\r\n Skip(skip) {\r\n return new EnumerableImpl(undefined, Generator.Skip, [this, skip]);\r\n }\r\n SkipWhile(predicate) {\r\n return new EnumerableImpl(undefined, Generator.SkipWhile, [this, predicate]);\r\n }\r\n Take(take) {\r\n return new EnumerableImpl(undefined, Generator.TakeWhile, [this, (a, n) => take > n]);\r\n }\r\n TakeWhile(predicate) {\r\n return new EnumerableImpl(undefined, Generator.TakeWhile, [this, predicate]);\r\n }\r\n Union(second, keySelector) {\r\n if (keySelector)\r\n return new EnumerableImpl(undefined, Generator.Union, [this, second, keySelector]);\r\n return new EnumerableImpl(undefined, Generator.UnionFast, [this, second]);\r\n }\r\n Where(predicate = Constant.trueFn) {\r\n return new EnumerableImpl(undefined, Generator.Where, [this, predicate]);\r\n }\r\n Zip(second, func) {\r\n return new EnumerableImpl(undefined, Generator.Zip, [this, second, func]);\r\n }\r\n}\r\nclass OrderedLinq extends EnumerableImpl {\r\n constructor(target, factory, keySelect, equal, reversed = false) {\r\n super(target, factory);\r\n this.reversed = reversed;\r\n if (keySelect) {\r\n this.comparer = equal ? (a, b) => equal(keySelect(a), keySelect(b))\r\n : (a, b) => Constant.defCompare(keySelect(a), keySelect(b));\r\n }\r\n else {\r\n this.comparer = equal;\r\n }\r\n this['thenBy'] = this.ThenBy;\r\n this['thenByDescending'] = this.ThenByDescending;\r\n }\r\n [Symbol.iterator]() {\r\n if (!this._factoryArg) {\r\n this._factoryArg = this._target.ToArray();\r\n if (this.comparer) {\r\n this._factoryArg.sort(this.comparer);\r\n }\r\n else {\r\n this._factoryArg.sort();\r\n }\r\n }\r\n return this._factory(this._factoryArg);\r\n }\r\n ThenBy(keySelect, equal) {\r\n if (!keySelect && !equal)\r\n return this;\r\n const compare = keySelect ? equal ? (a, b) => equal(keySelect(a), keySelect(b))\r\n : (a, b) => Constant.defCompare(keySelect(a), keySelect(b))\r\n : equal;\r\n const superEqual = this.comparer;\r\n const comparer = (!superEqual) ? compare\r\n : (a, b) => superEqual(a, b) || (this.reversed ? -compare(a, b) : compare(a, b));\r\n return new OrderedLinq(this._target, this._factory, undefined, comparer, this.reversed);\r\n }\r\n ThenByDescending(keySelect, equal) {\r\n if (!keySelect && !equal)\r\n return this;\r\n const compare = keySelect ? equal ? (a, b) => equal(keySelect(a), keySelect(b))\r\n : (a, b) => Constant.defCompare(keySelect(a), keySelect(b))\r\n : equal;\r\n const superEqual = this.comparer;\r\n const comparer = (!superEqual) ? compare\r\n : (a, b) => superEqual(a, b) || (this.reversed ? compare(a, b) : -compare(a, b));\r\n return new OrderedLinq(this._target, this._factory, undefined, comparer, this.reversed);\r\n }\r\n}\r\n/** Copyright (c) ENikS. All rights reserved. */\r\n","module.exports = function loadJSBundle(bundle) {\n return new Promise(function (resolve, reject) {\n var script = document.createElement('script');\n script.async = true;\n script.type = 'text/javascript';\n script.charset = 'utf-8';\n script.src = bundle;\n script.onerror = function (e) {\n script.onerror = script.onload = null;\n reject(e);\n };\n\n script.onload = function () {\n script.onerror = script.onload = null;\n resolve();\n };\n\n document.getElementsByTagName('head')[0].appendChild(script);\n });\n};\n","module.exports = function loadCSSBundle(bundle) {\n return new Promise(function (resolve, reject) {\n var link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = bundle;\n link.onerror = function (e) {\n link.onerror = link.onload = null;\n reject(e);\n };\n\n link.onload = function () {\n link.onerror = link.onload = null;\n resolve();\n };\n\n document.getElementsByTagName('head')[0].appendChild(link);\n });\n};\n"]}