{"version":3,"file":"jss-plugin-vendor-prefixer.js","sources":["../../../node_modules/is-in-browser/dist/module.js","../../../node_modules/css-vendor/node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../../../node_modules/css-vendor/node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../../../node_modules/css-vendor/node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../../../node_modules/css-vendor/node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../../../node_modules/css-vendor/node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../../../node_modules/css-vendor/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../../../node_modules/css-vendor/dist/css-vendor.esm.js","../src/index.js"],"sourcesContent":["var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nexport var isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexport default isBrowser;\n","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}","import arrayLikeToArray from \"./arrayLikeToArray\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(n);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayWithoutHoles from \"./arrayWithoutHoles\";\nimport iterableToArray from \"./iterableToArray\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray\";\nimport nonIterableSpread from \"./nonIterableSpread\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray';\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\n\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n\n if (camelize(longhand) in style) {\n return prop;\n }\n\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n\n if (options.transform) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n\n if (options.transition) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n\n return _jsProp in style ? \"page-\" + prop : false;\n }\n\n return false;\n }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\n\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n\n return prop;\n }\n};\n\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n\n if (!multiple) return false;\n\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n\n return newProp.map(prefixCss);\n }\n\n return false;\n }\n};\n\n// plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\n\nvar el;\nvar cache = {};\n\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n }\n\n // For server-side rendering.\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n\n return cache[prop];\n}\n\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\n\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\n\nexport { prefix, supportedKeyframes, supportedProperty, supportedValue };\n","// @flow\nimport * as vendor from 'css-vendor'\nimport {toCssValue, type Plugin, type KeyframesRule} from 'jss'\n\n/**\n * Add vendor prefix to a property name when needed.\n *\n * @api public\n */\nexport default function jssVendorPrefixer(): Plugin {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n const atRule: KeyframesRule = (rule: any)\n atRule.at = vendor.supportedKeyframes(atRule.at)\n }\n }\n\n function prefixStyle(style) {\n for (const prop in style) {\n const value = style[prop]\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle)\n continue\n }\n let changeProp = false\n const supportedProp = vendor.supportedProperty(prop)\n if (supportedProp && supportedProp !== prop) changeProp = true\n\n let changeValue = false\n const supportedValue = vendor.supportedValue(supportedProp, toCssValue(value))\n if (supportedValue && supportedValue !== value) changeValue = true\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop]\n style[supportedProp || prop] = supportedValue || value\n }\n }\n\n return style\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style\n\n return prefixStyle(style)\n }\n\n function onChangeValue(value, prop) {\n return vendor.supportedValue(prop, toCssValue(value)) || value\n }\n\n return {onProcessRule, onProcessStyle, onChangeValue}\n}\n"],"names":["arrayLikeToArray","arrayWithoutHoles","iterableToArray","unsupportedIterableToArray","nonIterableSpread","isInBrowser","jssVendorPrefixer","onProcessRule","rule","type","atRule","at","vendor","prefixStyle","style","prop","value","Array","isArray","map","changeProp","supportedProp","changeValue","supportedValue","toCssValue","onProcessStyle","onChangeValue"],"mappings":"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"}