fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
1 lines • 1.57 kB
Source Map (JSON)
{"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"}