{"version":3,"sources":["../../node_modules/regenerator-runtime/runtime.js","../../node_modules/vue/dist/vue.common.prod.js","../../node_modules/vue/dist/vue.common.js","../../node_modules/vue-router/dist/vue-router.esm.js","../../node_modules/vue-resource/dist/vue-resource.esm.js","../../node_modules/quasar/package.json","../../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/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/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/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/components/btn-group/QBtnGroup.js","../../node_modules/quasar/src/utils/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/focus-manager.js","../../node_modules/quasar/src/mixins/portal.js","../../node_modules/quasar/src/mixins/transition.js","../../node_modules/quasar/src/utils/vm.js","../../node_modules/quasar/src/components/menu/ClickOutside.js","../../node_modules/quasar/src/utils/scroll.js","../../node_modules/quasar/src/utils/escape-key.js","../../node_modules/quasar/src/utils/position-engine.js","../../node_modules/quasar/src/components/menu/QMenu.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/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/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/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/utils/uid.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/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/utils/router.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/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/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.js","../../node_modules/quasar/src/index.esm.js","application/logindialog.js","application/logindialog.vue","application/app.vue","site.js"],"names":["module","exports","require","VueRouter","assert","condition","message","Error","warn","extend","a","b","key","encodeReserveRE","encodeReserveReplacer","c","charCodeAt","toString","commaRE","encode","str","encodeURIComponent","replace","decode","decodeURIComponent","err","resolveQuery","query","extraQuery","_parseQuery","parse","parsedQuery","parseQuery","e","value","Array","isArray","map","castQueryParamValue","String","res","trim","split","forEach","param","parts","shift","val","length","join","undefined","push","stringifyQuery","obj","Object","keys","result","val2","filter","x","trailingSlashRE","createRoute","record","location","redirectedFrom","router","options","clone","route","name","meta","path","hash","params","fullPath","getFullPath","matched","formatMatch","freeze","START","unshift","parent","ref","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","sort","bKeys","every","i","aVal","bKey","bVal","isIncludedRoute","current","target","indexOf","queryIncludes","handleRouteEntered","instances","instance","cbs","enteredCbs","i$1","_isBeingDestroyed","View","functional","props","type","default","render","_","children","data","routerView","h","$createElement","$route","cache","_routerViewCache","depth","inactive","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","_inactive","$parent","routerViewDepth","cachedData","cachedComponent","component","configProps","fillPropsinData","components","registerRouteInstance","vm","hook","prepatch","vnode","componentInstance","init","propsToPass","resolveProps","attrs","config","resolvePath","relative","base","append","firstChar","charAt","stack","pop","segments","segment","parsePath","hashIndex","slice","queryIndex","cleanPath","isarray","arr","prototype","call","pathToRegexp_1","pathToRegexp","parse_1","compile_1","compile","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","RegExp","tokens","index","defaultDelimiter","delimiter","exec","m","escaped","offset","next","prefix","capture","group","modifier","asterisk","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","toUpperCase","encodeAsterisk","matches","flags","opts","pretty","token","TypeError","JSON","stringify","j","test","attachKeys","re","sensitive","regexpToRegexp","groups","source","match","arrayToRegexp","stringToRegexp","strict","end","endsWithDelimiter","regexpCompileCache","create","fillParams","routeMsg","filler","pathMatch","normalizeLocation","raw","_normalized","params$1","rawPath","parsedPath","basePath","warnedCustomSlot","warnedTagProp","warnedEventProp","_Vue","toTypes","eventTypes","noop","Link","to","required","tag","custom","Boolean","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","event","this$1","$router","resolve","href","classes","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","handler","guardEvent","on","click","class","scopedSlot","$scopedSlots","$hasNormal","navigate","isActive","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","metaKey","altKey","ctrlKey","shiftKey","defaultPrevented","button","currentTarget","getAttribute","preventDefault","child","install","Vue","installed","isDef","v","registerInstance","callVal","$options","_parentVnode","mixin","beforeCreate","_router","util","defineReactive","history","destroyed","defineProperty","get","_route","strats","optionMergeStrategies","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","window","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","l","splice","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","caseSensitive","regex","compileRouteRegex","alias","redirect","beforeEnter","childMatchAs","aliases","aliasRoute","createMatcher","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","hasOwnProperty","resolveRecordPath","aliasedPath","aliasedMatch","aliasedRecord","addRoute","parentOrRoute","getRoutes","addRoutes","len","Time","performance","now","Date","genStateKey","toFixed","_key","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","protocol","host","absolutePath","stateCopy","state","replaceState","addEventListener","handlePopState","removeEventListener","handleScroll","from","isPop","app","behavior","scrollBehavior","$nextTick","position","getScrollPosition","shouldScroll","then","scrollToPosition","catch","saveScrollPosition","pageXOffset","y","pageYOffset","getElementPosition","el","docEl","docRect","document","documentElement","getBoundingClientRect","elRect","left","top","isValidPosition","isNumber","normalizePosition","normalizeOffset","hashStartsWithNumberRE","isObject","selector","getElementById","querySelector","style","scrollTo","supportsPushState","ua","navigator","userAgent","pushState","url","runQueue","queue","fn","cb","step","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","error","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isError","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","pending","flatMapComponents","def","cid","once","resolvedDef","isESModule","resolved","reject","reason","msg","comp","flatten","concat","apply","hasSymbol","Symbol","toStringTag","__esModule","called","args","arguments","History","normalizeBase","ready","readyCbs","readyErrorCbs","errorCbs","listeners","baseEl","resolveQueue","max","Math","updated","activated","deactivated","extractGuards","records","bind","reverse","guards","guard","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","listen","onReady","errorCb","onError","transitionTo","onComplete","onAbort","prev","confirmTransition","updateRoute","ensureURL","afterHooks","abort","console","lastRouteIndex","lastCurrentIndex","beforeHooks","iterator","resolveHooks","setupListeners","teardown","cleanupListener","HTML5History","_startLocation","getLocation","__proto__","constructor","expectScroll","supportsScroll","handleRoutingEvent","go","n","fromRoute","getCurrentLocation","pathname","pathLowerCase","toLowerCase","baseLowerCase","search","HashHistory","fallback","checkFallback","ensureSlash","getHash","replaceHash","eventType","pushHash","getUrl","AbstractHistory","targetIndex","apps","matcher","mode","prototypeAccessors","configurable","registerHook","list","createHref","$once","handleInitialScroll","routeOrError","beforeEach","beforeResolve","afterEach","Promise","back","forward","getMatchedComponents","normalizedTo","defineProperties","version","START_LOCATION","use","plugin","RESOLVED","REJECTED","PENDING","Promise$1","executor","deferred","promise","r","all","iterable","count","resolver","race","p","PromiseObj","context","notify","nextTick","onResolved","onRejected","p$1","fulfilled","rejected","callback","ntick","_ref","debug","Util","_ref2","silent","ctx","trimEnd","chars","toLower","toUpper","isString","isFunction","isPlainObject","getPrototypeOf","isBlob","Blob","isFormData","FormData","when","merge","$vm","each","assign","_assign","_merge","defaults","deep","root","options$$1","urlParams","Url","expand","variables","tmpl","expanded","vars","template","operators","expression","literal","operator","values","variable","tmp","getValues","separator","encodeReserved","isDefined","substring","parseInt","encodeValue","isKeyOperator","k","part","self","transform","transforms","factory","serialize","scope","array","plain","add","xdrClient","request","xdr","XDomainRequest","status","respondWith","responseText","open","method","timeout","onload","onabort","onerror","ontimeout","onprogress","send","getBody","escape","createElement","documentMode","port","hostname","SUPPORTS_CORS","XMLHttpRequest","cors","orgUrl","reqUrl","crossOrigin","emulateHTTP","client","form","body","headers","emulateJSON","set","json","response","bodyText","text","isJson","start","jsonpClient","script","jsonp","jsonpCallback","random","removeChild","setTimeout","src","async","appendChild","before","header","Http","common","has","xhrClient","xhr","statusText","getAllResponseHeaders","row","responseType","withCredentials","credentials","progress","downloadProgress","upload","uploadProgress","setRequestHeader","nodeClient","resp","statusCode","statusMessage","error$$1","Client","reqHandlers","sendRequest","resHandlers","_ret","Headers","_this","_proto","getName","getAll","normalizeName","deleteAll","thisArg","_this2","reduce","curr","Response","ok","bodyBlob","isBlobText","blobText","blob","reader","FileReader","readAsText","Request","COMMON_HEADERS","JSON_CONTENT_TYPE","interceptors","interceptor","Resource","actions","resource","action","$http","http","$url","$resource","$promise","put","post","patch","method$$1","save","update","remove","_args","_from","_id","_inBundle","_integrity","_location","_phantomChildren","_requested","registry","escapedName","rawSpec","saveSpec","fetchSpec","_requiredBy","_resolved","_spec","_where","author","email","browserslist","bugs","description","devDependencies","eslint","recast","rimraf","rollup","table","engines","node","npm","yarn","files","funding","homepage","keywords","license","main","repository","scripts","build","clean","dev","lint","typings","vetur","tags","attributes","Platform","isSSR","fromSSR","onSSR","iosCorrection","iosEmulated","getMatch","platformMatch","browser","versionNumber","platform","getPlatformMatch","hasTouch","maxTouchPoints","applyIosCorrection","is","mac","desktop","min","innerHeight","innerWidth","mobile","ios","getPlatform","UA","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","bex","Capacitor","capacitor","nativeMobile","nativeMobileWrapper","_cordovaNative","cordova","vendor","ssrClient","touch","webStorage","within","iframe","localStorage","$q","queues","server","q","parseSSR","ssr","takeover","req","listenOpts","hasPassive","passiveCapture","notPassiveCapture","passive","notPassive","leftClick","middleClick","rightClick","touches","changedTouches","targetTouches","clientY","clientX","getEventPath","composedPath","tagName","parentElement","LINE_HEIGHT","PAGE_HEIGHT","getMouseWheelDistance","deltaX","deltaY","deltaMode","multiplier","stop","stopPropagation","prevent","cancelable","stopAndPrevent","stopAndPreventClick","evt","preventDraggable","__dragPrevented","querySelectorAll","bubbles","CustomEvent","createEvent","initEvent","addEvt","targetName","events","cleanEvt","wait","immediate","debounced","clearTimeout","cancel","SIZE_LIST","width","height","sizes","sm","md","lg","xl","lt","gt","xs","setSizes","setDebounce","cfg","screen","bodyClasses","force","w","s","classList","updateEvt","updateSizes","updateDebounce","deb","getComputedStyle","visualViewport","getPropertyValue","delay","Dark","dark","Q_BODY_CLASSES","toggle","initialVal","ssrSet","__fromSSR","originalSet","__media","matchMedia","__updateMedia","addListener","removeListener","getTrue","filterInvalidPath","normalizeExitPath","startsWith","endsWith","getShouldExitFn","backButtonExit","exitPaths","includes","__history","qConf","backButton","Plugins","App","entry","shouldExit","backHandler","exitApp","isoName","nativeName","label","clear","close","select","reset","refresh","date","days","daysShort","months","monthsShort","firstDayOfWeek","format24h","pluralDay","noData","noResults","loading","selectedRecords","rows","recordsPerPage","allRows","pagination","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","code","size1","size2","size3","size4","size5","size6","size7","defaultFont","viewSource","tree","noNodes","getLocale","language","languages","browserLanguage","userLanguage","systemLanguage","lang","initialLang","langEn","langObject","ssrContext","rtl","dir","Q_HTML_ATTRS","Q_PREV_LANG","setAttribute","reRGBA","rgbToHex","g","alpha","round","rgbToString","hexToRgb","hex","num","hsvToRgb","floor","f","t","rgbToHsv","d","textToRgb","color","rgb","parseFloat","isNaN","lighten","percent","abs","R","G","B","luminosity","pow","brightness","blend","fgColor","bgColor","rgb1","r1","g1","b1","a1","rgb2","r2","g2","b2","a2","ret","changeAlpha","setBrand","element","Element","setProperty","getBrand","getPaletteColor","colorName","className","stringToRgb","lastKeyCompositionStatus","onKeyDownComposition","isComposing","shouldIgnoreKey","qKeyEvent","isKeyCode","keyCodes","keyCode","getMobilePlatform","getBodyClasses","cls","iosStatusBarPadding","clientUpdate","newCls","setColors","brand","setBodyClasses","bodyClass","positive","negative","info","warning","arrow","up","down","dropdown","chevron","colorPicker","spectrum","tune","palette","pullToRefresh","icon","carousel","navigationIcon","chip","selected","datetime","arrowLeft","arrowRight","today","heading","size","font","expansionItem","denseIcon","fab","activeIcon","field","first","last","rating","stepper","done","active","tabs","arrowUp","firstPage","prevPage","nextPage","lastPage","uploader","removeQueue","removeUploaded","iconSet","initialSet","materialIcons","setObject","autoInstalled","Screen","__qInstalled","$root","directives","unbind","directive","plugins","mounted","run","Q_HEAD_TAGS","Q_BODY_ATTRS","Q_BODY_TAGS","mixins","ssrUpdate","units","humanStorageSize","bytes","u","capitalize","between","normalizeToInterval","pad","char","cacheWithFn","getPropCacheMixin","propName","proxyPropName","prop","watch","newObj","oldObj","$delete","$set","ariaHidden","stackStart","stackStop","highjackCount","translate","pos","horiz","inc","amount","highjackAjax","endHandler","restoreAjax","validator","skipHijack","calls","onScreen","animate","computed","o","horizontal","sizeProp","opacity","role","methods","speed","oldSpeed","__work","timer","$emit","increment","hijacked","beforeDestroy","getSizeMixin","sizeStyle","slot","slotName","otherwise","uniqueSlot","mergeSlot","mergeSlotSafely","ListenersMixin","SizeMixin","TagMixin","none","iconMapFn","content","viewBox","svg","nodes","img","svguse","qListeners","focusable","textColor","square","rounded","contentStyle","QIcon","staticClass","floating","transparent","multiLine","outline","Number","verticalAlign","isDark","DarkMixin","inlineActions","dense","alignMap","around","evenly","stretch","alignValues","alignClass","vertical","AlignMixin","separatorColor","activeColor","gutter","sepClass","els","middle","routerLinkProps","disable","RouterLinkMixin","hasRouterLink","cSize","thickness","property","css","cssBatch","elements","readyState","childHasFocus","focusedEl","contains","nextElementSibling","getBodyFullscreenElement","isFullscreen","activeEl","limit","showRipple","forceCenter","modifiers","innerNode","diameter","sqrt","radius","centerX","centerY","updateModifiers","arg","ripple","early","destroy","__qripple","_qripple","inserted","binding","__qripple_destroyed","enabled","qSkipRipple","keystart","oldValue","Ripple","padding","RippleMixin","iconRight","flat","unelevated","glossy","fabMini","noCaps","noWrap","tabindex","isRounded","isActionable","computedTabIndex","isLink","design","currentLocation","percentage","disabled","colors","innerClasses","wrapperStyle","minWidth","minHeight","touchTarget","keyboardTarget","mouseTarget","iconAttrs","BtnMixin","darkPercentage","hasLabel","computedRipple","percentageStyle","transition","onEvents","mousedown","__onLoadingEvt","touchstart","keydown","keyup","__onKeydown","__onMousedown","__onTouchstart","activeElement","$el","focus","onClickCleanup","__cleanup","__onPressEnd","touchTargetEl","avoidMouseRipple","mouseTimer","MouseEvent","cancelBubble","dispatchEvent","destroying","blurTarget","$refs","inner","QSpinner","spread","clearSelection","getSelection","selection","empty","removeAllRanges","addRange","createRange","noParentEvent","contextMenu","anchorEl","__unconfigureAnchorEl","__configureAnchorEl","__pickAnchorEl","__showCondition","__contextClick","hide","show","__toggleKey","__mobileCleanup","touchTimer","showing","__mobilePrevent","__mobileTouch","evts","__setAnchorEl","parentNode","parentEl","_isVue","__changeScrollEvent","scrollTarget","fnProp","fnHandler","__scrollFn","__configureScrollTarget","__unconfigureScrollTarget","noParentEventWatcher","$watch","__scrollTarget","__anchorCleanup","__nextTick","__tickFn","__prepareTick","__clearTick","__setTimeout","__timer","__clearTimeout","TimeoutMixin","__processModelChange","hideOnRouteChange","input","payload","__processShow","__preparePortal","__show","__processHide","__hide","waitFlags","addFocusWaitFlag","flag","removeFocusWaitFlag","addFocusFn","removeFocusFn","Portal","closePortalMenus","separateClosePopup","__renderPortal","closePortals","isOnGlobalDialog","inheritAttrs","contentClass","__showPortal","isReady","focusObj","fullscreen","isCapable","__portal","newParent","__onGlobalDialog","unwatchFullscreen","__hidePortal","$destroy","$mount","$forceUpdate","transitionShow","transitionHide","transitionState","getVmOfNode","__vue__","isVmChildOf","childVm","parentVm","handlers","hasModalsAbove","execHandlers","globalHandler","hasAttribute","vmEl","trigger","toggleEl","qClickOutside","nodeType","__qclickoutside","__qclickoutside_old","timerFocusin","indexClick","findIndex","indexFocus","scrollTargets","scrollingElement","getScrollTarget","closest","getScrollHeight","scrollHeight","getScrollWidth","scrollWidth","scrollY","scrollTop","getHorizontalScrollPosition","scrollX","scrollLeft","animScrollTo","duration","prevTime","setScroll","requestAnimationFrame","nowTime","frameTime","newPos","animHorizontalScrollTo","setHorizontalScroll","setScrollPosition","setHorizontalScrollPosition","getScrollbarWidth","outer","visibility","overflow","w1","offsetWidth","w2","clientWidth","hasScrollbar","onY","Node","ELEMENT_NODE","clientHeight","escDown","__install","__installed","register","vpLeft","vpTop","validatePosition","validateOffset","horizontalPos","parsePosition","validateCover","getAnchorProps","bottom","getTargetProps","offsetHeight","setPosition","offsetLeft","offsetTop","anchorProps","absoluteOffset","cover","anchorTop","anchorLeft","elStyle","maxHeight","maxWidth","fit","targetProps","anchorOrigin","selfOrigin","applyBoundaries","currentHeight","currentWidth","margin","anchorY","anchorX","AttrsMixin","AnchorMixin","ModelToggleMixin","PortalMixin","TransitionMixin","ClickOutside","persistent","autoClose","noRouteDismiss","noRefocus","noFocus","anchor","touchPosition","menuClass","__onAutoClose","qAttrs","__refocusTarget","unwatch","updatePosition","blur","__avoidAutoClose","hiding","__onClickOutside","targetClassList","dropdownIcon","menuAnchor","menuSelf","menuOffset","disableMainBtn","disableDropdown","noIconAnimation","menu","Arrow","QMenu","QBtn","$props","Btn","QBtnGroup","formAttrs","__injectFormInput","domProps","formDomProps","FormFieldMixin","nameProp","for","FormMixin","opt","toggleColor","toggleTextColor","readonly","clearable","hasActiveValue","find","btnOptions","mergeOption","__set","bordered","directions","modifiersAll","getModifierDirections","mod","direction","shouldStart","draggable","nodeName","qClonedBy","uid","parseArg","__qtouchswipe","styleCleanup","__qtouchswipe_destroyed","mouse","mouseCapture","sensitivity","mouseStart","touchStart","mouseEvent","time","move","distX","absX","distY","absY","velX","velY","withDelay","distance","getPanelWrapper","PanelWrapper","PanelParentMixin","TouchSwipe","animated","infinite","swipeable","transitionPrev","transitionNext","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","componentOptions","propsData","__getEnabledPanels","startIndex","slots","__updatePanelIndex","__getPanelContent","__renderPanels","PanelChildMixin","noRouteFullscreenExit","inFullscreen","exitFullscreen","setFullscreen","container","replaceChild","fullscreenFillerNode","__historyFullscreen","scrollIntoView","beforeMount","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isDeepEqual","entries","buffer","valueOf","isPrintableChar","isDate","isRegexp","isFinite","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","sent","avatar","stamp","labelSanitize","nameSanitize","textSanitize","stampSanitize","textClass","op","messageClass","containerClass","sizeClass","__wrapStamp","domPropStamp","__getText","contentList","withSlots","domPropText","some","__refocusTargetEl","refocusTarget","OptionSizeMixin","RefocusTargetMixin","trueValue","falseValue","indeterminateValue","toggleOrder","toggleIndeterminate","leftLabel","keepColor","isTrue","modelIsArray","isFalse","isIndeterminate","computedTabindex","innerClass","checked","__getNextValue","__onKeyup","__getInner","CheckboxMixin","fill","model","iconRemove","iconSelected","clickable","removable","isClickable","hasLeftIcon","leftIcon","removeIcon","__onClick","__onRemove","circumference","PI","strokeDashArray","centerColor","trackColor","angle","indeterminate","showValue","instantFeedback","normalizedValue","svgStyle","circleStyle","viewBoxAttr","strokeDashOffset","strokeWidth","__getCircle","stroke","cx","cy","svgChild","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","TouchEvent","initialEvent","detected","isMouseEvt","preserveCursor","cursor","withDelayedFn","getRatio","dragging","getModel","ratio","decimals","modulo","SliderMixin","TouchPan","labelColor","labelTextColor","labelAlways","markers","snap","thumbPath","preventFocus","axis","isReversed","editable","computedStep","minMaxDiff","markerStyle","backgroundSize","positionProp","orientation","panDirectives","__pan","__getThumbSvg","__getPinStyle","ceil","pin","transformOrigin","pinTextContainer","__updatePosition","__updateValue","__getDragging","__blur","__activate","__deactivate","__mobileClick","__keyup","labelValue","curRatio","modelRatio","trackStyle","thumbStyle","thumbClass","pinClass","pinTextClass","__focus","__keydown","computedLabel","pinStyle","change","track","canRender","CanRenderMixin","debounce","hasObserver","__onResize","curDocView","__onObjLoad","contentDocument","defaultView","load","ResizeObserver","observer","observe","unobserve","getIndicatorClass","bufferPrioritySort","t1","t2","priorityMatched","priorityHref","bufferCleanSelected","bufferFilters","bufferFiltersLen","provide","__recalculateScroll","__activateTab","__activateRoute","breakpoint","shrink","activeBgColor","indicatorColor","rightIcon","outsideArrows","mobileArrows","switchIndicator","narrowIndicator","inlineLabel","indicatorClass","scrollable","leftArrow","rightArrow","arrowsEnabled","__updateArrows","__updateArrowsFn","scroll","setCurrent","skipEmit","__animate","bufferRoute","bufferTimer","_isDestroyed","__updateContainer","domSize","scrollSize","acc","oldName","newName","oldTab","$children","tab","newTab","oldEl","getElementsByClassName","newEl","animateTimer","oldPos","rect","__animScrollTo","__stopAnimScroll","__scrollTowards","scrollTimer","setInterval","__scrollToStart","__scrollToEnd","QResizeObserver","resize","mouseup","mouseleave","touchend","inject","alert","alertIcon","keyboard","narrow","indicator","__renderTab","defaultValue","formatModel","noHeader","noFooter","topView","view","__parseModel","forceHex","forceAlpha","isHex","isOutputHex","hasAlpha","currentBgColor","backgroundColor","headerClass","spectrumStyle","background","spectrumPointerStyle","computedPalette","__spectrumChange","__getHeader","__getFooter","QTabs","QTab","__updateErrorIcon","__onEditorChange","QTabPanels","QTabPanel","__getSpectrumTab","__getTuneTab","__getPaletteTab","__spectrumClick","__spectrumPan","paddingBottom","QSlider","fillHandleAlways","__onHueChange","__onNumericChange","inputmode","maxlength","__onPalettePick","__onSpectrumChange","__update","hsv","selectionEnd","setSelectionRange","inp","errorIcon","pageX","pageY","breaks","toJalaali","gy","gm","gd","d2j","getDate","getMonth","getFullYear","g2d","toGregorian","jy","jm","jd","d2g","j2d","isValidJalaaliDate","jalaaliMonthLength","isLeapJalaaliYear","jalCalLeap","bl","jp","jump","leap","div","jalCal","withoutLeap","leapJ","leapG","march","jdn","calendars","mask","locale","calendar","landscape","computedMask","__getMask","computedLocale","__getLocale","computedColor","computedTextColor","__getCurrentDate","dateOnly","timeFill","jDate","year","month","day","hour","minute","second","millisecond","__getCurrentTime","getHours","getMinutes","getSeconds","getMilliseconds","__getDayHash","MILLISECONDS_IN_DAY","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","defaultMask","reverseToken","regexStore","getRegexData","dateLocale","regexText","YY","YYYY","M","MMM","MMMM","D","H","S","A","aa","Z","ZZ","X","extractDate","__splitDate","tzOffset","getTimezoneOffset","timezoneOffset","getChange","minutes","defaultModel","dateHash","timeHash","langOpts","tzString","maxDay","formatTimezone","delimeter","sign","absOffset","hours","setMonth","newMonth","isValid","buildDate","utc","adjustDate","getDayOfWeek","dow","getDay","getWeekOfYear","thursday","setDate","firstThursday","ds","setHours","weekDiff","getDayIdentifier","getDateIdentifier","onlyDate","getTime","isBetweenDates","d1","d2","cur","inclusiveFrom","inclusiveTo","addToDate","subtractFromDate","startOfDate","unit","endOfDate","daysInMonth","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","yearsInterval","views","viewIsValid","yearMonthValidator","lineStr","DateTimeMixin","multiple","range","title","subtitle","defaultYearMonth","yearsInMonthView","Function","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","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","__toggleDate","setCalendarTo","setView","offsetCalendar","descending","setEditingRange","__getDefaultViewModel","decoded","__getNavigation","boundaries","__getCalendarView","__goToMonth","__goToYear","__onDayClick","mouseover","__onDayMouseover","__getMonthsView","currentYear","isDisabled","__setMonth","__getYearsView","years","__setYear","__emitImmediately","monthHash","__removeFromModel","__addToModel","__getShortDate","dayIndex","dayProps","newHash","__emitValue","details","__getEmitParams","__encodeEntry","changed","ranges","__addHistory","__historyEntry","__removeHistory","scrollPositionX","scrollPositionY","maxScrollTop","bodyLeft","bodyTop","closeTimer","registered","vpPendingUpdate","onWheel","shouldPreventScroll","onAppleScroll","onAppleResize","hasViewport","overflowY","qScrollPrevented","preventScroll","__preventScroll","preventedScroll","maximizedModals","positionClass","standard","transitions","HistoryMixin","PreventScrollMixin","noEscDismiss","noBackdropDismiss","seamless","maximized","fullWidth","fullHeight","animating","transitionShowComputed","transitionHideComputed","__updateMaximized","useBackdrop","__preventFocusout","__getInnerNode","shake","shakeTimeout","isMaximized","__onFocusChange","__onBackdropClick","mouseEvents","layout","side","mini","miniToOverlay","miniWidth","showIfAbove","elevated","overlay","noSwipeOpen","noSwipeClose","noSwipeBackdrop","belowBreakpoint","totalWidth","lastDesktopState","__applyPosition","__applyBackdrop","__updateLocal","newSide","oldSide","space","onLayout","rightSide","__updateSizeOnLayout","__animateMini","isMini","otherSide","fixed","onScreenOverlay","backdropClass","headerSlot","footerSlot","aboveStyle","footer","stateDirection","onNativeEvents","openDirective","__openByTouch","contentCloseDirective","__closeByTouch","backdropCloseDirective","scrollbarWidth","__lastPosition","retry","backdrop","lastBackdropBg","__setBackdropVisible","__setScrollable","timerMini","opened","noEvent","watcher","hideDelay","MutationObserver","childList","characterData","subtree","disconnect","__delayShow","__delayHide","insetLevel","focused","manualFocus","thumbnail","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","getFonts","defaultFontLabel","defaultFontIcon","fonts","default_font","getLinkEditor","ie11","link","editLinkUrl","updateLink","execCommand","__onInput","getBlockElement","display","currentStyle","isChildOf","orSame","selectNode","setStart","setEnd","TEXT_NODE","textContent","lp","childNodes","urlRegex","Caret","_range","sel","anchorNode","focusNode","hasSelection","rangeCount","getRangeAt","startContainer","blockParent","startOffset","endContainer","endOffset","selectAllChildren","collapseToEnd","savePosition","charCount","focusOffset","previousSibling","savedPos","restorePosition","collapse","hasParent","spanLevel","hasParents","recursive","queryCommandValue","queryCommandState","getParentAttribute","attrib","can","win","write","selectWord","cloneContents","selectNodeContents","__setContent","isCollapsed","modify","anchorOffset","collapsed","detach","endNode","hasOwn","class2type","copy","copyIsArray","definitions","placeholder","toolbar","toolbarBg","toolbarOutline","toolbarRounded","paragraphTag","hasToolbar","buttonDef","strike","unordered","ordered","viewsource","h1","h2","h3","h4","h5","h6","userDef","item","innerStyle","col","onEditor","focusin","__onFocusin","focusout","__onFocusout","lastEmit","innerText","refreshToolbar","__onBlur","__offsetBottom","__onFocus","relatedTarget","__onMouseup","__onTouchend","getContentEl","fontFamily","toolbars","bars","contenteditable","overline","caption","lines","appear","__begin","__end","lastEvent","timerFallback","animListener","enter","ev","leave","insetMap","true","margins","spaced","inset","classPrefix","insetClass","eventName","labelLines","captionLines","expandIcon","expandedIcon","expandIconClass","headerInsetLevel","contentInsetLevel","expandSeparator","defaultOpened","expandIconToggle","switchToggleSide","denseToggle","popup","headerStyle","$on","__eventHandler","$off","expansionIcon","activeToggleIcon","__onHeaderClick","__toggleIconKeyboard","__toggleIcon","__getToggleIcon","QItemLabel","evtProp","QSlideTransition","QSeparator","labelPositions","labelPosition","externalLabel","hideLabel","labelClass","labelStyle","formClass","stacked","labelProps","FabMixin","__qFab","hideIcon","verticalActionsAlign","actionsClasses","iconHolderClasses","__onChildClick","anchorMap","anchorValues","lazyRulesValues","errorMessage","noErrorIcon","rules","reactiveRules","lazyRules","isDirty","innerError","innerErrorMessage","__validateIfNeeded","resetValidation","unwatchRules","hasRules","validate","hasError","invalid","targetEl","targetUid","computedErrorMessage","validateIndex","innerLoading","promises","rule","changedRules","buf","bufIdx","hexBytes","randomBytes","lib","crypto","msCrypto","getRandomValues","Uint8Array","BUFFER_SIZE","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","id","emitValue","focusFn","showPopup","prepend","slotsEvents","__getControlContainer","__getInnerAppendNode","clearableEvents","__getInnerAppend","__getControlChild","hasShadow","__getShadowControl","rawControl","control","__getDefaultSlot","__getBottom","hasCounter","__onControlPopupShow","hasPopupOpen","__onControlFocusin","__onControlPopupHide","__onControlFocusout","focusoutTimer","hasFocus","__clearValue","__onPreRender","__onPostRender","controlEvents","after","__getControlEvents","filterFiles","rejectedFiles","failedPropValidation","filterFn","acceptedFiles","file","stopAndPreventDrag","dataTransfer","dropEffect","accept","maxFileSize","maxTotalSize","maxFiles","extensions","ext","maxFilesNumber","maxTotalSizeNumber","pickFiles","__getFileInput","addFiles","__addFiles","__processFiles","filesToProcess","currentFileList","filteredFiles","filesNumber","__onDragOver","dnd","__onDragLeave","__onDrop","__getDnd","dragenter","dragover","dragleave","drop","FileValueMixin","dt","DataTransfer","ClipboardEvent","clipboardData","items","QField","FileMixin","File","FileList","useChips","counterLabel","inputClass","inputStyle","selectedString","totalSize","counterProps","inputAttrs","isAppending","removeAtIndex","removeFile","fileList","__getInput","__getSelection","__getFiller","QChip","reveal","heightHint","revealed","windowHeight","__updateRevealed","containerHeight","hidden","revealOnFocus","inflexionPosition","noErrorFocus","noResetFocus","greedy","submit","shouldFocus","getValidationComponents","emit","valid","errors","tabIndex","revealOffset","ratioStyle","naturalRatio","RatioMixin","srcset","alt","placeholderSrc","basic","contain","imgClass","imgStyle","nativeContextMenu","noDefaultSpinner","spinnerColor","spinnerSize","currentSrc","image","isLoading","__load","__updateWatcher","att","imgContainerStyle","backgroundPosition","__onLoad","__computeRatio","__updateSrc","__onError","ratioTimer","Image","naturalHeight","naturalWidth","__getImage","nativeImg","slotVm","initialIndex","fetching","working","resume","updateScrollTarget","__setDebounce","poll","scrollPosition","heightBefore","heightAfter","heightDifference","immediatePoll","setIndex","oldPoll","NAMED_MASKS","phone","card","TOKENS","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","unmaskMatch","extractMatch","extractMatcherLength","rawVal","updateMaskInternals","inputType","endReverse","unmasked","preMasked","__moveCursorRightReverse","__moveCursorRight","__moveCursorForPaste","__moveCursorLeft","noMarkBefore","__moveCursorLeftReverse","__onMaskedKeydown","selectionStart","__maskReverse","valIndex","output","maskIndex","valChar","maskDef","firstTokenIndex","isJapanese","isChinese","isKorean","__onComposition","composing","MaskMixin","CompositionMixin","shadowText","stopValueWatcher","typedNumber","tempValue","__adjustHeight","isTextarea","isTypeText","paste","__onPaste","__onChange","__onFinishEditing","compositionstart","compositionupdate","compositionend","animationend","getNativeElement","stopWatcher","emitValueFn","emitCachedValue","NaN","emitTimer","parentStyle","marginBottom","__getCurValue","defaultCfg","threshold","rootMargin","IntersectionObserver","rootBounds","isIntersecting","__qvisible","__qvisible_destroyed","Intersection","ssrPrerender","__trigger","QCircularProgress","computedInstantFeedback","__click","__updateCenterPosition","centerPosition","asin","__getNameInput","scopedSlots","internal","dirChanged","dirChangePos","getPosition","directionChanged","immediately","__emit","cancelAnimationFrame","targetStyle","targetChildStyle","QScrollObserver","__onPageScroll","__onPageResize","__onContainerResize","resized","__updateScrollbarWidth","wrapCells","checkedIcon","uncheckedIcon","indeterminateIcon","iconColor","computedIcon","computedIconColor","radio","QRadio","checkbox","QCheckbox","QToggle","typeValues","inline","pageContainer","styleFn","paddingTop","attach","posX","posY","QPageSticky","scrollOffset","__isVisible","__updateVisibility","heightWatcher","activeTextColor","iconPrev","iconNext","iconFirst","iconLast","toFn","boundaryLinks","boundaryNumbers","directionLinks","ellipses","maxPages","newPage","inputPlaceholder","__boundaryLinks","__getBool","__boundaryNumbers","__directionLinks","__ellipses","icons","activeBtnProps","setByOffset","__getBtn","page","contentStart","contentEnd","contentMiddle","QInput","pgFrom","pgTo","ellipsesStart","ellipsesEnd","boundaryStart","boundaryEnd","frame","callArgs","scrolling","percentScrolled","__updatePos","__stop","__start","containerTop","containerBottom","__setPos","mediaHeight","media","videoHeight","__resizeHandler","mediaParent","onloadstart","loadedmetadata","labelSet","labelCancel","autoSave","initialValue","defaultSlotScope","menuProps","__hasChanged","__close","validated","__reposition","parsedBreakpoint","__onHide","__updateType","Ctor","sealedOptions","QDialog","stripe","motion","trackClass","modelStyle","modelClasses","stripeStyle","stripeClass","PULLER_HEIGHT","OFFSET_TOP","noMouse","pullRatio","pulling","pullPosition","positionCSS","mightPrevent","__pull","__animateTo","dragType","MIN","RANGE","MAX","dragRange","dragOnlyRange","leftLabelColor","leftLabelTextColor","rightLabelColor","rightLabelTextColor","leftLabelValue","rightLabelValue","curMinRatio","curMaxRatio","ratioMin","modelMinRatio","ratioMax","modelMaxRatio","minThumbStyle","__nextFocus","maxThumbStyle","minThumbClass","maxThumbClass","minEvents","maxEvents","minPinClass","minPinTextClass","maxPinClass","maxPinTextClass","minLabel","maxLabel","minPinStyle","maxPinStyle","minThumb","valueMin","valueMax","offsetRatio","offsetModel","rangeValue","rangeRatio","minR","maxR","ratioDelta","modelDelta","which","__getThumb","iconHalf","colorHalf","colorSelected","noReset","noDimming","mouseModel","iconData","iconLen","selIconLen","halfIconLen","colorLen","selColorLen","halfColorLen","selIcon","halfIcon","selColor","halfColor","__setHoverValue","halfIndex","half","exSelected","mouseout","barStyle","contentActiveStyle","visible","tempShowing","panning","hover","containerWidth","thumbHidden","containerSize","thumbSize","scrollPercentage","mainStyle","dirProps","classSuffix","dist","barClass","thumbDirectives","__panThumb","scrollAttrs","setScrollPercentage","__updateScroll","__updateScrollSize","refPos","__setScroll","__mouseDown","thumb","__emitScroll","mouseenter","$listeners","aggBucketSize","scrollToEdges","buggyRTL","detectBuggyRTL","scroller","spacer","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","isSupported","overflowAnchor","ssId","styleSheet","head","qChildIndex","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","onBlurFn","sizeBefore","tempTo","sizeAfter","posStart","posEnd","sizeDiff","contentEl","childrenLength","sizeFn","diff","fullReset","defaultSize","oldVirtualScrollSizesLength","jMax","iMax","baseSize","__padVirtualScroll","paddingSize","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","isOptionsDark","computedInputClass","menuContentClass","mapNull","__getOption","noOptions","getOptionLabel","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","__setInputValue","defaultInputValue","defaultVal","__onTargetKeyup","inputTimer","needle","newValueModeValid","tabShouldSelect","__closeMenu","optionsLength","searchBuffer","searchBufferExp","keyRepeat","searchRe","menuContent","fromDialog","isTarget","__getOptions","optionSlot","innerLoadingIndicator","noFiltering","keepClosed","filterId","afterFn","__getMenu","__onMenuShow","__onDialogFieldFocus","__onDialogFieldBlur","__getDialog","__onDialogBeforeHide","__onDialogHide","__onDialogShow","updateMenuPosition","skeletonTypes","skeletonAnimations","animation","slotsDef","leftColor","rightColor","topColor","bottomColor","langDir","__emitSlide","__showing","isReset","__dir","__size","__scale","__axis","dirs","limits","beforeClass","afterClass","separatorClass","separatorStyle","__normalize","computedLimits","styles","__getCSSValue","separatorDirectives","__maxValue","__value","__multiplier","__normalized","isDisable","isDone","headerNav","nav","hasPrefix","doneIcon","inactiveIcon","errorColor","doneColor","inactiveColor","activate","StepWrapper","StepHeader","alternativeLabels","contracted","headerClasses","marginalsScope","computedPagination","pagesNumber","isFirstPage","isLastPage","__getTopDiv","topLeft","topRight","topSelection","hasSelectionMode","rowsSelectedNumber","titleClass","autoWidth","colsMap","sortable","__iconClass","__thClass","headerSelectedValue","someRowsSelected","allRowsSelected","__getTHead","__getTHeadTR","computedColspan","__getProgress","headerCell","__getHeaderScope","computedCols","headerCellCol","QTh","singleSelection","grid","multipleSelection","__onMultipleSelectionSet","tableHeaderStyle","tableHeaderClass","cols","computedColsMap","enumerable","partialSelected","multipleSelect","__updateSelection","computedRows","getRowKey","__getTBodyTR","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","comps","QMarkupTable","itemsFn","itemsSize","virtualScrollScope","mapFn","sortString","localeCompare","sortNumber","sortDate","sortBoolean","sortMethod","sortBy","colList","toLocaleString","columnSortOrder","columnToSort","sortOrder","binaryStateSort","filterMethod","terms","cellValue","lowerTerms","haystack","samePagination","oldPag","newPag","fixPagination","innerPagination","oldLastPage","currentPage","__sendServerRequest","requestServerInteraction","forceServerRequest","newPagination","isServerSide","selectedKeys","added","getVal","innerExpanded","setExpanded","visibleColumns","names","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","equals","__checkActivation","routerTabLinkProps","checkFn","isSameRouteCheck","checkFunction","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","wrap","__onKeyupMinute","__setMinute","__onKeyupSecond","seconds","__setSecond","__setAm","__setPm","__getClock","__verifyAndUpdate","__timeline","colorClass","dot","nodeKey","labelKey","childrenKey","selectedColor","tickStrategy","ticked","defaultExpandAll","accordion","filt","noConnectors","noNodesLabel","computedControlColor","textColorClass","selectedColorClass","travel","isParent","isLeaf","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","slotScope","__onExpandClick","__onTickedClick","noThumbnails","autoUpload","hideUploadBtn","__qUploaderGetInput","__getInputControl","queuedFiles","uploadedFiles","uploadSize","uploadedSize","isUploading","canUpload","isBusy","canAddFiles","uploadProgressLabel","__getProgressLabel","uploadedSizeLabel","uploadSizeLabel","__revokeImgURLs","removeUploadedFiles","__removeFiles","removeQueuedFiles","statusList","removed","__status","_img","URL","revokeObjectURL","__abort","__updateFile","__uploaded","__progress","__sizeLabel","__progressLabel","processedFiles","fileInput","createObjectURL","__img","__getList","getFn","fieldName","formFields","sendRaw","batch","xhrs","workingThreads","xhrProps","abortPromises","__runFactory","__uploadFiles","failed","getProp","fields","uploadIndex","uploadIndexSize","maxUploadSize","loaded","uploaded","onreadystatechange","QUploaderBase","UploaderXHRMixin","iframeData","frameborder","allowfullscreen","getDepth","__qclosepopup","handlerKey","__qclosepopup_destroyed","__qgoback","goBack","goBackKey","__qgoback_destroyed","single","offsetBase","getAbsolutePosition","cssText","boundingRect","baseRect","marginLeft","marginRight","marginTop","marginH","marginV","widthM","heightM","getAbsoluteSize","styleEdges","styleBorderRadiuses","reStyleSkipKey","reStyleSkipRule","styleLen","val1","zIndexPositions","getMaxZIndex","elStart","zIndex","zIndexNum","normalizeElements","normalizeOptions","onEnd","waitFor","easing","useCSS","hideFromClone","keepToClone","tween","tweenFromOpacity","tweenToOpacity","getElement","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","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","cleanup","qAnimId","keyframesFromTween","keyframesFrom","keyframeToStart","keyframesTo","animationDirection","animationName","endFn","morphGroups","mods","changeClass","clsAction","cancelFn","insertArgs","updateArgs","updateModel","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","metaValue","getMetaTag","getElementsByTagName","setColor","metaTag","newTag","StatusBar","backgroundColorByHexString","addressbarColor","prefixes","promisify","__getErr","exit","fullscreenElement","mozFullScreenElement","webkitFullscreenElement","msFullscreenElement","appVisible","msHidden","webkitHidden","dialogProps","onOk","__getGrid","QCardSection","QCard","ssrAPI","okCancel","DefaultComponent","klass","isCustom","DialogComponent","okFns","cancelFns","API","onCancel","onDismiss","emittedOK","bottomSheet","BottomSheet","string","stringifyCookieValue","read","getString","msOffset","setMilliseconds","toUTCString","parseExpireString","timestamp","expire","expireValue","expires","keyValue","cookie","domain","sameSite","httpOnly","secure","other","qCookies","setHeader","cookieSource","cookies","getObject","prompt","html","stackButtons","spinner","vmColor","hasForm","okLabel","cancelLabel","okDisabled","okProps","cancelProps","getPrompt","getOptions","QOptionGroup","getButtons","QCardActions","getData","getSection","DialogPlugin","setDefaults","loadingBar","bar","QAjaxBar","Loading","originalDefaults","messageColor","customClass","ignoreDefaults","updateId","ssrTakeover","normalize","titleTemplate","metaType","metaProp","metaLink","old","bodyFilter","htmlFilter","htmlAttr","removeAttribute","bodyAttr","parseMeta","hasMeta","__qMeta","updateClient","__currentMeta","__Q_META__","getAttr","seed","getHead","getServerMeta","noscript","nonce","triggerMeta","__qMetaUpdate","$getMetaHTML","__qMetaUnwatch","positionList","badgePositions","notifTypes","ongoing","logError","Notifications","notifs","vert","originalApi","Api","notif","hasMedia","progressStyle","animationDuration","closeBtn","noDismiss","dismiss","wrapperClass","multiline","actionsClass","original","badge","badgePosition","badgeStaticClass","badgeColor","badgeTextColor","newNotif","msgChild","msgData","msgNode","mainChild","QAvatar","progressClass","badgeStyle","badgeClass","__vm","registerType","typeName","typeOpts","getEmptyStorage","getLength","getItem","getIndex","getKey","getAllKeys","isEmpty","getStorage","setItem","removeItem","storage","sessionStorage","area","contentEditable","clipboard","writeText","fileName","rawData","mimeType","msSaveOrOpenBlob","download","parseFeatures","winFeatures","noopener","feat","openWindow","windowFeatures","InAppBrowser","loadUrl","openExternal","shell","SafariViewController","isAvailable","available","VuePlugin","LastLoginEmailCookieName","returnUrl","emptyModel","loginScreenType","Email","Password","NewPasswordAndProfile","SoftwareToken","ForgotPasswordInitiate","ForgotPasswordConfirm","isPasswordValid","ErrorMessage","LoginScreen","DisplayErrors","IdentityProviders","LoginData","Cookies","ReturnUrl","NewPasswordData","UserId","UserEmail","SessionId","ConformPassword","GivenName","FamilyName","SoftwareTokenData","Token","ForgotPasswordInitiateData","ForgotPasswordConfirmData","ConfirmPassword","ConfirmationCode","onDialogHide","onNextClick","modelEmailForm","validateResult","responseData","resultType","onSignInWithExternalProvider","identityProviderId","allowedIdentityProviders","$processException","onBackClick","onForgotPasswordClick","onSignInClick","modelPasswordForm","onSuccessfulLogin","userId","userEmail","sessionId","onNewPasswordSendClick","modelNewPasswordForm","onSoftwareTokenSendClick","modelSoftwareTokenForm","providerName","returnUrlParameterValue","queryParameters","onForgotPasswordInitiateClick","modelForgotPasswordInitiateForm","onForgotPasswordConfirmClick","modelForgotPasswordConfirmForm","redirectUrl","VueResource","Quasar","primary","secondary","accent","exception","replaceAll"],"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 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 generator._invoke = 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 define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\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 this._invoke = 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 method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (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\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' 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(object) {\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) {\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 // Return an iterator with no values.\n return { next: doneResult };\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","/*!\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","/*!\n * vue-router v3.5.2\n * (c) 2021 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an element. Use the custom prop to remove this warning:\\n\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\" with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === this$1._startLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1.current;\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n\n if (!this$1.app) { this$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.5.2';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","/*!\n * vue-resource v1.5.2\n * https://github.com/pagekit/vue-resource\n * Released under the MIT License.\n */\n\n/**\n * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)\n */\nvar RESOLVED = 0;\nvar REJECTED = 1;\nvar PENDING = 2;\nfunction Promise$1(executor) {\n this.state = PENDING;\n this.value = undefined;\n this.deferred = [];\n var promise = this;\n\n try {\n executor(function (x) {\n promise.resolve(x);\n }, function (r) {\n promise.reject(r);\n });\n } catch (e) {\n promise.reject(e);\n }\n}\n\nPromise$1.reject = function (r) {\n return new Promise$1(function (resolve, reject) {\n reject(r);\n });\n};\n\nPromise$1.resolve = function (x) {\n return new Promise$1(function (resolve, reject) {\n resolve(x);\n });\n};\n\nPromise$1.all = function all(iterable) {\n return new Promise$1(function (resolve, reject) {\n var count = 0,\n result = [];\n\n if (iterable.length === 0) {\n resolve(result);\n }\n\n function resolver(i) {\n return function (x) {\n result[i] = x;\n count += 1;\n\n if (count === iterable.length) {\n resolve(result);\n }\n };\n }\n\n for (var i = 0; i < iterable.length; i += 1) {\n Promise$1.resolve(iterable[i]).then(resolver(i), reject);\n }\n });\n};\n\nPromise$1.race = function race(iterable) {\n return new Promise$1(function (resolve, reject) {\n for (var i = 0; i < iterable.length; i += 1) {\n Promise$1.resolve(iterable[i]).then(resolve, reject);\n }\n });\n};\n\nvar p = Promise$1.prototype;\n\np.resolve = function resolve(x) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (x === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n var called = false;\n\n try {\n var then = x && x['then'];\n\n if (x !== null && typeof x === 'object' && typeof then === 'function') {\n then.call(x, function (x) {\n if (!called) {\n promise.resolve(x);\n }\n\n called = true;\n }, function (r) {\n if (!called) {\n promise.reject(r);\n }\n\n called = true;\n });\n return;\n }\n } catch (e) {\n if (!called) {\n promise.reject(e);\n }\n\n return;\n }\n\n promise.state = RESOLVED;\n promise.value = x;\n promise.notify();\n }\n};\n\np.reject = function reject(reason) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (reason === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n promise.state = REJECTED;\n promise.value = reason;\n promise.notify();\n }\n};\n\np.notify = function notify() {\n var promise = this;\n nextTick(function () {\n if (promise.state !== PENDING) {\n while (promise.deferred.length) {\n var deferred = promise.deferred.shift(),\n onResolved = deferred[0],\n onRejected = deferred[1],\n resolve = deferred[2],\n reject = deferred[3];\n\n try {\n if (promise.state === RESOLVED) {\n if (typeof onResolved === 'function') {\n resolve(onResolved.call(undefined, promise.value));\n } else {\n resolve(promise.value);\n }\n } else if (promise.state === REJECTED) {\n if (typeof onRejected === 'function') {\n resolve(onRejected.call(undefined, promise.value));\n } else {\n reject(promise.value);\n }\n }\n } catch (e) {\n reject(e);\n }\n }\n }\n });\n};\n\np.then = function then(onResolved, onRejected) {\n var promise = this;\n return new Promise$1(function (resolve, reject) {\n promise.deferred.push([onResolved, onRejected, resolve, reject]);\n promise.notify();\n });\n};\n\np[\"catch\"] = function (onRejected) {\n return this.then(undefined, onRejected);\n};\n\n/**\n * Promise adapter.\n */\n\nif (typeof Promise === 'undefined') {\n window.Promise = Promise$1;\n}\n\nfunction PromiseObj(executor, context) {\n if (executor instanceof Promise) {\n this.promise = executor;\n } else {\n this.promise = new Promise(executor.bind(context));\n }\n\n this.context = context;\n}\n\nPromiseObj.all = function (iterable, context) {\n return new PromiseObj(Promise.all(iterable), context);\n};\n\nPromiseObj.resolve = function (value, context) {\n return new PromiseObj(Promise.resolve(value), context);\n};\n\nPromiseObj.reject = function (reason, context) {\n return new PromiseObj(Promise.reject(reason), context);\n};\n\nPromiseObj.race = function (iterable, context) {\n return new PromiseObj(Promise.race(iterable), context);\n};\n\nvar p$1 = PromiseObj.prototype;\n\np$1.bind = function (context) {\n this.context = context;\n return this;\n};\n\np$1.then = function (fulfilled, rejected) {\n if (fulfilled && fulfilled.bind && this.context) {\n fulfilled = fulfilled.bind(this.context);\n }\n\n if (rejected && rejected.bind && this.context) {\n rejected = rejected.bind(this.context);\n }\n\n return new PromiseObj(this.promise.then(fulfilled, rejected), this.context);\n};\n\np$1[\"catch\"] = function (rejected) {\n if (rejected && rejected.bind && this.context) {\n rejected = rejected.bind(this.context);\n }\n\n return new PromiseObj(this.promise[\"catch\"](rejected), this.context);\n};\n\np$1[\"finally\"] = function (callback) {\n return this.then(function (value) {\n callback.call(this);\n return value;\n }, function (reason) {\n callback.call(this);\n return Promise.reject(reason);\n });\n};\n\n/**\n * Utility functions.\n */\nvar _ref = {},\n hasOwnProperty = _ref.hasOwnProperty,\n slice = [].slice,\n debug = false,\n ntick;\nvar inBrowser = typeof window !== 'undefined';\nfunction Util (_ref2) {\n var config = _ref2.config,\n nextTick = _ref2.nextTick;\n ntick = nextTick;\n debug = config.debug || !config.silent;\n}\nfunction warn(msg) {\n if (typeof console !== 'undefined' && debug) {\n console.warn('[VueResource warn]: ' + msg);\n }\n}\nfunction error(msg) {\n if (typeof console !== 'undefined') {\n console.error(msg);\n }\n}\nfunction nextTick(cb, ctx) {\n return ntick(cb, ctx);\n}\nfunction trim(str) {\n return str ? str.replace(/^\\s*|\\s*$/g, '') : '';\n}\nfunction trimEnd(str, chars) {\n if (str && chars === undefined) {\n return str.replace(/\\s+$/, '');\n }\n\n if (!str || !chars) {\n return str;\n }\n\n return str.replace(new RegExp(\"[\" + chars + \"]+$\"), '');\n}\nfunction toLower(str) {\n return str ? str.toLowerCase() : '';\n}\nfunction toUpper(str) {\n return str ? str.toUpperCase() : '';\n}\nvar isArray = Array.isArray;\nfunction isString(val) {\n return typeof val === 'string';\n}\nfunction isFunction(val) {\n return typeof val === 'function';\n}\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\n}\nfunction isPlainObject(obj) {\n return isObject(obj) && Object.getPrototypeOf(obj) == Object.prototype;\n}\nfunction isBlob(obj) {\n return typeof Blob !== 'undefined' && obj instanceof Blob;\n}\nfunction isFormData(obj) {\n return typeof FormData !== 'undefined' && obj instanceof FormData;\n}\nfunction when(value, fulfilled, rejected) {\n var promise = PromiseObj.resolve(value);\n\n if (arguments.length < 2) {\n return promise;\n }\n\n return promise.then(fulfilled, rejected);\n}\nfunction options(fn, obj, opts) {\n opts = opts || {};\n\n if (isFunction(opts)) {\n opts = opts.call(obj);\n }\n\n return merge(fn.bind({\n $vm: obj,\n $options: opts\n }), fn, {\n $options: opts\n });\n}\nfunction each(obj, iterator) {\n var i, key;\n\n if (isArray(obj)) {\n for (i = 0; i < obj.length; i++) {\n iterator.call(obj[i], obj[i], i);\n }\n } else if (isObject(obj)) {\n for (key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n iterator.call(obj[key], obj[key], key);\n }\n }\n }\n\n return obj;\n}\nvar assign = Object.assign || _assign;\nfunction merge(target) {\n var args = slice.call(arguments, 1);\n args.forEach(function (source) {\n _merge(target, source, true);\n });\n return target;\n}\nfunction defaults(target) {\n var args = slice.call(arguments, 1);\n args.forEach(function (source) {\n for (var key in source) {\n if (target[key] === undefined) {\n target[key] = source[key];\n }\n }\n });\n return target;\n}\n\nfunction _assign(target) {\n var args = slice.call(arguments, 1);\n args.forEach(function (source) {\n _merge(target, source);\n });\n return target;\n}\n\nfunction _merge(target, source, deep) {\n for (var key in source) {\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) {\n target[key] = {};\n }\n\n if (isArray(source[key]) && !isArray(target[key])) {\n target[key] = [];\n }\n\n _merge(target[key], source[key], deep);\n } else if (source[key] !== undefined) {\n target[key] = source[key];\n }\n }\n}\n\n/**\n * Root Prefix Transform.\n */\nfunction root (options$$1, next) {\n var url = next(options$$1);\n\n if (isString(options$$1.root) && !/^(https?:)?\\//.test(url)) {\n url = trimEnd(options$$1.root, '/') + '/' + url;\n }\n\n return url;\n}\n\n/**\n * Query Parameter Transform.\n */\nfunction query (options$$1, next) {\n var urlParams = Object.keys(Url.options.params),\n query = {},\n url = next(options$$1);\n each(options$$1.params, function (value, key) {\n if (urlParams.indexOf(key) === -1) {\n query[key] = value;\n }\n });\n query = Url.params(query);\n\n if (query) {\n url += (url.indexOf('?') == -1 ? '?' : '&') + query;\n }\n\n return url;\n}\n\n/**\n * URL Template v2.0.6 (https://github.com/bramstein/url-template)\n */\nfunction expand(url, params, variables) {\n var tmpl = parse(url),\n expanded = tmpl.expand(params);\n\n if (variables) {\n variables.push.apply(variables, tmpl.vars);\n }\n\n return expanded;\n}\nfunction parse(template) {\n var operators = ['+', '#', '.', '/', ';', '?', '&'],\n variables = [];\n return {\n vars: variables,\n expand: function expand(context) {\n return template.replace(/\\{([^{}]+)\\}|([^{}]+)/g, function (_, expression, literal) {\n if (expression) {\n var operator = null,\n values = [];\n\n if (operators.indexOf(expression.charAt(0)) !== -1) {\n operator = expression.charAt(0);\n expression = expression.substr(1);\n }\n\n expression.split(/,/g).forEach(function (variable) {\n var tmp = /([^:*]*)(?::(\\d+)|(\\*))?/.exec(variable);\n values.push.apply(values, getValues(context, operator, tmp[1], tmp[2] || tmp[3]));\n variables.push(tmp[1]);\n });\n\n if (operator && operator !== '+') {\n var separator = ',';\n\n if (operator === '?') {\n separator = '&';\n } else if (operator !== '#') {\n separator = operator;\n }\n\n return (values.length !== 0 ? operator : '') + values.join(separator);\n } else {\n return values.join(',');\n }\n } else {\n return encodeReserved(literal);\n }\n });\n }\n };\n}\n\nfunction getValues(context, operator, key, modifier) {\n var value = context[key],\n result = [];\n\n if (isDefined(value) && value !== '') {\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n value = value.toString();\n\n if (modifier && modifier !== '*') {\n value = value.substring(0, parseInt(modifier, 10));\n }\n\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));\n } else {\n if (modifier === '*') {\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n result.push(encodeValue(operator, value, isKeyOperator(operator) ? key : null));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n result.push(encodeValue(operator, value[k], k));\n }\n });\n }\n } else {\n var tmp = [];\n\n if (Array.isArray(value)) {\n value.filter(isDefined).forEach(function (value) {\n tmp.push(encodeValue(operator, value));\n });\n } else {\n Object.keys(value).forEach(function (k) {\n if (isDefined(value[k])) {\n tmp.push(encodeURIComponent(k));\n tmp.push(encodeValue(operator, value[k].toString()));\n }\n });\n }\n\n if (isKeyOperator(operator)) {\n result.push(encodeURIComponent(key) + '=' + tmp.join(','));\n } else if (tmp.length !== 0) {\n result.push(tmp.join(','));\n }\n }\n }\n } else {\n if (operator === ';') {\n result.push(encodeURIComponent(key));\n } else if (value === '' && (operator === '&' || operator === '?')) {\n result.push(encodeURIComponent(key) + '=');\n } else if (value === '') {\n result.push('');\n }\n }\n\n return result;\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nfunction isKeyOperator(operator) {\n return operator === ';' || operator === '&' || operator === '?';\n}\n\nfunction encodeValue(operator, value, key) {\n value = operator === '+' || operator === '#' ? encodeReserved(value) : encodeURIComponent(value);\n\n if (key) {\n return encodeURIComponent(key) + '=' + value;\n } else {\n return value;\n }\n}\n\nfunction encodeReserved(str) {\n return str.split(/(%[0-9A-Fa-f]{2})/g).map(function (part) {\n if (!/%[0-9A-Fa-f]/.test(part)) {\n part = encodeURI(part);\n }\n\n return part;\n }).join('');\n}\n\n/**\n * URL Template (RFC 6570) Transform.\n */\nfunction template (options) {\n var variables = [],\n url = expand(options.url, options.params, variables);\n variables.forEach(function (key) {\n delete options.params[key];\n });\n return url;\n}\n\n/**\n * Service for URL templating.\n */\nfunction Url(url, params) {\n var self = this || {},\n options$$1 = url,\n transform;\n\n if (isString(url)) {\n options$$1 = {\n url: url,\n params: params\n };\n }\n\n options$$1 = merge({}, Url.options, self.$options, options$$1);\n Url.transforms.forEach(function (handler) {\n if (isString(handler)) {\n handler = Url.transform[handler];\n }\n\n if (isFunction(handler)) {\n transform = factory(handler, transform, self.$vm);\n }\n });\n return transform(options$$1);\n}\n/**\n * Url options.\n */\n\nUrl.options = {\n url: '',\n root: null,\n params: {}\n};\n/**\n * Url transforms.\n */\n\nUrl.transform = {\n template: template,\n query: query,\n root: root\n};\nUrl.transforms = ['template', 'query', 'root'];\n/**\n * Encodes a Url parameter string.\n *\n * @param {Object} obj\n */\n\nUrl.params = function (obj) {\n var params = [],\n escape = encodeURIComponent;\n\n params.add = function (key, value) {\n if (isFunction(value)) {\n value = value();\n }\n\n if (value === null) {\n value = '';\n }\n\n this.push(escape(key) + '=' + escape(value));\n };\n\n serialize(params, obj);\n return params.join('&').replace(/%20/g, '+');\n};\n/**\n * Parse a URL and return its components.\n *\n * @param {String} url\n */\n\n\nUrl.parse = function (url) {\n var el = document.createElement('a');\n\n if (document.documentMode) {\n el.href = url;\n url = el.href;\n }\n\n el.href = url;\n return {\n href: el.href,\n protocol: el.protocol ? el.protocol.replace(/:$/, '') : '',\n port: el.port,\n host: el.host,\n hostname: el.hostname,\n pathname: el.pathname.charAt(0) === '/' ? el.pathname : '/' + el.pathname,\n search: el.search ? el.search.replace(/^\\?/, '') : '',\n hash: el.hash ? el.hash.replace(/^#/, '') : ''\n };\n};\n\nfunction factory(handler, next, vm) {\n return function (options$$1) {\n return handler.call(vm, options$$1, next);\n };\n}\n\nfunction serialize(params, obj, scope) {\n var array = isArray(obj),\n plain = isPlainObject(obj),\n hash;\n each(obj, function (value, key) {\n hash = isObject(value) || isArray(value);\n\n if (scope) {\n key = scope + '[' + (plain || hash ? key : '') + ']';\n }\n\n if (!scope && array) {\n params.add(value.name, value.value);\n } else if (hash) {\n serialize(params, value, key);\n } else {\n params.add(key, value);\n }\n });\n}\n\n/**\n * XDomain client (Internet Explorer).\n */\nfunction xdrClient (request) {\n return new PromiseObj(function (resolve) {\n var xdr = new XDomainRequest(),\n handler = function handler(_ref) {\n var type = _ref.type;\n var status = 0;\n\n if (type === 'load') {\n status = 200;\n } else if (type === 'error') {\n status = 500;\n }\n\n resolve(request.respondWith(xdr.responseText, {\n status: status\n }));\n };\n\n request.abort = function () {\n return xdr.abort();\n };\n\n xdr.open(request.method, request.getUrl());\n\n if (request.timeout) {\n xdr.timeout = request.timeout;\n }\n\n xdr.onload = handler;\n xdr.onabort = handler;\n xdr.onerror = handler;\n xdr.ontimeout = handler;\n\n xdr.onprogress = function () {};\n\n xdr.send(request.getBody());\n });\n}\n\n/**\n * CORS Interceptor.\n */\nvar SUPPORTS_CORS = inBrowser && 'withCredentials' in new XMLHttpRequest();\nfunction cors (request) {\n if (inBrowser) {\n var orgUrl = Url.parse(location.href);\n var reqUrl = Url.parse(request.getUrl());\n\n if (reqUrl.protocol !== orgUrl.protocol || reqUrl.host !== orgUrl.host) {\n request.crossOrigin = true;\n request.emulateHTTP = false;\n\n if (!SUPPORTS_CORS) {\n request.client = xdrClient;\n }\n }\n }\n}\n\n/**\n * Form data Interceptor.\n */\nfunction form (request) {\n if (isFormData(request.body)) {\n request.headers[\"delete\"]('Content-Type');\n } else if (isObject(request.body) && request.emulateJSON) {\n request.body = Url.params(request.body);\n request.headers.set('Content-Type', 'application/x-www-form-urlencoded');\n }\n}\n\n/**\n * JSON Interceptor.\n */\nfunction json (request) {\n var type = request.headers.get('Content-Type') || '';\n\n if (isObject(request.body) && type.indexOf('application/json') === 0) {\n request.body = JSON.stringify(request.body);\n }\n\n return function (response) {\n return response.bodyText ? when(response.text(), function (text) {\n var type = response.headers.get('Content-Type') || '';\n\n if (type.indexOf('application/json') === 0 || isJson(text)) {\n try {\n response.body = JSON.parse(text);\n } catch (e) {\n response.body = null;\n }\n } else {\n response.body = text;\n }\n\n return response;\n }) : response;\n };\n}\n\nfunction isJson(str) {\n var start = str.match(/^\\s*(\\[|\\{)/);\n var end = {\n '[': /]\\s*$/,\n '{': /}\\s*$/\n };\n return start && end[start[1]].test(str);\n}\n\n/**\n * JSONP client (Browser).\n */\nfunction jsonpClient (request) {\n return new PromiseObj(function (resolve) {\n var name = request.jsonp || 'callback',\n callback = request.jsonpCallback || '_jsonp' + Math.random().toString(36).substr(2),\n body = null,\n handler,\n script;\n\n handler = function handler(_ref) {\n var type = _ref.type;\n var status = 0;\n\n if (type === 'load' && body !== null) {\n status = 200;\n } else if (type === 'error') {\n status = 500;\n }\n\n if (status && window[callback]) {\n delete window[callback];\n document.body.removeChild(script);\n }\n\n resolve(request.respondWith(body, {\n status: status\n }));\n };\n\n window[callback] = function (result) {\n body = JSON.stringify(result);\n };\n\n request.abort = function () {\n handler({\n type: 'abort'\n });\n };\n\n request.params[name] = callback;\n\n if (request.timeout) {\n setTimeout(request.abort, request.timeout);\n }\n\n script = document.createElement('script');\n script.src = request.getUrl();\n script.type = 'text/javascript';\n script.async = true;\n script.onload = handler;\n script.onerror = handler;\n document.body.appendChild(script);\n });\n}\n\n/**\n * JSONP Interceptor.\n */\nfunction jsonp (request) {\n if (request.method == 'JSONP') {\n request.client = jsonpClient;\n }\n}\n\n/**\n * Before Interceptor.\n */\nfunction before (request) {\n if (isFunction(request.before)) {\n request.before.call(this, request);\n }\n}\n\n/**\n * HTTP method override Interceptor.\n */\nfunction method (request) {\n if (request.emulateHTTP && /^(PUT|PATCH|DELETE)$/i.test(request.method)) {\n request.headers.set('X-HTTP-Method-Override', request.method);\n request.method = 'POST';\n }\n}\n\n/**\n * Header Interceptor.\n */\nfunction header (request) {\n var headers = assign({}, Http.headers.common, !request.crossOrigin ? Http.headers.custom : {}, Http.headers[toLower(request.method)]);\n each(headers, function (value, name) {\n if (!request.headers.has(name)) {\n request.headers.set(name, value);\n }\n });\n}\n\n/**\n * XMLHttp client (Browser).\n */\nfunction xhrClient (request) {\n return new PromiseObj(function (resolve) {\n var xhr = new XMLHttpRequest(),\n handler = function handler(event) {\n var response = request.respondWith('response' in xhr ? xhr.response : xhr.responseText, {\n status: xhr.status === 1223 ? 204 : xhr.status,\n // IE9 status bug\n statusText: xhr.status === 1223 ? 'No Content' : trim(xhr.statusText)\n });\n each(trim(xhr.getAllResponseHeaders()).split('\\n'), function (row) {\n response.headers.append(row.slice(0, row.indexOf(':')), row.slice(row.indexOf(':') + 1));\n });\n resolve(response);\n };\n\n request.abort = function () {\n return xhr.abort();\n };\n\n xhr.open(request.method, request.getUrl(), true);\n\n if (request.timeout) {\n xhr.timeout = request.timeout;\n }\n\n if (request.responseType && 'responseType' in xhr) {\n xhr.responseType = request.responseType;\n }\n\n if (request.withCredentials || request.credentials) {\n xhr.withCredentials = true;\n }\n\n if (!request.crossOrigin) {\n request.headers.set('X-Requested-With', 'XMLHttpRequest');\n } // deprecated use downloadProgress\n\n\n if (isFunction(request.progress) && request.method === 'GET') {\n xhr.addEventListener('progress', request.progress);\n }\n\n if (isFunction(request.downloadProgress)) {\n xhr.addEventListener('progress', request.downloadProgress);\n } // deprecated use uploadProgress\n\n\n if (isFunction(request.progress) && /^(POST|PUT)$/i.test(request.method)) {\n xhr.upload.addEventListener('progress', request.progress);\n }\n\n if (isFunction(request.uploadProgress) && xhr.upload) {\n xhr.upload.addEventListener('progress', request.uploadProgress);\n }\n\n request.headers.forEach(function (value, name) {\n xhr.setRequestHeader(name, value);\n });\n xhr.onload = handler;\n xhr.onabort = handler;\n xhr.onerror = handler;\n xhr.ontimeout = handler;\n xhr.send(request.getBody());\n });\n}\n\n/**\n * Http client (Node).\n */\nfunction nodeClient (request) {\n var client = require('got');\n\n return new PromiseObj(function (resolve) {\n var url = request.getUrl();\n var body = request.getBody();\n var method = request.method;\n var headers = {},\n handler;\n request.headers.forEach(function (value, name) {\n headers[name] = value;\n });\n client(url, {\n body: body,\n method: method,\n headers: headers\n }).then(handler = function handler(resp) {\n var response = request.respondWith(resp.body, {\n status: resp.statusCode,\n statusText: trim(resp.statusMessage)\n });\n each(resp.headers, function (value, name) {\n response.headers.set(name, value);\n });\n resolve(response);\n }, function (error$$1) {\n return handler(error$$1.response);\n });\n });\n}\n\n/**\n * Base client.\n */\nfunction Client (context) {\n var reqHandlers = [sendRequest],\n resHandlers = [];\n\n if (!isObject(context)) {\n context = null;\n }\n\n function Client(request) {\n while (reqHandlers.length) {\n var handler = reqHandlers.pop();\n\n if (isFunction(handler)) {\n var _ret = function () {\n var response = void 0,\n next = void 0;\n response = handler.call(context, request, function (val) {\n return next = val;\n }) || next;\n\n if (isObject(response)) {\n return {\n v: new PromiseObj(function (resolve, reject) {\n resHandlers.forEach(function (handler) {\n response = when(response, function (response) {\n return handler.call(context, response) || response;\n }, reject);\n });\n when(response, resolve, reject);\n }, context)\n };\n }\n\n if (isFunction(response)) {\n resHandlers.unshift(response);\n }\n }();\n\n if (typeof _ret === \"object\") return _ret.v;\n } else {\n warn(\"Invalid interceptor of type \" + typeof handler + \", must be a function\");\n }\n }\n }\n\n Client.use = function (handler) {\n reqHandlers.push(handler);\n };\n\n return Client;\n}\n\nfunction sendRequest(request) {\n var client = request.client || (inBrowser ? xhrClient : nodeClient);\n return client(request);\n}\n\n/**\n * HTTP Headers.\n */\n\nvar Headers = /*#__PURE__*/function () {\n function Headers(headers) {\n var _this = this;\n\n this.map = {};\n each(headers, function (value, name) {\n return _this.append(name, value);\n });\n }\n\n var _proto = Headers.prototype;\n\n _proto.has = function has(name) {\n return getName(this.map, name) !== null;\n };\n\n _proto.get = function get(name) {\n var list = this.map[getName(this.map, name)];\n return list ? list.join() : null;\n };\n\n _proto.getAll = function getAll(name) {\n return this.map[getName(this.map, name)] || [];\n };\n\n _proto.set = function set(name, value) {\n this.map[normalizeName(getName(this.map, name) || name)] = [trim(value)];\n };\n\n _proto.append = function append(name, value) {\n var list = this.map[getName(this.map, name)];\n\n if (list) {\n list.push(trim(value));\n } else {\n this.set(name, value);\n }\n };\n\n _proto[\"delete\"] = function _delete(name) {\n delete this.map[getName(this.map, name)];\n };\n\n _proto.deleteAll = function deleteAll() {\n this.map = {};\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n var _this2 = this;\n\n each(this.map, function (list, name) {\n each(list, function (value) {\n return callback.call(thisArg, value, name, _this2);\n });\n });\n };\n\n return Headers;\n}();\n\nfunction getName(map, name) {\n return Object.keys(map).reduce(function (prev, curr) {\n return toLower(name) === toLower(curr) ? curr : prev;\n }, null);\n}\n\nfunction normalizeName(name) {\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name');\n }\n\n return trim(name);\n}\n\n/**\n * HTTP Response.\n */\n\nvar Response = /*#__PURE__*/function () {\n function Response(body, _ref) {\n var url = _ref.url,\n headers = _ref.headers,\n status = _ref.status,\n statusText = _ref.statusText;\n this.url = url;\n this.ok = status >= 200 && status < 300;\n this.status = status || 0;\n this.statusText = statusText || '';\n this.headers = new Headers(headers);\n this.body = body;\n\n if (isString(body)) {\n this.bodyText = body;\n } else if (isBlob(body)) {\n this.bodyBlob = body;\n\n if (isBlobText(body)) {\n this.bodyText = blobText(body);\n }\n }\n }\n\n var _proto = Response.prototype;\n\n _proto.blob = function blob() {\n return when(this.bodyBlob);\n };\n\n _proto.text = function text() {\n return when(this.bodyText);\n };\n\n _proto.json = function json() {\n return when(this.text(), function (text) {\n return JSON.parse(text);\n });\n };\n\n return Response;\n}();\nObject.defineProperty(Response.prototype, 'data', {\n get: function get() {\n return this.body;\n },\n set: function set(body) {\n this.body = body;\n }\n});\n\nfunction blobText(body) {\n return new PromiseObj(function (resolve) {\n var reader = new FileReader();\n reader.readAsText(body);\n\n reader.onload = function () {\n resolve(reader.result);\n };\n });\n}\n\nfunction isBlobText(body) {\n return body.type.indexOf('text') === 0 || body.type.indexOf('json') !== -1;\n}\n\n/**\n * HTTP Request.\n */\n\nvar Request = /*#__PURE__*/function () {\n function Request(options$$1) {\n this.body = null;\n this.params = {};\n assign(this, options$$1, {\n method: toUpper(options$$1.method || 'GET')\n });\n\n if (!(this.headers instanceof Headers)) {\n this.headers = new Headers(this.headers);\n }\n }\n\n var _proto = Request.prototype;\n\n _proto.getUrl = function getUrl() {\n return Url(this);\n };\n\n _proto.getBody = function getBody() {\n return this.body;\n };\n\n _proto.respondWith = function respondWith(body, options$$1) {\n return new Response(body, assign(options$$1 || {}, {\n url: this.getUrl()\n }));\n };\n\n return Request;\n}();\n\n/**\n * Service for sending network requests.\n */\nvar COMMON_HEADERS = {\n 'Accept': 'application/json, text/plain, */*'\n};\nvar JSON_CONTENT_TYPE = {\n 'Content-Type': 'application/json;charset=utf-8'\n};\nfunction Http(options$$1) {\n var self = this || {},\n client = Client(self.$vm);\n defaults(options$$1 || {}, self.$options, Http.options);\n Http.interceptors.forEach(function (handler) {\n if (isString(handler)) {\n handler = Http.interceptor[handler];\n }\n\n if (isFunction(handler)) {\n client.use(handler);\n }\n });\n return client(new Request(options$$1)).then(function (response) {\n return response.ok ? response : PromiseObj.reject(response);\n }, function (response) {\n if (response instanceof Error) {\n error(response);\n }\n\n return PromiseObj.reject(response);\n });\n}\nHttp.options = {};\nHttp.headers = {\n put: JSON_CONTENT_TYPE,\n post: JSON_CONTENT_TYPE,\n patch: JSON_CONTENT_TYPE,\n \"delete\": JSON_CONTENT_TYPE,\n common: COMMON_HEADERS,\n custom: {}\n};\nHttp.interceptor = {\n before: before,\n method: method,\n jsonp: jsonp,\n json: json,\n form: form,\n header: header,\n cors: cors\n};\nHttp.interceptors = ['before', 'method', 'jsonp', 'json', 'form', 'header', 'cors'];\n['get', 'delete', 'head', 'jsonp'].forEach(function (method$$1) {\n Http[method$$1] = function (url, options$$1) {\n return this(assign(options$$1 || {}, {\n url: url,\n method: method$$1\n }));\n };\n});\n['post', 'put', 'patch'].forEach(function (method$$1) {\n Http[method$$1] = function (url, body, options$$1) {\n return this(assign(options$$1 || {}, {\n url: url,\n method: method$$1,\n body: body\n }));\n };\n});\n\n/**\n * Service for interacting with RESTful services.\n */\nfunction Resource(url, params, actions, options$$1) {\n var self = this || {},\n resource = {};\n actions = assign({}, Resource.actions, actions);\n each(actions, function (action, name) {\n action = merge({\n url: url,\n params: assign({}, params)\n }, options$$1, action);\n\n resource[name] = function () {\n return (self.$http || Http)(opts(action, arguments));\n };\n });\n return resource;\n}\n\nfunction opts(action, args) {\n var options$$1 = assign({}, action),\n params = {},\n body;\n\n switch (args.length) {\n case 2:\n params = args[0];\n body = args[1];\n break;\n\n case 1:\n if (/^(POST|PUT|PATCH)$/i.test(options$$1.method)) {\n body = args[0];\n } else {\n params = args[0];\n }\n\n break;\n\n case 0:\n break;\n\n default:\n throw 'Expected up to 2 arguments [params, body], got ' + args.length + ' arguments';\n }\n\n options$$1.body = body;\n options$$1.params = assign({}, options$$1.params, params);\n return options$$1;\n}\n\nResource.actions = {\n get: {\n method: 'GET'\n },\n save: {\n method: 'POST'\n },\n query: {\n method: 'GET'\n },\n update: {\n method: 'PUT'\n },\n remove: {\n method: 'DELETE'\n },\n \"delete\": {\n method: 'DELETE'\n }\n};\n\n/**\n * Install plugin.\n */\n\nfunction plugin(Vue) {\n if (plugin.installed) {\n return;\n }\n\n Util(Vue);\n Vue.url = Url;\n Vue.http = Http;\n Vue.resource = Resource;\n Vue.Promise = PromiseObj;\n Object.defineProperties(Vue.prototype, {\n $url: {\n get: function get() {\n return options(Vue.url, this, this.$options.url);\n }\n },\n $http: {\n get: function get() {\n return options(Vue.http, this, this.$options.http);\n }\n },\n $resource: {\n get: function get() {\n return Vue.resource.bind(this);\n }\n },\n $promise: {\n get: function get() {\n var _this = this;\n\n return function (executor) {\n return new Vue.Promise(executor, _this);\n };\n }\n }\n });\n}\n\nif (typeof window !== 'undefined' && window.Vue && !window.Vue.resource) {\n window.Vue.use(plugin);\n}\n\nexport default plugin;\nexport { Url, Http, Resource };\n","module.exports={_args:[[\"quasar@1.16.0\",\"D:\\\\Projects\\\\techdinamics-auth\\\\src\\\\Techdinamics.Auth.Web\"]],_from:\"quasar@1.16.0\",_id:\"quasar@1.16.0\",_inBundle:!1,_integrity:\"sha512-w+XajlXYi1dRYHHD/oRydTv1G3G2edtZ+tWJjnPk4vYUlllUiVsredqrBwqoOogn8qRhpLVS6Og6pona+zIg5A==\",_location:\"/quasar\",_phantomChildren:{},_requested:{type:\"version\",registry:!0,raw:\"quasar@1.16.0\",name:\"quasar\",escapedName:\"quasar\",rawSpec:\"1.16.0\",saveSpec:null,fetchSpec:\"1.16.0\"},_requiredBy:[\"/\"],_resolved:\"https://registry.npmjs.org/quasar/-/quasar-1.16.0.tgz\",_spec:\"1.16.0\",_where:\"D:\\\\Projects\\\\techdinamics-auth\\\\src\\\\Techdinamics.Auth.Web\",author:{name:\"Razvan Stoenescu\",email:\"razvan.stoenescu@gmail.com\",url:\"https://quasar.dev\"},browserslist:[\"last 1 version, not dead, ie >= 11\"],bugs:{url:\"https://github.com/quasarframework/quasar/issues\"},description:\"Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time\",devDependencies:{\"@quasar/app\":\"^2.0.6\",\"@quasar/extras\":\"^1.11.0\",\"@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\"},engines:{node:\">= 10.0.0\",npm:\">= 5.6.0\",yarn:\">= 1.6.0\"},files:[\"dist\",\"lang\",\"icon-set\",\"src\",\"wrappers\"],funding:{type:\"github\",url:\"https://donate.quasar.dev\"},homepage:\"https://quasar.dev\",keywords:[\"vuejs\",\"vue\",\"quasar\",\"js\",\"phone\",\"tablet\",\"desktop\",\"spa\",\"pwa\",\"website\",\"electron\"],license:\"MIT\",main:\"dist/quasar.common.js\",module:\"src/index.esm.js\",name:\"quasar\",repository:{type:\"git\",url:\"git+https://github.com/quasarframework/quasar.git\"},scripts:{build:\"node build/script.build.js\",clean:\"node build/script.clean.js\",dev:\"cd ./dev && node ./script.dev.js dev && cd ..\",\"dev:capacitor:android\":\"cd ./dev && node ./script.dev.js dev -m capacitor -T android && cd ..\",\"dev:capacitor:ios\":\"cd ./dev && node ./script.dev.js dev -m capacitor -T ios && cd ..\",\"dev:cordova:android\":\"cd ./dev && node ./script.dev.js dev -m cordova -T android && cd ..\",\"dev:cordova:ios\":\"cd ./dev && node ./script.dev.js dev -m cordova -T ios && cd ..\",\"dev:quploader\":\"cd dev/upload-server && yarn && cd ../.. && node dev/upload-server/server.js\",\"dev:ssr\":\"cd ./dev && node ./script.dev.js dev -m ssr && cd ..\",\"dev:umd\":\"node build/script.test-umd.js\",lint:\"eslint --ext .js,.vue src dev\",\"lint-fix\":\"eslint --ext .js,.vue src dev --fix\",test:\"yarn lint && yarn build\"},typings:\"dist/types/index.d.ts\",version:\"1.16.0\",vetur:{tags:\"dist/vetur/quasar-tags.json\",attributes:\"dist/vetur/quasar-attributes.json\"},\"web-types\":\"dist/web-types/web-types.json\"};","/* 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 } 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 classes = cfg.screen !== void 0 && cfg.screen.bodyClasses === true\n\n const update = force => {\n const\n w = window.innerWidth,\n h = window.innerHeight\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\n style = getComputedStyle(document.body),\n target = window.visualViewport !== void 0\n ? window.visualViewport\n : window\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 },\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 langEn 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\nexport default {\n getLocale,\n\n install ($q, queues, lang) {\n const initialLang = lang || langEn\n\n this.set = (langObject = langEn, 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","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/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 !== undefined && 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/cache.js'\n\nexport const ariaHidden = { 'aria-hidden': 'true' }\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 send = isSSR ? null : xhr.prototype.send,\n stackStart = [],\n stackStop = []\n\nlet highjackCount = 0\n\nfunction translate ({ p, pos, active, horiz, reverse, dir }) {\n let x = 1, y = 1\n\n if (horiz) {\n if (reverse) { 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) { 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 (start, stop) {\n stackStart.push(start)\n stackStop.push(stop)\n\n highjackCount++\n\n if (highjackCount > 1) { return }\n\n function endHandler () {\n stackStop.forEach(fn => { fn() })\n }\n\n xhr.prototype.send = function (/* ...args */) {\n stackStart.forEach(fn => { fn() })\n this.addEventListener('loadend', endHandler, false)\n send.apply(this, arguments)\n }\n}\n\nfunction restoreAjax (start, stop) {\n stackStart.splice(stackStart.indexOf(start), 1)\n stackStop.splice(stackStop.indexOf(stop), 1)\n\n highjackCount = Math.max(0, highjackCount - 1)\n if (!highjackCount) {\n xhr.prototype.send = send\n }\n}\n\nexport default Vue.extend({\n name: 'QAjaxBar',\n\n props: {\n position: {\n type: String,\n default: 'top',\n validator: val => ['top', 'right', 'bottom', 'left'].includes(val)\n },\n size: {\n type: String,\n default: '2px'\n },\n color: String,\n skipHijack: Boolean,\n reverse: Boolean\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\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 this.speed = Math.max(0, speed) || 0\n\n this.calls++\n\n if (this.calls > 1) {\n if (oldSpeed === 0 && speed > 0) {\n this.__work()\n }\n else if (oldSpeed > 0 && speed <= 0) {\n clearTimeout(this.timer)\n }\n return\n }\n\n clearTimeout(this.timer)\n this.$emit('start')\n\n this.progress = 0\n\n if (this.onScreen === true) { return }\n\n this.onScreen = true\n this.animate = false\n this.timer = setTimeout(() => {\n this.animate = true\n speed > 0 && this.__work()\n }, 100)\n },\n\n increment (amount) {\n if (this.calls > 0) {\n this.progress = inc(this.progress, amount)\n }\n },\n\n stop () {\n this.calls = Math.max(0, this.calls - 1)\n if (this.calls > 0) { return }\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\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(this.start, this.stop)\n }\n },\n\n beforeDestroy () {\n clearTimeout(this.timer)\n this.hijacked === true && restoreAjax(this.start, this.stop)\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/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/slot.js'\n\nexport default Vue.extend({\n name: 'QIcon',\n\n mixins: [ ListenersMixin, SizeMixin, TagMixin ],\n\n props: {\n tag: {\n default: 'i'\n },\n\n name: String,\n color: String,\n left: Boolean,\n right: Boolean\n },\n\n computed: {\n classes () {\n // \"notranslate\" class is for Google Translate\n // to avoid tampering with Material Icons ligature font\n return 'q-icon notranslate' +\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) {\n return {\n none: true,\n cls: this.classes\n }\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 }\n else {\n return {\n cls: res.cls + ' ' + this.classes,\n content: res.content !== void 0\n ? res.content\n : ' '\n }\n }\n }\n }\n\n if (icon.startsWith('M') === true) {\n const [ def, viewBox ] = icon.split('|')\n\n return {\n svg: true,\n cls: this.classes,\n nodes: def.split('&&').map(path => {\n const [ d, style, transform ] = path.split('@@')\n return this.$createElement('path', {\n attrs: {\n d,\n transform\n },\n style\n })\n }),\n viewBox: viewBox !== void 0 ? viewBox : '0 0 24 24'\n }\n }\n\n if (icon.startsWith('img:') === true) {\n return {\n img: true,\n cls: this.classes,\n src: icon.substring(4)\n }\n }\n\n if (icon.startsWith('svguse:') === true) {\n const [ def, viewBox ] = icon.split('|')\n\n return {\n svguse: true,\n cls: this.classes,\n src: def.substring(7),\n viewBox: viewBox !== void 0 ? viewBox : '0 0 24 24'\n }\n }\n\n let content = ' '\n\n if (/^[l|f]a[s|r|l|b|d]{0,1} /.test(icon) || icon.startsWith('icon-') === true) {\n cls = icon\n }\n else if (icon.startsWith('bt-') === true) {\n cls = `bt ${icon}`\n }\n else if (icon.startsWith('eva-') === true) {\n cls = `eva ${icon}`\n }\n else if (/^ion-(md|ios|logo)/.test(icon) === true) {\n cls = `ionicons ${icon}`\n }\n else if (icon.startsWith('ion-') === true) {\n cls = `ionicons ion-${this.$q.platform.is.ios === true ? 'ios' : 'md'}${icon.substr(3)}`\n }\n else if (icon.startsWith('mdi-') === true) {\n cls = `mdi ${icon}`\n }\n else if (icon.startsWith('iconfont ') === true) {\n cls = `${icon}`\n }\n else if (icon.startsWith('ti-') === true) {\n cls = `themify-icon ${icon}`\n }\n else if (icon.startsWith('bi-') === true) {\n cls = `bootstrap-icons ${icon}`\n }\n else {\n cls = 'material-icons'\n\n if (icon.startsWith('o_') === true) {\n icon = icon.substring(2)\n cls += '-outlined'\n }\n else if (icon.startsWith('r_') === true) {\n icon = icon.substring(2)\n cls += '-round'\n }\n else if (icon.startsWith('s_') === true) {\n icon = icon.substring(2)\n cls += '-sharp'\n }\n\n content = icon\n }\n\n return {\n cls: cls + ' ' + this.classes,\n content\n }\n }\n },\n\n render (h) {\n const data = {\n class: this.type.cls,\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 data.attrs.src = this.type.src\n return h('img', data)\n }\n\n if (this.type.svg === true) {\n data.attrs.focusable = 'false' /* needed for IE11 */\n data.attrs.viewBox = this.type.viewBox\n\n return h('svg', data, mergeSlot(this.type.nodes, this, 'default'))\n }\n if (this.type.svguse === true) {\n data.attrs.focusable = 'false' /* needed for IE11 */\n data.attrs.viewBox = this.type.viewBox\n\n return h('svg', data, [\n h('use', {\n attrs: {\n 'xlink:href': this.type.src\n }\n }),\n mergeSlot(this.type.nodes, this, 'default')\n ])\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/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/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: 'alert',\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/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/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/slot.js'\nimport ListenersMixin from '../../mixins/listeners.js'\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 if (this.separatorColor) {\n return `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 els++\n\n child.push(h('div', {\n staticClass: 'flex items-center',\n class: middle ? this.activeClass : 'q-breadcrumbs--last'\n }, [ comp ]))\n\n if (middle) {\n child.push(h('div', {\n staticClass: 'q-breadcrumbs__separator', class: this.sepClass\n }, separator()))\n }\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","export const routerLinkProps = {\n to: [String, Object],\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n disable: Boolean\n}\n\nexport const RouterLinkMixin = {\n props: routerLinkProps,\n\n computed: {\n hasRouterLink () {\n return this.disable !== true && this.to !== void 0 && this.to !== null && this.to !== ''\n },\n\n routerLinkProps () {\n return {\n to: this.to,\n exact: this.exact,\n append: this.append,\n replace: this.replace,\n activeClass: this.activeClass || 'q-router-link--active',\n exactActiveClass: this.exactActiveClass || 'q-router-link--exact-active',\n event: this.disable === true ? [] : void 0\n }\n }\n }\n}\n","import Vue from 'vue'\n\nimport { mergeSlot } from '../../utils/slot.js'\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport QIcon from '../icon/QIcon.js'\nimport { RouterLinkMixin } from '../../mixins/router-link.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 render (h) {\n const child = []\n\n this.icon !== void 0 && child.push(\n h(QIcon, {\n staticClass: 'q-breadcrumbs__el-icon',\n class: this.label !== void 0 ? 'q-breadcrumbs__el-icon--with-label' : null,\n props: { name: this.icon }\n })\n )\n\n this.label && child.push(this.label)\n\n return h(this.hasRouterLink === true ? 'router-link' : 'span', {\n staticClass: 'q-breadcrumbs__el q-link flex inline items-center relative-position',\n props: this.hasRouterLink === true ? this.routerLinkProps : null,\n [this.hasRouterLink === true ? 'nativeOn' : 'on']: { ...this.qListeners }\n }, 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 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 (isFullscreen, activeEl) {\n return isFullscreen === true\n ? (\n // when a video tag enters fullscreen activeEl is null\n activeEl === document.documentElement || activeEl === null\n ? document.body\n : activeEl\n )\n : document.body\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/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 (\n ctx.modifiers.early === true\n ? ['mousedown', 'touchstart'].includes(evt.type) === true\n : evt.type === 'click'\n )\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, 'mousedown', 'start', 'passive' ],\n [ el, 'touchstart', '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 { getSizeMixin } from './size.js'\n\nconst padding = {\n none: 0,\n xs: 4,\n sm: 8,\n md: 16,\n lg: 24,\n xl: 32\n}\n\nexport default {\n mixins: [\n ListenersMixin,\n RippleMixin,\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: String,\n\n to: [ Object, String ],\n replace: Boolean,\n append: Boolean,\n\n label: [ Number, String ],\n icon: String,\n iconRight: String,\n\n round: Boolean,\n outline: Boolean,\n flat: Boolean,\n unelevated: Boolean,\n rounded: Boolean,\n push: 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 hasRouterLink () {\n return this.disable !== true && this.to !== void 0 && this.to !== null && this.to !== ''\n },\n\n isLink () {\n return this.type === 'a' || this.hasRouterLink === true\n },\n\n design () {\n if (this.flat === true) return 'flat'\n if (this.outline === true) return 'outline'\n if (this.push === true) return 'push'\n if (this.unelevated === true) return 'unelevated'\n return 'standard'\n },\n\n currentLocation () {\n if (this.hasRouterLink === true) {\n // we protect from accessing this.$route without\n // actually needing it so that we won't trigger\n // unnecessary updates\n return this.append === true\n ? this.$router.resolve(this.to, this.$route, true)\n : this.$router.resolve(this.to)\n }\n },\n\n attrs () {\n const attrs = { tabindex: this.computedTabIndex }\n\n if (this.type !== 'a') {\n attrs.type = this.type || 'button'\n }\n\n if (this.hasRouterLink === true) {\n attrs.href = this.currentLocation.href\n attrs.role = 'link'\n }\n else {\n attrs.role = this.type === 'a' ? 'link' : 'button'\n }\n\n if (this.loading === true && this.percentage !== void 0) {\n attrs.role = 'progressbar'\n attrs['aria-valuemin'] = 0\n attrs['aria-valuemax'] = 100\n attrs['aria-valuenow'] = this.percentage\n }\n\n if (this.disable === true) {\n attrs.disabled = ''\n attrs['aria-disabled'] = 'true'\n }\n\n return attrs\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 return `q-btn--${this.design} ` +\n `q-btn--${this.round === true ? 'round' : `rectangle${this.isRounded === true ? ' q-btn--rounded' : ''}`}` +\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 padding ? padding[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/slot.js'\nimport { stop, prevent, stopAndPrevent, listenOpts, noop } from '../../utils/event.js'\nimport { isKeyCode } from '../../utils/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.isLink === 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.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 if (this.hasRouterLink === true) {\n if (\n e.ctrlKey === true ||\n e.shiftKey === true ||\n e.altKey === true ||\n e.metaKey === true\n ) {\n // if it has meta keys, let vue-router link\n // handle this by its own\n return\n }\n\n stopAndPrevent(e)\n }\n }\n\n const go = () => {\n // vue-router now throwing error if navigating\n // to the same route that the user is currently at\n // https://github.com/vuejs/vue-router/issues/2872\n this.$router[this.replace === true ? 'replace' : 'push'](this.currentLocation.route, void 0, noop)\n }\n\n this.$emit('click', e, go)\n this.hasRouterLink === true && e.navigate !== false && go()\n },\n\n __onKeydown (e) {\n if (isKeyCode(e, [ 13, 32 ]) === true) {\n stopAndPrevent(e)\n\n if (keyboardTarget !== this.$el) {\n keyboardTarget !== void 0 && this.__cleanup()\n\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 this.$emit('keydown', e)\n },\n\n __onTouchstart (e) {\n if (touchTarget !== this.$el) {\n touchTarget !== void 0 && this.__cleanup()\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 // 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 this.$emit('touchstart', e)\n },\n\n __onMousedown (e) {\n if (mouseTarget !== this.$el) {\n mouseTarget !== void 0 && this.__cleanup()\n mouseTarget = this.$el\n this.$el.classList.add('q-btn--active')\n document.addEventListener('mouseup', this.__onPressEnd, passiveCapture)\n }\n\n e.qSkipRipple = this.avoidMouseRipple === true\n this.$emit('mousedown', e)\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 ) {\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 }, [\n h('span', {\n staticClass: 'q-btn__progress-indicator fit block',\n class: this.darkPercentage === true ? 'q-btn__progress--dark' : '',\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.isLink === true ? '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","import Vue from 'vue'\n\nimport ListenersMixin from '../../mixins/listeners.js'\n\nimport { slot } from '../../utils/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 push: Boolean,\n stretch: Boolean,\n glossy: Boolean,\n spread: Boolean\n },\n\n computed: {\n classes () {\n return ['unelevated', 'outline', 'flat', 'rounded', '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/selection.js'\nimport { addEvt, cleanEvt, prevent, listenOpts } from '../utils/event.js'\nimport { isKeyCode } from '../utils/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 === '') {\n this.anchorEl = void 0\n }\n else if (this.target === true) {\n this.__setAnchorEl(this.parentEl)\n }\n else {\n let el = this.target\n\n if (typeof this.target === 'string') {\n try {\n el = document.querySelector(this.target)\n }\n catch (err) {\n el = void 0\n }\n }\n\n if (el !== void 0 && el !== null) {\n this.anchorEl = el._isVue === true && el.$el !== void 0 ? el.$el : el\n this.__configureAnchorEl()\n }\n else {\n this.anchorEl = void 0\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 methods: {\n __nextTick (fn) {\n this.__tickFn = fn\n },\n\n __prepareTick () {\n if (this.__tickFn !== void 0) {\n const fn = this.__tickFn\n this.$nextTick(() => {\n if (this.__tickFn === fn) {\n this.__tickFn()\n this.__tickFn = void 0\n }\n })\n }\n },\n\n __clearTick () {\n this.__tickFn = void 0\n },\n\n __setTimeout (fn, delay) {\n clearTimeout(this.__timer)\n this.__timer = setTimeout(fn, delay)\n },\n\n __clearTimeout () {\n clearTimeout(this.__timer)\n }\n },\n\n beforeDestroy () {\n this.__tickFn = void 0\n clearTimeout(this.__timer)\n }\n}\n","import { isSSR } from '../plugins/Platform.js'\n\nimport TimeoutMixin from './timeout.js'\nimport ListenersMixin from './listeners.js'\n\nexport default {\n mixins: [ TimeoutMixin, 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 (this.disable === true || (this.__showCondition !== void 0 && this.__showCondition(evt) !== true)) {\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.__clearTick()\n this.__show(evt)\n this.__prepareTick()\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.__clearTick()\n this.__hide(evt)\n this.__prepareTick()\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 = []\nconst waitFlags = []\n\nexport function addFocusWaitFlag (flag) {\n waitFlags.push(flag)\n}\n\nexport function removeFocusWaitFlag (flag) {\n const index = waitFlags.indexOf(flag)\n if (index !== -1) {\n waitFlags.splice(index, 1)\n }\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 return fn\n }\n}\n\nexport function removeFocusFn (fn) {\n const index = queue.indexOf(fn)\n if (index !== -1) {\n queue.splice(index, 1)\n }\n}\n","import Vue from 'vue'\n\nimport { isSSR } from '../plugins/Platform.js'\nimport { getBodyFullscreenElement } from '../utils/dom.js'\nimport { addFocusWaitFlag, removeFocusWaitFlag } from '../utils/focus-manager.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 return\n }\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 = isFullscreen => {\n if (this.__portal === void 0) {\n return\n }\n\n const newParent = getBodyFullscreenElement(\n isFullscreen,\n this.$q.fullscreen.activeEl\n )\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.isActive', append)\n\n const isActive = this.$q.fullscreen.isActive\n\n if (this.__onGlobalDialog === false || isActive === true) {\n append(isActive)\n }\n }\n else if (this.__portal !== void 0 && this.__onGlobalDialog === false) {\n document.body.appendChild(this.__portal.$el)\n }\n },\n\n __hidePortal () {\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()\n }\n}\n\nif (isSSR === false) {\n Portal.created = function () {\n this.__onGlobalDialog = isOnGlobalDialog(this.$parent)\n }\n}\n\nexport default Portal\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 data () {\n return {\n transitionState: this.showing\n }\n },\n\n watch: {\n showing (val) {\n this.transitionShow !== this.transitionHide && this.$nextTick(() => {\n this.transitionState = val\n })\n }\n },\n\n computed: {\n transition () {\n return 'q-transition--' + (this.transitionState === true ? this.transitionHide : this.transitionShow)\n }\n }\n}\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/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 } from './dom.js'\n\nconst scrollTargets = isSSR === false\n ? [ null, document, document.body, document.scrollingElement, document.documentElement ]\n : []\n\nexport function getScrollTarget (el, target) {\n if (typeof target === 'string') {\n try {\n target = document.querySelector(target)\n }\n catch (err) {\n target = void 0\n }\n }\n\n if (target === void 0 || target === null) {\n target = el.closest('.scroll,.scroll-y,.overflow-auto')\n }\n else if (target._isVue === true && target.$el !== void 0) {\n target = target.$el\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 getScrollPosition (scrollTarget) {\n if (scrollTarget === window) {\n return window.pageYOffset || window.scrollY || document.body.scrollTop || 0\n }\n return scrollTarget.scrollTop\n}\n\nexport function getHorizontalScrollPosition (scrollTarget) {\n if (scrollTarget === window) {\n return window.pageXOffset || window.scrollX || document.body.scrollLeft || 0\n }\n return scrollTarget.scrollLeft\n}\n\nexport function animScrollTo (el, to, duration = 0 /* , prevTime */) {\n const prevTime = arguments[3] === void 0 ? performance.now() : arguments[3]\n const pos = getScrollPosition(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 animScrollTo(el, to, duration - frameTime, nowTime)\n }\n })\n}\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 setScrollPosition (scrollTarget, offset, duration) {\n if (duration) {\n animScrollTo(scrollTarget, offset, duration)\n return\n }\n setScroll(scrollTarget, offset)\n}\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 !== undefined) {\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 getHorizontalScrollPosition,\n\n animScrollTo,\n animHorizontalScrollTo,\n\n setScrollPosition,\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 validateCover (val) {\n if (val === true || val === false) { return true }\n return validatePosition(val)\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,\n left,\n right,\n bottom,\n width,\n height,\n middle: left + (right - left) / 2,\n center: top + (bottom - top) / 2\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\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 let anchorProps\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 if (cfg.absoluteOffset === void 0) {\n anchorProps = getAnchorProps(cfg.anchorEl, cfg.cover === true ? [0, 0] : cfg.offset)\n }\n else {\n const\n { top: anchorTop, left: anchorLeft } = cfg.anchorEl.getBoundingClientRect(),\n top = anchorTop + cfg.absoluteOffset.top,\n left = anchorLeft + cfg.absoluteOffset.left\n\n anchorProps = { top, left, width: 1, height: 1, right: left + 1, center: top, middle: left, bottom: top + 1 }\n }\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\n targetProps = getTargetProps(cfg.el),\n props = {\n top: anchorProps[cfg.anchorOrigin.vertical] - targetProps[cfg.selfOrigin.vertical],\n left: anchorProps[cfg.anchorOrigin.horizontal] - targetProps[cfg.selfOrigin.horizontal]\n }\n\n applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin)\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 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'\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/escape-key.js'\n\nimport { slot } from '../../utils/slot.js'\nimport { addFocusFn } from '../../utils/focus-manager.js'\n\nimport {\n validatePosition, validateOffset, setPosition, parsePosition\n} from '../../utils/position-engine.js'\n\nexport default Vue.extend({\n name: 'QMenu',\n\n mixins: [\n AttrsMixin,\n DarkMixin,\n AnchorMixin,\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 ...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], [data-autofocus]') || node\n node.focus()\n }\n })\n },\n\n __show (evt) {\n // IE can have null document.activeElement\n this.__refocusTarget = this.noRefocus === false && document.activeElement !== null\n ? document.activeElement\n : void 0\n\n EscapeKey.register(this, () => {\n if (this.persistent !== true) {\n this.$emit('escape-key')\n this.hide()\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.__nextTick(() => {\n this.updatePosition()\n this.noFocus !== true && this.focus()\n })\n\n this.__setTimeout(() => {\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)\n this.$emit('show', evt)\n }, 300)\n },\n\n __hide (evt) {\n this.__anchorCleanup(true)\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 this.__refocusTarget.focus()\n }\n\n this.$el.dispatchEvent(create('popup-hide', { bubbles: true }))\n\n this.__setTimeout(() => {\n this.__hidePortal()\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: { name: this.transition }\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 mounted () {\n this.__processModelChange(this.value)\n },\n\n beforeDestroy () {\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","import Vue from 'vue'\n\nimport BtnMixin from '../../mixins/btn.js'\nimport AttrsMixin from '../../mixins/attrs.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/slot.js'\nimport { stop } from '../../utils/event.js'\nimport cache from '../../utils/cache.js'\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\n disableMainBtn: Boolean,\n disableDropdown: Boolean,\n\n noIconAnimation: Boolean\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 }\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 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 },\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 ...this.qAttrs,\n ...attrs\n },\n on: cache(this, 'nonSpl', {\n click: e => {\n this.$emit('click', e)\n }\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 }, label)\n\n return h(QBtnGroup, {\n props: {\n outline: this.outline,\n flat: this.flat,\n rounded: this.rounded,\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 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/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: opt.attrs,\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/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/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/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/touch.js'\nimport { addEvt, cleanEvt, position, leftClick, stopAndPrevent, preventDraggable, noop } from '../utils/event.js'\nimport { clearSelection } from '../utils/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 ? '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` ]\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/slot.js'\nimport cache, { cacheWithFn } from '../utils/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\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 document.body.classList.add('q-body--fullscreen-mixin')\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 document.body.classList.remove('q-body--fullscreen-mixin')\n this.inFullscreen = false\n\n if (this.$el.scrollIntoView !== void 0) {\n setTimeout(() => { this.$el.scrollIntoView() })\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 i = a.entries().next()\n while (i.done !== true) {\n if (b.has(i.value[0]) !== true) {\n return false\n }\n i = i.next()\n }\n\n i = a.entries().next()\n while (i.done !== true) {\n if (isDeepEqual(i.value[1], b.get(i.value[0])) !== true) {\n return false\n }\n i = i.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 i = a.entries().next()\n while (i.done !== true) {\n if (b.has(i.value[0]) !== true) {\n return false\n }\n i = i.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)\n length = keys.length\n\n if (length !== Object.keys(b).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\nexport function isPrintableChar (v) {\n return (v > 47 && v < 58) || // number keys\n v === 32 || v === 13 || // spacebar & return key(s) (if you want to allow carriage returns)\n (v > 64 && v < 91) || // letter keys\n (v > 95 && v < 112) || // numpad keys\n (v > 185 && v < 193) || // ;=,-./` (in order)\n (v > 218 && v < 223)\n}\n\nexport function isObject (v) {\n return Object(v) === v\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 function isString (v) {\n return typeof v === 'string'\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/slot.js'\nimport cache from '../../utils/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 this.timer = setTimeout(\n this.next,\n isNumber(this.autoplay) ? this.autoplay : 5000\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/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/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 ? (contentList.length > 1 ? (text => text) : (text => h('div', [ text ])))\n : (text => h('div', { domProps: { [domPropText]: 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/slot.js'\nimport cache from '../utils/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 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: '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 }, 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 CheckboxMixin from '../../mixins/checkbox.js'\n\nexport default Vue.extend({\n name: 'QCheckbox',\n\n mixins: [ CheckboxMixin ],\n\n methods: {\n __getInner (h) {\n return [\n h('div', {\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', 'aria-hidden': 'true' }\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/slot.js'\nimport cache from '../../utils/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 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 return this.disable === true\n ? { tabindex: -1, 'aria-disabled': 'true' }\n : { tabindex: this.tabindex || 0 }\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,\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,\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/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\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 }) {\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 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 })\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 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/touch.js'\nimport { addEvt, cleanEvt, position, leftClick, prevent, stop, stopAndPrevent, preventDraggable, noop } from '../utils/event.js'\nimport { clearSelection } from '../utils/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.direction.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 if (modifiers.preserveCursor !== true) {\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 (modifiers.preserveCursor !== true) {\n document.documentElement.style.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)\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 ? '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' ]\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 { between } from '../../utils/format.js'\nimport { position } from '../../utils/event.js'\n\nimport FormMixin from '../../mixins/form.js'\nimport DarkMixin from '../../mixins/dark.js'\nimport TouchPan from '../../directives/TouchPan.js'\n\n// PGDOWN, LEFT, DOWN, PGUP, RIGHT, UP\nexport const keyCodes = [ 34, 37, 40, 33, 39, 38 ]\n\nexport function getRatio (evt, dragging, reverse, vertical) {\n const\n pos = position(evt),\n val = 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 reverse === true ? 1.0 - val : val\n}\n\nexport function getModel (ratio, min, max, step, decimals) {\n let model = min + ratio * (max - min)\n\n if (step > 0) {\n const modulo = (model - min) % step\n model += (Math.abs(modulo) >= step / 2 ? (modulo < 0 ? -1 : 1) * step : 0) - modulo\n }\n\n if (decimals > 0) {\n model = parseFloat(model.toFixed(decimals))\n }\n\n return between(model, min, max)\n}\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 step: {\n type: Number,\n default: 1,\n validator: v => v >= 0\n },\n\n color: String,\n\n labelColor: String,\n labelTextColor: String,\n dense: Boolean,\n\n label: Boolean,\n labelAlways: Boolean,\n markers: Boolean,\n snap: Boolean,\n\n vertical: Boolean,\n reverse: Boolean,\n\n disable: Boolean,\n readonly: Boolean,\n tabindex: [ String, Number ],\n\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 }\n },\n\n computed: {\n axis () {\n return this.vertical === true ? '--v' : '--h'\n },\n\n classes () {\n return `q-slider q-slider${this.axis} q-slider--${this.active === true ? '' : 'in'}active` +\n (this.isReversed === true ? ' q-slider--reversed' : '') +\n (this.color !== void 0 ? ` text-${this.color}` : '') +\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 editable () {\n return this.disable !== true && this.readonly !== true && this.min < this.max\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 minMaxDiff () {\n return this.max - this.min\n },\n\n markerStyle () {\n if (this.minMaxDiff !== 0) {\n const size = 100 * this.computedStep / this.minMaxDiff\n\n return {\n backgroundSize: this.vertical === true\n ? '2px ' + size + '%'\n : size + '% 2px'\n }\n }\n },\n\n computedTabindex () {\n return this.editable === true ? this.tabindex || 0 : -1\n },\n\n isReversed () {\n return this.vertical === true\n ? this.reverse === true\n : this.reverse !== (this.$q.lang.rtl === true)\n },\n\n positionProp () {\n if (this.vertical === true) {\n return this.isReversed === true ? 'bottom' : 'top'\n }\n return this.isReversed === true ? 'right' : 'left'\n },\n\n sizeProp () {\n return this.vertical === true ? 'height' : 'width'\n },\n\n orientation () {\n return this.vertical === true ? 'vertical' : 'horizontal'\n },\n\n attrs () {\n const attrs = {\n role: 'slider',\n 'aria-valuemin': this.min,\n 'aria-valuemax': this.max,\n 'aria-orientation': this.orientation,\n 'data-step': this.step\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 panDirectives () {\n return this.editable === true\n ? [{\n name: 'touch-pan',\n value: this.__pan,\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 __getThumbSvg (h) {\n return h('svg', {\n staticClass: 'q-slider__thumb absolute',\n attrs: {\n focusable: 'false', /* needed for IE11 */\n viewBox: '0 0 20 20',\n width: '20',\n height: '20',\n 'aria-hidden': 'true'\n }\n }, [\n h('path', {\n attrs: {\n d: this.thumbPath\n }\n })\n ])\n },\n\n __getPinStyle (percent, ratio) {\n if (this.vertical === true) {\n return {}\n }\n\n const offset = `${Math.ceil(20 * Math.abs(0.5 - ratio))}px`\n return {\n pin: {\n transformOrigin: `${this.$q.lang.rtl === true ? offset : (this.$q.platform.is.ie === true ? '100%' : `calc(100% - ${offset})`)} 50%`\n },\n\n pinTextContainer: {\n [this.$q.lang.rtl === true ? 'left' : 'right']: `${percent * 100}%`,\n transform: `translateX(${Math.ceil((this.$q.lang.rtl === true ? -1 : 1) * 20 * percent)}px)`\n }\n }\n },\n\n __pan (event) {\n if (event.isFinal) {\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 }\n else if (event.isFirst) {\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 __blur () {\n this.focus = false\n },\n\n __activate (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.__deactivate, true)\n },\n\n __deactivate () {\n this.preventFocus = false\n\n if (this.dragging === void 0) {\n this.active = false\n }\n\n this.__updateValue(true)\n this.__blur()\n\n document.removeEventListener('mouseup', this.__deactivate, true)\n },\n\n __mobileClick (evt) {\n this.__updatePosition(evt, this.__getDragging(evt))\n this.__updateValue(true)\n },\n\n __keyup (evt) {\n if (keyCodes.includes(evt.keyCode)) {\n this.__updateValue(true)\n }\n }\n },\n\n beforeDestroy () {\n document.removeEventListener('mouseup', this.__deactivate, true)\n }\n}\n","import Vue from 'vue'\n\nimport {\n getRatio,\n getModel,\n SliderMixin,\n keyCodes\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 return {\n model: this.value === null ? this.min : this.value,\n curRatio: 0\n }\n },\n\n watch: {\n value (v) {\n this.model = v === null\n ? 0\n : between(v, this.min, this.max)\n },\n\n min (v) {\n this.model = between(this.model, v, this.max)\n },\n\n max (v) {\n this.model = between(this.model, this.min, v)\n }\n },\n\n computed: {\n ratio () {\n return this.active === true ? this.curRatio : this.modelRatio\n },\n\n modelRatio () {\n return this.minMaxDiff === 0 ? 0 : (this.model - this.min) / this.minMaxDiff\n },\n\n trackStyle () {\n return {\n [ this.positionProp ]: 0,\n [ this.sizeProp ]: `${100 * this.ratio}%`\n }\n },\n\n thumbStyle () {\n return {\n [ this.positionProp ]: `${100 * this.ratio}%`\n }\n },\n\n thumbClass () {\n if (this.preventFocus === false && this.focus === true) {\n return 'q-slider--focus'\n }\n },\n\n pinClass () {\n if (this.labelColor !== void 0) {\n return `text-${this.labelColor}`\n }\n },\n\n pinTextClass () {\n return 'q-slider__pin-value-marker-text' +\n (this.labelTextColor !== void 0 ? ` text-${this.labelTextColor}` : '')\n },\n\n events () {\n if (this.editable === true) {\n return this.$q.platform.is.mobile === true\n ? { click: this.__mobileClick }\n : {\n mousedown: this.__activate,\n focus: this.__focus,\n blur: this.__blur,\n keydown: this.__keydown,\n keyup: this.__keyup\n }\n }\n },\n\n computedLabel () {\n return this.labelValue !== void 0\n ? this.labelValue\n : this.model\n },\n\n pinStyle () {\n const percent = (this.reverse === true ? -this.ratio : this.ratio - 1)\n return this.__getPinStyle(percent, this.ratio)\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 = getRatio(\n event,\n dragging,\n this.isReversed,\n this.vertical\n )\n\n this.model = getModel(ratio, this.min, this.max, this.step, this.decimals)\n this.curRatio = this.snap !== true || this.step === 0\n ? ratio\n : (\n this.minMaxDiff === 0\n ? 0\n : (this.model - this.min) / this.minMaxDiff\n )\n },\n\n __focus () {\n this.focus = 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.min,\n this.max\n )\n\n this.__updateValue()\n }\n },\n\n render (h) {\n const child = [\n this.__getThumbSvg(h),\n h('div', { staticClass: 'q-slider__focus-ring' })\n ]\n\n if (this.label === true || this.labelAlways === true) {\n child.push(\n h('div', {\n staticClass: `q-slider__pin q-slider__pin${this.axis} absolute`,\n style: this.pinStyle.pin,\n class: this.pinClass\n }, [\n h('div', {\n staticClass: `q-slider__pin-text-container q-slider__pin-text-container${this.axis}`,\n style: this.pinStyle.pinTextContainer\n }, [\n h('span', {\n staticClass: 'q-slider__pin-text',\n class: this.pinTextClass\n }, [\n this.computedLabel\n ])\n ])\n ]),\n\n h('div', {\n staticClass: `q-slider__arrow q-slider__arrow${this.axis}`,\n class: this.pinClass\n })\n )\n }\n\n if (this.name !== void 0 && this.disable !== true) {\n this.__injectFormInput(child, 'push')\n }\n\n const track = [\n h('div', {\n staticClass: `q-slider__track q-slider__track${this.axis} absolute`,\n style: this.trackStyle\n })\n ]\n\n this.markers === true && track.push(\n h('div', {\n staticClass: `q-slider__track-markers q-slider__track-markers${this.axis} absolute-full fit`,\n style: this.markerStyle\n })\n )\n\n return h('div', {\n staticClass: this.value === null ? ' q-slider--no-value' : '',\n attrs: {\n ...this.attrs,\n 'aria-valuenow': this.value,\n tabindex: this.computedTabindex\n },\n class: this.classes,\n on: this.events,\n directives: this.panDirectives\n }, [\n h('div', {\n staticClass: `q-slider__track-container q-slider__track-container${this.axis} absolute`\n }, track),\n\n h('div', {\n staticClass: `q-slider__thumb-container q-slider__thumb-container${this.axis} absolute non-selectable`,\n class: this.thumbClass,\n style: this.thumbStyle\n }, child)\n ])\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/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 (now) {\n if (now === true || this.debounce === 0 || this.debounce === '0') {\n this.__onResize()\n }\n else if (!this.timer) {\n this.timer = setTimeout(this.__onResize, this.debounce)\n }\n },\n\n __onResize () {\n this.timer = null\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.__onResize()\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 if (this.hasObserver === true) {\n this.observer = new ResizeObserver(this.trigger)\n this.observer.observe(this.$el.parentNode)\n this.__onResize()\n return\n }\n\n if (this.$q.platform.is.ie === true) {\n this.url = 'about:blank'\n this.__onResize()\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","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/slot.js'\nimport cache from '../../utils/cache.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\nfunction bufferPrioritySort (t1, t2) {\n if (t1.priorityMatched === t2.priorityMatched) {\n return t2.priorityHref - t1.priorityHref\n }\n return t2.priorityMatched - t1.priorityMatched\n}\n\nfunction bufferCleanSelected (t) {\n t.selected = false\n return t\n}\n\nconst\n bufferFilters = [\n t => t.selected === true && t.exact === true && t.redirected !== true,\n t => t.selected === true && t.exact === true,\n t => t.selected === true && t.redirected !== true,\n t => t.selected === true,\n t => t.exact === true && t.redirected !== true,\n t => t.redirected !== true,\n t => t.exact === true,\n t => true\n ],\n bufferFiltersLen = bufferFilters.length\n\nexport default Vue.extend({\n name: 'QTabs',\n\n mixins: [ TimeoutMixin, ListenersMixin ],\n\n provide () {\n return {\n tabs: this.tabs,\n __recalculateScroll: this.__recalculateScroll,\n __activateTab: this.__activateTab,\n __activateRoute: this.__activateRoute\n }\n },\n\n props: {\n value: [Number, String],\n\n align: {\n type: String,\n default: 'center',\n validator: v => ['left', 'center', 'right', 'justify'].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 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 tabs: {\n current: this.value,\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 scrollable: false,\n leftArrow: true,\n rightArrow: false,\n justify: false\n }\n },\n\n watch: {\n value (name) {\n this.__activateTab(name, true, true)\n },\n\n activeColor (v) {\n this.tabs.activeColor = v\n },\n\n activeBgColor (v) {\n this.tabs.activeBgColor = v\n },\n\n vertical (v) {\n this.tabs.indicatorClass = getIndicatorClass(this.indicatorColor, this.switchIndicator, v)\n },\n\n indicatorColor (v) {\n this.tabs.indicatorClass = getIndicatorClass(v, this.switchIndicator, this.vertical)\n },\n\n switchIndicator (v) {\n this.tabs.indicatorClass = getIndicatorClass(this.indicatorColor, v, this.vertical)\n },\n\n narrowIndicator (v) {\n this.tabs.narrowIndicator = v\n },\n\n inlineLabel (v) {\n this.tabs.inlineLabel = v\n },\n\n noCaps (v) {\n this.tabs.noCaps = v\n },\n\n outsideArrows () {\n this.$nextTick(this.__recalculateScroll())\n },\n\n arrowsEnabled (v) {\n this.__updateArrows = v === true\n ? this.__updateArrowsFn\n : noop\n\n this.$nextTick(this.__recalculateScroll())\n }\n },\n\n computed: {\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--${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 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 onEvents () {\n return {\n input: stop,\n ...this.qListeners\n }\n }\n },\n\n methods: {\n __activateTab (name, setCurrent, skipEmit) {\n if (this.tabs.current !== name) {\n skipEmit !== true && this.$emit('input', name)\n if (setCurrent === true || this.qListeners.input === void 0) {\n this.__animate(this.tabs.current, name)\n this.tabs.current = name\n }\n }\n },\n\n __activateRoute (params) {\n if (this.bufferRoute !== this.$route && this.buffer.length > 0) {\n clearTimeout(this.bufferTimer)\n this.bufferTimer = void 0\n this.buffer.length = 0\n }\n this.bufferRoute = this.$route\n\n if (params !== void 0) {\n if (params.remove === true) {\n this.buffer = this.buffer.filter(t => t.name !== params.name)\n }\n else {\n this.buffer.push(params)\n }\n }\n\n if (this.bufferTimer === void 0) {\n this.bufferTimer = setTimeout(() => {\n let tabs = []\n\n for (let i = 0; i < bufferFiltersLen && tabs.length === 0; i++) {\n tabs = this.buffer.filter(bufferFilters[i])\n }\n\n tabs.sort(bufferPrioritySort)\n this.__activateTab(tabs.length === 0 ? null : tabs[0].name, true)\n this.buffer = this.buffer.map(bufferCleanSelected)\n this.bufferTimer = void 0\n }, 1)\n }\n },\n\n __recalculateScroll () {\n this.__nextTick(() => {\n this._isDestroyed !== true && this.__updateContainer({\n width: this.$el.offsetWidth,\n height: this.$el.offsetHeight\n })\n })\n\n this.__prepareTick()\n },\n\n __updateContainer (domSize) {\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],\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.$nextTick(() => this.__updateArrows())\n\n const justify = size < parseInt(this.breakpoint, 10)\n\n if (this.justify !== justify) {\n this.justify = justify\n }\n },\n\n __animate (oldName, newName) {\n const\n oldTab = oldName !== void 0 && oldName !== null && oldName !== ''\n ? this.$children.find(tab => tab.name === oldName)\n : null,\n newTab = newName !== void 0 && newName !== null && newName !== ''\n ? this.$children.find(tab => tab.name === newName)\n : null\n\n if (oldTab && newTab) {\n const\n oldEl = oldTab.$el.getElementsByClassName('q-tab__indicator')[0],\n newEl = newTab.$el.getElementsByClassName('q-tab__indicator')[0]\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.$nextTick(() => {\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 const\n { left, width, top, height } = this.$refs.content.getBoundingClientRect(),\n newPos = newTab.$el.getBoundingClientRect()\n\n let offset = this.vertical === true ? newPos.top - top : newPos.left - left\n\n if (offset < 0) {\n this.$refs.content[this.vertical === true ? 'scrollTop' : 'scrollLeft'] += Math.floor(offset)\n this.__updateArrows()\n return\n }\n\n offset += this.vertical === true ? newPos.height - height : newPos.width - width\n if (offset > 0) {\n this.$refs.content[this.vertical === true ? 'scrollTop' : 'scrollLeft'] += Math.ceil(offset)\n this.__updateArrows()\n }\n }\n },\n\n __updateArrowsFn () {\n const\n content = this.$refs.content,\n rect = content.getBoundingClientRect(),\n pos = this.vertical === true ? content.scrollTop : content.scrollLeft\n\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 __animScrollTo (value) {\n this.__stopAnimScroll()\n this.__scrollTowards(value)\n\n this.scrollTimer = setInterval(() => {\n if (this.__scrollTowards(value)) {\n this.__stopAnimScroll()\n }\n }, 5)\n },\n\n __scrollToStart () {\n this.__animScrollTo(0)\n },\n\n __scrollToEnd () {\n this.__animScrollTo(9999)\n },\n\n __stopAnimScroll () {\n clearInterval(this.scrollTimer)\n },\n\n __scrollTowards (value) {\n const content = this.$refs.content\n let\n pos = this.vertical === true ? content.scrollTop : content.scrollLeft,\n done = false\n const direction = value < pos ? -1 : 1\n\n pos += direction * 5\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 content[this.vertical === true ? 'scrollTop' : 'scrollLeft'] = pos\n this.__updateArrows()\n return done\n }\n },\n\n activated () {\n this.__recalculateScroll()\n },\n\n created () {\n this.buffer = []\n this.__updateArrows = this.arrowsEnabled === true\n ? this.__updateArrowsFn\n : noop\n },\n\n beforeDestroy () {\n clearTimeout(this.bufferTimer)\n clearTimeout(this.animateTimer)\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 staticClass: 'q-tabs__content row no-wrap items-center self-stretch hide-scrollbar',\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 staticClass: 'q-tabs__arrow q-tabs__arrow--left absolute q-tab__icon',\n class: this.leftArrow === true ? '' : 'q-tabs__arrow--faded',\n props: { name: this.leftIcon || (this.vertical === true ? this.$q.iconSet.tabs.up : this.$q.iconSet.tabs.left) },\n on: cache(this, 'onL', {\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 staticClass: 'q-tabs__arrow q-tabs__arrow--right absolute q-tab__icon',\n class: this.rightArrow === true ? '' : 'q-tabs__arrow--faded',\n props: { name: this.rightIcon || (this.vertical === true ? this.$q.iconSet.tabs.down : this.$q.iconSet.tabs.right) },\n on: cache(this, 'onR', {\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 staticClass: 'q-tabs row no-wrap items-center',\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 } from '../../utils/event.js'\nimport { mergeSlot } from '../../utils/slot.js'\nimport { isKeyCode } from '../../utils/key-composition.js'\n\nlet uid = 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 __activateTab: {},\n __recalculateScroll: {}\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_${uid++}`\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.current === this.name\n },\n\n classes () {\n return {\n [`q-tab--${this.isActive ? '' : 'in'}active`]: true,\n [`text-${this.tabs.activeColor}`]: this.isActive && this.tabs.activeColor,\n [`bg-${this.tabs.activeBgColor}`]: this.isActive && this.tabs.activeBgColor,\n 'q-tab--full': this.icon && this.label && !this.tabs.inlineLabel,\n 'q-tab--no-caps': this.noCaps === true || this.tabs.noCaps === true,\n 'q-focusable q-hoverable cursor-pointer': !this.disable,\n disabled: this.disable\n }\n },\n\n innerClass () {\n return (this.tabs.inlineLabel === true ? 'row no-wrap q-tab__content--inline' : 'column') +\n (this.contentClass !== void 0 ? ` ${this.contentClass}` : '')\n },\n\n computedTabIndex () {\n return this.disable === true || this.isActive === true ? -1 : this.tabindex || 0\n },\n\n onEvents () {\n return {\n input: stop,\n ...this.qListeners,\n click: this.__activate,\n keyup: this.__onKeyup\n }\n },\n\n attrs () {\n const attrs = {\n tabindex: this.computedTabIndex,\n role: 'tab',\n 'aria-selected': this.isActive\n }\n\n if (this.disable === true) {\n attrs['aria-disabled'] = 'true'\n }\n\n return attrs\n }\n },\n\n methods: {\n __activate (e, keyboard) {\n keyboard !== true && this.$refs.blurTarget !== void 0 && this.$refs.blurTarget.focus()\n\n if (this.disable !== true) {\n this.qListeners.click !== void 0 && this.$emit('click', e)\n this.__activateTab(this.name)\n }\n },\n\n __onKeyup (e) {\n isKeyCode(e, 13) === true && this.__activate(e, true)\n },\n\n __getContent (h) {\n const\n narrow = this.tabs.narrowIndicator,\n content = [],\n indicator = h('div', {\n staticClass: 'q-tab__indicator',\n class: this.tabs.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\n h('div', {\n staticClass: 'q-tab__content self-stretch flex-center relative-position q-anchor--skip non-selectable',\n class: this.innerClass\n }, mergeSlot(content, this, 'default'))\n ]\n\n narrow === false && node.push(indicator)\n\n return node\n },\n\n __renderTab (h, tag, props) {\n const data = {\n staticClass: 'q-tab relative-position self-stretch flex flex-center text-center',\n class: this.classes,\n attrs: this.attrs,\n directives: this.ripple !== false && this.disable === true ? null : [\n { name: 'ripple', value: this.ripple }\n ],\n [ tag === 'div' ? 'on' : 'nativeOn' ]: this.onEvents\n }\n\n if (props !== void 0) {\n data.props = props\n }\n\n return h(tag, data, this.__getContent(h))\n }\n },\n\n mounted () {\n this.__recalculateScroll()\n },\n\n beforeDestroy () {\n this.__recalculateScroll()\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/slot.js'\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 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/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\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 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 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 absolute-full',\n class: this.headerClass,\n style: this.currentBgColor\n }, [\n h(QTabs, {\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 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 },\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 const thumbPath = 'M5 5 h10 v10 h-10 v-10 z'\n\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('div', { staticClass: 'q-color-picker__hue non-selectable' }, [\n h(QSlider, {\n props: {\n value: this.model.h,\n min: 0,\n max: 360,\n fillHandleAlways: true,\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('div', { staticClass: 'q-color-picker__alpha non-selectable' }, [\n h(QSlider, {\n props: {\n value: this.model.a,\n min: 0,\n max: 100,\n fillHandleAlways: true,\n readonly: this.editable !== 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 ])\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/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 || 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 './date-persian.js'\nimport lang 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\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,\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 }, true)\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 = dateLocale !== void 0 ? dateLocale : lang.props.date,\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 = date.year + '/' + 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\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 setMonth (date, newMonth /* 1-based */) {\n const\n test = new Date(date.getFullYear(), newMonth, 0, 0, 0, 0, 0),\n days = test.getDate()\n\n date.setMonth(newMonth - 1, Math.min(days, date.getDate()))\n}\n\nfunction getChange (date, mod, add) {\n const\n t = new Date(date),\n sign = (add ? 1 : -1)\n\n Object.keys(mod).forEach(key => {\n if (key === 'month') {\n setMonth(t, t.getMonth() + 1 + sign * mod.month)\n return\n }\n\n const op = key === 'year'\n ? 'FullYear'\n : capitalize(key === 'days' ? 'date' : key)\n t[`set${op}`](t[`get${op}`]() + sign * mod[key])\n })\n return t\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, true)\n}\nexport function subtractFromDate (date, mod) {\n return getChange(date, mod, false)\n}\n\nexport function adjustDate (date, mod, utc) {\n const\n t = new Date(date),\n prefix = `set${utc === true ? 'UTC' : ''}`\n\n Object.keys(mod).forEach(key => {\n if (key === 'month') {\n setMonth(t, mod.month)\n return\n }\n\n const op = key === 'year'\n ? 'FullYear'\n : key.charAt(0).toUpperCase() + key.slice(1)\n t[`${prefix}${op}`](mod[key])\n })\n\n return t\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 t[`${prefix}Month`](0)\n case 'month':\n t[`${prefix}Date`](1)\n case 'day':\n t[`${prefix}Hours`](0)\n case 'hour':\n t[`${prefix}Minutes`](0)\n case 'minute':\n t[`${prefix}Seconds`](0)\n case 'second':\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 t[`${prefix}Month`](11)\n case 'month':\n t[`${prefix}Date`](daysInMonth(t))\n case 'day':\n t[`${prefix}Hours`](23)\n case 'hour':\n t[`${prefix}Minutes`](59)\n case 'minute':\n t[`${prefix}Seconds`](59)\n case 'second':\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 return (t.getFullYear() - sub.getFullYear())\n\n case 'months':\n return (t.getFullYear() - sub.getFullYear()) * 12 + t.getMonth() - sub.getMonth()\n\n case 'days':\n return getDiff(startOfDate(t, 'day'), startOfDate(sub, 'day'), MILLISECONDS_IN_DAY)\n\n case 'hours':\n return getDiff(startOfDate(t, 'hour'), startOfDate(sub, 'hour'), MILLISECONDS_IN_HOUR)\n\n case 'minutes':\n return getDiff(startOfDate(t, 'minute'), startOfDate(sub, 'minute'), MILLISECONDS_IN_MINUTE)\n\n case 'seconds':\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 if (t.getSeconds() !== d.getSeconds()) {\n return false\n }\n case 'minute': // intentional fall-through\n if (t.getMinutes() !== d.getMinutes()) {\n return false\n }\n case 'hour': // intentional fall-through\n if (t.getHours() !== d.getHours()) {\n return false\n }\n case 'day': // intentional fall-through\n if (t.getDate() !== d.getDate()) {\n return false\n }\n case 'month': // intentional fall-through\n if (t.getMonth() !== d.getMonth()) {\n return false\n }\n case 'year': // intentional fall-through\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 = dateLocale !== void 0\n ? dateLocale\n : lang.props.date\n\n return mask.replace(\n token,\n (match, text) => match in formatter\n ? formatter[match](date, locale, __forcedYear, __forcedTimezoneOffset)\n : (text === void 0 ? match : text.split('\\\\]').join(']'))\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/slot.js'\nimport { formatDate, __splitDate, getDateDiff } from '../../utils/date.js'\nimport { pad } from '../../utils/format.js'\nimport { jalaaliMonthLength, toGregorian } from '../../utils/date-persian.js'\nimport cache from '../../utils/cache.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 { year, month } = this.__getViewModel(this.innerMask, this.innerLocale)\n this.__updateViewModel(year, month)\n }\n },\n\n view () {\n this.$refs.blurTarget !== void 0 && this.$refs.blurTarget.focus()\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 => date.dateHash !== null)\n },\n\n rangeModel () {\n const fn = date => this.__decodeString(date, this.innerMask, this.innerLocale)\n return this.normalizedModel\n .filter(date => Object(date) === date && 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 this.__toggleDate(this.today, this.__getMonthHash(this.today))\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) {\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 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 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 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 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 window.scrollTo(scrollPositionX, scrollPositionY)\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 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'\n\nimport { childHasFocus } from '../../utils/dom.js'\nimport EscapeKey from '../../utils/escape-key.js'\nimport { slot } from '../../utils/slot.js'\nimport { create, stop } from '../../utils/event.js'\nimport cache from '../../utils/cache.js'\nimport { addFocusFn } from '../../utils/focus-manager.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 transitions = {\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\nexport default Vue.extend({\n name: 'QDialog',\n\n mixins: [\n AttrsMixin,\n HistoryMixin,\n ModelToggleMixin,\n PortalMixin,\n PreventScrollMixin\n ],\n\n props: {\n persistent: Boolean,\n autoClose: Boolean,\n\n noEscDismiss: Boolean,\n noBackdropDismiss: Boolean,\n noRouteDismiss: Boolean,\n noRefocus: Boolean,\n noFocus: 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 transitionState: this.showing,\n animating: false\n }\n },\n\n watch: {\n showing (val) {\n if (this.transitionShowComputed !== this.transitionHideComputed) {\n this.$nextTick(() => {\n this.transitionState = val\n })\n }\n },\n\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 transitionShowComputed () {\n return 'q-transition--' + (this.transitionShow === void 0 ? transitions[this.position][0] : this.transitionShow)\n },\n\n transitionHideComputed () {\n return 'q-transition--' + (this.transitionHide === void 0 ? transitions[this.position][1] : this.transitionHide)\n },\n\n transition () {\n return this.transitionState === true\n ? this.transitionHideComputed\n : this.transitionShowComputed\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\n methods: {\n focus () {\n addFocusFn(() => {\n let node = this.__getInnerNode()\n\n if (node === void 0 || node.contains(document.activeElement) === true) {\n return\n }\n\n node = node.querySelector('[autofocus], [data-autofocus]') || node\n node.focus()\n })\n },\n\n shake () {\n this.focus()\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 = 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, () => {\n if (this.seamless !== true) {\n if (this.persistent === true || this.noEscDismiss === true) {\n this.maximized !== true && this.shake()\n }\n else {\n this.$emit('escape-key')\n this.hide()\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.__nextTick(this.focus)\n }\n\n this.__setTimeout(() => {\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)\n this.$emit('show', evt)\n }, 300)\n },\n\n __hide (evt) {\n this.__removeHistory()\n this.__cleanup(true)\n this.animating = true\n\n // check null for IE\n if (this.__refocusTarget !== void 0 && this.__refocusTarget !== null) {\n this.__refocusTarget.focus()\n }\n\n this.$el.dispatchEvent(create('popup-hide', { bubbles: true }))\n\n this.__setTimeout(() => {\n this.__hidePortal()\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 {\n this.shake()\n }\n },\n\n __onFocusChange (e) {\n // the focus is not in a vue child component\n if (\n this.showing === true &&\n this.__portal !== void 0 &&\n childHasFocus(this.__portal.$el, e.target) !== true\n ) {\n this.focus()\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.qAttrs\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: ariaHidden,\n on: cache(this, 'bkdrop', {\n click: this.__onBackdropClick\n })\n })\n ] : null),\n\n h('transition', {\n props: { name: this.transition }\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 mounted () {\n this.__processModelChange(this.value)\n },\n\n beforeDestroy () {\n this.__cleanup()\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 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/slot.js'\nimport cache from '../../utils/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, 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' (val) {\n this.__updateLocal('belowBreakpoint', (\n this.behavior === 'mobile' ||\n (this.behavior !== 'desktop' && val <= this.breakpoint)\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 (val) {\n this.__updateLocal('belowBreakpoint', (\n val === 'mobile' ||\n (val !== 'desktop' && this.layout.totalWidth <= this.breakpoint)\n ))\n },\n\n breakpoint (val) {\n this.__updateLocal('belowBreakpoint', (\n this.behavior === 'mobile' ||\n (this.behavior !== 'desktop' && this.layout.totalWidth <= val)\n ))\n },\n\n 'layout.container' (val) {\n this.showing === true && this.__preventScroll(val !== true)\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.__setTimeout(() => {\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 noEvent !== true && this.__setTimeout(() => {\n this.$emit('hide', evt)\n }, duration)\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\n created () {\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 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/selection.js'\nimport { slot } from '../../utils/slot.js'\nimport {\n validatePosition, validateOffset, setPosition, parsePosition\n} from '../../utils/position-engine.js'\n\nexport default Vue.extend({\n name: 'QTooltip',\n\n mixins: [ AnchorMixin, 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.__nextTick(() => {\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 this.__setTimeout(() => {\n this.__showPortal(true)\n this.$emit('show', evt)\n }, 300)\n },\n\n __hide (evt) {\n this.__anchorCleanup()\n\n this.__setTimeout(() => {\n this.__hidePortal()\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.__setTimeout(() => {\n this.show(evt)\n }, this.delay)\n },\n\n __delayHide (evt) {\n this.__clearTimeout()\n\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 this.__setTimeout(() => {\n this.hide(evt)\n }, 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: { name: this.transition }\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 role: 'complementary'\n }\n }, slot(this, 'default')) : null\n ])\n }\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/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\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('div', {\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/slot.js'\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { isKeyCode } from '../../utils/key-composition.js'\n\nexport default Vue.extend({\n name: 'QItem',\n\n mixins: [ DarkMixin, RouterLinkMixin, TagMixin, ListenersMixin ],\n\n props: {\n active: Boolean,\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.hasRouterLink === true ||\n this.tag === 'a' ||\n this.tag === 'label'\n },\n\n isClickable () {\n return this.disable !== true && this.isActionable === true\n },\n\n classes () {\n return {\n 'q-item--clickable q-link cursor-pointer': this.isClickable,\n 'q-focusable q-hoverable': this.isClickable === true && this.manualFocus === false,\n\n 'q-manual-focusable': this.isClickable === true && this.manualFocus === true,\n 'q-manual-focusable--focused': this.isClickable === true && this.focused === true,\n\n 'q-item--dense': this.dense,\n 'q-item--dark': this.isDark,\n 'q-item--active': this.active,\n [this.activeClass]: this.active === true && this.hasRouterLink !== true && this.activeClass !== void 0,\n\n 'disabled': this.disable\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 __getContent (h) {\n const child = uniqueSlot(this, 'default', [])\n this.isClickable === true && child.unshift(\n h('div', { staticClass: 'q-focus-helper', attrs: { tabindex: -1 }, ref: 'blurTarget' })\n )\n return child\n },\n\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.$emit('click', 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\n render (h) {\n const data = {\n staticClass: 'q-item q-item-type row no-wrap',\n class: this.classes,\n style: this.style,\n [ this.hasRouterLink === true ? 'nativeOn' : 'on' ]: this.onEvents\n }\n\n if (this.isClickable === true) {\n data.attrs = {\n tabindex: this.tabindex || '0'\n }\n }\n else if (this.isActionable === true) {\n data.attrs = {\n 'aria-disabled': 'true'\n }\n }\n\n if (this.hasRouterLink === true) {\n data.tag = 'a'\n data.props = this.routerLinkProps\n\n return h('router-link', data, this.__getContent(h))\n }\n\n return h(\n this.tag,\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/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/slot.js'\nimport { shouldIgnoreKey } from '../../utils/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 (el !== null && 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 class2type = {}\n\n'Boolean Number String Function Array Date RegExp Object'.split(' ').forEach(name => {\n class2type['[object ' + name + ']'] = name.toLowerCase()\n})\n\nfunction type (obj) {\n return obj === null ? String(obj) : class2type[toString.call(obj)] || 'object'\n}\n\nfunction isPlainObject (obj) {\n if (!obj || type(obj) !== 'object') {\n return false\n }\n\n if (obj.constructor &&\n !hasOwn.call(obj, 'constructor') &&\n !hasOwn.call(obj.constructor.prototype, 'isPrototypeOf')) {\n return false\n }\n\n let key\n for (key in obj) {}\n\n return key === undefined || 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 && type(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 && copy && (isPlainObject(copy) || (copyIsArray = type(copy) === 'array'))) {\n if (copyIsArray) {\n copyIsArray = false\n clone = src && type(src) === 'array' ? src : []\n }\n else {\n clone = src && isPlainObject(src) ? src : {}\n }\n\n target[name] = extend(deep, clone, copy)\n }\n else if (copy !== undefined) {\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/key-composition.js'\nimport { addFocusFn } from '../../utils/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 __onMousedown () {\n this.__offsetBottom = void 0\n },\n\n __onMouseup (e) {\n this.caret.save()\n if (this.qListeners.mouseup !== void 0) {\n this.$emit('mouseup', e)\n }\n },\n\n __onKeyup (e) {\n this.caret.save()\n if (this.qListeners.keyup !== void 0) {\n this.$emit('keyup', e)\n }\n },\n\n __onTouchstart () {\n this.__offsetBottom = void 0\n },\n\n __onTouchend (e) {\n this.caret.save()\n if (this.qListeners.touchend !== void 0) {\n this.$emit('touchend', e)\n }\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()\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\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.__onMousedown,\n touchstart: this.__onTouchstart,\n\n // save caret\n mouseup: this.__onMouseup,\n keyup: this.__onKeyup,\n touchend: this.__onTouchend\n }\n\n return h('div', {\n style: {\n height: this.inFullscreen === true ? '100vh' : 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 : undefined,\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/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/slot.js'\nimport cache from '../../utils/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 el.style.overflowY = '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 (this.animating === true) {\n this.__cleanup()\n pos = el.offsetHeight === el.scrollHeight ? 0 : void 0\n }\n else {\n this.lastEvent = 'hide'\n }\n\n this.__begin(el, pos, done)\n\n this.timer = setTimeout(() => {\n el.style.height = `${el.scrollHeight}px`\n this.animListener = ev => {\n if (Object(ev) !== ev || ev.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 pos = el.scrollHeight\n }\n\n this.__begin(el, pos, done)\n\n this.timer = setTimeout(() => {\n el.style.height = 0\n this.animListener = ev => {\n if (Object(ev) !== ev || ev.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 role: 'separator',\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 { RouterLinkMixin } from '../../mixins/router-link.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/slot.js'\nimport cache from '../../utils/cache.js'\n\nconst eventName = 'q:expansion-item:close'\n\nexport default Vue.extend({\n name: 'QExpansionItem',\n\n mixins: [ DarkMixin, RouterLinkMixin, ModelToggleMixin ],\n\n props: {\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 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 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 isClickable () {\n return this.hasRouterLink === 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.hasRouterLink === true || this.expandIconToggle === true)\n }\n },\n\n methods: {\n __onHeaderClick (e) {\n this.hasRouterLink !== 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: { tabindex: 0 },\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())\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 && 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 const evtProp = this.hasRouterLink === true ? 'nativeOn' : 'on'\n\n data.props.clickable = true\n data[evtProp] = {\n ...this.qListeners,\n click: this.__onHeaderClick\n }\n\n this.hasRouterLink === true && Object.assign(\n data.props,\n this.routerLinkProps\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 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 },\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/slot.js'\nimport cache from '../../utils/cache.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 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 ...this.qAttrs\n }\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\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 h(QIcon, {\n staticClass: 'q-fab__icon absolute-full',\n props: { name: this.icon || this.$q.iconSet.fab.icon }\n }),\n h(QIcon, {\n staticClass: 'q-fab__active-icon absolute-full',\n props: { name: this.activeIcon || this.$q.iconSet.fab.activeIcon }\n })\n ])\n )\n\n this.label !== '' && child[this.labelProps.action](\n h('div', this.labelProps.data, [ this.label ])\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 }, slot(this, 'default'))\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'\n\nimport { noop } from '../../utils/event.js'\nimport { mergeSlot } from '../../utils/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 this.icon !== '' && child.push(\n h(QIcon, {\n props: { name: this.icon }\n })\n )\n\n this.label !== '' && child[this.labelProps.action](\n h('div', this.labelProps.data, [ this.label ])\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'\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 val === true && this.resetValidation()\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 (this.lazyRules !== 'ondemand') {\n if (focused === true) {\n if (this.isDirty === null) {\n this.isDirty = false\n }\n }\n else if (this.isDirty === false && this.hasRules === true) {\n this.isDirty = true\n this.validate()\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 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 mounted () {\n this.validateIndex = 0\n },\n\n beforeDestroy () {\n this.unwatchRules !== void 0 && this.unwatchRules()\n },\n\n methods: {\n resetValidation () {\n this.validateIndex++\n this.innerLoading = false\n this.isDirty = null\n this.innerError = false\n this.innerErrorMessage = void 0\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.hasRules !== true) {\n return true\n }\n\n this.validateIndex++\n\n if (this.innerLoading !== true && this.lazyRules !== true) {\n this.isDirty = true\n }\n\n const update = (err, msg) => {\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)\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 const index = this.validateIndex\n\n return Promise.all(promises).then(\n res => {\n if (index !== this.validateIndex) {\n return true\n }\n\n if (res === void 0 || Array.isArray(res) === false || res.length === 0) {\n update(false)\n return true\n }\n\n const msg = res.find(r => r === false || typeof r === 'string')\n 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 return false\n }\n\n return true\n }\n )\n },\n\n __validateIfNeeded (changedRules) {\n if (\n this.hasRules === true &&\n this.lazyRules !== 'ondemand' &&\n (this.isDirty === true || (this.lazyRules !== true && changedRules !== true))\n ) {\n this.validate()\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 { 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 from '../../mixins/attrs.js'\n\nimport { slot } from '../../utils/slot.js'\nimport uid from '../../utils/uid.js'\nimport { stop, prevent, stopAndPrevent } from '../../utils/event.js'\nimport { addFocusFn, removeFocusFn } from '../../utils/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 (\n this.inputValue !== void 0 && this.hideSelected === true\n ? this.inputValue.length > 0\n : this.hasValue === true\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 [this.disable === true ? 'q-field--disabled' : 'q-validation-component']: 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 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 this.focusFn !== void 0 && removeFocusFn(this.focusFn)\n this.focusFn = addFocusFn(() => {\n if (this.showPopup !== void 0) {\n this.showPopup()\n return\n }\n\n this.__focus()\n })\n },\n\n blur () {\n this.focusFn !== void 0 && removeFocusFn(this.focusFn)\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()\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.$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.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: { tabindex: 0, type: 'button' },\n on: this.clearableEvents\n })\n ])\n )\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 ...this.qAttrs,\n 'data-autofocus': this.autofocus\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 if (this.computedErrorMessage !== void 0) {\n msg = [ h('div', { attrs: { role: 'alert' } }, [ this.computedErrorMessage ]) ]\n key = this.computedErrorMessage\n }\n else {\n msg = slot(this, 'error')\n key = 'q--slot-error'\n }\n }\n else if (this.hideHint !== true || this.focused === true) {\n if (this.hint !== void 0) {\n msg = [ h('div', [ this.hint ]) ]\n key = this.hint\n }\n else {\n msg = slot(this, 'hint')\n key = 'q--slot-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 }, [\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 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.lazyRules !== 'ondemand' && 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 return h('label', {\n staticClass: 'q-field row no-wrap items-start',\n class: this.classes,\n attrs: this.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 beforeDestroy () {\n clearTimeout(this.focusoutTimer)\n }\n})\n","import QField from './QField.js'\n\nexport {\n QField\n}\n","import { stopAndPrevent } from '../utils/event.js'\nimport cache from '../utils/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 (e) {\n if (this.editable) {\n const input = this.__getFileInput()\n input && input.click(e)\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) {\n files = [ files[0] ]\n }\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 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 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/cache.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\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 __onKeyup (e) {\n // only on ENTER\n e.keyCode === 13 && this.pickFiles(e)\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\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 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 tabindex: -1\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 this.fieldClass = 'q-file q-field--auto-height'\n\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/slot.js'\nimport { stop } from '../../utils/event.js'\nimport cache from '../../utils/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.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/slot.js'\nimport { addFocusFn } from '../../utils/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 methods: {\n validate (shouldFocus) {\n const promises = []\n const focus = typeof shouldFocus === 'boolean'\n ? shouldFocus\n : this.noErrorFocus !== true\n\n this.validateIndex++\n\n const components = this.getValidationComponents()\n\n const emit = (res, ref) => {\n this.$emit('validation-' + (res === true ? 'success' : 'error'), ref)\n }\n\n for (let i = 0; i < components.length; i++) {\n const comp = components[i]\n const valid = comp.validate()\n\n if (typeof valid.then === 'function') {\n promises.push(\n valid.then(\n valid => ({ valid, comp }),\n error => ({ valid: false, comp, error })\n )\n )\n }\n else if (valid !== true) {\n if (this.greedy === false) {\n emit(false, comp)\n\n if (focus === true && typeof comp.focus === 'function') {\n comp.focus()\n }\n\n return Promise.resolve(false)\n }\n\n promises.push({ valid: false, comp })\n }\n }\n\n if (promises.length === 0) {\n emit(true)\n return Promise.resolve(true)\n }\n\n const index = this.validateIndex\n\n return Promise.all(promises).then(\n res => {\n if (index === this.validateIndex) {\n const errors = res.filter(r => r.valid !== true)\n\n if (errors.length === 0) {\n emit(true)\n return true\n }\n\n const { valid, comp } = errors[0]\n\n emit(false, comp)\n\n if (\n focus === true &&\n valid !== true &&\n typeof comp.focus === 'function'\n ) {\n comp.focus()\n }\n\n return false\n }\n }\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 this.validate().then(val => {\n if (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], [data-autofocus]') ||\n Array.prototype.find.call(this.$el.querySelectorAll('[tabindex]'), el => el.tabIndex > -1)\n\n target !== null && target !== void 0 && target.focus()\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/slot.js'\nimport { stop } from '../../utils/event.js'\nimport cache from '../../utils/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.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/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\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 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: { src: this.url, 'aria-hidden': 'true' }\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/slot.js'\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 fetching: false,\n working: true\n }\n },\n\n watch: {\n disable (val) {\n if (val === true) {\n this.stop()\n }\n else {\n this.resume()\n }\n },\n\n scrollTarget () {\n this.updateScrollTarget()\n },\n\n debounce (val) {\n this.__setDebounce(val)\n }\n },\n\n methods: {\n poll () {\n if (this.disable === true || this.fetching === true || this.working === 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 (scrollPosition + containerHeight + this.offset >= scrollHeight) {\n this.trigger()\n }\n }\n else {\n if (scrollPosition < this.offset) {\n this.trigger()\n }\n }\n },\n\n trigger () {\n if (this.disable === true || this.fetching === true || this.working === false) {\n return\n }\n\n this.index++\n this.fetching = true\n\n const heightBefore = getScrollHeight(this.__scrollTarget)\n\n this.$emit('load', this.index, stop => {\n if (this.working === true) {\n this.fetching = 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.working === false) {\n this.working = true\n this.__scrollTarget.addEventListener('scroll', this.poll, listenOpts.passive)\n }\n this.immediatePoll()\n },\n\n stop () {\n if (this.working === true) {\n this.working = false\n this.fetching = false\n this.__scrollTarget.removeEventListener('scroll', this.poll, listenOpts.passive)\n }\n },\n\n updateScrollTarget () {\n if (this.__scrollTarget && this.working === true) {\n this.__scrollTarget.removeEventListener('scroll', this.poll, listenOpts.passive)\n }\n\n this.__scrollTarget = getScrollTarget(this.$el, this.scrollTarget)\n\n if (this.working === true) {\n this.__scrollTarget.addEventListener('scroll', this.poll, listenOpts.passive)\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.working === true) {\n if (oldPoll !== void 0) {\n this.__scrollTarget.removeEventListener('scroll', oldPoll, listenOpts.passive)\n }\n\n this.__scrollTarget.addEventListener('scroll', this.poll, listenOpts.passive)\n }\n }\n },\n\n mounted () {\n this.immediatePoll = this.poll\n this.__setDebounce(this.debounce)\n\n this.updateScrollTarget()\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 beforeDestroy () {\n if (this.working === true) {\n this.__scrollTarget.removeEventListener('scroll', this.poll, listenOpts.passive)\n }\n },\n\n render (h) {\n const child = uniqueSlot(this, 'default', [])\n\n if (this.disable !== true && this.working === true) {\n child[this.reverse === false ? 'push' : 'unshift'](\n h('div', {\n staticClass: 'q-infinite-scroll__loading',\n class: this.fetching === 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\n render (h) {\n const child = this.showing === true\n ? [\n h('div',\n {\n staticClass: 'q-inner-loading absolute-full column flex-center',\n class: this.isDark === true ? 'q-inner-loading--dark' : null,\n on: { ...this.qListeners }\n },\n this.$scopedSlots.default !== void 0\n ? this.$scopedSlots.default()\n : [\n h(QSpinner, {\n props: {\n size: this.size,\n color: this.color\n }\n })\n ]\n )\n ]\n : void 0\n\n return h('transition', {\n props: {\n name: this.transition,\n appear: true\n }\n }, child)\n }\n})\n","import QInnerLoading from './QInnerLoading.js'\n\nexport {\n QInnerLoading\n}\n","import { shouldIgnoreKey } from '../utils/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 '$'\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(val)\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 cursor = end - 1\n this.__moveCursorRight(inp, cursor, 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, 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, cursor)\n }\n else {\n const cursor = end - 1\n this.__moveCursorRight(inp, cursor, cursor)\n }\n }\n })\n\n const val = this.unmaskedValue === true\n ? this.__unmask(masked)\n : masked\n\n 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\n inp.setSelectionRange(start, end, 'forward')\n },\n\n __moveCursorLeft (inp, start, end, selection) {\n const noMarkBefore = this.maskMarked.slice(start - 1).indexOf(MARKER) === -1\n let i = Math.max(0, start - 1)\n\n for (; i >= 0; i--) {\n if (this.maskMarked[i] === MARKER) {\n start = i\n noMarkBefore === true && start++\n break\n }\n }\n\n if (\n i < 0 &&\n this.maskMarked[start] !== void 0 &&\n this.maskMarked[start] !== MARKER\n ) {\n return this.__moveCursorRight(inp, 0, 0)\n }\n\n start >= 0 && inp.setSelectionRange(\n start,\n selection === true ? end : start, 'backward'\n )\n },\n\n __moveCursorRight (inp, start, end, selection) {\n const limit = inp.value.length\n let i = Math.min(limit, end + 1)\n\n for (; i <= limit; i++) {\n if (this.maskMarked[i] === MARKER) {\n end = i\n break\n }\n else if (this.maskMarked[i - 1] === MARKER) {\n end = i\n }\n }\n\n if (\n i > limit &&\n this.maskMarked[end - 1] !== void 0 &&\n this.maskMarked[end - 1] !== MARKER\n ) {\n return this.__moveCursorLeft(inp, limit, limit)\n }\n\n inp.setSelectionRange(selection ? start : end, end, 'forward')\n },\n\n __moveCursorLeftReverse (inp, start, end, selection) {\n const\n maskMarked = this.__getPaddedMaskMarked(inp.value.length)\n let i = Math.max(0, start - 1)\n\n for (; i >= 0; i--) {\n if (maskMarked[i - 1] === MARKER) {\n start = i\n break\n }\n else if (maskMarked[i] === MARKER) {\n start = i\n if (i === 0) {\n break\n }\n }\n }\n\n if (\n i < 0 &&\n maskMarked[start] !== void 0 &&\n maskMarked[start] !== MARKER\n ) {\n return this.__moveCursorRightReverse(inp, 0, 0)\n }\n\n start >= 0 && inp.setSelectionRange(\n start,\n selection === true ? end : start, 'backward'\n )\n },\n\n __moveCursorRightReverse (inp, start, end, selection) {\n const\n limit = inp.value.length,\n maskMarked = this.__getPaddedMaskMarked(limit),\n noMarkBefore = maskMarked.slice(0, end + 1).indexOf(MARKER) === -1\n let i = Math.min(limit, end + 1)\n\n for (; i <= limit; i++) {\n if (maskMarked[i - 1] === MARKER) {\n end = i\n end > 0 && noMarkBefore === true && end--\n break\n }\n }\n\n if (\n i > limit &&\n maskMarked[end - 1] !== void 0 &&\n maskMarked[end - 1] !== MARKER\n ) {\n return this.__moveCursorLeftReverse(inp, limit, limit)\n }\n\n inp.setSelectionRange(selection === true ? start : end, end, 'forward')\n },\n\n __onMaskedKeydown (e) {\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.keyCode === 37 || e.keyCode === 39) { // Left / Right\n const fn = this['__moveCursor' + (e.keyCode === 39 ? 'Right' : 'Left') + (this.reverseFillMask === true ? 'Reverse' : '')]\n\n e.preventDefault()\n fn(inp, start, end, e.shiftKey)\n }\n else if (\n e.keyCode === 8 && // Backspace\n this.reverseFillMask !== true &&\n start === end\n ) {\n this.__moveCursorLeft(inp, start, end, true)\n }\n else if (\n e.keyCode === 46 && // Delete\n this.reverseFillMask === true &&\n start === end\n ) {\n this.__moveCursorRightReverse(inp, start, end, true)\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","const 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]/\n\nexport default {\n methods: {\n __onComposition (e) {\n if (e.type === 'compositionend' || e.type === 'change') {\n if (e.target.composing !== true) { return }\n e.target.composing = false\n this.__onInput(e)\n }\n else if (e.type === 'compositionupdate') {\n if (\n typeof e.data === 'string' &&\n isJapanese.test(e.data) === false &&\n isChinese.test(e.data) === false &&\n isKorean.test(e.data) === false\n ) {\n e.target.composing = false\n }\n }\n else {\n e.target.composing = true\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/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 return\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 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 }\n\n if (this.autogrow === true) {\n on.animationend = this.__adjustHeight\n }\n\n return on\n },\n\n inputAttrs () {\n const attrs = {\n tabindex: 0,\n 'data-autofocus': this.autofocus,\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()\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.composing === 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 __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 const inp = this.$refs.input\n if (inp !== void 0) {\n const parentStyle = inp.parentNode.style\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 parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px'\n inp.style.height = '1px'\n\n inp.style.height = inp.scrollHeight + 'px'\n parentStyle.marginBottom = ''\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/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/slot.js'\nimport cache from '../../utils/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 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 return {\n model: this.value,\n dragging: false\n }\n },\n\n watch: {\n value (value) {\n if (value < this.min) {\n this.model = this.min\n }\n else if (value > this.max) {\n this.model = this.max\n }\n else {\n if (value !== this.model) {\n this.model = value\n }\n return\n }\n\n if (this.model !== this.value) {\n this.$emit('input', this.model)\n this.$emit('change', this.model)\n }\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 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.min,\n 'aria-valuemax': this.max,\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 __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.min,\n this.max\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.angle) {\n angle = normalizeToInterval(angle - this.angle, 0, 360)\n }\n\n if (this.$q.lang.rtl === 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.min, this.max)\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\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.timer) {\n this.timer = this.debounce\n ? setTimeout(this.__emit, this.debounce)\n : requestAnimationFrame(this.__emit)\n }\n },\n\n __emit () {\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.timer = null\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 clearTimeout(this.timer)\n cancelAnimationFrame(this.timer)\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/slot.js'\nimport cache from '../../utils/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\n created () {\n this.instances = {}\n },\n\n render (h) {\n const layout = h('div', {\n class: this.classes,\n style: this.style,\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})\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/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/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 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/slot.js'\nimport cache from '../../utils/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 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 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 = [\n h('svg', {\n staticClass: 'q-radio__bg absolute non-selectable',\n attrs: { focusable: 'false' /* needed for IE11 */, viewBox: '0 0 24 24', 'aria-hidden': 'true' }\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 }, 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 checkedIcon: String,\n uncheckedIcon: String,\n indeterminateIcon: 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/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 },\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 => 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: opt.label,\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 })\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/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/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/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'\n\nimport { stop } from '../../utils/event.js'\nimport { between } from '../../utils/format.js'\nimport { isKeyCode } from '../../utils/key-composition.js'\nimport cache from '../../utils/cache.js'\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,\n default: 1\n },\n max: {\n type: Number,\n required: true\n },\n\n color: {\n type: String,\n default: 'primary'\n },\n textColor: String,\n\n activeColor: String,\n activeTextColor: String,\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 maxPages: {\n type: Number,\n default: 0,\n validator: v => v >= 0\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 dense: Boolean,\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 __boundaryLinks () {\n return this.__getBool(this.boundaryLinks, this.input)\n },\n\n __boundaryNumbers () {\n return this.__getBool(this.boundaryNumbers, !this.input)\n },\n\n __directionLinks () {\n return this.__getBool(this.directionLinks, this.input)\n },\n\n __ellipses () {\n return this.__getBool(this.ellipses, !this.input)\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 if (this.disable === true) {\n return {\n 'aria-disabled': 'true'\n }\n }\n },\n\n btnProps () {\n return {\n round: this.round,\n rounded: this.rounded,\n\n outline: this.outline,\n unelevated: this.unelevated,\n push: this.push,\n glossy: this.glossy,\n\n dense: this.dense,\n padding: this.padding,\n\n color: this.color,\n flat: true,\n size: this.size,\n ripple: this.ripple !== null\n ? this.ripple\n : true\n }\n },\n\n activeBtnProps () {\n return {\n flat: this.flat,\n color: this.activeColor || this.color,\n textColor: this.activeTextColor || this.textColor\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 __update () {\n this.model = this.newPage\n this.newPage = null\n },\n\n __getBool (val, otherwise) {\n return [true, false].includes(val)\n ? val\n : otherwise\n },\n\n __getBtn (h, data, props, page) {\n data.props = {\n ...this.btnProps,\n ...props\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\n contentStart = [],\n contentEnd = [],\n contentMiddle = []\n\n if (this.__boundaryLinks) {\n contentStart.push(this.__getBtn(h, {\n key: 'bls'\n }, {\n disable: this.disable || this.value <= this.min,\n icon: this.icons[0]\n }, this.min))\n contentEnd.unshift(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 if (this.__directionLinks) {\n contentStart.push(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 contentEnd.unshift(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 if (this.input === true) {\n contentMiddle.push(h(QInput, {\n staticClass: 'inline',\n style: {\n width: `${this.inputPlaceholder.length / 1.5}em`\n },\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: cache(this, 'inp', {\n input: value => { this.newPage = value },\n keyup: e => { isKeyCode(e, 13) === true && this.__update() },\n blur: this.__update\n })\n }))\n }\n else { // is type select\n let\n maxPages = Math.max(\n this.maxPages,\n 1 + (this.__ellipses ? 2 : 0) + (this.__boundaryNumbers ? 2 : 0)\n ),\n pgFrom = this.min,\n pgTo = this.max,\n ellipsesStart = false,\n ellipsesEnd = false,\n boundaryStart = false,\n boundaryEnd = false\n\n if (this.maxPages && maxPages < (this.max - this.min + 1)) {\n maxPages = 1 + Math.floor(maxPages / 2) * 2\n pgFrom = Math.max(this.min, Math.min(this.max - maxPages + 1, this.value - Math.floor(maxPages / 2)))\n pgTo = Math.min(this.max, pgFrom + maxPages - 1)\n if (this.__boundaryNumbers) {\n boundaryStart = true\n pgFrom += 1\n }\n if (this.__ellipses && pgFrom > (this.min + (this.__boundaryNumbers ? 1 : 0))) {\n ellipsesStart = true\n pgFrom += 1\n }\n if (this.__boundaryNumbers) {\n boundaryEnd = true\n pgTo -= 1\n }\n if (this.__ellipses && pgTo < (this.max - (this.__boundaryNumbers ? 1 : 0))) {\n ellipsesEnd = true\n pgTo -= 1\n }\n }\n const style = {\n minWidth: `${Math.max(2, String(this.max).length)}em`\n }\n if (boundaryStart) {\n const active = this.min === this.value\n const btn = {\n disable: this.disable,\n flat: !active,\n label: this.min\n }\n\n if (active) {\n btn.color = this.activeColor || this.color\n btn.textColor = this.activeTextColor || this.textColor\n }\n\n contentStart.push(this.__getBtn(h, {\n key: 'bns',\n style\n }, btn, this.min))\n }\n if (boundaryEnd) {\n const active = this.max === this.value\n const btn = {\n disable: this.disable,\n flat: !active,\n label: this.max\n }\n\n if (active) {\n btn.color = this.activeColor || this.color\n btn.textColor = this.activeTextColor || this.textColor\n }\n\n contentEnd.unshift(this.__getBtn(h, {\n key: 'bne',\n style\n }, btn, this.max))\n }\n if (ellipsesStart) {\n contentStart.push(this.__getBtn(h, {\n key: 'bes',\n style\n }, {\n disable: this.disable,\n label: '…',\n ripple: false\n }, pgFrom - 1))\n }\n if (ellipsesEnd) {\n contentEnd.unshift(this.__getBtn(h, {\n key: 'bee',\n style\n }, {\n disable: this.disable,\n label: '…',\n ripple: false\n }, pgTo + 1))\n }\n for (let i = pgFrom; i <= pgTo; i++) {\n const btn = {\n disable: this.disable,\n flat: true,\n label: i\n }\n\n if (i === this.value) {\n Object.assign(btn, this.activeBtnProps)\n }\n\n contentMiddle.push(this.__getBtn(h, {\n key: `bpg${i}`,\n style\n }, btn, i))\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 contentStart,\n\n h('div', {\n staticClass: 'row justify-center',\n on: this.input === true\n ? cache(this, 'stop', { input: stop })\n : null\n }, [\n contentMiddle\n ]),\n\n contentEnd\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/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.__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","export default function (data) {\n const s = JSON.stringify(data)\n if (s) {\n return JSON.parse(s)\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/slot.js'\nimport { isKeyCode } from '../../utils/key-composition.js'\nimport cache from '../../utils/cache.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 initialValue: ''\n }\n },\n\n computed: {\n classes () {\n return 'q-popup-edit' +\n (this.contentClass !== void 0 ? ` ${this.contentClass}` : '')\n },\n\n defaultSlotScope () {\n return {\n initialValue: this.initialValue,\n value: this.value,\n emitValue: this.__emitValue,\n validate: this.validate,\n set: this.set,\n cancel: this.cancel\n }\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.value) !== true) {\n return\n }\n if (this.__hasChanged() === true) {\n this.$emit('save', this.value, this.initialValue)\n }\n this.__close()\n },\n\n cancel () {\n if (this.__hasChanged() === true) {\n this.$emit('input', this.initialValue)\n this.$emit('cancel', this.value, 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.value, this.initialValue) === false\n },\n\n __emitValue (val) {\n if (this.disable !== true) {\n this.$emit('input', val)\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.initialValue = clone(this.value)\n this.watcher = this.$watch('value', this.__reposition)\n this.$emit('before-show')\n },\n show: () => {\n this.$emit('show')\n },\n 'escape-key': this.cancel,\n 'before-hide': () => {\n this.watcher()\n\n if (this.validated === false && this.__hasChanged() === true) {\n if (this.autoSave === true && this.validate(this.value) === true) {\n this.$emit('save', this.value, this.initialValue)\n }\n else {\n this.$emit('cancel', this.value, this.initialValue)\n this.$emit('input', this.initialValue)\n }\n }\n\n this.$emit('before-hide')\n },\n hide: () => {\n this.$emit('hide')\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/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/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 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.reverse, this.$q)\n },\n\n trackClass () {\n return `q-linear-progress__track--with${this.instantFeedback === true ? 'out' : ''}-transition` +\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.reverse, this.$q)\n },\n\n modelClasses () {\n return `q-linear-progress__model--with${this.instantFeedback === true ? 'out' : ''}-transition` +\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 this.reverse === true ? 'absolute-right' : 'absolute-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 staticClass: 'q-linear-progress__track absolute-full',\n style: this.trackStyle,\n class: this.trackClass\n }),\n\n h('div', {\n staticClass: 'q-linear-progress__model absolute-full',\n style: this.modelStyle,\n class: this.modelClasses\n })\n ]\n\n this.stripe === true && this.motion === false && child.push(\n h('div', {\n staticClass: 'q-linear-progress__stripe',\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/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 mightPrevent: 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 getRatio,\n getModel,\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: () => ({\n min: null,\n max: null\n }),\n validator (val) {\n return 'min' in val && 'max' in val\n }\n },\n\n name: String,\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\n data () {\n return {\n model: {\n min: this.value.min === null ? this.min : this.value.min,\n max: this.value.max === null ? this.max : this.value.max\n },\n curMinRatio: 0,\n curMaxRatio: 0\n }\n },\n\n watch: {\n 'value.min' (val) {\n this.model.min = val === null\n ? this.min\n : val\n },\n\n 'value.max' (val) {\n this.model.max = val === null\n ? this.max\n : val\n },\n\n min (value) {\n if (this.model.min < value) {\n this.model.min = value\n }\n if (this.model.max < value) {\n this.model.max = value\n }\n },\n\n max (value) {\n if (this.model.min > value) {\n this.model.min = value\n }\n if (this.model.max > value) {\n this.model.max = value\n }\n }\n },\n\n computed: {\n ratioMin () {\n return this.active === true ? this.curMinRatio : this.modelMinRatio\n },\n\n ratioMax () {\n return this.active === true ? this.curMaxRatio : this.modelMaxRatio\n },\n\n modelMinRatio () {\n return this.minMaxDiff === 0 ? 0 : (this.model.min - this.min) / this.minMaxDiff\n },\n\n modelMaxRatio () {\n return this.minMaxDiff === 0 ? 0 : (this.model.max - this.min) / this.minMaxDiff\n },\n\n trackStyle () {\n return {\n [ this.positionProp ]: `${100 * this.ratioMin}%`,\n [ this.sizeProp ]: `${100 * (this.ratioMax - this.ratioMin)}%`\n }\n },\n\n minThumbStyle () {\n return {\n [ this.positionProp ]: `${100 * this.ratioMin}%`,\n 'z-index': this.__nextFocus === 'min' ? 2 : void 0\n }\n },\n\n maxThumbStyle () {\n return {\n [ this.positionProp ]: `${100 * this.ratioMax}%`\n }\n },\n\n minThumbClass () {\n if (this.preventFocus === false && this.focus === 'min') {\n return 'q-slider--focus'\n }\n },\n\n maxThumbClass () {\n if (this.preventFocus === false && this.focus === 'max') {\n return 'q-slider--focus'\n }\n },\n\n events () {\n if (this.editable === true) {\n if (this.$q.platform.is.mobile === true) {\n return { click: this.__mobileClick }\n }\n\n const evt = { mousedown: this.__activate }\n\n this.dragOnlyRange === true && Object.assign(evt, {\n focus: () => { this.__focus('both') },\n blur: this.__blur,\n keydown: this.__keydown,\n keyup: this.__keyup\n })\n\n return evt\n }\n },\n\n minEvents () {\n if (this.editable === true && this.$q.platform.is.mobile !== true && this.dragOnlyRange !== true) {\n return {\n focus: () => { this.__focus('min') },\n blur: this.__blur,\n keydown: this.__keydown,\n keyup: this.__keyup\n }\n }\n },\n\n maxEvents () {\n if (this.editable === true && this.$q.platform.is.mobile !== true && this.dragOnlyRange !== true) {\n return {\n focus: () => { this.__focus('max') },\n blur: this.__blur,\n keydown: this.__keydown,\n keyup: this.__keyup\n }\n }\n },\n\n minPinClass () {\n const color = this.leftLabelColor || this.labelColor\n if (color) {\n return `text-${color}`\n }\n },\n\n minPinTextClass () {\n const color = this.leftLabelTextColor || this.labelTextColor\n if (color) {\n return `text-${color}`\n }\n },\n\n maxPinClass () {\n const color = this.rightLabelColor || this.labelColor\n if (color) {\n return `text-${color}`\n }\n },\n\n maxPinTextClass () {\n const color = this.rightLabelTextColor || this.labelTextColor\n if (color) {\n return `text-${color}`\n }\n },\n\n minLabel () {\n return this.leftLabelValue !== void 0\n ? this.leftLabelValue\n : this.model.min\n },\n\n maxLabel () {\n return this.rightLabelValue !== void 0\n ? this.rightLabelValue\n : this.model.max\n },\n\n minPinStyle () {\n const percent = (this.reverse === true ? -this.ratioMin : this.ratioMin - 1)\n return this.__getPinStyle(percent, this.ratioMin)\n },\n\n maxPinStyle () {\n const percent = (this.reverse === true ? -this.ratioMax : this.ratioMax - 1)\n return this.__getPinStyle(percent, this.ratioMax)\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\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 : (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 = getRatio(event, dragging, this.isReversed, this.vertical)\n let type\n\n if (this.dragOnlyRange !== true && ratio < dragging.ratioMin + sensitivity) {\n type = dragType.MIN\n }\n else if (this.dragOnlyRange === true || ratio < dragging.ratioMax - sensitivity) {\n if (this.dragRange === true || this.dragOnlyRange === true) {\n type = dragType.RANGE\n Object.assign(dragging, {\n offsetRatio: ratio,\n offsetModel: getModel(ratio, this.min, this.max, this.step, this.decimals),\n rangeValue: dragging.valueMax - dragging.valueMin,\n rangeRatio: dragging.ratioMax - dragging.ratioMin\n })\n }\n else {\n type = dragging.ratioMax - ratio < ratio - dragging.ratioMin\n ? dragType.MAX\n : dragType.MIN\n }\n }\n else {\n type = dragType.MAX\n }\n\n dragging.type = type\n this.__nextFocus = void 0\n\n return dragging\n },\n\n __updatePosition (event, dragging = this.dragging) {\n const\n ratio = getRatio(event, dragging, this.isReversed, this.vertical),\n model = getModel(ratio, this.min, this.max, this.step, this.decimals)\n let pos\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: model,\n max: dragging.valueMax\n }\n this.__nextFocus = 'min'\n }\n else {\n pos = {\n minR: dragging.ratioMax,\n maxR: ratio,\n min: dragging.valueMax,\n max: model\n }\n this.__nextFocus = '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: model\n }\n this.__nextFocus = 'max'\n }\n else {\n pos = {\n minR: ratio,\n maxR: dragging.ratioMin,\n min: model,\n max: dragging.valueMin\n }\n this.__nextFocus = '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 = model - 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.decimals)),\n max: parseFloat((min + dragging.rangeValue).toFixed(this.decimals))\n }\n break\n }\n\n this.model = {\n min: pos.min,\n max: pos.max\n }\n\n // If either of the values to be emitted are null, set them to the defaults the user has entered.\n if (this.model.min === null || this.model.max === null) {\n this.model.min = pos.min || this.min\n this.model.max = pos.max || this.max\n }\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.minMaxDiff === 0 ? 0 : (this.model.min - this.min) / this.minMaxDiff\n this.curMaxRatio = this.minMaxDiff === 0 ? 0 : (this.model.max - this.min) / this.minMaxDiff\n }\n },\n\n __focus (which) {\n this.focus = which\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 if (this.dragOnlyRange) {\n const interval = this.dragOnlyRange\n ? this.model.max - this.model.min\n : 0\n\n const min = between(\n parseFloat((this.model.min + offset).toFixed(this.decimals)),\n this.min,\n this.max - interval\n )\n\n this.model = {\n min,\n max: parseFloat((min + interval).toFixed(this.decimals))\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.decimals)),\n which === 'min' ? this.min : this.model.min,\n which === 'max' ? this.max : this.model.max\n )\n }\n }\n\n this.__updateValue()\n },\n\n __getThumb (h, which) {\n const child = [\n this.__getThumbSvg(h),\n h('div', { staticClass: 'q-slider__focus-ring' })\n ]\n\n if (this.label === true || this.labelAlways === true) {\n child.push(\n h('div', {\n staticClass: `q-slider__pin q-slider__pin${this.axis} absolute`,\n style: this[which + 'PinStyle'].pin,\n class: this[which + 'PinClass']\n }, [\n h('div', {\n staticClass: `q-slider__pin-text-container q-slider__pin-text-container${this.axis}`,\n style: this[which + 'PinStyle'].pinTextContainer\n }, [\n h('span', {\n staticClass: 'q-slider__pin-text',\n class: this[which + 'PinTextClass']\n }, [\n this[which + 'Label']\n ])\n ])\n ]),\n\n h('div', {\n staticClass: `q-slider__arrow q-slider__arrow${this.axis}`,\n class: this[which + 'PinClass']\n })\n )\n }\n\n return h('div', {\n ref: which + 'Thumb',\n staticClass: `q-slider__thumb-container q-slider__thumb-container${this.axis} absolute non-selectable`,\n style: this[which + 'ThumbStyle'],\n class: this[which + 'ThumbClass'],\n on: this[which + 'Events'],\n attrs: { tabindex: this.dragOnlyRange !== true ? this.computedTabindex : null }\n }, child)\n }\n },\n\n render (h) {\n const track = [\n h('div', {\n staticClass: `q-slider__track q-slider__track${this.axis} absolute`,\n style: this.trackStyle\n })\n ]\n\n this.markers === true && track.push(\n h('div', {\n staticClass: `q-slider__track-markers q-slider__track-markers${this.axis} absolute-full fit`,\n style: this.markerStyle\n })\n )\n\n const child = [\n h('div', {\n staticClass: `q-slider__track-container q-slider__track-container${this.axis} absolute`\n }, track),\n\n this.__getThumb(h, 'min'),\n this.__getThumb(h, 'max')\n ]\n\n if (this.name !== void 0 && this.disable !== true) {\n this.__injectFormInput(child, 'push')\n }\n\n return h('div', {\n staticClass: this.value.min === null || this.value.max === null\n ? 'q-slider--no-value'\n : void 0,\n attrs: {\n ...this.attrs,\n 'aria-valuenow': this.value.min + '|' + this.value.max,\n tabindex: this.dragOnlyRange === true && this.$q.platform.is.mobile !== true\n ? this.computedTabindex\n : null\n },\n class: this.classes,\n on: this.events,\n directives: this.panDirectives\n }, child)\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/cache.js'\nimport { slot } from '../../utils/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 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 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 __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\n child = [],\n tabindex = this.editable === true ? 0 : null,\n icons = this.iconData,\n ceil = Math.ceil(this.value)\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 name = 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 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\n child.push(\n h(QIcon, {\n key: i,\n ref: `rt${i}`,\n staticClass: 'q-rating__icon',\n class: {\n 'q-rating__icon--active': active === true || half === true,\n 'q-rating__icon--exselected': exSelected,\n 'q-rating__icon--hovered': this.mouseModel === i,\n [`text-${color}`]: color !== void 0\n },\n props: { name: name || this.$q.iconSet.rating.icon },\n attrs: { tabindex },\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 }, slot(this, `tip-${i}`))\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/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 { between } from '../../utils/format.js'\nimport { setScrollPosition, setHorizontalScrollPosition } from '../../utils/scroll.js'\nimport { mergeSlot } from '../../utils/slot.js'\nimport cache from '../../utils/cache.js'\nimport debounce from '../../utils/debounce.js'\n\nimport QResizeObserver from '../resize-observer/QResizeObserver.js'\nimport QScrollObserver from '../scroll-observer/QScrollObserver.js'\nimport TouchPan from '../../directives/TouchPan.js'\nimport DarkMixin from '../../mixins/dark.js'\nimport { ariaHidden } from '../../mixins/attrs'\n\nexport default Vue.extend({\n name: 'QScrollArea',\n\n mixins: [ DarkMixin ],\n\n directives: {\n TouchPan\n },\n\n props: {\n barStyle: [ Array, String, Object ],\n thumbStyle: Object,\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 containerWidth: 0,\n containerHeight: 0,\n scrollPosition: 0,\n scrollSize: 0\n }\n },\n\n computed: {\n classes () {\n return 'q-scrollarea' +\n (this.isDark === true ? ' q-scrollarea--dark' : '')\n },\n\n thumbHidden () {\n return (\n (this.visible === null ? this.hover : this.visible) !== true &&\n this.tempShowing === false &&\n this.panning === false\n ) || this.scrollSize <= this.containerSize\n },\n\n thumbSize () {\n return Math.round(\n between(\n this.containerSize * this.containerSize / this.scrollSize,\n 50,\n this.containerSize\n )\n )\n },\n\n style () {\n const pos = this.scrollPercentage * (this.containerSize - this.thumbSize)\n return Object.assign(\n {},\n this.thumbStyle,\n this.horizontal === true\n ? {\n left: `${pos}px`,\n width: `${this.thumbSize}px`\n }\n : {\n top: `${pos}px`,\n height: `${this.thumbSize}px`\n }\n )\n },\n\n mainStyle () {\n return this.thumbHidden === true\n ? this.contentStyle\n : this.contentActiveStyle\n },\n\n scrollPercentage () {\n const p = between(this.scrollPosition / (this.scrollSize - this.containerSize), 0, 1)\n return Math.round(p * 10000) / 10000\n },\n\n containerSize () {\n return this[`container${this.dirProps.suffix}`]\n },\n\n dirProps () {\n return this.horizontal === true\n ? { prefix: 'horizontal', suffix: 'Width', scroll: 'scrollLeft', classSuffix: 'h absolute-bottom', dir: 'right', dist: 'x' }\n : { prefix: 'vertical', suffix: 'Height', scroll: 'scrollTop', classSuffix: 'v absolute-right', dir: 'down', dist: 'y' }\n },\n\n thumbClass () {\n return `q-scrollarea__thumb--${this.dirProps.classSuffix}` +\n (this.thumbHidden === true ? ' q-scrollarea__thumb--invisible' : '')\n },\n\n barClass () {\n return `q-scrollarea__bar--${this.dirProps.classSuffix}` +\n (this.thumbHidden === true ? ' q-scrollarea__bar--invisible' : '')\n },\n\n thumbDirectives () {\n return [{\n name: 'touch-pan',\n modifiers: {\n [ this.horizontal === true ? 'horizontal' : 'vertical' ]: true,\n prevent: true,\n mouse: true,\n mouseAllDir: true\n },\n value: this.__panThumb\n }]\n },\n\n scrollAttrs () {\n if (this.tabindex !== void 0) {\n return { tabindex: this.tabindex }\n }\n }\n },\n\n methods: {\n getScrollTarget () {\n return this.$refs.target\n },\n\n getScrollPosition () {\n return this.scrollPosition\n },\n\n setScrollPosition (offset, duration) {\n const fn = this.horizontal === true\n ? setHorizontalScrollPosition\n : setScrollPosition\n\n fn(this.$refs.target, offset, duration)\n },\n\n setScrollPercentage (percentage, duration) {\n this.setScrollPosition(\n percentage * (this.scrollSize - this.containerSize),\n duration\n )\n },\n\n __updateContainer ({ height, width }) {\n let change = false\n\n if (this.containerWidth !== width) {\n this.containerWidth = width\n change = true\n }\n\n if (this.containerHeight !== height) {\n this.containerHeight = height\n change = true\n }\n\n change === true && this.__startTimer()\n },\n\n __updateScroll (info) {\n if (this.scrollPosition !== info.position) {\n this.scrollPosition = info.position\n this.__startTimer()\n }\n },\n\n __updateScrollSize ({ height, width }) {\n if (this.horizontal === true) {\n if (this.scrollSize !== width) {\n this.scrollSize = width\n this.__startTimer()\n }\n }\n else if (this.scrollSize !== height) {\n this.scrollSize = height\n this.__startTimer()\n }\n },\n\n __panThumb (e) {\n if (e.isFirst === true) {\n if (this.thumbHidden === true) {\n return\n }\n\n this.refPos = this.scrollPosition\n this.panning = true\n }\n else if (this.panning !== true) {\n return\n }\n\n if (e.isFinal === true) {\n this.panning = false\n }\n\n const multiplier = (this.scrollSize - this.containerSize) / (this.containerSize - this.thumbSize)\n const distance = e.distance[this.dirProps.dist]\n const pos = this.refPos + (e.direction === this.dirProps.dir ? 1 : -1) * distance * multiplier\n\n this.__setScroll(pos)\n },\n\n __mouseDown (evt) {\n if (this.thumbHidden !== true) {\n const pos = evt[`offset${this.horizontal === true ? 'X' : 'Y'}`] - this.thumbSize / 2\n this.__setScroll(pos / this.containerSize * this.scrollSize)\n\n // activate thumb pan\n if (this.$refs.thumb !== void 0) {\n this.$refs.thumb.dispatchEvent(new MouseEvent(evt.type, evt))\n }\n }\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(() => {\n this.tempShowing = false\n }, this.delay)\n\n this.__emitScroll()\n },\n\n __setScroll (offset) {\n this.$refs.target[this.dirProps.scroll] = offset\n }\n },\n\n render (h) {\n return h('div', {\n class: this.classes,\n on: cache(this, 'desk', {\n mouseenter: () => { this.hover = true },\n mouseleave: () => { this.hover = false }\n })\n }, [\n h('div', {\n ref: 'target',\n staticClass: 'scroll relative-position fit hide-scrollbar',\n attrs: this.scrollAttrs\n }, [\n h('div', {\n staticClass: 'absolute',\n style: this.mainStyle,\n class: `full-${this.horizontal === true ? 'height' : 'width'}`\n }, mergeSlot([\n h(QResizeObserver, {\n on: cache(this, 'resizeIn', { resize: this.__updateScrollSize })\n })\n ], this, 'default')),\n\n h(QScrollObserver, {\n props: { horizontal: this.horizontal },\n on: cache(this, 'scroll', { scroll: this.__updateScroll })\n })\n ]),\n\n h(QResizeObserver, {\n on: cache(this, 'resizeOut', { resize: this.__updateContainer })\n }),\n\n h('div', {\n staticClass: 'q-scrollarea__bar',\n style: this.barStyle,\n class: this.barClass,\n attrs: ariaHidden,\n on: cache(this, 'bar', {\n mousedown: this.__mouseDown\n })\n }),\n\n h('div', {\n ref: 'thumb',\n staticClass: 'q-scrollarea__thumb',\n style: this.style,\n class: this.thumbClass,\n attrs: ariaHidden,\n directives: this.thumbDirectives\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 if (this.$listeners.scroll !== void 0) {\n const info = { ref: this }\n const prefix = this.dirProps.prefix\n\n info[prefix + 'Position'] = this.scrollPosition\n info[prefix + 'Percentage'] = this.scrollPercentage\n info[prefix + 'Size'] = this.scrollSize\n info[prefix + 'ContainerSize'] = this.containerSize\n\n this.$emit('scroll', info)\n }\n }, 0)\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'\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 slice = Array.prototype.slice\n\nlet buggyRTL = void 0\n\n// mobile Chrome takes the crown for this\nfunction detectBuggyRTL () {\n const scroller = document.createElement('div')\n const spacer = document.createElement('div')\n\n scroller.setAttribute('dir', 'rtl')\n scroller.style.width = '1px'\n scroller.style.height = '1px'\n scroller.style.overflow = 'auto'\n\n spacer.style.width = '1000px'\n spacer.style.height = '1px'\n\n document.body.appendChild(scroller)\n scroller.appendChild(spacer)\n scroller.scrollLeft = -1000\n\n buggyRTL = scroller.scrollLeft >= 0\n\n scroller.remove()\n}\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 += window.innerWidth\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 = (buggyRTL === 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 += window.innerHeight\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 (parent === window) {\n if (horizontal === true) {\n if (rtl === true) {\n scroll = (buggyRTL === true ? document.body.scrollWidth - window.innerWidth : 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 = (buggyRTL === 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\nlet id = 1\n\nfunction setOverflowAnchor (id, index) {\n if (setOverflowAnchor.isSupported === void 0) {\n setOverflowAnchor.isSupported = window.getComputedStyle(document.body).overflowAnchor !== void 0\n }\n\n if (setOverflowAnchor.isSupported === false) {\n return\n }\n\n const ssId = id + '_ss'\n\n let styleSheet = document.getElementById(ssId)\n\n if (styleSheet === null) {\n styleSheet = document.createElement('style')\n styleSheet.type = 'text/css'\n styleSheet.id = ssId\n document.head.appendChild(styleSheet)\n }\n\n if (styleSheet.qChildIndex !== index) {\n styleSheet.qChildIndex = index\n styleSheet.innerHTML = `#${id} > *:nth-child(${index}) { overflow-anchor: auto }`\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 id: 'qvs_' + id++\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 if (\n rangeChanged === true &&\n this.$refs.content !== void 0 &&\n this.$refs.content !== activeElement &&\n this.$refs.content.contains(activeElement) === true\n ) {\n const onBlurFn = () => {\n this.$refs.content.focus()\n }\n\n activeElement.addEventListener('blur', onBlurFn, true)\n\n requestAnimationFrame(() => {\n activeElement.removeEventListener('blur', onBlurFn, true)\n })\n }\n\n setOverflowAnchor(this.id, toIndex - from + 1)\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 = slice.call(contentEl.children).filter(el => el.classList.contains('q-virtual-scroll--skip') === false),\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 if (toIndex >= 0) {\n this.__updateVirtualScrollSizes(this.virtualScrollSliceRange.from)\n\n this.$nextTick(() => {\n this.scrollTo(toIndex)\n })\n }\n else {\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 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 multiplier = 1 + this.virtualScrollSliceRatioBefore + this.virtualScrollSliceRatioAfter\n const view = scrollViewSize === void 0 || scrollViewSize <= 0\n ? 1\n : Math.ceil(scrollViewSize / this.virtualScrollItemSizeComputed)\n const baseSize = Math.max(\n 10,\n view,\n Math.ceil(this.virtualScrollSliceSize / multiplier)\n )\n\n this.virtualScrollSliceSizeComputed = {\n total: Math.ceil(baseSize * multiplier),\n start: Math.ceil(baseSize * this.virtualScrollSliceRatioBefore),\n center: Math.ceil(baseSize * (0.5 + this.virtualScrollSliceRatioBefore)),\n end: Math.ceil(baseSize * (1 + this.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: { id: this.id, 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\n created () {\n this.__setVirtualScrollSize()\n },\n\n beforeMount () {\n buggyRTL === void 0 && detectBuggyRTL()\n this.__onVirtualScrollEvt = debounce(this.__onVirtualScrollEvt, this.$q.platform.is.ios === true ? 120 : 35)\n this.__setVirtualScrollSize()\n },\n\n beforeDestroy () {\n const styleSheet = document.getElementById(this.id + '_ss')\n styleSheet !== null && styleSheet.remove()\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/key-composition.js'\nimport { mergeSlot } from '../../utils/slot.js'\nimport cache from '../../utils/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\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 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) === true\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.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 return this.__getPropValueFn('optionDisable', 'disable')\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.dense === true ? 24 : 48)\n : this.virtualScrollItemSize\n },\n\n comboboxAttrs () {\n return {\n role: 'combobox',\n 'aria-multiselectable': this.multiple === true ? 'true' : 'false',\n 'aria-expanded': this.menu === true ? 'true' : 'false',\n 'aria-owns': `${this.targetUid}_lb`,\n 'aria-activedescendant': `${this.targetUid}_${this.optionIndex}`\n }\n },\n\n listboxAttrs () {\n return {\n role: 'listbox',\n id: `${this.targetUid}_lb`\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.hidePopup()\n }\n\n this.$refs.target !== void 0 && this.$refs.target.focus()\n\n if (isDeepEqual(this.getOptionValue(this.innerValue[0]), optValue) !== true) {\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 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 __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 => Object(opt) === opt && val in opt\n ? opt[val]\n : 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 () {\n if (this.useInput === true && this.$refs.target !== void 0) {\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\n let fn = opt => this.getOptionValue(opt).toLocaleLowerCase() === needle\n let option = this.options.find(fn)\n\n if (option !== void 0) {\n if (this.innerValue.indexOf(option) === -1) {\n this.toggleOption(option)\n }\n else {\n this.hidePopup()\n }\n }\n else {\n fn = opt => this.getOptionLabel(opt).toLocaleLowerCase() === needle\n option = this.options.find(fn)\n\n if (option !== void 0) {\n if (this.innerValue.indexOf(option) === -1) {\n this.toggleOption(option)\n }\n else {\n this.hidePopup()\n }\n }\n else {\n this.filter(value, true)\n }\n }\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 === e.ctrlKey && // not kbd shortcut\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: 'option-' + 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.displayValue !== void 0\n ? this.displayValue\n : this.selectedString\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 && isTarget === true) {\n child.push(\n h('div', {\n ref: 'target',\n key: 'd_t',\n staticClass: 'no-outline',\n attrs: {\n id: this.targetUid,\n tabindex: this.tabindex,\n ...this.comboboxAttrs\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 (typeof this.autocomplete === 'string' && this.autocomplete.length > 0) {\n child.push(\n h('input', {\n staticClass: 'q-select__autocomplete-input no-outline',\n attrs: { autocomplete: this.autocomplete },\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 return h('div', { staticClass: 'q-field__native row items-center', attrs: this.qAttrs }, child)\n },\n\n __getOptions (h) {\n if (this.menu !== true) {\n return 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 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 ...this.qAttrs,\n id: this.targetUid,\n maxlength: this.maxlength, // this is converted to prop by QField\n tabindex: this.tabindex,\n autocomplete: this.autocomplete,\n 'data-autofocus': fromDialog === true ? false : this.autofocus,\n disabled: this.disable === true,\n readonly: this.readonly === true,\n ...this.comboboxAttrs\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.composing === 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) {\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 }\n }\n\n typeof afterFn === 'function' && this.$nextTick(() => { afterFn(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 if (this.hasDialog !== true) {\n // label from QField will propagate click on the input (except IE)\n prevent(e)\n\n if (this.menu === true) {\n this.__closeMenu()\n this.$refs.target !== void 0 && this.$refs.target.focus()\n return\n }\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 const child = this.noOptions === true\n ? (\n this.$scopedSlots['no-option'] !== void 0\n ? this.$scopedSlots['no-option']({ inputValue: this.inputValue })\n : null\n )\n : this.__getOptions(h)\n\n return h(QMenu, {\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 }, child)\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 ref: 'menuContent',\n staticClass: '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 }, (\n this.noOptions === true\n ? (\n this.$scopedSlots['no-option'] !== void 0\n ? this.$scopedSlots['no-option']({ inputValue: this.inputValue })\n : null\n )\n : this.__getOptions(h)\n ))\n )\n\n return h(QDialog, {\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 this.$refs.dialog.__refocusTarget = this.$el.querySelector('.q-field__native > [tabindex]:last-child')\n this.focused = false\n },\n\n __onDialogHide (e) {\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/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/slot.js'\nimport { cacheWithFn } from '../../utils/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/slot.js'\nimport { stop } from '../../utils/event.js'\nimport cache from '../../utils/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/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 &&\n this.isError === false &&\n this.isDone === false\n },\n\n icon () {\n if (this.isActive === true) {\n return this.step.activeIcon || this.stepper.activeIcon || this.$q.iconSet.stepper.active\n }\n if (this.isError === true) {\n return this.step.errorIcon || this.stepper.errorIcon || this.$q.iconSet.stepper.error\n }\n if (this.isDisable === false && this.isDone === true) {\n return this.step.doneIcon || this.stepper.doneIcon || this.$q.iconSet.stepper.done\n }\n\n return this.step.icon || this.stepper.inactiveIcon\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 ? ' q-stepper__tab--error' : '') +\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/slot.js'\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\n watch: {\n isActive (active) {\n if (\n active === true &&\n this.stepper.vertical === true\n ) {\n this.$nextTick(() => {\n if (this.$el !== void 0) {\n this.$el.scrollTop = 0\n }\n })\n }\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 on: { ...this.qListeners }\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/slot.js'\nimport { stop } from '../../utils/event.js'\nimport cache from '../../utils/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.contracted === true ? ' q-stepper--contracted' : '') +\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.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/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/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/cache.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 Object.defineProperty(data, 'selected', {\n get: () => this.headerSelectedValue,\n set: this.__onMultipleSelectionSet,\n configurable: true,\n enumerable: true\n })\n\n // TODO: remove in v2\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\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 => {\n const c = { ...col }\n Object.defineProperty(c, 'value', {\n get: () => this.getCellValue(col, data.row),\n configurable: true,\n enumerable: true\n })\n return c\n })\n\n return data\n },\n\n __getBodyCellScope (data) {\n this.__injectBodyCommonScope(data)\n\n Object.defineProperty(data, 'value', {\n get: () => this.getCellValue(data.col, data.row),\n configurable: true,\n enumerable: true\n })\n\n return data\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 && Object.defineProperty(data, 'selected', {\n get: () => this.isRowSelected(data.key),\n set: (adding, evt) => {\n this.__updateSelection([ data.key ], [ data.row ], adding, evt)\n },\n configurable: true,\n enumerable: true\n })\n\n Object.defineProperty(data, 'expand', {\n get: () => this.isRowExpanded(data.key),\n set: adding => {\n this.__updateExpanded(data.key, adding)\n },\n configurable: true,\n enumerable: true\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/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/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 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/sort.js'\nimport { isNumber, isDate } 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 (col === Object(col)) {\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/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\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/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/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","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\nexport function 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\nexport function 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","import Vue from 'vue'\n\nimport QTab from './QTab.js'\nimport { RouterLinkMixin } from '../../mixins/router-link.js'\nimport { isSameRoute, isIncludedRoute } from '../../utils/router.js'\nimport { stopAndPrevent, noop } from '../../utils/event.js'\n\nexport default Vue.extend({\n name: 'QRouteTab',\n\n mixins: [ QTab, RouterLinkMixin ],\n\n props: {\n to: { required: true }\n },\n\n inject: {\n __activateRoute: {},\n __recalculateScroll: {}\n },\n\n watch: {\n $route () {\n this.__checkActivation()\n }\n },\n\n computed: {\n routerTabLinkProps () {\n return {\n ...this.routerLinkProps,\n event: []\n }\n }\n },\n\n methods: {\n __activate (e, keyboard) {\n if (this.disable !== true) {\n if (\n e !== void 0 && (\n e.ctrlKey === true ||\n e.shiftKey === true ||\n e.altKey === true ||\n e.metaKey === true\n )\n ) {\n // if it has meta keys, let vue-router link\n // handle this by its own\n this.__checkActivation(true)\n }\n else {\n // we use programatic navigation instead of letting vue-router handle it\n // so we can check for activation when the navigation is complete\n e !== void 0 && stopAndPrevent(e)\n\n const go = (to = this.to, append = this.append, replace = this.replace) => {\n const { route } = this.$router.resolve(to, this.$route, append)\n const checkFn = to === this.to && append === this.append && replace === this.replace\n ? this.__checkActivation\n : noop\n\n // vue-router now throwing error if navigating\n // to the same route that the user is currently at\n // https://github.com/vuejs/vue-router/issues/2872\n this.$router[replace === true ? 'replace' : 'push'](\n route,\n () => { checkFn(true) },\n err => {\n if (err && err.name === 'NavigationDuplicated') {\n checkFn(true)\n }\n }\n )\n }\n\n this.qListeners.click !== void 0 && this.$emit('click', e, go)\n if (e === void 0 || e.navigate !== false) {\n go()\n }\n }\n }\n\n if (keyboard === true) {\n this.$el.focus(e)\n }\n else {\n this.$refs.blurTarget !== void 0 && this.$refs.blurTarget.focus(e)\n }\n },\n\n __checkActivation (selected = false) {\n const\n current = this.$route,\n { href, location, route } = this.$router.resolve(this.to, current, this.append),\n redirected = route.redirectedFrom !== void 0,\n isSameRouteCheck = isSameRoute(current, route),\n checkFunction = this.exact === true ? isSameRoute : isIncludedRoute,\n params = {\n name: this.name,\n selected,\n exact: this.exact,\n priorityMatched: route.matched.length,\n priorityHref: href.length\n }\n\n if (isSameRouteCheck === true || (this.exact !== true && isIncludedRoute(current, route) === true)) {\n this.__activateRoute({\n ...params,\n redirected,\n // if it's an exact match give higher priority\n // even if the tab is not marked as exact\n exact: this.exact === true || isSameRouteCheck === true\n })\n }\n\n if (\n redirected === true &&\n checkFunction(current, {\n path: route.redirectedFrom,\n ...location\n }) === true\n ) {\n this.__activateRoute(params)\n }\n\n this.isActive === true && this.__activateRoute()\n }\n },\n\n mounted () {\n this.__recalculateScroll()\n this.$router !== void 0 && this.__checkActivation()\n },\n\n beforeDestroy () {\n this.__recalculateScroll()\n this.__activateRoute({ remove: true, name: this.name })\n },\n\n render (h) {\n return this.__renderTab(h, 'router-link', this.routerTabLinkProps)\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/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/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 this.__updateValue({\n ...this.__getCurrentDate(),\n ...this.__getCurrentTime()\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/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/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/slot.js'\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 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/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/key-composition.js'\nimport cache from '../../utils/cache.js'\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 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 => ['none', 'strict', 'leaf', 'leaf-filtered'].includes(v)\n },\n ticked: Array, // sync\n expanded: Array, // sync\n selected: {}, // sync\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\n noNodesLabel: String,\n noResultsLabel: String\n },\n\n computed: {\n classes () {\n return `q-tree` +\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 isLeaf = isParent !== true,\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 isLeaf,\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 : (isLeaf === true ? this.innerTicked.includes(key) : false)\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 Object.defineProperty(scope, 'expanded', {\n get: () => { return meta.expanded },\n set: val => { val !== meta.expanded && this.setExpanded(key, val) },\n configurable: true,\n enumerable: true\n })\n Object.defineProperty(scope, 'ticked', {\n get: () => { return meta.ticked },\n set: val => { val !== meta.ticked && this.setTicked([ key ], val) },\n configurable: true,\n enumerable: true\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 q-mr-xs',\n props: { color: this.computedControlColor }\n })\n : (\n isParent === true\n ? h(QIcon, {\n staticClass: 'q-tree__arrow q-mr-xs',\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-mr-xs',\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 ? 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 : 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) {\n if (meta.selectable) {\n this.$emit('update:selected', meta.key !== this.selected ? meta.key : null)\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/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.name !== file.name)\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.name !== file.name) {\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.name !== file.name)\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 processedFiles = this.__processFiles(e, fileList, this.files, true)\n\n if (processedFiles === void 0) { return }\n\n const files = processedFiles\n .filter(file => this.files.findIndex(f => file.name === f.name) === -1)\n\n if (files === void 0) { return }\n\n const fileInput = this.__getFileInput()\n if (fileInput !== void 0) {\n fileInput.value = ''\n }\n\n files.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(files)\n this.queuedFiles = this.queuedFiles.concat(files)\n this.$emit('added', files)\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: icon === 'add' ? null : { click: 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 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 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 __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.name,\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 },\n on: this.canAddFiles === true\n ? cache(this, 'drag', { dragover: this.__onDragOver })\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\n computed: {\n iframeData () {\n return {\n attrs: {\n src: this.src,\n frameborder: '0',\n allowfullscreen: true\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/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/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","let 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,\n hideFromClone: options.hideFromClone === true,\n keepToClone: 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 getElement (element) {\n const type = typeof element\n\n return type === 'function'\n ? element()\n : (\n type === 'string'\n ? document.querySelector(element)\n : element\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 (options.style === Object(options.style)) {\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 = ev => {\n if (ev === Object(ev) && ev.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 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 { getScrollPosition, getScrollTarget, 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 getScrollPosition(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/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 ? 'Capture' : ''}` ]\n ])\n\n client.has.touch === true && addEvt(ctx, 'main', [\n [ el, 'touchstart', 'touchStart', `passive${modifiers.capture === true ? 'Capture' : ''}` ],\n [ el, 'touchend', 'noop', 'notPassiveCapture' ]\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/selection.js'\nimport { isKeyCode } from '../utils/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 ? 'Capture' : ''}` ]\n ])\n\n client.has.touch === true && addEvt(ctx, 'main', [\n [ el, 'touchstart', 'touchStart', `passive${modifiers.capture === true ? 'Capture' : ''}` ],\n [ el, 'touchend', 'noop', 'notPassiveCapture' ]\n ])\n\n keyboard.length > 0 && addEvt(ctx, 'main', [\n [ el, 'keydown', 'keyboardStart', `notPassive${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 } 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\nexport default {\n isCapable: false,\n isActive: false,\n activeEl: null,\n\n request (target) {\n if (this.isCapable === true && this.isActive === false) {\n const el = target || document.documentElement\n return promisify(el, prefixes.request).then(() => {\n this.activeEl = el\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(() => {\n this.activeEl = null\n })\n : this.__getErr()\n },\n\n toggle (target) {\n return this.isActive === true\n ? this.exit()\n : this.request(target)\n },\n\n install ({ $q }) {\n $q.fullscreen = this\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 this.__getErr = () => Promise.resolve()\n\n prefixes.exit = [\n 'exitFullscreen',\n 'msExitFullscreen', 'mozCancelFullScreen', 'webkitExitFullscreen'\n ].find(exit => document[exit])\n\n this.isActive = !!(document.fullscreenElement ||\n document.mozFullScreenElement ||\n document.webkitFullscreenElement ||\n document.msFullscreenElement)\n\n ;[\n 'onfullscreenchange',\n 'onmsfullscreenchange', 'onwebkitfullscreenchange'\n ].forEach(evt => {\n document[evt] = () => {\n this.isActive = this.isActive === false\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/cache.js'\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 attrs: { tabindex: 0 },\n on: {\n click: () => this.onOk(action),\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 props: {\n tabindex: 0,\n clickable: true,\n dark: this.isDark\n },\n on: {\n click: () => this.onOk(action),\n keyup: e => {\n e.keyCode === 13 && 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', {\n staticClass: 'row items-stretch justify-start'\n }, this.__getGrid(h))\n : h('div', 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\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: parent === void 0 ? root : parent,\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/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 !== undefined) {\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/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/cache.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 Object(this.progress) === this.progress\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 Object(this.ok) === this.ok\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 Object(this.cancel) === this.cancel\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 ...(Object(this.ok) === this.ok ? this.ok : { flat: true }),\n disable: this.okDisabled\n }\n },\n\n cancelProps () {\n return {\n color: this.vmColor,\n label: this.cancelLabel,\n ripple: false,\n ...(Object(this.cancel) === this.cancel ? 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/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 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 if (isSSR === true) {\n $q.loadingBar = this\n return\n }\n\n const props = cfg.loadingBar !== void 0\n ? { ...cfg.loadingBar }\n : {}\n\n const bar = $q.loadingBar = new Vue({\n name: 'LoadingBar',\n render: h => h(QAjaxBar, {\n ref: 'bar',\n props\n })\n }).$mount().$refs.bar\n\n Object.assign(this, {\n start: speed => {\n bar.start(speed)\n this.isActive = bar.isActive = bar.calls > 0\n },\n stop: () => {\n bar.stop()\n this.isActive = bar.isActive = bar.calls > 0\n },\n increment: bar.increment,\n setDefaults: opts => {\n opts === Object(opts) && 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/cache.js'\nimport { preventScroll } from '../mixins/prevent-scroll.js'\n\nlet\n vm,\n uid = 0,\n timeout,\n props = {}\nconst\n originalDefaults = {\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 defaults = { ...originalDefaults }\n\nconst Loading = {\n isActive: false,\n\n show (opts) {\n if (isSSR === true) { return }\n\n props = opts === Object(opts) && opts.ignoreDefaults === true\n ? { ...originalDefaults, ...opts }\n : { ...defaults, ...opts }\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 return\n }\n\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 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 hide () {\n if (this.isActive === true) {\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 opts === Object(opts) && 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 !== 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 { isSSR } from './Platform.js'\n\nlet uid = 0\nconst defaults = {}\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 () { return this.$q.iconSet.type.positive },\n color: 'positive'\n },\n\n negative: {\n icon () { return this.$q.iconSet.type.negative },\n color: 'negative'\n },\n\n warning: {\n icon () { return this.$q.iconSet.type.warning },\n color: 'warning',\n textColor: 'dark'\n },\n\n info: {\n icon () { return this.$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\nconst groups = {}\nconst positionClass = {}\n\nfunction logError (error, config) {\n console.error(`Notify: ${error}`, config)\n return false\n}\n\nconst Notifications = {\n name: 'QNotifications',\n\n created () {\n this.notifs = {}\n\n positionList.forEach(pos => {\n this.notifs[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\n methods: {\n add (config, 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 (Object(config) !== config) {\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.call(this)\n }\n\n if (notif.spinner === void 0) {\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 }\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.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 notif.closeBtn && actions.push({\n label: typeof notif.closeBtn === 'string'\n ? notif.closeBtn\n : this.$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 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(a => `${a.props.label}*${a.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 = this.notifs[notif.position].indexOf(originalApi.notif)\n this.notifs[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 this.notifs[notif.position].splice(\n Math.floor(this.notifs[notif.position].length / 2),\n 0,\n notif\n )\n }\n else {\n const action = notif.position.indexOf('top') > -1 ? 'unshift' : 'push'\n this.notifs[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.badgeStaticClass = `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\n const index = this.notifs[notif.position].indexOf(original)\n this.notifs[notif.position][index] = groups[notif.meta.group] = notif\n }\n }\n\n const dismiss = () => {\n this.remove(notif)\n Api = void 0\n }\n\n this.$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 this.add(newNotif, Api)\n }\n }\n }\n },\n\n remove (notif) {\n clearTimeout(notif.meta.timer)\n\n const index = this.notifs[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 = this.$refs[`notif_${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 this.notifs[notif.position].splice(index, 1)\n\n this.$forceUpdate()\n\n if (typeof notif.onDismiss === 'function') {\n notif.onDismiss()\n }\n }\n }\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 }, this.notifs[pos].map(notif => {\n let msgChild\n\n const meta = notif.meta\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 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'\n })\n )\n }\n else if (notif.icon) {\n mainChild.push(\n h(QIcon, {\n staticClass: 'q-notification__icon',\n attrs: { role: 'img' },\n props: { name: notif.icon }\n })\n )\n }\n else if (notif.avatar) {\n mainChild.push(\n h(QAvatar, { staticClass: 'q-notification__avatar' }, [\n h('img', { attrs: { src: notif.avatar, 'aria-hidden': 'true' } })\n ])\n )\n }\n }\n\n mainChild.push(\n h('div', msgData, msgChild)\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: 'q-notification__progress',\n style: meta.progressStyle,\n class: notif.progressClass\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.badgeStaticClass,\n style: notif.badgeStyle,\n class: notif.badgeClass\n }, [ meta.badge ])\n )\n\n return h('div', {\n ref: `notif_${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 = isFullscreen => {\n const newParent = getBodyFullscreenElement(\n isFullscreen,\n this.$q.fullscreen.activeEl\n )\n\n if (this.$el.parentElement !== newParent) {\n newParent.appendChild(this.$el)\n }\n }\n\n this.unwatchFullscreen = this.$watch('$q.fullscreen.isActive', append)\n\n if (this.$q.fullscreen.isActive === true) {\n append(true)\n }\n }\n },\n\n beforeDestroy () {\n this.unwatchFullscreen !== void 0 && this.unwatchFullscreen()\n }\n}\n\nexport default {\n create (opts) {\n if (isSSR === true) { return noop }\n return this.__vm.add(opts)\n },\n setDefaults (opts) {\n opts === Object(opts) && Object.assign(defaults, opts)\n },\n registerType (typeName, typeOpts) {\n if (isSSR !== true && typeOpts === Object(typeOpts)) {\n notifTypes[typeName] = typeOpts\n }\n },\n\n install ({ cfg, $q }) {\n if (isSSR === true) {\n $q.notify = noop\n $q.notify.setDefaults = noop\n return\n }\n\n this.setDefaults(cfg.notify)\n\n $q.notify = this.create.bind(this)\n $q.notify.setDefaults = this.setDefaults\n $q.notify.registerType = this.registerType\n\n const node = document.createElement('div')\n document.body.appendChild(node)\n\n this.__vm = new Vue(Notifications)\n this.__vm.$mount(node)\n }\n}\n","import { noop } from '../utils/event.js'\n\nfunction encode (value) {\n if (Object.prototype.toString.call(value) === '[object Date]') {\n return '__q_date|' + value.toUTCString()\n }\n if (Object.prototype.toString.call(value) === '[object RegExp]') {\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/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/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","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 openURL from './utils/open-url.js'\nimport morph from './utils/morph.js'\nimport patterns from './utils/patterns.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 exportFile,\n extend,\n format,\n frameDebounce,\n noop,\n openURL,\n morph,\n patterns,\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","import { Cookies } from 'quasar'\r\n\r\nconst LastLoginEmailCookieName = \"LastLoginEmail\";\r\n\r\nexport default {\r\n props: {\r\n returnUrl: String\r\n },\r\n\r\n data: function () {\r\n return {\r\n loading: false,\r\n model: this.emptyModel(),\r\n loginScreenType: {\r\n Email: 1,\r\n Password: 2,\r\n NewPasswordAndProfile: 3,\r\n SoftwareToken: 4,\r\n ForgotPasswordInitiate: 5,\r\n ForgotPasswordConfirm: 6\r\n }\r\n };\r\n },\r\n\r\n methods: {\r\n isPasswordValid: function (val) {\r\n return val.match(/^(?=.*[0-9])(?=.*[!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~])[a-zA-Z0-9!\"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~]{12,}$/);\r\n },\r\n\r\n emptyModel() {\r\n let lastLogin = Cookies.has(LastLoginEmailCookieName) ? Cookies.get(LastLoginEmailCookieName) : null; \r\n return {\r\n ErrorMessage: null,\r\n LoginScreen: 1, //loginScreenType.Email\r\n DisplayErrors: false,\r\n IdentityProviders: [],\r\n LoginData: {\r\n Email: lastLogin,\r\n Password: null,\r\n ReturnUrl: this.returnUrl,\r\n },\r\n NewPasswordData: {\r\n UserId: null,\r\n UserEmail: null,\r\n SessionId: null,\r\n Password: null,\r\n ConformPassword: null,\r\n GivenName: null,\r\n FamilyName: null,\r\n ReturnUrl: this.returnUrl\r\n },\r\n SoftwareTokenData: {\r\n UserId: null,\r\n UserEmail: null,\r\n SessionId: null,\r\n Token: null,\r\n ReturnUrl: this.returnUrl,\r\n },\r\n ForgotPasswordInitiateData: {\r\n Email: null,\r\n ReturnUrl: this.returnUrl\r\n },\r\n ForgotPasswordConfirmData: {\r\n Email: null,\r\n Password: null,\r\n ConfirmPassword: null,\r\n ConfirmationCode: null,\r\n ReturnUrl: this.returnUrl\r\n }\r\n };\r\n },\r\n\r\n show() {\r\n this.$refs.dialog.show();\r\n },\r\n\r\n hide() {\r\n this.$refs.dialog.hide();\r\n },\r\n\r\n onDialogHide() {\r\n this.$emit('hide');\r\n },\r\n\r\n async onNextClick() {\r\n try {\r\n let validateResult = await this.$refs.modelEmailForm.validate();\r\n if (validateResult) {\r\n this.loading = true;\r\n\r\n let response = await this.$http.post('/ui/account/check_email', this.model.LoginData, {});\r\n let responseData = response.body;\r\n if (responseData.resultType == 99) {\r\n this.model.ErrorMessage = responseData.message ? responseData.message : 'Something went wrong';\r\n this.model.DisplayErrors = true;\r\n return false;\r\n } else if (responseData.resultType == 4) {\r\n this.onSignInWithExternalProvider(responseData.identityProviderId);\r\n } else {\r\n this.model.LoginScreen = this.loginScreenType.Password;\r\n this.model.DisplayErrors = false;\r\n\r\n if (responseData.allowedIdentityProviders.length > 0) {\r\n this.model.IdentityProviders = responseData.allowedIdentityProviders;\r\n }\r\n }\r\n return true;\r\n }\r\n else\r\n return false;\r\n } catch (ex) {\r\n this.$processException(ex);\r\n return false;\r\n } finally {\r\n this.loading = false;\r\n }\r\n },\r\n\r\n async onBackClick() {\r\n this.model.LoginScreen = this.loginScreenType.Email;\r\n this.model.DisplayErrors = false;\r\n },\r\n\r\n async onForgotPasswordClick() {\r\n this.model.ForgotPasswordInitiateData.Email = this.model.LoginData.Email;\r\n this.model.LoginScreen = this.loginScreenType.ForgotPasswordInitiate;\r\n this.model.DisplayErrors = false;\r\n },\r\n\r\n async onSignInClick() {\r\n try {\r\n let validateResult = await this.$refs.modelPasswordForm.validate();\r\n if (validateResult) {\r\n this.loading = true;\r\n\r\n let response = await this.$http.post('/ui/account/login', this.model.LoginData, {});\r\n let responseData = response.body;\r\n if (responseData.resultType == 99) {\r\n this.model.ErrorMessage = responseData.message ? responseData.message : 'Something went wrong';\r\n this.model.DisplayErrors = true;\r\n return false;\r\n }\r\n else if (responseData.resultType == 0) {\r\n this.onSuccessfulLogin(responseData.returnUrl);\r\n }\r\n else if (responseData.resultType == 1) {\r\n this.model.LoginScreen = this.loginScreenType.NewPasswordAndProfile;\r\n this.model.DisplayErrors = false;\r\n\r\n this.model.NewPasswordData.UserId = responseData.userId;\r\n this.model.NewPasswordData.UserEmail = responseData.userEmail;\r\n this.model.NewPasswordData.SessionId = responseData.sessionId;\r\n }\r\n else if (responseData.resultType == 2) {\r\n this.model.LoginScreen = this.loginScreenType.SoftwareToken;\r\n this.model.DisplayErrors = false;\r\n\r\n this.model.SoftwareTokenData.UserId = responseData.userId;\r\n this.model.SoftwareTokenData.UserEmail = responseData.userEmail;\r\n this.model.SoftwareTokenData.SessionId = responseData.sessionId;\r\n }\r\n else if (responseData.resultType == 3) {\r\n this.model.LoginScreen = this.loginScreenType.ForgotPasswordConfirm;\r\n this.model.DisplayErrors = true;\r\n this.model.ErrorMessage = \"Password reset required for user due to security reasons\";\r\n this.model.ForgotPasswordConfirmData.Email = responseData.userId;\r\n }\r\n return true;\r\n }\r\n else\r\n return false;\r\n }\r\n catch (ex) {\r\n this.$processException(ex);\r\n return false;\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n },\r\n\r\n async onNewPasswordSendClick() {\r\n try {\r\n let validateResult = await this.$refs.modelNewPasswordForm.validate();\r\n if (validateResult) {\r\n this.loading = true;\r\n\r\n let response = await this.$http.post('/ui/account/update_password_and_profile', this.model.NewPasswordData, {});\r\n let responseData = response.body;\r\n if (responseData.resultType == 99) {\r\n this.model.ErrorMessage = responseData.message ? responseData.message : 'Something went wrong';\r\n this.model.DisplayErrors = true;\r\n return false;\r\n }\r\n else if (responseData.resultType == 0) {\r\n this.onSuccessfulLogin(responseData.returnUrl);\r\n }\r\n return true;\r\n }\r\n else\r\n return false;\r\n }\r\n catch (ex) {\r\n this.$processException(ex);\r\n return false;\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n },\r\n\r\n async onSoftwareTokenSendClick() {\r\n try {\r\n let validateResult = await this.$refs.modelSoftwareTokenForm.validate();\r\n if (validateResult) {\r\n this.loading = true;\r\n\r\n let response = await this.$http.post('/ui/account/submit_software_token', this.model.SoftwareTokenData, {});\r\n let responseData = response.body;\r\n if (responseData.resultType == 99) {\r\n this.model.ErrorMessage = responseData.message ? responseData.message : 'Something went wrong';\r\n this.model.DisplayErrors = true;\r\n return false;\r\n }\r\n else if (responseData.resultType == 0) {\r\n this.onSuccessfulLogin(responseData.returnUrl);\r\n }\r\n return true;\r\n }\r\n else\r\n return false;\r\n }\r\n catch (ex) {\r\n this.$processException(ex);\r\n return false;\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n },\r\n\r\n onSignInWithExternalProvider(providerName) {\r\n Cookies.set(LastLoginEmailCookieName,\r\n this.model.LoginData.Email,\r\n {\r\n path: '/',\r\n httpOnly: false,\r\n secure: false,\r\n expires: 30\r\n });\r\n\r\n let returnUrlParameterValue = encodeURIComponent(this.returnUrl);\r\n let queryParameters = 'providerName=' +\r\n providerName +\r\n '&returnUrl=' +\r\n returnUrlParameterValue +\r\n '&userEmail=' +\r\n encodeURIComponent(this.model.LoginData.Email);\r\n window.location.href = '/ui/account/login_external?'+queryParameters;\r\n },\r\n\r\n async onForgotPasswordInitiateClick() {\r\n try {\r\n let validateResult = await this.$refs.modelForgotPasswordInitiateForm.validate();\r\n if (validateResult) {\r\n this.loading = true;\r\n\r\n let response = await this.$http.post('/ui/account/forgot_password_initiate', this.model.ForgotPasswordInitiateData, {});\r\n let responseData = response.body;\r\n if (responseData.resultType == 99) {\r\n this.model.ErrorMessage = responseData.message ? responseData.message : 'Something went wrong';\r\n this.model.DisplayErrors = true;\r\n return false;\r\n }\r\n else if (responseData.resultType == 0) {\r\n this.model.ForgotPasswordConfirmData.Email = this.model.ForgotPasswordInitiateData.Email;\r\n this.model.DisplayErrors = false;\r\n this.model.LoginScreen = this.loginScreenType.ForgotPasswordConfirm;\r\n }\r\n return true;\r\n }\r\n else\r\n return false;\r\n }\r\n catch (ex) {\r\n this.$processException(ex);\r\n return false;\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n },\r\n\r\n async onForgotPasswordConfirmClick() {\r\n try {\r\n let validateResult = await this.$refs.modelForgotPasswordConfirmForm.validate();\r\n if (validateResult) {\r\n this.loading = true;\r\n\r\n let response = await this.$http.post('/ui/account/forgot_password_confirm', this.model.ForgotPasswordConfirmData, {});\r\n let responseData = response.body;\r\n if (responseData.resultType == 99) {\r\n this.model.ErrorMessage = responseData.message ? responseData.message : 'Something went wrong';\r\n this.model.DisplayErrors = true;\r\n return false;\r\n }\r\n else if (responseData.resultType == 0) {\r\n this.model.LoginData.Email = this.model.ForgotPasswordConfirmData.Email;\r\n this.model.DisplayErrors = false;\r\n this.model.LoginScreen = this.loginScreenType.Password;\r\n }\r\n return true;\r\n }\r\n else\r\n return false;\r\n }\r\n catch (ex) {\r\n this.$processException(ex);\r\n return false;\r\n }\r\n finally {\r\n this.loading = false;\r\n }\r\n },\r\n\r\n onSuccessfulLogin(redirectUrl) {\r\n Cookies.set(LastLoginEmailCookieName,\r\n this.model.LoginData.Email,\r\n {\r\n path: '/',\r\n httpOnly: false,\r\n secure: false,\r\n expires: 30\r\n });\r\n\r\n window.location.href = redirectUrl;\r\n }\r\n }\r\n}","\r\n\r\n","\r\n\r\n\r\n","import 'regenerator-runtime/runtime'; // Enable js async/await with parcel and babel.\r\n\r\nimport Vue from 'vue';\r\nimport VueRouter from 'vue-router';\r\nimport VueResource from 'vue-resource';\r\nimport Quasar from 'quasar';\r\nimport App from './application/app';\r\n\r\nVue.use(VueResource);\r\nVue.use(VueRouter);\r\nVue.use(Quasar, {\r\n config: {\r\n brand: {\r\n primary: '#002257',\r\n secondary: '#2A6ED9',\r\n accent: '#2FCC71',\r\n\r\n dark: '#1D1D1D',\r\n\r\n positive: '#21BA45',\r\n negative: '#C10015',\r\n info: '#66B3FF',\r\n warning: '#F2C037'\r\n }\r\n }\r\n});\r\n\r\nVue.prototype.$processException = function (exception) {\r\n if (exception.ok === false) {\r\n let message = exception.data.message;\r\n this.$q.dialog({\r\n title: 'Error',\r\n message: message.replaceAll('\\r\\n', '
'),\r\n html: true\r\n });\r\n\r\n return;\r\n }\r\n};\r\n\r\nnew Vue({\r\n template: '',\r\n router: new VueRouter({\r\n mode: 'history',\r\n routes: []\r\n }),\r\n components: { App }\r\n}).$mount('#app');\r\n"]}