{"version":3,"file":"Picker.vue2.mjs","sources":["../../../../../../packages/components/datepicker/src/Picker.vue"],"sourcesContent":["<script lang=\"ts\">\nconst hours = '00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23'\n\nimport { defineComponent as DO_defineComponent } from 'vue';\nexport default /*#__PURE__*/ DO_defineComponent({\n\tname: 'ToPicker'\n});</script>\n<template>\n\t<to-grid :key=\"langKey\" space=\"1\" class=\"to-picker-to-grid-container\">\n\t\t<to-padding width=\"full\" value=\"1\">\n\t\t\t<div class=\"is-flex scroll-picker-grid-flex\">\n\t\t\t\t<template v-if=\"type !== 'time'\">\n\t\t\t\t\t<to-grid-item :side=\"true\">\n\t\t\t\t\t\t<to-center-scroll v-model=\"year\" :data=\"years\" @change=\"yearChange\"></to-center-scroll>\n\t\t\t\t\t</to-grid-item>\n\t\t\t\t\t<to-grid-item>\n\t\t\t\t\t\t<to-center-scroll v-model=\"month\" :data=\"monthList\" @change=\"monthChange\"></to-center-scroll>\n\t\t\t\t\t</to-grid-item>\n\t\t\t\t\t<to-grid-item v-if=\"type !== 'month'\">\n\t\t\t\t\t\t<to-center-scroll v-model=\"day\" :data=\"days\"></to-center-scroll>\n\t\t\t\t\t</to-grid-item>\n\t\t\t\t</template>\n\t\t\t\t<to-grid-item v-if=\"type === 'datetime'\" width=\"1\"></to-grid-item>\n\t\t\t\t<template v-if=\"type === 'datetime' || type === 'time'\">\n\t\t\t\t\t<to-grid-item>\n\t\t\t\t\t\t<to-center-scroll v-model=\"hour\" :data=\"hours\"></to-center-scroll>\n\t\t\t\t\t</to-grid-item>\n\t\t\t\t\t<to-grid-item>\n\t\t\t\t\t\t<to-center-scroll v-model=\"minute\" :data=\"minutes\"></to-center-scroll>\n\t\t\t\t\t</to-grid-item>\n\t\t\t\t\t<to-grid-item>\n\t\t\t\t\t\t<to-center-scroll v-model=\"second\" :data=\"seconds\"></to-center-scroll>\n\t\t\t\t\t</to-grid-item>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</to-padding>\n\t</to-grid>\n\n\t<to-gap></to-gap>\n\t<to-grid gap=\"1\" col=\"avg\">\n\t\t<to-button v-size=\"'l'\" mode=\"line\" color=\"primary\" @click=\"$emit('cancel')\">{{ t('to.datepicker.cancel') }} </to-button>\n\t\t<to-button v-size=\"'l'\" mode=\"line\" color=\"primary\" @click=\"clear\">{{ t('to.datepicker.clear') }} </to-button>\n\t\t<to-button v-size=\"'l'\" color=\"primary\" @click=\"submit\">{{ t('to.datepicker.confirm') }}</to-button>\n\t</to-grid>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed, watch, onMounted, nextTick } from 'vue'\nimport { ToButton, ToGrid, ToGridItem, ToGap, ToPadding, ToCenterScroll } from '@touchvue/components'\nimport { vSize } from '@touchvue/directives'\nimport { t, langKey } from '@touchvue/locale'\n\n\n\nconst props = defineProps({\n\tmodelValue: {\n\t\ttype: [String, Date],\n\t\tdefault: ''\n\t},\n\ttype: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tmultiple: {\n\t\ttype: Boolean,\n\t\tdefault: false\n\t},\n\ttime: {\n\t\ttype: String,\n\t\tdefault: ''\n\t},\n\tmin: {\n\t\ttype: [String, Date, Number],\n\t\tdefault: ''\n\t},\n\tmax: {\n\t\ttype: [String, Date, Number],\n\t\tdefault: ''\n\t}\n})\n\nconst emit = defineEmits(['cancel', 'change', 'clear'])\n\n// 响应式数据\nconst inited = ref(false)\nconst year = ref('')\nconst month = ref('')\nconst day = ref('')\nconst hour = ref('')\nconst minute = ref('')\nconst second = ref('')\nconst years = ref([])\nconst months = ref('01,02,03,04,05,06,07,08,09,10,11,12')\nconst monthList = ref([])\nconst days = ref([])\n\nconst minutes = ref('00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59')\nconst seconds = ref('00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59')\n\n// 计算属性\nconst valueo = computed(() => {\n\tconst [date, time] = formatDate(props.modelValue).split(' ')\n\tconst [year, month, day] = date.split('-')\n\tconst [hour, minute, second] = time ? time.split(':') : ['00', '00', '00']\n\treturn {\n\t\tyear,\n\t\tmonth,\n\t\tday,\n\t\thour,\n\t\tminute,\n\t\tsecond\n\t}\n})\n\nconst minDate = computed(() => {\n\tif (props.min) {\n\t\tlet min\n\t\t// 默认使用 2023-03-01 格式时，其 hour = 8 而不是 0，所以要转为 2023/03/01 格式\n\t\tif (typeof props.min === 'string') {\n\t\t\tmin = props.min.replace(/-/gi, '/')\n\t\t} else {\n\t\t\tmin = props.min\n\t\t}\n\t\treturn new Date(min)\n\t} else {\n\t\treturn new Date('1900-01-01')\n\t}\n})\n\nconst maxDate = computed(() => {\n\tif (props.max) {\n\t\tlet max\n\t\t// 默认使用 2023-03-01 格式时，其 hour = 8 而不是 0，所以要转为 2023/03/01 格式\n\t\tif (typeof props.max === 'string') {\n\t\t\tmax = props.max.replace(/-/gi, '/')\n\t\t} else {\n\t\t\tmax = props.max\n\t\t}\n\t\treturn new Date(max)\n\t} else {\n\t\treturn new Date('2099-12-31')\n\t}\n})\n\n// 监听器\nwatch(\n\t() => props.modelValue,\n\t() => {\n\t\tsetYear(() => {\n\t\t\tsetMonth(() => {\n\t\t\t\tsetDay()\n\t\t\t})\n\t\t})\n\t}\n)\n\n// 生命周期\nonMounted(() => {\n\tsetTimeout(() => {\n\t\tif (props.type !== 'time') {\n\t\t\tsetYear(() => {\n\t\t\t\tsetMonth(() => {\n\t\t\t\t\tif (props.type !== 'month') {\n\t\t\t\t\t\tsetDay()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t\t}\n\t\tif (props.type === 'datetime' || props.type === 'time') {\n\t\t\tsetHour()\n\t\t\tsetMinute()\n\t\t\tsetSecond()\n\t\t}\n\t\tinited.value = true\n\t}, 100)\n})\n\n// 方法\nfunction setYear(callback) {\n\tfunction getYearsRange(currentYear, range) {\n\t\tconst startYear = currentYear - range\n\t\tconst endYear = currentYear + range\n\t\tconst years = []\n\n\t\tfor (let year = startYear; year <= endYear; year++) {\n\t\t\tyears.push(String(year))\n\t\t}\n\n\t\treturn years\n\t}\n\n\t// 获取当前年份\n\tconst currentYear = new Date().getFullYear()\n\n\t// 获取前后 100 年的年份\n\tconst yearsList = getYearsRange(currentYear, 100)\n\n\t// 设置数据\n\tyears.value = []\n\tyearsList.map(item => {\n\t\tlet object = {\n\t\t\tlabel: item,\n\t\t\tvalue: item\n\t\t}\n\n\t\tif (item >= minDate.value.getFullYear() && item <= maxDate.value.getFullYear()) {\n\t\t\tyears.value.push(object)\n\t\t}\n\t})\n\n\t// 将今年设置为默认年份\n\tnextTick(() => {\n\t\tif (props.modelValue) {\n\t\t\tyear.value = valueo.value.year\n\t\t} else {\n\t\t\tyear.value = String(new Date().getFullYear())\n\t\t}\n\t\tcallback && callback()\n\t})\n}\n\nfunction setMonth(callback) {\n\tmonthList.value = []\n\tmonths.value.split(',').forEach(item => {\n\t\tlet object = {\n\t\t\tlabel: item,\n\t\t\tvalue: item\n\t\t}\n\n\t\tconst date = new Date(`${year.value}-${item}`)\n\n\t\t// 在 safari 或者 IOS 端，年月必须采用 '2024-07' 的String 类型\n\t\tconst minDateValue = new Date(`${String(minDate.value.getFullYear())}-${addZero(String(minDate.value.getMonth() + 1))}`)\n\t\tconst maxDateValue = new Date(`${String(maxDate.value.getFullYear())}-${addZero(String(maxDate.value.getMonth() + 1))}`)\n\n\t\tif (date >= minDateValue && date <= maxDateValue) {\n\t\t\tmonthList.value.push(object)\n\t\t}\n\t})\n\n\tnextTick(() => {\n\t\tif (props.modelValue) {\n\t\t\tmonth.value = valueo.value.month\n\t\t} else if (Array.isArray(monthList.value) && monthList.value.length) {\n\t\t\tlet monthValue\n\t\t\tif (props.min) {\n\t\t\t\tmonthValue = monthList.value[0].value\n\t\t\t} else {\n\t\t\t\tmonthValue = new Date().getMonth() + 1\n\t\t\t}\n\t\t\tconst date = new Date(`${String(year.value)}-${addZero(String(monthValue))}`)\n\t\t\tmonth.value = addZero(String(date.getMonth() + 1))\n\t\t} else {\n\t\t\tmonth.value = addZero(String(new Date().getMonth() + 1))\n\t\t}\n\t\tcallback && callback()\n\t})\n}\n\nfunction setDay() {\n\tconst total = new Date(Number(year.value), Number(month.value), 0).getDate()\n\tdays.value = []\n\n\tfor (let i = 0; i < total; i++) {\n\t\tconst dayValue = addZero(i + 1)\n\n\t\tlet object = {\n\t\t\tlabel: dayValue,\n\t\t\tvalue: dayValue,\n\t\t\tdisabled: false\n\t\t}\n\n\t\t// 在年月都在可用范围时，再判断天\n\t\tconst minDateValue = new Date(minDate.value.getFullYear(), minDate.value.getMonth(), minDate.value.getDate())\n\t\tconst maxDateValue = new Date(maxDate.value.getFullYear(), maxDate.value.getMonth(), maxDate.value.getDate())\n\t\tconst date = new Date(Number(year.value), Number(month.value) - 1, Number(dayValue))\n\t\t// 检查日期是否在min/max范围内\n\t\tconst inDateRange = date >= minDateValue && date <= maxDateValue\n\n\t\tif (inDateRange) {\n\t\t\tdays.value.push(object)\n\t\t}\n\t}\n\n\tnextTick(() => {\n\t\tif (props.modelValue) {\n\t\t\tday.value = valueo.value.day\n\t\t} else if (Array.isArray(days.value) && days.value.length) {\n\t\t\tconst dayValue = new Date().getDate()\n\t\t\tconst date = new Date(`${year.value}/${month.value}/${dayValue}`)\n\t\t\tday.value = addZero(String(date.getDate()))\n\t\t} else {\n\t\t\tday.value = addZero(String(new Date().getDate()))\n\t\t}\n\t})\n}\n\nfunction setHour() {\n\tif (props.modelValue) {\n\t\thour.value = valueo.value.hour\n\t} else {\n\t\thour.value = addZero(String(new Date().getHours()))\n\t}\n}\n\nfunction setMinute() {\n\tif (props.modelValue) {\n\t\tminute.value = valueo.value.minute\n\t} else {\n\t\tminute.value = addZero(String(new Date().getMinutes()))\n\t}\n}\n\nfunction setSecond() {\n\tif (props.modelValue) {\n\t\tsecond.value = valueo.value.second\n\t} else {\n\t\tsecond.value = addZero(String(new Date().getSeconds()))\n\t}\n}\n\nfunction yearChange() {\n\tif (inited.value) {\n\t\tsetMonth(() => {\n\t\t\tsetDay()\n\t\t})\n\t}\n}\n\nfunction monthChange() {\n\tif (inited.value) {\n\t\tsetDay()\n\t}\n}\n\nfunction submit() {\n\tif (props.type === 'datetime') {\n\t\temit('change', `${year.value}-${month.value}-${day.value} ${hour.value}:${minute.value}:${second.value}`)\n\t} else if (props.type === 'time') {\n\t\temit('change', `${hour.value}:${minute.value}:${second.value}`)\n\t} else {\n\t\temit('change', `${year.value}-${month.value}-${day.value}`)\n\t}\n}\n\nfunction clear() {\n\temit('clear')\n}\n\n// 格式化日期\nfunction formatDate(date: string | Date, fmt?: string): string {\n\tlet dateObj: Date\n\tif (typeof date === 'string') {\n\t\tdateObj = new Date(date)\n\t} else {\n\t\tdateObj = date\n\t}\n\n\tif (!fmt) {\n\t\tfmt = 'yyyy-MM-dd HH:mm:ss'\n\t}\n\tif (/(y+)/.test(fmt)) {\n\t\tfmt = fmt.replace(RegExp.$1, (dateObj.getFullYear() + '').substr(4 - RegExp.$1.length))\n\t}\n\tconst o: { [key: string]: number } = {\n\t\t'M+': dateObj.getMonth() + 1,\n\t\t'd+': dateObj.getDate(),\n\t\t'H+': dateObj.getHours(),\n\t\t'm+': dateObj.getMinutes(),\n\t\t's+': dateObj.getSeconds()\n\t}\n\tfor (const k in o) {\n\t\tif (new RegExp('(' + k + ')').test(fmt)) {\n\t\t\tconst str = o[k] + ''\n\t\t\tfmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? str : addZero(str))\n\t\t}\n\t}\n\treturn fmt\n}\n\nfunction addZero(str: string | number): string {\n\treturn ('00' + str).substr(str.toString().length)\n}\n</script>\n"],"names":["DO_defineComponent","year","month","day","hour","minute","second","currentYear","years","_createBlock","_unref","_createVNode","_createElementVNode","_createElementBlock","_Fragment","$emit"],"mappings":"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"}