123456789101112131415161718192021222324252627282930313233 |
- import PolishedError from './_errors'
- import type { InteractionState } from '../types/interactionState'
- function generateSelectors(template: Function, state: InteractionState): string {
- const stateSuffix = state ? `:${state}` : ''
- return template(stateSuffix)
- }
- function statefulSelectors(
- states: Array<InteractionState>,
- template: Function,
- stateMap?: Array<InteractionState>,
- ): string {
- if (!template) throw new PolishedError(67)
- if (states.length === 0) return generateSelectors(template, null)
- let selectors = []
- for (let i = 0; i < states.length; i += 1) {
- if (stateMap && stateMap.indexOf(states[i]) < 0) {
- throw new PolishedError(68)
- }
- selectors.push(generateSelectors(template, states[i]))
- }
- selectors = selectors.join(',')
- return selectors
- }
- export default statefulSelectors
|