{"version":3,"file":"directives.cjs","names":[],"sources":["../directives/auth.js"],"sourcesContent":["/**\n * v-auth=\"'permissions1'\"\n * v-auth:all=\"['clickPermissions',['permission1', 'permission2']]\"\n * v-auth:any=\"['clickPermissions',['permission1', 'permission2']]\"\n * v-auth:none=\"['clickPermissions',['permission1', 'permission2']]\"\n * @type {*[]}\n */\n\nlet defaultPermissions = [];\n\nconst authDirective = {\n  beforeMount(el, binding) {\n    let { value } = binding;\n    const { arg } = binding;\n\n    if (!value) {\n      return;\n    }\n\n    if (typeof value === \"string\" || value instanceof String) {\n      value = [value];\n    }\n\n    let [permissions, myPermissions] = value;\n\n    if (!myPermissions) {\n      myPermissions = defaultPermissions;\n    }\n\n    if (typeof permissions === \"string\" || permissions instanceof String) {\n      permissions = [permissions];\n    }\n\n    // arg: 'any' 任何一个, 'all' 全部都有，默认, 'none' 都没有\n\n    if (arg === undefined || arg === \"all\") {\n      if (!permissions.every(p => myPermissions.includes(p))) {\n        el.style.display = \"none\";\n      }\n    } else if (arg === \"any\") {\n      if (!permissions.some(p => myPermissions.includes(p))) {\n        el.style.display = \"none\";\n      }\n    } else if (arg === \"none\") {\n      if (permissions.some(p => myPermissions.includes(p))) {\n        el.style.display = \"none\";\n      }\n    }\n  },\n};\n\n/**\n * 初始化权限集合\n * @param permissions\n */\nexport function setDefaultPermissions(permissions) {\n  defaultPermissions = permissions;\n}\n\nfunction auth(value, arg) {\n  if (!value) {\n    return true;\n  }\n\n  if (typeof value === \"string\" || value instanceof String) {\n    value = [value];\n  }\n\n  let [permissions, myPermissions] = value;\n\n  if (!myPermissions) {\n    myPermissions = defaultPermissions;\n  }\n\n  if (typeof permissions === \"string\" || permissions instanceof String) {\n    permissions = [permissions];\n  }\n\n  // arg: 'any' 任何一个, 'all' 全部都有，默认, 'none' 都没有\n\n  if (arg === undefined || arg === \"all\") {\n    if (!permissions.every(p => myPermissions.includes(p))) {\n      return false;\n    }\n  } else if (arg === \"any\") {\n    if (!permissions.some(p => myPermissions.includes(p))) {\n      return false;\n    }\n  } else if (arg === \"none\") {\n    if (permissions.some(p => myPermissions.includes(p))) {\n      return false;\n    }\n  }\n  return true;\n}\n\nexport default {\n  /**\n   *\n   * @param app\n   * @param {Object} [options]\n   * @param {Object} [options.defaultPermissions]\n   */\n  install(app, options) {\n    app.directive(\"auth\", authDirective);\n    app.config.globalProperties.$auth = auth;\n    app.provide(\"auth\", auth);\n\n    if (options && options.defaultPermissions) {\n      setDefaultPermissions(options.defaultPermissions);\n    }\n  },\n};\n"],"mappings":"mEAQA,IAAI,EAAqB,EAAE,CAErB,EAAgB,CACpB,YAAY,EAAI,EAAS,CACvB,GAAI,CAAE,SAAU,EACV,CAAE,OAAQ,EAEhB,GAAI,CAAC,EACH,QAGE,OAAO,GAAU,UAAY,aAAiB,UAChD,EAAQ,CAAC,EAAM,EAGjB,GAAI,CAAC,EAAa,GAAiB,EAEnC,AACE,IAAgB,GAGd,OAAO,GAAgB,UAAY,aAAuB,UAC5D,EAAc,CAAC,EAAY,EAKzB,IAAQ,IAAA,IAAa,IAAQ,MAC1B,EAAY,MAAM,GAAK,EAAc,SAAS,EAAE,CAAC,GACpD,EAAG,MAAM,QAAU,QAEZ,IAAQ,MACZ,EAAY,KAAK,GAAK,EAAc,SAAS,EAAE,CAAC,GACnD,EAAG,MAAM,QAAU,QAEZ,IAAQ,QACb,EAAY,KAAK,GAAK,EAAc,SAAS,EAAE,CAAC,GAClD,EAAG,MAAM,QAAU,SAI1B,CAMD,SAAgB,EAAsB,EAAa,CACjD,EAAqB,EAGvB,SAAS,EAAK,EAAO,EAAK,CACxB,GAAI,CAAC,EACH,MAAO,IAGL,OAAO,GAAU,UAAY,aAAiB,UAChD,EAAQ,CAAC,EAAM,EAGjB,GAAI,CAAC,EAAa,GAAiB,EAYnC,GAVA,AACE,IAAgB,GAGd,OAAO,GAAgB,UAAY,aAAuB,UAC5D,EAAc,CAAC,EAAY,EAKzB,IAAQ,IAAA,IAAa,IAAQ,UAC3B,CAAC,EAAY,MAAM,GAAK,EAAc,SAAS,EAAE,CAAC,CACpD,MAAO,WAEA,IAAQ,UACb,CAAC,EAAY,KAAK,GAAK,EAAc,SAAS,EAAE,CAAC,CACnD,MAAO,WAEA,IAAQ,QACb,EAAY,KAAK,GAAK,EAAc,SAAS,EAAE,CAAC,CAClD,MAAO,GAGX,MAAO,GAGT,IAAA,EAAe,CAOb,QAAQ,EAAK,EAAS,CACpB,EAAI,UAAU,OAAQ,EAAc,CACpC,EAAI,OAAO,iBAAiB,MAAQ,EACpC,EAAI,QAAQ,OAAQ,EAAK,CAErB,GAAW,EAAQ,oBACrB,EAAsB,EAAQ,mBAAmB,EAGtD"}