{"version":3,"file":"selectorMatches.mjs","names":[],"sources":["../../../src/parser/selectorMatches.ts"],"sourcesContent":["export function selectorMatches(\n  element: HTMLElement | SVGElement,\n  selector: string,\n) {\n  const nodeName = element.nodeName;\n  const classNames = element.getAttribute('class');\n  const id = element.getAttribute('id');\n  const azAz = '(?![a-zA-Z\\\\-]+)';\n  let matcher;\n  // i check if a selector matches slicing away part from it.\n  // if i get empty string i should match\n  matcher = new RegExp('^' + nodeName, 'i');\n  selector = selector.replace(matcher, '');\n  if (id && selector.length) {\n    matcher = new RegExp('#' + id + azAz, 'i');\n    selector = selector.replace(matcher, '');\n  }\n  if (classNames && selector.length) {\n    const splitClassNames = classNames.split(' ');\n    for (let i = splitClassNames.length; i--; ) {\n      matcher = new RegExp('\\\\.' + splitClassNames[i] + azAz, 'i');\n      selector = selector.replace(matcher, '');\n    }\n  }\n  return selector.length === 0;\n}\n"],"mappings":";AAAA,SAAgB,gBACd,SACA,UACA;CACA,MAAM,WAAW,QAAQ;CACzB,MAAM,aAAa,QAAQ,aAAa,QAAQ;CAChD,MAAM,KAAK,QAAQ,aAAa,KAAK;CACrC,MAAM,OAAO;CACb,IAAI;AAGJ,WAAU,IAAI,OAAO,MAAM,UAAU,IAAI;AACzC,YAAW,SAAS,QAAQ,SAAS,GAAG;AACxC,KAAI,MAAM,SAAS,QAAQ;AACzB,YAAU,IAAI,OAAO,MAAM,KAAK,MAAM,IAAI;AAC1C,aAAW,SAAS,QAAQ,SAAS,GAAG;;AAE1C,KAAI,cAAc,SAAS,QAAQ;EACjC,MAAM,kBAAkB,WAAW,MAAM,IAAI;AAC7C,OAAK,IAAI,IAAI,gBAAgB,QAAQ,MAAO;AAC1C,aAAU,IAAI,OAAO,QAAQ,gBAAgB,KAAK,MAAM,IAAI;AAC5D,cAAW,SAAS,QAAQ,SAAS,GAAG;;;AAG5C,QAAO,SAAS,WAAW"}