UNPKG

151 kBJavaScriptView Raw
1(function webpackUniversalModuleDefinition(root, factory) {
2 if(typeof exports === 'object' && typeof module === 'object')
3 module.exports = factory(require("react"));
4 else if(typeof define === 'function' && define.amd)
5 define(["react"], factory);
6 else if(typeof exports === 'object')
7 exports["Radium"] = factory(require("react"));
8 else
9 root["Radium"] = factory(root["React"]);
10})(this, function(__WEBPACK_EXTERNAL_MODULE_3__) {
11return /******/ (function(modules) { // webpackBootstrap
12/******/ // The module cache
13/******/ var installedModules = {};
14
15/******/ // The require function
16/******/ function __webpack_require__(moduleId) {
17
18/******/ // Check if module is in cache
19/******/ if(installedModules[moduleId])
20/******/ return installedModules[moduleId].exports;
21
22/******/ // Create a new module (and put it into the cache)
23/******/ var module = installedModules[moduleId] = {
24/******/ exports: {},
25/******/ id: moduleId,
26/******/ loaded: false
27/******/ };
28
29/******/ // Execute the module function
30/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
31
32/******/ // Flag the module as loaded
33/******/ module.loaded = true;
34
35/******/ // Return the exports of the module
36/******/ return module.exports;
37/******/ }
38
39
40/******/ // expose the modules object (__webpack_modules__)
41/******/ __webpack_require__.m = modules;
42
43/******/ // expose the module cache
44/******/ __webpack_require__.c = installedModules;
45
46/******/ // __webpack_public_path__
47/******/ __webpack_require__.p = "";
48
49/******/ // Load entry module and return exports
50/******/ return __webpack_require__(0);
51/******/ })
52/************************************************************************/
53/******/ ([
54/* 0 */
55/***/ function(module, exports, __webpack_require__) {
56
57 /* WEBPACK VAR INJECTION */(function(process) {'use strict';
58
59 Object.defineProperty(exports, "__esModule", {
60 value: true
61 });
62
63 var _enhancer = __webpack_require__(2);
64
65 var _enhancer2 = _interopRequireDefault(_enhancer);
66
67 var _plugins = __webpack_require__(48);
68
69 var _plugins2 = _interopRequireDefault(_plugins);
70
71 var _style = __webpack_require__(60);
72
73 var _style2 = _interopRequireDefault(_style);
74
75 var _styleRoot = __webpack_require__(61);
76
77 var _styleRoot2 = _interopRequireDefault(_styleRoot);
78
79 var _getState = __webpack_require__(44);
80
81 var _getState2 = _interopRequireDefault(_getState);
82
83 var _keyframes = __webpack_require__(63);
84
85 var _keyframes2 = _interopRequireDefault(_keyframes);
86
87 var _resolveStyles = __webpack_require__(5);
88
89 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
90
91 function Radium(ComposedComponent) {
92 return (0, _enhancer2.default)(ComposedComponent);
93 }
94
95 Radium.Plugins = _plugins2.default;
96 Radium.Style = _style2.default;
97 Radium.StyleRoot = _styleRoot2.default;
98 Radium.getState = _getState2.default;
99 Radium.keyframes = _keyframes2.default;
100
101 if (process.env.NODE_ENV !== 'production') {
102 Radium.TestMode = {
103 clearState: _resolveStyles.__clearStateForTests,
104 disable: _resolveStyles.__setTestMode.bind(null, false),
105 enable: _resolveStyles.__setTestMode.bind(null, true)
106 };
107 }
108
109 exports.default = Radium;
110 module.exports = exports['default'];
111 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
112
113/***/ },
114/* 1 */
115/***/ function(module, exports) {
116
117 'use strict';
118
119 // shim for using process in browser
120
121 var process = module.exports = {};
122
123 // cached from whatever global is present so that test runners that stub it
124 // don't break things. But we need to wrap it in a try catch in case it is
125 // wrapped in strict mode code which doesn't define any globals. It's inside a
126 // function because try/catches deoptimize in certain engines.
127
128 var cachedSetTimeout;
129 var cachedClearTimeout;
130
131 (function () {
132 try {
133 cachedSetTimeout = setTimeout;
134 } catch (e) {
135 cachedSetTimeout = function cachedSetTimeout() {
136 throw new Error('setTimeout is not defined');
137 };
138 }
139 try {
140 cachedClearTimeout = clearTimeout;
141 } catch (e) {
142 cachedClearTimeout = function cachedClearTimeout() {
143 throw new Error('clearTimeout is not defined');
144 };
145 }
146 })();
147 var queue = [];
148 var draining = false;
149 var currentQueue;
150 var queueIndex = -1;
151
152 function cleanUpNextTick() {
153 if (!draining || !currentQueue) {
154 return;
155 }
156 draining = false;
157 if (currentQueue.length) {
158 queue = currentQueue.concat(queue);
159 } else {
160 queueIndex = -1;
161 }
162 if (queue.length) {
163 drainQueue();
164 }
165 }
166
167 function drainQueue() {
168 if (draining) {
169 return;
170 }
171 var timeout = cachedSetTimeout(cleanUpNextTick);
172 draining = true;
173
174 var len = queue.length;
175 while (len) {
176 currentQueue = queue;
177 queue = [];
178 while (++queueIndex < len) {
179 if (currentQueue) {
180 currentQueue[queueIndex].run();
181 }
182 }
183 queueIndex = -1;
184 len = queue.length;
185 }
186 currentQueue = null;
187 draining = false;
188 cachedClearTimeout(timeout);
189 }
190
191 process.nextTick = function (fun) {
192 var args = new Array(arguments.length - 1);
193 if (arguments.length > 1) {
194 for (var i = 1; i < arguments.length; i++) {
195 args[i - 1] = arguments[i];
196 }
197 }
198 queue.push(new Item(fun, args));
199 if (queue.length === 1 && !draining) {
200 cachedSetTimeout(drainQueue, 0);
201 }
202 };
203
204 // v8 likes predictible objects
205 function Item(fun, array) {
206 this.fun = fun;
207 this.array = array;
208 }
209 Item.prototype.run = function () {
210 this.fun.apply(null, this.array);
211 };
212 process.title = 'browser';
213 process.browser = true;
214 process.env = {};
215 process.argv = [];
216 process.version = ''; // empty string to avoid regexp issues
217 process.versions = {};
218
219 function noop() {}
220
221 process.on = noop;
222 process.addListener = noop;
223 process.once = noop;
224 process.off = noop;
225 process.removeListener = noop;
226 process.removeAllListeners = noop;
227 process.emit = noop;
228
229 process.binding = function (name) {
230 throw new Error('process.binding is not supported');
231 };
232
233 process.cwd = function () {
234 return '/';
235 };
236 process.chdir = function (dir) {
237 throw new Error('process.chdir is not supported');
238 };
239 process.umask = function () {
240 return 0;
241 };
242
243/***/ },
244/* 2 */
245/***/ function(module, exports, __webpack_require__) {
246
247 /* WEBPACK VAR INJECTION */(function(process) {'use strict';
248
249 Object.defineProperty(exports, "__esModule", {
250 value: true
251 });
252
253 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
254
255 var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
256
257 exports.default = enhanceWithRadium;
258
259 var _react = __webpack_require__(3);
260
261 var _styleKeeper = __webpack_require__(4);
262
263 var _styleKeeper2 = _interopRequireDefault(_styleKeeper);
264
265 var _resolveStyles = __webpack_require__(5);
266
267 var _resolveStyles2 = _interopRequireDefault(_resolveStyles);
268
269 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
270
271 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
272
273 function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
274
275 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
276
277 var KEYS_TO_IGNORE_WHEN_COPYING_PROPERTIES = ['arguments', 'callee', 'caller', 'length', 'name', 'prototype', 'type'];
278
279 function copyProperties(source, target) {
280 Object.getOwnPropertyNames(source).forEach(function (key) {
281 if (KEYS_TO_IGNORE_WHEN_COPYING_PROPERTIES.indexOf(key) < 0 && !target.hasOwnProperty(key)) {
282 var descriptor = Object.getOwnPropertyDescriptor(source, key);
283 Object.defineProperty(target, key, descriptor);
284 }
285 });
286 }
287
288 function isStateless(component) {
289 return !component.render && !(component.prototype && component.prototype.render);
290 }
291
292 function enhanceWithRadium(configOrComposedComponent) {
293 var _class, _temp;
294
295 var config = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
296
297 if (typeof configOrComposedComponent !== 'function') {
298 var _ret = function () {
299 var newConfig = _extends({}, config, configOrComposedComponent);
300 return {
301 v: function v(configOrComponent) {
302 return enhanceWithRadium(configOrComponent, newConfig);
303 }
304 };
305 }();
306
307 if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === "object") return _ret.v;
308 }
309
310 var component = configOrComposedComponent;
311 var ComposedComponent = component;
312
313 // Handle stateless components
314 if (isStateless(ComposedComponent)) {
315 ComposedComponent = function (_Component) {
316 _inherits(ComposedComponent, _Component);
317
318 function ComposedComponent() {
319 _classCallCheck(this, ComposedComponent);
320
321 return _possibleConstructorReturn(this, _Component.apply(this, arguments));
322 }
323
324 ComposedComponent.prototype.render = function render() {
325 return component(this.props, this.context);
326 };
327
328 return ComposedComponent;
329 }(_react.Component);
330 ComposedComponent.displayName = component.displayName || component.name;
331 }
332
333 var RadiumEnhancer = (_temp = _class = function (_ComposedComponent) {
334 _inherits(RadiumEnhancer, _ComposedComponent);
335
336 function RadiumEnhancer() {
337 _classCallCheck(this, RadiumEnhancer);
338
339 var _this2 = _possibleConstructorReturn(this, _ComposedComponent.apply(this, arguments));
340
341 _this2.state = _this2.state || {};
342 _this2.state._radiumStyleState = {};
343 _this2._radiumIsMounted = true;
344 return _this2;
345 }
346
347 RadiumEnhancer.prototype.componentWillUnmount = function componentWillUnmount() {
348 if (_ComposedComponent.prototype.componentWillUnmount) {
349 _ComposedComponent.prototype.componentWillUnmount.call(this);
350 }
351
352 this._radiumIsMounted = false;
353
354 if (this._radiumMouseUpListener) {
355 this._radiumMouseUpListener.remove();
356 }
357
358 if (this._radiumMediaQueryListenersByQuery) {
359 Object.keys(this._radiumMediaQueryListenersByQuery).forEach(function (query) {
360 this._radiumMediaQueryListenersByQuery[query].remove();
361 }, this);
362 }
363 };
364
365 RadiumEnhancer.prototype.getChildContext = function getChildContext() {
366 var superChildContext = _ComposedComponent.prototype.getChildContext ? _ComposedComponent.prototype.getChildContext.call(this) : {};
367
368 if (!this.props.radiumConfig) {
369 return superChildContext;
370 }
371
372 var newContext = _extends({}, superChildContext);
373
374 if (this.props.radiumConfig) {
375 newContext._radiumConfig = this.props.radiumConfig;
376 }
377
378 return newContext;
379 };
380
381 RadiumEnhancer.prototype.render = function render() {
382 var renderedElement = _ComposedComponent.prototype.render.call(this);
383 var currentConfig = this.props.radiumConfig || this.context._radiumConfig || config;
384
385 if (config && currentConfig !== config) {
386 currentConfig = _extends({}, config, currentConfig);
387 }
388
389 return (0, _resolveStyles2.default)(this, renderedElement, currentConfig);
390 };
391
392 return RadiumEnhancer;
393 }(ComposedComponent), _class._isRadiumEnhanced = true, _temp);
394
395 // Class inheritance uses Object.create and because of __proto__ issues
396 // with IE <10 any static properties of the superclass aren't inherited and
397 // so need to be manually populated.
398 // See http://babeljs.io/docs/advanced/caveats/#classes-10-and-below-
399
400 copyProperties(component, RadiumEnhancer);
401
402 if (process.env.NODE_ENV !== 'production') {
403 // This also fixes React Hot Loader by exposing the original components top
404 // level prototype methods on the Radium enhanced prototype as discussed in
405 // https://github.com/FormidableLabs/radium/issues/219.
406 copyProperties(ComposedComponent.prototype, RadiumEnhancer.prototype);
407 }
408
409 if (RadiumEnhancer.propTypes && RadiumEnhancer.propTypes.style) {
410 RadiumEnhancer.propTypes = _extends({}, RadiumEnhancer.propTypes, {
411 style: _react.PropTypes.oneOfType([_react.PropTypes.array, _react.PropTypes.object])
412 });
413 }
414
415 RadiumEnhancer.displayName = component.displayName || component.name || 'Component';
416
417 RadiumEnhancer.contextTypes = _extends({}, RadiumEnhancer.contextTypes, {
418 _radiumConfig: _react.PropTypes.object,
419 _radiumStyleKeeper: _react.PropTypes.instanceOf(_styleKeeper2.default)
420 });
421
422 RadiumEnhancer.childContextTypes = _extends({}, RadiumEnhancer.childContextTypes, {
423 _radiumConfig: _react.PropTypes.object,
424 _radiumStyleKeeper: _react.PropTypes.instanceOf(_styleKeeper2.default)
425 });
426
427 return RadiumEnhancer;
428 }
429 module.exports = exports['default'];
430 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
431
432/***/ },
433/* 3 */
434/***/ function(module, exports) {
435
436 module.exports = __WEBPACK_EXTERNAL_MODULE_3__;
437
438/***/ },
439/* 4 */
440/***/ function(module, exports) {
441
442 'use strict';
443
444 Object.defineProperty(exports, "__esModule", {
445 value: true
446 });
447
448 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
449
450 var StyleKeeper = function () {
451 function StyleKeeper(userAgent) {
452 _classCallCheck(this, StyleKeeper);
453
454 this._userAgent = userAgent;
455 this._listeners = [];
456 this._cssSet = {};
457 }
458
459 StyleKeeper.prototype.subscribe = function subscribe(listener) {
460 var _this = this;
461
462 if (this._listeners.indexOf(listener) === -1) {
463 this._listeners.push(listener);
464 }
465
466 return {
467 // Must be fat arrow to capture `this`
468 remove: function remove() {
469 var listenerIndex = _this._listeners.indexOf(listener);
470 if (listenerIndex > -1) {
471 _this._listeners.splice(listenerIndex, 1);
472 }
473 }
474 };
475 };
476
477 StyleKeeper.prototype.addCSS = function addCSS(css) {
478 var _this2 = this;
479
480 if (!this._cssSet[css]) {
481 this._cssSet[css] = true;
482 this._emitChange();
483 }
484
485 return {
486 // Must be fat arrow to capture `this`
487 remove: function remove() {
488 delete _this2._cssSet[css];
489 _this2._emitChange();
490 }
491 };
492 };
493
494 StyleKeeper.prototype.getCSS = function getCSS() {
495 return Object.keys(this._cssSet).join('\n');
496 };
497
498 StyleKeeper.prototype._emitChange = function _emitChange() {
499 this._listeners.forEach(function (listener) {
500 return listener();
501 });
502 };
503
504 return StyleKeeper;
505 }();
506
507 exports.default = StyleKeeper;
508 module.exports = exports['default'];
509
510/***/ },
511/* 5 */
512/***/ function(module, exports, __webpack_require__) {
513
514 /* WEBPACK VAR INJECTION */(function(process) {'use strict';
515
516 Object.defineProperty(exports, "__esModule", {
517 value: true
518 });
519
520 var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
521
522 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
523
524 var _appendImportantToEachValue = __webpack_require__(6);
525
526 var _appendImportantToEachValue2 = _interopRequireDefault(_appendImportantToEachValue);
527
528 var _cssRuleSetToString = __webpack_require__(9);
529
530 var _cssRuleSetToString2 = _interopRequireDefault(_cssRuleSetToString);
531
532 var _getState = __webpack_require__(44);
533
534 var _getState2 = _interopRequireDefault(_getState);
535
536 var _getStateKey = __webpack_require__(45);
537
538 var _getStateKey2 = _interopRequireDefault(_getStateKey);
539
540 var _hash = __webpack_require__(46);
541
542 var _hash2 = _interopRequireDefault(_hash);
543
544 var _mergeStyles = __webpack_require__(47);
545
546 var _plugins = __webpack_require__(48);
547
548 var _plugins2 = _interopRequireDefault(_plugins);
549
550 var _exenv = __webpack_require__(58);
551
552 var _exenv2 = _interopRequireDefault(_exenv);
553
554 var _react = __webpack_require__(3);
555
556 var _react2 = _interopRequireDefault(_react);
557
558 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
559
560 var DEFAULT_CONFIG = {
561 plugins: [_plugins2.default.mergeStyleArray, _plugins2.default.checkProps, _plugins2.default.resolveMediaQueries, _plugins2.default.resolveInteractionStyles, _plugins2.default.keyframes, _plugins2.default.visited, _plugins2.default.removeNestedStyles, _plugins2.default.prefix, _plugins2.default.checkProps]
562 };
563
564 // Gross
565 var globalState = {};
566
567 // Declare early for recursive helpers.
568 var resolveStyles = null;
569
570 var _shouldResolveStyles = function _shouldResolveStyles(component) {
571 return component.type && !component.type._isRadiumEnhanced;
572 };
573
574 var _resolveChildren = function _resolveChildren(_ref) {
575 var children = _ref.children;
576 var component = _ref.component;
577 var config = _ref.config;
578 var existingKeyMap = _ref.existingKeyMap;
579
580 if (!children) {
581 return children;
582 }
583
584 var childrenType = typeof children === 'undefined' ? 'undefined' : _typeof(children);
585
586 if (childrenType === 'string' || childrenType === 'number') {
587 // Don't do anything with a single primitive child
588 return children;
589 }
590
591 if (childrenType === 'function') {
592 // Wrap the function, resolving styles on the result
593 return function () {
594 var result = children.apply(this, arguments);
595 if (_react2.default.isValidElement(result)) {
596 return resolveStyles(component, result, config, existingKeyMap, true);
597 }
598 return result;
599 };
600 }
601
602 if (_react2.default.Children.count(children) === 1 && children.type) {
603 // If a React Element is an only child, don't wrap it in an array for
604 // React.Children.map() for React.Children.only() compatibility.
605 var onlyChild = _react2.default.Children.only(children);
606 return resolveStyles(component, onlyChild, config, existingKeyMap, true);
607 }
608
609 return _react2.default.Children.map(children, function (child) {
610 if (_react2.default.isValidElement(child)) {
611 return resolveStyles(component, child, config, existingKeyMap, true);
612 }
613
614 return child;
615 });
616 };
617
618 // Recurse over props, just like children
619 var _resolveProps = function _resolveProps(_ref2) {
620 var component = _ref2.component;
621 var config = _ref2.config;
622 var existingKeyMap = _ref2.existingKeyMap;
623 var props = _ref2.props;
624
625 var newProps = props;
626
627 Object.keys(props).forEach(function (prop) {
628 // We already recurse over children above
629 if (prop === 'children') {
630 return;
631 }
632
633 var propValue = props[prop];
634 if (_react2.default.isValidElement(propValue)) {
635 newProps = _extends({}, newProps);
636 newProps[prop] = resolveStyles(component, propValue, config, existingKeyMap, true);
637 }
638 });
639
640 return newProps;
641 };
642
643 var _buildGetKey = function _buildGetKey(_ref3) {
644 var componentName = _ref3.componentName;
645 var existingKeyMap = _ref3.existingKeyMap;
646 var renderedElement = _ref3.renderedElement;
647
648 // We need a unique key to correlate state changes due to user interaction
649 // with the rendered element, so we know to apply the proper interactive
650 // styles.
651 var originalKey = typeof renderedElement.ref === 'string' ? renderedElement.ref : renderedElement.key;
652 var key = (0, _getStateKey2.default)(originalKey);
653
654 var alreadyGotKey = false;
655 var getKey = function getKey() {
656 if (alreadyGotKey) {
657 return key;
658 }
659
660 alreadyGotKey = true;
661
662 if (existingKeyMap[key]) {
663 var elementName = void 0;
664 if (typeof renderedElement.type === 'string') {
665 elementName = renderedElement.type;
666 } else if (renderedElement.type.constructor) {
667 elementName = renderedElement.type.constructor.displayName || renderedElement.type.constructor.name;
668 }
669
670 throw new Error('Radium requires each element with interactive styles to have a unique ' + 'key, set using either the ref or key prop. ' + (originalKey ? 'Key "' + originalKey + '" is a duplicate.' : 'Multiple elements have no key specified.') + ' ' + 'Component: "' + componentName + '". ' + (elementName ? 'Element: "' + elementName + '".' : ''));
671 }
672
673 existingKeyMap[key] = true;
674
675 return key;
676 };
677
678 return getKey;
679 };
680
681 var _setStyleState = function _setStyleState(component, key, stateKey, value) {
682 if (!component._radiumIsMounted) {
683 return;
684 }
685
686 var existing = component._lastRadiumState || component.state && component.state._radiumStyleState || {};
687
688 var state = { _radiumStyleState: _extends({}, existing) };
689 state._radiumStyleState[key] = _extends({}, state._radiumStyleState[key]);
690 state._radiumStyleState[key][stateKey] = value;
691
692 component._lastRadiumState = state._radiumStyleState;
693 component.setState(state);
694 };
695
696 var _runPlugins = function _runPlugins(_ref4) {
697 var component = _ref4.component;
698 var config = _ref4.config;
699 var existingKeyMap = _ref4.existingKeyMap;
700 var props = _ref4.props;
701 var renderedElement = _ref4.renderedElement;
702
703 // Don't run plugins if renderedElement is not a simple ReactDOMElement or has
704 // no style.
705 if (!_react2.default.isValidElement(renderedElement) || typeof renderedElement.type !== 'string' || !props.style) {
706 return props;
707 }
708
709 var newProps = props;
710
711 var plugins = config.plugins || DEFAULT_CONFIG.plugins;
712
713 var componentName = component.constructor.displayName || component.constructor.name;
714 var getKey = _buildGetKey({ renderedElement: renderedElement, existingKeyMap: existingKeyMap, componentName: componentName });
715 var getComponentField = function getComponentField(key) {
716 return component[key];
717 };
718 var getGlobalState = function getGlobalState(key) {
719 return globalState[key];
720 };
721 var componentGetState = function componentGetState(stateKey, elementKey) {
722 return (0, _getState2.default)(component.state, elementKey || getKey(), stateKey);
723 };
724 var setState = function setState(stateKey, value, elementKey) {
725 return _setStyleState(component, elementKey || getKey(), stateKey, value);
726 };
727
728 var addCSS = function addCSS(css) {
729 var styleKeeper = component._radiumStyleKeeper || component.context._radiumStyleKeeper;
730 if (!styleKeeper) {
731 if (__isTestModeEnabled) {
732 return {
733 remove: function remove() {}
734 };
735 }
736
737 throw new Error('To use plugins requiring `addCSS` (e.g. keyframes, media queries), ' + 'please wrap your application in the StyleRoot component. Component ' + 'name: `' + componentName + '`.');
738 }
739
740 return styleKeeper.addCSS(css);
741 };
742
743 var newStyle = props.style;
744
745 plugins.forEach(function (plugin) {
746 var result = plugin({
747 ExecutionEnvironment: _exenv2.default,
748 addCSS: addCSS,
749 appendImportantToEachValue: _appendImportantToEachValue2.default,
750 componentName: componentName,
751 config: config,
752 cssRuleSetToString: _cssRuleSetToString2.default,
753 getComponentField: getComponentField,
754 getGlobalState: getGlobalState,
755 getState: componentGetState,
756 hash: _hash2.default,
757 mergeStyles: _mergeStyles.mergeStyles,
758 props: newProps,
759 setState: setState,
760 isNestedStyle: _mergeStyles.isNestedStyle,
761 style: newStyle
762 }) || {};
763
764 newStyle = result.style || newStyle;
765
766 newProps = result.props && Object.keys(result.props).length ? _extends({}, newProps, result.props) : newProps;
767
768 var newComponentFields = result.componentFields || {};
769 Object.keys(newComponentFields).forEach(function (fieldName) {
770 component[fieldName] = newComponentFields[fieldName];
771 });
772
773 var newGlobalState = result.globalState || {};
774 Object.keys(newGlobalState).forEach(function (key) {
775 globalState[key] = newGlobalState[key];
776 });
777 });
778
779 if (newStyle !== props.style) {
780 newProps = _extends({}, newProps, { style: newStyle });
781 }
782
783 return newProps;
784 };
785
786 // Wrapper around React.cloneElement. To avoid processing the same element
787 // twice, whenever we clone an element add a special prop to make sure we don't
788 // process this element again.
789 var _cloneElement = function _cloneElement(renderedElement, newProps, newChildren) {
790 // Only add flag if this is a normal DOM element
791 if (typeof renderedElement.type === 'string') {
792 newProps = _extends({}, newProps, { 'data-radium': true });
793 }
794
795 return _react2.default.cloneElement(renderedElement, newProps, newChildren);
796 };
797
798 //
799 // The nucleus of Radium. resolveStyles is called on the rendered elements
800 // before they are returned in render. It iterates over the elements and
801 // children, rewriting props to add event handlers required to capture user
802 // interactions (e.g. mouse over). It also replaces the style prop because it
803 // adds in the various interaction styles (e.g. :hover).
804 //
805 resolveStyles = function resolveStyles(component, // ReactComponent, flow+eslint complaining
806 renderedElement) {
807 var config = arguments.length <= 2 || arguments[2] === undefined ? DEFAULT_CONFIG : arguments[2];
808 var existingKeyMap = arguments[3];
809 var shouldCheckBeforeResolve = arguments.length <= 4 || arguments[4] === undefined ? false : arguments[4];
810 // ReactElement
811 existingKeyMap = existingKeyMap || {};
812 if (!renderedElement ||
813 // Bail if we've already processed this element. This ensures that only the
814 // owner of an element processes that element, since the owner's render
815 // function will be called first (which will always be the case, since you
816 // can't know what else to render until you render the parent component).
817 renderedElement.props && renderedElement.props['data-radium'] ||
818
819 // Bail if this element is a radium enhanced element, because if it is,
820 // then it will take care of resolving its own styles.
821 shouldCheckBeforeResolve && !_shouldResolveStyles(renderedElement)) {
822 return renderedElement;
823 }
824
825 var newChildren = _resolveChildren({
826 children: renderedElement.props.children,
827 component: component,
828 config: config,
829 existingKeyMap: existingKeyMap
830 });
831
832 var newProps = _resolveProps({
833 component: component,
834 config: config,
835 existingKeyMap: existingKeyMap,
836 props: renderedElement.props
837 });
838
839 newProps = _runPlugins({
840 component: component,
841 config: config,
842 existingKeyMap: existingKeyMap,
843 props: newProps,
844 renderedElement: renderedElement
845 });
846
847 // If nothing changed, don't bother cloning the element. Might be a bit
848 // wasteful, as we add the sentinal to stop double-processing when we clone.
849 // Assume benign double-processing is better than unneeded cloning.
850 if (newChildren === renderedElement.props.children && newProps === renderedElement.props) {
851 return renderedElement;
852 }
853
854 return _cloneElement(renderedElement, newProps !== renderedElement.props ? newProps : {}, newChildren);
855 };
856
857 // Only for use by tests
858 var __isTestModeEnabled = false;
859 if (process.env.NODE_ENV !== 'production') {
860 resolveStyles.__clearStateForTests = function () {
861 globalState = {};
862 };
863 resolveStyles.__setTestMode = function (isEnabled) {
864 __isTestModeEnabled = isEnabled;
865 };
866 }
867
868 exports.default = resolveStyles;
869 module.exports = exports['default'];
870 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
871
872/***/ },
873/* 6 */
874/***/ function(module, exports, __webpack_require__) {
875
876 'use strict';
877
878 Object.defineProperty(exports, "__esModule", {
879 value: true
880 });
881 exports.default = appendImportantToEachValue;
882
883 var _appendPxIfNeeded = __webpack_require__(7);
884
885 var _appendPxIfNeeded2 = _interopRequireDefault(_appendPxIfNeeded);
886
887 var _mapObject = __webpack_require__(8);
888
889 var _mapObject2 = _interopRequireDefault(_mapObject);
890
891 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
892
893 function appendImportantToEachValue(style) {
894 return (0, _mapObject2.default)(style, function (result, key) {
895 return (0, _appendPxIfNeeded2.default)(key, style[key]) + ' !important';
896 });
897 }
898 module.exports = exports['default'];
899
900/***/ },
901/* 7 */
902/***/ function(module, exports) {
903
904 'use strict';
905
906 Object.defineProperty(exports, "__esModule", {
907 value: true
908 });
909 exports.default = appendPxIfNeeded;
910
911
912 // Copied from https://github.com/facebook/react/blob/
913 // 102cd291899f9942a76c40a0e78920a6fe544dc1/
914 // src/renderers/dom/shared/CSSProperty.js
915 var isUnitlessNumber = {
916 animationIterationCount: true,
917 boxFlex: true,
918 boxFlexGroup: true,
919 boxOrdinalGroup: true,
920 columnCount: true,
921 flex: true,
922 flexGrow: true,
923 flexPositive: true,
924 flexShrink: true,
925 flexNegative: true,
926 flexOrder: true,
927 gridRow: true,
928 gridColumn: true,
929 fontWeight: true,
930 lineClamp: true,
931 lineHeight: true,
932 opacity: true,
933 order: true,
934 orphans: true,
935 tabSize: true,
936 widows: true,
937 zIndex: true,
938 zoom: true,
939
940 // SVG-related properties
941 fillOpacity: true,
942 stopOpacity: true,
943 strokeDashoffset: true,
944 strokeOpacity: true,
945 strokeWidth: true
946 };
947
948 function appendPxIfNeeded(propertyName, value) {
949 var needsPxSuffix = !isUnitlessNumber[propertyName] && typeof value === 'number' && value !== 0;
950 return needsPxSuffix ? value + 'px' : value;
951 }
952 module.exports = exports['default'];
953
954/***/ },
955/* 8 */
956/***/ function(module, exports) {
957
958 "use strict";
959
960 Object.defineProperty(exports, "__esModule", {
961 value: true
962 });
963 exports.default = mapObject;
964 function mapObject(object, mapper) {
965 return Object.keys(object).reduce(function (result, key) {
966 result[key] = mapper(object[key], key);
967 return result;
968 }, {});
969 }
970 module.exports = exports["default"];
971
972/***/ },
973/* 9 */
974/***/ function(module, exports, __webpack_require__) {
975
976 'use strict';
977
978 Object.defineProperty(exports, "__esModule", {
979 value: true
980 });
981 exports.default = cssRuleSetToString;
982
983 var _appendPxIfNeeded = __webpack_require__(7);
984
985 var _appendPxIfNeeded2 = _interopRequireDefault(_appendPxIfNeeded);
986
987 var _camelCasePropsToDashCase = __webpack_require__(10);
988
989 var _camelCasePropsToDashCase2 = _interopRequireDefault(_camelCasePropsToDashCase);
990
991 var _mapObject = __webpack_require__(8);
992
993 var _mapObject2 = _interopRequireDefault(_mapObject);
994
995 var _prefixer = __webpack_require__(11);
996
997 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
998
999 function createMarkupForStyles(style) {
1000 return Object.keys(style).map(function (property) {
1001 return property + ': ' + style[property] + ';';
1002 }).join('\n');
1003 }
1004
1005 function cssRuleSetToString(selector, rules, userAgent) {
1006 if (!rules) {
1007 return '';
1008 }
1009
1010 var rulesWithPx = (0, _mapObject2.default)(rules, function (value, key) {
1011 return (0, _appendPxIfNeeded2.default)(key, value);
1012 });
1013 var prefixedRules = (0, _prefixer.getPrefixedStyle)(rulesWithPx, userAgent);
1014 var cssPrefixedRules = (0, _camelCasePropsToDashCase2.default)(prefixedRules);
1015 var serializedRules = createMarkupForStyles(cssPrefixedRules);
1016
1017 return selector + '{' + serializedRules + '}';
1018 }
1019 module.exports = exports['default'];
1020
1021/***/ },
1022/* 10 */
1023/***/ function(module, exports) {
1024
1025 'use strict';
1026
1027 Object.defineProperty(exports, "__esModule", {
1028 value: true
1029 });
1030
1031
1032 var _camelCaseRegex = /([a-z])?([A-Z])/g;
1033
1034 var _camelCaseReplacer = function _camelCaseReplacer(match, p1, p2) {
1035 return (p1 || '') + '-' + p2.toLowerCase();
1036 };
1037
1038 var _camelCaseToDashCase = function _camelCaseToDashCase(s) {
1039 return s.replace(_camelCaseRegex, _camelCaseReplacer);
1040 };
1041
1042 var camelCasePropsToDashCase = function camelCasePropsToDashCase(prefixedStyle) {
1043 // Since prefix is expected to work on inline style objects, we must
1044 // translate the keys to dash case for rendering to CSS.
1045 return Object.keys(prefixedStyle).reduce(function (result, key) {
1046 var dashCaseKey = _camelCaseToDashCase(key);
1047
1048 // Fix IE vendor prefix
1049 if (/^ms-/.test(dashCaseKey)) {
1050 dashCaseKey = '-' + dashCaseKey;
1051 }
1052
1053 result[dashCaseKey] = prefixedStyle[key];
1054 return result;
1055 }, {});
1056 };
1057
1058 exports.default = camelCasePropsToDashCase;
1059 module.exports = exports['default'];
1060
1061/***/ },
1062/* 11 */
1063/***/ function(module, exports, __webpack_require__) {
1064
1065 /* WEBPACK VAR INJECTION */(function(global, process) {'use strict';
1066
1067 Object.defineProperty(exports, "__esModule", {
1068 value: true
1069 });
1070
1071 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; }; /**
1072 * Based on https://github.com/jsstyles/css-vendor, but without having to
1073 * convert between different cases all the time.
1074 *
1075 *
1076 */
1077
1078 exports.getPrefixedKeyframes = getPrefixedKeyframes;
1079 exports.getPrefixedStyle = getPrefixedStyle;
1080
1081 var _inlineStylePrefixer = __webpack_require__(12);
1082
1083 var _inlineStylePrefixer2 = _interopRequireDefault(_inlineStylePrefixer);
1084
1085 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1086
1087 function transformValues(style) {
1088 return Object.keys(style).reduce(function (newStyle, key) {
1089 var value = style[key];
1090 if (Array.isArray(value)) {
1091 value = value.join(';' + key + ':');
1092 } else if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && typeof value.toString === 'function') {
1093 value = value.toString();
1094 }
1095
1096 newStyle[key] = value;
1097 return newStyle;
1098 }, {});
1099 }
1100
1101 var _hasWarnedAboutUserAgent = false;
1102 var _lastUserAgent = void 0;
1103 var _cachedPrefixer = void 0;
1104
1105 function getPrefixer(userAgent) {
1106 var actualUserAgent = userAgent || global && global.navigator && global.navigator.userAgent;
1107
1108 if (process.env.NODE_ENV !== 'production') {
1109 if (!actualUserAgent && !_hasWarnedAboutUserAgent) {
1110 /* eslint-disable no-console */
1111 console.warn('Radium: userAgent should be supplied for server-side rendering. See ' + 'https://github.com/FormidableLabs/radium/tree/master/docs/api#radium ' + 'for more information.');
1112 /* eslint-enable no-console */
1113 _hasWarnedAboutUserAgent = true;
1114 }
1115 }
1116
1117 if (!_cachedPrefixer || actualUserAgent !== _lastUserAgent) {
1118 if (actualUserAgent === 'all') {
1119 _cachedPrefixer = {
1120 prefix: _inlineStylePrefixer2.default.prefixAll,
1121 prefixedKeyframes: 'keyframes'
1122 };
1123 } else {
1124 _cachedPrefixer = new _inlineStylePrefixer2.default({ userAgent: actualUserAgent });
1125 }
1126 _lastUserAgent = actualUserAgent;
1127 }
1128 return _cachedPrefixer;
1129 }
1130
1131 function getPrefixedKeyframes(userAgent) {
1132 return getPrefixer(userAgent).prefixedKeyframes;
1133 }
1134
1135 // Returns a new style object with vendor prefixes added to property names
1136 // and values.
1137 function getPrefixedStyle(style, userAgent) {
1138 var styleWithFallbacks = transformValues(style);
1139 var prefixer = getPrefixer(userAgent);
1140 var prefixedStyle = prefixer.prefix(styleWithFallbacks);
1141 return prefixedStyle;
1142 }
1143 /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }()), __webpack_require__(1)))
1144
1145/***/ },
1146/* 12 */
1147/***/ function(module, exports, __webpack_require__) {
1148
1149 'use strict';
1150
1151 Object.defineProperty(exports, '__esModule', {
1152 value: true
1153 });
1154
1155 var _createClass = function () {
1156 function defineProperties(target, props) {
1157 for (var i = 0; i < props.length; i++) {
1158 var descriptor = props[i];descriptor.enumerable = descriptor.enumerable || false;descriptor.configurable = true;if ('value' in descriptor) descriptor.writable = true;Object.defineProperty(target, descriptor.key, descriptor);
1159 }
1160 }return function (Constructor, protoProps, staticProps) {
1161 if (protoProps) defineProperties(Constructor.prototype, protoProps);if (staticProps) defineProperties(Constructor, staticProps);return Constructor;
1162 };
1163 }();
1164
1165 function _interopRequireDefault(obj) {
1166 return obj && obj.__esModule ? obj : { 'default': obj };
1167 }
1168
1169 function _classCallCheck(instance, Constructor) {
1170 if (!(instance instanceof Constructor)) {
1171 throw new TypeError('Cannot call a class as a function');
1172 }
1173 }
1174
1175 var _inlineStylePrefixAll = __webpack_require__(13);
1176
1177 var _inlineStylePrefixAll2 = _interopRequireDefault(_inlineStylePrefixAll);
1178
1179 var _utilsGetBrowserInformation = __webpack_require__(28);
1180
1181 var _utilsGetBrowserInformation2 = _interopRequireDefault(_utilsGetBrowserInformation);
1182
1183 var _utilsGetPrefixedKeyframes = __webpack_require__(30);
1184
1185 var _utilsGetPrefixedKeyframes2 = _interopRequireDefault(_utilsGetPrefixedKeyframes);
1186
1187 var _utilsCapitalizeString = __webpack_require__(31);
1188
1189 var _utilsCapitalizeString2 = _interopRequireDefault(_utilsCapitalizeString);
1190
1191 var _utilsAssign = __webpack_require__(32);
1192
1193 var _utilsAssign2 = _interopRequireDefault(_utilsAssign);
1194
1195 var _prefixProps = __webpack_require__(33);
1196
1197 var _prefixProps2 = _interopRequireDefault(_prefixProps);
1198
1199 var _pluginsCalc = __webpack_require__(34);
1200
1201 var _pluginsCalc2 = _interopRequireDefault(_pluginsCalc);
1202
1203 var _pluginsCursor = __webpack_require__(36);
1204
1205 var _pluginsCursor2 = _interopRequireDefault(_pluginsCursor);
1206
1207 var _pluginsFlex = __webpack_require__(37);
1208
1209 var _pluginsFlex2 = _interopRequireDefault(_pluginsFlex);
1210
1211 var _pluginsSizing = __webpack_require__(38);
1212
1213 var _pluginsSizing2 = _interopRequireDefault(_pluginsSizing);
1214
1215 var _pluginsGradient = __webpack_require__(39);
1216
1217 var _pluginsGradient2 = _interopRequireDefault(_pluginsGradient);
1218
1219 var _pluginsTransition = __webpack_require__(40);
1220
1221 var _pluginsTransition2 = _interopRequireDefault(_pluginsTransition);
1222
1223 // special flexbox specifications
1224
1225 var _pluginsFlexboxIE = __webpack_require__(42);
1226
1227 var _pluginsFlexboxIE2 = _interopRequireDefault(_pluginsFlexboxIE);
1228
1229 var _pluginsFlexboxOld = __webpack_require__(43);
1230
1231 var _pluginsFlexboxOld2 = _interopRequireDefault(_pluginsFlexboxOld);
1232
1233 var plugins = [_pluginsCalc2['default'], _pluginsCursor2['default'], _pluginsSizing2['default'], _pluginsGradient2['default'], _pluginsTransition2['default'], _pluginsFlexboxIE2['default'], _pluginsFlexboxOld2['default'],
1234 // this must be run AFTER the flexbox specs
1235 _pluginsFlex2['default']];
1236
1237 var Prefixer = function () {
1238 /**
1239 * Instantiante a new prefixer
1240 * @param {string} userAgent - userAgent to gather prefix information according to caniuse.com
1241 * @param {string} keepUnprefixed - keeps unprefixed properties and values
1242 */
1243
1244 function Prefixer() {
1245 var _this = this;
1246
1247 var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
1248
1249 _classCallCheck(this, Prefixer);
1250
1251 var defaultUserAgent = typeof navigator !== 'undefined' ? navigator.userAgent : undefined;
1252
1253 this._userAgent = options.userAgent || defaultUserAgent;
1254 this._keepUnprefixed = options.keepUnprefixed || false;
1255
1256 this._browserInfo = (0, _utilsGetBrowserInformation2['default'])(this._userAgent);
1257
1258 // Checks if the userAgent was resolved correctly
1259 if (this._browserInfo && this._browserInfo.prefix) {
1260 // set additional prefix information
1261 this.cssPrefix = this._browserInfo.prefix.css;
1262 this.jsPrefix = this._browserInfo.prefix.inline;
1263 this.prefixedKeyframes = (0, _utilsGetPrefixedKeyframes2['default'])(this._browserInfo);
1264 } else {
1265 this._usePrefixAllFallback = true;
1266 return false;
1267 }
1268
1269 var data = this._browserInfo.browser && _prefixProps2['default'][this._browserInfo.browser];
1270 if (data) {
1271 this._requiresPrefix = Object.keys(data).filter(function (key) {
1272 return data[key] >= _this._browserInfo.version;
1273 }).reduce(function (result, name) {
1274 result[name] = true;
1275 return result;
1276 }, {});
1277 this._hasPropsRequiringPrefix = Object.keys(this._requiresPrefix).length > 0;
1278 } else {
1279 this._usePrefixAllFallback = true;
1280 }
1281 }
1282
1283 /**
1284 * Returns a prefixed version of the style object
1285 * @param {Object} styles - Style object that gets prefixed properties added
1286 * @returns {Object} - Style object with prefixed properties and values
1287 */
1288
1289 _createClass(Prefixer, [{
1290 key: 'prefix',
1291 value: function prefix(styles) {
1292 var _this2 = this;
1293
1294 // use prefixAll as fallback if userAgent can not be resolved
1295 if (this._usePrefixAllFallback) {
1296 return (0, _inlineStylePrefixAll2['default'])(styles);
1297 }
1298
1299 // only add prefixes if needed
1300 if (!this._hasPropsRequiringPrefix) {
1301 return styles;
1302 }
1303
1304 styles = (0, _utilsAssign2['default'])({}, styles);
1305
1306 Object.keys(styles).forEach(function (property) {
1307 var value = styles[property];
1308 if (value instanceof Object) {
1309 // recurse through nested style objects
1310 styles[property] = _this2.prefix(value);
1311 } else {
1312 // add prefixes if needed
1313 if (_this2._requiresPrefix[property]) {
1314 styles[_this2.jsPrefix + (0, _utilsCapitalizeString2['default'])(property)] = value;
1315 if (!_this2._keepUnprefixed) {
1316 delete styles[property];
1317 }
1318 }
1319
1320 // resolve plugins
1321 plugins.forEach(function (plugin) {
1322 // generates a new plugin interface with current data
1323 var resolvedStyles = plugin({
1324 property: property,
1325 value: value,
1326 styles: styles,
1327 browserInfo: _this2._browserInfo,
1328 prefix: {
1329 js: _this2.jsPrefix,
1330 css: _this2.cssPrefix,
1331 keyframes: _this2.prefixedKeyframes
1332 },
1333 keepUnprefixed: _this2._keepUnprefixed,
1334 requiresPrefix: _this2._requiresPrefix
1335 });
1336 (0, _utilsAssign2['default'])(styles, resolvedStyles);
1337 });
1338 }
1339 });
1340
1341 return styles;
1342 }
1343
1344 /**
1345 * Returns a prefixed version of the style object using all vendor prefixes
1346 * @param {Object} styles - Style object that gets prefixed properties added
1347 * @returns {Object} - Style object with prefixed properties and values
1348 */
1349 }], [{
1350 key: 'prefixAll',
1351 value: function prefixAll(styles) {
1352 return (0, _inlineStylePrefixAll2['default'])(styles);
1353 }
1354 }]);
1355
1356 return Prefixer;
1357 }();
1358
1359 exports['default'] = Prefixer;
1360 module.exports = exports['default'];
1361
1362/***/ },
1363/* 13 */
1364/***/ function(module, exports, __webpack_require__) {
1365
1366 'use strict';
1367
1368 Object.defineProperty(exports, '__esModule', {
1369 value: true
1370 });
1371 exports['default'] = prefixAll;
1372
1373 function _interopRequireDefault(obj) {
1374 return obj && obj.__esModule ? obj : { 'default': obj };
1375 }
1376
1377 var _prefixProps = __webpack_require__(14);
1378
1379 var _prefixProps2 = _interopRequireDefault(_prefixProps);
1380
1381 var _utilsCapitalizeString = __webpack_require__(15);
1382
1383 var _utilsCapitalizeString2 = _interopRequireDefault(_utilsCapitalizeString);
1384
1385 var _utilsAssign = __webpack_require__(16);
1386
1387 var _utilsAssign2 = _interopRequireDefault(_utilsAssign);
1388
1389 var _pluginsCalc = __webpack_require__(17);
1390
1391 var _pluginsCalc2 = _interopRequireDefault(_pluginsCalc);
1392
1393 var _pluginsCursor = __webpack_require__(21);
1394
1395 var _pluginsCursor2 = _interopRequireDefault(_pluginsCursor);
1396
1397 var _pluginsFlex = __webpack_require__(22);
1398
1399 var _pluginsFlex2 = _interopRequireDefault(_pluginsFlex);
1400
1401 var _pluginsSizing = __webpack_require__(23);
1402
1403 var _pluginsSizing2 = _interopRequireDefault(_pluginsSizing);
1404
1405 var _pluginsGradient = __webpack_require__(24);
1406
1407 var _pluginsGradient2 = _interopRequireDefault(_pluginsGradient);
1408
1409 var _pluginsTransition = __webpack_require__(25);
1410
1411 var _pluginsTransition2 = _interopRequireDefault(_pluginsTransition);
1412
1413 // special flexbox specifications
1414
1415 var _pluginsFlexboxIE = __webpack_require__(26);
1416
1417 var _pluginsFlexboxIE2 = _interopRequireDefault(_pluginsFlexboxIE);
1418
1419 var _pluginsFlexboxOld = __webpack_require__(27);
1420
1421 var _pluginsFlexboxOld2 = _interopRequireDefault(_pluginsFlexboxOld);
1422
1423 var plugins = [_pluginsCalc2['default'], _pluginsCursor2['default'], _pluginsSizing2['default'], _pluginsGradient2['default'], _pluginsTransition2['default'], _pluginsFlexboxIE2['default'], _pluginsFlexboxOld2['default'], _pluginsFlex2['default']];
1424
1425 /**
1426 * Returns a prefixed version of the style object using all vendor prefixes
1427 * @param {Object} styles - Style object that gets prefixed properties added
1428 * @returns {Object} - Style object with prefixed properties and values
1429 */
1430
1431 function prefixAll(styles) {
1432 return Object.keys(styles).reduce(function (prefixedStyles, property) {
1433 var value = styles[property];
1434 if (value instanceof Object && !Array.isArray(value)) {
1435 // recurse through nested style objects
1436 prefixedStyles[property] = prefixAll(value);
1437 } else {
1438 Object.keys(_prefixProps2['default']).forEach(function (prefix) {
1439 var properties = _prefixProps2['default'][prefix];
1440 // add prefixes if needed
1441 if (properties[property]) {
1442 prefixedStyles[prefix + (0, _utilsCapitalizeString2['default'])(property)] = value;
1443 }
1444 });
1445
1446 // resolve every special plugins
1447 plugins.forEach(function (plugin) {
1448 return (0, _utilsAssign2['default'])(prefixedStyles, plugin(property, value));
1449 });
1450 }
1451
1452 return prefixedStyles;
1453 }, styles);
1454 }
1455
1456 module.exports = exports['default'];
1457
1458/***/ },
1459/* 14 */
1460/***/ function(module, exports) {
1461
1462 "use strict";
1463
1464 Object.defineProperty(exports, "__esModule", {
1465 value: true
1466 });
1467 exports["default"] = { "Webkit": { "transform": true, "transformOrigin": true, "transformOriginX": true, "transformOriginY": true, "backfaceVisibility": true, "perspective": true, "perspectiveOrigin": true, "transformStyle": true, "transformOriginZ": true, "animation": true, "animationDelay": true, "animationDirection": true, "animationFillMode": true, "animationDuration": true, "animationIterationCount": true, "animationName": true, "animationPlayState": true, "animationTimingFunction": true, "appearance": true, "userSelect": true, "fontKerning": true, "textEmphasisPosition": true, "textEmphasis": true, "textEmphasisStyle": true, "textEmphasisColor": true, "boxDecorationBreak": true, "clipPath": true, "maskImage": true, "maskMode": true, "maskRepeat": true, "maskPosition": true, "maskClip": true, "maskOrigin": true, "maskSize": true, "maskComposite": true, "mask": true, "maskBorderSource": true, "maskBorderMode": true, "maskBorderSlice": true, "maskBorderWidth": true, "maskBorderOutset": true, "maskBorderRepeat": true, "maskBorder": true, "maskType": true, "textDecorationStyle": true, "textDecorationSkip": true, "textDecorationLine": true, "textDecorationColor": true, "filter": true, "fontFeatureSettings": true, "breakAfter": true, "breakBefore": true, "breakInside": true, "columnCount": true, "columnFill": true, "columnGap": true, "columnRule": true, "columnRuleColor": true, "columnRuleStyle": true, "columnRuleWidth": true, "columns": true, "columnSpan": true, "columnWidth": true, "flex": true, "flexBasis": true, "flexDirection": true, "flexGrow": true, "flexFlow": true, "flexShrink": true, "flexWrap": true, "alignContent": true, "alignItems": true, "alignSelf": true, "justifyContent": true, "order": true, "transition": true, "transitionDelay": true, "transitionDuration": true, "transitionProperty": true, "transitionTimingFunction": true, "backdropFilter": true, "scrollSnapType": true, "scrollSnapPointsX": true, "scrollSnapPointsY": true, "scrollSnapDestination": true, "scrollSnapCoordinate": true, "shapeImageThreshold": true, "shapeImageMargin": true, "shapeImageOutside": true, "hyphens": true, "flowInto": true, "flowFrom": true, "regionFragment": true, "textSizeAdjust": true, "borderImage": true, "borderImageOutset": true, "borderImageRepeat": true, "borderImageSlice": true, "borderImageSource": true, "borderImageWidth": true, "tabSize": true, "objectFit": true, "objectPosition": true }, "Moz": { "appearance": true, "userSelect": true, "boxSizing": true, "textAlignLast": true, "textDecorationStyle": true, "textDecorationSkip": true, "textDecorationLine": true, "textDecorationColor": true, "tabSize": true, "hyphens": true, "fontFeatureSettings": true, "breakAfter": true, "breakBefore": true, "breakInside": true, "columnCount": true, "columnFill": true, "columnGap": true, "columnRule": true, "columnRuleColor": true, "columnRuleStyle": true, "columnRuleWidth": true, "columns": true, "columnSpan": true, "columnWidth": true }, "ms": { "flex": true, "flexBasis": false, "flexDirection": true, "flexGrow": false, "flexFlow": true, "flexShrink": false, "flexWrap": true, "alignContent": false, "alignItems": false, "alignSelf": false, "justifyContent": false, "order": false, "transform": true, "transformOrigin": true, "transformOriginX": true, "transformOriginY": true, "userSelect": true, "wrapFlow": true, "wrapThrough": true, "wrapMargin": true, "scrollSnapType": true, "scrollSnapPointsX": true, "scrollSnapPointsY": true, "scrollSnapDestination": true, "scrollSnapCoordinate": true, "touchAction": true, "hyphens": true, "flowInto": true, "flowFrom": true, "breakBefore": true, "breakAfter": true, "breakInside": true, "regionFragment": true, "gridTemplateColumns": true, "gridTemplateRows": true, "gridTemplateAreas": true, "gridTemplate": true, "gridAutoColumns": true, "gridAutoRows": true, "gridAutoFlow": true, "grid": true, "gridRowStart": true, "gridColumnStart": true, "gridRowEnd": true, "gridRow": true, "gridColumn": true, "gridColumnEnd": true, "gridColumnGap": true, "gridRowGap": true, "gridArea": true, "gridGap": true, "textSizeAdjust": true } };
1468 module.exports = exports["default"];
1469
1470/***/ },
1471/* 15 */
1472/***/ function(module, exports) {
1473
1474 // helper to capitalize strings
1475 "use strict";
1476
1477 Object.defineProperty(exports, "__esModule", {
1478 value: true
1479 });
1480
1481 exports["default"] = function (str) {
1482 return str.charAt(0).toUpperCase() + str.slice(1);
1483 };
1484
1485 module.exports = exports["default"];
1486
1487/***/ },
1488/* 16 */
1489/***/ function(module, exports) {
1490
1491 // leight polyfill for Object.assign
1492 "use strict";
1493
1494 Object.defineProperty(exports, "__esModule", {
1495 value: true
1496 });
1497
1498 exports["default"] = function (base) {
1499 var extend = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
1500 return Object.keys(extend).reduce(function (out, key) {
1501 base[key] = extend[key];
1502 return out;
1503 }, {});
1504 };
1505
1506 module.exports = exports["default"];
1507
1508/***/ },
1509/* 17 */
1510/***/ function(module, exports, __webpack_require__) {
1511
1512 'use strict';
1513
1514 Object.defineProperty(exports, '__esModule', {
1515 value: true
1516 });
1517 exports['default'] = calc;
1518
1519 function _interopRequireDefault(obj) {
1520 return obj && obj.__esModule ? obj : { 'default': obj };
1521 }
1522
1523 var _utilsJoinPrefixedRules = __webpack_require__(18);
1524
1525 var _utilsJoinPrefixedRules2 = _interopRequireDefault(_utilsJoinPrefixedRules);
1526
1527 var _utilsIsPrefixedValue = __webpack_require__(20);
1528
1529 var _utilsIsPrefixedValue2 = _interopRequireDefault(_utilsIsPrefixedValue);
1530
1531 function calc(property, value) {
1532 if (typeof value === 'string' && value.indexOf('calc(') > -1) {
1533 if ((0, _utilsIsPrefixedValue2['default'])(value)) return;
1534
1535 return (0, _utilsJoinPrefixedRules2['default'])(property, value, function (prefix, value) {
1536 return value.replace(/calc\(/g, prefix + 'calc(');
1537 });
1538 }
1539 }
1540
1541 module.exports = exports['default'];
1542
1543/***/ },
1544/* 18 */
1545/***/ function(module, exports, __webpack_require__) {
1546
1547 'use strict';
1548
1549 Object.defineProperty(exports, '__esModule', {
1550 value: true
1551 });
1552
1553 function _interopRequireDefault(obj) {
1554 return obj && obj.__esModule ? obj : { 'default': obj };
1555 }
1556
1557 function _defineProperty(obj, key, value) {
1558 if (key in obj) {
1559 Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
1560 } else {
1561 obj[key] = value;
1562 }return obj;
1563 }
1564
1565 var _camelToDashCase = __webpack_require__(19);
1566
1567 var _camelToDashCase2 = _interopRequireDefault(_camelToDashCase);
1568
1569 // returns a style object with a single concated prefixed value string
1570
1571 exports['default'] = function (property, value) {
1572 var replacer = arguments.length <= 2 || arguments[2] === undefined ? function (prefix, value) {
1573 return prefix + value;
1574 } : arguments[2];
1575 return function () {
1576 return _defineProperty({}, property, ['-webkit-', '-moz-', ''].map(function (prefix) {
1577 return replacer(prefix, value);
1578 }));
1579 }();
1580 };
1581
1582 module.exports = exports['default'];
1583
1584/***/ },
1585/* 19 */
1586/***/ function(module, exports) {
1587
1588 /**
1589 * Converts a camel-case string to a dash-case string
1590 * @param {string} str - str that gets converted to dash-case
1591 */
1592 'use strict';
1593
1594 Object.defineProperty(exports, '__esModule', {
1595 value: true
1596 });
1597
1598 exports['default'] = function (str) {
1599 return str.replace(/([a-z]|^)([A-Z])/g, function (match, p1, p2) {
1600 return p1 + '-' + p2.toLowerCase();
1601 }).replace('ms-', '-ms-');
1602 };
1603
1604 module.exports = exports['default'];
1605
1606/***/ },
1607/* 20 */
1608/***/ function(module, exports) {
1609
1610 'use strict';
1611
1612 Object.defineProperty(exports, '__esModule', {
1613 value: true
1614 });
1615
1616 exports['default'] = function (value) {
1617 if (Array.isArray(value)) value = value.join(',');
1618
1619 return value.match(/-webkit-|-moz-|-ms-/) !== null;
1620 };
1621
1622 module.exports = exports['default'];
1623
1624/***/ },
1625/* 21 */
1626/***/ function(module, exports, __webpack_require__) {
1627
1628 'use strict';
1629
1630 Object.defineProperty(exports, '__esModule', {
1631 value: true
1632 });
1633 exports['default'] = cursor;
1634
1635 function _interopRequireDefault(obj) {
1636 return obj && obj.__esModule ? obj : { 'default': obj };
1637 }
1638
1639 var _utilsJoinPrefixedRules = __webpack_require__(18);
1640
1641 var _utilsJoinPrefixedRules2 = _interopRequireDefault(_utilsJoinPrefixedRules);
1642
1643 var values = {
1644 'zoom-in': true,
1645 'zoom-out': true,
1646 'grab': true,
1647 'grabbing': true
1648 };
1649
1650 function cursor(property, value) {
1651 if (property === 'cursor' && values[value]) {
1652 return (0, _utilsJoinPrefixedRules2['default'])(property, value);
1653 }
1654 }
1655
1656 module.exports = exports['default'];
1657
1658/***/ },
1659/* 22 */
1660/***/ function(module, exports, __webpack_require__) {
1661
1662 'use strict';
1663
1664 Object.defineProperty(exports, '__esModule', {
1665 value: true
1666 });
1667 exports['default'] = flex;
1668
1669 function _interopRequireDefault(obj) {
1670 return obj && obj.__esModule ? obj : { 'default': obj };
1671 }
1672
1673 var _utilsCamelToDashCase = __webpack_require__(19);
1674
1675 var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
1676
1677 var values = { flex: true, 'inline-flex': true };
1678
1679 function flex(property, value) {
1680 if (property === 'display' && values[value]) {
1681 return {
1682 display: ['-webkit-box', '-moz-box', '-ms-' + value + 'box', '-webkit-' + value, value]
1683 };
1684 }
1685 }
1686
1687 module.exports = exports['default'];
1688
1689/***/ },
1690/* 23 */
1691/***/ function(module, exports, __webpack_require__) {
1692
1693 'use strict';
1694
1695 Object.defineProperty(exports, '__esModule', {
1696 value: true
1697 });
1698 exports['default'] = sizing;
1699
1700 function _interopRequireDefault(obj) {
1701 return obj && obj.__esModule ? obj : { 'default': obj };
1702 }
1703
1704 var _utilsJoinPrefixedRules = __webpack_require__(18);
1705
1706 var _utilsJoinPrefixedRules2 = _interopRequireDefault(_utilsJoinPrefixedRules);
1707
1708 var properties = {
1709 maxHeight: true,
1710 maxWidth: true,
1711 width: true,
1712 height: true,
1713 columnWidth: true,
1714 minWidth: true,
1715 minHeight: true
1716 };
1717 var values = {
1718 'min-content': true,
1719 'max-content': true,
1720 'fill-available': true,
1721 'fit-content': true,
1722 'contain-floats': true
1723 };
1724
1725 function sizing(property, value) {
1726 if (properties[property] && values[value]) {
1727 return (0, _utilsJoinPrefixedRules2['default'])(property, value);
1728 }
1729 }
1730
1731 module.exports = exports['default'];
1732
1733/***/ },
1734/* 24 */
1735/***/ function(module, exports, __webpack_require__) {
1736
1737 'use strict';
1738
1739 Object.defineProperty(exports, '__esModule', {
1740 value: true
1741 });
1742 exports['default'] = gradient;
1743
1744 function _interopRequireDefault(obj) {
1745 return obj && obj.__esModule ? obj : { 'default': obj };
1746 }
1747
1748 var _utilsJoinPrefixedRules = __webpack_require__(18);
1749
1750 var _utilsJoinPrefixedRules2 = _interopRequireDefault(_utilsJoinPrefixedRules);
1751
1752 var _utilsIsPrefixedValue = __webpack_require__(20);
1753
1754 var _utilsIsPrefixedValue2 = _interopRequireDefault(_utilsIsPrefixedValue);
1755
1756 var values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;
1757
1758 function gradient(property, value) {
1759 if (typeof value === 'string' && value.match(values) !== null) {
1760 if ((0, _utilsIsPrefixedValue2['default'])(value)) return;
1761
1762 return (0, _utilsJoinPrefixedRules2['default'])(property, value);
1763 }
1764 }
1765
1766 module.exports = exports['default'];
1767
1768/***/ },
1769/* 25 */
1770/***/ function(module, exports, __webpack_require__) {
1771
1772 'use strict';
1773
1774 Object.defineProperty(exports, '__esModule', {
1775 value: true
1776 });
1777 exports['default'] = transition;
1778
1779 function _interopRequireDefault(obj) {
1780 return obj && obj.__esModule ? obj : { 'default': obj };
1781 }
1782
1783 function _defineProperty(obj, key, value) {
1784 if (key in obj) {
1785 Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
1786 } else {
1787 obj[key] = value;
1788 }return obj;
1789 }
1790
1791 var _utilsCamelToDashCase = __webpack_require__(19);
1792
1793 var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
1794
1795 var _utilsCapitalizeString = __webpack_require__(15);
1796
1797 var _utilsCapitalizeString2 = _interopRequireDefault(_utilsCapitalizeString);
1798
1799 var _utilsIsPrefixedValue = __webpack_require__(20);
1800
1801 var _utilsIsPrefixedValue2 = _interopRequireDefault(_utilsIsPrefixedValue);
1802
1803 var _prefixProps = __webpack_require__(14);
1804
1805 var _prefixProps2 = _interopRequireDefault(_prefixProps);
1806
1807 var properties = {
1808 transition: true,
1809 transitionProperty: true,
1810 WebkitTransition: true,
1811 WebkitTransitionProperty: true
1812 };
1813
1814 function transition(property, value) {
1815 // also check for already prefixed transitions
1816 if (typeof value === 'string' && properties[property]) {
1817 var _ref2;
1818
1819 var outputValue = prefixValue(value);
1820 var webkitOutput = outputValue.split(',').filter(function (value) {
1821 return value.match(/-moz-|-ms-/) === null;
1822 }).join(',');
1823
1824 // if the property is already prefixed
1825 if (property.indexOf('Webkit') > -1) {
1826 return _defineProperty({}, property, webkitOutput);
1827 }
1828
1829 return _ref2 = {}, _defineProperty(_ref2, 'Webkit' + (0, _utilsCapitalizeString2['default'])(property), webkitOutput), _defineProperty(_ref2, property, outputValue), _ref2;
1830 }
1831 }
1832
1833 function prefixValue(value) {
1834 if ((0, _utilsIsPrefixedValue2['default'])(value)) {
1835 return value;
1836 }
1837
1838 // only split multi values, not cubic beziers
1839 var multipleValues = value.split(/,(?![^()]*(?:\([^()]*\))?\))/g);
1840
1841 // iterate each single value and check for transitioned properties
1842 // that need to be prefixed as well
1843 multipleValues.forEach(function (val, index) {
1844 multipleValues[index] = Object.keys(_prefixProps2['default']).reduce(function (out, prefix) {
1845 var dashCasePrefix = '-' + prefix.toLowerCase() + '-';
1846
1847 Object.keys(_prefixProps2['default'][prefix]).forEach(function (prop) {
1848 var dashCaseProperty = (0, _utilsCamelToDashCase2['default'])(prop);
1849
1850 if (val.indexOf(dashCaseProperty) > -1) {
1851 // join all prefixes and create a new value
1852 out = val.replace(dashCaseProperty, dashCasePrefix + dashCaseProperty) + ',' + out;
1853 }
1854 });
1855 return out;
1856 }, val);
1857 });
1858
1859 return multipleValues.join(',');
1860 }
1861 module.exports = exports['default'];
1862
1863/***/ },
1864/* 26 */
1865/***/ function(module, exports) {
1866
1867 'use strict';
1868
1869 Object.defineProperty(exports, '__esModule', {
1870 value: true
1871 });
1872 exports['default'] = flexboxIE;
1873
1874 function _defineProperty(obj, key, value) {
1875 if (key in obj) {
1876 Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
1877 } else {
1878 obj[key] = value;
1879 }return obj;
1880 }
1881
1882 var alternativeValues = {
1883 'space-around': 'distribute',
1884 'space-between': 'justify',
1885 'flex-start': 'start',
1886 'flex-end': 'end'
1887 };
1888 var alternativeProps = {
1889 alignContent: 'msFlexLinePack',
1890 alignSelf: 'msFlexItemAlign',
1891 alignItems: 'msFlexAlign',
1892 justifyContent: 'msFlexPack',
1893 order: 'msFlexOrder',
1894 flexGrow: 'msFlexPositive',
1895 flexShrink: 'msFlexNegative',
1896 flexBasis: 'msPreferredSize'
1897 };
1898
1899 function flexboxIE(property, value) {
1900 if (alternativeProps[property]) {
1901 return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);
1902 }
1903 }
1904
1905 module.exports = exports['default'];
1906
1907/***/ },
1908/* 27 */
1909/***/ function(module, exports, __webpack_require__) {
1910
1911 'use strict';
1912
1913 Object.defineProperty(exports, '__esModule', {
1914 value: true
1915 });
1916 exports['default'] = flexboxOld;
1917
1918 function _interopRequireDefault(obj) {
1919 return obj && obj.__esModule ? obj : { 'default': obj };
1920 }
1921
1922 function _defineProperty(obj, key, value) {
1923 if (key in obj) {
1924 Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
1925 } else {
1926 obj[key] = value;
1927 }return obj;
1928 }
1929
1930 var _utilsCamelToDashCase = __webpack_require__(19);
1931
1932 var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
1933
1934 var alternativeValues = {
1935 'space-around': 'justify',
1936 'space-between': 'justify',
1937 'flex-start': 'start',
1938 'flex-end': 'end',
1939 'wrap-reverse': 'multiple',
1940 wrap: 'multiple'
1941 };
1942
1943 var alternativeProps = {
1944 alignItems: 'WebkitBoxAlign',
1945 justifyContent: 'WebkitBoxPack',
1946 flexWrap: 'WebkitBoxLines'
1947 };
1948
1949 function flexboxOld(property, value) {
1950 if (property === 'flexDirection') {
1951 return {
1952 WebkitBoxOrient: value.indexOf('column') > -1 ? 'vertical' : 'horizontal',
1953 WebkitBoxDirection: value.indexOf('reverse') > -1 ? 'reverse' : 'normal'
1954 };
1955 }
1956 if (alternativeProps[property]) {
1957 return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);
1958 }
1959 }
1960
1961 module.exports = exports['default'];
1962
1963/***/ },
1964/* 28 */
1965/***/ function(module, exports, __webpack_require__) {
1966
1967 'use strict';
1968
1969 Object.defineProperty(exports, '__esModule', {
1970 value: true
1971 });
1972
1973 function _interopRequireDefault(obj) {
1974 return obj && obj.__esModule ? obj : { 'default': obj };
1975 }
1976
1977 var _bowser = __webpack_require__(29);
1978
1979 var _bowser2 = _interopRequireDefault(_bowser);
1980
1981 var vendorPrefixes = {
1982 Webkit: ['chrome', 'safari', 'ios', 'android', 'phantom', 'opera', 'webos', 'blackberry', 'bada', 'tizen'],
1983 Moz: ['firefox', 'seamonkey', 'sailfish'],
1984 ms: ['msie', 'msedge']
1985 };
1986
1987 var browsers = {
1988 chrome: [['chrome']],
1989 safari: [['safari']],
1990 firefox: [['firefox']],
1991 ie: [['msie']],
1992 edge: [['msedge']],
1993 opera: [['opera']],
1994 ios_saf: [['ios', 'mobile'], ['ios', 'tablet']],
1995 ie_mob: [['windowsphone', 'mobile', 'msie'], ['windowsphone', 'tablet', 'msie'], ['windowsphone', 'mobile', 'msedge'], ['windowsphone', 'tablet', 'msedge']],
1996 op_mini: [['opera', 'mobile'], ['opera', 'tablet']],
1997 and_uc: [['android', 'mobile'], ['android', 'tablet']],
1998 android: [['android', 'mobile'], ['android', 'tablet']]
1999 };
2000
2001 /**
2002 * Uses bowser to get default browser information such as version and name
2003 * Evaluates bowser info and adds vendorPrefix information
2004 * @param {string} userAgent - userAgent that gets evaluated
2005 */
2006
2007 exports['default'] = function (userAgent) {
2008 if (!userAgent) {
2009 return false;
2010 }
2011
2012 var info = _bowser2['default']._detect(userAgent);
2013
2014 Object.keys(vendorPrefixes).forEach(function (prefix) {
2015 vendorPrefixes[prefix].forEach(function (browser) {
2016 if (info[browser]) {
2017 info.prefix = {
2018 inline: prefix,
2019 css: '-' + prefix.toLowerCase() + '-'
2020 };
2021 }
2022 });
2023 });
2024
2025 var name = '';
2026 Object.keys(browsers).forEach(function (browser) {
2027 browsers[browser].forEach(function (condition) {
2028 var match = 0;
2029 condition.forEach(function (single) {
2030 if (info[single]) {
2031 match += 1;
2032 }
2033 });
2034 if (condition.length === match) {
2035 name = browser;
2036 }
2037 });
2038 });
2039
2040 info.browser = name;
2041 // For cordova IOS 8 the version is missing, set truncated osversion to prevent NaN
2042 info.version = info.version ? parseFloat(info.version) : parseInt(parseFloat(info.osversion), 10);
2043
2044 // seperate native android chrome
2045 // https://github.com/rofrischmann/inline-style-prefixer/issues/45
2046 if (info.browser === 'android' && info.chrome && info.version > 37) {
2047 info.browser = 'and_chr';
2048 }
2049 info.version = parseFloat(info.version);
2050 info.osversion = parseFloat(info.osversion);
2051 // For android < 4.4 we want to check the osversion
2052 // not the chrome version, see issue #26
2053 // https://github.com/rofrischmann/inline-style-prefixer/issues/26
2054 if (info.browser === 'android' && info.osversion < 5) {
2055 info.version = info.osversion;
2056 }
2057
2058 return info;
2059 };
2060
2061 module.exports = exports['default'];
2062
2063/***/ },
2064/* 29 */
2065/***/ function(module, exports, __webpack_require__) {
2066
2067 var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;'use strict';
2068
2069 /*!
2070 * Bowser - a browser detector
2071 * https://github.com/ded/bowser
2072 * MIT License | (c) Dustin Diaz 2015
2073 */
2074
2075 !function (name, definition) {
2076 if (typeof module != 'undefined' && module.exports) module.exports = definition();else if (true) !(__WEBPACK_AMD_DEFINE_FACTORY__ = (definition), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));else this[name] = definition();
2077 }('bowser', function () {
2078 /**
2079 * See useragents.js for examples of navigator.userAgent
2080 */
2081
2082 var t = true;
2083
2084 function detect(ua) {
2085
2086 function getFirstMatch(regex) {
2087 var match = ua.match(regex);
2088 return match && match.length > 1 && match[1] || '';
2089 }
2090
2091 function getSecondMatch(regex) {
2092 var match = ua.match(regex);
2093 return match && match.length > 1 && match[2] || '';
2094 }
2095
2096 var iosdevice = getFirstMatch(/(ipod|iphone|ipad)/i).toLowerCase(),
2097 likeAndroid = /like android/i.test(ua),
2098 android = !likeAndroid && /android/i.test(ua),
2099 nexusMobile = /nexus\s*[0-6]\s*/i.test(ua),
2100 nexusTablet = !nexusMobile && /nexus\s*[0-9]+/i.test(ua),
2101 chromeos = /CrOS/.test(ua),
2102 silk = /silk/i.test(ua),
2103 sailfish = /sailfish/i.test(ua),
2104 tizen = /tizen/i.test(ua),
2105 webos = /(web|hpw)os/i.test(ua),
2106 windowsphone = /windows phone/i.test(ua),
2107 windows = !windowsphone && /windows/i.test(ua),
2108 mac = !iosdevice && !silk && /macintosh/i.test(ua),
2109 linux = !android && !sailfish && !tizen && !webos && /linux/i.test(ua),
2110 edgeVersion = getFirstMatch(/edge\/(\d+(\.\d+)?)/i),
2111 versionIdentifier = getFirstMatch(/version\/(\d+(\.\d+)?)/i),
2112 tablet = /tablet/i.test(ua),
2113 mobile = !tablet && /[^-]mobi/i.test(ua),
2114 xbox = /xbox/i.test(ua),
2115 result;
2116
2117 if (/opera|opr|opios/i.test(ua)) {
2118 result = {
2119 name: 'Opera',
2120 opera: t,
2121 version: versionIdentifier || getFirstMatch(/(?:opera|opr|opios)[\s\/](\d+(\.\d+)?)/i)
2122 };
2123 } else if (/coast/i.test(ua)) {
2124 result = {
2125 name: 'Opera Coast',
2126 coast: t,
2127 version: versionIdentifier || getFirstMatch(/(?:coast)[\s\/](\d+(\.\d+)?)/i)
2128 };
2129 } else if (/yabrowser/i.test(ua)) {
2130 result = {
2131 name: 'Yandex Browser',
2132 yandexbrowser: t,
2133 version: versionIdentifier || getFirstMatch(/(?:yabrowser)[\s\/](\d+(\.\d+)?)/i)
2134 };
2135 } else if (/ucbrowser/i.test(ua)) {
2136 result = {
2137 name: 'UC Browser',
2138 ucbrowser: t,
2139 version: getFirstMatch(/(?:ucbrowser)[\s\/](\d+(?:\.\d+)+)/i)
2140 };
2141 } else if (/mxios/i.test(ua)) {
2142 result = {
2143 name: 'Maxthon',
2144 maxthon: t,
2145 version: getFirstMatch(/(?:mxios)[\s\/](\d+(?:\.\d+)+)/i)
2146 };
2147 } else if (/epiphany/i.test(ua)) {
2148 result = {
2149 name: 'Epiphany',
2150 epiphany: t,
2151 version: getFirstMatch(/(?:epiphany)[\s\/](\d+(?:\.\d+)+)/i)
2152 };
2153 } else if (/puffin/i.test(ua)) {
2154 result = {
2155 name: 'Puffin',
2156 puffin: t,
2157 version: getFirstMatch(/(?:puffin)[\s\/](\d+(?:\.\d+)?)/i)
2158 };
2159 } else if (/sleipnir/i.test(ua)) {
2160 result = {
2161 name: 'Sleipnir',
2162 sleipnir: t,
2163 version: getFirstMatch(/(?:sleipnir)[\s\/](\d+(?:\.\d+)+)/i)
2164 };
2165 } else if (/k-meleon/i.test(ua)) {
2166 result = {
2167 name: 'K-Meleon',
2168 kMeleon: t,
2169 version: getFirstMatch(/(?:k-meleon)[\s\/](\d+(?:\.\d+)+)/i)
2170 };
2171 } else if (windowsphone) {
2172 result = {
2173 name: 'Windows Phone',
2174 windowsphone: t
2175 };
2176 if (edgeVersion) {
2177 result.msedge = t;
2178 result.version = edgeVersion;
2179 } else {
2180 result.msie = t;
2181 result.version = getFirstMatch(/iemobile\/(\d+(\.\d+)?)/i);
2182 }
2183 } else if (/msie|trident/i.test(ua)) {
2184 result = {
2185 name: 'Internet Explorer',
2186 msie: t,
2187 version: getFirstMatch(/(?:msie |rv:)(\d+(\.\d+)?)/i)
2188 };
2189 } else if (chromeos) {
2190 result = {
2191 name: 'Chrome',
2192 chromeos: t,
2193 chromeBook: t,
2194 chrome: t,
2195 version: getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)
2196 };
2197 } else if (/chrome.+? edge/i.test(ua)) {
2198 result = {
2199 name: 'Microsoft Edge',
2200 msedge: t,
2201 version: edgeVersion
2202 };
2203 } else if (/vivaldi/i.test(ua)) {
2204 result = {
2205 name: 'Vivaldi',
2206 vivaldi: t,
2207 version: getFirstMatch(/vivaldi\/(\d+(\.\d+)?)/i) || versionIdentifier
2208 };
2209 } else if (sailfish) {
2210 result = {
2211 name: 'Sailfish',
2212 sailfish: t,
2213 version: getFirstMatch(/sailfish\s?browser\/(\d+(\.\d+)?)/i)
2214 };
2215 } else if (/seamonkey\//i.test(ua)) {
2216 result = {
2217 name: 'SeaMonkey',
2218 seamonkey: t,
2219 version: getFirstMatch(/seamonkey\/(\d+(\.\d+)?)/i)
2220 };
2221 } else if (/firefox|iceweasel|fxios/i.test(ua)) {
2222 result = {
2223 name: 'Firefox',
2224 firefox: t,
2225 version: getFirstMatch(/(?:firefox|iceweasel|fxios)[ \/](\d+(\.\d+)?)/i)
2226 };
2227 if (/\((mobile|tablet);[^\)]*rv:[\d\.]+\)/i.test(ua)) {
2228 result.firefoxos = t;
2229 }
2230 } else if (silk) {
2231 result = {
2232 name: 'Amazon Silk',
2233 silk: t,
2234 version: getFirstMatch(/silk\/(\d+(\.\d+)?)/i)
2235 };
2236 } else if (/phantom/i.test(ua)) {
2237 result = {
2238 name: 'PhantomJS',
2239 phantom: t,
2240 version: getFirstMatch(/phantomjs\/(\d+(\.\d+)?)/i)
2241 };
2242 } else if (/slimerjs/i.test(ua)) {
2243 result = {
2244 name: 'SlimerJS',
2245 slimer: t,
2246 version: getFirstMatch(/slimerjs\/(\d+(\.\d+)?)/i)
2247 };
2248 } else if (/blackberry|\bbb\d+/i.test(ua) || /rim\stablet/i.test(ua)) {
2249 result = {
2250 name: 'BlackBerry',
2251 blackberry: t,
2252 version: versionIdentifier || getFirstMatch(/blackberry[\d]+\/(\d+(\.\d+)?)/i)
2253 };
2254 } else if (webos) {
2255 result = {
2256 name: 'WebOS',
2257 webos: t,
2258 version: versionIdentifier || getFirstMatch(/w(?:eb)?osbrowser\/(\d+(\.\d+)?)/i)
2259 };
2260 /touchpad\//i.test(ua) && (result.touchpad = t);
2261 } else if (/bada/i.test(ua)) {
2262 result = {
2263 name: 'Bada',
2264 bada: t,
2265 version: getFirstMatch(/dolfin\/(\d+(\.\d+)?)/i)
2266 };
2267 } else if (tizen) {
2268 result = {
2269 name: 'Tizen',
2270 tizen: t,
2271 version: getFirstMatch(/(?:tizen\s?)?browser\/(\d+(\.\d+)?)/i) || versionIdentifier
2272 };
2273 } else if (/qupzilla/i.test(ua)) {
2274 result = {
2275 name: 'QupZilla',
2276 qupzilla: t,
2277 version: getFirstMatch(/(?:qupzilla)[\s\/](\d+(?:\.\d+)+)/i) || versionIdentifier
2278 };
2279 } else if (/chromium/i.test(ua)) {
2280 result = {
2281 name: 'Chromium',
2282 chromium: t,
2283 version: getFirstMatch(/(?:chromium)[\s\/](\d+(?:\.\d+)?)/i) || versionIdentifier
2284 };
2285 } else if (/chrome|crios|crmo/i.test(ua)) {
2286 result = {
2287 name: 'Chrome',
2288 chrome: t,
2289 version: getFirstMatch(/(?:chrome|crios|crmo)\/(\d+(\.\d+)?)/i)
2290 };
2291 } else if (android) {
2292 result = {
2293 name: 'Android',
2294 version: versionIdentifier
2295 };
2296 } else if (/safari|applewebkit/i.test(ua)) {
2297 result = {
2298 name: 'Safari',
2299 safari: t
2300 };
2301 if (versionIdentifier) {
2302 result.version = versionIdentifier;
2303 }
2304 } else if (iosdevice) {
2305 result = {
2306 name: iosdevice == 'iphone' ? 'iPhone' : iosdevice == 'ipad' ? 'iPad' : 'iPod'
2307 };
2308 // WTF: version is not part of user agent in web apps
2309 if (versionIdentifier) {
2310 result.version = versionIdentifier;
2311 }
2312 } else if (/googlebot/i.test(ua)) {
2313 result = {
2314 name: 'Googlebot',
2315 googlebot: t,
2316 version: getFirstMatch(/googlebot\/(\d+(\.\d+))/i) || versionIdentifier
2317 };
2318 } else {
2319 result = {
2320 name: getFirstMatch(/^(.*)\/(.*) /),
2321 version: getSecondMatch(/^(.*)\/(.*) /)
2322 };
2323 }
2324
2325 // set webkit or gecko flag for browsers based on these engines
2326 if (!result.msedge && /(apple)?webkit/i.test(ua)) {
2327 if (/(apple)?webkit\/537\.36/i.test(ua)) {
2328 result.name = result.name || "Blink";
2329 result.blink = t;
2330 } else {
2331 result.name = result.name || "Webkit";
2332 result.webkit = t;
2333 }
2334 if (!result.version && versionIdentifier) {
2335 result.version = versionIdentifier;
2336 }
2337 } else if (!result.opera && /gecko\//i.test(ua)) {
2338 result.name = result.name || "Gecko";
2339 result.gecko = t;
2340 result.version = result.version || getFirstMatch(/gecko\/(\d+(\.\d+)?)/i);
2341 }
2342
2343 // set OS flags for platforms that have multiple browsers
2344 if (!result.msedge && (android || result.silk)) {
2345 result.android = t;
2346 } else if (iosdevice) {
2347 result[iosdevice] = t;
2348 result.ios = t;
2349 } else if (mac) {
2350 result.mac = t;
2351 } else if (xbox) {
2352 result.xbox = t;
2353 } else if (windows) {
2354 result.windows = t;
2355 } else if (linux) {
2356 result.linux = t;
2357 }
2358
2359 // OS version extraction
2360 var osVersion = '';
2361 if (result.windowsphone) {
2362 osVersion = getFirstMatch(/windows phone (?:os)?\s?(\d+(\.\d+)*)/i);
2363 } else if (iosdevice) {
2364 osVersion = getFirstMatch(/os (\d+([_\s]\d+)*) like mac os x/i);
2365 osVersion = osVersion.replace(/[_\s]/g, '.');
2366 } else if (android) {
2367 osVersion = getFirstMatch(/android[ \/-](\d+(\.\d+)*)/i);
2368 } else if (result.webos) {
2369 osVersion = getFirstMatch(/(?:web|hpw)os\/(\d+(\.\d+)*)/i);
2370 } else if (result.blackberry) {
2371 osVersion = getFirstMatch(/rim\stablet\sos\s(\d+(\.\d+)*)/i);
2372 } else if (result.bada) {
2373 osVersion = getFirstMatch(/bada\/(\d+(\.\d+)*)/i);
2374 } else if (result.tizen) {
2375 osVersion = getFirstMatch(/tizen[\/\s](\d+(\.\d+)*)/i);
2376 }
2377 if (osVersion) {
2378 result.osversion = osVersion;
2379 }
2380
2381 // device type extraction
2382 var osMajorVersion = osVersion.split('.')[0];
2383 if (tablet || nexusTablet || iosdevice == 'ipad' || android && (osMajorVersion == 3 || osMajorVersion >= 4 && !mobile) || result.silk) {
2384 result.tablet = t;
2385 } else if (mobile || iosdevice == 'iphone' || iosdevice == 'ipod' || android || nexusMobile || result.blackberry || result.webos || result.bada) {
2386 result.mobile = t;
2387 }
2388
2389 // Graded Browser Support
2390 // http://developer.yahoo.com/yui/articles/gbs
2391 if (result.msedge || result.msie && result.version >= 10 || result.yandexbrowser && result.version >= 15 || result.vivaldi && result.version >= 1.0 || result.chrome && result.version >= 20 || result.firefox && result.version >= 20.0 || result.safari && result.version >= 6 || result.opera && result.version >= 10.0 || result.ios && result.osversion && result.osversion.split(".")[0] >= 6 || result.blackberry && result.version >= 10.1 || result.chromium && result.version >= 20) {
2392 result.a = t;
2393 } else if (result.msie && result.version < 10 || result.chrome && result.version < 20 || result.firefox && result.version < 20.0 || result.safari && result.version < 6 || result.opera && result.version < 10.0 || result.ios && result.osversion && result.osversion.split(".")[0] < 6 || result.chromium && result.version < 20) {
2394 result.c = t;
2395 } else result.x = t;
2396
2397 return result;
2398 }
2399
2400 var bowser = detect(typeof navigator !== 'undefined' ? navigator.userAgent : '');
2401
2402 bowser.test = function (browserList) {
2403 for (var i = 0; i < browserList.length; ++i) {
2404 var browserItem = browserList[i];
2405 if (typeof browserItem === 'string') {
2406 if (browserItem in bowser) {
2407 return true;
2408 }
2409 }
2410 }
2411 return false;
2412 };
2413
2414 /**
2415 * Get version precisions count
2416 *
2417 * @example
2418 * getVersionPrecision("1.10.3") // 3
2419 *
2420 * @param {string} version
2421 * @return {number}
2422 */
2423 function getVersionPrecision(version) {
2424 return version.split(".").length;
2425 }
2426
2427 /**
2428 * Array::map polyfill
2429 *
2430 * @param {Array} arr
2431 * @param {Function} iterator
2432 * @return {Array}
2433 */
2434 function map(arr, iterator) {
2435 var result = [],
2436 i;
2437 if (Array.prototype.map) {
2438 return Array.prototype.map.call(arr, iterator);
2439 }
2440 for (i = 0; i < arr.length; i++) {
2441 result = iterator(arr[i]);
2442 }
2443 return result;
2444 }
2445
2446 /**
2447 * Calculate browser version weight
2448 *
2449 * @example
2450 * compareVersions(['1.10.2.1', '1.8.2.1.90']) // 1
2451 * compareVersions(['1.010.2.1', '1.09.2.1.90']); // 1
2452 * compareVersions(['1.10.2.1', '1.10.2.1']); // 0
2453 * compareVersions(['1.10.2.1', '1.0800.2']); // -1
2454 *
2455 * @param {Array<String>} versions versions to compare
2456 * @return {Number} comparison result
2457 */
2458 function compareVersions(versions) {
2459 // 1) get common precision for both versions, for example for "10.0" and "9" it should be 2
2460 var precision = Math.max(getVersionPrecision(versions[0]), getVersionPrecision(versions[1]));
2461 var chunks = map(versions, function (version) {
2462 var delta = precision - getVersionPrecision(version);
2463
2464 // 2) "9" -> "9.0" (for precision = 2)
2465 version = version + new Array(delta + 1).join(".0");
2466
2467 // 3) "9.0" -> ["000000000"", "000000009"]
2468 return map(version.split("."), function (chunk) {
2469 return new Array(20 - chunk.length).join("0") + chunk;
2470 }).reverse();
2471 });
2472
2473 // iterate in reverse order by reversed chunks array
2474 while (--precision >= 0) {
2475 // 4) compare: "000000009" > "000000010" = false (but "9" > "10" = true)
2476 if (chunks[0][precision] > chunks[1][precision]) {
2477 return 1;
2478 } else if (chunks[0][precision] === chunks[1][precision]) {
2479 if (precision === 0) {
2480 // all version chunks are same
2481 return 0;
2482 }
2483 } else {
2484 return -1;
2485 }
2486 }
2487 }
2488
2489 /**
2490 * Check if browser is unsupported
2491 *
2492 * @example
2493 * bowser.isUnsupportedBrowser({
2494 * msie: "10",
2495 * firefox: "23",
2496 * chrome: "29",
2497 * safari: "5.1",
2498 * opera: "16",
2499 * phantom: "534"
2500 * });
2501 *
2502 * @param {Object} minVersions map of minimal version to browser
2503 * @param {Boolean} [strictMode = false] flag to return false if browser wasn't found in map
2504 * @param {String} [ua] user agent string
2505 * @return {Boolean}
2506 */
2507 function isUnsupportedBrowser(minVersions, strictMode, ua) {
2508 var _bowser = bowser;
2509
2510 // make strictMode param optional with ua param usage
2511 if (typeof strictMode === 'string') {
2512 ua = strictMode;
2513 strictMode = void 0;
2514 }
2515
2516 if (strictMode === void 0) {
2517 strictMode = false;
2518 }
2519 if (ua) {
2520 _bowser = detect(ua);
2521 }
2522
2523 var version = "" + _bowser.version;
2524 for (var browser in minVersions) {
2525 if (minVersions.hasOwnProperty(browser)) {
2526 if (_bowser[browser]) {
2527 // browser version and min supported version.
2528 return compareVersions([version, minVersions[browser]]) < 0;
2529 }
2530 }
2531 }
2532
2533 return strictMode; // not found
2534 }
2535
2536 /**
2537 * Check if browser is supported
2538 *
2539 * @param {Object} minVersions map of minimal version to browser
2540 * @param {Boolean} [strictMode = false] flag to return false if browser wasn't found in map
2541 * @param {String} [ua] user agent string
2542 * @return {Boolean}
2543 */
2544 function check(minVersions, strictMode, ua) {
2545 return !isUnsupportedBrowser(minVersions, strictMode, ua);
2546 }
2547
2548 bowser.isUnsupportedBrowser = isUnsupportedBrowser;
2549 bowser.compareVersions = compareVersions;
2550 bowser.check = check;
2551
2552 /*
2553 * Set our detect method to the main bowser object so we can
2554 * reuse it to test other user agents.
2555 * This is needed to implement future tests.
2556 */
2557 bowser._detect = detect;
2558
2559 return bowser;
2560 });
2561
2562/***/ },
2563/* 30 */
2564/***/ function(module, exports) {
2565
2566 'use strict';
2567
2568 Object.defineProperty(exports, '__esModule', {
2569 value: true
2570 });
2571
2572 exports['default'] = function (_ref) {
2573 var browser = _ref.browser;
2574 var version = _ref.version;
2575 var prefix = _ref.prefix;
2576
2577 var prefixedKeyframes = 'keyframes';
2578
2579 if (browser === 'chrome' && version < 43 || (browser === 'safari' || browser === 'ios_saf') && version < 9 || browser === 'opera' && version < 30 || browser === 'android' && version <= 4.4 || browser === 'and_uc') {
2580 prefixedKeyframes = prefix.css + prefixedKeyframes;
2581 }
2582 return prefixedKeyframes;
2583 };
2584
2585 module.exports = exports['default'];
2586
2587/***/ },
2588/* 31 */
2589/***/ function(module, exports) {
2590
2591 // helper to capitalize strings
2592 "use strict";
2593
2594 Object.defineProperty(exports, "__esModule", {
2595 value: true
2596 });
2597
2598 exports["default"] = function (str) {
2599 return str.charAt(0).toUpperCase() + str.slice(1);
2600 };
2601
2602 module.exports = exports["default"];
2603
2604/***/ },
2605/* 32 */
2606/***/ function(module, exports) {
2607
2608 // leight polyfill for Object.assign
2609 "use strict";
2610
2611 Object.defineProperty(exports, "__esModule", {
2612 value: true
2613 });
2614
2615 exports["default"] = function (base) {
2616 var extend = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
2617
2618 Object.keys(extend).forEach(function (key) {
2619 return base[key] = extend[key];
2620 });
2621 return base;
2622 };
2623
2624 module.exports = exports["default"];
2625
2626/***/ },
2627/* 33 */
2628/***/ function(module, exports) {
2629
2630 "use strict";
2631
2632 Object.defineProperty(exports, "__esModule", {
2633 value: true
2634 });
2635 exports["default"] = { "chrome": { "transform": 35, "transformOrigin": 35, "transformOriginX": 35, "transformOriginY": 35, "backfaceVisibility": 35, "perspective": 35, "perspectiveOrigin": 35, "transformStyle": 35, "transformOriginZ": 35, "animation": 42, "animationDelay": 42, "animationDirection": 42, "animationFillMode": 42, "animationDuration": 42, "animationIterationCount": 42, "animationName": 42, "animationPlayState": 42, "animationTimingFunction": 42, "appearance": 52, "userSelect": 52, "fontKerning": 32, "textEmphasisPosition": 52, "textEmphasis": 52, "textEmphasisStyle": 52, "textEmphasisColor": 52, "boxDecorationBreak": 52, "clipPath": 52, "maskImage": 52, "maskMode": 52, "maskRepeat": 52, "maskPosition": 52, "maskClip": 52, "maskOrigin": 52, "maskSize": 52, "maskComposite": 52, "mask": 52, "maskBorderSource": 52, "maskBorderMode": 52, "maskBorderSlice": 52, "maskBorderWidth": 52, "maskBorderOutset": 52, "maskBorderRepeat": 52, "maskBorder": 52, "maskType": 52, "textDecorationStyle": 52, "textDecorationSkip": 52, "textDecorationLine": 52, "textDecorationColor": 52, "filter": 52, "fontFeatureSettings": 47, "breakAfter": 52, "breakBefore": 52, "breakInside": 52, "columnCount": 52, "columnFill": 52, "columnGap": 52, "columnRule": 52, "columnRuleColor": 52, "columnRuleStyle": 52, "columnRuleWidth": 52, "columns": 52, "columnSpan": 52, "columnWidth": 52 }, "safari": { "flex": 8, "flexBasis": 8, "flexDirection": 8, "flexGrow": 8, "flexFlow": 8, "flexShrink": 8, "flexWrap": 8, "alignContent": 8, "alignItems": 8, "alignSelf": 8, "justifyContent": 8, "order": 8, "transition": 6, "transitionDelay": 6, "transitionDuration": 6, "transitionProperty": 6, "transitionTimingFunction": 6, "transform": 8, "transformOrigin": 8, "transformOriginX": 8, "transformOriginY": 8, "backfaceVisibility": 8, "perspective": 8, "perspectiveOrigin": 8, "transformStyle": 8, "transformOriginZ": 8, "animation": 8, "animationDelay": 8, "animationDirection": 8, "animationFillMode": 8, "animationDuration": 8, "animationIterationCount": 8, "animationName": 8, "animationPlayState": 8, "animationTimingFunction": 8, "appearance": 9.1, "userSelect": 9.1, "backdropFilter": 9.1, "fontKerning": 9.1, "scrollSnapType": 9.1, "scrollSnapPointsX": 9.1, "scrollSnapPointsY": 9.1, "scrollSnapDestination": 9.1, "scrollSnapCoordinate": 9.1, "textEmphasisPosition": 7, "textEmphasis": 7, "textEmphasisStyle": 7, "textEmphasisColor": 7, "boxDecorationBreak": 9.1, "clipPath": 9.1, "maskImage": 9.1, "maskMode": 9.1, "maskRepeat": 9.1, "maskPosition": 9.1, "maskClip": 9.1, "maskOrigin": 9.1, "maskSize": 9.1, "maskComposite": 9.1, "mask": 9.1, "maskBorderSource": 9.1, "maskBorderMode": 9.1, "maskBorderSlice": 9.1, "maskBorderWidth": 9.1, "maskBorderOutset": 9.1, "maskBorderRepeat": 9.1, "maskBorder": 9.1, "maskType": 9.1, "textDecorationStyle": 9.1, "textDecorationSkip": 9.1, "textDecorationLine": 9.1, "textDecorationColor": 9.1, "shapeImageThreshold": 9.1, "shapeImageMargin": 9.1, "shapeImageOutside": 9.1, "filter": 9, "hyphens": 9.1, "flowInto": 9.1, "flowFrom": 9.1, "breakBefore": 8, "breakAfter": 8, "breakInside": 8, "regionFragment": 9.1, "columnCount": 8, "columnFill": 8, "columnGap": 8, "columnRule": 8, "columnRuleColor": 8, "columnRuleStyle": 8, "columnRuleWidth": 8, "columns": 8, "columnSpan": 8, "columnWidth": 8 }, "firefox": { "appearance": 47, "userSelect": 47, "boxSizing": 28, "textAlignLast": 47, "textDecorationStyle": 35, "textDecorationSkip": 35, "textDecorationLine": 35, "textDecorationColor": 35, "tabSize": 47, "hyphens": 42, "fontFeatureSettings": 33, "breakAfter": 47, "breakBefore": 47, "breakInside": 47, "columnCount": 47, "columnFill": 47, "columnGap": 47, "columnRule": 47, "columnRuleColor": 47, "columnRuleStyle": 47, "columnRuleWidth": 47, "columns": 47, "columnSpan": 47, "columnWidth": 47 }, "opera": { "flex": 16, "flexBasis": 16, "flexDirection": 16, "flexGrow": 16, "flexFlow": 16, "flexShrink": 16, "flexWrap": 16, "alignContent": 16, "alignItems": 16, "alignSelf": 16, "justifyContent": 16, "order": 16, "transform": 22, "transformOrigin": 22, "transformOriginX": 22, "transformOriginY": 22, "backfaceVisibility": 22, "perspective": 22, "perspectiveOrigin": 22, "transformStyle": 22, "transformOriginZ": 22, "animation": 29, "animationDelay": 29, "animationDirection": 29, "animationFillMode": 29, "animationDuration": 29, "animationIterationCount": 29, "animationName": 29, "animationPlayState": 29, "animationTimingFunction": 29, "appearance": 37, "userSelect": 37, "fontKerning": 19, "textEmphasisPosition": 37, "textEmphasis": 37, "textEmphasisStyle": 37, "textEmphasisColor": 37, "boxDecorationBreak": 37, "clipPath": 37, "maskImage": 37, "maskMode": 37, "maskRepeat": 37, "maskPosition": 37, "maskClip": 37, "maskOrigin": 37, "maskSize": 37, "maskComposite": 37, "mask": 37, "maskBorderSource": 37, "maskBorderMode": 37, "maskBorderSlice": 37, "maskBorderWidth": 37, "maskBorderOutset": 37, "maskBorderRepeat": 37, "maskBorder": 37, "maskType": 37, "filter": 37, "fontFeatureSettings": 37, "breakAfter": 37, "breakBefore": 37, "breakInside": 37, "columnCount": 37, "columnFill": 37, "columnGap": 37, "columnRule": 37, "columnRuleColor": 37, "columnRuleStyle": 37, "columnRuleWidth": 37, "columns": 37, "columnSpan": 37, "columnWidth": 37 }, "ie": { "gridTemplateRows": 11, "breakInside": 11, "transformOriginY": 9, "gridRowStart": 11, "gridColumn": 11, "regionFragment": 11, "breakBefore": 11, "userSelect": 11, "gridColumnEnd": 11, "gridRowEnd": 11, "gridTemplateColumns": 11, "gridColumnStart": 11, "gridArea": 11, "flexDirection": 10, "gridRowGap": 11, "gridTemplateAreas": 11, "gridAutoRows": 11, "gridRow": 11, "scrollSnapDestination": 11, "scrollSnapPointsY": 11, "touchAction": 10, "gridGap": 11, "gridColumnGap": 11, "wrapFlow": 11, "scrollSnapPointsX": 11, "flowFrom": 11, "transform": 9, "breakAfter": 11, "wrapMargin": 11, "scrollSnapCoordinate": 11, "flexWrap": 10, "scrollSnapType": 11, "flex": 10, "wrapThrough": 11, "gridAutoColumns": 11, "flexFlow": 10, "gridTemplate": 11, "hyphens": 11, "grid": 11, "transformOriginX": 9, "flowInto": 11, "transformOrigin": 9, "gridAutoFlow": 11, "textSizeAdjust": 11 }, "edge": { "userSelect": 14, "wrapFlow": 14, "wrapThrough": 14, "wrapMargin": 14, "scrollSnapType": 14, "scrollSnapPointsX": 14, "scrollSnapPointsY": 14, "scrollSnapDestination": 14, "scrollSnapCoordinate": 14, "hyphens": 14, "flowInto": 14, "flowFrom": 14, "breakBefore": 14, "breakAfter": 14, "breakInside": 14, "regionFragment": 14, "gridTemplateColumns": 14, "gridTemplateRows": 14, "gridTemplateAreas": 14, "gridTemplate": 14, "gridAutoColumns": 14, "gridAutoRows": 14, "gridAutoFlow": 14, "grid": 14, "gridRowStart": 14, "gridColumnStart": 14, "gridRowEnd": 14, "gridRow": 14, "gridColumn": 14, "gridColumnEnd": 14, "gridColumnGap": 14, "gridRowGap": 14, "gridArea": 14, "gridGap": 14 }, "ios_saf": { "flex": 8.1, "flexBasis": 8.1, "flexDirection": 8.1, "flexGrow": 8.1, "flexFlow": 8.1, "flexShrink": 8.1, "flexWrap": 8.1, "alignContent": 8.1, "alignItems": 8.1, "alignSelf": 8.1, "justifyContent": 8.1, "order": 8.1, "transition": 6, "transitionDelay": 6, "transitionDuration": 6, "transitionProperty": 6, "transitionTimingFunction": 6, "transform": 8.1, "transformOrigin": 8.1, "transformOriginX": 8.1, "transformOriginY": 8.1, "backfaceVisibility": 8.1, "perspective": 8.1, "perspectiveOrigin": 8.1, "transformStyle": 8.1, "transformOriginZ": 8.1, "animation": 8.1, "animationDelay": 8.1, "animationDirection": 8.1, "animationFillMode": 8.1, "animationDuration": 8.1, "animationIterationCount": 8.1, "animationName": 8.1, "animationPlayState": 8.1, "animationTimingFunction": 8.1, "appearance": 9.3, "userSelect": 9.3, "backdropFilter": 9.3, "fontKerning": 9.3, "scrollSnapType": 9.3, "scrollSnapPointsX": 9.3, "scrollSnapPointsY": 9.3, "scrollSnapDestination": 9.3, "scrollSnapCoordinate": 9.3, "boxDecorationBreak": 9.3, "clipPath": 9.3, "maskImage": 9.3, "maskMode": 9.3, "maskRepeat": 9.3, "maskPosition": 9.3, "maskClip": 9.3, "maskOrigin": 9.3, "maskSize": 9.3, "maskComposite": 9.3, "mask": 9.3, "maskBorderSource": 9.3, "maskBorderMode": 9.3, "maskBorderSlice": 9.3, "maskBorderWidth": 9.3, "maskBorderOutset": 9.3, "maskBorderRepeat": 9.3, "maskBorder": 9.3, "maskType": 9.3, "textSizeAdjust": 9.3, "textDecorationStyle": 9.3, "textDecorationSkip": 9.3, "textDecorationLine": 9.3, "textDecorationColor": 9.3, "shapeImageThreshold": 9.3, "shapeImageMargin": 9.3, "shapeImageOutside": 9.3, "filter": 9, "hyphens": 9.3, "flowInto": 9.3, "flowFrom": 9.3, "breakBefore": 8.1, "breakAfter": 8.1, "breakInside": 8.1, "regionFragment": 9.3, "columnCount": 8.1, "columnFill": 8.1, "columnGap": 8.1, "columnRule": 8.1, "columnRuleColor": 8.1, "columnRuleStyle": 8.1, "columnRuleWidth": 8.1, "columns": 8.1, "columnSpan": 8.1, "columnWidth": 8.1 }, "android": { "borderImage": 4.2, "borderImageOutset": 4.2, "borderImageRepeat": 4.2, "borderImageSlice": 4.2, "borderImageSource": 4.2, "borderImageWidth": 4.2, "flex": 4.2, "flexBasis": 4.2, "flexDirection": 4.2, "flexGrow": 4.2, "flexFlow": 4.2, "flexShrink": 4.2, "flexWrap": 4.2, "alignContent": 4.2, "alignItems": 4.2, "alignSelf": 4.2, "justifyContent": 4.2, "order": 4.2, "transition": 4.2, "transitionDelay": 4.2, "transitionDuration": 4.2, "transitionProperty": 4.2, "transitionTimingFunction": 4.2, "transform": 4.4, "transformOrigin": 4.4, "transformOriginX": 4.4, "transformOriginY": 4.4, "backfaceVisibility": 4.4, "perspective": 4.4, "perspectiveOrigin": 4.4, "transformStyle": 4.4, "transformOriginZ": 4.4, "animation": 4.4, "animationDelay": 4.4, "animationDirection": 4.4, "animationFillMode": 4.4, "animationDuration": 4.4, "animationIterationCount": 4.4, "animationName": 4.4, "animationPlayState": 4.4, "animationTimingFunction": 4.4, "appearance": 47, "userSelect": 47, "fontKerning": 4.4, "textEmphasisPosition": 47, "textEmphasis": 47, "textEmphasisStyle": 47, "textEmphasisColor": 47, "boxDecorationBreak": 47, "clipPath": 47, "maskImage": 47, "maskMode": 47, "maskRepeat": 47, "maskPosition": 47, "maskClip": 47, "maskOrigin": 47, "maskSize": 47, "maskComposite": 47, "mask": 47, "maskBorderSource": 47, "maskBorderMode": 47, "maskBorderSlice": 47, "maskBorderWidth": 47, "maskBorderOutset": 47, "maskBorderRepeat": 47, "maskBorder": 47, "maskType": 47, "filter": 47, "fontFeatureSettings": 47, "breakAfter": 47, "breakBefore": 47, "breakInside": 47, "columnCount": 47, "columnFill": 47, "columnGap": 47, "columnRule": 47, "columnRuleColor": 47, "columnRuleStyle": 47, "columnRuleWidth": 47, "columns": 47, "columnSpan": 47, "columnWidth": 47 }, "and_chr": { "appearance": 47, "userSelect": 47, "textEmphasisPosition": 47, "textEmphasis": 47, "textEmphasisStyle": 47, "textEmphasisColor": 47, "boxDecorationBreak": 47, "clipPath": 47, "maskImage": 47, "maskMode": 47, "maskRepeat": 47, "maskPosition": 47, "maskClip": 47, "maskOrigin": 47, "maskSize": 47, "maskComposite": 47, "mask": 47, "maskBorderSource": 47, "maskBorderMode": 47, "maskBorderSlice": 47, "maskBorderWidth": 47, "maskBorderOutset": 47, "maskBorderRepeat": 47, "maskBorder": 47, "maskType": 47, "textDecorationStyle": 47, "textDecorationSkip": 47, "textDecorationLine": 47, "textDecorationColor": 47, "filter": 47, "fontFeatureSettings": 47, "breakAfter": 47, "breakBefore": 47, "breakInside": 47, "columnCount": 47, "columnFill": 47, "columnGap": 47, "columnRule": 47, "columnRuleColor": 47, "columnRuleStyle": 47, "columnRuleWidth": 47, "columns": 47, "columnSpan": 47, "columnWidth": 47 }, "and_uc": { "flex": 9.9, "flexBasis": 9.9, "flexDirection": 9.9, "flexGrow": 9.9, "flexFlow": 9.9, "flexShrink": 9.9, "flexWrap": 9.9, "alignContent": 9.9, "alignItems": 9.9, "alignSelf": 9.9, "justifyContent": 9.9, "order": 9.9, "transition": 9.9, "transitionDelay": 9.9, "transitionDuration": 9.9, "transitionProperty": 9.9, "transitionTimingFunction": 9.9, "transform": 9.9, "transformOrigin": 9.9, "transformOriginX": 9.9, "transformOriginY": 9.9, "backfaceVisibility": 9.9, "perspective": 9.9, "perspectiveOrigin": 9.9, "transformStyle": 9.9, "transformOriginZ": 9.9, "animation": 9.9, "animationDelay": 9.9, "animationDirection": 9.9, "animationFillMode": 9.9, "animationDuration": 9.9, "animationIterationCount": 9.9, "animationName": 9.9, "animationPlayState": 9.9, "animationTimingFunction": 9.9, "appearance": 9.9, "userSelect": 9.9, "fontKerning": 9.9, "textEmphasisPosition": 9.9, "textEmphasis": 9.9, "textEmphasisStyle": 9.9, "textEmphasisColor": 9.9, "maskImage": 9.9, "maskMode": 9.9, "maskRepeat": 9.9, "maskPosition": 9.9, "maskClip": 9.9, "maskOrigin": 9.9, "maskSize": 9.9, "maskComposite": 9.9, "mask": 9.9, "maskBorderSource": 9.9, "maskBorderMode": 9.9, "maskBorderSlice": 9.9, "maskBorderWidth": 9.9, "maskBorderOutset": 9.9, "maskBorderRepeat": 9.9, "maskBorder": 9.9, "maskType": 9.9, "textSizeAdjust": 9.9, "filter": 9.9, "hyphens": 9.9, "flowInto": 9.9, "flowFrom": 9.9, "breakBefore": 9.9, "breakAfter": 9.9, "breakInside": 9.9, "regionFragment": 9.9, "fontFeatureSettings": 9.9, "columnCount": 9.9, "columnFill": 9.9, "columnGap": 9.9, "columnRule": 9.9, "columnRuleColor": 9.9, "columnRuleStyle": 9.9, "columnRuleWidth": 9.9, "columns": 9.9, "columnSpan": 9.9, "columnWidth": 9.9 }, "op_mini": { "borderImage": 5, "borderImageOutset": 5, "borderImageRepeat": 5, "borderImageSlice": 5, "borderImageSource": 5, "borderImageWidth": 5, "tabSize": 5, "objectFit": 5, "objectPosition": 5 } };
2636 module.exports = exports["default"];
2637
2638/***/ },
2639/* 34 */
2640/***/ function(module, exports, __webpack_require__) {
2641
2642 'use strict';
2643
2644 Object.defineProperty(exports, '__esModule', {
2645 value: true
2646 });
2647 exports['default'] = calc;
2648
2649 function _interopRequireDefault(obj) {
2650 return obj && obj.__esModule ? obj : { 'default': obj };
2651 }
2652
2653 function _defineProperty(obj, key, value) {
2654 if (key in obj) {
2655 Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
2656 } else {
2657 obj[key] = value;
2658 }return obj;
2659 }
2660
2661 var _utilsCamelToDashCase = __webpack_require__(35);
2662
2663 var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
2664
2665 function calc(_ref2) {
2666 var property = _ref2.property;
2667 var value = _ref2.value;
2668 var _ref2$browserInfo = _ref2.browserInfo;
2669 var browser = _ref2$browserInfo.browser;
2670 var version = _ref2$browserInfo.version;
2671 var css = _ref2.prefix.css;
2672 var keepUnprefixed = _ref2.keepUnprefixed;
2673
2674 if (typeof value === 'string' && value.indexOf('calc(') > -1 && (browser === 'firefox' && version < 15 || browser === 'chrome' && version < 25 || browser === 'safari' && version < 6.1 || browser === 'ios_saf' && version < 7)) {
2675 return _defineProperty({}, property, value.replace(/calc\(/g, css + 'calc(') + (keepUnprefixed ? ';' + (0, _utilsCamelToDashCase2['default'])(property) + ':' + value : ''));
2676 }
2677 }
2678
2679 module.exports = exports['default'];
2680
2681/***/ },
2682/* 35 */
2683/***/ function(module, exports) {
2684
2685 /**
2686 * Converts a camel-case string to a dash-case string
2687 * @param {string} str - str that gets converted to dash-case
2688 */
2689 'use strict';
2690
2691 Object.defineProperty(exports, '__esModule', {
2692 value: true
2693 });
2694
2695 exports['default'] = function (str) {
2696 return str.replace(/([a-z]|^)([A-Z])/g, function (match, p1, p2) {
2697 return p1 + '-' + p2.toLowerCase();
2698 }).replace('ms-', '-ms-');
2699 };
2700
2701 module.exports = exports['default'];
2702
2703/***/ },
2704/* 36 */
2705/***/ function(module, exports, __webpack_require__) {
2706
2707 'use strict';
2708
2709 Object.defineProperty(exports, '__esModule', {
2710 value: true
2711 });
2712 exports['default'] = cursor;
2713
2714 function _interopRequireDefault(obj) {
2715 return obj && obj.__esModule ? obj : { 'default': obj };
2716 }
2717
2718 var _utilsCamelToDashCase = __webpack_require__(35);
2719
2720 var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
2721
2722 var values = {
2723 'zoom-in': true,
2724 'zoom-out': true,
2725 'grab': true,
2726 'grabbing': true
2727 };
2728
2729 function cursor(_ref) {
2730 var property = _ref.property;
2731 var value = _ref.value;
2732 var _ref$browserInfo = _ref.browserInfo;
2733 var browser = _ref$browserInfo.browser;
2734 var version = _ref$browserInfo.version;
2735 var css = _ref.prefix.css;
2736 var keepUnprefixed = _ref.keepUnprefixed;
2737
2738 if (property === 'cursor' && values[value] && (browser === 'firefox' && version < 24 || browser === 'chrome' && version < 37 || browser === 'safari' && version < 9 || browser === 'opera' && version < 24)) {
2739 return {
2740 cursor: css + value + (keepUnprefixed ? ';' + (0, _utilsCamelToDashCase2['default'])(property) + ':' + value : '')
2741 };
2742 }
2743 }
2744
2745 module.exports = exports['default'];
2746
2747/***/ },
2748/* 37 */
2749/***/ function(module, exports, __webpack_require__) {
2750
2751 'use strict';
2752
2753 Object.defineProperty(exports, '__esModule', {
2754 value: true
2755 });
2756 exports['default'] = flex;
2757
2758 function _interopRequireDefault(obj) {
2759 return obj && obj.__esModule ? obj : { 'default': obj };
2760 }
2761
2762 var _utilsCamelToDashCase = __webpack_require__(35);
2763
2764 var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
2765
2766 var values = {
2767 'flex': true,
2768 'inline-flex': true
2769 };
2770
2771 function flex(_ref) {
2772 var property = _ref.property;
2773 var value = _ref.value;
2774 var _ref$browserInfo = _ref.browserInfo;
2775 var browser = _ref$browserInfo.browser;
2776 var version = _ref$browserInfo.version;
2777 var css = _ref.prefix.css;
2778 var keepUnprefixed = _ref.keepUnprefixed;
2779
2780 if (property === 'display' && values[value] && (browser === 'chrome' && version < 29 && version > 20 || (browser === 'safari' || browser === 'ios_saf') && version < 9 && version > 6 || browser === 'opera' && (version == 15 || version == 16))) {
2781 return {
2782 display: css + value + (keepUnprefixed ? ';' + (0, _utilsCamelToDashCase2['default'])(property) + ':' + value : '')
2783 };
2784 }
2785 }
2786
2787 module.exports = exports['default'];
2788
2789/***/ },
2790/* 38 */
2791/***/ function(module, exports, __webpack_require__) {
2792
2793 'use strict';
2794
2795 Object.defineProperty(exports, '__esModule', {
2796 value: true
2797 });
2798 exports['default'] = sizing;
2799
2800 function _interopRequireDefault(obj) {
2801 return obj && obj.__esModule ? obj : { 'default': obj };
2802 }
2803
2804 function _defineProperty(obj, key, value) {
2805 if (key in obj) {
2806 Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
2807 } else {
2808 obj[key] = value;
2809 }return obj;
2810 }
2811
2812 var _utilsCamelToDashCase = __webpack_require__(35);
2813
2814 var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
2815
2816 var properties = {
2817 maxHeight: true,
2818 maxWidth: true,
2819 width: true,
2820 height: true,
2821 columnWidth: true,
2822 minWidth: true,
2823 minHeight: true
2824 };
2825 var values = {
2826 'min-content': true,
2827 'max-content': true,
2828 'fill-available': true,
2829 'fit-content': true,
2830 'contain-floats': true
2831 };
2832
2833 function sizing(_ref2) {
2834 var property = _ref2.property;
2835 var value = _ref2.value;
2836 var css = _ref2.prefix.css;
2837 var keepUnprefixed = _ref2.keepUnprefixed;
2838
2839 // This might change in the future
2840 // Keep an eye on it
2841 if (properties[property] && values[value]) {
2842 return _defineProperty({}, property, css + value + (keepUnprefixed ? ';' + (0, _utilsCamelToDashCase2['default'])(property) + ':' + value : ''));
2843 }
2844 }
2845
2846 module.exports = exports['default'];
2847
2848/***/ },
2849/* 39 */
2850/***/ function(module, exports, __webpack_require__) {
2851
2852 'use strict';
2853
2854 Object.defineProperty(exports, '__esModule', {
2855 value: true
2856 });
2857 exports['default'] = gradient;
2858
2859 function _interopRequireDefault(obj) {
2860 return obj && obj.__esModule ? obj : { 'default': obj };
2861 }
2862
2863 function _defineProperty(obj, key, value) {
2864 if (key in obj) {
2865 Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
2866 } else {
2867 obj[key] = value;
2868 }return obj;
2869 }
2870
2871 var _utilsCamelToDashCase = __webpack_require__(35);
2872
2873 var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
2874
2875 var values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/;
2876
2877 function gradient(_ref2) {
2878 var property = _ref2.property;
2879 var value = _ref2.value;
2880 var _ref2$browserInfo = _ref2.browserInfo;
2881 var browser = _ref2$browserInfo.browser;
2882 var version = _ref2$browserInfo.version;
2883 var css = _ref2.prefix.css;
2884 var keepUnprefixed = _ref2.keepUnprefixed;
2885
2886 if (typeof value === 'string' && value.match(values) !== null && (browser === 'firefox' && version < 16 || browser === 'chrome' && version < 26 || (browser === 'safari' || browser === 'ios_saf') && version < 7 || (browser === 'opera' || browser === 'op_mini') && version < 12.1 || browser === 'android' && version < 4.4 || browser === 'and_uc')) {
2887 return _defineProperty({}, property, css + value + (keepUnprefixed ? ';' + (0, _utilsCamelToDashCase2['default'])(property) + ':' + value : ''));
2888 }
2889 }
2890
2891 module.exports = exports['default'];
2892
2893/***/ },
2894/* 40 */
2895/***/ function(module, exports, __webpack_require__) {
2896
2897 'use strict';
2898
2899 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
2900
2901 Object.defineProperty(exports, '__esModule', {
2902 value: true
2903 });
2904 exports['default'] = transition;
2905
2906 function _interopRequireDefault(obj) {
2907 return obj && obj.__esModule ? obj : { 'default': obj };
2908 }
2909
2910 function _defineProperty(obj, key, value) {
2911 if (key in obj) {
2912 Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
2913 } else {
2914 obj[key] = value;
2915 }return obj;
2916 }
2917
2918 var _utilsCamelToDashCase = __webpack_require__(35);
2919
2920 var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
2921
2922 var _utilsCapitalizeString = __webpack_require__(31);
2923
2924 var _utilsCapitalizeString2 = _interopRequireDefault(_utilsCapitalizeString);
2925
2926 var _utilsUnprefixProperty = __webpack_require__(41);
2927
2928 var _utilsUnprefixProperty2 = _interopRequireDefault(_utilsUnprefixProperty);
2929
2930 var properties = { transition: true, transitionProperty: true };
2931
2932 function transition(_ref2) {
2933 var property = _ref2.property;
2934 var value = _ref2.value;
2935 var css = _ref2.prefix.css;
2936 var requiresPrefix = _ref2.requiresPrefix;
2937 var keepUnprefixed = _ref2.keepUnprefixed;
2938
2939 // also check for already prefixed transitions
2940 var unprefixedProperty = (0, _utilsUnprefixProperty2['default'])(property);
2941 if (typeof value === 'string' && properties[unprefixedProperty]) {
2942 var _ret = function () {
2943 var requiresPrefixDashCased = Object.keys(requiresPrefix).map(function (prop) {
2944 return (0, _utilsCamelToDashCase2['default'])(prop);
2945 });
2946
2947 // only split multi values, not cubic beziers
2948 var multipleValues = value.split(/,(?![^()]*(?:\([^()]*\))?\))/g);
2949
2950 requiresPrefixDashCased.forEach(function (property) {
2951 multipleValues.forEach(function (val, index) {
2952 if (val.indexOf(property) > -1) {
2953 multipleValues[index] = val.replace(property, css + property) + (keepUnprefixed ? ',' + val : '');
2954 }
2955 });
2956 });
2957
2958 return {
2959 v: _defineProperty({}, property, multipleValues.join(','))
2960 };
2961 }();
2962
2963 if ((typeof _ret === 'undefined' ? 'undefined' : _typeof(_ret)) === 'object') return _ret.v;
2964 }
2965 }
2966
2967 module.exports = exports['default'];
2968
2969/***/ },
2970/* 41 */
2971/***/ function(module, exports) {
2972
2973 'use strict';
2974
2975 Object.defineProperty(exports, '__esModule', {
2976 value: true
2977 });
2978
2979 exports['default'] = function (property) {
2980 var unprefixed = property.replace(/^(ms|Webkit|Moz|O)/, '');
2981 return unprefixed.charAt(0).toLowerCase() + unprefixed.slice(1);
2982 };
2983
2984 module.exports = exports['default'];
2985
2986/***/ },
2987/* 42 */
2988/***/ function(module, exports, __webpack_require__) {
2989
2990 'use strict';
2991
2992 Object.defineProperty(exports, '__esModule', {
2993 value: true
2994 });
2995 exports['default'] = flexboxIE;
2996
2997 function _interopRequireDefault(obj) {
2998 return obj && obj.__esModule ? obj : { 'default': obj };
2999 }
3000
3001 function _defineProperty(obj, key, value) {
3002 if (key in obj) {
3003 Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
3004 } else {
3005 obj[key] = value;
3006 }return obj;
3007 }
3008
3009 var _utilsCamelToDashCase = __webpack_require__(35);
3010
3011 var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
3012
3013 var alternativeValues = {
3014 'space-around': 'distribute',
3015 'space-between': 'justify',
3016 'flex-start': 'start',
3017 'flex-end': 'end',
3018 flex: 'flexbox',
3019 'inline-flex': 'inline-flexbox'
3020 };
3021 var alternativeProps = {
3022 alignContent: 'msFlexLinePack',
3023 alignSelf: 'msFlexItemAlign',
3024 alignItems: 'msFlexAlign',
3025 justifyContent: 'msFlexPack',
3026 order: 'msFlexOrder',
3027 flexGrow: 'msFlexPositive',
3028 flexShrink: 'msFlexNegative',
3029 flexBasis: 'msPreferredSize'
3030 };
3031
3032 var properties = Object.keys(alternativeProps).reduce(function (result, prop) {
3033 result[prop] = true;
3034 return result;
3035 }, {});
3036
3037 function flexboxIE(_ref2) {
3038 var property = _ref2.property;
3039 var value = _ref2.value;
3040 var styles = _ref2.styles;
3041 var _ref2$browserInfo = _ref2.browserInfo;
3042 var browser = _ref2$browserInfo.browser;
3043 var version = _ref2$browserInfo.version;
3044 var css = _ref2.prefix.css;
3045 var keepUnprefixed = _ref2.keepUnprefixed;
3046
3047 if ((properties[property] || property === 'display' && typeof value === 'string' && value.indexOf('flex') > -1) && (browser === 'ie_mob' || browser === 'ie') && version == 10) {
3048 if (!keepUnprefixed) {
3049 delete styles[property];
3050 }
3051 if (property === 'display' && alternativeValues[value]) {
3052 return {
3053 display: css + alternativeValues[value] + (keepUnprefixed ? ';' + (0, _utilsCamelToDashCase2['default'])(property) + ':' + value : '')
3054 };
3055 }
3056 if (alternativeProps[property]) {
3057 return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);
3058 }
3059 }
3060 }
3061
3062 module.exports = exports['default'];
3063
3064/***/ },
3065/* 43 */
3066/***/ function(module, exports, __webpack_require__) {
3067
3068 'use strict';
3069
3070 Object.defineProperty(exports, '__esModule', {
3071 value: true
3072 });
3073 exports['default'] = flexboxOld;
3074
3075 function _interopRequireDefault(obj) {
3076 return obj && obj.__esModule ? obj : { 'default': obj };
3077 }
3078
3079 function _defineProperty(obj, key, value) {
3080 if (key in obj) {
3081 Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
3082 } else {
3083 obj[key] = value;
3084 }return obj;
3085 }
3086
3087 var _utilsCamelToDashCase = __webpack_require__(35);
3088
3089 var _utilsCamelToDashCase2 = _interopRequireDefault(_utilsCamelToDashCase);
3090
3091 var alternativeValues = {
3092 'space-around': 'justify',
3093 'space-between': 'justify',
3094 'flex-start': 'start',
3095 'flex-end': 'end',
3096 'wrap-reverse': 'multiple',
3097 wrap: 'multiple',
3098 flex: 'box',
3099 'inline-flex': 'inline-box'
3100 };
3101
3102 var alternativeProps = {
3103 alignItems: 'WebkitBoxAlign',
3104 justifyContent: 'WebkitBoxPack',
3105 flexWrap: 'WebkitBoxLines'
3106 };
3107
3108 var otherProps = ['alignContent', 'alignSelf', 'order', 'flexGrow', 'flexShrink', 'flexBasis', 'flexDirection'];
3109
3110 var properties = Object.keys(alternativeProps).concat(otherProps).reduce(function (result, prop) {
3111 result[prop] = true;
3112 return result;
3113 }, {});
3114
3115 function flexboxOld(_ref2) {
3116 var property = _ref2.property;
3117 var value = _ref2.value;
3118 var styles = _ref2.styles;
3119 var _ref2$browserInfo = _ref2.browserInfo;
3120 var browser = _ref2$browserInfo.browser;
3121 var version = _ref2$browserInfo.version;
3122 var css = _ref2.prefix.css;
3123 var keepUnprefixed = _ref2.keepUnprefixed;
3124
3125 if ((properties[property] || property === 'display' && typeof value === 'string' && value.indexOf('flex') > -1) && (browser === 'firefox' && version < 22 || browser === 'chrome' && version < 21 || (browser === 'safari' || browser === 'ios_saf') && version <= 6.1 || browser === 'android' && version < 4.4 || browser === 'and_uc')) {
3126 if (!keepUnprefixed) {
3127 delete styles[property];
3128 }
3129 if (property === 'flexDirection') {
3130 return {
3131 WebkitBoxOrient: value.indexOf('column') > -1 ? 'vertical' : 'horizontal',
3132 WebkitBoxDirection: value.indexOf('reverse') > -1 ? 'reverse' : 'normal'
3133 };
3134 }
3135 if (property === 'display' && alternativeValues[value]) {
3136 return {
3137 display: css + alternativeValues[value] + (keepUnprefixed ? ';' + (0, _utilsCamelToDashCase2['default'])(property) + ':' + value : '')
3138 };
3139 }
3140 if (alternativeProps[property]) {
3141 return _defineProperty({}, alternativeProps[property], alternativeValues[value] || value);
3142 }
3143 }
3144 }
3145
3146 module.exports = exports['default'];
3147
3148/***/ },
3149/* 44 */
3150/***/ function(module, exports, __webpack_require__) {
3151
3152 'use strict';
3153
3154 Object.defineProperty(exports, "__esModule", {
3155 value: true
3156 });
3157
3158 var _getStateKey = __webpack_require__(45);
3159
3160 var _getStateKey2 = _interopRequireDefault(_getStateKey);
3161
3162 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3163
3164 var getState = function getState(state, elementKey, value) {
3165 var key = (0, _getStateKey2.default)(elementKey);
3166
3167 return !!state && !!state._radiumStyleState && !!state._radiumStyleState[key] && state._radiumStyleState[key][value];
3168 };
3169
3170 exports.default = getState;
3171 module.exports = exports['default'];
3172
3173/***/ },
3174/* 45 */
3175/***/ function(module, exports) {
3176
3177 'use strict';
3178
3179 Object.defineProperty(exports, "__esModule", {
3180 value: true
3181 });
3182
3183
3184 var getStateKey = function getStateKey(elementKey) {
3185 return elementKey === null || elementKey === undefined ? 'main' : elementKey.toString();
3186 };
3187
3188 exports.default = getStateKey;
3189 module.exports = exports['default'];
3190
3191/***/ },
3192/* 46 */
3193/***/ function(module, exports) {
3194
3195 'use strict';
3196
3197 Object.defineProperty(exports, "__esModule", {
3198 value: true
3199 });
3200 exports.default = hash;
3201
3202
3203 // a simple djb2 hash based on hash-string:
3204 // https://github.com/MatthewBarker/hash-string/blob/master/source/hash-string.js
3205 // returns a hex-encoded hash
3206 function hash(text) {
3207 if (!text) {
3208 return '';
3209 }
3210
3211 var hashValue = 5381;
3212 var index = text.length - 1;
3213
3214 while (index) {
3215 hashValue = hashValue * 33 ^ text.charCodeAt(index);
3216 index -= 1;
3217 }
3218
3219 return (hashValue >>> 0).toString(16);
3220 }
3221 module.exports = exports['default'];
3222
3223/***/ },
3224/* 47 */
3225/***/ function(module, exports) {
3226
3227 'use strict';
3228
3229 Object.defineProperty(exports, "__esModule", {
3230 value: true
3231 });
3232
3233 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
3234
3235 exports.isNestedStyle = isNestedStyle;
3236 exports.mergeStyles = mergeStyles;
3237 function isNestedStyle(value) {
3238 // Don't merge objects overriding toString, since they should be converted
3239 // to string values.
3240 return value && value.constructor === Object && value.toString === Object.prototype.toString;
3241 }
3242
3243 // Merge style objects. Deep merge plain object values.
3244 function mergeStyles(styles) {
3245 var result = {};
3246
3247 styles.forEach(function (style) {
3248 if (!style || (typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object') {
3249 return;
3250 }
3251
3252 if (Array.isArray(style)) {
3253 style = mergeStyles(style);
3254 }
3255
3256 Object.keys(style).forEach(function (key) {
3257 // Simple case, nothing nested
3258 if (!isNestedStyle(style[key]) || !isNestedStyle(result[key])) {
3259 result[key] = style[key];
3260 return;
3261 }
3262
3263 // If nested media, don't merge the nested styles, append a space to the
3264 // end (benign when converted to CSS). This way we don't end up merging
3265 // media queries that appear later in the chain with those that appear
3266 // earlier.
3267 if (key.indexOf('@media') === 0) {
3268 var newKey = key;
3269 while (true) {
3270 // eslint-disable-line no-constant-condition
3271 newKey += ' ';
3272 if (!result[newKey]) {
3273 result[newKey] = style[key];
3274 return;
3275 }
3276 }
3277 }
3278
3279 // Merge all other nested styles recursively
3280 result[key] = mergeStyles([result[key], style[key]]);
3281 });
3282 });
3283
3284 return result;
3285 }
3286
3287/***/ },
3288/* 48 */
3289/***/ function(module, exports, __webpack_require__) {
3290
3291 'use strict';
3292
3293 Object.defineProperty(exports, "__esModule", {
3294 value: true
3295 });
3296
3297 var _checkPropsPlugin = __webpack_require__(49);
3298
3299 var _checkPropsPlugin2 = _interopRequireDefault(_checkPropsPlugin);
3300
3301 var _keyframesPlugin = __webpack_require__(50);
3302
3303 var _keyframesPlugin2 = _interopRequireDefault(_keyframesPlugin);
3304
3305 var _mergeStyleArrayPlugin = __webpack_require__(51);
3306
3307 var _mergeStyleArrayPlugin2 = _interopRequireDefault(_mergeStyleArrayPlugin);
3308
3309 var _prefixPlugin = __webpack_require__(52);
3310
3311 var _prefixPlugin2 = _interopRequireDefault(_prefixPlugin);
3312
3313 var _removeNestedStylesPlugin = __webpack_require__(53);
3314
3315 var _removeNestedStylesPlugin2 = _interopRequireDefault(_removeNestedStylesPlugin);
3316
3317 var _resolveInteractionStylesPlugin = __webpack_require__(54);
3318
3319 var _resolveInteractionStylesPlugin2 = _interopRequireDefault(_resolveInteractionStylesPlugin);
3320
3321 var _resolveMediaQueriesPlugin = __webpack_require__(56);
3322
3323 var _resolveMediaQueriesPlugin2 = _interopRequireDefault(_resolveMediaQueriesPlugin);
3324
3325 var _visitedPlugin = __webpack_require__(57);
3326
3327 var _visitedPlugin2 = _interopRequireDefault(_visitedPlugin);
3328
3329 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3330
3331 exports.default = {
3332 checkProps: _checkPropsPlugin2.default,
3333 keyframes: _keyframesPlugin2.default,
3334 mergeStyleArray: _mergeStyleArrayPlugin2.default,
3335 prefix: _prefixPlugin2.default,
3336 removeNestedStyles: _removeNestedStylesPlugin2.default,
3337 resolveInteractionStyles: _resolveInteractionStylesPlugin2.default,
3338 resolveMediaQueries: _resolveMediaQueriesPlugin2.default,
3339 visited: _visitedPlugin2.default
3340 };
3341 /* eslint-disable block-scoped-const */
3342
3343 module.exports = exports['default'];
3344
3345/***/ },
3346/* 49 */
3347/***/ function(module, exports, __webpack_require__) {
3348
3349 /* WEBPACK VAR INJECTION */(function(process) {'use strict';
3350
3351 Object.defineProperty(exports, "__esModule", {
3352 value: true
3353 });
3354
3355 var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
3356
3357 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
3358
3359 var _checkProps = function checkProps() {};
3360
3361 if (process.env.NODE_ENV !== 'production') {
3362 (function () {
3363 // Warn if you use longhand and shorthand properties in the same style
3364 // object.
3365 // https://developer.mozilla.org/en-US/docs/Web/CSS/Shorthand_properties
3366
3367 var shorthandPropertyExpansions = {
3368 'background': ['backgroundAttachment', 'backgroundBlendMode', 'backgroundClip', 'backgroundColor', 'backgroundImage', 'backgroundOrigin', 'backgroundPosition', 'backgroundPositionX', 'backgroundPositionY', 'backgroundRepeat', 'backgroundRepeatX', 'backgroundRepeatY', 'backgroundSize'],
3369 'border': ['borderBottom', 'borderBottomColor', 'borderBottomStyle', 'borderBottomWidth', 'borderColor', 'borderLeft', 'borderLeftColor', 'borderLeftStyle', 'borderLeftWidth', 'borderRight', 'borderRightColor', 'borderRightStyle', 'borderRightWidth', 'borderStyle', 'borderTop', 'borderTopColor', 'borderTopStyle', 'borderTopWidth', 'borderWidth'],
3370 'borderImage': ['borderImageOutset', 'borderImageRepeat', 'borderImageSlice', 'borderImageSource', 'borderImageWidth'],
3371 'borderRadius': ['borderBottomLeftRadius', 'borderBottomRightRadius', 'borderTopLeftRadius', 'borderTopRightRadius'],
3372 'font': ['fontFamily', 'fontKerning', 'fontSize', 'fontStretch', 'fontStyle', 'fontVariant', 'fontVariantLigatures', 'fontWeight', 'lineHeight'],
3373 'listStyle': ['listStyleImage', 'listStylePosition', 'listStyleType'],
3374 'margin': ['marginBottom', 'marginLeft', 'marginRight', 'marginTop'],
3375 'padding': ['paddingBottom', 'paddingLeft', 'paddingRight', 'paddingTop'],
3376 'transition': ['transitionDelay', 'transitionDuration', 'transitionProperty', 'transitionTimingFunction']
3377 };
3378
3379 _checkProps = function checkProps(config) {
3380 var componentName = config.componentName;
3381 var style = config.style;
3382
3383 if ((typeof style === 'undefined' ? 'undefined' : _typeof(style)) !== 'object' || !style) {
3384 return;
3385 }
3386
3387 var styleKeys = Object.keys(style);
3388 styleKeys.forEach(function (styleKey) {
3389 if (Array.isArray(shorthandPropertyExpansions[styleKey]) && shorthandPropertyExpansions[styleKey].some(function (sp) {
3390 return styleKeys.indexOf(sp) !== -1;
3391 })) {
3392 if (process.env.NODE_ENV !== 'production') {
3393 /* eslint-disable no-console */
3394 console.warn('Radium: property "' + styleKey + '" in style object', style, ': do not mix longhand and ' + 'shorthand properties in the same style object. Check the render ' + 'method of ' + componentName + '.', 'See https://github.com/FormidableLabs/radium/issues/95 for more ' + 'information.');
3395 /* eslint-enable no-console */
3396 }
3397 }
3398 });
3399
3400 styleKeys.forEach(function (k) {
3401 return _checkProps(_extends({}, config, { style: style[k] }));
3402 });
3403 return;
3404 };
3405 })();
3406 }
3407
3408 exports.default = _checkProps;
3409 module.exports = exports['default'];
3410 /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(1)))
3411
3412/***/ },
3413/* 50 */
3414/***/ function(module, exports) {
3415
3416 'use strict';
3417
3418 Object.defineProperty(exports, "__esModule", {
3419 value: true
3420 });
3421 exports.default = keyframesPlugin;
3422 function keyframesPlugin(_ref // eslint-disable-line no-shadow
3423 ) {
3424 var addCSS = _ref.addCSS;
3425 var config = _ref.config;
3426 var style = _ref.style;
3427
3428 var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {
3429 var value = style[key];
3430 if (key === 'animationName' && value && value.__radiumKeyframes) {
3431 var keyframesValue = value;
3432
3433 var _keyframesValue$__pro = keyframesValue.__process(config.userAgent);
3434
3435 var animationName = _keyframesValue$__pro.animationName;
3436 var css = _keyframesValue$__pro.css;
3437
3438 addCSS(css);
3439 value = animationName;
3440 }
3441
3442 newStyleInProgress[key] = value;
3443 return newStyleInProgress;
3444 }, {});
3445 return { style: newStyle };
3446 }
3447 module.exports = exports['default'];
3448
3449/***/ },
3450/* 51 */
3451/***/ function(module, exports) {
3452
3453 'use strict';
3454
3455 Object.defineProperty(exports, "__esModule", {
3456 value: true
3457 });
3458
3459
3460 // Convenient syntax for multiple styles: `style={[style1, style2, etc]}`
3461 // Ignores non-objects, so you can do `this.state.isCool && styles.cool`.
3462 var mergeStyleArrayPlugin = function mergeStyleArrayPlugin(_ref) {
3463 var style = _ref.style;
3464 var mergeStyles = _ref.mergeStyles;
3465 // eslint-disable-line no-shadow
3466 var newStyle = Array.isArray(style) ? mergeStyles(style) : style;
3467 return { style: newStyle };
3468 };
3469
3470 exports.default = mergeStyleArrayPlugin;
3471 module.exports = exports['default'];
3472
3473/***/ },
3474/* 52 */
3475/***/ function(module, exports, __webpack_require__) {
3476
3477 'use strict';
3478
3479 Object.defineProperty(exports, "__esModule", {
3480 value: true
3481 });
3482 exports.default = prefixPlugin;
3483
3484 var _prefixer = __webpack_require__(11);
3485
3486 function prefixPlugin(_ref // eslint-disable-line no-shadow
3487 ) {
3488 var config = _ref.config;
3489 var style = _ref.style;
3490
3491 var newStyle = (0, _prefixer.getPrefixedStyle)(style, config.userAgent);
3492 return { style: newStyle };
3493 }
3494 module.exports = exports['default'];
3495
3496/***/ },
3497/* 53 */
3498/***/ function(module, exports) {
3499
3500 'use strict';
3501
3502 Object.defineProperty(exports, "__esModule", {
3503 value: true
3504 });
3505 exports.default = removeNestedStyles;
3506 function removeNestedStyles(_ref) {
3507 var isNestedStyle = _ref.isNestedStyle;
3508 var style = _ref.style;
3509 // eslint-disable-line no-shadow
3510 var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {
3511 var value = style[key];
3512 if (!isNestedStyle(value)) {
3513 newStyleInProgress[key] = value;
3514 }
3515 return newStyleInProgress;
3516 }, {});
3517
3518 return {
3519 style: newStyle
3520 };
3521 }
3522 module.exports = exports['default'];
3523
3524/***/ },
3525/* 54 */
3526/***/ function(module, exports, __webpack_require__) {
3527
3528 'use strict';
3529
3530 Object.defineProperty(exports, "__esModule", {
3531 value: true
3532 });
3533
3534 var _mouseUpListener = __webpack_require__(55);
3535
3536 var _mouseUpListener2 = _interopRequireDefault(_mouseUpListener);
3537
3538 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3539
3540 var _isInteractiveStyleField = function _isInteractiveStyleField(styleFieldName) {
3541 return styleFieldName === ':hover' || styleFieldName === ':active' || styleFieldName === ':focus';
3542 };
3543
3544 var resolveInteractionStyles = function resolveInteractionStyles(config) {
3545 var ExecutionEnvironment = config.ExecutionEnvironment;
3546 var getComponentField = config.getComponentField;
3547 var getState = config.getState;
3548 var mergeStyles = config.mergeStyles;
3549 var props = config.props;
3550 var setState = config.setState;
3551 var style = config.style;
3552
3553
3554 var newComponentFields = {};
3555 var newProps = {};
3556
3557 // Only add handlers if necessary
3558 if (style[':hover']) {
3559 (function () {
3560 // Always call the existing handler if one is already defined.
3561 // This code, and the very similar ones below, could be abstracted a bit
3562 // more, but it hurts readability IMO.
3563 var existingOnMouseEnter = props.onMouseEnter;
3564 newProps.onMouseEnter = function (e) {
3565 existingOnMouseEnter && existingOnMouseEnter(e);
3566 setState(':hover', true);
3567 };
3568
3569 var existingOnMouseLeave = props.onMouseLeave;
3570 newProps.onMouseLeave = function (e) {
3571 existingOnMouseLeave && existingOnMouseLeave(e);
3572 setState(':hover', false);
3573 };
3574 })();
3575 }
3576
3577 if (style[':active']) {
3578 (function () {
3579 var existingOnMouseDown = props.onMouseDown;
3580 newProps.onMouseDown = function (e) {
3581 existingOnMouseDown && existingOnMouseDown(e);
3582 newComponentFields._lastMouseDown = Date.now();
3583 setState(':active', 'viamousedown');
3584 };
3585
3586 var existingOnKeyDown = props.onKeyDown;
3587 newProps.onKeyDown = function (e) {
3588 existingOnKeyDown && existingOnKeyDown(e);
3589 if (e.key === ' ' || e.key === 'Enter') {
3590 setState(':active', 'viakeydown');
3591 }
3592 };
3593
3594 var existingOnKeyUp = props.onKeyUp;
3595 newProps.onKeyUp = function (e) {
3596 existingOnKeyUp && existingOnKeyUp(e);
3597 if (e.key === ' ' || e.key === 'Enter') {
3598 setState(':active', false);
3599 }
3600 };
3601 })();
3602 }
3603
3604 if (style[':focus']) {
3605 (function () {
3606 var existingOnFocus = props.onFocus;
3607 newProps.onFocus = function (e) {
3608 existingOnFocus && existingOnFocus(e);
3609 setState(':focus', true);
3610 };
3611
3612 var existingOnBlur = props.onBlur;
3613 newProps.onBlur = function (e) {
3614 existingOnBlur && existingOnBlur(e);
3615 setState(':focus', false);
3616 };
3617 })();
3618 }
3619
3620 if (style[':active'] && !getComponentField('_radiumMouseUpListener') && ExecutionEnvironment.canUseEventListeners) {
3621 newComponentFields._radiumMouseUpListener = _mouseUpListener2.default.subscribe(function () {
3622 Object.keys(getComponentField('state')._radiumStyleState).forEach(function (key) {
3623 if (getState(':active', key) === 'viamousedown') {
3624 setState(':active', false, key);
3625 }
3626 });
3627 });
3628 }
3629
3630 // Merge the styles in the order they were defined
3631 var interactionStyles = props.disabled ? [style[':disabled']] : Object.keys(style).filter(function (name) {
3632 return _isInteractiveStyleField(name) && getState(name);
3633 }).map(function (name) {
3634 return style[name];
3635 });
3636
3637 var newStyle = mergeStyles([style].concat(interactionStyles));
3638
3639 // Remove interactive styles
3640 newStyle = Object.keys(newStyle).reduce(function (styleWithoutInteractions, name) {
3641 if (!_isInteractiveStyleField(name) && name !== ':disabled') {
3642 styleWithoutInteractions[name] = newStyle[name];
3643 }
3644 return styleWithoutInteractions;
3645 }, {});
3646
3647 return {
3648 componentFields: newComponentFields,
3649 props: newProps,
3650 style: newStyle
3651 };
3652 };
3653
3654 exports.default = resolveInteractionStyles;
3655 module.exports = exports['default'];
3656
3657/***/ },
3658/* 55 */
3659/***/ function(module, exports) {
3660
3661 'use strict';
3662
3663 Object.defineProperty(exports, "__esModule", {
3664 value: true
3665 });
3666
3667
3668 var _callbacks = [];
3669 var _mouseUpListenerIsActive = false;
3670
3671 function _handleMouseUp() {
3672 _callbacks.forEach(function (callback) {
3673 callback();
3674 });
3675 }
3676
3677 var subscribe = function subscribe(callback) {
3678 if (_callbacks.indexOf(callback) === -1) {
3679 _callbacks.push(callback);
3680 }
3681
3682 if (!_mouseUpListenerIsActive) {
3683 window.addEventListener('mouseup', _handleMouseUp);
3684 _mouseUpListenerIsActive = true;
3685 }
3686
3687 return {
3688 remove: function remove() {
3689 var index = _callbacks.indexOf(callback);
3690 _callbacks.splice(index, 1);
3691
3692 if (_callbacks.length === 0 && _mouseUpListenerIsActive) {
3693 window.removeEventListener('mouseup', _handleMouseUp);
3694 _mouseUpListenerIsActive = false;
3695 }
3696 }
3697 };
3698 };
3699
3700 exports.default = {
3701 subscribe: subscribe,
3702 __triggerForTests: _handleMouseUp
3703 };
3704 module.exports = exports['default'];
3705
3706/***/ },
3707/* 56 */
3708/***/ function(module, exports) {
3709
3710 'use strict';
3711
3712 Object.defineProperty(exports, "__esModule", {
3713 value: true
3714 });
3715
3716 var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
3717
3718 exports.default = resolveMediaQueries;
3719
3720
3721 var _windowMatchMedia = void 0;
3722 function _getWindowMatchMedia(ExecutionEnvironment) {
3723 if (_windowMatchMedia === undefined) {
3724 _windowMatchMedia = !!ExecutionEnvironment.canUseDOM && !!window && !!window.matchMedia && function (mediaQueryString) {
3725 return window.matchMedia(mediaQueryString);
3726 } || null;
3727 }
3728 return _windowMatchMedia;
3729 }
3730
3731 function _filterObject(obj, predicate) {
3732 return Object.keys(obj).filter(function (key) {
3733 return predicate(obj[key], key);
3734 }).reduce(function (result, key) {
3735 result[key] = obj[key];
3736 return result;
3737 }, {});
3738 }
3739
3740 function _removeMediaQueries(style) {
3741 return Object.keys(style).reduce(function (styleWithoutMedia, key) {
3742 if (key.indexOf('@media') !== 0) {
3743 styleWithoutMedia[key] = style[key];
3744 }
3745 return styleWithoutMedia;
3746 }, {});
3747 }
3748
3749 function _topLevelRulesToCSS(_ref) {
3750 var addCSS = _ref.addCSS;
3751 var appendImportantToEachValue = _ref.appendImportantToEachValue;
3752 var cssRuleSetToString = _ref.cssRuleSetToString;
3753 var hash = _ref.hash;
3754 var isNestedStyle = _ref.isNestedStyle;
3755 var style = _ref.style;
3756 var userAgent = _ref.userAgent;
3757
3758 var className = '';
3759 Object.keys(style).filter(function (name) {
3760 return name.indexOf('@media') === 0;
3761 }).map(function (query) {
3762 var topLevelRules = appendImportantToEachValue(_filterObject(style[query], function (value) {
3763 return !isNestedStyle(value);
3764 }));
3765
3766 if (!Object.keys(topLevelRules).length) {
3767 return;
3768 }
3769
3770 var ruleCSS = cssRuleSetToString('', topLevelRules, userAgent);
3771
3772 // CSS classes cannot start with a number
3773 var mediaQueryClassName = 'rmq-' + hash(query + ruleCSS);
3774 var css = query + '{ .' + mediaQueryClassName + ruleCSS + '}';
3775
3776 addCSS(css);
3777
3778 className += (className ? ' ' : '') + mediaQueryClassName;
3779 });
3780 return className;
3781 }
3782
3783 function _subscribeToMediaQuery(_ref2) {
3784 var listener = _ref2.listener;
3785 var listenersByQuery = _ref2.listenersByQuery;
3786 var matchMedia = _ref2.matchMedia;
3787 var mediaQueryListsByQuery = _ref2.mediaQueryListsByQuery;
3788 var query = _ref2.query;
3789
3790 query = query.replace('@media ', '');
3791
3792 var mql = mediaQueryListsByQuery[query];
3793 if (!mql && matchMedia) {
3794 mediaQueryListsByQuery[query] = mql = matchMedia(query);
3795 }
3796
3797 if (!listenersByQuery || !listenersByQuery[query]) {
3798 mql.addListener(listener);
3799
3800 listenersByQuery[query] = {
3801 remove: function remove() {
3802 mql.removeListener(listener);
3803 }
3804 };
3805 }
3806 return mql;
3807 }
3808
3809 function resolveMediaQueries(_ref3) {
3810 var ExecutionEnvironment = _ref3.ExecutionEnvironment;
3811 var addCSS = _ref3.addCSS;
3812 var appendImportantToEachValue = _ref3.appendImportantToEachValue;
3813 var config = _ref3.config;
3814 var cssRuleSetToString = _ref3.cssRuleSetToString;
3815 var getComponentField = _ref3.getComponentField;
3816 var getGlobalState = _ref3.getGlobalState;
3817 var hash = _ref3.hash;
3818 var isNestedStyle = _ref3.isNestedStyle;
3819 var mergeStyles = _ref3.mergeStyles;
3820 var props = _ref3.props;
3821 var setState = _ref3.setState;
3822 var style = _ref3.style;
3823 // eslint-disable-line no-shadow
3824 var newStyle = _removeMediaQueries(style);
3825 var mediaQueryClassNames = _topLevelRulesToCSS({
3826 addCSS: addCSS,
3827 appendImportantToEachValue: appendImportantToEachValue,
3828 cssRuleSetToString: cssRuleSetToString,
3829 hash: hash,
3830 isNestedStyle: isNestedStyle,
3831 style: style,
3832 userAgent: config.userAgent
3833 });
3834
3835 var newProps = mediaQueryClassNames ? {
3836 className: mediaQueryClassNames + (props.className ? ' ' + props.className : '')
3837 } : null;
3838
3839 var matchMedia = config.matchMedia || _getWindowMatchMedia(ExecutionEnvironment);
3840
3841 if (!matchMedia) {
3842 return {
3843 props: newProps,
3844 style: newStyle
3845 };
3846 }
3847
3848 var listenersByQuery = _extends({}, getComponentField('_radiumMediaQueryListenersByQuery'));
3849 var mediaQueryListsByQuery = getGlobalState('mediaQueryListsByQuery') || {};
3850
3851 Object.keys(style).filter(function (name) {
3852 return name.indexOf('@media') === 0;
3853 }).map(function (query) {
3854 var nestedRules = _filterObject(style[query], isNestedStyle);
3855
3856 if (!Object.keys(nestedRules).length) {
3857 return;
3858 }
3859
3860 var mql = _subscribeToMediaQuery({
3861 listener: function listener() {
3862 return setState(query, mql.matches, '_all');
3863 },
3864 listenersByQuery: listenersByQuery,
3865 matchMedia: matchMedia,
3866 mediaQueryListsByQuery: mediaQueryListsByQuery,
3867 query: query
3868 });
3869
3870 // Apply media query states
3871 if (mql.matches) {
3872 newStyle = mergeStyles([newStyle, nestedRules]);
3873 }
3874 });
3875
3876 return {
3877 componentFields: {
3878 _radiumMediaQueryListenersByQuery: listenersByQuery
3879 },
3880 globalState: { mediaQueryListsByQuery: mediaQueryListsByQuery },
3881 props: newProps,
3882 style: newStyle
3883 };
3884 }
3885 module.exports = exports['default'];
3886
3887/***/ },
3888/* 57 */
3889/***/ function(module, exports) {
3890
3891 'use strict';
3892
3893 Object.defineProperty(exports, "__esModule", {
3894 value: true
3895 });
3896 exports.default = visited;
3897 function visited(_ref) {
3898 var addCSS = _ref.addCSS;
3899 var appendImportantToEachValue = _ref.appendImportantToEachValue;
3900 var config = _ref.config;
3901 var cssRuleSetToString = _ref.cssRuleSetToString;
3902 var hash = _ref.hash;
3903 var props = _ref.props;
3904 var style = _ref.style;
3905 // eslint-disable-line no-shadow
3906 var className = props.className;
3907
3908 var newStyle = Object.keys(style).reduce(function (newStyleInProgress, key) {
3909 var value = style[key];
3910 if (key === ':visited') {
3911 value = appendImportantToEachValue(value);
3912 var ruleCSS = cssRuleSetToString('', value, config.userAgent);
3913 var visitedClassName = 'rad-' + hash(ruleCSS);
3914 var css = '.' + visitedClassName + ':visited' + ruleCSS;
3915
3916 addCSS(css);
3917 className = (className ? className + ' ' : '') + visitedClassName;
3918 } else {
3919 newStyleInProgress[key] = value;
3920 }
3921
3922 return newStyleInProgress;
3923 }, {});
3924
3925 return {
3926 props: className === props.className ? null : { className: className },
3927 style: newStyle
3928 };
3929 }
3930 module.exports = exports['default'];
3931
3932/***/ },
3933/* 58 */
3934/***/ function(module, exports, __webpack_require__) {
3935
3936 var __WEBPACK_AMD_DEFINE_RESULT__;'use strict';
3937
3938 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
3939
3940 /*!
3941 Copyright (c) 2015 Jed Watson.
3942 Based on code that is Copyright 2013-2015, Facebook, Inc.
3943 All rights reserved.
3944 */
3945 /* global define */
3946
3947 (function () {
3948 'use strict';
3949
3950 var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
3951
3952 var ExecutionEnvironment = {
3953
3954 canUseDOM: canUseDOM,
3955
3956 canUseWorkers: typeof Worker !== 'undefined',
3957
3958 canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),
3959
3960 canUseViewport: canUseDOM && !!window.screen
3961
3962 };
3963
3964 if ("function" === 'function' && _typeof(__webpack_require__(59)) === 'object' && __webpack_require__(59)) {
3965 !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {
3966 return ExecutionEnvironment;
3967 }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
3968 } else if (typeof module !== 'undefined' && module.exports) {
3969 module.exports = ExecutionEnvironment;
3970 } else {
3971 window.ExecutionEnvironment = ExecutionEnvironment;
3972 }
3973 })();
3974
3975/***/ },
3976/* 59 */
3977/***/ function(module, exports) {
3978
3979 /* WEBPACK VAR INJECTION */(function(__webpack_amd_options__) {module.exports = __webpack_amd_options__;
3980
3981 /* WEBPACK VAR INJECTION */}.call(exports, {}))
3982
3983/***/ },
3984/* 60 */
3985/***/ function(module, exports, __webpack_require__) {
3986
3987 'use strict';
3988
3989 Object.defineProperty(exports, "__esModule", {
3990 value: true
3991 });
3992
3993 var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
3994
3995 var _cssRuleSetToString = __webpack_require__(9);
3996
3997 var _cssRuleSetToString2 = _interopRequireDefault(_cssRuleSetToString);
3998
3999 var _react = __webpack_require__(3);
4000
4001 var _react2 = _interopRequireDefault(_react);
4002
4003 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4004
4005 var Style = _react2.default.createClass({
4006 displayName: 'Style',
4007
4008 propTypes: {
4009 radiumConfig: _react.PropTypes.object,
4010 rules: _react.PropTypes.object,
4011 scopeSelector: _react.PropTypes.string
4012 },
4013
4014 contextTypes: {
4015 _radiumConfig: _react.PropTypes.object
4016 },
4017
4018 getDefaultProps: function getDefaultProps() {
4019 return {
4020 scopeSelector: ''
4021 };
4022 },
4023 _buildStyles: function _buildStyles(styles) {
4024 var _this = this;
4025
4026 var userAgent = this.props.radiumConfig && this.props.radiumConfig.userAgent || this.context && this.context._radiumConfig && this.context._radiumConfig.userAgent;
4027
4028 var scopeSelector = this.props.scopeSelector;
4029
4030 var rootRules = Object.keys(styles).reduce(function (accumulator, selector) {
4031 if (_typeof(styles[selector]) !== 'object') {
4032 accumulator[selector] = styles[selector];
4033 }
4034
4035 return accumulator;
4036 }, {});
4037 var rootStyles = Object.keys(rootRules).length ? (0, _cssRuleSetToString2.default)(scopeSelector || '', rootRules, userAgent) : '';
4038
4039 return rootStyles + Object.keys(styles).reduce(function (accumulator, selector) {
4040 var rules = styles[selector];
4041
4042 if (selector === 'mediaQueries') {
4043 accumulator += _this._buildMediaQueryString(rules);
4044 } else if (_typeof(styles[selector]) === 'object') {
4045 var completeSelector = scopeSelector ? selector.split(',').map(function (part) {
4046 return scopeSelector + ' ' + part.trim();
4047 }).join(',') : selector;
4048
4049 accumulator += (0, _cssRuleSetToString2.default)(completeSelector, rules, userAgent);
4050 }
4051
4052 return accumulator;
4053 }, '');
4054 },
4055 _buildMediaQueryString: function _buildMediaQueryString(stylesByMediaQuery) {
4056 var _this2 = this;
4057
4058 var mediaQueryString = '';
4059
4060 Object.keys(stylesByMediaQuery).forEach(function (query) {
4061 mediaQueryString += '@media ' + query + '{' + _this2._buildStyles(stylesByMediaQuery[query]) + '}';
4062 });
4063
4064 return mediaQueryString;
4065 },
4066 render: function render() {
4067 if (!this.props.rules) {
4068 return null;
4069 }
4070
4071 var styles = this._buildStyles(this.props.rules);
4072
4073 return _react2.default.createElement('style', { dangerouslySetInnerHTML: { __html: styles } });
4074 }
4075 });
4076
4077 exports.default = Style;
4078 module.exports = exports['default'];
4079
4080/***/ },
4081/* 61 */
4082/***/ function(module, exports, __webpack_require__) {
4083
4084 'use strict';
4085
4086 Object.defineProperty(exports, "__esModule", {
4087 value: true
4088 });
4089
4090 var _react = __webpack_require__(3);
4091
4092 var _react2 = _interopRequireDefault(_react);
4093
4094 var _enhancer = __webpack_require__(2);
4095
4096 var _enhancer2 = _interopRequireDefault(_enhancer);
4097
4098 var _styleKeeper = __webpack_require__(4);
4099
4100 var _styleKeeper2 = _interopRequireDefault(_styleKeeper);
4101
4102 var _styleSheet = __webpack_require__(62);
4103
4104 var _styleSheet2 = _interopRequireDefault(_styleSheet);
4105
4106 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4107
4108 function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
4109
4110 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4111
4112 function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
4113
4114 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
4115
4116 function _getStyleKeeper(instance) {
4117 if (!instance._radiumStyleKeeper) {
4118 var userAgent = instance.props.radiumConfig && instance.props.radiumConfig.userAgent || instance.context._radiumConfig && instance.context._radiumConfig.userAgent;
4119 instance._radiumStyleKeeper = new _styleKeeper2.default(userAgent);
4120 }
4121
4122 return instance._radiumStyleKeeper;
4123 }
4124
4125 var StyleRoot = function (_Component) {
4126 _inherits(StyleRoot, _Component);
4127
4128 function StyleRoot() {
4129 _classCallCheck(this, StyleRoot);
4130
4131 var _this = _possibleConstructorReturn(this, _Component.apply(this, arguments));
4132
4133 _getStyleKeeper(_this);
4134 return _this;
4135 }
4136
4137 StyleRoot.prototype.getChildContext = function getChildContext() {
4138 return { _radiumStyleKeeper: _getStyleKeeper(this) };
4139 };
4140
4141 StyleRoot.prototype.render = function render() {
4142 /* eslint-disable no-unused-vars */
4143 // Pass down all props except config to the rendered div.
4144 var _props = this.props;
4145 var radiumConfig = _props.radiumConfig;
4146
4147 var otherProps = _objectWithoutProperties(_props, ['radiumConfig']);
4148 /* eslint-enable no-unused-vars */
4149
4150 return _react2.default.createElement(
4151 'div',
4152 otherProps,
4153 this.props.children,
4154 _react2.default.createElement(_styleSheet2.default, null)
4155 );
4156 };
4157
4158 return StyleRoot;
4159 }(_react.Component);
4160
4161 StyleRoot.contextTypes = {
4162 _radiumConfig: _react.PropTypes.object,
4163 _radiumStyleKeeper: _react.PropTypes.instanceOf(_styleKeeper2.default)
4164 };
4165
4166 StyleRoot.childContextTypes = {
4167 _radiumStyleKeeper: _react.PropTypes.instanceOf(_styleKeeper2.default)
4168 };
4169
4170 StyleRoot = (0, _enhancer2.default)(StyleRoot);
4171
4172 exports.default = StyleRoot;
4173 module.exports = exports['default'];
4174
4175/***/ },
4176/* 62 */
4177/***/ function(module, exports, __webpack_require__) {
4178
4179 'use strict';
4180
4181 Object.defineProperty(exports, "__esModule", {
4182 value: true
4183 });
4184 exports.default = undefined;
4185
4186 var _class, _temp;
4187
4188 var _react = __webpack_require__(3);
4189
4190 var _react2 = _interopRequireDefault(_react);
4191
4192 var _styleKeeper = __webpack_require__(4);
4193
4194 var _styleKeeper2 = _interopRequireDefault(_styleKeeper);
4195
4196 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4197
4198 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
4199
4200 function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
4201
4202 function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
4203
4204 var StyleSheet = (_temp = _class = function (_Component) {
4205 _inherits(StyleSheet, _Component);
4206
4207 function StyleSheet() {
4208 _classCallCheck(this, StyleSheet);
4209
4210 var _this = _possibleConstructorReturn(this, _Component.apply(this, arguments));
4211
4212 _this.state = _this._getCSSState();
4213
4214 _this._onChange = _this._onChange.bind(_this);
4215 return _this;
4216 }
4217
4218 StyleSheet.prototype.componentDidMount = function componentDidMount() {
4219 this._isMounted = true;
4220 this._subscription = this.context._radiumStyleKeeper.subscribe(this._onChange);
4221 this._onChange();
4222 };
4223
4224 StyleSheet.prototype.componentWillUnmount = function componentWillUnmount() {
4225 this._isMounted = false;
4226 if (this._subscription) {
4227 this._subscription.remove();
4228 }
4229 };
4230
4231 StyleSheet.prototype._getCSSState = function _getCSSState() {
4232 return { css: this.context._radiumStyleKeeper.getCSS() };
4233 };
4234
4235 StyleSheet.prototype._onChange = function _onChange() {
4236 var _this2 = this;
4237
4238 setTimeout(function () {
4239 _this2._isMounted && _this2.setState(_this2._getCSSState());
4240 }, 0);
4241 };
4242
4243 StyleSheet.prototype.render = function render() {
4244 return _react2.default.createElement('style', { dangerouslySetInnerHTML: { __html: this.state.css } });
4245 };
4246
4247 return StyleSheet;
4248 }(_react.Component), _class.contextTypes = {
4249 _radiumStyleKeeper: _react2.default.PropTypes.instanceOf(_styleKeeper2.default)
4250 }, _temp);
4251 exports.default = StyleSheet;
4252 module.exports = exports['default'];
4253
4254/***/ },
4255/* 63 */
4256/***/ function(module, exports, __webpack_require__) {
4257
4258 'use strict';
4259
4260 Object.defineProperty(exports, "__esModule", {
4261 value: true
4262 });
4263 exports.default = keyframes;
4264
4265 var _cssRuleSetToString = __webpack_require__(9);
4266
4267 var _cssRuleSetToString2 = _interopRequireDefault(_cssRuleSetToString);
4268
4269 var _hash = __webpack_require__(46);
4270
4271 var _hash2 = _interopRequireDefault(_hash);
4272
4273 var _prefixer = __webpack_require__(11);
4274
4275 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
4276
4277 function keyframes(keyframeRules, name) {
4278 return {
4279 __radiumKeyframes: true,
4280 __process: function __process(userAgent) {
4281 var keyframesPrefixed = (0, _prefixer.getPrefixedKeyframes)(userAgent);
4282 var rules = Object.keys(keyframeRules).map(function (percentage) {
4283 return (0, _cssRuleSetToString2.default)(percentage, keyframeRules[percentage], userAgent);
4284 }).join('\n');
4285 var animationName = (name ? name + '-' : '') + 'radium-animation-' + (0, _hash2.default)(rules);
4286 var css = '@' + keyframesPrefixed + ' ' + animationName + ' {\n' + rules + '\n}\n';
4287 return { css: css, animationName: animationName };
4288 }
4289 };
4290 }
4291 module.exports = exports['default'];
4292
4293/***/ }
4294/******/ ])
4295});
4296;
\No newline at end of file