index.d.ts 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. // Types & Classes
  2. export type SpecificityArray = [number, number, number];
  3. export type SpecificityObject = { a: number; b: number; c: number };
  4. export default class Specificity {
  5. static calculate(selector: string | CSSTreeAST): Array<Specificity>;
  6. static calculateForAST(selectorAST: CSSTreeAST): Specificity;
  7. static compare(s1: SpecificityInstanceOrObject, s2: SpecificityInstanceOrObject): number;
  8. static equals(s1: SpecificityInstanceOrObject, s2: SpecificityInstanceOrObject): boolean;
  9. static lessThan(s1: SpecificityInstanceOrObject, s2: SpecificityInstanceOrObject): boolean;
  10. static greaterThan(s1: SpecificityInstanceOrObject, s2: SpecificityInstanceOrObject): boolean;
  11. static min(...specificities: SpecificityInstanceOrObject[]): SpecificityInstanceOrObject;
  12. static max(...specificities: SpecificityInstanceOrObject[]): SpecificityInstanceOrObject;
  13. static sortAsc(...specificities: SpecificityInstanceOrObject[]): SpecificityInstanceOrObject;
  14. static sortDesc(...specificities: SpecificityInstanceOrObject[]): SpecificityInstanceOrObject;
  15. constructor(value: SpecificityObject, selector?: any);
  16. value: SpecificityObject;
  17. selector: string | CSSTreeAST;
  18. set a(arg: number);
  19. get a(): number;
  20. set b(arg: number);
  21. get b(): number;
  22. set c(arg: number);
  23. get c(): number;
  24. selectorString(): string;
  25. toObject(): SpecificityObject;
  26. toArray(): SpecificityArray;
  27. toString(): string;
  28. toJSON(): {
  29. selector: string;
  30. asObject: SpecificityObject;
  31. asArray: SpecificityArray;
  32. asString: string;
  33. };
  34. isEqualTo(otherSpecificity: SpecificityInstanceOrObject): boolean;
  35. isGreaterThan(otherSpecificity: SpecificityInstanceOrObject): boolean;
  36. isLessThan(otherSpecificity: SpecificityInstanceOrObject): boolean;
  37. }
  38. type SpecificityInstanceOrObject = Specificity | SpecificityObject;
  39. type CSSTreeAST = Object; // @TODO: Define shape
  40. // CORE
  41. export function calculate(selector: string | CSSTreeAST): Array<Specificity>;
  42. export function calculateForAST(selectorAST: CSSTreeAST): Specificity;
  43. // UTIL: COMPARE
  44. export function equals(s1: SpecificityInstanceOrObject, s2: SpecificityInstanceOrObject): boolean;
  45. export function greaterThan(s1: SpecificityInstanceOrObject, s2: SpecificityInstanceOrObject): boolean;
  46. export function lessThan(s1: SpecificityInstanceOrObject, s2: SpecificityInstanceOrObject): boolean;
  47. export function compare(s1: SpecificityInstanceOrObject, s2: SpecificityInstanceOrObject): number;
  48. // UTIL: FILTER
  49. export function min(specificities: SpecificityInstanceOrObject[]): SpecificityInstanceOrObject;
  50. export function max(specificities: SpecificityInstanceOrObject[]): SpecificityInstanceOrObject;
  51. // UTIL: SORT
  52. export function sortAsc(specificities: SpecificityInstanceOrObject[]): SpecificityInstanceOrObject[];
  53. export function sortDesc(specificities: SpecificityInstanceOrObject[]): SpecificityInstanceOrObject[];