Files
LaGriT/docs/assets/js/datepicker.min.js

1 line
8.3 KiB
JavaScript
Raw Permalink Normal View History

2025-12-17 11:00:57 +08:00
!function(e,t){var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};"object"===("undefined"==typeof exports?"undefined":n(exports))?module.exports=t():"function"==typeof define&&define.amd?define(function(){return t()}):e.datepicker=t()}(this,function(){"use strict";function e(e,o){var a=e.split?document.querySelector(e):e;o=t(o||n(),a,e);var s=a.parentElement,i=document.createElement("div"),c=o,u=c.startDate,d=c.dateSelected,f=a===document.body||a===document.querySelector("html"),p={el:a,parent:s,nonInput:"INPUT"!==a.nodeName,noPosition:f,position:!f&&o.position,startDate:u,dateSelected:d,minDate:o.minDate,maxDate:o.maxDate,noWeekends:!!o.noWeekends,calendar:i,currentMonth:(u||d).getMonth(),currentMonthName:(o.months||g)[(u||d).getMonth()],currentYear:(u||d).getFullYear(),setDate:h,remove:v,onSelect:o.onSelect,onShow:o.onShow,onHide:o.onHide,onMonthChange:o.onMonthChange,formatter:o.formatter,months:o.months||g,days:o.days||S,overlayPlaceholder:o.overlayPlaceholder||"4-digit year",overlayButton:o.overlayButton||"Submit",disableMobile:o.disableMobile,isMobile:"ontouchstart"in window};return d&&l(a,p),i.classList.add("qs-datepicker"),i.classList.add("qs-hidden"),w.push(a),r(u||d,p),b.forEach(function(e){window.addEventListener(e,q.bind(p))}),"static"===getComputedStyle(s).position&&(s.style.position="relative"),s.appendChild(i),p}function t(e,t){if(w.includes(t))throw new Error("A datepicker already exists on that element.");var n=e.position,r=e.maxDate,a=e.minDate,s=e.dateSelected,i=e.formatter,c=e.customMonths,l=e.customDays,u=e.overlayPlaceholder,d=e.overlayButton;if(n){if(!["tr","tl","br","bl"].some(function(e){return n===e}))throw new Error('"options.position" must be one of the following: tl, tr, bl, or br.');e.position=o(n)}else e.position=o("bl");if(["startDate","dateSelected","minDate","maxDate"].forEach(function(t){if(e[t]){if(!f(e[t])||isNaN(+e[t]))throw new TypeError('"options.'+t+'" needs to be a valid JavaScript Date object.');e[t]=p(e[t])}}),e.startDate=e.startDate||e.dateSelected||p(new Date),e.formatter="function"==typeof i?i:null,r<a)throw new Error('"maxDate" in options is less than "minDate".');if(s){if(a>s)throw new Error('"dateSelected" in options is less than "minDate".');if(r<s)throw new Error('"dateSelected" in options is greater than "maxDate".')}return["onSelect","onShow","onHide","onMonthChange"].forEach(function(t){e[t]="function"==typeof e[t]&&e[t]}),[c,l].forEach(function(t,n){if(t){var o=['"customMonths" must be an array with 12 strings.','"customDays" must be an array with 7 strings.'];if(["[object Array]"!=={}.toString.call(t),t.length!==(n?7:12),t.some(function(e){return!e.split})].some(function(e){return e}))throw new Error(o[n]);e[n?"days":"months"]=t}}),[u,d].forEach(function(t,n){t&&t.split&&(n?e.overlayButton=t:e.overlayPlaceholder=t)}),e}function n(){return{startDate:p(new Date),position:"bl"}}function o(e){var t={};return t[D[e[0]]]=1,t[D[e[1]]]=1,t}function r(e,t){var n=a(e,t),o=s(e,t),r=i(t);t.calendar.innerHTML=n+o+r}function a(e,t){return'\n <div class="qs-controls">\n <div class="qs-arrow qs-left"></div>\n <div class="qs-month-year">\n <span class="qs-month">'+t.months[e.getMonth()]+'</span>\n <span class="qs-year">'+e.getFullYear()+'</span>\n </div>\n <div class="qs-arrow qs-right"></div>\n </div>\n '}function s(e,t){var n=t.minDate,o=t.maxDate,r=t.dateSelected,a=t.currentYear,s=t.currentMonth,i=t.noWeekends,c=t.days,l=new Date,u=l.toJSON().slice(0,7)===e.toJSON().slice(0,7),d=new Date(new Date(e).setDate(1)),h=d.getDay();d.setMonth(d.getMonth()+1),d.setDate(0);var f=d.getDate(),p=[],v=7*((h+f)/7|0);v+=(h+f)%7?7:0;for(var y=1;y<=v;y++){var m=c[(y-1)%7],q=y-h,w="",b='<span class="qs-num">'+q+"</span>",S=new Date(a,s,q),g=q<1||q>f;if(g)w="qs-empty",b="";else{var D=n&&S<n||o&&S>o,M=c[6],E=c[0],L=m===M||m===E,N=u&&!D&&q===l.getDate();D=D||i&&L,w=D?"qs-disabled":N?"qs-