| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | import filesize from 'filesize.js'import _ from 'lodash'/* global siteConfig */const helpers = {  /**   * Convert bytes to humanized form   * @param {number} rawSize Size in bytes   * @returns {string} Humanized file size   */  filesize (rawSize) {    return _.toUpper(filesize(rawSize))  },  /**   * Convert raw path to safe path   * @param {string} rawPath Raw path   * @returns {string} Safe path   */  makeSafePath (rawPath) {    let rawParts = _.split(_.trim(rawPath), '/')    rawParts = _.map(rawParts, (r) => {      return _.kebabCase(_.deburr(_.trim(r)))    })    return _.join(_.filter(rawParts, (r) => { return !_.isEmpty(r) }), '/')  },  resolvePath (path) {    if (_.startsWith(path, '/')) { path = path.substring(1) }    return `${siteConfig.path}${path}`  },  /**   * Set Input Selection   * @param {DOMElement} input The input element   * @param {number} startPos The starting position   * @param {nunber} endPos The ending position   */  setInputSelection (input, startPos, endPos) {    input.focus()    if (typeof input.selectionStart !== 'undefined') {      input.selectionStart = startPos      input.selectionEnd = endPos    } else if (document.selection && document.selection.createRange) {      // IE branch      input.select()      var range = document.selection.createRange()      range.collapse(true)      range.moveEnd('character', endPos)      range.moveStart('character', startPos)      range.select()    }  }}export default {  install(Vue) {    Vue.$helpers = helpers    Object.defineProperties(Vue.prototype, {      $helpers: {        get() {          return helpers        }      }    })  }}
 |