{"version":3,"sources":["webpack:///./node_modules/core-js/internals/string-pad.js","webpack:///./node_modules/core-js/modules/es.string.pad-start.js","webpack:///./node_modules/quasar/src/utils/private/date-persian.js","webpack:///./node_modules/quasar/src/components/date/use-datetime.js","webpack:///./node_modules/quasar/src/utils/date.js","webpack:///./node_modules/quasar/src/components/date/QDate.js","webpack:///./node_modules/quasar/src/components/popup-proxy/QPopupProxy.js","webpack:///./node_modules/core-js/internals/string-pad-webkit-bug.js","webpack:///./node_modules/quasar/src/components/table/QTr.js","webpack:///./node_modules/core-js/modules/es.array.fill.js","webpack:///./node_modules/quasar/src/components/table/QTd.js","webpack:///./node_modules/quasar/src/composables/private/use-cache.js"],"names":["toLength","toString","repeat","requireObjectCoercible","ceil","Math","createMethod","IS_END","$this","maxLength","fillString","fillLen","stringFiller","S","intMaxLength","stringLength","length","fillStr","undefined","call","slice","module","exports","start","end","$","$padStart","WEBKIT_BUG","target","proto","forced","padStart","this","arguments","breaks","toJalaali","gy","gm","gd","Object","prototype","getDate","getMonth","getFullYear","d2j","g2d","toGregorian","jy","jm","jd","d2g","j2d","isLeapJalaaliYear","jalCalLeap","jalaaliMonthLength","jump","leap","n","i","bl","jp","Error","div","mod","jalCal","withoutLeap","leapJ","leapG","march","r","jdn","k","jdn1f","d","j","a","b","calendars","useDatetimeProps","modelValue","required","mask","type","String","locale","calendar","validator","v","includes","default","landscape","Boolean","color","textColor","square","flat","bordered","readonly","disable","useDatetimeEmits","getDayHash","date","year","pad","month","day","props","$q","editable","computed","tabindex","headerClass","cls","push","join","getLocale","lang","getCurrentDate","dateOnly","Date","timeFill","jDate","hour","minute","second","millisecond","MILLISECONDS_IN_DAY","MILLISECONDS_IN_HOUR","MILLISECONDS_IN_MINUTE","defaultMask","token","reverseToken","regexStore","getRegexData","dateLocale","days","key","daysShort","months","monthsShort","map","index","regexText","replace","match","YY","YYYY","M","MMM","MMMM","D","H","h","m","s","A","aa","Z","ZZ","X","x","substring","res","regex","RegExp","__splitDate","str","defaultModel","timezoneOffset","dateHash","timeHash","assign","langOpts","tzString","stamp","parseInt","isNaN","getHours","getMinutes","getSeconds","getMilliseconds","y","indexOf","maxDay","formatTimezone","offset","delimeter","sign","absOffset","abs","hours","floor","minutes","getWeekOfYear","thursday","setDate","getDay","firstThursday","ds","getTimezoneOffset","setHours","weekDiff","startOfDate","unit","utc","t","prefix","getDiff","sub","interval","getTime","getDateDiff","subtract","getDayOfYear","getOrdinal","formatter","_","forcedYear","MM","Q","Qo","Do","DD","DDD","DDDD","dd","dddd","ddd","E","w","ww","HH","hh","mm","ss","SS","SSS","forcedTimezoneOffset","tzOffset","formatDate","val","__forcedYear","__forcedTimezoneOffset","Infinity","text","split","yearsInterval","views","viewIsValid","yearMonthValidator","test","lineStr","getMonthHash","defineComponent","name","useFormProps","useDarkProps","multiple","range","title","subtitle","defaultYearMonth","yearsInMonthView","events","Array","Function","eventColor","emitImmediately","options","navigationMinYearMonth","navigationMaxYearMonth","noUnset","firstDayOfWeek","Number","todayBtn","minimal","defaultView","emits","setup","lastEmitValue","slots","emit","getCurrentInstance","proxy","isDark","useDark","useCache","getCache","useDatetime","formAttrs","useFormAttrs","injectFormInput","useFormInject","blurTargetRef","ref","innerMask","getMask","innerLocale","today","viewModel","getViewModel","value","view","direction","rtl","monthDirection","yearDirection","startYear","editRange","classes","computedColor","computedTextColor","isImmediate","normalizedModel","isArray","daysModel","filter","decodeString","rangeModel","fn","from","to","getNativeDateFn","model","gDate","encodeObjectFn","daysInModel","reduce","acc","headerTitle","init","pluralDay","valueOf","minSelectedModel","concat","sort","maxSelectedModel","headerSubtitle","dateArrow","iconSet","datetime","arrowLeft","arrowRight","reverse","computedFirstDayOfWeek","daysOfWeek","first","daysInMonth","evtColor","minNav","data","maxNav","navBoundaries","prev","next","daysMap","forEach","entry","hash","rangeMap","hashFrom","hashTo","cur","rangeView","initHash","final","finalHash","fromHash","toHash","viewMonthHash","includeFrom","includeTo","selectionDaysMap","dayHash","eventDaysMap","viewDays","endDay","prevJM","prevJY","len","fill","event","in","selected","unelevated","rangeFrom","rangeTo","editRangeFrom","editRangeTo","left","afterDays","attributes","setToday","toggleDate","setCalendarTo","setView","viewMode","offsetCalendar","descending","goToMonth","goToYear","updateViewModel","setEditingRange","getDefaultViewModel","decoded","setYear","setMonth","monthHash","removeFromModel","addToModel","getShortDate","newHash","nextTick","emitValue","action","getEmitParams","reason","details","min","max","encodeEntry","ranges","updateValue","getHeader","class","Transition","onClick","onKeyup","e","keyCode","QBtn","icon","size","round","getNavigation","label","dir","goTo","boundaries","dense","noCaps","watch","focus","renderViews","Calendar","onDayClick","onMouseover","onDayMouseover","Months","currentYear","isDisabled","content","active","unshift","Years","stop","years","dayIndex","dayProps","find","payload","def","hSlot","useAnchorProps","breakpoint","attrs","showing","popupRef","useAnchor","canShow","getType","screen","width","height","onShow","evt","onHide","show","hide","toggle","component","popupProps","cover","maxHeight","QDialog","QMenu","contextMenu","noParentEvent","separateClosePopup","userAgent","noHover","header","__trClass","addToUnscopables","autoWidth","vm","vnode","col","colsMap","row","__tdClass","style","__tdStyle","cache","Map","obj","getCacheWithFn"],"mappings":"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","file":"js/chunk-08e4224b.076cf148.js","sourcesContent":["// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar repeat = require('../internals/string-repeat');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar ceil = Math.ceil;\n\n// `String.prototype.{ padStart, padEnd }` methods implementation\nvar createMethod = function (IS_END) {\n return function ($this, maxLength, fillString) {\n var S = toString(requireObjectCoercible($this));\n var intMaxLength = toLength(maxLength);\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : toString(fillString);\n var fillLen, stringFiller;\n if (intMaxLength <= stringLength || fillStr == '') return S;\n fillLen = intMaxLength - stringLength;\n stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return IS_END ? S + stringFiller : stringFiller + S;\n };\n};\n\nmodule.exports = {\n // `String.prototype.padStart` method\n // https://tc39.es/ecma262/#sec-string.prototype.padstart\n start: createMethod(false),\n // `String.prototype.padEnd` method\n // https://tc39.es/ecma262/#sec-string.prototype.padend\n end: createMethod(true)\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $padStart = require('../internals/string-pad').start;\nvar WEBKIT_BUG = require('../internals/string-pad-webkit-bug');\n\n// `String.prototype.padStart` method\n// https://tc39.es/ecma262/#sec-string.prototype.padstart\n$({ target: 'String', proto: true, forced: WEBKIT_BUG }, {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","// taken from https://github.com/jalaali/jalaali-js\n\n/*\n Jalaali years starting the 33-year rule.\n*/\nconst breaks = [\n -61, 9, 38, 199, 426, 686, 756, 818, 1111, 1181, 1210,\n 1635, 2060, 2097, 2192, 2262, 2324, 2394, 2456, 3178\n]\n\n/*\n Converts a Gregorian date to Jalaali.\n*/\nexport function toJalaali (gy, gm, gd) {\n if (Object.prototype.toString.call(gy) === '[object Date]') {\n gd = gy.getDate()\n gm = gy.getMonth() + 1\n gy = gy.getFullYear()\n }\n return d2j(g2d(gy, gm, gd))\n}\n\n/*\n Converts a Jalaali date to Gregorian.\n*/\nexport function toGregorian (jy, jm, jd) {\n return d2g(j2d(jy, jm, jd))\n}\n\n/*\n Checks whether a Jalaali date is valid or not.\n*/\nexport function isValidJalaaliDate (jy, jm, jd) {\n return jy >= -61 && jy <= 3177\n && jm >= 1 && jm <= 12\n && jd >= 1 && jd <= jalaaliMonthLength(jy, jm)\n}\n\n/*\n Is this a leap year or not?\n*/\nfunction isLeapJalaaliYear (jy) {\n return jalCalLeap(jy) === 0\n}\n\n/*\n Number of days in a given month in a Jalaali year.\n*/\nexport function jalaaliMonthLength (jy, jm) {\n if (jm <= 6) return 31\n if (jm <= 11) return 30\n if (isLeapJalaaliYear(jy)) return 30\n return 29\n}\n\n/*\n This function determines if the Jalaali (Persian) year is\n leap (366-day long) or is the common year (365 days)\n\n @param jy Jalaali calendar year (-61 to 3177)\n @returns number of years since the last leap year (0 to 4)\n */\nfunction jalCalLeap (jy) {\n const bl = breaks.length\n let\n jp = breaks[ 0 ],\n jm,\n jump,\n leap,\n n,\n i\n\n if (jy < jp || jy >= breaks[ bl - 1 ]) { throw new Error('Invalid Jalaali year ' + jy) }\n\n for (i = 1; i < bl; i += 1) {\n jm = breaks[ i ]\n jump = jm - jp\n if (jy < jm) { break }\n jp = jm\n }\n n = jy - jp\n\n if (jump - n < 6) { n = n - jump + div(jump + 4, 33) * 33 }\n leap = mod(mod(n + 1, 33) - 1, 4)\n if (leap === -1) {\n leap = 4\n }\n\n return leap\n}\n\n/*\n This function determines if the Jalaali (Persian) year is\n leap (366-day long) or is the common year (365 days), and\n finds the day in March (Gregorian calendar) of the first\n day of the Jalaali year (jy).\n\n @param jy Jalaali calendar year (-61 to 3177)\n @param withoutLeap when don't need leap (true or false) default is false\n @return\n leap: number of years since the last leap year (0 to 4)\n gy: Gregorian year of the beginning of Jalaali year\n march: the March day of Farvardin the 1st (1st day of jy)\n @see: http://www.astro.uni.torun.pl/~kb/Papers/EMP/PersianC-EMP.htm\n @see: http://www.fourmilab.ch/documents/calendar/\n*/\nfunction jalCal (jy, withoutLeap) {\n const\n bl = breaks.length,\n gy = jy + 621\n let\n leapJ = -14,\n jp = breaks[ 0 ],\n jm,\n jump,\n leap,\n n,\n i\n\n if (jy < jp || jy >= breaks[ bl - 1 ]) { throw new Error('Invalid Jalaali year ' + jy) }\n\n // Find the limiting years for the Jalaali year jy.\n for (i = 1; i < bl; i += 1) {\n jm = breaks[ i ]\n jump = jm - jp\n if (jy < jm) { break }\n leapJ = leapJ + div(jump, 33) * 8 + div(mod(jump, 33), 4)\n jp = jm\n }\n n = jy - jp\n\n // Find the number of leap years from AD 621 to the beginning\n // of the current Jalaali year in the Persian calendar.\n leapJ = leapJ + div(n, 33) * 8 + div(mod(n, 33) + 3, 4)\n if (mod(jump, 33) === 4 && jump - n === 4) { leapJ += 1 }\n\n // And the same in the Gregorian calendar (until the year gy).\n const leapG = div(gy, 4) - div((div(gy, 100) + 1) * 3, 4) - 150\n\n // Determine the Gregorian date of Farvardin the 1st.\n const march = 20 + leapJ - leapG\n\n // Find how many years have passed since the last leap year.\n if (!withoutLeap) {\n if (jump - n < 6) { n = n - jump + div(jump + 4, 33) * 33 }\n leap = mod(mod(n + 1, 33) - 1, 4)\n if (leap === -1) {\n leap = 4\n }\n }\n\n return {\n leap: leap,\n gy: gy,\n march: march\n }\n}\n\n/*\n Converts a date of the Jalaali calendar to the Julian Day number.\n\n @param jy Jalaali year (1 to 3100)\n @param jm Jalaali month (1 to 12)\n @param jd Jalaali day (1 to 29/31)\n @return Julian Day number\n*/\nfunction j2d (jy, jm, jd) {\n const r = jalCal(jy, true)\n return g2d(r.gy, 3, r.march) + (jm - 1) * 31 - div(jm, 7) * (jm - 7) + jd - 1\n}\n\n/*\n Converts the Julian Day number to a date in the Jalaali calendar.\n\n @param jdn Julian Day number\n @return\n jy: Jalaali year (1 to 3100)\n jm: Jalaali month (1 to 12)\n jd: Jalaali day (1 to 29/31)\n*/\nfunction d2j (jdn) {\n const gy = d2g(jdn).gy // Calculate Gregorian year (gy).\n let\n jy = gy - 621,\n jd,\n jm,\n k\n const\n r = jalCal(jy, false),\n jdn1f = g2d(gy, 3, r.march)\n\n // Find number of days that passed since 1 Farvardin.\n k = jdn - jdn1f\n if (k >= 0) {\n if (k <= 185) {\n // The first 6 months.\n jm = 1 + div(k, 31)\n jd = mod(k, 31) + 1\n return {\n jy: jy,\n jm: jm,\n jd: jd\n }\n }\n else {\n // The remaining months.\n k -= 186\n }\n }\n else {\n // Previous Jalaali year.\n jy -= 1\n k += 179\n if (r.leap === 1) { k += 1 }\n }\n jm = 7 + div(k, 30)\n jd = mod(k, 30) + 1\n return {\n jy: jy,\n jm: jm,\n jd: jd\n }\n}\n\n/*\n Calculates the Julian Day number from Gregorian or Julian\n calendar dates. This integer number corresponds to the noon of\n the date (i.e. 12 hours of Universal Time).\n The procedure was tested to be good since 1 March, -100100 (of both\n calendars) up to a few million years into the future.\n\n @param gy Calendar year (years BC numbered 0, -1, -2, ...)\n @param gm Calendar month (1 to 12)\n @param gd Calendar day of the month (1 to 28/29/30/31)\n @return Julian Day number\n*/\nfunction g2d (gy, gm, gd) {\n let d = div((gy + div(gm - 8, 6) + 100100) * 1461, 4)\n + div(153 * mod(gm + 9, 12) + 2, 5)\n + gd - 34840408\n d = d - div(div(gy + 100100 + div(gm - 8, 6), 100) * 3, 4) + 752\n return d\n}\n\n/*\n Calculates Gregorian and Julian calendar dates from the Julian Day number\n (jdn) for the period since jdn=-34839655 (i.e. the year -100100 of both\n calendars) to some millions years ahead of the present.\n\n @param jdn Julian Day number\n @return\n gy: Calendar year (years BC numbered 0, -1, -2, ...)\n gm: Calendar month (1 to 12)\n gd: Calendar day of the month M (1 to 28/29/30/31)\n*/\nfunction d2g (jdn) {\n let j = 4 * jdn + 139361631\n j = j + div(div(4 * jdn + 183187720, 146097) * 3, 4) * 4 - 3908\n const\n i = div(mod(j, 1461), 4) * 5 + 308,\n gd = div(mod(i, 153), 5) + 1,\n gm = mod(div(i, 153), 12) + 1,\n gy = div(j, 1461) - 100100 + div(8 - gm, 6)\n return {\n gy: gy,\n gm: gm,\n gd: gd\n }\n}\n\n/*\n Utility helper functions.\n*/\n\nfunction div (a, b) {\n return ~~(a / b)\n}\n\nfunction mod (a, b) {\n return a - ~~(a / b) * b\n}\n","import { 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","/* eslint no-fallthrough: 0 */\n\nimport { isDate } from './private/is.js'\nimport { pad, capitalize } from './format.js'\nimport { jalaaliMonthLength } from './private/date-persian.js'\nimport lang from '../lang.js'\n\nconst\n MILLISECONDS_IN_DAY = 86400000,\n MILLISECONDS_IN_HOUR = 3600000,\n MILLISECONDS_IN_MINUTE = 60000,\n defaultMask = 'YYYY-MM-DDTHH:mm:ss.SSSZ',\n token = /\\[((?:[^\\]\\\\]|\\\\]|\\\\)*)\\]|d{1,4}|M{1,4}|m{1,2}|w{1,2}|Qo|Do|D{1,4}|YY(?:YY)?|H{1,2}|h{1,2}|s{1,2}|S{1,3}|Z{1,2}|a{1,2}|[AQExX]/g,\n reverseToken = /(\\[[^\\]]*\\])|d{1,4}|M{1,4}|m{1,2}|w{1,2}|Qo|Do|D{1,4}|YY(?:YY)?|H{1,2}|h{1,2}|s{1,2}|S{1,3}|Z{1,2}|a{1,2}|[AQExX]|([.*+:?^,\\s${}()|\\\\]+)/g,\n regexStore = {}\n\nfunction getRegexData (mask, dateLocale) {\n const\n days = '(' + dateLocale.days.join('|') + ')',\n key = mask + days\n\n if (regexStore[ key ] !== void 0) {\n return regexStore[ key ]\n }\n\n const\n daysShort = '(' + dateLocale.daysShort.join('|') + ')',\n months = '(' + dateLocale.months.join('|') + ')',\n monthsShort = '(' + dateLocale.monthsShort.join('|') + ')'\n\n const map = {}\n let index = 0\n\n const regexText = mask.replace(reverseToken, match => {\n index++\n switch (match) {\n case 'YY':\n map.YY = index\n return '(-?\\\\d{1,2})'\n case 'YYYY':\n map.YYYY = index\n return '(-?\\\\d{1,4})'\n case 'M':\n map.M = index\n return '(\\\\d{1,2})'\n case 'MM':\n map.M = index // bumping to M\n return '(\\\\d{2})'\n case 'MMM':\n map.MMM = index\n return monthsShort\n case 'MMMM':\n map.MMMM = index\n return months\n case 'D':\n map.D = index\n return '(\\\\d{1,2})'\n case 'Do':\n map.D = index++ // bumping to D\n return '(\\\\d{1,2}(st|nd|rd|th))'\n case 'DD':\n map.D = index // bumping to D\n return '(\\\\d{2})'\n case 'H':\n map.H = index\n return '(\\\\d{1,2})'\n case 'HH':\n map.H = index // bumping to H\n return '(\\\\d{2})'\n case 'h':\n map.h = index\n return '(\\\\d{1,2})'\n case 'hh':\n map.h = index // bumping to h\n return '(\\\\d{2})'\n case 'm':\n map.m = index\n return '(\\\\d{1,2})'\n case 'mm':\n map.m = index // bumping to m\n return '(\\\\d{2})'\n case 's':\n map.s = index\n return '(\\\\d{1,2})'\n case 'ss':\n map.s = index // bumping to s\n return '(\\\\d{2})'\n case 'S':\n map.S = index\n return '(\\\\d{1})'\n case 'SS':\n map.S = index // bump to S\n return '(\\\\d{2})'\n case 'SSS':\n map.S = index // bump to S\n return '(\\\\d{3})'\n case 'A':\n map.A = index\n return '(AM|PM)'\n case 'a':\n map.a = index\n return '(am|pm)'\n case 'aa':\n map.aa = index\n return '(a\\\\.m\\\\.|p\\\\.m\\\\.)'\n\n case 'ddd':\n return daysShort\n case 'dddd':\n return days\n case 'Q':\n case 'd':\n case 'E':\n return '(\\\\d{1})'\n case 'Qo':\n return '(1st|2nd|3rd|4th)'\n case 'DDD':\n case 'DDDD':\n return '(\\\\d{1,3})'\n case 'w':\n return '(\\\\d{1,2})'\n case 'ww':\n return '(\\\\d{2})'\n\n case 'Z': // to split: (?:(Z)()()|([+-])?(\\\\d{2}):?(\\\\d{2}))\n map.Z = index\n return '(Z|[+-]\\\\d{2}:\\\\d{2})'\n case 'ZZ':\n map.ZZ = index\n return '(Z|[+-]\\\\d{2}\\\\d{2})'\n\n case 'X':\n map.X = index\n return '(-?\\\\d+)'\n case 'x':\n map.x = index\n return '(-?\\\\d{4,})'\n\n default:\n index--\n if (match[ 0 ] === '[') {\n match = match.substring(1, match.length - 1)\n }\n return match.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')\n }\n })\n\n const res = { map, regex: new RegExp('^' + regexText) }\n regexStore[ key ] = res\n\n return res\n}\n\nexport function extractDate (str, mask, dateLocale) {\n const d = __splitDate(str, mask, dateLocale)\n\n const date = new Date(\n d.year,\n d.month === null ? null : d.month - 1,\n d.day,\n d.hour,\n d.minute,\n d.second,\n d.millisecond\n )\n\n const tzOffset = date.getTimezoneOffset()\n\n return d.timezoneOffset === null || d.timezoneOffset === tzOffset\n ? date\n : getChange(date, { minutes: d.timezoneOffset - tzOffset }, true)\n}\n\nexport function __splitDate (str, mask, dateLocale, calendar, defaultModel) {\n const date = {\n year: null,\n month: null,\n day: null,\n hour: null,\n minute: null,\n second: null,\n millisecond: null,\n timezoneOffset: null,\n dateHash: null,\n timeHash: null\n }\n\n defaultModel !== void 0 && Object.assign(date, defaultModel)\n\n if (\n str === void 0\n || str === null\n || str === ''\n || typeof str !== 'string'\n ) {\n return date\n }\n\n if (mask === void 0) {\n mask = defaultMask\n }\n\n const\n langOpts = dateLocale !== void 0 ? dateLocale : lang.props.date,\n months = langOpts.months,\n monthsShort = langOpts.monthsShort\n\n const { regex, map } = getRegexData(mask, langOpts)\n\n const match = str.match(regex)\n\n if (match === null) {\n return date\n }\n\n let tzString = ''\n\n if (map.X !== void 0 || map.x !== void 0) {\n const stamp = parseInt(match[ map.X !== void 0 ? map.X : map.x ], 10)\n\n if (isNaN(stamp) === true || stamp < 0) {\n return date\n }\n\n const d = new Date(stamp * (map.X !== void 0 ? 1000 : 1))\n\n date.year = d.getFullYear()\n date.month = d.getMonth() + 1\n date.day = d.getDate()\n date.hour = d.getHours()\n date.minute = d.getMinutes()\n date.second = d.getSeconds()\n date.millisecond = d.getMilliseconds()\n }\n else {\n if (map.YYYY !== void 0) {\n date.year = parseInt(match[ map.YYYY ], 10)\n }\n else if (map.YY !== void 0) {\n const y = parseInt(match[ map.YY ], 10)\n date.year = y < 0 ? y : 2000 + y\n }\n\n if (map.M !== void 0) {\n date.month = parseInt(match[ map.M ], 10)\n if (date.month < 1 || date.month > 12) {\n return date\n }\n }\n else if (map.MMM !== void 0) {\n date.month = monthsShort.indexOf(match[ map.MMM ]) + 1\n }\n else if (map.MMMM !== void 0) {\n date.month = months.indexOf(match[ map.MMMM ]) + 1\n }\n\n if (map.D !== void 0) {\n date.day = parseInt(match[ map.D ], 10)\n\n if (date.year === null || date.month === null || date.day < 1) {\n return date\n }\n\n const maxDay = calendar !== 'persian'\n ? (new Date(date.year, date.month, 0)).getDate()\n : jalaaliMonthLength(date.year, date.month)\n\n if (date.day > maxDay) {\n return date\n }\n }\n\n if (map.H !== void 0) {\n date.hour = parseInt(match[ map.H ], 10) % 24\n }\n else if (map.h !== void 0) {\n date.hour = parseInt(match[ map.h ], 10) % 12\n if (\n (map.A && match[ map.A ] === 'PM')\n || (map.a && match[ map.a ] === 'pm')\n || (map.aa && match[ map.aa ] === 'p.m.')\n ) {\n date.hour += 12\n }\n date.hour = date.hour % 24\n }\n\n if (map.m !== void 0) {\n date.minute = parseInt(match[ map.m ], 10) % 60\n }\n\n if (map.s !== void 0) {\n date.second = parseInt(match[ map.s ], 10) % 60\n }\n\n if (map.S !== void 0) {\n date.millisecond = parseInt(match[ map.S ], 10) * 10 ** (3 - match[ map.S ].length)\n }\n\n if (map.Z !== void 0 || map.ZZ !== void 0) {\n tzString = (map.Z !== void 0 ? match[ map.Z ].replace(':', '') : match[ map.ZZ ])\n date.timezoneOffset = (tzString[ 0 ] === '+' ? -1 : 1) * (60 * tzString.slice(1, 3) + 1 * tzString.slice(3, 5))\n }\n }\n\n date.dateHash = date.year + '/' + pad(date.month) + '/' + pad(date.day)\n date.timeHash = pad(date.hour) + ':' + pad(date.minute) + ':' + pad(date.second) + tzString\n\n return date\n}\n\nfunction formatTimezone (offset, delimeter = '') {\n const\n sign = offset > 0 ? '-' : '+',\n absOffset = Math.abs(offset),\n hours = Math.floor(absOffset / 60),\n minutes = absOffset % 60\n\n return sign + pad(hours) + delimeter + pad(minutes)\n}\n\nfunction setMonth (date, newMonth /* 1-based */) {\n const\n test = new Date(date.getFullYear(), newMonth, 0, 0, 0, 0, 0),\n days = test.getDate()\n\n date.setMonth(newMonth - 1, Math.min(days, date.getDate()))\n}\n\nfunction getChange (date, mod, add) {\n const\n t = new Date(date),\n sign = (add ? 1 : -1)\n\n Object.keys(mod).forEach(key => {\n if (key === 'months') {\n setMonth(t, t.getMonth() + 1 + sign * mod.months)\n return\n }\n\n const op = key === 'years'\n ? 'FullYear'\n : capitalize(key === 'days' ? 'date' : key)\n t[ `set${ op }` ](t[ `get${ op }` ]() + sign * mod[ key ])\n })\n return t\n}\n\nexport function isValid (date) {\n return typeof date === 'number'\n ? true\n : isNaN(Date.parse(date)) === false\n}\n\nexport function buildDate (mod, utc) {\n return adjustDate(new Date(), mod, utc)\n}\n\nexport function getDayOfWeek (date) {\n const dow = new Date(date).getDay()\n return dow === 0 ? 7 : dow\n}\n\nexport function getWeekOfYear (date) {\n // Remove time components of date\n const thursday = new Date(date.getFullYear(), date.getMonth(), date.getDate())\n\n // Change date to Thursday same week\n thursday.setDate(thursday.getDate() - ((thursday.getDay() + 6) % 7) + 3)\n\n // Take January 4th as it is always in week 1 (see ISO 8601)\n const firstThursday = new Date(thursday.getFullYear(), 0, 4)\n\n // Change date to Thursday same week\n firstThursday.setDate(firstThursday.getDate() - ((firstThursday.getDay() + 6) % 7) + 3)\n\n // Check if daylight-saving-time-switch occurred and correct for it\n const ds = thursday.getTimezoneOffset() - firstThursday.getTimezoneOffset()\n thursday.setHours(thursday.getHours() - ds)\n\n // Number of weeks between target Thursday and first Thursday\n const weekDiff = (thursday - firstThursday) / (MILLISECONDS_IN_DAY * 7)\n return 1 + Math.floor(weekDiff)\n}\n\nfunction getDayIdentifier (date) {\n return date.getFullYear() * 10000 + date.getMonth() * 100 + date.getDate()\n}\n\nfunction getDateIdentifier (date, onlyDate /* = false */) {\n const d = new Date(date)\n return onlyDate === true ? getDayIdentifier(d) : d.getTime()\n}\n\nexport function isBetweenDates (date, from, to, opts = {}) {\n const\n d1 = getDateIdentifier(from, opts.onlyDate),\n d2 = getDateIdentifier(to, opts.onlyDate),\n cur = getDateIdentifier(date, opts.onlyDate)\n\n return (cur > d1 || (opts.inclusiveFrom === true && cur === d1))\n && (cur < d2 || (opts.inclusiveTo === true && cur === d2))\n}\n\nexport function addToDate (date, mod) {\n return getChange(date, mod, true)\n}\nexport function subtractFromDate (date, mod) {\n return getChange(date, mod, false)\n}\n\nexport function adjustDate (date, mod, utc) {\n const\n t = new Date(date),\n prefix = `set${ utc === true ? 'UTC' : '' }`\n\n Object.keys(mod).forEach(key => {\n if (key === 'month') {\n setMonth(t, mod.month)\n return\n }\n\n const op = key === 'year'\n ? 'FullYear'\n : key.charAt(0).toUpperCase() + key.slice(1)\n t[ `${ prefix }${ op }` ](mod[ key ])\n })\n\n return t\n}\n\nexport function startOfDate (date, unit, utc) {\n const\n t = new Date(date),\n prefix = `set${ utc === true ? 'UTC' : '' }`\n\n switch (unit) {\n case 'year':\n t[ `${ prefix }Month` ](0)\n case 'month':\n t[ `${ prefix }Date` ](1)\n case 'day':\n t[ `${ prefix }Hours` ](0)\n case 'hour':\n t[ `${ prefix }Minutes` ](0)\n case 'minute':\n t[ `${ prefix }Seconds` ](0)\n case 'second':\n t[ `${ prefix }Milliseconds` ](0)\n }\n return t\n}\n\nexport function endOfDate (date, unit, utc) {\n const\n t = new Date(date),\n prefix = `set${ utc === true ? 'UTC' : '' }`\n\n switch (unit) {\n case 'year':\n t[ `${ prefix }Month` ](11)\n case 'month':\n t[ `${ prefix }Date` ](daysInMonth(t))\n case 'day':\n t[ `${ prefix }Hours` ](23)\n case 'hour':\n t[ `${ prefix }Minutes` ](59)\n case 'minute':\n t[ `${ prefix }Seconds` ](59)\n case 'second':\n t[ `${ prefix }Milliseconds` ](999)\n }\n return t\n}\n\nexport function getMaxDate (date /* , ...args */) {\n let t = new Date(date)\n Array.prototype.slice.call(arguments, 1).forEach(d => {\n t = Math.max(t, new Date(d))\n })\n return t\n}\n\nexport function getMinDate (date /*, ...args */) {\n let t = new Date(date)\n Array.prototype.slice.call(arguments, 1).forEach(d => {\n t = Math.min(t, new Date(d))\n })\n return t\n}\n\nfunction getDiff (t, sub, interval) {\n return (\n (t.getTime() - t.getTimezoneOffset() * MILLISECONDS_IN_MINUTE)\n - (sub.getTime() - sub.getTimezoneOffset() * MILLISECONDS_IN_MINUTE)\n ) / interval\n}\n\nexport function getDateDiff (date, subtract, unit = 'days') {\n const\n t = new Date(date),\n sub = new Date(subtract)\n\n switch (unit) {\n case 'years':\n return (t.getFullYear() - sub.getFullYear())\n\n case 'months':\n return (t.getFullYear() - sub.getFullYear()) * 12 + t.getMonth() - sub.getMonth()\n\n case 'days':\n return getDiff(startOfDate(t, 'day'), startOfDate(sub, 'day'), MILLISECONDS_IN_DAY)\n\n case 'hours':\n return getDiff(startOfDate(t, 'hour'), startOfDate(sub, 'hour'), MILLISECONDS_IN_HOUR)\n\n case 'minutes':\n return getDiff(startOfDate(t, 'minute'), startOfDate(sub, 'minute'), MILLISECONDS_IN_MINUTE)\n\n case 'seconds':\n return getDiff(startOfDate(t, 'second'), startOfDate(sub, 'second'), 1000)\n }\n}\n\nexport function getDayOfYear (date) {\n return getDateDiff(date, startOfDate(date, 'year'), 'days') + 1\n}\n\nexport function inferDateFormat (date) {\n return isDate(date) === true\n ? 'date'\n : (typeof date === 'number' ? 'number' : 'string')\n}\n\nexport function getDateBetween (date, min, max) {\n const t = new Date(date)\n\n if (min) {\n const low = new Date(min)\n if (t < low) {\n return low\n }\n }\n\n if (max) {\n const high = new Date(max)\n if (t > high) {\n return high\n }\n }\n\n return t\n}\n\nexport function isSameDate (date, date2, unit) {\n const\n t = new Date(date),\n d = new Date(date2)\n\n if (unit === void 0) {\n return t.getTime() === d.getTime()\n }\n\n switch (unit) {\n case 'second':\n if (t.getSeconds() !== d.getSeconds()) {\n return false\n }\n case 'minute': // intentional fall-through\n if (t.getMinutes() !== d.getMinutes()) {\n return false\n }\n case 'hour': // intentional fall-through\n if (t.getHours() !== d.getHours()) {\n return false\n }\n case 'day': // intentional fall-through\n if (t.getDate() !== d.getDate()) {\n return false\n }\n case 'month': // intentional fall-through\n if (t.getMonth() !== d.getMonth()) {\n return false\n }\n case 'year': // intentional fall-through\n if (t.getFullYear() !== d.getFullYear()) {\n return false\n }\n break\n default:\n throw new Error(`date isSameDate unknown unit ${ unit }`)\n }\n\n return true\n}\n\nexport function daysInMonth (date) {\n return (new Date(date.getFullYear(), date.getMonth() + 1, 0)).getDate()\n}\n\nfunction getOrdinal (n) {\n if (n >= 11 && n <= 13) {\n return `${ n }th`\n }\n switch (n % 10) {\n case 1: return `${ n }st`\n case 2: return `${ n }nd`\n case 3: return `${ n }rd`\n }\n return `${ n }th`\n}\n\nconst formatter = {\n // Year: 00, 01, ..., 99\n YY (date, _, forcedYear) {\n // workaround for < 1900 with new Date()\n const y = this.YYYY(date, _, forcedYear) % 100\n return y > 0\n ? pad(y)\n : '-' + pad(Math.abs(y))\n },\n\n // Year: 1900, 1901, ..., 2099\n YYYY (date, _, forcedYear) {\n // workaround for < 1900 with new Date()\n return forcedYear !== void 0 && forcedYear !== null\n ? forcedYear\n : date.getFullYear()\n },\n\n // Month: 1, 2, ..., 12\n M (date) {\n return date.getMonth() + 1\n },\n\n // Month: 01, 02, ..., 12\n MM (date) {\n return pad(date.getMonth() + 1)\n },\n\n // Month Short Name: Jan, Feb, ...\n MMM (date, dateLocale) {\n return dateLocale.monthsShort[ date.getMonth() ]\n },\n\n // Month Name: January, February, ...\n MMMM (date, dateLocale) {\n return dateLocale.months[ date.getMonth() ]\n },\n\n // Quarter: 1, 2, 3, 4\n Q (date) {\n return Math.ceil((date.getMonth() + 1) / 3)\n },\n\n // Quarter: 1st, 2nd, 3rd, 4th\n Qo (date) {\n return getOrdinal(this.Q(date))\n },\n\n // Day of month: 1, 2, ..., 31\n D (date) {\n return date.getDate()\n },\n\n // Day of month: 1st, 2nd, ..., 31st\n Do (date) {\n return getOrdinal(date.getDate())\n },\n\n // Day of month: 01, 02, ..., 31\n DD (date) {\n return pad(date.getDate())\n },\n\n // Day of year: 1, 2, ..., 366\n DDD (date) {\n return getDayOfYear(date)\n },\n\n // Day of year: 001, 002, ..., 366\n DDDD (date) {\n return pad(getDayOfYear(date), 3)\n },\n\n // Day of week: 0, 1, ..., 6\n d (date) {\n return date.getDay()\n },\n\n // Day of week: Su, Mo, ...\n dd (date, dateLocale) {\n return this.dddd(date, dateLocale).slice(0, 2)\n },\n\n // Day of week: Sun, Mon, ...\n ddd (date, dateLocale) {\n return dateLocale.daysShort[ date.getDay() ]\n },\n\n // Day of week: Sunday, Monday, ...\n dddd (date, dateLocale) {\n return dateLocale.days[ date.getDay() ]\n },\n\n // Day of ISO week: 1, 2, ..., 7\n E (date) {\n return date.getDay() || 7\n },\n\n // Week of Year: 1 2 ... 52 53\n w (date) {\n return getWeekOfYear(date)\n },\n\n // Week of Year: 01 02 ... 52 53\n ww (date) {\n return pad(getWeekOfYear(date))\n },\n\n // Hour: 0, 1, ... 23\n H (date) {\n return date.getHours()\n },\n\n // Hour: 00, 01, ..., 23\n HH (date) {\n return pad(date.getHours())\n },\n\n // Hour: 1, 2, ..., 12\n h (date) {\n const hours = date.getHours()\n if (hours === 0) {\n return 12\n }\n if (hours > 12) {\n return hours % 12\n }\n return hours\n },\n\n // Hour: 01, 02, ..., 12\n hh (date) {\n return pad(this.h(date))\n },\n\n // Minute: 0, 1, ..., 59\n m (date) {\n return date.getMinutes()\n },\n\n // Minute: 00, 01, ..., 59\n mm (date) {\n return pad(date.getMinutes())\n },\n\n // Second: 0, 1, ..., 59\n s (date) {\n return date.getSeconds()\n },\n\n // Second: 00, 01, ..., 59\n ss (date) {\n return pad(date.getSeconds())\n },\n\n // 1/10 of second: 0, 1, ..., 9\n S (date) {\n return Math.floor(date.getMilliseconds() / 100)\n },\n\n // 1/100 of second: 00, 01, ..., 99\n SS (date) {\n return pad(Math.floor(date.getMilliseconds() / 10))\n },\n\n // Millisecond: 000, 001, ..., 999\n SSS (date) {\n return pad(date.getMilliseconds(), 3)\n },\n\n // Meridiem: AM, PM\n A (date) {\n return this.H(date) < 12 ? 'AM' : 'PM'\n },\n\n // Meridiem: am, pm\n a (date) {\n return this.H(date) < 12 ? 'am' : 'pm'\n },\n\n // Meridiem: a.m., p.m.\n aa (date) {\n return this.H(date) < 12 ? 'a.m.' : 'p.m.'\n },\n\n // Timezone: -01:00, +00:00, ... +12:00\n Z (date, dateLocale, forcedYear, forcedTimezoneOffset) {\n const tzOffset = forcedTimezoneOffset === void 0 || forcedTimezoneOffset === null\n ? date.getTimezoneOffset()\n : forcedTimezoneOffset\n\n return formatTimezone(tzOffset, ':')\n },\n\n // Timezone: -0100, +0000, ... +1200\n ZZ (date, dateLocale, forcedYear, forcedTimezoneOffset) {\n const tzOffset = forcedTimezoneOffset === void 0 || forcedTimezoneOffset === null\n ? date.getTimezoneOffset()\n : forcedTimezoneOffset\n\n return formatTimezone(tzOffset)\n },\n\n // Seconds timestamp: 512969520\n X (date) {\n return Math.floor(date.getTime() / 1000)\n },\n\n // Milliseconds timestamp: 512969520900\n x (date) {\n return date.getTime()\n }\n}\n\nexport function formatDate (val, mask, dateLocale, __forcedYear, __forcedTimezoneOffset) {\n if (\n (val !== 0 && !val)\n || val === Infinity\n || val === -Infinity\n ) {\n return\n }\n\n const date = new Date(val)\n\n if (isNaN(date)) {\n return\n }\n\n if (mask === void 0) {\n mask = defaultMask\n }\n\n const locale = dateLocale !== void 0\n ? dateLocale\n : lang.props.date\n\n return mask.replace(\n token,\n (match, text) => (\n match in formatter\n ? formatter[ match ](date, locale, __forcedYear, __forcedTimezoneOffset)\n : (text === void 0 ? match : text.split('\\\\]').join(']'))\n )\n )\n}\n\nexport function clone (date) {\n return isDate(date) === true\n ? new Date(date.getTime())\n : date\n}\n\nexport default {\n isValid,\n extractDate,\n buildDate,\n getDayOfWeek,\n getWeekOfYear,\n isBetweenDates,\n addToDate,\n subtractFromDate,\n adjustDate,\n startOfDate,\n endOfDate,\n getMaxDate,\n getMinDate,\n getDateDiff,\n getDayOfYear,\n inferDateFormat,\n getDateBetween,\n isSameDate,\n daysInMonth,\n formatDate,\n clone\n}\n","import { 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 { h, defineComponent, ref, computed, watch, getCurrentInstance } from 'vue'\n\nimport QDialog from '../dialog/QDialog.js'\nimport QMenu from '../menu/QMenu.js'\n\nimport useAnchor, { useAnchorProps } from '../../composables/private/use-anchor.js'\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default defineComponent({\n name: 'QPopupProxy',\n\n props: {\n ...useAnchorProps,\n\n breakpoint: {\n type: [ String, Number ],\n default: 450\n }\n },\n\n emits: [ 'show', 'hide' ],\n\n setup (props, { slots, emit, attrs }) {\n const { proxy } = getCurrentInstance()\n const { $q } = proxy\n\n const showing = ref(false)\n const popupRef = ref(null)\n const breakpoint = computed(() => parseInt(props.breakpoint, 10))\n\n const { canShow } = useAnchor({ showing })\n\n function getType () {\n return $q.screen.width < breakpoint.value || $q.screen.height < breakpoint.value\n ? 'dialog'\n : 'menu'\n }\n\n const type = ref(getType())\n\n watch(() => getType(), val => {\n if (showing.value !== true) {\n type.value = val\n }\n })\n\n // expose public methods\n Object.assign(proxy, {\n show (evt) { canShow(evt) === true && popupRef.value.show(evt) },\n hide (evt) { popupRef.value.hide(evt) },\n toggle (evt) { popupRef.value.toggle(evt) }\n })\n\n function onShow (evt) {\n showing.value = true\n emit('show', evt)\n }\n\n function onHide (evt) {\n showing.value = false\n type.value = getType()\n emit('hide', evt)\n }\n\n return () => {\n const def = hSlot(slots.default)\n\n const popupProps = (\n type.value === 'menu'\n && def !== void 0\n && def[ 0 ] !== void 0\n && def[ 0 ].type !== void 0\n && [ 'QDate', 'QTime', 'QCarousel', 'QColor' ].includes(\n def[ 0 ].type.name\n )\n ) ? { cover: true, maxHeight: '99vh' } : {}\n\n const data = {\n ref: popupRef,\n ...popupProps,\n ...attrs,\n onShow,\n onHide\n }\n\n let component\n\n if (type.value === 'dialog') {\n component = QDialog\n }\n else {\n component = QMenu\n Object.assign(data, {\n target: props.target,\n contextMenu: props.contextMenu,\n noParentEvent: true,\n separateClosePopup: true\n })\n }\n\n return h(component, data, () => def)\n }\n }\n})\n","// https://github.com/zloirock/core-js/issues/280\nvar userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /Version\\/10(?:\\.\\d+){1,2}(?: [\\w./]+)?(?: Mobile\\/\\w+)? Safari\\//.test(userAgent);\n","import { h, defineComponent, computed } from 'vue'\n\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default defineComponent({\n name: 'QTr',\n\n props: {\n props: Object,\n noHover: Boolean\n },\n\n setup (props, { slots }) {\n const classes = computed(() =>\n 'q-tr'\n + (props.props === void 0 || props.props.header === true ? '' : ' ' + props.props.__trClass)\n + (props.noHover === true ? ' q-tr--no-hover' : '')\n )\n\n return () => h('tr', { class: classes.value }, hSlot(slots.default))\n }\n})\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","import { h, defineComponent, computed, getCurrentInstance } from 'vue'\n\nimport { hSlot } from '../../utils/private/render.js'\n\nexport default defineComponent({\n name: 'QTd',\n\n props: {\n props: Object,\n autoWidth: Boolean,\n noHover: Boolean\n },\n\n setup (props, { slots }) {\n const vm = getCurrentInstance()\n const classes = computed(() =>\n 'q-td' + (props.autoWidth === true ? ' q-table--col-auto-width' : '')\n + (props.noHover === true ? ' q-td--no-hover' : '')\n + ' '\n )\n\n return () => {\n if (props.props === void 0) {\n return h('td', { class: classes.value }, hSlot(slots.default))\n }\n\n const name = vm.vnode.key\n const col = (\n (props.props.colsMap !== void 0 ? props.props.colsMap[ name ] : null)\n || props.props.col\n )\n\n if (col === void 0) { return }\n\n const { row } = props.props\n\n return h('td', {\n class: classes.value + col.__tdClass(row),\n style: col.__tdStyle(row)\n }, hSlot(slots.default))\n }\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":""}