UNPKG

first-npm-package-nicule

Version:

This isi first npm package

22 lines (19 loc) 835 B
import { makePropDecorator } from './../../google-decorator-factories'; import { Hypermedia } from 'first-npm-package-nicule/core'; import { BindDecorator } from './../bind.decorator'; export interface HasClassDecorator { (...classQueries: Array<Array<string>>): any; new(...classQueries: Array<Array<string>>): any; } export const HasClass: HasClassDecorator = makePropDecorator('HasClass', (...classQueries: Array<Array<string>>) => { return ({ binding: { priority: 0, bind: (({ class: existingClasses = [] }: Hypermedia = {} as any) => { return classQueries.some(classQuery => { return classQuery.every(_class => existingClasses.includes(_class)); }); }) } as BindDecorator }) as any; });