forked from saulhardman/postcss-hover-media-feature
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.es.mjs.map
1 lines (1 loc) · 6.7 KB
/
index.es.mjs.map
1
{"version":3,"file":"index.es.mjs","sources":["index.js"],"sourcesContent":["const selectorParser = require('postcss-selector-parser')\n\nconst selectorProcessor = selectorParser(selectors => {\n let hoverSelectors = []\n\n selectors.walk(selector => {\n if (\n selector.type === 'pseudo' &&\n selector.toString() === ':hover' &&\n selector.parent.toString() !== ':hover'\n ) {\n let parent = selector.parent\n while (parent !== undefined) {\n if (parent.value === ':has' || parent.value === ':not') {\n return\n }\n\n parent = parent.parent\n }\n hoverSelectors.push(selector.parent.toString())\n }\n })\n\n let nonHoverSelectors = selectors.reduce((acc, selector) => {\n if (hoverSelectors.includes(selector.toString())) {\n return acc\n }\n\n return [...acc, selector.toString()]\n }, [])\n\n return { hoverSelectors, nonHoverSelectors }\n})\n\nmodule.exports = ({\n fallback = false,\n fallbackSelector = 'html:not(.supports-touch)',\n rootSelectors = []\n} = {}) => {\n function createMediaQuery (rule, { AtRule }) {\n let media = new AtRule({ name: 'media', params: '(hover: hover)' })\n\n media.source = rule.source\n\n media.append(rule)\n\n return media\n }\n\n function isAlreadyNested (rule) {\n let container = rule.parent\n\n while (container !== null && container.type !== 'root') {\n if (\n container.type === 'atrule' &&\n container.params.includes('hover: hover')\n ) {\n return true\n }\n\n container = container.parent\n }\n\n return false\n }\n\n return {\n postcssPlugin: 'postcss-hover-media-feature',\n\n Rule (rule, { AtRule }) {\n if (\n !rule.selector.includes(':hover') ||\n isAlreadyNested(rule) ||\n rule.selector.includes(fallbackSelector)\n ) {\n return\n }\n\n let {\n hoverSelectors = [],\n nonHoverSelectors = []\n } = selectorProcessor.transformSync(rule.selector, { lossless: false })\n\n if (hoverSelectors.length === 0) {\n return\n }\n\n let mediaQuery = createMediaQuery(\n rule.clone({ selectors: hoverSelectors }),\n { AtRule }\n )\n\n rule.after(mediaQuery)\n\n if (fallback) {\n rule.before(\n rule.clone({\n selectors: hoverSelectors.map(hoverSelector => {\n if (\n rootSelectors.some(rootSelector =>\n hoverSelector.startsWith(rootSelector)\n )\n ) {\n return `${fallbackSelector}${hoverSelector}`\n }\n return `${fallbackSelector} ${hoverSelector}`\n })\n })\n )\n }\n\n if (nonHoverSelectors.length > 0) {\n rule.replaceWith(rule.clone({ selectors: nonHoverSelectors }))\n\n return\n }\n\n rule.remove()\n }\n }\n}\n\nmodule.exports.postcss = true\n"],"names":["selectorParser","require","selectorProcessor","selectors","hoverSelectors","walk","selector","type","toString","parent","undefined","value","push","nonHoverSelectors","reduce","acc","includes","module","exports","fallback","fallbackSelector","rootSelectors","createMediaQuery","rule","AtRule","media","name","params","source","append","isAlreadyNested","container","postcssPlugin","Rule","transformSync","lossless","length","mediaQuery","clone","after","before","map","hoverSelector","some","rootSelector","startsWith","replaceWith","remove","postcss"],"mappings":"AAAA,MAAMA,cAAc,GAAGC,OAAO,CAAC,yBAAyB,CAAC,CAAA;AAEzD,MAAMC,iBAAiB,GAAGF,cAAc,CAACG,SAAS,IAAI;EACpD,IAAIC,cAAc,GAAG,EAAE,CAAA;AAEvBD,EAAAA,SAAS,CAACE,IAAI,CAACC,QAAQ,IAAI;IACzB,IACEA,QAAQ,CAACC,IAAI,KAAK,QAAQ,IAC1BD,QAAQ,CAACE,QAAQ,EAAE,KAAK,QAAQ,IAChCF,QAAQ,CAACG,MAAM,CAACD,QAAQ,EAAE,KAAK,QAAQ,EACvC;AACA,MAAA,IAAIC,MAAM,GAAGH,QAAQ,CAACG,MAAM,CAAA;MAC5B,OAAOA,MAAM,KAAKC,SAAS,EAAE;QAC3B,IAAID,MAAM,CAACE,KAAK,KAAK,MAAM,IAAIF,MAAM,CAACE,KAAK,KAAK,MAAM,EAAE;AACtD,UAAA,OAAA;AACF,SAAA;QAEAF,MAAM,GAAGA,MAAM,CAACA,MAAM,CAAA;AACxB,OAAA;MACAL,cAAc,CAACQ,IAAI,CAACN,QAAQ,CAACG,MAAM,CAACD,QAAQ,EAAE,CAAC,CAAA;AACjD,KAAA;AACF,GAAC,CAAC,CAAA;EAEF,IAAIK,iBAAiB,GAAGV,SAAS,CAACW,MAAM,CAAC,CAACC,GAAG,EAAET,QAAQ,KAAK;IAC1D,IAAIF,cAAc,CAACY,QAAQ,CAACV,QAAQ,CAACE,QAAQ,EAAE,CAAC,EAAE;AAChD,MAAA,OAAOO,GAAG,CAAA;AACZ,KAAA;IAEA,OAAO,CAAC,GAAGA,GAAG,EAAET,QAAQ,CAACE,QAAQ,EAAE,CAAC,CAAA;GACrC,EAAE,EAAE,CAAC,CAAA;EAEN,OAAO;IAAEJ,cAAc;AAAES,IAAAA,iBAAAA;GAAmB,CAAA;AAC9C,CAAC,CAAC,CAAA;AAEFI,MAAM,CAACC,OAAO,GAAG,CAAC;AAChBC,EAAAA,QAAQ,GAAG,KAAK;AAChBC,EAAAA,gBAAgB,GAAG,2BAA2B;AAC9CC,EAAAA,aAAa,GAAG,EAAA;AAClB,CAAC,GAAG,EAAE,KAAK;EACT,SAASC,gBAAgBA,CAAEC,IAAI,EAAE;AAAEC,IAAAA,MAAAA;AAAO,GAAC,EAAE;AAC3C,IAAA,IAAIC,KAAK,GAAG,IAAID,MAAM,CAAC;AAAEE,MAAAA,IAAI,EAAE,OAAO;AAAEC,MAAAA,MAAM,EAAE,gBAAA;AAAiB,KAAC,CAAC,CAAA;AAEnEF,IAAAA,KAAK,CAACG,MAAM,GAAGL,IAAI,CAACK,MAAM,CAAA;AAE1BH,IAAAA,KAAK,CAACI,MAAM,CAACN,IAAI,CAAC,CAAA;AAElB,IAAA,OAAOE,KAAK,CAAA;AACd,GAAA;EAEA,SAASK,eAAeA,CAAEP,IAAI,EAAE;AAC9B,IAAA,IAAIQ,SAAS,GAAGR,IAAI,CAACd,MAAM,CAAA;IAE3B,OAAOsB,SAAS,KAAK,IAAI,IAAIA,SAAS,CAACxB,IAAI,KAAK,MAAM,EAAE;AACtD,MAAA,IACEwB,SAAS,CAACxB,IAAI,KAAK,QAAQ,IAC3BwB,SAAS,CAACJ,MAAM,CAACX,QAAQ,CAAC,cAAc,CAAC,EACzC;AACA,QAAA,OAAO,IAAI,CAAA;AACb,OAAA;MAEAe,SAAS,GAAGA,SAAS,CAACtB,MAAM,CAAA;AAC9B,KAAA;AAEA,IAAA,OAAO,KAAK,CAAA;AACd,GAAA;EAEA,OAAO;AACLuB,IAAAA,aAAa,EAAE,6BAA6B;IAE5CC,IAAIA,CAAEV,IAAI,EAAE;AAAEC,MAAAA,MAAAA;AAAO,KAAC,EAAE;MACtB,IACE,CAACD,IAAI,CAACjB,QAAQ,CAACU,QAAQ,CAAC,QAAQ,CAAC,IACjCc,eAAe,CAACP,IAAI,CAAC,IACrBA,IAAI,CAACjB,QAAQ,CAACU,QAAQ,CAACI,gBAAgB,CAAC,EACxC;AACA,QAAA,OAAA;AACF,OAAA;MAEA,IAAI;AACFhB,QAAAA,cAAc,GAAG,EAAE;AACnBS,QAAAA,iBAAiB,GAAG,EAAA;OACrB,GAAGX,iBAAiB,CAACgC,aAAa,CAACX,IAAI,CAACjB,QAAQ,EAAE;AAAE6B,QAAAA,QAAQ,EAAE,KAAA;AAAM,OAAC,CAAC,CAAA;AAEvE,MAAA,IAAI/B,cAAc,CAACgC,MAAM,KAAK,CAAC,EAAE;AAC/B,QAAA,OAAA;AACF,OAAA;AAEA,MAAA,IAAIC,UAAU,GAAGf,gBAAgB,CAC/BC,IAAI,CAACe,KAAK,CAAC;AAAEnC,QAAAA,SAAS,EAAEC,cAAAA;AAAe,OAAC,CAAC,EACzC;AAAEoB,QAAAA,MAAAA;AAAO,OACX,CAAC,CAAA;AAEDD,MAAAA,IAAI,CAACgB,KAAK,CAACF,UAAU,CAAC,CAAA;AAEtB,MAAA,IAAIlB,QAAQ,EAAE;AACZI,QAAAA,IAAI,CAACiB,MAAM,CACTjB,IAAI,CAACe,KAAK,CAAC;AACTnC,UAAAA,SAAS,EAAEC,cAAc,CAACqC,GAAG,CAACC,aAAa,IAAI;AAC7C,YAAA,IACErB,aAAa,CAACsB,IAAI,CAACC,YAAY,IAC7BF,aAAa,CAACG,UAAU,CAACD,YAAY,CACvC,CAAC,EACD;AACA,cAAA,OAAO,CAAGxB,EAAAA,gBAAgB,CAAGsB,EAAAA,aAAa,CAAE,CAAA,CAAA;AAC9C,aAAA;AACA,YAAA,OAAO,CAAGtB,EAAAA,gBAAgB,CAAIsB,CAAAA,EAAAA,aAAa,CAAE,CAAA,CAAA;WAC9C,CAAA;AACH,SAAC,CACH,CAAC,CAAA;AACH,OAAA;AAEA,MAAA,IAAI7B,iBAAiB,CAACuB,MAAM,GAAG,CAAC,EAAE;AAChCb,QAAAA,IAAI,CAACuB,WAAW,CAACvB,IAAI,CAACe,KAAK,CAAC;AAAEnC,UAAAA,SAAS,EAAEU,iBAAAA;AAAkB,SAAC,CAAC,CAAC,CAAA;AAE9D,QAAA,OAAA;AACF,OAAA;MAEAU,IAAI,CAACwB,MAAM,EAAE,CAAA;AACf,KAAA;GACD,CAAA;AACH,CAAC,CAAA;AAED9B,MAAM,CAACC,OAAO,CAAC8B,OAAO,GAAG,IAAI"}