{
"version":3,
"file":"flyhand-document.js",
"lineCount":16,
"mappings":"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",
"sources":["flyhand-document.js"],
"sourcesContent":["\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); }\nfunction initSearchAutoCompleted($searchInput, groupKeyValue, onDocumentClick) {\n  $searchInput.autocomplete({\n    minLength: 1,\n    classes: {\n      'ui-autocomplete': 'document-search-wrapper'\n    },\n    source: function source(request, response) {\n      $.keyword = request.term;\n      var groupKey = typeof groupKeyValue === 'function' ? groupKeyValue.call() : groupKeyValue;\n      searchDocument({\n        groupKey: groupKey,\n        keyword: request.term,\n        size: 10\n      }, {\n        onSuccess: function onSuccess(result) {\n          var paging = result.docsPage;\n          response($.map(paging.list, function (doc) {\n            return {\n              label: doc.title,\n              value: doc.title,\n              document: doc\n            };\n          }));\n        }\n      });\n    },\n    select: function select(event, ui) {\n      var document = ui.item.document;\n      setTimeout(function () {\n        $searchInput.val($.keyword);\n        onDocumentClick.apply(this, [document]);\n      }, 30);\n    }\n  });\n  var instance = $searchInput.autocomplete(\"instance\");\n  instance._renderMenu = function (ul, items) {\n    var that = this;\n    $.each(items, function (index, item) {\n      that._renderItemData(ul, item);\n    });\n    initDocumentPath($(ul), '.document-autocomplete-path', 'data-group-key');\n  };\n  instance._renderItem = function (ul, item) {\n    var document = item.document;\n    return $('<li>').append('<div class=\"document-autocomplete-item\">' + item.label + '<br><span class=\"document-autocomplete-path\" data-group-key=\"' + document.groupKey + '\"></span></div>').appendTo(ul);\n  };\n  $searchInput.bind('focus', function () {\n    $(this).autocomplete('search', $searchInput.val());\n  });\n}\nfunction loadDocumentMenu($menu) {\n  $menu.html('<span>' + I18N.t('\u52a0\u8f7d\u4e2d...') + '</span>');\n  wmf.ajax.doAjax({\n    url: '/common/document/child_groups?groupKey=help-center&depth=2',\n    dataType: 'json',\n    success: function success(result) {\n      if (result.success) {\n        renderMenu($menu, result.groups);\n      } else {\n        $menu.html(result.message);\n      }\n    }\n  });\n}\nfunction renderMenu($menu, groups) {\n  $menu.empty();\n  var tree = transformToTreeFormat(groups);\n  var $groups = $('<div class=\"menu-groups\"></div>');\n  for (var g in tree) {\n    var group = tree[g];\n    var children = group.children;\n    if (children && children.length) {\n      var $group = $('<div class=\"menu-group\">' + '<div class=\"menu-head\"></div>' + '<div class=\"menu-body\"></div>' + '</div>');\n      $group.find('.menu-head').html(group.name);\n      var $body = $group.find('.menu-body');\n      for (var i in children) {\n        var child = children[i];\n        var $li = $('<a class=\"menu-item\" href=\"/common/document?groupKey=' + child.groupKey + '\">' + child.name + '</a>');\n        $body.append($li);\n      }\n      $groups.append($group);\n    }\n  }\n  $menu.append($groups);\n}\nfunction transformToTreeFormat(groups) {\n  var nodes = [],\n    nodeMap = [];\n  for (var i = 0; i < groups.length; i++) {\n    var n = groups[i];\n    nodeMap[n.id] = n;\n  }\n  for (var j = 0; j < groups.length; j++) {\n    var node = groups[j];\n    var parent = nodeMap[node.parentId];\n    if (parent && node.id !== node.parentId) {\n      if (!parent.children) {\n        parent.children = [];\n      }\n      parent.children.push(node);\n    } else {\n      nodes.push(node);\n    }\n  }\n  return nodes;\n}\n\n/**\n * \u5728\u6307\u5b9a\u5206\u7ec4\u4e0b\u641c\u7d22\u6587\u6863\uff08\u6839\u636e\u5173\u952e\u5b57 keyword \u67e5\u8be2\u6587\u6863\u6807\u9898\u53ca\u5185\u5bb9\uff09\n * @param $el \u9700\u8981\u6e32\u67d3\u641c\u7d22\u7ed3\u679c\u7684 jQuery DOM\n * @param data \u5305\u542b groupKey\uff0c\u53ef\u9009 keyword \u3001 currentPage \u53ca searchContent \u53c2\u6570\n * @param options renderDocumentPaging \u7684\u56de\u8c03\u51fd\u6570\uff1a onPageClick\uff0conDocumentClick\uff0cafterRender\n */\nfunction searchDocumentRender($el, data, options) {\n  var onSuccess = options.onSuccess;\n  $el.data({\n    keyword: data.keyword || ''\n  });\n  options.onSuccess = function (result) {\n    if (result.success) {\n      if (onSuccess) {\n        onSuccess.apply(this, arguments);\n      }\n      renderDocumentPaging($el, result.docsPage, options);\n    } else {\n      $el.html(result.message);\n    }\n  };\n  data = $.extend({\n    searchContent: true\n  }, data || {});\n  searchDocument(data, options);\n}\n\n/**\n * \u5728\u6307\u5b9a\u5206\u7ec4\u4e0b\u641c\u7d22\u6587\u6863\uff08\u6839\u636e\u5173\u952e\u5b57 keyword \u67e5\u8be2\u6587\u6863\u6807\u9898\uff09\n * @param data \u5305\u542b groupKey\uff0c\u53ef\u9009 keyword \u3001 currentPage \u53c2\u6570\n * @param options renderDocumentPaging \u7684\u56de\u8c03\u51fd\u6570\uff1a onPageClick\uff0conDocumentClick\uff0cafterRender\n */\nfunction searchDocument(data, options) {\n  wmf.ajax.doAjax({\n    url: '/common/document/child_docs',\n    data: data,\n    dataType: 'json',\n    success: function success(result) {\n      options.onSuccess.apply(this, arguments);\n    }\n  });\n}\nfunction renderDocumentPaging($el, paging, options) {\n  options = $.extend({}, {\n    afterRender: function afterRender(paging) {\n      console.log('afterRender', paging);\n    },\n    onPageClick: function onPageClick(page) {\n      console.log('onPageClick', page);\n    },\n    onDocumentClick: function onDocumentClick(document) {\n      console.log('onDocumentClick', document);\n    },\n    openWithBlank: false\n  }, options || {});\n  $el.empty();\n  if (paging.list.length === 0) {\n    $el.html(I18N.t('\u6682\u65e0\u76f8\u5173\u4fe1\u606f\uff0c\u5148\u770b\u770b\u5176\u4ed6\u5427\uff01'));\n    return;\n  }\n  var keyword = $el.data('keyword');\n  var $list = $('<div class=\"document-list\"></div>');\n  for (var i in paging.list) {\n    var doc = paging.list[i];\n    var $item = $('<a class=\"document-item\"></a>').data(doc);\n    if (options.openWithBlank) {\n      $item.attr({\n        target: '_blank',\n        href: '/common/document?key=' + doc.docKey\n      });\n    } else {\n      $item.attr({\n        href: 'javascript:void(0)'\n      });\n    }\n    var title = doc.title,\n      desc = extractDesc(doc.content, keyword);\n    if (keyword) {\n      title = keywordHighlight(title, keyword);\n      desc = keywordHighlight(desc, keyword);\n    }\n    var $title = $('<div class=\"document-link\"></div>').html(isEmpty(title) ? I18N.t('\u65e0\u6807\u9898') : title).data(doc);\n    $item.append($title);\n    if (desc) {\n      var $desc = $('<div class=\"document-desc\"></div>').html(desc);\n      $item.append($desc);\n    }\n    var $path = $('<div class=\"document-path\"></div>').attr({\n      'data-group-key': doc.groupKey\n    });\n    $item.append($path);\n    $list.append($item);\n  }\n  $el.html($list);\n  initDocumentPath($el, '.document-path', 'data-group-key');\n  $list.delegate('.document-link,.document-item', 'click', function (e) {\n    if (!options.openWithBlank) {\n      e.stopPropagation();\n      e.preventDefault();\n    }\n    var $el = $(this);\n    var document = $el.data();\n    options.onDocumentClick.apply(this, [document]);\n  });\n  if (paging.totalCount > 0) {\n    var $paging = buildPagination(paging);\n    $paging.delegate('a[data-page]', 'click', function (e) {\n      if (!options.openWithBlank) {\n        e.stopPropagation();\n        e.preventDefault();\n      }\n      var page = $(this).data('page');\n      options.onPageClick.apply(this, [page]);\n    });\n    $el.append($paging);\n  }\n  options.afterRender.apply(this, [paging]);\n}\nfunction initDocumentPath($el, itemSelector, groupKeyAttr) {\n  var groupKeys = [],\n    querySelector = itemSelector + '[' + groupKeyAttr + ']';\n  $el.find(querySelector).each(function () {\n    var groupKey = $(this).attr(groupKeyAttr);\n    if (groupKey && groupKeys.indexOf(groupKey) === -1) {\n      groupKeys.push(groupKey);\n    }\n  });\n  if (groupKeys.length) {\n    var pathQuerySelector = function pathQuerySelector(groupKey) {\n      return itemSelector + '[' + groupKeyAttr + '=\"' + groupKey + '\"]';\n    };\n    wmf.ajax.doAjax({\n      url: '/common/document/parent_groups_map',\n      data: {\n        groupKeys: groupKeys\n      },\n      dataType: 'json',\n      success: function success(result) {\n        if (result.success) {\n          $.each(result.resultMap, function (groupKey, groups) {\n            $el.find(pathQuerySelector(groupKey)).html(buildPath(groups, 2));\n          });\n        } else {\n          console.error(result.message);\n        }\n      }\n    });\n  }\n}\nfunction buildPagination(paging) {\n  var $paging = $('<div class=\"pagination-container\">\\n' + '<ul class=\"pagination\"></ul>\\n' + '<div class=\"pagination-info pagination-hidden-xs\">' + I18N.t('\u5171[totalCount]\u6761\u8bb0\u5f55', {\n    totalCount: paging.totalCount\n  }) + '</div>\\n' + '</div>');\n  if (paging.pageCount > 1) {\n    var $pagination = $paging.find('.pagination');\n    if (paging.hasPreviousPage) {\n      $pagination.append('<li>\\n' + '<a href=\"javascript:void(0)\" data-page=\"' + paging.previousPage + '\" title=\"' + I18N.t('\u4e0a\u9875') + '\">' + I18N.t('\u4e0a\u9875') + '</a>\\n' + '</li>');\n    } else {\n      $pagination.append('<li class=\"disabled\"><span>' + I18N.t('\u4e0a\u9875') + '</span></li>');\n    }\n    var start = 1,\n      end = paging.pageCount,\n      size = paging.pageSize;\n    var v = size / 2,\n      left = Math.round(v),\n      right = v === left ? left - 1 : left;\n    if (paging.pageCount > size) {\n      if (paging.currentPage > left && paging.pageCount - right > paging.currentPage) {\n        start = paging.currentPage - left;\n        end = paging.currentPage + right;\n      } else {\n        if (paging.currentPage > left) {\n          start = paging.pageCount > size ? paging.pageCount - size + 1 : paging.currentPage - left;\n          end = paging.pageCount;\n        } else if (paging.pageCount - right > paging.currentPage) {\n          start = 1;\n          end = paging.pageCount > size ? size : paging.currentPage + right;\n        }\n      }\n    }\n    for (var page = start; page <= end; page++) {\n      if (paging.currentPage === page) {\n        $pagination.append('<li class=\"active pagination-hidden-xs\"><span>' + page + '</span></li>');\n      } else {\n        $pagination.append('<li class=\"pagination-hidden-xs\">\\n' + '<a href=\"javascript:void(0)\" data-page=\"' + page + '\" title=\"' + page + '\">' + page + '</a>\\n' + '</li>');\n      }\n    }\n    if (paging.hasNextPage) {\n      $pagination.append('<li>\\n' + '<a href=\"javascript:void(0)\" data-page=\"' + paging.nextPage + '\" title=\"' + I18N.t('\u4e0b\u9875') + '\">' + I18N.t('\u4e0b\u9875') + '</a>\\n' + '</li>');\n    } else {\n      $pagination.append('<li class=\"disabled\"><span>' + I18N.t('\u4e0b\u9875') + '</span></li>');\n    }\n  }\n  return $paging;\n}\nfunction buildPath(groups, levelFrom) {\n  groups = groups.slice(levelFrom); // \u76ee\u5f55\u4ece\u7b2c\u51e0\u7ea7\u5f00\u59cb\n  var groupNames = [];\n  $.each(groups, function (i, group) {\n    groupNames.push(group.name);\n  });\n  return groupNames.join(' / ');\n}\nfunction keywordHighlight(content, keyword) {\n  if (!keyword) {\n    return content;\n  }\n  return content.replaceAll(keyword, '<span class=\"search-keyword\">' + keyword + '</span>');\n}\nfunction extractDesc(content, keyword) {\n  if (!content) {\n    return '';\n  }\n  content = window._md ? window._md.engine.makeHtml(content) : content;\n  content = content.replaceAll('<br>', '\\n'); // \u5c06\u6362\u884c\u6807\u7b7e<br>\u66ff\u6362\u6210 \\n\uff0c\u56e0\u4e3a\u8fd9\u6837\u901a\u8fc7 jQuery.fn.text() \u5c31\u4f1a\u4fdd\u7559 \\n\n  var text = content.replaceAll('<.*?>', ''); // \u5c06\u6587\u6863\u8f6c\u6362\u6210\u6587\u672c\uff08\u4fdd\u7559\u4e86\u6362\u884c\u7b26\uff09\n  text = text.replaceAll('(\\n)+', '\\n'); // \u5c06\u540c\u4e00\u4f4d\u7f6e\u6709\u591a\u4e2a\u6362\u884c\u7b26\u7684\u66ff\u6362\u6210\u4e00\u4e2a\n  if (keyword) {\n    var keywordIndex = text.indexOf(keyword); // \u67e5\u627e\u5173\u952e\u5b57\u6240\u5728\u4f4d\u7f6e\n    var keywordBeforeText = text.substring(0, keywordIndex); // \u622a\u53d6\u5173\u952e\u5b57\u524d\u9762\u7684\u6240\u6709\u6587\u5b57\u5185\u5bb9\n    var keywordBeforeStartIndex = keywordBeforeText.lastIndexOf('\\n'); // \u67e5\u627e\u5173\u952e\u5b57\u4e4b\u524d\u7684\u6700\u540e\u4e00\u4e2a\u6362\u884c\u7b26\u6240\u5728\u4f4d\u7f6e\n    // \u622a\u53d6\u4ee5\u5173\u952e\u5b57\u4e3a\u7b2c\u4e00\u53e5\u7684\u4e4b\u540e\u7684\u6240\u6709\u5185\u5bb9\n    text = text.substring(keywordBeforeStartIndex);\n  }\n  if (text.length > 200) {\n    text = text.substring(0, 200);\n  }\n  return text;\n}\nif (typeof window.I18N === 'undefined') {\n  window.I18N = {\n    t: function t(code, formats) {\n      if (_typeof(formats) === 'object') {\n        for (var key in formats) {\n          code = code.replace('[' + key + ']', formats[key]);\n        }\n      }\n      return code;\n    },\n    ready: function ready(cb) {}\n  };\n}"],
"names":["_typeof","obj","Symbol","iterator","constructor","prototype","initSearchAutoCompleted","$searchInput","groupKeyValue","onDocumentClick","autocomplete","minLength","classes","source","request","response","$","keyword","term","groupKey","call","searchDocument","size","onSuccess","result","map","docsPage","list","doc","label","title","value","document","select","event","ui","item","setTimeout","val","apply","instance","_renderMenu","instance._renderMenu","ul","items","that","each","index","_renderItemData","initDocumentPath","_renderItem","instance._renderItem","append","appendTo","bind","loadDocumentMenu","$menu","html","I18N","t","wmf","ajax","doAjax","url","dataType","success","renderMenu","groups","message","empty","tree","transformToTreeFormat","$groups","g","group","children","length","$group","find","name","$body","i","child","$li","nodes","nodeMap","n","id","j","node","parent","parentId","push","searchDocumentRender","$el","data","options","options.onSuccess","arguments","renderDocumentPaging","extend","searchContent","paging","afterRender","console","log","onPageClick","page","openWithBlank","$list","$item","attr","target","href","docKey","desc","extractDesc","content","keywordHighlight","$title","isEmpty","$desc","$path","delegate","e","stopPropagation","preventDefault","totalCount","$paging","buildPagination","itemSelector","groupKeyAttr","groupKeys","indexOf","resultMap","buildPath","error","pageCount","$pagination","hasPreviousPage","previousPage","start","end","pageSize","v","left","Math","round","right","currentPage","hasNextPage","nextPage","levelFrom","slice","groupNames","join","replaceAll","window","_md","engine","makeHtml","text","keywordIndex","keywordBeforeStartIndex","substring","keywordBeforeText","lastIndexOf","code","formats","key","replace","ready","cb"]
}
