{"version":3,"sources":["webpack:///./node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/quasar/src/components/item/QList.js","webpack:///./node_modules/quasar/src/utils/private/position-engine.js","webpack:///./node_modules/quasar/src/components/menu/QMenu.js","webpack:///./node_modules/quasar/src/components/date/use-datetime.js","webpack:///./node_modules/quasar/src/components/date/QDate.js","webpack:///./node_modules/quasar/src/composables/private/use-scroll-target.js","webpack:///./node_modules/quasar/src/composables/private/use-anchor.js","webpack:///./node_modules/quasar/src/components/item/QItem.js","webpack:///./node_modules/quasar/src/utils/private/click-outside.js","webpack:///./node_modules/quasar/src/directives/ClosePopup.js","webpack:///./node_modules/core-js/modules/es.iterator.reduce.js","webpack:///./node_modules/core-js/internals/array-method-is-strict.js","webpack:///./src/components/base/Button/Button.vue?8704","webpack:///./node_modules/core-js/internals/array-reduce.js","webpack:///./src/components/base/Button/Button.vue","webpack:///./src/components/base/Button/Button.vue?c87c","webpack:///./src/components/base/Button/_button.scss?1ec2","webpack:///./node_modules/quasar/src/utils/private/selection.js","webpack:///./node_modules/quasar/src/composables/private/use-cache.js"],"names":["$","$reduce","left","arrayMethodIsStrict","CHROME_VERSION","IS_NODE","CHROME_BUG","FORCED","target","proto","forced","reduce","callbackfn","length","arguments","this","undefined","defineComponent","name","props","useDarkProps","bordered","Boolean","dense","separator","padding","setup","slots","vm","getCurrentInstance","isDark","useDark","proxy","$q","classes","computed","value","h","class","hSlot","default","vpLeft","vpTop","validatePosition","pos","parts","split","includes","validateOffset","val","horizontalPos","parsePosition","rtl","vertical","horizontal","getAnchorProps","el","offset","top","right","bottom","width","height","getBoundingClientRect","middle","center","getTargetProps","offsetHeight","offsetWidth","setPosition","cfg","client","is","ios","window","visualViewport","document","body","style","offsetLeft","offsetTop","setProperty","anchorProps","scrollLeft","scrollTop","absoluteOffset","anchorEl","cover","anchorTop","anchorLeft","elStyle","maxHeight","maxWidth","visibility","fit","minWidth","minHeight","Object","assign","targetProps","anchorOrigin","selfOrigin","applyBoundaries","currentHeight","currentWidth","margin","getScrollbarWidth","innerHeight","innerWidth","clientWidth","Math","max","min","anchorY","anchorX","forEach","inheritAttrs","useAnchorProps","useModelToggleProps","useTransitionProps","persistent","autoClose","separateClosePopup","noRouteDismiss","noRefocus","noFocus","square","anchor","type","String","validator","self","Array","scrollTarget","touchPosition","emits","useModelToggleEmits","emit","attrs","unwatchPosition","avoidAutoClose","refocusTarget","innerRef","ref","showing","hideOnRouteChange","registerTick","removeTick","prepareTick","useTick","registerTimeout","removeTimeout","useTimeout","transition","transitionStyle","useTransition","localScrollTarget","changeScrollEvent","unconfigureScrollTarget","useScrollTarget","configureScrollTarget","canShow","useAnchor","hide","useModelToggle","handleShow","handleHide","processOnMount","showPortal","hidePortal","renderPortal","usePortal","renderPortalContent","clickOutsideProps","getEl","$el","onClickOutside","e","classList","contains","stopAndPrevent","lang","menuClass","onEvents","onClick","onAutoClose","handlesFocus","focus","addFocusFn","node","activeElement","querySelector","evt","addFocusout","onFocusout","contextMenu","position","watch","screen","updatePosition","blur","platform","click","transitionDuration","anchorCleanup","qClickOutside","hiding","removeFocusout","removeClickOutside","removeEscapeKey","onEscapeKey","getScrollTarget","closePortalMenus","childHasFocus","Transition","appear","tabindex","addEscapeKey","addClickOutside","onBeforeUnmount","calendars","useDatetimeProps","modelValue","required","mask","locale","calendar","v","landscape","color","textColor","flat","readonly","disable","useDatetimeEmits","getDayHash","date","year","pad","month","day","editable","headerClass","cls","push","join","getLocale","getCurrentDate","dateOnly","d","Date","timeFill","jDate","toJalaali","jy","jm","jd","getFullYear","getMonth","getDate","hour","minute","second","millisecond","yearsInterval","views","viewIsValid","yearMonthValidator","test","lineStr","getMonthHash","useFormProps","multiple","range","title","subtitle","defaultYearMonth","yearsInMonthView","events","Function","eventColor","emitImmediately","options","navigationMinYearMonth","navigationMaxYearMonth","noUnset","firstDayOfWeek","Number","todayBtn","minimal","defaultView","getCache","useCache","useDatetime","lastEmitValue","formAttrs","useFormAttrs","injectFormInput","useFormInject","blurTargetRef","innerMask","getMask","innerLocale","today","viewModel","getViewModel","view","direction","monthDirection","yearDirection","startYear","editRange","computedColor","computedTextColor","isImmediate","normalizedModel","isArray","daysModel","filter","map","decodeString","dateHash","rangeModel","fn","from","to","getNativeDateFn","model","gDate","toGregorian","gy","gm","gd","encodeObjectFn","formatDate","timezoneOffset","daysInModel","acc","getDateDiff","headerTitle","init","daysShort","getDay","monthsShort","pluralDay","isNaN","valueOf","minSelectedModel","concat","sort","a","b","maxSelectedModel","headerSubtitle","dateArrow","iconSet","datetime","arrowLeft","arrowRight","reverse","computedFirstDayOfWeek","daysOfWeek","days","first","slice","daysInMonth","jalaaliMonthLength","evtColor","minNav","data","parseInt","maxNav","navBoundaries","prev","next","daysMap","entry","hash","rangeMap","hashFrom","hashTo","cur","rangeView","initHash","final","finalHash","fromHash","toHash","viewMonthHash","includeFrom","includeTo","selectionDaysMap","i","dayHash","eventDaysMap","viewDays","endDay","prevJM","prevJY","res","len","fill","index","event","in","selected","unelevated","rangeFrom","rangeTo","editRangeFrom","editRangeTo","afterDays","attributes","setToday","toggleDate","setCalendarTo","setView","viewMode","offsetCalendar","descending","goToMonth","goToYear","updateViewModel","setEditingRange","__splitDate","getDefaultViewModel","decoded","setYear","setMonth","monthHash","removeFromModel","addToModel","getShortDate","newHash","nextTick","emitValue","action","reason","details","getEmitParams","maxDay","encodeEntry","ranges","updateValue","getHeader","key","onKeyup","keyCode","QBtn","icon","size","round","getNavigation","label","dir","goTo","boundaries","noCaps","renderViews","Calendar","months","onDayClick","onMouseover","onDayMouseover","Months","currentYear","isDisabled","content","active","unshift","Years","start","stop","years","dayIndex","dayProps","find","payload","def","scrollFn","fnProp","fnHandler","listenOpts","passive","noParentEventWatcher","noParentEvent","avoidEmit","configureAnchorEl","touchTimer","touches","anchorEvents","unconfigureAnchorEl","cleanEvt","setAnchorEl","parentNode","pickAnchorEl","err","toggle","toggleKey","isKeyCode","contextClick","show","prevent","mobilePrevent","mobileTouch","mobileCleanup","add","addEvt","setTimeout","remove","clearTimeout","clearSelection","context","evts","mobile","onMounted","useRouterLinkProps","tag","clickable","insetLevel","focused","manualFocus","hasLink","linkProps","linkClass","linkTag","navigateToLink","useRouterLink","rootRef","isActionable","isClickable","activeClass","qKeyEvent","MouseEvent","dispatchEvent","getContent","child","hUniqueSlot","timer","notPassiveCapture","registeredList","hasModalsAbove","nextElementSibling","globalHandler","nodeType","state","addEventListener","findIndex","splice","removeEventListener","getDepth","depth","__QUASAR_SSR_SERVER__","beforeMount","ctx","handler","getPortalVm","closePortals","handlerKey","__qclosepopup","updated","oldValue","beforeUnmount","iterate","aCallable","anObject","getIteratorDirect","$TypeError","TypeError","real","reducer","record","noInitial","accumulator","counter","IS_RECORD","fails","module","exports","METHOD_NAME","argument","method","call","toObject","IndexedObject","lengthOfArrayLike","REDUCE_EMPTY","createMethod","IS_RIGHT","that","argumentsLength","memo","O","_createBlock","_component_q_btn","_normalizeStyle","$props","background","borderRadius","border","txColor","loading","text-color","no-caps","_cache","$event","_ctx","$emit","_renderSlot","$slots","__exports__","render","getSelection","selection","empty","removeAllRanges","Platform","addRange","createRange","cache","Map","obj","getCacheWithFn"],"mappings":"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","file":"js/chunk-2c0b16bc.4ff7f61a.js","sourcesContent":["'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/environment-v8-version');\nvar IS_NODE = require('../internals/environment-is-node');\n\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\nvar FORCED = CHROME_BUG || !arrayMethodIsStrict('reduce');\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: FORCED }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(this, callbackfn, length, length > 1 ? arguments[1] : undefined);\n }\n});\n","import { h, defineComponent, computed, getCurrentInstance } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\n\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default defineComponent({\n name: 'QList',\n\n props: {\n ...useDarkProps,\n\n bordered: Boolean,\n dense: Boolean,\n separator: Boolean,\n padding: Boolean\n },\n\n setup (props, { slots }) {\n const vm = getCurrentInstance()\n const isDark = useDark(props, vm.proxy.$q)\n\n const classes = computed(() =>\n 'q-list'\n + (props.bordered === true ? ' q-list--bordered' : '')\n + (props.dense === true ? ' q-list--dense' : '')\n + (props.separator === true ? ' q-list--separator' : '')\n + (isDark.value === true ? ' q-list--dark' : '')\n + (props.padding === true ? ' q-list--padding' : '')\n )\n\n return () => h('div', { class: classes.value }, hSlot(slots.default))\n }\n})\n","import { getScrollbarWidth } from '../scroll.js'\nimport { client } from '../../plugins/Platform.js'\n\nlet vpLeft, vpTop\n\nexport function validatePosition (pos) {\n const parts = pos.split(' ')\n if (parts.length !== 2) {\n return false\n }\n if ([ 'top', 'center', 'bottom' ].includes(parts[ 0 ]) !== true) {\n console.error('Anchor/Self position must start with one of top/center/bottom')\n return false\n }\n if ([ 'left', 'middle', 'right', 'start', 'end' ].includes(parts[ 1 ]) !== true) {\n console.error('Anchor/Self position must end with one of left/middle/right/start/end')\n return false\n }\n return true\n}\n\nexport function validateOffset (val) {\n if (!val) { return true }\n if (val.length !== 2) { return false }\n if (typeof val[ 0 ] !== 'number' || typeof val[ 1 ] !== 'number') {\n return false\n }\n return true\n}\n\nconst horizontalPos = {\n 'start#ltr': 'left',\n 'start#rtl': 'right',\n 'end#ltr': 'right',\n 'end#rtl': 'left'\n}\n\n;[ 'left', 'middle', 'right' ].forEach(pos => {\n horizontalPos[ `${ pos }#ltr` ] = pos\n horizontalPos[ `${ pos }#rtl` ] = pos\n})\n\nexport function parsePosition (pos, rtl) {\n const parts = pos.split(' ')\n return {\n vertical: parts[ 0 ],\n horizontal: horizontalPos[ `${ parts[ 1 ] }#${ rtl === true ? 'rtl' : 'ltr' }` ]\n }\n}\n\nexport function validateCover (val) {\n if (val === true || val === false) { return true }\n return validatePosition(val)\n}\n\nexport function getAnchorProps (el, offset) {\n let { top, left, right, bottom, width, height } = el.getBoundingClientRect()\n\n if (offset !== void 0) {\n top -= offset[ 1 ]\n left -= offset[ 0 ]\n bottom += offset[ 1 ]\n right += offset[ 0 ]\n\n width += offset[ 0 ]\n height += offset[ 1 ]\n }\n\n return {\n top,\n left,\n right,\n bottom,\n width,\n height,\n middle: left + (right - left) / 2,\n center: top + (bottom - top) / 2\n }\n}\n\nexport function getTargetProps (el) {\n return {\n top: 0,\n center: el.offsetHeight / 2,\n bottom: el.offsetHeight,\n left: 0,\n middle: el.offsetWidth / 2,\n right: el.offsetWidth\n }\n}\n\n// cfg: { el, anchorEl, anchorOrigin, selfOrigin, offset, absoluteOffset, cover, fit, maxHeight, maxWidth }\nexport function setPosition (cfg) {\n if (client.is.ios === true && window.visualViewport !== void 0) {\n // uses the q-position-engine CSS class\n\n const el = document.body.style\n const { offsetLeft: left, offsetTop: top } = window.visualViewport\n\n if (left !== vpLeft) {\n el.setProperty('--q-pe-left', left + 'px')\n vpLeft = left\n }\n if (top !== vpTop) {\n el.setProperty('--q-pe-top', top + 'px')\n vpTop = top\n }\n }\n\n let anchorProps\n\n // scroll position might change\n // if max-height/-width changes, so we\n // need to restore it after we calculate\n // the new positioning\n const { scrollLeft, scrollTop } = cfg.el\n\n if (cfg.absoluteOffset === void 0) {\n anchorProps = getAnchorProps(cfg.anchorEl, cfg.cover === true ? [ 0, 0 ] : cfg.offset)\n }\n else {\n const\n { top: anchorTop, left: anchorLeft } = cfg.anchorEl.getBoundingClientRect(),\n top = anchorTop + cfg.absoluteOffset.top,\n left = anchorLeft + cfg.absoluteOffset.left\n\n anchorProps = { top, left, width: 1, height: 1, right: left + 1, center: top, middle: left, bottom: top + 1 }\n }\n\n let elStyle = {\n maxHeight: cfg.maxHeight,\n maxWidth: cfg.maxWidth,\n visibility: 'visible'\n }\n\n if (cfg.fit === true || cfg.cover === true) {\n elStyle.minWidth = anchorProps.width + 'px'\n if (cfg.cover === true) {\n elStyle.minHeight = anchorProps.height + 'px'\n }\n }\n\n Object.assign(cfg.el.style, elStyle)\n\n const\n targetProps = getTargetProps(cfg.el),\n props = {\n top: anchorProps[ cfg.anchorOrigin.vertical ] - targetProps[ cfg.selfOrigin.vertical ],\n left: anchorProps[ cfg.anchorOrigin.horizontal ] - targetProps[ cfg.selfOrigin.horizontal ]\n }\n\n applyBoundaries(props, anchorProps, targetProps, cfg.anchorOrigin, cfg.selfOrigin)\n\n elStyle = {\n top: props.top + 'px',\n left: props.left + 'px'\n }\n\n if (props.maxHeight !== void 0) {\n elStyle.maxHeight = props.maxHeight + 'px'\n\n if (anchorProps.height > props.maxHeight) {\n elStyle.minHeight = elStyle.maxHeight\n }\n }\n if (props.maxWidth !== void 0) {\n elStyle.maxWidth = props.maxWidth + 'px'\n\n if (anchorProps.width > props.maxWidth) {\n elStyle.minWidth = elStyle.maxWidth\n }\n }\n\n Object.assign(cfg.el.style, elStyle)\n\n // restore scroll position\n if (cfg.el.scrollTop !== scrollTop) {\n cfg.el.scrollTop = scrollTop\n }\n if (cfg.el.scrollLeft !== scrollLeft) {\n cfg.el.scrollLeft = scrollLeft\n }\n}\n\nfunction applyBoundaries (props, anchorProps, targetProps, anchorOrigin, selfOrigin) {\n const\n currentHeight = targetProps.bottom,\n currentWidth = targetProps.right,\n margin = getScrollbarWidth(),\n innerHeight = window.innerHeight - margin,\n innerWidth = document.body.clientWidth\n\n if (props.top < 0 || props.top + currentHeight > innerHeight) {\n if (selfOrigin.vertical === 'center') {\n props.top = anchorProps[ anchorOrigin.vertical ] > innerHeight / 2\n ? Math.max(0, innerHeight - currentHeight)\n : 0\n props.maxHeight = Math.min(currentHeight, innerHeight)\n }\n else if (anchorProps[ anchorOrigin.vertical ] > innerHeight / 2) {\n const anchorY = Math.min(\n innerHeight,\n anchorOrigin.vertical === 'center'\n ? anchorProps.center\n : (anchorOrigin.vertical === selfOrigin.vertical ? anchorProps.bottom : anchorProps.top)\n )\n props.maxHeight = Math.min(currentHeight, anchorY)\n props.top = Math.max(0, anchorY - currentHeight)\n }\n else {\n props.top = Math.max(0, anchorOrigin.vertical === 'center'\n ? anchorProps.center\n : (anchorOrigin.vertical === selfOrigin.vertical ? anchorProps.top : anchorProps.bottom)\n )\n props.maxHeight = Math.min(currentHeight, innerHeight - props.top)\n }\n }\n\n if (props.left < 0 || props.left + currentWidth > innerWidth) {\n props.maxWidth = Math.min(currentWidth, innerWidth)\n if (selfOrigin.horizontal === 'middle') {\n props.left = anchorProps[ anchorOrigin.horizontal ] > innerWidth / 2\n ? Math.max(0, innerWidth - currentWidth)\n : 0\n }\n else if (anchorProps[ anchorOrigin.horizontal ] > innerWidth / 2) {\n const anchorX = Math.min(\n innerWidth,\n anchorOrigin.horizontal === 'middle'\n ? anchorProps.middle\n : (anchorOrigin.horizontal === selfOrigin.horizontal ? anchorProps.right : anchorProps.left)\n )\n props.maxWidth = Math.min(currentWidth, anchorX)\n props.left = Math.max(0, anchorX - props.maxWidth)\n }\n else {\n props.left = Math.max(0, anchorOrigin.horizontal === 'middle'\n ? anchorProps.middle\n : (anchorOrigin.horizontal === selfOrigin.horizontal ? anchorProps.left : anchorProps.right)\n )\n props.maxWidth = Math.min(currentWidth, innerWidth - props.left)\n }\n }\n}\n","import { h, defineComponent, ref, computed, watch, Transition, onBeforeUnmount, getCurrentInstance } from 'vue'\n\nimport useAnchor, { useAnchorProps } from '../../composables/private/use-anchor.js'\nimport useScrollTarget from '../../composables/private/use-scroll-target.js'\nimport useModelToggle, { useModelToggleProps, useModelToggleEmits } from '../../composables/private/use-model-toggle.js'\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport usePortal from '../../composables/private/use-portal.js'\nimport useTransition, { useTransitionProps } from '../../composables/private/use-transition.js'\nimport useTick from '../../composables/private/use-tick.js'\nimport useTimeout from '../../composables/private/use-timeout.js'\n\nimport { closePortalMenus } from '../../utils/private/portal.js'\nimport { getScrollTarget } from '../../utils/scroll.js'\nimport { position, stopAndPrevent } from '../../utils/event.js'\nimport { hSlot } from '../../utils/private/render.js'\nimport { addEscapeKey, removeEscapeKey } from '../../utils/private/escape-key.js'\nimport { addFocusout, removeFocusout } from '../../utils/private/focusout.js'\nimport { childHasFocus } from '../../utils/dom.js'\nimport { addClickOutside, removeClickOutside } from '../../utils/private/click-outside.js'\n\nimport {\n validatePosition, validateOffset, setPosition, parsePosition\n} from '../../utils/private/position-engine.js'\nimport { addFocusFn } from '../../utils/private/focus-manager.js'\n\nexport default defineComponent({\n name: 'QMenu',\n\n inheritAttrs: false,\n\n props: {\n ...useAnchorProps,\n ...useModelToggleProps,\n ...useDarkProps,\n ...useTransitionProps,\n\n persistent: Boolean,\n autoClose: Boolean,\n separateClosePopup: Boolean,\n\n noRouteDismiss: Boolean,\n noRefocus: Boolean,\n noFocus: Boolean,\n\n fit: Boolean,\n cover: Boolean,\n\n square: Boolean,\n\n anchor: {\n type: String,\n validator: validatePosition\n },\n self: {\n type: String,\n validator: validatePosition\n },\n offset: {\n type: Array,\n validator: validateOffset\n },\n\n scrollTarget: {\n default: void 0\n },\n\n touchPosition: Boolean,\n\n maxHeight: {\n type: String,\n default: null\n },\n maxWidth: {\n type: String,\n default: null\n }\n },\n\n emits: [\n ...useModelToggleEmits,\n 'click', 'escape-key'\n ],\n\n setup (props, { slots, emit, attrs }) {\n let refocusTarget = null, absoluteOffset, unwatchPosition, avoidAutoClose\n\n const vm = getCurrentInstance()\n const { proxy } = vm\n const { $q } = proxy\n\n const innerRef = ref(null)\n const showing = ref(false)\n\n const hideOnRouteChange = computed(() =>\n props.persistent !== true\n && props.noRouteDismiss !== true\n )\n\n const isDark = useDark(props, $q)\n const { registerTick, removeTick, prepareTick } = useTick()\n const { registerTimeout, removeTimeout } = useTimeout()\n const { transition, transitionStyle } = useTransition(props, showing)\n const { localScrollTarget, changeScrollEvent, unconfigureScrollTarget } = useScrollTarget(props, configureScrollTarget)\n\n const { anchorEl, canShow } = useAnchor({ showing })\n\n const { hide } = useModelToggle({\n showing, canShow, handleShow, handleHide,\n hideOnRouteChange,\n processOnMount: true\n })\n\n const { showPortal, hidePortal, renderPortal } = usePortal(vm, innerRef, renderPortalContent)\n\n const clickOutsideProps = {\n anchorEl,\n innerRef,\n getEl: () => proxy.$el,\n onClickOutside (e) {\n if (props.persistent !== true && showing.value === true) {\n hide(e)\n\n if (\n // always prevent touch event\n e.type === 'touchstart'\n // prevent click if it's on a dialog backdrop\n || e.target.classList.contains('q-dialog__backdrop')\n ) {\n stopAndPrevent(e)\n }\n\n return true\n }\n }\n }\n\n const anchorOrigin = computed(() =>\n parsePosition(\n props.anchor || (\n props.cover === true ? 'center middle' : 'bottom start'\n ),\n $q.lang.rtl\n )\n )\n\n const selfOrigin = computed(() => (\n props.cover === true\n ? anchorOrigin.value\n : parsePosition(props.self || 'top start', $q.lang.rtl)\n ))\n\n const menuClass = computed(() =>\n (props.square === true ? ' q-menu--square' : '')\n + (isDark.value === true ? ' q-menu--dark q-dark' : '')\n )\n\n const onEvents = computed(() => (\n props.autoClose === true\n ? { onClick: onAutoClose }\n : {}\n ))\n\n const handlesFocus = computed(() =>\n showing.value === true && props.persistent !== true\n )\n\n watch(handlesFocus, val => {\n if (val === true) {\n addEscapeKey(onEscapeKey)\n addClickOutside(clickOutsideProps)\n }\n else {\n removeEscapeKey(onEscapeKey)\n removeClickOutside(clickOutsideProps)\n }\n })\n\n function focus () {\n addFocusFn(() => {\n let node = innerRef.value\n\n if (node && node.contains(document.activeElement) !== true) {\n node = node.querySelector('[autofocus], [data-autofocus]') || node\n node.focus()\n }\n })\n }\n\n function handleShow (evt) {\n removeTick()\n removeTimeout()\n\n refocusTarget = props.noRefocus === false\n ? document.activeElement\n : null\n\n addFocusout(onFocusout)\n\n showPortal()\n configureScrollTarget()\n\n absoluteOffset = void 0\n\n if (evt !== void 0 && (props.touchPosition || props.contextMenu)) {\n const pos = position(evt)\n\n if (pos.left !== void 0) {\n const { top, left } = anchorEl.value.getBoundingClientRect()\n absoluteOffset = { left: pos.left - left, top: pos.top - top }\n }\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 if (props.noFocus !== true) {\n document.activeElement.blur()\n }\n\n registerTick(() => {\n updatePosition()\n props.noFocus !== true && focus()\n })\n prepareTick()\n\n registerTimeout(() => {\n // required in order to avoid the \"double-tap needed\" issue\n if ($q.platform.is.ios === true) {\n // if auto-close, then this click should\n // not close the menu\n avoidAutoClose = props.autoClose\n innerRef.value.click()\n }\n\n updatePosition()\n showPortal(true) // done showing portal\n emit('show', evt)\n }, props.transitionDuration)\n }\n\n function handleHide (evt) {\n removeTick()\n removeTimeout()\n\n anchorCleanup(true)\n\n if (\n refocusTarget !== null\n && (\n // menu was hidden from code or ESC plugin\n evt === void 0\n // menu was not closed from a mouse or touch clickOutside\n || evt.qClickOutside !== true\n )\n ) {\n refocusTarget.focus()\n }\n\n registerTimeout(() => {\n hidePortal()\n emit('hide', evt)\n }, props.transitionDuration)\n }\n\n function anchorCleanup (hiding) {\n absoluteOffset = void 0\n\n if (unwatchPosition !== void 0) {\n unwatchPosition()\n unwatchPosition = void 0\n }\n\n if (hiding === true || showing.value === true) {\n removeFocusout(onFocusout)\n unconfigureScrollTarget()\n removeClickOutside(clickOutsideProps)\n removeEscapeKey(onEscapeKey)\n }\n }\n\n function configureScrollTarget () {\n if (anchorEl.value !== null || props.scrollTarget !== void 0) {\n localScrollTarget.value = getScrollTarget(anchorEl.value, props.scrollTarget)\n changeScrollEvent(localScrollTarget.value, updatePosition)\n }\n }\n\n function onAutoClose (e) {\n // if auto-close, then the ios double-tap fix which\n // issues a click should not close the menu\n if (avoidAutoClose !== true) {\n closePortalMenus(proxy, e)\n emit('click', e)\n }\n else {\n avoidAutoClose = false\n }\n }\n\n function onFocusout (evt) {\n // the focus is not in a vue child component\n if (\n handlesFocus.value === true\n && childHasFocus(innerRef.value, evt.target) !== true\n ) {\n focus()\n }\n }\n\n function onEscapeKey (evt) {\n emit('escape-key')\n hide(evt)\n }\n\n function updatePosition () {\n const el = innerRef.value\n\n if (el === null || anchorEl.value === null) {\n return\n }\n\n setPosition({\n el,\n offset: props.offset,\n anchorEl: anchorEl.value,\n anchorOrigin: anchorOrigin.value,\n selfOrigin: selfOrigin.value,\n absoluteOffset,\n fit: props.fit,\n cover: props.cover,\n maxHeight: props.maxHeight,\n maxWidth: props.maxWidth\n })\n }\n\n function renderPortalContent () {\n return h(\n Transition,\n { name: transition.value, appear: true },\n () => (\n showing.value === true\n ? h('div', {\n ...attrs,\n ref: innerRef,\n tabindex: -1,\n class: [\n 'q-menu q-position-engine scroll' + menuClass.value,\n attrs.class\n ],\n style: [ attrs.style, transitionStyle.value ],\n ...onEvents.value\n }, hSlot(slots.default))\n : null\n )\n )\n }\n\n onBeforeUnmount(anchorCleanup)\n\n // expose public methods\n Object.assign(proxy, { focus, updatePosition })\n\n return renderPortal\n }\n})\n","import { computed } from 'vue'\n\nimport { toJalaali } from '../../utils/private/date-persian.js'\nimport { pad } from '../../utils/format.js'\n\nconst calendars = [ 'gregorian', 'persian' ]\n\nexport const useDatetimeProps = {\n modelValue: {\n required: true\n },\n\n mask: {\n type: String\n },\n locale: Object,\n\n calendar: {\n type: String,\n validator: v => calendars.includes(v),\n default: 'gregorian'\n },\n\n landscape: Boolean,\n\n color: String,\n textColor: String,\n\n square: Boolean,\n flat: Boolean,\n bordered: Boolean,\n\n readonly: Boolean,\n disable: Boolean\n}\n\nexport const useDatetimeEmits = [ 'update:modelValue' ]\n\nexport function getDayHash (date) {\n return date.year + '/' + pad(date.month) + '/' + pad(date.day)\n}\n\nexport default function (props, $q) {\n const editable = computed(() => {\n return props.disable !== true && props.readonly !== true\n })\n\n const tabindex = computed(() => {\n return props.editable === true ? 0 : -1\n })\n\n const headerClass = computed(() => {\n const cls = []\n props.color !== void 0 && cls.push(`bg-${ props.color }`)\n props.textColor !== void 0 && cls.push(`text-${ props.textColor }`)\n return cls.join(' ')\n })\n\n function getLocale () {\n return props.locale || $q.lang.date\n }\n\n function getCurrentDate (dateOnly) {\n const d = new Date()\n const timeFill = dateOnly === true ? null : 0\n\n if (props.calendar === 'persian') {\n const jDate = toJalaali(d)\n return {\n year: jDate.jy,\n month: jDate.jm,\n day: jDate.jd\n }\n }\n\n return {\n year: d.getFullYear(),\n month: d.getMonth() + 1,\n day: d.getDate(),\n hour: timeFill,\n minute: timeFill,\n second: timeFill,\n millisecond: timeFill\n }\n }\n\n return {\n editable,\n tabindex,\n headerClass,\n\n getLocale,\n getCurrentDate\n }\n}\n","import { h, defineComponent, ref, computed, watch, Transition, nextTick, getCurrentInstance } from 'vue'\n\nimport QBtn from '../btn/QBtn.js'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport useCache from '../../composables/private/use-cache.js'\nimport { useFormProps, useFormAttrs, useFormInject } from '../../composables/private/use-form.js'\nimport useDatetime, { useDatetimeProps, useDatetimeEmits, getDayHash } from './use-datetime.js'\n\nimport { hSlot } from '../../utils/private/render.js'\nimport { formatDate, __splitDate, getDateDiff } from '../../utils/date.js'\nimport { pad } from '../../utils/format.js'\nimport { jalaaliMonthLength, toGregorian } from '../../utils/private/date-persian.js'\n\nconst yearsInterval = 20\nconst views = [ 'Calendar', 'Years', 'Months' ]\nconst viewIsValid = v => views.includes(v)\nconst yearMonthValidator = v => /^-?[\\d]+\\/[0-1]\\d$/.test(v)\nconst lineStr = ' \\u2014 '\n\nfunction getMonthHash (date) {\n return date.year + '/' + pad(date.month)\n}\n\nexport default defineComponent({\n name: 'QDate',\n\n props: {\n ...useDatetimeProps,\n ...useFormProps,\n ...useDarkProps,\n\n multiple: Boolean,\n range: Boolean,\n\n title: String,\n subtitle: String,\n\n mask: {\n // this mask is forced\n // when using persian calendar\n default: 'YYYY/MM/DD'\n },\n\n defaultYearMonth: {\n type: String,\n validator: yearMonthValidator\n },\n\n yearsInMonthView: Boolean,\n\n events: [ Array, Function ],\n eventColor: [ String, Function ],\n\n emitImmediately: Boolean,\n\n options: [ Array, Function ],\n\n navigationMinYearMonth: {\n type: String,\n validator: yearMonthValidator\n },\n\n navigationMaxYearMonth: {\n type: String,\n validator: yearMonthValidator\n },\n\n noUnset: Boolean,\n\n firstDayOfWeek: [ String, Number ],\n todayBtn: Boolean,\n minimal: Boolean,\n defaultView: {\n type: String,\n default: 'Calendar',\n validator: viewIsValid\n }\n },\n\n emits: [\n ...useDatetimeEmits,\n 'range-start', 'range-end', 'navigation'\n ],\n\n setup (props, { slots, emit }) {\n const { proxy } = getCurrentInstance()\n const { $q } = proxy\n\n const isDark = useDark(props, $q)\n const { getCache } = useCache()\n const { tabindex, headerClass, getLocale, getCurrentDate } = useDatetime(props, $q)\n\n let lastEmitValue\n\n const formAttrs = useFormAttrs(props)\n const injectFormInput = useFormInject(formAttrs)\n\n const blurTargetRef = ref(null)\n const innerMask = ref(getMask())\n const innerLocale = ref(getLocale())\n\n const mask = computed(() => getMask())\n const locale = computed(() => getLocale())\n\n const today = computed(() => getCurrentDate())\n\n // model of current calendar view:\n const viewModel = ref(getViewModel(innerMask.value, innerLocale.value))\n\n const view = ref(props.defaultView)\n\n const direction = $q.lang.rtl === true ? 'right' : 'left'\n const monthDirection = ref(direction.value)\n const yearDirection = ref(direction.value)\n\n const year = viewModel.value.year\n const startYear = ref(year - (year % yearsInterval) - (year < 0 ? yearsInterval : 0))\n const editRange = ref(null)\n\n const classes = computed(() => {\n const type = props.landscape === true ? 'landscape' : 'portrait'\n return `q-date q-date--${ type } q-date--${ type }-${ props.minimal === true ? 'minimal' : 'standard' }`\n + (isDark.value === true ? ' q-date--dark q-dark' : '')\n + (props.bordered === true ? ' q-date--bordered' : '')\n + (props.square === true ? ' q-date--square no-border-radius' : '')\n + (props.flat === true ? ' q-date--flat no-shadow' : '')\n + (props.disable === true ? ' disabled' : (props.readonly === true ? ' q-date--readonly' : ''))\n })\n\n const computedColor = computed(() => {\n return props.color || 'primary'\n })\n\n const computedTextColor = computed(() => {\n return props.textColor || 'white'\n })\n\n const isImmediate = computed(() =>\n props.emitImmediately === true\n && props.multiple !== true\n && props.range !== true\n )\n\n const normalizedModel = computed(() => (\n Array.isArray(props.modelValue) === true\n ? props.modelValue\n : (props.modelValue !== null && props.modelValue !== void 0 ? [ props.modelValue ] : [])\n ))\n\n const daysModel = computed(() =>\n normalizedModel.value\n .filter(date => typeof date === 'string')\n .map(date => decodeString(date, innerMask.value, innerLocale.value))\n .filter(date => date.dateHash !== null)\n )\n\n const rangeModel = computed(() => {\n const fn = date => decodeString(date, innerMask.value, innerLocale.value)\n return normalizedModel.value\n .filter(date => Object(date) === date && date.from !== void 0 && date.to !== void 0)\n .map(range => ({ from: fn(range.from), to: fn(range.to) }))\n .filter(range => range.from.dateHash !== null && range.to.dateHash !== null && range.from.dateHash < range.to.dateHash)\n })\n\n const getNativeDateFn = computed(() => (\n props.calendar !== 'persian'\n ? model => new Date(model.year, model.month - 1, model.day)\n : model => {\n const gDate = toGregorian(model.year, model.month, model.day)\n return new Date(gDate.gy, gDate.gm - 1, gDate.gd)\n }\n ))\n\n const encodeObjectFn = computed(() => (\n props.calendar === 'persian'\n ? getDayHash\n : (date, mask, locale) => formatDate(\n new Date(\n date.year,\n date.month - 1,\n date.day,\n date.hour,\n date.minute,\n date.second,\n date.millisecond\n ),\n mask === void 0 ? innerMask.value : mask,\n locale === void 0 ? innerLocale.value : locale,\n date.year,\n date.timezoneOffset\n )\n ))\n\n const daysInModel = computed(() =>\n daysModel.value.length + rangeModel.value.reduce(\n (acc, range) => acc + 1 + getDateDiff(\n getNativeDateFn.value(range.to),\n getNativeDateFn.value(range.from)\n ),\n 0\n )\n )\n\n const headerTitle = computed(() => {\n if (props.title !== void 0 && props.title !== null && props.title.length > 0) {\n return props.title\n }\n\n if (editRange.value !== null) {\n const model = editRange.value.init\n const date = getNativeDateFn.value(model)\n\n return innerLocale.value.daysShort[ date.getDay() ] + ', '\n + innerLocale.value.monthsShort[ model.month - 1 ] + ' '\n + model.day + lineStr + '?'\n }\n\n if (daysInModel.value === 0) {\n return lineStr\n }\n\n if (daysInModel.value > 1) {\n return `${ daysInModel.value } ${ innerLocale.value.pluralDay }`\n }\n\n const model = daysModel.value[ 0 ]\n const date = getNativeDateFn.value(model)\n\n if (isNaN(date.valueOf()) === true) {\n return lineStr\n }\n\n if (innerLocale.value.headerTitle !== void 0) {\n return innerLocale.value.headerTitle(date, model)\n }\n\n return innerLocale.value.daysShort[ date.getDay() ] + ', '\n + innerLocale.value.monthsShort[ model.month - 1 ] + ' '\n + model.day\n })\n\n const minSelectedModel = computed(() => {\n const model = daysModel.value.concat(rangeModel.value.map(range => range.from))\n .sort((a, b) => a.year - b.year || a.month - b.month)\n\n return model[ 0 ]\n })\n\n const maxSelectedModel = computed(() => {\n const model = daysModel.value.concat(rangeModel.value.map(range => range.to))\n .sort((a, b) => b.year - a.year || b.month - a.month)\n\n return model[ 0 ]\n })\n\n const headerSubtitle = computed(() => {\n if (props.subtitle !== void 0 && props.subtitle !== null && props.subtitle.length > 0) {\n return props.subtitle\n }\n\n if (daysInModel.value === 0) {\n return lineStr\n }\n\n if (daysInModel.value > 1) {\n const from = minSelectedModel.value\n const to = maxSelectedModel.value\n const month = innerLocale.value.monthsShort\n\n return month[ from.month - 1 ] + (\n from.year !== to.year\n ? ' ' + from.year + lineStr + month[ to.month - 1 ] + ' '\n : (\n from.month !== to.month\n ? lineStr + month[ to.month - 1 ]\n : ''\n )\n ) + ' ' + to.year\n }\n\n return daysModel.value[ 0 ].year\n })\n\n const dateArrow = computed(() => {\n const val = [ $q.iconSet.datetime.arrowLeft, $q.iconSet.datetime.arrowRight ]\n return $q.lang.rtl === true ? val.reverse() : val\n })\n\n const computedFirstDayOfWeek = computed(() => (\n props.firstDayOfWeek !== void 0\n ? Number(props.firstDayOfWeek)\n : innerLocale.value.firstDayOfWeek\n ))\n\n const daysOfWeek = computed(() => {\n const\n days = innerLocale.value.daysShort,\n first = computedFirstDayOfWeek.value\n\n return first > 0\n ? days.slice(first, 7).concat(days.slice(0, first))\n : days\n })\n\n const daysInMonth = computed(() => {\n const date = viewModel.value\n return props.calendar !== 'persian'\n ? (new Date(date.year, date.month, 0)).getDate()\n : jalaaliMonthLength(date.year, date.month)\n })\n\n const evtColor = computed(() => (\n typeof props.eventColor === 'function'\n ? props.eventColor\n : () => props.eventColor\n ))\n\n const minNav = computed(() => {\n if (props.navigationMinYearMonth === void 0) {\n return null\n }\n\n const data = props.navigationMinYearMonth.split('/')\n return { year: parseInt(data[ 0 ], 10), month: parseInt(data[ 1 ], 10) }\n })\n\n const maxNav = computed(() => {\n if (props.navigationMaxYearMonth === void 0) {\n return null\n }\n\n const data = props.navigationMaxYearMonth.split('/')\n return { year: parseInt(data[ 0 ], 10), month: parseInt(data[ 1 ], 10) }\n })\n\n const navBoundaries = computed(() => {\n const data = {\n month: { prev: true, next: true },\n year: { prev: true, next: true }\n }\n\n if (minNav.value !== null && minNav.value.year >= viewModel.value.year) {\n data.year.prev = false\n if (minNav.value.year === viewModel.value.year && minNav.value.month >= viewModel.value.month) {\n data.month.prev = false\n }\n }\n\n if (maxNav.value !== null && maxNav.value.year <= viewModel.value.year) {\n data.year.next = false\n if (maxNav.value.year === viewModel.value.year && maxNav.value.month <= viewModel.value.month) {\n data.month.next = false\n }\n }\n\n return data\n })\n\n const daysMap = computed(() => {\n const map = {}\n\n daysModel.value.forEach(entry => {\n const hash = getMonthHash(entry)\n\n if (map[ hash ] === void 0) {\n map[ hash ] = []\n }\n\n map[ hash ].push(entry.day)\n })\n\n return map\n })\n\n const rangeMap = computed(() => {\n const map = {}\n\n rangeModel.value.forEach(entry => {\n const hashFrom = getMonthHash(entry.from)\n const hashTo = getMonthHash(entry.to)\n\n if (map[ hashFrom ] === void 0) {\n map[ hashFrom ] = []\n }\n\n map[ hashFrom ].push({\n from: entry.from.day,\n to: hashFrom === hashTo ? entry.to.day : void 0,\n range: entry\n })\n\n if (hashFrom < hashTo) {\n let hash\n const { year, month } = entry.from\n const cur = month < 12\n ? { year, month: month + 1 }\n : { year: year + 1, month: 1 }\n\n while ((hash = getMonthHash(cur)) <= hashTo) {\n if (map[ hash ] === void 0) {\n map[ hash ] = []\n }\n\n map[ hash ].push({\n from: void 0,\n to: hash === hashTo ? entry.to.day : void 0,\n range: entry\n })\n\n cur.month++\n if (cur.month > 12) {\n cur.year++\n cur.month = 1\n }\n }\n }\n })\n\n return map\n })\n\n const rangeView = computed(() => {\n if (editRange.value === null) {\n return\n }\n\n const { init, initHash, final, finalHash } = editRange.value\n\n const [ from, to ] = initHash <= finalHash\n ? [ init, final ]\n : [ final, init ]\n\n const fromHash = getMonthHash(from)\n const toHash = getMonthHash(to)\n\n if (fromHash !== viewMonthHash.value && toHash !== viewMonthHash.value) {\n return\n }\n\n const view = {}\n\n if (fromHash === viewMonthHash.value) {\n view.from = from.day\n view.includeFrom = true\n }\n else {\n view.from = 1\n }\n\n if (toHash === viewMonthHash.value) {\n view.to = to.day\n view.includeTo = true\n }\n else {\n view.to = daysInMonth.value\n }\n\n return view\n })\n\n const viewMonthHash = computed(() => getMonthHash(viewModel.value))\n\n const selectionDaysMap = computed(() => {\n const map = {}\n\n if (props.options === void 0) {\n for (let i = 1; i <= daysInMonth.value; i++) {\n map[ i ] = true\n }\n\n return map\n }\n\n const fn = typeof props.options === 'function'\n ? props.options\n : date => props.options.includes(date)\n\n for (let i = 1; i <= daysInMonth.value; i++) {\n const dayHash = viewMonthHash.value + '/' + pad(i)\n map[ i ] = fn(dayHash)\n }\n\n return map\n })\n\n const eventDaysMap = computed(() => {\n const map = {}\n\n if (props.events === void 0) {\n for (let i = 1; i <= daysInMonth.value; i++) {\n map[ i ] = false\n }\n }\n else {\n const fn = typeof props.events === 'function'\n ? props.events\n : date => props.events.includes(date)\n\n for (let i = 1; i <= daysInMonth.value; i++) {\n const dayHash = viewMonthHash.value + '/' + pad(i)\n map[ i ] = fn(dayHash) === true && evtColor.value(dayHash)\n }\n }\n\n return map\n })\n\n const viewDays = computed(() => {\n let date, endDay\n const { year, month } = viewModel.value\n\n if (props.calendar !== 'persian') {\n date = new Date(year, month - 1, 1)\n endDay = (new Date(year, month - 1, 0)).getDate()\n }\n else {\n const gDate = toGregorian(year, month, 1)\n date = new Date(gDate.gy, gDate.gm - 1, gDate.gd)\n let prevJM = month - 1\n let prevJY = year\n if (prevJM === 0) {\n prevJM = 12\n prevJY--\n }\n endDay = jalaaliMonthLength(prevJY, prevJM)\n }\n\n return {\n days: date.getDay() - computedFirstDayOfWeek.value - 1,\n endDay\n }\n })\n\n const days = computed(() => {\n const res = []\n const { days, endDay } = viewDays.value\n\n const len = days < 0 ? days + 7 : days\n if (len < 6) {\n for (let i = endDay - len; i <= endDay; i++) {\n res.push({ i, fill: true })\n }\n }\n\n const index = res.length\n\n for (let i = 1; i <= daysInMonth.value; i++) {\n const day = { i, event: eventDaysMap.value[ i ], classes: [] }\n\n if (selectionDaysMap.value[ i ] === true) {\n day.in = true\n day.flat = true\n }\n\n res.push(day)\n }\n\n // if current view has days in model\n if (daysMap.value[ viewMonthHash.value ] !== void 0) {\n daysMap.value[ viewMonthHash.value ].forEach(day => {\n const i = index + day - 1\n Object.assign(res[ i ], {\n selected: true,\n unelevated: true,\n flat: false,\n color: computedColor.value,\n textColor: computedTextColor.value\n })\n })\n }\n\n // if current view has ranges in model\n if (rangeMap.value[ viewMonthHash.value ] !== void 0) {\n rangeMap.value[ viewMonthHash.value ].forEach(entry => {\n if (entry.from !== void 0) {\n const from = index + entry.from - 1\n const to = index + (entry.to || daysInMonth.value) - 1\n\n for (let day = from; day <= to; day++) {\n Object.assign(res[ day ], {\n range: entry.range,\n unelevated: true,\n color: computedColor.value,\n textColor: computedTextColor.value\n })\n }\n\n Object.assign(res[ from ], {\n rangeFrom: true,\n flat: false\n })\n\n entry.to !== void 0 && Object.assign(res[ to ], {\n rangeTo: true,\n flat: false\n })\n }\n else if (entry.to !== void 0) {\n const to = index + entry.to - 1\n\n for (let day = index; day <= to; day++) {\n Object.assign(res[ day ], {\n range: entry.range,\n unelevated: true,\n color: computedColor.value,\n textColor: computedTextColor.value\n })\n }\n\n Object.assign(res[ to ], {\n flat: false,\n rangeTo: true\n })\n }\n else {\n const to = index + daysInMonth.value - 1\n for (let day = index; day <= to; day++) {\n Object.assign(res[ day ], {\n range: entry.range,\n unelevated: true,\n color: computedColor.value,\n textColor: computedTextColor.value\n })\n }\n }\n })\n }\n\n if (rangeView.value !== void 0) {\n const from = index + rangeView.value.from - 1\n const to = index + rangeView.value.to - 1\n\n for (let day = from; day <= to; day++) {\n res[ day ].color = computedColor.value\n res[ day ].editRange = true\n }\n\n if (rangeView.value.includeFrom === true) {\n res[ from ].editRangeFrom = true\n }\n if (rangeView.value.includeTo === true) {\n res[ to ].editRangeTo = true\n }\n }\n\n if (viewModel.value.year === today.value.year && viewModel.value.month === today.value.month) {\n res[ index + today.value.day - 1 ].today = true\n }\n\n const left = res.length % 7\n if (left > 0) {\n const afterDays = 7 - left\n for (let i = 1; i <= afterDays; i++) {\n res.push({ i, fill: true })\n }\n }\n\n res.forEach(day => {\n let cls = 'q-date__calendar-item '\n\n if (day.fill === true) {\n cls += 'q-date__calendar-item--fill'\n }\n else {\n cls += `q-date__calendar-item--${ day.in === true ? 'in' : 'out' }`\n\n if (day.range !== void 0) {\n cls += ` q-date__range${ day.rangeTo === true ? '-to' : (day.rangeFrom === true ? '-from' : '') }`\n }\n\n if (day.editRange === true) {\n cls += ` q-date__edit-range${ day.editRangeFrom === true ? '-from' : '' }${ day.editRangeTo === true ? '-to' : '' }`\n }\n\n if (day.range !== void 0 || day.editRange === true) {\n cls += ` text-${ day.color }`\n }\n }\n\n day.classes = cls\n })\n\n return res\n })\n\n const attributes = computed(() => (\n props.disable === true\n ? { 'aria-disabled': 'true' }\n : (props.readonly === true ? { 'aria-readonly': 'true' } : {})\n ))\n\n watch(() => props.modelValue, v => {\n if (lastEmitValue === v) {\n lastEmitValue = 0\n }\n else {\n const { year, month } = getViewModel(innerMask.value, innerLocale.value)\n updateViewModel(year, month)\n }\n })\n\n watch(view, () => {\n blurTargetRef.value !== null && blurTargetRef.value.focus()\n })\n\n watch(() => viewModel.value.year, year => {\n emit('navigation', { year, month: viewModel.value.month })\n })\n\n watch(() => viewModel.value.month, month => {\n emit('navigation', { year: viewModel.value.year, month })\n })\n\n watch(mask, val => {\n updateValue(val, innerLocale.value, 'mask')\n innerMask.value = val\n })\n\n watch(locale, val => {\n updateValue(innerMask.value, val, 'locale')\n innerLocale.value = val\n })\n\n function setToday () {\n toggleDate(today.value, getMonthHash(today.value))\n setCalendarTo(today.value.year, today.value.month)\n }\n\n function setView (viewMode) {\n if (viewIsValid(viewMode) === true) {\n view.value = viewMode\n }\n }\n\n function offsetCalendar (type, descending) {\n if ([ 'month', 'year' ].includes(type)) {\n const fn = type === 'month' ? goToMonth : goToYear\n fn(descending === true ? -1 : 1)\n }\n }\n\n function setCalendarTo (year, month) {\n view.value = 'Calendar'\n updateViewModel(year, month)\n }\n\n function setEditingRange (from, to) {\n if (props.range === false || !from) {\n editRange.value = null\n return\n }\n\n const init = Object.assign({ ...viewModel.value }, from)\n const final = to !== void 0\n ? Object.assign({ ...viewModel.value }, to)\n : init\n\n editRange.value = {\n init,\n initHash: getDayHash(init),\n final,\n finalHash: getDayHash(final)\n }\n\n setCalendarTo(init.year, init.month)\n }\n\n function getMask () {\n return props.calendar === 'persian' ? 'YYYY/MM/DD' : props.mask\n }\n\n function decodeString (date, mask, locale) {\n return __splitDate(\n date,\n mask,\n locale,\n props.calendar,\n {\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0\n }\n )\n }\n\n function getViewModel (mask, locale) {\n const model = Array.isArray(props.modelValue) === true\n ? props.modelValue\n : (props.modelValue ? [ props.modelValue ] : [])\n\n if (model.length === 0) {\n return getDefaultViewModel()\n }\n\n const decoded = decodeString(\n model[ 0 ].from !== void 0 ? model[ 0 ].from : model[ 0 ],\n mask,\n locale\n )\n\n return decoded.dateHash === null\n ? getDefaultViewModel()\n : decoded\n }\n\n function getDefaultViewModel () {\n let year, month\n\n if (props.defaultYearMonth !== void 0) {\n const d = props.defaultYearMonth.split('/')\n year = parseInt(d[ 0 ], 10)\n month = parseInt(d[ 1 ], 10)\n }\n else {\n // may come from data() where computed\n // props are not yet available\n const d = today.value !== void 0\n ? today.value\n : getCurrentDate()\n\n year = d.year\n month = d.month\n }\n\n return {\n year,\n month,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n dateHash: year + '/' + pad(month) + '/01'\n }\n }\n\n function goToMonth (offset) {\n let year = viewModel.value.year\n let month = Number(viewModel.value.month) + offset\n\n if (month === 13) {\n month = 1\n year++\n }\n else if (month === 0) {\n month = 12\n year--\n }\n\n updateViewModel(year, month)\n isImmediate.value === true && emitImmediately('month')\n }\n\n function goToYear (offset) {\n const year = Number(viewModel.value.year) + offset\n updateViewModel(year, viewModel.value.month)\n isImmediate.value === true && emitImmediately('year')\n }\n\n function setYear (year) {\n updateViewModel(year, viewModel.value.month)\n view.value = props.defaultView === 'Years' ? 'Months' : 'Calendar'\n isImmediate.value === true && emitImmediately('year')\n }\n\n function setMonth (month) {\n updateViewModel(viewModel.value.year, month)\n view.value = 'Calendar'\n isImmediate.value === true && emitImmediately('month')\n }\n\n function toggleDate (date, monthHash) {\n const month = daysMap.value[ monthHash ]\n const fn = month !== void 0 && month.includes(date.day) === true\n ? removeFromModel\n : addToModel\n\n fn(date)\n }\n\n function getShortDate (date) {\n return { year: date.year, month: date.month, day: date.day }\n }\n\n function updateViewModel (year, month) {\n if (minNav.value !== null && year <= minNav.value.year) {\n year = minNav.value.year\n if (month < minNav.value.month) {\n month = minNav.value.month\n }\n }\n\n if (maxNav.value !== null && year >= maxNav.value.year) {\n year = maxNav.value.year\n if (month > maxNav.value.month) {\n month = maxNav.value.month\n }\n }\n\n const newHash = year + '/' + pad(month) + '/01'\n\n if (newHash !== viewModel.value.dateHash) {\n monthDirection.value = (viewModel.value.dateHash < newHash) === ($q.lang.rtl !== true) ? 'left' : 'right'\n if (year !== viewModel.value.year) {\n yearDirection.value = monthDirection.value\n }\n\n nextTick(() => {\n startYear.value = year - year % yearsInterval - (year < 0 ? yearsInterval : 0)\n Object.assign(viewModel.value, {\n year,\n month,\n day: 1,\n dateHash: newHash\n })\n })\n }\n }\n\n function emitValue (val, action, date) {\n const value = val !== null && val.length === 1 && props.multiple === false\n ? val[ 0 ]\n : val\n\n lastEmitValue = value\n\n const { reason, details } = getEmitParams(action, date)\n emit('update:modelValue', value, reason, details)\n }\n\n function emitImmediately (reason) {\n const date = daysModel.value[ 0 ] !== void 0 && daysModel.value[ 0 ].dateHash !== null\n ? { ...daysModel.value[ 0 ] }\n : { ...viewModel.value } // inherit day, hours, minutes, milliseconds...\n\n // nextTick required because of animation delay in viewModel\n nextTick(() => {\n date.year = viewModel.value.year\n date.month = viewModel.value.month\n\n const maxDay = props.calendar !== 'persian'\n ? (new Date(date.year, date.month, 0)).getDate()\n : jalaaliMonthLength(date.year, date.month)\n\n date.day = Math.min(Math.max(1, date.day), maxDay)\n\n const value = encodeEntry(date)\n lastEmitValue = value\n\n const { details } = getEmitParams('', date)\n emit('update:modelValue', value, reason, details)\n })\n }\n\n function getEmitParams (action, date) {\n return date.from !== void 0\n ? {\n reason: `${ action }-range`,\n details: {\n ...getShortDate(date.target),\n from: getShortDate(date.from),\n to: getShortDate(date.to)\n }\n }\n : {\n reason: `${ action }-day`,\n details: getShortDate(date)\n }\n }\n\n function encodeEntry (date, mask, locale) {\n return date.from !== void 0\n ? { from: encodeObjectFn.value(date.from, mask, locale), to: encodeObjectFn.value(date.to, mask, locale) }\n : encodeObjectFn.value(date, mask, locale)\n }\n\n function addToModel (date) {\n let value\n\n if (props.multiple === true) {\n if (date.from !== void 0) {\n // we also need to filter out intersections\n\n const fromHash = getDayHash(date.from)\n const toHash = getDayHash(date.to)\n\n const days = daysModel.value\n .filter(day => day.dateHash < fromHash || day.dateHash > toHash)\n\n const ranges = rangeModel.value\n .filter(({ from, to }) => to.dateHash < fromHash || from.dateHash > toHash)\n\n value = days.concat(ranges).concat(date).map(entry => encodeEntry(entry))\n }\n else {\n const model = normalizedModel.value.slice()\n model.push(encodeEntry(date))\n value = model\n }\n }\n else {\n value = encodeEntry(date)\n }\n\n emitValue(value, 'add', date)\n }\n\n function removeFromModel (date) {\n if (props.noUnset === true) {\n return\n }\n\n let model = null\n\n if (props.multiple === true && Array.isArray(props.modelValue) === true) {\n const val = encodeEntry(date)\n\n if (date.from !== void 0) {\n model = props.modelValue.filter(\n date => (\n date.from !== void 0\n ? (date.from !== val.from && date.to !== val.to)\n : true\n )\n )\n }\n else {\n model = props.modelValue.filter(date => date !== val)\n }\n\n if (model.length === 0) {\n model = null\n }\n }\n\n emitValue(model, 'remove', date)\n }\n\n function updateValue (mask, locale, reason) {\n const model = daysModel.value\n .concat(rangeModel.value)\n .map(entry => encodeEntry(entry, mask, locale))\n .filter(entry => {\n return entry.from !== void 0\n ? entry.from.dateHash !== null && entry.to.dateHash !== null\n : entry.dateHash !== null\n })\n\n emit('update:modelValue', (props.multiple === true ? model : model[ 0 ]) || null, reason)\n }\n\n // expose public methods\n Object.assign(proxy, {\n setToday, setView, offsetCalendar, setCalendarTo, setEditingRange\n })\n\n function getHeader () {\n if (props.minimal === true) { return }\n\n return h('div', {\n class: 'q-date__header ' + headerClass.value\n }, [\n h('div', {\n class: 'relative-position'\n }, [\n h(Transition, {\n name: 'q-transition--fade'\n }, () => h('div', {\n key: 'h-yr-' + headerSubtitle.value,\n class: 'q-date__header-subtitle q-date__header-link '\n + (view.value === 'Years' ? 'q-date__header-link--active' : 'cursor-pointer'),\n tabindex: tabindex.value,\n ...getCache('vY', {\n onClick () { view.value = 'Years' },\n onKeyup (e) { e.keyCode === 13 && (view.value = 'Years') }\n })\n }, [ headerSubtitle.value ]))\n ]),\n\n h('div', {\n class: 'q-date__header-title relative-position flex no-wrap'\n }, [\n h('div', {\n class: 'relative-position col'\n }, [\n h(Transition, {\n name: 'q-transition--fade'\n }, () => h('div', {\n key: 'h-sub' + headerTitle.value,\n class: 'q-date__header-title-label q-date__header-link '\n + (view.value === 'Calendar' ? 'q-date__header-link--active' : 'cursor-pointer'),\n tabindex: tabindex.value,\n ...getCache('vC', {\n onClick () { view.value = 'Calendar' },\n onKeyup (e) { e.keyCode === 13 && (view.value = 'Calendar') }\n })\n }, [ headerTitle.value ]))\n ]),\n\n props.todayBtn === true ? h(QBtn, {\n class: 'q-date__header-today self-start',\n icon: $q.iconSet.datetime.today,\n flat: true,\n size: 'sm',\n round: true,\n tabindex: tabindex.value,\n onClick: setToday\n }) : null\n ])\n ])\n }\n\n function getNavigation ({ label, type, key, dir, goTo, boundaries, cls }) {\n return [\n h('div', {\n class: 'row items-center q-date__arrow'\n }, [\n h(QBtn, {\n round: true,\n dense: true,\n size: 'sm',\n flat: true,\n icon: dateArrow.value[ 0 ],\n tabindex: tabindex.value,\n disable: boundaries.prev === false,\n ...getCache('go-#' + type, { onClick () { goTo(-1) } })\n })\n ]),\n\n h('div', {\n class: 'relative-position overflow-hidden flex flex-center' + cls\n }, [\n h(Transition, {\n name: 'q-transition--jump-' + dir\n }, () => h('div', { key }, [\n h(QBtn, {\n flat: true,\n dense: true,\n noCaps: true,\n label,\n tabindex: tabindex.value,\n ...getCache('view#' + type, { onClick: () => { view.value = type } })\n })\n ]))\n ]),\n\n h('div', {\n class: 'row items-center q-date__arrow'\n }, [\n h(QBtn, {\n round: true,\n dense: true,\n size: 'sm',\n flat: true,\n icon: dateArrow.value[ 1 ],\n tabindex: tabindex.value,\n disable: boundaries.next === false,\n ...getCache('go+#' + type, { onClick () { goTo(1) } })\n })\n ])\n ]\n }\n\n const renderViews = {\n Calendar: () => ([\n h('div', {\n key: 'calendar-view',\n class: 'q-date__view q-date__calendar'\n }, [\n h('div', {\n class: 'q-date__navigation row items-center no-wrap'\n }, getNavigation({\n label: innerLocale.value.months[ viewModel.value.month - 1 ],\n type: 'Months',\n key: viewModel.value.month,\n dir: monthDirection.value,\n goTo: goToMonth,\n boundaries: navBoundaries.value.month,\n cls: ' col'\n }).concat(getNavigation({\n label: viewModel.value.year,\n type: 'Years',\n key: viewModel.value.year,\n dir: yearDirection.value,\n goTo: goToYear,\n boundaries: navBoundaries.value.year,\n cls: ''\n }))),\n\n h('div', {\n class: 'q-date__calendar-weekdays row items-center no-wrap'\n }, daysOfWeek.value.map(day => h('div', { class: 'q-date__calendar-item' }, [ h('div', day) ]))),\n\n h('div', {\n class: 'q-date__calendar-days-container relative-position overflow-hidden'\n }, [\n h(Transition, {\n name: 'q-transition--slide-' + monthDirection.value\n }, () => h('div', {\n key: viewMonthHash.value,\n class: 'q-date__calendar-days fit'\n }, days.value.map(day => h('div', { class: day.classes }, [\n day.in === true\n ? h(\n QBtn, {\n class: day.today === true ? 'q-date__today' : '',\n dense: true,\n flat: day.flat,\n unelevated: day.unelevated,\n color: day.color,\n textColor: day.textColor,\n label: day.i,\n tabindex: tabindex.value,\n ...getCache('day#' + day.i, {\n onClick: () => { onDayClick(day.i) },\n onMouseover: () => { onDayMouseover(day.i) }\n })\n },\n day.event !== false\n ? () => h('div', { class: 'q-date__event bg-' + day.event })\n : null\n )\n : h('div', '' + day.i)\n ]))))\n ])\n ])\n ]),\n\n Months () {\n const currentYear = viewModel.value.year === today.value.year\n const isDisabled = month => {\n return (\n (minNav.value !== null && viewModel.value.year === minNav.value.year && minNav.value.month > month)\n || (maxNav.value !== null && viewModel.value.year === maxNav.value.year && maxNav.value.month < month)\n )\n }\n\n const content = innerLocale.value.monthsShort.map((month, i) => {\n const active = viewModel.value.month === i + 1\n\n return h('div', {\n class: 'q-date__months-item flex flex-center'\n }, [\n h(QBtn, {\n class: currentYear === true && today.value.month === i + 1 ? 'q-date__today' : null,\n flat: active !== true,\n label: month,\n unelevated: active,\n color: active === true ? computedColor.value : null,\n textColor: active === true ? computedTextColor.value : null,\n tabindex: tabindex.value,\n disable: isDisabled(i + 1),\n ...getCache('month#' + i, { onClick: () => { setMonth(i + 1) } })\n })\n ])\n })\n\n props.yearsInMonthView === true && content.unshift(\n h('div', { class: 'row no-wrap full-width' }, [\n getNavigation({\n label: viewModel.value.year,\n type: 'Years',\n key: viewModel.value.year,\n dir: yearDirection.value,\n goTo: goToYear,\n boundaries: navBoundaries.value.year,\n cls: ' col'\n })\n ])\n )\n\n return h('div', {\n key: 'months-view',\n class: 'q-date__view q-date__months flex flex-center'\n }, content)\n },\n\n Years () {\n const\n start = startYear.value,\n stop = start + yearsInterval,\n years = []\n\n const isDisabled = year => {\n return (\n (minNav.value !== null && minNav.value.year > year)\n || (maxNav.value !== null && maxNav.value.year < year)\n )\n }\n\n for (let i = start; i <= stop; i++) {\n const active = viewModel.value.year === i\n\n years.push(\n h('div', {\n class: 'q-date__years-item flex flex-center'\n }, [\n h(QBtn, {\n key: 'yr' + i,\n class: today.value.year === i ? 'q-date__today' : null,\n flat: !active,\n label: i,\n dense: true,\n unelevated: active,\n color: active === true ? computedColor.value : null,\n textColor: active === true ? computedTextColor.value : null,\n tabindex: tabindex.value,\n disable: isDisabled(i),\n ...getCache('yr#' + i, { onClick: () => { setYear(i) } })\n })\n ])\n )\n }\n\n return h('div', {\n class: 'q-date__view q-date__years flex flex-center'\n }, [\n h('div', {\n class: 'col-auto'\n }, [\n h(QBtn, {\n round: true,\n dense: true,\n flat: true,\n icon: dateArrow.value[ 0 ],\n tabindex: tabindex.value,\n disable: isDisabled(start),\n ...getCache('y-', { onClick: () => { startYear.value -= yearsInterval } })\n })\n ]),\n\n h('div', {\n class: 'q-date__years-content col self-stretch row items-center'\n }, years),\n\n h('div', {\n class: 'col-auto'\n }, [\n h(QBtn, {\n round: true,\n dense: true,\n flat: true,\n icon: dateArrow.value[ 1 ],\n tabindex: tabindex.value,\n disable: isDisabled(stop),\n ...getCache('y+', { onClick: () => { startYear.value += yearsInterval } })\n })\n ])\n ])\n }\n }\n\n function onDayClick (dayIndex) {\n const day = { ...viewModel.value, day: dayIndex }\n\n if (props.range === false) {\n toggleDate(day, viewMonthHash.value)\n return\n }\n\n if (editRange.value === null) {\n const dayProps = days.value.find(day => day.fill !== true && day.i === dayIndex)\n\n if (dayProps.range !== void 0) {\n removeFromModel({ target: day, from: dayProps.range.from, to: dayProps.range.to })\n return\n }\n\n if (dayProps.selected === true) {\n removeFromModel(day)\n return\n }\n\n const initHash = getDayHash(day)\n\n editRange.value = {\n init: day,\n initHash,\n final: day,\n finalHash: initHash\n }\n\n emit('range-start', getShortDate(day))\n }\n else {\n const\n initHash = editRange.value.initHash,\n finalHash = getDayHash(day),\n payload = initHash <= finalHash\n ? { from: editRange.value.init, to: day }\n : { from: day, to: editRange.value.init }\n\n editRange.value = null\n addToModel(initHash === finalHash ? day : { target: day, ...payload })\n\n emit('range-end', {\n from: getShortDate(payload.from),\n to: getShortDate(payload.to)\n })\n }\n }\n\n function onDayMouseover (dayIndex) {\n if (editRange.value !== null) {\n const final = { ...viewModel.value, day: dayIndex }\n\n Object.assign(editRange.value, {\n final,\n finalHash: getDayHash(final)\n })\n }\n }\n\n return () => {\n const content = [\n h('div', {\n class: 'q-date__content col relative-position'\n }, [\n h(Transition, {\n name: 'q-transition--fade'\n }, renderViews[ view.value ])\n ])\n ]\n\n const def = hSlot(slots.default)\n def !== void 0 && content.push(\n h('div', { class: 'q-date__actions' }, def)\n )\n\n if (props.name !== void 0 && props.disable !== true) {\n injectFormInput(content, 'push')\n }\n\n return h('div', {\n class: classes.value,\n ...attributes.value\n }, [\n getHeader(),\n\n h('div', {\n ref: blurTargetRef,\n class: 'q-date__main col column',\n tabindex: -1\n }, content)\n ])\n }\n }\n})\n","import { ref, watch, onBeforeUnmount } from 'vue'\n\nimport { listenOpts } from '../../utils/event.js'\n\nexport default function (\n props,\n configureScrollTarget\n) {\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 { ref, watch, onMounted, onBeforeUnmount, nextTick, getCurrentInstance } from 'vue'\n\nimport { clearSelection } from '../../utils/private/selection.js'\nimport { addEvt, cleanEvt, prevent } from '../../utils/event.js'\nimport { isKeyCode } from '../../utils/private/key-composition.js'\n\nexport const useAnchorProps = {\n target: {\n default: true\n },\n noParentEvent: Boolean,\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\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 },\n\n toggleKey (evt) {\n isKeyCode(evt, 13) === true && proxy.toggle(evt)\n },\n\n contextClick (evt) {\n proxy.hide(evt)\n nextTick(() => { proxy.show(evt) })\n prevent(evt)\n },\n\n mobilePrevent: 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', 'mobilePrevent', 'notPassive' ]\n ])\n\n touchTimer = setTimeout(() => {\n proxy.show(evt)\n }, 300)\n },\n\n mobileCleanup (evt) {\n anchorEl.value.classList.remove('non-selectable')\n clearTimeout(touchTimer)\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, 'click', '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 === '') {\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 clearTimeout(touchTimer)\n unconfigureAnchorEl()\n })\n\n return {\n anchorEl,\n canShow,\n anchorEvents\n }\n}\n","import { h, defineComponent, ref, computed, getCurrentInstance } from 'vue'\n\nimport useDark, { useDarkProps } from '../../composables/private/use-dark.js'\nimport useRouterLink, { useRouterLinkProps } from '../../composables/private/use-router-link.js'\n\nimport { hUniqueSlot } from '../../utils/private/render.js'\nimport { stopAndPrevent } from '../../utils/event.js'\nimport { isKeyCode } from '../../utils/private/key-composition.js'\n\nexport default defineComponent({\n name: 'QItem',\n\n props: {\n ...useDarkProps,\n ...useRouterLinkProps,\n\n tag: {\n type: String,\n default: 'div'\n },\n\n active: Boolean,\n\n clickable: Boolean,\n dense: Boolean,\n insetLevel: Number,\n\n tabindex: [ String, Number ],\n\n focused: Boolean,\n manualFocus: Boolean\n },\n\n emits: [ 'click', 'keyup' ],\n\n setup (props, { slots, emit }) {\n const { proxy: { $q } } = getCurrentInstance()\n\n const isDark = useDark(props, $q)\n const { hasLink, linkProps, linkClass, linkTag, navigateToLink } = useRouterLink()\n\n const rootRef = ref(null)\n const blurTargetRef = ref(null)\n\n const isActionable = computed(() =>\n props.clickable === true\n || hasLink.value === true\n || props.tag === 'a'\n || props.tag === 'label'\n )\n\n const isClickable = computed(() =>\n props.disable !== true && isActionable.value === true\n )\n\n const classes = computed(() =>\n 'q-item q-item-type row no-wrap'\n + (props.dense === true ? ' q-item--dense' : '')\n + (isDark.value === true ? ' q-item--dark' : '')\n + (\n hasLink.value === true\n ? linkClass.value\n : (\n props.active === true\n ? `${ props.activeClass !== void 0 ? ` ${ props.activeClass }` : '' } q-item--active`\n : ''\n )\n )\n + (props.disable === true ? ' disabled' : '')\n + (\n isClickable.value === true\n ? ' q-item--clickable q-link cursor-pointer '\n + (props.manualFocus === true ? 'q-manual-focusable' : 'q-focusable q-hoverable')\n + (props.focused === true ? ' q-manual-focusable--focused' : '')\n : ''\n )\n )\n\n const style = computed(() => {\n if (props.insetLevel === void 0) {\n return null\n }\n\n const dir = $q.lang.rtl === true ? 'Right' : 'Left'\n return {\n [ 'padding' + dir ]: (16 + props.insetLevel * 56) + 'px'\n }\n })\n\n function onClick (e) {\n if (isClickable.value === true) {\n if (blurTargetRef.value !== null) {\n if (e.qKeyEvent !== true && document.activeElement === rootRef.value) {\n blurTargetRef.value.focus()\n }\n else if (document.activeElement === blurTargetRef.value) {\n rootRef.value.focus()\n }\n }\n\n hasLink.value === true && navigateToLink(e)\n emit('click', e)\n }\n }\n\n function onKeyup (e) {\n if (isClickable.value === true && isKeyCode(e, 13) === true) {\n stopAndPrevent(e)\n\n // for ripple\n e.qKeyEvent = true\n\n // for click trigger\n const evt = new MouseEvent('click', e)\n evt.qKeyEvent = true\n rootRef.value.dispatchEvent(evt)\n }\n\n emit('keyup', e)\n }\n\n function getContent () {\n const child = hUniqueSlot(slots.default, [])\n\n isClickable.value === true && child.unshift(\n h('div', { class: 'q-focus-helper', tabindex: -1, ref: blurTargetRef })\n )\n\n return child\n }\n\n return () => {\n const data = {\n ref: rootRef,\n class: classes.value,\n style: style.value,\n onClick,\n onKeyup\n }\n\n if (isClickable.value === true) {\n data.tabindex = props.tabindex || '0'\n Object.assign(data, linkProps.value)\n }\n else if (isActionable.value === true) {\n data[ 'aria-disabled' ] = 'true'\n }\n\n return h(\n linkTag.value,\n data,\n getContent()\n )\n }\n }\n})\n","import { listenOpts } from '../event.js'\n\nlet timer\n\nconst\n { notPassiveCapture } = listenOpts,\n registeredList = []\n\nfunction hasModalsAbove (node) {\n while ((node = node.nextElementSibling) !== null) {\n if (node.classList.contains('q-dialog--modal')) {\n return true\n }\n }\n\n return false\n}\n\nfunction globalHandler (evt) {\n clearTimeout(timer)\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 for (let i = registeredList.length - 1; i >= 0; i--) {\n const state = registeredList[ i ]\n if (\n (\n state.anchorEl.value === null\n || state.anchorEl.value.contains(target) === false\n )\n && (\n target === document.body\n || (state.innerRef.value !== null && state.innerRef.value.contains(target) === false)\n )\n && (\n state.getEl !== void 0\n ? hasModalsAbove(state.getEl()) !== true\n : true\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 clearTimeout(timer)\n document.removeEventListener('mousedown', globalHandler, notPassiveCapture)\n document.removeEventListener('touchstart', globalHandler, notPassiveCapture)\n }\n }\n}\n","import { closePortals, getPortalVm } from '../utils/private/portal.js'\nimport { isKeyCode } from '../utils/private/key-composition.js'\nimport getSSRProps from '../utils/private/noop-ssr-directive-transform.js'\n\n/*\n * depth\n * < 0 --> close all chain\n * 0 --> disabled\n * > 0 --> close chain up to N parent\n */\n\nfunction getDepth (value) {\n if (value === false) {\n return 0\n }\n if (value === true || value === void 0) {\n return 1\n }\n\n const depth = parseInt(value, 10)\n return isNaN(depth) ? 0 : depth\n}\n\nexport default __QUASAR_SSR_SERVER__\n ? { name: 'close-popup', getSSRProps }\n : {\n name: 'close-popup',\n\n beforeMount (el, { value }) {\n const ctx = {\n depth: getDepth(value),\n\n handler (evt) {\n // allow @click to be emitted\n ctx.depth !== 0 && setTimeout(() => {\n const vm = getPortalVm(el)\n if (vm !== void 0) {\n closePortals(vm, evt, ctx.depth)\n }\n })\n },\n\n handlerKey (evt) {\n isKeyCode(evt, 13) === true && ctx.handler(evt)\n }\n }\n\n el.__qclosepopup = ctx\n\n el.addEventListener('click', ctx.handler)\n el.addEventListener('keyup', ctx.handlerKey)\n },\n\n updated (el, { value, oldValue }) {\n if (value !== oldValue) {\n el.__qclosepopup.depth = getDepth(value)\n }\n },\n\n beforeUnmount (el) {\n const ctx = el.__qclosepopup\n el.removeEventListener('click', ctx.handler)\n el.removeEventListener('keyup', ctx.handlerKey)\n delete el.__qclosepopup\n }\n }\n","'use strict';\nvar $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar getIteratorDirect = require('../internals/get-iterator-direct');\n\nvar $TypeError = TypeError;\n\n// `Iterator.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-iterator.prototype.reduce\n$({ target: 'Iterator', proto: true, real: true }, {\n reduce: function reduce(reducer /* , initialValue */) {\n anObject(this);\n aCallable(reducer);\n var record = getIteratorDirect(this);\n var noInitial = arguments.length < 2;\n var accumulator = noInitial ? undefined : arguments[1];\n var counter = 0;\n iterate(record, function (value) {\n if (noInitial) {\n noInitial = false;\n accumulator = value;\n } else {\n accumulator = reducer(accumulator, value, counter);\n }\n counter++;\n }, { IS_RECORD: true });\n if (noInitial) throw new $TypeError('Reduce of empty iterator with no initial value');\n return accumulator;\n }\n});\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/vue-cli-plugin-quasar/lib/loader.vue.auto-import-quasar.js??ref--1-0!../../../../node_modules/cache-loader/dist/cjs.js??ref--1-1!../../../../node_modules/vue-loader-v16/dist/index.js??ref--1-2!./Button.vue?vue&type=style&index=1&id=bd910e9c&lang=css\"","'use strict';\nvar aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\nvar REDUCE_EMPTY = 'Reduce of empty array with no initial value';\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n aCallable(callbackfn);\n if (length === 0 && argumentsLength < 2) throw new $TypeError(REDUCE_EMPTY);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw new $TypeError(REDUCE_EMPTY);\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","\n \n \n \n\n\n\n\n\n\n","import { render } from \"./Button.vue?vue&type=template&id=bd910e9c\"\nimport script from \"./Button.vue?vue&type=script&lang=js\"\nexport * from \"./Button.vue?vue&type=script&lang=js\"\n\nimport \"./_button.scss?vue&type=style&index=0&lang=scss\"\nimport \"./Button.vue?vue&type=style&index=1&id=bd910e9c&lang=css\"\n\nimport exportComponent from \"/codebuild/output/src612567107/src/new-merchant-app/node_modules/vue-loader-v16/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__\nimport QBtn from 'quasar/src/components/btn/QBtn.js';\nimport qInstall from \"../../../../node_modules/vue-cli-plugin-quasar/lib/runtime.auto-import.js\";\nqInstall(script, 'components', {QBtn});\n","export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!./_button.scss?vue&type=style&index=0&lang=scss\"","import Platform from '../../plugins/Platform.js'\n\nexport function clearSelection () {\n if (window.getSelection !== void 0) {\n const selection = window.getSelection()\n if (selection.empty !== void 0) {\n selection.empty()\n }\n else if (selection.removeAllRanges !== void 0) {\n selection.removeAllRanges()\n Platform.is.mobile !== true && selection.addRange(document.createRange())\n }\n }\n else if (document.selection !== void 0) {\n document.selection.empty()\n }\n}\n","export default function () {\n const cache = new Map()\n\n return {\n getCache: __QUASAR_SSR_SERVER__\n ? function (_, obj) { return obj }\n : function (key, obj) {\n return cache[ key ] === void 0\n ? (cache[ key ] = obj)\n : cache[ key ]\n },\n\n getCacheWithFn: __QUASAR_SSR_SERVER__\n ? function (_, fn) { return fn() }\n : function (key, fn) {\n return cache[ key ] === void 0\n ? (cache[ key ] = fn())\n : cache[ key ]\n }\n }\n}\n"],"sourceRoot":""}