{"version":3,"sources":["webpack:///webpack/bootstrap 5f5345a9eb886ab59c50?6297********","webpack:///./css/css.scss?d114********","webpack:///./magaele/ic-ln/css.scss?1694*******","webpack:///./magaele/bt_gptr/css.scss?b1cd***","webpack:///./magaele/th_gpls/css.scss?6c35****","webpack:///./magaele/clp_gplt/module.js?a462****","webpack:///./magaele/tp_gplt/css.scss?57f8**","webpack:///./magaele/clp_gpby/css.scss?1e4d*****","webpack:///./magaele/cy-ln/css.scss?bf40******","webpack:///./magaele/cy-ln/module.js?0ac4******","webpack:///./magaele/clp_gplt/css.scss?5922*****","webpack:///./entry/visa_script.entry.js","webpack:///./entry/visa_style.entry.js","webpack:///./magaele/tb_gpvs/css.scss","webpack:///./magaele/clp_gpby/module.js?fc52*****"],"names":["$","ModuleName","Module","element","options","ele","$ele","option","DEFAULT","openIcon","closeIcon","whenOpen","$module","console","log","whenClose","prototype","init","self","$this","opts","$clp_btn","find","length","$clp_btn_inside","$header","children","$body","hasClass","icon","is","removeClass","addClass","on","clickHandler","slideUp","onResize","off","window","resize","width","stop","animate","scrollTop","offset","top","slideDown","closest","isOpen","each","i","eq","attr","css","fn","methods","module","data","extend","jQuery","moment","input","$input","timer","DEFAULTS","hideArea","prev","next","prevDisabled","nextDisabled","changeMonthYear","minYear","maxYear","minDate","maxDate","monthCount","single","showWeekName","holiday","disabled","range","arrow","btnDisabled","renderValidMonth","toggleAlert","dateFormat","dataIsNumberRegex","moduleCloseEvent","weekdayName","weekdaysMin","cssClass","main","extra","wrapper","month","yearMonth","date","weekday","today","hover","selected","start","between","point","end","inputActive","left","alertString","invalid","beforeMin","afterMax","fromMoreTo","alignRight","getOptions","updateOption","getMomentMinDate","add","format","collectionIndexOf","collection","value","predicate","isBetween","target","moment1","moment2","from","min","to","max","isAfter","isBefore","equalsDatePart","comparer","tag","name","checkDateRepair","val","dateAutoRepair","runAlert","showWeek","todayString","valString","replace","valStringTwoChar","substring","minDateString","maxDateString","nowYear","Date","getFullYear","toString","replaceString","todayWeek","getDay","dateValueStatus","alert","test","isSameOrBefore","getPrevInputDom","rangeIndex","$prevDom","getNextInputDom","getAfterInputDom","index","$dom","call","getAllInputDom","dateIsAllNumber","dateString","dateStringMonthChar","dateStringMonthCharToInt","parseInt","dateStringDayChar","dateStringDayCharToInt","valueStatus","isValid","isSame","drawCalendar","newOption","display","table","tr","momentDisplay","momentForPrint","getMomentMaxDate","append","drawMonth","arrowLeft","firstDay","lastDay","html","click","parents","empty","momentSelected","$table","$selectYear","year","text","$selectMonth","minMonth","maxMonth","clone","change","$trForWeekHeader","appendTo","momentFirstDayOfMonth","startOf","momentLastDayOfMonth","endOf","firstDayOfWeek","day","$tr","dataRange","$td","isHoliday","isDisabled","isNaN","e","stopPropagation","clickedDateString","prevDateString","nextDateString","trigger","close","value3","clearInterval","setInterval","outerHeight","movedDateString","$nowInput","rangeStringNumber","arrayMoment","getArrayMoment","push","refreshDateForPeriod","getArrayInput","except","array","momentValue","momentFrom","momentTo","sort","$date","dataDate","momentDate","not","remove","SingleInput","opt","title","minValue","inputValue","displayDate","a","b","inputValueBeforeMin","after","stringOpts","isNumeric","momentMinDate","momentMaxDate","isFunction","isArray","inArray","type","one","position","outerWidth","CylnCssOption","keyCode","dateRepairedString","returnStatus","status","dateFrom","dateTo","canCompared","$modules","dom","isShowWeekName","isSingle","isRangeRole","needRange","needArrow","minDateFromToday","maxDateFromToday","isAlert","alertStringInvalid","alertStringbeforeMin","alertStringafterMax","alertStringFromMoreTo","$rangeRoles","cy_ln","subtract","$maxH","btnEle","$clp_btntext","opHtml","clsHtml","btnSettings","closeHtml","openHtml","open","whenClosed","setClick","toggleClass","bind","setResize","currentHeight","maxHeight","hide","clickDelete","$delete","_self","$self","whenClickDelete","mode"],"mappings":"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","file":"./SubSiteBundles/ShipApply/visa.bundle.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// identity function for calling harmony imports with the correct context\n \t__webpack_require__.i = function(value) { return value; };\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"./Content/LightSpeed/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 109);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 5f5345a9eb886ab59c50","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./css/css.scss\n// module id = 0\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/ic-ln/css.scss\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6 8 9 10 11","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/bt_gptr/css.scss\n// module id = 11\n// module chunks = 0 1 2 6 9 10","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/th_gpls/css.scss\n// module id = 12\n// module chunks = 0 1 3 4 5 9","(function($) {\r\n 'use strict';\r\n\r\n var ModuleName = 'clp_gplt';\r\n\r\n var Module = function(element, options) {\r\n this.ele = element;\r\n this.$ele = $(element);\r\n this.option = options;\r\n };\r\n\r\n Module.DEFAULT = {\r\n openIcon: null,\r\n closeIcon: null,\r\n whenOpen: function($module) {\r\n console.log('whenOpen', $module);\r\n },\r\n whenClose: function($module) {\r\n console.log('whenClose', $module);\r\n }\r\n };\r\n\r\n Module.prototype.init = function() {\r\n var self = this;\r\n var $this = this.$ele;\r\n var opts = this.option;\r\n var $clp_btn = $this.find(\".clp-header .clp-btn\").length > 0 ? $this.find(\".clp-header .clp-btn\") : $this.find(\".clp-header .clp-title\");\r\n var $clp_btn_inside = $this.find(\".clp-body .clp-btn\");\r\n var $header = $this.children('.clp-header');\r\n var $body = $this.children('.clp-body');\r\n var openIcon = opts.openIcon;\r\n var closeIcon = opts.closeIcon;\r\n if (openIcon === null || closeIcon === null) {\r\n if ($clp_btn.hasClass('clp-btn')) {\r\n var icon = $clp_btn.find(\"span\");\r\n if ($body.is(\":visible\")) {\r\n icon.removeClass(\"tooladdb\");\r\n icon.addClass(\"toolcancelb\");\r\n } else {\r\n icon.removeClass(\"toolcancelb\");\r\n icon.addClass(\"tooladdb\");\r\n }\r\n } else if ($clp_btn.hasClass('clp-title')) {\r\n if ($body.is(\":visible\")) {\r\n $clp_btn.addClass('clp-open');\r\n } else {\r\n $clp_btn.addClass('clp-close');\r\n }\r\n }\r\n } else {\r\n var icon = $clp_btn.find(\"span\");\r\n if ($body.is(\":visible\")) {\r\n icon.removeClass();\r\n icon.addClass(openIcon);\r\n } else {\r\n icon.removeClass();\r\n icon.addClass(closeIcon);\r\n\r\n }\r\n }\r\n $this.find('.clp-ticket-btn').on('click', function() {\r\n $this.find('.clp-ticket-btn').addClass('d-no');\r\n $this.find('.clp-original-price').addClass('d-no');\r\n self.clickHandler($clp_btn, $body);\r\n });\r\n $this.find('.clp-ticket-cancel-btn').on('click',function(){\r\n $body.slideUp();\r\n $this.find('.clp-ticket-btn').removeClass('d-no');\r\n $this.find('.clp-original-price').removeClass('d-no');\r\n });\r\n $header.on('click', function() {\r\n self.clickHandler($clp_btn, $body);\r\n });\r\n\r\n if (self.onResize() >= 980 && $this.hasClass('clp-xs')) {\r\n $header.off('click');\r\n }\r\n\r\n if ($clp_btn_inside.length > 0) {\r\n $clp_btn_inside.on('click', function() {\r\n self.clickHandler($clp_btn, $body);\r\n });\r\n }\r\n };\r\n\r\n //20171214 resize\r\n Module.prototype.onResize = function() {\r\n $(window).resize(function() {\r\n return $(window).width();\r\n });\r\n };\r\n Module.prototype.clickHandler = function($clp_btn, $body) {\r\n var $this = this.$ele;\r\n var opts = this.option;\r\n var openIcon = opts.openIcon;\r\n var closeIcon = opts.closeIcon;\r\n if (openIcon === null || closeIcon === null) {\r\n if (!($(window).width() >= 980 && $this.hasClass('clp-xs'))) {\r\n if ($clp_btn.hasClass('clp-btn')) {\r\n var icon = $clp_btn.find(\"span\");\r\n if (icon.hasClass(\"toolcancelb\")) {\r\n icon.removeClass(\"toolcancelb\");\r\n icon.addClass(\"tooladdb\");\r\n $body.slideUp('fast', function() {\r\n opts.whenClose($this);\r\n });\r\n $('html,body').stop().animate({ scrollTop: $this.offset().top - 47 }, 100, 'swing', function() {});\r\n } else {\r\n icon.removeClass(\"tooladdb\");\r\n icon.addClass(\"toolcancelb\");\r\n $body.slideDown('fast', function() {\r\n opts.whenOpen($this);\r\n });\r\n }\r\n } else if ($clp_btn.hasClass('clp-title')) {\r\n if ($clp_btn.hasClass(\"clp-open\")) {\r\n $clp_btn.removeClass(\"clp-open\");\r\n $clp_btn.addClass(\"clp-close\");\r\n $body.slideUp('fast', function() {\r\n opts.whenClose($this);\r\n });\r\n $('html,body').stop().animate({ scrollTop: $this.offset().top - 47 }, 100, 'swing', function() {});\r\n } else {\r\n $clp_btn.removeClass(\"clp-close\");\r\n $clp_btn.addClass(\"clp-open\");\r\n $body.slideDown('fast', function() {\r\n opts.whenOpen($this);\r\n });\r\n }\r\n }\r\n }\r\n } else {\r\n var icon = $clp_btn.find(\"span\");\r\n if (icon.hasClass(closeIcon)) {\r\n icon.removeClass();\r\n icon.addClass(openIcon);\r\n $body.slideDown('fast', function() {\r\n opts.whenOpen($this);\r\n });\r\n } else {\r\n icon.removeClass();\r\n icon.addClass(closeIcon);\r\n $body.slideUp('fast', function() {\r\n opts.whenClose($this);\r\n });\r\n }\r\n }\r\n\r\n\r\n var length = $this.closest(\".clp_gplt\").find(\".own\");\r\n var isOpen = 0;\r\n length.each(function(i) {\r\n if (($this.closest(\".clp_gplt\").find(\".own\").eq(i).attr(\"data-opt\")) == (\"open\")) {\r\n isOpen = 1;\r\n }\r\n });\r\n if (isOpen == 0) {\r\n $this.closest(\".clp_gplt\").find(\".note-danger\").css(\"display\", \"none\");\r\n }\r\n\r\n };\r\n\r\n\r\n $.fn[ModuleName] = function(methods, options) {\r\n return this.each(function() {\r\n var $this = $(this);\r\n var module = $this.data(ModuleName);\r\n var opts = null;\r\n if (!!module) {\r\n if (typeof methods === 'string' && typeof options === 'undefined') {\r\n module[methods]();\r\n } else if (typeof methods === 'string' && typeof options === 'object') {\r\n module[methods](options);\r\n } else {\r\n console.log('unsupported options!');\r\n throw 'unsupported options!';\r\n }\r\n } else {\r\n opts = $.extend({}, Module.DEFAULT, (typeof methods === 'object' && methods), (typeof options === 'object' && options));\r\n module = new Module(this, opts);\r\n module.init();\r\n }\r\n });\r\n };\r\n\r\n})(jQuery);\n\n\n// WEBPACK FOOTER //\n// ./magaele/clp_gplt/module.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/tp_gplt/css.scss\n// module id = 18\n// module chunks = 2 5 7 9 10","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/clp_gpby/css.scss\n// module id = 2\n// module chunks = 0 1 2 3 4 6 9 11","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/cy-ln/css.scss\n// module id = 3\n// module chunks = 0 1 2 3 4 5 6 9","/**\r\n * \r\n * @fileOverview jquery plugin cy-ln\r\n * \r\n * \r\n * @example\r\n//html\r\n\r\n\r\n//javascript\r\n$('#test').cy_ln({\r\n\tmonthCount: 1,\r\n\tminYear: 10,\r\n\tmaxYear: 10,\r\n\tminDate: moment().subtract(100, 'years'),\r\n\tmaxDate: moment(),\r\n\tweekdayName: ['日','一','二','三','四','五','六'],\r\n\tchangeMonthYear: true\r\n});\r\n\r\n * @version 1.0.0\r\n * @author jivecheng\r\n * @see external:\"jQuery.fn\".cy_ln\r\n * @requires jquery\r\n */\r\n\r\n/**\r\n * See the jQuery Library (http://jquery.com/) for full details. This just\r\n * documents the function and classes that are added to jQuery by this plug-in.\r\n * @external jQuery\r\n * @see {@link http://api.jquery.com/jQuery/}\r\n * \r\n */\r\n\r\n/**\r\n * The jQuery plugin namespace.\r\n * @external \"jQuery.fn\"\r\n * @see {@link http://learn.jquery.com/plugins/|jQuery Plugins}\r\n * @type {object}\r\n */\r\n\r\n/**\r\n * The moment plugin namespace.\r\n * @external moment\r\n * @see {@link http://momentjs.com/docs/|Moment.js Documentation}\r\n * @type {object}\r\n */\r\n\r\n/**\r\n * @external HTMLElement\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement}\r\n */\r\n(function($, moment) {\r\n\t'use strict';\r\n\tvar ModuleName = 'cy_ln';\r\n\r\n\tvar Module = function (element, options) {\r\n\t\tthis.input = element;\r\n\t\tthis.$input = $(element);\r\n\t\tthis.options = options;\r\n\t\tthis.timer = null;\r\n\t};\r\n\t/**\r\n * [DEFAULTS description]\r\n * @typedef PluginOption\r\n * @type {object}\r\n * @property {string} [hideArea='body'] hideArea\r\n * @property {string} [prev=''] prev\r\n * @property {string} [next=''] next\r\n * @property {boolean} [changeMonthYear=false] changeMonthYear\r\n * @property {number} [minYear=10] minYear\r\n * @property {number} [maxYear=10] maxYear\r\n * @property {external:moment} [minDate=null] minDate\r\n * @property {external:moment} [maxDate=null] maxDate\r\n * @property {number} [monthCount=1] monthCount\r\n * @property {HolidayCallback|array} [holiday=null] holiday\r\n * @property {DisabledCallback|array} [disabled=null] disabled\r\n * @property {string|array} [range=null] range\r\n * @property {boolean} [arrow=false] arrow\r\n * @property {boolean} [toggleAlert=true] toggleAlert\r\n * @property {DateFormat} [dateFormat='YYYY/MM/DD'] dateFormat\r\n * @property {Regex} [dataIsNumberRegex=/^\\d[\\d|\\/]+\\d$/] dataIsNumberRegex\r\n * @property {string} [moduleCloseEvent='cy_ln.close'] moduleCloseEvent\r\n * @property {external:moment} [weekdayName=moment.weekdaysMin()] weekdayName\r\n * @property {ClassConfig} [cssClass=ClassConfig] cssClass \r\n * @property {AlertStringConfig} [alertString=AlertStringConfig] alertString \r\n * \r\n */\r\n\r\n\tModule.DEFAULTS = {\r\n\t\thideArea: 'body',\r\n\t\tprev: '', // change prev button. html is allowed.\r\n\t\tnext: '', // change next button. html is allowed.\r\n\t\tprevDisabled:'',\r\n\t\tnextDisabled:'',\r\n\t\tchangeMonthYear: false, // add dropdown list for month year\r\n\t\tminYear: 10, // minimum year of calendar. string or integer.\r\n\t\tmaxYear: 10, // minimum year of calendar. string or integer.\r\n\t\tminDate: null, // minimum date of calendar. date string or integer.\r\n\t\tmaxDate: null, // maximum date of calendar. date string or integer.\r\n\t\tmonthCount: 1, // displaying month count\r\n\t\tsingle:false,\t\t\t\t\t\t//直接打開選項\r\n\t\tshowWeekName:false,\t\t\t\t\t//顯示星期\r\n\t\t/**\r\n * callback HolidayCallback function description\r\n * @callback HolidayCallback\r\n * \r\n * @param {external:moment} moment object\r\n * @return {boolean} true|false\r\n */\r\n\t\tholiday: null, // array ['YYYY/MM/DD'] or function(moment) { return false }\r\n\t\t/**\r\n * callback DisabledCallback function description\r\n * @callback DisabledCallback\r\n * \r\n * @param {external:moment} moment object\r\n * @return {boolean} true|false\r\n */\r\n\t\tdisabled: null, // function(moment) { return true; } or [function, function, ...]\r\n\t\trange: null, // '#text' or ['#text2', '#text3', 'text4']\r\n\t\tarrow: false,\t\t\t\t\t\t// true or false, add an arrow at top of the module\r\n\t\tbtnDisabled:false,\r\n\t\trenderValidMonth: false,\t//only render months with abled months\r\n\t\ttoggleAlert: true,\r\n\t\tdateFormat: 'YYYY/MM/DD',\r\n\t\tdataIsNumberRegex: /^\\d[\\d|\\/]+\\d$/,\r\n\t\tmoduleCloseEvent: 'cy_ln.close',\r\n\t\tweekdayName: moment.weekdaysMin(), // array of weekdayName\r\n\t\t/**\r\n * PluginOption.ClassConfig description\r\n * \r\n * @typedef ClassConfig\r\n * @type {object}\r\n * @example\r\ncssClass: {\r\n \tmain: 'cy-ln',\r\n\twrapper: 'wrapper',\r\n\tmonth: 'month',\r\n\tprev: 'prev',\r\n\tyearMonth: 'yearMonth',\r\n\tnext: 'next',\r\n\tweekdayName: 'weekdayName',\r\n\tdate: 'date',\r\n\tweekday: [ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'],\r\n\tholiday: 'holiday',\r\n\ttoday: 'today',\r\n\thover: 'hover',\r\n\tdisabled: 'disabled',\r\n\tselected: 'selected',\r\n\tstart: 'start',\r\n\tarrow: 'arrow',\r\n\tbetween: 'between',\r\n\tpoint: 'point',\r\n\tend: 'end'\r\n}\r\n * @property {string} [main='cy-ln'] main\r\n * @property {string} [wrapper='wrapper'] wrapper\r\n * @property {string} [month='month'] month\r\n * @property {string} [prev='prev'] prev\r\n * @property {string} [yearMonth='yearMonth'] yearMonth\r\n * @property {string} [next='next'] next\r\n * @property {string} [weekdayName='weekdayName'] weekdayName\r\n * @property {string} [date='date'] date\r\n * @property {array} [weekday=[ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']] weekday\r\n * @property {string} [holiday=holiday] holiday\r\n * @property {string} [today=today] today\r\n * @property {string} [hover=hover] hover\r\n * @property {string} [disabled=disabled] disabled\r\n * @property {string} [selected=selected] selected\r\n * @property {string} [start=start] start\r\n * @property {string} [arrow=arrow] arrow\r\n * @property {string} [between=between] between\r\n * @property {string} [point=point] point\r\n * @property {string} [end=end] end\r\n * @property {string} [inputActive=active] inputActive\r\n * @property {number} [top=0] top\r\n */\r\n\t\tcssClass: { // You can change css class\r\n\t\t\tmain: 'cy-ln',\r\n\t\t\textra: '',\r\n\t\t\twrapper: 'wrapper',\r\n\t\t\tmonth: 'month',\r\n\t\t\tprev: 'prev',\r\n\t\t\tyearMonth: 'yearMonth',\r\n\t\t\tnext: 'next',\r\n\t\t\tweekdayName: 'weekdayName',\r\n\t\t\tdate: 'date',\r\n\t\t\tweekday: [ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'],\r\n\t\t\tholiday: 'holiday',\r\n\t\t\ttoday: 'today',\r\n\t\t\thover: 'hover',\r\n\t\t\tdisabled: 'disabled',\r\n\t\t\tselected: 'selected',\r\n\t\t\tstart: 'start',\r\n\t\t\tarrow: 'arrow',\r\n\t\t\tbetween: 'between',\r\n\t\t\tpoint: 'point',\r\n\t\t\tend: 'end',\r\n\t\t\tinputActive: 'active',\r\n\t\t\ttop: 0,\r\n\t\t\tleft:0\r\n\t\t},\r\n\t\t/**\r\n * PluginOption.AlertStringConfig description\r\n * \r\n * @typedef AlertStringConfig\r\n * @type {object}\r\n * @example\r\nalertString: {\r\n\tinvalid: '日期格式錯誤!',\r\n\tbeforeMin: '日期必須大於{#Date}!',\r\n\tafterMax: '日期必須小於{#Date}!',\r\n\tfromMoreTo: '日期迄日不可小於起日'\r\n}\r\n * @property {string} [invalid='日期格式錯誤!'] invalid\r\n * @property {string} [beforeMin='日期必須大於{#Date}!'] beforeMin\r\n * @property {string} [afterMax='日期必須小於{#Date}!'] afterMax\r\n * @property {string} [fromMoreTo='日期迄日不可小於起日'] fromMoreTo\r\n */\r\n\t\talertString: {\r\n\t\t\tinvalid: '日期格式錯誤!',\r\n\t\t\tbeforeMin: '日期必須大於{#Date}!',\r\n\t\t\tafterMax: '日期必須小於{#Date}!',\r\n\t\t\tfromMoreTo: '日期迄日不可小於起日'\r\n\t\t},\r\n\t\talignRight:false\r\n\t};\r\n\r\n\tModule.prototype.getOptions = function ( updateOption ) {\r\n\t\treturn this.options;\r\n\t};\r\n\r\n\tModule.prototype.updateOption = function ( updateOption ) {\r\n\t\t$.extend(this.options, updateOption);\r\n\t};\r\n\r\n\tModule.prototype.getMomentMinDate = function () {\r\n\t\treturn this.options.getMomentMinDate().add(1, 'days').format('YYYY/MM/DD');\r\n\t};\r\n\r\n\tModule.prototype.collectionIndexOf = function ( collection, value, predicate ) {\r\n\t\tfor (var i = 0; i < collection.length; i++) {\r\n\t\t\tif(predicate(collection[i], value))\r\n\t\t\t\treturn i;\r\n\t\t}\r\n\t\treturn -1;\r\n\t};\r\n\r\n\tModule.prototype.isBetween = function ( target, moment1, moment2 ) {\r\n\t\tvar from = moment.min(moment1, moment2);\r\n\t\tvar to = moment.max(moment1, moment2);\r\n\t\treturn (target.isAfter(from) && target.isBefore(to));\r\n\t};\r\n\r\n\tModule.prototype.equalsDatePart = function ( moment1, moment2 ) {\r\n\t\treturn moment1.format(\"YYYY/MM/DD\") == moment2.format(\"YYYY/MM/DD\");\r\n\t};\r\n\r\n\tModule.prototype.comparer = function ( moment1, moment2 ) {\r\n\t\tif(moment1.isBefore(moment2)) return -1;\r\n\t\tif(moment1.isAfter(moment2)) return 1;\r\n\t\treturn 0;\r\n\t};\r\n\r\n\tModule.prototype.tag = function ( name ) {\r\n\t\treturn $('<' + name + '>')\r\n\t};\r\n\r\n\tModule.prototype.checkDateRepair = function ( $input ) {\r\n\t\t$input.val( this.dateAutoRepair( $input.val(), false ) );\r\n\t};\r\n\r\n\tModule.prototype.dateAutoRepair = function ( val, runAlert ,showWeek) {\r\n\t\tvar date = '';\r\n\t\tvar today = moment();\r\n\t\tvar todayString = moment().format('YYYYMMDDd');\r\n\t\tvar valString = val.replace(/\\//g, '');\r\n\t\tvar valStringTwoChar = valString.substring(0, 2);\r\n\t\tvar minDate = this.options.minDate;\r\n\t\tvar maxDate = this.options.maxDate;\r\n\t\tvar minDateString = (!!minDate && minDate instanceof moment) ? minDate.format('YYYYMMDD') : null;\r\n\t\tvar maxDateString = (!!maxDate && maxDate instanceof moment) ? maxDate.format('YYYYMMDD') : null;\r\n\t\tvar nowYear = (new Date).getFullYear().toString();\r\n\t\tvar replaceString = '';\r\n\t\tvar todayWeek = new Date(val).getDay();\r\n\t\t//console.log(minDateString, maxDateString);\r\n\t\tif ( val.length > 0 ) {\r\n\t\t\t// console.log(this.dateValueStatus(val));\r\n\t\t\tswitch( this.dateValueStatus(val) ) {\r\n\t\t\t\tcase 'validAll':\r\n\t\t\t\t\tdate = moment(valString).format(this.options.dateFormat);\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'validMonthDay':\r\n\t\t\t\t\tdate = moment( nowYear + valString ).format(this.options.dateFormat);\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'validMonth':\r\n\t\t\t\t\tdate = moment( nowYear + valStringTwoChar + '01' ).format(this.options.dateFormat);\r\n\t\t\t\t\t// console.log(date, moment(minDateString).isBefore(date.replace(/\\//g, '')));\r\n\r\n\t\t\t\t\tif (runAlert) {\r\n\t\t\t\t\t\talert(this.options.alertString.invalid);\r\n\t\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'sameMin':\r\n\t\t\t\t\tdate = moment(minDateString).add(1, 'd').format(this.options.dateFormat);\r\n\t\t\t\t\tif (runAlert) {\r\n\t\t\t\t\t\tif ( /\\{#Date\\}/.test( this.options.alertString.beforeMin ) ) {\r\n\t\t\t\t\t\t\treplaceString = moment(minDateString).format(this.options.dateFormat);\r\n\t\t\t\t\t\t\talert( this.options.alertString.beforeMin.replace(/\\{#Date\\}/g, replaceString) );\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\talert(this.options.alertString.beforeMin);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'beforeMin':\r\n\t\t\t\t\tdate = moment(minDateString).add(1, 'd').format(this.options.dateFormat);\r\n\t\t\t\t\tif (runAlert) {\r\n\t\t\t\t\t\tif ( /\\{#Date\\}/.test( this.options.alertString.beforeMin ) ) {\r\n\t\t\t\t\t\t\treplaceString = moment(minDateString).format(this.options.dateFormat);\r\n\t\t\t\t\t\t\talert( this.options.alertString.beforeMin.replace(/\\{#Date\\}/g, replaceString) );\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\talert(this.options.alertString.beforeMin);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'sameMax':\r\n\t\t\t\t\tdate = moment(maxDateString).format(this.options.dateFormat);\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'afterMax':\r\n\t\t\t\t\tdate = moment(maxDateString).format(this.options.dateFormat);\r\n\t\t\t\t\tif (runAlert) {\r\n\t\t\t\t\t\tif ( /\\{#Date\\}/.test( this.options.alertString.afterMax ) ) {\r\n\t\t\t\t\t\t\treplaceString = moment(maxDateString).add(1, 'd').format(this.options.dateFormat);\r\n\t\t\t\t\t\t\talert( this.options.alertString.afterMax.replace(/\\{#Date\\}/g, replaceString) );\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\talert(this.options.alertString.afterMax);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'invalid':\r\n\t\t\t\t\tif ( minDateString !== null && moment( todayString ).isSameOrBefore( minDateString ) ) {\r\n\t\t\t\t\t\tdate = moment(minDateString).add(1, 'd').format(this.options.dateFormat);\r\n\t\t\t\t\t} else if ( maxDateString !== null && moment( todayString ).isAfter( maxDateString ) ) {\r\n\t\t\t\t\t\tdate = moment(maxDateString).format(this.options.dateFormat);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdate = moment().format(this.options.dateFormat);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log(date);\r\n\t\t\t\t\tif (runAlert) {\r\n\t\t\t\t\t\talert(this.options.alertString.invalid);\r\n\t\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tdate = moment().format(this.options.dateFormat);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(this.options.showWeekName){\r\n\t\t\tdate = date + '(' + this.options.weekdayName[todayWeek] + ')';\r\n\t\t}\r\n\t\treturn date;\r\n\t};\r\n\r\n\tModule.prototype.getPrevInputDom = function ( rangeIndex ) {\r\n\t\tvar $prevDom;\r\n\t\tif ( rangeIndex === 0 ) {\r\n\t\t\t$prevDom = this.$input;\r\n\t\t} else {\r\n\t\t\t$prevDom = $(this.options.range[rangeIndex - 1]);\r\n\t\t}\r\n\t\treturn $prevDom;\r\n\t};\r\n\r\n\tModule.prototype.getNextInputDom = function ( rangeIndex ) {\r\n\t\tvar $prevDom;\r\n\t\tif ( !rangeIndex && this.options.range.length > 0 ) {\r\n\t\t\t$prevDom = $(this.options.range[0]);\r\n\t\t} else {\r\n\t\t\t$prevDom = $(this.options.range[rangeIndex + 1]);\r\n\t\t}\r\n\t\treturn $prevDom;\r\n\t};\r\n\r\n\tModule.prototype.getAfterInputDom = function ( rangeIndex ) {\r\n\t\tvar $prevDom = function(index) {\r\n\t\t\tvar $dom = $(this.options.range[index]);\r\n\t\t\tfor (var i = index+1;i < this.options.range.length;i++) {\r\n\t\t\t\t$dom.add( this.options.range[i] );\r\n\t\t\t}\r\n\t\t\treturn $dom;\r\n\t\t}.call(this, !!rangeIndex ? rangeIndex : 0);\r\n\t\treturn $prevDom;\r\n\t};\r\n\r\n\tModule.prototype.getAllInputDom = function ( rangeIndex ) {\r\n\t\tvar $dom = $(this.$input);\r\n\t\tif ( !!this.options.range && typeof this.options.range === 'object' ) {\r\n\t\t\tfor (var i = rangeIndex || 0;i < this.options.range.length;i++) {\r\n\t\t\t\t$dom = $dom.add( this.options.range[i] );\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn $dom;\r\n\t};\r\n\r\n\tModule.prototype.dateIsAllNumber = function ( val ) {\r\n\t\treturn this.options.dataIsNumberRegex.test(val);\r\n\t};\r\n\r\n\tModule.prototype.dateValueStatus = function ( val ) {\r\n\t\tvar date = null;\r\n\t\tvar dateString = val.replace(/\\//g, '');\r\n\t\tvar dateStringMonthChar = dateString.substring(0, 2);\r\n\t\tvar dateStringMonthCharToInt = parseInt(dateStringMonthChar);\r\n\t\tvar dateStringDayChar = dateString.substring(2, 4) || null;\r\n\t\tvar dateStringDayCharToInt = parseInt(dateStringDayChar);\r\n\t\tvar minDate = this.options.minDate;\r\n\t\tvar maxDate = this.options.maxDate;\r\n\t\tvar minDateString = (!!minDate && minDate instanceof moment) ? minDate.format('YYYYMMDD') : null;\r\n\t\tvar maxDateString = (!!maxDate && maxDate instanceof moment) ? maxDate.format('YYYYMMDD') : null;\r\n\t\tvar nowYear = (new Date).getFullYear().toString();\r\n\t\tvar valueStatus = '';\r\n\t\tif ( dateString.length > 0 ) {\r\n\t\t\tif ( this.dateIsAllNumber( dateString ) ) {\r\n\t\t\t\tif ( dateString.length == 8 && moment(dateString).isValid() ) {\r\n\t\t\t\t\tvalueStatus = 'validAll';\r\n\t\t\t\t} else if ( dateString.length == 4 && dateStringMonthCharToInt <= 12 ) {\r\n\t\t\t\t\tif ( moment( nowYear + dateString ).isValid() ) {\r\n\t\t\t\t\t\tvalueStatus = 'validMonthDay';\r\n\t\t\t\t\t} else if ( moment( nowYear + dateStringMonthChar + '01' ).isValid() ) {\r\n\t\t\t\t\t\tvalueStatus = 'validMonth';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvalueStatus = 'invalid';\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalueStatus = 'invalid';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvalueStatus = 'invalid';\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalueStatus = 'null';\r\n\t\t}\r\n\t\tif ( valueStatus === 'validAll' ) {\r\n\t\t\tdate = moment(dateString).format('YYYYMMDD');\r\n\t\t} else if ( valueStatus === 'validMonthDay' ) {\r\n\t\t\tdate = moment( nowYear + dateString ).format('YYYYMMDD');\r\n\t\t} else if ( valueStatus === 'validMonth' && moment( nowYear + dateString ).isValid() ) {\r\n\t\t\tdate = moment( nowYear + dateStringMonthChar + '01' ).format('YYYYMMDD');\r\n\t\t\t// console.log( dateString, moment( nowYear + dateString ).isValid() );\r\n\t\t} else {\r\n\t\t\tvalueStatus = 'invalid';\r\n\t\t}\r\n\t\tif ( date !== null && minDateString !== null ) {\r\n\t\t\t// console.log(date, minDateString);\r\n\t\t\tif ( moment( date ).isSame( minDateString ) ) {\r\n\t\t\t\t// console.log(date);\r\n\t\t\t\tvalueStatus = 'sameMin';\r\n\t\t\t} else if ( moment( date ).isBefore( minDateString ) ) {\r\n\t\t\t\t// console.log(date);\r\n\t\t\t\tvalueStatus = 'beforeMin';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( date !== null && maxDateString !== null ) {\r\n\t\t\tif ( moment( date ).isSame( maxDateString ) ) {\r\n\t\t\t\tvalueStatus = 'sameMax';\r\n\t\t\t} else if ( moment( date ).isAfter( maxDateString ) ) {\r\n\t\t\t\tvalueStatus = 'afterMax';\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn valueStatus;\r\n\t};\r\n\r\n\tModule.prototype.drawCalendar = function ( $input, newOption, selected, display ) {\r\n\t\tvar table = this.tag('table');\r\n\t\tvar tr = this.tag('tr');\r\n\t\tvar self = this;\r\n\t\tvar momentDisplay, momentForPrint;\r\n\t\tvar minDateString = (newOption.getMomentMinDate()) ? newOption.getMomentMinDate().format('YYYYMMDD') : null;\r\n\t\tvar maxDateString = (newOption.getMomentMaxDate()) ? newOption.getMomentMaxDate().format('YYYYMMDD') : null;\r\n\t\tconsole.log()\r\n\t\tif(newOption.single === true ){\r\n\t\t\tselected = $input.attr('data-date');\r\n\t\t}\r\n\t\tif( typeof display === 'string' ) {\r\n\t\t\tmomentDisplay = moment(display.replace(/\\W/g,''));\r\n\t\t\tmomentForPrint = moment(display.replace(/\\W/g,''));\r\n\t\t} else {\r\n\t\t\tmomentDisplay = moment(display);\r\n\t\t\tmomentForPrint = moment(display);\r\n\t\t}\r\n\t\t// var momentForPrint = moment(display).add(-Math.floor((newOption.monthCount - 1) / 2), 'M');\r\n\t\tfor(var i = 0; i < newOption.monthCount; i++){\r\n\t\t\ttr.append(\r\n\t\t\t\tthis.tag('td')\r\n\t\t\t\t\t.append(this.drawMonth($input, newOption, selected, momentForPrint.format(newOption.dateFormat)))\r\n\t\t\t);\r\n\t\t\tmomentForPrint.add(1, 'M');\r\n\t\t}\r\n\t\t\r\n\t\tif(newOption.arrow){\r\n\t\t\ttable.append(this.tag('span').addClass(newOption.cssClass.arrow));\r\n\r\n\t\t\tif(!$input.attr(\"data-range\")){\r\n\t\t\t\ttable.children(\".\"+newOption.cssClass.arrow).css(\"left\",$input.width() / 2 - 3);\t\r\n\t\t\t}else{\r\n\t\t\t\tvar arrowLeft = $(newOption.range).offset().left - $input.offset().left + $(newOption.range).width() / 2 - 6;\r\n\t\t\t\ttable.children(\".\"+newOption.cssClass.arrow).css(\"left\",arrowLeft);\r\n\t\t\t}\t\r\n\t\t}\r\n\r\n\t\t// disable prev, next arrow or not\r\n\t\tconsole.log('drawCalendar => selected :',selected)\r\n\t\tvar firstDay = tr.find('>td:first table tr td[data-date]:first').attr('data-date').replace(/\\W/g,'');\r\n\t\tvar lastDay = tr.find('>td:last table tr td[data-date]:last').attr('data-date').replace(/\\W/g,'');\r\n\t\tvar minDate = moment(minDateString, \"YYYYMMDD\").add(1, \"days\").format(\"YYYYMMDD\");\r\n\t\tif( newOption.btnDisabled == true && parseInt(firstDay)\t<= parseInt(minDate) && parseInt(lastDay) >= parseInt(minDateString) ){\r\n\t\t\ttr.find('>td:first table tr td.' + newOption.cssClass.prev).html(newOption.prevDisabled);\r\n\t\t} else {\r\n\t\t\ttr.find('>td:first table tr td.' + newOption.cssClass.prev).html(newOption.prev).click(function () {\r\n\t\t\t\t$(this).parents('.' + newOption.cssClass.main).empty().append(\r\n\t\t\t\t\tself.drawCalendar($input, newOption, selected, momentDisplay.add(-1, 'M'))\r\n\t\t\t\t);\r\n\t\t\t});\t\r\n\t\t}\r\n\r\n\t\tif( newOption.btnDisabled == true && parseInt(firstDay)\t<= parseInt(maxDateString) && parseInt(lastDay) >= parseInt(maxDateString) ){\r\n\t\t\ttr.find('>td:last table tr td.' + newOption.cssClass.next).html(newOption.nextDisabled);\r\n\t\t} else {\r\n\t\t\ttr.find('>td:last table tr td.' + newOption.cssClass.next).html(newOption.next).click(function () {\r\n\t\t\t\t$(this).parents('.' + newOption.cssClass.main).empty().append(\r\n\t\t\t\t\tself.drawCalendar($input, newOption, selected, momentDisplay.add(1, 'M'))\r\n\t\t\t\t);\r\n\t\t\t});\t\r\n\t\t}\r\n\t\ttable.addClass(newOption.cssClass.wrapper).append(tr);\r\n\t\treturn table;\r\n\t};\r\n\r\n\tModule.prototype.drawMonth = function ( $input, newOption, selected, display ) {\r\n\t\tvar momentSelected = moment(selected.replace(/\\W/g,''));\r\n\t\tvar momentDisplay = moment(display.replace(/\\W/g,''));\r\n\t\tvar i = 0;\r\n\t\tvar self = this;\r\n\t\tvar $table = this.tag('table').addClass(newOption.cssClass.month).attr('data-date', momentDisplay.format(newOption.dateFormat)).append(\r\n\t\t\tthis.tag('tr')\r\n\t\t\t\t.append(this.tag('td').addClass(newOption.cssClass.prev))\r\n\t\t\t\t// .append(this.tag('td').addClass(newOption.cssClass.yearMonth).text(momentDisplay.format('YYYY年M月')))\r\n\t\t\t\t.append(this.tag('td').addClass(newOption.cssClass.yearMonth).append('' + momentDisplay.format('YYYY') + '' + momentDisplay.format('M') + '月'))\r\n\t\t\t\t.append(this.tag('td').addClass(newOption.cssClass.next))\r\n\t\t);\r\n\t\tconsole.log('drawMonth => selected: ',selected)\r\n\t\tconsole.log('drawMonth => momentSelected: ',momentSelected);\r\n\t\tif(newOption.monthCount == 1 && newOption.changeMonthYear){\r\n\t\t\t$table.find('.' + newOption.cssClass.yearMonth).empty();\r\n\t\t\tvar $selectYear = this.tag('select');\r\n\t\t\tvar minYear = typeof newOption.minYear === 'string' ? parseInt(newOption.minYear) : \r\n\t\t\t\t( newOption.minYear > 200 ? newOption.minYear : momentDisplay.year() - newOption.minYear);\r\n\t\t\tvar maxYear = typeof newOption.maxYear === 'string' ? parseInt(newOption.maxYear) : \r\n\t\t\t\t( newOption.maxYear > 200 ? newOption.maxYear : momentDisplay.year() + newOption.maxYear);\r\n\r\n\t\t\t//console.log(newOption)\r\n\t\t\t//noinspection JSDuplicatedDeclaration\r\n\t\t\tfor(i = minYear; i <= maxYear; i++) {\r\n\t\t\t\tif(i == momentDisplay.year()){\r\n\t\t\t\t\t$selectYear.append(this.tag('option').val(i).text(i).attr('selected', 'selected'));\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$selectYear.append(this.tag('option').val(i).text(i));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t$table.find('.' + newOption.cssClass.yearMonth).append($selectYear);\r\n\r\n\t\t\tvar $selectMonth = this.tag('select');\r\n\t\t\t//noinspection JSDuplicatedDeclaration\r\n\t\t\t\r\n\t\t\tvar minDate = newOption.minDate;\r\n\t\t\tvar maxDate = newOption.maxDate;\r\n\t\t\tif (!!newOption.minDate && typeof minDate == \"number\") minDate = moment().add(minDate, \"days\");\r\n\t\t\tif (!!newOption.maxDate && typeof maxDate == \"number\") maxDate = moment().add(maxDate, \"days\");\r\n\t\t\tvar minDateString = minDate.format(\"YYYYMMDD\");\r\n\t\t\tvar maxDateString = maxDate.format(\"YYYYMMDD\");\r\n\t\t\tvar minMonth = 0;\r\n\t\t\tvar maxMonth = 12;\r\n\t\t\tminDate = minDate.clone();\r\n\t\t\tminDate.add(1, \"days\");\r\n\t\t\tmaxDate = maxDate.clone();\r\n\t\t\tmaxDate.add(1, \"days\");\r\n\r\n\t\t\tif (newOption.renderValidMonth == true && (typeof minDate == \"object\" && typeof maxDate == \"object\" )) {\r\n\t\t\t\tif ($selectYear.val() == minDate.year() == maxDate.year()) {\r\n\t\t\t\t\tminMonth = minDate.month();\r\n\t\t\t\t\tmaxMonth = maxDate.month() + 1;\r\n\t\t\t\t}else if($selectYear.val() == minDate.year() && $selectYear.val() < maxDate.year()) {\r\n\t\t\t\t\tminMonth = minDate.month();\r\n\t\t\t\t}else if($selectYear.val() == maxDate.year()) {\r\n\t\t\t\t\tmaxMonth = maxDate.month() + 1;\r\n\t\t\t\t}else {}\r\n\t\t\t}else {}\r\n\r\n\t\t\tfor(i = minMonth; i < maxMonth; i++) {\r\n\t\t\t\tif(i == momentDisplay.month()) {\r\n\t\t\t\t\t$selectMonth.append(this.tag('option').val(i).text(i + 1).attr('selected', 'selected'));\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$selectMonth.append(this.tag('option').val(i).text(i + 1));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$selectYear.change(function() {\r\n\t\t\t\t$(this).parents('.' + newOption.cssClass.main).empty().append(self.drawCalendar($input, newOption, selected, self.dateAutoRepair( momentDisplay.year($(this).val()).format(\"YYYYMMDD\"), newOption.toggleAlert )));\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t\t$selectMonth.change(function () {\r\n\t\t\t\t$(this).parents('.' + newOption.cssClass.main).empty().append(self.drawCalendar($input, newOption, selected, self.dateAutoRepair( momentDisplay.month(parseInt($(this).val())).format(\"YYYYMMDD\"), newOption.toggleAlert )));\r\n\t\t\t});\r\n\t\t\t$table.find('.' + newOption.cssClass.yearMonth).append($selectMonth);\r\n\r\n\t\t}\r\n\t\tvar $trForWeekHeader = this.tag('tr').appendTo($table);\r\n\t\t//noinspection JSDuplicatedDeclaration\r\n\t\tfor(i = 0; i < 7; i++) {\r\n\t\t\t$trForWeekHeader.append(this.tag('th').addClass(newOption.cssClass.weekdayName).addClass(newOption.cssClass.weekday[i]).text(newOption.weekdayName[i]));\r\n\t\t}\r\n\r\n\r\n\t\tvar momentFirstDayOfMonth = moment(momentDisplay).startOf('month');\r\n\t\tvar momentLastDayOfMonth = moment(momentDisplay).endOf('month');\r\n\t\tvar firstDayOfWeek = momentFirstDayOfMonth.day();\r\n\t\tvar lastDay = momentLastDayOfMonth.date();\r\n\r\n\t\tvar $tr = this.tag('tr').appendTo($table);\r\n\t\tvar weekday = 0;\r\n\r\n\t\t//noinspection JSDuplicatedDeclaration\r\n\t\tfor(i = 0; i < firstDayOfWeek; i++) {\r\n\t\t\t$tr.append(this.tag('td').addClass(newOption.cssClass.date));\r\n\t\t\tweekday++;\r\n\t\t}\r\n\t\tvar momentForPrint = moment(momentFirstDayOfMonth);\r\n\t\t//noinspection JSDuplicatedDeclaration\r\n\t\tfor(i = 1; i <= lastDay; i++) {\r\n\t\t\tmomentForPrint.date(i);\r\n\t\t\tvar dataRange = parseInt($input.attr('data-range'));\r\n\t\t\tvar $td = this.tag('td')\r\n\t\t\t.attr('data-date', momentForPrint.format(newOption.dateFormat))\r\n\t\t\t.text(momentForPrint.date())\r\n\t\t\t.addClass(newOption.cssClass.date)\r\n\t\t\t.addClass(moment(new Date()).format(newOption.dateFormat) == momentForPrint.format(newOption.dateFormat) ? newOption.cssClass.today : '')\r\n\t\t\t.addClass(momentSelected.format(newOption.dateFormat) == momentForPrint.format(newOption.dateFormat) ? newOption.cssClass.selected : '')\r\n\t\t\t.addClass(newOption.cssClass.weekday[weekday])\r\n\t\t\t.addClass(newOption.isHoliday(momentForPrint) ? newOption.cssClass.holiday : \"\")\r\n\t\t\t.addClass(newOption.isDisabled(momentForPrint, isNaN(dataRange) ? -1 : dataRange) ? newOption.cssClass.disabled : \"\")\r\n\t\t\t.on('click', function (e) {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tvar $this = $(this);\r\n\t\t\t\tvar range = parseInt($input.attr('data-range'));\r\n\t\t\t\tvar clickedDateString = $this.attr('data-date');\r\n\t\t\t\tvar prevDateString;\r\n\t\t\t\tvar nextDateString;\r\n\t\t\t\tif($this.hasClass(newOption.cssClass.disabled)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif($(e.target).closest('.cy-ln').attr('data-Fix')==='true'){\r\n\t\t\t\t\t$('td').removeClass('selected');\r\n\t\t\t\t\t$this.addClass('selected');\r\n\t\t\t\t\tvar val = self.dateAutoRepair( $this.attr('data-date') || moment().format(newOption.dateFormat) ) ;\r\n\t\t\t\t\t$input.text('出發日期:'+val).attr('data-date',val)\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif( !newOption.range) {\r\n\t\t\t\t\t$input.val($this.attr('data-date')).trigger('change');\r\n\t\t\t\t\tself.close( $input );\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif( !$input.attr('data-range') ) {\r\n\t\t\t\t\t$input.val($this.attr('data-date')).attr('data-range', 0).removeClass(newOption.cssClass.inputActive).trigger('change');\r\n\t\t\t\t\tif ( self.comparer( moment($input.val().replace(/\\//g, '')), moment(self.getNextInputDom(range).val().replace(/\\//g, '')) ) === 1 ) {\r\n\t\t\t\t\t\tself.getAfterInputDom( range ).val('');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tself.getAfterInputDom( range ).addClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\tif(newOption.arrow) {\r\n\t\t\t\t\t\tvar value3 = $(newOption.range).offset().left - $input.offset().left + $(newOption.range).width() + 28;\r\n\t\t\t\t\t\tif($input.offset().top == $(newOption.range).offset().top && value3 < $('.cy-ln').width()){\r\n\t\t\t\t\t\t\tvar arrowLeft = $(newOption.range).offset().left - $('.cy-ln').offset().left + $(newOption.range).width() / 2 - 6; //減掉箭頭寬度一半\r\n\t\t\t\t\t\t\t$('.'+newOption.cssClass.arrow).css({\r\n\t\t\t\t\t\t\t\tleft: arrowLeft \r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tclearInterval(self.timer);\r\n\t\t\t\t\t\t\tself.timer = setInterval(function(){\r\n\t\t\t\t\t\t\t\t$('.cy-ln').css({\r\n\t\t\t\t\t\t\t\t\tleft: $(newOption.range).offset().left, top: $(newOption.range).offset().top + $input.outerHeight()\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t},25);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$this.trigger('mouseenter');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tprevDateString = self.getPrevInputDom(range).val();\r\n\t\t\t\tif ( self.comparer( moment(prevDateString.replace(/\\//g, '')), moment(clickedDateString.replace(/\\//g, '')) ) === 1 || self.getPrevInputDom(range).val() === '' ) {\r\n\t\t\t\t\tself.getPrevInputDom( range ).val( clickedDateString );\r\n\t\t\t\t\tself.getAfterInputDom( range ).val('');\r\n\t\t\t\t\t//self.getAfterInputDom( range ).val('');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$(newOption.range[range]).val($this.attr('data-date')).trigger('change');\r\n\t\t\t\tself.getPrevInputDom( range ).removeClass(newOption.cssClass.inputActive);\r\n\t\t\t\tif ( range < newOption.range.length - 1 ) {\r\n\t\t\t\t\trange++;\r\n\t\t\t\t\t$input.attr('data-range', range);\r\n\t\t\t\t\t$this.trigger('mouseenter');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.close($input);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.on('mouseenter', function (e) {\r\n\t\t\t\tvar $this = $(this);\r\n\t\t\t\tvar movedDateString = $this.attr('data-date'); //日期字串\r\n\t\t\t// if(self.$input[0].nextSibling === $(e.target).closest('.cy-ln')[0]){\r\n\t\t\t\tvar $nowInput = function(rangeIndex) {\r\n\t\t\t\t\tif ( !!rangeIndex ) {\r\n\t\t\t\t\t\treturn $( newOption.range[rangeIndex] );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn $input;\r\n\t\t\t\t\t}\r\n\t\t\t\t}($input.attr('data-range'));\r\n\t\t\t\tvar range = function(rangeStringNumber) {\r\n\t\t\t\t\tif ( rangeStringNumber ) {\r\n\t\t\t\t\t\treturn parseInt(rangeStringNumber);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}( $input.attr('data-range') );\r\n\t\t\t\tvar prevDateString;\r\n\t\t\t\tif($(this).hasClass(newOption.cssClass.disabled)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$(this).addClass(newOption.cssClass.hover);\r\n\t\t\t\tif(!newOption.range) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tprevDateString = self.getPrevInputDom(range).val();\r\n\t\t\t\tif ( !!prevDateString && self.comparer(\r\n\t\t\t\t\tmoment(prevDateString.replace(/\\//g, '')),\r\n\t\t\t\t\tmoment(movedDateString.replace(/\\//g, ''))\r\n\t\t\t\t) === 1 ) {\r\n\t\t\t\t\tconsole.log('before date!!!');\r\n\t\t\t\t\tif ( $nowInput.hasClass(newOption.cssClass.inputActive) ) {\r\n\t\t\t\t\t\t$nowInput.removeClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t\tself.getPrevInputDom(range).addClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log('after date!!!');\r\n\t\t\t\t\tif ( !$nowInput.hasClass(newOption.cssClass.inputActive) ) {\r\n\t\t\t\t\t\t$nowInput.addClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t\tself.getPrevInputDom(range).removeClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(newOption.range) {\r\n\t\t\t\t\tvar dataRange = parseInt($input.attr('data-range'));\r\n\t\t\t\t\tvar arrayMoment = self.getArrayMoment(isNaN(dataRange) ? -1 : dataRange);\r\n\t\t\t\t\tarrayMoment.push(moment($(this).attr('data-date').replace(/\\W/g,'')));\r\n\t\t\t\t\tself.refreshDateForPeriod(arrayMoment , $(e.target).closest('.cy-ln')[0]);\r\n\t\t\t\t}\r\n\t\t\t// }\r\n\t\t\t})\r\n\t\t\t.on('mouseleave', function () {\r\n\t\t\t\tif($(this).hasClass(newOption.cssClass.disabled)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$(this).removeClass(newOption.cssClass.hover);\r\n\t\t\t});\r\n\r\n\t\t\t$tr.append($td);\r\n\t\t\tweekday = (weekday + 1) % 7;\r\n\t\t\tif(weekday == 0) {\r\n\t\t\t\t$tr = this.tag('tr').appendTo($table);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn $table;\r\n\t};\r\n\r\n\tModule.prototype.getArrayInput = function ( except, $input ) {\r\n\t\tvar array = [$input];\r\n\t\tif(except == -1)\r\n\t\t\tarray = [];\r\n\r\n\t\t$.each(this.options.range, function ( index, value ) {\r\n\t\t\tif(typeof except == 'number' && except == index) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tarray.push($(value));\r\n\t\t});\r\n\t\t// console.log(array);\r\n\t\treturn array;\r\n\t};\r\n\r\n\tModule.prototype.getArrayMoment = function ( except ) {\r\n\t\tvar array = [];\r\n\t\t$.each(this.getArrayInput(except, this.$input), function (index, value) {\r\n\t\t\tvar momentValue = moment($(value).val().replace(/\\W/g,''));\r\n\t\t\tif(!momentValue.isValid())\r\n\t\t\t\treturn;\r\n\r\n\t\t\tarray.push(momentValue);\r\n\t\t});\r\n\r\n\t\treturn array;\r\n\t};\r\n\r\n\tModule.prototype.refreshDateForPeriod = function ( arrayMoment , ele ) {\r\n\t\tvar momentFrom = arrayMoment[0];\r\n\t\tvar momentTo = arrayMoment[arrayMoment.length - 1];\r\n\t\tvar self = this;\r\n\t\tif(arrayMoment.length == 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tarrayMoment.sort(this.comparer);\r\n\t\t// $('.' + this.options.cssClass.main + ' .' + this.options.cssClass.date).each(function (index, value) {\r\n\t\t$(ele).find('td.date').each(function (index, value) {\r\n\t\t\tvar $date = $(value);\r\n\t\t\tvar dataDate = $date.attr('data-date');\r\n\t\t\tif(!dataDate)\r\n\t\t\t\treturn;\r\n\r\n\t\t\tvar dataRange = parseInt(self.$input.attr('data-range'));\r\n\r\n\t\t\tvar momentDate = moment(dataDate.replace(/\\W/g,''));\r\n\t\t\t$date\r\n\t\t\t\t.removeClass(self.options.cssClass.disabled)\r\n\t\t\t\t.removeClass(self.options.cssClass.selected)\r\n\t\t\t\t.removeClass(self.options.cssClass.start)\r\n\t\t\t\t.removeClass(self.options.cssClass.between)\r\n\t\t\t\t.removeClass(self.options.cssClass.point)\r\n\t\t\t\t.removeClass(self.options.cssClass.end)\r\n\t\t\t\t.addClass(self.options.isDisabled(momentDate, isNaN(dataRange) ? -1 : dataRange) ? self.options.cssClass.disabled : \"\");\r\n\t\t\tif(self.equalsDatePart(momentDate, momentFrom)) {\r\n\t\t\t\t$date.addClass(self.options.cssClass.between).addClass(self.options.cssClass.start);\r\n\t\t\t} else if(self.equalsDatePart(momentDate, momentTo)) {\r\n\t\t\t\t$date.addClass(self.options.cssClass.between).addClass(self.options.cssClass.end);\r\n\t\t\t} else if(self.isBetween(momentDate, momentFrom, momentTo)){\r\n\t\t\t\tif(-1 == self.collectionIndexOf(arrayMoment, momentDate, self.equalsDatePart)) {\r\n\t\t\t\t\t$date.addClass(self.options.cssClass.between);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$date.addClass(self.options.cssClass.between).addClass(self.options.cssClass.point);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// do nothing.\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tModule.prototype.close = function (e) {\r\n\t\tconsole.log('run close');\r\n\t\t$('.' + this.options.cssClass.main).not('[data-fix=true]').remove();\r\n\t\tthis.getAllInputDom().removeClass(this.options.cssClass.inputActive);\r\n\t\tclearInterval(this.timer);\r\n\t}\r\n\r\n\tModule.prototype.SingleInput = function(ele,opt,module) {\r\n\t\tvar title = $(ele);\r\n\t\tvar $body = $('.container');\r\n\t\tvar offset = ele.offset();\r\n\t\tvar val = module.dateAutoRepair( ele.text().substring(5) || moment().format(opt.dateFormat) ) ;\r\n\t\tvar minValue = function(inputValue, minDate) {\r\n\t\t\tvar date;\r\n\t\t\tif ( !!minDate && minDate.isValid() ) {\r\n\t\t\t\tdate = moment( minDate ).format(opt.dateFormat);\r\n\t\t\t} else {\r\n\t\t\t\tdate = moment().format(opt.dateFormat);\r\n\t\t\t}\r\n\t\t\treturn date;\r\n\t\t}( ele.val(), opt.minDate );\r\n\t\tvar $ele = module.tag('div');\r\n\t\tvar displayDate = function(a, b){\r\n\t\t\tvar inputValueBeforeMin = moment( a.replace(/\\//g, '') ).isBefore( b.replace(/\\//g, '') );\r\n\t\t\tif ( inputValueBeforeMin ) {\r\n\t\t\t\treturn b;\r\n\t\t\t} else {\r\n\t\t\t\treturn a;\r\n\t\t\t}\r\n\t\t}(val, minValue);\r\n\t\t// module.close();\r\n\t\tmodule.getAllInputDom().removeClass(opt.cssClass.inputActive);\r\n\t\tif ( typeof rangeIndex === 'number' ) {\r\n\t\t\tele.attr('data-range', rangeIndex);\r\n\t\t\t$(opt.range[rangeIndex]).addClass(opt.cssClass.inputActive);\r\n\t\t} else {\r\n\t\t\tele.attr('data-range', null).addClass(opt.cssClass.inputActive);\r\n\t\t}\r\n\t\t$(ele).attr('data-date',val);\r\n\t\t$(title).after(\r\n\t\t\t$ele.addClass( opt.cssClass.main + ' ' + opt.cssClass.extra).append( module.drawCalendar(ele, opt, val, displayDate) ).attr('data-fix',true)\r\n\t\t).text('出發日期:'+val); //初始\r\n\t\t// var CylnCssOption = {\r\n\t\t// \ttop: 0,\r\n\t\t// \tleft:0\r\n\t\t// };\r\n\r\n\t\t// $ele.css( CylnCssOption ).find('.arrow').css( {\r\n\t\t// \tleft: ele.offset().left - $('.cy-ln').offset().left + (ele.width() / 2) - 3\r\n\t\t// } );\r\n\t\t// var input = this.input;\r\n\t\t// var $input = $(input);\r\n\t\t// var $span = $(input).prev();\r\n\t\t// $input.css({'padding':'0','padding':'0 0 13px 92px','height':'45px','width': '224.45px'});\r\n\t\t// $span.css({'text-align':'right','width':'6.5em','padding':'0','height':'45px','line-height':'35px'});\r\n\r\n\r\n\t}\r\n\r\n\t/**\r\n * cy_ln - an awesome jQuery plugin. \r\n * @function external:\"jQuery.fn\".cy_ln\r\n *\r\n * @param {PluginOption} option\r\n * \r\n * @example\r\n\r\n$('#test').cy_ln({\r\n\thideArea: 'body',\r\n\tprev: '',\r\n\tnext: '',\r\n\tchangeMonthYear: false,\r\n\tminYear: 10,\r\n\tmaxYear: 10,\r\n\tminDate: null,\r\n\tmaxDate: null,\r\n\tmonthCount: 1,\r\n\tholiday: null,\r\n\tdisabled: null,\r\n\trange: null,\r\n\tarrow: false,\r\n\ttoggleAlert: true,\r\n\tdateFormat: 'YYYY/MM/DD',\r\n\tdataIsNumberRegex: /^\\d[\\d|\\/]+\\d$/,\r\n\tmoduleCloseEvent: 'cy_ln.close',\r\n\tweekdayName: moment.weekdaysMin(),\r\n\tcssClass: {\r\n\t\tmain: 'cy-ln',\r\n\t\twrapper: 'wrapper',\r\n\t\tmonth: 'month',\r\n\t\tprev: 'prev',\r\n\t\tyearMonth: 'yearMonth',\r\n\t\tnext: 'next',\r\n\t\tweekdayName: 'weekdayName',\r\n\t\tdate: 'date',\r\n\t\tweekday: [ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'],\r\n\t\tholiday: 'holiday',\r\n\t\ttoday: 'today',\r\n\t\thover: 'hover',\r\n\t\tdisabled: 'disabled',\r\n\t\tselected: 'selected',\r\n\t\tstart: 'start',\r\n\t\tarrow: 'arrow',\r\n\t\tbetween: 'between',\r\n\t\tpoint: 'point',\r\n\t\tend: 'end'\r\n\t},\r\n\talertString: {\r\n\t\tinvalid: '日期格式錯誤!',\r\n\t\tbeforeMin: '日期必須大於{#Date}!',\r\n\t\tafterMax: '日期必須小於{#Date}!',\r\n\t\tfromMoreTo: '日期迄日不可小於起日'\r\n\t}\r\n});\r\n\r\n * @returns {external:jQuery} Object\r\n */\r\n\r\n /**\r\n * getOptions description...\r\n * @function external:\"jQuery.fn\".cy_ln\r\n * @param {string} 'getOptions' run getOptions method\r\n * @return {PluginOption} PluginOption return PluginOption\r\n * \r\n */\r\n /**\r\n * updateOption description...\r\n * @function external:\"jQuery.fn\".cy_ln\r\n * @param {string} 'updateOption' run updateOption method'\r\n * \r\n */\r\n\t$.fn[ModuleName] = function(option, stringOpts) {\r\n\t\treturn this.each(function(){\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar module = $this.data( ModuleName );\r\n\t\t\tvar newOption = null;\r\n\t\t\tif ( !!module ) {\r\n\t\t\t\tif ( typeof option === 'string' && typeof stringOpts === 'undefined' ) {\r\n\t\t\t\t\tmodule[option]();\r\n\t\t\t\t} else if ( typeof option === 'string' && typeof stringOpts === 'object' ) {\r\n\t\t\t\t\tmodule[option](stringOpts);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log('unsupported options!');\r\n\t\t\t\t\tthrow 'unsupported options!';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tnewOption = $.extend( true,\t{},\tModule.DEFAULTS, {\r\n\t\t\t\t\tgetMomentMinDate : function () {\r\n\t\t\t\t\t\tif (this.minDate == null) {\r\n\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($.isNumeric(newOption.minDate)) {\r\n\t\t\t\t\t\t\treturn moment().add(newOption.minDate, 'd');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (this.minDate != null) {\r\n\t\t\t\t\t\t\treturn moment(newOption.minDate);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetMomentMaxDate : function () {\r\n\t\t\t\t\t\tif (newOption.maxDate == null) {\r\n\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($.isNumeric(newOption.maxDate)) {\r\n\t\t\t\t\t\t\treturn moment().add(newOption.maxDate, 'd');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (this.maxDate != null) {\r\n\t\t\t\t\t\t\treturn moment(newOption.maxDate);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tisDisabled: function (moment, index) {\r\n\t\t\t\t\t\tvar momentMinDate = this.getMomentMinDate();\r\n\t\t\t\t\t\tvar momentMaxDate = this.getMomentMaxDate();\r\n\t\t\t\t\t\t//console.log(moment.format('YYYYMMDD'), momentMinDate.format('YYYYMMDD'), momentMaxDate.format('YYYYMMDD'), moment.isBefore(momentMinDate), moment.isAfter(momentMaxDate));\r\n\r\n\t\t\t\t\t\tif(momentMinDate != null && moment.isSameOrBefore(momentMinDate))\r\n\t\t\t\t\t\t\treturn true;\r\n\r\n\t\t\t\t\t\tif(momentMaxDate != null && moment.isAfter(momentMaxDate))\r\n\t\t\t\t\t\t\treturn true;\r\n\r\n\t\t\t\t\t\tif($.isFunction(this.disabled) && this.disabled(moment))\r\n\t\t\t\t\t\t\treturn true;\r\n\r\n\t\t\t\t\t\t//noinspection RedundantIfStatementJS\r\n\t\t\t\t\t\tif ($.isArray(this.disabled) && this.disabled[index + 1](moment))\r\n\t\t\t\t\t\t\treturn true;\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tisHoliday: function (moment) {\r\n\t\t\t\t\t\tif($.isFunction(this.holiday) && this.holiday(moment))\r\n\t\t\t\t\t\t\treturn true;\r\n\r\n\t\t\t\t\t\t//noinspection RedundantIfStatementJS\r\n\t\t\t\t\t\tif($.isArray(this.holiday) && 0 <= $.inArray(moment.format('YYYY/MM/DD'), newOption.holiday))\r\n\t\t\t\t\t\t\treturn true;\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}, ( typeof option === 'object' && option ) );\r\n\t\t\t\tmodule = new Module(this, newOption);\r\n\t\t\t\t$this.data( ModuleName, module );\r\n\r\n\t\t\t\tif($.type(newOption.range) == 'string') {\r\n\t\t\t\t\tnewOption.range = [ newOption.range ];\r\n\t\t\t\t}\r\n\t\t\t\t(function ($input, newOption) {\r\n\t\t\t\t\tif(newOption.single){\r\n\t\t\t\t\t\tmodule.SingleInput($input,newOption,module);\r\n\t\t\t\t\t\t$input.attr('disabled',true);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$($input).on('click', function (e, rangeIndex) {\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\tvar $body = $('body');\r\n\t\t\t\t\t\tvar offset = $input.offset();\r\n\t\t\t\t\t\tvar val = module.dateAutoRepair( $input.val() || moment().format(newOption.dateFormat) ) ;\r\n\t\t\t\t\t\tvar minValue = function(inputValue, minDate) {\r\n\t\t\t\t\t\t\tvar date;\r\n\t\t\t\t\t\t\tif ( !!minDate && minDate.isValid() ) {\r\n\t\t\t\t\t\t\t\tdate = moment( minDate ).format(newOption.dateFormat);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tdate = moment().format(newOption.dateFormat);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn date;\r\n\t\t\t\t\t\t}( $input.val(), newOption.minDate );\r\n\t\t\t\t\t\tvar $ele = module.tag('div');\r\n\t\t\t\t\t\tvar displayDate = function(a, b){\r\n\t\t\t\t\t\t\tvar inputValueBeforeMin = moment( a.replace(/\\//g, '') ).isBefore( b.replace(/\\//g, '') );\r\n\t\t\t\t\t\t\tif ( inputValueBeforeMin ) {\r\n\t\t\t\t\t\t\t\treturn b;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treturn a;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}(val, minValue);\r\n\t\t\t\t\t\tmodule.close($input);\r\n\t\t\t\t\t\tmodule.getAllInputDom().removeClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t\tif ( typeof rangeIndex === 'number' ) {\r\n\t\t\t\t\t\t\t$input.attr('data-range', rangeIndex);\r\n\t\t\t\t\t\t\t$(newOption.range[rangeIndex]).addClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$input.attr('data-range', null).addClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$body.one( 'click', function(e) {\r\n\t\t\t\t\t\t\tmodule.close( $input );\r\n\t\t\t\t\t\t} ).append(\r\n\t\t\t\t\t\t\t$ele.addClass( newOption.cssClass.main + ' ' + newOption.cssClass.extra).css({\r\n\t\t\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\t\t\t'z-index': '10001'\r\n\t\t\t\t\t\t\t}).append( module.drawCalendar($input, newOption, val, displayDate) )\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tconsole.log($ele.outerWidth(),$input.outerWidth());\r\n\r\n\t\t\t\t\t\tvar CylnCssOption = {\r\n\t\t\t\t\t\t\tleft: (newOption.alignRight) ?\toffset.left- ($ele.outerWidth()- $input.outerWidth())+ newOption.cssClass.left : offset.left+ newOption.cssClass.left,\r\n\t\t\t\t\t\t\ttop: offset.top+ newOption.cssClass.top+ $input.outerHeight(),\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t$ele.css( CylnCssOption ).find('.arrow').css( {\r\n\t\t\t\t\t\t\tleft: $input.offset().left - $('.cy-ln').offset().left + ($input.width() / 2) - 3\r\n\t\t\t\t\t\t} );\r\n\r\n\t\t\t\t\t\t// if(newOption.arrow){\r\n\t\t\t\t\t\t// \t$ele.css({\r\n\t\t\t\t\t\t// \t\tleft: $input.offset().left + newOption.cssClass.left , top: $input.offset().top + newOption.cssClass.top + $input.outerHeight() ,\r\n\t\t\t\t\t\t// \t\tposition: 'absolute','z-index':'10001'\r\n\t\t\t\t\t\t// \t});\r\n\t\t\t\t\t\t// }\r\n\r\n\t\t\t\t\t\tmodule.timer = setInterval(function() {\r\n\t\t\t\t\t\t\tvar left = $input.offset().left + newOption.cssClass.left;\r\n\t\t\t\t\t\t\t$ele.css({\r\n\t\t\t\t\t\t\t\tleft: (newOption.alignRight) ?\tleft- ($ele.outerWidth()- $input.outerWidth()) : left , \r\n\t\t\t\t\t\t\t\ttop: $input.offset().top + newOption.cssClass.top + $input.outerHeight()\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t},25);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$('.cy-ln').on('click', function (e) {\r\n\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif(newOption.range) {\r\n\t\t\t\t\t\t\tvar arrayMoment = module.getArrayMoment();\r\n\t\t\t\t\t\t\tmodule.refreshDateForPeriod(arrayMoment , $ele);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}).on('keydown', function (e) {\r\n\t\t\t\t\t\t//console.log('keydown');\r\n\t\t\t\t\t\tif(!$(this).is(\":focus\")) {\r\n\t\t\t\t\t\t\tmodule.close();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(e.keyCode === 9) {\r\n\t\t\t\t\t\t\tmodule.close();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}).on('change', function () {\r\n\t\t\t\t\t\tvar weekdayName = module.options.weekdayName;\r\n\t\t\t\t\t\tvar inputValue = $(this).val();\r\n\t\t\t\t\t\tvar dateRepairedString = module.dateAutoRepair(inputValue, newOption.toggleAlert);\r\n\t\t\t\t\t\t$(this).val(dateRepairedString);\r\n\t\t\t\t\t}).on('checkDateRepair', function() {\r\n\t\t\t\t\t\tmodule.checkDateRepair( $(this) );\r\n\t\t\t\t\t}).on('checkDateStatus', function(e, returnStatus) {\r\n\t\t\t\t\t\treturnStatus.status = module.dateValueStatus(returnStatus.date);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif( !!newOption.range && $.type(newOption.range) === 'array' ) {\r\n\t\t\t\t\t\t$.each(newOption.range, function (index, value) {\r\n\t\t\t\t\t\t\t$(value).on('focusin', function () {\r\n\t\t\t\t\t\t\t\tconsole.log(index);\r\n\t\t\t\t\t\t\t\t$input.trigger('click', [index]);\r\n\t\t\t\t\t\t\t}).on('keydown', function (e) {\r\n\t\t\t\t\t\t\t\tif(!$(this).is(\":focus\"))\r\n\t\t\t\t\t\t\t\t\tmodule.close();\r\n\t\t\t\t\t\t\t\tif(e.keyCode === 9)\r\n\t\t\t\t\t\t\t\t\tmodule.close();\r\n\t\t\t\t\t\t\t}).on('click',function(e){\r\n\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t}).on('change', function(e) {\r\n\t\t\t\t\t\t\t\tvar inputValue = $(this).val();\r\n\t\t\t\t\t\t\t\tvar dateRepairedString = module.dateAutoRepair(inputValue, newOption.toggleAlert);\r\n\t\t\t\t\t\t\t\tvar dateFrom = $input.val().replace(/\\//g, '');\r\n\t\t\t\t\t\t\t\tvar dateTo = dateRepairedString.replace(/\\//g, '');\r\n\t\t\t\t\t\t\t\tvar canCompared = !!dateFrom && moment(dateFrom).isValid() && !!dateTo && moment(dateTo).isValid();\r\n\t\t\t\t\t\t\t\tif ( !!canCompared && moment(dateFrom).isAfter(dateTo) ) {\r\n\t\t\t\t\t\t\t\t\t$(this).val( moment(dateFrom).add(1, 'd').format(newOption.dateFormat) );\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t$(this).val(dateRepairedString);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}).on('checkDateRepair', function() {\r\n\t\t\t\t\t\t\t\tmodule.checkDateRepair( $(this) );\r\n\t\t\t\t\t\t\t}).on('checkDateStatus', function(e, returnStatus) {\r\n\t\t\t\t\t\t\t\treturnStatus.status = module.dateValueStatus(returnStatus.date);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t})( $this, module.options );\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\t\r\n\t$(function(){\r\n\t\tvar $modules = $('[data-toggle=\"cy-ln\"]');\r\n\r\n\t\t$modules.each(function(index,dom){\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\tisShowWeekName = ($this.attr(\"data-showWeekName\") == 'true')? true : false,\r\n\t\t\t\tisSingle = ($this.attr(\"data-single\") == 'true')? true : false,\r\n\t\t\t\tisRangeRole = ($this.attr(\"data-role\") == \"range\"),\r\n\t\t\t\tneedRange = ($this.attr('data-cy-ln') == 'range')? true : false,\r\n\t\t\t\tneedArrow = ($this.attr('data-arrow') == 'true') || false,\r\n\t\t\t\tchangeMonthYear = ($this.attr(\"data-change\") == \"true\") || false,\r\n\t\t\t\tminDateFromToday = typeof $this.attr(\"data-minDate\") !== 'undefined' ? $this.attr(\"data-minDate\") : null,\r\n\t\t\t\tmaxDateFromToday = typeof $this.attr(\"data-maxDate\") !== 'undefined' ? $this.attr(\"data-maxDate\") : null,\r\n\t\t\t\tisAlert = ($this.attr('data-toggleAlert') == 'true') || false,\r\n\t\t\t\talertStringInvalid = typeof $this.attr('data-invalidAlert') !== 'undefined' ? $this.attr('data-invalidAlert') : '日期格式錯誤!',\r\n\t\t\t\talertStringbeforeMin = typeof $this.attr('data-beforeMinAlert') !== 'undefined' ? $this.attr('data-beforeMinAlert') : '日期必須大於{#Date}!',\r\n\t\t\t\talertStringafterMax = typeof $this.attr('data-afterMaxAlert') !== 'undefined' ? $this.attr('data-afterMaxAlert') : '日期必須小於{#Date}!',\r\n\t\t\t\talertStringFromMoreTo = typeof $this.attr('data-fromMoreTo') !== 'undefined' ? $this.attr('data-fromMoreTo') : '日期迄日不可小於起日';\r\n\t\t\tif ( !isRangeRole ) {\r\n\t\t\t\tvar $rangeRoles = [];\r\n\t\t\t\tfor (var i = index+1; i < $modules.length; i++) {\r\n\t\t\t\t\tif($modules.eq(i).attr(\"data-role\") != \"range\") {break;}\r\n\t\t\t\t\t$rangeRoles.push($modules.eq(i)[0]);\r\n\t\t\t\t}\r\n\t\t\t\t$this.cy_ln({\r\n\t\t\t\t\tshowWeekName:!!isShowWeekName ? true : false,\r\n\t\t\t\t\tsingle:!!isSingle ? true : false,\r\n\t\t\t\t\tmonthCount: !!needRange ? 2 : 1,\r\n\t\t\t\t\trange: !!needRange ? $rangeRoles : null,\r\n\t\t\t\t\tarrow: !!needArrow ? true : false,\r\n\t\t\t\t\tbtnDisabled:false,\r\n\t\t\t\t\tminDate: !!minDateFromToday ? moment().subtract(parseInt(minDateFromToday), 'days') : null,\r\n\t\t\t\t\tmaxDate: !!maxDateFromToday ? moment().add(parseInt(maxDateFromToday), 'days') : null,\r\n\t\t\t\t\tweekdayName: ['日','一','二','三','四','五','六'],\r\n\t\t\t\t\tchangeMonthYear: !!changeMonthYear ? true : false,\r\n\t\t\t\t\ttoggleAlert: isAlert,\r\n\t\t\t\t\talertString: {\r\n\t\t\t\t\t\tinvalid: alertStringInvalid,\r\n\t\t\t\t\t\tbeforeMin: alertStringbeforeMin,\r\n\t\t\t\t\t\tafterMax: alertStringafterMax,\r\n\t\t\t\t\t\tfromMoreTo: alertStringFromMoreTo\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n})(jQuery, moment);\n\n\n// WEBPACK FOOTER //\n// ./magaele/cy-ln/module.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/clp_gplt/css.scss\n// module id = 7\n// module chunks = 0 1 2 3 4 6 9","import 'Magaele/clp_gplt/module.js';\r\nimport 'Magaele/clp_gpby/module.js';\r\nimport 'Magaele/cy-ln/module.js';\n\n\n// WEBPACK FOOTER //\n// ./entry/visa_script.entry.js","import 'Magaele/ic-ln/css.scss';\r\nimport 'Magaele/tp_gplt/css.scss';\r\nimport 'Magaele/bt_gptr/css.scss'; \r\nimport 'Magaele/clp_gplt/css.scss';\r\nimport 'Magaele/clp_gpby/css.scss'; \r\nimport 'Magaele/tb_gpvs/css.scss'; \r\nimport 'Magaele/th_gpls/css.scss'; \r\nimport 'Magaele/cy-ln/css.scss'; \r\n\r\n\r\n\r\nimport \"../css/css.scss\"; \n\n\n// WEBPACK FOOTER //\n// ./entry/visa_style.entry.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/tb_gpvs/css.scss\n// module id = 89\n// module chunks = 9","(function($) {\r\n 'use strict';\r\n\r\n var ModuleName = 'clp_gpby';\r\n\r\n var Module = function(element, options) {\r\n\r\n this.ele = element;\r\n this.$ele = $(element);\r\n\r\n this.option = options;\r\n this.$maxH;\r\n this.btnEle;\r\n this.$clp_btn;\r\n this.$clp_btntext;\r\n this.opHtml;\r\n this.clsHtml;\r\n\r\n };\r\n\r\n Module.DEFAULT = {\r\n btnSettings:{ closeHtml:null, openHtml:null },\r\n open:false,\r\n whenClosed: function ($this) { /* console.log(\"closed\"); */ }\r\n };\r\n\r\n Module.prototype.setClick = function(){\r\n \r\n this.$clp_btn.on('click', function() {\r\n\r\n this.$ele.toggleClass('open');\r\n\r\n if(this.$clp_btntext.html() == this.clsHtml){\r\n if(this.opHtml == null){\r\n this.$clp_btntext.html(this.clsHtml);\r\n }else{\r\n this.$clp_btntext.html(this.opHtml); \r\n }\r\n }else{\r\n this.$clp_btntext.html(this.clsHtml); \r\n }\r\n if (!this.$ele.hasClass(\"open\")) { (this.option.whenClosed && typeof this.option.whenClosed == \"function\") && this.option.whenClosed(this.$ele); }\r\n \r\n }.bind(this));\r\n\r\n }\r\n\r\n Module.prototype.setResize = function(){\r\n\r\n $(window).on('resize', function(){\r\n\r\n var currentHeight = this.$ele.children('.high').outerHeight();\r\n var maxHeight = parseInt(this.$ele.children('.high').css('max-height')) || 0;\r\n\r\n if( currentHeight >= maxHeight ){\r\n this.$ele.addClass('active');\r\n this.$clp_btn.css('display','inline-block');\r\n } else {\r\n this.$ele.removeClass('active');\r\n this.$clp_btn.hide();\r\n }\r\n\r\n // if( window.innerWidth < 980 ){\r\n // $('.m-appear').removeClass('clear');\r\n // $('.pc-none').removeClass('clear');\r\n // $('.m-none').addClass('clear');\r\n // }else{\r\n // $('.m-appear').addClass('clear');\r\n // $('.pc-none').addClass('clear');\r\n // $('.m-none').removeClass('clear');\r\n // }\r\n\r\n }.bind(this));\r\n\r\n $(window).trigger('resize');\r\n\r\n }\r\n\r\n Module.prototype.clickDelete = function() {\r\n var $delete = this.$ele.find('.filter_btn>.delete');\r\n var _self = this,\r\n $self = this.$ele;\r\n $delete.on('click',function(){\r\n if (!!_self.option.whenClickDelete && typeof _self.option.whenClickDelete == \"function\") _self.option.whenClickDelete($(this),$self)\r\n });\r\n }\r\n\r\n\r\n Module.prototype.init = function() {\r\n\r\n // add Class到this.$ele.\r\n this.$ele.addClass(ModuleName);\r\n\r\n // init $maxH.\r\n this.$maxH = this.option.maxHeight;\r\n\r\n // 如果html上沒有.clp_btn, 則生成一個.\r\n if( this.$ele.children('.clp_btn').length == 0 ){\r\n if (this.option.mode === 'filter') {\r\n console.log('filter')\r\n this.btnEle='
清空選項
' + this.option.btnSettings.closeHtml + '
'\r\n } else {\r\n console.log('other')\r\n this.btnEle = '' + this.option.btnSettings.closeHtml + '';\r\n\r\n }\r\n this.$ele.children('.high').after(this.btnEle);\r\n }\r\n\r\n // 選取.clp_btn.\r\n this.$clp_btn = this.$ele.find('.clp_btn');\r\n this.$clp_btntext = this.$ele.find('.clp_btn>span');\r\n\r\n // 有無輸入$maxH的處置\r\n if(this.$maxH){\r\n if(this.$ele.hasClass('open')){\r\n this.$ele.children('.high').css('max-height', 'inherit');\r\n }else{\r\n this.$ele.children('.high').css('max-height', this.$maxH);\r\n }\r\n }\r\n\r\n // 設定click & resize method.\r\n this.setClick();\r\n this.setResize();\r\n this.clickDelete();\r\n // 如果btnSettings.openHtml沒輸入時的處置.\r\n if(this.option.btnSettings.openHtml){\r\n // 如有設定btnSettings.openHtml時.\r\n this.opHtml = this.option.btnSettings.openHtml;\r\n }else{\r\n // 如沒設定btnSettings.openHtml時.\r\n if(this.option.open){\r\n // 如收合器預設為打開時,\r\n // html上的.clp_btn則視為open狀態,\r\n // 所以opHtml就給予.clp_btn的文字.\r\n this.opHtml = this.$clp_btntext.html();\r\n }else{\r\n // 如收合器預設為關閉時,\r\n // html上的.clp_btn則視為open狀態,\r\n // 所以opHtml就給予''.\r\n this.opHtml = '';\r\n }\r\n }\r\n\r\n // 如果btnSettings.closeHtml沒輸入時的處置.\r\n if(this.option.btnSettings.closeHtml){\r\n // 如有設定btnSettings.closeHtml時.\r\n this.clsHtml = this.option.btnSettings.closeHtml;\r\n }else{\r\n // 如沒設定btnSettings.openHtml時.\r\n if(this.option.open){\r\n // 如收合器預設為打開時, \r\n // html上的.clp_btn則視為open狀態,\r\n // 所以clsHtml就給予''.\r\n this.clsHtml = '';\r\n }else{\r\n // 如收合器預設為關閉時.\r\n // html上的.clp_btn則視為close狀態,\r\n // 所以clsHtml就給予.clp_btn的文字.\r\n this.clsHtml = this.$clp_btntext.html();\r\n }\r\n }\r\n\r\n // 給按鈕預設文字.\r\n this.$clp_btntext.html(this.clsHtml);\r\n\r\n // 如收合器open參數設定為開, 則trigger按鈕click一次.\r\n if(this.option.open){\r\n this.$clp_btn.trigger('click');\r\n }\r\n\r\n };\r\n\r\n $.fn[ModuleName] = function(options) {\r\n\r\n return this.each(function() {\r\n var $this = $(this);\r\n // var module = $this.data( ModuleName );\r\n var opts = $.extend({}, Module.DEFAULT, (typeof options === 'object' && options));\r\n var module = new Module(this, opts);\r\n module.init();\r\n\r\n });\r\n \r\n };\r\n\r\n})(jQuery);\r\n\n\n\n// WEBPACK FOOTER //\n// ./magaele/clp_gpby/module.js"],"sourceRoot":""}