UNPKG

@casl/vue

Version:

Vue plugin for CASL which makes it easy to add permissions in any Vue application

29 lines (28 loc) 1.11 kB
import { Abilities, AbilityTuple, AnyAbility, Generics, IfString, MongoAbility, SubjectType } from '@casl/ability'; export type CanProps<T extends AnyAbility> = AbilityCanProps<Generics<T>['abilities']> & { not?: boolean; passThrough?: boolean; }; export declare const Can: import("vue").DefineComponent<CanProps<MongoAbility<AbilityTuple, import("@casl/ability").MongoQuery>>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<CanProps<MongoAbility<AbilityTuple, import("@casl/ability").MongoQuery>>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>; type AbilityCanProps<T extends Abilities, Else = IfString<T, { do: T; } | { I: T; }>> = T extends AbilityTuple ? { do: T[0]; on: T[1]; field?: string; } | { I: T[0]; a: Extract<T[1], SubjectType>; field?: string; } | { I: T[0]; an: Extract<T[1], SubjectType>; field?: string; } | { I: T[0]; this: Exclude<T[1], SubjectType>; field?: string; } : Else; export {};