UNPKG

vue-zo

Version:

A Vuejs/Nuxt plugin that allows you to use roles and permissions in your components (setup macro & option API), also compatible as middleware, methods, composition-api and Pinia

48 lines 3.31 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isConditionPassed = exports.parseCondition = void 0; const strings_1 = require("./strings"); exports.parseCondition = (binding) => { let suffix = binding.name === 'can' ? 'permission' : binding.name; let arg = 'has'; if (binding.arg) { if (binding.arg === 'unless') { arg = 'unless'; } else if (binding.arg !== 'has') { arg += strings_1.startCase(binding.arg); } } // Convert to plural if is needed if (arg === 'hasAll') { suffix += 's'; } return `${arg}${strings_1.startCase(suffix)}`; }; exports.isConditionPassed = (app, condition) => (el, binding) => { var _a; if (!binding.value) { return; } // Get condition to validate let isValid = false; if (typeof condition === 'function') { isValid = condition(binding); } else { binding.name = condition; // Fix missing name property isValid = app.$zo[exports.parseCondition(binding)](binding.value); } if (!isValid) { if (strings_1.isEmpty(binding.modifiers)) { // Remove DOM Element (_a = el.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(el); } else { // Set attributes to DOM element Object.assign(el, binding.modifiers); } } }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlscy92YWxpZGF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLHVDQUErQztBQUVsQyxRQUFBLGNBQWMsR0FBRyxDQUFDLE9BQWdCLEVBQVUsRUFBRTtJQUN6RCxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQ2xFLElBQUksR0FBRyxHQUFHLEtBQUssQ0FBQztJQUVoQixJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUU7UUFDZixJQUFJLE9BQU8sQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFO1lBQzVCLEdBQUcsR0FBRyxRQUFRLENBQUM7U0FDaEI7YUFBTSxJQUFJLE9BQU8sQ0FBQyxHQUFHLEtBQUssS0FBSyxFQUFFO1lBQ2hDLEdBQUcsSUFBSSxtQkFBUyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUMvQjtLQUNGO0lBRUQsaUNBQWlDO0lBQ2pDLElBQUksR0FBRyxLQUFLLFFBQVEsRUFBRTtRQUNwQixNQUFNLElBQUksR0FBRyxDQUFDO0tBQ2Y7SUFFRCxPQUFPLEdBQUcsR0FBRyxHQUFHLG1CQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztBQUN0QyxDQUFDLENBQUM7QUFFVyxRQUFBLGlCQUFpQixHQUM1QixDQUFDLEdBQWlCLEVBQUUsU0FBNEIsRUFBRSxFQUFFLENBQ3BELENBQUMsRUFBZSxFQUFFLE9BQWdCLEVBQUUsRUFBRTs7SUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUU7UUFDbEIsT0FBTztLQUNSO0lBRUQsNEJBQTRCO0lBQzVCLElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNwQixJQUFJLE9BQU8sU0FBUyxLQUFLLFVBQVUsRUFBRTtRQUNuQyxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQzlCO1NBQU07UUFDTCxPQUFPLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztRQUN6Qiw0QkFBNEI7UUFDNUIsT0FBTyxHQUFHLEdBQUcsQ0FBQyxHQUFHLENBQUMsc0JBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMzRDtJQUVELElBQUksQ0FBQyxPQUFPLEVBQUU7UUFDWixJQUFJLGlCQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQzlCLHFCQUFxQjtZQUNyQixNQUFBLEVBQUUsQ0FBQyxVQUFVLDBDQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUU7U0FDaEM7YUFBTTtZQUNMLGdDQUFnQztZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEM7S0FDRjtBQUNILENBQUMsQ0FBQyJ9