{"version":3,"sources":["jsdelivr-header.js","/npm/postcss-px-to-viewport-vite-plugin@1.0.1/lib/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,aAEA,IAAI,QAAU,QAAQ,WAElB,aAAe,QAAQ,iBAEvB,SAAW,QAAQ,uBACnB,sBAAwB,SAAS,sBAEjC,UAAY,QAAQ,uBACpB,cAAgB,UAAU,cAE1B,SAAW,CACb,cAAe,KACf,cAAe,IACf,eAAgB,IAEhB,cAAe,EACf,aAAc,KACd,iBAAkB,KAElB,kBAAmB,GACnB,SAAU,CAAC,KACX,cAAe,EACf,YAAY,EACZ,SAAS,EACT,WAAW,EACX,cAAe,KACf,eAAgB,KA8FlB,SAAS,QAAQ,EAAM,GACrB,OAAiC,IAA1B,EAAK,QAAQ,QAAiB,EAAK,aAAe,EAAK,gBAChE,CAEA,SAAS,gBAAgB,EAAM,EAAc,GAC3C,OAAO,SAAU,EAAG,GAClB,IAAK,EAAI,OAAO,EAChB,IAAI,EAAS,WAAW,GACxB,GAAI,GAAU,EAAK,cAAe,OAAO,EACzC,IAAI,EAAY,QAAQ,EAAS,EAAe,IAAK,EAAK,eAC1D,OAAqB,IAAd,EAAkB,IAAM,EAAY,CAC7C,CACF,CAEA,SAAS,QAAQ,EAAQ,GACvB,IAAI,EAAa,KAAK,IAAI,GAAI,EAAY,GACtC,EAAc,KAAK,MAAM,EAAS,GACtC,OAAsC,GAA/B,KAAK,MAAM,EAAc,IAAW,CAC7C,CAEA,SAAS,oBAAoB,EAAW,GACtC,GAAwB,iBAAb,EACX,OAAO,EAAU,MAAK,SAAU,GAC9B,MAAqB,iBAAV,GAAwD,IAA7B,EAAS,QAAQ,GAChD,EAAS,MAAM,EACxB,GACF,CAEA,SAAS,UAAU,EAAK,GACtB,GAA4C,oBAAxC,OAAO,UAAU,SAAS,KAAK,GACjC,MAAM,IAAI,MAAM,qCAGlB,OAA2B,OAApB,EAAK,MAAM,EACpB,CAEA,SAAS,kBAAkB,EAAO,EAAM,GACtC,OAAO,EAAM,MAAK,SAAU,GAC1B,OAAO,EAAK,OAAS,GAAQ,EAAK,QAAU,CAC9C,GACF,CAEA,SAAS,eAAe,EAAQ,GAC9B,OAAQ,GAAU,GAAU,CAC9B,CAvIA,OAAO,QAAU,IACf,IAAI,EAAO,aAAa,CAAC,EAAG,SAAU,GAClC,EAAU,cAAc,EAAK,eAC7B,EAAkB,sBAAsB,EAAK,UAC7C,EAAiB,GACrB,MAAO,CACL,cAAe,yBAEf,IAAA,CAAK,GAoEH,GAnEA,EAAI,WAAU,SAAU,GAEtB,IAAI,EAAO,EAAK,QAAU,EAAK,OAAO,MAAM,KAE5C,GAAI,EAAK,SAAW,EAClB,GAAqD,oBAAjD,OAAO,UAAU,SAAS,KAAK,EAAK,UACtC,GAAI,UAAU,EAAK,QAAS,GAAO,WAC9B,IAAqD,mBAAjD,OAAO,UAAU,SAAS,KAAK,EAAK,SAK7C,MAAM,IAAI,MAAM,8CAJhB,IAAK,IAAI,EAAI,EAAG,EAAI,EAAK,QAAQ,OAAQ,IACvC,GAAI,UAAU,EAAK,QAAQ,GAAI,GAAO,MAI1C,CAGF,IAAI,oBAAoB,EAAK,kBAAmB,EAAK,UAArD,CAEA,GAAI,EAAK,YAAc,EAAK,OAAO,OAAQ,CACzC,IAAI,EAAgB,EAAK,QAAQ,YACjC,EAAK,WAAU,SAAU,IACyB,IAA5C,EAAK,MAAM,QAAQ,EAAK,gBACvB,EAAgB,EAAK,OAC1B,EAAc,OAAO,EAAK,MAAM,CAC9B,MAAO,EAAK,MAAM,QAAQ,EAAS,gBAAgB,EAAM,EAAK,cAAe,EAAK,mBAEtF,IAEI,EAAc,MAAM,OAAS,GAC/B,EAAe,KAAK,EAExB,CAEK,eAAe,EAAK,OAAO,OAAQ,EAAK,aAC7C,EAAK,WAAU,SAAU,EAAM,GAC7B,IAAgD,IAA5C,EAAK,MAAM,QAAQ,EAAK,gBACvB,EAAgB,EAAK,MAA1B,CACA,IAAI,EACA,EACA,EAAS,EAAK,OAAO,OAErB,EAAK,WAAa,IAA2C,IAAjC,EAAO,QAAQ,cAC7C,EAAO,EAAK,cACZ,EAAO,EAAK,iBAEZ,EAAO,QAAQ,EAAK,KAAM,GAGxB,EADgC,mBAAvB,EAAK,cACP,EAAK,cAAc,GAEnB,EAAK,eAIhB,IAAI,EAAQ,EAAK,MAAM,QAAQ,EAAS,gBAAgB,EAAM,EAAM,IAChE,kBAAkB,EAAK,OAAQ,EAAK,KAAM,KAE1C,EAAK,QACP,EAAK,MAAQ,EAEb,EAAK,OAAO,YAAY,EAAG,EAAK,MAAM,CACpC,MAAO,KAzB4B,CA4BzC,GAhDsE,CAiDxE,IAEI,EAAe,OAAS,EAAG,CAC7B,IAAI,EAAgB,IAAI,QAAQ,OAAO,CACrC,OAAQ,2BACR,KAAM,UAER,EAAe,SAAQ,SAAU,GAC/B,EAAc,OAAO,EACvB,IACA,EAAI,OAAO,EACb,CACF,EAED","file":"/npm/postcss-px-to-viewport-vite-plugin@1.0.1/lib/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/postcss-px-to-viewport-vite-plugin@1.0.1/lib/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","\"use strict\";\n\nvar postcss = require('postcss');\n\nvar objectAssign = require('object-assign');\n\nvar _require = require('./prop-list-matcher'),\n    createPropListMatcher = _require.createPropListMatcher;\n\nvar _require2 = require('./pixel-unit-regexp'),\n    getUnitRegexp = _require2.getUnitRegexp;\n\nvar defaults = {\n  unitToConvert: 'px',\n  viewportWidth: 320,\n  viewportHeight: 568,\n  // not now used; TODO: need for different units and math for different properties\n  unitPrecision: 5,\n  viewportUnit: 'vw',\n  fontViewportUnit: 'vw',\n  // vmin is more suitable.\n  selectorBlackList: [],\n  propList: ['*'],\n  minPixelValue: 1,\n  mediaQuery: false,\n  replace: true,\n  landscape: false,\n  landscapeUnit: 'vw',\n  landscapeWidth: 568\n};\n\nmodule.exports = options => {\n  var opts = objectAssign({}, defaults, options);\n  var pxRegex = getUnitRegexp(opts.unitToConvert);\n  var satisfyPropList = createPropListMatcher(opts.propList);\n  var landscapeRules = [];\n  return {\n    postcssPlugin: 'postcss-px-to-viewport',\n\n    Once(css) {\n      css.walkRules(function (rule) {\n        // Add exclude option to ignore some files like 'node_modules'\n        var file = rule.source && rule.source.input.file;\n\n        if (opts.exclude && file) {\n          if (Object.prototype.toString.call(opts.exclude) === '[object RegExp]') {\n            if (isExclude(opts.exclude, file)) return;\n          } else if (Object.prototype.toString.call(opts.exclude) === '[object Array]') {\n            for (let i = 0; i < opts.exclude.length; i++) {\n              if (isExclude(opts.exclude[i], file)) return;\n            }\n          } else {\n            throw new Error('options.exclude should be RegExp or Array.');\n          }\n        }\n\n        if (blacklistedSelector(opts.selectorBlackList, rule.selector)) return;\n\n        if (opts.landscape && !rule.parent.params) {\n          var landscapeRule = rule.clone().removeAll();\n          rule.walkDecls(function (decl) {\n            if (decl.value.indexOf(opts.unitToConvert) === -1) return;\n            if (!satisfyPropList(decl.prop)) return;\n            landscapeRule.append(decl.clone({\n              value: decl.value.replace(pxRegex, createPxReplace(opts, opts.landscapeUnit, opts.landscapeWidth))\n            }));\n          });\n\n          if (landscapeRule.nodes.length > 0) {\n            landscapeRules.push(landscapeRule);\n          }\n        }\n\n        if (!validateParams(rule.parent.params, opts.mediaQuery)) return;\n        rule.walkDecls(function (decl, i) {\n          if (decl.value.indexOf(opts.unitToConvert) === -1) return;\n          if (!satisfyPropList(decl.prop)) return;\n          var unit;\n          var size;\n          var params = rule.parent.params;\n\n          if (opts.landscape && params && params.indexOf('landscape') !== -1) {\n            unit = opts.landscapeUnit;\n            size = opts.landscapeWidth;\n          } else {\n            unit = getUnit(decl.prop, opts);\n\n            if (typeof opts.viewportWidth === 'function') {\n              size = opts.viewportWidth(file);\n            } else {\n              size = opts.viewportWidth;\n            }\n          }\n\n          var value = decl.value.replace(pxRegex, createPxReplace(opts, unit, size));\n          if (declarationExists(decl.parent, decl.prop, value)) return;\n\n          if (opts.replace) {\n            decl.value = value;\n          } else {\n            decl.parent.insertAfter(i, decl.clone({\n              value: value\n            }));\n          }\n        });\n      });\n\n      if (landscapeRules.length > 0) {\n        var landscapeRoot = new postcss.AtRule({\n          params: '(orientation: landscape)',\n          name: 'media'\n        });\n        landscapeRules.forEach(function (rule) {\n          landscapeRoot.append(rule);\n        });\n        css.append(landscapeRoot);\n      }\n    }\n\n  };\n};\n\nfunction getUnit(prop, opts) {\n  return prop.indexOf('font') === -1 ? opts.viewportUnit : opts.fontViewportUnit;\n}\n\nfunction createPxReplace(opts, viewportUnit, viewportSize) {\n  return function (m, $1) {\n    if (!$1) return m;\n    var pixels = parseFloat($1);\n    if (pixels <= opts.minPixelValue) return m;\n    var parsedVal = toFixed(pixels / viewportSize * 100, opts.unitPrecision);\n    return parsedVal === 0 ? '0' : parsedVal + viewportUnit;\n  };\n}\n\nfunction toFixed(number, precision) {\n  var multiplier = Math.pow(10, precision + 1),\n      wholeNumber = Math.floor(number * multiplier);\n  return Math.round(wholeNumber / 10) * 10 / multiplier;\n}\n\nfunction blacklistedSelector(blacklist, selector) {\n  if (typeof selector !== 'string') return;\n  return blacklist.some(function (regex) {\n    if (typeof regex === 'string') return selector.indexOf(regex) !== -1;\n    return selector.match(regex);\n  });\n}\n\nfunction isExclude(reg, file) {\n  if (Object.prototype.toString.call(reg) !== '[object RegExp]') {\n    throw new Error('options.exclude should be RegExp.');\n  }\n\n  return file.match(reg) !== null;\n}\n\nfunction declarationExists(decls, prop, value) {\n  return decls.some(function (decl) {\n    return decl.prop === prop && decl.value === value;\n  });\n}\n\nfunction validateParams(params, mediaQuery) {\n  return !params || params && mediaQuery;\n}"]}