forked from jcgertig/date-input-polyfill
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdate-input-polyfill.esm.js.map
1 lines (1 loc) · 44.1 KB
/
date-input-polyfill.esm.js.map
1
{"version":3,"file":"date-input-polyfill.esm.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../src/locales.js","../node_modules/dateformat/lib/dateformat.js","../src/picker.js","../src/input.js","../src/date-input-polyfill.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","// Localizations for UI text.\n// Keys correspond to applicable `lang` values, delimited by an underscore.\n// Days and months must be listed in the order they should display.\n\nconst locales = {\n 'en_en-US_en-UK': {\n days: [\n 'Su',\n 'Mo',\n 'Tu',\n 'We',\n 'Th',\n 'Fr',\n 'Sa'\n ],\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n ]\n },\n /* Simplified Chinese */\n 'zh_zh-CN': {\n days: [\n '星期天',\n '星期一',\n '星期二',\n '星期三',\n '星期四',\n '星期五',\n '星期六'\n ],\n months: [\n '一月',\n '二月',\n '三月',\n '四月',\n '五月',\n '六月',\n '七月',\n '八月',\n '九月',\n '十月',\n '十一月',\n '十二月'\n ]\n },\n /* Simplified Chinese, informal */\n 'zh-Hans_zh-Hans-CN': {\n days: [\n '周日',\n '周一',\n '周二',\n '周三',\n '周四',\n '周五',\n '周六'\n ],\n months: [\n '一月',\n '二月',\n '三月',\n '四月',\n '五月',\n '六月',\n '七月',\n '八月',\n '九月',\n '十月',\n '十一月',\n '十二月'\n ]\n },\n /* Traditional Chinese */\n 'zh-Hant_zh-Hant-TW': {\n days: [\n '週日',\n '週一',\n '週二',\n '週三',\n '週四',\n '週五',\n '週六'\n ],\n months: [\n '一月',\n '二月',\n '三月',\n '四月',\n '五月',\n '六月',\n '七月',\n '八月',\n '九月',\n '十月',\n '十一月',\n '十二月'\n ]\n },\n /* German (Germany) */\n 'de_de-DE': {\n days: [\n 'Sonntag',\n 'Montag',\n 'Dienstag',\n 'Mittwoch',\n 'Donnerstag',\n 'Freitag',\n 'Samstag'\n ],\n months: [\n 'Januar',\n 'Februar',\n 'März',\n 'April',\n 'Mai',\n 'Juni',\n 'Juli',\n 'August',\n 'September',\n 'Oktober',\n 'November',\n 'Dezember'\n ],\n today: 'Heute',\n format: 'DD.MM.YYYY'\n },\n /* Dutch */\n 'nl_nl-NL_nl-BE': {\n days: [\n 'Zondag',\n 'Maandag',\n 'Dinsdag',\n 'Woensdag',\n 'Donderdag',\n 'Vrijdag',\n 'Zaterdag'\n ],\n months: [\n 'Januari',\n 'Februari',\n 'Maart',\n 'April',\n 'Mei',\n 'Juni',\n 'Juli',\n 'Augustus',\n 'September',\n 'Oktober',\n 'November',\n 'December'\n ],\n today: 'Vandaag',\n format: 'D/M/Y'\n },\n /* Portuguese */\n 'pt_pt-BR': {\n days: [\n 'Dom',\n 'Seg',\n 'Ter',\n 'Qua',\n 'Qui',\n 'Sex',\n 'Sáb'\n ],\n months: [\n 'Janeiro',\n 'Fevereiro',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Setembro',\n 'Outubro',\n 'Novembro',\n 'Dezembro'\n ],\n today: 'Hoje'\n },\n /* French */\n 'fr_fr-FR_fr-BE': {\n days: [\n 'Di',\n 'Lu',\n 'Ma',\n 'Me',\n 'Je',\n 'Ve',\n 'Sa'\n ],\n months: [\n 'Janvier',\n 'Février',\n 'Mars',\n 'Avril',\n 'Mai',\n 'Juin',\n 'Juillet',\n 'Août',\n 'Septembre',\n 'Octobre',\n 'Novembre',\n 'Décembre'\n ],\n today: 'Aujourd\\'hui',\n format: 'D/M/Y'\n },\n /* Spanish */\n 'es_es-VE': {\n days: [\n 'Do',\n 'Lu',\n 'Ma',\n 'Mi',\n 'Ju',\n 'Vi',\n 'Sa'\n ],\n months: [\n 'Enero',\n 'Febrero',\n 'Marzo',\n 'Abril',\n 'Mayo',\n 'Junio',\n 'Julio',\n 'Agosto',\n 'Septiembre',\n 'Octubre',\n 'Noviembre',\n 'Diciembre'\n ],\n today: 'Hoy',\n format: 'D/M/Y'\n },\n /* Danish */\n 'da_da-dk': {\n days: [\n 'Søndag',\n 'Mandag',\n 'Tirsdag',\n 'Onsdag',\n 'Torsdag',\n 'Fredag',\n 'Lørdag'\n ],\n months: [\n 'Januar',\n 'Februar',\n 'Marts',\n 'April',\n 'Maj',\n 'Juni',\n 'Juli',\n 'August',\n 'September',\n 'Oktober',\n 'November',\n 'December'\n ],\n today: 'I dag',\n format: 'dd/MM-YYYY'\n },\n /* Russian */\n 'ru_ru-RU_ru-UA_ru-KZ_ru-MD': {\n days: [\n 'Вс',\n 'Пн',\n 'Вт',\n 'Ср',\n 'Чт',\n 'Пт',\n 'Сб'\n ],\n months: [\n 'Январь',\n 'Февраль',\n 'Март',\n 'Апрель',\n 'Май',\n 'Июнь',\n 'Июль',\n 'Август',\n 'Сентябрь',\n 'Октябрь',\n 'Ноябрь',\n 'Декабрь'\n ],\n today: 'Сегодня',\n format: 'D.M.Y'\n },\n /* Ukrainian */\n 'uk_uk-UA': {\n days: [\n 'Нд',\n 'Пн',\n 'Вт',\n 'Ср',\n 'Чт',\n 'Пт',\n 'Сб'\n ],\n months: [\n 'Січень',\n 'Лютий',\n 'Березень',\n 'Квітень',\n 'Травень',\n 'Червень',\n 'Липень',\n 'Серпень',\n 'Вересень',\n 'Жовтень',\n 'Листопад',\n 'Грудень'\n ],\n today: 'Cьогодні',\n format: 'D.M.Y'\n },\n /* Swedish (Sweden) */\n 'sv_sv-SE': {\n days: [\n 'Söndag',\n 'Måndag',\n 'Tisdag',\n 'Onsdag',\n 'Torsdag',\n 'Fredag',\n 'Lördag'\n ],\n months: [\n 'Januari',\n 'Februari',\n 'Mars',\n 'April',\n 'Maj',\n 'Juni',\n 'Juli',\n 'Augusti',\n 'September',\n 'Oktober',\n 'November',\n 'December'\n ],\n today: 'Idag',\n format: 'YYYY-MM-dd'\n },\n 'test_test-TEST': {\n days: [\n 'Foo',\n 'Mon',\n 'Tue',\n 'Wed',\n 'Thu',\n 'Fri',\n 'Sat'\n ],\n months: [\n 'Foo',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December'\n ]\n },\n ja: {\n days: [\n '日',\n '月',\n '火',\n '水',\n '木',\n '金',\n '土'\n ],\n months: [\n '一月',\n '二月',\n '三月',\n '四月',\n '五月',\n '六月',\n '七月',\n '八月',\n '九月',\n '十月',\n '十一月',\n '十二月'\n ],\n today: '今日',\n format: 'YYYY-MM-dd'\n }\n}\n\nexport default locales\n","\"use strict\";function _typeof(obj){\"@babel/helpers - typeof\";if(typeof Symbol===\"function\"&&typeof Symbol.iterator===\"symbol\"){_typeof=function _typeof(obj){return typeof obj}}else{_typeof=function _typeof(obj){return obj&&typeof Symbol===\"function\"&&obj.constructor===Symbol&&obj!==Symbol.prototype?\"symbol\":typeof obj}}return _typeof(obj)}(function(global){\"use strict\";var _arguments=arguments;var dateFormat=function(){var token=/d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\\1?|[LlopSZWN]|\"[^\"]*\"|'[^']*'/g;var timezone=/\\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\\d{4})?)\\b/g;var timezoneClip=/[^-+\\dA-Z]/g;return function(date,mask,utc,gmt){if(_arguments.length===1&&kindOf(date)===\"string\"&&!/\\d/.test(date)){mask=date;date=undefined}date=date||date===0?date:new Date;if(!(date instanceof Date)){date=new Date(date)}if(isNaN(date)){throw TypeError(\"Invalid date\")}mask=String(dateFormat.masks[mask]||mask||dateFormat.masks[\"default\"]);var maskSlice=mask.slice(0,4);if(maskSlice===\"UTC:\"||maskSlice===\"GMT:\"){mask=mask.slice(4);utc=true;if(maskSlice===\"GMT:\"){gmt=true}}var _=function _(){return utc?\"getUTC\":\"get\"};var _d=function d(){return date[_()+\"Date\"]()};var D=function D(){return date[_()+\"Day\"]()};var _m=function m(){return date[_()+\"Month\"]()};var y=function y(){return date[_()+\"FullYear\"]()};var _H=function H(){return date[_()+\"Hours\"]()};var _M=function M(){return date[_()+\"Minutes\"]()};var _s=function s(){return date[_()+\"Seconds\"]()};var _L=function L(){return date[_()+\"Milliseconds\"]()};var _o=function o(){return utc?0:date.getTimezoneOffset()};var _W=function W(){return getWeek(date)};var _N=function N(){return getDayOfWeek(date)};var flags={d:function d(){return _d()},dd:function dd(){return pad(_d())},ddd:function ddd(){return dateFormat.i18n.dayNames[D()]},dddd:function dddd(){return dateFormat.i18n.dayNames[D()+7]},m:function m(){return _m()+1},mm:function mm(){return pad(_m()+1)},mmm:function mmm(){return dateFormat.i18n.monthNames[_m()]},mmmm:function mmmm(){return dateFormat.i18n.monthNames[_m()+12]},yy:function yy(){return String(y()).slice(2)},yyyy:function yyyy(){return pad(y(),4)},h:function h(){return _H()%12||12},hh:function hh(){return pad(_H()%12||12)},H:function H(){return _H()},HH:function HH(){return pad(_H())},M:function M(){return _M()},MM:function MM(){return pad(_M())},s:function s(){return _s()},ss:function ss(){return pad(_s())},l:function l(){return pad(_L(),3)},L:function L(){return pad(Math.floor(_L()/10))},t:function t(){return _H()<12?dateFormat.i18n.timeNames[0]:dateFormat.i18n.timeNames[1]},tt:function tt(){return _H()<12?dateFormat.i18n.timeNames[2]:dateFormat.i18n.timeNames[3]},T:function T(){return _H()<12?dateFormat.i18n.timeNames[4]:dateFormat.i18n.timeNames[5]},TT:function TT(){return _H()<12?dateFormat.i18n.timeNames[6]:dateFormat.i18n.timeNames[7]},Z:function Z(){return gmt?\"GMT\":utc?\"UTC\":(String(date).match(timezone)||[\"\"]).pop().replace(timezoneClip,\"\").replace(/GMT\\+0000/g,\"UTC\")},o:function o(){return(_o()>0?\"-\":\"+\")+pad(Math.floor(Math.abs(_o())/60)*100+Math.abs(_o())%60,4)},p:function p(){return(_o()>0?\"-\":\"+\")+pad(Math.floor(Math.abs(_o())/60),2)+\":\"+pad(Math.floor(Math.abs(_o())%60),2)},S:function S(){return[\"th\",\"st\",\"nd\",\"rd\"][_d()%10>3?0:(_d()%100-_d()%10!=10)*_d()%10]},W:function W(){return _W()},N:function N(){return _N()}};return mask.replace(token,function(match){if(match in flags){return flags[match]()}return match.slice(1,match.length-1)})}}();dateFormat.masks={default:\"ddd mmm dd yyyy HH:MM:ss\",shortDate:\"m/d/yy\",paddedShortDate:\"mm/dd/yyyy\",mediumDate:\"mmm d, yyyy\",longDate:\"mmmm d, yyyy\",fullDate:\"dddd, mmmm d, yyyy\",shortTime:\"h:MM TT\",mediumTime:\"h:MM:ss TT\",longTime:\"h:MM:ss TT Z\",isoDate:\"yyyy-mm-dd\",isoTime:\"HH:MM:ss\",isoDateTime:\"yyyy-mm-dd'T'HH:MM:sso\",isoUtcDateTime:\"UTC:yyyy-mm-dd'T'HH:MM:ss'Z'\",expiresHeaderFormat:\"ddd, dd mmm yyyy HH:MM:ss Z\"};dateFormat.i18n={dayNames:[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\",\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],monthNames:[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\",\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],timeNames:[\"a\",\"p\",\"am\",\"pm\",\"A\",\"P\",\"AM\",\"PM\"]};var pad=function pad(val,len){val=String(val);len=len||2;while(val.length<len){val=\"0\"+val}return val};var getWeek=function getWeek(date){var targetThursday=new Date(date.getFullYear(),date.getMonth(),date.getDate());targetThursday.setDate(targetThursday.getDate()-(targetThursday.getDay()+6)%7+3);var firstThursday=new Date(targetThursday.getFullYear(),0,4);firstThursday.setDate(firstThursday.getDate()-(firstThursday.getDay()+6)%7+3);var ds=targetThursday.getTimezoneOffset()-firstThursday.getTimezoneOffset();targetThursday.setHours(targetThursday.getHours()-ds);var weekDiff=(targetThursday-firstThursday)/(864e5*7);return 1+Math.floor(weekDiff)};var getDayOfWeek=function getDayOfWeek(date){var dow=date.getDay();if(dow===0){dow=7}return dow};var kindOf=function kindOf(val){if(val===null){return\"null\"}if(val===undefined){return\"undefined\"}if(_typeof(val)!==\"object\"){return _typeof(val)}if(Array.isArray(val)){return\"array\"}return{}.toString.call(val).slice(8,-1).toLowerCase()};if(typeof define===\"function\"&&define.amd){define(function(){return dateFormat})}else if((typeof exports===\"undefined\"?\"undefined\":_typeof(exports))===\"object\"){module.exports=dateFormat}else{global.dateFormat=dateFormat}})(void 0);","class Picker {\n constructor () {\n this.date = new Date()\n this.input = null\n this.isOpen = false\n\n // The picker element. Unique tag name attempts to protect against\n // generic selectors.\n this.container = document.createElement('date-input-polyfill')\n\n // Add controls.\n // Year picker.\n this.year = document.createElement('select')\n Picker.createRangeSelect(\n this.year,\n 1890, // oldest person alive born in 1894\n this.date.getFullYear() + 20\n )\n this.year.className = 'yearSelect'\n this.year.addEventListener('change', () => {\n this.date.setYear(this.year.value)\n this.refreshDaysMatrix()\n })\n const yearWrapper = document.createElement('span')\n yearWrapper.className = 'yearSelect-wrapper'\n yearWrapper.appendChild(this.year)\n this.container.appendChild(yearWrapper)\n\n // Month picker.\n this.month = document.createElement('select')\n this.month.className = 'monthSelect'\n this.month.addEventListener('change', () => {\n this.date.setMonth(this.month.value)\n this.refreshDaysMatrix()\n })\n const monthWrapper = document.createElement('span')\n monthWrapper.className = 'monthSelect-wrapper'\n monthWrapper.appendChild(this.month)\n this.container.appendChild(monthWrapper)\n\n // Today button.\n this.today = document.createElement('button')\n this.today.textContent = 'Today'\n this.today.addEventListener('click', () => {\n const today = new Date()\n this.date = new Date(\n `${\n today.getFullYear()\n }/${\n `0${today.getMonth() + 1}`.slice(-2)\n }/${\n `0${today.getDate()}`.slice(-2)\n }`\n )\n this.setInput()\n })\n this.container.appendChild(this.today)\n\n // Setup unchanging DOM for days matrix.\n const daysMatrix = document.createElement('table')\n this.daysHead = document.createElement('thead')\n this.days = document.createElement('tbody')\n\n // THIS IS THE BIG PART.\n // When the user clicks a day, set that day as the date.\n // Uses event delegation.\n this.days.addEventListener('click', e => {\n const tgt = e.target\n\n if (!tgt.hasAttribute('data-day')) {\n return false\n }\n\n const curSel = this.days.querySelector('[data-selected]')\n if (curSel) {\n curSel.removeAttribute('data-selected')\n }\n tgt.setAttribute('data-selected', '')\n\n this.date.setDate(parseInt(tgt.textContent))\n this.setInput()\n })\n\n daysMatrix.appendChild(this.daysHead)\n daysMatrix.appendChild(this.days)\n this.container.appendChild(daysMatrix)\n\n this.hide()\n document.body.appendChild(this.container)\n\n this.removeClickOut = e => {\n if (this.isOpen) {\n let el = e.target\n let isPicker = el === this.container || el === this.input\n while (!isPicker && (el = el.parentNode)) {\n isPicker = el === this.container\n }\n ((e.target.getAttribute('type') !== 'date' && !isPicker) || !isPicker) &&\n this.hide()\n }\n }\n\n this.removeBlur = e => {\n if (this.isOpen) {\n this.hide()\n }\n }\n }\n\n // Hide.\n hide () {\n this.container.setAttribute('data-open', this.isOpen = false)\n // Close the picker when clicking outside of a date input or picker.\n if (this.input) { this.input.blur() }\n document.removeEventListener('mousedown', this.removeClickOut)\n document.removeEventListener('touchstart', this.removeClickOut)\n }\n\n // Show.\n show () {\n this.container.setAttribute('data-open', this.isOpen = true)\n // Close the picker when clicking outside of a date input or picker.\n setTimeout(() => {\n document.addEventListener('mousedown', this.removeClickOut)\n document.addEventListener('touchstart', this.removeClickOut)\n }, 500)\n\n // when used in a single-page app or otherwise,\n // hide datepicker when the browser's back button is pressed\n window.onpopstate = () => {\n this.hide()\n }\n }\n\n // Position picker below element. Align to element's right edge.\n goto (element) {\n const rekt = element.getBoundingClientRect()\n this.container.style.top = `${\n rekt.top + rekt.height +\n (document.documentElement.scrollTop || document.body.scrollTop) +\n 3\n }px`\n\n const contRekt = this.container.getBoundingClientRect()\n const width = contRekt.width ? contRekt.width : 280\n\n const classWithOutPos = () => {\n return this.container.className\n .replace('polyfill-left-aligned', '')\n .replace('polyfill-right-aligned', '')\n .replace(/\\s+/g, ' ').trim()\n }\n\n let base = rekt.right - width\n if (rekt.right < width) {\n base = rekt.left\n this.container.className = `${classWithOutPos()} polyfill-left-aligned`\n } else {\n this.container.className = `${classWithOutPos()} polyfill-right-aligned`\n }\n this.container.style.left = `${\n base +\n (document.documentElement.scrollLeft || document.body.scrollLeft)\n }px`\n this.show()\n }\n\n // Initiate I/O with given date input.\n attachTo (input) {\n if (input === this.input && this.isOpen) {\n return false\n }\n\n this.input = input\n this.refreshLocale()\n this.sync()\n this.goto(this.input)\n return true\n }\n\n // Match picker date with input date.\n sync () {\n // fixes bug where an empty calendar appears if year is missing from keyboard input\n if (!isNaN(Date.parse(this.input.valueAsDate))) {\n this.date = Picker.absoluteDate(this.input.valueAsDate)\n } else {\n this.date = new Date()\n }\n\n this.year.value = this.date.getFullYear()\n this.month.value = this.date.getMonth()\n this.refreshDaysMatrix()\n }\n\n // Match input date with picker date.\n setInput () {\n this.input.valueAsDate = this.date\n this.input.focus()\n setTimeout(() => { // IE wouldn't hide, so in a timeout you go.\n this.hide()\n }, 100)\n\n this.pingInput()\n }\n\n refreshLocale () {\n if (this.locale === this.input.locale) {\n return false\n }\n\n this.locale = this.input.locale\n\n this.today.textContent = this.locale.today || 'Today'\n\n const daysHeadHTML = ['<tr>']\n for (let i = 0, len = this.locale.days.length; i < len; ++i) {\n daysHeadHTML.push(`<th scope=\"col\">${this.locale.days[i]}</th>`)\n }\n this.daysHead.innerHTML = daysHeadHTML.join('')\n\n Picker.createRangeSelect(\n this.month,\n 0,\n 11,\n this.locale.months\n )\n }\n\n refreshDaysMatrix () {\n this.refreshLocale()\n\n // Determine days for this month and year,\n // as well as on which weekdays they lie.\n const year = this.date.getFullYear() // Get the year (2016).\n const month = this.date.getMonth() // Get the month number (0-11).\n const startDay = new Date(year, month, 1).getDay() // First weekday of month (0-6).\n const maxDays = new Date(\n this.date.getFullYear(),\n month + 1,\n 0\n ).getDate() // Get days in month (1-31).\n\n // The input's current date.\n const selDate = Picker.absoluteDate(this.input.valueAsDate) || false\n\n // Are we in the input's currently-selected month and year?\n const selMatrix =\n selDate &&\n year === selDate.getFullYear() &&\n month === selDate.getMonth()\n\n // Populate days matrix.\n const matrixHTML = []\n for (let i = 0; i < maxDays + startDay; ++i) {\n // Add a row every 7 days.\n if (i % 7 === 0) {\n matrixHTML.push(`\n ${i !== 0 ? '</tr>' : ''}\n <tr>\n `)\n }\n\n // Add new column.\n // If no days from this month in this column, it will be empty.\n if (i + 1 <= startDay) {\n matrixHTML.push('<td></td>')\n continue\n }\n\n // Populate day number.\n const dayNum = i + 1 - startDay\n const selected = selMatrix && selDate.getDate() === dayNum\n\n matrixHTML.push(\n `<td data-day ${selected ? 'data-selected' : ''}>\n ${dayNum}\n </td>`\n )\n }\n\n this.days.innerHTML = matrixHTML.join('')\n }\n\n pingInput () {\n // Dispatch DOM events to the input.\n let inputEvent\n let changeEvent\n\n // Modern event creation.\n try {\n inputEvent = new Event('input', { bubbles: true, cancelable: false })\n changeEvent = new Event('change', { bubbles: true, cancelable: false })\n } catch (e) {\n // Old-fashioned way.\n inputEvent = document.createEvent('KeyboardEvent')\n inputEvent.initEvent('input', true, false)\n changeEvent = document.createEvent('KeyboardEvent')\n changeEvent.initEvent('change', true, false)\n }\n\n this.input.dispatchEvent(inputEvent)\n this.input.dispatchEvent(changeEvent)\n }\n\n static createRangeSelect (theSelect, min, max, namesArray) {\n theSelect.innerHTML = ''\n\n for (let i = min; i <= max; ++i) {\n const aOption = document.createElement('option')\n theSelect.appendChild(aOption)\n\n const theText = namesArray ? namesArray[i - min] : i\n\n aOption.text = theText\n aOption.value = i\n }\n\n return theSelect\n }\n\n static absoluteDate (date) {\n return date && new Date(date.getTime() + date.getTimezoneOffset() * 60 * 1000)\n }\n}\n\nexport default Picker\n","import locales from './locales.js'\nimport dateFormat from 'dateformat'\nimport Picker from './picker.js'\n\n// This is a singleton.\nlet thePicker\n\nexport default class Input {\n constructor (input) {\n if (!thePicker) {\n thePicker = new Picker()\n }\n\n this.element = input\n this.element.setAttribute('data-has-picker', '')\n\n this.locale =\n this.element.getAttribute('lang') ||\n document.body.getAttribute('lang') ||\n 'en'\n\n this.format = this.element.getAttribute('date-format') ||\n document.body.getAttribute('date-format') ||\n this.element.getAttribute('data-date-format') ||\n document.body.getAttribute('data-date-format') ||\n 'yyyy-mm-dd'\n\n this.element.setAttribute('placeholder', this.format)\n\n this.localeText = this.getLocaleText()\n\n Object.defineProperties(\n this.element,\n {\n valueAsDate: {\n get: () => {\n if (!this.element.value) {\n return null\n }\n const format = this.format || 'yyyy-mm-dd'\n const parts = this.element.value.match(/(\\d+)/g)\n let i = 0; const fmt = {}\n\n format.replace(/(yyyy|dd|mm)/g, part => {\n fmt[part] = i++\n })\n return new Date(parts[fmt.yyyy], parts[fmt.mm] - 1, parts[fmt.dd])\n },\n set: val => {\n this.element.value = dateFormat(val, this.format, true)\n }\n },\n valueAsNumber: {\n get: () => {\n if (!this.element.value) {\n return NaN\n }\n\n return this.element.valueAsDate.valueOf()\n },\n set: val => {\n this.element.valueAsDate = new Date(val)\n }\n }\n }\n )\n\n // Open the picker when the input get focus,\n // also on various click events to capture it in all corner cases.\n const showPicker = (e) => {\n const elm = this.element\n elm.locale = this.localeText\n const didAttach = thePicker.attachTo(elm) /* eslint-disable-line no-unused-vars */\n }\n this.element.addEventListener('focus', showPicker)\n this.element.addEventListener('mouseup', showPicker)\n\n // Update the picker if the date changed manually in the input.\n this.element.addEventListener('keydown', e => {\n const date = new Date()\n\n switch (e.keyCode) {\n case 9:\n case 27:\n thePicker.hide()\n break\n case 38:\n if (this.element.valueAsDate) {\n date.setDate(this.element.valueAsDate.getDate() + 1)\n this.element.valueAsDate = date\n thePicker.pingInput()\n }\n break\n case 40:\n if (this.element.valueAsDate) {\n date.setDate(this.element.valueAsDate.getDate() - 1)\n this.element.valueAsDate = date\n thePicker.pingInput()\n }\n break\n default:\n break\n }\n\n thePicker.sync()\n })\n\n this.element.addEventListener('keyup', e => {\n thePicker.sync()\n })\n }\n\n getLocaleText () {\n const locale = this.locale.toLowerCase()\n\n for (const localeSet in locales) {\n const localeList = localeSet.split('_')\n localeList.map(el => el.toLowerCase())\n\n if (\n !!~localeList.indexOf(locale) ||\n !!~localeList.indexOf(locale.substr(0, 2))\n ) {\n return locales[localeSet]\n }\n }\n }\n\n // Return false if the browser does not support input[type=\"date\"].\n static supportsDateInput () {\n const input = document.createElement('input')\n input.setAttribute('type', 'date')\n\n const notADateValue = 'not-a-date'\n input.setAttribute('value', notADateValue)\n\n return !(input.value === notADateValue)\n }\n\n // Will add the Picker to all inputs in the page.\n static addPickerToDateInputs () {\n // Get and loop all the input[type=\"date\"]s in the page that do not have `[data-has-picker]` yet.\n const dateInputs = document.querySelectorAll('input[type=\"date\"]:not([data-has-picker])')\n const length = dateInputs.length\n\n if (!length) {\n return false\n }\n\n for (let i = 0; i < length; ++i) {\n new Input(dateInputs[i]) /* eslint-disable-line no-new */\n }\n }\n\n static addPickerToOtherInputs () {\n // Get and loop all the input[type=\"text\"] class date-polyfill in the page that do not have `[data-has-picker]` yet.\n const dateInputs = document.querySelectorAll('input[type=\"text\"].date-polyfill:not([data-has-picker])')\n const length = dateInputs.length\n\n if (!length) {\n return false\n }\n\n for (let i = 0; i < length; ++i) {\n new Input(dateInputs[i]) /* eslint-disable-line no-new */\n }\n }\n}\n","import './date-input-polyfill.css'\nimport Input from './input.js'\n\nexport { Input }\n\nconst addPickers = () => {\n Input.addPickerToOtherInputs()\n // Check if type=\"date\" is supported.\n if (!Input.supportsDateInput()) {\n Input.addPickerToDateInputs()\n }\n}\n\nconst init = () => {\n // Run the above code on any <input type=\"date\"> in the document, also on dynamically created ones.\n addPickers()\n // This is also on mousedown event so it will capture new inputs that might\n // be added to the DOM dynamically.\n document.querySelector('body').addEventListener('mousedown', () => {\n addPickers()\n })\n}\n\nif (document.readyState !== 'loading') {\n init()\n} else {\n document.addEventListener('DOMContentLoaded', () => {\n init()\n })\n}\n"],"names":["css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","locales","en_en-US_en-UK","days","months","zh_zh-CN","zh-Hans_zh-Hans-CN","zh-Hant_zh-Hant-TW","de_de-DE","today","format","nl_nl-NL_nl-BE","pt_pt-BR","fr_fr-FR_fr-BE","es_es-VE","da_da-dk","ru_ru-RU_ru-UA_ru-KZ_ru-MD","uk_uk-UA","sv_sv-SE","test_test-TEST","ja","_typeof","obj","Symbol","iterator","constructor","prototype","global","token","timezone","timezoneClip","_arguments","arguments","dateFormat","date","mask","utc","gmt","length","kindOf","test","undefined","Date","isNaN","TypeError","maskSlice","String","masks","slice","_","_d","D","_m","y","_H","_M","_s","_L","_o","getTimezoneOffset","flags","d","dd","pad","ddd","i18n","dayNames","dddd","m","mm","mmm","monthNames","mmmm","yy","yyyy","h","hh","H","HH","M","MM","s","ss","l","L","Math","floor","t","timeNames","tt","T","TT","Z","match","pop","replace","o","abs","p","S","W","getWeek","N","getDayOfWeek","default","shortDate","paddedShortDate","mediumDate","longDate","fullDate","shortTime","mediumTime","longTime","isoDate","isoTime","isoDateTime","isoUtcDateTime","expiresHeaderFormat","val","len","targetThursday","getFullYear","getMonth","getDate","setDate","getDay","firstThursday","ds","setHours","getHours","weekDiff","dow","Array","isArray","toString","call","toLowerCase","exports","module","Picker","[object Object]","this","input","isOpen","container","year","createRangeSelect","className","addEventListener","setYear","value","refreshDaysMatrix","yearWrapper","month","setMonth","monthWrapper","textContent","setInput","daysMatrix","daysHead","e","tgt","target","hasAttribute","curSel","querySelector","removeAttribute","setAttribute","parseInt","hide","body","removeClickOut","el","isPicker","parentNode","getAttribute","removeBlur","blur","removeEventListener","setTimeout","window","onpopstate","element","rekt","getBoundingClientRect","top","height","documentElement","scrollTop","contRekt","width","classWithOutPos","trim","base","right","left","scrollLeft","show","refreshLocale","sync","goto","parse","valueAsDate","absoluteDate","focus","pingInput","locale","daysHeadHTML","i","push","innerHTML","join","startDay","maxDays","selDate","selMatrix","matrixHTML","dayNum","selected","inputEvent","changeEvent","Event","bubbles","cancelable","createEvent","initEvent","dispatchEvent","theSelect","min","max","namesArray","aOption","theText","text","getTime","thePicker","Input","localeText","getLocaleText","Object","defineProperties","get","parts","fmt","part","set","valueAsNumber","valueOf","NaN","showPicker","elm","attachTo","keyCode","localeSet","localeList","split","map","indexOf","substr","notADateValue","dateInputs","querySelectorAll","addPickers","addPickerToOtherInputs","supportsDateInput","addPickerToDateInputs","init","readyState"],"mappings":"CAAA,SAAqBA,EAAKC,QACX,IAARA,IAAiBA,EAAM,IAC5B,IAAIC,EAAWD,EAAIC,SAEnB,GAAKF,GAA2B,oBAAbG,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAME,KAAO,WAEI,QAAbN,GACEE,EAAKK,WACPL,EAAKM,aAAaJ,EAAOF,EAAKK,YAKhCL,EAAKO,YAAYL,GAGfA,EAAMM,WACRN,EAAMM,WAAWC,QAAUb,EAE3BM,EAAMK,YAAYR,SAASW,eAAed,0kFCnB9C,MAAMe,EAAU,CACdC,iBAAkB,CAChBC,KAAM,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,OAAQ,CACN,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aAIJC,WAAY,CACVF,KAAM,CACJ,MACA,MACA,MACA,MACA,MACA,MACA,OAEFC,OAAQ,CACN,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,QAIJE,qBAAsB,CACpBH,KAAM,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,OAAQ,CACN,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,QAIJG,qBAAsB,CACpBJ,KAAM,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,OAAQ,CACN,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MACA,QAIJI,WAAY,CACVL,KAAM,CACJ,UACA,SACA,WACA,WACA,aACA,UACA,WAEFC,OAAQ,CACN,SACA,UACA,OACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEFK,MAAO,QACPC,OAAQ,cAGVC,iBAAkB,CAChBR,KAAM,CACJ,SACA,UACA,UACA,WACA,YACA,UACA,YAEFC,OAAQ,CACN,UACA,WACA,QACA,QACA,MACA,OACA,OACA,WACA,YACA,UACA,WACA,YAEFK,MAAO,UACPC,OAAQ,SAGVE,WAAY,CACVT,KAAM,CACJ,MACA,MACA,MACA,MACA,MACA,MACA,OAEFC,OAAQ,CACN,UACA,YACA,QACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YAEFK,MAAO,QAGTI,iBAAkB,CAChBV,KAAM,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,OAAQ,CACN,UACA,UACA,OACA,QACA,MACA,OACA,UACA,OACA,YACA,UACA,WACA,YAEFK,MAAO,cACPC,OAAQ,SAGVI,WAAY,CACVX,KAAM,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,OAAQ,CACN,QACA,UACA,QACA,QACA,OACA,QACA,QACA,SACA,aACA,UACA,YACA,aAEFK,MAAO,MACPC,OAAQ,SAGVK,WAAY,CACVZ,KAAM,CACJ,SACA,SACA,UACA,SACA,UACA,SACA,UAEFC,OAAQ,CACN,SACA,UACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEFK,MAAO,QACPC,OAAQ,cAGVM,6BAA8B,CAC5Bb,KAAM,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,OAAQ,CACN,SACA,UACA,OACA,SACA,MACA,OACA,OACA,SACA,WACA,UACA,SACA,WAEFK,MAAO,UACPC,OAAQ,SAGVO,WAAY,CACVd,KAAM,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,MAEFC,OAAQ,CACN,SACA,QACA,WACA,UACA,UACA,UACA,SACA,UACA,WACA,UACA,WACA,WAEFK,MAAO,WACPC,OAAQ,SAGVQ,WAAY,CACVf,KAAM,CACJ,SACA,SACA,SACA,SACA,UACA,SACA,UAEFC,OAAQ,CACN,UACA,WACA,OACA,QACA,MACA,OACA,OACA,UACA,YACA,UACA,WACA,YAEFK,MAAO,OACPC,OAAQ,cAEVS,iBAAkB,CAChBhB,KAAM,CACJ,MACA,MACA,MACA,MACA,MACA,MACA,OAEFC,OAAQ,CACN,MACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aAGJgB,GAAI,CACFjB,KAAM,CACJ,IACA,IACA,IACA,IACA,IACA,I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"}