{"version":3,"sources":["webpack:///webpack/bootstrap d6ae805590de9da9a3e4","webpack:///./css/css.scss","webpack:///./magaele/ic-ln/css.scss","webpack:///./magaele/clp_gpby/css.scss","webpack:///./magaele/cy-ln/css.scss","webpack:///./magaele/fcl_lnls/css.scss","webpack:///./magaele/ps_lnls/css.scss","webpack:///./magaele/cy-ln/module.js","webpack:///./magaele/clp_gplt/css.scss","webpack:///./magaele/st_lnls/css.scss","webpack:///./magaele/clp_gpby/module.js","webpack:///./magaele/st_lnls/module.js","webpack:///./magaele/bt_gptr/css.scss","webpack:///./magaele/th_gpls/css.scss","webpack:///./magaele/clp_gplt/module.js","webpack:///./magaele/btg_gpct/css.scss","webpack:///./magaele/ft_lnxt/css.scss","webpack:///./magaele/mdl_lnls/css.scss","webpack:///./magaele/ntb_gpbt/css.scss","webpack:///./magaele/btg_gpct/module.js","webpack:///./magaele/mdl_lnls/module.js","webpack:///./magaele/ntb_gpbt/module.js","webpack:///./css/table.scss","webpack:///./magaele/bt_gplt/css.scss","webpack:///./magaele/sf-lnse/css.scss","webpack:///./magaele/sf-lnse/module.js","webpack:///./magaele/cd_flln/css.scss","webpack:///./magaele/clp_stbm/css.scss","webpack:///./magaele/clp_stbm/module.js","webpack:///./magaele/ntb_gplt/module.js","webpack:///./magaele/ntb_gplt/css.scss","webpack:///./magaele/st_lnht/css.scss","webpack:///./magaele/tb_htrm/css.scss","webpack:///./magaele/st_lnht/module.js","webpack:///./magaele/tb_htrm/module.js","webpack:///./entry/travel_script.entry.js","webpack:///./entry/travel_style.entry.js","webpack:///./magaele/cd_prsc/css.scss","webpack:///./magaele/lb_fllx/css.scss","webpack:///./magaele/rli_tlin/css.scss","webpack:///./magaele/cd_prsc/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","openIcon","closeIcon","$module","$clp_btn_inside","$header","icon","clickHandler","slideUp","onResize","off","resize","stop","animate","scrollTop","slideDown","isOpen","methods","addBtn","minusBtn","minus","nowValue","whenClick","beforeChangeFun","maxNum","minNum","newOptions","$amount_num","first","last","$amount","$minus","$add","callbackFun","prop","amount_num","res","onChange","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","that","Event","relatedTarget","checkScrollbar","setScrollbar","escape","$initAcitve","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","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","$tabsWrap","$tabs","$contentWrap","$nextButton","$prevButton","tabLable","whenNext","$thisTab","tabLabelData","whenPrev","initial","onClickli","onClickNext","onClickPrev","btnSwitcher","offsetTabPosition","disableContent","enbaleContent","setTabsLable","returnIndexLi","compareDom","getTabWidthPercent","maxLindex","_this","returnItem","returnContent","diasbleTabs","enableTab","isFirstLast","returnVal","$nextTab","$prevTab","method","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","isReturnMethod","ModuleReturns","methodRunner","uesReturn","ModuleDefaults","g","Function","eval","_createClass","defineProperties","props","descriptor","writable","protoProps","staticProps","_classCallCheck","instance","TypeError","toggleTabs","renderHiddenToggle","needHiddenInputsChangeEvents","fromChangeEventName","fieldRecodeWriteEvent","switchEnableDisable","reocodeDataOnDomKey","urlFirst","urlMatches","urlRegex","urlReplacedTo","urlActivePanlParam","urlActivePanlDefault","urlConcat","urlConcatPrimary","urlCheckedVal","storageSetting","lastSearchKey","whenInit","whenRecodeWrited","$visiablePanlWrap","$inputHidden","whenTabSwitchDone","whenInputRemoved","$inputDom","whenFormChanged","whenBeforeSubmit","$submit","whenSubmit","whenEnabled","whenDisabled","$panels","$inputFocusRemove","$needHiddenInputs","$needTriggerChangeInputs","$needTriggerRecodeLoadedInputs","$thisDom","number","tab","focusRemove","renderHiddenValue","$thisPanl","getHiddenInputDoms","lastSearchData","requiredVerfiy","save","$sfWrap","$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","inModule","hiddenChange","showBlock","hiddenBlock","$elem","inModuleMode","movehidden","showBlockH","setWidth","setWidth_sec","num","$leftArrow","$rightArrow","scrollPosition","openAnimate","closeAnimate","clickTabToClose","enableTabScrollbar","enableTabArrow","tabScrollbar","$tab","$active","$activeContent","$closeBtn","renderTab","toggleContent","setScrollPosition","before","arrowPrev","arrowNext","nowScrollLeft","scrollLeft","scrollSum","reduce","acc","options2","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","selectMouseDown","initRoomNumSelect","initPeopleNum","closePopup","bodyMouseDown","divClickEvent","mergeCloseBtnClass","concat","tabBtnEvents","count","optionsMouseDown","stopEvents","device","len","detail","adultBox","childBox","select","closeBtn","$eleWidth","createHtmlStr","createPopup","str","len2","createDetail","updateValue","minusChild","ageBox","selectBox","addChild","$select","createChildAge","initChildAge","getAllRoomPeopleCount","roomCount","room","people","peopleCount","getRoomDetailInfos","totalObj","roomPeopleCount","peopleObj","childrenNeedBed","childrenNotNeedBed","$childNeedBedObj","$childNotNeedBedObj","idx","childAge","roomNum","adultLen","adultNum","common","commonLen","commonNum","roomPeopArry","Number","kidNum","modeText","htmlStr","maxRoomCount","kidsHasBed","options1","options3","items","$contentRows","$btn","openCardTarget","toggleEle","targetEle","$cdBodyBox","$cdMHeader","$cdMFooter","cardObj","windowSize","windowScrollTop","registCardResizeEvent","registCardScrollEvent","registCardopenEvent","registCardCloseEvent","registTriggerEvent","removeProp","innerHeight","cd_head_height","cd_footer_height","cd_body_height","isTargetEle"],"mappings":"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","file":"./SubSiteBundles/ShipApply/travel.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 = 108);\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","(function($) {\r\n 'use strict';\r\n\r\n var ModuleName = 'clp_gplt';\r\n\r\n var Module = function(element, options) {\r\n this.ele = element;\r\n this.$ele = $(element);\r\n this.option = options;\r\n };\r\n\r\n Module.DEFAULT = {\r\n openIcon: null,\r\n closeIcon: null,\r\n whenOpen: function($module) {\r\n console.log('whenOpen', $module);\r\n },\r\n whenClose: function($module) {\r\n console.log('whenClose', $module);\r\n }\r\n };\r\n\r\n Module.prototype.init = function() {\r\n var self = this;\r\n var $this = this.$ele;\r\n var opts = this.option;\r\n var $clp_btn = $this.find(\".clp-header .clp-btn\").length > 0 ? $this.find(\".clp-header .clp-btn\") : $this.find(\".clp-header .clp-title\");\r\n var $clp_btn_inside = $this.find(\".clp-body .clp-btn\");\r\n var $header = $this.children('.clp-header');\r\n var $body = $this.children('.clp-body');\r\n var openIcon = opts.openIcon;\r\n var closeIcon = opts.closeIcon;\r\n if (openIcon === null || closeIcon === null) {\r\n if ($clp_btn.hasClass('clp-btn')) {\r\n var icon = $clp_btn.find(\"span\");\r\n if ($body.is(\":visible\")) {\r\n icon.removeClass(\"tooladdb\");\r\n icon.addClass(\"toolcancelb\");\r\n } else {\r\n icon.removeClass(\"toolcancelb\");\r\n icon.addClass(\"tooladdb\");\r\n }\r\n } else if ($clp_btn.hasClass('clp-title')) {\r\n if ($body.is(\":visible\")) {\r\n $clp_btn.addClass('clp-open');\r\n } else {\r\n $clp_btn.addClass('clp-close');\r\n }\r\n }\r\n } else {\r\n var icon = $clp_btn.find(\"span\");\r\n if ($body.is(\":visible\")) {\r\n icon.removeClass();\r\n icon.addClass(openIcon);\r\n } else {\r\n icon.removeClass();\r\n icon.addClass(closeIcon);\r\n\r\n }\r\n }\r\n $this.find('.clp-ticket-btn').on('click', function() {\r\n $this.find('.clp-ticket-btn').addClass('d-no');\r\n $this.find('.clp-original-price').addClass('d-no');\r\n self.clickHandler($clp_btn, $body);\r\n });\r\n $this.find('.clp-ticket-cancel-btn').on('click',function(){\r\n $body.slideUp();\r\n $this.find('.clp-ticket-btn').removeClass('d-no');\r\n $this.find('.clp-original-price').removeClass('d-no');\r\n });\r\n $header.on('click', function() {\r\n self.clickHandler($clp_btn, $body);\r\n });\r\n\r\n if (self.onResize() >= 980 && $this.hasClass('clp-xs')) {\r\n $header.off('click');\r\n }\r\n\r\n if ($clp_btn_inside.length > 0) {\r\n $clp_btn_inside.on('click', function() {\r\n self.clickHandler($clp_btn, $body);\r\n });\r\n }\r\n };\r\n\r\n //20171214 resize\r\n Module.prototype.onResize = function() {\r\n $(window).resize(function() {\r\n return $(window).width();\r\n });\r\n };\r\n Module.prototype.clickHandler = function($clp_btn, $body) {\r\n var $this = this.$ele;\r\n var opts = this.option;\r\n var openIcon = opts.openIcon;\r\n var closeIcon = opts.closeIcon;\r\n if (openIcon === null || closeIcon === null) {\r\n if (!($(window).width() >= 980 && $this.hasClass('clp-xs'))) {\r\n if ($clp_btn.hasClass('clp-btn')) {\r\n var icon = $clp_btn.find(\"span\");\r\n if (icon.hasClass(\"toolcancelb\")) {\r\n icon.removeClass(\"toolcancelb\");\r\n icon.addClass(\"tooladdb\");\r\n $body.slideUp('fast', function() {\r\n opts.whenClose($this);\r\n });\r\n $('html,body').stop().animate({ scrollTop: $this.offset().top - 47 }, 100, 'swing', function() {});\r\n } else {\r\n icon.removeClass(\"tooladdb\");\r\n icon.addClass(\"toolcancelb\");\r\n $body.slideDown('fast', function() {\r\n opts.whenOpen($this);\r\n });\r\n }\r\n } else if ($clp_btn.hasClass('clp-title')) {\r\n if ($clp_btn.hasClass(\"clp-open\")) {\r\n $clp_btn.removeClass(\"clp-open\");\r\n $clp_btn.addClass(\"clp-close\");\r\n $body.slideUp('fast', function() {\r\n opts.whenClose($this);\r\n });\r\n $('html,body').stop().animate({ scrollTop: $this.offset().top - 47 }, 100, 'swing', function() {});\r\n } else {\r\n $clp_btn.removeClass(\"clp-close\");\r\n $clp_btn.addClass(\"clp-open\");\r\n $body.slideDown('fast', function() {\r\n opts.whenOpen($this);\r\n });\r\n }\r\n }\r\n }\r\n } else {\r\n var icon = $clp_btn.find(\"span\");\r\n if (icon.hasClass(closeIcon)) {\r\n icon.removeClass();\r\n icon.addClass(openIcon);\r\n $body.slideDown('fast', function() {\r\n opts.whenOpen($this);\r\n });\r\n } else {\r\n icon.removeClass();\r\n icon.addClass(closeIcon);\r\n $body.slideUp('fast', function() {\r\n opts.whenClose($this);\r\n });\r\n }\r\n }\r\n\r\n\r\n var length = $this.closest(\".clp_gplt\").find(\".own\");\r\n var isOpen = 0;\r\n length.each(function(i) {\r\n if (($this.closest(\".clp_gplt\").find(\".own\").eq(i).attr(\"data-opt\")) == (\"open\")) {\r\n isOpen = 1;\r\n }\r\n });\r\n if (isOpen == 0) {\r\n $this.closest(\".clp_gplt\").find(\".note-danger\").css(\"display\", \"none\");\r\n }\r\n\r\n };\r\n\r\n\r\n $.fn[ModuleName] = function(methods, options) {\r\n return this.each(function() {\r\n var $this = $(this);\r\n var module = $this.data(ModuleName);\r\n var opts = null;\r\n if (!!module) {\r\n if (typeof methods === 'string' && typeof options === 'undefined') {\r\n module[methods]();\r\n } else if (typeof methods === 'string' && typeof options === 'object') {\r\n module[methods](options);\r\n } else {\r\n console.log('unsupported options!');\r\n throw 'unsupported options!';\r\n }\r\n } else {\r\n opts = $.extend({}, Module.DEFAULT, (typeof methods === 'object' && methods), (typeof options === 'object' && options));\r\n module = new Module(this, opts);\r\n module.init();\r\n }\r\n });\r\n };\r\n\r\n})(jQuery);\n\n\n// WEBPACK FOOTER //\n// ./magaele/clp_gplt/module.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/btg_gpct/css.scss\n// module id = 14\n// module chunks = 0 1 3 4 6","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/ft_lnxt/css.scss\n// module id = 15\n// module chunks = 0 3 4 5 7","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/mdl_lnls/css.scss\n// module id = 16\n// module chunks = 0 1 2 7 8","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/ntb_gpbt/css.scss\n// module id = 17\n// module chunks = 0 2 3 4 6","(function($) {\r\n 'use strict';\r\n var ModuleName = 'btg_gpct';\r\n\r\n var Module = function(element, options) {\r\n this.ele = element;\r\n this.$ele = $(element);\r\n this.option = options;\r\n this.max = options.max;\r\n this.min = options.min;\r\n this.addBtn = options.add;\r\n this.minusBtn = options.minus;\r\n this.nowValue = null;\r\n };\r\n\r\n Module.DEFAULTS = {\r\n minus:'',\r\n add:'',\r\n whenClick:function($dom){\r\n \r\n },\r\n beforeChangeFun:function($dom){\r\n\r\n }\r\n };\r\n\r\n Module.prototype.render = function(maxNum,minNum){\r\n var $this = this.$ele,\r\n newOptions = this.option,\r\n minus = newOptions.minus,\r\n add = newOptions.add,\r\n $amount_num = parseInt($this.children('.amount').val());\r\n this.nowValue = $amount_num;\r\n\r\n if($this.children().length < 3){\r\n $this.prepend(minus);\r\n $this.append(add);\r\n }\r\n $this.children().first().addClass('minus');\r\n $this.children().last().addClass('add');\r\n \r\n if( $amount_num == minNum){\r\n $this.children().first().addClass('disabled');\r\n }\r\n };\r\n\r\n Module.prototype.init = function(){\r\n\r\n this.render(this.maxNum,this.min);\r\n\r\n var _self = this,\r\n $this = this.$ele,\r\n newOptions = this.option,\r\n $amount = $this.children('.amount'),\r\n $minus = $this.children('.minus'),\r\n $add = $this.children('.add');\r\n\r\n var callbackFun = newOptions.whenClick;\r\n \r\n //clcik events\r\n\r\n $add.on('click',function(){\r\n // debugger;\r\n var maxNum = _self.max;\r\n var minNum = _self.min;\r\n\r\n if($amount.prop('tagName') == 'INPUT'){\r\n\r\n var amount_num = _self.nowValue;\r\n\r\n if ( maxNum || maxNum == 0) {\r\n if( amount_num < maxNum){\r\n amount_num++;\r\n }\r\n }else{\r\n amount_num++;\r\n }\r\n\r\n $amount.attr('value',amount_num);\r\n $minus.removeClass('disabled'); \r\n _self.nowValue = amount_num;\r\n\r\n (typeof callbackFun === 'function')? callbackFun($(this)) : null ;\r\n\r\n $amount.trigger('update');\r\n \r\n }else{\r\n var amount_num = parseInt($amount.text());\r\n if (maxNum) {\r\n if (amount_num < maxNum){amount_num++;}\r\n }else{\r\n amount_num++;\r\n }\r\n $amount.text(amount_num); \r\n }\r\n \r\n });\r\n\r\n\r\n $minus.on('click',function(){\r\n\r\n var maxNum = _self.max;\r\n var minNum = _self.min;\r\n\r\n if($amount.prop('tagName') == 'INPUT'){\r\n\r\n var amount_num = _self.nowValue;\r\n\r\n if( minNum ){\r\n if( amount_num > minNum ){amount_num --;}\r\n }else if( amount_num > 0){\r\n amount_num --;\r\n }\r\n\r\n var res = newOptions.beforeChangeFun($(this));\r\n if(res === false){\r\n return;\r\n }\r\n\r\n $amount.attr('value',amount_num); \r\n $add.removeClass('disabled');\r\n _self.nowValue = amount_num;\r\n\r\n (typeof callbackFun === 'function')? callbackFun($(this)) : null ;\r\n $amount.trigger('update');\r\n \r\n }else{\r\n var amount_num = parseInt($amount.text());\r\n if(minNum){\r\n if( amount_num > minNum){amount_num--;}\r\n }else if( amount_num > 0){\r\n amount_num--;\r\n } \r\n $amount.text(amount_num); \r\n }\r\n \r\n });\r\n\r\n $amount.on('update', function(e) {\r\n _self.onChange(_self.nowValue,_self.max,_self.min);\r\n });\r\n }\r\n\r\n Module.prototype.updateOption = function(newOptions){\r\n this.max = newOptions.max;\r\n this.min = newOptions.min;\r\n this.onChange(this.nowValue,this.max,this.min);\r\n }\r\n\r\n Module.prototype.onChange = function(nowValue,maxNum,minNum){\r\n\r\n var $this = this.$ele, \r\n $minus = $this.children('.minus'),\r\n $add = $this.children('.add');\r\n\r\n if( nowValue == minNum){\r\n $minus.addClass('disabled');\r\n\r\n ( nowValue == maxNum ) ? $add.addClass('disabled') : $add.removeClass('disabled');\r\n }else if( nowValue == maxNum ){\r\n $add.addClass('disabled');\r\n }else{\r\n $minus.removeClass('disabled');\r\n $add.removeClass('disabled');\r\n }\r\n\r\n \r\n }\r\n\r\n \r\n $.fn[ModuleName] = function(options,updateOption) {\r\n return this.each(function() {\r\n var $this = $(this);\r\n var module = $this.data(ModuleName);\r\n var opts = null;\r\n if (!!module) {\r\n if (typeof options === 'string' && typeof updateOption === 'object' ) {\r\n module[options](updateOption);\r\n } else {\r\n throw 'unsupported options!';\r\n }\r\n } else {\r\n opts = $.extend({}, Module.DEFAULTS, (typeof options === 'object' && options));\r\n var module = new Module(this, opts);\r\n $this.data(ModuleName,module);\r\n module.init();\r\n }\r\n });\r\n };\r\n\r\n})(jQuery);\r\n\n\n\n// WEBPACK FOOTER //\n// ./magaele/btg_gpct/module.js","(function(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","(function($) {\r\n'use strict';\r\n\r\n\tvar ModuleName = 'ntb_gpbt';\r\n\r\n\tvar Module = function ( ele, options ) {\r\n\t\tthis.$ele = $(ele);\r\n\t\tthis.options = options;\r\n\t\tthis.$tabsWrap = this.$ele.children('.ntb_tab');\r\n\t\tthis.$tabs = this.$ele.find('.ntb_tab > li');\r\n\t\tthis.$contentWrap = this.$ele.children('.contents');\r\n\t\tthis.$contents = this.$contentWrap.children('.content');\r\n\t\tthis.$nextButton = this.$ele.children('.next');\r\n\t\tthis.$prevButton = this.$ele.children('.prev');\r\n\t};\r\n\r\n\tModule.DEFAULTS = {\r\n\t\ttabLable: [\r\n\r\n\t\t],\r\n\t whenNext: function($this, $thisTab, tabLabelData) {},\r\n\t whenPrev: function($this, $thisTab, tabLabelData) {},\r\n\t whenClick: function($this, $thisTab, tabLabelData) {}\r\n\t};\r\n\r\n\tModule.prototype.initial = function () {\r\n\t\tconsole.log('inital');\r\n\t\tif ( this.$tabs.length > 1 ) {\r\n\t\t\tthis.onClickli();\r\n\t\t\tthis.onClickNext();\r\n\t\t\tthis.onClickPrev();\r\n\t\t\tthis.btnSwitcher();\r\n\t\t\tthis.offsetTabPosition();\r\n\t\t\tthis.disableContent();\r\n\t\t\tthis.enbaleContent();\r\n\t\t}\r\n\t\tthis.setTabsLable();\r\n\t};\r\n\r\n\tModule.prototype.setTabsLable = function (){\r\n\t\tvar self = this;\r\n\t\tif ( $.type(this.options.tabLable) === 'array' && this.options.tabLable.length >= this.$tabs.length ) {\r\n\t\t\tthis.$tabs.each(function(i, ele) {\r\n\t\t\t\t$(ele).attr('data-label',self.options.tabLable[i]);\r\n\t\t\t});\t\t\t\r\n\t\t} else {\r\n\t\t\tconsole.log('Option tabLable must be array!');\r\n\t\t}\r\n\t};\r\n\r\n\tModule.prototype.returnIndexLi = function ( dom ){\r\n\t\tvar compareDom;\r\n\t\tif ( !!dom ) {\r\n\t\t\tif ( dom instanceof $ ) {\r\n\t\t\t\tcompareDom = dom.get(0);\r\n\t\t\t} else {\r\n\t\t\t\tcompareDom = dom;\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tcompareDom = this.$tabs.filter('.now').get(0);\r\n\t\t}\r\n\t\treturn this.$tabs.index( compareDom );\r\n\t}\r\n\r\n\tModule.prototype.getTabWidthPercent = function () {\r\n\t\treturn this.$tabs.eq(0).width()/this.$tabsWrap.width() * 100;\r\n\t};\r\n\r\n\tModule.prototype.offsetTabPosition = function () {\r\n\t\tvar nowIndex = this.returnIndexLi();\r\n\t\tvar maxLindex = this.$tabs.length - 1;\r\n\t\tif ( nowIndex > 0 && nowIndex < maxLindex ) {\r\n\t\t\tthis.$tabs.eq(0).css('margin-left', -((nowIndex - 1) * this.getTabWidthPercent()) + '%' );\r\n\t\t}\r\n\t};\r\n\r\n\tModule.prototype.disableContent = function ( i ) {\r\n\t\tthis.$contents.hide();\r\n\t};\r\n\r\n\tModule.prototype.enbaleContent = function ( i ) {\r\n\t\tvar nowIndex = i || this.returnIndexLi();\r\n\t\t// console.log(nowIndex);\r\n\t\tthis.$contents.eq(nowIndex).show();\r\n\t};\r\n\r\n\tModule.prototype.onClickli = function () {\r\n\t\tvar _this = this;\r\n\t\tvar returnItem;\r\n\t\tvar returnContent;\r\n\t\tthis.$tabs.on('click',function(e){\r\n\t\t\te.preventDefault();\r\n\t\t\t// console.log('onClick Me!!',this);\r\n\t\t\t_this.diasbleTabs();\r\n\t\t\t_this.enableTab( this );\t\r\n\t\t\t_this.options.whenClick(_this.$ele, $(this), _this.options.tabLable[_this.returnIndexLi()]);\r\n\t\t\t_this.btnSwitcher();\r\n\t\t\t_this.offsetTabPosition();\r\n\t\t\t_this.disableContent();\r\n\t\t\t_this.enbaleContent();\r\n\t\t});\r\n\t};\r\n\r\n\tModule.prototype.diasbleTabs = function () {\r\n\t\tthis.$tabs.removeClass('now');\r\n\t};\r\n\r\n\tModule.prototype.enableTab = function ( dom ) {\r\n\t\t$(dom).addClass('now')\r\n\t};\r\n\r\n\tModule.prototype.isFirstLast = function () {\r\n\t\tvar returnVal;\r\n\t\tvar nowIndex = this.returnIndexLi();\r\n\t\tvar maxLindex = this.$tabs.length - 1;\r\n\t\tif ( nowIndex === 0 || nowIndex === maxLindex ) {\r\n\t\t\treturnVal = nowIndex;\r\n\t\t} else {\r\n\t\t\treturnVal = false;\r\n\t\t}\r\n\t\treturn returnVal;\r\n\t};\r\n\r\n\tModule.prototype.btnSwitcher = function ( ) {\r\n\t\tif ( typeof this.isFirstLast() === 'number' ) {\r\n\t\t\tif ( this.isFirstLast() === 0 ) {\r\n\t\t\t\tthis.$prevButton.removeClass('on');\r\n\t\t\t} else {\r\n\t\t\t\tthis.$nextButton.removeClass('on');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.$nextButton.addClass('on');\r\n\t\t\tthis.$prevButton.addClass('on');\r\n\t\t}\r\n\t}\r\n\r\n\tModule.prototype.onClickNext = function() {\r\n\t\tvar _this = this;\r\n\t\tthis.$ele.find('.next').on('click',function(e){\r\n\t\t\t// console.log(\"next\");\r\n\t\t\te.preventDefault();\r\n\t\t\tvar nowIndex = _this.returnIndexLi();\r\n\t\t\tvar maxLindex = _this.$tabs.length - 1;\r\n\t\t\tvar $nextTab = _this.$tabs.eq( nowIndex + 1 );\r\n\t\t\t// console.log(nowIndex);\r\n\t\t\tif ( nowIndex >= 0 && nowIndex < maxLindex ){\r\n\t\t\t\t_this.diasbleTabs();\r\n\t\t\t\t_this.enableTab($nextTab.get(0));\r\n\t\t\t\t_this.options.whenNext(_this.$ele, $nextTab, _this.options.tabLable[_this.returnIndexLi()]);\r\n\t\t\t}\r\n\t\t\t_this.btnSwitcher();\r\n\t\t\t_this.offsetTabPosition();\r\n\t\t\t_this.disableContent();\r\n\t\t\t_this.enbaleContent();\r\n\t\t});\r\n\t}\r\n\tModule.prototype.onClickPrev = function() {\r\n\t\tvar _this = this;\r\n\t\tthis.$ele.find('.prev').on('click',function(e){\r\n\t\t\t// console.log(\"prev\");\r\n\t\t\te.preventDefault();\r\n\t\t\tvar nowIndex = _this.returnIndexLi();\r\n\t\t\tvar maxLindex = _this.$tabs.length - 1;\r\n\t\t\tvar $prevTab = _this.$tabs.eq( nowIndex - 1 );\r\n\t\t\tif ( nowIndex > 0 && nowIndex <= maxLindex ){\r\n\t\t\t\t_this.diasbleTabs();\r\n\t\t\t\t_this.enableTab( $prevTab.get(0) );\r\n\t\t\t\t_this.options.whenPrev(_this.$ele, $prevTab, _this.options.tabLable[_this.returnIndexLi()]);\r\n\t\t\t}\r\n\t\t\t_this.btnSwitcher();\r\n\t\t\t_this.offsetTabPosition();\r\n\t\t\t_this.disableContent();\r\n\t\t\t_this.enbaleContent();\r\n\t\t});\t\t\r\n\t}\t\r\n\t$.fn[ModuleName] = function ( method, options ) {\r\n\t\treturn this.each(function(){\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar module = $this.data( ModuleName );\r\n\t\t\tvar opts = null;\r\n\t\t\tif ( !!module ) {\r\n\t\t\t\tif ( typeof method === 'string' && typeof options === 'undefined' ) {\r\n\t\t\t\t\tmodule[method]();\r\n\t\t\t\t} else if ( typeof method === 'string' && typeof options === 'object' || typeof options === 'string' ) {\r\n\t\t\t\t\tmodule[method](options);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log('unsupported options!');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\topts = $.extend( {}, Module.DEFAULTS, ( typeof method === 'object' && method ), ( typeof options === 'object' && options ) );\r\n\t\t\t\tmodule = new Module(this, opts);\r\n\t\t\t\t$this.data( ModuleName, module );\r\n\t\t\t\tmodule.initial();\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n})(jQuery);\n\n\n// WEBPACK FOOTER //\n// ./magaele/ntb_gpbt/module.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./css/table.scss\n// module id = 22\n// module chunks = 0 3 4 6","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/bt_gplt/css.scss\n// module id = 23\n// module chunks = 0 2 7 8","// 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/cd_flln/css.scss\n// module id = 28\n// module chunks = 0 3 4","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/clp_stbm/css.scss\n// module id = 29\n// module chunks = 0 3 4","/******/ (function(modules) { // webpackBootstrap\r\n/******/ \t// The module cache\r\n/******/ \tvar installedModules = {};\r\n/******/\r\n/******/ \t// The require function\r\n/******/ \tfunction __webpack_require__(moduleId) {\r\n/******/\r\n/******/ \t\t// Check if module is in cache\r\n/******/ \t\tif(installedModules[moduleId]) {\r\n/******/ \t\t\treturn installedModules[moduleId].exports;\r\n/******/ \t\t}\r\n/******/ \t\t// Create a new module (and put it into the cache)\r\n/******/ \t\tvar module = installedModules[moduleId] = {\r\n/******/ \t\t\ti: moduleId,\r\n/******/ \t\t\tl: false,\r\n/******/ \t\t\texports: {}\r\n/******/ \t\t};\r\n/******/\r\n/******/ \t\t// Execute the module function\r\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\r\n/******/\r\n/******/ \t\t// Flag the module as loaded\r\n/******/ \t\tmodule.l = true;\r\n/******/\r\n/******/ \t\t// Return the exports of the module\r\n/******/ \t\treturn module.exports;\r\n/******/ \t}\r\n/******/\r\n/******/\r\n/******/ \t// expose the modules object (__webpack_modules__)\r\n/******/ \t__webpack_require__.m = modules;\r\n/******/\r\n/******/ \t// expose the module cache\r\n/******/ \t__webpack_require__.c = installedModules;\r\n/******/\r\n/******/ \t// define getter function for harmony exports\r\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\r\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\r\n/******/ \t\t\tObject.defineProperty(exports, name, {\r\n/******/ \t\t\t\tconfigurable: false,\r\n/******/ \t\t\t\tenumerable: true,\r\n/******/ \t\t\t\tget: getter\r\n/******/ \t\t\t});\r\n/******/ \t\t}\r\n/******/ \t};\r\n/******/\r\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\r\n/******/ \t__webpack_require__.n = function(module) {\r\n/******/ \t\tvar getter = module && module.__esModule ?\r\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\r\n/******/ \t\t\tfunction getModuleExports() { return module; };\r\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\r\n/******/ \t\treturn getter;\r\n/******/ \t};\r\n/******/\r\n/******/ \t// Object.prototype.hasOwnProperty.call\r\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\r\n/******/\r\n/******/ \t// __webpack_public_path__\r\n/******/ \t__webpack_require__.p = \"\";\r\n/******/\r\n/******/ \t// Load entry module and return exports\r\n/******/ \treturn __webpack_require__(__webpack_require__.s = 0);\r\n/******/ })\r\n/************************************************************************/\r\n/******/ ([\r\n/* 0 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\"use strict\";\r\n/* WEBPACK VAR INJECTION */(function(global) {\r\n\r\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\r\n\r\n__webpack_require__(2);\r\n\r\nvar _module = __webpack_require__(3);\r\n\r\nvar root = function (root) {\r\n\tif ((typeof root === 'undefined' ? 'undefined' : _typeof(root)) === 'object' && (root.self === root || root.global === global) && root) {\r\n\t\treturn root;\r\n\t}\r\n}(self || global || {});\r\n\r\nvar $ = function ($) {\r\n\tif (typeof $ === 'function') {\r\n\t\treturn $;\r\n\t} else {\r\n\t\tthrow 'You must import jQuery';\r\n\t}\r\n}(root.jQuery);\r\n\r\n$.fn[_module.ModuleName] = function () {\r\n\tvar module = void 0;\r\n\tvar args = Array.prototype.slice.call(arguments, 0);\r\n\tvar method = args[0];\r\n\tvar options = args.slice(1).length <= 0 ? undefined : args.slice(1, args.length);;\r\n\tvar isReturnMethod = this.length === 1 && typeof method === 'string' && _module.ModuleReturns.indexOf(method) !== -1;\r\n\tvar methodRunner = function methodRunner(method, options, uesReturn) {\r\n\t\tvar $this = $(this);\r\n\t\tvar module = $this.data(_module.ModuleName);\r\n\t\tif (!!module) {\r\n\t\t\tif (typeof method == 'string' && !uesReturn) {\r\n\t\t\t\tmodule[method].apply(module, options);\r\n\t\t\t} else if (typeof method == 'string' && !!uesReturn) {\r\n\t\t\t\treturn module[method].apply(module, options);\r\n\t\t\t} else {\r\n\t\t\t\tthrow 'unsupported options!';\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthrow 'You must run first this plugin!';\r\n\t\t}\r\n\t};\r\n\tif (isReturnMethod) {\r\n\t\treturn methodRunner.call(this, method, options, isReturnMethod);\r\n\t} else {\r\n\t\treturn this.each(function () {\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar module = $this.data(_module.ModuleName);\r\n\t\t\tvar opts = null;\r\n\t\t\tif (!!module) {\r\n\t\t\t\tmethodRunner.call(this, method, options);\r\n\t\t\t} else {\r\n\t\t\t\topts = $.extend(true, {}, _module.ModuleDefaults, (typeof method === 'undefined' ? 'undefined' : _typeof(method)) === 'object' && method, (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object' && options);\r\n\t\t\t\tmodule = new _module.Module(this, opts);\r\n\t\t\t\t$this.data(_module.ModuleName, module);\r\n\t\t\t\tmodule.init();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n};\r\n/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))\r\n\r\n/***/ }),\r\n/* 1 */\r\n/***/ (function(module, exports) {\r\n\r\nvar g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1,eval)(\"this\");\r\n} catch(e) {\r\n\t// This works if the window reference is available\r\n\tif(typeof window === \"object\")\r\n\t\tg = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n\r\n\r\n/***/ }),\r\n/* 2 */\r\n/***/ (function(module, exports) {\r\n\r\n// removed by extract-text-webpack-plugin\r\n\r\n/***/ }),\r\n/* 3 */\r\n/***/ (function(module, exports, __webpack_require__) {\r\n\r\n\"use strict\";\r\n\r\n\r\nObject.defineProperty(exports, \"__esModule\", {\r\n value: true\r\n});\r\n\r\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\r\n\r\nvar ModuleName = 'clp_stbm';\r\nvar ModuleDefaults = {\r\n width: null,\r\n inModule: false,\r\n hiddenChange: function hiddenChange(showBlock, hiddenBlock) {\r\n console.log(showBlock);\r\n }\r\n};\r\nvar ModuleReturns = [];\r\n\r\nvar Module = function () {\r\n function Module(element, opt) {\r\n _classCallCheck(this, Module);\r\n\r\n this.ele = element;\r\n this.$elem = $(element);\r\n this.option = opt;\r\n this.showBlock = this.$elem.children('.showBlock');\r\n this.hiddenBlock = this.$elem.children('.hiddenBlock');\r\n }\r\n\r\n _createClass(Module, [{\r\n key: 'init',\r\n value: function init() {\r\n var _this = this;\r\n\r\n var inModuleMode = this.option.inModule;\r\n\r\n if (!inModuleMode) this.movehidden();\r\n\r\n this.showBlock.on('click', function (e) {\r\n e.stopPropagation();\r\n\r\n //處理label for會觸發兩次click事件的問題\r\n e.preventDefault();\r\n\r\n var offset = _this.showBlock.offset();\r\n var showBlockH = _this.showBlock.outerHeight();\r\n\r\n if (_this.hiddenBlock.hasClass('open')) {\r\n $('.clp_stbm_hiddenBlock, .hiddenBlock').removeClass('open');\r\n } else {\r\n $('.clp_stbm_hiddenBlock, .hiddenBlock').removeClass('open');\r\n\r\n if (!inModuleMode) {\r\n _this.hiddenBlock.css({ 'top': offset.top + showBlockH, 'left': offset.left });\r\n _this.setWidth();\r\n }\r\n _this.hiddenBlock.addClass('open');\r\n }\r\n });\r\n\r\n this.hiddenBlock.on('click', function (e) {\r\n e.stopPropagation();\r\n }).on('click', '.close_btn', function (e) {\r\n _this.hiddenBlock.removeClass('open');\r\n });\r\n\r\n this.hiddenBlock.find('select, input').on('change', function () {\r\n _this.option.hiddenChange(_this.showBlock, _this.hiddenBlock);\r\n });\r\n\r\n $('html').on('click', function () {\r\n _this.hiddenBlock.removeClass('open');\r\n });\r\n }\r\n }, {\r\n key: 'movehidden',\r\n value: function movehidden() {\r\n //把hidden區塊移動至body層,並做好定位\r\n this.hiddenBlock.appendTo('body').addClass(ModuleName + '_hiddenBlock').append('');\r\n }\r\n }, {\r\n key: 'setWidth',\r\n value: function setWidth() {\r\n if (!this.option.width) return;\r\n\r\n if (typeof this.option.width === 'number') {\r\n this.hiddenBlock.css('width', this.option.width);\r\n } else if (this.option.width === 'full') {\r\n this.hiddenBlock.css('width', this.showBlock.outerWidth());\r\n }\r\n }\r\n /////////////v1.0.4_by_PaulNi/////\r\n\r\n }, {\r\n key: 'setWidth_sec',\r\n value: function setWidth_sec(num) {\r\n if (typeof num === 'number') {\r\n this.hiddenBlock.css('width', num);\r\n } else if (num === 'full') {\r\n this.hiddenBlock.css('width', this.showBlock.outerWidth());\r\n } else if (num === 'defult') {\r\n this.hiddenBlock.css('width', this.hiddenBlock.outerWidth());\r\n }\r\n }\r\n }]);\r\n\r\n return Module;\r\n}();\r\n\r\n;\r\n\r\nexports.ModuleName = ModuleName;\r\nexports.ModuleDefaults = ModuleDefaults;\r\nexports.ModuleReturns = ModuleReturns;\r\nexports.Module = Module;\r\n\r\n/***/ })\r\n/******/ ]);\n\n\n// WEBPACK FOOTER //\n// ./magaele/clp_stbm/module.js","(function($) {\r\n 'use strict';\r\n\r\n var ModuleName = 'ntb_gplt';\r\n\r\n var Module = function(element, options) {\r\n this.ele = element;\r\n this.option = options;\r\n this.$ele = $(element);\r\n this.$tabsWrap = this.$ele.children('.ntb-tabs');\r\n this.$tabs = this.$tabsWrap.children('li');\r\n this.$leftArrow = $('');\r\n this.$rightArrow = $('');\r\n this.scrollPosition = [];\r\n };\r\n\r\n Module.DEFAULTS = {\r\n openAnimate: null,\r\n closeAnimate: null,\r\n clickTabToClose: false,\r\n enableTabScrollbar: false,\r\n enableTabArrow: false,\r\n cssClass: {\r\n tabScrollbar: 'ntb_scroll_tabs'\r\n },\r\n whenOpen: function($tab, $content) {\r\n\r\n },\r\n whenClose: function($tab, $content) {\r\n\r\n }\r\n\r\n };\r\n\r\n Module.prototype.init = function() {\r\n var self = this;\r\n var $this = this.$ele;\r\n var opt = this.option;\r\n var $tabs = $this.children('.ntb-tabs');\r\n var $active = $this.children('.ntb-tabs').find('.ntb-tab.active, .ntb-tab:checked');\r\n var $activeContent = $active.closest('.ntb_gplt').children('.ntb-content[name=' + $active.attr('data-toggle') + ']');\r\n var $closeBtn = $this.find('.ntb-close');\r\n\r\n this.renderTab();\r\n var $tab = $tabs.find('.ntb-tab').add($this.children(\".ntb-tab\"));\r\n if ( this.option.enableTabScrollbar === true ) {\r\n this.enableTabScrollbar();\r\n }\r\n if ( this.option.enableTabArrow === true ) {\r\n this.enableTabArrow();\r\n }\r\n if ($active.is(':checked')) {\r\n $active.addClass('active');\r\n }\r\n $activeContent.show();\r\n\r\n $tab.click(function(e) {\r\n console.log(\"clicked\")\r\n self.toggleContent( $(this) );\r\n });\r\n\r\n $closeBtn.click(function() {\r\n var $content = $(this).closest('.ntb-content');\r\n var $thisTab = $(this).closest('.ntb_gplt').children('.ntb-tabs').find('.ntb-tab[data-toggle=' + $content.attr('name') + ']');\r\n $(this).closest('.ntb-content').slideUp();\r\n $thisTab.removeClass('active');\r\n if (opt.whenClose && typeof opt.whenClose === 'function') {\r\n\t \topt.whenClose($thisTab, $content);\r\n\t }\r\n });\r\n\r\n $this.on('close', function(e, name) {\r\n \tif (name && typeof name === 'string') {\r\n var $tab = $this.children('.ntb-tabs').find('.ntb-tab[data-toggle=' + name + ']').add($this.children(\".ntb-tab\").filter('.ntb-tab[data-toggle=' + name + ']'));\r\n var $content = $this.children('.ntb-content[name=' + name + ']');\r\n console.log(\"$tab\", $tab)\r\n $tab.removeClass('active');\r\n if (opt.closeAnimate && opt.closeAnimate == 'slide') {\r\n $content.slideUp();\r\n } else {\r\n $content.hide();\r\n }\r\n\t if (opt.whenClose && typeof opt.whenClose === 'function') {\r\n\t \topt.whenClose($tab, $content);\r\n\t }\r\n }\r\n });\r\n\r\n $this.on('open', function(e, name) {\r\n if (name && typeof name === 'string') {\r\n var $tab = $this.children('.ntb-tabs').find('.ntb-tab[data-toggle=' + name + ']').add($this.children(\".ntb-tab\").filter('.ntb-tab[data-toggle=' + name + ']'));\r\n var $content = $this.children('.ntb-content[name=' + name + ']');\r\n\r\n $tab.addClass('active');\r\n if (opt.openAnimate && opt.openAnimate == 'slide') {\r\n $content.slideDown();\r\n } else {\r\n $content.show();\r\n }\r\n\t if (opt.whenOpen && typeof opt.whenOpen === 'function') {\r\n\t \topt.whenOpen($tab, $content);\r\n\t }\r\n }\r\n });\r\n };\r\n\r\n Module.prototype.toggleContent = function( $tab ) {\r\n var $this = this.$ele;\r\n var opt = this.option;\r\n var $tabs = $this.children('.ntb-tabs').add($this.children(\".ntb-tab\"));\r\n var $active = $this.children('.ntb-tabs').find('.ntb-tab.active, .ntb-tab:checked');\r\n if ($tab.hasClass('active')) {\r\n if (opt.clickTabToClose) {\r\n $this.trigger('close', [$tab.attr('data-toggle')]);\r\n }\r\n } else {\r\n $active = $tabs.find('.ntb-tab.active');\r\n if ($active.length > 0) {\r\n $this.trigger('close', [$active.attr('data-toggle')]);\r\n }\r\n $this.trigger('open', [$tab.attr('data-toggle')]);\r\n }\r\n };\r\n\r\n Module.prototype.enableTabScrollbar = function() {\r\n if ( typeof this.option.enableTabScrollbar === 'boolean' && this.option.enableTabScrollbar === true ) {\r\n this.$ele.addClass( this.option.cssClass.tabScrollbar );\r\n } else {\r\n console.log('Module option is not allow enable');\r\n }\r\n };\r\n\r\n Module.prototype.enableTabArrow = function() {\r\n var self = this;\r\n this.setScrollPosition();\r\n if ( typeof this.option.enableTabArrow === 'boolean' && this.option.enableTabArrow === true ) {\r\n this.$ele.addClass('ntb_arrow').children('.ntb-tabs').before( this.$leftArrow ).after( this.$rightArrow );\r\n this.$leftArrow.on('click', function(e) {\r\n self.arrowPrev();\r\n });\r\n this.$rightArrow.on('click', function(e) {\r\n self.arrowNext();\r\n });\r\n\r\n } else {\r\n console.log('Module option is not allow enable');\r\n }\r\n };\r\n\r\n Module.prototype.setScrollPosition = function() {\r\n var self = this;\r\n this.$tabs.each(function(index, el) {\r\n var $this = $( el );\r\n self.scrollPosition.push( $this.outerWidth() );\r\n });\r\n };\r\n\r\n Module.prototype.arrowNext = function() {\r\n var nowScrollLeft = this.$tabsWrap.scrollLeft();\r\n var scrollSum = 0;\r\n for (var i = 0; i < this.scrollPosition.length && scrollSum <= nowScrollLeft; i++) {\r\n scrollSum += this.scrollPosition[i];\r\n this.$tabsWrap.scrollLeft( scrollSum );\r\n }\r\n };\r\n\r\n Module.prototype.arrowPrev = function() {\r\n var nowScrollLeft = this.$tabsWrap.scrollLeft();\r\n var scrollSum = this.scrollPosition.reduce(function(acc, val) {\r\n return acc + val;\r\n }, 0);\r\n for (var i = this.scrollPosition.length - 1; i >= 0 && scrollSum >= nowScrollLeft; i--) {\r\n scrollSum -= this.scrollPosition[i];\r\n this.$tabsWrap.scrollLeft( scrollSum );\r\n }\r\n };\r\n\r\n Module.prototype.renderTab = function() {\r\n var $this = this.$ele;\r\n var $contents = $this.children('.ntb-content');\r\n if ($this.hasClass('ntb-xs-stack')) {\r\n console.log(\"hasClass('ntb-xs-stack')\")\r\n $contents.each(function() {\r\n var $tab = $this.children('.ntb-tabs').find('.ntb-tab[data-toggle=' + $(this).attr('name') + ']').parent().html();\r\n $(this).before($tab);\r\n console.log(\"$tab\", $tab)\r\n });\r\n }\r\n };\r\n\r\n $.fn[ModuleName] = function(options, options2) {\r\n return this.each(function() {\r\n var $this = $(this);\r\n var module = $this.data(ModuleName);\r\n var opts = {};\r\n if ( !!module ) {\r\n if ( typeof options === 'string' && typeof options2 === 'undefined' ) {\r\n module[options]();\r\n } else if ( typeof options === 'string' && typeof options2 === 'object' ) {\r\n module[options](options2);\r\n } else {\r\n console.log('unsupported options!');\r\n }\r\n } else {\r\n opts = $.extend( true, {}, Module.DEFAULTS, ( typeof options === 'object' && options ), ( typeof options2 === 'object' && options2 ) );\r\n module = new Module(this, opts);\r\n $this.data( ModuleName, module );\r\n module.init();\r\n }\r\n });\r\n };\r\n\r\n})(jQuery);\r\n\n\n\n// WEBPACK FOOTER //\n// ./magaele/ntb_gplt/module.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/ntb_gplt/css.scss\n// module id = 39\n// module chunks = 0 7","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/st_lnht/css.scss\n// module id = 40\n// module chunks = 0 1","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/tb_htrm/css.scss\n// module id = 42\n// module chunks = 0 1","/**\r\n * Created by LinFF on 2017/5/6.\r\n */\r\n(function($){\r\n 'use strict';\r\n\r\n var ModuleName = 'st_lnht';\r\n\r\n var Module = function(elem,options){\r\n this.elem = $(elem);\r\n this.childMax = options.childMax;\r\n this.inputParent = options.inputParent;\r\n this.isFirst = false;\r\n this.winWidth = 0;\r\n this.appendDiv = options.appendDiv;\r\n this.isPosition = options.isPosition;\r\n this.total = '';//用戶選擇間數人數的數據\r\n this.obj = '.' + ModuleName;\r\n this.callback = options.callback;\r\n this.newpackage = options.newpackage;\r\n this.warningText = options.warningText;\r\n this.noticeText = options.noticeText;\r\n this.kidsNoBed = options.kidsNoBed;\r\n this.readonly = options.readonly;\r\n this.closeManually = options.closeManually;\r\n this.opt = options;\r\n this.activeRoomCount = 1; // 目前間數\r\n this.newCloseBtnClass = options.closeBtnClass; // 新增的close btn class\r\n this.adultDefaultNum = options.adultDefaultNum;\r\n\r\n // append 出來的 彈跳視窗 Dom 物件\r\n this.$targetObj = null;\r\n };\r\n\r\n Module.DEFAULTS = {\r\n childMax: 3,//设置小孩select個數最大值\r\n inputParent: $('.room'),//input的父级对象 用来定位\r\n appendDiv: null, //將創建的彈窗添加到哪個容器里\r\n isPosition: false, //移動端是否需要定位\r\n newpackage: false,\r\n warningText: null,\r\n noticeText: null,\r\n kidsNoBed: false,\r\n mode: 'select', // tab | select 切換是下拉模式或Tab\r\n tabCount: 7,\r\n tabActiveIndex: 0, // 預設房間參數\r\n defaultCloseBtnClass: ['close'], // 預設的close btn class.\r\n readonly: true, // 預設input 是readonly\r\n closeManually: false, //M版時 改為true\r\n adultDefaultNum : 1, //點選更多間數時,成人人數預設為1\r\n callback: {\r\n whenInitRoom: function(elem,$module){\r\n console.log('whenInit',elem,$module);\r\n },\r\n whenInitChildAge: function(elem){\r\n console.log('whenInitChildAge',elem);\r\n },\r\n whenInitPeopleNum: function(adult,child,$module){\r\n console.log('whenInitChildAge',adult,child,$module);\r\n },\r\n whenTabBtnClick: function($tabBtn){\r\n console.log('whenTabBtnClick',$tabBtn);\r\n },\r\n },\r\n isCustomMobile: false\r\n };\r\n\r\n Module.prototype.init = function(){\r\n var _this = this;\r\n // select click event\r\n this.selectMouseDown(_this.initRoomNumSelect,_this.initPeopleNum,_this.closePopup);\r\n\r\n this.bodyMouseDown();\r\n\r\n this.divClickEvent();\r\n \r\n this.mergeCloseBtnClass();\r\n\r\n };\r\n\r\n // 合併close btn class array.\r\n Module.prototype.mergeCloseBtnClass = function(){\r\n this.opt.defaultCloseBtnClass = this.opt.defaultCloseBtnClass.concat(this.opt.closeBtnClass);\r\n }\r\n\r\n // 註冊tab btn 事件\r\n Module.prototype.tabBtnEvents = function(){\r\n var self = this;\r\n self.elem.siblings('.tab-mode-container')\r\n .find('.tab-btn-group')\r\n .on('click', '.tab-btn', function(e) {\r\n console.log('click')\r\n $('.tab-btn').removeClass('active')\r\n $(e.currentTarget).addClass('active');\r\n var count = $(e.currentTarget).data('room-count')\r\n self.activeRoomCount = count;\r\n self.optionsMouseDown($(e.currentTarget),self.activeRoomCount );\r\n // tab 模式 click 時callback\r\n self.opt.callback.whenTabBtnClick($(this));\r\n });\r\n // 註冊init預設資料傳進來要build對應房間數\r\n self.opt.callback.whenInitRoom( self.elem.siblings('.tab-mode-container')\r\n .find('.tab-btn.active') ,self)\r\n }\r\n Module.prototype.stopEvents = function(elem){\r\n var self = this;\r\n elem.on('mousedown',function(e){\r\n e.stopPropagation(); \r\n });\r\n };\r\n\r\n Module.prototype.bodyMouseDown = function(){\r\n var _this = this;\r\n $('body').on('mousedown',function(){\r\n // 在tab模式不要按到body就收合\r\n if(_this.opt.mode !== 'tab' && !_this.opt.closeManually){\r\n $(_this.obj).addClass('d-no');\r\n }\r\n \r\n });\r\n };\r\n\r\n Module.prototype.closePopup = function(self,elem){\r\n $(elem).on('mousedown',function(){\r\n $(self.obj).addClass('d-no');\r\n });\r\n };\r\n\r\n Module.prototype.selectMouseDown = function(initRoomNumSelect,initPeopleNum,callback){\r\n var _this = this;\r\n $(this.elem).on('mousedown',function(e){\r\n var device = _this.isMobile();\r\n e.stopPropagation();\r\n var elem = _this.$targetObj;\r\n var len = elem === null ? 0 : elem.length;\r\n var detail = null;\r\n var adult = null;\r\n var adultBox = null;\r\n var childBox = null;\r\n var select = null;\r\n var closeBtn = null;\r\n var top = $(this).offset().top + $(this).outerHeight(true);\r\n var left = $(this).offset().left;\r\n const $eleWidth = $(this).innerWidth();\r\n var width = 0;\r\n _this.winWidth = $(window).width();\r\n\r\n // 沒有這個 st_lnht 時 建立一個物件\r\n if(len <= 0){\r\n // PC版\r\n if(!device){\r\n var createHtmlStr = _this.createPopup();\r\n // 將要append 到容器內的 Dom 物件先存放\r\n _this.$targetObj = $(createHtmlStr);\r\n if (typeof _this.appendDiv === 'string' && $(_this.appendDiv).length !== 0) {\r\n $(_this.appendDiv).append(_this.$targetObj);\r\n } else {\r\n $('body').append(_this.$targetObj);\r\n }\r\n }\r\n else{\r\n // M版\r\n // 2種模式一個是append到div內\r\n // 一個是append到body\r\n if(_this.appendDiv){\r\n var createHtmlStr = _this.createPopup();\r\n // 將要append 到容器內的 Dom 物件先存放\r\n _this.$targetObj = $(createHtmlStr);\r\n $(_this.appendDiv).append(_this.$targetObj);\r\n }else{\r\n var createHtmlStr = _this.createPopup();\r\n // 將要append 到容器內的 Dom 物件先存放\r\n _this.$targetObj = $(createHtmlStr);\r\n $('body').append(_this.$targetObj);\r\n }\r\n }\r\n elem = _this.$targetObj;\r\n select = elem.find('#if-disabled');\r\n detail = elem.find('.detail');\r\n adult = detail.find('.adult');\r\n adultBox = detail.eq(0).find('.test1');\r\n childBox = detail.eq(0).find('.test3');\r\n closeBtn = elem.find('.close');\r\n if(select){\r\n initRoomNumSelect(select,_this);\r\n }\r\n // tab 模式在註冊tab 事件\r\n if(_this.opt.mode === 'tab'){\r\n _this.tabBtnEvents();\r\n }\r\n if(adultBox || childBox){\r\n initPeopleNum(adultBox,childBox,_this);\r\n }\r\n }else{\r\n elem.removeClass('d-no');\r\n }\r\n if(!device || _this.isPosition){\r\n width = elem.width();\r\n if(width + left > _this.winWidth){\r\n left -= (width - $eleWidth);\r\n elem.css({'position': 'absolute','top': top, 'left': left, 'z-index': 999});\r\n }else{\r\n elem.css({'position': 'absolute','top': top, 'left': left, 'z-index': 999});\r\n }\r\n }\r\n\r\n _this.stopEvents(elem);\r\n\r\n callback(_this,closeBtn);\r\n });\r\n };\r\n\r\n Module.prototype.divClickEvent = function(){\r\n var _this = this;\r\n $(this.inputParent).on('click',function(){\r\n $(_this.elem).trigger('mousedown')\r\n });\r\n };\r\n\r\n Module.prototype.initRoomNumSelect = function(elem,self){\r\n self.callback.whenInitRoom(elem,self);\r\n };\r\n\r\n // 當選擇選項時執行的function,不支援mobile版預設select時\r\n // $module.optionsMouseDown($this,$this.val()); //点击options时创建detail\r\n // 增加大人小孩房數 \r\n // 可以寫在tab btn click 時,call optionsMouseDown( click的Btn物件, 要build的房間數) \r\n Module.prototype.optionsMouseDown = function(self,num){\r\n var str = '';\r\n var elem = this.$targetObj;\r\n var detail = elem.find('.detail');\r\n var len = detail.length;\r\n var len2 = 0;\r\n var adult = null;\r\n var child = null;\r\n if(num - len > 0){\r\n for(var i = 1; i <= num - len ;i++){\r\n str += this.createDetail(len + i);\r\n }\r\n }else if(num - len < 0){\r\n for(var j = 1; j <= Math.abs(num - len) ;j++){\r\n detail.eq(len - j).remove();\r\n }\r\n }\r\n self.parents('.content').append(str);\r\n detail = elem.find('.detail');\r\n len2 = detail.length;\r\n if(num - len > 0){\r\n for(var m = 1; m <= Math.abs(len2 - len); m ++){\r\n var adultBox = detail.eq(len2 - m).find('.test1');\r\n var childBox = detail.eq(len2 - m).find('.test3');\r\n // 執行callback whenInitPeopleNum\r\n this.initPeopleNum(adultBox,childBox,this);\r\n }\r\n }\r\n // 更新 該input 上組成文字\r\n this.elem.val(this.updateValue(0,this.$targetObj,self));\r\n };\r\n\r\n Module.prototype.initPeopleNum = function(adult,child,self){\r\n self.callback.whenInitPeopleNum(adult,child,self);\r\n };\r\n\r\n Module.prototype.minusChild = function(self){\r\n var ageBox = self.parents('.common').find('.age');\r\n var selectBox = $(ageBox).find('.select_box');\r\n var len = $(selectBox).length;\r\n if(len >= 0){\r\n len --;\r\n selectBox.eq(len).remove();\r\n this.elem.val(this.updateValue(1, this.$targetObj,null));\r\n }\r\n };\r\n\r\n // 增加小孩select\r\n Module.prototype.addChild = function(self){\r\n var ageBox = self.parents('.common').find('.age');\r\n var len = ageBox.find('.select_box').length;\r\n var selectBox = null;\r\n if(len + 1 > this.childMax){\r\n return\r\n }\r\n var $select = $(this.createChildAge())\r\n $(ageBox).append($select);\r\n selectBox = $(ageBox).find('.select_box');\r\n this.initChildAge(selectBox, $select);\r\n this.elem.val(this.updateValue(1, this.$targetObj,null));\r\n };\r\n\r\n Module.prototype.initChildAge = function(elem, $elem){\r\n this.callback.whenInitChildAge(elem, $elem);\r\n };\r\n\r\n // 取得目前總房數總人數 2018/03/16\r\n Module.prototype.getAllRoomPeopleCount = function(){\r\n var _this = this;\r\n if(_this.opt.mode === 'tab'){\r\n // 抓取目前房間數量\r\n var roomCount = this.$targetObj.find('.tab-btn.active').data('room-count');\r\n var obj = {\r\n room : roomCount,\r\n people: 0\r\n }\r\n //input.amount\r\n // this.obj === .st_lnht\r\n var peopleCount = 0; // 預設總人數\r\n this.$targetObj.find('input.amount') \r\n .each(function(index,ele){\r\n // console.log('人數',$(ele).val())\r\n peopleCount += parseInt($(ele).val() );\r\n })\r\n obj.people = peopleCount;\r\n return obj;\r\n }\r\n \r\n }\r\n\r\n // 取得房間人數與大人小孩數(含歲數) \r\n Module.prototype.getRoomDetailInfos = function(){\r\n var self = this;\r\n var totalObj = {\r\n roomCount: 0,\r\n roomPeopleCount : []\r\n /*\r\n {\r\n adult: 0,\r\n childrenNeedBed: [1,5,12]...,\r\n childrenNotNeedBed: [1,5,12]...\r\n }\r\n\r\n */\r\n };\r\n // 房數需區別 tab 模式 已另外方法計算去抓tab上的值\r\n if(self.opt.mode === 'tab'){\r\n\r\n totalObj.roomCount = self.$targetObj.find('.tab-btn.active').data('room-count');\r\n\r\n }\r\n else{\r\n // 預設select模式計算房數,直接去抓select上的值\r\n \r\n // select.st_lnls \r\n totalObj.roomCount = self.$targetObj.find('select.st_lnls').val();\r\n }\r\n\r\n self.$targetObj.find('.detail')\r\n .each(function(index, el) {\r\n\r\n console.log('detail',index)\r\n var peopleObj = {\r\n adult: 0,\r\n childrenNeedBed: [],\r\n childrenNotNeedBed: []\r\n };\r\n // 存adult\r\n peopleObj.adult = $(el).find('.adult')\r\n .find('input.amount')\r\n .val();\r\n // 存小孩占床不佔床\r\n var $childNeedBedObj = $($(el).find('.child').children('.common')[0]);\r\n var $childNotNeedBedObj = $($(el).find('.child').children('.common')[1]);\r\n \r\n $childNeedBedObj.find('.select_box')\r\n .each(function(idx,elem){\r\n var childAge = $(elem).find('select.st_lnls').val();\r\n peopleObj.childrenNeedBed.push( childAge );\r\n })\r\n\r\n // 不佔床\r\n \r\n $childNotNeedBedObj.find('.select_box')\r\n .each(function(idx,elem){\r\n var childAge = $(elem).find('select.st_lnls').val();\r\n peopleObj.childrenNotNeedBed.push( childAge );\r\n })\r\n\r\n\r\n totalObj.roomPeopleCount.push(peopleObj);\r\n \r\n });\r\n\r\n\r\n return totalObj;\r\n }\r\n\r\n\r\n // 更新input中的文字\r\n Module.prototype.updateValue = function(key,elem,obj){\r\n var self = this;\r\n var str = '';\r\n var roomNum = '';\r\n var detail = elem.find('.detail');\r\n var adult = detail.find('.adult');\r\n var adultLen = adult.length;\r\n var adultNum = 0;\r\n var common = detail.find('.child').find('.common');\r\n var commonLen = $(common).length;\r\n var commonNum = 0;\r\n var roomPeopArry = [];\r\n if(key){\r\n roomNum = (function(){\r\n var text = '';\r\n // text = $(elem).find('.count').find('.st-selected').text();\r\n if(self.opt.mode === 'tab'){\r\n text = $(elem).find('.count').find('.tab-btn.active').text();\r\n }\r\n if(self.opt.mode==='select'){\r\n text = $(elem).find('.count').find('.st-selected').text();\r\n }\r\n return text;\r\n })();\r\n }else{\r\n if(self.opt.mode === 'tab'){\r\n roomNum = '共' + self.activeRoomCount + '間';\r\n }\r\n else{\r\n roomNum = '共' + $(obj).val() + '間';\r\n }\r\n \r\n }\r\n for(var i = 0; i < adultLen; i++){\r\n adultNum += Number($(adult).eq(i).find('#test1').val());\r\n }\r\n for(var j = 0; j < commonLen; j++){\r\n commonNum += Number(common.eq(j).find('#test3').val());\r\n }\r\n if(this.newpackage){\r\n \tfor(let s = 0 ; s < adultLen ; s++){\r\n \t\tlet kidNum = 0;\r\n \t\tdetail.eq(s).find('.kid').each((index,ele)=>{\r\n\r\n \t\t\tkidNum += Number( $(ele).val() );\r\n \t\t})\r\n\t\t\t\tkidNum = Number( kidNum );\r\n \t\troomPeopArry[s] = Number($(adult).eq(s).find('#test1').val()) + kidNum ;\r\n \t}\r\n \tfor(let n = 0 ; n < roomPeopArry.length ; n++){\r\n \t\tstr = roomNum + roomPeopArry;\r\n \t}\r\n \tstr=str.replace(/,/g, \"、\")+'人'\r\n \tstr = str.replace(/(間)/,'$1,');\r\n }else{\r\n \tstr += roomNum + ',' + adultNum + '位大人、' + commonNum + '位小孩';\r\n }\r\n this.total = str;\r\n return str;\r\n };\r\n\r\n // create 小孩select數 UI\r\n Module.prototype.createChildAge = function(){\r\n return '