1 | /**
|
2 | * @typedef {import('css-selector-parser').Selector} Selector
|
3 | * @typedef {import('css-selector-parser').Selectors} Selectors
|
4 | * @typedef {import('css-selector-parser').RuleSet} RuleSet
|
5 | * @typedef {import('css-selector-parser').Rule} Rule
|
6 | * @typedef {import('css-selector-parser').RulePseudo} RulePseudo
|
7 | * @typedef {import('css-selector-parser').AttrValueType} AttrValueType
|
8 | * @typedef {Selector|Rule|RulePseudo} Query
|
9 | *
|
10 | * Fix for types.
|
11 | * @typedef {Object} RuleAttr
|
12 | * @property {string} name
|
13 | * @property {string} [operator]
|
14 | * @property {AttrValueType} [valueType]
|
15 | * @property {string} [value]
|
16 | *
|
17 | * More specific type for registered selector pseudos.
|
18 | * @typedef {Object} RulePseudoSelector
|
19 | * @property {string} name
|
20 | * @property {'selector'} valueType
|
21 | * @property {Selector} value
|
22 | *
|
23 | * Overwrite to compile nth-checks once.
|
24 | * @typedef {Object} RulePseudoNth
|
25 | * @property {string} name
|
26 | * @property {'function'} valueType
|
27 | * @property {(index: number) => boolean} value
|
28 | *
|
29 | * @typedef {import('unist').Node} Node
|
30 | * @typedef {import('unist').Parent} Parent
|
31 | *
|
32 | * @typedef {Object} SelectState
|
33 | * @property {(query: Selectors|RuleSet|Rule, node: Node|undefined, state: SelectState) => Node[]} any
|
34 | * @property {Array.<Node>} [scopeNodes]
|
35 | * @property {SelectIterator|null|undefined} [iterator]
|
36 | * @property {boolean} [one=false]
|
37 | * @property {boolean} [shallow=false]
|
38 | * @property {boolean} [index=false]
|
39 | * @property {boolean} [found=false]
|
40 | * @property {number} [typeIndex] Track siblings
|
41 | * @property {number} [nodeIndex] Track siblings
|
42 | * @property {number} [typeCount] Track siblings
|
43 | * @property {number} [nodeCount] Track siblings
|
44 | */
|
45 |
|
46 | /**
|
47 | * @callback SelectIterator
|
48 | * @param {Rule} query
|
49 | * @param {Node} node
|
50 | * @param {number} index
|
51 | * @param {Parent|null} parent
|
52 | * @param {SelectState} state
|
53 | */
|
54 |
|
55 | /**
|
56 | * @typedef {(
|
57 | * ((query: Rule, node: Node, index: number|null, parent: Parent|null, state: SelectState) => void)
|
58 | * )} Handler
|
59 | */
|
60 |
|
61 | export {}
|