shared-ritm 1.0.3 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"file":"shared-ritm.umd.min.js","mappings":"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","sources":["webpack://SharedRitm/webpack/universalModuleDefinition","webpack://SharedRitm/./src/common/app-button/AppButton.vue?3ff8","webpack://SharedRitm/./src/common/app-input/AppInput.vue?e4f4","webpack://SharedRitm/./node_modules/css-loader/dist/runtime/api.js","webpack://SharedRitm/./node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack://SharedRitm/./node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js","webpack://SharedRitm/./node_modules/vue-loader/dist/exportHelper.js","webpack://SharedRitm/./src/common/app-button/AppButton.vue?5bf0","webpack://SharedRitm/./src/common/app-input/AppInput.vue?0bd2","webpack://SharedRitm/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://SharedRitm/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://SharedRitm/external umd {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"root\":\"Vue\"}","webpack://SharedRitm/webpack/bootstrap","webpack://SharedRitm/webpack/runtime/compat get default export","webpack://SharedRitm/webpack/runtime/define property getters","webpack://SharedRitm/webpack/runtime/hasOwnProperty shorthand","webpack://SharedRitm/webpack/runtime/make namespace object","webpack://SharedRitm/webpack/runtime/publicPath","webpack://SharedRitm/./node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js","webpack://SharedRitm/./src/common/app-button/AppButton.vue?4d54","webpack://SharedRitm/./src/common/app-button/AppButton.vue","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-size/use-size.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.create/create.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.render/render.js","webpack://SharedRitm/./node_modules/quasar/src/components/icon/QIcon.js","webpack://SharedRitm/./node_modules/quasar/src/components/spinner/use-spinner.js","webpack://SharedRitm/./node_modules/quasar/src/components/spinner/QSpinner.js","webpack://SharedRitm/./node_modules/quasar/src/utils/dom/dom.js","webpack://SharedRitm/./node_modules/quasar/src/utils/event/event.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.keyboard/key-composition.js","webpack://SharedRitm/./node_modules/quasar/src/utils/throttle/throttle.js","webpack://SharedRitm/./node_modules/quasar/src/directives/ripple/Ripple.js","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-align/use-align.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.vm/vm.js","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-router-link/use-router-link.js","webpack://SharedRitm/./node_modules/quasar/src/components/btn/use-btn.js","webpack://SharedRitm/./node_modules/quasar/src/components/btn/QBtn.js","webpack://SharedRitm/./node_modules/quasar/src/components/badge/QBadge.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.inject-obj-prop/inject-obj-prop.js","webpack://SharedRitm/./node_modules/quasar/src/plugins/platform/Platform.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.selection/selection.js","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-anchor/use-anchor.js","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-scroll-target/use-scroll-target.js","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-model-toggle/use-model-toggle.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.focus/focus-manager.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.config/instance-config.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.config/nodes.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.portal/portal.js","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-portal/use-portal.js","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-transition/use-transition.js","webpack://SharedRitm/./node_modules/quasar/src/composables/use-tick/use-tick.js","webpack://SharedRitm/./node_modules/quasar/src/composables/use-timeout/use-timeout.js","webpack://SharedRitm/./node_modules/quasar/src/utils/scroll/scroll.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.click-outside/click-outside.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.position-engine/position-engine.js","webpack://SharedRitm/./node_modules/quasar/src/components/tooltip/QTooltip.js","webpack://SharedRitm/./src/common/app-button/AppButton.vue?38da","webpack://SharedRitm/./src/common/app-input/AppInput.vue?ee29","webpack://SharedRitm/./src/common/app-input/AppInput.vue","webpack://SharedRitm/./node_modules/quasar/src/utils/uid/uid.js","webpack://SharedRitm/./node_modules/quasar/src/composables/use-id/use-id.js","webpack://SharedRitm/./node_modules/quasar/src/composables/use-split-attrs/use-split-attrs.js","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-dark/use-dark.js","webpack://SharedRitm/./node_modules/quasar/src/utils/private.symbols/symbols.js","webpack://SharedRitm/./node_modules/quasar/src/composables/use-form/use-form-child.js","webpack://SharedRitm/./node_modules/quasar/src/utils/patterns/patterns.js","webpack://SharedRitm/./node_modules/quasar/src/utils/debounce/debounce.js","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-validate/use-validate.js","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-field/use-field.js","webpack://SharedRitm/./node_modules/quasar/src/components/input/use-mask.js","webpack://SharedRitm/./node_modules/quasar/src/composables/use-form/private.use-form.js","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-file/use-file-dom-props.js","webpack://SharedRitm/./node_modules/quasar/src/composables/private.use-key-composition/use-key-composition.js","webpack://SharedRitm/./node_modules/quasar/src/components/input/QInput.js","webpack://SharedRitm/./node_modules/quasar/src/components/field/QField.js","webpack://SharedRitm/./src/common/app-input/AppInput.vue?a3ba"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"SharedRitm\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"SharedRitm\"] = factory(root[\"Vue\"]);\n})((typeof self !== 'undefined' ? self : this), (__WEBPACK_EXTERNAL_MODULE__274__) => {\nreturn ","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.AppButton_wrapper_Z77v9{flex:0 0 auto}.AppButton_wrapper_Z77v9.q-btn--rounded{border-radius:14px}.AppButton_wrapper_Z77v9.q-btn{color:#0a1629;font-size:16px;font-style:normal;font-weight:700}.AppButton_wrapper_Z77v9.--loading span:has(>svg){overflow:hidden}.AppButton_wrapper_Z77v9 .q-icon{font-size:1.2em}.AppButton_wrapper_Z77v9.--large-icon .q-icon{font-size:1.715em}.AppButton_wrapper_Z77v9.--full-width{width:100%}.AppButton_wrapper_Z77v9.--link{padding:0 8px;display:inline;min-height:unset;font-size:inherit;text-decoration:underline}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"wrapper\": `AppButton_wrapper_Z77v9`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.AppInput_app-input_TjMbV.q-field--outlined .q-field__control{border-radius:14px;height:48px;align-items:center;padding:0 16px;color:#87caff}.AppInput_app-input_TjMbV .q-field__control-container{margin-left:8px}@media(max-width:1440px){.AppInput_app-input_TjMbV.q-field--outlined .q-field__control{height:40px;padding:0 12px}.AppInput_app-input_TjMbV .q-field__control-container{margin-left:6px}}`, \"\"]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"app-input\": `AppInput_app-input_TjMbV`\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","/**\n * Quasar runtime for auto-importing\n * components or directives.\n *\n * Warning! This file does NOT get transpiled by Babel\n * but is included into the UI code.\n *\n * @param {component} Vue Component object\n * @param {type} One of 'components' or 'directives'\n * @param {items} Object containing components or directives\n */\nmodule.exports = function qInstall (component, type, items) {\n const targetComponent = component.__vccOpts !== void 0\n ? component.__vccOpts\n : component\n\n const target = targetComponent[type]\n\n if (target === void 0) {\n targetComponent[type] = items\n }\n else {\n for (var i in items) {\n if (target[i] === void 0) {\n target[i] = items[i]\n }\n }\n }\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n// runtime helper for setting properties on components\n// in a tree-shakable way\nexports.default = (sfc, props) => {\n const target = sfc.__vccOpts || sfc;\n for (const [key, val] of props) {\n target[key] = val;\n }\n return target;\n};\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-115.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-115.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-115.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-115.use[4]!../../../node_modules/vue-cli-plugin-quasar/lib/loader.vue.auto-import-quasar.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./AppButton.vue?vue&type=style&index=0&id=708e6712&lang=scss&module=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"1a127cde\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-115.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-115.use[2]!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-115.use[3]!../../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-115.use[4]!../../../node_modules/vue-cli-plugin-quasar/lib/loader.vue.auto-import-quasar.js??ruleSet[0].use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[1]!./AppInput.vue?vue&type=style&index=0&id=4beb7f12&lang=scss&module=true\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"63facbf4\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__274__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","/* eslint-disable no-var */\n// This file is imported into lib/wc client bundles.\n\nif (typeof window !== 'undefined') {\n var currentScript = window.document.currentScript\n if (process.env.NEED_CURRENTSCRIPT_POLYFILL) {\n var getCurrentScript = require('@soda/get-current-script')\n currentScript = getCurrentScript()\n\n // for backward compatibility, because previously we directly included the polyfill\n if (!('currentScript' in document)) {\n Object.defineProperty(document, 'currentScript', { get: getCurrentScript })\n }\n }\n\n var src = currentScript && currentScript.src.match(/(.+\\/)[^/]+\\.js(\\?.*)?$/)\n if (src) {\n __webpack_public_path__ = src[1] // eslint-disable-line\n }\n}\n\n// Indicate to webpack that this file can be concatenated\nexport default null\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, mergeProps as _mergeProps } from \"vue\"\n\nimport { computed } from 'vue'\r\n\r\ninterface QBtnProps {\r\n size?: string | undefined\r\n type?: string | undefined\r\n to?: string | any | undefined\r\n replace?: boolean | undefined\r\n href?: string | undefined\r\n target?: string | undefined\r\n label?: string | number | undefined\r\n icon?: string | undefined\r\n iconRight?: string | undefined\r\n outline?: boolean | undefined\r\n flat?: boolean | undefined\r\n unelevated?: boolean | undefined\r\n rounded?: boolean | undefined\r\n push?: boolean | undefined\r\n square?: boolean | undefined\r\n glossy?: boolean | undefined\r\n fab?: boolean | undefined\r\n fabMini?: boolean | undefined\r\n padding?: string | undefined\r\n color?: string | undefined\r\n textColor?: string | undefined\r\n noCaps?: boolean | undefined\r\n noWrap?: boolean | undefined\r\n dense?: boolean | undefined\r\n ripple?: boolean | any | undefined\r\n tabindex?: number | string | undefined\r\n align?: 'left' | 'right' | 'center' | 'around' | 'between' | 'evenly' | undefined\r\n stack?: boolean | undefined\r\n stretch?: boolean | undefined\r\n loading?: boolean | undefined\r\n round?: boolean | undefined\r\n percentage?: number | undefined\r\n darkPercentage?: boolean | undefined\r\n}\r\n\r\ninterface Props extends QBtnProps {\r\n disable?: boolean | ((...args: any[]) => boolean)\r\n tooltip?: string\r\n uppercase?: boolean\r\n xSmall?: boolean\r\n small?: boolean\r\n large?: boolean\r\n fullWidth?: boolean\r\n wrap?: boolean\r\n largeIcon?: boolean\r\n modelValue?: boolean\r\n badge?: string | boolean | number\r\n badgeColor?: string\r\n badgeInline?: boolean\r\n link?: boolean\r\n}\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'AppButton',\n props: {\n disable: { type: [Boolean, Function] },\n tooltip: {},\n uppercase: { type: Boolean },\n xSmall: { type: Boolean },\n small: { type: Boolean },\n large: { type: Boolean },\n fullWidth: { type: Boolean },\n wrap: { type: Boolean },\n largeIcon: { type: Boolean },\n modelValue: { type: Boolean },\n badge: { type: [String, Boolean, Number] },\n badgeColor: {},\n badgeInline: { type: Boolean },\n link: { type: Boolean },\n size: {},\n type: {},\n to: {},\n replace: { type: Boolean },\n href: {},\n target: {},\n label: {},\n icon: {},\n iconRight: {},\n outline: { type: Boolean },\n flat: { type: Boolean },\n unelevated: { type: Boolean },\n rounded: { type: Boolean },\n push: { type: Boolean },\n square: { type: Boolean },\n glossy: { type: Boolean },\n fab: { type: Boolean },\n fabMini: { type: Boolean },\n padding: {},\n color: {},\n textColor: {},\n noCaps: { type: Boolean },\n noWrap: { type: Boolean },\n dense: { type: Boolean },\n ripple: { type: Boolean },\n tabindex: {},\n align: {},\n stack: { type: Boolean },\n stretch: { type: Boolean },\n loading: { type: Boolean },\n round: { type: Boolean },\n percentage: {},\n darkPercentage: { type: Boolean }\n },\n emits: ['update:modelValue', 'click'],\n setup(__props: any, { emit: __emit }) {\n\r\nconst props = __props\r\n\r\nconst emit = __emit\r\n\r\nfunction onClick(event: any) {\r\n emit('click', event)\r\n emit('update:modelValue', !props.modelValue)\r\n}\r\n\r\nconst badgeText = computed(() => {\r\n if (props.badge === undefined || props.badge === false) return ''\r\n if (props.badge === true || props.badge === '') return ''\r\n return props.badge\r\n})\r\n\r\n// const btnClasses = computed(() => {\r\n// return {\r\n// '--icon': props.icon && !props.label,\r\n// '--width-left-icon': props.icon && props.label,\r\n// '--width-right-icon': props.iconRight && props.label,\r\n// '--default': !props.small && !props.large && !props.xSmall,\r\n// '--x-small': props.xSmall,\r\n// '--small': props.small,\r\n// '--large': props.large,\r\n// '--full-width': props.fullWidth,\r\n// '--large-icon': props.largeIcon,\r\n// '--is-active': props.modelValue,\r\n// '--link': props.link,\r\n// '--loading': props.loading,\r\n// }\r\n// })\r\n\r\nconst isDisabled = computed(() => {\r\n return typeof props.disable === 'function' ? props.disable() : props.disable\r\n})\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_q_badge = _resolveComponent(\"q-badge\")!\n const _component_q_tooltip = _resolveComponent(\"q-tooltip\")!\n const _component_q_btn = _resolveComponent(\"q-btn\")!\n\n return (_openBlock(), _createBlock(_component_q_btn, _mergeProps(_ctx.$props, {\n class: [[_ctx.$style.wrapper], \"hover-bg-secondary hover-text-black\"],\n disable: isDisabled.value,\n \"no-caps\": !_ctx.uppercase,\n \"no-wrap\": !_ctx.wrap,\n onClick: onClick\n }), {\n default: _withCtx(() => [\n _renderSlot(_ctx.$slots, \"default\"),\n (_ctx.badge)\n ? (_openBlock(), _createBlock(_component_q_badge, {\n key: 0,\n style: {\"padding\":\"6px\",\"top\":\"-10px\",\"right\":\"-10px\",\"font-size\":\"12px\"},\n color: _ctx.badgeColor,\n floating: !_ctx.badgeInline,\n rounded: true\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(badgeText.value), 1)\n ]),\n _: 1\n }, 8, [\"color\", \"floating\"]))\n : _createCommentVNode(\"\", true),\n (_ctx.tooltip)\n ? (_openBlock(), _createBlock(_component_q_tooltip, {\n key: 1,\n class: \"text-body2\",\n delay: 400\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.tooltip), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _: 3\n }, 16, [\"class\", \"disable\", \"no-caps\", \"no-wrap\"]))\n}\n}\n\n})","<template>\r\n <q-btn\r\n v-bind=\"$props\"\r\n :class=\"[$style.wrapper]\"\r\n :disable=\"isDisabled\"\r\n :no-caps=\"!uppercase\"\r\n :no-wrap=\"!wrap\"\r\n @click=\"onClick\"\r\n class=\"hover-bg-secondary hover-text-black\"\r\n >\r\n <slot></slot>\r\n <q-badge\r\n style=\"padding: 6px; top: -10px; right: -10px; font-size: 12px\"\r\n v-if=\"badge\"\r\n :color=\"badgeColor\"\r\n :floating=\"!badgeInline\"\r\n :rounded=\"true\"\r\n >{{ badgeText }}</q-badge\r\n >\r\n <q-tooltip v-if=\"tooltip\" class=\"text-body2\" :delay=\"400\">{{ tooltip }}</q-tooltip>\r\n </q-btn>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { computed, defineProps, defineEmits } from 'vue'\r\n\r\ninterface QBtnProps {\r\n size?: string | undefined\r\n type?: string | undefined\r\n to?: string | any | undefined\r\n replace?: boolean | undefined\r\n href?: string | undefined\r\n target?: string | undefined\r\n label?: string | number | undefined\r\n icon?: string | undefined\r\n iconRight?: string | undefined\r\n outline?: boolean | undefined\r\n flat?: boolean | undefined\r\n unelevated?: boolean | undefined\r\n rounded?: boolean | undefined\r\n push?: boolean | undefined\r\n square?: boolean | undefined\r\n glossy?: boolean | undefined\r\n fab?: boolean | undefined\r\n fabMini?: boolean | undefined\r\n padding?: string | undefined\r\n color?: string | undefined\r\n textColor?: string | undefined\r\n noCaps?: boolean | undefined\r\n noWrap?: boolean | undefined\r\n dense?: boolean | undefined\r\n ripple?: boolean | any | undefined\r\n tabindex?: number | string | undefined\r\n align?: 'left' | 'right' | 'center' | 'around' | 'between' | 'evenly' | undefined\r\n stack?: boolean | undefined\r\n stretch?: boolean | undefined\r\n loading?: boolean | undefined\r\n round?: boolean | undefined\r\n percentage?: number | undefined\r\n darkPercentage?: boolean | undefined\r\n}\r\n\r\ninterface Props extends QBtnProps {\r\n disable?: boolean | ((...args: any[]) => boolean)\r\n tooltip?: string\r\n uppercase?: boolean\r\n xSmall?: boolean\r\n small?: boolean\r\n large?: boolean\r\n fullWidth?: boolean\r\n wrap?: boolean\r\n largeIcon?: boolean\r\n modelValue?: boolean\r\n badge?: string | boolean | number\r\n badgeColor?: string\r\n badgeInline?: boolean\r\n link?: boolean\r\n}\r\n\r\nconst props = defineProps<Props>()\r\n\r\nconst emit = defineEmits(['update:modelValue', 'click'])\r\n\r\nfunction onClick(event: any) {\r\n emit('click', event)\r\n emit('update:modelValue', !props.modelValue)\r\n}\r\n\r\nconst badgeText = computed(() => {\r\n if (props.badge === undefined || props.badge === false) return ''\r\n if (props.badge === true || props.badge === '') return ''\r\n return props.badge\r\n})\r\n\r\n// const btnClasses = computed(() => {\r\n// return {\r\n// '--icon': props.icon && !props.label,\r\n// '--width-left-icon': props.icon && props.label,\r\n// '--width-right-icon': props.iconRight && props.label,\r\n// '--default': !props.small && !props.large && !props.xSmall,\r\n// '--x-small': props.xSmall,\r\n// '--small': props.small,\r\n// '--large': props.large,\r\n// '--full-width': props.fullWidth,\r\n// '--large-icon': props.largeIcon,\r\n// '--is-active': props.modelValue,\r\n// '--link': props.link,\r\n// '--loading': props.loading,\r\n// }\r\n// })\r\n\r\nconst isDisabled = computed(() => {\r\n return typeof props.disable === 'function' ? props.disable() : props.disable\r\n})\r\n</script>\r\n\r\n<style lang=\"scss\" module>\r\n.wrapper {\r\n flex: 0 0 auto;\r\n &:global(.q-btn--rounded) {\r\n border-radius: 14px;\r\n }\r\n &:global(.q-btn) {\r\n color: #0a1629;\r\n font-size: 16px;\r\n font-style: normal;\r\n font-weight: 700;\r\n }\r\n\r\n &:global(.--loading) {\r\n span:has(> svg) {\r\n overflow: hidden;\r\n }\r\n }\r\n\r\n :global(.q-icon) {\r\n font-size: 1.2em;\r\n }\r\n\r\n &:global(.--large-icon .q-icon) {\r\n font-size: 1.715em;\r\n }\r\n\r\n &:global(.--full-width) {\r\n width: 100%;\r\n }\r\n\r\n &:global(.--link) {\r\n padding: 0 8px;\r\n display: inline;\r\n min-height: unset;\r\n font-size: inherit;\r\n text-decoration: underline;\r\n }\r\n}\r\n</style>\r\n","import { computed } from 'vue'\n\nexport const useSizeDefaults = {\n xs: 18,\n sm: 24,\n md: 32,\n lg: 38,\n xl: 46\n}\n\nexport const useSizeProps = {\n size: String\n}\n\nexport default function (props, sizes = useSizeDefaults) {\n // return sizeStyle\n return computed(() => (\n props.size !== void 0\n ? { fontSize: props.size in sizes ? `${ sizes[ props.size ] }px` : props.size }\n : null\n ))\n}\n","import { defineComponent, markRaw, reactive } from 'vue'\nimport { injectProp } from '../private.inject-obj-prop/inject-obj-prop.js'\n\nexport function createComponent (raw) { return markRaw(defineComponent(raw)) }\nexport function createDirective (raw) { return markRaw(raw) }\n\nexport const createReactivePlugin = __QUASAR_SSR_SERVER__\n ? (state, plugin) => {\n Object.assign(plugin, state)\n return plugin\n }\n : (state, plugin) => {\n const reactiveState = reactive(state)\n\n for (const name in state) {\n injectProp(\n plugin,\n name,\n () => reactiveState[ name ],\n val => { reactiveState[ name ] = val }\n )\n }\n\n return plugin\n }\n","import { h, withDirectives } from 'vue'\n\nexport function hSlot (slot, otherwise) {\n return slot !== void 0\n ? slot() || otherwise\n : otherwise\n}\n\nexport function hUniqueSlot (slot, otherwise) {\n if (slot !== void 0) {\n const vnode = slot()\n if (vnode !== void 0 && vnode !== null) {\n return vnode.slice()\n }\n }\n\n return otherwise\n}\n\n/**\n * Source definitely exists,\n * so it's merged with the possible slot\n */\nexport function hMergeSlot (slot, source) {\n return slot !== void 0\n ? source.concat(slot())\n : source\n}\n\n/**\n * Merge with possible slot,\n * even if source might not exist\n */\nexport function hMergeSlotSafely (slot, source) {\n if (slot === void 0) {\n return source\n }\n\n return source !== void 0\n ? source.concat(slot())\n : slot()\n}\n\n/*\n * (String) key - unique vnode key\n * (Boolean) condition - should change ONLY when adding/removing directive\n */\nexport function hDir (\n tag,\n data,\n children,\n key,\n condition,\n getDirsFn\n) {\n data.key = key + condition\n\n const vnode = h(tag, data, children)\n\n return condition === true\n ? withDirectives(vnode, getDirsFn())\n : vnode\n}\n","import { h, computed, getCurrentInstance } from 'vue'\n\nimport useSize, { useSizeProps } from '../../composables/private.use-size/use-size.js'\n\nimport { createComponent } from '../../utils/private.create/create.js'\nimport { hSlot, hMergeSlot } from '../../utils/private.render/render.js'\n\nconst defaultViewBox = '0 0 24 24'\n\nconst sameFn = i => i\nconst ionFn = i => `ionicons ${ i }`\n\nconst libMap = {\n 'mdi-': i => `mdi ${ i }`,\n 'icon-': sameFn, // fontawesome equiv\n 'bt-': i => `bt ${ i }`,\n 'eva-': i => `eva ${ i }`,\n 'ion-md': ionFn,\n 'ion-ios': ionFn,\n 'ion-logo': ionFn,\n 'iconfont ': sameFn,\n 'ti-': i => `themify-icon ${ i }`,\n 'bi-': i => `bootstrap-icons ${ i }`\n}\n\nconst matMap = {\n o_: '-outlined',\n r_: '-round',\n s_: '-sharp'\n}\n\nconst symMap = {\n sym_o_: '-outlined',\n sym_r_: '-rounded',\n sym_s_: '-sharp'\n}\n\nconst libRE = new RegExp('^(' + Object.keys(libMap).join('|') + ')')\nconst matRE = new RegExp('^(' + Object.keys(matMap).join('|') + ')')\nconst symRE = new RegExp('^(' + Object.keys(symMap).join('|') + ')')\nconst mRE = /^[Mm]\\s?[-+]?\\.?\\d/\nconst imgRE = /^img:/\nconst svgUseRE = /^svguse:/\nconst ionRE = /^ion-/\nconst faRE = /^(fa-(classic|sharp|solid|regular|light|brands|duotone|thin)|[lf]a[srlbdk]?) /\n\nexport default createComponent({\n name: 'QIcon',\n\n props: {\n ...useSizeProps,\n\n tag: {\n type: String,\n default: 'i'\n },\n\n name: String,\n color: String,\n left: Boolean,\n right: Boolean\n },\n\n setup (props, { slots }) {\n const { proxy: { $q } } = getCurrentInstance()\n const sizeStyle = useSize(props)\n\n const classes = computed(() =>\n 'q-icon'\n + (props.left === true ? ' on-left' : '') // TODO Qv3: drop this\n + (props.right === true ? ' on-right' : '')\n + (props.color !== void 0 ? ` text-${ props.color }` : '')\n )\n\n const type = computed(() => {\n let cls\n let icon = props.name\n\n if (icon === 'none' || !icon) {\n return { none: true }\n }\n\n if ($q.iconMapFn !== null) {\n const res = $q.iconMapFn(icon)\n if (res !== void 0) {\n if (res.icon !== void 0) {\n icon = res.icon\n if (icon === 'none' || !icon) {\n return { none: true }\n }\n }\n else {\n return {\n cls: res.cls,\n content: res.content !== void 0\n ? res.content\n : ' '\n }\n }\n }\n }\n\n if (mRE.test(icon) === true) {\n const [ def, viewBox = defaultViewBox ] = icon.split('|')\n\n return {\n svg: true,\n viewBox,\n nodes: def.split('&&').map(path => {\n const [ d, style, transform ] = path.split('@@')\n return h('path', { style, d, transform })\n })\n }\n }\n\n if (imgRE.test(icon) === true) {\n return {\n img: true,\n src: icon.substring(4)\n }\n }\n\n if (svgUseRE.test(icon) === true) {\n const [ def, viewBox = defaultViewBox ] = icon.split('|')\n\n return {\n svguse: true,\n src: def.substring(7),\n viewBox\n }\n }\n\n let content = ' '\n const matches = icon.match(libRE)\n\n if (matches !== null) {\n cls = libMap[ matches[ 1 ] ](icon)\n }\n else if (faRE.test(icon) === true) {\n cls = icon\n }\n else if (ionRE.test(icon) === true) {\n cls = `ionicons ion-${ $q.platform.is.ios === true ? 'ios' : 'md' }${ icon.substring(3) }`\n }\n else if (symRE.test(icon) === true) {\n // \"notranslate\" class is for Google Translate\n // to avoid tampering with Material Symbols ligature font\n //\n // Caution: To be able to add suffix to the class name,\n // keep the 'material-symbols' at the end of the string.\n cls = 'notranslate material-symbols'\n\n const matches = icon.match(symRE)\n if (matches !== null) {\n icon = icon.substring(6)\n cls += symMap[ matches[ 1 ] ]\n }\n\n content = icon\n }\n else {\n // \"notranslate\" class is for Google Translate\n // to avoid tampering with Material Icons ligature font\n //\n // Caution: To be able to add suffix to the class name,\n // keep the 'material-icons' at the end of the string.\n cls = 'notranslate material-icons'\n\n const matches = icon.match(matRE)\n if (matches !== null) {\n icon = icon.substring(2)\n cls += matMap[ matches[ 1 ] ]\n }\n\n content = icon\n }\n\n return {\n cls,\n content\n }\n })\n\n return () => {\n const data = {\n class: classes.value,\n style: sizeStyle.value,\n 'aria-hidden': 'true',\n role: 'presentation'\n }\n\n if (type.value.none === true) {\n return h(props.tag, data, hSlot(slots.default))\n }\n\n if (type.value.img === true) {\n return h(props.tag, data, hMergeSlot(slots.default, [\n h('img', { src: type.value.src })\n ]))\n }\n\n if (type.value.svg === true) {\n return h(props.tag, data, hMergeSlot(slots.default, [\n h('svg', {\n viewBox: type.value.viewBox || '0 0 24 24'\n }, type.value.nodes)\n ]))\n }\n\n if (type.value.svguse === true) {\n return h(props.tag, data, hMergeSlot(slots.default, [\n h('svg', {\n viewBox: type.value.viewBox\n }, [\n h('use', { 'xlink:href': type.value.src })\n ])\n ]))\n }\n\n if (type.value.cls !== void 0) {\n data.class += ' ' + type.value.cls\n }\n\n return h(props.tag, data, hMergeSlot(slots.default, [\n type.value.content\n ]))\n }\n }\n})\n","import { computed } from 'vue'\nimport { useSizeDefaults } from '../../composables/private.use-size/use-size.js'\n\nexport const useSpinnerProps = {\n size: {\n type: [ String, Number ],\n default: '1em'\n },\n color: String\n}\n\nexport default function useSpinner (props) {\n return {\n cSize: computed(() => (\n props.size in useSizeDefaults\n ? `${ useSizeDefaults[ props.size ] }px`\n : props.size\n )),\n\n classes: computed(() =>\n 'q-spinner' + (props.color ? ` text-${ props.color }` : '')\n )\n }\n}\n","import { h } from 'vue'\n\nimport useSpinner, { useSpinnerProps } from './use-spinner.js'\n\nimport { createComponent } from '../../utils/private.create/create.js'\n\nexport default createComponent({\n name: 'QSpinner',\n\n props: {\n ...useSpinnerProps,\n\n thickness: {\n type: Number,\n default: 5\n }\n },\n\n setup (props) {\n const { cSize, classes } = useSpinner(props)\n\n return () => h('svg', {\n class: classes.value + ' q-spinner-mat',\n width: cSize.value,\n height: cSize.value,\n viewBox: '25 25 50 50'\n }, [\n h('circle', {\n class: 'path',\n cx: '50',\n cy: '50',\n r: '20',\n fill: 'none',\n stroke: 'currentColor',\n 'stroke-width': props.thickness,\n 'stroke-miterlimit': '10'\n })\n ])\n }\n})\n","import { unref } from 'vue'\n\nexport 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 for (const prop in css) {\n style[ prop ] = css[ prop ]\n }\n}\n\nexport function cssBatch (elements, style) {\n elements.forEach(el => css(el, style))\n}\n\nexport function ready (fn) {\n if (typeof fn !== 'function') {\n return\n }\n\n if (document.readyState !== 'loading') {\n return fn()\n }\n\n document.addEventListener('DOMContentLoaded', fn, false)\n}\n\n// internal\nexport function getElement (el) {\n if (el === void 0 || el === null) {\n return void 0\n }\n\n if (typeof el === 'string') {\n try {\n return document.querySelector(el) || void 0\n }\n catch (err) {\n return void 0\n }\n }\n\n const target = unref(el)\n if (target) {\n return target.$el || target\n }\n}\n\n// internal\nexport function childHasFocus (el, focusedEl) {\n if (el === void 0 || el === null || 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\nexport default {\n offset,\n style,\n height,\n width,\n css,\n cssBatch,\n ready\n}\n","export const listenOpts = {\n hasPassive: false,\n passiveCapture: true,\n notPassiveCapture: true\n}\n\ntry {\n const 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 (_) {}\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 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 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}\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","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 { createDirective } from '../../utils/private.create/create.js'\nimport { css } from '../../utils/dom/dom.js'\nimport { position, stop, addEvt, cleanEvt } from '../../utils/event/event.js'\nimport { isKeyCode } from '../../utils/private.keyboard/key-composition.js'\nimport throttle from '../../utils/throttle/throttle.js'\nimport getSSRProps from '../../utils/private.noop-ssr-directive-transform/noop-ssr-directive-transform.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({}, ctx.cfg.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\nexport default createDirective(__QUASAR_SSR_SERVER__\n ? { name: 'ripple', getSSRProps }\n : {\n name: 'ripple',\n\n beforeMount (el, binding) {\n const cfg = binding.instance.$.appContext.config.globalProperties.$q.config || {}\n\n if (cfg.ripple === false) {\n return\n }\n\n const ctx = {\n cfg,\n enabled: binding.value !== false,\n modifiers: {},\n abort: [],\n\n start (evt) {\n if (\n ctx.enabled === true\n && evt.qSkipRipple !== true\n && evt.type === (ctx.modifiers.early === true ? 'pointerdown' : 'click')\n ) {\n showRipple(evt, el, ctx, evt.qKeyEvent === true)\n }\n },\n\n keystart: throttle(evt => {\n if (\n ctx.enabled === true\n && evt.qSkipRipple !== true\n && isKeyCode(evt, ctx.modifiers.keyCodes) === true\n && evt.type === `key${ ctx.modifiers.early === true ? 'down' : 'up' }`\n ) {\n showRipple(evt, el, ctx, true)\n }\n }, 300)\n }\n\n updateModifiers(ctx, binding)\n\n el.__qripple = ctx\n\n addEvt(ctx, 'main', [\n [ el, 'pointerdown', 'start', 'passive' ],\n [ el, 'click', 'start', 'passive' ],\n [ el, 'keydown', 'keystart', 'passive' ],\n [ el, 'keyup', 'keystart', 'passive' ]\n ])\n },\n\n updated (el, binding) {\n if (binding.oldValue !== binding.value) {\n const ctx = el.__qripple\n if (ctx !== void 0) {\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\n beforeUnmount (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 }\n)\n","import { computed } from 'vue'\n\nexport const alignMap = {\n left: 'start',\n center: 'center',\n right: 'end',\n between: 'between',\n around: 'around',\n evenly: 'evenly',\n stretch: 'stretch'\n}\n\nexport const alignValues = Object.keys(alignMap)\n\nexport const useAlignProps = {\n align: {\n type: String,\n validator: v => alignValues.includes(v)\n }\n}\n\nexport default function (props) {\n // return alignClass\n return computed(() => {\n const align = props.align === void 0\n ? props.vertical === true ? 'stretch' : 'left'\n : props.align\n\n return `${ props.vertical === true ? 'items' : 'justify' }-${ alignMap[ align ] }`\n })\n}\n","// copied to docs too\nexport function getParentProxy (proxy) {\n if (Object(proxy.$parent) === proxy.$parent) {\n return proxy.$parent\n }\n\n let { parent } = proxy.$\n\n while (Object(parent) === parent) {\n if (Object(parent.proxy) === parent.proxy) {\n return parent.proxy\n }\n\n parent = parent.parent\n }\n}\n\nfunction fillNormalizedVNodes (children, vnode) {\n if (typeof vnode.type === 'symbol') {\n if (Array.isArray(vnode.children) === true) {\n vnode.children.forEach(child => {\n fillNormalizedVNodes(children, child)\n })\n }\n }\n else {\n children.add(vnode)\n }\n}\n\n// vnodes from rendered in advanced slots\nexport function getNormalizedVNodes (vnodes) {\n const children = new Set()\n\n vnodes.forEach(vnode => {\n fillNormalizedVNodes(children, vnode)\n })\n\n return Array.from(children)\n}\n\nexport function vmHasRouter (vm) {\n return vm.appContext.config.globalProperties.$router !== void 0\n}\n\nexport function vmIsDestroyed (vm) {\n return vm.isUnmounted === true || vm.isDeactivated === true\n}\n","/*\n * Inspired by RouterLink from Vue Router\n * --> API should match!\n */\n\nimport { computed, getCurrentInstance } from 'vue'\n\nimport { vmHasRouter } from '../../utils/private.vm/vm.js'\n\n// Get the original path value of a record by following its aliasOf\nfunction getOriginalPath (record) {\n return record\n ? (\n record.aliasOf\n ? record.aliasOf.path\n : record.path\n ) : ''\n}\n\nfunction isSameRouteRecord (a, b) {\n // since the original record has an undefined value for aliasOf\n // but all aliases point to the original record, this will always compare\n // the original record\n return (a.aliasOf || a) === (b.aliasOf || b)\n}\n\nfunction includesParams (outer, inner) {\n for (const key in inner) {\n const\n innerValue = inner[ key ],\n outerValue = outer[ key ]\n\n if (typeof innerValue === 'string') {\n if (innerValue !== outerValue) {\n return false\n }\n }\n else if (\n Array.isArray(outerValue) === false\n || outerValue.length !== innerValue.length\n || innerValue.some((value, i) => value !== outerValue[ i ])\n ) {\n return false\n }\n }\n\n return true\n}\n\nfunction isEquivalentArray (a, b) {\n return Array.isArray(b) === true\n ? a.length === b.length && a.every((value, i) => value === b[ i ])\n : a.length === 1 && a[ 0 ] === b\n}\n\nfunction isSameRouteLocationParamsValue (a, b) {\n return Array.isArray(a) === true\n ? isEquivalentArray(a, b)\n : (\n Array.isArray(b) === true\n ? isEquivalentArray(b, a)\n : a === b\n )\n}\n\nfunction isSameRouteLocationParams (a, b) {\n if (Object.keys(a).length !== Object.keys(b).length) {\n return false\n }\n\n for (const key in a) {\n if (isSameRouteLocationParamsValue(a[ key ], b[ key ]) === false) {\n return false\n }\n }\n\n return true\n}\n\nexport const useRouterLinkNonMatchingProps = {\n // router-link\n to: [ String, Object ],\n replace: Boolean,\n\n // regular <a> link\n href: String,\n target: String,\n\n // state\n disable: Boolean\n}\n\nexport const useRouterLinkProps = {\n ...useRouterLinkNonMatchingProps,\n\n // router-link\n exact: Boolean,\n activeClass: {\n type: String,\n default: 'q-router-link--active'\n },\n exactActiveClass: {\n type: String,\n default: 'q-router-link--exact-active'\n }\n}\n\n// external props: type, tag\n\nexport default function ({ fallbackTag, useDisableForRouterLinkProps = true } = {}) {\n const vm = getCurrentInstance()\n const { props, proxy, emit } = vm\n\n const hasRouter = vmHasRouter(vm)\n const hasHrefLink = computed(() => props.disable !== true && props.href !== void 0)\n\n // for perf reasons, we use minimum amount of runtime work\n const hasRouterLinkProps = useDisableForRouterLinkProps === true\n ? computed(() =>\n hasRouter === true\n && props.disable !== true\n && hasHrefLink.value !== true\n && props.to !== void 0 && props.to !== null && props.to !== ''\n )\n : computed(() =>\n hasRouter === true\n && hasHrefLink.value !== true\n && props.to !== void 0 && props.to !== null && props.to !== ''\n )\n\n const resolvedLink = computed(() => (\n hasRouterLinkProps.value === true\n ? getLink(props.to)\n : null\n ))\n\n const hasRouterLink = computed(() => resolvedLink.value !== null)\n const hasLink = computed(() => hasHrefLink.value === true || hasRouterLink.value === true)\n\n const linkTag = computed(() => (\n props.type === 'a' || hasLink.value === true\n ? 'a'\n : (props.tag || fallbackTag || 'div')\n ))\n\n const linkAttrs = computed(() => (\n hasHrefLink.value === true\n ? {\n href: props.href,\n target: props.target\n }\n : (\n hasRouterLink.value === true\n ? {\n href: resolvedLink.value.href,\n target: props.target\n }\n : {}\n )\n ))\n\n const linkActiveIndex = computed(() => {\n if (hasRouterLink.value === false) {\n return -1\n }\n\n const\n { matched } = resolvedLink.value,\n { length } = matched,\n routeMatched = matched[ length - 1 ]\n\n if (routeMatched === void 0) {\n return -1\n }\n\n const currentMatched = proxy.$route.matched\n\n if (currentMatched.length === 0) {\n return -1\n }\n\n const index = currentMatched.findIndex(\n isSameRouteRecord.bind(null, routeMatched)\n )\n\n if (index !== -1) {\n return index\n }\n\n // possible parent record\n const parentRecordPath = getOriginalPath(matched[ length - 2 ])\n\n return (\n // we are dealing with nested routes\n length > 1\n // if the parent and matched route have the same path, this link is\n // referring to the empty child. Or we currently are on a different\n // child of the same parent\n && getOriginalPath(routeMatched) === parentRecordPath\n // avoid comparing the child with its parent\n && currentMatched[ currentMatched.length - 1 ].path !== parentRecordPath\n ? currentMatched.findIndex(\n isSameRouteRecord.bind(null, matched[ length - 2 ])\n )\n : index\n )\n })\n\n const linkIsActive = computed(() =>\n hasRouterLink.value === true\n && linkActiveIndex.value !== -1\n && includesParams(proxy.$route.params, resolvedLink.value.params)\n )\n\n const linkIsExactActive = computed(() =>\n linkIsActive.value === true\n && linkActiveIndex.value === proxy.$route.matched.length - 1\n && isSameRouteLocationParams(proxy.$route.params, resolvedLink.value.params)\n )\n\n const linkClass = computed(() => (\n hasRouterLink.value === true\n ? (\n linkIsExactActive.value === true\n ? ` ${ props.exactActiveClass } ${ props.activeClass }`\n : (\n props.exact === true\n ? ''\n : (linkIsActive.value === true ? ` ${ props.activeClass }` : '')\n )\n )\n : ''\n ))\n\n function getLink (to) {\n try { return proxy.$router.resolve(to) }\n catch (_) {}\n\n return null\n }\n\n /**\n * @returns Promise<RouterError | false | undefined>\n */\n function navigateToRouterLink (\n e,\n { returnRouterError, to = props.to, replace = props.replace } = {}\n ) {\n if (props.disable === true) {\n // ensure native navigation is prevented in all cases,\n // like when useDisableForRouterLinkProps === false (QRouteTab)\n e.preventDefault()\n return Promise.resolve(false)\n }\n\n if (\n // don't redirect with control keys;\n // should match RouterLink from Vue Router\n e.metaKey || e.altKey || e.ctrlKey || e.shiftKey\n\n // don't redirect on right click\n || (e.button !== void 0 && e.button !== 0)\n\n // don't redirect if it should open in a new window\n || props.target === '_blank'\n ) {\n return Promise.resolve(false)\n }\n\n // hinder the native navigation\n e.preventDefault()\n\n // then() can also return a \"soft\" router error (Vue Router behavior)\n const promise = proxy.$router[ replace === true ? 'replace' : 'push' ](to)\n\n return returnRouterError === true\n ? promise\n // else catching hard errors and also \"soft\" ones - then(err => ...)\n : promise.then(() => {}).catch(() => {})\n }\n\n // warning! ensure that the component using it has 'click' included in its 'emits' definition prop\n function navigateOnClick (e) {\n if (hasRouterLink.value === true) {\n const go = opts => navigateToRouterLink(e, opts)\n\n emit('click', e, go)\n e.defaultPrevented !== true && go()\n }\n else {\n emit('click', e)\n }\n }\n\n return {\n hasRouterLink,\n hasHrefLink,\n hasLink,\n\n linkTag,\n resolvedLink,\n linkIsActive,\n linkIsExactActive,\n linkClass,\n linkAttrs,\n\n getLink,\n navigateToRouterLink,\n navigateOnClick\n }\n}\n","import { computed } from 'vue'\n\nimport useAlign, { useAlignProps } from '../../composables/private.use-align/use-align.js'\nimport useSize, { useSizeProps } from '../../composables/private.use-size/use-size.js'\nimport useRouterLink, { useRouterLinkNonMatchingProps } from '../../composables/private.use-router-link/use-router-link.js'\n\nexport const btnPadding = {\n none: 0,\n xs: 4,\n sm: 8,\n md: 16,\n lg: 24,\n xl: 32\n}\n\nexport const defaultSizes = {\n xs: 8,\n sm: 10,\n md: 14,\n lg: 20,\n xl: 24\n}\n\nconst formTypes = [ 'button', 'submit', 'reset' ]\nconst mediaTypeRE = /[^\\s]\\/[^\\s]/\n\nexport const btnDesignOptions = [ 'flat', 'outline', 'push', 'unelevated' ]\n\nexport function getBtnDesign (props, defaultValue) {\n if (props.flat === true) return 'flat'\n if (props.outline === true) return 'outline'\n if (props.push === true) return 'push'\n if (props.unelevated === true) return 'unelevated'\n return defaultValue\n}\n\nexport function getBtnDesignAttr (props) {\n const design = getBtnDesign(props)\n return design !== void 0\n ? { [ design ]: true }\n : {}\n}\n\nexport const nonRoundBtnProps = {\n ...useSizeProps,\n ...useRouterLinkNonMatchingProps,\n\n type: {\n type: String,\n default: 'button'\n },\n\n label: [ Number, String ],\n icon: String,\n iconRight: String,\n\n ...btnDesignOptions.reduce(\n (acc, val) => (acc[ val ] = Boolean) && acc,\n {}\n ),\n\n square: Boolean,\n rounded: Boolean,\n glossy: Boolean,\n\n size: String,\n fab: Boolean,\n fabMini: Boolean,\n padding: String,\n\n color: String,\n textColor: String,\n noCaps: Boolean,\n noWrap: Boolean,\n dense: Boolean,\n\n tabindex: [ Number, String ],\n\n ripple: {\n type: [ Boolean, Object ],\n default: true\n },\n\n align: {\n ...useAlignProps.align,\n default: 'center'\n },\n stack: Boolean,\n stretch: Boolean,\n loading: {\n type: Boolean,\n default: null\n },\n disable: Boolean\n}\n\nexport const useBtnProps = {\n ...nonRoundBtnProps,\n round: Boolean\n}\n\nexport default function (props) {\n const sizeStyle = useSize(props, defaultSizes)\n const alignClass = useAlign(props)\n const { hasRouterLink, hasLink, linkTag, linkAttrs, navigateOnClick } = useRouterLink({\n fallbackTag: 'button'\n })\n\n const style = computed(() => {\n const obj = props.fab === false && props.fabMini === false\n ? sizeStyle.value\n : {}\n\n return props.padding !== void 0\n ? Object.assign({}, obj, {\n padding: props.padding\n .split(/\\s+/)\n .map(v => (v in btnPadding ? btnPadding[ v ] + 'px' : v))\n .join(' '),\n minWidth: '0',\n minHeight: '0'\n })\n : obj\n })\n\n const isRounded = computed(() =>\n props.rounded === true || props.fab === true || props.fabMini === true\n )\n\n const isActionable = computed(() =>\n props.disable !== true && props.loading !== true\n )\n\n const tabIndex = computed(() => (\n isActionable.value === true ? props.tabindex || 0 : -1\n ))\n\n const design = computed(() => getBtnDesign(props, 'standard'))\n\n const attributes = computed(() => {\n const acc = { tabindex: tabIndex.value }\n\n if (hasLink.value === true) {\n Object.assign(acc, linkAttrs.value)\n }\n else if (formTypes.includes(props.type) === true) {\n acc.type = props.type\n }\n\n if (linkTag.value === 'a') {\n if (props.disable === true) {\n acc[ 'aria-disabled' ] = 'true'\n }\n else if (acc.href === void 0) {\n acc.role = 'button'\n }\n\n if (hasRouterLink.value !== true && mediaTypeRE.test(props.type) === true) {\n acc.type = props.type\n }\n }\n else if (props.disable === true) {\n acc.disabled = ''\n acc[ 'aria-disabled' ] = 'true'\n }\n\n if (props.loading === true && props.percentage !== void 0) {\n Object.assign(acc, {\n role: 'progressbar',\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n 'aria-valuenow': props.percentage\n })\n }\n\n return acc\n })\n\n const classes = computed(() => {\n let colors\n\n if (props.color !== void 0) {\n if (props.flat === true || props.outline === true) {\n colors = `text-${ props.textColor || props.color }`\n }\n else {\n colors = `bg-${ props.color } text-${ props.textColor || 'white' }`\n }\n }\n else if (props.textColor) {\n colors = `text-${ props.textColor }`\n }\n\n const shape = props.round === true\n ? 'round'\n : `rectangle${ isRounded.value === true ? ' q-btn--rounded' : (props.square === true ? ' q-btn--square' : '') }`\n\n return `q-btn--${ design.value } q-btn--${ shape }`\n + (colors !== void 0 ? ' ' + colors : '')\n + (isActionable.value === true ? ' q-btn--actionable q-focusable q-hoverable' : (props.disable === true ? ' disabled' : ''))\n + (props.fab === true ? ' q-btn--fab' : (props.fabMini === true ? ' q-btn--fab-mini' : ''))\n + (props.noCaps === true ? ' q-btn--no-uppercase' : '')\n + (props.dense === true ? ' q-btn--dense' : '')\n + (props.stretch === true ? ' no-border-radius self-stretch' : '')\n + (props.glossy === true ? ' glossy' : '')\n + (props.square ? ' q-btn--square' : '')\n })\n\n const innerClasses = computed(() =>\n alignClass.value + (props.stack === true ? ' column' : ' row')\n + (props.noWrap === true ? ' no-wrap text-no-wrap' : '')\n + (props.loading === true ? ' q-btn__content--hidden' : '')\n )\n\n return {\n classes,\n style,\n innerClasses,\n attributes,\n hasLink,\n linkTag,\n navigateOnClick,\n isActionable\n }\n}\n","import { h, ref, computed, Transition, onBeforeUnmount, withDirectives, getCurrentInstance } from 'vue'\n\nimport QIcon from '../icon/QIcon.js'\nimport QSpinner from '../spinner/QSpinner.js'\n\nimport Ripple from '../../directives/ripple/Ripple.js'\n\nimport useBtn, { useBtnProps } from './use-btn.js'\n\nimport { createComponent } from '../../utils/private.create/create.js'\nimport { hMergeSlot } from '../../utils/private.render/render.js'\nimport { stop, prevent, stopAndPrevent, listenOpts } from '../../utils/event/event.js'\nimport { isKeyCode } from '../../utils/private.keyboard/key-composition.js'\n\nconst { passiveCapture } = listenOpts\n\nlet\n touchTarget = null,\n keyboardTarget = null,\n mouseTarget = null\n\nexport default createComponent({\n name: 'QBtn',\n\n props: {\n ...useBtnProps,\n\n percentage: Number,\n darkPercentage: Boolean,\n\n onTouchstart: [ Function, Array ]\n },\n\n emits: [ 'click', 'keydown', 'mousedown', 'keyup' ],\n\n setup (props, { slots, emit }) {\n const { proxy } = getCurrentInstance()\n\n const {\n classes, style, innerClasses,\n attributes,\n hasLink, linkTag, navigateOnClick,\n isActionable\n } = useBtn(props)\n\n const rootRef = ref(null)\n const blurTargetRef = ref(null)\n\n let localTouchTargetEl = null, avoidMouseRipple, mouseTimer = null\n\n const hasLabel = computed(() =>\n props.label !== void 0 && props.label !== null && props.label !== ''\n )\n\n const ripple = computed(() => (\n props.disable === true || props.ripple === false\n ? false\n : {\n keyCodes: hasLink.value === true ? [ 13, 32 ] : [ 13 ],\n ...(props.ripple === true ? {} : props.ripple)\n }\n ))\n\n const rippleProps = computed(() => ({ center: props.round }))\n\n const percentageStyle = computed(() => {\n const val = Math.max(0, Math.min(100, props.percentage))\n return val > 0\n ? { transition: 'transform 0.6s', transform: `translateX(${ val - 100 }%)` }\n : {}\n })\n\n const onEvents = computed(() => {\n if (props.loading === true) {\n return {\n onMousedown: onLoadingEvt,\n onTouchstart: onLoadingEvt,\n onClick: onLoadingEvt,\n onKeydown: onLoadingEvt,\n onKeyup: onLoadingEvt\n }\n }\n\n if (isActionable.value === true) {\n const acc = {\n onClick,\n onKeydown,\n onMousedown\n }\n\n if (proxy.$q.platform.has.touch === true) {\n const suffix = props.onTouchstart !== void 0\n ? ''\n : 'Passive'\n\n acc[ `onTouchstart${ suffix }` ] = onTouchstart\n }\n\n return acc\n }\n\n return {\n // needed; especially for disabled <a> tags\n onClick: stopAndPrevent\n }\n })\n\n const nodeProps = computed(() => ({\n ref: rootRef,\n class: 'q-btn q-btn-item non-selectable no-outline ' + classes.value,\n style: style.value,\n ...attributes.value,\n ...onEvents.value\n }))\n\n function onClick (e) {\n // is it already destroyed?\n if (rootRef.value === null) return\n\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 props.type === 'submit'\n && el !== document.body\n && rootRef.value.contains(el) === false\n // required for iOS and desktop Safari\n && el.contains(rootRef.value) === false\n ) {\n rootRef.value.focus()\n\n const onClickCleanup = () => {\n document.removeEventListener('keydown', stopAndPrevent, true)\n document.removeEventListener('keyup', onClickCleanup, passiveCapture)\n rootRef.value !== null && rootRef.value.removeEventListener('blur', onClickCleanup, passiveCapture)\n }\n\n document.addEventListener('keydown', stopAndPrevent, true)\n document.addEventListener('keyup', onClickCleanup, passiveCapture)\n rootRef.value.addEventListener('blur', onClickCleanup, passiveCapture)\n }\n }\n\n navigateOnClick(e)\n }\n\n function onKeydown (e) {\n // is it already destroyed?\n if (rootRef.value === null) return\n\n emit('keydown', e)\n\n if (isKeyCode(e, [ 13, 32 ]) === true && keyboardTarget !== rootRef.value) {\n keyboardTarget !== null && cleanup()\n\n if (e.defaultPrevented !== true) {\n // focus external button if the focus helper was focused before\n rootRef.value.focus()\n\n keyboardTarget = rootRef.value\n rootRef.value.classList.add('q-btn--active')\n document.addEventListener('keyup', onPressEnd, true)\n rootRef.value.addEventListener('blur', onPressEnd, passiveCapture)\n }\n\n stopAndPrevent(e)\n }\n }\n\n function onTouchstart (e) {\n // is it already destroyed?\n if (rootRef.value === null) return\n\n emit('touchstart', e)\n\n if (e.defaultPrevented === true) return\n\n if (touchTarget !== rootRef.value) {\n touchTarget !== null && cleanup()\n touchTarget = rootRef.value\n\n localTouchTargetEl = e.target\n localTouchTargetEl.addEventListener('touchcancel', onPressEnd, passiveCapture)\n localTouchTargetEl.addEventListener('touchend', onPressEnd, passiveCapture)\n }\n\n // avoid duplicated mousedown event\n // triggering another early ripple\n avoidMouseRipple = true\n mouseTimer !== null && clearTimeout(mouseTimer)\n mouseTimer = setTimeout(() => {\n mouseTimer = null\n avoidMouseRipple = false\n }, 200)\n }\n\n function onMousedown (e) {\n // is it already destroyed?\n if (rootRef.value === null) return\n\n e.qSkipRipple = avoidMouseRipple === true\n emit('mousedown', e)\n\n if (e.defaultPrevented !== true && mouseTarget !== rootRef.value) {\n mouseTarget !== null && cleanup()\n mouseTarget = rootRef.value\n rootRef.value.classList.add('q-btn--active')\n document.addEventListener('mouseup', onPressEnd, passiveCapture)\n }\n }\n\n function onPressEnd (e) {\n // is it already destroyed?\n if (rootRef.value === null) return\n\n // needed for IE (because it emits blur when focusing button from focus helper)\n if (e !== void 0 && e.type === 'blur' && document.activeElement === rootRef.value) {\n return\n }\n\n if (e !== void 0 && e.type === 'keyup') {\n if (keyboardTarget === rootRef.value && 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 rootRef.value.dispatchEvent(evt)\n\n stopAndPrevent(e)\n\n // for ripple\n e.qKeyEvent = true\n }\n\n emit('keyup', e)\n }\n\n cleanup()\n }\n\n function cleanup (destroying) {\n const blurTarget = blurTargetRef.value\n\n if (\n destroying !== true\n && (touchTarget === rootRef.value || mouseTarget === rootRef.value)\n && blurTarget !== null\n && blurTarget !== document.activeElement\n ) {\n blurTarget.setAttribute('tabindex', -1)\n blurTarget.focus()\n }\n\n if (touchTarget === rootRef.value) {\n if (localTouchTargetEl !== null) {\n localTouchTargetEl.removeEventListener('touchcancel', onPressEnd, passiveCapture)\n localTouchTargetEl.removeEventListener('touchend', onPressEnd, passiveCapture)\n }\n touchTarget = localTouchTargetEl = null\n }\n\n if (mouseTarget === rootRef.value) {\n document.removeEventListener('mouseup', onPressEnd, passiveCapture)\n mouseTarget = null\n }\n\n if (keyboardTarget === rootRef.value) {\n document.removeEventListener('keyup', onPressEnd, true)\n rootRef.value !== null && rootRef.value.removeEventListener('blur', onPressEnd, passiveCapture)\n keyboardTarget = null\n }\n\n rootRef.value !== null && rootRef.value.classList.remove('q-btn--active')\n }\n\n function onLoadingEvt (evt) {\n stopAndPrevent(evt)\n evt.qSkipRipple = true\n }\n\n onBeforeUnmount(() => {\n cleanup(true)\n })\n\n // expose public methods\n Object.assign(proxy, {\n click: e => {\n if (isActionable.value === true) {\n onClick(e)\n }\n }\n })\n\n return () => {\n let inner = []\n\n props.icon !== void 0 && inner.push(\n h(QIcon, {\n name: props.icon,\n left: props.stack !== true && hasLabel.value === true,\n role: 'img'\n })\n )\n\n hasLabel.value === true && inner.push(\n h('span', { class: 'block' }, [ props.label ])\n )\n\n inner = hMergeSlot(slots.default, inner)\n\n if (props.iconRight !== void 0 && props.round === false) {\n inner.push(\n h(QIcon, {\n name: props.iconRight,\n right: props.stack !== true && hasLabel.value === true,\n role: 'img'\n })\n )\n }\n\n const child = [\n h('span', {\n class: 'q-focus-helper',\n ref: blurTargetRef\n })\n ]\n\n if (props.loading === true && props.percentage !== void 0) {\n child.push(\n h('span', {\n class: 'q-btn__progress absolute-full overflow-hidden' + (props.darkPercentage === true ? ' q-btn__progress--dark' : '')\n }, [\n h('span', {\n class: 'q-btn__progress-indicator fit block',\n style: percentageStyle.value\n })\n ])\n )\n }\n\n child.push(\n h('span', {\n class: 'q-btn__content text-center col items-center q-anchor--skip ' + innerClasses.value\n }, inner)\n )\n\n props.loading !== null && child.push(\n h(Transition, {\n name: 'q-transition--fade'\n }, () => (\n props.loading === true\n ? [\n h('span', {\n key: 'loading',\n class: 'absolute-full flex flex-center'\n }, slots.loading !== void 0 ? slots.loading() : [ h(QSpinner) ])\n ]\n : null\n ))\n )\n\n return withDirectives(\n h(\n linkTag.value,\n nodeProps.value,\n child\n ),\n [ [\n Ripple,\n ripple.value,\n void 0,\n rippleProps.value\n ] ]\n )\n }\n }\n})\n","import { h, computed } from 'vue'\n\nimport { createComponent } from '../../utils/private.create/create.js'\nimport { hMergeSlot } from '../../utils/private.render/render.js'\n\nconst alignValues = [ 'top', 'middle', 'bottom' ]\n\nexport default createComponent({\n name: 'QBadge',\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 => alignValues.includes(v)\n }\n },\n\n setup (props, { slots }) {\n const style = computed(() => {\n return props.align !== void 0\n ? { verticalAlign: props.align }\n : null\n })\n\n const classes = computed(() => {\n const text = props.outline === true\n ? props.color || props.textColor\n : props.textColor\n\n return 'q-badge flex inline items-center no-wrap'\n + ` q-badge--${ props.multiLine === true ? 'multi' : 'single' }-line`\n + (props.outline === true\n ? ' q-badge--outline'\n : (props.color !== void 0 ? ` bg-${ props.color }` : '')\n )\n + (text !== void 0 ? ` text-${ text }` : '')\n + (props.floating === true ? ' q-badge--floating' : '')\n + (props.rounded === true ? ' q-badge--rounded' : '')\n + (props.transparent === true ? ' q-badge--transparent' : '')\n })\n\n return () => h('div', {\n class: classes.value,\n style: style.value,\n role: 'status',\n 'aria-label': props.label\n }, hMergeSlot(slots.default, props.label !== void 0 ? [ props.label ] : []))\n }\n})\n","export function injectProp (target, propName, get, set) {\n Object.defineProperty(target, propName, {\n get,\n set,\n enumerable: true\n })\n return target\n}\n\nexport function injectMultipleProps (target, props) {\n for (const key in props) {\n injectProp(target, key, props[ key ])\n }\n return target\n}\n","/* eslint-disable no-useless-escape */\n\nimport { ref, reactive } from 'vue'\nimport { injectProp } from '../../utils/private.inject-obj-prop/inject-obj-prop.js'\n\n/**\n * __ QUASAR_SSR __ -> runs on SSR on client or server\n * __ QUASAR_SSR_SERVER __ -> runs on SSR on server\n * __ QUASAR_SSR_CLIENT __ -> runs on SSR on client\n * __ QUASAR_SSR_PWA __ -> built with SSR+PWA; may run on SSR on client or on PWA client\n * (needs runtime detection)\n */\n\nexport const isRuntimeSsrPreHydration = __QUASAR_SSR_SERVER__\n ? { value: true }\n : ref(\n __QUASAR_SSR_CLIENT__ && (\n __QUASAR_SSR_PWA__ ? document.body.getAttribute('data-server-rendered') !== null : true\n )\n )\n\nlet preHydrationBrowser\n\nfunction getMatch (userAgent, platformMatch) {\n const match = /(edg|edge|edga|edgios)\\/([\\w.]+)/.exec(userAgent)\n || /(opr)[\\/]([\\w.]+)/.exec(userAgent)\n || /(vivaldi)[\\/]([\\w.]+)/.exec(userAgent)\n || /(chrome|crios)[\\/]([\\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 || []\n\n return {\n browser: match[ 5 ] || match[ 3 ] || match[ 1 ] || '',\n version: 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 // TODO: Remove BlackBerry detection. BlackBerry OS, BlackBerry 10, and BlackBerry PlayBook OS\n // is officially dead as of January 4, 2022 (https://www.blackberry.com/us/en/support/devices/end-of-life)\n || /(playbook)/.exec(userAgent)\n || /(bb)/.exec(userAgent)\n || /(blackberry)/.exec(userAgent)\n || []\n}\n\nconst hasTouch = __QUASAR_SSR_SERVER__\n ? false\n : 'ontouchstart' in window || window.navigator.maxTouchPoints > 0\n\nfunction getPlatform (UA) {\n const userAgent = UA.toLowerCase()\n const platformMatch = getPlatformMatch(userAgent)\n const matched = getMatch(userAgent, platformMatch)\n const browser = {\n mobile: false,\n desktop: false,\n\n cordova: false,\n capacitor: false,\n nativeMobile: false,\n // nativeMobileWrapper: void 0,\n electron: false,\n bex: false,\n\n linux: false,\n mac: false,\n win: false,\n cros: false,\n\n chrome: false,\n firefox: false,\n opera: false,\n safari: false,\n vivaldi: false,\n edge: false,\n edgeChromium: false,\n ie: false,\n webkit: false,\n\n android: false,\n ios: false,\n ipad: false,\n iphone: false,\n ipod: false,\n kindle: false,\n winphone: false,\n blackberry: false,\n playbook: false,\n silk: false\n }\n\n if (matched.browser) {\n browser[ matched.browser ] = true\n browser.version = matched.version\n browser.versionNumber = parseInt(matched.version, 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 (\n knownMobiles === true\n || userAgent.indexOf('mobile') !== -1\n ) {\n browser.mobile = true\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 if (browser[ 'windows phone' ]) {\n browser.winphone = true\n delete browser[ 'windows phone' ]\n }\n\n if (browser.edga || browser.edgios || browser.edg) {\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 // 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.vivaldi) {\n matched.browser = 'vivaldi'\n browser.vivaldi = true\n }\n\n // TODO: The assumption about WebKit based browsers below is not completely accurate.\n // Google released Blink(a fork of WebKit) engine on April 3, 2013, which is really different than WebKit today.\n // Today, one might want to check for WebKit to deal with its bugs, which is used on all browsers on iOS, and Safari browser on all platforms.\n if (\n // Chrome, Opera 15+, Vivaldi and Safari are webkit based browsers\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 // Opera 15+ are identified as opr\n if (browser.opr) {\n matched.browser = 'opera'\n browser.opera = true\n }\n\n // Some browsers are marked as Safari but are not\n if (browser.safari) {\n if (browser.blackberry || browser.bb) {\n matched.browser = 'blackberry'\n browser.blackberry = true\n }\n else if (browser.playbook) {\n matched.browser = 'playbook'\n browser.playbook = true\n }\n else if (browser.android) {\n matched.browser = 'android'\n browser.android = true\n }\n else if (browser.kindle) {\n matched.browser = 'kindle'\n browser.kindle = true\n }\n else if (browser.silk) {\n matched.browser = 'silk'\n browser.silk = true\n }\n }\n\n // Assign the name and platform variable\n browser.name = matched.browser\n browser.platform = matched.platform\n\n if (__QUASAR_SSR_SERVER__ !== true) {\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 (isRuntimeSsrPreHydration.value === true) {\n /*\n * We need to remember the current state as\n * everything that follows can only be corrected client-side,\n * but we don't want to brake the hydration.\n *\n * The \"client\" object is imported throughout the UI and should\n * be as accurate as possible given all the knowledge that we posses\n * because decisions are required to be made immediately, even\n * before the hydration occurs.\n */\n preHydrationBrowser = { is: { ...browser } }\n }\n\n /*\n * All the following should be client-side corrections only\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\n delete browser.mac\n delete browser.desktop\n\n const platform = Math.min(window.innerHeight, window.innerWidth) > 414\n ? 'ipad'\n : 'iphone'\n\n Object.assign(browser, {\n mobile: true,\n ios: true,\n platform,\n [ platform ]: true\n })\n }\n\n if (\n browser.mobile !== true\n && window.navigator.userAgentData\n && window.navigator.userAgentData.mobile\n ) {\n /*\n * Correction needed on client-side when\n * we also have the navigator userAgentData\n */\n\n delete browser.desktop\n browser.mobile = true\n }\n }\n }\n\n return browser\n}\n\nconst userAgent = __QUASAR_SSR_SERVER__\n ? ''\n : navigator.userAgent || navigator.vendor || window.opera\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 = __QUASAR_SSR_SERVER__\n ? ssrClient\n : {\n userAgent,\n is: getPlatform(userAgent),\n has: {\n touch: hasTouch\n },\n within: {\n iframe: window.self !== window.top\n }\n }\n\nconst Platform = {\n install (opts) {\n const { $q } = opts\n\n if (__QUASAR_SSR_SERVER__) {\n $q.platform = this.parseSSR(opts.ssrContext)\n }\n else if (isRuntimeSsrPreHydration.value === true) {\n // takeover should increase accuracy for\n // the rest of the props; we also avoid\n // hydration errors\n opts.onSSRHydrated.push(() => {\n Object.assign($q.platform, client)\n isRuntimeSsrPreHydration.value = false\n })\n\n // we need to make platform reactive\n // for the takeover phase\n $q.platform = reactive(this)\n }\n else {\n $q.platform = this\n }\n }\n}\n\nif (__QUASAR_SSR_SERVER__) {\n Platform.parseSSR = (ssrContext) => {\n const userAgent = ssrContext.req.headers[ 'user-agent' ] || ssrContext.req.headers[ 'User-Agent' ] || ''\n return {\n ...client,\n userAgent,\n is: getPlatform(userAgent)\n }\n }\n}\nelse {\n // do not access window.localStorage without\n // devland actually using it as this will get\n // reported under \"Cookies\" in Google Chrome\n let hasWebStorage\n\n injectProp(client.has, 'webStorage', () => {\n if (hasWebStorage !== void 0) {\n return hasWebStorage\n }\n\n try {\n if (window.localStorage) {\n hasWebStorage = true\n return true\n }\n }\n catch (_) {}\n\n hasWebStorage = false\n return false\n })\n\n Object.assign(Platform, client)\n\n if (isRuntimeSsrPreHydration.value === true) {\n // must match with server-side before\n // client taking over in order to prevent\n // hydration errors\n Object.assign(Platform, preHydrationBrowser, ssrClient)\n\n // free up memory\n preHydrationBrowser = null\n }\n}\n\nexport default Platform\n","import Platform from '../../plugins/platform/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 { ref, watch, onMounted, onBeforeUnmount, nextTick, getCurrentInstance } from 'vue'\n\nimport { clearSelection } from '../../utils/private.selection/selection.js'\nimport { addEvt, cleanEvt, prevent } from '../../utils/event/event.js'\nimport { isKeyCode } from '../../utils/private.keyboard/key-composition.js'\n\nexport const useAnchorStaticProps = {\n /* SSR does not know about Element */\n target: __QUASAR_SSR_SERVER__\n ? { default: true }\n : {\n type: [ Boolean, String, Element ],\n default: true\n },\n\n noParentEvent: Boolean\n}\n\nexport const useAnchorProps = {\n ...useAnchorStaticProps,\n contextMenu: Boolean\n}\n\nexport default function ({\n showing,\n avoidEmit, // required for QPopupProxy (true)\n configureAnchorEl // optional\n}) {\n const { props, proxy, emit } = getCurrentInstance()\n\n const anchorEl = ref(null)\n\n let touchTimer = null\n\n function canShow (evt) {\n // abort with no parent configured or on multi-touch\n return anchorEl.value === null\n ? false\n : (evt === void 0 || evt.touches === void 0 || evt.touches.length <= 1)\n }\n\n const anchorEvents = {}\n\n if (configureAnchorEl === void 0) {\n // default configureAnchorEl is designed for\n // QMenu & QPopupProxy (which is why it's handled here)\n\n Object.assign(anchorEvents, {\n hide (evt) {\n proxy.hide(evt)\n },\n\n toggle (evt) {\n proxy.toggle(evt)\n evt.qAnchorHandled = true\n },\n\n toggleKey (evt) {\n isKeyCode(evt, 13) === true && anchorEvents.toggle(evt)\n },\n\n contextClick (evt) {\n proxy.hide(evt)\n prevent(evt)\n nextTick(() => {\n proxy.show(evt)\n evt.qAnchorHandled = true\n })\n },\n\n prevent,\n\n mobileTouch (evt) {\n anchorEvents.mobileCleanup(evt)\n\n if (canShow(evt) !== true) {\n return\n }\n\n proxy.hide(evt)\n anchorEl.value.classList.add('non-selectable')\n\n const target = evt.target\n addEvt(anchorEvents, 'anchor', [\n [ target, 'touchmove', 'mobileCleanup', 'passive' ],\n [ target, 'touchend', 'mobileCleanup', 'passive' ],\n [ target, 'touchcancel', 'mobileCleanup', 'passive' ],\n [ anchorEl.value, 'contextmenu', 'prevent', 'notPassive' ]\n ])\n\n touchTimer = setTimeout(() => {\n touchTimer = null\n proxy.show(evt)\n evt.qAnchorHandled = true\n }, 300)\n },\n\n mobileCleanup (evt) {\n anchorEl.value.classList.remove('non-selectable')\n\n if (touchTimer !== null) {\n clearTimeout(touchTimer)\n touchTimer = null\n }\n\n if (showing.value === true && evt !== void 0) {\n clearSelection()\n }\n }\n })\n\n configureAnchorEl = function (context = props.contextMenu) {\n if (props.noParentEvent === true || anchorEl.value === null) return\n\n let evts\n\n if (context === true) {\n if (proxy.$q.platform.is.mobile === true) {\n evts = [\n [ anchorEl.value, 'touchstart', 'mobileTouch', 'passive' ]\n ]\n }\n else {\n evts = [\n [ anchorEl.value, 'mousedown', 'hide', 'passive' ],\n [ anchorEl.value, 'contextmenu', 'contextClick', 'notPassive' ]\n ]\n }\n }\n else {\n evts = [\n [ anchorEl.value, 'click', 'toggle', 'passive' ],\n [ anchorEl.value, 'keyup', 'toggleKey', 'passive' ]\n ]\n }\n\n addEvt(anchorEvents, 'anchor', evts)\n }\n }\n\n function unconfigureAnchorEl () {\n cleanEvt(anchorEvents, 'anchor')\n }\n\n function setAnchorEl (el) {\n anchorEl.value = el\n while (anchorEl.value.classList.contains('q-anchor--skip')) {\n anchorEl.value = anchorEl.value.parentNode\n }\n configureAnchorEl()\n }\n\n function pickAnchorEl () {\n if (props.target === false || props.target === '' || proxy.$el.parentNode === null) {\n anchorEl.value = null\n }\n else if (props.target === true) {\n setAnchorEl(proxy.$el.parentNode)\n }\n else {\n let el = props.target\n\n if (typeof props.target === 'string') {\n try {\n el = document.querySelector(props.target)\n }\n catch (err) {\n el = void 0\n }\n }\n\n if (el !== void 0 && el !== null) {\n anchorEl.value = el.$el || el\n configureAnchorEl()\n }\n else {\n anchorEl.value = null\n console.error(`Anchor: target \"${ props.target }\" not found`)\n }\n }\n }\n\n watch(() => props.contextMenu, val => {\n if (anchorEl.value !== null) {\n unconfigureAnchorEl()\n configureAnchorEl(val)\n }\n })\n\n watch(() => props.target, () => {\n if (anchorEl.value !== null) {\n unconfigureAnchorEl()\n }\n\n pickAnchorEl()\n })\n\n watch(() => props.noParentEvent, val => {\n if (anchorEl.value !== null) {\n if (val === true) {\n unconfigureAnchorEl()\n }\n else {\n configureAnchorEl()\n }\n }\n })\n\n onMounted(() => {\n pickAnchorEl()\n\n if (avoidEmit !== true && props.modelValue === true && anchorEl.value === null) {\n emit('update:modelValue', false)\n }\n })\n\n onBeforeUnmount(() => {\n touchTimer !== null && clearTimeout(touchTimer)\n unconfigureAnchorEl()\n })\n\n return {\n anchorEl,\n canShow,\n anchorEvents\n }\n}\n","import { ref, watch, onBeforeUnmount } from 'vue'\n\nimport { listenOpts } from '../../utils/event/event.js'\n\nexport default function (props, configureScrollTarget) {\n const localScrollTarget = ref(null)\n let scrollFn\n\n function changeScrollEvent (scrollTarget, fn) {\n const fnProp = `${ fn !== void 0 ? 'add' : 'remove' }EventListener`\n const fnHandler = fn !== void 0 ? fn : scrollFn\n\n if (scrollTarget !== window) {\n scrollTarget[ fnProp ]('scroll', fnHandler, listenOpts.passive)\n }\n\n window[ fnProp ]('scroll', fnHandler, listenOpts.passive)\n\n scrollFn = fn\n }\n\n function unconfigureScrollTarget () {\n if (localScrollTarget.value !== null) {\n changeScrollEvent(localScrollTarget.value)\n localScrollTarget.value = null\n }\n }\n\n const noParentEventWatcher = watch(() => props.noParentEvent, () => {\n if (localScrollTarget.value !== null) {\n unconfigureScrollTarget()\n configureScrollTarget()\n }\n })\n\n onBeforeUnmount(noParentEventWatcher)\n\n return {\n localScrollTarget,\n unconfigureScrollTarget,\n changeScrollEvent\n }\n}\n","import { watch, nextTick, onMounted, getCurrentInstance } from 'vue'\n\nimport { vmHasRouter } from '../../utils/private.vm/vm.js'\n\nexport const useModelToggleProps = {\n modelValue: {\n type: Boolean,\n default: null\n },\n\n 'onUpdate:modelValue': [ Function, Array ]\n}\n\nexport const useModelToggleEmits = [\n 'beforeShow', 'show', 'beforeHide', 'hide'\n]\n\n// handleShow/handleHide -> removeTick(), self (& emit show)\n\nexport default function ({\n showing,\n canShow, // optional\n hideOnRouteChange, // optional\n handleShow, // optional\n handleHide, // optional\n processOnMount // optional\n}) {\n const vm = getCurrentInstance()\n const { props, emit, proxy } = vm\n\n let payload\n\n function toggle (evt) {\n if (showing.value === true) {\n hide(evt)\n }\n else {\n show(evt)\n }\n }\n\n function show (evt) {\n if (\n props.disable === true\n || (evt !== void 0 && evt.qAnchorHandled === true)\n || (canShow !== void 0 && canShow(evt) !== true)\n ) {\n return\n }\n\n const listener = props[ 'onUpdate:modelValue' ] !== void 0\n\n if (listener === true && __QUASAR_SSR_SERVER__ !== true) {\n emit('update:modelValue', true)\n payload = evt\n nextTick(() => {\n if (payload === evt) {\n payload = void 0\n }\n })\n }\n\n if (props.modelValue === null || listener === false || __QUASAR_SSR_SERVER__) {\n processShow(evt)\n }\n }\n\n function processShow (evt) {\n if (showing.value === true) {\n return\n }\n\n showing.value = true\n\n emit('beforeShow', evt)\n\n if (handleShow !== void 0) {\n handleShow(evt)\n }\n else {\n emit('show', evt)\n }\n }\n\n function hide (evt) {\n if (__QUASAR_SSR_SERVER__ || props.disable === true) {\n return\n }\n\n const listener = props[ 'onUpdate:modelValue' ] !== void 0\n\n if (listener === true && __QUASAR_SSR_SERVER__ !== true) {\n emit('update:modelValue', false)\n payload = evt\n nextTick(() => {\n if (payload === evt) {\n payload = void 0\n }\n })\n }\n\n if (props.modelValue === null || listener === false || __QUASAR_SSR_SERVER__) {\n processHide(evt)\n }\n }\n\n function processHide (evt) {\n if (showing.value === false) {\n return\n }\n\n showing.value = false\n\n emit('beforeHide', evt)\n\n if (handleHide !== void 0) {\n handleHide(evt)\n }\n else {\n emit('hide', evt)\n }\n }\n\n function processModelChange (val) {\n if (props.disable === true && val === true) {\n if (props[ 'onUpdate:modelValue' ] !== void 0) {\n emit('update:modelValue', false)\n }\n }\n else if ((val === true) !== showing.value) {\n const fn = val === true ? processShow : processHide\n fn(payload)\n }\n }\n\n watch(() => props.modelValue, processModelChange)\n\n if (hideOnRouteChange !== void 0 && vmHasRouter(vm) === true) {\n watch(() => proxy.$route.fullPath, () => {\n if (hideOnRouteChange.value === true && showing.value === true) {\n hide()\n }\n })\n }\n\n processOnMount === true && onMounted(() => {\n processModelChange(props.modelValue)\n })\n\n // expose public methods\n const publicMethods = { show, hide, toggle }\n Object.assign(proxy, publicMethods)\n\n return publicMethods\n}\n","let queue = []\nlet waitFlags = []\n\nfunction clearFlag (flag) {\n waitFlags = waitFlags.filter(entry => entry !== flag)\n}\n\nexport function addFocusWaitFlag (flag) {\n clearFlag(flag)\n waitFlags.push(flag)\n}\n\nexport function removeFocusWaitFlag (flag) {\n clearFlag(flag)\n\n if (waitFlags.length === 0 && queue.length !== 0) {\n // only call last focus handler (can't focus multiple things at once)\n queue[ queue.length - 1 ]()\n queue = []\n }\n}\n\nexport function addFocusFn (fn) {\n if (waitFlags.length === 0) {\n fn()\n }\n else {\n queue.push(fn)\n }\n}\n\nexport function removeFocusFn (fn) {\n queue = queue.filter(entry => entry !== fn)\n}\n","export const globalConfig = {}\nexport let globalConfigIsFrozen = false\n\nexport function freezeGlobalConfig () {\n globalConfigIsFrozen = true\n}\n","import { globalConfig } from '../private.config/instance-config.js'\n\nconst nodesList = []\nconst portalTypeList = []\n\nlet portalIndex = 1\nlet target = __QUASAR_SSR_SERVER__\n ? void 0\n : document.body\n\nexport function createGlobalNode (id, portalType) {\n const el = document.createElement('div')\n\n el.id = portalType !== void 0\n ? `q-portal--${ portalType }--${ portalIndex++ }`\n : id\n\n if (globalConfig.globalNodes !== void 0) {\n const cls = globalConfig.globalNodes.class\n if (cls !== void 0) {\n el.className = cls\n }\n }\n\n target.appendChild(el)\n nodesList.push(el)\n portalTypeList.push(portalType)\n\n return el\n}\n\nexport function removeGlobalNode (el) {\n const nodeIndex = nodesList.indexOf(el)\n\n nodesList.splice(nodeIndex, 1)\n portalTypeList.splice(nodeIndex, 1)\n\n el.remove()\n}\n\nexport function changeGlobalNodesTarget (newTarget) {\n if (newTarget === target) {\n return\n }\n\n target = newTarget\n\n if (\n target === document.body\n // or we have less than 2 dialogs:\n || portalTypeList.reduce((acc, type) => (type === 'dialog' ? acc + 1 : acc), 0) < 2\n ) {\n nodesList.forEach(node => {\n if (node.contains(target) === false) {\n target.appendChild(node)\n }\n })\n\n return\n }\n\n const lastDialogIndex = portalTypeList.lastIndexOf('dialog')\n\n for (let i = 0; i < nodesList.length; i++) {\n const el = nodesList[ i ]\n\n if (\n (i === lastDialogIndex || portalTypeList[ i ] !== 'dialog')\n && el.contains(target) === false\n ) {\n target.appendChild(el)\n }\n }\n}\n","import { getParentProxy } from '../private.vm/vm.js'\n\nexport const portalProxyList = []\n\nexport function getPortalProxy (el) {\n return portalProxyList.find(proxy =>\n proxy.contentEl !== null\n && proxy.contentEl.contains(el)\n )\n}\n\nexport function closePortalMenus (proxy, evt) {\n do {\n if (proxy.$options.name === 'QMenu') {\n proxy.hide(evt)\n\n // is this a point of separation?\n if (proxy.$props.separateClosePopup === true) {\n return getParentProxy(proxy)\n }\n }\n else if (proxy.__qPortal === true) {\n // treat it as point of separation if parent is QPopupProxy\n // (so mobile matches desktop behavior)\n // and hide it too\n const parent = getParentProxy(proxy)\n\n if (parent !== void 0 && parent.$options.name === 'QPopupProxy') {\n proxy.hide(evt)\n return parent\n }\n else {\n return proxy\n }\n }\n\n proxy = getParentProxy(proxy)\n } while (proxy !== void 0 && proxy !== null)\n}\n\nexport function closePortals (proxy, evt, depth) {\n while (depth !== 0 && proxy !== void 0 && proxy !== null) {\n if (proxy.__qPortal === true) {\n depth--\n\n if (proxy.$options.name === 'QMenu') {\n proxy = closePortalMenus(proxy, evt)\n continue\n }\n\n proxy.hide(evt)\n }\n\n proxy = getParentProxy(proxy)\n }\n}\n","import { h, ref, onUnmounted, Teleport } from 'vue'\n\nimport { createComponent } from '../../utils/private.create/create.js'\nimport { noop } from '../../utils/event/event.js'\nimport { addFocusWaitFlag, removeFocusWaitFlag } from '../../utils/private.focus/focus-manager.js'\nimport { createGlobalNode, removeGlobalNode } from '../../utils/private.config/nodes.js'\nimport { portalProxyList } from '../../utils/private.portal/portal.js'\nimport { injectProp } from '../../utils/private.inject-obj-prop/inject-obj-prop.js'\n\n/**\n * Noop internal component to ease testing\n * of the teleported content.\n *\n * const wrapper = mount(QDialog, { ... })\n * const teleportedWrapper = wrapper.findComponent({ name: 'QPortal' })\n */\nconst QPortal = createComponent({\n name: 'QPortal',\n setup (_, { slots }) {\n return () => slots.default()\n }\n})\n\nfunction isOnGlobalDialog (vm) {\n vm = vm.parent\n\n while (vm !== void 0 && vm !== null) {\n if (vm.type.name === 'QGlobalDialog') {\n return true\n }\n if (vm.type.name === 'QDialog' || vm.type.name === 'QMenu') {\n return false\n }\n\n vm = vm.parent\n }\n\n return false\n}\n\n// Warning!\n// You MUST specify \"inheritAttrs: false\" in your component\n\nexport default function (vm, innerRef, renderPortalContent, type) {\n // showing, including while in show/hide transition\n const portalIsActive = ref(false)\n\n // showing & not in any show/hide transition\n const portalIsAccessible = ref(false)\n\n if (__QUASAR_SSR_SERVER__) {\n return {\n portalIsActive,\n portalIsAccessible,\n\n showPortal: noop,\n hidePortal: noop,\n renderPortal: noop\n }\n }\n\n let portalEl = null\n const focusObj = {}\n const onGlobalDialog = type === 'dialog' && isOnGlobalDialog(vm)\n\n function showPortal (isReady) {\n if (isReady === true) {\n removeFocusWaitFlag(focusObj)\n portalIsAccessible.value = true\n return\n }\n\n portalIsAccessible.value = false\n\n if (portalIsActive.value === false) {\n if (onGlobalDialog === false && portalEl === null) {\n portalEl = createGlobalNode(false, type)\n }\n\n portalIsActive.value = true\n\n // register portal\n portalProxyList.push(vm.proxy)\n\n addFocusWaitFlag(focusObj)\n }\n }\n\n function hidePortal (isReady) {\n portalIsAccessible.value = false\n\n if (isReady !== true) return\n\n removeFocusWaitFlag(focusObj)\n portalIsActive.value = false\n\n // unregister portal\n const index = portalProxyList.indexOf(vm.proxy)\n if (index !== -1) {\n portalProxyList.splice(index, 1)\n }\n\n if (portalEl !== null) {\n removeGlobalNode(portalEl)\n portalEl = null\n }\n }\n\n onUnmounted(() => { hidePortal(true) })\n\n // needed for portal vm detection\n vm.proxy.__qPortal = true\n\n // public way of accessing the rendered content\n injectProp(vm.proxy, 'contentEl', () => innerRef.value)\n\n return {\n showPortal,\n hidePortal,\n\n portalIsActive,\n portalIsAccessible,\n\n renderPortal: () => (\n onGlobalDialog === true\n ? renderPortalContent()\n : (\n portalIsActive.value === true\n ? [ h(Teleport, { to: portalEl }, h(QPortal, renderPortalContent)) ]\n : void 0\n )\n )\n }\n}\n","import { computed } from 'vue'\n\nexport const useTransitionProps = {\n transitionShow: {\n type: String,\n default: 'fade'\n },\n\n transitionHide: {\n type: String,\n default: 'fade'\n },\n\n transitionDuration: {\n type: [ String, Number ],\n default: 300\n }\n}\n\nexport default function (props, defaultShowFn = () => {}, defaultHideFn = () => {}) {\n return {\n transitionProps: computed(() => {\n const show = `q-transition--${ props.transitionShow || defaultShowFn() }`\n const hide = `q-transition--${ props.transitionHide || defaultHideFn() }`\n\n return {\n appear: true,\n\n enterFromClass: `${ show }-enter-from`,\n enterActiveClass: `${ show }-enter-active`,\n enterToClass: `${ show }-enter-to`,\n\n leaveFromClass: `${ hide }-leave-from`,\n leaveActiveClass: `${ hide }-leave-active`,\n leaveToClass: `${ hide }-leave-to`\n }\n }),\n\n transitionStyle: computed(() => `--q-transition-duration: ${ props.transitionDuration }ms`)\n }\n}\n","import { nextTick, onDeactivated, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport { vmIsDestroyed } from '../../utils/private.vm/vm.js'\n\n/*\n * Usage:\n * registerTick(fn)\n * removeTick()\n */\n\nexport default function () {\n let tickFn\n const vm = getCurrentInstance()\n\n function removeTick () {\n tickFn = void 0\n }\n\n onDeactivated(removeTick)\n onBeforeUnmount(removeTick)\n\n return {\n removeTick,\n\n registerTick (fn) {\n tickFn = fn\n\n nextTick(() => {\n if (tickFn === fn) {\n // we also check if VM is destroyed, since if it\n // got to trigger one nextTick() we cannot stop it\n vmIsDestroyed(vm) === false && tickFn()\n tickFn = void 0\n }\n })\n }\n }\n}\n","import { onDeactivated, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport { vmIsDestroyed } from '../../utils/private.vm/vm.js'\n\n/*\n * Usage:\n * registerTimeout(fn[, delay])\n * removeTimeout()\n */\n\nexport default function () {\n let timer = null\n const vm = getCurrentInstance()\n\n function removeTimeout () {\n if (timer !== null) {\n clearTimeout(timer)\n timer = null\n }\n }\n\n onDeactivated(removeTimeout)\n onBeforeUnmount(removeTimeout)\n\n return {\n removeTimeout,\n\n registerTimeout (fn, delay) {\n removeTimeout(timer)\n\n if (vmIsDestroyed(vm) === false) {\n timer = setTimeout(() => {\n timer = null\n fn()\n }, delay)\n }\n }\n }\n}\n","import { css, getElement } from '../dom/dom.js'\n\nexport const scrollTargetProp = __QUASAR_SSR_SERVER__\n ? {} /* SSR does not know about Element */\n : [ Element, String ]\n\nconst scrollTargets = __QUASAR_SSR_SERVER__\n ? []\n : [ null, document, document.body, document.scrollingElement, document.documentElement ]\n\nexport function getScrollTarget (el, targetEl) {\n let target = getElement(targetEl)\n\n if (target === void 0) {\n if (el === void 0 || el === null) {\n return window\n }\n\n target = el.closest('.scroll,.scroll-y,.overflow-auto')\n }\n\n return scrollTargets.includes(target)\n ? window\n : target\n}\n\nexport function getScrollHeight (el) {\n return (el === window ? document.body : el).scrollHeight\n}\n\nexport function getScrollWidth (el) {\n return (el === window ? document.body : el).scrollWidth\n}\n\nexport function getVerticalScrollPosition (scrollTarget) {\n return scrollTarget === window\n ? window.pageYOffset || window.scrollY || document.body.scrollTop || 0\n : scrollTarget.scrollTop\n}\n\nexport function getHorizontalScrollPosition (scrollTarget) {\n return scrollTarget === window\n ? window.pageXOffset || window.scrollX || document.body.scrollLeft || 0\n : scrollTarget.scrollLeft\n}\n\nexport function animVerticalScrollTo (el, to, duration = 0 /* , prevTime */) {\n const prevTime = arguments[ 3 ] === void 0 ? performance.now() : arguments[ 3 ]\n const pos = getVerticalScrollPosition(el)\n\n if (duration <= 0) {\n if (pos !== to) {\n setScroll(el, to)\n }\n return\n }\n\n requestAnimationFrame(nowTime => {\n const frameTime = nowTime - prevTime\n const newPos = pos + (to - pos) / Math.max(frameTime, duration) * frameTime\n setScroll(el, newPos)\n if (newPos !== to) {\n animVerticalScrollTo(el, to, duration - frameTime, nowTime)\n }\n })\n}\n\nexport function animHorizontalScrollTo (el, to, duration = 0 /* , prevTime */) {\n const prevTime = arguments[ 3 ] === void 0 ? performance.now() : arguments[ 3 ]\n const pos = getHorizontalScrollPosition(el)\n\n if (duration <= 0) {\n if (pos !== to) {\n setHorizontalScroll(el, to)\n }\n return\n }\n\n requestAnimationFrame(nowTime => {\n const frameTime = nowTime - prevTime\n const newPos = pos + (to - pos) / Math.max(frameTime, duration) * frameTime\n setHorizontalScroll(el, newPos)\n if (newPos !== to) {\n animHorizontalScrollTo(el, to, duration - frameTime, nowTime)\n }\n })\n}\n\nfunction setScroll (scrollTarget, offset) {\n if (scrollTarget === window) {\n window.scrollTo(window.pageXOffset || window.scrollX || document.body.scrollLeft || 0, offset)\n return\n }\n scrollTarget.scrollTop = offset\n}\n\nfunction setHorizontalScroll (scrollTarget, offset) {\n if (scrollTarget === window) {\n window.scrollTo(offset, window.pageYOffset || window.scrollY || document.body.scrollTop || 0)\n return\n }\n scrollTarget.scrollLeft = offset\n}\n\nexport function setVerticalScrollPosition (scrollTarget, offset, duration) {\n if (duration) {\n animVerticalScrollTo(scrollTarget, offset, duration)\n return\n }\n setScroll(scrollTarget, offset)\n}\n\nexport 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 getVerticalScrollPosition,\n getHorizontalScrollPosition,\n\n animVerticalScrollTo,\n animHorizontalScrollTo,\n\n setVerticalScrollPosition,\n setHorizontalScrollPosition,\n\n getScrollbarWidth,\n hasScrollbar\n}\n","import { listenOpts } from '../event/event.js'\nimport { portalProxyList } from '../private.portal/portal.js'\n\nlet timer = null\n\nconst\n { notPassiveCapture } = listenOpts,\n registeredList = []\n\nfunction globalHandler (evt) {\n if (timer !== null) {\n clearTimeout(timer)\n timer = null\n }\n\n const target = evt.target\n\n if (\n target === void 0\n || target.nodeType === 8\n || target.classList.contains('no-pointer-events') === true\n ) {\n return\n }\n\n // check last portal vm if it's\n // a QDialog and not in seamless mode\n let portalIndex = portalProxyList.length - 1\n\n while (portalIndex >= 0) {\n const proxy = portalProxyList[ portalIndex ].$\n\n // skip QTooltip portals\n if (proxy.type.name === 'QTooltip') {\n portalIndex--\n continue\n }\n\n if (proxy.type.name !== 'QDialog') {\n break\n }\n\n if (proxy.props.seamless !== true) {\n return\n }\n\n portalIndex--\n }\n\n for (let i = registeredList.length - 1; i >= 0; i--) {\n const state = registeredList[ i ]\n\n if (\n (\n state.anchorEl.value === null\n || state.anchorEl.value.contains(target) === false\n )\n && (\n target === document.body\n || (\n state.innerRef.value !== null\n && state.innerRef.value.contains(target) === false\n )\n )\n ) {\n // mark the event as being processed by clickOutside\n // used to prevent refocus after menu close\n evt.qClickOutside = true\n state.onClickOutside(evt)\n }\n else {\n return\n }\n }\n}\n\nexport function addClickOutside (clickOutsideProps) {\n registeredList.push(clickOutsideProps)\n\n if (registeredList.length === 1) {\n document.addEventListener('mousedown', globalHandler, notPassiveCapture)\n document.addEventListener('touchstart', globalHandler, notPassiveCapture)\n }\n}\n\nexport function removeClickOutside (clickOutsideProps) {\n const index = registeredList.findIndex(h => h === clickOutsideProps)\n\n if (index !== -1) {\n registeredList.splice(index, 1)\n\n if (registeredList.length === 0) {\n if (timer !== null) {\n clearTimeout(timer)\n timer = null\n }\n\n document.removeEventListener('mousedown', globalHandler, notPassiveCapture)\n document.removeEventListener('touchstart', globalHandler, notPassiveCapture)\n }\n }\n}\n","import { getScrollbarWidth } from '../scroll/scroll.js'\nimport { client } from '../../plugins/platform/Platform.js'\n\nlet vpLeft, vpTop\n\nexport function validatePosition (pos) {\n const parts = pos.split(' ')\n if (parts.length !== 2) {\n return false\n }\n if ([ 'top', 'center', 'bottom' ].includes(parts[ 0 ]) !== true) {\n console.error('Anchor/Self position must start with one of top/center/bottom')\n return false\n }\n if ([ 'left', 'middle', 'right', 'start', 'end' ].includes(parts[ 1 ]) !== true) {\n console.error('Anchor/Self position must end with one of left/middle/right/start/end')\n return false\n }\n return true\n}\n\nexport function validateOffset (val) {\n if (!val) { return true }\n if (val.length !== 2) { return false }\n if (typeof val[ 0 ] !== 'number' || typeof val[ 1 ] !== 'number') {\n return false\n }\n return true\n}\n\nconst horizontalPos = {\n 'start#ltr': 'left',\n 'start#rtl': 'right',\n 'end#ltr': 'right',\n 'end#rtl': 'left'\n}\n\n;[ 'left', 'middle', 'right' ].forEach(pos => {\n horizontalPos[ `${ pos }#ltr` ] = pos\n horizontalPos[ `${ pos }#rtl` ] = pos\n})\n\nexport function parsePosition (pos, rtl) {\n const parts = pos.split(' ')\n return {\n vertical: parts[ 0 ],\n horizontal: horizontalPos[ `${ parts[ 1 ] }#${ rtl === true ? 'rtl' : 'ltr' }` ]\n }\n}\n\nexport function getAnchorProps (el, offset) {\n let { top, left, right, bottom, width, height } = el.getBoundingClientRect()\n\n if (offset !== void 0) {\n top -= offset[ 1 ]\n left -= offset[ 0 ]\n bottom += offset[ 1 ]\n right += offset[ 0 ]\n\n width += offset[ 0 ]\n height += offset[ 1 ]\n }\n\n return {\n top, bottom, height,\n left, right, width,\n middle: left + (right - left) / 2,\n center: top + (bottom - top) / 2\n }\n}\n\nfunction getAbsoluteAnchorProps (el, absoluteOffset, offset) {\n let { top, left } = el.getBoundingClientRect()\n\n top += absoluteOffset.top\n left += absoluteOffset.left\n\n if (offset !== void 0) {\n top += offset[ 1 ]\n left += offset[ 0 ]\n }\n\n return {\n top, bottom: top + 1, height: 1,\n left, right: left + 1, width: 1,\n middle: left,\n center: top\n }\n}\n\nfunction getTargetProps (width, height) {\n return {\n top: 0,\n center: height / 2,\n bottom: height,\n left: 0,\n middle: width / 2,\n right: width\n }\n}\n\nfunction getTopLeftProps (anchorProps, targetProps, anchorOrigin, selfOrigin) {\n return {\n top: anchorProps[ anchorOrigin.vertical ] - targetProps[ selfOrigin.vertical ],\n left: anchorProps[ anchorOrigin.horizontal ] - targetProps[ selfOrigin.horizontal ]\n }\n}\n\nexport function setPosition (cfg, retryNumber = 0) {\n if (\n cfg.targetEl === null\n || cfg.anchorEl === null\n || retryNumber > 5 // we should try only a few times\n ) {\n return\n }\n\n // some browsers report zero height or width because\n // we are trying too early to get these dimensions\n if (cfg.targetEl.offsetHeight === 0 || cfg.targetEl.offsetWidth === 0) {\n setTimeout(() => {\n setPosition(cfg, retryNumber + 1)\n }, 10)\n return\n }\n\n const {\n targetEl,\n offset,\n anchorEl,\n anchorOrigin,\n selfOrigin,\n absoluteOffset,\n fit,\n cover,\n maxHeight,\n maxWidth\n } = cfg\n\n if (client.is.ios === true && window.visualViewport !== void 0) {\n // uses the q-position-engine CSS class\n\n const el = document.body.style\n const { offsetLeft: left, offsetTop: top } = window.visualViewport\n\n if (left !== vpLeft) {\n el.setProperty('--q-pe-left', left + 'px')\n vpLeft = left\n }\n if (top !== vpTop) {\n el.setProperty('--q-pe-top', top + 'px')\n vpTop = top\n }\n }\n\n // scroll position might change\n // if max-height/-width changes, so we\n // need to restore it after we calculate\n // the new positioning\n const { scrollLeft, scrollTop } = targetEl\n\n const anchorProps = absoluteOffset === void 0\n ? getAnchorProps(anchorEl, cover === true ? [ 0, 0 ] : offset)\n : getAbsoluteAnchorProps(anchorEl, absoluteOffset, offset)\n\n /**\n * We \"reset\" the critical CSS properties\n * so we can take an accurate measurement.\n *\n * Ensure that targetEl has a max-width & max-height\n * set in CSS and that the value does NOT exceeds 100vw/vh.\n * All users of the position-engine (currently QMenu & QTooltip)\n * have CSS for this.\n */\n Object.assign(targetEl.style, {\n top: 0,\n left: 0,\n minWidth: null,\n minHeight: null,\n maxWidth,\n maxHeight,\n visibility: 'visible'\n })\n\n const { offsetWidth: origElWidth, offsetHeight: origElHeight } = targetEl\n const { elWidth, elHeight } = fit === true || cover === true\n ? { elWidth: Math.max(anchorProps.width, origElWidth), elHeight: cover === true ? Math.max(anchorProps.height, origElHeight) : origElHeight }\n : { elWidth: origElWidth, elHeight: origElHeight }\n\n let elStyle = { maxWidth, maxHeight }\n\n if (fit === true || cover === true) {\n elStyle.minWidth = anchorProps.width + 'px'\n if (cover === true) {\n elStyle.minHeight = anchorProps.height + 'px'\n }\n }\n\n Object.assign(targetEl.style, elStyle)\n\n const targetProps = getTargetProps(elWidth, elHeight)\n let props = getTopLeftProps(anchorProps, targetProps, anchorOrigin, selfOrigin)\n\n if (absoluteOffset === void 0 || offset === void 0) {\n applyBoundaries(props, anchorProps, targetProps, anchorOrigin, selfOrigin)\n }\n else { // we have touch position or context menu with offset\n const { top, left } = props // cache initial values\n\n // apply initial boundaries\n applyBoundaries(props, anchorProps, targetProps, anchorOrigin, selfOrigin)\n\n let hasChanged = false\n\n // did it flip vertically?\n if (props.top !== top) {\n hasChanged = true\n const offsetY = 2 * offset[ 1 ]\n anchorProps.center = anchorProps.top -= offsetY\n anchorProps.bottom -= offsetY + 2\n }\n\n // did it flip horizontally?\n if (props.left !== left) {\n hasChanged = true\n const offsetX = 2 * offset[ 0 ]\n anchorProps.middle = anchorProps.left -= offsetX\n anchorProps.right -= offsetX + 2\n }\n\n if (hasChanged === true) {\n // re-calculate props with the new anchor\n props = getTopLeftProps(anchorProps, targetProps, anchorOrigin, selfOrigin)\n\n // and re-apply boundaries\n applyBoundaries(props, anchorProps, targetProps, anchorOrigin, selfOrigin)\n }\n }\n\n elStyle = {\n top: props.top + 'px',\n left: props.left + 'px'\n }\n\n if (props.maxHeight !== void 0) {\n elStyle.maxHeight = props.maxHeight + 'px'\n\n if (anchorProps.height > props.maxHeight) {\n elStyle.minHeight = elStyle.maxHeight\n }\n }\n if (props.maxWidth !== void 0) {\n elStyle.maxWidth = props.maxWidth + 'px'\n\n if (anchorProps.width > props.maxWidth) {\n elStyle.minWidth = elStyle.maxWidth\n }\n }\n\n Object.assign(targetEl.style, elStyle)\n\n // restore scroll position\n if (targetEl.scrollTop !== scrollTop) {\n targetEl.scrollTop = scrollTop\n }\n if (targetEl.scrollLeft !== scrollLeft) {\n targetEl.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 { h, ref, computed, watch, onBeforeUnmount, Transition, getCurrentInstance } from 'vue'\n\nimport useAnchor, { useAnchorStaticProps } from '../../composables/private.use-anchor/use-anchor.js'\nimport useScrollTarget from '../../composables/private.use-scroll-target/use-scroll-target.js'\nimport useModelToggle, { useModelToggleProps, useModelToggleEmits } from '../../composables/private.use-model-toggle/use-model-toggle.js'\nimport usePortal from '../../composables/private.use-portal/use-portal.js'\nimport useTransition, { useTransitionProps } from '../../composables/private.use-transition/use-transition.js'\nimport useTick from '../../composables/use-tick/use-tick.js'\nimport useTimeout from '../../composables/use-timeout/use-timeout.js'\n\nimport { createComponent } from '../../utils/private.create/create.js'\nimport { getScrollTarget, scrollTargetProp } from '../../utils/scroll/scroll.js'\nimport { stopAndPrevent, addEvt, cleanEvt } from '../../utils/event/event.js'\nimport { clearSelection } from '../../utils/private.selection/selection.js'\nimport { hSlot } from '../../utils/private.render/render.js'\nimport { addClickOutside, removeClickOutside } from '../../utils/private.click-outside/click-outside.js'\nimport {\n validatePosition, validateOffset, setPosition, parsePosition\n} from '../../utils/private.position-engine/position-engine.js'\n\nexport default createComponent({\n name: 'QTooltip',\n\n inheritAttrs: false,\n\n props: {\n ...useAnchorStaticProps,\n ...useModelToggleProps,\n ...useTransitionProps,\n\n maxHeight: {\n type: String,\n default: null\n },\n maxWidth: {\n type: String,\n default: null\n },\n\n transitionShow: {\n ...useTransitionProps.transitionShow,\n default: 'jump-down'\n },\n transitionHide: {\n ...useTransitionProps.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: scrollTargetProp,\n\n delay: {\n type: Number,\n default: 0\n },\n\n hideDelay: {\n type: Number,\n default: 0\n },\n\n persistent: Boolean\n },\n\n emits: [\n ...useModelToggleEmits\n ],\n\n setup (props, { slots, emit, attrs }) {\n let unwatchPosition, observer\n\n const vm = getCurrentInstance()\n const { proxy: { $q } } = vm\n\n const innerRef = ref(null)\n const showing = ref(false)\n\n const anchorOrigin = computed(() => parsePosition(props.anchor, $q.lang.rtl))\n const selfOrigin = computed(() => parsePosition(props.self, $q.lang.rtl))\n const hideOnRouteChange = computed(() => props.persistent !== true)\n\n const { registerTick, removeTick } = useTick()\n const { registerTimeout } = useTimeout()\n const { transitionProps, transitionStyle } = useTransition(props)\n const { localScrollTarget, changeScrollEvent, unconfigureScrollTarget } = useScrollTarget(props, configureScrollTarget)\n\n const { anchorEl, canShow, anchorEvents } = useAnchor({ showing, configureAnchorEl })\n\n const { show, hide } = useModelToggle({\n showing, canShow, handleShow, handleHide,\n hideOnRouteChange,\n processOnMount: true\n })\n\n Object.assign(anchorEvents, { delayShow, delayHide })\n\n const { showPortal, hidePortal, renderPortal } = usePortal(vm, innerRef, renderPortalContent, 'tooltip')\n\n // if we're on mobile, let's improve the experience\n // by closing it when user taps outside of it\n if ($q.platform.is.mobile === true) {\n const clickOutsideProps = {\n anchorEl,\n innerRef,\n onClickOutside (e) {\n hide(e)\n\n // prevent click if it's on a dialog backdrop\n if (e.target.classList.contains('q-dialog__backdrop')) {\n stopAndPrevent(e)\n }\n\n return true\n }\n }\n\n const hasClickOutside = computed(() =>\n // it doesn't has external model\n // (null is the default value)\n props.modelValue === null\n // and it's not persistent\n && props.persistent !== true\n && showing.value === true\n )\n\n watch(hasClickOutside, val => {\n const fn = val === true ? addClickOutside : removeClickOutside\n fn(clickOutsideProps)\n })\n\n onBeforeUnmount(() => {\n removeClickOutside(clickOutsideProps)\n })\n }\n\n function handleShow (evt) {\n showPortal()\n\n // should removeTick() if this gets removed\n registerTick(() => {\n observer = new MutationObserver(() => updatePosition())\n observer.observe(innerRef.value, { attributes: false, childList: true, characterData: true, subtree: true })\n updatePosition()\n configureScrollTarget()\n })\n\n if (unwatchPosition === void 0) {\n unwatchPosition = watch(\n () => $q.screen.width + '|' + $q.screen.height + '|' + props.self + '|' + props.anchor + '|' + $q.lang.rtl,\n updatePosition\n )\n }\n\n // should removeTimeout() if this gets removed\n registerTimeout(() => {\n showPortal(true) // done showing portal\n emit('show', evt)\n }, props.transitionDuration)\n }\n\n function handleHide (evt) {\n removeTick()\n hidePortal()\n\n anchorCleanup()\n\n // should removeTimeout() if this gets removed\n registerTimeout(() => {\n hidePortal(true) // done hiding, now destroy\n emit('hide', evt)\n }, props.transitionDuration)\n }\n\n function anchorCleanup () {\n if (observer !== void 0) {\n observer.disconnect()\n observer = void 0\n }\n\n if (unwatchPosition !== void 0) {\n unwatchPosition()\n unwatchPosition = void 0\n }\n\n unconfigureScrollTarget()\n cleanEvt(anchorEvents, 'tooltipTemp')\n }\n\n function updatePosition () {\n setPosition({\n targetEl: innerRef.value,\n offset: props.offset,\n anchorEl: anchorEl.value,\n anchorOrigin: anchorOrigin.value,\n selfOrigin: selfOrigin.value,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth\n })\n }\n\n function delayShow (evt) {\n if ($q.platform.is.mobile === true) {\n clearSelection()\n document.body.classList.add('non-selectable')\n\n const target = anchorEl.value\n const evts = [ 'touchmove', 'touchcancel', 'touchend', 'click' ]\n .map(e => ([ target, e, 'delayHide', 'passiveCapture' ]))\n\n addEvt(anchorEvents, 'tooltipTemp', evts)\n }\n\n registerTimeout(() => { show(evt) }, props.delay)\n }\n\n function delayHide (evt) {\n if ($q.platform.is.mobile === true) {\n cleanEvt(anchorEvents, 'tooltipTemp')\n clearSelection()\n // delay needed otherwise selection still occurs\n setTimeout(() => {\n document.body.classList.remove('non-selectable')\n }, 10)\n }\n\n // should removeTimeout() if this gets removed\n registerTimeout(() => { hide(evt) }, props.hideDelay)\n }\n\n function configureAnchorEl () {\n if (props.noParentEvent === true || anchorEl.value === null) return\n\n const evts = $q.platform.is.mobile === true\n ? [\n [ anchorEl.value, 'touchstart', 'delayShow', 'passive' ]\n ]\n : [\n [ anchorEl.value, 'mouseenter', 'delayShow', 'passive' ],\n [ anchorEl.value, 'mouseleave', 'delayHide', 'passive' ]\n ]\n\n addEvt(anchorEvents, 'anchor', evts)\n }\n\n function configureScrollTarget () {\n if (anchorEl.value !== null || props.scrollTarget !== void 0) {\n localScrollTarget.value = getScrollTarget(anchorEl.value, props.scrollTarget)\n const fn = props.noParentEvent === true\n ? updatePosition\n : hide\n\n changeScrollEvent(localScrollTarget.value, fn)\n }\n }\n\n function getTooltipContent () {\n return showing.value === true\n ? h('div', {\n ...attrs,\n ref: innerRef,\n class: [\n 'q-tooltip q-tooltip--style q-position-engine no-pointer-events',\n attrs.class\n ],\n style: [\n attrs.style,\n transitionStyle.value\n ],\n role: 'tooltip'\n }, hSlot(slots.default))\n : null\n }\n\n function renderPortalContent () {\n return h(Transition, transitionProps.value, getTooltipContent)\n }\n\n onBeforeUnmount(anchorCleanup)\n\n // expose public methods\n Object.assign(vm.proxy, { updatePosition })\n\n return renderPortal\n }\n})\n","import script from \"./AppButton.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AppButton.vue?vue&type=script&lang=ts&setup=true\"\n\nconst cssModules = {}\nimport style0 from \"./AppButton.vue?vue&type=style&index=0&id=708e6712&lang=scss&module=true\"\ncssModules[\"$style\"] = style0\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__cssModules',cssModules]])\n\nexport default __exports__\nimport QBtn from 'quasar/src/components/btn/QBtn.js';\nimport QBadge from 'quasar/src/components/badge/QBadge.js';\nimport QTooltip from 'quasar/src/components/tooltip/QTooltip.js';\nimport QIcon from 'quasar/src/components/icon/QIcon.js';\nimport qInstall from \"../../../node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js\";\nqInstall(script, 'components', {QBtn,QBadge,QTooltip,QIcon});\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createBlock as _createBlock } from \"vue\"\n\nimport { computed } from 'vue'\r\n\r\nimport { ValidationRule, VueClassProp, VueStyleProp } from 'quasar/dist/types/api'\r\n\r\ninterface AppQInputProps {\r\n name?: string | undefined\r\n mask?: string | undefined\r\n fillMask?: boolean | string | undefined\r\n reverseFillMask?: boolean | undefined\r\n unmaskedValue?: boolean | undefined\r\n modelValue: string | number | null | undefined\r\n error?: boolean | undefined\r\n errorMessage?: string | undefined\r\n noErrorIcon?: boolean | undefined\r\n rules?: ValidationRule[] | undefined\r\n reactiveRules?: boolean | undefined\r\n lazyRules?: boolean | 'ondemand' | undefined\r\n label?: string | undefined\r\n stackLabel?: boolean | undefined\r\n hint?: string | undefined\r\n hideHint?: boolean | undefined\r\n prefix?: string | undefined\r\n suffix?: string | undefined\r\n labelColor?: string | undefined\r\n color?: string | undefined\r\n bgColor?: string | undefined\r\n dark?: boolean | undefined\r\n loading?: boolean | undefined\r\n clearable?: boolean | undefined\r\n clearIcon?: string | undefined\r\n filled?: boolean | undefined\r\n outlined?: boolean | undefined\r\n borderless?: boolean | undefined\r\n bordered?: boolean | undefined\r\n standout?: boolean | string | undefined\r\n labelSlot?: boolean | undefined\r\n bottomSlots?: boolean | undefined\r\n hideBottomSpace?: boolean | undefined\r\n counter?: boolean | undefined\r\n rounded?: boolean | undefined\r\n square?: boolean | undefined\r\n dense?: boolean | undefined\r\n itemAligned?: boolean | undefined\r\n disable?: boolean | undefined\r\n readonly?: boolean | undefined\r\n autofocus?: boolean | undefined\r\n for?: string | undefined\r\n shadowText?: string | undefined\r\n type?:\r\n | 'text'\r\n | 'password'\r\n | 'textarea'\r\n | 'email'\r\n | 'search'\r\n | 'tel'\r\n | 'file'\r\n | 'number'\r\n | 'url'\r\n | 'time'\r\n | 'date'\r\n | undefined\r\n debounce?: string | number | undefined\r\n maxlength?: string | number | undefined\r\n autogrow?: boolean | undefined\r\n inputClass?: VueClassProp | undefined\r\n inputStyle?: VueStyleProp | undefined\r\n onClear?: (value: any) => void\r\n 'onUpdate:modelValue'?: (value: string | number | null) => void\r\n onFocus?: (evt: Event) => void\r\n onBlur?: (evt: Event) => void\r\n onClick?: (evt: Event) => void\r\n}\r\n\r\ninterface AppInputProps extends AppQInputProps {\r\n field?: boolean\r\n required?: boolean\r\n datePicker?: boolean\r\n timePicker?: boolean\r\n dateLocale?: any\r\n withIcon?: boolean\r\n iconName?: string\r\n iconColor?: string\r\n withButton?: boolean\r\n buttonIcon?: string\r\n buttonTooltip?: string\r\n clearTooltip?: string\r\n withArrow?: boolean\r\n}\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'AppInput',\n props: {\n field: { type: Boolean },\n required: { type: Boolean },\n datePicker: { type: Boolean },\n timePicker: { type: Boolean },\n dateLocale: {},\n withIcon: { type: Boolean },\n iconName: {},\n iconColor: {},\n withButton: { type: Boolean },\n buttonIcon: {},\n buttonTooltip: {},\n clearTooltip: {},\n withArrow: { type: Boolean },\n name: {},\n mask: {},\n fillMask: { type: [Boolean, String] },\n reverseFillMask: { type: Boolean },\n unmaskedValue: { type: Boolean },\n modelValue: { default: '' },\n error: { type: Boolean, default: undefined },\n errorMessage: {},\n noErrorIcon: { type: Boolean },\n rules: {},\n reactiveRules: { type: Boolean },\n lazyRules: { type: [Boolean, String] },\n label: {},\n stackLabel: { type: Boolean },\n hint: {},\n hideHint: { type: Boolean },\n prefix: {},\n suffix: {},\n labelColor: {},\n color: {},\n bgColor: {},\n dark: { type: Boolean },\n loading: { type: Boolean },\n clearable: { type: Boolean },\n clearIcon: {},\n filled: { type: Boolean },\n outlined: { type: Boolean, default: true },\n borderless: { type: Boolean },\n bordered: { type: Boolean },\n standout: { type: [Boolean, String] },\n labelSlot: { type: Boolean },\n bottomSlots: { type: Boolean },\n hideBottomSpace: { type: Boolean },\n counter: { type: Boolean },\n rounded: { type: Boolean },\n square: { type: Boolean },\n dense: { type: Boolean, default: true },\n itemAligned: { type: Boolean },\n disable: { type: Boolean },\n readonly: { type: Boolean },\n autofocus: { type: Boolean },\n for: {},\n shadowText: {},\n type: {},\n debounce: {},\n maxlength: {},\n autogrow: { type: Boolean },\n inputClass: {},\n inputStyle: {},\n onClear: {},\n \"onUpdate:modelValue\": {},\n onFocus: {},\n onBlur: {},\n onClick: {}\n },\n emits: ['update:modelValue', 'button-click', 'clear', 'focus', 'blur', 'click'],\n setup(__props: any, { emit: __emit }) {\n\r\nconst props = __props\r\n\r\nconst emit = __emit\r\n\r\nconst value = computed({\r\n get: () =>\r\n props.modelValue !== null && props.modelValue !== undefined && props.type === 'number'\r\n ? +props.modelValue\r\n : props.modelValue,\r\n set: (newValue: any) => emit('update:modelValue', props.type === 'number' ? +newValue : newValue),\r\n})\r\n\r\nconst itemClasses = computed(() => ({\r\n '--dense': props.dense,\r\n '--bordered': props.bordered,\r\n}))\r\n\nreturn (_ctx: any,_cache: any) => {\n const _component_q_icon = _resolveComponent(\"q-icon\")!\n const _component_q_input = _resolveComponent(\"q-input\")!\n\n return (_openBlock(), _createBlock(_component_q_input, {\n standout: \"\",\n outlined: \"\",\n clearable: \"\",\n dense: \"\",\n \"bg-color\": \"white\",\n modelValue: value.value,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((value).value = $event)),\n class: _normalizeClass([_ctx.$style['app-input'], itemClasses.value]),\n type: _ctx.type,\n readonly: _ctx.readonly || _ctx.field,\n placeholder: _ctx.label\n }, {\n prepend: _withCtx(() => [\n _createVNode(_component_q_icon, null, {\n default: _withCtx(() => _cache[1] || (_cache[1] = [\n _createElementVNode(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n viewBox: \"0 0 24 24\",\n fill: \"none\"\n }, [\n _createElementVNode(\"path\", {\n d: \"M11.5 21C16.7467 21 21 16.7467 21 11.5C21 6.25329 16.7467 2 11.5 2C6.25329 2 2 6.25329 2 11.5C2 16.7467 6.25329 21 11.5 21Z\",\n stroke: \"#404650\",\n \"stroke-width\": \"1.5\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n }),\n _createElementVNode(\"path\", {\n d: \"M22 22L20 20\",\n stroke: \"#3F8CFF\",\n \"stroke-width\": \"1.5\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n })\n ], -1)\n ])),\n _: 1\n })\n ]),\n _: 1\n }, 8, [\"modelValue\", \"class\", \"type\", \"readonly\", \"placeholder\"]))\n}\n}\n\n})","<template>\r\n <q-input\r\n standout\r\n outlined\r\n clearable\r\n dense\r\n bg-color=\"white\"\r\n v-model=\"value\"\r\n :class=\"[$style['app-input'], itemClasses]\"\r\n :type=\"type\"\r\n :readonly=\"readonly || field\"\r\n :placeholder=\"label\"\r\n >\r\n <template v-slot:prepend>\r\n <q-icon>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M11.5 21C16.7467 21 21 16.7467 21 11.5C21 6.25329 16.7467 2 11.5 2C6.25329 2 2 6.25329 2 11.5C2 16.7467 6.25329 21 11.5 21Z\"\r\n stroke=\"#404650\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n <path d=\"M22 22L20 20\" stroke=\"#3F8CFF\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </q-icon>\r\n </template>\r\n </q-input>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { defineProps, defineEmits, computed, withDefaults } from 'vue'\r\n\r\nimport { ValidationRule, VueClassProp, VueStyleProp } from 'quasar/dist/types/api'\r\n\r\ninterface AppQInputProps {\r\n name?: string | undefined\r\n mask?: string | undefined\r\n fillMask?: boolean | string | undefined\r\n reverseFillMask?: boolean | undefined\r\n unmaskedValue?: boolean | undefined\r\n modelValue: string | number | null | undefined\r\n error?: boolean | undefined\r\n errorMessage?: string | undefined\r\n noErrorIcon?: boolean | undefined\r\n rules?: ValidationRule[] | undefined\r\n reactiveRules?: boolean | undefined\r\n lazyRules?: boolean | 'ondemand' | undefined\r\n label?: string | undefined\r\n stackLabel?: boolean | undefined\r\n hint?: string | undefined\r\n hideHint?: boolean | undefined\r\n prefix?: string | undefined\r\n suffix?: string | undefined\r\n labelColor?: string | undefined\r\n color?: string | undefined\r\n bgColor?: string | undefined\r\n dark?: boolean | undefined\r\n loading?: boolean | undefined\r\n clearable?: boolean | undefined\r\n clearIcon?: string | undefined\r\n filled?: boolean | undefined\r\n outlined?: boolean | undefined\r\n borderless?: boolean | undefined\r\n bordered?: boolean | undefined\r\n standout?: boolean | string | undefined\r\n labelSlot?: boolean | undefined\r\n bottomSlots?: boolean | undefined\r\n hideBottomSpace?: boolean | undefined\r\n counter?: boolean | undefined\r\n rounded?: boolean | undefined\r\n square?: boolean | undefined\r\n dense?: boolean | undefined\r\n itemAligned?: boolean | undefined\r\n disable?: boolean | undefined\r\n readonly?: boolean | undefined\r\n autofocus?: boolean | undefined\r\n for?: string | undefined\r\n shadowText?: string | undefined\r\n type?:\r\n | 'text'\r\n | 'password'\r\n | 'textarea'\r\n | 'email'\r\n | 'search'\r\n | 'tel'\r\n | 'file'\r\n | 'number'\r\n | 'url'\r\n | 'time'\r\n | 'date'\r\n | undefined\r\n debounce?: string | number | undefined\r\n maxlength?: string | number | undefined\r\n autogrow?: boolean | undefined\r\n inputClass?: VueClassProp | undefined\r\n inputStyle?: VueStyleProp | undefined\r\n onClear?: (value: any) => void\r\n 'onUpdate:modelValue'?: (value: string | number | null) => void\r\n onFocus?: (evt: Event) => void\r\n onBlur?: (evt: Event) => void\r\n onClick?: (evt: Event) => void\r\n}\r\n\r\ninterface AppInputProps extends AppQInputProps {\r\n field?: boolean\r\n required?: boolean\r\n datePicker?: boolean\r\n timePicker?: boolean\r\n dateLocale?: any\r\n withIcon?: boolean\r\n iconName?: string\r\n iconColor?: string\r\n withButton?: boolean\r\n buttonIcon?: string\r\n buttonTooltip?: string\r\n clearTooltip?: string\r\n withArrow?: boolean\r\n}\r\n\r\nconst props = withDefaults(defineProps<AppInputProps>(), {\r\n dense: true,\r\n outlined: true,\r\n error: undefined,\r\n modelValue: '',\r\n})\r\n\r\nconst emit = defineEmits(['update:modelValue', 'button-click', 'clear', 'focus', 'blur', 'click'])\r\n\r\nconst value = computed({\r\n get: () =>\r\n props.modelValue !== null && props.modelValue !== undefined && props.type === 'number'\r\n ? +props.modelValue\r\n : props.modelValue,\r\n set: (newValue: any) => emit('update:modelValue', props.type === 'number' ? +newValue : newValue),\r\n})\r\n\r\nconst itemClasses = computed(() => ({\r\n '--dense': props.dense,\r\n '--bordered': props.bordered,\r\n}))\r\n</script>\r\n\r\n<style lang=\"scss\" module>\r\n.app-input {\r\n &:global(.q-field--outlined .q-field__control) {\r\n border-radius: 14px;\r\n height: 48px;\r\n align-items: center;\r\n padding: 0 16px;\r\n color: #87caff;\r\n }\r\n :global(.q-field__control-container) {\r\n margin-left: 8px;\r\n }\r\n}\r\n@media (max-width: 1440px) {\r\n .app-input {\r\n &:global(.q-field--outlined .q-field__control) {\r\n height: 40px;\r\n padding: 0 12px;\r\n }\r\n :global(.q-field__control-container) {\r\n margin-left: 6px;\r\n }\r\n }\r\n}\r\n</style>\r\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).substring(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.crypto || window.msCrypto\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 const 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 { ref, computed, watch, onMounted } from 'vue'\n\nimport uid from '../../utils/uid/uid.js'\n\nimport { isRuntimeSsrPreHydration } from '../../plugins/platform/Platform.js'\n\nfunction parseValue (val) {\n return val === void 0 || val === null\n ? null\n : val\n}\n\nfunction getId (val, required) {\n return val === void 0 || val === null\n ? (required === true ? `f_${ uid() }` : null)\n : val\n}\n\n/**\n * Returns an \"id\" which is a ref() that can be used as\n * a unique identifier to apply to a DOM node attribute.\n *\n * On SSR, it takes care of generating the id on the client side (only) to\n * avoid hydration errors.\n */\nexport default function ({ getValue, required = true } = {}) {\n if (isRuntimeSsrPreHydration.value === true) {\n const id = getValue !== void 0\n ? ref(parseValue(getValue()))\n : ref(null)\n\n if (required === true && id.value === null) {\n onMounted(() => {\n id.value = `f_${ uid() }` // getId(null, true)\n })\n }\n\n if (getValue !== void 0) {\n watch(getValue, newId => {\n id.value = getId(newId, required)\n })\n }\n\n return id\n }\n\n return getValue !== void 0\n ? computed(() => getId(getValue(), required))\n : ref(`f_${ uid() }`) // getId(null, true)\n}\n","import { ref, onBeforeUpdate, getCurrentInstance } from 'vue'\n\nconst listenerRE = /^on[A-Z]/\n\nexport default function () {\n const { attrs, vnode } = getCurrentInstance()\n\n const acc = {\n listeners: ref({}),\n attributes: ref({})\n }\n\n function update () {\n const attributes = {}\n const listeners = {}\n\n for (const key in attrs) {\n if (key !== 'class' && key !== 'style' && listenerRE.test(key) === false) {\n attributes[ key ] = attrs[ key ]\n }\n }\n\n for (const key in vnode.props) {\n if (listenerRE.test(key) === true) {\n listeners[ key ] = vnode.props[ key ]\n }\n }\n\n acc.attributes.value = attributes\n acc.listeners.value = listeners\n }\n\n onBeforeUpdate(update)\n\n update()\n\n return acc\n}\n","import { computed } from 'vue'\n\nexport const useDarkProps = {\n dark: {\n type: Boolean,\n default: null\n }\n}\n\nexport default function (props, $q) {\n // return isDark\n return computed(() => (\n props.dark === null\n ? $q.dark.isActive\n : props.dark\n ))\n}\n","export const quasarKey = '_q_'\nexport const timelineKey = '_q_t_'\nexport const stepperKey = '_q_s_'\nexport const layoutKey = '_q_l_'\nexport const pageContainerKey = '_q_pc_'\nexport const fabKey = '_q_f_'\nexport const formKey = '_q_fo_'\nexport const tabsKey = '_q_tabs_'\nexport const uploaderKey = '_q_u_'\n\nexport function emptyRenderFn () {}\n","import { inject, watch, getCurrentInstance, onMounted, onBeforeUnmount } from 'vue'\n\nimport { formKey } from '../../utils/private.symbols/symbols.js'\n\nexport default function ({ validate, resetValidation, requiresQForm }) {\n const $form = inject(formKey, false)\n\n if ($form !== false) {\n const { props, proxy } = getCurrentInstance()\n\n // export public method (so it can be used in QForm)\n Object.assign(proxy, { validate, resetValidation })\n\n watch(() => props.disable, val => {\n if (val === true) {\n typeof resetValidation === 'function' && resetValidation()\n $form.unbindComponent(proxy)\n }\n else {\n $form.bindComponent(proxy)\n }\n })\n\n onMounted(() => {\n // register to parent QForm\n props.disable !== true && $form.bindComponent(proxy)\n })\n\n onBeforeUnmount(() => {\n // un-register from parent QForm\n props.disable !== true && $form.unbindComponent(proxy)\n })\n }\n else if (requiresQForm === true) {\n console.error('Parent QForm not found on useFormChild()!')\n }\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\n// Keep in sync with ui/types/api/validation.d.ts\nexport const testPattern = {\n date: v => /^-?[\\d]+\\/[0-1]\\d\\/[0-3]\\d$/.test(v),\n time: v => /^([0-1]?\\d|2[0-3]):[0-5]\\d$/.test(v),\n fulltime: v => /^([0-1]?\\d|2[0-3]):[0-5]\\d:[0-5]\\d$/.test(v),\n timeOrFulltime: v => /^([0-1]?\\d|2[0-3]):[0-5]\\d(:[0-5]\\d)?$/.test(v),\n\n // -- RFC 5322 --\n // -- Added in v2.6.6 --\n // This is a basic helper validation.\n // For something more complex (like RFC 822) you should write and use your own rule.\n // We won't be accepting PRs to enhance the one below because of the reason above.\n // eslint-disable-next-line\n email: v => /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(v),\n\n hexColor: v => hex.test(v),\n hexaColor: v => hexa.test(v),\n hexOrHexaColor: v => hexOrHexa.test(v),\n\n rgbColor: v => rgb.test(v),\n rgbaColor: v => rgba.test(v),\n rgbOrRgbaColor: v => rgb.test(v) || rgba.test(v),\n\n hexOrRgbColor: v => hex.test(v) || rgb.test(v),\n hexaOrRgbaColor: v => hexa.test(v) || rgba.test(v),\n anyColor: v => hexOrHexa.test(v) || rgb.test(v) || rgba.test(v)\n}\n\nexport default {\n testPattern\n}\n","export default function (fn, wait = 250, immediate) {\n let timer = null\n\n function debounced (/* ...args */) {\n const args = arguments\n\n const later = () => {\n timer = null\n if (immediate !== true) {\n fn.apply(this, args)\n }\n }\n\n if (timer !== null) {\n clearTimeout(timer)\n }\n else if (immediate === true) {\n fn.apply(this, args)\n }\n\n timer = setTimeout(later, wait)\n }\n\n debounced.cancel = () => {\n timer !== null && clearTimeout(timer)\n }\n\n return debounced\n}\n","import { ref, computed, watch, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport useFormChild from '../use-form/use-form-child.js'\nimport { testPattern } from '../../utils/patterns/patterns.js'\nimport debounce from '../../utils/debounce/debounce.js'\nimport { injectProp } from '../../utils/private.inject-obj-prop/inject-obj-prop.js'\n\nconst lazyRulesValues = [ true, false, 'ondemand' ]\n\nexport const useValidateProps = {\n modelValue: {},\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 default: false, // statement unneeded but avoids future vue implementation changes\n validator: v => lazyRulesValues.includes(v)\n }\n}\n\nexport default function (focused, innerLoading) {\n const { props, proxy } = getCurrentInstance()\n\n const innerError = ref(false)\n const innerErrorMessage = ref(null)\n const isDirtyModel = ref(false)\n\n useFormChild({ validate, resetValidation })\n\n let validateIndex = 0, unwatchRules\n\n const hasRules = computed(() =>\n props.rules !== void 0\n && props.rules !== null\n && props.rules.length !== 0\n )\n\n const canDebounceValidate = computed(() => (\n props.disable !== true\n && hasRules.value === true\n // Should not have a validation in progress already;\n // It might mean that focus switched to submit btn and\n // QForm's submit() has been called already (ENTER key)\n && innerLoading.value === false\n ))\n\n const hasError = computed(() =>\n props.error === true || innerError.value === true\n )\n\n const errorMessage = computed(() => (\n typeof props.errorMessage === 'string' && props.errorMessage.length !== 0\n ? props.errorMessage\n : innerErrorMessage.value\n ))\n\n watch(() => props.modelValue, () => {\n isDirtyModel.value = true\n\n if (\n canDebounceValidate.value === true\n // trigger validation if not using any kind of lazy-rules\n && props.lazyRules === false\n ) {\n debouncedValidate()\n }\n })\n\n function onRulesChange () {\n if (\n props.lazyRules !== 'ondemand'\n && canDebounceValidate.value === true\n && isDirtyModel.value === true\n ) {\n debouncedValidate()\n }\n }\n\n watch(() => props.reactiveRules, val => {\n if (val === true) {\n if (unwatchRules === void 0) {\n unwatchRules = watch(() => props.rules, onRulesChange, { immediate: true, deep: true })\n }\n }\n else if (unwatchRules !== void 0) {\n unwatchRules()\n unwatchRules = void 0\n }\n }, { immediate: true })\n\n watch(() => props.lazyRules, onRulesChange)\n\n watch(focused, val => {\n if (val === true) {\n isDirtyModel.value = true\n }\n else if (\n canDebounceValidate.value === true\n && props.lazyRules !== 'ondemand'\n ) {\n debouncedValidate()\n }\n })\n\n function resetValidation () {\n validateIndex++\n innerLoading.value = false\n isDirtyModel.value = false\n innerError.value = false\n innerErrorMessage.value = null\n debouncedValidate.cancel()\n }\n\n /*\n * Return value\n * - true (validation succeeded)\n * - false (validation failed)\n * - Promise (pending async validation)\n */\n function validate (val = props.modelValue) {\n if (\n props.disable === true\n || hasRules.value === false\n ) {\n return true\n }\n\n const index = ++validateIndex\n\n const setDirty = innerLoading.value !== true\n ? () => { isDirtyModel.value = true }\n : () => {}\n\n const update = (err, msg) => {\n err === true && setDirty()\n\n innerError.value = err\n innerErrorMessage.value = msg || null\n innerLoading.value = false\n }\n\n const promises = []\n\n for (let i = 0; i < props.rules.length; i++) {\n const rule = props.rules[ i ]\n let res\n\n if (typeof rule === 'function') {\n res = rule(val, testPattern)\n }\n else if (typeof rule === 'string' && testPattern[ rule ] !== void 0) {\n res = testPattern[ rule ](val)\n }\n\n if (res === false || typeof res === 'string') {\n update(true, res)\n return false\n }\n else if (res !== true && res !== void 0) {\n promises.push(res)\n }\n }\n\n if (promises.length === 0) {\n update(false)\n return true\n }\n\n innerLoading.value = true\n\n return Promise.all(promises).then(\n res => {\n if (res === void 0 || Array.isArray(res) === false || res.length === 0) {\n index === validateIndex && update(false)\n return true\n }\n\n const msg = res.find(r => r === false || typeof r === 'string')\n index === validateIndex && update(msg !== void 0, msg)\n return msg === void 0\n },\n e => {\n if (index === validateIndex) {\n console.error(e)\n update(true)\n }\n\n return false\n }\n )\n }\n\n const debouncedValidate = debounce(validate, 0)\n\n onBeforeUnmount(() => {\n unwatchRules !== void 0 && unwatchRules()\n debouncedValidate.cancel()\n })\n\n // expose public methods & props\n Object.assign(proxy, { resetValidation, validate })\n injectProp(proxy, 'hasError', () => hasError.value)\n\n return {\n isDirtyModel,\n hasRules,\n hasError,\n errorMessage,\n\n validate,\n resetValidation\n }\n}\n","import { h, ref, computed, Transition, nextTick, onActivated, onDeactivated, onBeforeUnmount, onMounted, getCurrentInstance } from 'vue'\n\nimport QIcon from '../../components/icon/QIcon.js'\nimport QSpinner from '../../components/spinner/QSpinner.js'\n\nimport useId from '../use-id/use-id.js'\nimport useSplitAttrs from '../use-split-attrs/use-split-attrs.js'\nimport useDark, { useDarkProps } from '../../composables/private.use-dark/use-dark.js'\nimport useValidate, { useValidateProps } from '../private.use-validate/use-validate.js'\n\nimport { hSlot } from '../../utils/private.render/render.js'\nimport { prevent, stopAndPrevent } from '../../utils/event/event.js'\nimport { addFocusFn, removeFocusFn } from '../../utils/private.focus/focus-manager.js'\n\nexport function fieldValueIsFilled (val) {\n return val !== void 0\n && val !== null\n && ('' + val).length !== 0\n}\n\nexport const useNonInputFieldProps = {\n ...useDarkProps,\n ...useValidateProps,\n\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\nexport const useFieldProps = {\n ...useNonInputFieldProps,\n maxlength: [ Number, String ]\n}\n\nexport const useFieldEmits = [ 'update:modelValue', 'clear', 'focus', 'blur' ]\n\nexport function useFieldState ({ requiredForAttr = true, tagProp, changeEvent = false } = {}) {\n const { props, proxy } = getCurrentInstance()\n\n const isDark = useDark(props, proxy.$q)\n const targetUid = useId({\n required: requiredForAttr,\n getValue: () => props.for\n })\n\n return {\n requiredForAttr,\n changeEvent,\n tag: tagProp === true\n ? computed(() => props.tag)\n : { value: 'label' },\n\n isDark,\n\n editable: computed(() =>\n props.disable !== true && props.readonly !== true\n ),\n\n innerLoading: ref(false),\n focused: ref(false),\n hasPopupOpen: false,\n\n splitAttrs: useSplitAttrs(),\n targetUid,\n\n rootRef: ref(null),\n targetRef: ref(null),\n controlRef: ref(null)\n\n /**\n * user supplied additionals:\n\n * innerValue - computed\n * floatingLabel - computed\n * inputRef - computed\n\n * fieldClass - computed\n * hasShadow - computed\n\n * controlEvents - Object with fn(e)\n\n * getControl - fn\n * getInnerAppend - fn\n * getControlChild - fn\n * getShadowControl - fn\n * showPopup - fn\n */\n }\n}\n\nexport default function (state) {\n const { props, emit, slots, attrs, proxy } = getCurrentInstance()\n const { $q } = proxy\n\n let focusoutTimer = null\n\n if (state.hasValue === void 0) {\n state.hasValue = computed(() => fieldValueIsFilled(props.modelValue))\n }\n\n if (state.emitValue === void 0) {\n state.emitValue = value => {\n emit('update:modelValue', value)\n }\n }\n\n if (state.controlEvents === void 0) {\n state.controlEvents = {\n onFocusin: onControlFocusin,\n onFocusout: onControlFocusout\n }\n }\n\n Object.assign(state, {\n clearValue,\n onControlFocusin,\n onControlFocusout,\n focus\n })\n\n if (state.computedCounter === void 0) {\n state.computedCounter = computed(() => {\n if (props.counter !== false) {\n const len = typeof props.modelValue === 'string' || typeof props.modelValue === 'number'\n ? ('' + props.modelValue).length\n : (Array.isArray(props.modelValue) === true ? props.modelValue.length : 0)\n\n const max = props.maxlength !== void 0\n ? props.maxlength\n : props.maxValues\n\n return len + (max !== void 0 ? ' / ' + max : '')\n }\n })\n }\n\n const {\n isDirtyModel,\n hasRules,\n hasError,\n errorMessage,\n resetValidation\n } = useValidate(state.focused, state.innerLoading)\n\n const floatingLabel = state.floatingLabel !== void 0\n ? computed(() => props.stackLabel === true || state.focused.value === true || state.floatingLabel.value === true)\n : computed(() => props.stackLabel === true || state.focused.value === true || state.hasValue.value === true)\n\n const shouldRenderBottom = computed(() =>\n props.bottomSlots === true\n || props.hint !== void 0\n || hasRules.value === true\n || props.counter === true\n || props.error !== null\n )\n\n const styleType = computed(() => {\n if (props.filled === true) { return 'filled' }\n if (props.outlined === true) { return 'outlined' }\n if (props.borderless === true) { return 'borderless' }\n if (props.standout) { return 'standout' }\n return 'standard'\n })\n\n const classes = computed(() =>\n `q-field row no-wrap items-start q-field--${ styleType.value }`\n + (state.fieldClass !== void 0 ? ` ${ state.fieldClass.value }` : '')\n + (props.rounded === true ? ' q-field--rounded' : '')\n + (props.square === true ? ' q-field--square' : '')\n + (floatingLabel.value === true ? ' q-field--float' : '')\n + (hasLabel.value === true ? ' q-field--labeled' : '')\n + (props.dense === true ? ' q-field--dense' : '')\n + (props.itemAligned === true ? ' q-field--item-aligned q-item-type' : '')\n + (state.isDark.value === true ? ' q-field--dark' : '')\n + (state.getControl === void 0 ? ' q-field--auto-height' : '')\n + (state.focused.value === true ? ' q-field--focused' : '')\n + (hasError.value === true ? ' q-field--error' : '')\n + (hasError.value === true || state.focused.value === true ? ' q-field--highlighted' : '')\n + (props.hideBottomSpace !== true && shouldRenderBottom.value === true ? ' q-field--with-bottom' : '')\n + (props.disable === true ? ' q-field--disabled' : (props.readonly === true ? ' q-field--readonly' : ''))\n )\n\n const contentClass = computed(() =>\n 'q-field__control relative-position row no-wrap'\n + (props.bgColor !== void 0 ? ` bg-${ props.bgColor }` : '')\n + (\n hasError.value === true\n ? ' text-negative'\n : (\n typeof props.standout === 'string' && props.standout.length !== 0 && state.focused.value === true\n ? ` ${ props.standout }`\n : (props.color !== void 0 ? ` text-${ props.color }` : '')\n )\n )\n )\n\n const hasLabel = computed(() =>\n props.labelSlot === true || props.label !== void 0\n )\n\n const labelClass = computed(() =>\n 'q-field__label no-pointer-events absolute ellipsis'\n + (props.labelColor !== void 0 && hasError.value !== true ? ` text-${ props.labelColor }` : '')\n )\n\n const controlSlotScope = computed(() => ({\n id: state.targetUid.value,\n editable: state.editable.value,\n focused: state.focused.value,\n floatingLabel: floatingLabel.value,\n modelValue: props.modelValue,\n emitValue: state.emitValue\n }))\n\n const attributes = computed(() => {\n const acc = {}\n\n if (state.targetUid.value) {\n acc.for = state.targetUid.value\n }\n\n if (props.disable === true) {\n acc[ 'aria-disabled' ] = 'true'\n }\n\n return acc\n })\n\n function focusHandler () {\n const el = document.activeElement\n let target = state.targetRef !== void 0 && state.targetRef.value\n\n if (target && (el === null || el.id !== state.targetUid.value)) {\n target.hasAttribute('tabindex') === true || (target = target.querySelector('[tabindex]'))\n if (target && target !== el) {\n target.focus({ preventScroll: true })\n }\n }\n }\n\n function focus () {\n addFocusFn(focusHandler)\n }\n\n function blur () {\n removeFocusFn(focusHandler)\n const el = document.activeElement\n if (el !== null && state.rootRef.value.contains(el)) {\n el.blur()\n }\n }\n\n function onControlFocusin (e) {\n if (focusoutTimer !== null) {\n clearTimeout(focusoutTimer)\n focusoutTimer = null\n }\n\n if (state.editable.value === true && state.focused.value === false) {\n state.focused.value = true\n emit('focus', e)\n }\n }\n\n function onControlFocusout (e, then) {\n focusoutTimer !== null && clearTimeout(focusoutTimer)\n focusoutTimer = setTimeout(() => {\n focusoutTimer = null\n\n if (\n document.hasFocus() === true && (\n state.hasPopupOpen === true\n || state.controlRef === void 0\n || state.controlRef.value === null\n || state.controlRef.value.contains(document.activeElement) !== false\n )\n ) {\n return\n }\n\n if (state.focused.value === true) {\n state.focused.value = false\n emit('blur', e)\n }\n\n then !== void 0 && then()\n })\n }\n\n function clearValue (e) {\n // prevent activating the field but keep focus on desktop\n stopAndPrevent(e)\n\n if ($q.platform.is.mobile !== true) {\n const el = (state.targetRef !== void 0 && state.targetRef.value) || state.rootRef.value\n el.focus()\n }\n else if (state.rootRef.value.contains(document.activeElement) === true) {\n document.activeElement.blur()\n }\n\n if (props.type === 'file') {\n // do not let focus be triggered\n // as it will make the native file dialog\n // appear for another selection\n state.inputRef.value.value = null\n }\n\n emit('update:modelValue', null)\n state.changeEvent === true && emit('change', null)\n emit('clear', props.modelValue)\n\n nextTick(() => {\n const isDirty = isDirtyModel.value\n resetValidation()\n isDirtyModel.value = isDirty\n })\n }\n\n function onClearableKeyup (evt) {\n [ 13, 32 ].includes(evt.keyCode) && clearValue(evt)\n }\n\n function getContent () {\n const node = []\n\n slots.prepend !== void 0 && node.push(\n h('div', {\n class: 'q-field__prepend q-field__marginal row no-wrap items-center',\n key: 'prepend',\n onClick: prevent\n }, slots.prepend())\n )\n\n node.push(\n h('div', {\n class: 'q-field__control-container col relative-position row no-wrap q-anchor--skip'\n }, getControlContainer())\n )\n\n hasError.value === true && props.noErrorIcon === false && node.push(\n getInnerAppendNode('error', [\n h(QIcon, { name: $q.iconSet.field.error, color: 'negative' })\n ])\n )\n\n if (props.loading === true || state.innerLoading.value === true) {\n node.push(\n getInnerAppendNode(\n 'inner-loading-append',\n slots.loading !== void 0\n ? slots.loading()\n : [ h(QSpinner, { color: props.color }) ]\n )\n )\n }\n else if (props.clearable === true && state.hasValue.value === true && state.editable.value === true) {\n node.push(\n getInnerAppendNode('inner-clearable-append', [\n h(QIcon, {\n class: 'q-field__focusable-action',\n name: props.clearIcon || $q.iconSet.field.clear,\n tabindex: 0,\n role: 'button',\n 'aria-hidden': 'false',\n 'aria-label': $q.lang.label.clear,\n onKeyup: onClearableKeyup,\n onClick: clearValue\n })\n ])\n )\n }\n\n slots.append !== void 0 && node.push(\n h('div', {\n class: 'q-field__append q-field__marginal row no-wrap items-center',\n key: 'append',\n onClick: prevent\n }, slots.append())\n )\n\n state.getInnerAppend !== void 0 && node.push(\n getInnerAppendNode('inner-append', state.getInnerAppend())\n )\n\n state.getControlChild !== void 0 && node.push(\n state.getControlChild()\n )\n\n return node\n }\n\n function getControlContainer () {\n const node = []\n\n props.prefix !== void 0 && props.prefix !== null && node.push(\n h('div', {\n class: 'q-field__prefix no-pointer-events row items-center'\n }, props.prefix)\n )\n\n if (state.getShadowControl !== void 0 && state.hasShadow.value === true) {\n node.push(\n state.getShadowControl()\n )\n }\n\n if (state.getControl !== void 0) {\n node.push(state.getControl())\n }\n // internal usage only:\n else if (slots.rawControl !== void 0) {\n node.push(slots.rawControl())\n }\n else if (slots.control !== void 0) {\n node.push(\n h('div', {\n ref: state.targetRef,\n class: 'q-field__native row',\n tabindex: -1,\n ...state.splitAttrs.attributes.value,\n 'data-autofocus': props.autofocus === true || void 0\n }, slots.control(controlSlotScope.value))\n )\n }\n\n hasLabel.value === true && node.push(\n h('div', {\n class: labelClass.value\n }, hSlot(slots.label, props.label))\n )\n\n props.suffix !== void 0 && props.suffix !== null && node.push(\n h('div', {\n class: 'q-field__suffix no-pointer-events row items-center'\n }, props.suffix)\n )\n\n return node.concat(hSlot(slots.default))\n }\n\n function getBottom () {\n let msg, key\n\n if (hasError.value === true) {\n if (errorMessage.value !== null) {\n msg = [ h('div', { role: 'alert' }, errorMessage.value) ]\n key = `q--slot-error-${ errorMessage.value }`\n }\n else {\n msg = hSlot(slots.error)\n key = 'q--slot-error'\n }\n }\n else if (props.hideHint !== true || state.focused.value === true) {\n if (props.hint !== void 0) {\n msg = [ h('div', props.hint) ]\n key = `q--slot-hint-${ props.hint }`\n }\n else {\n msg = hSlot(slots.hint)\n key = 'q--slot-hint'\n }\n }\n\n const hasCounter = props.counter === true || slots.counter !== void 0\n\n if (props.hideBottomSpace === true && hasCounter === false && msg === void 0) {\n return\n }\n\n const main = h('div', {\n key,\n class: 'q-field__messages col'\n }, msg)\n\n return h('div', {\n class: 'q-field__bottom row items-start q-field__bottom--'\n + (props.hideBottomSpace !== true ? 'animated' : 'stale'),\n onClick: prevent\n }, [\n props.hideBottomSpace === true\n ? main\n : h(Transition, { name: 'q-transition--field-message' }, () => main),\n\n hasCounter === true\n ? h('div', {\n class: 'q-field__counter'\n }, slots.counter !== void 0 ? slots.counter() : state.computedCounter.value)\n : null\n ])\n }\n\n function getInnerAppendNode (key, content) {\n return content === null\n ? null\n : h('div', {\n key,\n class: 'q-field__append q-field__marginal row no-wrap items-center q-anchor--skip'\n }, content)\n }\n\n let shouldActivate = false\n\n onDeactivated(() => {\n shouldActivate = true\n })\n\n onActivated(() => {\n shouldActivate === true && props.autofocus === true && proxy.focus()\n })\n\n props.autofocus === true && onMounted(() => {\n proxy.focus()\n })\n\n onBeforeUnmount(() => {\n focusoutTimer !== null && clearTimeout(focusoutTimer)\n })\n\n // expose public methods\n Object.assign(proxy, { focus, blur })\n\n return function renderField () {\n const labelAttrs = state.getControl === void 0 && slots.control === void 0\n ? {\n ...state.splitAttrs.attributes.value,\n 'data-autofocus': props.autofocus === true || void 0,\n ...attributes.value\n }\n : attributes.value\n\n return h(state.tag.value, {\n ref: state.rootRef,\n class: [\n classes.value,\n attrs.class\n ],\n style: attrs.style,\n ...labelAttrs\n }, [\n slots.before !== void 0\n ? h('div', {\n class: 'q-field__before q-field__marginal row no-wrap items-center',\n onClick: prevent\n }, slots.before())\n : null,\n\n h('div', {\n class: 'q-field__inner relative-position col self-stretch'\n }, [\n h('div', {\n ref: state.controlRef,\n class: contentClass.value,\n tabindex: -1,\n ...state.controlEvents\n }, getContent()),\n\n shouldRenderBottom.value === true\n ? getBottom()\n : null\n ]),\n\n slots.after !== void 0\n ? h('div', {\n class: 'q-field__after q-field__marginal row no-wrap items-center',\n onClick: prevent\n }, slots.after())\n : null\n ])\n }\n}\n","import { ref, watch, nextTick } from 'vue'\n\nimport { shouldIgnoreKey } from '../../utils/private.keyboard/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 const useMaskProps = {\n mask: String,\n reverseFillMask: Boolean,\n fillMask: [ Boolean, String ],\n unmaskedValue: Boolean\n}\n\nexport default function (props, emit, emitValue, inputRef) {\n let maskMarked, maskReplaced, computedMask, computedUnmask, pastedTextStart, selectionAnchor\n\n const hasMask = ref(null)\n const innerValue = ref(getInitialMaskedValue())\n\n function getIsTypeText () {\n return props.autogrow === true\n || [ 'textarea', 'text', 'search', 'url', 'tel', 'password' ].includes(props.type)\n }\n\n watch(() => props.type + props.autogrow, updateMaskInternals)\n\n watch(() => props.mask, v => {\n if (v !== void 0) {\n updateMaskValue(innerValue.value, true)\n }\n else {\n const val = unmaskValue(innerValue.value)\n updateMaskInternals()\n props.modelValue !== val && emit('update:modelValue', val)\n }\n })\n\n watch(() => props.fillMask + props.reverseFillMask, () => {\n hasMask.value === true && updateMaskValue(innerValue.value, true)\n })\n\n watch(() => props.unmaskedValue, () => {\n hasMask.value === true && updateMaskValue(innerValue.value)\n })\n\n function getInitialMaskedValue () {\n updateMaskInternals()\n\n if (hasMask.value === true) {\n const masked = maskValue(unmaskValue(props.modelValue))\n\n return props.fillMask !== false\n ? fillWithMask(masked)\n : masked\n }\n\n return props.modelValue\n }\n\n function getPaddedMaskMarked (size) {\n if (size < maskMarked.length) {\n return maskMarked.slice(-size)\n }\n\n let pad = '', localMaskMarked = maskMarked\n const padPos = localMaskMarked.indexOf(MARKER)\n\n if (padPos !== -1) {\n for (let i = size - localMaskMarked.length; i > 0; i--) {\n pad += MARKER\n }\n\n localMaskMarked = localMaskMarked.slice(0, padPos) + pad + localMaskMarked.slice(padPos)\n }\n\n return localMaskMarked\n }\n\n function updateMaskInternals () {\n hasMask.value = props.mask !== void 0\n && props.mask.length !== 0\n && getIsTypeText()\n\n if (hasMask.value === false) {\n computedUnmask = void 0\n maskMarked = ''\n maskReplaced = ''\n return\n }\n\n const\n localComputedMask = NAMED_MASKS[ props.mask ] === void 0\n ? props.mask\n : NAMED_MASKS[ props.mask ],\n fillChar = typeof props.fillMask === 'string' && props.fillMask.length !== 0\n ? props.fillMask.slice(0, 1)\n : '_',\n fillCharEscaped = fillChar.replace(escRegex, '\\\\$&'),\n unmask = [],\n extract = [],\n mask = []\n\n let\n firstMatch = props.reverseFillMask === true,\n unmaskChar = '',\n negateChar = ''\n\n localComputedMask.replace(tokenRegexMask, (_, char1, esc, token, char2) => {\n if (token !== void 0) {\n const c = TOKENS[ token ]\n mask.push(c)\n negateChar = c.negate\n if (firstMatch === true) {\n extract.push('(?:' + negateChar + '+)?(' + c.pattern + '+)?(?:' + negateChar + '+)?(' + c.pattern + '+)?')\n firstMatch = false\n }\n extract.push('(?:' + negateChar + '+)?(' + c.pattern + ')?')\n }\n else if (esc !== void 0) {\n unmaskChar = '\\\\' + (esc === '\\\\' ? '' : esc)\n mask.push(esc)\n unmask.push('([^' + unmaskChar + ']+)?' + unmaskChar + '?')\n }\n else {\n const c = char1 !== void 0 ? char1 : char2\n unmaskChar = c === '\\\\' ? '\\\\\\\\\\\\\\\\' : c.replace(escRegex, '\\\\\\\\$&')\n mask.push(c)\n unmask.push('([^' + unmaskChar + ']+)?' + unmaskChar + '?')\n }\n })\n\n const\n unmaskMatcher = new RegExp(\n '^'\n + unmask.join('')\n + '(' + (unmaskChar === '' ? '.' : '[^' + unmaskChar + ']') + '+)?'\n + (unmaskChar === '' ? '' : '[' + unmaskChar + ']*') + '$'\n ),\n extractLast = extract.length - 1,\n extractMatcher = extract.map((re, index) => {\n if (index === 0 && props.reverseFillMask === true) {\n return new RegExp('^' + fillCharEscaped + '*' + re)\n }\n else if (index === extractLast) {\n return new RegExp(\n '^' + re\n + '(' + (negateChar === '' ? '.' : negateChar) + '+)?'\n + (props.reverseFillMask === true ? '$' : fillCharEscaped + '*')\n )\n }\n\n return new RegExp('^' + re)\n })\n\n computedMask = mask\n computedUnmask = val => {\n const unmaskMatch = unmaskMatcher.exec(props.reverseFillMask === true ? val : val.slice(0, mask.length + 1))\n if (unmaskMatch !== null) {\n val = unmaskMatch.slice(1).join('')\n }\n\n const\n extractMatch = [],\n extractMatcherLength = extractMatcher.length\n\n for (let i = 0, str = val; i < extractMatcherLength; i++) {\n const m = extractMatcher[ i ].exec(str)\n\n if (m === null) {\n break\n }\n\n str = str.slice(m.shift().length)\n extractMatch.push(...m)\n }\n if (extractMatch.length !== 0) {\n return extractMatch.join('')\n }\n\n return val\n }\n maskMarked = mask.map(v => (typeof v === 'string' ? v : MARKER)).join('')\n maskReplaced = maskMarked.split(MARKER).join(fillChar)\n }\n\n function updateMaskValue (rawVal, updateMaskInternalsFlag, inputType) {\n const\n inp = inputRef.value,\n end = inp.selectionEnd,\n endReverse = inp.value.length - end,\n unmasked = unmaskValue(rawVal)\n\n // Update here so unmask uses the original fillChar\n updateMaskInternalsFlag === true && updateMaskInternals()\n\n const\n preMasked = maskValue(unmasked),\n masked = props.fillMask !== false\n ? fillWithMask(preMasked)\n : preMasked,\n changed = innerValue.value !== masked\n\n // We want to avoid \"flickering\" so we set value immediately\n inp.value !== masked && (inp.value = masked)\n\n changed === true && (innerValue.value = masked)\n\n document.activeElement === inp && nextTick(() => {\n if (masked === maskReplaced) {\n const cursor = props.reverseFillMask === true ? maskReplaced.length : 0\n inp.setSelectionRange(cursor, cursor, 'forward')\n\n return\n }\n\n if (inputType === 'insertFromPaste' && props.reverseFillMask !== true) {\n const maxEnd = inp.selectionEnd\n let cursor = end - 1\n // each non-marker char means we move once to right\n for (let i = pastedTextStart; i <= cursor && i < maxEnd; i++) {\n if (maskMarked[ i ] !== MARKER) {\n cursor++\n }\n }\n moveCursor.right(inp, cursor)\n\n return\n }\n\n if ([ 'deleteContentBackward', 'deleteContentForward' ].indexOf(inputType) !== -1) {\n const cursor = props.reverseFillMask === true\n ? (\n end === 0\n ? (masked.length > preMasked.length ? 1 : 0)\n : Math.max(0, masked.length - (masked === maskReplaced ? 0 : Math.min(preMasked.length, endReverse) + 1)) + 1\n )\n : end\n\n inp.setSelectionRange(cursor, cursor, 'forward')\n return\n }\n\n if (props.reverseFillMask === true) {\n if (changed === true) {\n const cursor = Math.max(0, masked.length - (masked === 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 moveCursor.rightReverse(inp, cursor)\n }\n }\n else {\n const cursor = masked.length - endReverse\n inp.setSelectionRange(cursor, cursor, 'backward')\n }\n }\n else {\n if (changed === true) {\n const cursor = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, end) - 1)\n moveCursor.right(inp, cursor)\n }\n else {\n const cursor = end - 1\n moveCursor.right(inp, cursor)\n }\n }\n })\n\n const val = props.unmaskedValue === true\n ? unmaskValue(masked)\n : masked\n\n if (\n String(props.modelValue) !== val\n && (props.modelValue !== null || val !== '')\n ) {\n emitValue(val, true)\n }\n }\n\n function moveCursorForPaste (inp, start, end) {\n const preMasked = maskValue(unmaskValue(inp.value))\n\n start = Math.max(0, maskMarked.indexOf(MARKER), Math.min(preMasked.length, start))\n pastedTextStart = start\n\n inp.setSelectionRange(start, end, 'forward')\n }\n\n const moveCursor = {\n left (inp, cursor) {\n const noMarkBefore = maskMarked.slice(cursor - 1).indexOf(MARKER) === -1\n let i = Math.max(0, cursor - 1)\n\n for (; i >= 0; i--) {\n if (maskMarked[ i ] === MARKER) {\n cursor = i\n noMarkBefore === true && cursor++\n break\n }\n }\n\n if (\n i < 0\n && maskMarked[ cursor ] !== void 0\n && maskMarked[ cursor ] !== MARKER\n ) {\n return moveCursor.right(inp, 0)\n }\n\n cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward')\n },\n\n right (inp, cursor) {\n const limit = inp.value.length\n let i = Math.min(limit, cursor + 1)\n\n for (; i <= limit; i++) {\n if (maskMarked[ i ] === MARKER) {\n cursor = i\n break\n }\n else if (maskMarked[ i - 1 ] === MARKER) {\n cursor = i\n }\n }\n\n if (\n i > limit\n && maskMarked[ cursor - 1 ] !== void 0\n && maskMarked[ cursor - 1 ] !== MARKER\n ) {\n return moveCursor.left(inp, limit)\n }\n\n inp.setSelectionRange(cursor, cursor, 'forward')\n },\n\n leftReverse (inp, cursor) {\n const\n localMaskMarked = getPaddedMaskMarked(inp.value.length)\n let i = Math.max(0, cursor - 1)\n\n for (; i >= 0; i--) {\n if (localMaskMarked[ i - 1 ] === MARKER) {\n cursor = i\n break\n }\n else if (localMaskMarked[ i ] === MARKER) {\n cursor = i\n if (i === 0) {\n break\n }\n }\n }\n\n if (\n i < 0\n && localMaskMarked[ cursor ] !== void 0\n && localMaskMarked[ cursor ] !== MARKER\n ) {\n return moveCursor.rightReverse(inp, 0)\n }\n\n cursor >= 0 && inp.setSelectionRange(cursor, cursor, 'backward')\n },\n\n rightReverse (inp, cursor) {\n const\n limit = inp.value.length,\n localMaskMarked = getPaddedMaskMarked(limit),\n noMarkBefore = localMaskMarked.slice(0, cursor + 1).indexOf(MARKER) === -1\n let i = Math.min(limit, cursor + 1)\n\n for (; i <= limit; i++) {\n if (localMaskMarked[ i - 1 ] === MARKER) {\n cursor = i\n cursor > 0 && noMarkBefore === true && cursor--\n break\n }\n }\n\n if (\n i > limit\n && localMaskMarked[ cursor - 1 ] !== void 0\n && localMaskMarked[ cursor - 1 ] !== MARKER\n ) {\n return moveCursor.leftReverse(inp, limit)\n }\n\n inp.setSelectionRange(cursor, cursor, 'forward')\n }\n }\n\n function onMaskedClick (e) {\n emit('click', e)\n\n selectionAnchor = void 0\n }\n\n function onMaskedKeydown (e) {\n emit('keydown', e)\n\n if (\n shouldIgnoreKey(e) === true\n || e.altKey === true // let browser handle these\n ) {\n return\n }\n\n const\n inp = inputRef.value,\n start = inp.selectionStart,\n end = inp.selectionEnd\n\n if (!e.shiftKey) {\n selectionAnchor = void 0\n }\n\n if (e.keyCode === 37 || e.keyCode === 39) { // Left / Right\n if (e.shiftKey && selectionAnchor === void 0) {\n selectionAnchor = inp.selectionDirection === 'forward' ? start : end\n }\n\n const fn = moveCursor[ (e.keyCode === 39 ? 'right' : 'left') + (props.reverseFillMask === true ? 'Reverse' : '') ]\n\n e.preventDefault()\n fn(inp, selectionAnchor === start ? end : start)\n\n if (e.shiftKey) {\n const cursor = inp.selectionStart\n inp.setSelectionRange(Math.min(selectionAnchor, cursor), Math.max(selectionAnchor, cursor), 'forward')\n }\n }\n else if (\n e.keyCode === 8 // Backspace\n && props.reverseFillMask !== true\n && start === end\n ) {\n moveCursor.left(inp, start)\n inp.setSelectionRange(inp.selectionStart, end, 'backward')\n }\n else if (\n e.keyCode === 46 // Delete\n && props.reverseFillMask === true\n && start === end\n ) {\n moveCursor.rightReverse(inp, end)\n inp.setSelectionRange(start, inp.selectionEnd, 'forward')\n }\n }\n\n function maskValue (val) {\n if (val === void 0 || val === null || val === '') { return '' }\n\n if (props.reverseFillMask === true) {\n return maskValueReverse(val)\n }\n\n const mask = 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 function maskValueReverse (val) {\n const\n mask = computedMask,\n firstTokenIndex = 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 function unmaskValue (val) {\n return typeof val !== 'string' || computedUnmask === void 0\n ? (typeof val === 'number' ? computedUnmask('' + val) : val)\n : computedUnmask(val)\n }\n\n function fillWithMask (val) {\n if (maskReplaced.length - val.length <= 0) {\n return val\n }\n\n return props.reverseFillMask === true && val.length !== 0\n ? maskReplaced.slice(0, -val.length) + val\n : val + maskReplaced.slice(val.length)\n }\n\n return {\n innerValue,\n hasMask,\n moveCursorForPaste,\n updateMaskValue,\n onMaskedKeydown,\n onMaskedClick\n }\n}\n","import { h, computed } from 'vue'\n\nexport const useFormProps = {\n name: String\n}\n\nexport function useFormAttrs (props) {\n return computed(() => ({\n type: 'hidden',\n name: props.name,\n value: props.modelValue\n }))\n}\n\nexport function useFormInject (formAttrs = {}) {\n return (child, action, className) => {\n child[ action ](\n h('input', {\n class: 'hidden' + (className || ''),\n ...formAttrs.value\n })\n )\n }\n}\n\nexport function useFormInputNameAttr (props) {\n return computed(() => props.name || props.for)\n}\n","import { computed } from 'vue'\n\nexport default function (props, typeGuard) {\n function getFormDomProps () {\n const model = props.modelValue\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(model) === model) {\n ('length' in model\n ? Array.from(model)\n : [ model ]\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 return typeGuard === true\n ? computed(() => {\n if (props.type !== 'file') {\n return\n }\n\n return getFormDomProps()\n })\n : computed(getFormDomProps)\n}\n","export default function (onInput) {\n return function onComposition (e) {\n if (e.type === 'compositionend' || e.type === 'change') {\n if (e.target.qComposing !== true) return\n e.target.qComposing = false\n onInput(e)\n }\n else if (e.type === 'compositionstart') {\n e.target.qComposing = true\n }\n }\n}\n","import { h, ref, computed, watch, onBeforeUnmount, onMounted, nextTick, getCurrentInstance } from 'vue'\n\nimport useField, { useFieldState, useFieldProps, useFieldEmits, fieldValueIsFilled } from '../../composables/private.use-field/use-field.js'\nimport useMask, { useMaskProps } from './use-mask.js'\nimport { useFormProps, useFormInputNameAttr } from '../../composables/use-form/private.use-form.js'\nimport useFileFormDomProps from '../../composables/private.use-file/use-file-dom-props.js'\nimport useKeyComposition from '../../composables/private.use-key-composition/use-key-composition.js'\n\nimport { createComponent } from '../../utils/private.create/create.js'\nimport { stop } from '../../utils/event/event.js'\nimport { addFocusFn } from '../../utils/private.focus/focus-manager.js'\nimport { injectProp } from '../../utils/private.inject-obj-prop/inject-obj-prop.js'\n\nexport default createComponent({\n name: 'QInput',\n\n inheritAttrs: false,\n\n props: {\n ...useFieldProps,\n ...useMaskProps,\n ...useFormProps,\n\n // override of useFieldProps > modelValue\n modelValue: __QUASAR_SSR_SERVER__\n ? {} // SSR does not know about FileList\n : [ String, Number, FileList ],\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 emits: [\n ...useFieldEmits,\n 'paste', 'change',\n 'keydown', 'click', 'animationend'\n ],\n\n setup (props, { emit, attrs }) {\n const { proxy } = getCurrentInstance()\n const { $q } = proxy\n\n const temp = {}\n let emitCachedValue = NaN, typedNumber, stopValueWatcher, emitTimer = null, emitValueFn\n\n const inputRef = ref(null)\n const nameProp = useFormInputNameAttr(props)\n\n const {\n innerValue,\n hasMask,\n moveCursorForPaste,\n updateMaskValue,\n onMaskedKeydown,\n onMaskedClick\n } = useMask(props, emit, emitValue, inputRef)\n\n const formDomProps = useFileFormDomProps(props, /* type guard */ true)\n const hasValue = computed(() => fieldValueIsFilled(innerValue.value))\n\n const onComposition = useKeyComposition(onInput)\n\n const state = useFieldState({ changeEvent: true })\n\n const isTextarea = computed(() =>\n props.type === 'textarea' || props.autogrow === true\n )\n\n const isTypeText = computed(() =>\n isTextarea.value === true\n || [ 'text', 'search', 'url', 'tel', 'password' ].includes(props.type)\n )\n\n const onEvents = computed(() => {\n const evt = {\n ...state.splitAttrs.listeners.value,\n onInput,\n 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 onChange,\n onBlur: onFinishEditing,\n onFocus: stop\n }\n\n evt.onCompositionstart = evt.onCompositionupdate = evt.onCompositionend = onComposition\n\n if (hasMask.value === true) {\n evt.onKeydown = onMaskedKeydown\n // reset selection anchor on pointer selection\n evt.onClick = onMaskedClick\n }\n\n if (props.autogrow === true) {\n evt.onAnimationend = onAnimationend\n }\n\n return evt\n })\n\n const inputAttrs = computed(() => {\n const attrs = {\n tabindex: 0,\n 'data-autofocus': props.autofocus === true || void 0,\n rows: props.type === 'textarea' ? 6 : void 0,\n 'aria-label': props.label,\n name: nameProp.value,\n ...state.splitAttrs.attributes.value,\n id: state.targetUid.value,\n maxlength: props.maxlength,\n disabled: props.disable === true,\n readonly: props.readonly === true\n }\n\n if (isTextarea.value === false) {\n attrs.type = props.type\n }\n\n if (props.autogrow === true) {\n attrs.rows = 1\n }\n\n return attrs\n })\n\n // some browsers lose the native input value\n // so we need to reattach it dynamically\n // (like type=\"password\" <-> type=\"text\"; see #12078)\n watch(() => props.type, () => {\n if (inputRef.value) {\n inputRef.value.value = props.modelValue\n }\n })\n\n watch(() => props.modelValue, v => {\n if (hasMask.value === true) {\n if (stopValueWatcher === true) {\n stopValueWatcher = false\n\n if (String(v) === emitCachedValue) {\n return\n }\n }\n\n updateMaskValue(v)\n }\n else if (innerValue.value !== v) {\n innerValue.value = v\n\n if (\n props.type === 'number'\n && temp.hasOwnProperty('value') === true\n ) {\n if (typedNumber === true) {\n typedNumber = false\n }\n else {\n delete temp.value\n }\n }\n }\n\n // textarea only\n props.autogrow === true && nextTick(adjustHeight)\n })\n\n watch(() => props.autogrow, val => {\n // textarea only\n if (val === true) {\n nextTick(adjustHeight)\n }\n // if it has a number of rows set respect it\n else if (inputRef.value !== null && attrs.rows > 0) {\n inputRef.value.style.height = 'auto'\n }\n })\n\n watch(() => props.dense, () => {\n props.autogrow === true && nextTick(adjustHeight)\n })\n\n function focus () {\n addFocusFn(() => {\n const el = document.activeElement\n if (\n inputRef.value !== null\n && inputRef.value !== el\n && (el === null || el.id !== state.targetUid.value)\n ) {\n inputRef.value.focus({ preventScroll: true })\n }\n })\n }\n\n function select () {\n inputRef.value !== null && inputRef.value.select()\n }\n\n function onPaste (e) {\n if (hasMask.value === true && props.reverseFillMask !== true) {\n const inp = e.target\n moveCursorForPaste(inp, inp.selectionStart, inp.selectionEnd)\n }\n\n emit('paste', e)\n }\n\n function onInput (e) {\n if (!e || !e.target) {\n return\n }\n\n if (props.type === 'file') {\n emit('update:modelValue', e.target.files)\n return\n }\n\n const val = e.target.value\n\n if (e.target.qComposing === true) {\n temp.value = val\n\n return\n }\n\n if (hasMask.value === true) {\n updateMaskValue(val, false, e.inputType)\n }\n else {\n emitValue(val)\n\n if (isTypeText.value === true && e.target === document.activeElement) {\n const { selectionStart, selectionEnd } = e.target\n\n if (selectionStart !== void 0 && selectionEnd !== void 0) {\n 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 props.autogrow === true && adjustHeight()\n }\n\n function onAnimationend (e) {\n emit('animationend', e)\n adjustHeight()\n }\n\n function emitValue (val, stopWatcher) {\n emitValueFn = () => {\n emitTimer = null\n\n if (\n props.type !== 'number'\n && temp.hasOwnProperty('value') === true\n ) {\n delete temp.value\n }\n\n if (props.modelValue !== val && emitCachedValue !== val) {\n emitCachedValue = val\n\n stopWatcher === true && (stopValueWatcher = true)\n emit('update:modelValue', val)\n\n nextTick(() => {\n emitCachedValue === val && (emitCachedValue = NaN)\n })\n }\n\n emitValueFn = void 0\n }\n\n if (props.type === 'number') {\n typedNumber = true\n temp.value = val\n }\n\n if (props.debounce !== void 0) {\n emitTimer !== null && clearTimeout(emitTimer)\n temp.value = val\n emitTimer = setTimeout(emitValueFn, props.debounce)\n }\n else {\n emitValueFn()\n }\n }\n\n // textarea only\n function adjustHeight () {\n requestAnimationFrame(() => {\n const inp = inputRef.value\n if (inp !== null) {\n const parentStyle = inp.parentNode.style\n // chrome does not keep scroll #15498\n const { scrollTop } = inp\n // chrome calculates a smaller scrollHeight when in a .column container\n const { overflowY, maxHeight } = $q.platform.is.firefox === true\n ? {}\n : window.getComputedStyle(inp)\n // on firefox or if overflowY is specified as scroll #14263, #14344\n // we don't touch overflow\n // firefox is not so bad in the end\n const changeOverflow = overflowY !== void 0 && overflowY !== 'scroll'\n\n // reset height of textarea to a small size to detect the real height\n // but keep the total control size the same\n changeOverflow === true && (inp.style.overflowY = 'hidden')\n parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px'\n inp.style.height = '1px'\n\n inp.style.height = inp.scrollHeight + 'px'\n // we should allow scrollbars only\n // if there is maxHeight and content is taller than maxHeight\n changeOverflow === true && (inp.style.overflowY = parseInt(maxHeight, 10) < inp.scrollHeight ? 'auto' : 'hidden')\n parentStyle.marginBottom = ''\n inp.scrollTop = scrollTop\n }\n })\n }\n\n function onChange (e) {\n onComposition(e)\n\n if (emitTimer !== null) {\n clearTimeout(emitTimer)\n emitTimer = null\n }\n\n emitValueFn !== void 0 && emitValueFn()\n\n emit('change', e.target.value)\n }\n\n function onFinishEditing (e) {\n e !== void 0 && stop(e)\n\n if (emitTimer !== null) {\n clearTimeout(emitTimer)\n emitTimer = null\n }\n\n emitValueFn !== void 0 && emitValueFn()\n\n typedNumber = false\n stopValueWatcher = false\n delete temp.value\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 props.type !== 'file' && setTimeout(() => {\n if (inputRef.value !== null) {\n inputRef.value.value = innerValue.value !== void 0 ? innerValue.value : ''\n }\n })\n }\n\n function getCurValue () {\n return temp.hasOwnProperty('value') === true\n ? temp.value\n : (innerValue.value !== void 0 ? innerValue.value : '')\n }\n\n onBeforeUnmount(() => {\n onFinishEditing()\n })\n\n onMounted(() => {\n // textarea only\n props.autogrow === true && adjustHeight()\n })\n\n Object.assign(state, {\n innerValue,\n\n fieldClass: computed(() =>\n `q-${ isTextarea.value === true ? 'textarea' : 'input' }`\n + (props.autogrow === true ? ' q-textarea--autogrow' : '')\n ),\n\n hasShadow: computed(() =>\n props.type !== 'file'\n && typeof props.shadowText === 'string'\n && props.shadowText.length !== 0\n ),\n\n inputRef,\n\n emitValue,\n\n hasValue,\n\n floatingLabel: computed(() =>\n (\n hasValue.value === true\n && (props.type !== 'number' || isNaN(innerValue.value) === false)\n )\n || fieldValueIsFilled(props.displayValue)\n ),\n\n getControl: () => {\n return h(isTextarea.value === true ? 'textarea' : 'input', {\n ref: inputRef,\n class: [\n 'q-field__native q-placeholder',\n props.inputClass\n ],\n style: props.inputStyle,\n ...inputAttrs.value,\n ...onEvents.value,\n ...(\n props.type !== 'file'\n ? { value: getCurValue() }\n : formDomProps.value\n )\n })\n },\n\n getShadowControl: () => {\n return h('div', {\n class: 'q-field__native q-field__shadow absolute-bottom no-pointer-events'\n + (isTextarea.value === true ? '' : ' text-no-wrap')\n }, [\n h('span', { class: 'invisible' }, getCurValue()),\n h('span', props.shadowText)\n ])\n }\n })\n\n const renderFn = useField(state)\n\n // expose public methods\n Object.assign(proxy, {\n focus,\n select,\n getNativeElement: () => inputRef.value // deprecated\n })\n\n injectProp(proxy, 'nativeEl', () => inputRef.value)\n\n return renderFn\n }\n})\n","import useField, { useFieldState, useFieldProps, useFieldEmits } from '../../composables/private.use-field/use-field.js'\n\nimport { createComponent } from '../../utils/private.create/create.js'\n\nexport default createComponent({\n name: 'QField',\n\n inheritAttrs: false,\n\n props: {\n ...useFieldProps,\n\n tag: {\n type: String,\n default: 'label'\n }\n },\n\n emits: useFieldEmits,\n\n setup () {\n return useField(\n useFieldState({ tagProp: true })\n )\n }\n})\n","import script from \"./AppInput.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AppInput.vue?vue&type=script&lang=ts&setup=true\"\n\nconst cssModules = {}\nimport style0 from \"./AppInput.vue?vue&type=style&index=0&id=4beb7f12&lang=scss&module=true\"\ncssModules[\"$style\"] = style0\n\nimport exportComponent from \"../../../node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__cssModules',cssModules]])\n\nexport default __exports__\nimport QInput from 'quasar/src/components/input/QInput.js';\nimport QIcon from 'quasar/src/components/icon/QIcon.js';\nimport QField from 'quasar/src/components/field/QField.js';\nimport qInstall from \"../../../node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js\";\nqInstall(script, 'components', {QInput,QIcon,QField});\n"],"names":["root","factory","exports","module","require","define","amd","self","this","__WEBPACK_EXTERNAL_MODULE__274__","___CSS_LOADER_EXPORT___","push","id","locals","cssWithMappingToString","list","toString","map","item","content","needLayer","concat","length","join","i","modules","media","dedupe","supports","layer","undefined","alreadyImportedModules","k","_k","component","type","items","targetComponent","__vccOpts","target","sfc","props","key","val","__esModule","default","add","listToStyles","parentId","styles","newStyles","css","sourceMap","part","parts","hasDocument","document","DEBUG","Error","stylesInDom","head","getElementsByTagName","singletonElement","singletonCounter","isProduction","noop","options","ssrIdKey","isOldIE","navigator","test","userAgent","toLowerCase","addStylesClient","_isProduction","_options","addStylesToDom","newList","mayRemove","domStyle","refs","j","addStyle","createStyleElement","styleElement","createElement","appendChild","obj","update","remove","querySelector","parentNode","removeChild","styleIndex","applyToSingletonTag","bind","applyToTag","newObj","replaceText","textStore","index","replacement","filter","Boolean","styleSheet","cssText","cssNode","createTextNode","childNodes","insertBefore","setAttribute","ssrId","sources","btoa","unescape","encodeURIComponent","JSON","stringify","firstChild","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","n","getter","d","a","definition","o","Object","defineProperty","enumerable","get","prop","prototype","hasOwnProperty","call","r","Symbol","toStringTag","value","p","window","currentScript","src","match","_defineComponent","__name","disable","Function","tooltip","uppercase","xSmall","small","large","fullWidth","wrap","largeIcon","modelValue","badge","String","Number","badgeColor","badgeInline","link","size","to","replace","href","label","icon","iconRight","outline","flat","unelevated","rounded","square","glossy","fab","fabMini","padding","color","textColor","noCaps","noWrap","dense","ripple","tabindex","align","stack","stretch","loading","round","percentage","darkPercentage","emits","setup","__props","emit","__emit","onClick","event","badgeText","computed","isDisabled","_ctx","_cache","_component_q_badge","_resolveComponent","_component_q_tooltip","_component_q_btn","_openBlock","_createBlock","_mergeProps","$props","class","$style","wrapper","_withCtx","_renderSlot","$slots","style","floating","_createTextVNode","_toDisplayString","_","_createCommentVNode","delay","useSizeDefaults","xs","sm","md","lg","xl","useSizeProps","sizes","fontSize","createComponent","raw","markRaw","defineComponent","createDirective","hSlot","slot","otherwise","hMergeSlot","source","defaultViewBox","sameFn","ionFn","libMap","matMap","o_","r_","s_","symMap","sym_o_","sym_r_","sym_s_","libRE","RegExp","keys","matRE","symRE","mRE","imgRE","svgUseRE","ionRE","faRE","name","tag","left","right","slots","proxy","$q","getCurrentInstance","sizeStyle","useSize","classes","cls","none","iconMapFn","res","def","viewBox","split","svg","nodes","path","transform","h","img","substring","svguse","matches","platform","is","ios","data","role","useSpinnerProps","useSpinner","cSize","thickness","width","height","cx","cy","fill","stroke","element","getElement","el","err","unref","$el","listenOpts","hasPassive","passiveCapture","notPassiveCapture","opts","assign","passive","notPassive","capture","addEventListener","removeEventListener","position","e","touches","changedTouches","targetTouches","top","clientY","clientX","stop","stopPropagation","prevent","cancelable","preventDefault","stopAndPrevent","addEvt","ctx","targetName","events","forEach","evt","cleanEvt","lastKeyCompositionStatus","shouldIgnoreKey","isComposing","qKeyEvent","isKeyCode","keyCodes","includes","keyCode","fn","limit","result","wait","setTimeout","apply","arguments","showRipple","forceCenter","modifiers","center","node","innerNode","pos","getBoundingClientRect","diameter","Math","sqrt","radius","centerX","x","centerY","y","className","opacity","abort","clearTimeout","timer","classList","splice","indexOf","updateModifiers","arg","cfg","early","beforeMount","binding","instance","$","appContext","config","globalProperties","enabled","start","qSkipRipple","keystart","throttle","__qripple","updated","oldValue","beforeUnmount","_qripple","alignMap","between","around","evenly","alignValues","useAlignProps","validator","v","vertical","vmHasRouter","vm","$router","vmIsDestroyed","isUnmounted","isDeactivated","getOriginalPath","record","aliasOf","isSameRouteRecord","b","includesParams","outer","inner","innerValue","outerValue","Array","isArray","some","isEquivalentArray","every","isSameRouteLocationParamsValue","isSameRouteLocationParams","useRouterLinkNonMatchingProps","fallbackTag","useDisableForRouterLinkProps","hasRouter","hasHrefLink","hasRouterLinkProps","resolvedLink","getLink","hasRouterLink","hasLink","linkTag","linkAttrs","linkActiveIndex","matched","routeMatched","currentMatched","$route","findIndex","parentRecordPath","linkIsActive","params","linkIsExactActive","linkClass","exactActiveClass","activeClass","exact","resolve","navigateToRouterLink","returnRouterError","Promise","metaKey","altKey","ctrlKey","shiftKey","button","promise","then","catch","navigateOnClick","go","defaultPrevented","btnPadding","defaultSizes","formTypes","mediaTypeRE","btnDesignOptions","getBtnDesign","defaultValue","nonRoundBtnProps","reduce","acc","useBtnProps","alignClass","useAlign","useRouterLink","minWidth","minHeight","isRounded","isActionable","tabIndex","design","attributes","disabled","colors","shape","innerClasses","touchTarget","keyboardTarget","mouseTarget","onTouchstart","useBtn","rootRef","ref","blurTargetRef","avoidMouseRipple","localTouchTargetEl","mouseTimer","hasLabel","rippleProps","percentageStyle","max","min","transition","onEvents","onMousedown","onLoadingEvt","onKeydown","onKeyup","has","touch","suffix","nodeProps","activeElement","body","contains","focus","onClickCleanup","cleanup","onPressEnd","MouseEvent","cancelBubble","dispatchEvent","destroying","blurTarget","onBeforeUnmount","click","QIcon","child","Transition","QSpinner","withDirectives","Ripple","transparent","multiLine","verticalAlign","text","injectProp","propName","set","isRuntimeSsrPreHydration","__QUASAR_SSR_CLIENT__","preHydrationBrowser","getMatch","platformMatch","exec","browser","version","getPlatformMatch","hasTouch","maxTouchPoints","getPlatform","UA","mobile","desktop","cordova","capacitor","nativeMobile","electron","bex","linux","mac","win","cros","chrome","firefox","opera","safari","vivaldi","edge","edgeChromium","ie","webkit","android","ipad","iphone","ipod","kindle","winphone","blackberry","playbook","silk","versionNumber","parseInt","knownMobiles","bb","edga","edgios","edg","crios","fxios","opr","location","Capacitor","nativeMobileWrapper","_cordovaNative","innerHeight","innerWidth","userAgentData","vendor","ssrClient","webStorage","within","iframe","client","Platform","install","onSSRHydrated","reactive","hasWebStorage","localStorage","clearSelection","getSelection","selection","empty","removeAllRanges","addRange","createRange","useAnchorStaticProps","Element","noParentEvent","showing","avoidEmit","configureAnchorEl","anchorEl","touchTimer","canShow","anchorEvents","unconfigureAnchorEl","setAnchorEl","pickAnchorEl","console","error","hide","toggle","qAnchorHandled","toggleKey","contextClick","nextTick","show","mobileTouch","mobileCleanup","context","contextMenu","evts","watch","onMounted","configureScrollTarget","localScrollTarget","scrollFn","changeScrollEvent","scrollTarget","fnProp","fnHandler","unconfigureScrollTarget","noParentEventWatcher","useModelToggleProps","useModelToggleEmits","hideOnRouteChange","handleShow","handleHide","processOnMount","payload","listener","processShow","processHide","processModelChange","fullPath","publicMethods","queue","waitFlags","clearFlag","flag","entry","addFocusWaitFlag","removeFocusWaitFlag","addFocusFn","removeFocusFn","globalConfig","nodesList","portalTypeList","portalIndex","createGlobalNode","portalType","globalNodes","removeGlobalNode","nodeIndex","portalProxyList","QPortal","isOnGlobalDialog","parent","innerRef","renderPortalContent","portalIsActive","portalIsAccessible","portalEl","focusObj","onGlobalDialog","showPortal","isReady","hidePortal","onUnmounted","__qPortal","renderPortal","Teleport","useTransitionProps","transitionShow","transitionHide","transitionDuration","defaultShowFn","defaultHideFn","transitionProps","appear","enterFromClass","enterActiveClass","enterToClass","leaveFromClass","leaveActiveClass","leaveToClass","transitionStyle","tickFn","removeTick","onDeactivated","registerTick","removeTimeout","registerTimeout","scrollTargetProp","scrollTargets","scrollingElement","documentElement","getScrollTarget","targetEl","closest","getScrollbarWidth","visibility","overflow","w1","offsetWidth","w2","clientWidth","registeredList","globalHandler","nodeType","seamless","state","qClickOutside","onClickOutside","addClickOutside","clickOutsideProps","removeClickOutside","vpLeft","vpTop","validatePosition","validateOffset","horizontalPos","parsePosition","rtl","horizontal","getAnchorProps","offset","bottom","middle","getAbsoluteAnchorProps","absoluteOffset","getTargetProps","getTopLeftProps","anchorProps","targetProps","anchorOrigin","selfOrigin","setPosition","retryNumber","offsetHeight","fit","cover","maxHeight","maxWidth","visualViewport","offsetLeft","offsetTop","setProperty","scrollLeft","scrollTop","origElWidth","origElHeight","elWidth","elHeight","elStyle","applyBoundaries","hasChanged","offsetY","offsetX","currentHeight","currentWidth","margin","anchorY","anchorX","inheritAttrs","anchor","hideDelay","persistent","attrs","unwatchPosition","observer","lang","useTick","useTimeout","useTransition","useScrollTarget","useAnchor","useModelToggle","delayShow","delayHide","usePortal","hasClickOutside","MutationObserver","updatePosition","observe","childList","characterData","subtree","screen","anchorCleanup","disconnect","getTooltipContent","cssModules","QBtn","field","required","datePicker","timePicker","dateLocale","withIcon","iconName","iconColor","withButton","buttonIcon","buttonTooltip","clearTooltip","withArrow","mask","fillMask","reverseFillMask","unmaskedValue","errorMessage","noErrorIcon","rules","reactiveRules","lazyRules","stackLabel","hint","hideHint","prefix","labelColor","bgColor","dark","clearable","clearIcon","filled","outlined","borderless","bordered","standout","labelSlot","bottomSlots","hideBottomSpace","counter","itemAligned","readonly","autofocus","for","shadowText","debounce","maxlength","autogrow","inputClass","inputStyle","onClear","onFocus","onBlur","newValue","itemClasses","_component_q_icon","_component_q_input","$event","_normalizeClass","placeholder","prepend","_createVNode","_createElementVNode","xmlns","buf","bufIdx","hexBytes","randomBytes","lib","crypto","msCrypto","getRandomValues","bytes","Uint8Array","floor","random","BUFFER_SIZE","slice","parseValue","getId","uid","getValue","newId","listenerRE","vnode","listeners","onBeforeUpdate","useDarkProps","isActive","formKey","validate","resetValidation","requiresQForm","$form","inject","unbindComponent","bindComponent","hex","hexa","hexOrHexa","rgb","rgba","testPattern","date","time","fulltime","timeOrFulltime","email","hexColor","hexaColor","hexOrHexaColor","rgbColor","rgbaColor","rgbOrRgbaColor","hexOrRgbColor","hexaOrRgbaColor","anyColor","immediate","debounced","args","later","cancel","lazyRulesValues","useValidateProps","focused","innerLoading","innerError","innerErrorMessage","isDirtyModel","useFormChild","unwatchRules","validateIndex","hasRules","canDebounceValidate","hasError","onRulesChange","debouncedValidate","setDirty","msg","promises","rule","all","find","deep","fieldValueIsFilled","useNonInputFieldProps","useFieldProps","useFieldEmits","useFieldState","requiredForAttr","tagProp","changeEvent","isDark","useDark","targetUid","useId","editable","hasPopupOpen","splitAttrs","useSplitAttrs","targetRef","controlRef","focusoutTimer","hasValue","emitValue","controlEvents","onFocusin","onControlFocusin","onFocusout","onControlFocusout","clearValue","computedCounter","len","maxValues","useValidate","floatingLabel","shouldRenderBottom","styleType","fieldClass","getControl","contentClass","labelClass","controlSlotScope","focusHandler","hasAttribute","preventScroll","blur","hasFocus","inputRef","isDirty","onClearableKeyup","getContent","getControlContainer","getInnerAppendNode","iconSet","clear","append","getInnerAppend","getControlChild","getShadowControl","hasShadow","rawControl","control","getBottom","hasCounter","main","shouldActivate","onActivated","labelAttrs","before","after","NAMED_MASKS","datetime","phone","card","TOKENS","pattern","negate","S","N","A","toLocaleUpperCase","toLocaleLowerCase","X","KEYS","regex","tokenRegexMask","escRegex","MARKER","fromCharCode","useMaskProps","maskMarked","maskReplaced","computedMask","computedUnmask","pastedTextStart","selectionAnchor","hasMask","getInitialMaskedValue","getIsTypeText","updateMaskInternals","masked","maskValue","unmaskValue","fillWithMask","getPaddedMaskMarked","pad","localMaskMarked","padPos","localComputedMask","fillChar","fillCharEscaped","unmask","extract","firstMatch","unmaskChar","negateChar","char1","esc","token","char2","c","unmaskMatcher","extractLast","extractMatcher","re","unmaskMatch","extractMatch","extractMatcherLength","str","m","shift","updateMaskValue","rawVal","updateMaskInternalsFlag","inputType","inp","end","selectionEnd","endReverse","unmasked","preMasked","changed","cursor","setSelectionRange","moveCursor","rightReverse","maxEnd","moveCursorForPaste","noMarkBefore","leftReverse","onMaskedClick","onMaskedKeydown","selectionStart","selectionDirection","maskValueReverse","valIndex","output","maskIndex","valChar","maskDef","firstTokenIndex","useFormProps","useFormInputNameAttr","typeGuard","getFormDomProps","model","dt","DataTransfer","ClipboardEvent","clipboardData","from","file","files","onInput","qComposing","FileList","temp","typedNumber","stopValueWatcher","emitValueFn","emitCachedValue","NaN","emitTimer","nameProp","useMask","formDomProps","useFileFormDomProps","onComposition","useKeyComposition","isTextarea","isTypeText","onPaste","onChange","onFinishEditing","onCompositionstart","onCompositionupdate","onCompositionend","onAnimationend","inputAttrs","rows","select","adjustHeight","stopWatcher","requestAnimationFrame","parentStyle","overflowY","getComputedStyle","changeOverflow","marginBottom","scrollHeight","getCurValue","isNaN","displayValue","renderFn","useField","getNativeElement","QInput"],"sourceRoot":""}