{"version":3,"sources":["webpack:///webpack/bootstrap d6ae805590de9da9a3e4?d8dc**","webpack:///./css/css.scss?d114**","webpack:///./magaele/ic-ln/css.scss?1694**","webpack:///./magaele/clp_gpby/css.scss?1e4d**","webpack:///./magaele/cy-ln/css.scss?bf40**","webpack:///./magaele/fcl_lnls/css.scss?6c76**","webpack:///./magaele/ps_lnls/css.scss?1660**","webpack:///./magaele/cy-ln/module.js?0ac4**","webpack:///./magaele/clp_gplt/css.scss?5922**","webpack:///./magaele/st_lnls/css.scss?177d**","webpack:///./magaele/clp_gpby/module.js?fc52**","webpack:///./magaele/st_lnls/module.js?72a5**","webpack:///./magaele/th_gpls/css.scss?6c35*","webpack:///./magaele/clp_gplt/module.js?a462*","webpack:///./magaele/btg_gpct/css.scss?f4eb*","webpack:///./magaele/ft_lnxt/css.scss?b47f","webpack:///./magaele/ntb_gpbt/css.scss?a089*","webpack:///./magaele/btg_gpct/module.js?029f*","webpack:///./magaele/ntb_gpbt/module.js?c73c*","webpack:///./css/table.scss?480b","webpack:///./magaele/cd_gplx/css.scss","webpack:///./magaele/sf-lnse/css.scss?8298*","webpack:///./magaele/cd_gplx/module.js","webpack:///./magaele/sf-lnse/module.js?61b9*","webpack:///./magaele/cd_flln/css.scss?7d66","webpack:///./magaele/clp_stbm/css.scss?783d","webpack:///./magaele/tb_gpli/css.scss","webpack:///./magaele/clp_stbm/module.js?7aff","webpack:///./magaele/cd_gpls/css.scss","webpack:///./entry/ticket_script.entry.js","webpack:///./entry/ticket_style.entry.js"],"names":["$","moment","ModuleName","Module","element","options","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","top","left","alertString","invalid","beforeMin","afterMax","fromMoreTo","alignRight","prototype","getOptions","updateOption","extend","getMomentMinDate","add","format","collectionIndexOf","collection","value","predicate","i","length","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","self","momentDisplay","momentForPrint","getMomentMaxDate","console","log","attr","append","drawMonth","addClass","children","css","width","arrowLeft","offset","firstDay","find","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","on","e","stopPropagation","$this","clickedDateString","prevDateString","nextDateString","hasClass","closest","removeClass","trigger","close","value3","clearInterval","setInterval","outerHeight","movedDateString","$nowInput","rangeStringNumber","arrayMoment","getArrayMoment","push","refreshDateForPeriod","getArrayInput","except","array","each","momentValue","ele","momentFrom","momentTo","sort","$date","dataDate","momentDate","not","remove","SingleInput","opt","module","title","$body","minValue","inputValue","$ele","displayDate","a","b","inputValueBeforeMin","after","fn","option","stringOpts","data","isNumeric","momentMinDate","momentMaxDate","isFunction","isArray","inArray","type","one","position","outerWidth","CylnCssOption","is","keyCode","dateRepairedString","returnStatus","status","dateFrom","dateTo","canCompared","$modules","dom","isShowWeekName","isSingle","isRangeRole","needRange","needArrow","minDateFromToday","maxDateFromToday","isAlert","alertStringInvalid","alertStringbeforeMin","alertStringafterMax","alertStringFromMoreTo","$rangeRoles","eq","cy_ln","subtract","jQuery","$maxH","btnEle","$clp_btn","$clp_btntext","opHtml","clsHtml","DEFAULT","btnSettings","closeHtml","openHtml","open","whenClosed","setClick","toggleClass","bind","setResize","window","currentHeight","maxHeight","hide","clickDelete","$delete","_self","$self","whenClickDelete","init","mode","opts","stele","className","isClicked","intOldVal","highestZindex","WrapClass","SelectClass","OptionsClass","addLabel","group","openDirection","optionObj","defaultSelector","haveDefaultDisabledVal","defaultSelectedVal","menuMaxHeight","actInput","customInput","class","id","style","whenOpen","whenSelected","whenClose","menuDirection","$stOptions","DocHeight","height","optionsOffset","getBoundingClientRect","$stOptionsHeight","overWindow","topLevel","bottomLevel","scaleRate","menuCss","render","$thisIndex","$stWrap","parent","$stSelect","$stSelected","$stInt","isMobile","navigator","userAgent","getZindex","setStlabel","set_Stdata","setStgrp","focusin","blur","filter","removeAttr","show","preventDefault","originVal","siblings","optValue","optTxt","optColor","event","optsSetting","excWhenSelected","reloadOptions","inputEvent","autoCheck","getClassName","ClassName","Error","arr","Object","keys","arrVal","map","prepend","wrap","customOpts","setStgrpArr","numberOfOptions","$stOption","rel","txt","isSelected","selectedOptKey","undefined","disabledOptKeys","highest","current","classArray","split","catchClass","forEach","nextAll","andSelf","wrapAll","stInt","inputVal","RegString","RegExp","allData","toUpperCase","hasMatchVal","some","dataParameter","openIcon","closeIcon","$module","$clp_btn_inside","$header","icon","clickHandler","slideUp","onResize","off","resize","stop","animate","scrollTop","slideDown","isOpen","methods","addBtn","minusBtn","minus","nowValue","whenClick","beforeChangeFun","maxNum","minNum","newOptions","$amount_num","first","last","$amount","$minus","$add","callbackFun","prop","amount_num","res","onChange","$tabsWrap","$tabs","$contentWrap","$contents","$nextButton","$prevButton","tabLable","whenNext","$thisTab","tabLabelData","whenPrev","initial","onClickli","onClickNext","onClickPrev","btnSwitcher","offsetTabPosition","disableContent","enbaleContent","setTabsLable","returnIndexLi","compareDom","get","getTabWidthPercent","nowIndex","maxLindex","_this","returnItem","returnContent","diasbleTabs","enableTab","isFirstLast","returnVal","$nextTab","$prevTab","method","fixedheight","appendEleonMobile","closeBtn","hdHeight","toggle","scroll","options2","modules","installedModules","__webpack_require__","moduleId","exports","l","m","c","d","getter","o","defineProperty","configurable","enumerable","n","__esModule","getDefault","getModuleExports","object","property","hasOwnProperty","p","s","global","_typeof","Symbol","iterator","obj","constructor","_module","root","args","Array","slice","arguments","isReturnMethod","ModuleReturns","indexOf","methodRunner","uesReturn","apply","ModuleDefaults","g","Function","eval","_createClass","defineProperties","props","descriptor","writable","key","Constructor","protoProps","staticProps","_classCallCheck","instance","TypeError","toggleTabs","renderHiddenToggle","needHiddenInputsChangeEvents","fromChangeEventName","fieldRecodeWriteEvent","switchEnableDisable","reocodeDataOnDomKey","urlFirst","urlMatches","urlRegex","urlReplacedTo","urlActivePanlParam","urlActivePanlDefault","urlConcat","urlConcatPrimary","urlCheckedVal","storageSetting","lastSearchKey","whenInit","whenRecodeWrited","$visiablePanlWrap","$inputHidden","whenTabSwitchDone","whenInputRemoved","$inputDom","whenFormChanged","whenBeforeSubmit","$submit","whenSubmit","whenEnabled","whenDisabled","$panels","$inputFocusRemove","$needHiddenInputs","$needTriggerChangeInputs","$needTriggerRecodeLoadedInputs","$thisDom","number","tab","focusRemove","renderHiddenValue","$thisPanl","getHiddenInputDoms","lastSearchData","requiredVerfiy","save","$sfWrap","el","$tabNavigationLinks","$tabContentContainers","activeIndex","link","handleClick","$link","goToTab","$addon","$inputs","eventName","inputName","inputHtml","string","inputDom","$returnDoms","hiddenInputArray","hiddenInputName","multiSelectorString","$inputInPanel","settings","storageKey","storageValue","result","match","JSON","parse","localStorage","getItem","fieldType","nodeName","customtype","fieldValue","expired","expiry","exdate","getTime","loadStorageData","loadByUrl","location","search","paramObj","getURLParamObj","substr","panelName","regex","replacedTo","replaceVal","concatObj","concatKeys","j","concatKey","item","inputType","customObj","custom","customObjKey","$panel","panelKey","panelValue","$inputForSave","inputKey","merged","intvalue","savePanelInputData","saveKey","saveValue","rootKey","rootValue","setDate","getDate","InputVal","create","getMonth","getHours","getMinutes","getSeconds","setItem","stringify","Storage","callback","$requireds","verfiyPass","alertStrings","alertSting","elem","join","locationSearch","paramArray","itemArray","decodeURI","inModule","hiddenChange","showBlock","hiddenBlock","$elem","inModuleMode","movehidden","showBlockH","setWidth","setWidth_sec","num"],"mappings":"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","file":"./SubSiteBundles/ShipApply/ticket.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 = 107);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap d6ae805590de9da9a3e4","// 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/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","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/fcl_lnls/css.scss\n// module id = 4\n// module chunks = 0 1 2 3 4 5 7 8","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/ps_lnls/css.scss\n// module id = 5\n// module chunks = 0 1 2 3 4 5 6 7","/**\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","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/st_lnls/css.scss\n// module id = 8\n// module chunks = 0 1 2 3 4 5 7","(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","(function($) {\r\n 'use strict';\r\n\r\n var ModuleName = 'st_lnls';\r\n\r\n var Module = function(element, options) {\r\n this.ele = element;\r\n this.$ele = $(element);\r\n this.stele = {};\r\n this.option = options;\r\n this.className = null;\r\n this.isClicked = false;\r\n this.intOldVal = null;\r\n };\r\n\r\n Module.DEFAULT = {\r\n highestZindex: null,\r\n addClass: {\r\n WrapClass: null,\r\n SelectClass: null,\r\n OptionsClass: null\r\n },\r\n addLabel:null, // 用傳入api方式來create label\r\n group: 'on', // 'on' , 'off' 是否使用group功能\r\n openDirection: 'down', // 'up' , 'down' 控制展開方向\r\n optionObj: null, // 傳入一個obj產生option, value值為obj的key ,內文為obj的值\r\n defaultSelector: 'on', // 'on' , 'off' 是否使用預設selector\r\n haveDefaultDisabledVal: true, // 傳入disabled選項的值\r\n defaultSelectedVal: \"\", // 傳入預設選取的值\r\n menuMaxHeight:\"\", // option menu 展開後最高高度\r\n actInput:false,//是否啟動補字功能\r\n customInput:{ //客製化input actInput必須要啟動\r\n name:null,\r\n class:null,\r\n id:null,\r\n style:{}\r\n },\r\n whenOpen: function($this) {\r\n\r\n },\r\n whenSelected: function($this) {\r\n\r\n },\r\n whenClose: function($this) {\r\n\r\n }\r\n };\r\n Module.prototype.menuDirection = function(ele, $stOptions, highestZindex) {\r\n var opts = this.option,\r\n DocHeight = $(window).height(),\r\n optionsOffset = ele.getBoundingClientRect(),\r\n $stOptionsHeight = !!opts.menuMaxHeight ? opts.menuMaxHeight : $stOptions.outerHeight(),\r\n overWindow = ((optionsOffset.top + optionsOffset.height + $stOptionsHeight) > DocHeight ) ? true : false,\r\n topLevel = (opts.openDirection == \"up\" || overWindow)?'inherit':optionsOffset.height,\r\n bottomLevel = (opts.openDirection == \"up\" || overWindow)?optionsOffset.height:'inherit',\r\n scaleRate = opts.openDirection == \"up\"?4 / 5:3 / 4,\r\n menuMaxHeight = !!opts.menuMaxHeight?opts.menuMaxHeight:( (opts.openDirection == \"up\" || overWindow) ? optionsOffset.top:DocHeight) * scaleRate,\r\n menuCss = {\r\n 'minWidth': optionsOffset.width,\r\n 'top': topLevel,\r\n 'bottom': bottomLevel,\r\n 'max-height': menuMaxHeight,\r\n 'z-index': highestZindex + 1\r\n };\r\n \r\n if (opts.openDirection == 'up' || overWindow ) {\r\n $stOptions.addClass('active expandtop').css(menuCss);\r\n } else {\r\n $stOptions.addClass('active').css(menuCss);\r\n }\r\n }\r\n\r\n Module.prototype.init = function() {\r\n this.render();\r\n var self = this;\r\n var $this = this.$ele;\r\n var opts = this.option;\r\n var isClicked = this.isClicked;\r\n // var numberOfOptions = $this.children('option').length;\r\n var highestZindex = opts.highestZindex;\r\n var $thisIndex = $this.index();\r\n var $stWrap = $this.parent().find('.st-wrap').eq($thisIndex);\r\n var $stSelect = $stWrap.find('.st-select');\r\n var $stSelected = $stSelect.find('.st-selected');\r\n var $stOptions = $stWrap.find('.st-options');\r\n var $stInt = this.stele.$stInt;\r\n var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\n if (!opts.highestZindex) {\r\n highestZindex = this.getZindex();\r\n Module.DEFAULT.highestZindex = highestZindex;\r\n }\r\n\r\n if (isMobile && opts.defaultSelector == 'on') {\r\n $this.addClass('m_hide');\r\n } else {\r\n $this.addClass('hide');\r\n }\r\n // set st-label\r\n this.setStlabel($this,$stSelect); \r\n // set st-grp width\r\n var set_Stdata = this.setStgrp($this,$stWrap,$stSelect,$stSelected,$stOptions,opts);\r\n $stWrap = set_Stdata[0];\r\n $stSelect = set_Stdata[1];\r\n $stSelected = set_Stdata[2];\r\n $stOptions = set_Stdata[3];\r\n\r\n // mobile original select settings\r\n if ($this.hasClass('m_hide')) {\r\n $this.css({\r\n top: $stWrap.position().top,\r\n width: 100 + \"%\",\r\n });\r\n }\r\n\r\n // Events\r\n $stSelect.focusin(function() {\r\n if($stInt) return;\r\n if (!isClicked) {\r\n if ($(this).attr('disabled')) return;\r\n $stSelect.addClass('active');\r\n $stWrap.addClass('active');\r\n }\r\n }).blur(function() {\r\n if($stInt) return;\r\n console.log($stOptions.filter('hover').length)\r\n if($stOptions.filter(':hover').length === 0) {\r\n $stSelect.removeClass('active');\r\n $stWrap.removeClass('active');\r\n $stOptions.removeClass('active expandtop');\r\n $stOptions.removeAttr('style');\r\n (typeof(opts.whenClose) === 'function') && opts.whenClose($this);\r\n isClicked = false;\r\n }\r\n }).click(function(e) {\r\n e.stopPropagation();\r\n\r\n if($stInt){\r\n $stOptions.children('li').show().removeClass('matched');\r\n $stInt.trigger('focus');\r\n\r\n if($stOptions.hasClass('active')){\r\n $stOptions.removeClass('active expandtop');\r\n $stOptions.removeAttr('style');\r\n } else {\r\n self.menuDirection(this, $stOptions, highestZindex);\r\n (typeof(opts.whenOpen) === 'function') && opts.whenOpen($this);\r\n }\r\n return;\r\n }\r\n \r\n isClicked = !isClicked;\r\n if (!isClicked) {\r\n $stOptions.removeClass('active');\r\n $stOptions.removeAttr('style');\r\n } else {\r\n $stOptions.removeClass('active expandtop');\r\n $stOptions.removeAttr('style');\r\n if (!$(this).attr('disabled')) {\r\n (typeof(opts.whenOpen) === 'function') && opts.whenOpen($this);\r\n self.menuDirection(this, $stOptions, highestZindex);\r\n }\r\n }\r\n });\r\n\r\n $stOptions.on('mousedown', 'li', function(e) {\r\n e.preventDefault();\r\n var originVal = $this.val();\r\n if (!$(this).attr('disabled')) {\r\n $stOptions.removeClass('active');\r\n $this.val($(this).attr('rel'));\r\n if(originVal != $this.val()) $this.trigger('change');\r\n $(this).siblings('li.selected').removeClass('selected');\r\n $(this).addClass('selected');\r\n isClicked = false;\r\n\r\n if($stInt){\r\n $stInt.val($(this).text());\r\n self.intOldVal = $stInt.val();\r\n }\r\n }\r\n console.log(\"clicked\")\r\n })\r\n $this.change(function(e) {\r\n var optValue = $this.val();\r\n var optTxt = $stOptions.find('[rel=\"' + optValue + '\"]').text();\r\n var optColor = $stOptions.find('[rel=\"' + optValue + '\"]').css('color');\r\n console.log(optColor)\r\n opts.whenSelected && typeof(opts.whenSelected) === 'function' && opts.whenSelected($this);\r\n\r\n $stSelected.text(optTxt);\r\n if (!$this.hasClass('err') && !$this.hasClass('scs') &&!$this.hasClass('breakline')) {\r\n $stSelected.css('color', optColor);\r\n }\r\n if($this.hasClass('breakline')){\r\n $stSelected.css('color', '');\r\n }\r\n });\r\n\r\n $this.on('setWhenSelected', function(event, whenSelected) {\r\n if (whenSelected && typeof whenSelected === 'function') {\r\n opts.whenSelected = whenSelected;\r\n }\r\n });\r\n\r\n $this.on('setWhenOpen', function(event, whenOpen) {\r\n if (whenOpen && typeof whenOpen === 'function') {\r\n opts.whenOpen = whenOpen;\r\n }\r\n });\r\n\r\n $this.on('setWhenClose', function(event, whenClose) {\r\n if (whenClose && typeof whenClose === 'function') {\r\n opts.whenClose = whenClose;\r\n }\r\n });\r\n\r\n $this.on('reloadOpts', function(event, opts, optsSetting, excWhenSelected) {\r\n opts && ($.isArray(opts) || typeof opts == 'object') && self.reloadOptions(opts, optsSetting, excWhenSelected);\r\n });\r\n\r\n $this.on('setErr', function() {\r\n $this.addClass('err');\r\n $stWrap.addClass('err');\r\n $stSelected.css('color', '');\r\n });\r\n\r\n $this.on('setScs', function() {\r\n $this.addClass('scs');\r\n $stWrap.addClass('scs');\r\n $stSelected.css('color', '');\r\n });\r\n\r\n $this.on('removeErr', function() {\r\n $this.removeClass('err');\r\n $stWrap.removeClass('err');\r\n if (!$this.hasClass('err') && !$this.hasClass('scs')) {\r\n $stSelected.css('color', $stOptions.find('.st-option.selected').css('color'));\r\n }\r\n });\r\n\r\n $this.on('removeScs', function() {\r\n $this.removeClass('scs');\r\n $stWrap.removeClass('scs');\r\n if (!$this.hasClass('err') && !$this.hasClass('scs')) {\r\n $stSelected.css('color', $stOptions.find('.st-option.selected').css('color'));\r\n }\r\n });\r\n\r\n $this.on('setDisabled', function() {\r\n $this.attr('disabled', '');\r\n $stSelect.attr('disabled', '');\r\n });\r\n\r\n $this.on('removeDisabled', function() {\r\n $this.attr('disabled', false);\r\n $stSelect.attr('disabled', false);\r\n });\r\n\r\n if($stInt){\r\n $stInt.on('keyup',function(e){\r\n self.inputEvent(this, $stWrap, $stSelect, $stOptions, e.target.value);\r\n });\r\n $stInt.on('click',function(e){\r\n e.stopPropagation();\r\n });\r\n }\r\n\r\n $('html').on('click',function(){\r\n if($stInt){\r\n $stOptions.removeClass('active expandtop')\r\n .removeAttr('style');\r\n if(self.intOldVal === $stInt.val()) return;\r\n self.autoCheck($stInt, $stInt.val(), opts.optionObj, $stOptions);\r\n self.intOldVal = $stInt.val();\r\n }\r\n });\r\n };\r\n\r\n Module.prototype.render = function() {\r\n var $this = this.$ele;\r\n var opts = this.option;\r\n this.getClassName();\r\n var ClassName = this.className;\r\n\r\n if ($this.children('option').length == 0) {\r\n if (!opts.optionObj) {\r\n throw new Error('找不到options資料');\r\n } else {\r\n var arr = Object.keys(opts.optionObj);\r\n var arrVal = $.map(opts.optionObj, function(val, index) {\r\n return val;\r\n });\r\n for (var i = 0; i < arr.length; i++) {\r\n $this.append('');\r\n }\r\n if (opts.haveDefaultDisabledVal) {\r\n if (opts.defaultSelectedVal) {\r\n $this.find('[value=' + opts.defaultSelectedVal + ']').attr('selected', 'selected');\r\n $this.find('[value=' + opts.defaultSelectedVal + ']').attr('disabled', 'disabled');\r\n }else $this.prepend('');\r\n }else if (opts.defaultSelectedVal) {\r\n $this.find('[value=' + opts.defaultSelectedVal + ']').attr('selected', 'selected');\r\n }\r\n }\r\n }\r\n\r\n if (/(st-grp)\\w*/g.test(ClassName) && opts.group == 'on') {\r\n this.group();\r\n var $stWrap = $('
');\r\n var $stSelect = $('
');\r\n var $stSelected = $('');\r\n var $stOptions = $('');\r\n $this.wrap($stWrap);\r\n $this.after($stSelect);\r\n $stSelect.append($stSelected);\r\n $stSelect.after($stOptions);\r\n this.stele.$stWrap = $this.parent('.st-wrap');\r\n this.stele.$stSelect = $stSelect;\r\n this.stele.$stSelected = $stSelected;\r\n this.stele.$stOptions = $stOptions;\r\n } else {\r\n $this.wrap('
');\r\n var $stWrap = $('
');\r\n var $stSelect = $('
');\r\n var $stSelected = $('');\r\n var $stOptions = $('');\r\n $this.after($stWrap);\r\n $stWrap.append($stSelect);\r\n $stSelect.append($stSelected);\r\n $stSelect.after($stOptions);\r\n this.stele.$stWrap = $stWrap;\r\n this.stele.$stSelect = $stSelect;\r\n this.stele.$stSelected = $stSelected;\r\n this.stele.$stOptions = $stOptions;\r\n }\r\n\r\n if(opts.actInput){\r\n var customOpts = opts.customInput;\r\n var $stInt = $('');\r\n \r\n $stInt.addClass(customOpts.class)\r\n .attr('id', customOpts.id)\r\n .attr('name', customOpts.name)\r\n .css( customOpts.style )\r\n .val($this.find('[value=\"'+ $this.val() +'\"]').text());\r\n\r\n this.stele.$stWrap.prepend($stInt);\r\n this.stele.$stInt = $stInt;\r\n this.intOldVal = $stInt.val();\r\n }\r\n\r\n this.stele.$stWrap.addClass(ClassName);\r\n this.stele.$stWrap.removeClass(ModuleName)\r\n };\r\n\r\n Module.prototype.setStlabel = function($this,$stSelect){\r\n if ($this.attr('data-label')) {\r\n $stSelect.prepend('' + $this.attr('data-label') + '');\r\n } else if ( this.option.addLabel ){\r\n $stSelect.prepend('' + this.option.addLabel + '');\r\n }\r\n }\r\n\r\n Module.prototype.setStgrp = function($this,$stWrap,$stSelect,$stSelected,$stOptions,opts){\r\n var setStgrpArr = []; \r\n var numberOfOptions = $this.children('option').length;\r\n if ($this.parents().hasClass('st-grp')) {\r\n $stWrap = $this.closest('.st-wrap');\r\n $stSelect = $stWrap.find('.st-select');\r\n $stSelected = $stSelect.find('.st-selected');\r\n $stOptions = $stWrap.find('.st-options');\r\n if ($this.data('col')) {\r\n $stWrap.addClass($this.data('col'));\r\n } else {\r\n $stWrap.css({\r\n 'width': 100 / $stWrap.closest('.st-grp').children().length + '%'\r\n });\r\n } \r\n }\r\n\r\n if (typeof opts.addClass === 'object') {\r\n $stWrap.addClass(opts.addClass.WrapClass);\r\n $stSelect.addClass(opts.addClass.SelectClass)\r\n $stOptions.addClass(opts.addClass.OptionsClass)\r\n }\r\n\r\n if ($this.attr('disabled')) {\r\n $stSelect.attr('disabled', '');\r\n }\r\n\r\n for (var i = 0; i < numberOfOptions; i++) {\r\n var $stOption = $('
  • ', {\r\n text: $this.children('option').eq(i).text(),\r\n rel: $this.children('option').eq(i).val(),\r\n css: { 'color': $this.children('option').eq(i).attr('data-color') },\r\n 'class': 'st-option'\r\n });\r\n $stOptions.append($stOption);\r\n\r\n if ($this.children('option').eq(i).attr('disabled')) {\r\n $stOption.attr('disabled', '');\r\n }\r\n if ($this.children('option').eq(i).attr('selected')) {\r\n $stSelected.text($this.children('option').eq(i).text());\r\n $stOption.addClass('selected');\r\n if (!$this.hasClass('err') && !$this.hasClass('scs') && !$this.attr('disabled')) {\r\n $stSelected.css('color', $stOption.css('color'));\r\n }\r\n }\r\n }\r\n if( $this.children('option[selected]').length == 0){\r\n $stSelected.text($this.children('option').eq(0).text()).css( 'color' , $stOption.css('color') );\r\n $stOptions.children('li:first-child').addClass('selected');\r\n }\r\n setStgrpArr.push($stWrap,$stSelect,$stSelected,$stOptions,opts)\r\n return setStgrpArr\r\n }\r\n // selectedOptKey disabledOptKeys\r\n Module.prototype.reloadOptions = function(opts, optsSetting, excWhenSelected) {\r\n var $this = this.$ele;\r\n var options = this.option;\r\n var $stWrap = this.stele.$stWrap;\r\n var $stSelect = this.stele.$stSelect;\r\n var $stSelected = this.stele.$stSelected;\r\n var $stOptions = this.stele.$stOptions;\r\n\r\n $this.empty();\r\n $stOptions.empty();\r\n\r\n if ($.isArray(opts)) {\r\n for (var i = 0; i < opts.length; i++) {\r\n // options\r\n $this.append($('
  • ', {\r\n text: opts[i].txt,\r\n rel: opts[i].val,\r\n css: { 'color': $this.children('option').eq(i).attr('data-color') },\r\n class: 'st-option'\r\n });\r\n $stOptions.append($stOption);\r\n\r\n if (opts[i].isDisabled) {\r\n $stOption.attr('disabled', '');\r\n }\r\n if (opts[i].isSelected) {\r\n $stOption.attr('selected', '');\r\n $this.val(opts[i].val);\r\n $stSelected.text(opts[i].txt);\r\n }\r\n }\r\n } else if (typeof opts == 'object') {\r\n for (var i in opts) {\r\n $this.append($('
  • ', {\r\n text: opts[i],\r\n rel: i,\r\n css: { 'color': $this.children('option').eq(i).attr('data-color') },\r\n class: 'st-option'\r\n });\r\n $stOptions.append($stOption);\r\n\r\n var selectedOptKey = !!optsSetting?optsSetting.selectedOptKey:undefined;\r\n var disabledOptKeys = !!optsSetting?optsSetting.disabledOptKeys:undefined;\r\n if (!!disabledOptKeys && (typeof disabledOptKeys === 'string' || $.isArray(disabledOptKeys))) {\r\n if (typeof disabledOptKeys === \"string\" && i === disabledOptKeys) {\r\n $stOption.attr('disabled', '');\r\n }else if ($.isArray(disabledOptKeys) && $.inArray(i, disabledOptKeys) > -1) {\r\n console.log(\"is in array\")\r\n }\r\n }\r\n if (!!selectedOptKey && typeof selectedOptKey == 'string' && $stOption.attr(\"rel\") == selectedOptKey) {\r\n $stOption.attr('selected', '');\r\n $this.val(i);\r\n $stSelected.text(opts[i]);\r\n }\r\n }\r\n }\r\n if (!$this.hasClass('err') && !$this.hasClass('scs') && !$this.attr('disabled')) {\r\n $stSelected.css('color', $stOption.css('color'));\r\n }\r\n\r\n if(excWhenSelected) { \r\n options.whenSelected && typeof(options.whenSelected) === 'function' && options.whenSelected($this);\r\n }\r\n }\r\n\r\n Module.prototype.getClassName = function() {\r\n return this.className = this.$ele.attr('class');\r\n };\r\n\r\n Module.prototype.getZindex = function() {\r\n var highest = 0;\r\n\r\n $(\"*\").each(function() {\r\n var current = parseInt($(this).css(\"z-index\"), 10);\r\n if (current && highest < current) highest = current;\r\n });\r\n\r\n return highest\r\n };\r\n\r\n Module.prototype.group = function() {\r\n var $this = this.$ele;\r\n var ClassName = this.className;\r\n var classArray = this.className.split(' ');\r\n var catchClass;\r\n classArray.forEach(function(value, index) {\r\n if (/(st-grp\\w*)/g.test(value)) {\r\n catchClass = classArray[index];\r\n }\r\n });\r\n\r\n if (!$this.parent('.st-grp').length > 0) {\r\n $this.nextAll('.' + catchClass).andSelf().wrapAll('
    ');\r\n }\r\n };\r\n\r\n Module.prototype.inputEvent = function(stInt, $stWrap, $stSelect, $stOptions, inputVal){\r\n //把特殊字元轉譯成為一般字串\r\n inputVal = inputVal.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n var RegString = new RegExp(inputVal,\"i\");\r\n\r\n $stOptions.children('li').removeClass('matched').hide().filter(function(){\r\n return RegString.test($(this).text())\r\n }).show().addClass('matched');\r\n\r\n if($stOptions.children('li.matched').length != 0){\r\n this.menuDirection(stInt, $stOptions, Module.DEFAULT.highestZindex);\r\n } else {\r\n $stOptions.removeClass('active expandtop').removeAttr('style');\r\n }\r\n };\r\n\r\n Module.prototype.autoCheck = function($stInt, inputVal, allData, $stOptions){\r\n inputVal = inputVal.toUpperCase();\r\n var arr = $.map(allData,function(value, index){\r\n return value;\r\n });\r\n\r\n var hasMatchVal = arr.some(function(value, index, array){\r\n return inputVal === value;\r\n });\r\n \r\n if(hasMatchVal){\r\n inputVal = inputVal.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n var RegString = new RegExp(inputVal,'i');\r\n $stOptions.children('li').filter(function(){\r\n return RegString.test($(this).text())\r\n }).trigger('mousedown');\r\n\r\n } else {\r\n $stInt.val('');\r\n }\r\n };\r\n\r\n $.fn[ModuleName] = function(options) {\r\n return this.each(function() {\r\n var $this = $(this);\r\n var dataParameter = {};\r\n\r\n if ($this.data('opendirection')) { dataParameter.openDirection = $this.data('opendirection'); }\r\n if ($this.data('defaultselector')) { dataParameter.defaultSelector = $this.data('defaultselector'); }\r\n if ($this.data('addclass') && (typeof $this.data('addclass') === 'object')) {\r\n dataParameter.addClass = $this.data('addclass');\r\n }\r\n if ($this.data('optionobj') && (typeof $this.data('optionobj') === 'object')) {\r\n dataParameter.optionObj = $this.data('optionobj');\r\n }\r\n\r\n var opts = $.extend({}, Module.DEFAULT, (typeof options === 'object' && options), dataParameter);\r\n var module = new Module(this, opts);\r\n module.init();\r\n // $this.data(ModuleName,Module);\r\n });\r\n };\r\n\r\n})(jQuery);\r\n\n\n\n// WEBPACK FOOTER //\n// ./magaele/st_lnls/module.js","// 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/btg_gpct/css.scss\n// module id = 14\n// module chunks = 0 1 3 4 6","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/ft_lnxt/css.scss\n// module id = 15\n// module chunks = 0 3 4 5 7","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/ntb_gpbt/css.scss\n// module id = 17\n// module chunks = 0 2 3 4 6","(function($) {\r\n 'use strict';\r\n var ModuleName = 'btg_gpct';\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 this.max = options.max;\r\n this.min = options.min;\r\n this.addBtn = options.add;\r\n this.minusBtn = options.minus;\r\n this.nowValue = null;\r\n };\r\n\r\n Module.DEFAULTS = {\r\n minus:'',\r\n add:'',\r\n whenClick:function($dom){\r\n \r\n },\r\n beforeChangeFun:function($dom){\r\n\r\n }\r\n };\r\n\r\n Module.prototype.render = function(maxNum,minNum){\r\n var $this = this.$ele,\r\n newOptions = this.option,\r\n minus = newOptions.minus,\r\n add = newOptions.add,\r\n $amount_num = parseInt($this.children('.amount').val());\r\n this.nowValue = $amount_num;\r\n\r\n if($this.children().length < 3){\r\n $this.prepend(minus);\r\n $this.append(add);\r\n }\r\n $this.children().first().addClass('minus');\r\n $this.children().last().addClass('add');\r\n \r\n if( $amount_num == minNum){\r\n $this.children().first().addClass('disabled');\r\n }\r\n };\r\n\r\n Module.prototype.init = function(){\r\n\r\n this.render(this.maxNum,this.min);\r\n\r\n var _self = this,\r\n $this = this.$ele,\r\n newOptions = this.option,\r\n $amount = $this.children('.amount'),\r\n $minus = $this.children('.minus'),\r\n $add = $this.children('.add');\r\n\r\n var callbackFun = newOptions.whenClick;\r\n \r\n //clcik events\r\n\r\n $add.on('click',function(){\r\n // debugger;\r\n var maxNum = _self.max;\r\n var minNum = _self.min;\r\n\r\n if($amount.prop('tagName') == 'INPUT'){\r\n\r\n var amount_num = _self.nowValue;\r\n\r\n if ( maxNum || maxNum == 0) {\r\n if( amount_num < maxNum){\r\n amount_num++;\r\n }\r\n }else{\r\n amount_num++;\r\n }\r\n\r\n $amount.attr('value',amount_num);\r\n $minus.removeClass('disabled'); \r\n _self.nowValue = amount_num;\r\n\r\n (typeof callbackFun === 'function')? callbackFun($(this)) : null ;\r\n\r\n $amount.trigger('update');\r\n \r\n }else{\r\n var amount_num = parseInt($amount.text());\r\n if (maxNum) {\r\n if (amount_num < maxNum){amount_num++;}\r\n }else{\r\n amount_num++;\r\n }\r\n $amount.text(amount_num); \r\n }\r\n \r\n });\r\n\r\n\r\n $minus.on('click',function(){\r\n\r\n var maxNum = _self.max;\r\n var minNum = _self.min;\r\n\r\n if($amount.prop('tagName') == 'INPUT'){\r\n\r\n var amount_num = _self.nowValue;\r\n\r\n if( minNum ){\r\n if( amount_num > minNum ){amount_num --;}\r\n }else if( amount_num > 0){\r\n amount_num --;\r\n }\r\n\r\n var res = newOptions.beforeChangeFun($(this));\r\n if(res === false){\r\n return;\r\n }\r\n\r\n $amount.attr('value',amount_num); \r\n $add.removeClass('disabled');\r\n _self.nowValue = amount_num;\r\n\r\n (typeof callbackFun === 'function')? callbackFun($(this)) : null ;\r\n $amount.trigger('update');\r\n \r\n }else{\r\n var amount_num = parseInt($amount.text());\r\n if(minNum){\r\n if( amount_num > minNum){amount_num--;}\r\n }else if( amount_num > 0){\r\n amount_num--;\r\n } \r\n $amount.text(amount_num); \r\n }\r\n \r\n });\r\n\r\n $amount.on('update', function(e) {\r\n _self.onChange(_self.nowValue,_self.max,_self.min);\r\n });\r\n }\r\n\r\n Module.prototype.updateOption = function(newOptions){\r\n this.max = newOptions.max;\r\n this.min = newOptions.min;\r\n this.onChange(this.nowValue,this.max,this.min);\r\n }\r\n\r\n Module.prototype.onChange = function(nowValue,maxNum,minNum){\r\n\r\n var $this = this.$ele, \r\n $minus = $this.children('.minus'),\r\n $add = $this.children('.add');\r\n\r\n if( nowValue == minNum){\r\n $minus.addClass('disabled');\r\n\r\n ( nowValue == maxNum ) ? $add.addClass('disabled') : $add.removeClass('disabled');\r\n }else if( nowValue == maxNum ){\r\n $add.addClass('disabled');\r\n }else{\r\n $minus.removeClass('disabled');\r\n $add.removeClass('disabled');\r\n }\r\n\r\n \r\n }\r\n\r\n \r\n $.fn[ModuleName] = function(options,updateOption) {\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 options === 'string' && typeof updateOption === 'object' ) {\r\n module[options](updateOption);\r\n } else {\r\n throw 'unsupported options!';\r\n }\r\n } else {\r\n opts = $.extend({}, Module.DEFAULTS, (typeof options === 'object' && options));\r\n var module = new Module(this, opts);\r\n $this.data(ModuleName,module);\r\n module.init();\r\n }\r\n });\r\n };\r\n\r\n})(jQuery);\r\n\n\n\n// WEBPACK FOOTER //\n// ./magaele/btg_gpct/module.js","(function($) {\r\n'use strict';\r\n\r\n\tvar ModuleName = 'ntb_gpbt';\r\n\r\n\tvar Module = function ( ele, options ) {\r\n\t\tthis.$ele = $(ele);\r\n\t\tthis.options = options;\r\n\t\tthis.$tabsWrap = this.$ele.children('.ntb_tab');\r\n\t\tthis.$tabs = this.$ele.find('.ntb_tab > li');\r\n\t\tthis.$contentWrap = this.$ele.children('.contents');\r\n\t\tthis.$contents = this.$contentWrap.children('.content');\r\n\t\tthis.$nextButton = this.$ele.children('.next');\r\n\t\tthis.$prevButton = this.$ele.children('.prev');\r\n\t};\r\n\r\n\tModule.DEFAULTS = {\r\n\t\ttabLable: [\r\n\r\n\t\t],\r\n\t whenNext: function($this, $thisTab, tabLabelData) {},\r\n\t whenPrev: function($this, $thisTab, tabLabelData) {},\r\n\t whenClick: function($this, $thisTab, tabLabelData) {}\r\n\t};\r\n\r\n\tModule.prototype.initial = function () {\r\n\t\tconsole.log('inital');\r\n\t\tif ( this.$tabs.length > 1 ) {\r\n\t\t\tthis.onClickli();\r\n\t\t\tthis.onClickNext();\r\n\t\t\tthis.onClickPrev();\r\n\t\t\tthis.btnSwitcher();\r\n\t\t\tthis.offsetTabPosition();\r\n\t\t\tthis.disableContent();\r\n\t\t\tthis.enbaleContent();\r\n\t\t}\r\n\t\tthis.setTabsLable();\r\n\t};\r\n\r\n\tModule.prototype.setTabsLable = function (){\r\n\t\tvar self = this;\r\n\t\tif ( $.type(this.options.tabLable) === 'array' && this.options.tabLable.length >= this.$tabs.length ) {\r\n\t\t\tthis.$tabs.each(function(i, ele) {\r\n\t\t\t\t$(ele).attr('data-label',self.options.tabLable[i]);\r\n\t\t\t});\t\t\t\r\n\t\t} else {\r\n\t\t\tconsole.log('Option tabLable must be array!');\r\n\t\t}\r\n\t};\r\n\r\n\tModule.prototype.returnIndexLi = function ( dom ){\r\n\t\tvar compareDom;\r\n\t\tif ( !!dom ) {\r\n\t\t\tif ( dom instanceof $ ) {\r\n\t\t\t\tcompareDom = dom.get(0);\r\n\t\t\t} else {\r\n\t\t\t\tcompareDom = dom;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tcompareDom = this.$tabs.filter('.now').get(0);\r\n\t\t}\r\n\t\treturn this.$tabs.index( compareDom );\r\n\t}\r\n\r\n\tModule.prototype.getTabWidthPercent = function () {\r\n\t\treturn this.$tabs.eq(0).width()/this.$tabsWrap.width() * 100;\r\n\t};\r\n\r\n\tModule.prototype.offsetTabPosition = function () {\r\n\t\tvar nowIndex = this.returnIndexLi();\r\n\t\tvar maxLindex = this.$tabs.length - 1;\r\n\t\tif ( nowIndex > 0 && nowIndex < maxLindex ) {\r\n\t\t\tthis.$tabs.eq(0).css('margin-left', -((nowIndex - 1) * this.getTabWidthPercent()) + '%' );\r\n\t\t}\r\n\t};\r\n\r\n\tModule.prototype.disableContent = function ( i ) {\r\n\t\tthis.$contents.hide();\r\n\t};\r\n\r\n\tModule.prototype.enbaleContent = function ( i ) {\r\n\t\tvar nowIndex = i || this.returnIndexLi();\r\n\t\t// console.log(nowIndex);\r\n\t\tthis.$contents.eq(nowIndex).show();\r\n\t};\r\n\r\n\tModule.prototype.onClickli = function () {\r\n\t\tvar _this = this;\r\n\t\tvar returnItem;\r\n\t\tvar returnContent;\r\n\t\tthis.$tabs.on('click',function(e){\r\n\t\t\te.preventDefault();\r\n\t\t\t// console.log('onClick Me!!',this);\r\n\t\t\t_this.diasbleTabs();\r\n\t\t\t_this.enableTab( this );\t\r\n\t\t\t_this.options.whenClick(_this.$ele, $(this), _this.options.tabLable[_this.returnIndexLi()]);\r\n\t\t\t_this.btnSwitcher();\r\n\t\t\t_this.offsetTabPosition();\r\n\t\t\t_this.disableContent();\r\n\t\t\t_this.enbaleContent();\r\n\t\t});\r\n\t};\r\n\r\n\tModule.prototype.diasbleTabs = function () {\r\n\t\tthis.$tabs.removeClass('now');\r\n\t};\r\n\r\n\tModule.prototype.enableTab = function ( dom ) {\r\n\t\t$(dom).addClass('now')\r\n\t};\r\n\r\n\tModule.prototype.isFirstLast = function () {\r\n\t\tvar returnVal;\r\n\t\tvar nowIndex = this.returnIndexLi();\r\n\t\tvar maxLindex = this.$tabs.length - 1;\r\n\t\tif ( nowIndex === 0 || nowIndex === maxLindex ) {\r\n\t\t\treturnVal = nowIndex;\r\n\t\t} else {\r\n\t\t\treturnVal = false;\r\n\t\t}\r\n\t\treturn returnVal;\r\n\t};\r\n\r\n\tModule.prototype.btnSwitcher = function ( ) {\r\n\t\tif ( typeof this.isFirstLast() === 'number' ) {\r\n\t\t\tif ( this.isFirstLast() === 0 ) {\r\n\t\t\t\tthis.$prevButton.removeClass('on');\r\n\t\t\t} else {\r\n\t\t\t\tthis.$nextButton.removeClass('on');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.$nextButton.addClass('on');\r\n\t\t\tthis.$prevButton.addClass('on');\r\n\t\t}\r\n\t}\r\n\r\n\tModule.prototype.onClickNext = function() {\r\n\t\tvar _this = this;\r\n\t\tthis.$ele.find('.next').on('click',function(e){\r\n\t\t\t// console.log(\"next\");\r\n\t\t\te.preventDefault();\r\n\t\t\tvar nowIndex = _this.returnIndexLi();\r\n\t\t\tvar maxLindex = _this.$tabs.length - 1;\r\n\t\t\tvar $nextTab = _this.$tabs.eq( nowIndex + 1 );\r\n\t\t\t// console.log(nowIndex);\r\n\t\t\tif ( nowIndex >= 0 && nowIndex < maxLindex ){\r\n\t\t\t\t_this.diasbleTabs();\r\n\t\t\t\t_this.enableTab($nextTab.get(0));\r\n\t\t\t\t_this.options.whenNext(_this.$ele, $nextTab, _this.options.tabLable[_this.returnIndexLi()]);\r\n\t\t\t}\r\n\t\t\t_this.btnSwitcher();\r\n\t\t\t_this.offsetTabPosition();\r\n\t\t\t_this.disableContent();\r\n\t\t\t_this.enbaleContent();\r\n\t\t});\r\n\t}\r\n\tModule.prototype.onClickPrev = function() {\r\n\t\tvar _this = this;\r\n\t\tthis.$ele.find('.prev').on('click',function(e){\r\n\t\t\t// console.log(\"prev\");\r\n\t\t\te.preventDefault();\r\n\t\t\tvar nowIndex = _this.returnIndexLi();\r\n\t\t\tvar maxLindex = _this.$tabs.length - 1;\r\n\t\t\tvar $prevTab = _this.$tabs.eq( nowIndex - 1 );\r\n\t\t\tif ( nowIndex > 0 && nowIndex <= maxLindex ){\r\n\t\t\t\t_this.diasbleTabs();\r\n\t\t\t\t_this.enableTab( $prevTab.get(0) );\r\n\t\t\t\t_this.options.whenPrev(_this.$ele, $prevTab, _this.options.tabLable[_this.returnIndexLi()]);\r\n\t\t\t}\r\n\t\t\t_this.btnSwitcher();\r\n\t\t\t_this.offsetTabPosition();\r\n\t\t\t_this.disableContent();\r\n\t\t\t_this.enbaleContent();\r\n\t\t});\t\t\r\n\t}\t\r\n\t$.fn[ModuleName] = function ( method, options ) {\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 opts = null;\r\n\t\t\tif ( !!module ) {\r\n\t\t\t\tif ( typeof method === 'string' && typeof options === 'undefined' ) {\r\n\t\t\t\t\tmodule[method]();\r\n\t\t\t\t} else if ( typeof method === 'string' && typeof options === 'object' || typeof options === 'string' ) {\r\n\t\t\t\t\tmodule[method](options);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log('unsupported options!');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\topts = $.extend( {}, Module.DEFAULTS, ( typeof method === 'object' && method ), ( typeof options === 'object' && options ) );\r\n\t\t\t\tmodule = new Module(this, opts);\r\n\t\t\t\t$this.data( ModuleName, module );\r\n\t\t\t\tmodule.initial();\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n})(jQuery);\n\n\n// WEBPACK FOOTER //\n// ./magaele/ntb_gpbt/module.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./css/table.scss\n// module id = 22\n// module chunks = 0 3 4 6","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/cd_gplx/css.scss\n// module id = 24\n// module chunks = 3 4 5 7","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/sf-lnse/css.scss\n// module id = 25\n// module chunks = 0 1 3 4","(function($) {\r\n 'use strict';\r\n var ModuleName = \"cd_gplx\";\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 Module.DEFAULTS = {\r\n fixedheight: 0,\r\n appendEleonMobile: \"body\",\r\n whenOpen: function() { console.log(\"whenOpen() triggered\") },\r\n whenClose: function() { console.log(\"whenClose triggered\") }\r\n }\r\n Module.prototype.init = function() {\r\n var $this = this.$ele;\r\n var opts = this.option;\r\n var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n if (isMobile) {\r\n console.log(\"is in mobile\", $this)\r\n $this.appendTo(\"body\");\r\n var closeBtn = $(\"
    \");\r\n var hdHeight = $this.find(\".cd-header\").outerHeight();\r\n $this.css(\"padding-top\", hdHeight);\r\n $this.addClass(\"mobile\");\r\n $this.append(closeBtn.addClass(\"closebtn\"));\r\n $this.on(\"eleToggle\", function() {\r\n if($this.is(\":hidden\")) {\r\n $(\"html,body\").css('height', '100%');\r\n $('body').css('overflow','hidden');\r\n opts.whenOpen();\r\n }else {\r\n $(\"html,body\").removeAttr('style');\r\n opts.whenClose();\r\n\r\n }\r\n $this.toggle();\r\n });\r\n closeBtn.on(\"click\", function() {\r\n $this.trigger(\"eleToggle\")\r\n });\r\n\r\n }\r\n $(window).scroll(function() {\r\n if ($(window).width() > 980) {\r\n if ($(this).scrollTop() > opts.fixedheight) {\r\n $this.addClass(\"fixed\");\r\n var width = $this.parent().width();\r\n $this.css({\r\n \"width\": width\r\n });\r\n } else {\r\n $this.removeClass(\"fixed\");\r\n }\r\n }\r\n });\r\n $(window).resize(function() {\r\n if ($(window).width() > 980 && $this.hasClass(\"fixed\")) {\r\n $this.css(\"width\", $this.parent().width());\r\n } else {\r\n $this.removeClass(\"fixed\").css(\"width\", \"\");\r\n }\r\n\r\n });\r\n }\r\n $.fn[ModuleName] = function(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 options === 'string' && typeof options2 === 'undefined' ) {\r\n module[options]();\r\n } else {\r\n throw 'unsupported options!';\r\n }\r\n } else {\r\n opts = $.extend({}, Module.DEFAULTS, (typeof options === 'object' && options), (typeof options2 === 'object' && options2));\r\n module = new Module(this, opts);\r\n $this.data(ModuleName, module);\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/cd_gplx/module.js","/******/ (function(modules) { // webpackBootstrap\r\n/******/ \t// The module cache\r\n/******/ \tvar installedModules = {};\r\n/******/\r\n/******/ \t// The require function\r\n/******/ \tfunction __webpack_require__(moduleId) {\r\n/******/\r\n/******/ \t\t// Check if module is in cache\r\n/******/ \t\tif(installedModules[moduleId]) {\r\n/******/ \t\t\treturn installedModules[moduleId].exports;\r\n/******/ \t\t}\r\n/******/ \t\t// Create a new module (and put it into the cache)\r\n/******/ \t\tvar module = installedModules[moduleId] = {\r\n/******/ \t\t\ti: moduleId,\r\n/******/ \t\t\tl: false,\r\n/******/ \t\t\texports: {}\r\n/******/ \t\t};\r\n/******/\r\n/******/ \t\t// Execute the module function\r\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n/******/\r\n/******/ \t\t// Flag the module as loaded\r\n/******/ \t\tmodule.l = true;\r\n/******/\r\n/******/ \t\t// Return the exports of the module\r\n/******/ \t\treturn module.exports;\r\n/******/ \t}\r\n/******/\r\n/******/\r\n/******/ \t// expose the modules object (__webpack_modules__)\r\n/******/ \t__webpack_require__.m = modules;\r\n/******/\r\n/******/ \t// expose the module cache\r\n/******/ \t__webpack_require__.c = installedModules;\r\n/******/\r\n/******/ \t// define getter function for harmony exports\r\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\r\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\r\n/******/ \t\t\tObject.defineProperty(exports, name, {\r\n/******/ \t\t\t\tconfigurable: false,\r\n/******/ \t\t\t\tenumerable: true,\r\n/******/ \t\t\t\tget: getter\r\n/******/ \t\t\t});\r\n/******/ \t\t}\r\n/******/ \t};\r\n/******/\r\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\r\n/******/ \t__webpack_require__.n = function(module) {\r\n/******/ \t\tvar getter = module && module.__esModule ?\r\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\r\n/******/ \t\t\tfunction getModuleExports() { return module; };\r\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\r\n/******/ \t\treturn getter;\r\n/******/ \t};\r\n/******/\r\n/******/ \t// Object.prototype.hasOwnProperty.call\r\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\r\n/******/\r\n/******/ \t// __webpack_public_path__\r\n/******/ \t__webpack_require__.p = \"\";\r\n/******/\r\n/******/ \t// Load entry module and return exports\r\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\r\n/******/ })\r\n/************************************************************************/\r\n/******/ ([\r\n/* 0 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\"use strict\";\r\n/* WEBPACK VAR INJECTION */(function(global) {\r\n\r\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\r\n\r\n__webpack_require__(2);\r\n\r\nvar _module = __webpack_require__(3);\r\n\r\nvar root = function (root) {\r\n\tif ((typeof root === 'undefined' ? 'undefined' : _typeof(root)) === 'object' && (root.self === root || root.global === global) && root) {\r\n\t\treturn root;\r\n\t}\r\n}(self || global || {});\r\n\r\nvar $ = function ($) {\r\n\tif (typeof $ === 'function') {\r\n\t\treturn $;\r\n\t} else {\r\n\t\tthrow 'You must import jQuery';\r\n\t}\r\n}(root.jQuery);\r\n\r\n$.fn[_module.ModuleName] = function () {\r\n\tvar module = void 0;\r\n\tvar args = Array.prototype.slice.call(arguments, 0);\r\n\tvar method = args[0];\r\n\tvar options = args.slice(1).length <= 0 ? undefined : args.slice(1, args.length);;\r\n\tvar isReturnMethod = this.length === 1 && typeof method === 'string' && _module.ModuleReturns.indexOf(method) !== -1;\r\n\tvar methodRunner = function methodRunner(method, options, uesReturn) {\r\n\t\tvar $this = $(this);\r\n\t\tvar module = $this.data(_module.ModuleName);\r\n\t\tif (!!module) {\r\n\t\t\tif (typeof method == 'string' && !uesReturn) {\r\n\t\t\t\tmodule[method].apply(module, options);\r\n\t\t\t} else if (typeof method == 'string' && !!uesReturn) {\r\n\t\t\t\treturn module[method].apply(module, options);\r\n\t\t\t} else {\r\n\t\t\t\tthrow 'unsupported options!';\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthrow 'You must run first this plugin!';\r\n\t\t}\r\n\t};\r\n\tif (isReturnMethod) {\r\n\t\treturn methodRunner.call(this, method, options, isReturnMethod);\r\n\t} else {\r\n\t\treturn this.each(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar module = $this.data(_module.ModuleName);\r\n\t\t\tvar opts = null;\r\n\t\t\tif (!!module) {\r\n\t\t\t\tmethodRunner.call(this, method, options);\r\n\t\t\t} else {\r\n\t\t\t\topts = $.extend(true, {}, _module.ModuleDefaults, (typeof method === 'undefined' ? 'undefined' : _typeof(method)) === 'object' && method, (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object' && options);\r\n\t\t\t\tmodule = new _module.Module(this, opts);\r\n\t\t\t\t$this.data(_module.ModuleName, module);\r\n\t\t\t\tmodule.init();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n};\r\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\r\n\r\n/***/ }),\r\n/* 1 */\r\n/***/ (function(module, exports) {\r\n\r\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\r\n\r\n/***/ }),\r\n/* 2 */\r\n/***/ (function(module, exports) {\r\n\r\n// removed by extract-text-webpack-plugin\r\n\r\n/***/ }),\r\n/* 3 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\"use strict\";\r\n\r\n\r\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\n\r\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\r\n\r\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\r\n\r\nvar ModuleName = 'sf_lnse';\r\n\r\nvar ModuleDefaults = {\r\n $tabsWrap: undefined,\r\n toggleTabs: true,\r\n renderHiddenToggle: false,\r\n needHiddenInputsChangeEvents: 'change',\r\n fromChangeEventName: 'change',\r\n fieldRecodeWriteEvent: 'recodeLoaded',\r\n switchEnableDisable: 'false',\r\n reocodeDataOnDomKey: 'recode',\r\n urlFirst: false,\r\n urlMatches: null,\r\n urlRegex: 'regex',\r\n urlReplacedTo: 'replacedTo',\r\n urlActivePanlParam: '_activeSection',\r\n urlActivePanlDefault: '', //Active panel by default\r\n urlConcat: 'concatVal',\r\n urlConcatPrimary: 'primary',\r\n urlCheckedVal: 'checkedVal',\r\n storageSetting: {\r\n key: 'sf-lnse',\r\n lastSearchKey: 'panelLastSubmit'\r\n },\r\n whenInit: function whenInit($module) {\r\n console.log('whenInit Callback', $module);\r\n },\r\n whenRecodeWrited: function whenRecodeWrited($visiablePanlWrap, $input, $inputHidden) {\r\n console.log('whenRecodeWrited Callback', $input, $inputHidden);\r\n },\r\n whenTabSwitchDone: function whenTabSwitchDone($visiablePanlWrap) {\r\n console.log('whenTabSwitchDone Callback', $visiablePanlWrap);\r\n },\r\n whenInputRemoved: function whenInputRemoved($inputDom) {\r\n console.log('whenInputRemoved Callback', $inputDom);\r\n },\r\n whenFormChanged: function whenFormChanged($visiablePanlWrap, $input, $inputHidden) {\r\n console.log('whenFormChanged Callback', $input, $inputHidden);\r\n },\r\n whenBeforeSubmit: function whenBeforeSubmit($visiablePanlWrap, $submit) {\r\n console.log('whenBeforeSubmit Callback', $visiablePanlWrap, $submit);\r\n },\r\n whenSubmit: function whenSubmit($visiablePanlWrap, $submit) {\r\n console.log('whenSubmit Callback', $visiablePanlWrap, $submit);\r\n },\r\n whenEnabled: function whenEnabled($this) {\r\n console.log('whenEnabled Callback', $this);\r\n },\r\n whenDisabled: function whenDisabled($this) {\r\n console.log('whenDisabled Callback', $this);\r\n }\r\n};\r\n\r\nvar ModuleReturns = [];\r\n\r\nvar Module = function () {\r\n function Module(ele, option) {\r\n _classCallCheck(this, Module);\r\n\r\n this.ele = ele;\r\n this.$ele = $(ele);\r\n this.$panels = this.$ele.find('[data-panl]');\r\n this.$submit = this.$ele.find('button[type=submit]');\r\n this.option = option;\r\n }\r\n\r\n _createClass(Module, [{\r\n key: 'init',\r\n value: function init() {\r\n var $inputFocusRemove = this.$ele.find('[data-toggle=focusRemove]');\r\n var $needHiddenInputs = this.$ele.find('[data-hiddenInput]');\r\n var $needTriggerChangeInputs = this.$ele.find('select,input[type!=hidden]:not([data-hiddenInput])');\r\n var $needTriggerRecodeLoadedInputs = this.$ele.find('select,input[type!=hidden]');\r\n var $this = this.$ele;\r\n var $panels = this.$ele.find('[data-panl]');\r\n var self = this;\r\n // Init\r\n this.option.whenInit($this);\r\n /*$this.data('sf-lnse', {\r\n $submit: this.$submit,\r\n $panels: $panels\r\n });*/\r\n // 啟動Tab 功能\r\n if (this.option.toggleTabs) {\r\n $.each(this.option.$tabsWrap, function (i, $thisDom) {\r\n $thisDom.each(function (number, dom) {\r\n self.tab($(dom), $this);\r\n });\r\n });\r\n }\r\n // 加入focus remove 功能\r\n $inputFocusRemove.each(function (i, $thisDom) {\r\n self.focusRemove($thisDom);\r\n });\r\n // Render 隱藏input\r\n if (this.option.renderHiddenToggle) {\r\n this.renderHiddenValue($needHiddenInputs, this.option.needHiddenInputsChangeEvents);\r\n }\r\n // 註冊 module 下所有 field 的change 事件\r\n $needTriggerChangeInputs.on(this.option.fromChangeEventName, function (e) {\r\n self.option.whenFormChanged($this.find('.ctns').children('.active:visible:last'), $(this), null);\r\n });\r\n // 註冊 module 下所有 field Recode Loaded 事件\r\n $needTriggerRecodeLoadedInputs.on(this.option.fieldRecodeWriteEvent, function (e, $input) {\r\n var $thisPanl = $input.closest('.panl[data-panl]');\r\n self.option.whenRecodeWrited($thisPanl, $input, self.getHiddenInputDoms($input));\r\n });\r\n // 讀取上一次的搜尋記錄\r\n this.lastSearchData().init($panels);\r\n // Submit Callback\r\n this.$submit.on('click', function (e) {\r\n var $visiablePanlWrap = $this.find('[data-panl]:visible:last');\r\n // Submit 前檢查\r\n if (self.requiredVerfiy($visiablePanlWrap)) {\r\n // Submit Callback\r\n self.option.whenBeforeSubmit($visiablePanlWrap, $(this));\r\n self.lastSearchData().save($visiablePanlWrap);\r\n self.option.whenSubmit($visiablePanlWrap, $(this));\r\n }\r\n });\r\n }\r\n }, {\r\n key: 'tab',\r\n value: function tab($dom, $sfWrap) {\r\n // 如果dom只有一個就將options.el抓給el,如果options.el沒有東西,就給options.dom抓好的dom\r\n var self = this;\r\n var el = $dom;\r\n var $tabNavigationLinks = el.children('.tabs').children('li');\r\n var $tabContentContainers = el.children('.ctns').children('.panl');\r\n var activeIndex = 0;\r\n\r\n var init = function init() {\r\n for (var i = 0; i < $tabNavigationLinks.length; i++) {\r\n var link = $tabNavigationLinks.eq(i);\r\n handleClick(link, i);\r\n }\r\n if ($tabNavigationLinks.eq(activeIndex).find('input[type=radio]').length > 0) {\r\n $tabNavigationLinks.eq(activeIndex).find('input[type=radio]').prop('checked', true);\r\n }\r\n $tabNavigationLinks.eq(activeIndex).addClass('active');\r\n $tabContentContainers.eq(activeIndex).addClass('active');\r\n };\r\n var handleClick = function handleClick($link, index) {\r\n $link.on('click', function (e) {\r\n goToTab(index);\r\n });\r\n };\r\n var goToTab = function goToTab(index) {\r\n if (index !== activeIndex && index >= 0 && index <= $tabNavigationLinks.length) {\r\n $tabNavigationLinks.eq(activeIndex).removeClass('active');\r\n $tabNavigationLinks.eq(index).addClass('active');\r\n $tabContentContainers.eq(activeIndex).removeClass('active');\r\n $tabContentContainers.eq(index).addClass('active');\r\n activeIndex = index;\r\n }\r\n // 將資料編輯區的wrapper dom 傳給 whenTabSwitchDone callback\r\n self.option.whenTabSwitchDone(self.$ele.find('.ctns').children('.active:visible:last'));\r\n };\r\n init();\r\n }\r\n }, {\r\n key: 'focusRemove',\r\n value: function focusRemove(dom) {\r\n var self = this;\r\n var $input = $(dom).children('input'),\r\n $addon = $(dom).children('.addon');\r\n\r\n !$(dom).hasClass('intg') && $(dom).addClass('intg');\r\n if ($addon.length == 0) {\r\n $input.after($(''));\r\n $addon = $(dom).children('.addon');\r\n }\r\n\r\n $addon.hide();\r\n $input.on('keyup', function () {\r\n if ($(this).val().length > 0) {\r\n $addon.show();\r\n } else {\r\n $addon.hide();\r\n self.option.whenInputRemoved($input);\r\n }\r\n });\r\n $input.on('focus', function () {\r\n $(this).val().length > 0 && $addon.show();\r\n });\r\n $input.on('focusout', function () {\r\n $addon.hide();\r\n });\r\n $addon.on('mousedown', function () {\r\n $input.val(null);\r\n $addon.hide();\r\n self.option.whenInputRemoved($input);\r\n });\r\n }\r\n }, {\r\n key: 'renderHiddenValue',\r\n value: function renderHiddenValue($inputs, eventName) {\r\n var self = this;\r\n var $module = this.$ele;\r\n var $visiablePanlWrap = $module.find('.ctns').children('.active:visible:last');\r\n $inputs.each(function (i, $this) {\r\n var inputName = $(this).attr('data-hiddenInput');\r\n var inputHtml = function inputHtml(string) {\r\n var html = '';\r\n if (string.indexOf(',') != -1) {\r\n var array = string.split(',');\r\n for (var i = 0; i < array.length; i++) {\r\n html += '';\r\n }\r\n } else {\r\n html = '';\r\n }\r\n return html;\r\n };\r\n var $inputHidden = $(inputHtml(inputName));\r\n $(this).after($inputHidden);\r\n // 註冊事件後即啟動是要更新已經下的預設值\r\n $(this).on(eventName, function (e, inputDom) {\r\n if (eventName != 'change' && !!inputDom) {\r\n self.option.whenFormChanged($visiablePanlWrap, $(inputDom), $inputHidden);\r\n } else {\r\n self.option.whenFormChanged($visiablePanlWrap, $(this), $inputHidden);\r\n }\r\n });\r\n });\r\n }\r\n }, {\r\n key: 'getHiddenInputDoms',\r\n value: function getHiddenInputDoms($input) {\r\n var self = this;\r\n var $returnDoms = null;\r\n var hiddenInputArray = [];\r\n var hiddenInputName = '';\r\n var multiSelectorString = '';\r\n var $inputInPanel = $input.closest('.panl[data-panl]');\r\n if ($input.is('[data-hiddenInput]') && !!$input.attr('data-hiddenInput')) {\r\n hiddenInputName = $input.attr('data-hiddenInput');\r\n if (hiddenInputName.indexOf(',') != -1) {\r\n hiddenInputArray = hiddenInputName.split(',');\r\n for (var i = 0; i < hiddenInputArray.length; i++) {\r\n multiSelectorString += 'input[type=\"hidden\"][name=\"' + hiddenInputArray[i] + '\"]';\r\n if (i + 1 !== hiddenInputArray.length) {\r\n multiSelectorString += ',';\r\n }\r\n }\r\n $returnDoms = $(multiSelectorString, $inputInPanel);\r\n } else {\r\n $returnDoms = $('input[type=\"hidden\"][name=\"' + hiddenInputName + '\"]');\r\n }\r\n }\r\n return $returnDoms;\r\n }\r\n }, {\r\n key: 'lastSearchData',\r\n value: function lastSearchData() {\r\n var self = this;\r\n var settings = this.option;\r\n var storageKey = this.option.storageSetting.key;\r\n var lastSearchKey = this.option.storageSetting.lastSearchKey;\r\n var storageValue = function (value) {\r\n if (typeof value === 'string') {\r\n var result = value.match(/(^\\{|\\}$)/);\r\n if (result.length == 2) {\r\n return JSON.parse(value);\r\n }\r\n } else {\r\n return null;\r\n }\r\n }(localStorage.getItem(storageKey));\r\n var fieldType = function fieldType($ele) {\r\n var nodeName = $ele.prop('nodeName');\r\n var customtype = $ele.attr('data-savecustom');\r\n if (nodeName === 'INPUT') {\r\n if (typeof customtype !== 'undefined') {\r\n return 'custom';\r\n } else {\r\n return $ele.attr('type');\r\n }\r\n } else if (nodeName === 'SELECT') {\r\n return 'select';\r\n }\r\n };\r\n var fieldValue = function fieldValue($ele, type) {\r\n switch (type) {\r\n case 'radio':\r\n case 'checkbox':\r\n if ($ele.prop('checked')) {\r\n return $ele.val();\r\n } else {\r\n return null;\r\n }\r\n break;\r\n case 'custom':\r\n var obj = {};\r\n var keys = $ele.attr('data-savecustom').split(',');\r\n var key;\r\n for (var i = 0; i < keys.length; i++) {\r\n key = keys[i];\r\n obj[key] = $ele.attr('data-' + key);\r\n }\r\n return obj;\r\n break;\r\n default:\r\n if ($ele.val().length > 0) {\r\n return $ele.val();\r\n }\r\n break;\r\n }\r\n };\r\n var expired = function expired(expiry) {\r\n var today = new Date();\r\n var exdate = new Date(expiry);\r\n if (today.getTime() >= exdate.getTime()) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n // Public 方法\r\n var loadStorageData = function loadStorageData($panels) {\r\n var loadByUrl = !!window.location.search && settings.urlFirst === true && !!settings.urlMatches;\r\n if (loadByUrl) {\r\n var paramObj = getURLParamObj(window.location.search.substr(1)),\r\n panelName = paramObj[settings.urlActivePanlParam];\r\n\r\n if (!panelName && settings.urlActivePanlDefault) {\r\n panelName = settings.urlActivePanlDefault;\r\n }\r\n if (!!panelName && !!settings.urlMatches[panelName]) {\r\n var $inputs = $('[data-panl=' + panelName + ']').find('[data-save]');\r\n !!panelName ? $panels = $panels.not(\"[data-panl=\" + panelName + \"]\") : $panels;\r\n\r\n $inputs.each(function (i, input) {\r\n var $input = $(input),\r\n key = $input.attr('data-save'),\r\n regex = \"\",\r\n replacedTo = \"\",\r\n replaceVal = \"\";\r\n if (!!settings.urlMatches[panelName][key]) {\r\n if (!!settings.urlMatches[panelName][key][settings.urlConcat]) {\r\n var concatObj = settings.urlMatches[panelName][key][settings.urlConcat];\r\n var concatKeys = Object.keys(concatObj);\r\n for (var j = 0; j < concatKeys.length; j++) {\r\n var concatKey = concatKeys[j];\r\n var item = concatObj[concatKey];\r\n if (!!concatObj[concatKey][settings.urlConcatPrimary] && concatObj[concatKey][settings.urlConcatPrimary] === true && !paramObj[concatKey]) {\r\n regex = new RegExp(settings.urlMatches[panelName][key][settings.urlRegex], 'g');\r\n replacedTo = settings.urlMatches[panelName][key][settings.urlReplacedTo];\r\n replaceVal = paramObj[key] ? paramObj[key].replace(regex, replacedTo) : '';\r\n break;\r\n } else {\r\n regex = new RegExp(item[settings.urlRegex], 'g');\r\n replacedTo = item[settings.urlReplacedTo];\r\n replaceVal += paramObj[concatKey].replace(regex, replacedTo);\r\n }\r\n }\r\n } else {\r\n regex = new RegExp(settings.urlMatches[panelName][key][settings.urlRegex], 'g');\r\n replacedTo = settings.urlMatches[panelName][key][settings.urlReplacedTo];\r\n if (!!paramObj[key]) replaceVal = paramObj[key].replace(regex, replacedTo);\r\n }\r\n var inputType = fieldType($input);\r\n if (!!replaceVal || inputType === \"custom\") {\r\n switch (inputType) {\r\n case 'checkbox':\r\n !!settings.urlMatches[panelName][key][settings.urlCheckedVal] && replaceVal == settings.urlMatches[panelName][key][settings.urlCheckedVal] && $input.data(settings.reocodeDataOnDomKey, replaceVal).prop('checked', true).trigger(settings.fieldRecodeWriteEvent, [$input]);\r\n break;\r\n case 'radio':\r\n $input.data(settings.reocodeDataOnDomKey, replaceVal).filter('[value=' + replaceVal + ']').prop('checked', true).trigger(settings.fieldRecodeWriteEvent, [$input]);\r\n break;\r\n case 'select':\r\n $input.find('option').attr('selected', null);\r\n $input.data(settings.reocodeDataOnDomKey, replaceVal).find('option[value=\"' + replaceVal + '\"]').prop('selected', true).attr('selected', 'selected');\r\n $input.trigger(settings.fieldRecodeWriteEvent, [$input]);\r\n break;\r\n case 'custom':\r\n var customObj = null;\r\n if (!!settings.urlMatches[panelName][key].custom) customObj = settings.urlMatches[panelName][key].custom;\r\n if (!!customObj && (typeof customObj === 'undefined' ? 'undefined' : _typeof(customObj)) === 'object') {\r\n var customObjKey = Object.keys(customObj);\r\n for (var key in customObj) {\r\n $input.attr(key, paramObj[customObj[key]]);\r\n }\r\n }\r\n break;\r\n default:\r\n $input.data(settings.reocodeDataOnDomKey, replaceVal).val(replaceVal).trigger(settings.fieldRecodeWriteEvent, [$input]);\r\n break;\r\n };\r\n }\r\n }\r\n });\r\n } else console.log(\"Cannot find \" + settings.urlActivePanlParam + \"on URL\");\r\n }\r\n if (!!storageValue) {\r\n\r\n // console.log(\"$panels\", $panels) \r\n !!storageValue[lastSearchKey] && $panels.each(function (i, ele) {\r\n var $panel = $(ele);\r\n var panelKey = $panel.attr('data-panl');\r\n var panelValue = !!storageValue[lastSearchKey][panelKey] ? storageValue[lastSearchKey][panelKey] : null;\r\n\r\n if (!!panelValue) {\r\n // 取出設有data-save屬性的dom \r\n var $inputForSave = $panel.find('[data-save]');\r\n // 開始遍歷每一個被標記要存值的Field \r\n $inputForSave.each(function (i, input) {\r\n var $input = $(input);\r\n var inputKey = $input.attr('data-save');\r\n var inputType = fieldType($input);\r\n var inputValue = !!panelValue[inputKey] ? panelValue[inputKey] : null;\r\n\r\n if (inputValue != null && !expired(inputValue.date.expired)) {\r\n // 讀取上一次搜尋記錄並寫入filed後就啟動該field的change事件 \r\n switch (inputType) {\r\n case 'checkbox':\r\n inputValue.value == 'on' && $input.data(settings.reocodeDataOnDomKey, inputValue.value).prop('checked', true).trigger(settings.fieldRecodeWriteEvent, [$input]);\r\n break;\r\n case 'radio':\r\n $input.data(settings.reocodeDataOnDomKey, inputValue.value).filter('[value=' + inputValue.value + ']').prop('checked', true).trigger(settings.fieldRecodeWriteEvent, [$input]);\r\n break;\r\n case 'select':\r\n $input.find('option').attr('selected', null);\r\n $input.data(settings.reocodeDataOnDomKey, inputValue.value).find('option[value=\"' + inputValue.value + '\"]').prop('selected', true).attr('selected', 'selected');\r\n $input.trigger(settings.fieldRecodeWriteEvent, [$input]);\r\n break;\r\n case 'custom':\r\n if (_typeof(inputValue.value) === 'object') {\r\n for (var key in inputValue.value) {\r\n $input.attr('data-' + key, inputValue.value[key]);\r\n }\r\n $input.data(settings.reocodeDataOnDomKey, inputValue.value).prop('value', function (obj) {\r\n if (typeof obj.merged === \"string\" && obj.merged.length > 0) {\r\n return obj.merged;\r\n } else if (typeof obj.txt === \"string\") {\r\n return obj.txt;\r\n } else if (typeof obj.intvalue === \"string\") {\r\n return obj.intvalue;\r\n }\r\n }(inputValue.value)).trigger(settings.fieldRecodeWriteEvent, [$input]);\r\n }\r\n break;\r\n default:\r\n $input.data(settings.reocodeDataOnDomKey, inputValue.value).val(inputValue.value).trigger(settings.fieldRecodeWriteEvent, [$input]);\r\n break;\r\n };\r\n }\r\n });\r\n }\r\n });\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n };\r\n var savePanelInputData = function savePanelInputData($panel) {\r\n var saveKey = storageKey;\r\n var saveValue = !!storageValue ? storageValue : {};\r\n var rootKey = lastSearchKey;\r\n var rootValue = !!saveValue[rootKey] ? saveValue[rootKey] : {};\r\n var panelKey = $panel.attr('data-panl');\r\n var panelValue = {};\r\n // 取出設有data-save屬性的dom\r\n var $inputForSave = $panel.find('[data-save]');\r\n // 開始遍歷每一個被標記要存值的Field\r\n $inputForSave.each(function (i, ele) {\r\n var $input = $(ele);\r\n var inputKey = $input.attr('data-save');\r\n var type = fieldType($input);\r\n var value = fieldValue($input, type);\r\n var today = new Date();\r\n var expiry = new Date();\r\n expiry.setDate(expiry.getDate() + 30);\r\n var InputVal = {\r\n value: value,\r\n fieldType: type,\r\n date: {\r\n create: today.getFullYear() + '-' + (today.getMonth() + 1) + '-' + today.getDate() + ' ' + today.getHours() + ':' + today.getMinutes() + ':' + today.getSeconds(),\r\n expired: expiry.getFullYear() + '-' + (expiry.getMonth() + 1) + '-' + expiry.getDate() + ' ' + expiry.getHours() + ':' + expiry.getMinutes() + ':' + expiry.getSeconds()\r\n }\r\n };\r\n if (value != null) {\r\n panelValue[inputKey] = InputVal;\r\n }\r\n });\r\n rootValue[panelKey] = panelValue;\r\n saveValue[rootKey] = rootValue;\r\n localStorage.setItem(saveKey, JSON.stringify(saveValue));\r\n };\r\n if (typeof Storage !== \"undefined\") {} else {\r\n console.log('您的browser不支援web storage喔!');\r\n }\r\n return {\r\n init: loadStorageData,\r\n save: savePanelInputData\r\n };\r\n }\r\n }, {\r\n key: 'requiredVerfiy',\r\n value: function requiredVerfiy($panel, callback) {\r\n var self = this;\r\n var $requireds = $panel.find('[data-required=true]:visible');\r\n var verfiyPass = [];\r\n var alertStrings = [];\r\n $requireds.each(function (i, ele) {\r\n var $this = $(ele);\r\n var alertSting = function (val) {\r\n var string = val;\r\n if (typeof string === 'undefined') {\r\n string = '請輸入必填欄位喔!';\r\n }\r\n return string;\r\n }($this.attr('data-reqString'));\r\n if ($this.val() == null || $this.val().length == 0) {\r\n alertStrings.push(alertSting);\r\n verfiyPass.push(false);\r\n } else {\r\n verfiyPass.push(true);\r\n }\r\n });\r\n if (alertStrings.length > 0) {\r\n alert(alertStrings.filter(function (elem, index, self) {\r\n return index == self.indexOf(elem);\r\n }).join('、'));\r\n }\r\n return verfiyPass.indexOf(false) == -1 ? true : false;\r\n }\r\n }, {\r\n key: 'getURLParamObj',\r\n value: function getURLParamObj(locationSearch) {\r\n var self = this;\r\n var paramObj = {};\r\n if (!locationSearch) {\r\n console.log(\"There's no parameter of the URL.\");\r\n } else if (typeof locationSearch == 'string') {\r\n var paramArray = [];\r\n paramArray = locationSearch.split(\"&\");\r\n if (!!paramArray) {\r\n for (var i = 0; i < paramArray.length; i++) {\r\n var itemArray = paramArray[i].split(\"=\");\r\n paramObj[itemArray[0]] = decodeURI(itemArray[1]);\r\n }\r\n }\r\n }\r\n // console.log(\"paramObj\", paramObj);\r\n return paramObj;\r\n }\r\n }]);\r\n\r\n return Module;\r\n}();\r\n\r\n;\r\n\r\nexports.ModuleName = ModuleName;\r\nexports.ModuleDefaults = ModuleDefaults;\r\nexports.ModuleReturns = ModuleReturns;\r\nexports.Module = Module;\r\n\r\n/***/ })\r\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// ./magaele/sf-lnse/module.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/cd_flln/css.scss\n// module id = 28\n// module chunks = 0 3 4","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/clp_stbm/css.scss\n// module id = 29\n// module chunks = 0 3 4","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/tb_gpli/css.scss\n// module id = 32\n// module chunks = 3 4 5","/******/ (function(modules) { // webpackBootstrap\r\n/******/ \t// The module cache\r\n/******/ \tvar installedModules = {};\r\n/******/\r\n/******/ \t// The require function\r\n/******/ \tfunction __webpack_require__(moduleId) {\r\n/******/\r\n/******/ \t\t// Check if module is in cache\r\n/******/ \t\tif(installedModules[moduleId]) {\r\n/******/ \t\t\treturn installedModules[moduleId].exports;\r\n/******/ \t\t}\r\n/******/ \t\t// Create a new module (and put it into the cache)\r\n/******/ \t\tvar module = installedModules[moduleId] = {\r\n/******/ \t\t\ti: moduleId,\r\n/******/ \t\t\tl: false,\r\n/******/ \t\t\texports: {}\r\n/******/ \t\t};\r\n/******/\r\n/******/ \t\t// Execute the module function\r\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n/******/\r\n/******/ \t\t// Flag the module as loaded\r\n/******/ \t\tmodule.l = true;\r\n/******/\r\n/******/ \t\t// Return the exports of the module\r\n/******/ \t\treturn module.exports;\r\n/******/ \t}\r\n/******/\r\n/******/\r\n/******/ \t// expose the modules object (__webpack_modules__)\r\n/******/ \t__webpack_require__.m = modules;\r\n/******/\r\n/******/ \t// expose the module cache\r\n/******/ \t__webpack_require__.c = installedModules;\r\n/******/\r\n/******/ \t// define getter function for harmony exports\r\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\r\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\r\n/******/ \t\t\tObject.defineProperty(exports, name, {\r\n/******/ \t\t\t\tconfigurable: false,\r\n/******/ \t\t\t\tenumerable: true,\r\n/******/ \t\t\t\tget: getter\r\n/******/ \t\t\t});\r\n/******/ \t\t}\r\n/******/ \t};\r\n/******/\r\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\r\n/******/ \t__webpack_require__.n = function(module) {\r\n/******/ \t\tvar getter = module && module.__esModule ?\r\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\r\n/******/ \t\t\tfunction getModuleExports() { return module; };\r\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\r\n/******/ \t\treturn getter;\r\n/******/ \t};\r\n/******/\r\n/******/ \t// Object.prototype.hasOwnProperty.call\r\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\r\n/******/\r\n/******/ \t// __webpack_public_path__\r\n/******/ \t__webpack_require__.p = \"\";\r\n/******/\r\n/******/ \t// Load entry module and return exports\r\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\r\n/******/ })\r\n/************************************************************************/\r\n/******/ ([\r\n/* 0 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\"use strict\";\r\n/* WEBPACK VAR INJECTION */(function(global) {\r\n\r\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\r\n\r\n__webpack_require__(2);\r\n\r\nvar _module = __webpack_require__(3);\r\n\r\nvar root = function (root) {\r\n\tif ((typeof root === 'undefined' ? 'undefined' : _typeof(root)) === 'object' && (root.self === root || root.global === global) && root) {\r\n\t\treturn root;\r\n\t}\r\n}(self || global || {});\r\n\r\nvar $ = function ($) {\r\n\tif (typeof $ === 'function') {\r\n\t\treturn $;\r\n\t} else {\r\n\t\tthrow 'You must import jQuery';\r\n\t}\r\n}(root.jQuery);\r\n\r\n$.fn[_module.ModuleName] = function () {\r\n\tvar module = void 0;\r\n\tvar args = Array.prototype.slice.call(arguments, 0);\r\n\tvar method = args[0];\r\n\tvar options = args.slice(1).length <= 0 ? undefined : args.slice(1, args.length);;\r\n\tvar isReturnMethod = this.length === 1 && typeof method === 'string' && _module.ModuleReturns.indexOf(method) !== -1;\r\n\tvar methodRunner = function methodRunner(method, options, uesReturn) {\r\n\t\tvar $this = $(this);\r\n\t\tvar module = $this.data(_module.ModuleName);\r\n\t\tif (!!module) {\r\n\t\t\tif (typeof method == 'string' && !uesReturn) {\r\n\t\t\t\tmodule[method].apply(module, options);\r\n\t\t\t} else if (typeof method == 'string' && !!uesReturn) {\r\n\t\t\t\treturn module[method].apply(module, options);\r\n\t\t\t} else {\r\n\t\t\t\tthrow 'unsupported options!';\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthrow 'You must run first this plugin!';\r\n\t\t}\r\n\t};\r\n\tif (isReturnMethod) {\r\n\t\treturn methodRunner.call(this, method, options, isReturnMethod);\r\n\t} else {\r\n\t\treturn this.each(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar module = $this.data(_module.ModuleName);\r\n\t\t\tvar opts = null;\r\n\t\t\tif (!!module) {\r\n\t\t\t\tmethodRunner.call(this, method, options);\r\n\t\t\t} else {\r\n\t\t\t\topts = $.extend(true, {}, _module.ModuleDefaults, (typeof method === 'undefined' ? 'undefined' : _typeof(method)) === 'object' && method, (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object' && options);\r\n\t\t\t\tmodule = new _module.Module(this, opts);\r\n\t\t\t\t$this.data(_module.ModuleName, module);\r\n\t\t\t\tmodule.init();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n};\r\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\r\n\r\n/***/ }),\r\n/* 1 */\r\n/***/ (function(module, exports) {\r\n\r\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\r\n\r\n/***/ }),\r\n/* 2 */\r\n/***/ (function(module, exports) {\r\n\r\n// removed by extract-text-webpack-plugin\r\n\r\n/***/ }),\r\n/* 3 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\"use strict\";\r\n\r\n\r\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\n\r\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\r\n\r\nvar ModuleName = 'clp_stbm';\r\nvar ModuleDefaults = {\r\n width: null,\r\n inModule: false,\r\n hiddenChange: function hiddenChange(showBlock, hiddenBlock) {\r\n console.log(showBlock);\r\n }\r\n};\r\nvar ModuleReturns = [];\r\n\r\nvar Module = function () {\r\n function Module(element, opt) {\r\n _classCallCheck(this, Module);\r\n\r\n this.ele = element;\r\n this.$elem = $(element);\r\n this.option = opt;\r\n this.showBlock = this.$elem.children('.showBlock');\r\n this.hiddenBlock = this.$elem.children('.hiddenBlock');\r\n }\r\n\r\n _createClass(Module, [{\r\n key: 'init',\r\n value: function init() {\r\n var _this = this;\r\n\r\n var inModuleMode = this.option.inModule;\r\n\r\n if (!inModuleMode) this.movehidden();\r\n\r\n this.showBlock.on('click', function (e) {\r\n e.stopPropagation();\r\n\r\n //處理label for會觸發兩次click事件的問題\r\n e.preventDefault();\r\n\r\n var offset = _this.showBlock.offset();\r\n var showBlockH = _this.showBlock.outerHeight();\r\n\r\n if (_this.hiddenBlock.hasClass('open')) {\r\n $('.clp_stbm_hiddenBlock, .hiddenBlock').removeClass('open');\r\n } else {\r\n $('.clp_stbm_hiddenBlock, .hiddenBlock').removeClass('open');\r\n\r\n if (!inModuleMode) {\r\n _this.hiddenBlock.css({ 'top': offset.top + showBlockH, 'left': offset.left });\r\n _this.setWidth();\r\n }\r\n _this.hiddenBlock.addClass('open');\r\n }\r\n });\r\n\r\n this.hiddenBlock.on('click', function (e) {\r\n e.stopPropagation();\r\n }).on('click', '.close_btn', function (e) {\r\n _this.hiddenBlock.removeClass('open');\r\n });\r\n\r\n this.hiddenBlock.find('select, input').on('change', function () {\r\n _this.option.hiddenChange(_this.showBlock, _this.hiddenBlock);\r\n });\r\n\r\n $('html').on('click', function () {\r\n _this.hiddenBlock.removeClass('open');\r\n });\r\n }\r\n }, {\r\n key: 'movehidden',\r\n value: function movehidden() {\r\n //把hidden區塊移動至body層,並做好定位\r\n this.hiddenBlock.appendTo('body').addClass(ModuleName + '_hiddenBlock').append('');\r\n }\r\n }, {\r\n key: 'setWidth',\r\n value: function setWidth() {\r\n if (!this.option.width) return;\r\n\r\n if (typeof this.option.width === 'number') {\r\n this.hiddenBlock.css('width', this.option.width);\r\n } else if (this.option.width === 'full') {\r\n this.hiddenBlock.css('width', this.showBlock.outerWidth());\r\n }\r\n }\r\n /////////////v1.0.4_by_PaulNi/////\r\n\r\n }, {\r\n key: 'setWidth_sec',\r\n value: function setWidth_sec(num) {\r\n if (typeof num === 'number') {\r\n this.hiddenBlock.css('width', num);\r\n } else if (num === 'full') {\r\n this.hiddenBlock.css('width', this.showBlock.outerWidth());\r\n } else if (num === 'defult') {\r\n this.hiddenBlock.css('width', this.hiddenBlock.outerWidth());\r\n }\r\n }\r\n }]);\r\n\r\n return Module;\r\n}();\r\n\r\n;\r\n\r\nexports.ModuleName = ModuleName;\r\nexports.ModuleDefaults = ModuleDefaults;\r\nexports.ModuleReturns = ModuleReturns;\r\nexports.Module = Module;\r\n\r\n/***/ })\r\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// ./magaele/clp_stbm/module.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/cd_gpls/css.scss\n// module id = 38\n// module chunks = 3 4","import 'Magaele/ntb_gpbt/module.js';\r\nimport 'Magaele/cy-ln/module.js';\r\nimport \"Magaele/btg_gpct/module.js\";\r\nimport \"Magaele/clp_gpby/module.js\";\r\n\r\nimport \"Magaele/sf-lnse/module.js\";\r\nimport \"Magaele/st_lnls/module.js\";\r\nimport \"Magaele/clp_stbm/module.js\";\r\nimport \"Magaele/clp_gplt/module.js\";\r\nimport \"Magaele/cd_gplx/module.js\";\n\n\n// WEBPACK FOOTER //\n// ./entry/ticket_script.entry.js","import 'Magaele/ps_lnls/css.scss';\r\nimport 'Magaele/ntb_gpbt/css.scss';\r\nimport 'Magaele/cy-ln/css.scss';\r\nimport \"Magaele/btg_gpct/css.scss\";\r\nimport \"Magaele/clp_gpby/css.scss\";\r\nimport 'Magaele/ic-ln/css.scss';\r\nimport \"Magaele/sf-lnse/css.scss\";\r\nimport \"Magaele/fcl_lnls/css.scss\";\r\nimport \"Magaele/st_lnls/css.scss\";\r\nimport \"Magaele/clp_stbm/css.scss\";\r\nimport \"Magaele/clp_gplt/css.scss\";\r\nimport \"Magaele/cd_flln/css.scss\";\r\nimport \"Magaele/cd_gpls/css.scss\";\r\nimport \"Magaele/tb_gpli/css.scss\";\r\nimport \"Magaele/th_gpls/css.scss\";\r\nimport \"Magaele/ft_lnxt/css.scss\";\r\nimport \"Magaele/cd_gplx/css.scss\";\r\n\r\nimport \"../css/css.scss\";\r\nimport \"../css/table.scss\";\n\n\n// WEBPACK FOOTER //\n// ./entry/ticket_style.entry.js"],"sourceRoot":""}