{"ast":null,"code":"import isInBrowser from 'is-in-browser';\nimport _toConsumableArray from '@babel/runtime/helpers/esm/toConsumableArray'; // Export javascript style and css style vendor prefixes.\n\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 * 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} // https://caniuse.com/#search=appearance\n\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}; // 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};\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 * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n} // but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\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}; // 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}; // 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}; // 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}; // 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}; // 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}; // 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}; // 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}; // 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};\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}; // 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}; // 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};\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};\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}; // 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}, []);\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 } // For server-side rendering.\n\n\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 };","map":{"version":3,"sources":["/app/node_modules/css-vendor/dist/css-vendor.esm.js"],"names":["isInBrowser","_toConsumableArray","js","css","vendor","browser","isTouch","document","documentElement","jsCssMap","Moz","ms","O","Webkit","_document$createEleme","createElement","style","testProp","key","prefix","supportedKeyframes","substr","appearence","noPrefill","supportedProperty","prop","colorAdjust","regExp","toUpper","match","c","toUpperCase","camelize","str","replace","pascalize","mask","test","longhand","textOrientation","transform","options","transition","writingMode","userSelect","breakPropsOld","jsProp","_jsProp","inlineLogicalOld","newProp","unprefixed","prefixed","pascalized","scrollSnap","substring","overscrollBehavior","propMap","order","flex2012","propMap$1","flex","propKeys","Object","keys","prefixCss","p","flex2009","_ref","multiple","indexOf","Array","isArray","i","length","map","plugins","propertyDetectors","filter","reduce","a","push","apply","el","cache","computed","window","getComputedStyle","key$1","isNaN","forEach","x","process","env","NODE_ENV","err","cache$1","transitionProperties","transPropsRegExp","el$1","prefixTransitionCallback","p1","p2","prefixedValue","supportedValue","property","value","parseInt","cacheKey"],"mappings":"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","sourcesContent":["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"]},"metadata":{},"sourceType":"module"}