{"version":3,"sources":["webpack:///webpack/bootstrap d6ae805590de9da9a3e4?d8dc*","webpack:///./css/css.scss?d114*","webpack:///./magaele/ic-ln/css.scss?1694*","webpack:///./magaele/clp_gpby/css.scss?1e4d*","webpack:///./magaele/cy-ln/css.scss?bf40*","webpack:///./magaele/fcl_lnls/css.scss?6c76*","webpack:///./magaele/ps_lnls/css.scss?1660*","webpack:///./magaele/cy-ln/module.js?0ac4*","webpack:///./magaele/clp_gplt/css.scss?5922*","webpack:///./magaele/st_lnls/css.scss?177d*","webpack:///./magaele/clp_gpby/module.js?fc52*","webpack:///./magaele/st_lnls/module.js?72a5*","webpack:///./magaele/bt_gptr/css.scss?b1cd*","webpack:///./magaele/clp_gplt/module.js?a462","webpack:///./magaele/mdl_lnls/css.scss?5db9*","webpack:///./magaele/ntb_gpbt/css.scss?a089","webpack:///./magaele/tp_gplt/css.scss","webpack:///./magaele/mdl_lnls/module.js?554c*","webpack:///./magaele/ntb_gpbt/module.js?c73c","webpack:///./magaele/bt_gplt/css.scss?4afb","webpack:///./magaele/nvb_gptb/css.scss?60a4","webpack:///./magaele/pp_ln/css.scss?d8fb","webpack:///./magaele/nvb_gptb/module.js?1aca","webpack:///./magaele/pp_ln/module.js?909a","webpack:///./magaele/cd_gpcb/css.scss","webpack:///./magaele/tb_gplx/css.scss","webpack:///./magaele/th_gplt/css.scss?106d","webpack:///./entry/products_script.entry.js","webpack:///./entry/products_style.entry.js","webpack:///./magaele/bt_gppp/css.scss","webpack:///./magaele/bt_slbx/css.scss","webpack:///./magaele/cd_gpdy/css.scss","webpack:///./magaele/cd_gpfl/css.scss","webpack:///./magaele/cy_lsgp/css.scss","webpack:///./magaele/lb_gplt/css.scss","webpack:///./magaele/tp_gpls/css.scss","webpack:///./magaele/cy_lsgp/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","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","first","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","whenClick","initial","onClickli","onClickNext","onClickPrev","btnSwitcher","offsetTabPosition","disableContent","enbaleContent","setTabsLable","returnIndexLi","compareDom","getTabWidthPercent","maxLindex","_this","returnItem","returnContent","diasbleTabs","enableTab","isFirstLast","returnVal","$nextTab","$prevTab","method","elem","df","createDocumentFragment","flag","anchors","mobileShow","dropOffset","time","haveSubmitBtn","haveSearchBtn","listContinerClass","whenFixed","whenUnFixed","whenClickSubmit","placeName","whenClickSearch","createEle","PCsmallHide","listContainerClass","div","$a","li","$li","moveto","ul","j","last","str","bindClick","lis","scroll","scrolltop","item","updateOpt","newOpts","updatePart","leftAnchors","rightAnchors","pop","concat","options2","options3","args","Array","slice","options1","factory","pluginName","pluginClass","pluginType","defaults","placement","container","runStopPropagation","async","before","success","error","cache","multi","closeable","padding","url","animation","template","dismissible","onShow","onHide","abortXHR","autoHide","offsetTop","offsetLeft","iframeOptions","frameborder","allowtransparency","scrolling","onload","hideEmpty","rtlClass","_srcElements","_globalIdSeed","_isBodyEventHandled","_offsetOut","$document","toNumber","numeric","fallback","Number","getPopFromElement","hideAllPop","pointerEventToXY","out","x","y","touch","originalEvent","touches","changedTouches","pageX","pageY","WebuiPopover","_defaults","_name","_targetclick","getTrigger","mouseenterHandler","mouseleaveHandler","_poped","_inited","_opened","_idSeed","destroy","splice","force","xhr","abort","getHideAnimation","getCache","getHideDelay","resetAutoHide","getAutoHide","autoHideHandler","clearTimeout","getTarget","hideAll","_customTargetClass","setTitle","getTitle","isAsync","setContent","getContent","setContentASync","canEmptyHide","displayContent","bindBodyEvents","elementPos","getElementPosition","$targetContent","getContentElement","targetWidth","targetHeight","offsetHeight","trim","optWidth","optHeight","detach","getAnimation","getPlacement","initTargetEvents","postionInfo","getTargetPositin","iframeWidth","iframeHeight","$arrow","arrowOffset","isTargetLoaded","getTriggerElement","getTitleElement","$contentElement","getUrl","getOffsetTop","getOffsetLeft","dataAttr","toLowerCase","getDelayShow","ani","$titleEl","hasContent","getIframe","$ct","ajax","beforeSend","complete","escapeHandler","bodyClickHandler","_timeout","_enterTimeout","canHide","popX1","popY1","popX2","popY2","pt","inPop","pos","innerHeight","scrollLeft","isH","isV","detect","elRect","cssPos","containerRect","elementW","elementH","arrowSize","fixedW","fixedH","refix","pageH","pageW","validLeft","validRight","validTop","validBottom","noInit","results","$result","webuiPopover","popovers","_hideAll","_create","selector","pp_ln","_isCreated","created","_show","_hide","create","isCreated","currD","newDate","dataArr","dataArrSortbyDate","dataToRender","selectTD","guaranteed","dataKeySetting","availableVacancy","totalVacnacy","price","monthNumber","showMonthControl","minMonthDate","maxMonthDate","initYearMonth","initData","selectedDate","$prevBtn","$nextBtn","onClickDate","$thisDate","inputData","renderData","showMonthController","arg","nextD","curr","setMonth","getMonth","calendar","prevDate","nextDate","frameTemp","prevTable","prevTbody","nextTable","nextTbody","createCalendar","onClickPrevEvent","onClickNextEvent","onClickTd","selectTd","haveGroups","tip","haveSeveralGroups","dataTemp","argLen","dataArrLen","targetIndex","lowestPrice","currPrice","match","join","goMonth","prevMonth","nextMonth","prevnext","yearNumberBefore","monthNumberBefore","monthNumberAfter","monthStringAfter","monthLenAfter","monthAfter","isNext","c","isTure","monthDistanceNum","d","num","yearNumberAfter","yearDistance","monthDistance","$contorlButton","setMonthDate","minD","transDateFormat","maxD","transform","currDate","tbody","currMonth","currMonthDays","getDate","lastMonth","lastMonthDays","currMonthFirstDay","allDays","count","days","lastTrDays","trCount","floor","str2","maxNum","everyDay","math","i1","daysTemp","i2","i3","i4","dayNum","i5","i6","i7","i8","i9","prevData","nextData","week","isDoubleTemp","isSingleTemp","statusLabel","lightboxTarget","words","result"],"mappings":"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","file":"./SubSiteBundles/ShipApply/products.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 = 104);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap d6ae805590de9da9a3e4","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./css/css.scss\n// module id = 0\n// module chunks = 0 1 2 3 4 5 6 7 8 9 10 11","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/ic-ln/css.scss\n// module id = 1\n// module chunks = 0 1 2 3 4 5 6 8 9 10 11","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/clp_gpby/css.scss\n// module id = 2\n// module chunks = 0 1 2 3 4 6 9 11","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/cy-ln/css.scss\n// module id = 3\n// module chunks = 0 1 2 3 4 5 6 9","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/fcl_lnls/css.scss\n// module id = 4\n// module chunks = 0 1 2 3 4 5 7 8","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/ps_lnls/css.scss\n// module id = 5\n// module chunks = 0 1 2 3 4 5 6 7","/**\r\n * \r\n * @fileOverview jquery plugin cy-ln\r\n * \r\n * \r\n * @example\r\n//html\r\n\r\n\r\n//javascript\r\n$('#test').cy_ln({\r\n\tmonthCount: 1,\r\n\tminYear: 10,\r\n\tmaxYear: 10,\r\n\tminDate: moment().subtract(100, 'years'),\r\n\tmaxDate: moment(),\r\n\tweekdayName: ['日','一','二','三','四','五','六'],\r\n\tchangeMonthYear: true\r\n});\r\n\r\n * @version 1.0.0\r\n * @author jivecheng\r\n * @see external:\"jQuery.fn\".cy_ln\r\n * @requires jquery\r\n */\r\n\r\n/**\r\n * See the jQuery Library (http://jquery.com/) for full details. This just\r\n * documents the function and classes that are added to jQuery by this plug-in.\r\n * @external jQuery\r\n * @see {@link http://api.jquery.com/jQuery/}\r\n * \r\n */\r\n\r\n/**\r\n * The jQuery plugin namespace.\r\n * @external \"jQuery.fn\"\r\n * @see {@link http://learn.jquery.com/plugins/|jQuery Plugins}\r\n * @type {object}\r\n */\r\n\r\n/**\r\n * The moment plugin namespace.\r\n * @external moment\r\n * @see {@link http://momentjs.com/docs/|Moment.js Documentation}\r\n * @type {object}\r\n */\r\n\r\n/**\r\n * @external HTMLElement\r\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement}\r\n */\r\n(function($, moment) {\r\n\t'use strict';\r\n\tvar ModuleName = 'cy_ln';\r\n\r\n\tvar Module = function (element, options) {\r\n\t\tthis.input = element;\r\n\t\tthis.$input = $(element);\r\n\t\tthis.options = options;\r\n\t\tthis.timer = null;\r\n\t};\r\n\t/**\r\n * [DEFAULTS description]\r\n * @typedef PluginOption\r\n * @type {object}\r\n * @property {string} [hideArea='body'] hideArea\r\n * @property {string} [prev=''] prev\r\n * @property {string} [next=''] next\r\n * @property {boolean} [changeMonthYear=false] changeMonthYear\r\n * @property {number} [minYear=10] minYear\r\n * @property {number} [maxYear=10] maxYear\r\n * @property {external:moment} [minDate=null] minDate\r\n * @property {external:moment} [maxDate=null] maxDate\r\n * @property {number} [monthCount=1] monthCount\r\n * @property {HolidayCallback|array} [holiday=null] holiday\r\n * @property {DisabledCallback|array} [disabled=null] disabled\r\n * @property {string|array} [range=null] range\r\n * @property {boolean} [arrow=false] arrow\r\n * @property {boolean} [toggleAlert=true] toggleAlert\r\n * @property {DateFormat} [dateFormat='YYYY/MM/DD'] dateFormat\r\n * @property {Regex} [dataIsNumberRegex=/^\\d[\\d|\\/]+\\d$/] dataIsNumberRegex\r\n * @property {string} [moduleCloseEvent='cy_ln.close'] moduleCloseEvent\r\n * @property {external:moment} [weekdayName=moment.weekdaysMin()] weekdayName\r\n * @property {ClassConfig} [cssClass=ClassConfig] cssClass \r\n * @property {AlertStringConfig} [alertString=AlertStringConfig] alertString \r\n * \r\n */\r\n\r\n\tModule.DEFAULTS = {\r\n\t\thideArea: 'body',\r\n\t\tprev: '', // change prev button. html is allowed.\r\n\t\tnext: '', // change next button. html is allowed.\r\n\t\tprevDisabled:'',\r\n\t\tnextDisabled:'',\r\n\t\tchangeMonthYear: false, // add dropdown list for month year\r\n\t\tminYear: 10, // minimum year of calendar. string or integer.\r\n\t\tmaxYear: 10, // minimum year of calendar. string or integer.\r\n\t\tminDate: null, // minimum date of calendar. date string or integer.\r\n\t\tmaxDate: null, // maximum date of calendar. date string or integer.\r\n\t\tmonthCount: 1, // displaying month count\r\n\t\tsingle:false,\t\t\t\t\t\t//直接打開選項\r\n\t\tshowWeekName:false,\t\t\t\t\t//顯示星期\r\n\t\t/**\r\n * callback HolidayCallback function description\r\n * @callback HolidayCallback\r\n * \r\n * @param {external:moment} moment object\r\n * @return {boolean} true|false\r\n */\r\n\t\tholiday: null, // array ['YYYY/MM/DD'] or function(moment) { return false }\r\n\t\t/**\r\n * callback DisabledCallback function description\r\n * @callback DisabledCallback\r\n * \r\n * @param {external:moment} moment object\r\n * @return {boolean} true|false\r\n */\r\n\t\tdisabled: null, // function(moment) { return true; } or [function, function, ...]\r\n\t\trange: null, // '#text' or ['#text2', '#text3', 'text4']\r\n\t\tarrow: false,\t\t\t\t\t\t// true or false, add an arrow at top of the module\r\n\t\tbtnDisabled:false,\r\n\t\trenderValidMonth: false,\t//only render months with abled months\r\n\t\ttoggleAlert: true,\r\n\t\tdateFormat: 'YYYY/MM/DD',\r\n\t\tdataIsNumberRegex: /^\\d[\\d|\\/]+\\d$/,\r\n\t\tmoduleCloseEvent: 'cy_ln.close',\r\n\t\tweekdayName: moment.weekdaysMin(), // array of weekdayName\r\n\t\t/**\r\n * PluginOption.ClassConfig description\r\n * \r\n * @typedef ClassConfig\r\n * @type {object}\r\n * @example\r\ncssClass: {\r\n \tmain: 'cy-ln',\r\n\twrapper: 'wrapper',\r\n\tmonth: 'month',\r\n\tprev: 'prev',\r\n\tyearMonth: 'yearMonth',\r\n\tnext: 'next',\r\n\tweekdayName: 'weekdayName',\r\n\tdate: 'date',\r\n\tweekday: [ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'],\r\n\tholiday: 'holiday',\r\n\ttoday: 'today',\r\n\thover: 'hover',\r\n\tdisabled: 'disabled',\r\n\tselected: 'selected',\r\n\tstart: 'start',\r\n\tarrow: 'arrow',\r\n\tbetween: 'between',\r\n\tpoint: 'point',\r\n\tend: 'end'\r\n}\r\n * @property {string} [main='cy-ln'] main\r\n * @property {string} [wrapper='wrapper'] wrapper\r\n * @property {string} [month='month'] month\r\n * @property {string} [prev='prev'] prev\r\n * @property {string} [yearMonth='yearMonth'] yearMonth\r\n * @property {string} [next='next'] next\r\n * @property {string} [weekdayName='weekdayName'] weekdayName\r\n * @property {string} [date='date'] date\r\n * @property {array} [weekday=[ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']] weekday\r\n * @property {string} [holiday=holiday] holiday\r\n * @property {string} [today=today] today\r\n * @property {string} [hover=hover] hover\r\n * @property {string} [disabled=disabled] disabled\r\n * @property {string} [selected=selected] selected\r\n * @property {string} [start=start] start\r\n * @property {string} [arrow=arrow] arrow\r\n * @property {string} [between=between] between\r\n * @property {string} [point=point] point\r\n * @property {string} [end=end] end\r\n * @property {string} [inputActive=active] inputActive\r\n * @property {number} [top=0] top\r\n */\r\n\t\tcssClass: { // You can change css class\r\n\t\t\tmain: 'cy-ln',\r\n\t\t\textra: '',\r\n\t\t\twrapper: 'wrapper',\r\n\t\t\tmonth: 'month',\r\n\t\t\tprev: 'prev',\r\n\t\t\tyearMonth: 'yearMonth',\r\n\t\t\tnext: 'next',\r\n\t\t\tweekdayName: 'weekdayName',\r\n\t\t\tdate: 'date',\r\n\t\t\tweekday: [ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'],\r\n\t\t\tholiday: 'holiday',\r\n\t\t\ttoday: 'today',\r\n\t\t\thover: 'hover',\r\n\t\t\tdisabled: 'disabled',\r\n\t\t\tselected: 'selected',\r\n\t\t\tstart: 'start',\r\n\t\t\tarrow: 'arrow',\r\n\t\t\tbetween: 'between',\r\n\t\t\tpoint: 'point',\r\n\t\t\tend: 'end',\r\n\t\t\tinputActive: 'active',\r\n\t\t\ttop: 0,\r\n\t\t\tleft:0\r\n\t\t},\r\n\t\t/**\r\n * PluginOption.AlertStringConfig description\r\n * \r\n * @typedef AlertStringConfig\r\n * @type {object}\r\n * @example\r\nalertString: {\r\n\tinvalid: '日期格式錯誤!',\r\n\tbeforeMin: '日期必須大於{#Date}!',\r\n\tafterMax: '日期必須小於{#Date}!',\r\n\tfromMoreTo: '日期迄日不可小於起日'\r\n}\r\n * @property {string} [invalid='日期格式錯誤!'] invalid\r\n * @property {string} [beforeMin='日期必須大於{#Date}!'] beforeMin\r\n * @property {string} [afterMax='日期必須小於{#Date}!'] afterMax\r\n * @property {string} [fromMoreTo='日期迄日不可小於起日'] fromMoreTo\r\n */\r\n\t\talertString: {\r\n\t\t\tinvalid: '日期格式錯誤!',\r\n\t\t\tbeforeMin: '日期必須大於{#Date}!',\r\n\t\t\tafterMax: '日期必須小於{#Date}!',\r\n\t\t\tfromMoreTo: '日期迄日不可小於起日'\r\n\t\t},\r\n\t\talignRight:false\r\n\t};\r\n\r\n\tModule.prototype.getOptions = function ( updateOption ) {\r\n\t\treturn this.options;\r\n\t};\r\n\r\n\tModule.prototype.updateOption = function ( updateOption ) {\r\n\t\t$.extend(this.options, updateOption);\r\n\t};\r\n\r\n\tModule.prototype.getMomentMinDate = function () {\r\n\t\treturn this.options.getMomentMinDate().add(1, 'days').format('YYYY/MM/DD');\r\n\t};\r\n\r\n\tModule.prototype.collectionIndexOf = function ( collection, value, predicate ) {\r\n\t\tfor (var i = 0; i < collection.length; i++) {\r\n\t\t\tif(predicate(collection[i], value))\r\n\t\t\t\treturn i;\r\n\t\t}\r\n\t\treturn -1;\r\n\t};\r\n\r\n\tModule.prototype.isBetween = function ( target, moment1, moment2 ) {\r\n\t\tvar from = moment.min(moment1, moment2);\r\n\t\tvar to = moment.max(moment1, moment2);\r\n\t\treturn (target.isAfter(from) && target.isBefore(to));\r\n\t};\r\n\r\n\tModule.prototype.equalsDatePart = function ( moment1, moment2 ) {\r\n\t\treturn moment1.format(\"YYYY/MM/DD\") == moment2.format(\"YYYY/MM/DD\");\r\n\t};\r\n\r\n\tModule.prototype.comparer = function ( moment1, moment2 ) {\r\n\t\tif(moment1.isBefore(moment2)) return -1;\r\n\t\tif(moment1.isAfter(moment2)) return 1;\r\n\t\treturn 0;\r\n\t};\r\n\r\n\tModule.prototype.tag = function ( name ) {\r\n\t\treturn $('<' + name + '>')\r\n\t};\r\n\r\n\tModule.prototype.checkDateRepair = function ( $input ) {\r\n\t\t$input.val( this.dateAutoRepair( $input.val(), false ) );\r\n\t};\r\n\r\n\tModule.prototype.dateAutoRepair = function ( val, runAlert ,showWeek) {\r\n\t\tvar date = '';\r\n\t\tvar today = moment();\r\n\t\tvar todayString = moment().format('YYYYMMDDd');\r\n\t\tvar valString = val.replace(/\\//g, '');\r\n\t\tvar valStringTwoChar = valString.substring(0, 2);\r\n\t\tvar minDate = this.options.minDate;\r\n\t\tvar maxDate = this.options.maxDate;\r\n\t\tvar minDateString = (!!minDate && minDate instanceof moment) ? minDate.format('YYYYMMDD') : null;\r\n\t\tvar maxDateString = (!!maxDate && maxDate instanceof moment) ? maxDate.format('YYYYMMDD') : null;\r\n\t\tvar nowYear = (new Date).getFullYear().toString();\r\n\t\tvar replaceString = '';\r\n\t\tvar todayWeek = new Date(val).getDay();\r\n\t\t//console.log(minDateString, maxDateString);\r\n\t\tif ( val.length > 0 ) {\r\n\t\t\t// console.log(this.dateValueStatus(val));\r\n\t\t\tswitch( this.dateValueStatus(val) ) {\r\n\t\t\t\tcase 'validAll':\r\n\t\t\t\t\tdate = moment(valString).format(this.options.dateFormat);\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'validMonthDay':\r\n\t\t\t\t\tdate = moment( nowYear + valString ).format(this.options.dateFormat);\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'validMonth':\r\n\t\t\t\t\tdate = moment( nowYear + valStringTwoChar + '01' ).format(this.options.dateFormat);\r\n\t\t\t\t\t// console.log(date, moment(minDateString).isBefore(date.replace(/\\//g, '')));\r\n\r\n\t\t\t\t\tif (runAlert) {\r\n\t\t\t\t\t\talert(this.options.alertString.invalid);\r\n\t\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'sameMin':\r\n\t\t\t\t\tdate = moment(minDateString).add(1, 'd').format(this.options.dateFormat);\r\n\t\t\t\t\tif (runAlert) {\r\n\t\t\t\t\t\tif ( /\\{#Date\\}/.test( this.options.alertString.beforeMin ) ) {\r\n\t\t\t\t\t\t\treplaceString = moment(minDateString).format(this.options.dateFormat);\r\n\t\t\t\t\t\t\talert( this.options.alertString.beforeMin.replace(/\\{#Date\\}/g, replaceString) );\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\talert(this.options.alertString.beforeMin);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'beforeMin':\r\n\t\t\t\t\tdate = moment(minDateString).add(1, 'd').format(this.options.dateFormat);\r\n\t\t\t\t\tif (runAlert) {\r\n\t\t\t\t\t\tif ( /\\{#Date\\}/.test( this.options.alertString.beforeMin ) ) {\r\n\t\t\t\t\t\t\treplaceString = moment(minDateString).format(this.options.dateFormat);\r\n\t\t\t\t\t\t\talert( this.options.alertString.beforeMin.replace(/\\{#Date\\}/g, replaceString) );\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\talert(this.options.alertString.beforeMin);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'sameMax':\r\n\t\t\t\t\tdate = moment(maxDateString).format(this.options.dateFormat);\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'afterMax':\r\n\t\t\t\t\tdate = moment(maxDateString).format(this.options.dateFormat);\r\n\t\t\t\t\tif (runAlert) {\r\n\t\t\t\t\t\tif ( /\\{#Date\\}/.test( this.options.alertString.afterMax ) ) {\r\n\t\t\t\t\t\t\treplaceString = moment(maxDateString).add(1, 'd').format(this.options.dateFormat);\r\n\t\t\t\t\t\t\talert( this.options.alertString.afterMax.replace(/\\{#Date\\}/g, replaceString) );\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\talert(this.options.alertString.afterMax);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t\tcase 'invalid':\r\n\t\t\t\t\tif ( minDateString !== null && moment( todayString ).isSameOrBefore( minDateString ) ) {\r\n\t\t\t\t\t\tdate = moment(minDateString).add(1, 'd').format(this.options.dateFormat);\r\n\t\t\t\t\t} else if ( maxDateString !== null && moment( todayString ).isAfter( maxDateString ) ) {\r\n\t\t\t\t\t\tdate = moment(maxDateString).format(this.options.dateFormat);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdate = moment().format(this.options.dateFormat);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//console.log(date);\r\n\t\t\t\t\tif (runAlert) {\r\n\t\t\t\t\t\talert(this.options.alertString.invalid);\r\n\t\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\tdate = moment().format(this.options.dateFormat);\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\t\tif(this.options.showWeekName){\r\n\t\t\tdate = date + '(' + this.options.weekdayName[todayWeek] + ')';\r\n\t\t}\r\n\t\treturn date;\r\n\t};\r\n\r\n\tModule.prototype.getPrevInputDom = function ( rangeIndex ) {\r\n\t\tvar $prevDom;\r\n\t\tif ( rangeIndex === 0 ) {\r\n\t\t\t$prevDom = this.$input;\r\n\t\t} else {\r\n\t\t\t$prevDom = $(this.options.range[rangeIndex - 1]);\r\n\t\t}\r\n\t\treturn $prevDom;\r\n\t};\r\n\r\n\tModule.prototype.getNextInputDom = function ( rangeIndex ) {\r\n\t\tvar $prevDom;\r\n\t\tif ( !rangeIndex && this.options.range.length > 0 ) {\r\n\t\t\t$prevDom = $(this.options.range[0]);\r\n\t\t} else {\r\n\t\t\t$prevDom = $(this.options.range[rangeIndex + 1]);\r\n\t\t}\r\n\t\treturn $prevDom;\r\n\t};\r\n\r\n\tModule.prototype.getAfterInputDom = function ( rangeIndex ) {\r\n\t\tvar $prevDom = function(index) {\r\n\t\t\tvar $dom = $(this.options.range[index]);\r\n\t\t\tfor (var i = index+1;i < this.options.range.length;i++) {\r\n\t\t\t\t$dom.add( this.options.range[i] );\r\n\t\t\t}\r\n\t\t\treturn $dom;\r\n\t\t}.call(this, !!rangeIndex ? rangeIndex : 0);\r\n\t\treturn $prevDom;\r\n\t};\r\n\r\n\tModule.prototype.getAllInputDom = function ( rangeIndex ) {\r\n\t\tvar $dom = $(this.$input);\r\n\t\tif ( !!this.options.range && typeof this.options.range === 'object' ) {\r\n\t\t\tfor (var i = rangeIndex || 0;i < this.options.range.length;i++) {\r\n\t\t\t\t$dom = $dom.add( this.options.range[i] );\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn $dom;\r\n\t};\r\n\r\n\tModule.prototype.dateIsAllNumber = function ( val ) {\r\n\t\treturn this.options.dataIsNumberRegex.test(val);\r\n\t};\r\n\r\n\tModule.prototype.dateValueStatus = function ( val ) {\r\n\t\tvar date = null;\r\n\t\tvar dateString = val.replace(/\\//g, '');\r\n\t\tvar dateStringMonthChar = dateString.substring(0, 2);\r\n\t\tvar dateStringMonthCharToInt = parseInt(dateStringMonthChar);\r\n\t\tvar dateStringDayChar = dateString.substring(2, 4) || null;\r\n\t\tvar dateStringDayCharToInt = parseInt(dateStringDayChar);\r\n\t\tvar minDate = this.options.minDate;\r\n\t\tvar maxDate = this.options.maxDate;\r\n\t\tvar minDateString = (!!minDate && minDate instanceof moment) ? minDate.format('YYYYMMDD') : null;\r\n\t\tvar maxDateString = (!!maxDate && maxDate instanceof moment) ? maxDate.format('YYYYMMDD') : null;\r\n\t\tvar nowYear = (new Date).getFullYear().toString();\r\n\t\tvar valueStatus = '';\r\n\t\tif ( dateString.length > 0 ) {\r\n\t\t\tif ( this.dateIsAllNumber( dateString ) ) {\r\n\t\t\t\tif ( dateString.length == 8 && moment(dateString).isValid() ) {\r\n\t\t\t\t\tvalueStatus = 'validAll';\r\n\t\t\t\t} else if ( dateString.length == 4 && dateStringMonthCharToInt <= 12 ) {\r\n\t\t\t\t\tif ( moment( nowYear + dateString ).isValid() ) {\r\n\t\t\t\t\t\tvalueStatus = 'validMonthDay';\r\n\t\t\t\t\t} else if ( moment( nowYear + dateStringMonthChar + '01' ).isValid() ) {\r\n\t\t\t\t\t\tvalueStatus = 'validMonth';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvalueStatus = 'invalid';\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalueStatus = 'invalid';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tvalueStatus = 'invalid';\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tvalueStatus = 'null';\r\n\t\t}\r\n\t\tif ( valueStatus === 'validAll' ) {\r\n\t\t\tdate = moment(dateString).format('YYYYMMDD');\r\n\t\t} else if ( valueStatus === 'validMonthDay' ) {\r\n\t\t\tdate = moment( nowYear + dateString ).format('YYYYMMDD');\r\n\t\t} else if ( valueStatus === 'validMonth' && moment( nowYear + dateString ).isValid() ) {\r\n\t\t\tdate = moment( nowYear + dateStringMonthChar + '01' ).format('YYYYMMDD');\r\n\t\t\t// console.log( dateString, moment( nowYear + dateString ).isValid() );\r\n\t\t} else {\r\n\t\t\tvalueStatus = 'invalid';\r\n\t\t}\r\n\t\tif ( date !== null && minDateString !== null ) {\r\n\t\t\t// console.log(date, minDateString);\r\n\t\t\tif ( moment( date ).isSame( minDateString ) ) {\r\n\t\t\t\t// console.log(date);\r\n\t\t\t\tvalueStatus = 'sameMin';\r\n\t\t\t} else if ( moment( date ).isBefore( minDateString ) ) {\r\n\t\t\t\t// console.log(date);\r\n\t\t\t\tvalueStatus = 'beforeMin';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ( date !== null && maxDateString !== null ) {\r\n\t\t\tif ( moment( date ).isSame( maxDateString ) ) {\r\n\t\t\t\tvalueStatus = 'sameMax';\r\n\t\t\t} else if ( moment( date ).isAfter( maxDateString ) ) {\r\n\t\t\t\tvalueStatus = 'afterMax';\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn valueStatus;\r\n\t};\r\n\r\n\tModule.prototype.drawCalendar = function ( $input, newOption, selected, display ) {\r\n\t\tvar table = this.tag('table');\r\n\t\tvar tr = this.tag('tr');\r\n\t\tvar self = this;\r\n\t\tvar momentDisplay, momentForPrint;\r\n\t\tvar minDateString = (newOption.getMomentMinDate()) ? newOption.getMomentMinDate().format('YYYYMMDD') : null;\r\n\t\tvar maxDateString = (newOption.getMomentMaxDate()) ? newOption.getMomentMaxDate().format('YYYYMMDD') : null;\r\n\t\tconsole.log()\r\n\t\tif(newOption.single === true ){\r\n\t\t\tselected = $input.attr('data-date');\r\n\t\t}\r\n\t\tif( typeof display === 'string' ) {\r\n\t\t\tmomentDisplay = moment(display.replace(/\\W/g,''));\r\n\t\t\tmomentForPrint = moment(display.replace(/\\W/g,''));\r\n\t\t} else {\r\n\t\t\tmomentDisplay = moment(display);\r\n\t\t\tmomentForPrint = moment(display);\r\n\t\t}\r\n\t\t// var momentForPrint = moment(display).add(-Math.floor((newOption.monthCount - 1) / 2), 'M');\r\n\t\tfor(var i = 0; i < newOption.monthCount; i++){\r\n\t\t\ttr.append(\r\n\t\t\t\tthis.tag('td')\r\n\t\t\t\t\t.append(this.drawMonth($input, newOption, selected, momentForPrint.format(newOption.dateFormat)))\r\n\t\t\t);\r\n\t\t\tmomentForPrint.add(1, 'M');\r\n\t\t}\r\n\t\t\r\n\t\tif(newOption.arrow){\r\n\t\t\ttable.append(this.tag('span').addClass(newOption.cssClass.arrow));\r\n\r\n\t\t\tif(!$input.attr(\"data-range\")){\r\n\t\t\t\ttable.children(\".\"+newOption.cssClass.arrow).css(\"left\",$input.width() / 2 - 3);\t\r\n\t\t\t}else{\r\n\t\t\t\tvar arrowLeft = $(newOption.range).offset().left - $input.offset().left + $(newOption.range).width() / 2 - 6;\r\n\t\t\t\ttable.children(\".\"+newOption.cssClass.arrow).css(\"left\",arrowLeft);\r\n\t\t\t}\t\r\n\t\t}\r\n\r\n\t\t// disable prev, next arrow or not\r\n\t\tconsole.log('drawCalendar => selected :',selected)\r\n\t\tvar firstDay = tr.find('>td:first table tr td[data-date]:first').attr('data-date').replace(/\\W/g,'');\r\n\t\tvar lastDay = tr.find('>td:last table tr td[data-date]:last').attr('data-date').replace(/\\W/g,'');\r\n\t\tvar minDate = moment(minDateString, \"YYYYMMDD\").add(1, \"days\").format(\"YYYYMMDD\");\r\n\t\tif( newOption.btnDisabled == true && parseInt(firstDay)\t<= parseInt(minDate) && parseInt(lastDay) >= parseInt(minDateString) ){\r\n\t\t\ttr.find('>td:first table tr td.' + newOption.cssClass.prev).html(newOption.prevDisabled);\r\n\t\t} else {\r\n\t\t\ttr.find('>td:first table tr td.' + newOption.cssClass.prev).html(newOption.prev).click(function () {\r\n\t\t\t\t$(this).parents('.' + newOption.cssClass.main).empty().append(\r\n\t\t\t\t\tself.drawCalendar($input, newOption, selected, momentDisplay.add(-1, 'M'))\r\n\t\t\t\t);\r\n\t\t\t});\t\r\n\t\t}\r\n\r\n\t\tif( newOption.btnDisabled == true && parseInt(firstDay)\t<= parseInt(maxDateString) && parseInt(lastDay) >= parseInt(maxDateString) ){\r\n\t\t\ttr.find('>td:last table tr td.' + newOption.cssClass.next).html(newOption.nextDisabled);\r\n\t\t} else {\r\n\t\t\ttr.find('>td:last table tr td.' + newOption.cssClass.next).html(newOption.next).click(function () {\r\n\t\t\t\t$(this).parents('.' + newOption.cssClass.main).empty().append(\r\n\t\t\t\t\tself.drawCalendar($input, newOption, selected, momentDisplay.add(1, 'M'))\r\n\t\t\t\t);\r\n\t\t\t});\t\r\n\t\t}\r\n\t\ttable.addClass(newOption.cssClass.wrapper).append(tr);\r\n\t\treturn table;\r\n\t};\r\n\r\n\tModule.prototype.drawMonth = function ( $input, newOption, selected, display ) {\r\n\t\tvar momentSelected = moment(selected.replace(/\\W/g,''));\r\n\t\tvar momentDisplay = moment(display.replace(/\\W/g,''));\r\n\t\tvar i = 0;\r\n\t\tvar self = this;\r\n\t\tvar $table = this.tag('table').addClass(newOption.cssClass.month).attr('data-date', momentDisplay.format(newOption.dateFormat)).append(\r\n\t\t\tthis.tag('tr')\r\n\t\t\t\t.append(this.tag('td').addClass(newOption.cssClass.prev))\r\n\t\t\t\t// .append(this.tag('td').addClass(newOption.cssClass.yearMonth).text(momentDisplay.format('YYYY年M月')))\r\n\t\t\t\t.append(this.tag('td').addClass(newOption.cssClass.yearMonth).append('' + momentDisplay.format('YYYY') + '' + momentDisplay.format('M') + '月'))\r\n\t\t\t\t.append(this.tag('td').addClass(newOption.cssClass.next))\r\n\t\t);\r\n\t\tconsole.log('drawMonth => selected: ',selected)\r\n\t\tconsole.log('drawMonth => momentSelected: ',momentSelected);\r\n\t\tif(newOption.monthCount == 1 && newOption.changeMonthYear){\r\n\t\t\t$table.find('.' + newOption.cssClass.yearMonth).empty();\r\n\t\t\tvar $selectYear = this.tag('select');\r\n\t\t\tvar minYear = typeof newOption.minYear === 'string' ? parseInt(newOption.minYear) : \r\n\t\t\t\t( newOption.minYear > 200 ? newOption.minYear : momentDisplay.year() - newOption.minYear);\r\n\t\t\tvar maxYear = typeof newOption.maxYear === 'string' ? parseInt(newOption.maxYear) : \r\n\t\t\t\t( newOption.maxYear > 200 ? newOption.maxYear : momentDisplay.year() + newOption.maxYear);\r\n\r\n\t\t\t//console.log(newOption)\r\n\t\t\t//noinspection JSDuplicatedDeclaration\r\n\t\t\tfor(i = minYear; i <= maxYear; i++) {\r\n\t\t\t\tif(i == momentDisplay.year()){\r\n\t\t\t\t\t$selectYear.append(this.tag('option').val(i).text(i).attr('selected', 'selected'));\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$selectYear.append(this.tag('option').val(i).text(i));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t$table.find('.' + newOption.cssClass.yearMonth).append($selectYear);\r\n\r\n\t\t\tvar $selectMonth = this.tag('select');\r\n\t\t\t//noinspection JSDuplicatedDeclaration\r\n\t\t\t\r\n\t\t\tvar minDate = newOption.minDate;\r\n\t\t\tvar maxDate = newOption.maxDate;\r\n\t\t\tif (!!newOption.minDate && typeof minDate == \"number\") minDate = moment().add(minDate, \"days\");\r\n\t\t\tif (!!newOption.maxDate && typeof maxDate == \"number\") maxDate = moment().add(maxDate, \"days\");\r\n\t\t\tvar minDateString = minDate.format(\"YYYYMMDD\");\r\n\t\t\tvar maxDateString = maxDate.format(\"YYYYMMDD\");\r\n\t\t\tvar minMonth = 0;\r\n\t\t\tvar maxMonth = 12;\r\n\t\t\tminDate = minDate.clone();\r\n\t\t\tminDate.add(1, \"days\");\r\n\t\t\tmaxDate = maxDate.clone();\r\n\t\t\tmaxDate.add(1, \"days\");\r\n\r\n\t\t\tif (newOption.renderValidMonth == true && (typeof minDate == \"object\" && typeof maxDate == \"object\" )) {\r\n\t\t\t\tif ($selectYear.val() == minDate.year() == maxDate.year()) {\r\n\t\t\t\t\tminMonth = minDate.month();\r\n\t\t\t\t\tmaxMonth = maxDate.month() + 1;\r\n\t\t\t\t}else if($selectYear.val() == minDate.year() && $selectYear.val() < maxDate.year()) {\r\n\t\t\t\t\tminMonth = minDate.month();\r\n\t\t\t\t}else if($selectYear.val() == maxDate.year()) {\r\n\t\t\t\t\tmaxMonth = maxDate.month() + 1;\r\n\t\t\t\t}else {}\r\n\t\t\t}else {}\r\n\r\n\t\t\tfor(i = minMonth; i < maxMonth; i++) {\r\n\t\t\t\tif(i == momentDisplay.month()) {\r\n\t\t\t\t\t$selectMonth.append(this.tag('option').val(i).text(i + 1).attr('selected', 'selected'));\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$selectMonth.append(this.tag('option').val(i).text(i + 1));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$selectYear.change(function() {\r\n\t\t\t\t$(this).parents('.' + newOption.cssClass.main).empty().append(self.drawCalendar($input, newOption, selected, self.dateAutoRepair( momentDisplay.year($(this).val()).format(\"YYYYMMDD\"), newOption.toggleAlert )));\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t\t$selectMonth.change(function () {\r\n\t\t\t\t$(this).parents('.' + newOption.cssClass.main).empty().append(self.drawCalendar($input, newOption, selected, self.dateAutoRepair( momentDisplay.month(parseInt($(this).val())).format(\"YYYYMMDD\"), newOption.toggleAlert )));\r\n\t\t\t});\r\n\t\t\t$table.find('.' + newOption.cssClass.yearMonth).append($selectMonth);\r\n\r\n\t\t}\r\n\t\tvar $trForWeekHeader = this.tag('tr').appendTo($table);\r\n\t\t//noinspection JSDuplicatedDeclaration\r\n\t\tfor(i = 0; i < 7; i++) {\r\n\t\t\t$trForWeekHeader.append(this.tag('th').addClass(newOption.cssClass.weekdayName).addClass(newOption.cssClass.weekday[i]).text(newOption.weekdayName[i]));\r\n\t\t}\r\n\r\n\r\n\t\tvar momentFirstDayOfMonth = moment(momentDisplay).startOf('month');\r\n\t\tvar momentLastDayOfMonth = moment(momentDisplay).endOf('month');\r\n\t\tvar firstDayOfWeek = momentFirstDayOfMonth.day();\r\n\t\tvar lastDay = momentLastDayOfMonth.date();\r\n\r\n\t\tvar $tr = this.tag('tr').appendTo($table);\r\n\t\tvar weekday = 0;\r\n\r\n\t\t//noinspection JSDuplicatedDeclaration\r\n\t\tfor(i = 0; i < firstDayOfWeek; i++) {\r\n\t\t\t$tr.append(this.tag('td').addClass(newOption.cssClass.date));\r\n\t\t\tweekday++;\r\n\t\t}\r\n\t\tvar momentForPrint = moment(momentFirstDayOfMonth);\r\n\t\t//noinspection JSDuplicatedDeclaration\r\n\t\tfor(i = 1; i <= lastDay; i++) {\r\n\t\t\tmomentForPrint.date(i);\r\n\t\t\tvar dataRange = parseInt($input.attr('data-range'));\r\n\t\t\tvar $td = this.tag('td')\r\n\t\t\t.attr('data-date', momentForPrint.format(newOption.dateFormat))\r\n\t\t\t.text(momentForPrint.date())\r\n\t\t\t.addClass(newOption.cssClass.date)\r\n\t\t\t.addClass(moment(new Date()).format(newOption.dateFormat) == momentForPrint.format(newOption.dateFormat) ? newOption.cssClass.today : '')\r\n\t\t\t.addClass(momentSelected.format(newOption.dateFormat) == momentForPrint.format(newOption.dateFormat) ? newOption.cssClass.selected : '')\r\n\t\t\t.addClass(newOption.cssClass.weekday[weekday])\r\n\t\t\t.addClass(newOption.isHoliday(momentForPrint) ? newOption.cssClass.holiday : \"\")\r\n\t\t\t.addClass(newOption.isDisabled(momentForPrint, isNaN(dataRange) ? -1 : dataRange) ? newOption.cssClass.disabled : \"\")\r\n\t\t\t.on('click', function (e) {\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tvar $this = $(this);\r\n\t\t\t\tvar range = parseInt($input.attr('data-range'));\r\n\t\t\t\tvar clickedDateString = $this.attr('data-date');\r\n\t\t\t\tvar prevDateString;\r\n\t\t\t\tvar nextDateString;\r\n\t\t\t\tif($this.hasClass(newOption.cssClass.disabled)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif($(e.target).closest('.cy-ln').attr('data-Fix')==='true'){\r\n\t\t\t\t\t$('td').removeClass('selected');\r\n\t\t\t\t\t$this.addClass('selected');\r\n\t\t\t\t\tvar val = self.dateAutoRepair( $this.attr('data-date') || moment().format(newOption.dateFormat) ) ;\r\n\t\t\t\t\t$input.text('出發日期:'+val).attr('data-date',val)\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tif( !newOption.range) {\r\n\t\t\t\t\t$input.val($this.attr('data-date')).trigger('change');\r\n\t\t\t\t\tself.close( $input );\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif( !$input.attr('data-range') ) {\r\n\t\t\t\t\t$input.val($this.attr('data-date')).attr('data-range', 0).removeClass(newOption.cssClass.inputActive).trigger('change');\r\n\t\t\t\t\tif ( self.comparer( moment($input.val().replace(/\\//g, '')), moment(self.getNextInputDom(range).val().replace(/\\//g, '')) ) === 1 ) {\r\n\t\t\t\t\t\tself.getAfterInputDom( range ).val('');\r\n\t\t\t\t\t}\r\n\t\t\t\t\tself.getAfterInputDom( range ).addClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\tif(newOption.arrow) {\r\n\t\t\t\t\t\tvar value3 = $(newOption.range).offset().left - $input.offset().left + $(newOption.range).width() + 28;\r\n\t\t\t\t\t\tif($input.offset().top == $(newOption.range).offset().top && value3 < $('.cy-ln').width()){\r\n\t\t\t\t\t\t\tvar arrowLeft = $(newOption.range).offset().left - $('.cy-ln').offset().left + $(newOption.range).width() / 2 - 6; //減掉箭頭寬度一半\r\n\t\t\t\t\t\t\t$('.'+newOption.cssClass.arrow).css({\r\n\t\t\t\t\t\t\t\tleft: arrowLeft \r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}else{\r\n\t\t\t\t\t\t\tclearInterval(self.timer);\r\n\t\t\t\t\t\t\tself.timer = setInterval(function(){\r\n\t\t\t\t\t\t\t\t$('.cy-ln').css({\r\n\t\t\t\t\t\t\t\t\tleft: $(newOption.range).offset().left, top: $(newOption.range).offset().top + $input.outerHeight()\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t},25);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$this.trigger('mouseenter');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tprevDateString = self.getPrevInputDom(range).val();\r\n\t\t\t\tif ( self.comparer( moment(prevDateString.replace(/\\//g, '')), moment(clickedDateString.replace(/\\//g, '')) ) === 1 || self.getPrevInputDom(range).val() === '' ) {\r\n\t\t\t\t\tself.getPrevInputDom( range ).val( clickedDateString );\r\n\t\t\t\t\tself.getAfterInputDom( range ).val('');\r\n\t\t\t\t\t//self.getAfterInputDom( range ).val('');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$(newOption.range[range]).val($this.attr('data-date')).trigger('change');\r\n\t\t\t\tself.getPrevInputDom( range ).removeClass(newOption.cssClass.inputActive);\r\n\t\t\t\tif ( range < newOption.range.length - 1 ) {\r\n\t\t\t\t\trange++;\r\n\t\t\t\t\t$input.attr('data-range', range);\r\n\t\t\t\t\t$this.trigger('mouseenter');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.close($input);\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.on('mouseenter', function (e) {\r\n\t\t\t\tvar $this = $(this);\r\n\t\t\t\tvar movedDateString = $this.attr('data-date'); //日期字串\r\n\t\t\t// if(self.$input[0].nextSibling === $(e.target).closest('.cy-ln')[0]){\r\n\t\t\t\tvar $nowInput = function(rangeIndex) {\r\n\t\t\t\t\tif ( !!rangeIndex ) {\r\n\t\t\t\t\t\treturn $( newOption.range[rangeIndex] );\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn $input;\r\n\t\t\t\t\t}\r\n\t\t\t\t}($input.attr('data-range'));\r\n\t\t\t\tvar range = function(rangeStringNumber) {\r\n\t\t\t\t\tif ( rangeStringNumber ) {\r\n\t\t\t\t\t\treturn parseInt(rangeStringNumber);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}( $input.attr('data-range') );\r\n\t\t\t\tvar prevDateString;\r\n\t\t\t\tif($(this).hasClass(newOption.cssClass.disabled)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$(this).addClass(newOption.cssClass.hover);\r\n\t\t\t\tif(!newOption.range) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tprevDateString = self.getPrevInputDom(range).val();\r\n\t\t\t\tif ( !!prevDateString && self.comparer(\r\n\t\t\t\t\tmoment(prevDateString.replace(/\\//g, '')),\r\n\t\t\t\t\tmoment(movedDateString.replace(/\\//g, ''))\r\n\t\t\t\t) === 1 ) {\r\n\t\t\t\t\tconsole.log('before date!!!');\r\n\t\t\t\t\tif ( $nowInput.hasClass(newOption.cssClass.inputActive) ) {\r\n\t\t\t\t\t\t$nowInput.removeClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t\tself.getPrevInputDom(range).addClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log('after date!!!');\r\n\t\t\t\t\tif ( !$nowInput.hasClass(newOption.cssClass.inputActive) ) {\r\n\t\t\t\t\t\t$nowInput.addClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t\tself.getPrevInputDom(range).removeClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif(newOption.range) {\r\n\t\t\t\t\tvar dataRange = parseInt($input.attr('data-range'));\r\n\t\t\t\t\tvar arrayMoment = self.getArrayMoment(isNaN(dataRange) ? -1 : dataRange);\r\n\t\t\t\t\tarrayMoment.push(moment($(this).attr('data-date').replace(/\\W/g,'')));\r\n\t\t\t\t\tself.refreshDateForPeriod(arrayMoment , $(e.target).closest('.cy-ln')[0]);\r\n\t\t\t\t}\r\n\t\t\t// }\r\n\t\t\t})\r\n\t\t\t.on('mouseleave', function () {\r\n\t\t\t\tif($(this).hasClass(newOption.cssClass.disabled)) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t$(this).removeClass(newOption.cssClass.hover);\r\n\t\t\t});\r\n\r\n\t\t\t$tr.append($td);\r\n\t\t\tweekday = (weekday + 1) % 7;\r\n\t\t\tif(weekday == 0) {\r\n\t\t\t\t$tr = this.tag('tr').appendTo($table);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn $table;\r\n\t};\r\n\r\n\tModule.prototype.getArrayInput = function ( except, $input ) {\r\n\t\tvar array = [$input];\r\n\t\tif(except == -1)\r\n\t\t\tarray = [];\r\n\r\n\t\t$.each(this.options.range, function ( index, value ) {\r\n\t\t\tif(typeof except == 'number' && except == index) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tarray.push($(value));\r\n\t\t});\r\n\t\t// console.log(array);\r\n\t\treturn array;\r\n\t};\r\n\r\n\tModule.prototype.getArrayMoment = function ( except ) {\r\n\t\tvar array = [];\r\n\t\t$.each(this.getArrayInput(except, this.$input), function (index, value) {\r\n\t\t\tvar momentValue = moment($(value).val().replace(/\\W/g,''));\r\n\t\t\tif(!momentValue.isValid())\r\n\t\t\t\treturn;\r\n\r\n\t\t\tarray.push(momentValue);\r\n\t\t});\r\n\r\n\t\treturn array;\r\n\t};\r\n\r\n\tModule.prototype.refreshDateForPeriod = function ( arrayMoment , ele ) {\r\n\t\tvar momentFrom = arrayMoment[0];\r\n\t\tvar momentTo = arrayMoment[arrayMoment.length - 1];\r\n\t\tvar self = this;\r\n\t\tif(arrayMoment.length == 0) {\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tarrayMoment.sort(this.comparer);\r\n\t\t// $('.' + this.options.cssClass.main + ' .' + this.options.cssClass.date).each(function (index, value) {\r\n\t\t$(ele).find('td.date').each(function (index, value) {\r\n\t\t\tvar $date = $(value);\r\n\t\t\tvar dataDate = $date.attr('data-date');\r\n\t\t\tif(!dataDate)\r\n\t\t\t\treturn;\r\n\r\n\t\t\tvar dataRange = parseInt(self.$input.attr('data-range'));\r\n\r\n\t\t\tvar momentDate = moment(dataDate.replace(/\\W/g,''));\r\n\t\t\t$date\r\n\t\t\t\t.removeClass(self.options.cssClass.disabled)\r\n\t\t\t\t.removeClass(self.options.cssClass.selected)\r\n\t\t\t\t.removeClass(self.options.cssClass.start)\r\n\t\t\t\t.removeClass(self.options.cssClass.between)\r\n\t\t\t\t.removeClass(self.options.cssClass.point)\r\n\t\t\t\t.removeClass(self.options.cssClass.end)\r\n\t\t\t\t.addClass(self.options.isDisabled(momentDate, isNaN(dataRange) ? -1 : dataRange) ? self.options.cssClass.disabled : \"\");\r\n\t\t\tif(self.equalsDatePart(momentDate, momentFrom)) {\r\n\t\t\t\t$date.addClass(self.options.cssClass.between).addClass(self.options.cssClass.start);\r\n\t\t\t} else if(self.equalsDatePart(momentDate, momentTo)) {\r\n\t\t\t\t$date.addClass(self.options.cssClass.between).addClass(self.options.cssClass.end);\r\n\t\t\t} else if(self.isBetween(momentDate, momentFrom, momentTo)){\r\n\t\t\t\tif(-1 == self.collectionIndexOf(arrayMoment, momentDate, self.equalsDatePart)) {\r\n\t\t\t\t\t$date.addClass(self.options.cssClass.between);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$date.addClass(self.options.cssClass.between).addClass(self.options.cssClass.point);\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// do nothing.\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\tModule.prototype.close = function (e) {\r\n\t\tconsole.log('run close');\r\n\t\t$('.' + this.options.cssClass.main).not('[data-fix=true]').remove();\r\n\t\tthis.getAllInputDom().removeClass(this.options.cssClass.inputActive);\r\n\t\tclearInterval(this.timer);\r\n\t}\r\n\r\n\tModule.prototype.SingleInput = function(ele,opt,module) {\r\n\t\tvar title = $(ele);\r\n\t\tvar $body = $('.container');\r\n\t\tvar offset = ele.offset();\r\n\t\tvar val = module.dateAutoRepair( ele.text().substring(5) || moment().format(opt.dateFormat) ) ;\r\n\t\tvar minValue = function(inputValue, minDate) {\r\n\t\t\tvar date;\r\n\t\t\tif ( !!minDate && minDate.isValid() ) {\r\n\t\t\t\tdate = moment( minDate ).format(opt.dateFormat);\r\n\t\t\t} else {\r\n\t\t\t\tdate = moment().format(opt.dateFormat);\r\n\t\t\t}\r\n\t\t\treturn date;\r\n\t\t}( ele.val(), opt.minDate );\r\n\t\tvar $ele = module.tag('div');\r\n\t\tvar displayDate = function(a, b){\r\n\t\t\tvar inputValueBeforeMin = moment( a.replace(/\\//g, '') ).isBefore( b.replace(/\\//g, '') );\r\n\t\t\tif ( inputValueBeforeMin ) {\r\n\t\t\t\treturn b;\r\n\t\t\t} else {\r\n\t\t\t\treturn a;\r\n\t\t\t}\r\n\t\t}(val, minValue);\r\n\t\t// module.close();\r\n\t\tmodule.getAllInputDom().removeClass(opt.cssClass.inputActive);\r\n\t\tif ( typeof rangeIndex === 'number' ) {\r\n\t\t\tele.attr('data-range', rangeIndex);\r\n\t\t\t$(opt.range[rangeIndex]).addClass(opt.cssClass.inputActive);\r\n\t\t} else {\r\n\t\t\tele.attr('data-range', null).addClass(opt.cssClass.inputActive);\r\n\t\t}\r\n\t\t$(ele).attr('data-date',val);\r\n\t\t$(title).after(\r\n\t\t\t$ele.addClass( opt.cssClass.main + ' ' + opt.cssClass.extra).append( module.drawCalendar(ele, opt, val, displayDate) ).attr('data-fix',true)\r\n\t\t).text('出發日期:'+val); //初始\r\n\t\t// var CylnCssOption = {\r\n\t\t// \ttop: 0,\r\n\t\t// \tleft:0\r\n\t\t// };\r\n\r\n\t\t// $ele.css( CylnCssOption ).find('.arrow').css( {\r\n\t\t// \tleft: ele.offset().left - $('.cy-ln').offset().left + (ele.width() / 2) - 3\r\n\t\t// } );\r\n\t\t// var input = this.input;\r\n\t\t// var $input = $(input);\r\n\t\t// var $span = $(input).prev();\r\n\t\t// $input.css({'padding':'0','padding':'0 0 13px 92px','height':'45px','width': '224.45px'});\r\n\t\t// $span.css({'text-align':'right','width':'6.5em','padding':'0','height':'45px','line-height':'35px'});\r\n\r\n\r\n\t}\r\n\r\n\t/**\r\n * cy_ln - an awesome jQuery plugin. \r\n * @function external:\"jQuery.fn\".cy_ln\r\n *\r\n * @param {PluginOption} option\r\n * \r\n * @example\r\n\r\n$('#test').cy_ln({\r\n\thideArea: 'body',\r\n\tprev: '',\r\n\tnext: '',\r\n\tchangeMonthYear: false,\r\n\tminYear: 10,\r\n\tmaxYear: 10,\r\n\tminDate: null,\r\n\tmaxDate: null,\r\n\tmonthCount: 1,\r\n\tholiday: null,\r\n\tdisabled: null,\r\n\trange: null,\r\n\tarrow: false,\r\n\ttoggleAlert: true,\r\n\tdateFormat: 'YYYY/MM/DD',\r\n\tdataIsNumberRegex: /^\\d[\\d|\\/]+\\d$/,\r\n\tmoduleCloseEvent: 'cy_ln.close',\r\n\tweekdayName: moment.weekdaysMin(),\r\n\tcssClass: {\r\n\t\tmain: 'cy-ln',\r\n\t\twrapper: 'wrapper',\r\n\t\tmonth: 'month',\r\n\t\tprev: 'prev',\r\n\t\tyearMonth: 'yearMonth',\r\n\t\tnext: 'next',\r\n\t\tweekdayName: 'weekdayName',\r\n\t\tdate: 'date',\r\n\t\tweekday: [ 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'],\r\n\t\tholiday: 'holiday',\r\n\t\ttoday: 'today',\r\n\t\thover: 'hover',\r\n\t\tdisabled: 'disabled',\r\n\t\tselected: 'selected',\r\n\t\tstart: 'start',\r\n\t\tarrow: 'arrow',\r\n\t\tbetween: 'between',\r\n\t\tpoint: 'point',\r\n\t\tend: 'end'\r\n\t},\r\n\talertString: {\r\n\t\tinvalid: '日期格式錯誤!',\r\n\t\tbeforeMin: '日期必須大於{#Date}!',\r\n\t\tafterMax: '日期必須小於{#Date}!',\r\n\t\tfromMoreTo: '日期迄日不可小於起日'\r\n\t}\r\n});\r\n\r\n * @returns {external:jQuery} Object\r\n */\r\n\r\n /**\r\n * getOptions description...\r\n * @function external:\"jQuery.fn\".cy_ln\r\n * @param {string} 'getOptions' run getOptions method\r\n * @return {PluginOption} PluginOption return PluginOption\r\n * \r\n */\r\n /**\r\n * updateOption description...\r\n * @function external:\"jQuery.fn\".cy_ln\r\n * @param {string} 'updateOption' run updateOption method'\r\n * \r\n */\r\n\t$.fn[ModuleName] = function(option, stringOpts) {\r\n\t\treturn this.each(function(){\r\n\t\t\tvar $this = $(this);\r\n\t\t\tvar module = $this.data( ModuleName );\r\n\t\t\tvar newOption = null;\r\n\t\t\tif ( !!module ) {\r\n\t\t\t\tif ( typeof option === 'string' && typeof stringOpts === 'undefined' ) {\r\n\t\t\t\t\tmodule[option]();\r\n\t\t\t\t} else if ( typeof option === 'string' && typeof stringOpts === 'object' ) {\r\n\t\t\t\t\tmodule[option](stringOpts);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tconsole.log('unsupported options!');\r\n\t\t\t\t\tthrow 'unsupported options!';\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tnewOption = $.extend( true,\t{},\tModule.DEFAULTS, {\r\n\t\t\t\t\tgetMomentMinDate : function () {\r\n\t\t\t\t\t\tif (this.minDate == null) {\r\n\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($.isNumeric(newOption.minDate)) {\r\n\t\t\t\t\t\t\treturn moment().add(newOption.minDate, 'd');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (this.minDate != null) {\r\n\t\t\t\t\t\t\treturn moment(newOption.minDate);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tgetMomentMaxDate : function () {\r\n\t\t\t\t\t\tif (newOption.maxDate == null) {\r\n\t\t\t\t\t\t\treturn null;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif ($.isNumeric(newOption.maxDate)) {\r\n\t\t\t\t\t\t\treturn moment().add(newOption.maxDate, 'd');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (this.maxDate != null) {\r\n\t\t\t\t\t\t\treturn moment(newOption.maxDate);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\tisDisabled: function (moment, index) {\r\n\t\t\t\t\t\tvar momentMinDate = this.getMomentMinDate();\r\n\t\t\t\t\t\tvar momentMaxDate = this.getMomentMaxDate();\r\n\t\t\t\t\t\t//console.log(moment.format('YYYYMMDD'), momentMinDate.format('YYYYMMDD'), momentMaxDate.format('YYYYMMDD'), moment.isBefore(momentMinDate), moment.isAfter(momentMaxDate));\r\n\r\n\t\t\t\t\t\tif(momentMinDate != null && moment.isSameOrBefore(momentMinDate))\r\n\t\t\t\t\t\t\treturn true;\r\n\r\n\t\t\t\t\t\tif(momentMaxDate != null && moment.isAfter(momentMaxDate))\r\n\t\t\t\t\t\t\treturn true;\r\n\r\n\t\t\t\t\t\tif($.isFunction(this.disabled) && this.disabled(moment))\r\n\t\t\t\t\t\t\treturn true;\r\n\r\n\t\t\t\t\t\t//noinspection RedundantIfStatementJS\r\n\t\t\t\t\t\tif ($.isArray(this.disabled) && this.disabled[index + 1](moment))\r\n\t\t\t\t\t\t\treturn true;\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t},\r\n\t\t\t\t\tisHoliday: function (moment) {\r\n\t\t\t\t\t\tif($.isFunction(this.holiday) && this.holiday(moment))\r\n\t\t\t\t\t\t\treturn true;\r\n\r\n\t\t\t\t\t\t//noinspection RedundantIfStatementJS\r\n\t\t\t\t\t\tif($.isArray(this.holiday) && 0 <= $.inArray(moment.format('YYYY/MM/DD'), newOption.holiday))\r\n\t\t\t\t\t\t\treturn true;\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t}, ( typeof option === 'object' && option ) );\r\n\t\t\t\tmodule = new Module(this, newOption);\r\n\t\t\t\t$this.data( ModuleName, module );\r\n\r\n\t\t\t\tif($.type(newOption.range) == 'string') {\r\n\t\t\t\t\tnewOption.range = [ newOption.range ];\r\n\t\t\t\t}\r\n\t\t\t\t(function ($input, newOption) {\r\n\t\t\t\t\tif(newOption.single){\r\n\t\t\t\t\t\tmodule.SingleInput($input,newOption,module);\r\n\t\t\t\t\t\t$input.attr('disabled',true);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$($input).on('click', function (e, rangeIndex) {\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\tvar $body = $('body');\r\n\t\t\t\t\t\tvar offset = $input.offset();\r\n\t\t\t\t\t\tvar val = module.dateAutoRepair( $input.val() || moment().format(newOption.dateFormat) ) ;\r\n\t\t\t\t\t\tvar minValue = function(inputValue, minDate) {\r\n\t\t\t\t\t\t\tvar date;\r\n\t\t\t\t\t\t\tif ( !!minDate && minDate.isValid() ) {\r\n\t\t\t\t\t\t\t\tdate = moment( minDate ).format(newOption.dateFormat);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tdate = moment().format(newOption.dateFormat);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn date;\r\n\t\t\t\t\t\t}( $input.val(), newOption.minDate );\r\n\t\t\t\t\t\tvar $ele = module.tag('div');\r\n\t\t\t\t\t\tvar displayDate = function(a, b){\r\n\t\t\t\t\t\t\tvar inputValueBeforeMin = moment( a.replace(/\\//g, '') ).isBefore( b.replace(/\\//g, '') );\r\n\t\t\t\t\t\t\tif ( inputValueBeforeMin ) {\r\n\t\t\t\t\t\t\t\treturn b;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treturn a;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}(val, minValue);\r\n\t\t\t\t\t\tmodule.close($input);\r\n\t\t\t\t\t\tmodule.getAllInputDom().removeClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t\tif ( typeof rangeIndex === 'number' ) {\r\n\t\t\t\t\t\t\t$input.attr('data-range', rangeIndex);\r\n\t\t\t\t\t\t\t$(newOption.range[rangeIndex]).addClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$input.attr('data-range', null).addClass(newOption.cssClass.inputActive);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$body.one( 'click', function(e) {\r\n\t\t\t\t\t\t\tmodule.close( $input );\r\n\t\t\t\t\t\t} ).append(\r\n\t\t\t\t\t\t\t$ele.addClass( newOption.cssClass.main + ' ' + newOption.cssClass.extra).css({\r\n\t\t\t\t\t\t\t\tposition: 'absolute',\r\n\t\t\t\t\t\t\t\t'z-index': '10001'\r\n\t\t\t\t\t\t\t}).append( module.drawCalendar($input, newOption, val, displayDate) )\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tconsole.log($ele.outerWidth(),$input.outerWidth());\r\n\r\n\t\t\t\t\t\tvar CylnCssOption = {\r\n\t\t\t\t\t\t\tleft: (newOption.alignRight) ?\toffset.left- ($ele.outerWidth()- $input.outerWidth())+ newOption.cssClass.left : offset.left+ newOption.cssClass.left,\r\n\t\t\t\t\t\t\ttop: offset.top+ newOption.cssClass.top+ $input.outerHeight(),\r\n\t\t\t\t\t\t};\r\n\r\n\t\t\t\t\t\t$ele.css( CylnCssOption ).find('.arrow').css( {\r\n\t\t\t\t\t\t\tleft: $input.offset().left - $('.cy-ln').offset().left + ($input.width() / 2) - 3\r\n\t\t\t\t\t\t} );\r\n\r\n\t\t\t\t\t\t// if(newOption.arrow){\r\n\t\t\t\t\t\t// \t$ele.css({\r\n\t\t\t\t\t\t// \t\tleft: $input.offset().left + newOption.cssClass.left , top: $input.offset().top + newOption.cssClass.top + $input.outerHeight() ,\r\n\t\t\t\t\t\t// \t\tposition: 'absolute','z-index':'10001'\r\n\t\t\t\t\t\t// \t});\r\n\t\t\t\t\t\t// }\r\n\r\n\t\t\t\t\t\tmodule.timer = setInterval(function() {\r\n\t\t\t\t\t\t\tvar left = $input.offset().left + newOption.cssClass.left;\r\n\t\t\t\t\t\t\t$ele.css({\r\n\t\t\t\t\t\t\t\tleft: (newOption.alignRight) ?\tleft- ($ele.outerWidth()- $input.outerWidth()) : left , \r\n\t\t\t\t\t\t\t\ttop: $input.offset().top + newOption.cssClass.top + $input.outerHeight()\r\n\t\t\t\t\t\t\t})\r\n\t\t\t\t\t\t},25);\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t$('.cy-ln').on('click', function (e) {\r\n\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tif(newOption.range) {\r\n\t\t\t\t\t\t\tvar arrayMoment = module.getArrayMoment();\r\n\t\t\t\t\t\t\tmodule.refreshDateForPeriod(arrayMoment , $ele);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}).on('keydown', function (e) {\r\n\t\t\t\t\t\t//console.log('keydown');\r\n\t\t\t\t\t\tif(!$(this).is(\":focus\")) {\r\n\t\t\t\t\t\t\tmodule.close();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif(e.keyCode === 9) {\r\n\t\t\t\t\t\t\tmodule.close();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}).on('change', function () {\r\n\t\t\t\t\t\tvar weekdayName = module.options.weekdayName;\r\n\t\t\t\t\t\tvar inputValue = $(this).val();\r\n\t\t\t\t\t\tvar dateRepairedString = module.dateAutoRepair(inputValue, newOption.toggleAlert);\r\n\t\t\t\t\t\t$(this).val(dateRepairedString);\r\n\t\t\t\t\t}).on('checkDateRepair', function() {\r\n\t\t\t\t\t\tmodule.checkDateRepair( $(this) );\r\n\t\t\t\t\t}).on('checkDateStatus', function(e, returnStatus) {\r\n\t\t\t\t\t\treturnStatus.status = module.dateValueStatus(returnStatus.date);\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif( !!newOption.range && $.type(newOption.range) === 'array' ) {\r\n\t\t\t\t\t\t$.each(newOption.range, function (index, value) {\r\n\t\t\t\t\t\t\t$(value).on('focusin', function () {\r\n\t\t\t\t\t\t\t\tconsole.log(index);\r\n\t\t\t\t\t\t\t\t$input.trigger('click', [index]);\r\n\t\t\t\t\t\t\t}).on('keydown', function (e) {\r\n\t\t\t\t\t\t\t\tif(!$(this).is(\":focus\"))\r\n\t\t\t\t\t\t\t\t\tmodule.close();\r\n\t\t\t\t\t\t\t\tif(e.keyCode === 9)\r\n\t\t\t\t\t\t\t\t\tmodule.close();\r\n\t\t\t\t\t\t\t}).on('click',function(e){\r\n\t\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\t}).on('change', function(e) {\r\n\t\t\t\t\t\t\t\tvar inputValue = $(this).val();\r\n\t\t\t\t\t\t\t\tvar dateRepairedString = module.dateAutoRepair(inputValue, newOption.toggleAlert);\r\n\t\t\t\t\t\t\t\tvar dateFrom = $input.val().replace(/\\//g, '');\r\n\t\t\t\t\t\t\t\tvar dateTo = dateRepairedString.replace(/\\//g, '');\r\n\t\t\t\t\t\t\t\tvar canCompared = !!dateFrom && moment(dateFrom).isValid() && !!dateTo && moment(dateTo).isValid();\r\n\t\t\t\t\t\t\t\tif ( !!canCompared && moment(dateFrom).isAfter(dateTo) ) {\r\n\t\t\t\t\t\t\t\t\t$(this).val( moment(dateFrom).add(1, 'd').format(newOption.dateFormat) );\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\t$(this).val(dateRepairedString);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t}).on('checkDateRepair', function() {\r\n\t\t\t\t\t\t\t\tmodule.checkDateRepair( $(this) );\r\n\t\t\t\t\t\t\t}).on('checkDateStatus', function(e, returnStatus) {\r\n\t\t\t\t\t\t\t\treturnStatus.status = module.dateValueStatus(returnStatus.date);\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t})( $this, module.options );\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\t\r\n\t$(function(){\r\n\t\tvar $modules = $('[data-toggle=\"cy-ln\"]');\r\n\r\n\t\t$modules.each(function(index,dom){\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\tisShowWeekName = ($this.attr(\"data-showWeekName\") == 'true')? true : false,\r\n\t\t\t\tisSingle = ($this.attr(\"data-single\") == 'true')? true : false,\r\n\t\t\t\tisRangeRole = ($this.attr(\"data-role\") == \"range\"),\r\n\t\t\t\tneedRange = ($this.attr('data-cy-ln') == 'range')? true : false,\r\n\t\t\t\tneedArrow = ($this.attr('data-arrow') == 'true') || false,\r\n\t\t\t\tchangeMonthYear = ($this.attr(\"data-change\") == \"true\") || false,\r\n\t\t\t\tminDateFromToday = typeof $this.attr(\"data-minDate\") !== 'undefined' ? $this.attr(\"data-minDate\") : null,\r\n\t\t\t\tmaxDateFromToday = typeof $this.attr(\"data-maxDate\") !== 'undefined' ? $this.attr(\"data-maxDate\") : null,\r\n\t\t\t\tisAlert = ($this.attr('data-toggleAlert') == 'true') || false,\r\n\t\t\t\talertStringInvalid = typeof $this.attr('data-invalidAlert') !== 'undefined' ? $this.attr('data-invalidAlert') : '日期格式錯誤!',\r\n\t\t\t\talertStringbeforeMin = typeof $this.attr('data-beforeMinAlert') !== 'undefined' ? $this.attr('data-beforeMinAlert') : '日期必須大於{#Date}!',\r\n\t\t\t\talertStringafterMax = typeof $this.attr('data-afterMaxAlert') !== 'undefined' ? $this.attr('data-afterMaxAlert') : '日期必須小於{#Date}!',\r\n\t\t\t\talertStringFromMoreTo = typeof $this.attr('data-fromMoreTo') !== 'undefined' ? $this.attr('data-fromMoreTo') : '日期迄日不可小於起日';\r\n\t\t\tif ( !isRangeRole ) {\r\n\t\t\t\tvar $rangeRoles = [];\r\n\t\t\t\tfor (var i = index+1; i < $modules.length; i++) {\r\n\t\t\t\t\tif($modules.eq(i).attr(\"data-role\") != \"range\") {break;}\r\n\t\t\t\t\t$rangeRoles.push($modules.eq(i)[0]);\r\n\t\t\t\t}\r\n\t\t\t\t$this.cy_ln({\r\n\t\t\t\t\tshowWeekName:!!isShowWeekName ? true : false,\r\n\t\t\t\t\tsingle:!!isSingle ? true : false,\r\n\t\t\t\t\tmonthCount: !!needRange ? 2 : 1,\r\n\t\t\t\t\trange: !!needRange ? $rangeRoles : null,\r\n\t\t\t\t\tarrow: !!needArrow ? true : false,\r\n\t\t\t\t\tbtnDisabled:false,\r\n\t\t\t\t\tminDate: !!minDateFromToday ? moment().subtract(parseInt(minDateFromToday), 'days') : null,\r\n\t\t\t\t\tmaxDate: !!maxDateFromToday ? moment().add(parseInt(maxDateFromToday), 'days') : null,\r\n\t\t\t\t\tweekdayName: ['日','一','二','三','四','五','六'],\r\n\t\t\t\t\tchangeMonthYear: !!changeMonthYear ? true : false,\r\n\t\t\t\t\ttoggleAlert: isAlert,\r\n\t\t\t\t\talertString: {\r\n\t\t\t\t\t\tinvalid: alertStringInvalid,\r\n\t\t\t\t\t\tbeforeMin: alertStringbeforeMin,\r\n\t\t\t\t\t\tafterMax: alertStringafterMax,\r\n\t\t\t\t\t\tfromMoreTo: alertStringFromMoreTo\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t});\r\n})(jQuery, moment);\n\n\n// WEBPACK FOOTER //\n// ./magaele/cy-ln/module.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/clp_gplt/css.scss\n// module id = 7\n// module chunks = 0 1 2 3 4 6 9","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/st_lnls/css.scss\n// module id = 8\n// module chunks = 0 1 2 3 4 5 7","(function($) {\r\n 'use strict';\r\n\r\n var ModuleName = 'clp_gpby';\r\n\r\n var Module = function(element, options) {\r\n\r\n this.ele = element;\r\n this.$ele = $(element);\r\n\r\n this.option = options;\r\n this.$maxH;\r\n this.btnEle;\r\n this.$clp_btn;\r\n this.$clp_btntext;\r\n this.opHtml;\r\n this.clsHtml;\r\n\r\n };\r\n\r\n Module.DEFAULT = {\r\n btnSettings:{ closeHtml:null, openHtml:null },\r\n open:false,\r\n whenClosed: function ($this) { /* console.log(\"closed\"); */ }\r\n };\r\n\r\n Module.prototype.setClick = function(){\r\n \r\n this.$clp_btn.on('click', function() {\r\n\r\n this.$ele.toggleClass('open');\r\n\r\n if(this.$clp_btntext.html() == this.clsHtml){\r\n if(this.opHtml == null){\r\n this.$clp_btntext.html(this.clsHtml);\r\n }else{\r\n this.$clp_btntext.html(this.opHtml); \r\n }\r\n }else{\r\n this.$clp_btntext.html(this.clsHtml); \r\n }\r\n if (!this.$ele.hasClass(\"open\")) { (this.option.whenClosed && typeof this.option.whenClosed == \"function\") && this.option.whenClosed(this.$ele); }\r\n \r\n }.bind(this));\r\n\r\n }\r\n\r\n Module.prototype.setResize = function(){\r\n\r\n $(window).on('resize', function(){\r\n\r\n var currentHeight = this.$ele.children('.high').outerHeight();\r\n var maxHeight = parseInt(this.$ele.children('.high').css('max-height')) || 0;\r\n\r\n if( currentHeight >= maxHeight ){\r\n this.$ele.addClass('active');\r\n this.$clp_btn.css('display','inline-block');\r\n } else {\r\n this.$ele.removeClass('active');\r\n this.$clp_btn.hide();\r\n }\r\n\r\n // if( window.innerWidth < 980 ){\r\n // $('.m-appear').removeClass('clear');\r\n // $('.pc-none').removeClass('clear');\r\n // $('.m-none').addClass('clear');\r\n // }else{\r\n // $('.m-appear').addClass('clear');\r\n // $('.pc-none').addClass('clear');\r\n // $('.m-none').removeClass('clear');\r\n // }\r\n\r\n }.bind(this));\r\n\r\n $(window).trigger('resize');\r\n\r\n }\r\n\r\n Module.prototype.clickDelete = function() {\r\n var $delete = this.$ele.find('.filter_btn>.delete');\r\n var _self = this,\r\n $self = this.$ele;\r\n $delete.on('click',function(){\r\n if (!!_self.option.whenClickDelete && typeof _self.option.whenClickDelete == \"function\") _self.option.whenClickDelete($(this),$self)\r\n });\r\n }\r\n\r\n\r\n Module.prototype.init = function() {\r\n\r\n // add Class到this.$ele.\r\n this.$ele.addClass(ModuleName);\r\n\r\n // init $maxH.\r\n this.$maxH = this.option.maxHeight;\r\n\r\n // 如果html上沒有.clp_btn, 則生成一個.\r\n if( this.$ele.children('.clp_btn').length == 0 ){\r\n if (this.option.mode === 'filter') {\r\n console.log('filter')\r\n this.btnEle='
清空選項
' + this.option.btnSettings.closeHtml + '
'\r\n } else {\r\n console.log('other')\r\n this.btnEle = '' + this.option.btnSettings.closeHtml + '';\r\n\r\n }\r\n this.$ele.children('.high').after(this.btnEle);\r\n }\r\n\r\n // 選取.clp_btn.\r\n this.$clp_btn = this.$ele.find('.clp_btn');\r\n this.$clp_btntext = this.$ele.find('.clp_btn>span');\r\n\r\n // 有無輸入$maxH的處置\r\n if(this.$maxH){\r\n if(this.$ele.hasClass('open')){\r\n this.$ele.children('.high').css('max-height', 'inherit');\r\n }else{\r\n this.$ele.children('.high').css('max-height', this.$maxH);\r\n }\r\n }\r\n\r\n // 設定click & resize method.\r\n this.setClick();\r\n this.setResize();\r\n this.clickDelete();\r\n // 如果btnSettings.openHtml沒輸入時的處置.\r\n if(this.option.btnSettings.openHtml){\r\n // 如有設定btnSettings.openHtml時.\r\n this.opHtml = this.option.btnSettings.openHtml;\r\n }else{\r\n // 如沒設定btnSettings.openHtml時.\r\n if(this.option.open){\r\n // 如收合器預設為打開時,\r\n // html上的.clp_btn則視為open狀態,\r\n // 所以opHtml就給予.clp_btn的文字.\r\n this.opHtml = this.$clp_btntext.html();\r\n }else{\r\n // 如收合器預設為關閉時,\r\n // html上的.clp_btn則視為open狀態,\r\n // 所以opHtml就給予''.\r\n this.opHtml = '';\r\n }\r\n }\r\n\r\n // 如果btnSettings.closeHtml沒輸入時的處置.\r\n if(this.option.btnSettings.closeHtml){\r\n // 如有設定btnSettings.closeHtml時.\r\n this.clsHtml = this.option.btnSettings.closeHtml;\r\n }else{\r\n // 如沒設定btnSettings.openHtml時.\r\n if(this.option.open){\r\n // 如收合器預設為打開時, \r\n // html上的.clp_btn則視為open狀態,\r\n // 所以clsHtml就給予''.\r\n this.clsHtml = '';\r\n }else{\r\n // 如收合器預設為關閉時.\r\n // html上的.clp_btn則視為close狀態,\r\n // 所以clsHtml就給予.clp_btn的文字.\r\n this.clsHtml = this.$clp_btntext.html();\r\n }\r\n }\r\n\r\n // 給按鈕預設文字.\r\n this.$clp_btntext.html(this.clsHtml);\r\n\r\n // 如收合器open參數設定為開, 則trigger按鈕click一次.\r\n if(this.option.open){\r\n this.$clp_btn.trigger('click');\r\n }\r\n\r\n };\r\n\r\n $.fn[ModuleName] = function(options) {\r\n\r\n return this.each(function() {\r\n var $this = $(this);\r\n // var module = $this.data( ModuleName );\r\n var opts = $.extend({}, Module.DEFAULT, (typeof options === 'object' && options));\r\n var module = new Module(this, opts);\r\n module.init();\r\n\r\n });\r\n \r\n };\r\n\r\n})(jQuery);\r\n\n\n\n// WEBPACK FOOTER //\n// ./magaele/clp_gpby/module.js","(function($) {\r\n 'use strict';\r\n\r\n var ModuleName = 'st_lnls';\r\n\r\n var Module = function(element, options) {\r\n this.ele = element;\r\n this.$ele = $(element);\r\n this.stele = {};\r\n this.option = options;\r\n this.className = null;\r\n this.isClicked = false;\r\n this.intOldVal = null;\r\n };\r\n\r\n Module.DEFAULT = {\r\n highestZindex: null,\r\n addClass: {\r\n WrapClass: null,\r\n SelectClass: null,\r\n OptionsClass: null\r\n },\r\n addLabel:null, // 用傳入api方式來create label\r\n group: 'on', // 'on' , 'off' 是否使用group功能\r\n openDirection: 'down', // 'up' , 'down' 控制展開方向\r\n optionObj: null, // 傳入一個obj產生option, value值為obj的key ,內文為obj的值\r\n defaultSelector: 'on', // 'on' , 'off' 是否使用預設selector\r\n haveDefaultDisabledVal: true, // 傳入disabled選項的值\r\n defaultSelectedVal: \"\", // 傳入預設選取的值\r\n menuMaxHeight:\"\", // option menu 展開後最高高度\r\n actInput:false,//是否啟動補字功能\r\n customInput:{ //客製化input actInput必須要啟動\r\n name:null,\r\n class:null,\r\n id:null,\r\n style:{}\r\n },\r\n whenOpen: function($this) {\r\n\r\n },\r\n whenSelected: function($this) {\r\n\r\n },\r\n whenClose: function($this) {\r\n\r\n }\r\n };\r\n Module.prototype.menuDirection = function(ele, $stOptions, highestZindex) {\r\n var opts = this.option,\r\n DocHeight = $(window).height(),\r\n optionsOffset = ele.getBoundingClientRect(),\r\n $stOptionsHeight = !!opts.menuMaxHeight ? opts.menuMaxHeight : $stOptions.outerHeight(),\r\n overWindow = ((optionsOffset.top + optionsOffset.height + $stOptionsHeight) > DocHeight ) ? true : false,\r\n topLevel = (opts.openDirection == \"up\" || overWindow)?'inherit':optionsOffset.height,\r\n bottomLevel = (opts.openDirection == \"up\" || overWindow)?optionsOffset.height:'inherit',\r\n scaleRate = opts.openDirection == \"up\"?4 / 5:3 / 4,\r\n menuMaxHeight = !!opts.menuMaxHeight?opts.menuMaxHeight:( (opts.openDirection == \"up\" || overWindow) ? optionsOffset.top:DocHeight) * scaleRate,\r\n menuCss = {\r\n 'minWidth': optionsOffset.width,\r\n 'top': topLevel,\r\n 'bottom': bottomLevel,\r\n 'max-height': menuMaxHeight,\r\n 'z-index': highestZindex + 1\r\n };\r\n \r\n if (opts.openDirection == 'up' || overWindow ) {\r\n $stOptions.addClass('active expandtop').css(menuCss);\r\n } else {\r\n $stOptions.addClass('active').css(menuCss);\r\n }\r\n }\r\n\r\n Module.prototype.init = function() {\r\n this.render();\r\n var self = this;\r\n var $this = this.$ele;\r\n var opts = this.option;\r\n var isClicked = this.isClicked;\r\n // var numberOfOptions = $this.children('option').length;\r\n var highestZindex = opts.highestZindex;\r\n var $thisIndex = $this.index();\r\n var $stWrap = $this.parent().find('.st-wrap').eq($thisIndex);\r\n var $stSelect = $stWrap.find('.st-select');\r\n var $stSelected = $stSelect.find('.st-selected');\r\n var $stOptions = $stWrap.find('.st-options');\r\n var $stInt = this.stele.$stInt;\r\n var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\r\n\r\n if (!opts.highestZindex) {\r\n highestZindex = this.getZindex();\r\n Module.DEFAULT.highestZindex = highestZindex;\r\n }\r\n\r\n if (isMobile && opts.defaultSelector == 'on') {\r\n $this.addClass('m_hide');\r\n } else {\r\n $this.addClass('hide');\r\n }\r\n // set st-label\r\n this.setStlabel($this,$stSelect); \r\n // set st-grp width\r\n var set_Stdata = this.setStgrp($this,$stWrap,$stSelect,$stSelected,$stOptions,opts);\r\n $stWrap = set_Stdata[0];\r\n $stSelect = set_Stdata[1];\r\n $stSelected = set_Stdata[2];\r\n $stOptions = set_Stdata[3];\r\n\r\n // mobile original select settings\r\n if ($this.hasClass('m_hide')) {\r\n $this.css({\r\n top: $stWrap.position().top,\r\n width: 100 + \"%\",\r\n });\r\n }\r\n\r\n // Events\r\n $stSelect.focusin(function() {\r\n if($stInt) return;\r\n if (!isClicked) {\r\n if ($(this).attr('disabled')) return;\r\n $stSelect.addClass('active');\r\n $stWrap.addClass('active');\r\n }\r\n }).blur(function() {\r\n if($stInt) return;\r\n console.log($stOptions.filter('hover').length)\r\n if($stOptions.filter(':hover').length === 0) {\r\n $stSelect.removeClass('active');\r\n $stWrap.removeClass('active');\r\n $stOptions.removeClass('active expandtop');\r\n $stOptions.removeAttr('style');\r\n (typeof(opts.whenClose) === 'function') && opts.whenClose($this);\r\n isClicked = false;\r\n }\r\n }).click(function(e) {\r\n e.stopPropagation();\r\n\r\n if($stInt){\r\n $stOptions.children('li').show().removeClass('matched');\r\n $stInt.trigger('focus');\r\n\r\n if($stOptions.hasClass('active')){\r\n $stOptions.removeClass('active expandtop');\r\n $stOptions.removeAttr('style');\r\n } else {\r\n self.menuDirection(this, $stOptions, highestZindex);\r\n (typeof(opts.whenOpen) === 'function') && opts.whenOpen($this);\r\n }\r\n return;\r\n }\r\n \r\n isClicked = !isClicked;\r\n if (!isClicked) {\r\n $stOptions.removeClass('active');\r\n $stOptions.removeAttr('style');\r\n } else {\r\n $stOptions.removeClass('active expandtop');\r\n $stOptions.removeAttr('style');\r\n if (!$(this).attr('disabled')) {\r\n (typeof(opts.whenOpen) === 'function') && opts.whenOpen($this);\r\n self.menuDirection(this, $stOptions, highestZindex);\r\n }\r\n }\r\n });\r\n\r\n $stOptions.on('mousedown', 'li', function(e) {\r\n e.preventDefault();\r\n var originVal = $this.val();\r\n if (!$(this).attr('disabled')) {\r\n $stOptions.removeClass('active');\r\n $this.val($(this).attr('rel'));\r\n if(originVal != $this.val()) $this.trigger('change');\r\n $(this).siblings('li.selected').removeClass('selected');\r\n $(this).addClass('selected');\r\n isClicked = false;\r\n\r\n if($stInt){\r\n $stInt.val($(this).text());\r\n self.intOldVal = $stInt.val();\r\n }\r\n }\r\n console.log(\"clicked\")\r\n })\r\n $this.change(function(e) {\r\n var optValue = $this.val();\r\n var optTxt = $stOptions.find('[rel=\"' + optValue + '\"]').text();\r\n var optColor = $stOptions.find('[rel=\"' + optValue + '\"]').css('color');\r\n console.log(optColor)\r\n opts.whenSelected && typeof(opts.whenSelected) === 'function' && opts.whenSelected($this);\r\n\r\n $stSelected.text(optTxt);\r\n if (!$this.hasClass('err') && !$this.hasClass('scs') &&!$this.hasClass('breakline')) {\r\n $stSelected.css('color', optColor);\r\n }\r\n if($this.hasClass('breakline')){\r\n $stSelected.css('color', '');\r\n }\r\n });\r\n\r\n $this.on('setWhenSelected', function(event, whenSelected) {\r\n if (whenSelected && typeof whenSelected === 'function') {\r\n opts.whenSelected = whenSelected;\r\n }\r\n });\r\n\r\n $this.on('setWhenOpen', function(event, whenOpen) {\r\n if (whenOpen && typeof whenOpen === 'function') {\r\n opts.whenOpen = whenOpen;\r\n }\r\n });\r\n\r\n $this.on('setWhenClose', function(event, whenClose) {\r\n if (whenClose && typeof whenClose === 'function') {\r\n opts.whenClose = whenClose;\r\n }\r\n });\r\n\r\n $this.on('reloadOpts', function(event, opts, optsSetting, excWhenSelected) {\r\n opts && ($.isArray(opts) || typeof opts == 'object') && self.reloadOptions(opts, optsSetting, excWhenSelected);\r\n });\r\n\r\n $this.on('setErr', function() {\r\n $this.addClass('err');\r\n $stWrap.addClass('err');\r\n $stSelected.css('color', '');\r\n });\r\n\r\n $this.on('setScs', function() {\r\n $this.addClass('scs');\r\n $stWrap.addClass('scs');\r\n $stSelected.css('color', '');\r\n });\r\n\r\n $this.on('removeErr', function() {\r\n $this.removeClass('err');\r\n $stWrap.removeClass('err');\r\n if (!$this.hasClass('err') && !$this.hasClass('scs')) {\r\n $stSelected.css('color', $stOptions.find('.st-option.selected').css('color'));\r\n }\r\n });\r\n\r\n $this.on('removeScs', function() {\r\n $this.removeClass('scs');\r\n $stWrap.removeClass('scs');\r\n if (!$this.hasClass('err') && !$this.hasClass('scs')) {\r\n $stSelected.css('color', $stOptions.find('.st-option.selected').css('color'));\r\n }\r\n });\r\n\r\n $this.on('setDisabled', function() {\r\n $this.attr('disabled', '');\r\n $stSelect.attr('disabled', '');\r\n });\r\n\r\n $this.on('removeDisabled', function() {\r\n $this.attr('disabled', false);\r\n $stSelect.attr('disabled', false);\r\n });\r\n\r\n if($stInt){\r\n $stInt.on('keyup',function(e){\r\n self.inputEvent(this, $stWrap, $stSelect, $stOptions, e.target.value);\r\n });\r\n $stInt.on('click',function(e){\r\n e.stopPropagation();\r\n });\r\n }\r\n\r\n $('html').on('click',function(){\r\n if($stInt){\r\n $stOptions.removeClass('active expandtop')\r\n .removeAttr('style');\r\n if(self.intOldVal === $stInt.val()) return;\r\n self.autoCheck($stInt, $stInt.val(), opts.optionObj, $stOptions);\r\n self.intOldVal = $stInt.val();\r\n }\r\n });\r\n };\r\n\r\n Module.prototype.render = function() {\r\n var $this = this.$ele;\r\n var opts = this.option;\r\n this.getClassName();\r\n var ClassName = this.className;\r\n\r\n if ($this.children('option').length == 0) {\r\n if (!opts.optionObj) {\r\n throw new Error('找不到options資料');\r\n } else {\r\n var arr = Object.keys(opts.optionObj);\r\n var arrVal = $.map(opts.optionObj, function(val, index) {\r\n return val;\r\n });\r\n for (var i = 0; i < arr.length; i++) {\r\n $this.append('');\r\n }\r\n if (opts.haveDefaultDisabledVal) {\r\n if (opts.defaultSelectedVal) {\r\n $this.find('[value=' + opts.defaultSelectedVal + ']').attr('selected', 'selected');\r\n $this.find('[value=' + opts.defaultSelectedVal + ']').attr('disabled', 'disabled');\r\n }else $this.prepend('');\r\n }else if (opts.defaultSelectedVal) {\r\n $this.find('[value=' + opts.defaultSelectedVal + ']').attr('selected', 'selected');\r\n }\r\n }\r\n }\r\n\r\n if (/(st-grp)\\w*/g.test(ClassName) && opts.group == 'on') {\r\n this.group();\r\n var $stWrap = $('
');\r\n var $stSelect = $('
');\r\n var $stSelected = $('');\r\n var $stOptions = $('');\r\n $this.wrap($stWrap);\r\n $this.after($stSelect);\r\n $stSelect.append($stSelected);\r\n $stSelect.after($stOptions);\r\n this.stele.$stWrap = $this.parent('.st-wrap');\r\n this.stele.$stSelect = $stSelect;\r\n this.stele.$stSelected = $stSelected;\r\n this.stele.$stOptions = $stOptions;\r\n } else {\r\n $this.wrap('
');\r\n var $stWrap = $('
');\r\n var $stSelect = $('
');\r\n var $stSelected = $('');\r\n var $stOptions = $('');\r\n $this.after($stWrap);\r\n $stWrap.append($stSelect);\r\n $stSelect.append($stSelected);\r\n $stSelect.after($stOptions);\r\n this.stele.$stWrap = $stWrap;\r\n this.stele.$stSelect = $stSelect;\r\n this.stele.$stSelected = $stSelected;\r\n this.stele.$stOptions = $stOptions;\r\n }\r\n\r\n if(opts.actInput){\r\n var customOpts = opts.customInput;\r\n var $stInt = $('');\r\n \r\n $stInt.addClass(customOpts.class)\r\n .attr('id', customOpts.id)\r\n .attr('name', customOpts.name)\r\n .css( customOpts.style )\r\n .val($this.find('[value=\"'+ $this.val() +'\"]').text());\r\n\r\n this.stele.$stWrap.prepend($stInt);\r\n this.stele.$stInt = $stInt;\r\n this.intOldVal = $stInt.val();\r\n }\r\n\r\n this.stele.$stWrap.addClass(ClassName);\r\n this.stele.$stWrap.removeClass(ModuleName)\r\n };\r\n\r\n Module.prototype.setStlabel = function($this,$stSelect){\r\n if ($this.attr('data-label')) {\r\n $stSelect.prepend('' + $this.attr('data-label') + '');\r\n } else if ( this.option.addLabel ){\r\n $stSelect.prepend('' + this.option.addLabel + '');\r\n }\r\n }\r\n\r\n Module.prototype.setStgrp = function($this,$stWrap,$stSelect,$stSelected,$stOptions,opts){\r\n var setStgrpArr = []; \r\n var numberOfOptions = $this.children('option').length;\r\n if ($this.parents().hasClass('st-grp')) {\r\n $stWrap = $this.closest('.st-wrap');\r\n $stSelect = $stWrap.find('.st-select');\r\n $stSelected = $stSelect.find('.st-selected');\r\n $stOptions = $stWrap.find('.st-options');\r\n if ($this.data('col')) {\r\n $stWrap.addClass($this.data('col'));\r\n } else {\r\n $stWrap.css({\r\n 'width': 100 / $stWrap.closest('.st-grp').children().length + '%'\r\n });\r\n } \r\n }\r\n\r\n if (typeof opts.addClass === 'object') {\r\n $stWrap.addClass(opts.addClass.WrapClass);\r\n $stSelect.addClass(opts.addClass.SelectClass)\r\n $stOptions.addClass(opts.addClass.OptionsClass)\r\n }\r\n\r\n if ($this.attr('disabled')) {\r\n $stSelect.attr('disabled', '');\r\n }\r\n\r\n for (var i = 0; i < numberOfOptions; i++) {\r\n var $stOption = $('
  • ', {\r\n text: $this.children('option').eq(i).text(),\r\n rel: $this.children('option').eq(i).val(),\r\n css: { 'color': $this.children('option').eq(i).attr('data-color') },\r\n 'class': 'st-option'\r\n });\r\n $stOptions.append($stOption);\r\n\r\n if ($this.children('option').eq(i).attr('disabled')) {\r\n $stOption.attr('disabled', '');\r\n }\r\n if ($this.children('option').eq(i).attr('selected')) {\r\n $stSelected.text($this.children('option').eq(i).text());\r\n $stOption.addClass('selected');\r\n if (!$this.hasClass('err') && !$this.hasClass('scs') && !$this.attr('disabled')) {\r\n $stSelected.css('color', $stOption.css('color'));\r\n }\r\n }\r\n }\r\n if( $this.children('option[selected]').length == 0){\r\n $stSelected.text($this.children('option').eq(0).text()).css( 'color' , $stOption.css('color') );\r\n $stOptions.children('li:first-child').addClass('selected');\r\n }\r\n setStgrpArr.push($stWrap,$stSelect,$stSelected,$stOptions,opts)\r\n return setStgrpArr\r\n }\r\n // selectedOptKey disabledOptKeys\r\n Module.prototype.reloadOptions = function(opts, optsSetting, excWhenSelected) {\r\n var $this = this.$ele;\r\n var options = this.option;\r\n var $stWrap = this.stele.$stWrap;\r\n var $stSelect = this.stele.$stSelect;\r\n var $stSelected = this.stele.$stSelected;\r\n var $stOptions = this.stele.$stOptions;\r\n\r\n $this.empty();\r\n $stOptions.empty();\r\n\r\n if ($.isArray(opts)) {\r\n for (var i = 0; i < opts.length; i++) {\r\n // options\r\n $this.append($('
  • ', {\r\n text: opts[i].txt,\r\n rel: opts[i].val,\r\n css: { 'color': $this.children('option').eq(i).attr('data-color') },\r\n class: 'st-option'\r\n });\r\n $stOptions.append($stOption);\r\n\r\n if (opts[i].isDisabled) {\r\n $stOption.attr('disabled', '');\r\n }\r\n if (opts[i].isSelected) {\r\n $stOption.attr('selected', '');\r\n $this.val(opts[i].val);\r\n $stSelected.text(opts[i].txt);\r\n }\r\n }\r\n } else if (typeof opts == 'object') {\r\n for (var i in opts) {\r\n $this.append($('
  • ', {\r\n text: opts[i],\r\n rel: i,\r\n css: { 'color': $this.children('option').eq(i).attr('data-color') },\r\n class: 'st-option'\r\n });\r\n $stOptions.append($stOption);\r\n\r\n var selectedOptKey = !!optsSetting?optsSetting.selectedOptKey:undefined;\r\n var disabledOptKeys = !!optsSetting?optsSetting.disabledOptKeys:undefined;\r\n if (!!disabledOptKeys && (typeof disabledOptKeys === 'string' || $.isArray(disabledOptKeys))) {\r\n if (typeof disabledOptKeys === \"string\" && i === disabledOptKeys) {\r\n $stOption.attr('disabled', '');\r\n }else if ($.isArray(disabledOptKeys) && $.inArray(i, disabledOptKeys) > -1) {\r\n console.log(\"is in array\")\r\n }\r\n }\r\n if (!!selectedOptKey && typeof selectedOptKey == 'string' && $stOption.attr(\"rel\") == selectedOptKey) {\r\n $stOption.attr('selected', '');\r\n $this.val(i);\r\n $stSelected.text(opts[i]);\r\n }\r\n }\r\n }\r\n if (!$this.hasClass('err') && !$this.hasClass('scs') && !$this.attr('disabled')) {\r\n $stSelected.css('color', $stOption.css('color'));\r\n }\r\n\r\n if(excWhenSelected) { \r\n options.whenSelected && typeof(options.whenSelected) === 'function' && options.whenSelected($this);\r\n }\r\n }\r\n\r\n Module.prototype.getClassName = function() {\r\n return this.className = this.$ele.attr('class');\r\n };\r\n\r\n Module.prototype.getZindex = function() {\r\n var highest = 0;\r\n\r\n $(\"*\").each(function() {\r\n var current = parseInt($(this).css(\"z-index\"), 10);\r\n if (current && highest < current) highest = current;\r\n });\r\n\r\n return highest\r\n };\r\n\r\n Module.prototype.group = function() {\r\n var $this = this.$ele;\r\n var ClassName = this.className;\r\n var classArray = this.className.split(' ');\r\n var catchClass;\r\n classArray.forEach(function(value, index) {\r\n if (/(st-grp\\w*)/g.test(value)) {\r\n catchClass = classArray[index];\r\n }\r\n });\r\n\r\n if (!$this.parent('.st-grp').length > 0) {\r\n $this.nextAll('.' + catchClass).andSelf().wrapAll('
    ');\r\n }\r\n };\r\n\r\n Module.prototype.inputEvent = function(stInt, $stWrap, $stSelect, $stOptions, inputVal){\r\n //把特殊字元轉譯成為一般字串\r\n inputVal = inputVal.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n var RegString = new RegExp(inputVal,\"i\");\r\n\r\n $stOptions.children('li').removeClass('matched').hide().filter(function(){\r\n return RegString.test($(this).text())\r\n }).show().addClass('matched');\r\n\r\n if($stOptions.children('li.matched').length != 0){\r\n this.menuDirection(stInt, $stOptions, Module.DEFAULT.highestZindex);\r\n } else {\r\n $stOptions.removeClass('active expandtop').removeAttr('style');\r\n }\r\n };\r\n\r\n Module.prototype.autoCheck = function($stInt, inputVal, allData, $stOptions){\r\n inputVal = inputVal.toUpperCase();\r\n var arr = $.map(allData,function(value, index){\r\n return value;\r\n });\r\n\r\n var hasMatchVal = arr.some(function(value, index, array){\r\n return inputVal === value;\r\n });\r\n \r\n if(hasMatchVal){\r\n inputVal = inputVal.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\r\n var RegString = new RegExp(inputVal,'i');\r\n $stOptions.children('li').filter(function(){\r\n return RegString.test($(this).text())\r\n }).trigger('mousedown');\r\n\r\n } else {\r\n $stInt.val('');\r\n }\r\n };\r\n\r\n $.fn[ModuleName] = function(options) {\r\n return this.each(function() {\r\n var $this = $(this);\r\n var dataParameter = {};\r\n\r\n if ($this.data('opendirection')) { dataParameter.openDirection = $this.data('opendirection'); }\r\n if ($this.data('defaultselector')) { dataParameter.defaultSelector = $this.data('defaultselector'); }\r\n if ($this.data('addclass') && (typeof $this.data('addclass') === 'object')) {\r\n dataParameter.addClass = $this.data('addclass');\r\n }\r\n if ($this.data('optionobj') && (typeof $this.data('optionobj') === 'object')) {\r\n dataParameter.optionObj = $this.data('optionobj');\r\n }\r\n\r\n var opts = $.extend({}, Module.DEFAULT, (typeof options === 'object' && options), dataParameter);\r\n var module = new Module(this, opts);\r\n module.init();\r\n // $this.data(ModuleName,Module);\r\n });\r\n };\r\n\r\n})(jQuery);\r\n\n\n\n// WEBPACK FOOTER //\n// ./magaele/st_lnls/module.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/bt_gptr/css.scss\n// module id = 11\n// module chunks = 0 1 2 6 9 10","(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/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","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/tp_gplt/css.scss\n// module id = 18\n// module chunks = 2 5 7 9 10","(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// ./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/nvb_gptb/css.scss\n// module id = 30\n// module chunks = 1 2 6","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/pp_ln/css.scss\n// module id = 31\n// module chunks = 1 2 5","/**\r\n * Created by gaowy on 2017/5/8.\r\n */\r\n\r\n;\r\n(function($) {\r\n 'use strict'\r\n var ModuleName = 'nvb_gptb';\r\n var Module = function(ele, options) {\r\n this.elem = $(ele);\r\n this.df = document.createDocumentFragment();\r\n this.opts = options;\r\n\r\n };\r\n Module.DEFAULTS = {\r\n flag: false,\r\n anchors: [],\r\n mobileShow: '',\r\n dropOffset: 0,\r\n position: {\r\n start: null, // scroll到什么时候开始fixed\r\n end: false, // scroll到什么时候结束fixed,必须大于start,如果是false,就代表沒有結束fixed scroll點\r\n top: 0 // 当fixed时的top位置\r\n },\r\n time:13,//运动时间\r\n haveSubmitBtn: false, //是否需要submit按鈕\r\n haveSearchBtn:false,//是否需要搜索按钮 add by gwy at 2017/09/05\r\n listContinerClass: \"\",\r\n whenFixed:function(){console.log('whenFixed')},\r\n whenUnFixed:function(){$('.nvb_gptb').addClass('d-no');console.log('whenUnFixed')},\r\n whenClickSubmit:function($this) { console.log(\"whenClickSubmit\") },\r\n placeName:'',//默認地點名 add by gwy at 2017/09/05\r\n whenClickSearch:function(){ console.log(\"whenClickSearch\")}//搜索按鈕回調函數 add by gwy at 2017/09/05\r\n };\r\n //设置是否调用callback开关\r\n Module.prototype.init = function() {\r\n this.opts.flag = $(this.elem).hasClass('d-no');\r\n }\r\n //利用参数中anchors的moveto来计算要滚动的距离\r\n function scrollTop(obj) {\r\n var top;\r\n //如果是object则说明是dom元素\r\n if(obj.length === 0) return;\r\n if ($.type(obj) == 'object') {\r\n top = $(obj).offset().top;\r\n } else {\r\n top = parseInt(obj);\r\n }\r\n top = top == 'null' || top == 'undefined' || isNaN(top) ? $(document).scrollTop() : top;\r\n\r\n return top;\r\n }\r\n //创建导航栏\r\n Module.prototype.createEle = function() {\r\n //清空容器\r\n this.elem.html('');\r\n var anchors = this.opts.anchors;\r\n var mobileShow = this.opts.mobileShow;\r\n var PCsmallHide = this.opts.PCsmallHide;\r\n var listContainerClass = this.opts.listContainerClass;\r\n var div = $(\"\");\r\n\r\n\r\n\r\n for (var i = 0; i < anchors.length; i++) {\r\n var $a = $('').html(anchors[i].name);\r\n var li = '
  • = 0 ? 'PCsmallHide' : '' ) +'>
  • ';\r\n var $li = $(li).append($a).data('moveto', anchors[i].moveto);\r\n if(!!anchors[i].ul && anchors[i].ul.length > 0){\r\n $(li).append('
    ');\r\n for(var j = 0; j < anchors[i].ul.length; j++){\r\n $(li).find('ul').append('
  • ').find('li').eq(j).append('').find('a').html(anchors[i].ul[j].name).closest('li').data('moveto', anchors[i].ul[j].moveto);\r\n }\r\n }\r\n $(div).find('.li-list').append($li);\r\n }\r\n if (this.opts.haveSubmitBtn) {\r\n $(div).find('.li-list li').last().addClass('submitbtn'); \r\n if( anchors[anchors.length-1].attr ){\r\n $(div).find('.li-list li').last().children('a').attr(anchors[anchors.length-1].attr);\r\n }\r\n }\r\n //add by gwy at 2017/09/05\r\n if (this.opts.haveSearchBtn) {\r\n var str='
  • '+this.opts.placeName+'
  • '\r\n $(div).find('.li-list').prepend(str);\r\n }\r\n\r\n $(this.elem).append(div);\r\n };\r\n //添加点击跳转到锚点\r\n Module.prototype.bindClick = function() {\r\n\r\n var that = this;\r\n var lis=this.elem.find('.li-list li');\r\n lis.on('click',function(e){\r\n var $this = $(this);\r\n var proxy=this;\r\n var moveto=scrollTop( $( $(this).data('moveto') ) );\r\n if ($(this).hasClass('submitbtn'))\r\n { that.opts.whenClickSubmit($this) }\r\n //add by gwy at 2017/09/05\r\n else if($(this).hasClass('placeSearch'))\r\n { that.opts.whenClickSearch($this) }\r\n else{\r\n $('html,body').stop().animate({scrollTop:moveto-that.opts.dropOffset},that.opts.time,function(){\r\n $(proxy).addClass('active').siblings().removeClass('active');\r\n })\r\n }\r\n });\r\n };\r\n //添加document滚动事件\r\n Module.prototype.scroll=function(){\r\n var that=this;\r\n\r\n $(window).on('scroll',function(e){\r\n e.preventDefault();\r\n var position=that.opts.position;\r\n var lis=that.elem.find('.li-list li').not('.placeSearch').not('.submitbtn');//過濾首尾li add by gwy at 2017/09/05\r\n var scrolltop=$(document).scrollTop();\r\n\r\n ////导航栏添加红色标记\r\n for (var i = 0; i < lis.length; i++) {\r\n var item = lis.eq(i)\r\n var moveto = scrollTop($( item.data('moveto') )) - that.opts.dropOffset -10;\r\n if (scrolltop >= moveto) {\r\n lis.removeClass('active');\r\n item.addClass('active');\r\n }\r\n }\r\n //end为false,导航栏永久显示\r\n if (position.end == false) {\r\n if (scrolltop >= position.start) {\r\n $(that.elem).find('.nav-container').css({ position: 'fixed', top: position.top, left: 0, display: 'block' })\r\n if (that.opts.flag) {\r\n that.opts.whenFixed();\r\n that.opts.flag = !that.opts.flag;\r\n }\r\n } else {\r\n $(that.elem).find('.li-list li').removeClass('active')\r\n $(that.elem).find('.nav-container').removeAttr('style')\r\n if (!that.opts.flag) {\r\n that.opts.whenUnFixed();\r\n that.opts.flag = !that.opts.flag;\r\n }\r\n\r\n }\r\n\r\n } else { //导航栏在范围内显示\r\n if (scrolltop >= position.start && scrolltop <= position.end) {\r\n\r\n $(that.elem).find('.nav-container').css({ position: 'fixed', top: position.top, left: 0, display: 'block' })\r\n if (that.opts.flag) {\r\n that.opts.whenFixed();\r\n that.opts.flag = !that.opts.flag;\r\n }\r\n }\r\n //else if(scrolltop > position.end){\r\n // $(that.elem).find('.nav-container').removeAttr('style')\r\n // if(!that.opts.flag)\r\n // {\r\n // that.opts.whenUnFixed();\r\n // that.opts.flag=!that.opts.flag;\r\n // }\r\n //}\r\n else {\r\n $(that.elem).find('.li-list li').removeClass('active')\r\n $(that.elem).find('.nav-container').removeAttr('style')\r\n if (!that.opts.flag) {\r\n that.opts.whenUnFixed();\r\n that.opts.flag = !that.opts.flag;\r\n }\r\n }\r\n }\r\n\r\n });\r\n\r\n };\r\n\r\n //更新opt\r\n Module.prototype.updateOpt = function(newOpts, updatePart){\r\n var opts = this.opts;\r\n // 更新左邊或右邊(submitBtn)\r\n if (newOpts.anchors && (updatePart == 'left' || updatePart == 'right')) {\r\n if (updatePart == 'left') {\r\n var leftAnchors = newOpts.anchors,\r\n rightAnchors = this.opts.haveSubmitBtn?opts.anchors.pop():[];\r\n\r\n newOpts.anchors = leftAnchors.concat(rightAnchors);\r\n this.opts = $.extend({},opts, newOpts);\r\n } else if (updatePart == 'right' && newOpts.anchors.length <= 1) {\r\n (this.opts.haveSubmitBtn == true) && opts.anchors.pop();\r\n newOpts.anchors = opts.anchors.concat(newOpts.anchors);\r\n this.opts = $.extend({},opts, newOpts);\r\n } else {\r\n console.log(\"unsupported options!\")\r\n }\r\n\r\n } else if (typeof updatePart == 'undefined') {\r\n var newOption = $.extend({},opts,newOpts); \r\n this.opts = newOption;\r\n } else {\r\n console.log(\"'updatePart' should be left or right\");\r\n }\r\n this.createEle();\r\n this.bindClick();\r\n $(window).trigger('scroll');\r\n }\r\n\r\n $.fn[ModuleName] = function(options, options2, options3) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n var options1 = args[0],\r\n options2 = args.slice(1).length<=0?undefined:args.slice(1, args.length);\r\n return this.each(function() {\r\n var $this = $(this);\r\n var module = $this.data(ModuleName);\r\n var opts = null;\r\n if (!!module) {\r\n if (typeof options === 'string' && typeof options2 === 'undefined') {\r\n module[options]();\r\n } else if (typeof options === 'string' && typeof options2 !== 'undefined') {\r\n module[options1].apply(module, options2);\r\n } else {\r\n console.log('unsupported options!');\r\n throw 'unsupported options!';\r\n }\r\n } else {\r\n opts = $.extend({}, Module.DEFAULTS, (typeof options1 === 'object' && options1));\r\n module = new Module(this, opts);\r\n module.init();\r\n module.createEle();\r\n module.bindClick();\r\n module.scroll();\r\n $this.data(ModuleName, module);\r\n }\r\n })\r\n }\r\n\r\n})(jQuery)\n\n\n// WEBPACK FOOTER //\n// ./magaele/nvb_gptb/module.js","(function(window, document, undefined) {\r\n 'use strict';\r\n (function(factory) {\r\n factory(window.jQuery);\r\n }(function($) {\r\n // Create the defaults once\r\n var pluginName = 'pp_ln';\r\n var pluginClass = 'pp_ln';\r\n var pluginType = 'pp.ln';\r\n var defaults = {\r\n placement: 'auto',\r\n container: null,\r\n width: 'auto',\r\n height: 'auto',\r\n trigger: 'click', //hover,click,sticky,manual\r\n runStopPropagation: true,\r\n style: '',\r\n delay: {\r\n show: null,\r\n hide: 300\r\n },\r\n async: {\r\n type: 'GET',\r\n before: null, //function(that, xhr){}\r\n success: null, //function(that, xhr){}\r\n error: null //function(that, xhr, data){}\r\n },\r\n cache: true,\r\n multi: false,\r\n arrow: true,\r\n title: '',\r\n content: '',\r\n closeable: false,\r\n padding: true,\r\n url: '',\r\n type: 'html',\r\n direction: '', // ltr,rtl\r\n animation: null,\r\n template: '
    ' +\r\n '
    ' +\r\n '
    ' +\r\n '' +\r\n '

    ' +\r\n '

     

    ' +\r\n '
    ' +\r\n '
    ',\r\n backdrop: false,\r\n dismissible: true,\r\n onShow: null,\r\n onHide: null,\r\n abortXHR: true,\r\n autoHide: false,\r\n offsetTop: 0,\r\n offsetLeft: 0,\r\n iframeOptions: {\r\n frameborder: '0',\r\n allowtransparency: 'true',\r\n id: '',\r\n name: '',\r\n scrolling: '',\r\n onload: '',\r\n height: '',\r\n width: ''\r\n },\r\n hideEmpty: false\r\n };\r\n\r\n var rtlClass = pluginClass + '_rtl';\r\n var _srcElements = [];\r\n var backdrop = $('
    ');\r\n var _globalIdSeed = 0;\r\n var _isBodyEventHandled = false;\r\n var _offsetOut = -2000; // the value offset out of the screen\r\n var $document = $(document);\r\n\r\n var toNumber = function(numeric, fallback) {\r\n return isNaN(numeric) ? (fallback || 0) : Number(numeric);\r\n };\r\n\r\n var getPopFromElement = function($element) {\r\n return $element.data('plugin_' + pluginName);\r\n };\r\n\r\n var hideAllPop = function() {\r\n var pop = null;\r\n for (var i = 0; i < _srcElements.length; i++) {\r\n pop = getPopFromElement(_srcElements[i]);\r\n if (pop) {\r\n pop.hide(true);\r\n }\r\n }\r\n $document.trigger('hiddenAll.' + pluginType);\r\n };\r\n\r\n var isMobile = ('ontouchstart' in document.documentElement) && (/Mobi/.test(navigator.userAgent));\r\n\r\n //var removeAllTargets = function() {\r\n // for (var i = 0; i < _srcElements.length; i++) {\r\n // var pop = getPopFromElement(_srcElements[i]);\r\n // console.log(pop.$target);\r\n // }\r\n //};\r\n\r\n var pointerEventToXY = function(e) {\r\n var out = {\r\n x: 0,\r\n y: 0\r\n };\r\n if (e.type === 'touchstart' || e.type === 'touchmove' || e.type === 'touchend' || e.type === 'touchcancel') {\r\n var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];\r\n out.x = touch.pageX;\r\n out.y = touch.pageY;\r\n } else if (e.type === 'mousedown' || e.type === 'mouseup' || e.type === 'click') {\r\n out.x = e.pageX;\r\n out.y = e.pageY;\r\n }\r\n return out;\r\n };\r\n\r\n\r\n\r\n // The actual plugin constructor\r\n function WebuiPopover(element, options) {\r\n this.$element = $(element);\r\n if (options) {\r\n if ($.type(options.delay) === 'string' || $.type(options.delay) === 'number') {\r\n options.delay = {\r\n show: options.delay,\r\n hide: options.delay\r\n }; // bc break fix\r\n }\r\n }\r\n this.options = $.extend({}, defaults, options);\r\n this._defaults = defaults;\r\n this._name = pluginName;\r\n this._targetclick = false;\r\n this.init();\r\n _srcElements.push(this.$element);\r\n\r\n }\r\n\r\n WebuiPopover.prototype = {\r\n //init webui popover\r\n init: function() {\r\n if (this.getTrigger() !== 'manual') {\r\n //init the event handlers\r\n if (this.getTrigger() === 'click' || isMobile) {\r\n this.$element.off('click touchend').on('click touchend', $.proxy(this.toggle, this));\r\n } else if (this.getTrigger() === 'hover') {\r\n this.$element\r\n .off('mouseenter mouseleave click')\r\n .on('mouseenter', $.proxy(this.mouseenterHandler, this))\r\n .on('mouseleave', $.proxy(this.mouseleaveHandler, this));\r\n }\r\n }\r\n this._poped = false;\r\n this._inited = true;\r\n this._opened = false;\r\n this._idSeed = _globalIdSeed;\r\n // normalize container\r\n this.options.container = $(this.options.container || document.body).first();\r\n\r\n if (this.options.backdrop) {\r\n backdrop.appendTo(this.options.container).hide();\r\n }\r\n _globalIdSeed++;\r\n if (this.getTrigger() === 'sticky') {\r\n this.show();\r\n }\r\n\r\n },\r\n /* api methods and actions */\r\n destroy: function() {\r\n var index = -1;\r\n\r\n for (var i = 0; i < _srcElements.length; i++) {\r\n if (_srcElements[i] === this.$element) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n\r\n _srcElements.splice(index, 1);\r\n\r\n\r\n this.hide();\r\n this.$element.data('plugin_' + pluginName, null);\r\n if (this.getTrigger() === 'click') {\r\n this.$element.off('click');\r\n } else if (this.getTrigger() === 'hover') {\r\n this.$element.off('mouseenter mouseleave');\r\n }\r\n if (this.$target) {\r\n this.$target.remove();\r\n }\r\n },\r\n /*\r\n param: force boolean value, if value is true then force hide the popover\r\n param: event dom event,\r\n */\r\n hide: function(force, event) {\r\n if (!force && this.getTrigger() === 'sticky') {\r\n return;\r\n }\r\n if (!this._opened) {\r\n return;\r\n }\r\n\r\n if (event) {\r\n event.preventDefault();\r\n this.options.runStopPropagation && event.stopPropagation();\r\n }\r\n\r\n if (this.xhr && this.options.abortXHR === true) {\r\n this.xhr.abort();\r\n this.xhr = null;\r\n }\r\n\r\n\r\n var e = $.Event('hide.' + pluginType);\r\n this.$element.trigger(e, [this.$target]);\r\n if (this.$target) {\r\n this.$target.removeClass('in').addClass(this.getHideAnimation());\r\n var that = this;\r\n setTimeout(function() {\r\n that.$target.hide();\r\n if (!that.getCache()) {\r\n that.$target.remove();\r\n }\r\n }, that.getHideDelay());\r\n }\r\n if (this.options.backdrop) {\r\n backdrop.hide();\r\n }\r\n this._opened = false;\r\n this.$element.trigger('hidden.' + pluginType, [this.$target]);\r\n\r\n if (this.options.onHide) {\r\n this.options.onHide(this.$target);\r\n }\r\n\r\n },\r\n resetAutoHide: function() {\r\n var that = this;\r\n var autoHide = that.getAutoHide();\r\n if (autoHide) {\r\n if (that.autoHideHandler) {\r\n clearTimeout(that.autoHideHandler);\r\n }\r\n that.autoHideHandler = setTimeout(function() {\r\n that.hide();\r\n }, autoHide);\r\n }\r\n },\r\n toggle: function(e) {\r\n if (e) {\r\n e.preventDefault();\r\n this.options.runStopPropagation && e.stopPropagation();\r\n }\r\n this[this.getTarget().hasClass('in') ? 'hide' : 'show']();\r\n },\r\n hideAll: function() {\r\n hideAllPop();\r\n },\r\n /*core method ,show popover */\r\n show: function() {\r\n if (this._opened) {\r\n return;\r\n }\r\n //removeAllTargets();\r\n var\r\n $target = this.getTarget().removeClass().addClass(pluginClass).addClass(this._customTargetClass);\r\n if (!this.options.multi) {\r\n this.hideAll();\r\n }\r\n\r\n // use cache by default, if not cache setted , reInit the contents\r\n if (!this.getCache() || !this._poped || this.content === '') {\r\n this.content = '';\r\n this.setTitle(this.getTitle());\r\n if (!this.options.closeable) {\r\n $target.find('.close').off('click').remove();\r\n }\r\n\r\n if (!this.isAsync()) {\r\n this.setContent(this.getContent());\r\n } else {\r\n this.setContentASync(this.options.content);\r\n }\r\n\r\n if (this.canEmptyHide() && this.content === '') {\r\n return;\r\n }\r\n $target.show();\r\n }\r\n\r\n this.displayContent();\r\n\r\n if (this.options.onShow) {\r\n this.options.onShow($target);\r\n }\r\n\r\n this.bindBodyEvents();\r\n if (this.options.backdrop) {\r\n backdrop.show();\r\n }\r\n this._opened = true;\r\n this.resetAutoHide();\r\n },\r\n displayContent: function() {\r\n var\r\n //element postion\r\n elementPos = this.getElementPosition(),\r\n //target postion\r\n $target = this.getTarget().removeClass().addClass(pluginClass).addClass(this._customTargetClass),\r\n //target content\r\n $targetContent = this.getContentElement(),\r\n //target Width\r\n targetWidth = $target[0].offsetWidth,\r\n //target Height\r\n targetHeight = $target[0].offsetHeight,\r\n //placement\r\n placement = 'bottom',\r\n e = $.Event('show.' + pluginType);\r\n if (this.canEmptyHide()) {\r\n\r\n var content = $targetContent.children().html();\r\n if (content !== null && content.trim().length === 0) {\r\n return;\r\n }\r\n }\r\n\r\n //if (this.hasContent()){\r\n this.$element.trigger(e, [$target]);\r\n //}\r\n // support width as data attribute\r\n var optWidth = this.$element.data('width') || this.options.width;\r\n if (optWidth === '') {\r\n optWidth = this._defaults.width;\r\n }\r\n\r\n if (optWidth !== 'auto') {\r\n $target.outerWidth(optWidth);\r\n }\r\n\r\n // support height as data attribute\r\n var optHeight = this.$element.data('height') || this.options.height;\r\n if (optHeight === '') {\r\n optHeight = this._defaults.height;\r\n }\r\n\r\n if (optHeight !== 'auto') {\r\n $targetContent.outerHeight(optHeight);\r\n }\r\n if (this.options.style) {\r\n if(typeof(this.options.style) === \"string\") {\r\n console.log(\"string\")\r\n this.$target.addClass(pluginClass + '_' + this.options.style);\r\n }else if(Array.isArray(this.options.style)) {\r\n for(var i in this.options.style) {\r\n this.$target.addClass(pluginClass + '_' + this.options.style[i]);\r\n }\r\n }else console.log('Wrong type of style!'); }\r\n\r\n //check rtl\r\n if (this.options.direction === 'rtl' && !$targetContent.hasClass(rtlClass)) {\r\n $targetContent.addClass(rtlClass);\r\n }\r\n\r\n //init the popover and insert into the document body\r\n if (!this.options.arrow) {\r\n $target.find('.arrow').remove();\r\n }\r\n $target.detach().css({\r\n top: _offsetOut,\r\n left: _offsetOut,\r\n display: 'block'\r\n });\r\n\r\n if (this.getAnimation()) {\r\n $target.addClass(this.getAnimation());\r\n }\r\n $target.appendTo(this.options.container);\r\n\r\n\r\n placement = this.getPlacement(elementPos);\r\n\r\n //This line is just for compatible with knockout custom binding\r\n this.$element.trigger('added.' + pluginType);\r\n\r\n this.initTargetEvents();\r\n\r\n if (typeof this.options.padding === 'boolean' && !this.options.padding) {\r\n if (this.options.height !== 'auto') {\r\n $targetContent.css('height', $targetContent.outerHeight());\r\n }\r\n this.$target.addClass('pp_ln_nopadding');\r\n } else if (typeof this.options.padding === 'number' || typeof this.options.padding === 'string') {\r\n $targetContent.css('padding', this.options.padding);\r\n }\r\n targetWidth = $target[0].offsetWidth;\r\n targetHeight = $target[0].offsetHeight;\r\n\r\n var postionInfo = this.getTargetPositin(elementPos, placement, targetWidth, targetHeight);\r\n\r\n this.$target.css(postionInfo.position).addClass(placement).addClass('in');\r\n\r\n if (this.options.type === 'iframe') {\r\n var $iframe = $target.find('iframe');\r\n var iframeWidth = $target.width();\r\n var iframeHeight = $iframe.parent().height();\r\n\r\n if (this.options.iframeOptions.width !== '' && this.options.iframeOptions.width !== 'auto') {\r\n iframeWidth = this.options.iframeOptions.width;\r\n }\r\n\r\n if (this.options.iframeOptions.height !== '' && this.options.iframeOptions.height !== 'auto') {\r\n iframeHeight = this.options.iframeOptions.height;\r\n }\r\n\r\n $iframe.width(iframeWidth).height(iframeHeight);\r\n }\r\n\r\n\r\n\r\n\r\n if (!this.options.arrow) {\r\n this.$target.css({\r\n 'margin': 0\r\n });\r\n }\r\n if (this.options.arrow) {\r\n var $arrow = this.$target.find('.arrow');\r\n $arrow.removeAttr('style');\r\n\r\n //prevent arrow change by content size\r\n if (placement === 'left' || placement === 'right') {\r\n $arrow.css({\r\n top: this.$target.height() / 2\r\n });\r\n } else if (placement === 'top' || placement === 'bottom') {\r\n $arrow.css({\r\n left: this.$target.width() / 2\r\n });\r\n }\r\n\r\n if (postionInfo.arrowOffset) {\r\n //hide the arrow if offset is negative\r\n if (postionInfo.arrowOffset.left === -1 || postionInfo.arrowOffset.top === -1) {\r\n $arrow.hide();\r\n } else {\r\n $arrow.css(postionInfo.arrowOffset);\r\n }\r\n }\r\n\r\n }\r\n this._poped = true;\r\n this.$element.trigger('shown.' + pluginType, [this.$target]);\r\n },\r\n\r\n isTargetLoaded: function() {\r\n return this.getTarget().find('i.glyphicon-refresh').length === 0;\r\n },\r\n\r\n /*getter setters */\r\n getTriggerElement: function() {\r\n return this.$element;\r\n },\r\n getTarget: function() {\r\n if (!this.$target) {\r\n var id = pluginName + this._idSeed;\r\n this.$target = $(this.options.template)\r\n .attr('id', id)\r\n .data('trigger-element', this.getTriggerElement());\r\n this._customTargetClass = this.$target.attr('class') !== pluginClass ? this.$target.attr('class') : null;\r\n this.getTriggerElement().attr('data-target', id);\r\n }\r\n return this.$target;\r\n },\r\n getTitleElement: function() {\r\n return this.getTarget().find('.' + pluginClass + '_title');\r\n },\r\n getContentElement: function() {\r\n if (!this.$contentElement) {\r\n this.$contentElement = this.getTarget().find('.' + pluginClass + '_content');\r\n }\r\n return this.$contentElement;\r\n },\r\n getTitle: function() {\r\n return this.$element.attr('data-title') || this.options.title || this.$element.attr('title');\r\n },\r\n getUrl: function() {\r\n return this.$element.attr('data-url') || this.options.url;\r\n },\r\n getAutoHide: function() {\r\n return this.$element.attr('data-auto-hide') || this.options.autoHide;\r\n },\r\n getOffsetTop: function() {\r\n return toNumber(this.$element.attr('data-offset-top')) || this.options.offsetTop;\r\n },\r\n getOffsetLeft: function() {\r\n return toNumber(this.$element.attr('data-offset-left')) || this.options.offsetLeft;\r\n },\r\n getCache: function() {\r\n var dataAttr = this.$element.attr('data-cache');\r\n if (typeof(dataAttr) !== 'undefined') {\r\n switch (dataAttr.toLowerCase()) {\r\n case 'true':\r\n case 'yes':\r\n case '1':\r\n return true;\r\n case 'false':\r\n case 'no':\r\n case '0':\r\n return false;\r\n }\r\n }\r\n return this.options.cache;\r\n },\r\n getTrigger: function() {\r\n return this.$element.attr('data-trigger') || this.options.trigger;\r\n },\r\n getDelayShow: function() {\r\n var dataAttr = this.$element.attr('data-delay-show');\r\n if (typeof(dataAttr) !== 'undefined') {\r\n return dataAttr;\r\n }\r\n return this.options.delay.show === 0 ? 0 : this.options.delay.show || 100;\r\n },\r\n getHideDelay: function() {\r\n var dataAttr = this.$element.attr('data-delay-hide');\r\n if (typeof(dataAttr) !== 'undefined') {\r\n return dataAttr;\r\n }\r\n return this.options.delay.hide === 0 ? 0 : this.options.delay.hide || 100;\r\n },\r\n getAnimation: function() {\r\n var dataAttr = this.$element.attr('data-animation');\r\n return dataAttr || this.options.animation;\r\n },\r\n getHideAnimation: function() {\r\n var ani = this.getAnimation();\r\n return ani ? ani + '-out' : 'out';\r\n },\r\n setTitle: function(title) {\r\n var $titleEl = this.getTitleElement();\r\n if (title) {\r\n //check rtl\r\n if (this.options.direction === 'rtl' && !$titleEl.hasClass(rtlClass)) {\r\n $titleEl.addClass(rtlClass);\r\n }\r\n $titleEl.html(title);\r\n } else {\r\n $titleEl.remove();\r\n }\r\n },\r\n hasContent: function() {\r\n return this.getContent();\r\n },\r\n canEmptyHide: function() {\r\n return this.options.hideEmpty && this.options.type === 'html';\r\n },\r\n getIframe: function() {\r\n var $iframe = $('').attr('src', this.getUrl());\r\n var self = this;\r\n $.each(this._defaults.iframeOptions, function(opt) {\r\n if (typeof self.options.iframeOptions[opt] !== 'undefined') {\r\n $iframe.attr(opt, self.options.iframeOptions[opt]);\r\n }\r\n });\r\n\r\n return $iframe;\r\n },\r\n getContent: function() {\r\n if (this.getUrl()) {\r\n switch (this.options.type) {\r\n case 'iframe':\r\n this.content = this.getIframe();\r\n break;\r\n case 'html':\r\n try {\r\n this.content = $(this.getUrl());\r\n if (!this.content.is(':visible')) {\r\n this.content.show();\r\n }\r\n } catch (error) {\r\n throw new Error('Unable to get popover content. Invalid selector specified.');\r\n }\r\n break;\r\n }\r\n } else if (!this.content) {\r\n var content = '';\r\n if ($.isFunction(this.options.content)) {\r\n content = this.options.content.apply(this.$element[0], [this]);\r\n } else {\r\n content = this.options.content;\r\n }\r\n this.content = this.$element.attr('data-content') || content;\r\n if (!this.content) {\r\n var $next = this.$element.next();\r\n\r\n if ($next && $next.hasClass(pluginClass + '_content')) {\r\n this.content = $next;\r\n }\r\n }\r\n }\r\n return this.content;\r\n },\r\n setContent: function(content) {\r\n var $target = this.getTarget();\r\n var $ct = this.getContentElement();\r\n if (typeof content === 'string') {\r\n $ct.html(content);\r\n } else if (content instanceof $) {\r\n $ct.html('');\r\n //Don't want to clone too many times.\r\n if (!this.options.cache) {\r\n content.clone(true, true).removeClass(pluginClass + '_content').appendTo($ct);\r\n } else {\r\n content.removeClass(pluginClass + '_content').appendTo($ct);\r\n }\r\n }\r\n this.$target = $target;\r\n },\r\n isAsync: function() {\r\n return this.options.type === 'async';\r\n },\r\n setContentASync: function(content) {\r\n var that = this;\r\n if (this.xhr) {\r\n return;\r\n }\r\n this.xhr = $.ajax({\r\n url: this.getUrl(),\r\n type: this.options.async.type,\r\n cache: this.getCache(),\r\n beforeSend: function(xhr) {\r\n if (that.options.async.before) {\r\n that.options.async.before(that, xhr);\r\n }\r\n },\r\n success: function(data) {\r\n that.bindBodyEvents();\r\n if (content && $.isFunction(content)) {\r\n that.content = content.apply(that.$element[0], [data]);\r\n } else {\r\n that.content = data;\r\n }\r\n that.setContent(that.content);\r\n var $targetContent = that.getContentElement();\r\n $targetContent.removeAttr('style');\r\n that.displayContent();\r\n if (that.options.async.success) {\r\n that.options.async.success(that, data);\r\n }\r\n },\r\n complete: function() {\r\n that.xhr = null;\r\n },\r\n error: function(xhr, data) {\r\n if (that.options.async.error) {\r\n that.options.async.error(that, xhr, data);\r\n }\r\n }\r\n });\r\n },\r\n\r\n bindBodyEvents: function() {\r\n if (_isBodyEventHandled) {\r\n return;\r\n }\r\n if (this.options.dismissible && this.getTrigger() === 'click') {\r\n $document.off('keyup.pp.ln').on('keyup.pp.ln', $.proxy(this.escapeHandler, this));\r\n $document.off('click.pp.ln touchend.pp.ln')\r\n .on('click.pp.ln touchend.pp.ln', $.proxy(this.bodyClickHandler, this));\r\n } else if (this.getTrigger() === 'hover') {\r\n $document.off('touchend.pp.ln')\r\n .on('touchend.pp.ln', $.proxy(this.bodyClickHandler, this));\r\n }\r\n },\r\n\r\n /* event handlers */\r\n mouseenterHandler: function() {\r\n var self = this;\r\n if (self._timeout) {\r\n clearTimeout(self._timeout);\r\n }\r\n self._enterTimeout = setTimeout(function() {\r\n if (!self.getTarget().is(':visible')) {\r\n self.show();\r\n }\r\n }, this.getDelayShow());\r\n },\r\n mouseleaveHandler: function() {\r\n var self = this;\r\n clearTimeout(self._enterTimeout);\r\n //key point, set the _timeout then use clearTimeout when mouse leave\r\n self._timeout = setTimeout(function() {\r\n self.hide();\r\n }, this.getHideDelay());\r\n },\r\n escapeHandler: function(e) {\r\n if (e.keyCode === 27) {\r\n this.hideAll();\r\n }\r\n },\r\n\r\n bodyClickHandler: function(e) {\r\n _isBodyEventHandled = true;\r\n var canHide = true;\r\n for (var i = 0; i < _srcElements.length; i++) {\r\n var pop = getPopFromElement(_srcElements[i]);\r\n if (pop && pop._opened) {\r\n var offset = pop.getTarget().offset();\r\n var popX1 = offset.left;\r\n var popY1 = offset.top;\r\n var popX2 = offset.left + pop.getTarget().width();\r\n var popY2 = offset.top + pop.getTarget().height();\r\n var pt = pointerEventToXY(e);\r\n var inPop = pt.x >= popX1 && pt.x <= popX2 && pt.y >= popY1 && pt.y <= popY2;\r\n if (inPop) {\r\n canHide = false;\r\n break;\r\n }\r\n }\r\n }\r\n if (canHide) {\r\n hideAllPop();\r\n }\r\n },\r\n\r\n /*\r\n targetClickHandler: function() {\r\n this._targetclick = true;\r\n },\r\n */\r\n\r\n //reset and init the target events;\r\n initTargetEvents: function() {\r\n if (this.getTrigger() === 'hover') {\r\n this.$target\r\n .off('mouseenter mouseleave')\r\n .on('mouseenter', $.proxy(this.mouseenterHandler, this))\r\n .on('mouseleave', $.proxy(this.mouseleaveHandler, this));\r\n }\r\n this.$target.find('.close').off('click').on('click', $.proxy(this.hide, this, true));\r\n //this.$target.off('click.pp_ln').on('click.pp_ln', $.proxy(this.targetClickHandler, this));\r\n },\r\n /* utils methods */\r\n //caculate placement of the popover\r\n getPlacement: function(pos) {\r\n var\r\n placement,\r\n container = this.options.container,\r\n clientWidth = container.innerWidth(),\r\n clientHeight = container.innerHeight(),\r\n scrollTop = container.scrollTop(),\r\n scrollLeft = container.scrollLeft(),\r\n pageX = Math.max(0, pos.left - scrollLeft),\r\n pageY = Math.max(0, pos.top - scrollTop);\r\n //arrowSize = 20;\r\n //if placement equals auto,caculate the placement by element information;\r\n if (typeof(this.options.placement) === 'function') {\r\n placement = this.options.placement.call(this, this.getTarget()[0], this.$element[0]);\r\n } else {\r\n placement = this.$element.data('placement') || this.options.placement;\r\n }\r\n\r\n var isH = placement === 'horizontal';\r\n var isV = placement === 'vertical';\r\n var detect = placement === 'auto' || isH || isV;\r\n\r\n if (detect) {\r\n if (pageX < clientWidth / 3) {\r\n if (pageY < clientHeight / 3) {\r\n placement = isH ? 'right-bottom' : 'bottom-right';\r\n } else if (pageY < clientHeight * 2 / 3) {\r\n if (isV) {\r\n placement = pageY <= clientHeight / 2 ? 'bottom-right' : 'top-right';\r\n } else {\r\n placement = 'right';\r\n }\r\n } else {\r\n placement = isH ? 'right-top' : 'top-right';\r\n }\r\n //placement= pageY>targetHeight+arrowSize?'top-right':'bottom-right';\r\n } else if (pageX < clientWidth * 2 / 3) {\r\n if (pageY < clientHeight / 3) {\r\n if (isH) {\r\n placement = pageX <= clientWidth / 2 ? 'right-bottom' : 'left-bottom';\r\n } else {\r\n placement = 'bottom';\r\n }\r\n } else if (pageY < clientHeight * 2 / 3) {\r\n if (isH) {\r\n placement = pageX <= clientWidth / 2 ? 'right' : 'left';\r\n } else {\r\n placement = pageY <= clientHeight / 2 ? 'bottom' : 'top';\r\n }\r\n } else {\r\n if (isH) {\r\n placement = pageX <= clientWidth / 2 ? 'right-top' : 'left-top';\r\n } else {\r\n placement = 'top';\r\n }\r\n }\r\n } else {\r\n //placement = pageY>targetHeight+arrowSize?'top-left':'bottom-left';\r\n if (pageY < clientHeight / 3) {\r\n placement = isH ? 'left-bottom' : 'bottom-left';\r\n } else if (pageY < clientHeight * 2 / 3) {\r\n if (isV) {\r\n placement = pageY <= clientHeight / 2 ? 'bottom-left' : 'top-left';\r\n } else {\r\n placement = 'left';\r\n }\r\n } else {\r\n placement = isH ? 'left-top' : 'top-left';\r\n }\r\n }\r\n } else if (placement === 'auto-top') {\r\n if (pageX < clientWidth / 3) {\r\n placement = 'top-right';\r\n } else if (pageX < clientWidth * 2 / 3) {\r\n placement = 'top';\r\n } else {\r\n placement = 'top-left';\r\n }\r\n } else if (placement === 'auto-bottom') {\r\n if (pageX < clientWidth / 3) {\r\n placement = 'bottom-right';\r\n } else if (pageX < clientWidth * 2 / 3) {\r\n placement = 'bottom';\r\n } else {\r\n placement = 'bottom-left';\r\n }\r\n } else if (placement === 'auto-left') {\r\n if (pageY < clientHeight / 3) {\r\n placement = 'left-top';\r\n } else if (pageY < clientHeight * 2 / 3) {\r\n placement = 'left';\r\n } else {\r\n placement = 'left-bottom';\r\n }\r\n } else if (placement === 'auto-right') {\r\n if (pageY < clientHeight / 3) {\r\n placement = 'right-top';\r\n } else if (pageY < clientHeight * 2 / 3) {\r\n placement = 'right';\r\n } else {\r\n placement = 'right-bottom';\r\n }\r\n }\r\n return placement;\r\n },\r\n getElementPosition: function() {\r\n // If the container is the body or normal conatiner, just use $element.offset()\r\n var elRect = this.$element[0].getBoundingClientRect();\r\n var container = this.options.container;\r\n var cssPos = container.css('position');\r\n\r\n if (container.is(document.body) || cssPos === 'static') {\r\n return $.extend({}, this.$element.offset(), {\r\n width: this.$element[0].offsetWidth || elRect.width,\r\n height: this.$element[0].offsetHeight || elRect.height\r\n });\r\n // Else fixed container need recalculate the position\r\n } else if (cssPos === 'fixed') {\r\n var containerRect = container[0].getBoundingClientRect();\r\n return {\r\n top: elRect.top - containerRect.top + container.scrollTop(),\r\n left: elRect.left - containerRect.left + container.scrollLeft(),\r\n width: elRect.width,\r\n height: elRect.height\r\n };\r\n } else if (cssPos === 'relative') {\r\n return {\r\n top: this.$element.offset().top - container.offset().top,\r\n left: this.$element.offset().left - container.offset().left,\r\n width: this.$element[0].offsetWidth || elRect.width,\r\n height: this.$element[0].offsetHeight || elRect.height\r\n };\r\n }\r\n },\r\n\r\n getTargetPositin: function(elementPos, placement, targetWidth, targetHeight) {\r\n var pos = elementPos,\r\n container = this.options.container,\r\n //clientWidth = container.innerWidth(),\r\n //clientHeight = container.innerHeight(),\r\n elementW = this.$element.outerWidth(),\r\n elementH = this.$element.outerHeight(),\r\n scrollTop = document.documentElement.scrollTop + container.scrollTop(),\r\n scrollLeft = document.documentElement.scrollLeft + container.scrollLeft(),\r\n position = {},\r\n arrowOffset = null,\r\n arrowSize = this.options.arrow ? 20 : 0,\r\n padding = 10,\r\n fixedW = elementW < arrowSize + padding ? arrowSize : 0,\r\n fixedH = elementH < arrowSize + padding ? arrowSize : 0,\r\n refix = 0,\r\n pageH = document.documentElement.clientHeight + scrollTop,\r\n pageW = document.documentElement.clientWidth + scrollLeft;\r\n\r\n var validLeft = pos.left + pos.width / 2 - fixedW > 0;\r\n var validRight = pos.left + pos.width / 2 + fixedW < pageW;\r\n var validTop = pos.top + pos.height / 2 - fixedH > 0;\r\n var validBottom = pos.top + pos.height / 2 + fixedH < pageH;\r\n\r\n\r\n switch (placement) {\r\n case 'bottom':\r\n position = {\r\n top: pos.top + pos.height,\r\n left: pos.left + pos.width / 2 - targetWidth / 2\r\n };\r\n break;\r\n case 'top':\r\n position = {\r\n top: pos.top - targetHeight,\r\n left: pos.left + pos.width / 2 - targetWidth / 2\r\n };\r\n break;\r\n case 'left':\r\n position = {\r\n top: pos.top + pos.height / 2 - targetHeight / 2,\r\n left: pos.left - targetWidth\r\n };\r\n break;\r\n case 'right':\r\n position = {\r\n top: pos.top + pos.height / 2 - targetHeight / 2,\r\n left: pos.left + pos.width\r\n };\r\n break;\r\n case 'top-right':\r\n position = {\r\n top: pos.top - targetHeight,\r\n left: validLeft ? pos.left - fixedW : padding\r\n };\r\n arrowOffset = {\r\n left: validLeft ? Math.min(elementW, targetWidth) / 2 + fixedW : _offsetOut\r\n };\r\n break;\r\n case 'top-left':\r\n refix = validRight ? fixedW : -padding;\r\n position = {\r\n top: pos.top - targetHeight,\r\n left: pos.left - targetWidth + pos.width + refix\r\n };\r\n arrowOffset = {\r\n left: validRight ? targetWidth - Math.min(elementW, targetWidth) / 2 - fixedW : _offsetOut\r\n };\r\n break;\r\n case 'bottom-right':\r\n position = {\r\n top: pos.top + pos.height,\r\n left: validLeft ? pos.left - fixedW : padding\r\n };\r\n arrowOffset = {\r\n left: validLeft ? Math.min(elementW, targetWidth) / 2 + fixedW : _offsetOut\r\n };\r\n break;\r\n case 'bottom-left':\r\n refix = validRight ? fixedW : -padding;\r\n position = {\r\n top: pos.top + pos.height,\r\n left: pos.left - targetWidth + pos.width + refix\r\n };\r\n arrowOffset = {\r\n left: validRight ? targetWidth - Math.min(elementW, targetWidth) / 2 - fixedW : _offsetOut\r\n };\r\n break;\r\n case 'right-top':\r\n refix = validBottom ? fixedH : -padding;\r\n position = {\r\n top: pos.top - targetHeight + pos.height + refix,\r\n left: pos.left + pos.width\r\n };\r\n arrowOffset = {\r\n top: validBottom ? targetHeight - Math.min(elementH, targetHeight) / 2 - fixedH : _offsetOut\r\n };\r\n break;\r\n case 'right-bottom':\r\n position = {\r\n top: validTop ? pos.top - fixedH : padding,\r\n left: pos.left + pos.width\r\n };\r\n arrowOffset = {\r\n top: validTop ? Math.min(elementH, targetHeight) / 2 + fixedH : _offsetOut\r\n };\r\n break;\r\n case 'left-top':\r\n refix = validBottom ? fixedH : -padding;\r\n position = {\r\n top: pos.top - targetHeight + pos.height + refix,\r\n left: pos.left - targetWidth\r\n };\r\n arrowOffset = {\r\n top: validBottom ? targetHeight - Math.min(elementH, targetHeight) / 2 - fixedH : _offsetOut\r\n };\r\n break;\r\n case 'left-bottom':\r\n position = {\r\n top: validTop ? pos.top - fixedH : padding,\r\n left: pos.left - targetWidth\r\n };\r\n arrowOffset = {\r\n top: validTop ? Math.min(elementH, targetHeight) / 2 + fixedH : _offsetOut\r\n };\r\n break;\r\n\r\n }\r\n position.top += this.getOffsetTop();\r\n position.left += this.getOffsetLeft();\r\n\r\n return {\r\n position: position,\r\n arrowOffset: arrowOffset\r\n };\r\n }\r\n };\r\n $.fn[pluginName] = function(options, noInit) {\r\n var results = [];\r\n var $result = this.each(function() {\r\n\r\n var webuiPopover = $.data(this, 'plugin_' + pluginName);\r\n if (!webuiPopover) {\r\n if (!options) {\r\n webuiPopover = new WebuiPopover(this, null);\r\n } else if (typeof options === 'string') {\r\n if (options !== 'destroy') {\r\n if (!noInit) {\r\n webuiPopover = new WebuiPopover(this, null);\r\n results.push(webuiPopover[options]());\r\n }\r\n }\r\n } else if (typeof options === 'object') {\r\n webuiPopover = new WebuiPopover(this, options);\r\n }\r\n $.data(this, 'plugin_' + pluginName, webuiPopover);\r\n } else {\r\n if (options === 'destroy') {\r\n webuiPopover.destroy();\r\n } else if (typeof options === 'string') {\r\n results.push(webuiPopover[options]());\r\n }\r\n }\r\n });\r\n return (results.length) ? results : $result;\r\n };\r\n\r\n //Global object exposes to window.\r\n var popovers = (function() {\r\n var _hideAll = function() {\r\n hideAllPop();\r\n };\r\n var _create = function(selector, options) {\r\n options = options || {};\r\n $(selector).pp_ln(options);\r\n };\r\n var _isCreated = function(selector) {\r\n var created = true;\r\n $(selector).each(function(item) {\r\n created = created && $(item).data('plugin_' + pluginName) !== undefined;\r\n });\r\n return created;\r\n };\r\n var _show = function(selector, options) {\r\n if (options) {\r\n $(selector).pp_ln(options).pp_ln('show');\r\n } else {\r\n $(selector).pp_ln('show');\r\n }\r\n };\r\n var _hide = function(selector) {\r\n $(selector).pp_ln('hide');\r\n };\r\n return {\r\n show: _show,\r\n hide: _hide,\r\n create: _create,\r\n isCreated: _isCreated,\r\n hideAll: _hideAll\r\n };\r\n })();\r\n window.pp_ln = popovers;\r\n }));\r\n})(window, document);\r\n\n\n\n// WEBPACK FOOTER //\n// ./magaele/pp_ln/module.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/cd_gpcb/css.scss\n// module id = 37\n// module chunks = 2 6","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/tb_gplx/css.scss\n// module id = 41\n// module chunks = 2 8","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/th_gplt/css.scss\n// module id = 43\n// module chunks = 1 2","import 'Magaele/ntb_gpbt/module.js';\r\nimport 'Magaele/cy_lsgp/module.js';\r\nimport 'Magaele/clp_gplt/module.js';\r\nimport 'Magaele/nvb_gptb/module.js';\r\nimport 'Magaele/st_lnls/module.js';\r\nimport 'Magaele/clp_gpby/module.js';\r\nimport 'Magaele/mdl_lnls/module.js';\r\nimport 'Magaele/pp_ln/module.js';\r\nimport 'Magaele/cy-ln/module.js';\n\n\n// WEBPACK FOOTER //\n// ./entry/products_script.entry.js","import 'Magaele/ps_lnls/css.scss';\r\nimport 'Magaele/ntb_gpbt/css.scss';\r\nimport 'Magaele/cy_lsgp/css.scss';\r\nimport 'Magaele/cd_gpcb/css.scss';\r\nimport 'Magaele/bt_gppp/css.scss';\r\nimport 'Magaele/bt_gptr/css.scss';\r\nimport 'Magaele/cd_gpfl/css.scss';\r\nimport 'Magaele/ic-ln/css.scss';\r\nimport 'Magaele/bt_slbx/css.scss';\r\nimport 'Magaele/clp_gplt/css.scss';\r\nimport 'Magaele/cd_gpdy/css.scss';\r\nimport 'Magaele/nvb_gptb/css.scss';\r\nimport 'Magaele/st_lnls/css.scss';\r\nimport 'Magaele/bt_gplt/css.scss';\r\nimport 'Magaele/clp_gpby/css.scss';\r\nimport 'Magaele/mdl_lnls/css.scss';\r\nimport 'Magaele/th_gplt/css.scss';\r\nimport 'Magaele/tp_gplt/css.scss';\r\nimport 'Magaele/tp_gpls/css.scss';\r\nimport 'Magaele/lb_gplt/css.scss';\r\nimport 'Magaele/tb_gplx/css.scss';\r\nimport 'Magaele/pp_ln/css.scss';\r\nimport 'Magaele/cy-ln/css.scss';\r\nimport 'Magaele/fcl_lnls/css.scss';\r\n\r\n\r\nimport \"../css/css.scss\"; \n\n\n// WEBPACK FOOTER //\n// ./entry/products_style.entry.js","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/bt_gppp/css.scss\n// module id = 72\n// module chunks = 2","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/bt_slbx/css.scss\n// module id = 73\n// module chunks = 2","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/cd_gpdy/css.scss\n// module id = 75\n// module chunks = 2","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/cd_gpfl/css.scss\n// module id = 76\n// module chunks = 2","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/cy_lsgp/css.scss\n// module id = 79\n// module chunks = 2","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/lb_gplt/css.scss\n// module id = 85\n// module chunks = 2","// removed by extract-text-webpack-plugin\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./magaele/tp_gpls/css.scss\n// module id = 93\n// module chunks = 2","/**\r\n * Created by LinFF on 2017/5/6.\r\n */\r\n(function($){\r\n 'use strict';\r\n\r\n var ModuleName = 'cy_lsgp';\r\n\r\n var Module = function(elem,options){\r\n this.elem = $(elem);\r\n this.options = options;\r\n this.stop = true;\r\n this.currD = null;/*存储当前月历第一组的日期*/\r\n this.newDate = null;/*存储点击prev按钮之后变动的日期*/\r\n this.dataArr = [];/*存储数据*/\r\n this.dataArrSortbyDate = {};/*資料依照日期分類*/\r\n this.dataToRender = [];/*要渲染的數據*/\r\n this.selectTD = null;/*当前月的所有TD*/\r\n this.$nextButton = null;\r\n this.$prevButton = null;\r\n this.guaranteed = this.options.dataKeySetting['保证出团'];//保证出团\r\n this.status = this.options.dataKeySetting['状态'];//状态\r\n this.availableVacancy = this.options.dataKeySetting['可卖团位'];//可賣團位\r\n this.totalVacnacy = this.options.dataKeySetting['总团位'];//總團位\r\n this.price = this.options.dataKeySetting['价格'];//價格\r\n this.group = '看更多团';//区分看更多团的html结构\r\n };\r\n\r\n Module.DEFAULTS = {\r\n monthNumber: 'double', // single, double\r\n showMonthControl: true,\r\n minMonthDate: '',\r\n maxMonthDate: '',\r\n initYearMonth: '',\r\n initData: [],\r\n selectedDate: null,\r\n dataKeySetting: {\r\n '保证出团': 'guaranteed',\r\n '状态': 'status',\r\n '可卖团位': 'availableVacancy',\r\n '总团位': 'totalVacnacy',\r\n '价格': 'price'\r\n },\r\n onClickPrev: function( $prevBtn,data){},\r\n onClickNext: function( $nextBtn,data ){},\r\n onClickDate: function( $thisDate ){}\r\n };\r\n //初始化\r\n Module.prototype.init = function(){\r\n this.inputData(this.options.initData);\r\n this.renderData(this.options.initYearMonth);\r\n };\r\n\r\n Module.prototype.showMonthController = function() {\r\n var $header = this.elem.find('.header');\r\n // console.log($header, this.options.showMonthControl);\r\n if ( this.options.showMonthControl === false ) {\r\n $header.hide();\r\n } else {\r\n $header.show();\r\n }\r\n };\r\n\r\n /*渲染数据*/\r\n Module.prototype.renderData = function(arg){\r\n if( typeof arg == 'string' ){\r\n this.currD = arg;\r\n } else if ( arg instanceof Array ){\r\n this.currD = arg[0];\r\n }\r\n var data = this.currD.substring(0,4) + '-'+ this.currD.substring(4);\r\n var nextD = new Date(data);\r\n var curr = new Date(data);\r\n this.currD = curr;\r\n var next = new Date(nextD.setMonth(nextD.getMonth()+1));\r\n var calendar = this.elem;\r\n var prevDate = curr.getFullYear() + ' ' + (curr.getMonth()+1) + '月';\r\n var nextDate = next.getFullYear() + ' ' + (next.getMonth()+1) + '月';\r\n if(this.stop){\r\n /*将框架append到页面中*/\r\n calendar.html(this.frameTemp(prevDate,nextDate));\r\n //var prevTable = this.options.monthNumber === 'double' ? calendar.find('.js_prev_month_table') : calendar.find('.month_table');\r\n /*20180321 添加只显示价格日历*/\r\n var prevTable = null;\r\n\r\n switch(this.options.monthNumber){\r\n case \"double\":\r\n prevTable = calendar.find('.js_prev_month_table');\r\n break;\r\n case \"single\":\r\n case \"simple\":\r\n prevTable = calendar.find('.month_table');\r\n break;\r\n }\r\n /*end*/\r\n var prevTbody = prevTable.find('tbody');\r\n var nextTable = calendar.find('.js_next_month_table');\r\n var nextTbody = nextTable.find('tbody');\r\n this.$nextButton = this.elem.find('.js_next');\r\n this.$prevButton = this.elem.find('.js_prev');\r\n // console.log('prevTable:', prevTable, 'nextTable:', nextTable);\r\n // console.log('prevTbody:', prevTbody, 'nextTbody:', nextTbody);\r\n this.createCalendar(curr,prevTbody);\r\n this.createCalendar(next,nextTbody);\r\n this.onClickPrevEvent();\r\n this.onClickNextEvent();\r\n this.showMonthController();\r\n this.onClickTd();\r\n\r\n /*将数据填到表格中*/\r\n for(var i = 0; i < this.dataToRender.length; i++){\r\n var elem = calendar.find('td[date='+'\\'' + this.dataToRender[i].date+'\\''+']');\r\n var selectTd = elem.find('.js_day');\r\n var haveGroups = false;\r\n var tip = null;\r\n /*20180323 只显示价格日历*/\r\n var className = this.options.monthNumber == 'simple' ? 'hasData hasPrice' : 'hasData';\r\n elem.addClass(className);\r\n /*end*/\r\n elem.data(this.dataToRender[i]);\r\n if(!this.haveSeveralGroups(this.dataToRender[i].date) && this.options.monthNumber != 'simple'){\r\n tip = elem.find('.js_tip');\r\n // console.log(selectTd);\r\n selectTd.append(this.dataTemp(1, this.dataToRender[i]));\r\n if(this.dataToRender[i][this.guaranteed]){\r\n tip.show();\r\n } else{\r\n tip.hide();\r\n }\r\n }\r\n /*20180321 只显示价格日历*/\r\n else if(this.options.monthNumber == 'simple'){\r\n tip = elem.find('.js_tip');\r\n // console.log(selectTd);\r\n selectTd.append(this.dataTemp(2, this.dataToRender[i]));\r\n }\r\n /*end*/\r\n else{\r\n selectTd.append(this.dataTemp(0, this.dataToRender[i]));\r\n }\r\n }\r\n }\r\n };\r\n\r\n /*存储数据*/\r\n Module.prototype.inputData = function(arg){\r\n var argLen = arg.length;\r\n var dataArrLen = this.dataArr.length;\r\n\r\n if(dataArrLen == 0){ //首次存入数据\r\n this.dataArr = arg;\r\n } else {\r\n for(var i = 0;i < argLen;i++) {\r\n var index = -1;\r\n for(var j = 0;j < this.dataArr.length; j++){\r\n if(this.dataArr[j].date == arg[i].date && this.dataArr[j].id == arg[i].id){\r\n index = j;\r\n break;\r\n }\r\n }\r\n if(index != -1){\r\n this.dataArr[index] = arg[i];\r\n }else{\r\n this.dataArr.push(arg[i]);\r\n }\r\n }\r\n }\r\n //Sort data by date\r\n this.dataArrSortbyDate={};\r\n for(var i = 0; i < this.dataArr.length; i ++) {\r\n var date = this.dataArr[i].date;\r\n if(date in this.dataArrSortbyDate) {\r\n this.dataArrSortbyDate[date].push(this.dataArr[i]);\r\n } else {\r\n this.dataArrSortbyDate[date] = [this.dataArr[i]];\r\n }\r\n }\r\n\r\n // 取出每日最低價\r\n var keys = Object.keys(this.dataArrSortbyDate);\r\n this.dataToRender = [];\r\n for(var i = 0; i < keys.length; i ++) {\r\n var targetIndex = 0,\r\n lowestPrice;\r\n for(var j = 0; j < this.dataArrSortbyDate[keys[i]].length; j++) {\r\n var currPrice = this.dataArrSortbyDate[keys[i]][j].price.toString().match(/\\d+/g);\r\n if (!lowestPrice) {\r\n if (currPrice) {\r\n lowestPrice = parseInt(currPrice.join(''));\r\n }\r\n } else {\r\n if (currPrice && currPrice < lowestPrice) {\r\n lowestPrice = parseInt(currPrice.join(''));\r\n targetIndex = j;\r\n }\r\n }\r\n }\r\n this.dataToRender.push(this.dataArrSortbyDate[keys[i]][targetIndex]);\r\n }\r\n };\r\n Module.prototype.haveSeveralGroups = function (date) {\r\n if (this.dataArrSortbyDate[date].length > 1) return true;\r\n }\r\n /*td点击事件*/\r\n Module.prototype.onClickTd = function(){\r\n var _this = this;\r\n this.selectTD = this.elem.find('.currentDays');\r\n this.selectTD.bind('click',function(){\r\n if ($(this).hasClass('hasData')) {\r\n _this.options.onClickDate.call(_this,$(this));\r\n _this.options.selectedDate = $(this).attr('date');\r\n _this.selectTD.removeClass('active');\r\n $(this).addClass('active');\r\n }\r\n });\r\n };\r\n\r\n /*prev点击事件*/\r\n Module.prototype.onClickPrevEvent = function(){\r\n var _this = this;\r\n this.$prevButton.on('click',function(e){\r\n e.preventDefault();\r\n _this.goMonth('prev');\r\n });\r\n };\r\n\r\n /*next点击事件*/\r\n Module.prototype.onClickNextEvent = function(){\r\n var _this = this;\r\n this.$nextButton.on('click',function(e){\r\n e.preventDefault();\r\n _this.goMonth('next');\r\n });\r\n };\r\n\r\n /*上两个月*/\r\n Module.prototype.prevMonth = function(){\r\n this.stop = true;\r\n this.renderData(this.newDate);\r\n };\r\n\r\n /*下两个月*/\r\n Module.prototype.nextMonth = function(){\r\n this.stop = true;\r\n this.renderData(this.newDate);\r\n };\r\n\r\n Module.prototype.goMonth = function( prevnext ){\r\n var _this = this;\r\n var yearNumberBefore = this.currD.getFullYear();\r\n var monthNumberBefore = this.currD.getMonth()+1;\r\n var monthNumberAfter;\r\n var monthStringAfter;\r\n var monthLenAfter;\r\n var monthAfter;\r\n var isNext = function( a, b, c ) {\r\n var isTure = true;\r\n if ( typeof a === 'number' ) {\r\n if ( a > b ) {\r\n isTure = true;\r\n } else if ( a < b ) {\r\n isTure = false;\r\n } else {\r\n console.log('You assign month number same with current');\r\n }\r\n } else if ( typeof a === 'string' ) {\r\n if ( a === 'prev' ) {\r\n isTure = false;\r\n } else if ( a === 'next' ) {\r\n isTure = true;\r\n } else if ( /([12][0-9]{3})(0[1-9]|1[0-2])/.test(a) ) {\r\n if ( c > Number(a.substr(0,4)) ) {\r\n isTure = true;\r\n } else if ( b > Number(a.slice(-2)) ) {\r\n isTure = true;\r\n } else {\r\n isTure = false;\r\n }\r\n } else {\r\n throw 'You must assign `prev` or `next` or number';\r\n }\r\n } else {\r\n throw 'You must assign `prev` or `next` or number';\r\n }\r\n return isTure;\r\n }( prevnext, monthNumberBefore, yearNumberBefore );\r\n var monthDistanceNum = function( a, b, c, d, e ) {\r\n var num;\r\n var yearNumberAfter;\r\n var monthNumberAfter;\r\n var yearDistance;\r\n var monthDistance;\r\n if ( typeof a === 'number' ) {\r\n num = a - b;\r\n } else if ( a === 'prev' || a === 'next' ) {\r\n if ( e === 'double' ) {\r\n num = d ? 2 : -2;\r\n }\r\n /*20180322 只显示价格日历*/\r\n else if ( e === 'single' || e === 'simple') {\r\n num = d ? 1 : -1;\r\n }\r\n /*end*/\r\n } else if ( /([12][0-9]{3})(0[1-9]|1[0-2])/.test(a) ) {\r\n yearNumberAfter = Number(a.substr(0,4));\r\n monthNumberAfter = Number(a.slice(-2));\r\n yearDistance = (yearNumberAfter - c) * 12;\r\n monthDistance = monthNumberAfter - b;\r\n num = yearDistance + monthDistance;\r\n } else {\r\n throw 'You must assign `prev` or `next` or number';\r\n }\r\n return num;\r\n }( prevnext, monthNumberBefore, yearNumberBefore, isNext, this.options.monthNumber )\r\n var callback = isNext ? this.options.onClickNext : this.options.onClickPrev;\r\n var $contorlButton = !!isNext ? this.$nextButton : this.$prevButton;\r\n this.setMonthDate( monthDistanceNum );\r\n monthNumberAfter = this.currD.getMonth()+1;\r\n monthStringAfter = monthNumberAfter.toString();\r\n monthLenAfter = monthStringAfter.length;\r\n monthAfter = monthLenAfter >= 2 ? monthStringAfter : '0' + monthStringAfter;\r\n this.newDate = this.currD.getFullYear().toString() + monthAfter;\r\n\r\n // Check if nextStatus is avaliable( Larger than maxMonthDate or smaller than minMonthDate).\r\n var opts = this.options;\r\n var minD = this.transDateFormat(opts.minMonthDate, 'string');\r\n var maxD = this.transDateFormat(opts.maxMonthDate, 'string');\r\n if ( !!minD && (this.newDate < minD)) {\r\n console.log(\"Month can't be SMALLER than MAX.\")\r\n this.setMonthDate(-monthDistanceNum);\r\n } else if ( !!maxD && (maxD < this.newDate)) {\r\n console.log(\"Month can't be LARGER than MAX.\")\r\n this.setMonthDate(-monthDistanceNum);\r\n } else {\r\n this.renderData(this.newDate);\r\n }\r\n if ( typeof callback === 'function' ) {\r\n callback.call(_this, _this.elem, $contorlButton, this.newDate);\r\n }\r\n };\r\n\r\n Module.prototype.transDateFormat = function(date, type) {\r\n var transform = function(date) {\r\n if( typeof date == 'string' ){\r\n var year = date.substring(0,4);\r\n var month = date.substring(4) - 1;\r\n return new Date( year, month )\r\n } else if ( date instanceof Array ){\r\n var month = date.getMonth() + 1;\r\n return date.getFullYear() + (9 < month?month:'0'+month)\r\n } else console.log(\"type must be 'data' or 'date'\")\r\n }\r\n\r\n if (type == 'string') {\r\n if (typeof date == 'string' ) return date;\r\n else return transform(date);\r\n } else if ( type == 'date' ) {\r\n if ( date instanceof Array ) return date;\r\n else return transform(date);\r\n }\r\n }\r\n\r\n /*重置当前两个月*/\r\n Module.prototype.setMonthDate = function(month, year){\r\n this.currD = new Date(this.currD.setMonth(this.currD.getMonth()+month));\r\n };\r\n\r\n /*构建日历*/\r\n Module.prototype.createCalendar = function(currDate,tbody){\r\n var currMonth = new Date(currDate.getFullYear(),currDate.getMonth()+1,0);\r\n var currMonthDays = currMonth.getDate();\r\n var lastMonth = new Date(currDate.getFullYear(),currDate.getMonth(),0);\r\n var lastMonthDays = lastMonth.getDate();\r\n var currMonthFirstDay = new Date(currDate.getFullYear(),currDate.getMonth(),1);\r\n var day = currMonthFirstDay.getDay();\r\n var allDays = currMonthDays-(7-day);\r\n var count = allDays % 7;\r\n var days = allDays - count;\r\n var lastTrDays = currMonthDays - count;\r\n var d = 7 - day;\r\n var trCount = Math.floor(days / 7);\r\n var str = '';\r\n var str2 = '';\r\n var maxNum = 14;\r\n var a = 7;\r\n var everyDay = '';\r\n var year = currDate.getFullYear();\r\n var math = (currDate.getMonth()+1).toString().length >=2 ? (currDate.getMonth()+1).toString() : '0' + (currDate.getMonth()+1).toString();\r\n\r\n /*第一行表格设置 */\r\n if(day > 0){\r\n /*计算上个月在第一行占多少格*/\r\n str += '';\r\n for(var i1 = (0 - (day-1));i1 <= 0;i1++){\r\n str += this.daysTemp(0,(lastMonthDays + i1));\r\n }\r\n /*计算当前月在第一行占多少格*/\r\n for(var i2 = 0; i2 < (7-day);i2++){\r\n everyDay = year + '/' + math + '/' + '0' + (i2+1);\r\n str += this.daysTemp(1,(i2+1),everyDay);\r\n }\r\n str += '';\r\n }else{\r\n str += '';\r\n for(var i3 = 0;i3 < 7;i3++){\r\n everyDay = year + '/' + math + '/' + '0' + (i3+1);\r\n str += this.daysTemp(1,(i3+1),everyDay);\r\n }\r\n str += ''\r\n }\r\n\r\n /*二到六行表格设置*/\r\n /*以下方法不区分trCount的值 默认的创建日历方式*/\r\n for(var i4 = 0;i4 < trCount;i4++){\r\n str += '';\r\n for(var c = 0;c < 7;c++){\r\n if(d= 2 ? dayNum = d : dayNum = '0'+ d;\r\n everyDay = year + '/' + math + '/' + (dayNum);\r\n str += this.daysTemp(1,(d),everyDay);\r\n }\r\n }\r\n str += '';\r\n }\r\n /*\r\n * 当trCount == 4时 此时已经创建总共五行的tr 只要判断count 余数的情况 即可创建第六行\r\n * 当trCount == 3时 此时已经创建总共四行的tr 判断count 余数的情况 即可创建第五行\r\n * */\r\n if(count == 0){\r\n str += '';\r\n for(var i5 = 1;i5 <= 7;i5++){\r\n str += this.daysTemp(0,(i5));\r\n }\r\n str += '';\r\n }else{\r\n str += '';\r\n for(var i6 = 1;i6 < count + 1;i6++){\r\n everyDay = year + '/' + math + '/' + (lastTrDays + i6);\r\n str += this.daysTemp(1,(lastTrDays + i6),everyDay,'none','截止','99','99','$9999');\r\n }\r\n for(var i7 = 1;i7 < 7 - count + 1;i7++){\r\n str += this.daysTemp(0,(i7));\r\n }\r\n str += '';\r\n }\r\n $(tbody).empty().append(str);\r\n\r\n /*\r\n * 当trCount == 3时 需要判断count 的两种情况 从而对第六行进行设置 填充正确的日期\r\n * */\r\n if(trCount == 3 && count > 0){\r\n str2 += '';\r\n for(var i8 = 7 - count+1; i8 < 7+7-count+1;i8++){\r\n str2 += this.daysTemp(0,(i8));\r\n }\r\n str2 += '';\r\n }else if(trCount == 3 && count == 0){\r\n str2 += '';\r\n for(var i9 = 0;i9 < 7;i9++){\r\n if(a < maxNum){\r\n a++;\r\n str2 += this.daysTemp(0,(a));\r\n }\r\n }\r\n str2 += '';\r\n }\r\n $(tbody).append(str2);\r\n };\r\n\r\n /* 构建日历header以及table框架*/\r\n Module.prototype.frameTemp = function(prevData,nextData){\r\n /*20180321 只显示价格日历*/\r\n //var isDouble = this.options.monthNumber !== 'single';\r\n var className = '';\r\n\r\n switch (this.options.monthNumber){\r\n case \"double\":\r\n className = '';\r\n break;\r\n case \"single\":\r\n className = 'single';\r\n break;\r\n case \"simple\":\r\n className = 'simple';\r\n break;\r\n }\r\n\r\n var week = className == 'simple'? '日 一 二 三 四 五 六' : '星期日 星期一 星期二 星期三 星期四 星期五 星期六';\r\n\r\n var isDoubleTemp = '
    '+\r\n '
    '+\r\n '
    '+\r\n ''+\r\n '' + prevData + ''+\r\n '
    '+\r\n '
    '+\r\n ''+\r\n ''+\r\n ''+\r\n '
    星期日 星期一 星期二 星期三 星期四 星期五 星期六
    '+\r\n '
    '+\r\n '
    '+\r\n '
    '+\r\n '
    '+\r\n ''+\r\n '' + nextData + ''+\r\n '
    '+\r\n '
    '+\r\n ''+\r\n ''+\r\n ''+\r\n '
    星期日 星期一 星期二 星期三 星期四 星期五 星期六
    '+\r\n '
    '+\r\n '
    '+\r\n '
    ';\r\n var isSingleTemp = '
    '+\r\n '
    '+\r\n '
    '+\r\n ''+\r\n '' + prevData + ''+\r\n ''+\r\n '
    '+\r\n '
    '+\r\n ''+\r\n ''+ week +''+\r\n ''+\r\n '
    '+\r\n '
    '+\r\n '
    '+\r\n '
    ';\r\n /*20180321 只显示价格日历*/\r\n switch (this.options.monthNumber){\r\n case \"double\":\r\n return isDoubleTemp;\r\n break;\r\n case \"single\":\r\n case \"simple\":\r\n return isSingleTemp;\r\n break;\r\n }\r\n /*end*/\r\n };\r\n\r\n /*構建數據html模板*/\r\n Module.prototype.dataTemp = function(type, data){\r\n var statusLabel = ''+ data[this.status] +'';\r\n switch(data[this.status]) {\r\n case \"报名\":\r\n case \"预定\":\r\n statusLabel = ''+ data[this.status] +'';\r\n break;\r\n case \"额满\":\r\n case \"关团\":\r\n statusLabel = ''+ data[this.status] +'';\r\n break;\r\n case \"请洽专员\":\r\n statusLabel = ''+\r\n data[this.status] +'';\r\n break;\r\n }\r\n /*20180321 只显示价格日历*/\r\n this.options.monthNumber != \"simple\" && this.haveSeveralGroups(data.date) && (statusLabel = ''+ '看更多团' +'');\r\n /*end*/\r\n if(type == 1){\r\n return '
    '+\r\n statusLabel+\r\n '可卖 : '+ data[this.availableVacancy] + ''+\r\n '团位 : '+ data[this.totalVacnacy] +''+\r\n ''+ data[this.price] +''+\r\n '
    ';\r\n }\r\n /*20180321 修改日历days内容*/\r\n else if(type == 2){\r\n return '
    '+\r\n ''+ data[this.price] +''+\r\n '
    ';\r\n }\r\n /*end*/\r\n else{\r\n /*20180321 修改日历days内容*/\r\n var words = null;\r\n if(this.options.monthNumber != \"simple\" && data[this.price]){\r\n var result = data[this.price].toString();\r\n words = result.indexOf(\"起\")+1 == data[this.price].length ? '' : ''\r\n }else{\r\n words = '';\r\n }\r\n /*end*/\r\n return '
    '+\r\n statusLabel+\r\n ''+ data[this.price] + words+''+\r\n '
    ';\r\n }\r\n };\r\n\r\n /*構建日曆天數html模板 */\r\n Module.prototype.daysTemp = function( type, date, days ){\r\n var _this = this;\r\n var opts = _this.options;\r\n if( type == 1 ) {\r\n return ''+\r\n '
    '+\r\n ''+ date +''+\r\n '成团'+\r\n '
    '+\r\n ''\r\n } else {\r\n return '\\\r\n
    \\\r\n \\\r\n '\r\n }\r\n };\r\n\r\n $.fn[ModuleName] = function ( options1,options2 ) {\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 options1 === 'string' && typeof options2 === 'undefined' ) {\r\n module[options1]();\r\n } else if ( typeof options1 === 'string' && typeof options2 === 'string' || options2 instanceof Array || typeof options2 === 'number' ) {\r\n module[options1](options2);\r\n } else {\r\n console.log('unsupported options!');\r\n throw 'unsupported options!';\r\n }\r\n } else {\r\n opts = $.extend( {}, Module.DEFAULTS,( typeof options1 === 'object' && options1 ));\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})(jQuery);\n\n\n// WEBPACK FOOTER //\n// ./magaele/cy_lsgp/module.js"],"sourceRoot":""}