{"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/bt_gptr/css.scss?b1cd","webpack:///./magaele/th_gpls/css.scss?6c35","webpack:///./magaele/btg_gpct/css.scss?f4eb","webpack:///./magaele/mdl_lnls/css.scss?5db9","webpack:///./magaele/btg_gpct/module.js?029f","webpack:///./magaele/mdl_lnls/module.js?554c","webpack:///./magaele/sf-lnse/css.scss?8298","webpack:///./magaele/sf-lnse/module.js?61b9","webpack:///./magaele/nvb_gptb/css.scss","webpack:///./magaele/pp_ln/css.scss","webpack:///./magaele/nvb_gptb/module.js","webpack:///./magaele/pp_ln/module.js","webpack:///./magaele/st_lnht/css.scss?6f7b","webpack:///./magaele/tb_htrm/css.scss?30ec","webpack:///./magaele/th_gplt/css.scss","webpack:///./magaele/st_lnht/module.js?6c0c","webpack:///./magaele/tb_htrm/module.js?627f","webpack:///./entry/booking_script.entry.js","webpack:///./entry/booking_style.entry.js","webpack:///./magaele/ic-lnpx/css.scss","webpack:///./magaele/int_lnls/css.scss","webpack:///./magaele/lb_htif/css.scss","webpack:///./magaele/tb_htpr/css.scss","webpack:///./magaele/th_lnop/css.scss","webpack:///./magaele/int_lnls/module.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","addBtn","minusBtn","minus","nowValue","whenClick","beforeChangeFun","maxNum","minNum","newOptions","$amount_num","first","last","$amount","$minus","$add","callbackFun","prop","amount_num","res","onChange","browser","mobile","substr","vendor","opera","transitionEnd","el","document","createElement","transEndEventNames","emulateTransitionEnd","duration","called","$el","callback","support","transition","setTimeout","special","bsTransitionEnd","bindType","delegateType","handle","handleObj","handler","apply","arguments","Modal","$window","body","$element","$dialog","$backdrop","$contents","$ctnBody","$ctnFoot","$iframe","iframe","get","iframeContent","contentWindow","iframeMode","isMove","isShown","remoteFirstLoaded","isLoadingIframe","isWaitforSwitch","originalBodyPad","scrollbarWidth","ignoreBackdropClick","isloading","switchIframeStatus","action","direction","iframePostEvents","params","n","obj","key","indexOf","iframeSendToChild","hello","postMessage","param","documentElement","clientWidth","hasOwnProperty","nthIframe","fixIframeHeight","switchIframe","appendIframe","iframeUrl","content","slideInClass","$content","$iframes","$currentIframe","$nextIframe","$placeholder","slideOutClass","slideOutTop","transitionEvent","slideEnd","toggle","TRANSITION_DURATION","BACKDROP_TRANSITION_DURATION","backdrop","keyboard","bodyScroll","bodyMaxHeight","fullscreenonmobile","reloadwhenopen","docWidth","load","check","whenShowModalStart","$modal","whenShowModalEnd","whenHideModalStart","whenHideModalEnd","showAfterLoaded","remote","proxy","_relatedTarget","setIframeSrc","whichIframe","iframeEventListener","setEventWhenShow","$trigger","nextprev","contentMove","removeEventWhenHide","off","that","Event","relatedTarget","checkScrollbar","setScrollbar","escape","resize","$initAcitve","scrollTop","adjustDialog","offsetWidth","enforceFocus","isDefaultPrevented","unforceFocus","hideModal","redirectURL","location","nextMover","prevMover","targetDirection","canSwicth","recource","$contentActive","$next","$contentNext","$holder","thisContentClass","nextContentClass","delay","queue","dequeue","$nowActive","nowIndex","nextIndex","$nextContent","has","which","handleUpdate","resetAdjustments","resetScrollbar","removeBackdrop","animate","mobilePage","doAnimate","currentTarget","focus","callbackRemove","modalIsOverflowing","scrollHeight","clientHeight","paddingRight","bodyIsOverflowing","paddingLeft","fullWindowWidth","innerWidth","documentElementRect","right","Math","abs","measureScrollbar","bodyPad","scrollDiv","removeChild","setListener","addEventListener","removeEventListener","Plugin","old","mdl_lnls","Constructor","noConflict","href","$target","mdl_lnls_target","hrefstring","returnValue","targetOpts","showEvent","modules","installedModules","__webpack_require__","moduleId","exports","l","m","c","d","getter","o","defineProperty","configurable","enumerable","__esModule","getDefault","getModuleExports","object","property","p","s","global","_typeof","Symbol","iterator","constructor","_module","root","args","Array","slice","method","isReturnMethod","ModuleReturns","methodRunner","uesReturn","ModuleDefaults","g","Function","eval","_createClass","defineProperties","props","descriptor","writable","protoProps","staticProps","_classCallCheck","instance","TypeError","$tabsWrap","toggleTabs","renderHiddenToggle","needHiddenInputsChangeEvents","fromChangeEventName","fieldRecodeWriteEvent","switchEnableDisable","reocodeDataOnDomKey","urlFirst","urlMatches","urlRegex","urlReplacedTo","urlActivePanlParam","urlActivePanlDefault","urlConcat","urlConcatPrimary","urlCheckedVal","storageSetting","lastSearchKey","whenInit","$module","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","$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","search","paramObj","getURLParamObj","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","$requireds","verfiyPass","alertStrings","alertSting","elem","join","locationSearch","paramArray","itemArray","decodeURI","df","createDocumentFragment","flag","anchors","mobileShow","dropOffset","time","haveSubmitBtn","haveSearchBtn","listContinerClass","whenFixed","whenUnFixed","whenClickSubmit","placeName","whenClickSearch","createEle","PCsmallHide","listContainerClass","div","$a","li","$li","moveto","ul","str","bindClick","lis","stop","scroll","scrolltop","updateOpt","newOpts","updatePart","leftAnchors","rightAnchors","pop","concat","options2","options3","options1","factory","pluginName","pluginClass","pluginType","defaults","placement","container","runStopPropagation","async","before","success","error","cache","multi","closeable","padding","url","animation","template","dismissible","onShow","onHide","abortXHR","autoHide","offsetTop","offsetLeft","iframeOptions","frameborder","allowtransparency","scrolling","onload","hideEmpty","rtlClass","_srcElements","_globalIdSeed","_isBodyEventHandled","_offsetOut","$document","toNumber","numeric","fallback","Number","getPopFromElement","hideAllPop","pointerEventToXY","out","x","y","touch","originalEvent","touches","changedTouches","pageX","pageY","WebuiPopover","_defaults","_name","_targetclick","getTrigger","mouseenterHandler","mouseleaveHandler","_poped","_inited","_opened","_idSeed","destroy","splice","force","xhr","abort","getHideAnimation","getCache","getHideDelay","resetAutoHide","getAutoHide","autoHideHandler","clearTimeout","getTarget","hideAll","_customTargetClass","setTitle","getTitle","isAsync","setContent","getContent","setContentASync","canEmptyHide","displayContent","bindBodyEvents","elementPos","getElementPosition","$targetContent","getContentElement","targetWidth","targetHeight","offsetHeight","trim","optWidth","optHeight","detach","getAnimation","getPlacement","initTargetEvents","postionInfo","getTargetPositin","iframeWidth","iframeHeight","$arrow","arrowOffset","isTargetLoaded","getTriggerElement","getTitleElement","$contentElement","getUrl","getOffsetTop","getOffsetLeft","dataAttr","toLowerCase","getDelayShow","ani","$titleEl","hasContent","getIframe","$ct","ajax","beforeSend","complete","escapeHandler","bodyClickHandler","_timeout","_enterTimeout","canHide","popX1","popY1","popX2","popY2","pt","inPop","pos","innerHeight","scrollLeft","isH","isV","detect","elRect","cssPos","containerRect","elementW","elementH","arrowSize","fixedW","fixedH","refix","pageH","pageW","validLeft","validRight","validTop","validBottom","noInit","results","$result","webuiPopover","popovers","_hideAll","_create","selector","pp_ln","_isCreated","created","_show","_hide","isCreated","childMax","inputParent","isFirst","winWidth","appendDiv","isPosition","total","newpackage","warningText","noticeText","kidsNoBed","readonly","closeManually","activeRoomCount","newCloseBtnClass","closeBtnClass","adultDefaultNum","$targetObj","tabCount","tabActiveIndex","defaultCloseBtnClass","whenInitRoom","whenInitChildAge","whenInitPeopleNum","adult","child","whenTabBtnClick","$tabBtn","isCustomMobile","_this","selectMouseDown","initRoomNumSelect","initPeopleNum","closePopup","bodyMouseDown","divClickEvent","mergeCloseBtnClass","tabBtnEvents","count","optionsMouseDown","stopEvents","device","len","detail","adultBox","childBox","select","closeBtn","$eleWidth","createHtmlStr","createPopup","num","len2","createDetail","updateValue","minusChild","ageBox","selectBox","addChild","$select","createChildAge","initChildAge","$elem","getAllRoomPeopleCount","roomCount","room","people","peopleCount","getRoomDetailInfos","totalObj","roomPeopleCount","peopleObj","childrenNeedBed","childrenNotNeedBed","$childNeedBedObj","$childNotNeedBedObj","idx","childAge","roomNum","adultLen","adultNum","common","commonLen","commonNum","roomPeopArry","kidNum","modeText","htmlStr","maxRoomCount","kidsHasBed","items","$contentRows","$btn","focusout","setInputData","methods"],"mappings":"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","file":"./SubSiteBundles/ShipApply/booking.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 = 98);\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 + '>' + 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='
'\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 value: opts[i].val,\r\n }));\r\n // stOptions\r\n var $stOption = $('', {\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 value: i,\r\n }));\r\n var $stOption = $('', {\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/bt_gptr/css.scss\n// module id = 11\n// module chunks = 0 1 2 6 9 10","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/th_gpls/css.scss\n// module id = 12\n// module chunks = 0 1 3 4 5 9","// 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/mdl_lnls/css.scss\n// module id = 16\n// module chunks = 0 1 2 7 8","(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(a) {\r\n (jQuery.browser = jQuery.browser || {}).mobile = /(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\\-(n|u)|c55\\/|capi|ccwa|cdm\\-|cell|chtm|cldc|cmd\\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\\-s|devi|dica|dmob|do(c|p)o|ds(12|\\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\\-|_)|g1 u|g560|gene|gf\\-5|g\\-mo|go(\\.w|od)|gr(ad|un)|haie|hcit|hd\\-(m|p|t)|hei\\-|hi(pt|ta)|hp( i|ip)|hs\\-c|ht(c(\\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\\-(20|go|ma)|i230|iac( |\\-|\\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\\/)|klon|kpt |kwc\\-|kyo(c|k)|le(no|xi)|lg( g|\\/(k|l|u)|50|54|\\-[a-w])|libw|lynx|m1\\-w|m3ga|m50\\/|ma(te|ui|xo)|mc(01|21|ca)|m\\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\\-2|po(ck|rt|se)|prox|psio|pt\\-g|qa\\-a|qc(07|12|21|32|60|\\-[2-7]|i\\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\\-|oo|p\\-)|sdk\\/|se(c(\\-|0|1)|47|mc|nd|ri)|sgh\\-|shar|sie(\\-|m)|sk\\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\\-|v\\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\\-|tdg\\-|tel(i|m)|tim\\-|t\\-mo|to(pl|sh)|ts(70|m\\-|m3|m5)|tx\\-9|up(\\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\\-|your|zeto|zte\\-/i.test(a.substr(0, 4));\r\n})(navigator.userAgent || navigator.vendor || window.opera);\r\n(function($) {\r\n 'use strict';\r\n\r\n function transitionEnd() {\r\n var el = document.createElement('bootstrap');\r\n\r\n var transEndEventNames = {\r\n 'WebkitTransition': 'webkitTransitionEnd',\r\n 'MozTransition': 'transitionend',\r\n 'OTransition': 'oTransitionEnd otransitionend',\r\n 'transition': 'transitionend'\r\n };\r\n\r\n for (var name in transEndEventNames) {\r\n if (el.style[name] !== undefined) {\r\n return { end: transEndEventNames[name] };\r\n }\r\n }\r\n\r\n return false;\r\n }\r\n\r\n $.fn.emulateTransitionEnd = function(duration) {\r\n var called = false;\r\n var $el = this;\r\n $(this).one('bsTransitionEnd', function() { called = true })\r\n var callback = function() {\r\n if (!called) $($el).trigger($.support.transition.end)\r\n }\r\n setTimeout(callback, duration)\r\n return this\r\n }\r\n\r\n $(function() {\r\n $.support.transition = transitionEnd();\r\n if (!$.support.transition) return\r\n\r\n $.event.special.bsTransitionEnd = {\r\n bindType: $.support.transition.end,\r\n delegateType: $.support.transition.end,\r\n handle: function(e) {\r\n if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)\r\n }\r\n }\r\n })\r\n\r\n // MODAL CLASS DEFINITION\r\n // ======================\r\n\r\n var Modal = function(element, options) {\r\n\r\n this.options = options;\r\n this.$window = $(window);\r\n this.$body = $(document.body);\r\n this.$element = $(element);\r\n this.$dialog = this.$element.find('.modal-dialog');\r\n this.$backdrop = null;\r\n this.$contents = $(element).find('.modal-content');\r\n this.$ctnBody = this.$contents.children('.modal-body').length > 0 ? this.$contents.children('.modal-body') : this.$contents.children('iframe');\r\n this.$ctnFoot = this.$contents.children('.modal-footer');\r\n this.$iframe = this.$ctnBody.is('iframe') ? this.$ctnBody : null;\r\n this.iframe = this.$iframe ? this.$iframe.get(0) : null;\r\n this.iframeContent = this.iframe ? this.iframe.contentWindow : null;\r\n this.iframeMode = this.iframeMode = this.options.iframe && this.options.iframe.length > 0 && !!this.$iframe; \r\n this.isMove = (this.$contents.length > 1) ? true : false;\r\n this.isShown = null;\r\n this.remoteFirstLoaded = null;\r\n this.isLoadingIframe = false;\r\n this.isWaitforSwitch = false;\r\n this.originalBodyPad = null;\r\n this.scrollbarWidth = 0;\r\n this.ignoreBackdropClick = false;\r\n this.isloading = false;\r\n this.switchIframeStatus = {action:'', direction:''};\r\n this.iframePostEvents = function(e) {\r\n var self = this ;\r\n var action = e.data.replace(/(^[\\w-]+)(\\?.+)/, '$1');\r\n var params = e.data.replace(/[\\w-]+(\\?)(.+)/, '$2').split(\"&\").map(function(n) {\r\n n = n.split(\"=\");\r\n this[n[0]] = n[1];\r\n if (Object.keys(this).length > 0 && function(obj) {\r\n var arr = [];\r\n for (var key in obj) {\r\n arr.push(obj[key]);\r\n }\r\n return arr;\r\n }(this).indexOf(undefined) === -1) {\r\n return this;\r\n } else {\r\n return null;\r\n }\r\n return Object.keys(this).length > 0 ? this : null;\r\n }.bind({}))[0];\r\n console.log(\r\n // 'top.location.href:', top.location.href,\r\n 'action:', action,\r\n '\\nparams:', params\r\n );\r\n var $iframe = this.$contents.find('iframe:first-child').get(0);\r\n switch (action) {\r\n case \"close\":\r\n this.hide();\r\n break;\r\n case \"hello\":\r\n if ( $.type(this.options.iframeSendToChild.hello) === 'object' ) {\r\n $iframe.contentWindow.postMessage( 'yes?' + $.param(this.options.iframeSendToChild.hello) , \"*\" );\r\n } else {\r\n $iframe.contentWindow.postMessage( 'yes?docWidth=' + document.documentElement.clientWidth , \"*\" );\r\n }\r\n break;\r\n case \"load\":\r\n if (!params.hasOwnProperty(\"height\")) {\r\n console.log(\"fix height without height value\");\r\n } else {\r\n if ( !params.hasOwnProperty(\"nthIframe\") || params.nthIframe === 'undefined' ) {\r\n params.nthIframe = 1;\r\n }\r\n fixIframeHeight(params.target, ['#email-modify', '#verif-phone', '#bind-3party', '#unbind-3party', '#pass-modify'].indexOf(params.target) !== -1 ? parseInt(params.height) + 10 : params.height, params.nthIframe);\r\n this.isLoadingIframe = false;\r\n if ( this.isWaitforSwitch ) {\r\n \tswitchIframe.call(this, params.target, this.switchIframeStatus.action, this.switchIframeStatus.direction);\r\n \tthis.isWaitforSwitch = false;\r\n }\r\n }\r\n break;\r\n case \"check\":\r\n if (params.hasOwnProperty(\"height\")) {\r\n fixIframeHeight(params.target, params.height, \"active\");\r\n }\r\n break;\r\n case \"prev\":\r\n case \"next\":\r\n if (!params.hasOwnProperty(\"iframeUrl\")) {\r\n console.log(\"append without url\")\r\n } else {\r\n this.isLoadingIframe = true;\r\n if (!params.hasOwnProperty(\"direction\")) {\r\n\t params.direction = \"horizontal\";\r\n\t } \r\n\t appendIframe(action, params.target, params.iframeUrl, params.direction);\r\n\t this.switchIframeStatus.action = action;\r\n\t this.switchIframeStatus.direction = params.direction;\r\n\t this.isWaitforSwitch = true;\r\n }\r\n break;\r\n default: break;\r\n }\r\n\r\n function fixIframeHeight(target, height, nthIframe) {\r\n console.log(target, height, nthIframe);\r\n if ( $(target).length === 0 ) {\r\n target = self.$element.get(0);\r\n }\r\n if ( typeof nthIframe === 'undefined' ) {\r\n var nthIframe = 1;\r\n }\r\n if ( typeof nthIframe === 'string' && nthIframe == 'active') {\r\n var $iframe = $(target).find(\".modal-content\").find('iframe.active');\r\n } else {\r\n var $iframe = $(target).find(\".modal-content\").find('iframe:nth-child(' + nthIframe + ')');\r\n }\r\n $iframe.css(\"height\", parseInt(height));\r\n }\r\n\r\n function appendIframe(action, target, content, direction) {\r\n var slideInClass = '';\r\n var $iframe = $(target).find('iframe.active');\r\n switch (action) {\r\n \tcase 'prev': \r\n \t\t$iframe = $iframe.prev('iframe');\r\n \t\tif (direction == 'horizontal') { slideInClass = 'left'; }\r\n \t\telse if (direction == 'vertical') { slideInClass = 'top' };\r\n\t break;\r\n \tcase 'next':\r\n \t\t$iframe = $iframe.next('iframe');\r\n \t\tif (direction == 'horizontal') { slideInClass = 'right'; }\r\n \t\telse if (direction == 'vertical') { slideInClass = 'bottom' };\r\n\t break;\r\n\t default: break;\r\n } \r\n $iframe.addClass(slideInClass);\r\n $iframe.attr(\"src\", content);\r\n $iframe.attr(\"scrolling\", \"no\");\r\n $iframe.css({'display': 'block', 'visibility': 'hidden' });\r\n }\r\n\r\n function switchIframe(target, action, direction) {\r\n if ((direction == 'horizontal' || direction == 'vertical') && (action == 'prev' || action == 'next')) {\r\n var $content = $(target).find('.modal-content');\r\n var $iframes = $(target).find('iframe');\r\n var $currentIframe = $(target).find('iframe.active');\r\n var $nextIframe = $currentIframe;\r\n var $placeholder = $('');\r\n var slideOutClass = '';\r\n var slideInClass = '';\r\n var slideOutTop = 0;\r\n switch (action) {\r\n case 'prev':\r\n $nextIframe = $nextIframe.prev('iframe');\r\n if (direction == 'horizontal') {\r\n slideOutClass = 'right';\r\n slideInClass = 'left';\r\n } else if (direction == 'vertical') {\r\n slideOutClass = 'bottom';\r\n slideInClass = 'top';\r\n slideOutTop = -$currentIframe.height() - 30;\r\n }\r\n break;\r\n case 'next':\r\n $nextIframe = $nextIframe.next('iframe');\r\n if (direction == 'horizontal') {\r\n slideOutClass = 'left';\r\n slideInClass = 'right';\r\n } else if (direction == 'vertical') {\r\n slideOutClass = 'top';\r\n slideInClass = 'bottom';\r\n slideOutTop = $currentIframe.height() + 30;\r\n }\r\n break;\r\n default: break;\r\n }\r\n\r\n $currentIframe.removeClass('active').addClass('middle');\r\n $nextIframe.removeClass(slideInClass).addClass('middle');\r\n $currentIframe.removeClass('middle').addClass(slideOutClass).css({'top':slideOutTop});\r\n\r\n $content.append($placeholder.height($currentIframe.height()).css('margin', '0'));\r\n $placeholder.height($nextIframe.outerHeight(true));\r\n\r\n $nextIframe.css({'visibility': ''});\r\n $currentIframe.one(this.transitionEvent, function () {\r\n\t\t\t\t\t\t$iframes.removeClass('left right top bottom');\r\n\t\t\t\t\t\t$currentIframe.css({'display': '', 'height': 'auto'});\r\n\t\t\t\t\t\tvar slideEnd = setTimeout(function() {\r\n\t\t\t\t\t\t\t$iframes.removeClass('middle');\r\n\t\t\t\t\t\t\t$nextIframe.addClass('active');\r\n\t\t\t\t\t\t\t$placeholder.remove();\r\n\t\t\t\t\t\t},50);\r\n\t\t\t\t\t});\r\n \r\n } else {\r\n console.log(\"direction must be horizontal or vertical and action must be prev or next\");\r\n }\r\n }\r\n }.bind(this);\r\n\r\n // Initialization\r\n this.toggle();\r\n\r\n/* if ( this.iframeMode ) {\r\n console.log('Initialization in iframeMode');\r\n this.isLoadingIframe = true;\r\n this.$iframe.attr(\"src\", this.options.iframe);\r\n this.$iframe.attr(\"scrolling\", \"no\");\r\n this.$iframe.addClass('active');\r\n this.iframeEventListener(true);\r\n\r\n this.transitionEvent = function (transitions){\r\n\t\t\t\tvar t, el = document.createElement(\"fakeelement\");\r\n\t\t\t\tfor (t in transitions){\r\n\t\t\t\t\tif (el.style[t] !== undefined){\r\n\t\t\t\t\t\treturn transitions[t];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}({\r\n\t\t\t\t\"transition\": \"transitionend\",\r\n\t\t\t\t\"OTransition\": \"oTransitionEnd\",\r\n\t\t\t\t\"MozTransition\": \"transitionend\",\r\n\t\t\t\t\"WebkitTransition\": \"webkitTransitionEnd\"\r\n\t\t\t});\r\n\r\n\r\n }*/\r\n };\r\n\r\n Modal.TRANSITION_DURATION = 300;\r\n Modal.BACKDROP_TRANSITION_DURATION = 150;\r\n\r\n Modal.DEFAULTS = {\r\n iframe: null,\r\n backdrop: true,\r\n keyboard: true,\r\n show: true,\r\n bodyScroll: false,\r\n bodyMaxHeight: $(window).height() * 0.75,\r\n fullscreenonmobile: false, // 為行動裝置時是否預設填滿視窗\r\n reloadwhenopen: false,\r\n iframeSendToChild: {\r\n hello: {\r\n docWidth: document.documentElement.clientWidth\r\n },\r\n load: {},\r\n check: {},\r\n close: function() {}\r\n },\r\n whenShowModalStart: function( $modal, iframe ) {\r\n // console.log( 'whenShowModalStart', $modal, iframe );\r\n },\r\n whenShowModalEnd: function( $modal, iframe ) {\r\n // console.log( 'whenShowModalEnd', $modal, iframe );\r\n },\r\n whenHideModalStart: function( $modal, iframe ) {\r\n // console.log( 'whenHideModalStart', $modal, iframe );\r\n },\r\n whenHideModalEnd: function( $modal, iframe ) {\r\n // console.log( 'whenHideModalEnd', $modal, iframe );\r\n }\r\n };\r\n\r\n Modal.prototype.showAfterLoaded = function() {\r\n console.log(\"run showAfterLoaded\");\r\n this.isloading = true;\r\n this.$element.find('.modal-content').load(this.options.remote, $.proxy(function() {\r\n this.$element.trigger('loaded.modal');\r\n this.remoteFirstLoaded = true;\r\n this.isloading = false;\r\n this.show();\r\n }, this)) \r\n };\r\n\r\n Modal.prototype.toggle = function(_relatedTarget) {\r\n console.log('run toggle');\r\n /*if (this.options.reloadwhenopen) {\r\n if(!this.maskIsOpen && !this.isShown) { \r\n this.isloading = true; \r\n this.showAfterLoaded()\r\n }\r\n } else {\r\n this.isShown ? this.hide() : this.show(_relatedTarget) \r\n }*/\r\n if ( this.isShown ) {\r\n this.hide();\r\n } else {\r\n if ( this.options.remote ) {\r\n if ( !this.isloading ) {\r\n if ( this.options.reloadwhenopen || !this.remoteFirstLoaded ) {\r\n this.showAfterLoaded();\r\n } else {\r\n this.show(_relatedTarget);\r\n }\r\n } else {\r\n console.log('This Modal is already loading');\r\n }\r\n } else {\r\n this.show(_relatedTarget);\r\n }\r\n }\r\n };\r\n\r\n Modal.prototype.setIframeSrc = function( indexOf ) {\r\n // console.log('run setIframeSrc');\r\n var whichIframe = indexOf || 0;\r\n if ( typeof whichIframe === 'number' ) {\r\n this.$element.find('iframe').first().attr('src', this.options.iframe);\r\n this.iframeEventListener(true);\r\n } else {\r\n console.log('The `indexOf` type of param must be number');\r\n }\r\n };\r\n\r\n Modal.prototype.setEventWhenShow = function() {\r\n var self = this;\r\n\r\n this.$element.on('click.dismiss.modal', '[data-dismiss=\"mdl_lnls\"]', $.proxy(this.hide, this));\r\n\r\n this.$dialog.on('mousedown.dismiss.modal', function() {\r\n // console.log('mousedown.dismiss.modal');\r\n self.$element.one('mouseup.dismiss.modal', function(e) {\r\n // console.log('mouseup.dismiss.modal');\r\n if ($(e.target).is(self.$element)) self.ignoreBackdropClick = true;\r\n });\r\n });\r\n\r\n this.$element.on('click.move.content', '[data-move=\"mdl_lnls\"]', $.proxy(function(e) {\r\n var $trigger = $(e.target);\r\n var nextprev = $trigger.attr('data-step');\r\n this.contentMove(nextprev);\r\n }, this));\r\n };\r\n\r\n Modal.prototype.removeEventWhenHide = function() {\r\n this.$element.off('click.dismiss.modal').off('mouseup.dismiss.modal').off('click.move.content');\r\n this.$dialog.off('mousedown.dismiss.modal');\r\n };\r\n\r\n Modal.prototype.show = function(_relatedTarget) {\r\n console.log('run show!');\r\n var that = this; \r\n var e = $.Event('show.modal', { relatedTarget: _relatedTarget }); \r\n this.$element.trigger(e); \r\n // if ( !this.isShown || !e.isDefaultPrevented() ) {\r\n this.isShown = true;\r\n this.checkScrollbar();\r\n this.setScrollbar();\r\n\r\n this.escape();\r\n this.resize();\r\n this.setIframeSrc();\r\n\r\n this.$body.addClass('mdl_lnls_open');\r\n this.$element.find('iframe').first().addClass('active');\r\n\r\n this.setEventWhenShow();\r\n if (this.isMove === true) {\r\n this.$contents.addClass('hide');\r\n var $initAcitve = this.$contents.filter('.active');\r\n if (!!$initAcitve.length && $initAcitve.length == 1) {\r\n $initAcitve.removeClass('hide');\r\n } else {\r\n this.$contents.eq(0).addClass('active').removeClass('hide');\r\n }\r\n }\r\n if ( $.type(this.options.whenShowModalStart) === 'function' ) {\r\n this.options.whenShowModalStart( this.$element, this.iframeContent );\r\n }\r\n this.backdrop(function() {\r\n // console.log(this, _relatedTarget);\r\n var transition = $.support.transition && that.$element.hasClass('fade');\r\n // console.log('backdrop callback', that.$backdrop);\r\n if (!that.$element.parent().length) {\r\n that.$element.appendTo(that.$body);\r\n }\r\n that.$element.show().scrollTop(0);\r\n\r\n that.adjustDialog();\r\n\r\n if (transition) {\r\n that.$element[0].offsetWidth; // force reflow\r\n }\r\n that.$element.addClass('in');\r\n that.enforceFocus();\r\n\r\n var e = $.Event('shown.modal', { relatedTarget: _relatedTarget });\r\n // 行動裝置時內容要有scroll bar\r\n if ( $.browser.mobile ) {\r\n // console.log(that.$ctnBody);\r\n if ( that.$ctnFoot.length > 0 && that.$ctnBody.hasClass('scroll-y') && document.documentElement.clientWidth < 980 ) {\r\n that.$ctnBody.css('max-height', that.options.bodyMaxHeight);\r\n that.$contents.append('');\r\n that.$contents.find('.content-fadeout').css({'bottom': that.$ctnFoot.outerHeight()});\r\n }\r\n }\r\n\r\n if ( transition ) {\r\n that.$dialog.one('bsTransitionEnd', function() {\r\n that.$element.trigger('focus').trigger(e);\r\n if ( $.type(that.options.whenShowModalEnd) === 'function' ) {\r\n that.options.whenShowModalEnd( that.$element, that.iframeContent );\r\n }\r\n }).emulateTransitionEnd(Modal.TRANSITION_DURATION);\r\n } else {\r\n that.$element.trigger('focus').trigger(e);\r\n if ( $.type(that.options.whenShowModalEnd) === 'function' ) {\r\n that.options.whenShowModalEnd( that.$element, that.iframeContent );\r\n }\r\n }\r\n // console.log(\"end\")\r\n });\r\n // }\r\n };\r\n\r\n Modal.prototype.hide = function(e) {\r\n if (e) {\r\n e.preventDefault();\r\n }\r\n\r\n e = $.Event('hide.modal');\r\n\r\n this.$element.trigger(e);\r\n\r\n if (!this.isShown || e.isDefaultPrevented()){\r\n return;\r\n }\r\n this.isShown = false;\r\n\r\n this.escape();\r\n this.resize();\r\n\r\n this.unforceFocus();\r\n this.removeEventWhenHide();\r\n\r\n this.$element.removeClass('in');\r\n\r\n this.$dialog.off('mousedown.dismiss.modal')\r\n\r\n if ( $.type(this.options.whenHideModalStart) === 'function' ) {\r\n this.options.whenHideModalStart( this.$element, this.iframeContent );\r\n }\r\n if ( $.support.transition && this.$element.hasClass('fade') ) {\r\n this.$element.one('bsTransitionEnd', $.proxy(this.hideModal, this)).emulateTransitionEnd(Modal.TRANSITION_DURATION);\r\n } else {\r\n this.hideModal();\r\n }\r\n\r\n $(window).off(\"resize\");\r\n \r\n // redirect if have attr: data-redirectwhenclose\r\n var redirectURL = this.$element.attr(\"data-redirectwhenclose\");\r\n !!redirectURL && (window.location = redirectURL);\r\n }\r\n\r\n Modal.prototype.nextMover = function() {\r\n this.contentMove('next');\r\n }\r\n\r\n Modal.prototype.prevMover = function() {\r\n this.contentMove('prev');\r\n }\r\n\r\n Modal.prototype.contentMove = function(nextprev) {\r\n if (!nextprev) {\r\n console.log('plz assign option or ues nextMover and prevMover Methdos');\r\n return;\r\n }\r\n var targetDirection = nextprev; // next, prev\r\n var that = this;\r\n this.canSwicth(targetDirection, function(recource) {\r\n // console.log(recource);\r\n var $this = recource.$contentActive;\r\n var $next = recource.$contentNext;\r\n var $holder = $('');\r\n $holder.css({\r\n width: $this.outerWidth(),\r\n height: $this.outerHeight()\r\n });\r\n that.$dialog.children('.modal-wrap').append($holder);\r\n var thisContentClass = function() {\r\n if (targetDirection == 'prev') {\r\n if (recource.direction == 'vertical') {\r\n return 'bottom';\r\n } else {\r\n return 'right';\r\n }\r\n } else {\r\n if (recource.direction == 'vertical') {\r\n return 'top';\r\n } else {\r\n return 'left';\r\n }\r\n }\r\n }();\r\n var nextContentClass = function() {\r\n if (targetDirection == 'prev') {\r\n if (recource.direction == 'vertical') {\r\n return 'top';\r\n } else {\r\n return 'left';\r\n }\r\n } else {\r\n if (recource.direction == 'vertical') {\r\n return 'bottom';\r\n } else {\r\n return 'right';\r\n }\r\n }\r\n }();\r\n $this.addClass('middle').removeClass('active').delay(1).queue(function() {\r\n that.$element.trigger('move.start');\r\n $this.removeClass('middle').addClass(thisContentClass).one('bsTransitionEnd', function() {\r\n $this.addClass('hide').removeClass(thisContentClass);\r\n\r\n });\r\n $holder.css({\r\n width: $next.outerWidth(),\r\n height: $next.outerHeight()\r\n });\r\n\r\n $(this).dequeue();\r\n });\r\n $next.removeClass('hide').addClass(nextContentClass).delay(1).queue(function() {\r\n\r\n $next.removeClass(nextContentClass).addClass('middle').one('bsTransitionEnd', function() {\r\n $next.addClass('active').removeClass('middle');\r\n $holder.remove();\r\n that.$element.trigger('move.done');\r\n });\r\n $(this).dequeue();\r\n });\r\n\r\n that.$element.one('hidden.modal', function() {\r\n $holder.remove();\r\n });\r\n });\r\n\r\n }\r\n\r\n Modal.prototype.canSwicth = function(direction, callback) {\r\n if (this.$contents.length > 1) {\r\n var $nowActive = this.$contents.filter('.active');\r\n var nowIndex = this.$contents.index($nowActive);\r\n if (direction == 'next') {\r\n var nextIndex = nowIndex + 1;\r\n (nextIndex >= this.$contents.length) && (nextIndex = 0);\r\n } else if (direction == 'prev') {\r\n var nextIndex = nowIndex - 1;\r\n }\r\n var $nextContent = this.$contents.eq(nextIndex);\r\n if (typeof callback === 'function') {\r\n var obj = {\r\n $contentActive: $nowActive,\r\n $contentNext: $nextContent,\r\n direction: $nextContent.attr('data-direction') || 'horizontal' // horizontal or vertical\r\n };\r\n callback(obj);\r\n }\r\n return true;\r\n } else {\r\n console.log('this modal can\\'t supported content switch');\r\n return false;\r\n }\r\n }\r\n\r\n Modal.prototype.enforceFocus = function() {\r\n $(document)\r\n .off('focusin.modal') // guard against infinite focus loop\r\n .on('focusin.modal', $.proxy(function(e) {\r\n if (this.$element[0] !== e.target && !this.$element.has(e.target).length) {\r\n this.$element.trigger('focus')\r\n }\r\n }, this))\r\n }\r\n\r\n Modal.prototype.unforceFocus = function() {\r\n $(document).off('focusin.modal');\r\n };\r\n\r\n Modal.prototype.escape = function() {\r\n if (this.isShown && this.options.keyboard) {\r\n this.$element.on('keydown.dismiss.modal', $.proxy(function(e) {\r\n e.which == 27 && this.hide()\r\n }, this))\r\n } else if (!this.isShown) {\r\n this.$element.off('keydown.dismiss.modal')\r\n }\r\n }\r\n\r\n Modal.prototype.resize = function() {\r\n if (this.isShown) {\r\n $(window).on('resize.modal', $.proxy(this.handleUpdate, this))\r\n } else {\r\n $(window).off('resize.modal')\r\n }\r\n }\r\n\r\n Modal.prototype.hideModal = function() {\r\n var that = this;\r\n this.$element.hide();\r\n this.backdrop(function() {\r\n that.$body.removeClass('mdl_lnls_open');\r\n that.resetAdjustments();\r\n that.resetScrollbar();\r\n that.$element.trigger('hidden.modal');\r\n });\r\n if ( $.type(this.options.whenHideModalEnd) === 'function' ) {\r\n this.options.whenHideModalEnd( this.$element, this.iframeContent );\r\n }\r\n if (this.options.iframe) {\r\n \tthis.iframeEventListener(false);\r\n this.$element.find('iframe').removeClass('active').css('display', '');\r\n }\r\n }\r\n\r\n Modal.prototype.removeBackdrop = function() {\r\n this.$backdrop && this.$backdrop.remove()\r\n this.$backdrop = null\r\n }\r\n\r\n Modal.prototype.backdrop = function(callback) {\r\n var that = this\r\n var animate = this.$element.hasClass('fade') ? 'fade' : ''\r\n var mobilePage = $.browser.mobile ? '' : ''\r\n\r\n if (this.isShown && this.options.backdrop) {\r\n var doAnimate = $.support.transition && animate\r\n if (this.options.backdrop == \"transparent\" || this.$element.hasClass('alert')) {\r\n this.$backdrop = $(document.createElement('div')).addClass('mdl_lnls_backdrop_transparent ' + animate).appendTo(this.$body);\r\n } else {\r\n this.$backdrop = $(document.createElement('div')).addClass('mdl_lnls_backdrop ' + animate + ' ' + mobilePage).appendTo(this.$body);\r\n }\r\n\r\n this.$element.on('click.dismiss.modal', $.proxy(function(e) {\r\n if (this.ignoreBackdropClick) {\r\n this.ignoreBackdropClick = false\r\n return\r\n }\r\n if (e.target !== e.currentTarget) return\r\n this.options.backdrop == 'static' ? this.$element[0].focus() : this.hide()\r\n }, this))\r\n this.$element.on('close', $.proxy(function(e) {\r\n if (this.ignoreBackdropClick) {\r\n this.ignoreBackdropClick = false\r\n return\r\n }\r\n if (e.target !== e.currentTarget) return\r\n this.options.backdrop == 'static' ? this.$element[0].focus() : this.hide()\r\n }, this))\r\n if (doAnimate) this.$backdrop[0].offsetWidth // force reflow\r\n\r\n this.$backdrop.addClass('in');\r\n\r\n if (!callback) return\r\n\r\n if (doAnimate) {\r\n this.$backdrop.one('bsTransitionEnd', callback).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION);\r\n } else {\r\n callback();\r\n }\r\n } else if (!this.isShown && this.$backdrop) {\r\n this.$backdrop.removeClass('in')\r\n var callbackRemove = function() {\r\n that.removeBackdrop()\r\n callback && callback()\r\n }\r\n $.support.transition && this.$element.hasClass('fade') ?\r\n this.$backdrop\r\n .one('bsTransitionEnd', callbackRemove)\r\n .emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION) :\r\n callbackRemove();\r\n } else if ( $.type(callback) === 'function' ) {\r\n callback();\r\n }\r\n }\r\n\r\n // these following methods are used to handle overflowing modals\r\n\r\n Modal.prototype.handleUpdate = function() {\r\n this.adjustDialog()\r\n }\r\n\r\n Modal.prototype.adjustDialog = function() {\r\n var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight;\r\n \r\n // 為行動裝置時設定是否要填滿整個視窗\r\n if ($.browser.mobile && this.options.fullscreenonmobile == true) {\r\n this.$dialog.css('height', '100%');\r\n this.$dialog.find(\".modal-wrap\").css( 'height', '100%'); \r\n this.$contents.css('minHeight', '100%');\r\n }\r\n this.$element.css({\r\n //paddingLeft: !this.bodyIsOverflowing && modalIsOverflowing ? this.scrollbarWidth : '',\r\n paddingRight: this.bodyIsOverflowing && !modalIsOverflowing ? this.scrollbarWidth : ''\r\n })\r\n }\r\n\r\n Modal.prototype.resetAdjustments = function() {\r\n this.$element.css({\r\n paddingLeft: '',\r\n paddingRight: ''\r\n })\r\n }\r\n\r\n Modal.prototype.checkScrollbar = function() {\r\n var fullWindowWidth = window.innerWidth\r\n if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8\r\n var documentElementRect = document.documentElement.getBoundingClientRect()\r\n fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)\r\n }\r\n this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth\r\n this.scrollbarWidth = this.measureScrollbar()\r\n }\r\n\r\n Modal.prototype.setScrollbar = function() {\r\n var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)\r\n this.originalBodyPad = document.body.style.paddingRight || ''\r\n if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)\r\n }\r\n\r\n Modal.prototype.resetScrollbar = function() {\r\n this.$body.css('padding-right', this.originalBodyPad)\r\n }\r\n\r\n Modal.prototype.measureScrollbar = function() { // thx walsh\r\n var scrollDiv = document.createElement('div')\r\n scrollDiv.className = 'mdl_lnls_scrollbar_measure'\r\n this.$body.append(scrollDiv)\r\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth\r\n this.$body[0].removeChild(scrollDiv)\r\n return scrollbarWidth\r\n }\r\n\r\n // ========== iframe settings =================================\r\n Modal.prototype.iframeEventListener = function(setListener) {\r\n if (setListener) {\r\n console.log(\"iframe event listening!\");\r\n window.addEventListener(\"message\", this.iframePostEvents, false);\r\n } else {\r\n console.log(\"iframe event stop listening!\");\r\n window.removeEventListener(\"message\", this.iframePostEvents, false);\r\n }\r\n }\r\n // ========== iframe settings end =============================\r\n\r\n // MODAL PLUGIN DEFINITION\r\n // =======================\r\n\r\n function Plugin(option, _relatedTarget) {\r\n return this.each(function() {\r\n var $this = $(this)\r\n var module = $this.data('modal')\r\n var options = $.extend({}, Modal.DEFAULTS, $this.data(), typeof option == 'object' && option)\r\n if (true) {}\r\n if ( !module ) {\r\n $this.data('modal', (module = new Modal(this, options)));\r\n } else if ( typeof option === 'string' ) {\r\n module[option](_relatedTarget);\r\n } else if (options.show) {\r\n console.log('options.show', options.show);\r\n module.show(_relatedTarget);\r\n }\r\n })\r\n }\r\n\r\n var old = $.fn.mdl_lnls\r\n\r\n $.fn.mdl_lnls = Plugin\r\n $.fn.mdl_lnls.Constructor = Modal\r\n\r\n\r\n // MODAL NO CONFLICT\r\n // =================\r\n\r\n $.fn.mdl_lnls.noConflict = function() {\r\n $.fn.mdl_lnls = old\r\n return this\r\n }\r\n\r\n\r\n // MODAL DATA-API\r\n // ==============\r\n $(document).on('click.modal.data-api', '[data-toggle=\"mdl_lnls\"]', function(e) {\r\n var $this = $(this)\r\n var href = $this.attr('href');\r\n var $target = function(){\r\n var mdl_lnls_target = $this.attr('data-mdl_lnls_target');\r\n var target = $this.attr('data-target');\r\n var hrefstring = href && href.replace(/.*(?=#[^\\s]+$)/, '');\r\n var returnValue;\r\n if ( typeof mdl_lnls_target === 'string' && mdl_lnls_target.length > 0 ) {\r\n returnValue = $(mdl_lnls_target);\r\n } else if ( typeof target === 'string' && target.length > 0 ) {\r\n returnValue = $(target);\r\n } else {\r\n returnValue = hrefstring;\r\n }\r\n return returnValue;\r\n }();\r\n var $iframe = $this.attr('data-iframe') ? $this.attr('data-iframe') : false; \r\n if ( $target.data('modal') ) {\r\n var option = 'toggle';\r\n var targetOpts = $target.data('modal').options;\r\n targetOpts.reloadwhenopen && (targetOpts.remote = !/#/.test(href) && href);\r\n } else {\r\n var option = $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data(), { iframe: $iframe}); \r\n }\r\n\r\n if ($this.is('a')) e.preventDefault()\r\n\r\n $target.one('show.modal', function(showEvent) { \r\n if (showEvent.isDefaultPrevented()) return\r\n $target.one('hidden.modal', function() {\r\n $this.is(':visible') && $this.trigger('focus')\r\n })\r\n })\r\n Plugin.call($target, option, this) \r\n })\r\n\r\n})(jQuery);\r\n\n\n\n// WEBPACK FOOTER //\n// ./magaele/mdl_lnls/module.js","// 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(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/nvb_gptb/css.scss\n// module id = 30\n// module chunks = 1 2 6","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/pp_ln/css.scss\n// module id = 31\n// module chunks = 1 2 5","/**\r\n * Created by gaowy on 2017/5/8.\r\n */\r\n\r\n;\r\n(function($) {\r\n 'use strict'\r\n var ModuleName = 'nvb_gptb';\r\n var Module = function(ele, options) {\r\n this.elem = $(ele);\r\n this.df = document.createDocumentFragment();\r\n this.opts = options;\r\n\r\n };\r\n Module.DEFAULTS = {\r\n flag: false,\r\n anchors: [],\r\n mobileShow: '',\r\n dropOffset: 0,\r\n position: {\r\n start: null, // scroll到什么时候开始fixed\r\n end: false, // scroll到什么时候结束fixed,必须大于start,如果是false,就代表沒有結束fixed scroll點\r\n top: 0 // 当fixed时的top位置\r\n },\r\n time:13,//运动时间\r\n haveSubmitBtn: false, //是否需要submit按鈕\r\n haveSearchBtn:false,//是否需要搜索按钮 add by gwy at 2017/09/05\r\n listContinerClass: \"\",\r\n whenFixed:function(){console.log('whenFixed')},\r\n whenUnFixed:function(){$('.nvb_gptb').addClass('d-no');console.log('whenUnFixed')},\r\n whenClickSubmit:function($this) { console.log(\"whenClickSubmit\") },\r\n placeName:'',//默認地點名 add by gwy at 2017/09/05\r\n whenClickSearch:function(){ console.log(\"whenClickSearch\")}//搜索按鈕回調函數 add by gwy at 2017/09/05\r\n };\r\n //设置是否调用callback开关\r\n Module.prototype.init = function() {\r\n this.opts.flag = $(this.elem).hasClass('d-no');\r\n }\r\n //利用参数中anchors的moveto来计算要滚动的距离\r\n function scrollTop(obj) {\r\n var top;\r\n //如果是object则说明是dom元素\r\n if(obj.length === 0) return;\r\n if ($.type(obj) == 'object') {\r\n top = $(obj).offset().top;\r\n } else {\r\n top = parseInt(obj);\r\n }\r\n top = top == 'null' || top == 'undefined' || isNaN(top) ? $(document).scrollTop() : top;\r\n\r\n return top;\r\n }\r\n //创建导航栏\r\n Module.prototype.createEle = function() {\r\n //清空容器\r\n this.elem.html('');\r\n var anchors = this.opts.anchors;\r\n var mobileShow = this.opts.mobileShow;\r\n var PCsmallHide = this.opts.PCsmallHide;\r\n var listContainerClass = this.opts.listContainerClass;\r\n var div = $(\" \");\r\n\r\n\r\n\r\n for (var i = 0; i < anchors.length; i++) {\r\n var $a = $('').html(anchors[i].name);\r\n var li = '