fabric
Version:
Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.
1 lines • 1.69 kB
Source Map (JSON)
{"version":3,"file":"selectorMatches.min.mjs","sources":["../../../src/parser/selectorMatches.ts"],"sourcesContent":["export function selectorMatches(element: HTMLElement, selector: string) {\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"],"names":["selectorMatches","element","selector","nodeName","classNames","getAttribute","id","azAz","matcher","RegExp","replace","length","splitClassNames","split","i"],"mappings":"AAAO,SAASA,EAAgBC,EAAsBC,GACpD,MAAMC,EAAWF,EAAQE,SACnBC,EAAaH,EAAQI,aAAa,SAClCC,EAAKL,EAAQI,aAAa,MAC1BE,EAAO,mBACb,IAAIC,EASJ,GANAA,EAAU,IAAIC,OAAO,IAAMN,EAAU,KACrCD,EAAWA,EAASQ,QAAQF,EAAS,IACjCF,GAAMJ,EAASS,SACjBH,EAAU,IAAIC,OAAO,IAAMH,EAAKC,EAAM,KACtCL,EAAWA,EAASQ,QAAQF,EAAS,KAEnCJ,GAAcF,EAASS,OAAQ,CACjC,MAAMC,EAAkBR,EAAWS,MAAM,KACzC,IAAK,IAAIC,EAAIF,EAAgBD,OAAQG,KACnCN,EAAU,IAAIC,OAAO,MAAQG,EAAgBE,GAAKP,EAAM,KACxDL,EAAWA,EAASQ,QAAQF,EAAS,GAEzC,CACA,OAA2B,IAApBN,EAASS,MAClB"}