{
"version":3,
"file":"common-util.js",
"lineCount":107,
"mappings":"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",
"sources":["common-util.js"],
"sourcesContent":["\nfunction _instanceof(left, right) { if (right != null && typeof Symbol !== \"undefined\" && right[Symbol.hasInstance]) { return !!right[Symbol.hasInstance](left); } else { return left instanceof right; } }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nwindow.debugEnabled = false;\nwindow.log = function () {\n  if (debugEnabled && window.console) {\n    window.console.log.apply(this, arguments);\n  }\n};\nString.prototype.trim = function () {\n  return this.replace(/(^\\s*)|(\\s*$)/g, \"\");\n};\nString.prototype.replaceAll = function (string, replaceWith, ignoreCase) {\n  if (!RegExp.prototype.isPrototypeOf(string)) {\n    return this.replace(new RegExp(string, ignoreCase ? \"gi\" : \"g\"), replaceWith);\n  } else {\n    return this.replace(string, replaceWith);\n  }\n};\nString.prototype.startsWith = function (str) {\n  return (!isEmpty(str) || this.length || str.length <= this.length) && this.substring(0, str.length) == str;\n};\nString.prototype.endsWith = function (str) {\n  return (!isEmpty(str) || this.length || str.length <= this.length) && this.substring(this.length - str.length) == str;\n};\nDate.prototype.subtract = function (dateLimit) {\n  return moment(this).subtract(dateLimit).toDate();\n};\nDate.prototype.add = function (dateLimit) {\n  return moment(this).add(dateLimit).toDate();\n};\n$(function () {\n  $.fn.dataAndRemove = function (key) {\n    var val = this.data(key);\n    this.removeData(key);\n    return val;\n  };\n  $.fn.dataAndReturnOld = function (key, val) {\n    var oldVal = this.data(key);\n    this.data(key, val);\n    return oldVal;\n  };\n});\nObject.assign(window.wmf = window.wmf || {}, {\n  path: {\n    /**\n     * \u901a\u8fc7\u95e8\u5e97id\u83b7\u53d6\u5546\u6237id\n     */\n    eid: function eid(rid) {\n      var key = 'enterpriseId_' + rid;\n      var enterpriseId = localStorage.getItem(key);\n      if (!enterpriseId) {\n        $.ajax({\n          async: false,\n          url: '/common/eid?rid=' + rid,\n          success: function success(result) {\n            if (result.success) {\n              enterpriseId = result.eid;\n              localStorage.setItem(key, result.eid);\n            }\n          }\n        });\n      }\n      return enterpriseId;\n    },\n    /**\n     * /e[0-9]+/**\n     */\n    prefix: function prefix(rid) {\n      var eid = wmf.path.eid(rid);\n      return wmf.path.prefixByEid(eid);\n    },\n    /**\n     * /e[0-9]+/**\n     */\n    prefixByEid: function prefixByEid(eid) {\n      if (eid == null) {\n        eid = '0';\n      }\n      return '/e' + eid;\n    },\n    /**\n     * \u79fb\u52a8\u9875\u9762\u76f8\u5173\u8def\u5f84\uff1a/e[0-9]+/m/**\n     */\n    mobile: function mobile(rid) {\n      return wmf.path.prefix(rid) + '/m';\n    },\n    /**\n     * \u79fb\u52a8\u9875\u9762\u76f8\u5173\u8def\u5f84\uff1a/e[0-9]+/m/**\n     */\n    mobileByEid: function mobileByEid(eid) {\n      return wmf.path.prefixByEid(eid) + '/m';\n    },\n    /**\n     * \u6d3b\u52a8\u76f8\u5173\u8def\u5f84\uff1a/e[0-9]+/a/**\n     */\n    activity: function activity(rid) {\n      return wmf.path.prefix(rid) + '/a';\n    }\n  },\n  util: {\n    svgresize: function svgresize(svgEl, resizeScale) {\n      var width = svgEl.getAttribute(\"width\");\n      var height = svgEl.getAttribute(\"height\");\n      var newWidth = width * resizeScale;\n      var newHeight = height * resizeScale;\n      svgEl.setAttribute(\"width\", newWidth);\n      svgEl.setAttribute(\"height\", newHeight);\n      svgEl.setAttribute(\"viewBox\", '0 0 ' + width + ' ' + height);\n    },\n    svg2png: function svg2png(svgElement, callback) {\n      var svgString = new XMLSerializer().serializeToString(svgElement);\n      var img = new Image();\n      img.onload = function () {\n        var canvas = document.createElement(\"canvas\");\n        canvas.width = img.width;\n        canvas.height = img.height;\n        var ctx = canvas.getContext(\"2d\");\n        ctx.drawImage(img, 0, 0);\n        var pngDataUrl = canvas.toDataURL(\"image/png\");\n        callback(pngDataUrl);\n      };\n      img.src = 'data:image/svg+xml;charset=utf-8,' + svgString;\n    },\n    download: function download(url, opts) {\n      wmf.util.blockUI({\n        message: I18N.t('\u6b63\u5728\u4e0b\u8f7d\uff0c\u8bf7\u7a0d\u540e...'),\n        delayedShowMills: 800\n      });\n      opts = $.extend({}, {\n        closeDialog: true\n      }, opts || {});\n      function downloadInternal() {\n        if ($.fileDownload) {\n          $.fileDownload(url, {\n            httpMethod: 'get',\n            successCallback: function successCallback(url) {\n              if (opts.closeDialog) {\n                closeDialog();\n              }\n              wmf.util.unblockUI();\n            },\n            failCallback: function failCallback(html, url) {\n              wmf.util.unblockUI();\n              alert(I18N.t('\u4e0b\u8f7d\u5931\u8d25\uff0c\u8bf7\u91cd\u8bd5'));\n            }\n          });\n        } else {\n          $.getScript(___cdnActiveHost + \"/js/jquery/file_download/1.4.2/jquery.fileDownload.min.js\", function () {\n            downloadInternal(url);\n          });\n        }\n      }\n      downloadInternal();\n    },\n    innerPage: function innerPage(selector, callback) {\n      var initMethod = function initMethod(tryCnt) {\n        if (tryCnt <= 0) {\n          throw new Error(\"InnerPage is not defined\");\n        }\n        if (typeof InnerPage === 'undefined') {\n          var callDelayed = function callDelayed() {\n            clearTimeout(callDelayed);\n            initMethod(tryCnt - 1);\n          };\n          setTimeout(callDelayed, 200);\n        } else {\n          //console.error('innerPage callback')\n          callback(InnerPage.init(selector));\n        }\n      };\n      return initMethod(5);\n    },\n    proxy: function proxy(fun) {\n      fun.apply(this, Array.prototype.slice.call(arguments).slice(1));\n    },\n    require: function require(sign, resourceUrl, callback) {\n      if (sign) {\n        callback();\n      } else {\n        $.getScript(resourceUrl, function () {\n          callback();\n        });\n      }\n    },\n    hostName: function hostName() {\n      return location.origin;\n    },\n    bindSelectAll: function bindSelectAll(eId, name, m, callback) {\n      var all = $('#' + eId);\n      if (m) {\n        all.bind('click', function () {\n          if (all.is(':checked')) {\n            wmf.util.checkAll(name);\n          } else {\n            wmf.util.uncheckAll(name);\n          }\n          if (callback && typeof callback == 'function') {\n            callback($(this), name);\n          }\n        });\n      } else {\n        all.hide();\n      }\n      var checkbox = $(':checkbox[name=\"' + name + '\"]:not(:disabled)');\n      checkbox.bind('click', function () {\n        if (!m) {\n          checkbox.prop({\n            checked: false\n          });\n          $(this).prop({\n            checked: true\n          });\n        }\n        if (callback && typeof callback == 'function') {\n          callback($(this), name);\n        }\n      });\n    },\n    checkAll: function checkAll(name) {\n      $(':checkbox[name=\"' + name + '\"]:not(:disabled)').prop({\n        checked: true\n      });\n    },\n    uncheckAll: function uncheckAll(name) {\n      $(':checkbox[name=\"' + name + '\"]:checked').prop({\n        checked: false\n      });\n    },\n    checkboxAllSupport: function checkboxAllSupport(fieldName, $root) {\n      var $checkboxAll = $(':input[name=\"' + fieldName + '\"]', $root);\n      $checkboxAll.bind('click', function () {\n        toggleClick(this);\n      });\n      toggleClick($(':input[name=\"' + fieldName + '\"]:checked', $root));\n      function toggleClick(elem) {\n        var fieldNameClassName = fieldName.replace(\".\", \"\\\\.\");\n        $('.checkbox-all-support-' + fieldNameClassName).hide();\n        var _currentValue = $(elem).val();\n        $('.checkbox-all-support-' + fieldNameClassName + '-' + _currentValue).show();\n      }\n    },\n    getCheckedValue: function getCheckedValue(name) {\n      var selectedValues = [];\n      var cbx = $(':checkbox[name=\"' + name + '\"]:checked');\n      cbx.each(function () {\n        selectedValues.push($(this).val());\n      });\n      return selectedValues;\n    },\n    getCheckedAttr: function getCheckedAttr(name, attr) {\n      var selectedValues = [];\n      var cbx = $(':checkbox[name=\"' + name + '\"]:checked');\n      cbx.each(function () {\n        selectedValues.push($(this).attr(attr));\n      });\n      return selectedValues;\n    },\n    getCheckedAttrObject: function getCheckedAttrObject(name, attrs) {\n      var selectedObjects = [];\n      var cbx = $(':checkbox[name=\"' + name + '\"]:checked');\n      cbx.each(function () {\n        var _this = $(this);\n        var object = {\n          'value': _this.val()\n        };\n        for (var a in attrs) {\n          var attr = attrs[a];\n          object[attr] = _this.attr(attr);\n        }\n        selectedObjects.push(object);\n      });\n      return selectedObjects;\n    },\n    getSelectedLabel: function getSelectedLabel(id) {\n      var label = $('#' + id + ' option:selected').html();\n      return label == I18N.t('\u8bf7\u9009\u62e9') ? '' : label;\n    },\n    blockUI: function blockUI(options) {\n      var msg;\n      if (typeof options === 'string') {\n        msg = options;\n      } else if (_typeof(options) === 'object') {\n        msg = options.msg;\n      }\n      msg = msg || I18N.t('\u52a0\u8f7d');\n      var smallWindow = $(window).width() < 450;\n      options = $.extend({}, {\n        message: smallWindow ? msg : msg + I18N.t('\u4e2d\uff0c\u8bf7\u7a0d\u540e...'),\n        delayedShowMills: 0\n      }, options || {});\n      if ($.blockUI) {\n        var blockUIDom = $(\".block_ui_message .message\");\n        $(window).data(\"__blockUI_currentId\", options.blockUiId || short8UUID());\n        var isCalledBlockUi = $(window).dataAndReturnOld(\"__blockUI_called\", true);\n        if (blockUIDom.length && isCalledBlockUi) {\n          blockUIDom.html(options.message);\n        } else {\n          $.blockUI.defaults.css['border'] = 'none';\n          var blockUiClassName = 'block_ui_message-container-' + short8UUID();\n          var $blockUiMsg = $('<div class=\"block_ui_message-container ' + blockUiClassName + '\"></div>');\n          var showMsgContent = '' + '<div class=\"block_ui_message\">' + '   <div class=\"content-loading\"></div>' + '   <h3 class=\"message\">' + options.message + '</h3>' + '</div>';\n          var showBlockUiOpacity = .6;\n          var blockUiOpacity = 0;\n          if (!options.delayedShowMills) {\n            $blockUiMsg.html(showMsgContent);\n            blockUiOpacity = showBlockUiOpacity;\n          } else {\n            var showDelayedFun = function showDelayedFun() {\n              var $blockUiContainer = $(\".\" + blockUiClassName);\n              if ($blockUiContainer.length) {\n                $blockUiContainer.html(showMsgContent);\n                $(\".blockUI.blockOverlay\").css(\"opacity\", showBlockUiOpacity);\n              }\n              clearTimeout(showDelayedFun);\n            };\n            setTimeout(showDelayedFun, options.delayedShowMills);\n          }\n          $.blockUI({\n            message: $blockUiMsg.prop(\"outerHTML\"),\n            baseZ: 2000,\n            css: {\n              backgroundColor: 'transparent'\n            },\n            overlayCSS: {\n              opacity: blockUiOpacity\n            }\n          });\n        }\n      }\n    },\n    setProgress: function setProgress(i, fn) {\n      var option;\n      if (typeof fn == 'function') {\n        option = {\n          display_text: 'center',\n          percent_format: function percent_format(p) {\n            return I18N.t('\u6b63\u5728\u4e0a\u4f20...') + p + \"%\";\n          },\n          done: fn\n        };\n      } else {\n        option = {\n          display_text: 'center',\n          percent_format: function percent_format(p) {\n            return I18N.t('\u6b63\u5728\u4e0a\u4f20...') + p + \"%\";\n          }\n        };\n      }\n      $('.progress .progress-bar').attr('data-transitiongoal', i).progressbar(option);\n    },\n    blockUIProgress: function blockUIProgress() {\n      if ($.blockUI) {\n        $.blockUI.defaults.css['border'] = 'none';\n        $.blockUI({\n          baseZ: 2000,\n          message: '<div class=\"block_ui_message\">' + '<div class=\"progress progress-striped active\">' + '<div class=\"progress-bar progress-bar-striped\" role=\"progressbar\" data-transitiongoal=\"20\"></div>' + '</div>' + '</div>'\n        });\n        $('.progress').css({\n          'margin-bottom': 0,\n          'border-radius': 0,\n          'color': 'black'\n        });\n      }\n    },\n    unblockUI: function unblockUI(blockUiId) {\n      if (blockUiId && $(window).data(\"__blockUI_currentId\") !== blockUiId) {\n        return;\n      }\n      $(window).removeData(\"__blockUI_called\");\n      $.unblockUI && $.unblockUI();\n    },\n    tip: function tip(msg, fun) {\n      if ($.growlUI) {\n        $.blockUI.defaults.growlCSS['right'] = 'auto';\n        $.blockUI.defaults.growlCSS['top'] = '50%';\n        $.blockUI.defaults.growlCSS['left'] = '50%';\n        $.blockUI.defaults.growlCSS['margin-left'] = '-175px';\n        $.blockUI.defaults.css['border'] = 'none';\n        $.blockUI.defaults.baseZ = 2000;\n        if (isV2() && isPhone()) {\n          $.blockUI.defaults.growlCSS['padding'] = '0';\n          $.blockUI.defaults.growlCSS['max-width'] = '80%';\n          $.blockUI.defaults.growlCSS['margin-left'] = '-40%';\n        }\n        $.growlUI(msg);\n      }\n      if (typeof fun == 'function') {\n        setTimeout(function () {\n          fun();\n        }, 1500);\n      }\n    },\n    halfUp: function halfUp(val, scale, ignoredZero) {\n      var result = Math.round(val * Math.pow(10, 2)) / Math.pow(10, 2);\n      var resultVal = null;\n      if (typeof scale == 'number' && scale >= 0) {\n        resultVal = result.toFixed(scale);\n      }\n      if (ignoredZero) {\n        var i = 0,\n          fixed,\n          floatVal = parseFloat(resultVal);\n        for (; i <= scale; i++) {\n          var temp = result.toFixed(i);\n          if (floatVal == temp) {\n            fixed = temp;\n            break;\n          }\n        }\n        return fixed;\n      }\n      return result;\n    },\n    friendlyFormat: function friendlyFormat(val, scale, ignoredZero) {\n      if (val >= 10000) return wmf.util.halfUp(val / 10000, scale, ignoredZero) + I18N.t('\u4e07');\n      return wmf.util.halfUp(val, scale, ignoredZero);\n    },\n    alert: function alert(message, opts) {\n      var _opts = $.extend({}, {\n        okBtn: true,\n        content: message,\n        html: false\n      }, opts || {});\n      if (typeof opts === 'function') {\n        _opts.ok = opts;\n      }\n      if (typeof message === 'string') {\n        if (!_opts.html) {\n          message = message.replace(/\\r\\n/g, \"<br/>\").replace(/\\n/g, \"<br/>\").replace(/\\r/g, \"<br/>\");\n          _opts.content = message;\n        }\n      }\n      return wmf.util._alert(_opts.title || I18N.t('\u63d0\u793a'), _opts);\n    },\n    requireWxSetting: function requireWxSetting(message, downloadType) {\n      var $msg = '<p>' + message + '</p>';\n      if ('WXA' === downloadType) {\n        $msg += I18N.t('\u8bf7\u70b9\u51fb') + '<a class=\"link\" href=\"/enterprise/miniprogram/main#wx\">' + I18N.t('\u5fae\u4fe1\u5c0f\u7a0b\u5e8f') + '</a>' + I18N.t('\u6388\u6743\u540e\u518d\u8bd5');\n      } else {\n        if (location.pathname.indexOf('/v2/restaurant/') === 0) {\n          $msg += I18N.t('\u8bf7\u70b9\u51fb') + '<a class=\"link\" href=\"/v2/restaurant/wechat/edit\">' + I18N.t('\u5fae\u4fe1\u8bbe\u7f6e') + '</a>' + I18N.t('\u91cd\u65b0\u914d\u7f6e\u540e\u518d\u8bd5');\n        } else {\n          $msg += '<p>' + I18N.t('\u8bf7\u8fdb\u5165\u603b\u90e8\u95e8\u5e97\u5728\u201c\u8bbe\u7f6e->\u5fae\u4fe1\u8bbe\u7f6e\u201d\u4e2d\u91cd\u65b0\u914d\u7f6e\u540e\u518d\u8bd5') + '</p>';\n        }\n      }\n      wmf.util.alert($msg);\n    },\n    requireWxaSetting: function requireWxaSetting(message) {},\n    alertData: function alertData(data) {\n      if (data && data.message) {\n        wmf.util.alert(data.message);\n      } else {\n        wmf.util.alert(data);\n      }\n    },\n    confirm: function confirm(message, opts) {\n      var _opts = $.extend({}, {\n        okBtn: true,\n        cancelBtn: true,\n        content: message\n      }, opts || {});\n      return wmf.util._alert(_opts.title || I18N.t('\u63d0\u793a'), _opts);\n    },\n    confirmAsync: function confirmAsync(messageHtml, okText, cancelText) {\n      return new Promise(function (resolve, reject) {\n        wmf.util.confirm(messageHtml, {\n          cancelBtnText: cancelText || I18N.t('\u53d6\u6d88'),\n          okBtnText: okText || I18N.t('\u786e\u8ba4'),\n          ok: function ok() {\n            resolve(true);\n          },\n          cancel: function cancel() {\n            resolve(false);\n          }\n        });\n      });\n    },\n    prompt: function prompt(opts) {\n      var initRows = opts.rows || 5;\n      var _opts = $.extend({}, {\n        okBtn: true,\n        autoClose: false,\n        content: '<div class=\"p10\">' + '<textarea id=\"___prompt-dialog\" class=\"text_area form-control w100p\" rows=\"' + initRows + '\"></textarea>' + '</div>',\n        value: ''\n      }, opts || {});\n      _opts.ok = function () {\n        var $prompt = $('#___prompt-dialog');\n        return opts.ok && opts.ok($prompt.val(), $prompt);\n      };\n      var promptInstance = wmf.util._alert(_opts.title || I18N.t('\u63d0\u793a'), _opts);\n      if (opts.value) {\n        $('#___prompt-dialog').text(opts.value);\n      }\n      return promptInstance;\n    },\n    ajaxConfirm: function ajaxConfirm(title, url, opts) {\n      var _opts = $.extend({}, {\n        okBtn: true,\n        cancelBtn: true,\n        url: url,\n        padding: '0px'\n      }, opts || {});\n      return wmf.util._alert(title || I18N.t('\u63d0\u793a'), _opts);\n    },\n    dialog: function dialog(opts) {\n      var _opts = $.extend({}, {\n        id: 'ju_dialog'\n      }, opts || {});\n      return wmf.util._dialog(_opts.id, _opts);\n    },\n    _alert: function _alert(title, opts) {\n      var _opts = $.extend({}, {\n        title: title,\n        url: '',\n        content: '',\n        staticSize: true,\n        showClose: false\n      }, opts || {});\n      var id = opts.id || 'wmf-alert';\n      return wmf.util._dialog(id, _opts);\n    },\n    _dialog: function _dialog(id, opts) {\n      opts = $.extend({}, {\n        title: '',\n        width: 300,\n        height: 'auto',\n        minWidth: 300,\n        modal: true,\n        okBtn: false,\n        cancelBtn: false,\n        okBtnText: I18N.t('\u786e\u5b9a'),\n        cancelBtnText: I18N.t('\u53d6\u6d88'),\n        staticSize: false,\n        fullBody: false,\n        showCloseBtn: true,\n        autoClose: true,\n        showClose: true,\n        keyboard: true,\n        buttons: null,\n        dialogClass: '',\n        ok: function ok() {\n          return true;\n        },\n        cancel: function cancel() {\n          return true;\n        },\n        onCreate: function onCreate() {\n          return true;\n        },\n        beforeShown: function beforeShown() {\n          return true;\n        },\n        shown: function shown() {\n          return true;\n        },\n        onRenderComplete: function onRenderComplete() {}\n      }, opts || {});\n      $('#' + id).remove();\n      var $dialog = $('<div id=\"' + id + '\" class=\"modal fade ' + opts.dialogClass + '\">' + '<div class=\"modal-dialog\"><div class=\"modal-content\">' + '<div class=\"modal-header\">' + (opts.showClose ? '<a href=\"javascript:void(0)\" class=\"close\">&times;</a>' : '') + '<h4 class=\"modal-title\">' + opts.title + '</h4></div>' + '<div class=\"modal-body\">' + '   <div class=\"modal-body-header\" style=\"display: none;\"></div>' + '   <div class=\"modal-body-content\"></div>' + '</div>' + '</div></div></div>');\n      var okHandler = function okHandler() {\n        var result = opts.ok && opts.ok($dialog);\n        if (opts.autoClose || result) {\n          closeDialogById(id);\n        }\n      };\n      var cancelHandler = function cancelHandler() {\n        var result = opts.cancel && opts.cancel($dialog);\n        if (typeof result !== 'boolean' || result) {\n          closeDialogById(id);\n        }\n      };\n      var $closeBtn = $dialog.find('.close');\n      $closeBtn.bind('click', function () {\n        cancelHandler();\n      });\n      if (!opts.showCloseBtn) {\n        $closeBtn.hide();\n      }\n      if (opts.tipMessage) {\n        $dialog.find(\".modal-body .modal-body-header\").html('<div class=\"tip-message\">' + opts.tipMessage + '</div>').show();\n      }\n      var pageBody = $('body');\n      pageBody.append($dialog);\n      if (opts.fullBody) {\n        $dialog.find('.modal-body').addClass('modal-full-body');\n      }\n      if (opts.bodyMaxHeight) {\n        $dialog.find('.modal-body').css('max-height', opts.bodyMaxHeight);\n      }\n      if (opts.dialogMinWidth) {\n        $dialog.find(\".modal-dialog\").css(\"min-width\", opts.dialogMinWidth);\n      }\n      if (opts.dialogMaxWidth) {\n        $dialog.find(\".modal-dialog\").css(\"max-width\", opts.dialogMaxWidth);\n      }\n      opts.onCreate && opts.onCreate($dialog);\n      if (!opts.buttons) {\n        opts.buttons = [];\n        if (opts.okBtn) {\n          opts.buttons.push({\n            label: opts.okBtnText || I18N.t('\u786e\u5b9a'),\n            className: 'btn-ok ' + (opts.okBtnClass || 'btn-primary'),\n            onClick: okHandler\n          });\n        }\n        if (opts.cancelBtn) {\n          opts.buttons.push({\n            label: opts.cancelBtnText || I18N.t('\u53d6\u6d88'),\n            className: 'btn-cancel ' + (opts.cancelBtnClass || 'btn-default'),\n            onClick: cancelHandler\n          });\n        }\n      }\n      if (opts.buttons.length) {\n        var $footer = $('<div class=\"modal-footer\"></div>');\n        var buttons = opts.buttons.map(function (button) {\n          return '<button type=\"button\" class=\"btn ' + (button.className || 'btn-default') + '\">' + button.label + '</button>';\n        }).join('\\n');\n        $footer.html(buttons);\n        $dialog.find('.modal-content').append($footer);\n        $dialog.find('.modal-body').addClass('has-modal-footer');\n        if (opts.fullBody) {\n          $dialog.find(\".modal-footer\").css('margin-top', '0px');\n        }\n        $footer.on('click', '.btn', function () {\n          var button = opts.buttons[$(this).index()];\n          var result = button.onClick && button.onClick($dialog);\n          if (opts.autoClose || result) {\n            closeDialogById(id);\n          }\n        });\n      }\n      var oldMinWidth;\n      var url = opts.url || opts.loadUrl;\n      if (!isEmpty(url)) {\n        var $modalDialog = $dialog.find(\".modal-dialog\");\n        oldMinWidth = $modalDialog.css(\"min-width\");\n        if (opts.minWidth) {\n          $modalDialog.css(\"min-width\", opts.minWidth);\n        }\n      }\n      $dialog.data('opts', opts);\n      $dialog.show();\n      $(document.body).addClass('modal-open');\n      if (opts.keyboard) {\n        $(document.body).on('keyup', function (e) {\n          if (e.which === 27) {\n            var $modal = $('.modal').last();\n            var lastId = $modal.attr('id');\n            closeDialogById(lastId);\n          }\n        });\n      }\n      opts.beforeShown && opts.beforeShown($dialog);\n      setTimeout(function () {\n        $dialog.addClass('in');\n        opts.shown && opts.shown($dialog);\n      }, 30);\n      if (!isEmpty(url)) {\n        $dialog.one(wmf.util.transition.end, function () {\n          wmf.util._dialogAjaxRender(id, $dialog, url, oldMinWidth);\n        }).wmfTransitionEnd(300);\n      }\n      if (!isEmpty(opts.content)) {\n        renderDialogTo(id, opts.content);\n        if (typeof opts.onRenderComplete !== 'undefined') {\n          opts.onRenderComplete($dialog);\n        }\n      }\n      return $dialog;\n    },\n    _dialogAjaxRender: function _dialogAjaxRender(id, $dialog, loadUrl, oldMinWidth) {\n      var body = $dialog.find('.modal-body-content');\n      body.empty();\n      body.html('<table style=\"width: 100%; height: 60px;\"><tr>' + '<td style=\"text-align: center; vertical-align: middle;\">' + '<div class=\"content-loading\" style=\"display: inline-block\"></div> ' + I18N.t('\u52a0\u8f7d\u4e2d...') + '</td></tr></table>');\n      wmf.ajax.doAjax({\n        type: 'get',\n        url: loadUrl,\n        success: function success(result) {\n          renderDialogTo(id, result);\n          var opts = $dialog.data('opts');\n          if (typeof opts.onRenderComplete !== 'undefined') {\n            opts.onRenderComplete($dialog);\n          }\n          if (typeof onDialogLoadContent !== 'undefined' && onDialogLoadContent) {\n            if (oldMinWidth) {\n              $dialog.find(\".modal-dialog\").css(\"min-width\", oldMinWidth);\n            }\n            onDialogLoadContent($(\"#\" + id));\n          }\n        }\n      });\n    },\n    updateOrders: function updateOrders(name, attr) {\n      wmf.util.multiUpdateOrders({\n        name: name,\n        attr: attr,\n        callback: function callback() {\n          reload();\n        }\n      });\n    },\n    multiUpdateOrders: function multiUpdateOrders(opts) {\n      var options = $.extend({}, {\n        container: $('body'),\n        name: '',\n        attr: '',\n        url: 'order',\n        callback: function callback() {}\n      }, opts || {});\n      var orders = options.container.find(':input[name=' + options.name + ']');\n      var index = 0;\n      var _orders = [];\n      orders.each(function () {\n        var _id = $(this).attr(options.attr);\n        var order = $(this).val() || 1;\n        var object = 'orders[' + index++ + ']';\n        _orders.push(object + '.id=' + _id);\n        _orders.push(object + '.order=' + order);\n      });\n      wmf.ajax.doAjax({\n        type: 'post',\n        url: options.url,\n        data: _orders.join('&'),\n        success: function success() {\n          var callback = options.callback;\n          if (callback && typeof callback == 'function') {\n            callback();\n          }\n        }\n      }, I18N.t('\u4fdd\u5b58\u6392\u5e8f'));\n    },\n    restaurantChange: function restaurantChange(restaurantId, restaurantName, expired, isRestaurantSwitch, changedCallback) {\n      if ('true' === expired) {\n        wmf.util.alert(I18N.t('\u95e8\u5e97\u5df2\u8fc7\u671f\uff0c\u8bf7\u8054\u7cfb\u670d\u52a1\u5546\u7eed\u8d39'));\n        return;\n      }\n      wmf.ajax.doAjax({\n        type: 'post',\n        url: '/v2/restaurant/change',\n        data: {\n          restaurantId: restaurantId,\n          restaurantName: restaurantName\n        },\n        success: function success() {\n          if (changedCallback && typeof changedCallback === 'function' && changedCallback(isRestaurantSwitch)) {\n            return;\n          }\n          if (isRestaurantSwitch) {\n            if (_u.params.redirectUrl) {\n              forward(decodeURIComponent(_u.params.redirectUrl));\n            } else {\n              reload();\n            }\n          } else {\n            forward('/v2/restaurant/main');\n          }\n        },\n        verifyRid: false\n      }, I18N.t('\u5904\u7406'));\n    },\n    getRemoteUrl: function getRemoteUrl(path) {\n      if (!window.wmfRemoteBaseUrl) {\n        //\u5148\u521d\u59cb\u5316\u6210\u2018\u2019\u503c\uff0c\u9632\u6b62\u540e\u9762\u51fa\u73b0underfied\n        window.wmfRemoteBaseUrl = '';\n        wmf.ajax.doAjax({\n          url: '/common/resources/base-url',\n          async: false,\n          success: function success(result) {\n            window.wmfRemoteBaseUrl = result;\n          }\n        });\n      }\n      return window.wmfRemoteBaseUrl + path;\n    },\n    tabs: function tabs(options) {\n      var $tabs = null;\n      options = $.extend({}, {\n        wrapper: 'body',\n        el: '#tabs',\n        create: function create() {\n          // default is hidden\n          $tabs.show();\n        },\n        handleHashChange: true,\n        tabContentCache: false,\n        ajaxOptions: {\n          error: function error(xhr) {\n            if (xhr && xhr.responseText) {\n              var index = $tabs.tabs('option', 'selected');\n              var $div = $tabs.find('.ui-tabs-panel:eq(' + index + ')');\n              $div.html(xhr.responseText).removeClass('ui-tabs-hide');\n            }\n          },\n          complete: function complete() {\n            wmf.util.listOperation();\n          }\n        },\n        onTabShown: null\n      }, options || {});\n      if ('#tabs' !== options.el) {\n        options.handleHashChange = false;\n      }\n      var $wrapper = $(options.wrapper);\n      $tabs = $wrapper.find(options.el);\n      if (options.handleHashChange) {\n        wmf.util.handleHashChange($tabs);\n      }\n      $tabs.tabs(options);\n      $tabs.find('a[data-toggle=\"tab\"]').on('shown.bs.tab', function (e) {\n        var $tab = $(e.target);\n        if (typeof options.onTabShown === 'function') {\n          options.onTabShown.apply(null, [$tab]);\n        }\n        if (options.handleHashChange) {\n          wmf.util.refreshTabHashParams($tab);\n        }\n        var dataOnTabShown = $tab.data('onTabShown');\n        if (typeof dataOnTabShown === 'function') {\n          dataOnTabShown.apply(null, [$tab]);\n        } else {\n          if (!$tab.data('loaded') || !options.tabContentCache) {\n            $tabs.load($tab.index());\n            $tab.data('loaded', true);\n          }\n        }\n      });\n      var active = false;\n      $('.tab').each(function (i) {\n        var tab = $(this);\n        var errors = tab.find('span[id$=\"errors\"]');\n        if (errors.length > 0) {\n          if (!active) {\n            $tabs.tabs({\n              selected: i\n            });\n            active = true;\n          }\n          $tabs.find('a[href$=' + tab.attr('id') + ']').append('<span class=\"tab-error\">*</span>');\n        }\n      });\n      return $tabs;\n    },\n    refreshCurrentTabs: function refreshCurrentTabs(options) {\n      options = $.extend({}, {\n        el: '#tabs'\n      }, options || {});\n      var $tabs = $(options.el);\n      if ($tabs.length > 0) {\n        var index = $tabs.tabs('option', 'selected');\n        $tabs.tabs('load', index);\n      } else {\n        location.reload();\n      }\n    },\n    loadCurrentTabs: function loadCurrentTabs(url) {\n      var tabs = $('#tabs');\n      var index = tabs.tabs('option', 'selected');\n      var div = tabs.find('.ui-tabs-panel:eq(' + index + ')');\n      div.load(url);\n    },\n    handleHashChange: function handleHashChange($tabs) {\n      // \u4ee5\u4e0b\u662f\u5904\u7406Tab \u81ea\u52a8\u8df3\u8f6c\u7684\u903b\u8f91\uff0c\u82e5\u56e0\u914d\u7f6e\u95ee\u9898\u6ca1\u6709\u751f\u6548\uff0c\u5219\u81ea\u52a8\u6fc0\u6d3b\u7b2c\u4e00\u4e2aTab\n      var hash = location.hash;\n      if (hash) {\n        var controls = hash.substring(1),\n          idx = controls.indexOf('?'),\n          params = null;\n        if (idx > -1) {\n          var data = controls.split('?');\n          controls = data[0];\n          params = data[1];\n        }\n        log('controls', controls, 'idx', idx, 'params', params);\n        var $tab = $tabs.find('li[role=\"presentation\"] > a[aria-controls=\"' + controls + '\"]');\n        if ($tab.length > 0) {\n          wmf.util.refreshTabDataUrl($tab, params);\n          $tab.tab('show');\n        } else {\n          console.warn('[wmf]\u68c0\u6d4b\u5230\u4f20\u5165\u4e86\u9ed8\u8ba4\u7684Tab\uff0c' + '\u4f46\u56e0\u4e3a\u6ca1\u6709\u6b63\u786e\u914d\u7f6earia-controls\uff0c\u81ea\u52a8\u8df3\u8f6c\u6ca1\u6709\u751f\u6548\uff0c\u8bf7\u68c0\u67e5\uff01');\n        }\n      }\n    },\n    refreshTabHashParams: function refreshTabHashParams($tab) {\n      var href = $tab.attr('href'),\n        url = $tab.attr('data-url');\n      if (url) {\n        var queryString = url.indexOf('?') > -1 ? url.split('?')[1] : '';\n        if (!isEmpty(queryString)) {\n          href = href + (href.indexOf('?') > -1 ? '&' : '?') + queryString;\n        }\n        // \u5207\u6362Tab\u65f6\uff0c\u5c06Tab\u7684data-url\u4e2d\u7684\u67e5\u8be2\u53c2\u6570\u9644\u52a0\u5230hash\u4e4b\u540e\n        location.href = href;\n      } else {\n        if (href.indexOf('#') > -1) {\n          // \u5982\u679c\u4e0d\u662f\u5f02\u6b65\u52a0\u8f7d\u7684Tab\uff08\u6ca1\u6709data-url\uff09\uff0c\u5219\u9700\u8981\u5c06hash\u7f6e\u4e3a\u7a7a\n          location.href = '#';\n        }\n      }\n    },\n    refreshCurrentTabDataUrl: function refreshCurrentTabDataUrl($el, data) {\n      if ($el.closest('.modal').length > 0) {\n        // \u5728\u5f39\u7a97\u4e2d\u65f6\uff0c\u4e0d\u9700\u8981\u5904\u7406\u9875\u9762hash\n        return;\n      }\n      var $panel = $el.is('[role=\"tabpanel\"]') ? $el : null;\n      if (!$panel) {\n        $panel = $el.closest('[role=\"tabpanel\"]');\n      }\n      if ($panel.length > 0) {\n        var tabId = $panel.attr('id');\n        var $tab = $('[role=\"tab\"][aria-controls=\"' + tabId + '\"]');\n        if ($tab.length > 0) {\n          location.href = '#' + tabId + '?' + data;\n          wmf.util.refreshTabDataUrl($tab, data);\n        }\n      }\n    },\n    refreshTabDataUrl: function refreshTabDataUrl($tab, data) {\n      var url = $tab.attr('data-url');\n      if (url) {\n        var uri,\n          params = {};\n        if (url.indexOf('?') > -1) {\n          var urlData = url.split('?');\n          uri = urlData[0];\n          // \u8fd9\u91cc\u5148\u89e3\u51b3\u95ee\u9898\uff0c\u5434\u51e1\u56de\u6765\u4e86\u770b\u770b\u8fd9\u6837\u6539\u53ef\u4ee5\u4e0d\n          params = _u.getParamsNew(urlData[1]);\n        } else {\n          uri = url;\n        }\n        if (data) {\n          var dataParams = _u.getParams(data);\n          $.extend(params, dataParams);\n        }\n        var queryString = '';\n        if (Object.keys(params).length > 0) {\n          queryString = '?' + _u.toQueryStr(params);\n        }\n        $tab.attr('data-url', uri + queryString);\n      }\n    },\n    tabsChangeStatus: function tabsChangeStatus(id, status, tips, urlPrefix) {\n      changeStatusCallback(id, status, tips, urlPrefix, function () {\n        wmf.util.refreshCurrentTabs();\n      });\n    },\n    tabsMultiChangeStatus: function tabsMultiChangeStatus(name, status, tips, urlPrefix) {\n      var selectedValues = wmf.util.getCheckedValue(name);\n      if (selectedValues.length == 0) {\n        return;\n      }\n      wmf.util.confirm(I18N.t('\u4f60\u786e\u5b9a\u8981[tips]\u5417\uff1f', {\n        tips: tips\n      }), {\n        ok: function ok() {\n          wmf.ajax.doAjax({\n            type: 'post',\n            url: (isEmpty(urlPrefix) ? '' : urlPrefix) + 'status',\n            data: {\n              multi: true,\n              ids: selectedValues,\n              status: status\n            },\n            success: function success(result) {\n              if (result.success) {\n                wmf.util.refreshCurrentTabs();\n              }\n            }\n          }, tips);\n        }\n      });\n    },\n    exportWithForm: function exportWithForm(form, url) {\n      openWindow(wmf.util.exportWithFormUrl(form, url));\n    },\n    exportWithFormUrl: function exportWithFormUrl(form, url) {\n      var thisForm = $(form);\n      var param = thisForm.attr('data-param');\n      url = isEmpty(url) ? thisForm.attr('action') : url;\n      var searchUrl = url + (url.indexOf(\"?\") != -1 ? \"&\" : \"?\") + thisForm.serialize();\n      if (!isEmpty(param)) searchUrl += '&' + param;\n      return searchUrl;\n    },\n    printWithForm: function printWithForm(form, url) {\n      var thisForm = $(form);\n      url = isEmpty(url) ? thisForm.attr('action') : url;\n      var searchUrl = url + (url.indexOf(\"?\") != -1 ? \"&\" : \"?\") + thisForm.serialize();\n      openWindow(searchUrl);\n    },\n    autoCompleteOff: function autoCompleteOff() {\n      var forms = $('form');\n      forms.length > 0 && forms.attr({\n        autocomplete: 'off'\n      });\n    },\n    listOperation: function listOperation() {\n      $('.list_operation').find('a').each(function () {\n        var link = $(this);\n        if (!isEmpty(link.attr('title'))) return;\n        var label = link.find('span');\n        if (label.length > 0) {\n          link.attr({\n            title: label.html()\n          });\n        }\n      });\n    },\n    toggleMore: function toggleMore() {\n      var m = $('.more');\n      $('#more_toggle').bind('click', function () {\n        toggleMore(m.hasClass('off'));\n      });\n      var sign = $('#more_sign');\n      toggleMore(sign.val() == 'true');\n      function toggleMore(show) {\n        if (show) {\n          m.removeClass('off');\n          sign.val(true);\n        } else {\n          m.addClass('off');\n          sign.val(false);\n        }\n      }\n    },\n    toggleShow: function toggleShow(opts) {\n      return $.fn.toggleShow(opts);\n    },\n    insert: function insert(e, val) {\n      var $el = $(e);\n      if ($el.length === 0) return;\n      var field = $el[0];\n      if (document.selection) {\n        // IE support\n        field.focus();\n        var sel = document.selection.createRange();\n        sel.text = val;\n        sel.select();\n      } else if (field.selectionStart || field.selectionStart == 0) {\n        // MOZILLA/NETSCAPE support\n        var startPos = field.selectionStart;\n        var endPos = field.selectionEnd;\n        // save scrollTop before insert\n        var restoreTop = field.scrollTop;\n        field.value = field.value.substring(0, startPos) + val + field.value.substring(endPos, field.value.length);\n        if (restoreTop > 0) {\n          field.scrollTop = restoreTop;\n        }\n        field.focus();\n        field.selectionStart = startPos + val.length;\n        field.selectionEnd = startPos + val.length;\n      } else {\n        field.value += val;\n        field.focus();\n      }\n      $el.trigger('change');\n    },\n    insertThis: function insertThis(_this, target) {\n      wmf.util.insert($('#' + target), $(_this).text());\n    },\n    removeSpecialChar: function removeSpecialChar(e) {\n      var current = $(e);\n      var val = current.val();\n      if (!isEmpty(val) && typeof val == 'string') {\n        val = val.trim();\n        val = val.replaceAll('\\t', '');\n        current.val(val);\n      }\n    },\n    toInt: function toInt(val, defaultVal) {\n      var parseVal = parseInt(val);\n      return isNaN(parseVal) ? defaultVal : parseVal;\n    },\n    toFloat: function toFloat(val, defaultVal) {\n      var parseVal = parseFloat(val);\n      return isNaN(parseVal) ? defaultVal : parseVal;\n    },\n    fixPoint: function fixPoint(val) {\n      return parseFloat(wmf.util.halfUp(val, 2, false));\n    },\n    bindMenuToggleEvent: function bindMenuToggleEvent() {\n      var toggles = $('.menu-toggle');\n      if (!toggles.length) return;\n      toggles.each(function () {\n        var toggle = $(this);\n        toggle.bind('click', function () {\n          toggleMenu(this);\n        });\n        var maskSelector = toggle.attr('data-toggle-mask');\n        $(maskSelector).bind('click', function () {\n          toggleMenu(toggle);\n        });\n      });\n      function toggleMenu(e) {\n        var _this = $(e);\n        var targetSelector = _this.attr('data-toggle-target');\n        var toggleClass = _this.attr('data-toggle-class');\n        var target = $(targetSelector);\n        var hasClass = target.hasClass(toggleClass);\n        log(targetSelector + (hasClass ? ' remove ' : ' add ') + toggleClass);\n        if (hasClass) {\n          target.removeClass(toggleClass);\n        } else {\n          target.addClass(toggleClass);\n        }\n      }\n    },\n    toQueryString: function toQueryString(params) {\n      var results = [];\n      if (params) {\n        $.each(params, function (k, v) {\n          results.push(k + '=' + v);\n        });\n      }\n      return results.join('&');\n    },\n    refreshAliasIndex: function refreshAliasIndex($el) {\n      var prefix = $el.data('prefix') || '',\n        itemSelector = $el.data('item-selector');\n      var $items = itemSelector ? $el.find(itemSelector) : $el.children();\n      $items.each(function (index, row) {\n        var $row = $(row);\n        $row.data({\n          index: index\n        }).attr({\n          'data-index': index\n        });\n        var fieldPrefix = prefix + '[' + index + '].';\n        wmf.util.refreshAliasName($row, fieldPrefix);\n      });\n    },\n    refreshAliasName: function refreshAliasName($el, fieldPrefix) {\n      $el.find(':input[alias]').each(function (i, field) {\n        var $field = $(field);\n        $field.attr({\n          name: fieldPrefix + $field.attr('alias')\n        });\n      });\n    },\n    aliasValue: function aliasValue($el, fields, opts) {\n      opts = $.extend({}, {\n        nameKey: 'alias'\n      }, opts || {});\n      if (fields) {\n        //\u5c06\u5b57\u6bb5\u6ce8\u5165\u5230\u5bf9\u5e94\u7684\u8282\u70b9\u5185\n        $.each(fields, function (name, value) {\n          var $fields = $el.find('[' + opts.nameKey + '=\"' + name + '\"]');\n          $fields.each(function () {\n            var $field = $(this);\n            if ($field.is(':radio') || $field.is(':checkbox')) {\n              if ($field.is('.single-boolean')) {\n                $field.prop('checked', 'true' === String(value));\n              } else {\n                if ($field.is(':radio')) {\n                  $field.prop('checked', $field.val() === String(value));\n                } else if ($field.is(':checkbox')) {\n                  $field.prop('checked', isArray(value) ? value.map(function (i) {\n                    return String(i);\n                  }).indexOf($field.val()) > -1 : $field.value() === String(value));\n                }\n              }\n            } else if ($field.is(':input')) {\n              $field.val(value);\n            } else if ($field.is('img')) {\n              $field.attr({\n                src: value\n              });\n            } else {\n              $field.html(value);\n            }\n          });\n        });\n      } else {\n        if ($el.is('[data-prefix]')) {\n          // all \u5c06\u5bf9\u8c61\u91cc\u9762\u7684\u6570\u7ec4\u653e\u5230\u8282\u70b9\u91cc\u9762\n          fields = [];\n          var prefix = $el.data('prefix') || '',\n            itemSelector = $el.data('item-selector');\n          var objectMode = 'object' === $el.data('mode');\n          var initFields = function initFields($root, fieldPrefix) {\n            var obj = {};\n            $root.find('[' + opts.nameKey + ']').each(function (i, field) {\n              var $field = $(field);\n              var key = fieldPrefix + $field.attr(opts.nameKey);\n              var value = '';\n              if ($field.is(':radio') || $field.is(':checkbox')) {\n                if ($field.is('.single-boolean')) {\n                  value = $field.prop('checked');\n                } else {\n                  if (!$field.is(':checked')) {\n                    return;\n                  }\n                  value = $field.val();\n                }\n              } else if ($field.is(':input')) {\n                value = $field.val();\n              } else if ($field.is('img')) {\n                value = $field.attr('src');\n              } else {\n                value = $field.text();\n              }\n              if (objectMode) {\n                obj[key] = value;\n              } else {\n                fields.push({\n                  name: key,\n                  value: value\n                });\n              }\n            });\n            return obj;\n          };\n          if (itemSelector) {\n            $el.find(itemSelector).each(function (index, row) {\n              var $row = $(row);\n              var fieldPrefix = isEmpty(prefix) ? '' : prefix + '[' + index + '].';\n              var obj = initFields($row, fieldPrefix);\n              if (objectMode) {\n                fields.push(obj);\n              }\n            });\n          } else {\n            initFields($el, isEmpty(prefix) ? '' : prefix + '.');\n          }\n          return fields;\n        } else {\n          // row mode \u5c06\u8282\u70b9\u4e2d\u7684\u5b57\u6bb5\u7ec4\u88c5\u6210\u5bf9\u8c61\n          fields = {};\n          $el.find('[' + opts.nameKey + ']').each(function (i, field) {\n            var $field = $(field);\n            var value = '';\n            if ($field.is(':radio') || $field.is(':checkbox')) {\n              if ($field.is('.single-boolean')) {\n                value = $field.prop('checked');\n              } else {\n                if (!$field.is(':checked')) {\n                  return;\n                }\n                value = $field.val();\n              }\n            } else if ($field.is(':input')) {\n              value = $field.val();\n            } else if ($field.is('img')) {\n              value = $field.attr('src');\n            } else {\n              value = $field.text();\n            }\n            fields[$field.attr(opts.nameKey)] = value;\n          });\n          return fields;\n        }\n      }\n    },\n    functionRecord: function functionRecord(rid, fun) {\n      wmf.ajax.doAjax({\n        url: \"/common/function_record\",\n        data: {\n          rid: rid,\n          fun: fun\n        }\n      });\n    },\n    shake: function shake($el) {\n      var length = 6;\n      var selector = $el.css('position', 'relative');\n      for (var i = 1; i <= length; i++) {\n        if (i % 2 === 0) {\n          if (i === length) {\n            selector.animate({\n              'left': 0\n            }, 50);\n          } else {\n            selector.animate({\n              'left': 10\n            }, 50);\n          }\n        } else {\n          selector.animate({\n            'left': -10\n          }, 50);\n        }\n      }\n    },\n    applyTableRowSpan: function applyTableRowSpan() {\n      var tableTds = new Map(); // \u7a7aMap\n      $(\"table td[data-row-span]\").each(function (idx, td) {\n        var $td = $(td);\n        $td.css('visibility', 'visible');\n        var table = $td.closest(\"table\")[0];\n        var tdIdxSet = tableTds.get(table);\n        if (!tdIdxSet) {\n          tdIdxSet = new Set();\n          tableTds.set(table, tdIdxSet);\n        }\n        tdIdxSet.add(td.cellIndex);\n      });\n      tableTds.forEach(function (tdIdxSet, table) {\n        tdIdxSet.forEach(function (tdIdx) {\n          table_rowspan(table, tdIdx);\n        });\n      });\n      function table_rowspan(table, tdIdx) {\n        tdIdx = tdIdx + 1;\n        var rowSpanNum, prevRowSpanContent, rowSpanTd;\n        $(table).find(\" tr td:nth-child(\" + tdIdx + \")\").each(function () {\n          var $td = $(this);\n          var rowSpanContent = $td.data(\"row-span\") || $td.text().trim();\n          if (prevRowSpanContent && rowSpanContent === prevRowSpanContent) {\n            rowSpanNum++;\n            $td.hide();\n            rowSpanTd.attr(\"rowSpan\", rowSpanNum);\n          } else {\n            rowSpanTd = $(this);\n            rowSpanNum = 1;\n          }\n          prevRowSpanContent = rowSpanContent;\n        });\n      }\n    }\n  },\n  form: {\n    ajaxSubmit: function ajaxSubmit(form, _success, tips) {\n      tips = tips || I18N.t('\u4fdd\u5b58');\n      if (tips === 'NotShowTip') {\n        tips = '';\n      }\n      wmf.ajax.doAjax({\n        type: 'post',\n        url: $(form).attr('action'),\n        data: $(form).serialize(),\n        success: function success(result) {\n          _success(result);\n        }\n      }, tips);\n    },\n    dialogSubmit: function dialogSubmit(form, _success2, tips) {\n      tips = tips || I18N.t('\u4fdd\u5b58');\n      wmf.ajax.doAjax({\n        type: 'post',\n        url: $(form).attr('action'),\n        data: $(form).serialize(),\n        success: function success(result) {\n          _success2(result);\n        }\n      }, tips);\n    },\n    /**\n     * \u5c06\u8868\u5355\u5404\u5b57\u6bb5\u5e8f\u5217\u5316\u4e3ajson\u5bf9\u8c61\n     * \u3010\u6ce8\u3011\u76f8\u540c\u540d\u79f0\u7684\u5b57\u6bb5\u901a\u8fc7\u9017\u53f7\u5206\u9694\n     * \u5982\uff1aa=1,a=2,b=3,c.m=4,d[0].n=5 \u5c06\u5e8f\u5217\u5316\u4e3a\uff1a{\"a\": \"1,2\", \"b\": \"3\", \"c\": {\"m\": \"4\"}, \"d\": [{\"n\": \"5\"}]}\n     */\n    serializeObject: function serializeObject($form, origin) {\n      var result = {};\n      var serializeArray = $form.serializeArray();\n      for (var i in serializeArray) {\n        var kv = serializeArray[i];\n        if (!origin && kv.name.indexOf('.') !== -1) {\n          var elements = kv.name.split('.');\n          var parent = result;\n          for (var idx = 0, size = elements.length; idx < size; idx++) {\n            var element = elements[idx];\n            var last = size - 1 === idx,\n              value = last ? kv.value : {};\n            if (/^(\\w+)\\[(\\d)]$/.test(element)) {\n              var name = RegExp.$1,\n                elIndex = parseInt(RegExp.$2);\n              if (!parent[name]) {\n                parent[name] = [];\n              }\n              if (!parent[name][elIndex]) {\n                parent[name][elIndex] = value;\n              }\n              parent = parent[name][elIndex];\n            } else {\n              if (!parent[element]) {\n                parent[element] = value;\n              }\n              parent = parent[element];\n            }\n          }\n        } else {\n          var _value = result[kv.name];\n          if (_value) {\n            result[kv.name] += ',' + kv.value;\n          } else {\n            result[kv.name] = kv.value;\n          }\n        }\n      }\n      return result;\n    },\n    serialize: function serialize(value, prefix) {\n      var array = [];\n      if (!prefix) {\n        prefix = '';\n      }\n      if (Array.isArray(value)) {\n        $.each(value, function (index, obj) {\n          var namePrefix = prefix + '[' + index + '].';\n          $.each(obj, function (k, v) {\n            var ary = wmf.form.serialize(v, namePrefix + k);\n            array = array.concat(ary);\n          });\n        });\n      } else if (value !== null && _typeof(value) === 'object') {\n        var namePrefix = isEmpty(prefix) ? '' : prefix + '.';\n        $.each(value, function (k, v) {\n          var ary = wmf.form.serialize(v, namePrefix + k);\n          array = array.concat(ary);\n        });\n      } else {\n        array.push({\n          name: prefix,\n          value: typeof value !== 'undefined' ? value : ''\n        });\n      }\n      return array;\n    }\n  },\n  validation: {\n    logged: false,\n    isTelephone: function isTelephone(val) {\n      return /^1\\d{10}$/.test(val) || /^0\\d{7,10}$/.test(val) || /^[4-9]\\d{7}$/.test(val);\n    },\n    isDecimal: function isDecimal(val) {\n      return /^(-?\\d+)(\\.\\d+)?$/.test(val);\n    },\n    isInteger: function isInteger(val) {\n      return /^(-?\\d+)$/.test(val);\n    },\n    isDate: function isDate(val) {\n      return /^(\\d{4}-\\d{2}-\\d{2})$/.test(val);\n    },\n    isTime: function isTime(val) {\n      return /^(\\d{2}:\\d{2})$/.test(val);\n    },\n    isPositiveInteger: function isPositiveInteger(val) {\n      return /^(\\d+)$/.test(val);\n    },\n    isPositiveDecimal: function isPositiveDecimal(val) {\n      return /^(\\d+)(\\.\\d+)?$/.test(val);\n    },\n    isPercentage: function isPercentage(val) {\n      return /^100$|^(\\d|[1-9]\\d)$/.test(val);\n    },\n    isEmail: function isEmail(val) {\n      return /^[\\w-.]+@\\w+(.\\w+)+$/.test(val);\n    },\n    isTaxNo: function isTaxNo(val) {\n      return /^[0-9A-Z]{6,20}$/.test(val);\n    },\n    validTelephones: function validTelephones(string) {\n      if (isEmpty(string)) {\n        return [];\n      }\n      var validTels = [];\n      var regexp = /0?1\\d{10}/ig;\n      var result = string.match(regexp);\n      if (result) {\n        for (var i in result) {\n          var tel = result[i];\n          if (wmf.validation.isTelephone(tel)) {\n            validTels.push(tel);\n          }\n        }\n      }\n      return validTels;\n    },\n    maybeJsonObject: function maybeJsonObject(val) {\n      if (!val) {\n        return false;\n      }\n      return val.indexOf('{') === 0 && val.lastIndexOf('}') === val.length - 1;\n    },\n    maybeJsonArray: function maybeJsonArray(val) {\n      if (!val) {\n        return false;\n      }\n      return val.indexOf('[') === 0 && val.lastIndexOf(']') === val.length - 1;\n    },\n    maybeJson: function maybeJson(val) {\n      return wmf.validation.maybeJsonObject(val) || wmf.validation.maybeJsonArray(val);\n    },\n    isEmpty: function isEmpty(text) {\n      return null == text || \"\" == text;\n    }\n  },\n  cookie: {\n    /**\n     * auto import js resource and execute js script\n     * @param callback\n     * @private\n     */\n    exec: function exec(callback) {\n      wmf.util.require($.cookie, ___cdnActiveHost + '/js/jquery/cookie/jquery.cookie.min.js', callback);\n    },\n    writeCookie: function writeCookie(key, value) {\n      wmf.cookie.exec(function () {\n        $.cookie(key, value, {\n          path: '/'\n        });\n      });\n    },\n    writeCookieDay: function writeCookieDay(key, value, days) {\n      if (!days) {\n        wmf.cookie.removeCookie(key);\n        return;\n      }\n      wmf.cookie.exec(function () {\n        $.cookie(key, value, {\n          path: '/',\n          expires: days\n        });\n      });\n    },\n    getCookie: function getCookie(key, callback) {\n      if ($.cookie) {\n        var value = $.cookie(key);\n        callback(value);\n        return value;\n      }\n      wmf.cookie.exec(function () {\n        var value = $.cookie(key);\n        callback(value);\n      });\n      return '';\n    },\n    removeCookie: function removeCookie(key) {\n      wmf.cookie.exec(function () {\n        $.removeCookie(key, {\n          path: '/'\n        });\n      });\n    }\n  },\n  image: {\n    lazyLoad: function lazyLoad() {\n      if (jQuery.fn.lazyload) {\n        $('img.lazy_load').lazyload({\n          effect: 'fadeIn',\n          load: function load(a, b, c) {\n            $(this).closest('.pic_lazy_bg').removeClass('pic_lazy_bg');\n          }\n        });\n      }\n    },\n    tooltip: function tooltip(e, options) {\n      if (e.length == 0) return;\n      var _opts = $.extend({}, wmf.image.tooltipDefaults, options || {});\n      $(e).tooltip({\n        delay: 200,\n        showURL: false,\n        bodyHandler: function bodyHandler() {\n          var _this = $(this);\n          var background = _this.is('img') ? 'url(\"' + _this.attr('src') + '\") 50% 50% / cover no-repeat' : _this.css('background');\n          return $(\"<div></div>\").css({\n            width: _opts.width,\n            height: _opts.height,\n            background: background,\n            'background-size': 'contain'\n          });\n        }\n      });\n    },\n    galleryView: function galleryView(el) {\n      event.preventDefault();\n      event.stopPropagation();\n      if (!blueimp) {\n        console.error('require `blueimp` plugin.');\n        return;\n      }\n      var $el = $(el);\n      var picture = $el.data('picture');\n      if (isEmpty(picture)) {\n        return;\n      }\n      var $body = $('body');\n      var tpl = $('<div id=\"blueimp-gallery\" class=\"blueimp-gallery\">\\n' + '    <div class=\"slides\"></div>\\n' + '    <h3 class=\"title\"></h3>\\n' + '    <a class=\"prev\">\u2039</a>\\n' + '    <a class=\"next\">\u203a</a>\\n' + '    <a class=\"close\">\u00d7</a>\\n' + '    <a class=\"play-pause\"></a>\\n' + '    <ol class=\"indicator\"></ol>\\n' + '</div>');\n      $body.append(tpl);\n      var urls = picture.split(',');\n      var $links = $('<div class=\"gallery-wrapper\" style=\"display: none;\"></div>');\n      $.each(urls, function (i, url) {\n        var $img = $('<img class=\"gallery-img\" alt=\"\"/>').attr('src', url);\n        var $link = $('<a class=\"gallery-link\" title=\"\"/>').attr('href', url);\n        $link.append($img);\n        $links.append($link);\n      });\n      $body.append($links);\n      blueimp.Gallery($links.find('.gallery-link'), {\n        index: $el.data('index') || 0,\n        closeOnSlideClick: true,\n        onclosed: function onclosed() {\n          $('.gallery-wrapper').remove();\n          $('#blueimp-gallery').remove();\n        }\n      });\n    },\n    tooltipDefaults: {\n      width: 200,\n      height: 200\n    }\n  },\n  paging: {\n    initSort: function initSort(formId, sortName, sortType) {\n      var sortNameHidden = $('<input type=\"hidden\" name=\"sortName\" value=\"' + sortName + '\"/>');\n      var sortTypeHidden = $('<input type=\"hidden\" name=\"sortType\" value=\"' + sortType + '\"/>');\n      $('#' + formId).append(sortNameHidden).append(sortTypeHidden);\n      var sortable = $('.content_table').find('th[sort]');\n      sortable.each(function () {\n        var _this = $(this);\n        var arrow = wmf.paging.getArrow(_this, sortName, sortType);\n        var columnName = _this.html();\n        var newHtml = $('<a href=\"javascript:void(0);\" onclick=\"wmf.paging.doSort(\\'' + formId + '\\',this);\">' + columnName + arrow + '</a>');\n        newHtml.attr({\n          title: I18N.t('\u6309[columnName]\u6392\u5e8f', {\n            columnName: columnName\n          })\n        });\n        _this.html(newHtml);\n      });\n    },\n    doSort: function doSort(formId, e) {\n      var form = $('#' + formId);\n      var sortName = $(e).parent().attr('sort');\n      var sortNameInput = form.find(':input[name=sortName]');\n      var sortTypeInput = form.find(':input[name=sortType]');\n      if (sortNameInput.val() != sortName) {\n        sortNameInput.val(sortName);\n        sortTypeInput.val('');\n      } else {\n        if (sortTypeInput.val() == 'desc') {\n          sortTypeInput.val('asc');\n        } else {\n          sortTypeInput.val('desc');\n        }\n      }\n      searchByPageNumber(form, 1, '', false);\n    },\n    getArrow: function getArrow(sortable, sortName, sortType) {\n      var arrow = '';\n      var _sortName = $(sortable).attr('sort');\n      if (_sortName == sortName) {\n        arrow = wmf.paging.arrow.up;\n        if (sortType == 'desc') {\n          arrow = wmf.paging.arrow.down;\n        }\n      }\n      return arrow;\n    },\n    arrow: {\n      up: '\u2191',\n      down: '\u2193'\n    }\n  },\n  date: {\n    format: function format(date, _format) {\n      _format = _format || 'yyyy-MM-dd';\n      var o = {\n        \"M+\": date.getMonth() + 1,\n        \"d+\": date.getDate(),\n        \"H+\": date.getHours(),\n        \"m+\": date.getMinutes(),\n        \"s+\": date.getSeconds(),\n        \"q+\": Math.floor((date.getMonth() + 3) / 3),\n        \"S\": date.getMilliseconds(),\n        \"W\": [I18N.t('\u65e5'), I18N.t('\u4e00'), I18N.t('\u4e8c'), I18N.t('\u4e09'), I18N.t('\u56db'), I18N.t('\u4e94'), I18N.t('\u516d')][date.getDay()]\n      };\n      if (/(y+)/.test(_format)) {\n        _format = _format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));\n      }\n      for (var k in o) {\n        if (new RegExp('(' + k + ')').test(_format)) {\n          _format = _format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));\n        }\n      }\n      return _format;\n    },\n    dateStrGen: function dateStrGen() {\n      return wmf.date.format(new Date(), 'yyyyMMddHHmmssS');\n    },\n    now: function now() {\n      return wmf.date.format(new Date(), 'yyyy-MM-dd HH:mm:ss.S');\n    },\n    addDay: function addDay(date, days) {\n      var num = days && !isNaN(days) ? days : 1;\n      return date.add({\n        days: num\n      });\n    }\n  },\n  hostName: '',\n  ajax: {\n    serializeArray: function serializeArray(object, prefix) {\n      var dataArray = [];\n      if ('array' === $.type(object)) {\n        $.each(object, function (index, item) {\n          dataArray = dataArray.concat(wmf.ajax.serializeArray(item, prefix + '[' + index + ']'));\n        });\n      } else if ('object' === $.type(object)) {\n        $.each(object, function (key, value) {\n          dataArray = dataArray.concat(wmf.ajax.serializeArray(value, (prefix ? prefix + '.' : '') + key));\n        });\n      } else {\n        dataArray.push({\n          name: prefix,\n          value: object || ''\n        });\n      }\n      return dataArray;\n    },\n    getSync: function getSync(url) {\n      var responseHtml;\n      this.doAjax({\n        url: url,\n        async: false,\n        success: function success(html) {\n          responseHtml = html;\n        }\n      });\n      return responseHtml;\n    },\n    doAjaxPost: function doAjaxPost(opts, tips) {\n      var _opts = $.extend({}, {\n        error: function error(result) {\n          wmf.ajax.defaults.error.apply(this, arguments);\n        }\n      }, opts || {});\n      _opts.type = 'post';\n      this.doAjax(_opts, tips);\n    },\n    doAjax: function doAjax(opts, tips) {\n      var ajaxOptions = $.extend({}, wmf.ajax.defaults, opts || {});\n      var blockUiId = short8UUID();\n      if (tips) wmf.util.blockUI({\n        msg: tips,\n        blockUiId: blockUiId\n      });\n      ajaxOptions.success = function (result) {\n        if (tips) {\n          setTimeout(function () {\n            wmf.util.unblockUI(blockUiId);\n          }, 180);\n        }\n        if (typeof result == 'string') {\n          if (result.indexOf('userLogin') > -1) {\n            wmf.util.confirm(I18N.t('\u5f53\u524d\u4f1a\u8bdd\u5df2\u8fc7\u671f\uff0c\u60a8\u9700\u8981\u91cd\u65b0\u767b\u5f55\u624d\u80fd\u7ee7\u7eed\u64cd\u4f5c\uff01'), {\n              ok: function ok() {\n                forward('/login?action=2');\n              }\n            });\n          }\n          if (result.indexOf('exception_error_page') > -1) {\n            var $el = $(result);\n            wmf.util.alert($el.find('.weui_msg_title').html() + '<br>' + $el.find('.weui_msg_desc').html(), {\n              html: true\n            });\n            return;\n          }\n        }\n        if (!result.success && result.code === 900002) {\n          wmf.util.alert(I18N.t('\u5df2\u5207\u6362\u95e8\u5e97\uff0c\u8bf7\u5237\u65b0\u540e\u91cd\u65b0\u64cd\u4f5c\uff01'));\n          return;\n        }\n        if (ajaxOptions.dataType === 'json') {\n          // Fixme \u6709\u4e9b\u65f6\u5019JSON\u4f1a\u4ee5\u5b57\u7b26\u4e32\u5f62\u5f0f\u8fd4\u56de\n          if (typeof result === 'string') {\n            try {\n              result = $.parseJSON(result);\n            } catch (e) {\n              console.error(e);\n            }\n          }\n        }\n        if (typeof opts.success === 'function') {\n          opts.success.apply(this, [result]);\n        }\n      };\n      ajaxOptions.error = function (xhr, status, error) {\n        if (tips) wmf.util.unblockUI(blockUiId);\n        if (typeof opts.error === 'function') {\n          opts.error.apply(this, arguments);\n        } else {\n          wmf.ajax.defaults.error.apply(this, arguments);\n        }\n      };\n      if (ajaxOptions.verifyRid) {\n        ajaxOptions.beforeSend = function (request) {\n          var $restaurantSelect = $('#restaurant_select');\n          if ($restaurantSelect.length) {\n            request.setRequestHeader(\"rid\", $restaurantSelect.val());\n          }\n        };\n      }\n      $.ajax(ajaxOptions);\n    },\n    defaults: {\n      verifyRid: true,\n      error: function error(xhr, status, _error) {\n        wmf.util.unblockUI();\n        if (xhr.responseJSON) {\n          wmf.ajax.errorHandler(xhr.responseJSON);\n        } else if (xhr.responseText) {\n          if (xhr.responseText.indexOf('switch-restaurant-view') > -1) {\n            document.write(xhr.responseText);\n            document.close();\n          } else {\n            wmf.util.alert(xhr.responseText, {\n              html: true\n            });\n          }\n        } else {\n          var message = '';\n          if (status === 'timeout') {\n            message = I18N.t('\u8fde\u63a5\u8d85\u65f6');\n          } else {\n            var code = xhr.status;\n            if (code === 401) {\n              message = I18N.t('401 - \u8bbf\u95ee\u88ab\u62d2\u7edd');\n            } else if (code === 403) {\n              message = I18N.t('403 - \u7981\u6b62\u8bbf\u95ee');\n            } else if (code === 404) {\n              message = I18N.t('404 - \u672a\u627e\u5230');\n            } else if (code === 500) {\n              message = I18N.t('500 - \u5185\u90e8\u670d\u52a1\u5668\u9519\u8bef');\n            } else if (code === 12029) {\n              message = I18N.t('\u65e0\u6cd5\u5efa\u7acbHTTP\u8fde\u63a5');\n            } else {\n              message = _error;\n            }\n          }\n          if (!isEmpty(message)) wmf.util.alert(message);\n        }\n      }\n    },\n    errorHandler: function errorHandler(result, $tabs) {\n      if (result.message) {\n        wmf.util.alert(result.message);\n      } else {\n        var errors = result.errors;\n        if (errors && errors.length > 0) {\n          var msg = errors[0].message;\n          var field = errors[0].field;\n          wmf.util.alert(msg, function () {\n            var $el = $('[name=\"' + field + '\"]');\n            if ($el.length === 0) {\n              $el = $('[name^=\"' + field + '\"]');\n            }\n            if ($tabs && $tabs.length) {\n              // active tab when field is at inactive tab\n              var $tabPanel = $el.closest('[role=\"tabpanel\"]'); // boostrap (enterprise or restaurant)\n              var $tab = $el.closest('.tab'); // old (system or agency)\n              if ($tabPanel.length) {\n                if (!$tabPanel.is('.active')) {\n                  var tabId = $tabPanel.attr('id');\n                  var _$tab = $tabs.find('[aria-controls=\"' + tabId + '\"]');\n                  if (_$tab.length) {\n                    _$tab.trigger('click');\n                  }\n                }\n              }\n              if ($tab.length) {\n                $('.tab').each(function (i) {\n                  var $currentTab = $(this);\n                  if ($tab[0] === $currentTab[0]) {\n                    $tabs.tabs({\n                      selected: i\n                    });\n                    return false;\n                  }\n                });\n              }\n            }\n            $el.length && $el.focus();\n          });\n        }\n      }\n    }\n  },\n  mobile: {\n    rid: null\n  },\n  event: {\n    bindTo: function bindTo(t, e, fun) {\n      var es = e.split(',');\n      for (var i in es) {\n        $(t).bind($.trim(es[i]), fun);\n      }\n    }\n  },\n  browser: {\n    ie: $.browser && $.browser.msie\n  },\n  map: {\n    x_pi: 3.14159265358979324 * 3000.0 / 180.0,\n    bd2gg: function bd2gg(point) {\n      var lng = point.lng - 0.0065,\n        lat = point.lat - 0.006;\n      var z = Math.sqrt(lng * lng + lat * lat) - 0.00002 * Math.sin(lat * wmf.map.x_pi);\n      var theta = Math.atan2(lat, lng) - 0.000003 * Math.cos(lng * wmf.map.x_pi);\n      var gg_lon = z * Math.cos(theta);\n      var gg_lat = z * Math.sin(theta);\n      return {\n        lat: gg_lat,\n        lng: gg_lon\n      };\n    },\n    gg2bd: function gg2bd(point) {\n      var lng = point.lng,\n        lat = point.lat;\n      var z = Math.sqrt(lng * lng + lat * lat) + 0.00002 * Math.sin(lat * wmf.map.x_pi);\n      var theta = Math.atan2(lat, lng) + 0.000003 * Math.cos(lng * wmf.map.x_pi);\n      var bd_lng = z * Math.cos(theta) + 0.0065;\n      var bd_lat = z * Math.sin(theta) + 0.006;\n      return {\n        lat: bd_lat,\n        lng: bd_lng\n      };\n    }\n  },\n  chart: {\n    line: function line(container, data, dateFormat, options) {\n      Highcharts.setOptions({\n        global: {\n          useUTC: false\n        },\n        lang: {\n          weekdays: [I18N.t('\u661f\u671f\u65e5'), I18N.t('\u661f\u671f\u4e00'), I18N.t('\u661f\u671f\u65e5'), I18N.t('\u661f\u671f\u4e09'), I18N.t('\u661f\u671f\u56db'), I18N.t('\u661f\u671f\u4e94'), I18N.t('\u661f\u671f\u516d')]\n        }\n      });\n      var categories = [];\n      for (var i in data.xAxis.categories) {\n        var category = data.xAxis.categories[i];\n        var stringCategory = typeof category === 'string';\n        categories.push(stringCategory ? category : new Date(category));\n      }\n      $(container).highcharts({\n        chart: $.extend({\n          height: 220,\n          type: 'areaspline',\n          zoomType: 'none',\n          pinkType: 'none'\n        }, options || []),\n        title: {\n          text: ''\n        },\n        tooltip: {\n          headerFormat: '',\n          pointFormat: '<b>{point.name}{point.unit.x}</b><br/><b>{series.name}\uff1a</b> {point.y}{point.unit.y}'\n        },\n        plotOptions: {\n          series: {\n            events: {\n              legendItemClick: function legendItemClick() {\n                if (data.showOneLine) {\n                  return emitLegendItemClick(this);\n                }\n              }\n            }\n          },\n          areaspline: {\n            borderWidth: 0,\n            lineWidth: 1,\n            fillOpacity: 0.1,\n            states: {\n              hover: {\n                enabled: false\n              }\n            },\n            marker: {\n              radius: 2\n            }\n          }\n        },\n        yAxis: {\n          title: {\n            text: data.yAxis.title\n          },\n          min: 0\n        },\n        xAxis: {\n          title: {\n            text: data.xAxis.title\n          },\n          categories: categories,\n          dateTimeLabelFormats: dateFormat,\n          allowDecimals: false,\n          labels: {\n            formatter: function formatter() {\n              if (typeof this.value === 'string') {\n                return this.value;\n              }\n              return Highcharts.dateFormat(dateFormat, this.value, false);\n            }\n          },\n          tickInterval: getTickInterval(categories.length)\n        },\n        series: data.data,\n        legend: $.extend({\n          enabled: data.data.length > 1,\n          verticalAlign: 'top'\n        }, data.legend || []),\n        credits: {\n          enabled: false\n        }\n      });\n    },\n    pie: function pie(container, data) {\n      var colors = ['#B1E472', '#FA7348', '#FEE83F', '#FDB64B', '#54E0CF', '#55B5FF', '#9985F5'];\n      if (!isEmpty(data.colors) && _instanceof(data.colors, Array)) {\n        colors = data.colors;\n      }\n      var height = isEmpty(data.height) ? 220 : data.height;\n      var plotOptions = {\n        pie: {\n          allowPointSelect: true,\n          dataLabels: {\n            enabled: true,\n            format: '<b>{point.name}:</b> {point.y}%'\n          }\n        }\n      };\n      Highcharts.setOptions({\n        global: {\n          useUTC: false\n        }\n      });\n      $(container).highcharts({\n        chart: {\n          height: height,\n          type: 'pie'\n        },\n        colors: colors,\n        title: $.extend(true, {\n          text: ''\n        }, data.title || {}),\n        tooltip: {\n          headerFormat: '',\n          pointFormat: '<b>{point.name}\uff1a</b> {point.amount} {point.unit.y}<br/><b>' + I18N.t('\u5360\u6bd4\uff1a') + '</b> {point.y}%'\n        },\n        plotOptions: $.extend(true, plotOptions, data.plotOptions || {}),\n        series: data.data,\n        legend: {\n          enabled: false\n        },\n        credits: {\n          enabled: false\n        }\n      });\n    },\n    ring: function ring(container, data) {\n      var chart = {\n        height: 220,\n        type: 'pie'\n      };\n      var plotOptions = {\n        pie: {\n          allowPointSelect: false,\n          cursor: 'pointer',\n          dataLabels: {\n            enabled: true,\n            //\u5f15\u51fa\u6ce8\u91ca\n            format: '<b>{point.name}:</b> {point.y}%',\n            style: {\n              color: Highcharts.theme || 'black'\n            }\n          },\n          showInLegend: false,\n          //\u56fe\u8868\u70b9\u51fb\u52a8\u753b\n          point: {\n            events: {\n              legendItemClick: function legendItemClick() {\n                return false;\n              }\n            }\n          }\n        }\n      };\n      var tooltip = {\n        headerFormat: '',\n        pointFormat: '<b>{point.name}\uff1a</b> {point.amount} {point.unit.y}<br/><b>' + I18N.t('\u5360\u6bd4\uff1a') + '</b> {point.y}%'\n      };\n      Highcharts.setOptions({\n        global: {\n          useUTC: false\n        }\n      });\n      $(container).highcharts({\n        chart: $.extend(true, chart, data.chart || {}),\n        colors: data.colors || ['#B1E472', '#FA7348', '#FEE83F', '#FDB64B', '#54E0CF', '#55B5FF', '#9985F5'],\n        title: $.extend(true, {\n          floating: true,\n          text: ''\n        }, data.title || {}),\n        tooltip: $.extend(true, tooltip, data.tooltip || {}),\n        plotOptions: $.extend(true, plotOptions, data.plotOptions || {}),\n        series: data.data,\n        legend: $.extend(true, {\n          enabled: true\n        }, data.legend || {}),\n        //\u663e\u793a\u56fe\u793a\n        credits: $.extend(true, {\n          enabled: false\n        }, data.credits || {}) //\u9690\u85cfhighcharts.com\n      }, ringCallback);\n    },\n    funnel: function funnel(container, data) {\n      var plotOptions = {\n        series: {\n          dataLabels: {\n            enabled: true,\n            crop: false,\n            overflow: 'none',\n            format: '<b>{point.name}</b> ({point.y:,.0f})',\n            softConnector: false\n          }\n        }\n      };\n      var tooltip = {\n        headerFormat: '',\n        pointFormat: '<b>{point.name}\uff1a{point.y:,.0f}</b>'\n      };\n      $(container).highcharts({\n        chart: $.extend(true, {\n          type: 'funnel',\n          marginRight: 100,\n          height: 300\n        }, data.chart || {}),\n        colors: data.colors || ['#FB9738', '#6ECA9B'],\n        title: $.extend(true, {\n          text: ''\n        }, data.title || {}),\n        tooltip: $.extend(true, tooltip, data.tooltip || {}),\n        plotOptions: $.extend(true, plotOptions, data.plotOptions || {}),\n        legend: $.extend(true, {\n          enabled: true\n        }, data.legend || {}),\n        credits: $.extend(true, {\n          enabled: false\n        }, data.credits || {}),\n        series: data.series\n      });\n    },\n    column: function column(container, data) {\n      var plotOptions = {\n        column: {\n          borderWidth: 0.5,\n          dataLabels: {\n            formatter: function formatter() {\n              return '<b style=\"font-size:14px;color: white\">' + this.y + '</b>';\n            },\n            enabled: true,\n            inside: true\n          }\n        }\n      };\n      var chart = {\n        type: 'column'\n      };\n      var colors = ['#2f7ed8', '#0d233a', '#8bbc21', '#910000', '#1aadce', '#492970', '#f28f43', '#77a1e5', '#c42525', '#a6c96a'];\n      if (!isEmpty(data.colors) && _instanceof(data.colors, Array)) {\n        colors = data.colors;\n      }\n      $(container).highcharts({\n        chart: $.extend(true, chart, data.chart || {}),\n        colors: colors,\n        title: $.extend(true, {\n          text: data.title\n        }, data.title || {}),\n        xAxis: $.extend(true, {\n          categories: data.xAxisTag\n        }, data.xAxis || {}),\n        yAxis: {\n          title: {\n            text: data.yUnit\n          }\n        },\n        tooltip: $.extend(true, {}, data.tooltip || {}),\n        credits: {\n          enabled: false\n        },\n        plotOptions: $.extend(true, plotOptions, data.plotOptions || {}),\n        legend: {\n          enabled: false\n        },\n        series: [{\n          name: data.dataTitle,\n          colorByPoint: true,\n          data: data.series,\n          dataLabels: {\n            enabled: true,\n            rotation: -90,\n            color: '#FFFFFF'\n          }\n        }]\n      });\n    }\n  },\n  log: {\n    __record: function __record(options) {\n      options = $.extend({}, wmf.log.defaults, options || {});\n      $.getJSON('/api/commons/log/report', options, function (result) {\n        log('response:', result);\n      });\n    },\n    /**\n     * for example: wmf.log.info({smallType: 'Example', subject: 'Subject'});\n     * @param contentOrOptions\n     */\n    info: function info(contentOrOptions) {\n      var options = this.buildOptions.apply(this, arguments);\n      this.__record($.extend({}, {\n        level: 'Info',\n        smallType: 'JsInfo'\n      }, options));\n    },\n    debug: function debug(contentOrOptions) {\n      var options = this.buildOptions.apply(this, arguments);\n      this.__record($.extend({}, {\n        level: 'Debug',\n        smallType: 'JsDebug'\n      }, options));\n    },\n    error: function error(contentOrOptions) {\n      var options = this.buildOptions.apply(this, arguments);\n      this.__record($.extend({}, {\n        level: 'Error',\n        smallType: 'JsError'\n      }, options));\n    },\n    buildOptions: function buildOptions() {\n      var options = {},\n        args = arguments;\n      if (_typeof(args[0]) === 'object') {\n        options = args[0];\n      } else {\n        // content\n        options.content = args[0];\n      }\n      var metas = [];\n      for (var key in document) {\n        var value = document[key];\n        if (typeof value !== 'string') {\n          continue;\n        }\n        metas.push('<b>' + key + ': </b>' + value);\n      }\n      options.content = '<b>LogContent: </b>' + (options.content || options.subject || '');\n      options.content2 = metas.join('<br/>');\n      return options;\n    },\n    defaults: {\n      logFrom: 'JS',\n      // \u65e5\u5fd7\u6765\u6e90\uff0c\u53ef\u6839\u636e\u6765\u6e90\u914d\u7f6e\u53d1\u5230\u54ea\u4e2a\u90ae\u7bb1\uff08BigType \u4e3a Mail \u624d\u4f1a\u53d1\uff09\n      bigType: 'Log',\n      // \u65e5\u5fd7\u5927\u7c7b\u578b(\u76ee\u524d\u53ea\u652f\u6301 Mail;Http;Log \u9700\u8981\u53ef\u4ee5\u518d\u52a0)\n      smallType: 'undefined',\n      // \u65e5\u5fd7\u5c0f\u7c7b\u578b\u7531\u65e5\u5fd7\u6765\u6e90\u65b9\u81ea\u5b9a\u4e49\n      enterpriseId: -1,\n      // \u5546\u6237ID\uff08\u6ca1\u6709\u5c31\u586b-1\uff09 -1 \u4ee3\u8868\u7cfb\u7edf\u65e5\u5fd7\n      restaurantId: -1,\n      // \u95e8\u5e97ID\uff08\u6ca1\u6709\u5c31\u586b-1\uff09 -1 \u4ee3\u8868\u7cfb\u7edf\u65e5\u5fd7\n      subject: '',\n      // \u65e5\u5fd7\u6807\u9898\n      content: '',\n      // \u65e5\u5fd7\u5185\u5bb91\n      contentTime: +new Date(),\n      // \u65e5\u5fd7\u5185\u5bb91\u65f6\u95f4\n      content2: '',\n      // \u65e5\u5fd7\u5185\u5bb92\n      content2Time: +new Date(),\n      // \u65e5\u5fd7\u5185\u5bb92\u65f6\u95f4\n      level: 'Debug',\n      // \u65e5\u5fd7\u7ea7\u522b(Verbose, Debug, Info, Warn, Error, Assert)\n      serverName: 'UserClient' // \u670d\u52a1\u5668\u6807\u5fd7\n    }\n  },\n\n  emoji: {\n    chooser: function chooser(opts) {\n      var emojiUnicode = '\ud83c\udf44,\ud83c\udf47,\ud83c\udf48,\ud83c\udf49,\ud83c\udf4a,\ud83c\udf4b,\ud83c\udf4c,\ud83c\udf4d,\ud83e\udd6d,\ud83c\udf4e,\ud83c\udf4f,\ud83c\udf50,\ud83c\udf51,\ud83c\udf52,\ud83c\udf53,\ud83e\uded0,\ud83e\udd5d,\ud83c\udf45,\ud83e\uded2,\ud83e\udd65,\ud83e\udd51,\ud83c\udf46,\ud83e\udd54,\ud83e\udd55,\ud83c\udf3d,\ud83c\udf36,\ud83e\uded1,\ud83e\udd52,\ud83e\udd6c,\ud83e\udd66,\ud83e\uddc4,\ud83e\uddc5,\ud83e\udd5c,\ud83e\uded8,\ud83c\udf30,\ud83c\udf5e,\ud83e\udd50,\ud83e\udd56,\ud83e\uded3,\ud83e\udd68,\ud83e\udd6f,\ud83e\udd5e,\ud83e\uddc7,\ud83e\uddc0,\ud83c\udf56,\ud83c\udf57,\ud83e\udd69,\ud83e\udd53,\ud83c\udf54,\ud83c\udf5f,\ud83c\udf55,\ud83c\udf2d,\ud83e\udd6a,\ud83c\udf2e,\ud83c\udf2f,\ud83e\uded4,\ud83e\udd59,\ud83e\uddc6,\ud83e\udd5a,\ud83c\udf73,\ud83e\udd58,\ud83c\udf72,\ud83e\uded5,\ud83e\udd63,\ud83e\udd57,\ud83c\udf7f,\ud83e\uddc8,\ud83e\uddc2,\ud83e\udd6b,\ud83c\udf71,\ud83c\udf58,\ud83c\udf59,\ud83c\udf5a,\ud83c\udf5b,\ud83c\udf5c,\ud83c\udf5d,\ud83c\udf60,\ud83c\udf62,\ud83c\udf63,\ud83c\udf64,\ud83c\udf65,\ud83e\udd6e,\ud83c\udf61,\ud83e\udd5f,\ud83e\udd60,\ud83e\udd61,\ud83e\udd80,\ud83e\udd9e,\ud83e\udd90,\ud83e\udd91,\ud83e\uddaa,\ud83c\udf66,\ud83c\udf67,\ud83c\udf68,\ud83c\udf69,\ud83c\udf6a,\ud83c\udf82,\ud83c\udf70,\ud83e\uddc1,\ud83e\udd67,\ud83c\udf6b,\ud83c\udf6c,\ud83c\udf6d,\ud83c\udf6e,\ud83c\udf6f,\ud83c\udf7c,\ud83e\udd5b,\u2615,\ud83e\uded6,\ud83c\udf75,\ud83c\udf76,\ud83c\udf7e,\ud83c\udf77,\ud83c\udf78,\ud83c\udf79,\ud83c\udf7a,\ud83c\udf7b,\ud83e\udd42,\ud83e\udd43,\ud83e\uded7,\ud83e\udd64,\ud83e\uddcb,\ud83e\uddc3,\ud83e\uddc9,\ud83e\uddca,\ud83e\udd62,\ud83c\udf7d,\ud83c\udf74,\ud83e\udd44,\ud83d\udd2a,\ud83e\uded9,\ud83c\udffa,\ud83d\ude00,\ud83d\ude03,\ud83d\ude04,\ud83d\ude01,\ud83d\ude06,\ud83d\ude05,\ud83e\udd23,\ud83d\ude02,\ud83d\ude42,\ud83d\ude43,\ud83e\udee0,\ud83d\ude09,\ud83d\ude0a,\ud83d\ude07,\ud83e\udd70,\ud83d\ude0d,\ud83e\udd29,\ud83d\ude18,\ud83d\ude17,\u263a,\ud83d\ude1a,\ud83d\ude19,\ud83e\udd72,\ud83d\ude0b,\ud83d\ude1b,\ud83d\ude1c,\ud83e\udd2a,\ud83d\ude1d,\ud83e\udd11,\ud83e\udd17,\ud83e\udd2d,\ud83e\udee2,\ud83e\udee3,\ud83e\udd2b,\ud83e\udd14,\ud83e\udee1,\ud83e\udd10,\ud83e\udd28,\ud83d\ude10,\ud83d\ude11,\ud83d\ude36,\ud83e\udee5,\ud83d\ude36\u200d\ud83c\udf2b\ufe0f,\ud83d\ude0f,\ud83d\ude12,\ud83d\ude44,\ud83d\ude2c,\ud83d\ude2e\u200d\ud83d\udca8,\ud83e\udd25,\ud83d\ude0c,\ud83d\ude14,\ud83d\ude2a,\ud83e\udd24,\ud83d\ude34,\ud83d\ude37,\ud83e\udd12,\ud83e\udd15,\ud83e\udd22,\ud83e\udd2e,\ud83e\udd27,\ud83e\udd75,\ud83e\udd76,\ud83e\udd74,\ud83d\ude35,\ud83d\ude35\u200d\ud83d\udcab,\ud83e\udd2f,\ud83e\udd20,\ud83e\udd73,\ud83e\udd78,\ud83d\ude0e,\ud83e\udd13,\ud83e\uddd0,\ud83d\ude15,\ud83e\udee4,\ud83d\ude1f,\ud83d\ude41,\u2639,\ud83d\ude2e,\ud83d\ude2f,\ud83d\ude32,\ud83d\ude33,\ud83e\udd7a,\ud83e\udd79,\ud83d\ude26,\ud83d\ude27,\ud83d\ude28,\ud83d\ude30,\ud83d\ude25,\ud83d\ude22,\ud83d\ude2d,\ud83d\ude31,\ud83d\ude16,\ud83d\ude23,\ud83d\ude1e,\ud83d\ude13,\ud83d\ude29,\ud83d\ude2b,\ud83e\udd71,\ud83d\ude24,\ud83d\ude21,\ud83d\ude20,\ud83e\udd2c,\ud83d\ude08,\ud83d\udc7f,\ud83d\udc80,\u2620,\ud83d\udca9,\ud83e\udd21,\ud83d\udc79,\ud83d\udc7a,\ud83d\udc7b,\ud83d\udc7d,\ud83d\udc7e,\ud83e\udd16,\ud83d\ude3a,\ud83d\ude38,\ud83d\ude39,\ud83d\ude3b,\ud83d\ude3c,\ud83d\ude3d,\ud83d\ude40,\ud83d\ude3f,\ud83d\ude3e,\ud83d\ude48,\ud83d\ude49,\ud83d\ude4a,\ud83d\udc8c,\ud83d\udc98,\ud83d\udc9d,\ud83d\udc96,\ud83d\udc97,\ud83d\udc93,\ud83d\udc9e,\ud83d\udc95,\ud83d\udc9f,\u2763,\ud83d\udc94,\u2764\ufe0f\u200d\ud83d\udd25,\u2764\ufe0f\u200d\ud83e\ude79,\u2764,\ud83e\udde1,\ud83d\udc9b,\ud83d\udc9a,\ud83d\udc99,\ud83d\udc9c,\ud83e\udd0e,\ud83d\udda4,\ud83e\udd0d,\ud83d\udc8b,\ud83d\udcaf,\ud83d\udca2,\ud83d\udca5,\ud83d\udcab,\ud83d\udca6,\ud83d\udca8,\ud83d\udd73,\ud83d\udcac,\ud83d\udc41\ufe0f\u200d\ud83d\udde8\ufe0f,\ud83d\udde8,\ud83d\uddef,\ud83d\udcad,\ud83d\udca4,\ud83d\udc4b,\ud83e\udd1a,\ud83d\udd90,\u270b,\ud83d\udd96,\ud83e\udef1,\ud83e\udef2,\ud83e\udef3,\ud83e\udef4,\ud83d\udc4c,\ud83e\udd0c,\ud83e\udd0f,\u270c,\ud83e\udd1e,\ud83e\udef0,\ud83e\udd1f,\ud83e\udd18,\ud83e\udd19,\ud83d\udc48,\ud83d\udc49,\ud83d\udc46,\ud83d\udd95,\ud83d\udc47,\u261d,\ud83e\udef5,\ud83d\udc4d,\ud83d\udc4e,\u270a,\ud83d\udc4a,\ud83e\udd1b,\ud83e\udd1c,\ud83d\udc4f,\ud83d\ude4c,\ud83e\udef6,\ud83d\udc50,\ud83e\udd32,\ud83e\udd1d,\ud83d\ude4f,\u270d,\ud83d\udc85,\ud83e\udd33,\ud83d\udcaa,\ud83e\uddbe,\ud83e\uddbf,\ud83e\uddb5,\ud83e\uddb6,\ud83d\udc42,\ud83e\uddbb,\ud83d\udc43,\ud83e\udde0,\ud83e\udec0,\ud83e\udec1,\ud83e\uddb7,\ud83e\uddb4,\ud83d\udc40,\ud83d\udc41,\ud83d\udc45,\ud83d\udc44,\ud83e\udee6,\ud83d\udc76,\ud83e\uddd2,\ud83d\udc66,\ud83d\udc67,\ud83e\uddd1,\ud83d\udc71,\ud83d\udc68,\ud83e\uddd4,\ud83e\uddd4\u200d\u2642\ufe0f,\ud83e\uddd4\u200d\u2640\ufe0f,\ud83d\udc68\u200d\ud83e\uddb0,\ud83d\udc68\u200d\ud83e\uddb1,\ud83d\udc68\u200d\ud83e\uddb3,\ud83d\udc68\u200d\ud83e\uddb2,\ud83d\udc69,\ud83d\udc69\u200d\ud83e\uddb0,\ud83e\uddd1\u200d\ud83e\uddb0,\ud83d\udc69\u200d\ud83e\uddb1,\ud83e\uddd1\u200d\ud83e\uddb1,\ud83d\udc69\u200d\ud83e\uddb3,\ud83e\uddd1\u200d\ud83e\uddb3,\ud83d\udc69\u200d\ud83e\uddb2,\ud83e\uddd1\u200d\ud83e\uddb2,\ud83d\udc71\u200d\u2640\ufe0f,\ud83d\udc71\u200d\u2642\ufe0f,\ud83e\uddd3,\ud83d\udc74,\ud83d\udc75,\ud83d\ude4d,\ud83d\ude4d\u200d\u2642\ufe0f,\ud83d\ude4d\u200d\u2640\ufe0f,\ud83d\ude4e,\ud83d\ude4e\u200d\u2642\ufe0f,\ud83d\ude4e\u200d\u2640\ufe0f,\ud83d\ude45,\ud83d\ude45\u200d\u2642\ufe0f,\ud83d\ude45\u200d\u2640\ufe0f,\ud83d\ude46,\ud83d\ude46\u200d\u2642\ufe0f,\ud83d\ude46\u200d\u2640\ufe0f,\ud83d\udc81,\ud83d\udc81\u200d\u2642\ufe0f,\ud83d\udc81\u200d\u2640\ufe0f,\ud83d\ude4b,\ud83d\ude4b\u200d\u2642\ufe0f,\ud83d\ude4b\u200d\u2640\ufe0f,\ud83e\uddcf,\ud83e\uddcf\u200d\u2642\ufe0f,\ud83e\uddcf\u200d\u2640\ufe0f,\ud83d\ude47,\ud83d\ude47\u200d\u2642\ufe0f,\ud83d\ude47\u200d\u2640\ufe0f,\ud83e\udd26,\ud83e\udd26\u200d\u2642\ufe0f,\ud83e\udd26\u200d\u2640\ufe0f,\ud83e\udd37,\ud83e\udd37\u200d\u2642\ufe0f,\ud83e\udd37\u200d\u2640\ufe0f,\ud83e\uddd1\u200d\u2695\ufe0f,\ud83d\udc68\u200d\u2695\ufe0f,\ud83d\udc69\u200d\u2695\ufe0f,\ud83e\uddd1\u200d\ud83c\udf93,\ud83d\udc68\u200d\ud83c\udf93,\ud83d\udc69\u200d\ud83c\udf93,\ud83e\uddd1\u200d\ud83c\udfeb,\ud83d\udc68\u200d\ud83c\udfeb,\ud83d\udc69\u200d\ud83c\udfeb,\ud83e\uddd1\u200d\u2696\ufe0f,\ud83d\udc68\u200d\u2696\ufe0f,\ud83d\udc69\u200d\u2696\ufe0f,\ud83e\uddd1\u200d\ud83c\udf3e,\ud83d\udc68\u200d\ud83c\udf3e,\ud83d\udc69\u200d\ud83c\udf3e,\ud83e\uddd1\u200d\ud83c\udf73,\ud83d\udc68\u200d\ud83c\udf73,\ud83d\udc69\u200d\ud83c\udf73,\ud83e\uddd1\u200d\ud83d\udd27,\ud83d\udc68\u200d\ud83d\udd27,\ud83d\udc69\u200d\ud83d\udd27,\ud83e\uddd1\u200d\ud83c\udfed,\ud83d\udc68\u200d\ud83c\udfed,\ud83d\udc69\u200d\ud83c\udfed,\ud83e\uddd1\u200d\ud83d\udcbc,\ud83d\udc68\u200d\ud83d\udcbc,\ud83d\udc69\u200d\ud83d\udcbc,\ud83e\uddd1\u200d\ud83d\udd2c,\ud83d\udc68\u200d\ud83d\udd2c,\ud83d\udc69\u200d\ud83d\udd2c,\ud83e\uddd1\u200d\ud83d\udcbb,\ud83d\udc68\u200d\ud83d\udcbb,\ud83d\udc69\u200d\ud83d\udcbb,\ud83e\uddd1\u200d\ud83c\udfa4,\ud83d\udc68\u200d\ud83c\udfa4,\ud83d\udc69\u200d\ud83c\udfa4,\ud83e\uddd1\u200d\ud83c\udfa8,\ud83d\udc68\u200d\ud83c\udfa8,\ud83d\udc69\u200d\ud83c\udfa8,\ud83e\uddd1\u200d\u2708\ufe0f,\ud83d\udc68\u200d\u2708\ufe0f,\ud83d\udc69\u200d\u2708\ufe0f,\ud83e\uddd1\u200d\ud83d\ude80,\ud83d\udc68\u200d\ud83d\ude80,\ud83d\udc69\u200d\ud83d\ude80,\ud83e\uddd1\u200d\ud83d\ude92,\ud83d\udc68\u200d\ud83d\ude92,\ud83d\udc69\u200d\ud83d\ude92,\ud83d\udc6e,\ud83d\udc6e\u200d\u2642\ufe0f,\ud83d\udc6e\u200d\u2640\ufe0f,\ud83d\udd75,\ud83d\udd75\ufe0f\u200d\u2642\ufe0f,\ud83d\udd75\ufe0f\u200d\u2640\ufe0f,\ud83d\udc82,\ud83d\udc82\u200d\u2642\ufe0f,\ud83d\udc82\u200d\u2640\ufe0f,\ud83e\udd77,\ud83d\udc77,\ud83d\udc77\u200d\u2642\ufe0f,\ud83d\udc77\u200d\u2640\ufe0f,\ud83e\udec5,\ud83e\udd34,\ud83d\udc78,\ud83d\udc73,\ud83d\udc73\u200d\u2642\ufe0f,\ud83d\udc73\u200d\u2640\ufe0f,\ud83d\udc72,\ud83e\uddd5,\ud83e\udd35,\ud83e\udd35\u200d\u2642\ufe0f,\ud83e\udd35\u200d\u2640\ufe0f,\ud83d\udc70,\ud83d\udc70\u200d\u2642\ufe0f,\ud83d\udc70\u200d\u2640\ufe0f,\ud83e\udd30,\ud83e\udec3,\ud83e\udec4,\ud83e\udd31,\ud83d\udc69\u200d\ud83c\udf7c,\ud83d\udc68\u200d\ud83c\udf7c,\ud83e\uddd1\u200d\ud83c\udf7c,\ud83d\udc7c,\ud83c\udf85,\ud83e\udd36,\ud83e\uddd1\u200d\ud83c\udf84,\ud83e\uddb8,\ud83e\uddb8\u200d\u2642\ufe0f,\ud83e\uddb8\u200d\u2640\ufe0f,\ud83e\uddb9,\ud83e\uddb9\u200d\u2642\ufe0f,\ud83e\uddb9\u200d\u2640\ufe0f,\ud83e\uddd9,\ud83e\uddd9\u200d\u2642\ufe0f,\ud83e\uddd9\u200d\u2640\ufe0f,\ud83e\uddda,\ud83e\uddda\u200d\u2642\ufe0f,\ud83e\uddda\u200d\u2640\ufe0f,\ud83e\udddb,\ud83e\udddb\u200d\u2642\ufe0f,\ud83e\udddb\u200d\u2640\ufe0f,\ud83e\udddc,\ud83e\udddc\u200d\u2642\ufe0f,\ud83e\udddc\u200d\u2640\ufe0f,\ud83e\udddd,\ud83e\udddd\u200d\u2642\ufe0f,\ud83e\udddd\u200d\u2640\ufe0f,\ud83e\uddde,\ud83e\uddde\u200d\u2642\ufe0f,\ud83e\uddde\u200d\u2640\ufe0f,\ud83e\udddf,\ud83e\udddf\u200d\u2642\ufe0f,\ud83e\udddf\u200d\u2640\ufe0f,\ud83e\uddcc,\ud83d\udc86,\ud83d\udc86\u200d\u2642\ufe0f,\ud83d\udc86\u200d\u2640\ufe0f,\ud83d\udc87,\ud83d\udc87\u200d\u2642\ufe0f,\ud83d\udc87\u200d\u2640\ufe0f,\ud83d\udeb6,\ud83d\udeb6\u200d\u2642\ufe0f,\ud83d\udeb6\u200d\u2640\ufe0f,\ud83e\uddcd,\ud83e\uddcd\u200d\u2642\ufe0f,\ud83e\uddcd\u200d\u2640\ufe0f,\ud83e\uddce,\ud83e\uddce\u200d\u2642\ufe0f,\ud83e\uddce\u200d\u2640\ufe0f,\ud83e\uddd1\u200d\ud83e\uddaf,\ud83d\udc68\u200d\ud83e\uddaf,\ud83d\udc69\u200d\ud83e\uddaf,\ud83e\uddd1\u200d\ud83e\uddbc,\ud83d\udc68\u200d\ud83e\uddbc,\ud83d\udc69\u200d\ud83e\uddbc,\ud83e\uddd1\u200d\ud83e\uddbd,\ud83d\udc68\u200d\ud83e\uddbd,\ud83d\udc69\u200d\ud83e\uddbd,\ud83c\udfc3,\ud83c\udfc3\u200d\u2642\ufe0f,\ud83c\udfc3\u200d\u2640\ufe0f,\ud83d\udc83,\ud83d\udd7a,\ud83d\udd74,\ud83d\udc6f,\ud83d\udc6f\u200d\u2642\ufe0f,\ud83d\udc6f\u200d\u2640\ufe0f,\ud83e\uddd6,\ud83e\uddd6\u200d\u2642\ufe0f,\ud83e\uddd6\u200d\u2640\ufe0f,\ud83e\uddd7,\ud83e\uddd7\u200d\u2642\ufe0f,\ud83e\uddd7\u200d\u2640\ufe0f,\ud83e\udd3a,\ud83c\udfc7,\u26f7,\ud83c\udfc2,\ud83c\udfcc,\ud83c\udfcc\ufe0f\u200d\u2642\ufe0f,\ud83c\udfcc\ufe0f\u200d\u2640\ufe0f,\ud83c\udfc4,\ud83c\udfc4\u200d\u2642\ufe0f,\ud83c\udfc4\u200d\u2640\ufe0f,\ud83d\udea3,\ud83d\udea3\u200d\u2642\ufe0f,\ud83d\udea3\u200d\u2640\ufe0f,\ud83c\udfca,\ud83c\udfca\u200d\u2642\ufe0f,\ud83c\udfca\u200d\u2640\ufe0f,\u26f9,\u26f9\ufe0f\u200d\u2642\ufe0f,\u26f9\ufe0f\u200d\u2640\ufe0f,\ud83c\udfcb,\ud83c\udfcb\ufe0f\u200d\u2642\ufe0f,\ud83c\udfcb\ufe0f\u200d\u2640\ufe0f,\ud83d\udeb4,\ud83d\udeb4\u200d\u2642\ufe0f,\ud83d\udeb4\u200d\u2640\ufe0f,\ud83d\udeb5,\ud83d\udeb5\u200d\u2642\ufe0f,\ud83d\udeb5\u200d\u2640\ufe0f,\ud83e\udd38,\ud83e\udd38\u200d\u2642\ufe0f,\ud83e\udd38\u200d\u2640\ufe0f,\ud83e\udd3c,\ud83e\udd3c\u200d\u2642\ufe0f,\ud83e\udd3c\u200d\u2640\ufe0f,\ud83e\udd3d,\ud83e\udd3d\u200d\u2642\ufe0f,\ud83e\udd3d\u200d\u2640\ufe0f,\ud83e\udd3e,\ud83e\udd3e\u200d\u2642\ufe0f,\ud83e\udd3e\u200d\u2640\ufe0f,\ud83e\udd39,\ud83e\udd39\u200d\u2642\ufe0f,\ud83e\udd39\u200d\u2640\ufe0f,\ud83e\uddd8,\ud83e\uddd8\u200d\u2642\ufe0f,\ud83e\uddd8\u200d\u2640\ufe0f,\ud83d\udec0,\ud83d\udecc,\ud83e\uddd1\u200d\ud83e\udd1d\u200d\ud83e\uddd1,\ud83d\udc6d,\ud83d\udc6b,\ud83d\udc6c,\ud83d\udc8f,\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68,\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc68,\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc8b\u200d\ud83d\udc69,\ud83d\udc91,\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc68,\ud83d\udc68\u200d\u2764\ufe0f\u200d\ud83d\udc68,\ud83d\udc69\u200d\u2764\ufe0f\u200d\ud83d\udc69,\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66,\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67,\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66,\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66,\ud83d\udc68\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67,\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66,\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67,\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66,\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66,\ud83d\udc68\u200d\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67,\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66,\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67,\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66,\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66,\ud83d\udc69\u200d\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67,\ud83d\udc68\u200d\ud83d\udc66,\ud83d\udc68\u200d\ud83d\udc66\u200d\ud83d\udc66,\ud83d\udc68\u200d\ud83d\udc67,\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc66,\ud83d\udc68\u200d\ud83d\udc67\u200d\ud83d\udc67,\ud83d\udc69\u200d\ud83d\udc66,\ud83d\udc69\u200d\ud83d\udc66\u200d\ud83d\udc66,\ud83d\udc69\u200d\ud83d\udc67,\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc66,\ud83d\udc69\u200d\ud83d\udc67\u200d\ud83d\udc67,\ud83d\udc6a,\ud83d\udde3,\ud83d\udc64,\ud83d\udc65,\ud83e\udec2,\ud83d\udc63,\ud83c\udffb,\ud83c\udffc,\ud83c\udffd,\ud83c\udffe,\ud83c\udfff,\ud83e\uddb0,\ud83e\uddb1,\ud83e\uddb3,\ud83e\uddb2,\ud83d\udc35,\ud83d\udc12,\ud83e\udd8d,\ud83e\udda7,\ud83d\udc36,\ud83d\udc15,\ud83e\uddae,\ud83d\udc15\u200d\ud83e\uddba,\ud83d\udc29,\ud83d\udc3a,\ud83e\udd8a,\ud83e\udd9d,\ud83d\udc31,\ud83d\udc08,\ud83d\udc08\u200d\u2b1b,\ud83e\udd81,\ud83d\udc2f,\ud83d\udc05,\ud83d\udc06,\ud83d\udc34,\ud83d\udc0e,\ud83e\udd84,\ud83e\udd93,\ud83e\udd8c,\ud83e\uddac,\ud83d\udc2e,\ud83d\udc02,\ud83d\udc03,\ud83d\udc04,\ud83d\udc37,\ud83d\udc16,\ud83d\udc17,\ud83d\udc3d,\ud83d\udc0f,\ud83d\udc11,\ud83d\udc10,\ud83d\udc2a,\ud83d\udc2b,\ud83e\udd99,\ud83e\udd92,\ud83d\udc18,\ud83e\udda3,\ud83e\udd8f,\ud83e\udd9b,\ud83d\udc2d,\ud83d\udc01,\ud83d\udc00,\ud83d\udc39,\ud83d\udc30,\ud83d\udc07,\ud83d\udc3f,\ud83e\uddab,\ud83e\udd94,\ud83e\udd87,\ud83d\udc3b,\ud83d\udc3b\u200d\u2744\ufe0f,\ud83d\udc28,\ud83d\udc3c,\ud83e\udda5,\ud83e\udda6,\ud83e\udda8,\ud83e\udd98,\ud83e\udda1,\ud83d\udc3e,\ud83e\udd83,\ud83d\udc14,\ud83d\udc13,\ud83d\udc23,\ud83d\udc24,\ud83d\udc25,\ud83d\udc26,\ud83d\udc27,\ud83d\udd4a,\ud83e\udd85,\ud83e\udd86,\ud83e\udda2,\ud83e\udd89,\ud83e\udda4,\ud83e\udeb6,\ud83e\udda9,\ud83e\udd9a,\ud83e\udd9c,\ud83d\udc38,\ud83d\udc0a,\ud83d\udc22,\ud83e\udd8e,\ud83d\udc0d,\ud83d\udc32,\ud83d\udc09,\ud83e\udd95,\ud83e\udd96,\ud83d\udc33,\ud83d\udc0b,\ud83d\udc2c,\ud83e\uddad,\ud83d\udc1f,\ud83d\udc20,\ud83d\udc21,\ud83e\udd88,\ud83d\udc19,\ud83d\udc1a,\ud83e\udeb8,\ud83d\udc0c,\ud83e\udd8b,\ud83d\udc1b,\ud83d\udc1c,\ud83d\udc1d,\ud83e\udeb2,\ud83d\udc1e,\ud83e\udd97,\ud83e\udeb3,\ud83d\udd77,\ud83d\udd78,\ud83e\udd82,\ud83e\udd9f,\ud83e\udeb0,\ud83e\udeb1,\ud83e\udda0,\ud83d\udc90,\ud83c\udf38,\ud83d\udcae,\ud83e\udeb7,\ud83c\udff5,\ud83c\udf39,\ud83e\udd40,\ud83c\udf3a,\ud83c\udf3b,\ud83c\udf3c,\ud83c\udf37,\ud83c\udf31,\ud83e\udeb4,\ud83c\udf32,\ud83c\udf33,\ud83c\udf34,\ud83c\udf35,\ud83c\udf3e,\ud83c\udf3f,\u2618,\ud83c\udf40,\ud83c\udf41,\ud83c\udf42,\ud83c\udf43,\ud83e\udeb9,\ud83e\udeba,\ud83c\udf0d,\ud83c\udf0e,\ud83c\udf0f,\ud83c\udf10,\ud83d\uddfa,\ud83d\uddfe,\ud83e\udded,\ud83c\udfd4,\u26f0,\ud83c\udf0b,\ud83d\uddfb,\ud83c\udfd5,\ud83c\udfd6,\ud83c\udfdc,\ud83c\udfdd,\ud83c\udfde,\ud83c\udfdf,\ud83c\udfdb,\ud83c\udfd7,\ud83e\uddf1,\ud83e\udea8,\ud83e\udeb5,\ud83d\uded6,\ud83c\udfd8,\ud83c\udfda,\ud83c\udfe0,\ud83c\udfe1,\ud83c\udfe2,\ud83c\udfe3,\ud83c\udfe4,\ud83c\udfe5,\ud83c\udfe6,\ud83c\udfe8,\ud83c\udfe9,\ud83c\udfea,\ud83c\udfeb,\ud83c\udfec,\ud83c\udfed,\ud83c\udfef,\ud83c\udff0,\ud83d\udc92,\ud83d\uddfc,\ud83d\uddfd,\u26ea,\ud83d\udd4c,\ud83d\uded5,\ud83d\udd4d,\u26e9,\ud83d\udd4b,\u26f2,\u26fa,\ud83c\udf01,\ud83c\udf03,\ud83c\udfd9,\ud83c\udf04,\ud83c\udf05,\ud83c\udf06,\ud83c\udf07,\ud83c\udf09,\u2668,\ud83c\udfa0,\ud83d\udedd,\ud83c\udfa1,\ud83c\udfa2,\ud83d\udc88,\ud83c\udfaa,\ud83d\ude82,\ud83d\ude83,\ud83d\ude84,\ud83d\ude85,\ud83d\ude86,\ud83d\ude87,\ud83d\ude88,\ud83d\ude89,\ud83d\ude8a,\ud83d\ude9d,\ud83d\ude9e,\ud83d\ude8b,\ud83d\ude8c,\ud83d\ude8d,\ud83d\ude8e,\ud83d\ude90,\ud83d\ude91,\ud83d\ude92,\ud83d\ude93,\ud83d\ude94,\ud83d\ude95,\ud83d\ude96,\ud83d\ude97,\ud83d\ude98,\ud83d\ude99,\ud83d\udefb,\ud83d\ude9a,\ud83d\ude9b,\ud83d\ude9c,\ud83c\udfce,\ud83c\udfcd,\ud83d\udef5,\ud83e\uddbd,\ud83e\uddbc,\ud83d\udefa,\ud83d\udeb2,\ud83d\udef4,\ud83d\udef9,\ud83d\udefc,\ud83d\ude8f,\ud83d\udee3,\ud83d\udee4,\ud83d\udee2,\u26fd,\ud83d\udede,\ud83d\udea8,\ud83d\udea5,\ud83d\udea6,\ud83d\uded1,\ud83d\udea7,\u2693,\ud83d\udedf,\u26f5,\ud83d\udef6,\ud83d\udea4,\ud83d\udef3,\u26f4,\ud83d\udee5,\ud83d\udea2,\u2708,\ud83d\udee9,\ud83d\udeeb,\ud83d\udeec,\ud83e\ude82,\ud83d\udcba,\ud83d\ude81,\ud83d\ude9f,\ud83d\udea0,\ud83d\udea1,\ud83d\udef0,\ud83d\ude80,\ud83d\udef8,\ud83d\udece,\ud83e\uddf3,\u231b,\u23f3,\u231a,\u23f0,\u23f1,\u23f2,\ud83d\udd70,\ud83d\udd5b,\ud83d\udd67,\ud83d\udd50,\ud83d\udd5c,\ud83d\udd51,\ud83d\udd5d,\ud83d\udd52,\ud83d\udd5e,\ud83d\udd53,\ud83d\udd5f,\ud83d\udd54,\ud83d\udd60,\ud83d\udd55,\ud83d\udd61,\ud83d\udd56,\ud83d\udd62,\ud83d\udd57,\ud83d\udd63,\ud83d\udd58,\ud83d\udd64,\ud83d\udd59,\ud83d\udd65,\ud83d\udd5a,\ud83d\udd66,\ud83c\udf11,\ud83c\udf12,\ud83c\udf13,\ud83c\udf14,\ud83c\udf15,\ud83c\udf16,\ud83c\udf17,\ud83c\udf18,\ud83c\udf19,\ud83c\udf1a,\ud83c\udf1b,\ud83c\udf1c,\ud83c\udf21,\u2600,\ud83c\udf1d,\ud83c\udf1e,\ud83e\ude90,\u2b50,\ud83c\udf1f,\ud83c\udf20,\ud83c\udf0c,\u2601,\u26c5,\u26c8,\ud83c\udf24,\ud83c\udf25,\ud83c\udf26,\ud83c\udf27,\ud83c\udf28,\ud83c\udf29,\ud83c\udf2a,\ud83c\udf2b,\ud83c\udf2c,\ud83c\udf00,\ud83c\udf08,\ud83c\udf02,\u2602,\u2614,\u26f1,\u26a1,\u2744,\u2603,\u26c4,\u2604,\ud83d\udd25,\ud83d\udca7,\ud83c\udf0a,\ud83c\udf83,\ud83c\udf84,\ud83c\udf86,\ud83c\udf87,\ud83e\udde8,\u2728,\ud83c\udf88,\ud83c\udf89,\ud83c\udf8a,\ud83c\udf8b,\ud83c\udf8d,\ud83c\udf8e,\ud83c\udf8f,\ud83c\udf90,\ud83c\udf91,\ud83e\udde7,\ud83c\udf80,\ud83c\udf81,\ud83c\udf97,\ud83c\udf9f,\ud83c\udfab,\ud83c\udf96,\ud83c\udfc6,\ud83c\udfc5,\ud83e\udd47,\ud83e\udd48,\ud83e\udd49,\u26bd,\u26be,\ud83e\udd4e,\ud83c\udfc0,\ud83c\udfd0,\ud83c\udfc8,\ud83c\udfc9,\ud83c\udfbe,\ud83e\udd4f,\ud83c\udfb3,\ud83c\udfcf,\ud83c\udfd1,\ud83c\udfd2,\ud83e\udd4d,\ud83c\udfd3,\ud83c\udff8,\ud83e\udd4a,\ud83e\udd4b,\ud83e\udd45,\u26f3,\u26f8,\ud83c\udfa3,\ud83e\udd3f,\ud83c\udfbd,\ud83c\udfbf,\ud83d\udef7,\ud83e\udd4c,\ud83c\udfaf,\ud83e\ude80,\ud83e\ude81,\ud83c\udfb1,\ud83d\udd2e,\ud83e\ude84,\ud83c\udfae,\ud83d\udd79,\ud83c\udfb0,\ud83c\udfb2,\ud83e\udde9,\ud83e\uddf8,\ud83e\ude85,\ud83e\udea9,\ud83e\ude86,\u2660,\u2665,\u2666,\u2663,\u265f,\ud83c\udccf,\ud83c\udc04,\ud83c\udfb4,\ud83d\udd2b,\ud83c\udfad,\ud83d\uddbc,\ud83c\udfa8,\ud83e\uddf5,\ud83e\udea1,\ud83e\uddf6,\ud83e\udea2,\ud83d\udc53,\ud83d\udd76,\ud83e\udd7d,\ud83e\udd7c,\ud83e\uddba,\ud83d\udc54,\ud83d\udc55,\ud83d\udc56,\ud83e\udde3,\ud83e\udde4,\ud83e\udde5,\ud83e\udde6,\ud83d\udc57,\ud83d\udc58,\ud83e\udd7b,\ud83e\ude71,\ud83e\ude72,\ud83e\ude73,\ud83d\udc59,\ud83d\udc5a,\ud83d\udc5b,\ud83d\udc5c,\ud83d\udc5d,\ud83d\udecd,\ud83c\udf92,\ud83e\ude74,\ud83d\udc5e,\ud83d\udc5f,\ud83e\udd7e,\ud83e\udd7f,\ud83d\udc60,\ud83d\udc61,\ud83e\ude70,\ud83d\udc62,\ud83d\udc51,\ud83d\udc52,\ud83c\udfa9,\ud83c\udf93,\ud83e\udde2,\ud83e\ude96,\u26d1,\ud83d\udcff,\ud83d\udc84,\ud83d\udc8d,\ud83d\udc8e,\ud83d\udd07,\ud83d\udd08,\ud83d\udd09,\ud83d\udd0a,\ud83d\udce2,\ud83d\udce3,\ud83d\udcef,\ud83d\udd14,\ud83d\udd15,\ud83c\udfbc,\ud83c\udfb5,\ud83c\udfb6,\ud83c\udf99,\ud83c\udf9a,\ud83c\udf9b,\ud83c\udfa4,\ud83c\udfa7,\ud83d\udcfb,\ud83c\udfb7,\ud83e\ude97,\ud83c\udfb8,\ud83c\udfb9,\ud83c\udfba,\ud83c\udfbb,\ud83e\ude95,\ud83e\udd41,\ud83e\ude98,\ud83d\udcf1,\ud83d\udcf2,\u260e,\ud83d\udcde,\ud83d\udcdf,\ud83d\udce0,\ud83d\udd0b,\ud83e\udeab,\ud83d\udd0c,\ud83d\udcbb,\ud83d\udda5,\ud83d\udda8,\u2328,\ud83d\uddb1,\ud83d\uddb2,\ud83d\udcbd,\ud83d\udcbe,\ud83d\udcbf,\ud83d\udcc0,\ud83e\uddee,\ud83c\udfa5,\ud83c\udf9e,\ud83d\udcfd,\ud83c\udfac,\ud83d\udcfa,\ud83d\udcf7,\ud83d\udcf8,\ud83d\udcf9,\ud83d\udcfc,\ud83d\udd0d,\ud83d\udd0e,\ud83d\udd6f,\ud83d\udca1,\ud83d\udd26,\ud83c\udfee,\ud83e\ude94,\ud83d\udcd4,\ud83d\udcd5,\ud83d\udcd6,\ud83d\udcd7,\ud83d\udcd8,\ud83d\udcd9,\ud83d\udcda,\ud83d\udcd3,\ud83d\udcd2,\ud83d\udcc3,\ud83d\udcdc,\ud83d\udcc4,\ud83d\udcf0,\ud83d\uddde,\ud83d\udcd1,\ud83d\udd16,\ud83c\udff7,\ud83d\udcb0,\ud83e\ude99,\ud83d\udcb4,\ud83d\udcb5,\ud83d\udcb6,\ud83d\udcb7,\ud83d\udcb8,\ud83d\udcb3,\ud83e\uddfe,\ud83d\udcb9,\u2709,\ud83d\udce7,\ud83d\udce8,\ud83d\udce9,\ud83d\udce4,\ud83d\udce5,\ud83d\udce6,\ud83d\udceb,\ud83d\udcea,\ud83d\udcec,\ud83d\udced,\ud83d\udcee,\ud83d\uddf3,\u270f,\u2712,\ud83d\udd8b,\ud83d\udd8a,\ud83d\udd8c,\ud83d\udd8d,\ud83d\udcdd,\ud83d\udcbc,\ud83d\udcc1,\ud83d\udcc2,\ud83d\uddc2,\ud83d\udcc5,\ud83d\udcc6,\ud83d\uddd2,\ud83d\uddd3,\ud83d\udcc7,\ud83d\udcc8,\ud83d\udcc9,\ud83d\udcca,\ud83d\udccb,\ud83d\udccc,\ud83d\udccd,\ud83d\udcce,\ud83d\udd87,\ud83d\udccf,\ud83d\udcd0,\u2702,\ud83d\uddc3,\ud83d\uddc4,\ud83d\uddd1,\ud83d\udd12,\ud83d\udd13,\ud83d\udd0f,\ud83d\udd10,\ud83d\udd11,\ud83d\udddd,\ud83d\udca3,\ud83d\udd28,\ud83e\ude93,\u26cf,\u2692,\ud83d\udee0,\ud83d\udde1,\u2694,\ud83e\ude83,\ud83c\udff9,\ud83d\udee1,\ud83e\ude9a,\ud83d\udd27,\ud83e\ude9b,\ud83d\udd29,\u2699,\ud83d\udddc,\u2696,\ud83e\uddaf,\ud83d\udd17,\u26d3,\ud83e\ude9d,\ud83e\uddf0,\ud83e\uddf2,\ud83e\ude9c,\u2697,\ud83e\uddea,\ud83e\uddeb,\ud83e\uddec,\ud83d\udd2c,\ud83d\udd2d,\ud83d\udce1,\ud83d\udc89,\ud83e\ude78,\ud83d\udc8a,\ud83e\ude79,\ud83e\ude7c,\ud83e\ude7a,\ud83e\ude7b,\ud83d\udeaa,\ud83d\uded7,\ud83e\ude9e,\ud83e\ude9f,\ud83d\udecf,\ud83d\udecb,\ud83e\ude91,\ud83d\udebd,\ud83e\udea0,\ud83d\udebf,\ud83d\udec1,\ud83e\udea4,\ud83e\ude92,\ud83e\uddf4,\ud83e\uddf7,\ud83e\uddf9,\ud83e\uddfa,\ud83e\uddfb,\ud83e\udea3,\ud83e\uddfc,\ud83e\udee7,\ud83e\udea5,\ud83e\uddfd,\ud83e\uddef,\ud83d\uded2,\ud83e\uddff,\ud83e\udeac,\ud83d\udeac,\u26b0,\ud83e\udea6,\u26b1,\ud83d\uddff,\ud83e\udea7,\ud83e\udeaa,\ud83c\udfe7,\ud83d\udeae,\ud83d\udeb0,\u267f,\ud83d\udeb9,\ud83d\udeba,\ud83d\udebb,\ud83d\udebc,\ud83d\udebe,\ud83d\udec2,\ud83d\udec3,\ud83d\udec4,\ud83d\udec5,\u26a0,\ud83d\udeb8,\u26d4,\ud83d\udeab,\ud83d\udeb3,\ud83d\udead,\ud83d\udeaf,\ud83d\udeb1,\ud83d\udeb7,\ud83d\udcf5,\ud83d\udd1e,\u2622,\u2623,\u2b06,\u2197,\u27a1,\u2198,\u2b07,\u2199,\u2b05,\u2196,\u2195,\u2194,\u21a9,\u21aa,\u2934,\u2935,\ud83d\udd03,\ud83d\udd04,\ud83d\udd19,\ud83d\udd1a,\ud83d\udd1b,\ud83d\udd1c,\ud83d\udd1d,\ud83d\uded0,\u269b,\ud83d\udd49,\u2721,\u2638,\u262f,\u271d,\u2626,\u262a,\u262e,\ud83d\udd4e,\ud83d\udd2f,\u2648,\u2649,\u264a,\u264b,\u264c,\u264d,\u264e,\u264f,\u2650,\u2651,\u2652,\u2653,\u26ce,\ud83d\udd00,\ud83d\udd01,\ud83d\udd02,\u25b6,\u23e9,\u23ed,\u23ef,\u25c0,\u23ea,\u23ee,\ud83d\udd3c,\u23eb,\ud83d\udd3d,\u23ec,\u23f8,\u23f9,\u23fa,\u23cf,\ud83c\udfa6,\ud83d\udd05,\ud83d\udd06,\ud83d\udcf6,\ud83d\udcf3,\ud83d\udcf4,\u2640,\u2642,\u26a7,\u2716,\u2795,\u2796,\u2797,\ud83d\udff0,\u267e,\u203c,\u2049,\u2753,\u2754,\u2755,\u2757,\u3030,\ud83d\udcb1,\ud83d\udcb2,\u2695,\u267b,\u269c,\ud83d\udd31,\ud83d\udcdb,\ud83d\udd30,\u2b55,\u2705,\u2611,\u2714,\u274c,\u274e,\u27b0,\u27bf,\u303d,\u2733,\u2734,\u2747,\u00a9,\u00ae,\u2122,#\ufe0f\u20e3,*\ufe0f\u20e3,0\ufe0f\u20e3,1\ufe0f\u20e3,2\ufe0f\u20e3,3\ufe0f\u20e3,4\ufe0f\u20e3,5\ufe0f\u20e3,6\ufe0f\u20e3,7\ufe0f\u20e3,8\ufe0f\u20e3,9\ufe0f\u20e3,\ud83d\udd1f,\ud83d\udd20,\ud83d\udd21,\ud83d\udd22,\ud83d\udd23,\ud83d\udd24,\ud83c\udd70,\ud83c\udd8e,\ud83c\udd71,\ud83c\udd91,\ud83c\udd92,\ud83c\udd93,\u2139,\ud83c\udd94,\u24c2,\ud83c\udd95,\ud83c\udd96,\ud83c\udd7e,\ud83c\udd97,\ud83c\udd7f,\ud83c\udd98,\ud83c\udd99,\ud83c\udd9a,\ud83c\ude01,\ud83c\ude02,\ud83c\ude37,\ud83c\ude36,\ud83c\ude2f,\ud83c\ude50,\ud83c\ude39,\ud83c\ude1a,\ud83c\ude32,\ud83c\ude51,\ud83c\ude38,\ud83c\ude34,\ud83c\ude33,\u3297,\u3299,\ud83c\ude3a,\ud83c\ude35,\ud83d\udd34,\ud83d\udfe0,\ud83d\udfe1,\ud83d\udfe2,\ud83d\udd35,\ud83d\udfe3,\ud83d\udfe4,\u26ab,\u26aa,\ud83d\udfe5,\ud83d\udfe7,\ud83d\udfe8,\ud83d\udfe9,\ud83d\udfe6,\ud83d\udfea,\ud83d\udfeb,\u2b1b,\u2b1c,\u25fc,\u25fb,\u25fe,\u25fd,\u25aa,\u25ab,\ud83d\udd36,\ud83d\udd37,\ud83d\udd38,\ud83d\udd39,\ud83d\udd3a,\ud83d\udd3b,\ud83d\udca0,\ud83d\udd18,\ud83d\udd33,\ud83d\udd32,\ud83c\udfc1,\ud83d\udea9,\ud83c\udf8c,\ud83c\udff4,\ud83c\udff3,\ud83c\udff3\ufe0f\u200d\ud83c\udf08,\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f,\ud83c\udff4\u200d\u2620\ufe0f,\ud83c\udde6\ud83c\udde8,\ud83c\udde6\ud83c\udde9,\ud83c\udde6\ud83c\uddea,\ud83c\udde6\ud83c\uddeb,\ud83c\udde6\ud83c\uddec,\ud83c\udde6\ud83c\uddee,\ud83c\udde6\ud83c\uddf1,\ud83c\udde6\ud83c\uddf2,\ud83c\udde6\ud83c\uddf4,\ud83c\udde6\ud83c\uddf6,\ud83c\udde6\ud83c\uddf7,\ud83c\udde6\ud83c\uddf8,\ud83c\udde6\ud83c\uddf9,\ud83c\udde6\ud83c\uddfa,\ud83c\udde6\ud83c\uddfc,\ud83c\udde6\ud83c\uddfd,\ud83c\udde6\ud83c\uddff,\ud83c\udde7\ud83c\udde6,\ud83c\udde7\ud83c\udde7,\ud83c\udde7\ud83c\udde9,\ud83c\udde7\ud83c\uddea,\ud83c\udde7\ud83c\uddeb,\ud83c\udde7\ud83c\uddec,\ud83c\udde7\ud83c\udded,\ud83c\udde7\ud83c\uddee,\ud83c\udde7\ud83c\uddef,\ud83c\udde7\ud83c\uddf1,\ud83c\udde7\ud83c\uddf2,\ud83c\udde7\ud83c\uddf3,\ud83c\udde7\ud83c\uddf4,\ud83c\udde7\ud83c\uddf6,\ud83c\udde7\ud83c\uddf7,\ud83c\udde7\ud83c\uddf8,\ud83c\udde7\ud83c\uddf9,\ud83c\udde7\ud83c\uddfb,\ud83c\udde7\ud83c\uddfc,\ud83c\udde7\ud83c\uddfe,\ud83c\udde7\ud83c\uddff,\ud83c\udde8\ud83c\udde6,\ud83c\udde8\ud83c\udde8,\ud83c\udde8\ud83c\udde9,\ud83c\udde8\ud83c\uddeb,\ud83c\udde8\ud83c\uddec,\ud83c\udde8\ud83c\udded,\ud83c\udde8\ud83c\uddee,\ud83c\udde8\ud83c\uddf0,\ud83c\udde8\ud83c\uddf1,\ud83c\udde8\ud83c\uddf2,\ud83c\udde8\ud83c\uddf3,\ud83c\udde8\ud83c\uddf4,\ud83c\udde8\ud83c\uddf5,\ud83c\udde8\ud83c\uddf7,\ud83c\udde8\ud83c\uddfa,\ud83c\udde8\ud83c\uddfb,\ud83c\udde8\ud83c\uddfc,\ud83c\udde8\ud83c\uddfd,\ud83c\udde8\ud83c\uddfe,\ud83c\udde8\ud83c\uddff,\ud83c\udde9\ud83c\uddea,\ud83c\udde9\ud83c\uddec,\ud83c\udde9\ud83c\uddef,\ud83c\udde9\ud83c\uddf0,\ud83c\udde9\ud83c\uddf2,\ud83c\udde9\ud83c\uddf4,\ud83c\udde9\ud83c\uddff,\ud83c\uddea\ud83c\udde6,\ud83c\uddea\ud83c\udde8,\ud83c\uddea\ud83c\uddea,\ud83c\uddea\ud83c\uddec,\ud83c\uddea\ud83c\udded,\ud83c\uddea\ud83c\uddf7,\ud83c\uddea\ud83c\uddf8,\ud83c\uddea\ud83c\uddf9,\ud83c\uddea\ud83c\uddfa,\ud83c\uddeb\ud83c\uddee,\ud83c\uddeb\ud83c\uddef,\ud83c\uddeb\ud83c\uddf0,\ud83c\uddeb\ud83c\uddf2,\ud83c\uddeb\ud83c\uddf4,\ud83c\uddeb\ud83c\uddf7,\ud83c\uddec\ud83c\udde6,\ud83c\uddec\ud83c\udde7,\ud83c\uddec\ud83c\udde9,\ud83c\uddec\ud83c\uddea,\ud83c\uddec\ud83c\uddeb,\ud83c\uddec\ud83c\uddec,\ud83c\uddec\ud83c\udded,\ud83c\uddec\ud83c\uddee,\ud83c\uddec\ud83c\uddf1,\ud83c\uddec\ud83c\uddf2,\ud83c\uddec\ud83c\uddf3,\ud83c\uddec\ud83c\uddf5,\ud83c\uddec\ud83c\uddf6,\ud83c\uddec\ud83c\uddf7,\ud83c\uddec\ud83c\uddf8,\ud83c\uddec\ud83c\uddf9,\ud83c\uddec\ud83c\uddfa,\ud83c\uddec\ud83c\uddfc,\ud83c\uddec\ud83c\uddfe,\ud83c\udded\ud83c\uddf0,\ud83c\udded\ud83c\uddf2,\ud83c\udded\ud83c\uddf3,\ud83c\udded\ud83c\uddf7,\ud83c\udded\ud83c\uddf9,\ud83c\udded\ud83c\uddfa,\ud83c\uddee\ud83c\udde8,\ud83c\uddee\ud83c\udde9,\ud83c\uddee\ud83c\uddea,\ud83c\uddee\ud83c\uddf1,\ud83c\uddee\ud83c\uddf2,\ud83c\uddee\ud83c\uddf3,\ud83c\uddee\ud83c\uddf4,\ud83c\uddee\ud83c\uddf6,\ud83c\uddee\ud83c\uddf7,\ud83c\uddee\ud83c\uddf8,\ud83c\uddee\ud83c\uddf9,\ud83c\uddef\ud83c\uddea,\ud83c\uddef\ud83c\uddf2,\ud83c\uddef\ud83c\uddf4,\ud83c\uddef\ud83c\uddf5,\ud83c\uddf0\ud83c\uddea,\ud83c\uddf0\ud83c\uddec,\ud83c\uddf0\ud83c\udded,\ud83c\uddf0\ud83c\uddee,\ud83c\uddf0\ud83c\uddf2,\ud83c\uddf0\ud83c\uddf3,\ud83c\uddf0\ud83c\uddf5,\ud83c\uddf0\ud83c\uddf7,\ud83c\uddf0\ud83c\uddfc,\ud83c\uddf0\ud83c\uddfe,\ud83c\uddf0\ud83c\uddff,\ud83c\uddf1\ud83c\udde6,\ud83c\uddf1\ud83c\udde7,\ud83c\uddf1\ud83c\udde8,\ud83c\uddf1\ud83c\uddee,\ud83c\uddf1\ud83c\uddf0,\ud83c\uddf1\ud83c\uddf7,\ud83c\uddf1\ud83c\uddf8,\ud83c\uddf1\ud83c\uddf9,\ud83c\uddf1\ud83c\uddfa,\ud83c\uddf1\ud83c\uddfb,\ud83c\uddf1\ud83c\uddfe,\ud83c\uddf2\ud83c\udde6,\ud83c\uddf2\ud83c\udde8,\ud83c\uddf2\ud83c\udde9,\ud83c\uddf2\ud83c\uddea,\ud83c\uddf2\ud83c\uddeb,\ud83c\uddf2\ud83c\uddec,\ud83c\uddf2\ud83c\udded,\ud83c\uddf2\ud83c\uddf0,\ud83c\uddf2\ud83c\uddf1,\ud83c\uddf2\ud83c\uddf2,\ud83c\uddf2\ud83c\uddf3,\ud83c\uddf2\ud83c\uddf4,\ud83c\uddf2\ud83c\uddf5,\ud83c\uddf2\ud83c\uddf6,\ud83c\uddf2\ud83c\uddf7,\ud83c\uddf2\ud83c\uddf8,\ud83c\uddf2\ud83c\uddf9,\ud83c\uddf2\ud83c\uddfa,\ud83c\uddf2\ud83c\uddfb,\ud83c\uddf2\ud83c\uddfc,\ud83c\uddf2\ud83c\uddfd,\ud83c\uddf2\ud83c\uddfe,\ud83c\uddf2\ud83c\uddff,\ud83c\uddf3\ud83c\udde6,\ud83c\uddf3\ud83c\udde8,\ud83c\uddf3\ud83c\uddea,\ud83c\uddf3\ud83c\uddeb,\ud83c\uddf3\ud83c\uddec,\ud83c\uddf3\ud83c\uddee,\ud83c\uddf3\ud83c\uddf1,\ud83c\uddf3\ud83c\uddf4,\ud83c\uddf3\ud83c\uddf5,\ud83c\uddf3\ud83c\uddf7,\ud83c\uddf3\ud83c\uddfa,\ud83c\uddf3\ud83c\uddff,\ud83c\uddf4\ud83c\uddf2,\ud83c\uddf5\ud83c\udde6,\ud83c\uddf5\ud83c\uddea,\ud83c\uddf5\ud83c\uddeb,\ud83c\uddf5\ud83c\uddec,\ud83c\uddf5\ud83c\udded,\ud83c\uddf5\ud83c\uddf0,\ud83c\uddf5\ud83c\uddf1,\ud83c\uddf5\ud83c\uddf2,\ud83c\uddf5\ud83c\uddf3,\ud83c\uddf5\ud83c\uddf7,\ud83c\uddf5\ud83c\uddf8,\ud83c\uddf5\ud83c\uddf9,\ud83c\uddf5\ud83c\uddfc,\ud83c\uddf5\ud83c\uddfe,\ud83c\uddf6\ud83c\udde6,\ud83c\uddf7\ud83c\uddea,\ud83c\uddf7\ud83c\uddf4,\ud83c\uddf7\ud83c\uddf8,\ud83c\uddf7\ud83c\uddfa,\ud83c\uddf7\ud83c\uddfc,\ud83c\uddf8\ud83c\udde6,\ud83c\uddf8\ud83c\udde7,\ud83c\uddf8\ud83c\udde8,\ud83c\uddf8\ud83c\udde9,\ud83c\uddf8\ud83c\uddea,\ud83c\uddf8\ud83c\uddec,\ud83c\uddf8\ud83c\udded,\ud83c\uddf8\ud83c\uddee,\ud83c\uddf8\ud83c\uddef,\ud83c\uddf8\ud83c\uddf0,\ud83c\uddf8\ud83c\uddf1,\ud83c\uddf8\ud83c\uddf2,\ud83c\uddf8\ud83c\uddf3,\ud83c\uddf8\ud83c\uddf4,\ud83c\uddf8\ud83c\uddf7,\ud83c\uddf8\ud83c\uddf8,\ud83c\uddf8\ud83c\uddf9,\ud83c\uddf8\ud83c\uddfb,\ud83c\uddf8\ud83c\uddfd,\ud83c\uddf8\ud83c\uddfe,\ud83c\uddf8\ud83c\uddff,\ud83c\uddf9\ud83c\udde6,\ud83c\uddf9\ud83c\udde8,\ud83c\uddf9\ud83c\udde9,\ud83c\uddf9\ud83c\uddeb,\ud83c\uddf9\ud83c\uddec,\ud83c\uddf9\ud83c\udded,\ud83c\uddf9\ud83c\uddef,\ud83c\uddf9\ud83c\uddf0,\ud83c\uddf9\ud83c\uddf1,\ud83c\uddf9\ud83c\uddf2,\ud83c\uddf9\ud83c\uddf3,\ud83c\uddf9\ud83c\uddf4,\ud83c\uddf9\ud83c\uddf7,\ud83c\uddf9\ud83c\uddf9,\ud83c\uddf9\ud83c\uddfb,\ud83c\uddf9\ud83c\uddff,\ud83c\uddfa\ud83c\udde6,\ud83c\uddfa\ud83c\uddec,\ud83c\uddfa\ud83c\uddf2,\ud83c\uddfa\ud83c\uddf3,\ud83c\uddfa\ud83c\uddf8,\ud83c\uddfa\ud83c\uddfe,\ud83c\uddfa\ud83c\uddff,\ud83c\uddfb\ud83c\udde6,\ud83c\uddfb\ud83c\udde8,\ud83c\uddfb\ud83c\uddea,\ud83c\uddfb\ud83c\uddec,\ud83c\uddfb\ud83c\uddee,\ud83c\uddfb\ud83c\uddf3,\ud83c\uddfb\ud83c\uddfa,\ud83c\uddfc\ud83c\uddeb,\ud83c\uddfc\ud83c\uddf8,\ud83c\uddfd\ud83c\uddf0,\ud83c\uddfe\ud83c\uddea,\ud83c\uddfe\ud83c\uddf9,\ud83c\uddff\ud83c\udde6,\ud83c\uddff\ud83c\uddf2,\ud83c\uddff\ud83c\uddfc,\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f,\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc73\udb40\udc63\udb40\udc74\udb40\udc7f,\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc77\udb40\udc6c\udb40\udc73\udb40\udc7f';\n      var $emojiWrapper = $('<div class=\"emoji-list-wrapper\"></div>');\n      var $emojiList = $('<ul class=\"emoji-list\"></ul>').appendTo($emojiWrapper);\n      $.each(emojiUnicode.split(','), function (i, emoji) {\n        var $emojiItem = $('<li class=\"emoji-item\"></li>').attr({\n          title: emoji,\n          unicode: emoji\n        }).html(emoji);\n        $emojiItem.appendTo($emojiList);\n      });\n      var dialogId = 'emoji-chooser-dialog';\n      wmf.util.dialog({\n        id: dialogId,\n        title: I18N.t('\u9009\u62e9Emoji\u8868\u60c5\u7b26\u53f7'),\n        content: $emojiWrapper\n      });\n      $emojiWrapper.delegate('.emoji-item', 'click', function () {\n        var $emojiItem = $(this);\n        if (typeof opts.onChoose === 'function') {\n          opts.onChoose.apply(this, [$emojiItem.attr('unicode'), $emojiItem]);\n        } else {\n          console.warn('callback function \\'onChoose\\' is not defined.');\n        }\n        closeDialogById(dialogId);\n      });\n    }\n  },\n  color: {\n    intToRgbaString: function intToRgbaString(intColor) {\n      var rgba = wmf.color.intToRgba(intColor);\n      return wmf.color.rgbaToString(rgba);\n    },\n    lightness: function lightness(rgba) {\n      return (rgba.r * 0.2126 + rgba.g * 0.7152 + rgba.b * 0.0722) / 255;\n    },\n    isDark: function isDark(rgba) {\n      return wmf.color.lightness(rgba) < 0.5;\n    },\n    rgbaToString: function rgbaToString(rgba) {\n      return 'rgba(' + rgba.r + ',' + rgba.g + ',' + rgba.b + ',' + wmf.util.halfUp(rgba.a / 255, 2) + ')';\n    },\n    intToRgba: function intToRgba(intColor) {\n      return {\n        a: intColor >> 24 & 0xFF,\n        r: intColor >> 16 & 0xFF,\n        g: intColor >> 8 & 0xFF,\n        b: intColor >> 0 & 0xFF\n      };\n    },\n    rgbaToInt: function rgbaToInt(rgba) {\n      return (rgba.a & 0xFF) << 24 | (rgba.r & 0xFF) << 16 | (rgba.g & 0xFF) << 8 | (rgba.b & 0xFF) << 0;\n    },\n    rgbaToRgb: function rgbaToRgb(rgbaString) {\n      // \u4f7f\u7528\u6b63\u5219\u8868\u8fbe\u5f0f\u5339\u914drgba\u683c\u5f0f\u7684\u989c\u8272\u503c\n      var rgbaRegex = /^rgba\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*([\\d\\.]+)\\s*\\)$/;\n      var match = rgbaString.match(rgbaRegex);\n      if (match) {\n        // \u63d0\u53d6\u7ea2\u3001\u7eff\u3001\u84dd\u4e09\u4e2a\u901a\u9053\u7684\u503c\n        var red = match[1];\n        var green = match[2];\n        var blue = match[3];\n\n        // \u6784\u9020\u5e76\u8fd4\u56deRGB\u683c\u5f0f\u7684\u5b57\u7b26\u4e32\n        return \"rgb(\".concat(red, \",\").concat(green, \",\").concat(blue, \")\");\n      } else {\n        // \u5982\u679c\u8f93\u5165\u5b57\u7b26\u4e32\u4e0d\u5339\u914drgba\u683c\u5f0f\uff0c\u8fd4\u56denull\u6216\u629b\u51fa\u4e00\u4e2a\u9519\u8bef\n        return null; // \u6216\u8005 throw new Error('Invalid RGBA string');\n      }\n    }\n  }\n});\n\nfunction ringCallback(c) {\n  var centerY = c.series[0].center[1],\n    titleHeight = parseInt(c.title.styles.fontSize);\n  c.setTitle({\n    y: centerY + titleHeight / 2\n  });\n}\n\n/**\n * \u5207\u6362\u56fe\u8868\u70b9\u51fb\u4e8b\u4ef6\uff08\u56fe\u8868\u5355\u9009\uff09\n */\nfunction emitLegendItemClick(me) {\n  for (var i = 0; i < me.chart.series.length; i++) {\n    if (i !== me.index) {\n      me.chart.series[i].setVisible(false, false);\n    }\n  }\n  return !me.chart.series[me.index].visible;\n}\n\n/**\n * \u83b7\u53d6\u56fe\u8868x\u8f74\u523b\u5ea6\u7ebf\u7684\u95f4\u9694\n */\nfunction getTickInterval(count) {\n  var window_width = $(window).width();\n  if (window_width < 768) {\n    return Math.round(count / 6);\n  }\n  if (768 <= window_width && window_width < 992) {\n    return Math.round(count / 10);\n  }\n  if (992 <= window_width && window_width < 1200) {\n    return Math.round(count / 15);\n  }\n  if (window_width > 1200 && count > 31) {\n    return Math.round(count / 25);\n  }\n  return 1;\n}\n(function (d) {\n  window.onerror = function (title, page, line, column, e) {\n    console.error(e);\n    jsLog({\n      title: title,\n      content: page + ':' + line + ':' + column,\n      detail: e.stack\n    });\n    return true;\n  };\n})(document);\nfunction jsLog(params) {\n  var logData = $.extend({}, {\n    title: 'JsLog',\n    content: '',\n    detail: ''\n  }, params || {});\n  $.ajax({\n    url: '/common/js_log',\n    data: logData\n  });\n}\n\n/**\n * \u5f02\u6b65\u8bf7\u6c42\uff0c\u6b64\u7c7b\u8bf7\u6c42\u4ec5\u8fd4\u56de 'success' \u6216 '\u9519\u8bef\u4fe1\u606f'\n * @param url\n */\nfunction notifyRequest(url) {\n  wmf.ajax.doAjax({\n    url: url,\n    success: function success(result) {\n      if ('success' == result) {\n        wmf.util.tip(I18N.t('\u64cd\u4f5c\u6210\u529f'));\n      } else {\n        wmf.util.alert(result);\n      }\n    }\n  });\n}\nwindow.TechSupport = function () {};\nwindow.TechSupport.prototype = {\n  renderTo: function renderTo(selector, options) {\n    this.options = $.extend({}, window.TechSupport.defaults, options);\n    var tech = $('<a target=\"_blank\" href=\"https://beian.miit.gov.cn\"></a>').html('&copy;' + this.options.info);\n    var copyright = $('<div></div>').attr({\n      'class': this.options.className\n    });\n    copyright.append(tech);\n    ($(selector) || $('body')).append(copyright);\n  }\n};\nwindow.TechSupport.defaults = {\n  className: 'copyright',\n  info: I18N.t('\u8fc5\u624b')\n};\nfunction initDistrict(select, selector) {\n  var defaultValue = $(select).attr('defaultValue');\n  $(select).val(defaultValue);\n  loadDistrict(select, selector);\n}\nfunction loadMainDistrict(e, init) {\n  $.ajax({\n    type: 'get',\n    url: '/common/district/load',\n    dataType: 'json',\n    data: {\n      parentId: 1,\n      category: 1\n    },\n    success: function success(result) {\n      renderSelect(e, result.districtDTOs);\n      if (init) {\n        initDistrict(e, true);\n      }\n    }\n  });\n}\nfunction loadDistrict(select, selector) {\n  var parent = $(select);\n  var targetId = parent.attr('target');\n  var targetCategory = parent.attr('targetCategory');\n  if (isEmpty(targetId) || isEmpty(targetCategory)) {\n    return;\n  }\n  var target = selector ? parent.parent().find(targetId) : $('#' + targetId);\n  var emptyText = target.attr('emptyText') || I18N.t('\u8bf7\u9009\u62e9');\n  var empty = $('<option value=\"\">' + emptyText + '</option>');\n  target.empty().append(empty);\n  var parentId = parent.val();\n  if (isEmpty(parentId)) {\n    loadDistrict(target, selector);\n    return;\n  }\n  wmf.ajax.doAjax({\n    type: 'get',\n    url: '/common/district/load',\n    dataType: 'json',\n    data: {\n      parentId: parentId,\n      category: targetCategory\n    },\n    success: function success(result) {\n      renderSelect(target, result.districtDTOs);\n      if (!isEmpty(target)) {\n        initDistrict(target, selector);\n      }\n    }\n  });\n}\nfunction renderSelect(target, districts) {\n  if (districts.length == 0) {\n    return;\n  }\n  for (var i in districts) {\n    $(target).append('<option value=\"' + districts[i].id + '\">' + districts[i].name + '</option>');\n  }\n}\nfunction ajaxErrorHandler(result, $tabs) {\n  wmf.ajax.errorHandler(result, $tabs);\n}\n\n/**\n * Format a number and return a string based on input settings\n * @param {Number} number The input number to format\n * @param {Number} decimals The amount of decimals\n * @param {String} decPoint The decimal point, defaults to the one given in the lang options\n * @param {String} thousandsSep The thousands separator, defaults to the one given in the lang options\n */\nfunction numberFormat(number, decimals, decPoint, thousandsSep) {\n  var lang = {\n      decimalPoint: '.',\n      thousandsSep: ','\n    },\n    // http://kevin.vanzonneveld.net/techblog/article/javascript_equivalent_for_phps_number_format/\n    n = +number || 0,\n    c = decimals === -1 ? (n.toString().split('.')[1] || '').length :\n    // preserve decimals\n    isNaN(decimals = Math.abs(decimals)) ? 2 : decimals,\n    d = decPoint === undefined ? lang.decimalPoint : decPoint,\n    t = thousandsSep === undefined ? lang.thousandsSep : thousandsSep,\n    s = n < 0 ? \"-\" : \"\",\n    i = String(parseInt(n = Math.abs(n).toFixed(c))),\n    j = i.length > 3 ? i.length % 3 : 0;\n  return s + (j ? i.substr(0, j) + t : \"\") + i.substr(j).replace(/(\\d{3})(?=\\d)/g, \"$1\" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : \"\");\n}\n\n/*\n\nfunction transformTozTreeFormat(array) {\n    var nodes = [], nodeMap = [];\n    for (var i = 0; i < array.length; i++) {\n        var n = array[i];\n        nodeMap[n.id] = n;\n    }\n    for (var j = 0; j < array.length; j++) {\n        var node = array[j];\n        var parent = nodeMap[node.pId];\n        if (parent && node.id != node.pId) {\n            var children = parent.children;\n            if (!children) {\n                children = [];\n            }\n            children.push(node);\n        } else {\n            nodes.push(node);\n        }\n    }\n    return nodes;\n}\n\nfunction transformToArrayFormat(nodes) {\n    if (!nodes) return [];\n    var array = [];\n    for (var i = 0; i < nodes.length; i++) {\n        var node = nodes[i];\n        array.push(node);\n        node.children && (array = array.concat(transformToArrayFormat(node.children)));\n    }\n    return array\n}*/\n\n+function ($) {\n  \"use strict\";\n\n  // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)\n  // ============================================================\n  function transitionEnd() {\n    var el = document.createElement('wmf');\n    var transEndEventNames = {\n      'WebkitTransition': 'webkitTransitionEnd',\n      'MozTransition': 'transitionend',\n      'OTransition': 'oTransitionEnd otransitionend',\n      'transition': 'transitionend'\n    };\n    for (var name in transEndEventNames) {\n      if (el.style[name] !== undefined) {\n        return {\n          end: transEndEventNames[name]\n        };\n      }\n    }\n  }\n\n  // http://blog.alexmaccaw.com/css-transitions\n  $.fn.wmfTransitionEnd = function (duration) {\n    var called = false,\n      $el = this;\n    $(this).one(wmf.util.transition.end, function () {\n      called = true;\n    });\n    var callback = function callback() {\n      if (!called) $($el).trigger(wmf.util.transition.end);\n    };\n    setTimeout(callback, duration);\n    return this;\n  };\n  $(function () {\n    wmf.util.transition = transitionEnd();\n  });\n}(jQuery);\n\n/**\n * \u7528\u6cd5\uff1a\n * 1\u3001\u6240\u6709\u9700\u8981\u63a7\u5236\u7684\u5143\u7d20\u589e\u52a0 {prefix}{sp}{name} \u6837\u5f0f\uff0c\u5982\uff1a toggle-name\n * 2\u3001\u5728\u7279\u6b8a\u7684\u9879\u76ee\u589e\u52a0\u5bf9\u5e94\u7684\u503c\u7684\u6837\u5f0f {prefix}{sp}{name}{sp}{value}\uff0c\u5982\uff1atoggle-name-true\n * 3\u3001\u5f53 {name} \u4e2d\u542b\u6709\u70b9\uff08.\uff09\u65f6\uff0c\u5c06\u5176\u66ff\u6362\u4e3a\u4e0b\u5212\u7ebf\uff08_\uff09\n * 4\u3001\u82e5\u6709\u6837\u5f0f\u6765\u63a7\u5236\u5143\u7d20\u7684\u663e\u793a\u53ca\u9690\u85cf\uff0c\u53ef\u901a\u8fc7\u914d\u7f6e hideClass \u6765\u63a7\u5236\n * \u610f\u601d\u662f\u5f53\u503c\u4e3a true \u65f6\uff0c\u4f1a\u5148\u9690\u85cf\u6240\u6709\u542b toggle-name \u6837\u5f0f\u7684\u9879\u76ee\uff0c\u53ea\u663e\u793a toggle-name-true \u9879\u76ee\n * \u5efa\u8bae\uff1a\u5c06 toggle-name \u589e\u52a0\u9ed8\u8ba4\u6837\u5f0f .toggle-name {display: none}\uff0c\u4ee5\u9632\u6b62\u52a0\u8f7d\u9875\u9762\u4f1a\u95ea\u7684\u95ee\u9898\n * \u4e8c\u7ea7\u8054\u52a8\u914d\u7f6e\uff0c\u793a\u4f8b\uff1a\n * 1\u3001\u5bf9 fieldA \u589e\u52a0\u5c5e\u6027 data-toggle=\"fieldB\"\uff0c\u8868\u793a fieldA \u53d8\u5316\u65f6\uff0c\u89e6\u53d1 fieldB \u7684\u53d8\u5316\uff1b\n * 2\u3001\u589e\u52a0\u5c5e\u6027 data-condition=\"fieldA\" data-condition-value=\"valueA\"  \u65f6\uff0c\n *    \u8868\u793a fieldA \u53d8\u5316\u65f6\uff0c\u82e5 fieldA \u4e3a valueA \u65f6\uff0c\u89e6\u53d1 fieldB \u7684\u53d8\u5316\n */\n(function ($) {\n  $.toggleShowIndex = 0;\n  function ToggleShow(options) {\n    this.initOptions(options);\n  }\n  $.extend(ToggleShow.prototype, {\n    init: function init() {\n      if ('' === this.options.name) {\n        return;\n      }\n      this.$all = this.$el();\n      if (this.options.temp) {\n        return;\n      }\n      if (!this.$el(true).data('toggleShow')) {\n        this.$all.unbind(this.options.event);\n        var self = this;\n        this.$all.bind(this.options.event, function () {\n          self.handleToggle($(this));\n        });\n        this.instanceId = ++$.toggleShowIndex;\n        this.$all.data('toggleShow', this);\n      }\n      this.toggle();\n    },\n    initOptions: function initOptions(options) {\n      this.options = $.extend({}, $.fn.toggleShow.defaults, options || {});\n      this.init();\n      return this;\n    },\n    toggleShow: function toggleShow($el, toggleValue) {\n      if (this.options.hideClass) {\n        $el.toggleClass(this.options.hideClass, !toggleValue);\n      } else {\n        $el.toggle(toggleValue);\n      }\n    },\n    toggle: function toggle() {\n      if (this.singleBoolean()) {\n        this.handleToggle(this.$all);\n      } else {\n        var $sel = this.$el(true);\n        if ($sel.length) {\n          this.handleToggle($sel);\n        }\n      }\n    },\n    handleToggle: function handleToggle($el) {\n      var nameClass = this.options.name.replaceAll('[\\\\.|\\\\[|\\\\]]', '_');\n      var selectorPrefix = this.options.prefix + this.options.sp + nameClass;\n      this.toggleShow(this.$('.' + selectorPrefix), false);\n      var value = this.value($el);\n      var showClass = '.' + selectorPrefix + this.options.sp + value;\n      if (typeof this.options.callback === 'function') {\n        this.options.callback.apply(this, [value]);\n      }\n      log('showClass', showClass);\n      this.toggleShow(this.$(showClass), true);\n      if (typeof this.options.after === 'function') {\n        this.options.after.apply(this, [value]);\n      }\n      var self = this;\n      this.$(showClass + '[data-toggle]').each(function () {\n        var $toggle = $(this);\n        var target = $toggle.data('toggle');\n        log('toggle-target', target);\n        if (target) {\n          var condition = $toggle.attr('data-toggle-condition');\n          if (condition) {\n            var conditionValue = $toggle.attr('data-toggle-condition-value');\n            if (condition !== self.options.name) {\n              log('ignore toggle ' + target + ', condition not match: ' + condition);\n              return;\n            }\n            var value = self.value($el);\n            if (conditionValue !== value) {\n              log('ignore toggle ' + target + ', condition value not match: ' + value);\n              return;\n            }\n          }\n          $.fn.toggleShow({\n            name: target,\n            $wrapper: self.options.$wrapper\n          }).toggle();\n        }\n      });\n    },\n    value: function value($el) {\n      return this.singleBoolean() && ($el.is(':checkbox') || $el.is(':radio')) ? $el.prop(this.options.sel) : $el.val();\n    },\n    singleBoolean: function singleBoolean() {\n      return this.$all.length === 1 && this.options.singleBoolean;\n    },\n    $el: function $el(active) {\n      return this.$(\":input[\".concat(this.options.attrName, \"=\\\"\").concat(this.options.name, \"\\\"]\") + (active ? ':' + this.options.sel : ''));\n    },\n    $: function (_$) {\n      function $(_x) {\n        return _$.apply(this, arguments);\n      }\n      $.toString = function () {\n        return _$.toString();\n      };\n      return $;\n    }(function (selector) {\n      return this.options.$wrapper ? this.options.$wrapper.find(selector) : $(selector);\n    })\n  });\n  var old = $.fn.toggleShow,\n    temp;\n  $.fn.toggleShow = function (options) {\n    var instance = $.fn.toggleShow.find(options);\n    if (instance) {\n      log('findToggleShow instance', instance);\n      return instance;\n    }\n    if (!temp) {\n      temp = new ToggleShow();\n    }\n    return new ToggleShow(options);\n  };\n  $.fn.toggleShow.Constructor = ToggleShow;\n  $.fn.toggleShow.noConflict = function () {\n    $.fn.toggleShow = old;\n    return this;\n  };\n  $.fn.toggleShow.find = function (options) {\n    if (!temp) return null;\n    var $el = temp.initOptions($.extend({\n      temp: true\n    }, options || {})).$el(true);\n    log('findToggleShow', $el);\n    return $el.data('toggleShow');\n  };\n  $.fn.toggleShow.defaults = {\n    name: '',\n    attrName: 'name',\n    event: 'click',\n    sel: 'checked',\n    prefix: 'toggle',\n    sp: '-',\n    singleBoolean: true,\n    hideClass: null,\n    $wrapper: null,\n    temp: false,\n    // \u662f\u5426\u4e3a\u4e34\u65f6\u5b9e\u4f8b\uff08\u4e34\u65f6\u5b9e\u4f8b\u4e0d\u4f1a\u89e6\u53d1 toggle \u4e8b\u4ef6\uff0c\u4ec5\u5185\u90e8\u4f7f\u7528\uff09\n    callback: function callback() {},\n    after: function after() {}\n  };\n})(jQuery);\n(function ($) {\n  function MultiChecker($el, options) {\n    this.$el = $el;\n    this.options = $.extend({}, $.fn.multiChecker.defaults, options || {});\n    this._create();\n  }\n  $.extend(MultiChecker.prototype, {\n    _create: function _create() {\n      var self = this;\n      if (!this.options.checkerSelector) {\n        this.options.checkerSelector = this.$el.data('checker-selector');\n      }\n      if (!this.options.checkerSelector) {\n        if (!this.options.fieldName) {\n          this.options.fieldName = this.$el.data('field-name');\n        }\n        this.options.checkerSelector = ':input[name=\"' + this.options.fieldName + '\"]';\n      }\n      if (!this.options.wrapper) {\n        this.options.wrapper = this.$el.data('wrapper') || 'body';\n      }\n      if (!this.options.toggleEnabled) {\n        this.options.toggleEnabled = this.$el.data('toggle-enabled');\n      }\n      this.$wrapper = $(this.options.wrapper);\n      this.$checkList = this.$wrapper.find(this.options.checkerSelector + ':not(:disabled)');\n      if (this.options.multi) {\n        this.$el.bind('click', function () {\n          self.toggleCheckAll.apply(self, arguments);\n        });\n      } else {\n        this.$el.hide();\n      }\n      this.$checkList.bind('click', function (e) {\n        if (self.stopPropagation) {\n          e.stopPropagation();\n        }\n        if (!self.options.multi) {\n          self.$el.prop('checked', false);\n          $(this).prop('checked', true);\n        }\n        self.onCheckerChange(false);\n      });\n    },\n    toggleCheckAll: function toggleCheckAll() {\n      var checked = this.$el.is(':checked');\n      this.$checkList.prop({\n        checked: checked\n      });\n      this.onCheckerChange(true);\n    },\n    onCheckerChange: function onCheckerChange(all) {\n      var self = this;\n      if (this.options.toggleEnabled) {\n        var $toggleHolder = $(this.options.toggleSelector);\n        var $checked = this.$wrapper.find(this.options.checkerSelector + ':checked');\n        if ($checked.length > 0) {\n          $toggleHolder.animate({\n            left: 0\n          }, 300);\n        } else {\n          $toggleHolder.animate({\n            left: -350\n          }, 300);\n        }\n      }\n      var callback = this.options.callback;\n      if (callback && typeof callback === 'function') {\n        callback.apply(self, [self.$el, all]);\n      }\n    }\n  });\n  var old = $.fn.multiChecker;\n  $.fn.multiChecker = function (options) {\n    return this.each(function () {\n      var $el = $(this),\n        instance = $el.data('multiChecker');\n      if (!instance) $el.data('multiChecker', instance = new MultiChecker($el, options));\n      return instance;\n    });\n  };\n  $.fn.multiChecker.Constructor = MultiChecker;\n  $.fn.multiChecker.noConflict = function () {\n    $.fn.multiChecker = old;\n    return this;\n  };\n  $.fn.multiChecker.defaults = {\n    multi: true,\n    fieldName: null,\n    toggleEnabled: null,\n    stopPropagation: true,\n    wrapper: null,\n    checkerSelector: null,\n    toggleSelector: '.toggle-multi-checker',\n    callback: function callback() {}\n  };\n})(jQuery);\n\n/**\n * \u89e3\u51b3 checkbox \u4e0d\u52fe\u9009\u8868\u5355\u4e0d\u4f1a\u63d0\u4ea4\u5b57\u6bb5\u7684\u95ee\u9898\n * \u7528\u6cd5\uff1a $(':input[data-checker-selector]').fixCheckerValue();\n * \u5176\u4e2d data-checker-selector \u4e3a\u9700\u8981\u63d0\u4ea4\u5b57\u6bb5\u7684\u5143\u7d20\u7684\u5c5e\u6027\uff0c\u5982\uff1a\n * <input type=\"checkbox\" class=\"checkbox-list\" value=\"A\" checked>\n * <input type=\"checkbox\" class=\"checkbox-list\" value=\"B\" checked>\n * <input type=\"hidden\" name=\"name\" data-checker-selector=\".checkbox-list\" value=\"A,B\"/>\n * \u82e5\u9009\u62e9\u6846\u53ea\u6709\u4e00\u4e2a\u65f6\uff0c\u5176\u503c\u4e3a boolean \u7c7b\u578b\uff1a\n * <input type=\"checkbox\" class=\"single-checkbox-list\" value=\"SINGLE\" checked>\n * <input type=\"hidden\" name=\"name1\" data-checker-selector=\".single-checkbox-list\" value=\"true\"/>\n */\n(function ($) {\n  function FixCheckerValue($el, options) {\n    this.$el = $el;\n    this.options = $.extend({}, $.fn.fixCheckerValue.defaults, options || {});\n    this._create();\n  }\n  $.extend(FixCheckerValue.prototype, {\n    _create: function _create() {\n      var self = this;\n      var checkerSelector = this.$el.data('checker-selector');\n      if (typeof checkerSelector !== 'undefined') {\n        this.options.checkerSelector = checkerSelector;\n      }\n      var valueFormat = this.$el.data('value-format');\n      if (typeof valueFormat !== 'undefined') {\n        this.options.valueFormat = valueFormat;\n      }\n      var booleanValue = this.$el.data('boolean-value');\n      if (typeof booleanValue === 'boolean') {\n        this.options.booleanValue = booleanValue;\n      }\n      if (!this.options.wrapper) {\n        this.options.wrapper = this.$el.data('wrapper') || 'body';\n      }\n      this.$wrapper = $(this.options.wrapper);\n      this.$initWrapper = this.options.initWrapper ? $(this.options.initWrapper) : this.$wrapper;\n      log('this.options.booleanValue', this.options.booleanValue);\n      this.$checkers = this.$wrapper.find(this.options.checkerSelector);\n      log('this.$wrapper', this.$wrapper, 'this.$checkers', this.$checkers);\n      this.$checkers.bind('click', function (e) {\n        if (self.options.stopPropagation) {\n          e.stopPropagation();\n        }\n        self.fixValue();\n      });\n      var values = [];\n      var defaultValue = this.$el.val() || '';\n      if ('csv' === this.options.valueFormat) {\n        values = defaultValue.split(',');\n      } else {\n        if (typeof this.options.valuesDecoder === 'function') {\n          values = this.options.valuesDecoder.apply(this, [defaultValue]);\n        } else {\n          values = null;\n          console.warn('not support value init for valueFormat: ' + this.options.valueFormat);\n        }\n      }\n      if (values) {\n        this.$initWrapper.find(this.options.checkerSelector).each(function () {\n          var $checker = $(this);\n          if (values.indexOf($checker.val()) > -1) {\n            $checker.prop('checked', true);\n          }\n        });\n      }\n    },\n    fixValue: function fixValue() {\n      var values = [],\n        sel = this.options.sel;\n      if (this.$checkers.length === 1 && this.options.booleanValue) {\n        values.push(this.$checkers.prop(sel));\n      } else {\n        this.$checkers.each(function (e) {\n          var $checker = $(this);\n          if ($checker.is(':' + sel)) {\n            values.push($checker.val());\n          }\n        });\n      }\n      var formattedValue = '';\n      var valueFormat = this.options.valueFormat;\n      if (typeof valueFormat === 'function') {\n        formattedValue = valueFormat.apply(this, [values]);\n      } else {\n        if ('json' === valueFormat) {\n          formattedValue = JSON.stringify(values);\n        } else if ('sum' === valueFormat) {\n          var sum = 0;\n          for (var i in values) {\n            var value = values[i];\n            sum += parseInt(value) || 0;\n          }\n          formattedValue = sum;\n        } else {\n          formattedValue = values.join(',');\n        }\n      }\n      log('[' + valueFormat + '] value: ' + formattedValue);\n      this.$el.val(formattedValue);\n      if (this.options.triggerEvent) {\n        this.$el.trigger(this.options.triggerEvent);\n      }\n    }\n  });\n  var old = $.fn.fixCheckerValue;\n  $.fn.fixCheckerValue = function (options) {\n    return this.each(function () {\n      var $el = $(this),\n        instance = $el.data('fixCheckerValue');\n      if (!instance) $el.data('fixCheckerValue', instance = new FixCheckerValue($el, options));\n      return instance;\n    });\n  };\n  $.fn.fixCheckerValue.Constructor = FixCheckerValue;\n  $.fn.fixCheckerValue.noConflict = function () {\n    $.fn.fixCheckerValue = old;\n    return this;\n  };\n  $.fn.fixCheckerValue.defaults = {\n    checkerSelector: null,\n    sel: 'checked',\n    /**\n     * \u5f53\u53ea\u6709\u4e00\u4e2a check \u65f6\uff0c\u5176\u503c\u4f53\u73b0\u4e3a\u5e03\u5c14\u578b\n     */\n    booleanValue: true,\n    /**\n     * \u53ef\u4f20\u5165 json\u3001csv\u3001sum \u53ca function\uff0c\u9ed8\u8ba4\u4e3a csv\uff1a\n     * \u4e3a csv \u8868\u793a\u9017\u53f7\u5206\u5272\u5b57\u7b26\u4e32\uff0c\u5982\uff1a\"value1,value2\"\n     * \u4e3a json \u5219\u8f6c\u6362\u6210JSON\u683c\u5f0f\u5b57\u7b26\u4e32\uff0c\u5982\uff1a\"[\\\"value1\\\", \\\"value2\\\"]\"\n     * \u4e3a sum \u5219\u5c06\u8ba1\u7b97\u9009\u4e2d\u7684\u503c\uff08\u6570\u5b57\uff09\u4e4b\u548c\n     * \u4e3a function \u65f6\uff0c\u5219\u4f1a\u901a\u8fc7\u81ea\u5b9a\u4e49\u51fd\u6570\u8fd4\u56de\u7ed3\u679c\n     */\n    valueFormat: 'csv',\n    valuesDecoder: null,\n    stopPropagation: true,\n    wrapper: null,\n    initWrapper: null,\n    triggerEvent: false\n  };\n})(jQuery);\n'use strict';\n(function ($) {\n  $.fn.Until = function (options) {\n    this.options = $.extend(true, {}, $.fn.Until.defaults, options || {});\n    this.times = 0;\n    this.timer = null;\n    this.handler = null;\n    this.running = false;\n  };\n  $.extend($.fn.Until.prototype, {\n    start: function start() {\n      if (this.options.blockUI) {\n        wmf.util.blockUI(this.options.tips);\n      }\n      if (this.options.delay > 0) {\n        var _this = this;\n        this.timer = setTimeout(function () {\n          _this.__run();\n        }, this.options.delay);\n      } else {\n        this.__run();\n      }\n      return this;\n    },\n    __run: function __run() {\n      var _this = this;\n      this.handler = setInterval(function () {\n        _this.fire();\n      }, this.options.interval);\n    },\n    fire: function fire() {\n      if (this.running) return;\n      this.times++;\n      this.running = true;\n      var _this = this,\n        ajaxOptions = this.options.ajaxOptions;\n      ajaxOptions.success = function () {\n        _this.success.apply(_this, arguments);\n      };\n      ajaxOptions.error = function () {\n        _this.failure.apply(_this, arguments);\n      };\n      wmf.ajax.doAjax(ajaxOptions);\n      log('Until.fire() ' + this.times + ' times.');\n    },\n    destroy: function destroy() {\n      log('Until.destroy() ');\n      clearInterval(this.handler);\n      this.handler = null;\n      this.options.completed.apply(this, arguments);\n      if (this.options.blockUI) {\n        wmf.util.unblockUI();\n      }\n    },\n    success: function success() {\n      this.running = false;\n      var success = this.options.success.apply(this, arguments);\n      var args = Array.prototype.slice.call(arguments);\n      if (success) {\n        args.push(true);\n        this.destroy.apply(this, args);\n      } else if (this.options.maxTimes !== null && this.times >= this.options.maxTimes) {\n        args.push(false);\n        this.destroy.apply(this, args);\n      }\n    },\n    failure: function failure() {\n      this.running = false;\n      this.destroy(false);\n    }\n  });\n  $.fn.Until.defaults = {\n    delay: 0,\n    interval: 2000,\n    maxTimes: null,\n    tips: I18N.t('\u8bf7\u7a0d\u540e...'),\n    ajaxOptions: {},\n    blockUI: true,\n    success: function success() {\n      log('Until.options.success() ', arguments);\n      return true;\n    },\n    completed: function completed() {\n      log('Until.options.completed() ', arguments);\n    }\n  };\n})(jQuery);\n'use strict';\n(function ($) {\n  function TimeRanges($el, opts) {\n    this.$el = $el;\n    this.$ranges = this.$el.find('tbody.time-ranges');\n    this.tplId = this.$ranges.data('tpl');\n    this.opts = $.extend({}, $.fn.timeRanges.defaults, opts || {});\n    this.init();\n  }\n  $.extend(TimeRanges.prototype, {\n    init: function init() {\n      var self = this;\n      this.$ranges.find('tr').each(function () {\n        var $tr = $(this);\n        self.initTimeRangeRow($tr);\n      });\n      this.$el.delegate('.btn-add', 'click', function () {\n        var $tr = $($('#' + self.tplId).html());\n        self.$ranges.append($tr);\n        self.initTimeRangeRow($tr);\n      });\n      this.$el.delegate('.btn-remove', 'click', function () {\n        var $el = $(this);\n        $el.closest('tr').remove();\n        self.refreshAlias();\n      });\n      $.each(this.opts.timeRanges, function (index, timeRange) {\n        var $tr = $($('#' + self.tplId).html());\n        self.$ranges.append($tr);\n        self.initTimeRangeRow($tr, timeRange);\n      });\n    },\n    initTimeRangeRow: function initTimeRangeRow($tr, timeRange) {\n      var options = {\n        autoclose: 1,\n        startView: 1,\n        minView: 0,\n        maxView: 1,\n        minuteStep: 1,\n        format: 'hh:ii',\n        startDate: moment().startOf('days').toDate(),\n        endDate: moment().endOf('days').toDate(),\n        language: 'zh-CN'\n      };\n      var $timeStart = $tr.find(':input[alias=\"timeStart\"]');\n      var $timeEnd = $tr.find(':input[alias=\"timeEnd\"]');\n      if (timeRange) {\n        if (timeRange.timeStart) {\n          $timeStart.val(timeRange.timeStart);\n        }\n        if (timeRange.timeEnd) {\n          $timeEnd.val(timeRange.timeEnd);\n        }\n      }\n      $timeStart.datetimepicker(options).on('changeDate', function (e) {\n        var timeStart = $timeStart.val();\n        if (timeStart) {\n          var date = new Date(moment().format('YYYY-MM-DD') + ' ' + timeStart);\n          $timeEnd.datetimepicker('setStartDate', date);\n        }\n      });\n      $timeEnd.datetimepicker(options).on('changeDate', function (e) {\n        var timeEnd = $timeEnd.val();\n        if (timeEnd) {\n          var date = new Date(moment().format('YYYY-MM-DD') + ' ' + timeEnd);\n          $timeStart.datetimepicker('setEndDate', date);\n        }\n      });\n      this.refreshAlias();\n    },\n    refreshAlias: function refreshAlias() {\n      wmf.util.refreshAliasIndex(this.$ranges);\n    }\n  });\n  $.fn.timeRanges = function (opts) {\n    return this.each(function () {\n      var $el = $(this),\n        instance = $el.data('timeRanges');\n      if (!instance) $el.data('timeRanges', instance = new TimeRanges($el, opts));\n      return instance;\n    });\n  };\n  $.fn.timeRanges.defaults = {\n    name: '',\n    timeRanges: [],\n    language: 'zh-CN'\n  };\n})(jQuery);\nfunction Version(data) {\n  this.value = '';\n  this.__fields__ = ['major', 'minor', 'patch'];\n  if (!data) {\n    data = {};\n  } else if (typeof data === 'string') {\n    this.value = data;\n    if (/^(\\d+\\.\\d+\\.\\d+)$/.test(data)) {\n      var ver = data.split('.');\n      data = {\n        major: parseInt(ver[0]),\n        minor: parseInt(ver[1]),\n        patch: parseInt(ver[2])\n      };\n    } else {\n      console.error('invalid version format: ', data);\n      data = {};\n    }\n  }\n  for (var i in this.__fields__) {\n    var field = this.__fields__[i];\n    this[field] = data[field] || 0;\n  }\n}\nVersion.prototype.compareTo = function (target) {\n  if (typeof target === 'string') {\n    target = new Version(target);\n  }\n  var self = this;\n  for (var i in this.__fields__) {\n    var field = this.__fields__[i];\n    if (self[field] !== target[field]) {\n      return self[field] > target[field] ? 1 : -1;\n    }\n  }\n  return 0;\n};\nVersion.prototype.toString = function () {\n  return this.value;\n};"],
"names":["_instanceof","left","right","Symbol","hasInstance","_typeof","obj","iterator","constructor","prototype","window","debugEnabled","log","window.log","console","apply","arguments","String","trim","String.prototype.trim","replace","replaceAll","String.prototype.replaceAll","string","replaceWith","ignoreCase","RegExp","isPrototypeOf","startsWith","String.prototype.startsWith","str","isEmpty","length","substring","endsWith","String.prototype.endsWith","Date","subtract","Date.prototype.subtract","dateLimit","moment","toDate","add","Date.prototype.add","$","fn","dataAndRemove","$.fn.dataAndRemove","key","val","data","removeData","dataAndReturnOld","$.fn.dataAndReturnOld","oldVal","Object","assign","wmf","path","eid","rid","enterpriseId","localStorage","getItem","ajax","async","url","success","result","setItem","prefix","prefixByEid","mobile","mobileByEid","activity","util","svgresize","svgEl","resizeScale","width","getAttribute","height","newHeight","setAttribute","svg2png","svgElement","callback","svgString","serializeToString","XMLSerializer","img","Image","onload","img.onload","canvas","document","createElement","getContext","ctx","drawImage","pngDataUrl","toDataURL","src","download","opts","downloadInternal","fileDownload","httpMethod","successCallback","closeDialog","unblockUI","failCallback","html","alert","I18N","t","getScript","___cdnActiveHost","blockUI","message","delayedShowMills","extend","innerPage","selector","initMethod","tryCnt","Error","InnerPage","setTimeout","callDelayed","clearTimeout","init","proxy","fun","Array","slice","call","require","sign","resourceUrl","hostName","location","origin","bindSelectAll","eId","name","m","all","bind","is","checkAll","uncheckAll","hide","checkbox","prop","checked","checkboxAllSupport","fieldName","$root","toggleClick","elem","fieldNameClassName","_currentValue","show","$checkboxAll","getCheckedValue","selectedValues","cbx","each","push","getCheckedAttr","attr","getCheckedAttrObject","attrs","selectedObjects","_this","object","a","getSelectedLabel","id","label","options","msg","smallWindow","blockUIDom","blockUiId","short8UUID","isCalledBlockUi","defaults","css","blockUiClassName","$blockUiMsg","showMsgContent","blockUiOpacity","showDelayedFun","$blockUiContainer","showBlockUiOpacity","baseZ","backgroundColor","overlayCSS","opacity","setProgress","i","option","display_text","percent_format","p","done","progressbar","blockUIProgress","tip","growlUI","growlCSS","isV2","isPhone","halfUp","scale","ignoredZero","Math","round","pow","resultVal","toFixed","floatVal","parseFloat","temp","fixed","friendlyFormat","_opts","okBtn","content","ok","_alert","title","requireWxSetting","downloadType","$msg","pathname","indexOf","requireWxaSetting","alertData","confirm","cancelBtn","confirmAsync","messageHtml","okText","cancelText","Promise","resolve","reject","cancelBtnText","okBtnText","cancel","prompt","autoClose","rows","value","_opts.ok","$prompt","promptInstance","text","ajaxConfirm","padding","dialog","_dialog","staticSize","showClose","minWidth","modal","fullBody","showCloseBtn","keyboard","buttons","dialogClass","onCreate","beforeShown","shown","onRenderComplete","remove","$dialog","okHandler","closeDialogById","cancelHandler","$closeBtn","find","tipMessage","pageBody","append","addClass","bodyMaxHeight","dialogMinWidth","dialogMaxWidth","className","okBtnClass","onClick","cancelBtnClass","$footer","map","button","join","on","index","loadUrl","$modalDialog","oldMinWidth","body","e","which","lastId","last","$modal","one","transition","end","_dialogAjaxRender","wmfTransitionEnd","renderDialogTo","empty","doAjax","type","onDialogLoadContent","updateOrders","multiUpdateOrders","reload","container","_orders","orders","_id","order","restaurantChange","restaurantId","restaurantName","expired","isRestaurantSwitch","changedCallback","_u","params","redirectUrl","forward","decodeURIComponent","verifyRid","getRemoteUrl","wmfRemoteBaseUrl","tabs","$tabs","wrapper","el","create","handleHashChange","tabContentCache","ajaxOptions","error","xhr","responseText","$div","removeClass","complete","listOperation","onTabShown","$wrapper","$tab","target","refreshTabHashParams","dataOnTabShown","load","active","tab","errors","selected","refreshCurrentTabs","loadCurrentTabs","div","hash","controls","idx","split","refreshTabDataUrl","warn","href","queryString","refreshCurrentTabDataUrl","$el","closest","$panel","tabId","urlData","uri","getParamsNew","dataParams","getParams","keys","toQueryStr","tabsChangeStatus","status","tips","urlPrefix","changeStatusCallback","tabsMultiChangeStatus","multi","ids","exportWithForm","form","openWindow","exportWithFormUrl","thisForm","param","searchUrl","serialize","printWithForm","autoCompleteOff","forms","autocomplete","link","toggleMore","hasClass","toggleShow","insert","field","selection","focus","sel","createRange","select","selectionStart","startPos","endPos","selectionEnd","restoreTop","scrollTop","trigger","insertThis","removeSpecialChar","current","toInt","defaultVal","parseVal","parseInt","isNaN","toFloat","fixPoint","bindMenuToggleEvent","toggleMenu","targetSelector","toggleClass","toggles","toggle","maskSelector","toQueryString","results","k","v","refreshAliasIndex","itemSelector","$items","children","row","$row","refreshAliasName","fieldPrefix","$field","aliasValue","fields","nameKey","$fields","isArray","objectMode","initFields","functionRecord","shake","animate","applyTableRowSpan","table_rowspan","table","tdIdx","rowSpanNum","prevRowSpanContent","rowSpanTd","$td","rowSpanContent","tableTds","Map","td","tdIdxSet","get","Set","set","cellIndex","forEach","ajaxSubmit","_success","dialogSubmit","_success2","serializeObject","$form","serializeArray","kv","_value","elements","parent","size","element","test","$1","elIndex","$2","array","namePrefix","ary","concat","validation","logged","isTelephone","isDecimal","isInteger","isDate","isTime","isPositiveInteger","isPositiveDecimal","isPercentage","isEmail","isTaxNo","validTelephones","validTels","match","regexp","tel","maybeJsonObject","lastIndexOf","maybeJsonArray","maybeJson","cookie","exec","writeCookie","writeCookieDay","days","expires","removeCookie","getCookie","image","lazyLoad","jQuery","lazyload","effect","b","c","tooltip","tooltipDefaults","delay","showURL","bodyHandler","background","galleryView","event","preventDefault","stopPropagation","blueimp","picture","$body","tpl","urls","$links","$img","$link","Gallery","closeOnSlideClick","onclosed","paging","initSort","formId","sortName","sortType","sortNameHidden","sortTypeHidden","sortable","arrow","getArrow","columnName","newHtml","doSort","sortNameInput","sortTypeInput","searchByPageNumber","_sortName","up","down","date","format","_format","o","getMonth","getDate","getHours","getMinutes","getSeconds","floor","getMilliseconds","getDay","substr","getFullYear","dateStrGen","now","addDay","num","dataArray","item","getSync","responseHtml","doAjaxPost","ajaxOptions.success","code","dataType","parseJSON","ajaxOptions.error","beforeSend","ajaxOptions.beforeSend","request","$restaurantSelect","setRequestHeader","_error","responseJSON","errorHandler","write","close","$tabPanel","_$tab","$currentTab","bindTo","es","browser","ie","msie","x_pi","bd2gg","point","lng","lat","z","sqrt","sin","theta","atan2","cos","gg2bd","chart","line","dateFormat","Highcharts","setOptions","global","useUTC","lang","weekdays","categories","xAxis","category","highcharts","zoomType","pinkType","headerFormat","pointFormat","plotOptions","series","events","legendItemClick","showOneLine","emitLegendItemClick","areaspline","borderWidth","lineWidth","fillOpacity","states","hover","enabled","marker","radius","yAxis","min","dateTimeLabelFormats","allowDecimals","labels","formatter","tickInterval","getTickInterval","legend","verticalAlign","credits","pie","colors","allowPointSelect","dataLabels","ring","cursor","style","color","theme","showInLegend","floating","ringCallback","funnel","marginRight","crop","overflow","softConnector","column","xAxisTag","yUnit","y","inside","dataTitle","colorByPoint","rotation","__record","getJSON","info","contentOrOptions","buildOptions","level","smallType","debug","args","metas","subject","content2","logFrom","bigType","contentTime","content2Time","serverName","emoji","chooser","$emojiWrapper","$emojiList","appendTo","unicode","$emojiItem","dialogId","delegate","onChoose","intToRgbaString","intColor","rgba","intToRgba","rgbaToString","lightness","r","g","isDark","rgbaToInt","rgbaToRgb","rgbaString","rgbaRegex","green","blue","red","centerY","center","titleHeight","styles","fontSize","setTitle","me","setVisible","visible","count","window_width","d","onerror","window.onerror","page","jsLog","detail","stack","logData","notifyRequest","TechSupport","window.TechSupport","renderTo","tech","copyright","initDistrict","defaultValue","loadDistrict","loadMainDistrict","parentId","renderSelect","districtDTOs","targetId","targetCategory","emptyText","districts","ajaxErrorHandler","numberFormat","number","decimals","decPoint","thousandsSep","n","toString","abs","undefined","decimalPoint","s","j","$.fn.wmfTransitionEnd","duration","called","transEndEventNames","ToggleShow","initOptions","toggleShowIndex","$all","unbind","self","handleToggle","instanceId","toggleValue","hideClass","singleBoolean","$sel","nameClass","selectorPrefix","sp","showClass","after","$toggle","condition","conditionValue","attrName","_$","_x","$.toString","old","$.fn.toggleShow","instance","Constructor","noConflict","$.fn.toggleShow.noConflict","$.fn.toggleShow.find","MultiChecker","multiChecker","_create","checkerSelector","toggleEnabled","$checkList","toggleCheckAll","onCheckerChange","$toggleHolder","toggleSelector","$checked","$.fn.multiChecker","$.fn.multiChecker.noConflict","FixCheckerValue","fixCheckerValue","valueFormat","booleanValue","$initWrapper","initWrapper","$checkers","fixValue","values","valuesDecoder","$checker","formattedValue","JSON","stringify","sum","triggerEvent","$.fn.fixCheckerValue","$.fn.fixCheckerValue.noConflict","Until","$.fn.Until","times","handler","timer","running","start","__run","setInterval","fire","interval","failure","destroy","clearInterval","completed","maxTimes","TimeRanges","$ranges","tplId","timeRanges","$tr","initTimeRangeRow","refreshAlias","timeRange","autoclose","startView","minView","maxView","minuteStep","startDate","startOf","endDate","endOf","language","$timeStart","$timeEnd","timeStart","timeEnd","datetimepicker","$.fn.timeRanges","Version","__fields__","ver","major","minor","patch","compareTo","Version.prototype.compareTo","Version.prototype.toString"]
}
