List of commits:
Subject Hash Author Date (UTC)
Work on styling the button. c7c0b4c7697d522dce8bcef8b4991fb97cbbe4ab DiAngelo 2016-01-08 16:38:01
Added RocketGIT repository. 4588c9699a0e132bf81f503990f899c861c5a73e DiAngelo 2016-01-07 16:16:43
Initial commit e48fb5bf211e401bcd93422b5455d537c8891218 DiAngelo 2016-01-07 15:55:41
Commit c7c0b4c7697d522dce8bcef8b4991fb97cbbe4ab - Work on styling the button.
Author: DiAngelo
Author date (UTC): 2016-01-08 16:38
Committer name: DiAngelo
Committer date (UTC): 2016-01-08 16:38
Parent(s): 4588c9699a0e132bf81f503990f899c861c5a73e
Signing key:
Tree: 13682a7d83d3c797c7214060bf6cd0ff4ea2e78b
File Lines added Lines deleted
dist/app.js 1441 20
dist/app.min.js 9 2
lib/app/components/base/button/index.js 35 13
lib/app/components/base/button/sizes.js 12 0
lib/app/components/base/button/style/classes.js 21 0
lib/app/components/base/button/style/index.js 85 0
lib/app/components/base/button/style/theme.jss.js 33 0
lib/app/components/base/button/style/themes.js 32 0
lib/app/components/component.class.js 5 3
lib/app/components/simple.com.js 5 3
lib/app/registry.js 6 0
lib/app/render.js 4 0
package.json 4 0
src/app/components/base/button/index.js 26 10
src/app/components/base/button/sizes.js 7 0
src/app/components/base/button/style/classes.js 11 0
src/app/components/base/button/style/index.js 68 0
src/app/components/base/button/style/theme.jss.js 18 0
src/app/components/base/button/style/themes.js 27 0
src/app/components/component.class.js 5 2
src/app/components/simple.com.js 2 2
src/app/registry.js 1 0
src/app/render.js 3 0
File dist/app.js changed (mode: 100644) (index 02465e1..07c6f1c)
925 925 /* 17 */ /* 17 */
926 926 /***/ function(module, exports, __webpack_require__) { /***/ function(module, exports, __webpack_require__) {
927 927
928 'use strict';
928 /* WEBPACK VAR INJECTION */(function(global) {'use strict';
929 929
930 930 Object.defineProperty(exports, "__esModule", { Object.defineProperty(exports, "__esModule", {
931 931 value: true value: true
 
942 942
943 943 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
944 944
945 global.registry = {};
946
945 947 function render(store) { function render(store) {
946 948 var rootTag = _mithril2.default.component(_main2.default, { data: store }); var rootTag = _mithril2.default.component(_main2.default, { data: store });
947 949 _mithril2.default.mount(document.getElementById('root'), rootTag); _mithril2.default.mount(document.getElementById('root'), rootTag);
950
951 console.log(global.registry);
948 952 } }
953 /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
949 954
950 955 /***/ }, /***/ },
951 956 /* 18 */ /* 18 */
 
2236 2241
2237 2242 var _button = __webpack_require__(24); var _button = __webpack_require__(24);
2238 2243
2239 var _button2 = _interopRequireDefault(_button);
2244 var MButton = _interopRequireWildcard(_button);
2245
2246 function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
2240 2247
2241 2248 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2242 2249
 
2259 2266 key: 'controller', key: 'controller',
2260 2267 value: function controller(args) { value: function controller(args) {
2261 2268 this.store = args.data; this.store = args.data;
2262 this.mBtnTest = new _button2.default({
2269 this.mBtnTest = new MButton.component({
2263 2270 tag: 'a', tag: 'a',
2264 2271 label: "Initial Label", label: "Initial Label",
2265 size: _button2.default.sizes.SMALL
2272 size: MButton.sizes.SMALL
2266 2273 }); });
2267 2274 } }
2268 2275 }, { }, {
 
2317 2324
2318 2325 self.mithril = { self.mithril = {
2319 2326 controller: function controller() { controller: function controller() {
2327 self.model();
2320 2328 self.controller.apply(self, arguments); self.controller.apply(self, arguments);
2321 2329 }, },
2322 2330
 
2331 2339 value: function reducer(state) { value: function reducer(state) {
2332 2340 throw TypeError('Method "reducer" should be overriden in children'); throw TypeError('Method "reducer" should be overriden in children');
2333 2341 } }
2342 }, {
2343 key: 'model',
2344 value: function model(state) {}
2334 2345 }, { }, {
2335 2346 key: 'controller', key: 'controller',
2336 value: function controller(state) {
2337 return;
2338 }
2347 value: function controller(state) {}
2339 2348 }, { }, {
2340 2349 key: 'view', key: 'view',
2341 2350 value: function view(state) { value: function view(state) {
 
2361 2370
2362 2371 var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
2363 2372
2364 Object.defineProperty(exports, "__esModule", {
2365 value: true
2366 });
2367
2368 2373 var _component = __webpack_require__(23); var _component = __webpack_require__(23);
2369 2374
2370 2375 var _component2 = _interopRequireDefault(_component); var _component2 = _interopRequireDefault(_component);
 
2373 2378
2374 2379 var _mithril2 = _interopRequireDefault(_mithril); var _mithril2 = _interopRequireDefault(_mithril);
2375 2380
2381 var _sizes = __webpack_require__(25);
2382
2383 var _sizes2 = _interopRequireDefault(_sizes);
2384
2385 var _classes = __webpack_require__(26);
2386
2387 var _classes2 = _interopRequireDefault(_classes);
2388
2389 var _style = __webpack_require__(27);
2390
2391 var _style2 = _interopRequireDefault(_style);
2392
2376 2393 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2377 2394
2378 2395 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
2392 2409 _this.options = { _this.options = {
2393 2410 tag: 'button', tag: 'button',
2394 2411 label: 'Button', label: 'Button',
2395 size: MButton.sizes.NORMAL
2412 size: _sizes2.default.NORMAL
2396 2413 }; };
2397 2414 return _this; return _this;
2398 2415 } }
2399 2416
2400 2417 _createClass(MButton, [{ _createClass(MButton, [{
2418 key: 'model',
2419 value: function model() {
2420 this.theme = _mithril2.default.prop();
2421 this.tag = _mithril2.default.prop(this.options.tag);
2422 this.label = _mithril2.default.prop(this.options.label);
2423 this.descriptor = _mithril2.default.prop(this.tag());
2424 }
2425 }, {
2401 2426 key: 'controller', key: 'controller',
2402 2427 value: function controller(args) { value: function controller(args) {
2403 2428 var options = Object.assign({}, this.options, args); var options = Object.assign({}, this.options, args);
2404 2429
2405 this.theme = _mithril2.default.prop();
2406 this.size = _mithril2.default.prop(options.size);
2430 // this.size = m.prop(options.size);
2407 2431 this.tag = _mithril2.default.prop(options.tag); this.tag = _mithril2.default.prop(options.tag);
2408 2432 this.label = _mithril2.default.prop(options.label); this.label = _mithril2.default.prop(options.label);
2433 this.descriptor = _mithril2.default.prop(options.tag + _classes2.default.MBUTTON);
2434
2435 if (options.size != _sizes2.default.NORMAL) {
2436 this.descriptor = _mithril2.default.prop(this.descriptor() + _classes2.default[options.size]);
2437 }
2409 2438 } }
2410 2439 }, { }, {
2411 2440 key: 'view', key: 'view',
2412 2441 value: function view(ctrl, args) { value: function view(ctrl, args) {
2413 return (0, _mithril2.default)(this.tag(), this.label());
2442 // jssStyle.attach();
2443 return (0, _mithril2.default)(this.descriptor(), this.label());
2414 2444 } }
2415 2445 }]); }]);
2416 2446
2417 2447 return MButton; return MButton;
2418 2448 })(_component2.default); })(_component2.default);
2419 2449
2420 MButton.sizes = {
2421 NORMAL: 'BTN_SIZE_NORMAL',
2422 SMALL: 'BTN_SIZE_SMALL',
2423 LARGE: 'BTN_SIZE_LARGE'
2450 module.exports = {
2451 component: MButton,
2452 sizes: _sizes2.default
2453 };
2454
2455 // export MButton;
2456 //
2457 // export MButtonSizes;
2458
2459 /***/ },
2460 /* 25 */
2461 /***/ function(module, exports) {
2462
2463 'use strict';
2464
2465 Object.defineProperty(exports, "__esModule", {
2466 value: true
2467 });
2468 var MButtonSizes = {
2469 NORMAL: 'MBUTTON',
2470 SMALL: 'MBUTTON_SMALL',
2471 LARGE: 'MBUTTON_LARGE'
2472 };
2473
2474 exports.default = MButtonSizes;
2475
2476 /***/ },
2477 /* 26 */
2478 /***/ function(module, exports, __webpack_require__) {
2479
2480 "use strict";
2481
2482 Object.defineProperty(exports, "__esModule", {
2483 value: true
2484 });
2485
2486 var _sizes = __webpack_require__(25);
2487
2488 var _sizes2 = _interopRequireDefault(_sizes);
2489
2490 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2491
2492 var MBUTTON = ".mButton";
2493
2494 var MButtonClasses = {
2495 MBUTTON: MBUTTON,
2496 MBUTTON_SMALL: MBUTTON + "-small",
2497 MBUTTON_LARGE: MBUTTON + "-large"
2498 };
2499
2500 exports.default = MButtonClasses;
2501
2502 /***/ },
2503 /* 27 */
2504 /***/ function(module, exports, __webpack_require__) {
2505
2506 /* WEBPACK VAR INJECTION */(function(global) {'use strict';
2507
2508 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; };
2509
2510 Object.defineProperty(exports, "__esModule", {
2511 value: true
2512 });
2513
2514 var _jss = __webpack_require__(28);
2515
2516 var _jss2 = _interopRequireDefault(_jss);
2517
2518 var _jssExtend = __webpack_require__(42);
2519
2520 var _jssExtend2 = _interopRequireDefault(_jssExtend);
2521
2522 var _jssCamelCase = __webpack_require__(43);
2523
2524 var _jssCamelCase2 = _interopRequireDefault(_jssCamelCase);
2525
2526 var _sizes = __webpack_require__(25);
2527
2528 var _sizes2 = _interopRequireDefault(_sizes);
2529
2530 var _themes = __webpack_require__(44);
2531
2532 var _themes2 = _interopRequireDefault(_themes);
2533
2534 var _classes = __webpack_require__(26);
2535
2536 var _classes2 = _interopRequireDefault(_classes);
2537
2538 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2539
2540 // import btnTheme from './theme.jss';
2541
2542 _jss2.default.use((0, _jssExtend2.default)());
2543 _jss2.default.use((0, _jssCamelCase2.default)());
2544
2545 var someColor = 'green';
2546
2547 var button = function button(btnSize) {
2548 var padding = undefined;
2549
2550 switch (btnSize) {
2551 case _sizes2.default.SMALL:
2552 padding = '.2rem';
2553 break;
2554 case _sizes2.default.LARGE:
2555 padding = '1rem';
2556 break;
2557 default:
2558 padding = '.5rem';
2559 break;
2560 }
2561
2562 return {
2563 padding: padding
2564
2565 };
2566 };
2567
2568 var buttonRules = {};
2569
2570 buttonRules[_classes2.default.MBUTTON] = _extends({}, button(_sizes2.default.NORMAL), {
2571 color: someColor
2572 });
2573
2574 buttonRules[_classes2.default.MBUTTON_SMALL] = _extends({}, button(_sizes2.default.SMALL));
2575
2576 buttonRules[_classes2.default.MBUTTON_LARGE] = _extends({}, button(_sizes2.default.LARGE));
2577
2578 for (var theme in _themes2.default) {
2579 if (theme == 'default') {
2580 buttonRules[_classes2.default.MBUTTON] = _extends({}, buttonRules[_classes2.default.MBUTTON], _themes2.default[theme]);
2581 } else {
2582 buttonRules[_classes2.default.MBUTTON + '.t-' + theme.toLowerCase()] = _themes2.default[theme];
2583 }
2584 }
2585
2586 var jssStyle = _jss2.default.createStyleSheet(buttonRules, { named: false }).attach();
2587
2588 global.jssStyle = Object.assign({}, global.jssStyle, jssStyle);
2589
2590 exports.default = jssStyle;
2591 /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
2592
2593 /***/ },
2594 /* 28 */
2595 /***/ function(module, exports, __webpack_require__) {
2596
2597 /**
2598 * StyleSheets written in javascript.
2599 *
2600 * @copyright Oleg Slobodskoi 2015
2601 * @website https://github.com/jsstyles/jss
2602 * @license MIT
2603 */
2604
2605 'use strict';
2606
2607 exports.__esModule = true;
2608
2609 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2610
2611 var _Jss = __webpack_require__(29);
2612
2613 var _Jss2 = _interopRequireDefault(_Jss);
2614
2615 exports['default'] = new _Jss2['default']();
2616 module.exports = exports['default'];
2617
2618 /***/ },
2619 /* 29 */
2620 /***/ function(module, exports, __webpack_require__) {
2621
2622 'use strict';
2623
2624 exports.__esModule = true;
2625
2626 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; };
2627
2628 function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
2629
2630 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2631
2632 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
2633
2634 var _StyleSheet = __webpack_require__(30);
2635
2636 var _StyleSheet2 = _interopRequireDefault(_StyleSheet);
2637
2638 var _PluginsRegistry = __webpack_require__(41);
2639
2640 var _PluginsRegistry2 = _interopRequireDefault(_PluginsRegistry);
2641
2642 var _uid = __webpack_require__(33);
2643
2644 var uid = _interopRequireWildcard(_uid);
2645
2646 var _createRule2 = __webpack_require__(31);
2647
2648 var _createRule3 = _interopRequireDefault(_createRule2);
2649
2650 var _findRenderer = __webpack_require__(38);
2651
2652 var _findRenderer2 = _interopRequireDefault(_findRenderer);
2653
2654 /**
2655 * Main Jss class.
2656 *
2657 * @api public
2658 */
2659
2660 var Jss = (function () {
2661 function Jss() {
2662 _classCallCheck(this, Jss);
2663
2664 this.plugins = new _PluginsRegistry2['default']();
2665 this.uid = uid;
2666 }
2667
2668 /**
2669 * Creates a new instance of Jss.
2670 *
2671 * @see Jss
2672 * @api public
2673 */
2674
2675 Jss.prototype.create = function create() {
2676 return new Jss();
2677 };
2678
2679 /**
2680 * Create a stylesheet.
2681 *
2682 * @see StyleSheet
2683 * @api public
2684 */
2685
2686 Jss.prototype.createStyleSheet = function createStyleSheet(rules, options) {
2687 return new _StyleSheet2['default'](rules, _extends({}, options, { jss: this }));
2688 };
2689
2690 /**
2691 * Create a rule.
2692 *
2693 * @see createRule
2694 * @api public
2695 */
2696
2697 Jss.prototype.createRule = function createRule(selector, style, options) {
2698 // Enable rule without selector.
2699 if (typeof selector == 'object') {
2700 options = style;
2701 style = selector;
2702 selector = null;
2703 }
2704 var rule = _createRule3['default'](selector, style, _extends({}, options, {
2705 jss: this,
2706 Renderer: _findRenderer2['default'](options)
2707 }));
2708 this.plugins.run(rule);
2709 return rule;
2710 };
2711
2712 /**
2713 * Register plugin. Passed function will be invoked with a rule instance.
2714 *
2715 * @param {Function} fn
2716 * @api public
2717 */
2718
2719 Jss.prototype.use = function use(fn) {
2720 this.plugins.use(fn);
2721 return this;
2722 };
2723
2724 return Jss;
2725 })();
2726
2727 exports['default'] = Jss;
2728 module.exports = exports['default'];
2729
2730 /***/ },
2731 /* 30 */
2732 /***/ function(module, exports, __webpack_require__) {
2733
2734 'use strict';
2735
2736 exports.__esModule = true;
2737
2738 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; };
2739
2740 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2741
2742 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
2743
2744 var _createRule2 = __webpack_require__(31);
2745
2746 var _createRule3 = _interopRequireDefault(_createRule2);
2747
2748 var _findRenderer = __webpack_require__(38);
2749
2750 var _findRenderer2 = _interopRequireDefault(_findRenderer);
2751
2752 /**
2753 * StyleSheet model.
2754 *
2755 * Options:
2756 *
2757 * - 'media' style element attribute
2758 * - 'title' style element attribute
2759 * - 'type' style element attribute
2760 * - 'named' true by default - keys are names, selectors will be generated,
2761 * if false - keys are global selectors
2762 * - 'link' link renderable CSS rules with their corresponding models, false
2763 * by default because fast by default
2764 *
2765 * @param {Object} [rules] object with selectors and declarations
2766 * @param {Object} [options]
2767 * @api public
2768 */
2769
2770 var StyleSheet = (function () {
2771 function StyleSheet(rules, options) {
2772 _classCallCheck(this, StyleSheet);
2773
2774 this.options = _extends({}, options);
2775 if (this.options.named == null) this.options.named = true;
2776 this.rules = Object.create(null);
2777 this.classes = Object.create(null);
2778 this.attached = false;
2779 this.deployed = false;
2780 this.linked = false;
2781
2782 var Renderer = _findRenderer2['default'](this.options);
2783 this.options.Renderer = Renderer;
2784 this.renderer = new Renderer(this.options);
2785
2786 for (var _name in rules) {
2787 this.createRule(_name, rules[_name]);
2788 }
2789 }
2790
2791 /**
2792 * Attach renderable to the render tree.
2793 *
2794 * @api public
2795 * @return {StyleSheet}
2796 */
2797
2798 StyleSheet.prototype.attach = function attach() {
2799 if (this.attached) return this;
2800 if (!this.deployed) this.deploy();
2801 this.renderer.attach();
2802 if (!this.linked && this.options.link) this.link();
2803 this.attached = true;
2804 return this;
2805 };
2806
2807 /**
2808 * Remove renderable from render tree.
2809 *
2810 * @return {StyleSheet}
2811 * @api public
2812 */
2813
2814 StyleSheet.prototype.detach = function detach() {
2815 if (!this.attached) return this;
2816 this.renderer.detach();
2817 this.attached = false;
2818 return this;
2819 };
2820
2821 /**
2822 * Add a rule to the current stylesheet. Will insert a rule also after the stylesheet
2823 * has been rendered first time.
2824 *
2825 * @param {Object} [name] can be selector or name if ´options.named is true
2826 * @param {Object} style property/value hash
2827 * @return {Rule}
2828 * @api public
2829 */
2830
2831 StyleSheet.prototype.addRule = function addRule(name, style) {
2832 var rule = this.createRule(name, style);
2833 // Don't insert rule directly if there is no stringified version yet.
2834 // It will be inserted all together when .attach is called.
2835 if (this.deployed) {
2836 var renderable = this.renderer.insertRule(rule);
2837 if (this.options.link) rule.renderable = renderable;
2838 }
2839 return rule;
2840 };
2841
2842 /**
2843 * Create rules, will render also after stylesheet was rendered the first time.
2844 *
2845 * @param {Object} rules name:style hash.
2846 * @return {Array} array of added rules
2847 * @api public
2848 */
2849
2850 StyleSheet.prototype.addRules = function addRules(rules) {
2851 var added = [];
2852 for (var _name2 in rules) {
2853 added.push(this.addRule(_name2, rules[_name2]));
2854 }
2855 return added;
2856 };
2857
2858 /**
2859 * Get a rule.
2860 *
2861 * @param {String} name can be selector or name if `named` option is true.
2862 * @return {Rule}
2863 * @api public
2864 */
2865
2866 StyleSheet.prototype.getRule = function getRule(name) {
2867 return this.rules[name];
2868 };
2869
2870 /**
2871 * Convert rules to a CSS string.
2872 *
2873 * @param {Object} options
2874 * @return {String}
2875 * @api public
2876 */
2877
2878 StyleSheet.prototype.toString = function toString(options) {
2879 var rules = this.rules;
2880
2881 var stringified = Object.create(null);
2882 var str = '';
2883 for (var _name3 in rules) {
2884 var rule = rules[_name3];
2885 // We have the same rule referenced twice if using named rules.
2886 // By name and by selector.
2887 if (stringified[rule.id]) {
2888 continue;
2889 }
2890 if (str) str += '\n';
2891 str += rules[_name3].toString(options);
2892 stringified[rule.id] = true;
2893 }
2894 return str;
2895 };
2896
2897 /**
2898 * Create a rule, will not render after stylesheet was rendered the first time.
2899 * Will link the rule in `this.rules`.
2900 *
2901 * @see createRule
2902 * @api private
2903 */
2904
2905 StyleSheet.prototype.createRule = function createRule(name, style, options) {
2906 options = _extends({}, options, {
2907 sheet: this,
2908 jss: this.options.jss,
2909 Renderer: this.options.Renderer
2910 });
2911 // Scope options overwrite instance options.
2912 if (options.named == null) options.named = this.options.named;
2913 var rule = _createRule3['default'](name, style, options);
2914 // Register conditional rule, it will stringify it's child rules properly.
2915 if (rule.type === 'conditional') {
2916 this.rules[rule.selector] = rule;
2917 } else if (rule.type === 'simple') {
2918 this.rules[rule.name] = rule;
2919 }
2920 // This is a rule which is a child of a condtional rule.
2921 // We need to register its class name only.
2922 else if (rule.options.parent && rule.options.parent.type === 'conditional') {
2923 // Only named rules should be referenced in `classes`.
2924 if (rule.options.named) this.classes[name] = rule.className;
2925 } else {
2926 this.rules[rule.selector] = rule;
2927 if (options.named) {
2928 this.rules[name] = rule;
2929 this.classes[name] = rule.className;
2930 }
2931 }
2932 options.jss.plugins.run(rule);
2933 return rule;
2934 };
2935
2936 /**
2937 * Deploy pure CSS string to a renderable.
2938 *
2939 * @return {StyleSheet}
2940 * @api private
2941 */
2942
2943 StyleSheet.prototype.deploy = function deploy() {
2944 this.renderer.deploy(this);
2945 this.deployed = true;
2946 return this;
2947 };
2948
2949 /**
2950 * Link renderable CSS rules with their corresponding models.
2951 *
2952 * @return {StyleSheet}
2953 * @api private
2954 */
2955
2956 StyleSheet.prototype.link = function link() {
2957 var renderables = this.renderer.getRules();
2958 for (var selector in renderables) {
2959 var rule = this.rules[selector];
2960 if (rule) rule.renderable = renderables[selector];
2961 }
2962 this.linked = true;
2963 return this;
2964 };
2965
2966 return StyleSheet;
2967 })();
2968
2969 exports['default'] = StyleSheet;
2970 module.exports = exports['default'];
2971
2972 /***/ },
2973 /* 31 */
2974 /***/ function(module, exports, __webpack_require__) {
2975
2976 'use strict';
2977
2978 exports.__esModule = true;
2979
2980 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; };
2981
2982 exports['default'] = createRule;
2983
2984 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
2985
2986 var _Rule = __webpack_require__(32);
2987
2988 var _Rule2 = _interopRequireDefault(_Rule);
2989
2990 var _SimpleRule = __webpack_require__(35);
2991
2992 var _SimpleRule2 = _interopRequireDefault(_SimpleRule);
2993
2994 var _KeyframeRule = __webpack_require__(36);
2995
2996 var _KeyframeRule2 = _interopRequireDefault(_KeyframeRule);
2997
2998 var _ConditionalRule = __webpack_require__(37);
2999
3000 var _ConditionalRule2 = _interopRequireDefault(_ConditionalRule);
3001
3002 /**
3003 * Map of at rules to corresponding implementation class.
3004 *
3005 * @type {Object}
3006 */
3007 var atRuleClassMap = {
3008 '@charset': _SimpleRule2['default'],
3009 '@import': _SimpleRule2['default'],
3010 '@namespace': _SimpleRule2['default'],
3011 '@keyframes': _KeyframeRule2['default'],
3012 '@media': _ConditionalRule2['default'],
3013 '@supports': _ConditionalRule2['default'],
3014 '@font-face': _Rule2['default']
3015 };
3016
3017 var atRuleNameRegExp = /^@[^ ]+/;
3018
3019 /**
3020 * Create rule factory.
3021 *
3022 * @param {Object} [selector] if you don't pass selector - it will be generated
3023 * @param {Object} [style] declarations block
3024 * @param {Object} [options] rule options
3025 * @return {Object} rule
3026 * @api private
3027 */
3028
3029 function createRule(selector) {
3030 var style = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
3031 var options = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];
3032
3033 // Is an at-rule.
3034 if (selector && selector[0] === '@') {
3035 var _name = atRuleNameRegExp.exec(selector)[0];
3036 var AtRule = atRuleClassMap[_name];
3037 // We use regular rule class to handle font rule,
3038 // font-face rule should not be named.
3039 if (_name === '@font-face' && options.named) {
3040 options = _extends({}, options, { named: false });
3041 }
3042 return new AtRule(selector, style, options);
3043 }
3044 if (options.named == null) options.named = true;
3045 return new _Rule2['default'](selector, style, options);
3046 }
3047
3048 module.exports = exports['default'];
3049
3050 /***/ },
3051 /* 32 */
3052 /***/ function(module, exports, __webpack_require__) {
3053
3054 'use strict';
3055
3056 exports.__esModule = true;
3057
3058 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3059
3060 function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
3061
3062 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
3063
3064 var _uid = __webpack_require__(33);
3065
3066 var uid = _interopRequireWildcard(_uid);
3067
3068 var _clone = __webpack_require__(34);
3069
3070 var _clone2 = _interopRequireDefault(_clone);
3071
3072 /**
3073 * Regular rules and font-face.
3074 *
3075 * @api private
3076 */
3077
3078 var Rule = (function () {
3079 function Rule(selector, style, options) {
3080 _classCallCheck(this, Rule);
3081
3082 this.id = uid.get();
3083 this.type = 'regular';
3084 this.options = options;
3085 this.selector = selector;
3086 if (options.named) {
3087 this.name = selector;
3088 this.className = options.className || (this.name ? this.name + '--' + this.id : this.id);
3089 this.selector = '.' + this.className;
3090 }
3091 this.originalStyle = style;
3092 // We expect style to be plain object.
3093 this.style = _clone2['default'](style);
3094 }
3095
3096 /**
3097 * Indent a string.
3098 *
3099 * http://jsperf.com/array-join-vs-for
3100 *
3101 * @param {Number} level
3102 * @param {String} str
3103 * @return {String}
3104 * @api private
3105 */
3106
3107 /**
3108 * Get or set a style property.
3109 *
3110 * @param {String} name
3111 * @param {String|Number} [value]
3112 * @return {Rule|String|Number}
3113 * @api public
3114 */
3115
3116 Rule.prototype.prop = function prop(name, value) {
3117 var style = this.options.Renderer.style;
3118
3119 // Its a setter.
3120 if (value != null) {
3121 this.style[name] = value;
3122 // If linked option in StyleSheet is not passed, renderable is not defined.
3123 if (this.renderable) style(this.renderable, name, value);
3124 return this;
3125 }
3126 // Its a getter, read the value from the DOM if its not cached.
3127 if (this.renderable && this.style[name] == null) {
3128 // Cache the value after we have got it from the DOM once.
3129 this.style[name] = style(this.renderable, name);
3130 }
3131 return this.style[name];
3132 };
3133
3134 /**
3135 * Apply rule to an element inline.
3136 *
3137 * @param {Element} renderable
3138 * @return {Rule}
3139 * @api public
3140 */
3141
3142 Rule.prototype.applyTo = function applyTo(renderable) {
3143 for (var prop in this.style) {
3144 var value = this.style[prop];
3145 var style = this.options.Renderer.style;
3146
3147 if (Array.isArray(value)) {
3148 for (var index = 0; index < value.length; index++) {
3149 style(renderable, prop, value[index]);
3150 }
3151 } else style(renderable, prop, value);
3152 }
3153 return this;
3154 };
3155
3156 /**
3157 * Returns JSON representation of the rule.
3158 * Nested rules, at-rules and array values are not supported.
3159 *
3160 * @return {Object}
3161 * @api public
3162 */
3163
3164 Rule.prototype.toJSON = function toJSON() {
3165 var style = Object.create(null);
3166 for (var prop in this.style) {
3167 if (typeof this.style[prop] != 'object') {
3168 style[prop] = this.style[prop];
3169 }
3170 }
3171 return style;
3172 };
3173
3174 /**
3175 * Generates a CSS string.
3176 *
3177 * @param {Object} options
3178 * @return {String}
3179 * @api private
3180 */
3181
3182 Rule.prototype.toString = function toString() {
3183 var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
3184
3185 var selector = options.selector == null ? true : options.selector;
3186 var indentationLevel = options.indentationLevel || 0;
3187 var str = '';
3188 if (selector) {
3189 str += indent(indentationLevel, this.selector + ' {');
3190 indentationLevel++;
3191 }
3192 for (var prop in this.style) {
3193 var value = this.style[prop];
3194 // We want to generate multiple style with identical property names.
3195 if (Array.isArray(value)) {
3196 for (var index = 0; index < value.length; index++) {
3197 str += '\n' + indent(indentationLevel, prop + ': ' + value[index] + ';');
3198 }
3199 } else str += '\n' + indent(indentationLevel, prop + ': ' + value + ';');
3200 }
3201 if (selector) str += '\n' + indent(--indentationLevel, '}');
3202 return str;
3203 };
3204
3205 return Rule;
3206 })();
3207
3208 exports['default'] = Rule;
3209 function indent(level, str) {
3210 var indentStr = '';
3211 for (var index = 0; index < level; index++) {
3212 indentStr += ' ';
3213 }return indentStr + str;
3214 }
3215 module.exports = exports['default'];
3216
3217 /***/ },
3218 /* 33 */
3219 /***/ function(module, exports) {
3220
3221 /* WEBPACK VAR INJECTION */(function(global) {'use strict';
3222
3223 exports.__esModule = true;
3224 exports.get = get;
3225 exports.reset = reset;
3226 var globalReference = typeof window == 'undefined' ? global : window;
3227 var namespace = '__JSS_VERSION_COUNTER__';
3228 if (globalReference[namespace] == null) globalReference[namespace] = 0;
3229
3230 // In case we have more than one jss version.
3231 var versionCounter = globalReference[namespace]++;
3232 var ruleCounter = 0;
3233
3234 /**
3235 * Returns a uid.
3236 * Ensures uniqueness if more than 1 jss version is used.
3237 *
3238 * @api private
3239 * @return {String}
3240 */
3241
3242 function get() {
3243 return 'jss-' + versionCounter + '-' + ruleCounter++;
3244 }
3245
3246 /**
3247 * Resets the counter.
3248 *
3249 * @api private
3250 */
3251
3252 function reset() {
3253 ruleCounter = 0;
3254 }
3255 /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
3256
3257 /***/ },
3258 /* 34 */
3259 /***/ function(module, exports) {
3260
3261 "use strict";
3262
3263 exports.__esModule = true;
3264 exports["default"] = clone;
3265 var stringify = JSON.stringify;
3266 var parse = JSON.parse;
3267
3268 /**
3269 * Deeply clone object using serialization.
3270 * Expects object to be plain and without cyclic dependencies.
3271 *
3272 * http://jsperf.com/lodash-deepclone-vs-jquery-extend-deep/6
3273 *
3274 * @type {Object} obj
3275 * @return {Object}
3276 */
3277
3278 function clone(obj) {
3279 return parse(stringify(obj));
3280 }
3281
3282 module.exports = exports["default"];
3283
3284 /***/ },
3285 /* 35 */
3286 /***/ function(module, exports, __webpack_require__) {
3287
3288 'use strict';
3289
3290 exports.__esModule = true;
3291
3292 function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
3293
3294 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
3295
3296 var _uid = __webpack_require__(33);
3297
3298 var uid = _interopRequireWildcard(_uid);
3299
3300 /**
3301 * Rule like @charset, @import, @namespace.
3302 *
3303 * @api private
3304 */
3305
3306 var SimpleRule = (function () {
3307 function SimpleRule(name, value, options) {
3308 _classCallCheck(this, SimpleRule);
3309
3310 this.id = uid.get();
3311 this.type = 'simple';
3312 this.name = name;
3313 this.value = value;
3314 this.options = options;
3315 }
3316
3317 /**
3318 * Generates a CSS string.
3319 *
3320 * @return {String}
3321 * @api private
3322 */
3323
3324 SimpleRule.prototype.toString = function toString() {
3325 return this.name + ' ' + this.value + ';';
3326 };
3327
3328 return SimpleRule;
3329 })();
3330
3331 exports['default'] = SimpleRule;
3332 module.exports = exports['default'];
3333
3334 /***/ },
3335 /* 36 */
3336 /***/ function(module, exports, __webpack_require__) {
3337
3338 'use strict';
3339
3340 exports.__esModule = true;
3341
3342 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; };
3343
3344 function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
3345
3346 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
3347
3348 var _uid = __webpack_require__(33);
3349
3350 var uid = _interopRequireWildcard(_uid);
3351
3352 /**
3353 * Keyframe rule.
3354 *
3355 * @api private
3356 */
3357
3358 var KeyframeRule = (function () {
3359 function KeyframeRule(selector, frames, options) {
3360 _classCallCheck(this, KeyframeRule);
3361
3362 this.id = uid.get();
3363 this.type = 'keyframe';
3364 this.selector = selector;
3365 this.options = options;
3366 this.frames = this.formatFrames(frames);
3367 }
3368
3369 /**
3370 * Creates formatted frames where every frame value is a rule instance.
3371 *
3372 * @api private
3373 */
3374
3375 KeyframeRule.prototype.formatFrames = function formatFrames(frames) {
3376 var newFrames = Object.create(null);
3377 for (var _name in frames) {
3378 var options = _extends({}, this.options, { named: false, parent: this });
3379 newFrames[_name] = this.options.jss.createRule(_name, frames[_name], options);
3380 }
3381 return newFrames;
3382 };
3383
3384 /**
3385 * Generates a CSS string.
3386 *
3387 * @return {String}
3388 * @api private
3389 */
3390
3391 KeyframeRule.prototype.toString = function toString() {
3392 var str = this.selector + ' {\n';
3393 var options = { indentationLevel: 1 };
3394 for (var _name2 in this.frames) {
3395 str += this.frames[_name2].toString(options) + '\n';
3396 }
3397 str += '}';
3398 return str;
3399 };
3400
3401 return KeyframeRule;
3402 })();
3403
3404 exports['default'] = KeyframeRule;
3405 module.exports = exports['default'];
3406
3407 /***/ },
3408 /* 37 */
3409 /***/ function(module, exports, __webpack_require__) {
3410
3411 'use strict';
3412
3413 exports.__esModule = true;
3414
3415 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; };
3416
3417 function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
3418
3419 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
3420
3421 var _uid = __webpack_require__(33);
3422
3423 var uid = _interopRequireWildcard(_uid);
3424
3425 /**
3426 * Conditional rule for @media, @supports
3427 *
3428 * @api private
3429 */
3430
3431 var ConditionalRule = (function () {
3432 function ConditionalRule(selector, styles, options) {
3433 _classCallCheck(this, ConditionalRule);
3434
3435 this.id = uid.get();
3436 this.type = 'conditional';
3437 this.selector = selector;
3438 this.options = _extends({}, options, { parent: this });
3439 this.rules = this.createChildRules(styles);
3440 }
3441
3442 /**
3443 * A conditional rule always contains child rules.
3444 *
3445 * @param {Object} styles
3446 * @return {Array} rules
3447 * @api private
3448 */
3449
3450 ConditionalRule.prototype.createChildRules = function createChildRules(styles) {
3451 var rules = Object.create(null);
3452 var _options = this.options;
3453 var sheet = _options.sheet;
3454 var jss = _options.jss;
3455
3456 for (var _name in styles) {
3457 var localOptions = this.options;
3458 // We have already a rule in the current style sheet with this name,
3459 // This new rule is supposed to overwrite the first one, for this we need
3460 // to ensure it will have the same className/selector.
3461 var ruleToOverwrite = this.options.sheet && this.options.sheet.getRule(_name);
3462 if (ruleToOverwrite) localOptions = _extends({}, this.options, { className: ruleToOverwrite.className });
3463 rules[_name] = (sheet || jss).createRule(_name, styles[_name], localOptions);
3464 }
3465 return rules;
3466 };
3467
3468 /**
3469 * Generates a CSS string.
3470 *
3471 * @return {String}
3472 * @api private
3473 */
3474
3475 ConditionalRule.prototype.toString = function toString() {
3476 var str = this.selector + ' {\n';
3477 for (var _name2 in this.rules) {
3478 var ruleStr = this.rules[_name2].toString({ indentationLevel: 1 });
3479 str += ruleStr + '\n';
3480 }
3481 str += '}';
3482 return str;
3483 };
3484
3485 return ConditionalRule;
3486 })();
3487
3488 exports['default'] = ConditionalRule;
3489 module.exports = exports['default'];
3490
3491 /***/ },
3492 /* 38 */
3493 /***/ function(module, exports, __webpack_require__) {
3494
3495 'use strict';
3496
3497 exports.__esModule = true;
3498 exports['default'] = findRenderer;
3499
3500 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
3501
3502 var _DomRenderer = __webpack_require__(39);
3503
3504 var _DomRenderer2 = _interopRequireDefault(_DomRenderer);
3505
3506 var _VirtualRenderer = __webpack_require__(40);
3507
3508 var _VirtualRenderer2 = _interopRequireDefault(_VirtualRenderer);
3509
3510 /**
3511 * Find proper renderer.
3512 * Option `virtual` is used to force use of VirtualRenderer even if DOM is
3513 * detected, used for testing only.
3514 *
3515 * @param {Object} options
3516 * @return {Renderer}
3517 * @api private
3518 */
3519
3520 function findRenderer() {
3521 var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
3522
3523 if (options.Renderer) return options.Renderer;
3524 return options.virtual || typeof document == 'undefined' ? _VirtualRenderer2['default'] : _DomRenderer2['default'];
3525 }
3526
3527 module.exports = exports['default'];
3528
3529 /***/ },
3530 /* 39 */
3531 /***/ function(module, exports) {
3532
3533 /**
3534 * DOM rendering backend for StyleSheet.
3535 *
3536 * @api private
3537 */
3538 'use strict';
3539
3540 exports.__esModule = true;
3541
3542 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
3543
3544 var DomRenderer = (function () {
3545 DomRenderer.style = function style(element, name, value) {
3546 try {
3547 if (value == null) return element.style[name];
3548 element.style[name] = value;
3549 } catch (err) {
3550 // IE8 may throw if property is unknown.
3551 }
3552 };
3553
3554 function DomRenderer(options) {
3555 _classCallCheck(this, DomRenderer);
3556
3557 this.head = document.head || document.getElementsByTagName('head')[0];
3558 this.element = document.createElement('style');
3559 // IE8 will not have `styleSheet` prop without `type and `styleSheet.cssText`
3560 // is the only way to render on IE8.
3561 this.element.type = 'text/css';
3562 if (options.media) this.element.setAttribute('media', options.media);
3563 if (options.meta) this.element.setAttribute('data-meta', options.meta);
3564 }
3565
3566 /**
3567 * Insert style element into render tree.
3568 *
3569 * @api private
3570 */
3571
3572 DomRenderer.prototype.attach = function attach() {
3573 this.head.appendChild(this.element);
3574 };
3575
3576 /**
3577 * Remove style element from render tree.
3578 *
3579 * @api private
3580 */
3581
3582 DomRenderer.prototype.detach = function detach() {
3583 this.element.parentNode.removeChild(this.element);
3584 };
3585
3586 /**
3587 * Inject CSS string into element.
3588 *
3589 * @param {String} cssStr
3590 * @api private
3591 */
3592
3593 DomRenderer.prototype.deploy = function deploy(sheet) {
3594 var css = '\n' + sheet.toString() + '\n';
3595 if ('sheet' in this.element) this.element.innerHTML = css;
3596 // On IE8 the only way to render is `styleSheet.cssText`
3597 else if ('styleSheet' in this.element) this.element.styleSheet.cssText = css;
3598 };
3599
3600 /**
3601 * Insert a rule into element.
3602 *
3603 * @param {Rule} rule
3604 * @return {CSSStyleRule}
3605 * @api private
3606 */
3607
3608 DomRenderer.prototype.insertRule = function insertRule(rule) {
3609 // IE8 has only `styleSheet` and `styleSheet.rules`
3610 var sheet = this.element.sheet || this.element.styleSheet;
3611 var cssRules = sheet.cssRules || sheet.rules;
3612 var nextIndex = cssRules.length;
3613 if (sheet.insertRule) sheet.insertRule(rule.toString(), nextIndex);else sheet.addRule(rule.selector, rule.toString({ selector: false }), nextIndex);
3614 return cssRules[nextIndex];
3615 };
3616
3617 /**
3618 * Get all rules elements.
3619 *
3620 * @return {Object} rules map, where key is selector, CSSStyleRule is value.
3621 * @api private
3622 */
3623
3624 DomRenderer.prototype.getRules = function getRules() {
3625 // IE8 has only `styleSheet` and `styleSheet.rules`
3626 var sheet = this.element.sheet || this.element.styleSheet;
3627 var cssRules = sheet.rules || sheet.cssRules;
3628 var rules = Object.create(null);
3629 for (var index = 0; index < cssRules.length; index++) {
3630 var CSSRule = cssRules[index];
3631 rules[CSSRule.selectorText] = CSSRule;
3632 }
3633 return rules;
3634 };
3635
3636 return DomRenderer;
3637 })();
3638
3639 exports['default'] = DomRenderer;
3640 module.exports = exports['default'];
3641
3642 /***/ },
3643 /* 40 */
3644 /***/ function(module, exports) {
3645
3646 /**
3647 * Rendering backend to do nothing in nodejs.
3648 */
3649 "use strict";
3650
3651 exports.__esModule = true;
3652
3653 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3654
3655 var VirtualRenderer = (function () {
3656 function VirtualRenderer() {
3657 _classCallCheck(this, VirtualRenderer);
3658 }
3659
3660 VirtualRenderer.style = function style() {};
3661
3662 VirtualRenderer.prototype.attach = function attach() {};
3663
3664 VirtualRenderer.prototype.detach = function detach() {};
3665
3666 VirtualRenderer.prototype.deploy = function deploy() {};
3667
3668 VirtualRenderer.prototype.insertRule = function insertRule() {};
3669
3670 VirtualRenderer.prototype.getRules = function getRules() {
3671 return {};
3672 };
3673
3674 return VirtualRenderer;
3675 })();
3676
3677 exports["default"] = VirtualRenderer;
3678 module.exports = exports["default"];
3679
3680 /***/ },
3681 /* 41 */
3682 /***/ function(module, exports) {
3683
3684 /**
3685 * Register a plugin, run a plugin.
3686 */
3687 "use strict";
3688
3689 exports.__esModule = true;
3690
3691 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3692
3693 var PluginsRegistry = (function () {
3694 function PluginsRegistry() {
3695 _classCallCheck(this, PluginsRegistry);
3696
3697 this.registry = [];
3698 }
3699
3700 /**
3701 * Register plugin. Passed function will be invoked with a rule instance.
3702 *
3703 * @param {Function} fn
3704 * @api public
3705 */
3706
3707 PluginsRegistry.prototype.use = function use(fn) {
3708 this.registry.push(fn);
3709 };
3710
3711 /**
3712 * Execute all registered plugins.
3713 *
3714 * @param {Rule} rule
3715 * @api private
3716 */
3717
3718 PluginsRegistry.prototype.run = function run(rule) {
3719 for (var index = 0; index < this.registry.length; index++) {
3720 this.registry[index](rule);
3721 }
3722 };
3723
3724 return PluginsRegistry;
3725 })();
3726
3727 exports["default"] = PluginsRegistry;
3728 module.exports = exports["default"];
3729
3730 /***/ },
3731 /* 42 */
3732 /***/ function(module, exports) {
3733
3734 /**
3735 * Handle `extend` property.
3736 *
3737 * @param {Rule} rule
3738 * @api public
3739 */
3740 'use strict';
3741
3742 exports.__esModule = true;
3743 exports['default'] = jssExtend;
3744
3745 function jssExtend() {
3746 return function (rule) {
3747 if (!rule.style || !rule.style.extend) return;
3748
3749 function extend(newStyle, style) {
3750 if (typeof style.extend == 'string') {
3751 if (rule.options && rule.options.sheet) {
3752 var refRule = rule.options.sheet.getRule(style.extend);
3753 if (refRule) extend(newStyle, refRule.originalStyle);
3754 }
3755 } else if (Array.isArray(style.extend)) {
3756 for (var index = 0; index < style.extend.length; index++) {
3757 extend(newStyle, style.extend[index]);
3758 }
3759 } else {
3760 for (var prop in style.extend) {
3761 if (prop === 'extend') extend(newStyle, style.extend.extend);else newStyle[prop] = style.extend[prop];
3762 }
3763 }
3764
3765 // Copy base style.
3766 for (var prop in style) {
3767 if (prop !== 'extend') newStyle[prop] = style[prop];
3768 }
3769
3770 return newStyle;
3771 }
3772
3773 rule.style = extend({}, rule.style);
3774 };
3775 }
3776
3777 module.exports = exports['default'];
3778
3779 /***/ },
3780 /* 43 */
3781 /***/ function(module, exports) {
3782
3783 'use strict';
3784
3785 exports.__esModule = true;
3786 exports['default'] = jssCamelCase;
3787 var regExp = /([A-Z])/g;
3788
3789 /**
3790 * Allow camel cased property names by converting them back to dasherized.
3791 *
3792 * @param {Rule} rule
3793 * @api public
3794 */
3795
3796 function jssCamelCase() {
3797 return function (rule) {
3798 var style = rule.style;
3799
3800 if (!style) return;
3801 rule.style = {};
3802 for (var prop in style) {
3803 var value = style[prop];
3804 prop = prop.replace(regExp, '-$1').toLowerCase();
3805 rule.style[prop] = value;
3806 }
3807 };
3808 }
3809
3810 module.exports = exports['default'];
3811
3812 /***/ },
3813 /* 44 */
3814 /***/ function(module, exports) {
3815
3816 "use strict";
3817
3818 Object.defineProperty(exports, "__esModule", {
3819 value: true
3820 });
3821 var colors = {
3822 controlBack: "#eee",
3823 controlText: "#666"
3824 };
3825
3826 var none = 'none';
3827 var transparent = 'transparent';
3828
3829 var MButtonThemes = {
3830 default: {
3831 backgroundColor: colors.controlBack,
3832 color: colors.controlText,
3833 border: none,
3834 boxShadow: none
3835 },
3836 outlined: {
3837 backgroundColor: transparent,
3838 color: colors.controlText,
3839 border: '2px solid '
3840 },
3841 hero: {
3842 backgroundColor: 'red',
3843 color: 'white'
3844 }
2424 3845 }; };
2425 3846
2426 exports.default = MButton;
3847 exports.default = MButtonThemes;
2427 3848
2428 3849 /***/ } /***/ }
2429 3850 /******/ ]); /******/ ]);
File dist/app.min.js changed (mode: 100644) (index cf04e10..ae2c54c)
1 !function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}var o=n(1),a=r(o),i=n(17),u=r(i),l={},c=(0,a["default"])(l);window.onload=function(){(0,u["default"])(c)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=(0,a.compose)((0,a.applyMiddleware)(u["default"]),window.devToolsExtension?window.devToolsExtension():function(e){return e})(a.createStore),n=t(c["default"],e);return n}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o;var a=n(2),i=n(12),u=r(i),l=n(13),c=r(l)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(3),a=r(o),i=n(5),u=r(i),l=n(9),c=r(l),s=n(10),f=r(s),d=n(11),p=r(d);t.createStore=a["default"],t.combineReducers=u["default"],t.bindActionCreators=c["default"],t.applyMiddleware=f["default"],t.compose=p["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){function n(){return c}function r(e){s.push(e);var t=!0;return function(){if(t){t=!1;var n=s.indexOf(e);s.splice(n,1)}}}function o(e){if(!i["default"](e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if("undefined"==typeof e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(f)throw new Error("Reducers may not dispatch actions.");try{f=!0,c=l(c,e)}finally{f=!1}return s.slice().forEach(function(e){return e()}),e}function a(e){l=e,o({type:u.INIT})}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var l=e,c=t,s=[],f=!1;return o({type:u.INIT}),{dispatch:o,subscribe:r,getState:n,replaceReducer:a}}t.__esModule=!0,t["default"]=o;var a=n(4),i=r(a),u={INIT:"@@redux/INIT"};t.ActionTypes=u},function(e,t){"use strict";function n(e){if(!e||"object"!=typeof e)return!1;var t="function"==typeof e.constructor?Object.getPrototypeOf(e):Object.prototype;if(null===t)return!0;var n=t.constructor;return"function"==typeof n&&n instanceof n&&r(n)===o}t.__esModule=!0,t["default"]=n;var r=function(e){return Function.prototype.toString.call(e)},o=r(Object);e.exports=t["default"]},function(e,t,n){(function(r){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){var n=t&&t.type,r=n&&'"'+n.toString()+'"'||"an action";return'Reducer "'+e+'" returned undefined handling '+r+". To ignore an action, you must explicitly return the previous state."}function i(e,t,n){var r=Object.keys(t),o=n&&n.type===c.ActionTypes.INIT?"initialState argument passed to createStore":"previous state received by the reducer";if(0===r.length)return"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.";if(!f["default"](e))return"The "+o+' has unexpected type of "'+{}.toString.call(e).match(/\s([a-z|A-Z]+)/)[1]+'". Expected argument to be an object with the following '+('keys: "'+r.join('", "')+'"');var a=Object.keys(e).filter(function(e){return r.indexOf(e)<0});return a.length>0?"Unexpected "+(a.length>1?"keys":"key")+" "+('"'+a.join('", "')+'" found in '+o+". ")+"Expected to find one of the known reducer keys instead: "+('"'+r.join('", "')+'". Unexpected keys will be ignored.'):void 0}function u(e){Object.keys(e).forEach(function(t){var n=e[t],r=n(void 0,{type:c.ActionTypes.INIT});if("undefined"==typeof r)throw new Error('Reducer "'+t+'" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined.');var o="@@redux/PROBE_UNKNOWN_ACTION_"+Math.random().toString(36).substring(7).split("").join(".");if("undefined"==typeof n(void 0,{type:o}))throw new Error('Reducer "'+t+'" returned undefined when probed with a random type. '+("Don't try to handle "+c.ActionTypes.INIT+' or other actions in "redux/*" ')+"namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined.")})}function l(e){var t,n=v["default"](e,function(e){return"function"==typeof e});try{u(n)}catch(o){t=o}var l=p["default"](n,function(){});return function(e,o){if(void 0===e&&(e=l),t)throw t;var u=!1,c=p["default"](n,function(t,n){var r=e[n],i=t(r,o);if("undefined"==typeof i){var l=a(n,o);throw new Error(l)}return u=u||i!==r,i});if("production"!==r.env.NODE_ENV){var s=i(e,c,o);s&&console.error(s)}return u?c:e}}t.__esModule=!0,t["default"]=l;var c=n(3),s=n(4),f=o(s),d=n(7),p=o(d),h=n(8),v=o(h);e.exports=t["default"]}).call(t,n(6))},function(e,t){function n(){c=!1,i.length?l=i.concat(l):s=-1,l.length&&r()}function r(){if(!c){var e=setTimeout(n);c=!0;for(var t=l.length;t;){for(i=l,l=[];++s<t;)i&&i[s].run();s=-1,t=l.length}i=null,c=!1,clearTimeout(e)}}function o(e,t){this.fun=e,this.array=t}function a(){}var i,u=e.exports={},l=[],c=!1,s=-1;u.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new o(e,t)),1!==l.length||c||setTimeout(r,0)},o.prototype.run=function(){this.fun.apply(null,this.array)},u.title="browser",u.browser=!0,u.env={},u.argv=[],u.version="",u.versions={},u.on=a,u.addListener=a,u.once=a,u.off=a,u.removeListener=a,u.removeAllListeners=a,u.emit=a,u.binding=function(e){throw new Error("process.binding is not supported")},u.cwd=function(){return"/"},u.chdir=function(e){throw new Error("process.chdir is not supported")},u.umask=function(){return 0}},function(e,t){"use strict";function n(e,t){return Object.keys(e).reduce(function(n,r){return n[r]=t(e[r],r),n},{})}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";function n(e,t){return Object.keys(e).reduce(function(n,r){return t(e[r])&&(n[r]=e[r]),n},{})}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return function(){return t(e.apply(void 0,arguments))}}function a(e,t){if("function"==typeof e)return o(e,t);if("object"!=typeof e||null===e||void 0===e)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===e?"null":typeof e)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');return u["default"](e,function(e){return o(e,t)})}t.__esModule=!0,t["default"]=a;var i=n(7),u=r(i);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return function(e){return function(n,r){var o=e(n,r),i=o.dispatch,l=[],c={getState:o.getState,dispatch:function(e){return i(e)}};return l=t.map(function(e){return e(c)}),i=u["default"].apply(void 0,l)(o.dispatch),a({},o,{dispatch:i})}}}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t["default"]=o;var i=n(11),u=r(i);e.exports=t["default"]},function(e,t){"use strict";function n(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return function(e){return t.reduceRight(function(e,t){return t(e)},e)}}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";function n(e){var t=e.dispatch,n=e.getState;return function(e){return function(r){return"function"==typeof r?r(t,n):e(r)}}}e.exports=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(2),a=n(14),i=r(a),u=n(16),l=r(u);t["default"]=(0,o.combineReducers)({rdxCounter:i["default"],rdxSimple:l["default"]})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){switch("undefined"==typeof e&&(e={counter:0}),"undefined"==typeof e.counter&&(e.counter=0),t.type){case u["default"].COUNTER_INCREMENT:var n=a({},e,{counter:e.counter+1});return n;case u["default"].COUNTER_DECREMENT:return a({},e,{counter:e.counter-1});default:return e}}var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o;var i=n(15),u=r(i)},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={COUNTER_INCREMENT:"COUNTER_INCREMENT",COUNTER_DECREMENT:"COUNTER_DECREMENT",TEXT_CHANGE:"TEXT_CHANGE"};t["default"]=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!e)return u;switch(t.type){case i["default"].TEXT_CHANGE:return Object.assign({},e,{text:t.text});default:return e}}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o;var a=n(15),i=r(a),u={text:"ZZZ"}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=i["default"].component(l["default"],{data:e});i["default"].mount(document.getElementById("root"),t)}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o;var a=n(18),i=r(a),u=n(20),l=r(u)},function(e,t,n){var r;(function(e){var o=function a(e,t){function n(e){k=e.document,M=e.location,S=e.cancelAnimationFrame||e.clearTimeout,A=e.requestAnimationFrame||e.setTimeout}function r(){var e,t=[].slice.call(arguments),n=!(null==t[1]||D.call(t[1])!==R||"tag"in t[1]||"view"in t[1]||"subtree"in t[1]),r=n?t[1]:{},o="class"in r?"class":"className",a={tag:"div",attrs:{}},i=[];if(D.call(t[0])!=L)throw new Error("selector in m(selector, attrs, children) should be a string");for(;e=U.exec(t[0]);)if(""===e[1]&&e[2])a.tag=e[2];else if("#"===e[1])a.attrs.id=e[2];else if("."===e[1])i.push(e[2]);else if("["===e[3][0]){var u=B.exec(e[3]);a.attrs[u[1]]=u[3]||(u[2]?"":!0)}var l=n?t.slice(2):t.slice(1);1===l.length&&D.call(l[0])===I?a.children=l[0]:a.children=l;for(var c in r)r.hasOwnProperty(c)&&(c===o&&null!=r[c]&&""!==r[c]?(i.push(r[c]),a.attrs[c]=""):a.attrs[c]=r[c]);return i.length>0&&(a.attrs[o]=i.join(" ")),a}function o(e,n,a,c,f,d,p,h,v,g,m){try{(null==f||null==f.toString())&&(f="")}catch(y){f=""}if("retain"===f.subtree)return d;var w=D.call(d),b=D.call(f);if(null==d||w!==b){if(null!=d)if(a&&a.nodes){var E=h-c,x=E+(b===I?f:d.nodes).length;l(a.nodes.slice(E,x),a.slice(E,x))}else d.nodes&&l(d.nodes,d);d=new f.constructor,d.tag&&(d={}),d.nodes=[]}if(b===I){for(var _=0,O=f.length;O>_;_++)D.call(f[_])===I&&(f=f.concat.apply([],f),_--,O=f.length);for(var T=[],N=d.length===f.length,j=0,C=1,M=2,A=3,S={},U=!1,_=0;_<d.length;_++)d[_]&&d[_].attrs&&null!=d[_].attrs.key&&(U=!0,S[d[_].attrs.key]={action:C,index:_});for(var B=0,_=0,O=f.length;O>_;_++)if(f[_]&&f[_].attrs&&null!=f[_].attrs.key){for(var H=0,O=f.length;O>H;H++)f[H]&&f[H].attrs&&null==f[H].attrs.key&&(f[H].attrs.key="__mithril__"+B++);break}if(U){var G=!1;if(f.length!=d.length)G=!0;else for(var q,K,_=0;q=d[_],K=f[_];_++)if(q.attrs&&K.attrs&&q.attrs.key!=K.attrs.key){G=!0;break}if(G){for(var _=0,O=f.length;O>_;_++)if(f[_]&&f[_].attrs&&null!=f[_].attrs.key){var J=f[_].attrs.key;S[J]?S[J]={action:A,index:_,from:S[J].index,element:d.nodes[S[J].index]||k.createElement("div")}:S[J]={action:M,index:_}}var Z=[];for(var F in S)Z.push(S[F]);var X=Z.sort(i),V=new Array(d.length);V.nodes=d.nodes.slice();for(var W,_=0;W=X[_];_++){if(W.action===C&&(l(d[W.index].nodes,d[W.index]),V.splice(W.index,1)),W.action===M){var Q=k.createElement("div");Q.key=f[W.index].attrs.key,e.insertBefore(Q,e.childNodes[W.index]||null),V.splice(W.index,0,{attrs:{key:f[W.index].attrs.key},nodes:[Q]}),V.nodes[W.index]=Q}W.action===A&&(e.childNodes[W.index]!==W.element&&null!==W.element&&e.insertBefore(W.element,e.childNodes[W.index]||null),V[W.index]=d[W.from],V.nodes[W.index]=W.element)}d=V}}for(var _=0,Y=0,O=f.length;O>_;_++){var te=o(e,n,d,h,f[_],d[Y],p,h+j||j,v,g,m);te!==t&&(te.nodes.intact||(N=!1),j+=te.$trusted?(te.match(/<[^\/]|\>\s*[^<]/g)||[0]).length:D.call(te)===I?te.length:1,d[Y++]=te)}if(!N){for(var _=0,O=f.length;O>_;_++)null!=d[_]&&T.push.apply(T,d[_].nodes);for(var ne,_=0;ne=d.nodes[_];_++)null!=ne.parentNode&&T.indexOf(ne)<0&&l([ne],[d[_]]);f.length<d.length&&(d.length=f.length),d.nodes=T}}else if(null!=f&&b===R){for(var oe=[],ae=[];f.view;){var ie=f.view.$original||f.view,ue="diff"==r.redraw.strategy()&&d.views?d.views.indexOf(ie):-1,le=ue>-1?d.controllers[ue]:new(f.controller||$),J=f&&f.attrs&&f.attrs.key;if(f=0==re||d&&d.controllers&&d.controllers.indexOf(le)>-1?f.view(le):{tag:"placeholder"},"retain"===f.subtree)return d;J&&(f.attrs||(f.attrs={}),f.attrs.key=J),le.onunload&&ee.push({controller:le,handler:le.onunload}),oe.push(ie),ae.push(le)}if(!f.tag&&ae.length)throw new Error("Component template must return a virtual element, not an array, string, etc.");f.attrs||(f.attrs={}),d.attrs||(d.attrs={});var ce=Object.keys(f.attrs),se=ce.length>("key"in f.attrs?1:0);if((f.tag!=d.tag||ce.sort().join()!=Object.keys(d.attrs).sort().join()||f.attrs.id!=d.attrs.id||f.attrs.key!=d.attrs.key||"all"==r.redraw.strategy()&&(!d.configContext||d.configContext.retain!==!0)||"diff"==r.redraw.strategy()&&d.configContext&&d.configContext.retain===!1)&&(d.nodes.length&&l(d.nodes),d.configContext&&typeof d.configContext.onunload===P&&d.configContext.onunload(),d.controllers))for(var le,_=0;le=d.controllers[_];_++)typeof le.onunload===P&&le.onunload({preventDefault:$});if(D.call(f.tag)!=L)return;var ne,fe=0===d.nodes.length;if(f.attrs.xmlns?g=f.attrs.xmlns:"svg"===f.tag?g="http://www.w3.org/2000/svg":"math"===f.tag&&(g="http://www.w3.org/1998/Math/MathML"),fe){if(ne=f.attrs.is?g===t?k.createElement(f.tag,f.attrs.is):k.createElementNS(g,f.tag,f.attrs.is):g===t?k.createElement(f.tag):k.createElementNS(g,f.tag),d={tag:f.tag,attrs:se?u(ne,f.tag,f.attrs,{},g):f.attrs,children:null!=f.children&&f.children.length>0?o(ne,f.tag,t,t,f.children,d.children,!0,0,f.attrs.contenteditable?ne:v,g,m):f.children,nodes:[ne]},ae.length){d.views=oe,d.controllers=ae;for(var le,_=0;le=ae[_];_++)if(le.onunload&&le.onunload.$old&&(le.onunload=le.onunload.$old),re&&le.onunload){var de=le.onunload;le.onunload=$,le.onunload.$old=de}}d.children&&!d.children.nodes&&(d.children.nodes=[]),"select"===f.tag&&"value"in f.attrs&&u(ne,f.tag,{value:f.attrs.value},{},g),e.insertBefore(ne,e.childNodes[h]||null)}else ne=d.nodes[0],se&&u(ne,f.tag,f.attrs,d.attrs,g),d.children=o(ne,f.tag,t,t,f.children,d.children,!1,0,f.attrs.contenteditable?ne:v,g,m),d.nodes.intact=!0,ae.length&&(d.views=oe,d.controllers=ae),p===!0&&null!=ne&&e.insertBefore(ne,e.childNodes[h]||null);if(typeof f.attrs.config===P){var pe=d.configContext=d.configContext||{},he=function(e,t){return function(){return e.attrs.config.apply(e,t)}};m.push(he(f,[ne,!fe,pe,d]))}}else if(typeof f!=P){var T;0===d.nodes.length?(f.$trusted?T=s(e,h,f):(T=[k.createTextNode(f)],e.nodeName.match(z)||e.insertBefore(T[0],e.childNodes[h]||null)),d="string number boolean".indexOf(typeof f)>-1?new f.constructor(f):f,d.nodes=T):d.valueOf()!==f.valueOf()||p===!0?(T=d.nodes,v&&v===k.activeElement||(f.$trusted?(l(T,d),T=s(e,h,f)):"textarea"===n?e.value=f:v?v.innerHTML=f:((1===T[0].nodeType||T.length>1)&&(l(d.nodes,d),T=[k.createTextNode(f)]),e.insertBefore(T[0],e.childNodes[h]||null),T[0].nodeValue=f)),d=new f.constructor(f),d.nodes=T):d.nodes.intact=!0}return d}function i(e,t){return e.action-t.action||e.index-t.index}function u(e,t,n,r,o){for(var a in n){var i=n[a],u=r[a];if(a in r&&u===i)"value"===a&&"input"===t&&e.value!=i&&(e.value=i);else{r[a]=i;try{if("config"===a||"key"==a)continue;if(typeof i===P&&0===a.indexOf("on"))e[a]=f(i,e);else if("style"===a&&null!=i&&D.call(i)===R){for(var l in i)(null==u||u[l]!==i[l])&&(e.style[l]=i[l]);for(var l in u)l in i||(e.style[l]="")}else null!=o?"href"===a?e.setAttributeNS("http://www.w3.org/1999/xlink","href",i):"className"===a?e.setAttribute("class",i):e.setAttribute(a,i):a in e&&"list"!==a&&"style"!==a&&"form"!==a&&"type"!==a&&"width"!==a&&"height"!==a?("input"!==t||e[a]!==i)&&(e[a]=i):e.setAttribute(a,i)}catch(c){if(c.message.indexOf("Invalid argument")<0)throw c}}}return r}function l(e,t){for(var n=e.length-1;n>-1;n--)if(e[n]&&e[n].parentNode){try{e[n].parentNode.removeChild(e[n])}catch(r){}t=[].concat(t),t[n]&&c(t[n])}0!=e.length&&(e.length=0)}function c(e){if(e.configContext&&typeof e.configContext.onunload===P&&(e.configContext.onunload(),e.configContext.onunload=null),e.controllers)for(var t,n=0;t=e.controllers[n];n++)typeof t.onunload===P&&t.onunload({preventDefault:$});if(e.children)if(D.call(e.children)===I)for(var r,n=0;r=e.children[n];n++)c(r);else e.children.tag&&c(e.children)}function s(e,t,n){var r=e.childNodes[t];if(r){var o=1!=r.nodeType,a=k.createElement("span");o?(e.insertBefore(a,r||null),a.insertAdjacentHTML("beforebegin",n),e.removeChild(a)):r.insertAdjacentHTML("beforebegin",n)}else e.insertAdjacentHTML("beforeend",n);for(var i=[];e.childNodes[t]!==r;)i.push(e.childNodes[t]),t++;return i}function f(e,t){return function(n){n=n||event,r.redraw.strategy("diff"),r.startComputation();try{return e.call(t,n)}finally{oe()}}}function d(e){var t=q.indexOf(e);return 0>t?q.push(e)-1:t}function p(e){var t=function(){return arguments.length&&(e=arguments[0]),e};return t.toJSON=function(){return e},t}function h(e,t){var n=function(){return(e.controller||$).apply(this,t)||this},r=function(n){return arguments.length>1&&(t=t.concat([].slice.call(arguments,1))),e.view.apply(e,t?[n].concat(t):[n])};r.$original=e.view;var o={controller:n,view:r};return t[0]&&null!=t[0].key&&(o.attrs={key:t[0].key}),o}function v(){Q&&(Q(),Q=null);for(var e,t=0;e=Z[t];t++)if(X[t]){var n=F[t].controller&&F[t].controller.$$args?[X[t]].concat(F[t].controller.$$args):[X[t]];r.render(e,F[t].view?F[t].view(X[t],n):"")}Y&&(Y(),Y=null),V=null,W=new Date,r.redraw.strategy("diff")}function g(e){return e.slice(ue[r.route.mode].length)}function m(e,t,n){ae={};var o=n.indexOf("?");-1!==o&&(ae=E(n.substr(o+1,n.length)),n=n.substr(0,o));var a=Object.keys(t),i=a.indexOf(n);if(-1!==i)return r.mount(e,t[a[i]]),!0;for(var u in t){if(u===n)return r.mount(e,t[u]),!0;var l=new RegExp("^"+u.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(l.test(n))return n.replace(l,function(){for(var n=u.match(/:[^\/]+/g)||[],o=[].slice.call(arguments,1,-2),a=0,i=n.length;i>a;a++)ae[n[a].replace(/:|\./g,"")]=decodeURIComponent(o[a]);r.mount(e,t[u])}),!0}}function y(e){if(e=e||event,!e.ctrlKey&&!e.metaKey&&2!==e.which){e.preventDefault?e.preventDefault():e.returnValue=!1;for(var t=e.currentTarget||e.srcElement,n="pathname"===r.route.mode&&t.search?E(t.search.slice(1)):{};t&&"A"!=t.nodeName.toUpperCase();)t=t.parentNode;r.route(t[r.route.mode].slice(ue[r.route.mode].length),n)}}function w(){"hash"!=r.route.mode&&M.hash?M.hash=M.hash:e.scrollTo(0,0)}function b(e,n){var r={},o=[];for(var a in e){var i=n?n+"["+a+"]":a,u=e[a],l=D.call(u),c=null===u?encodeURIComponent(i):l===R?b(u,i):l===I?u.reduce(function(e,t){return r[i]||(r[i]={}),r[i][t]?e:(r[i][t]=!0,e.concat(encodeURIComponent(i)+"="+encodeURIComponent(t)))},[]).join("&"):encodeURIComponent(i)+"="+encodeURIComponent(u);u!==t&&o.push(c)}return o.join("&")}function E(e){"?"===e.charAt(0)&&(e=e.substring(1));for(var t=e.split("&"),n={},r=0,o=t.length;o>r;r++){var a=t[r].split("="),i=decodeURIComponent(a[0]),u=2==a.length?decodeURIComponent(a[1]):null;null!=n[i]?(D.call(n[i])!==I&&(n[i]=[n[i]]),n[i].push(u)):n[i]=u}return n}function x(e){var n=d(e);l(e.childNodes,K[n]),K[n]=t}function _(e,t){var n=r.prop(t);return e.then(n),n.then=function(n,r){return _(e.then(n,r),t)},n}function O(e,t){function n(e){f=e||c,p.map(function(e){f===l&&e.resolve(d)||e.reject(d)})}function o(e,t,n,o){if((null!=d&&D.call(d)===R||typeof d===P)&&typeof e===P)try{var a=0;e.call(d,function(e){a++||(d=e,t())},function(e){a++||(d=e,n())})}catch(i){r.deferred.onerror(i),d=i,n()}else o()}function a(){var c;try{c=d&&d.then}catch(p){return r.deferred.onerror(p),d=p,f=u,a()}o(c,function(){f=i,a()},function(){f=u,a()},function(){try{f===i&&typeof e===P?d=e(d):f===u&&"function"==typeof t&&(d=t(d),f=i)}catch(a){return r.deferred.onerror(a),d=a,n()}d===s?(d=TypeError(),n()):o(c,function(){n(l)},n,function(){n(f===i&&l)})})}var i=1,u=2,l=3,c=4,s=this,f=0,d=0,p=[];s.promise={},s.resolve=function(e){return f||(d=e,f=i,a()),this},s.reject=function(e){return f||(d=e,f=u,a()),this},s.promise.then=function(e,t){var n=new O(e,t);return f===l?n.resolve(d):f===c?n.reject(d):p.push(n),n.promise}}function T(e){return e}function N(n){if(!n.dataType||"jsonp"!==n.dataType.toLowerCase()){var r=new e.XMLHttpRequest;if(r.open(n.method,n.url,!0,n.user,n.password),r.onreadystatechange=function(){4===r.readyState&&(r.status>=200&&r.status<300?n.onload({type:"load",target:r}):n.onerror({type:"error",target:r}))},n.serialize===JSON.stringify&&n.data&&"GET"!==n.method&&r.setRequestHeader("Content-Type","application/json; charset=utf-8"),n.deserialize===JSON.parse&&r.setRequestHeader("Accept","application/json, text/*"),typeof n.config===P){var o=n.config(r,n);null!=o&&(r=o)}var a="GET"!==n.method&&n.data?n.data:"";if(a&&D.call(a)!=L&&a.constructor!=e.FormData)throw"Request data should be either be a string or FormData. Check the `serialize` option in `m.request`";return r.send(a),r}var i="mithril_callback_"+(new Date).getTime()+"_"+Math.round(1e16*Math.random()).toString(36),u=k.createElement("script");e[i]=function(r){u.parentNode.removeChild(u),n.onload({type:"load",target:{responseText:r}}),e[i]=t},u.onerror=function(r){return u.parentNode.removeChild(u),n.onerror({type:"error",target:{status:500,responseText:JSON.stringify({error:"Error making jsonp request"})}}),e[i]=t,!1},u.onload=function(e){return!1},u.src=n.url+(n.url.indexOf("?")>0?"&":"?")+(n.callbackKey?n.callbackKey:"callback")+"="+i+"&"+b(n.data||{}),k.body.appendChild(u)}function j(e,t,n){if("GET"===e.method&&"jsonp"!=e.dataType){var r=e.url.indexOf("?")<0?"?":"&",o=b(t);e.url=e.url+(o?r+o:"")}else e.data=n(t);return e}function C(e,t){var n=e.match(/:[a-z]\w+/gi);if(n&&t)for(var r=0;r<n.length;r++){var o=n[r].slice(1);e=e.replace(n[r],t[o]),delete t[o]}return e}var k,M,A,S,R="[object Object]",I="[object Array]",L="[object String]",P="function",D={}.toString,U=/(?:(^|#|\.)([^#\.\[\]]+))|(\[.+?\])/g,B=/\[(.+?)(?:=("|'|)(.*?)\2)?\]/,z=/^(AREA|BASE|BR|COL|COMMAND|EMBED|HR|IMG|INPUT|KEYGEN|LINK|META|PARAM|SOURCE|TRACK|WBR)$/,$=function(){};n(e);var H,G={appendChild:function(e){H===t&&(H=k.createElement("html")),k.documentElement&&k.documentElement!==e?k.replaceChild(e,k.documentElement):k.appendChild(e),this.childNodes=k.childNodes},insertBefore:function(e){this.appendChild(e)},childNodes:[]},q=[],K={};r.render=function(e,n,r){var a=[];if(!e)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var i=d(e),u=e===k,c=u||e===k.documentElement?G:e;u&&"html"!=n.tag&&(n={tag:"html",attrs:{},children:n}),K[i]===t&&l(c.childNodes),r===!0&&x(e),K[i]=o(c,null,t,t,n,K[i],!1,0,null,t,a);for(var s=0,f=a.length;f>s;s++)a[s]()},r.trust=function(e){return e=new String(e),e.$trusted=!0,e},r.prop=function(e){return(null!=e&&D.call(e)===R||typeof e===P)&&typeof e.then===P?_(e):p(e)};var J,Z=[],F=[],X=[],V=null,W=0,Q=null,Y=null,ee=[],te=16;r.component=function(e){return h(e,[].slice.call(arguments,1))},r.mount=r.module=function(e,t){if(!e)throw new Error("Please ensure the DOM element exists before rendering a template into it.");var n=Z.indexOf(e);0>n&&(n=Z.length);for(var o,a=!1,i={preventDefault:function(){a=!0,Q=Y=null}},u=0;o=ee[u];u++)o.handler.call(o.controller,i),o.controller.onunload=null;if(a)for(var o,u=0;o=ee[u];u++)o.controller.onunload=o.handler;else ee=[];if(X[n]&&typeof X[n].onunload===P&&X[n].onunload(i),!a){r.redraw.strategy("all"),r.startComputation(),Z[n]=e,arguments.length>2&&(t=subcomponent(t,[].slice.call(arguments,2)));var l=J=t=t||{controller:function(){}},c=t.controller||$,s=new c;return l===J&&(X[n]=s,F[n]=t),oe(),X[n]}};var ne=!1;r.redraw=function(t){ne||(ne=!0,V&&t!==!0?(A===e.requestAnimationFrame||new Date-W>te)&&(V>0&&S(V),V=A(v,te)):(v(),V=A(function(){V=null},te)),ne=!1)},r.redraw.strategy=r.prop();var re=0;r.startComputation=function(){re++},r.endComputation=function(){re=Math.max(re-1,0),0===re&&r.redraw()};var oe=function(){"none"==r.redraw.strategy()?(re--,r.redraw.strategy("diff")):r.endComputation()};r.withAttr=function(e,t){return function(n){n=n||event;var r=n.currentTarget||this;t(e in r?r[e]:r.getAttribute(e))}};var ae,ie,ue={pathname:"",hash:"#",search:"?"},le=$,ce=!1;return r.route=function(){if(0===arguments.length)return ie;if(3===arguments.length&&D.call(arguments[1])===L){var t=arguments[0],n=arguments[1],o=arguments[2];le=function(e){var a=ie=g(e);if(!m(t,o,a)){if(ce)throw new Error("Ensure the default route matches one of the routes defined in m.route");ce=!0,r.route(n,!0),ce=!1}};var a="hash"===r.route.mode?"onhashchange":"onpopstate";e[a]=function(){var e=M[r.route.mode];"pathname"===r.route.mode&&(e+=M.search),ie!=g(e)&&le(e)},Q=w,e[a]()}else if(arguments[0].addEventListener||arguments[0].attachEvent){var i=arguments[0],u=(arguments[1],arguments[2],arguments[3]);i.href=("pathname"!==r.route.mode?M.pathname:"")+ue[r.route.mode]+u.attrs.href,i.addEventListener?(i.removeEventListener("click",y),i.addEventListener("click",y)):(i.detachEvent("onclick",y),i.attachEvent("onclick",y))}else if(D.call(arguments[0])===L){var l=ie;ie=arguments[0];var c=arguments[1]||{},s=ie.indexOf("?"),f=s>-1?E(ie.slice(s+1)):{};for(var d in c)f[d]=c[d];var p=b(f),h=s>-1?ie.slice(0,s):ie;p&&(ie=h+(-1===h.indexOf("?")?"?":"&")+p);var v=(3===arguments.length?arguments[2]:arguments[1])===!0||l===arguments[0];e.history.pushState?(Q=w,Y=function(){e.history[v?"replaceState":"pushState"](null,k.title,ue[r.route.mode]+ie)},le(ue[r.route.mode]+ie)):(M[r.route.mode]=ie,le(ue[r.route.mode]+ie))}},r.route.param=function(e){if(!ae)throw new Error("You must call m.route(element, defaultRoute, routes) before calling m.route.param()");return ae[e]},r.route.mode="search",r.route.buildQueryString=b,r.route.parseQueryString=E,r.deferred=function(){var e=new O;return e.promise=_(e.promise),e},r.deferred.onerror=function(e){if("[object Error]"===D.call(e)&&!e.constructor.toString().match(/ Error/))throw e},r.sync=function(e){function t(e,t){return function(r){return i[e]=r,t||(n="reject"),0===--a&&(o.promise(i),o[n](i)),r}}var n="resolve",o=r.deferred(),a=e.length,i=new Array(a);if(e.length>0)for(var u=0;u<e.length;u++)e[u].then(t(u,!0),t(u,!1));else o.resolve([]);return o.promise},r.request=function(e){e.background!==!0&&r.startComputation();var t=new O,n=e.dataType&&"jsonp"===e.dataType.toLowerCase(),o=e.serialize=n?T:e.serialize||JSON.stringify,a=e.deserialize=n?T:e.deserialize||JSON.parse,i=n?function(e){return e.responseText}:e.extract||function(e){return 0===e.responseText.length&&a===JSON.parse?null:e.responseText};return e.method=(e.method||"GET").toUpperCase(),e.url=C(e.url,e.data),e=j(e,e.data,o),e.onload=e.onerror=function(n){try{n=n||event;var o=("load"===n.type?e.unwrapSuccess:e.unwrapError)||T,u=o(a(i(n.target,e)),n.target);if("load"===n.type)if(D.call(u)===I&&e.type)for(var l=0;l<u.length;l++)u[l]=new e.type(u[l]);else e.type&&(u=new e.type(u));t["load"===n.type?"resolve":"reject"](u)}catch(n){r.deferred.onerror(n),t.reject(n)}e.background!==!0&&r.endComputation()},N(e),t.promise=_(t.promise,e.initialValue),t.promise},r.deps=function(t){return n(e=t||e),e},r.deps.factory=a,r}("undefined"!=typeof window?window:{});"undefined"!=typeof e&&null!==e&&e.exports?e.exports=o:(r=function(){return o}.call(t,n,t,e),!(void 0!==r&&(e.exports=r)))}).call(t,n(19)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(18),a=r(o),i=n(21),u=r(i),l=n(22),c=r(l),s={};s.controller=function(e){this.store=e.data,this.mSimple=new c["default"]},s.view=function(e){return(0,a["default"])("div",[a["default"].component(u["default"],{data:e.store}),a["default"].component(e.mSimple.m(),{data:e.store})])},t["default"]=s},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(18),a=r(o),i={controller:function(e){var t=this;this.store=e.data,this.count=e.data.getState().counter,this.increment=function(){console.log(t.store),t.store.dispatch({type:"INCREMENT"})},this.decrement=function(){t.store.dispatch({type:"DECREMENT"})},e.data.subscribe(function(){t.count=t.store.getState().counter})},view:function(e){return(0,a["default"])("div",[(0,a["default"])("span",e.count),(0,a["default"])("br"),(0,a["default"])("button",{onclick:e.increment},"+"),(0,a["default"])("button",{onclick:e.decrement},"-")])}};t["default"]=i},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(t,"__esModule",{value:!0});var l=n(18),c=r(l),s=n(23),f=r(s),d=n(24),p=r(d),h=function(e){function t(){return o(this,t),a(this,Object.getPrototypeOf(t).apply(this,arguments))}return i(t,e),u(t,[{key:"controller",value:function(e){this.store=e.data,this.mBtnTest=new p["default"]({tag:"a",label:"Initial Label",size:p["default"].sizes.SMALL})}},{key:"view",value:function(e,t){var n=this.store.getState();return(0,c["default"])(".test",[(0,c["default"])("h1","Hello World !"),(0,c["default"])("p",n.text),(0,c["default"])("button",{onclick:this.clickText},"What time is it ?"),c["default"].component(this.mBtnTest.m(),{label:"Changed Label"})])}},{key:"clickText",value:function(e){e.preventDefault(),this.store.dispatch({type:appActions.TEXT_CHANGE,text:"It's currently: "+(new Date).toTimeString()})}}]),t}(f["default"]);t["default"]=h},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(t){n(this,e),this.options={};var r=this;r.options=Object.assign({},this.options,t),r.mithril={controller:function(){r.controller.apply(r,arguments)},view:function(){return r.view.apply(r,arguments)}}}return r(e,[{key:"reducer",value:function(e){throw TypeError('Method "reducer" should be overriden in children')}},{key:"controller",value:function(e){}},{key:"view",value:function(e){return[]}},{key:"m",value:function(){return this.mithril}}]),e}();t["default"]=o},function(e,t,n){"use strict";function r(e){
2 return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(t,"__esModule",{value:!0});var l=n(23),c=r(l),s=n(18),f=r(s),d=function(e){function t(e){o(this,t);var n=a(this,Object.getPrototypeOf(t).call(this,e));return n.options={tag:"button",label:"Button",size:t.sizes.NORMAL},n}return i(t,e),u(t,[{key:"controller",value:function(e){var t=Object.assign({},this.options,e);this.theme=f["default"].prop(),this.size=f["default"].prop(t.size),this.tag=f["default"].prop(t.tag),this.label=f["default"].prop(t.label)}},{key:"view",value:function(e,t){return(0,f["default"])(this.tag(),this.label())}}]),t}(c["default"]);d.sizes={NORMAL:"BTN_SIZE_NORMAL",SMALL:"BTN_SIZE_SMALL",LARGE:"BTN_SIZE_LARGE"},t["default"]=d}]);
1 !function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}var o=n(1),a=r(o),i=n(17),u=r(i),s={},l=(0,a["default"])(s);window.onload=function(){(0,u["default"])(l)}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=(0,a.compose)((0,a.applyMiddleware)(u["default"]),window.devToolsExtension?window.devToolsExtension():function(e){return e})(a.createStore),n=t(l["default"],e);return n}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o;var a=n(2),i=n(12),u=r(i),s=n(13),l=r(s)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(3),a=r(o),i=n(5),u=r(i),s=n(9),l=r(s),c=n(10),f=r(c),d=n(11),p=r(d);t.createStore=a["default"],t.combineReducers=u["default"],t.bindActionCreators=l["default"],t.applyMiddleware=f["default"],t.compose=p["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){function n(){return l}function r(e){c.push(e);var t=!0;return function(){if(t){t=!1;var n=c.indexOf(e);c.splice(n,1)}}}function o(e){if(!i["default"](e))throw new Error("Actions must be plain objects. Use custom middleware for async actions.");if("undefined"==typeof e.type)throw new Error('Actions may not have an undefined "type" property. Have you misspelled a constant?');if(f)throw new Error("Reducers may not dispatch actions.");try{f=!0,l=s(l,e)}finally{f=!1}return c.slice().forEach(function(e){return e()}),e}function a(e){s=e,o({type:u.INIT})}if("function"!=typeof e)throw new Error("Expected the reducer to be a function.");var s=e,l=t,c=[],f=!1;return o({type:u.INIT}),{dispatch:o,subscribe:r,getState:n,replaceReducer:a}}t.__esModule=!0,t["default"]=o;var a=n(4),i=r(a),u={INIT:"@@redux/INIT"};t.ActionTypes=u},function(e,t){"use strict";function n(e){if(!e||"object"!=typeof e)return!1;var t="function"==typeof e.constructor?Object.getPrototypeOf(e):Object.prototype;if(null===t)return!0;var n=t.constructor;return"function"==typeof n&&n instanceof n&&r(n)===o}t.__esModule=!0,t["default"]=n;var r=function(e){return Function.prototype.toString.call(e)},o=r(Object);e.exports=t["default"]},function(e,t,n){(function(r){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){var n=t&&t.type,r=n&&'"'+n.toString()+'"'||"an action";return'Reducer "'+e+'" returned undefined handling '+r+". To ignore an action, you must explicitly return the previous state."}function i(e,t,n){var r=Object.keys(t),o=n&&n.type===l.ActionTypes.INIT?"initialState argument passed to createStore":"previous state received by the reducer";if(0===r.length)return"Store does not have a valid reducer. Make sure the argument passed to combineReducers is an object whose values are reducers.";if(!f["default"](e))return"The "+o+' has unexpected type of "'+{}.toString.call(e).match(/\s([a-z|A-Z]+)/)[1]+'". Expected argument to be an object with the following '+('keys: "'+r.join('", "')+'"');var a=Object.keys(e).filter(function(e){return r.indexOf(e)<0});return a.length>0?"Unexpected "+(a.length>1?"keys":"key")+" "+('"'+a.join('", "')+'" found in '+o+". ")+"Expected to find one of the known reducer keys instead: "+('"'+r.join('", "')+'". Unexpected keys will be ignored.'):void 0}function u(e){Object.keys(e).forEach(function(t){var n=e[t],r=n(void 0,{type:l.ActionTypes.INIT});if("undefined"==typeof r)throw new Error('Reducer "'+t+'" returned undefined during initialization. If the state passed to the reducer is undefined, you must explicitly return the initial state. The initial state may not be undefined.');var o="@@redux/PROBE_UNKNOWN_ACTION_"+Math.random().toString(36).substring(7).split("").join(".");if("undefined"==typeof n(void 0,{type:o}))throw new Error('Reducer "'+t+'" returned undefined when probed with a random type. '+("Don't try to handle "+l.ActionTypes.INIT+' or other actions in "redux/*" ')+"namespace. They are considered private. Instead, you must return the current state for any unknown actions, unless it is undefined, in which case you must return the initial state, regardless of the action type. The initial state may not be undefined.")})}function s(e){var t,n=v["default"](e,function(e){return"function"==typeof e});try{u(n)}catch(o){t=o}var s=p["default"](n,function(){});return function(e,o){if(void 0===e&&(e=s),t)throw t;var u=!1,l=p["default"](n,function(t,n){var r=e[n],i=t(r,o);if("undefined"==typeof i){var s=a(n,o);throw new Error(s)}return u=u||i!==r,i});if("production"!==r.env.NODE_ENV){var c=i(e,l,o);c&&console.error(c)}return u?l:e}}t.__esModule=!0,t["default"]=s;var l=n(3),c=n(4),f=o(c),d=n(7),p=o(d),h=n(8),v=o(h);e.exports=t["default"]}).call(t,n(6))},function(e,t){function n(){l=!1,i.length?s=i.concat(s):c=-1,s.length&&r()}function r(){if(!l){var e=setTimeout(n);l=!0;for(var t=s.length;t;){for(i=s,s=[];++c<t;)i&&i[c].run();c=-1,t=s.length}i=null,l=!1,clearTimeout(e)}}function o(e,t){this.fun=e,this.array=t}function a(){}var i,u=e.exports={},s=[],l=!1,c=-1;u.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];s.push(new o(e,t)),1!==s.length||l||setTimeout(r,0)},o.prototype.run=function(){this.fun.apply(null,this.array)},u.title="browser",u.browser=!0,u.env={},u.argv=[],u.version="",u.versions={},u.on=a,u.addListener=a,u.once=a,u.off=a,u.removeListener=a,u.removeAllListeners=a,u.emit=a,u.binding=function(e){throw new Error("process.binding is not supported")},u.cwd=function(){return"/"},u.chdir=function(e){throw new Error("process.chdir is not supported")},u.umask=function(){return 0}},function(e,t){"use strict";function n(e,t){return Object.keys(e).reduce(function(n,r){return n[r]=t(e[r],r),n},{})}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";function n(e,t){return Object.keys(e).reduce(function(n,r){return t(e[r])&&(n[r]=e[r]),n},{})}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return function(){return t(e.apply(void 0,arguments))}}function a(e,t){if("function"==typeof e)return o(e,t);if("object"!=typeof e||null===e||void 0===e)throw new Error("bindActionCreators expected an object or a function, instead received "+(null===e?"null":typeof e)+'. Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?');return u["default"](e,function(e){return o(e,t)})}t.__esModule=!0,t["default"]=a;var i=n(7),u=r(i);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return function(e){return function(n,r){var o=e(n,r),i=o.dispatch,s=[],l={getState:o.getState,dispatch:function(e){return i(e)}};return s=t.map(function(e){return e(l)}),i=u["default"].apply(void 0,s)(o.dispatch),a({},o,{dispatch:i})}}}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t["default"]=o;var i=n(11),u=r(i);e.exports=t["default"]},function(e,t){"use strict";function n(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return function(e){return t.reduceRight(function(e,t){return t(e)},e)}}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";function n(e){var t=e.dispatch,n=e.getState;return function(e){return function(r){return"function"==typeof r?r(t,n):e(r)}}}e.exports=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(2),a=n(14),i=r(a),u=n(16),s=r(u);t["default"]=(0,o.combineReducers)({rdxCounter:i["default"],rdxSimple:s["default"]})},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){switch("undefined"==typeof e&&(e={counter:0}),"undefined"==typeof e.counter&&(e.counter=0),t.type){case u["default"].COUNTER_INCREMENT:var n=a({},e,{counter:e.counter+1});return n;case u["default"].COUNTER_DECREMENT:return a({},e,{counter:e.counter-1});default:return e}}var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o;var i=n(15),u=r(i)},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={COUNTER_INCREMENT:"COUNTER_INCREMENT",COUNTER_DECREMENT:"COUNTER_DECREMENT",TEXT_CHANGE:"TEXT_CHANGE"};t["default"]=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!e)return u;switch(t.type){case i["default"].TEXT_CHANGE:return Object.assign({},e,{text:t.text});default:return e}}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o;var a=n(15),i=r(a),u={text:"ZZZ"}},function(e,t,n){(function(e){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(t){var n=i["default"].component(s["default"],{data:t});i["default"].mount(document.getElementById("root"),n),console.log(e.registry)}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=o;var a=n(18),i=r(a),u=n(20),s=r(u);e.registry={}}).call(t,function(){return this}())},function(e,t,n){var r;(function(e){var o=function a(e,t){function n(e){C=e.document,k=e.location,S=e.cancelAnimationFrame||e.clearTimeout,R=e.requestAnimationFrame||e.setTimeout}function r(){var e,t=[].slice.call(arguments),n=!(null==t[1]||U.call(t[1])!==A||"tag"in t[1]||"view"in t[1]||"subtree"in t[1]),r=n?t[1]:{},o="class"in r?"class":"className",a={tag:"div",attrs:{}},i=[];if(U.call(t[0])!=P)throw new Error("selector in m(selector, attrs, children) should be a string");for(;e=B.exec(t[0]);)if(""===e[1]&&e[2])a.tag=e[2];else if("#"===e[1])a.attrs.id=e[2];else if("."===e[1])i.push(e[2]);else if("["===e[3][0]){var u=D.exec(e[3]);a.attrs[u[1]]=u[3]||(u[2]?"":!0)}var s=n?t.slice(2):t.slice(1);1===s.length&&U.call(s[0])===L?a.children=s[0]:a.children=s;for(var l in r)r.hasOwnProperty(l)&&(l===o&&null!=r[l]&&""!==r[l]?(i.push(r[l]),a.attrs[l]=""):a.attrs[l]=r[l]);return i.length>0&&(a.attrs[o]=i.join(" ")),a}function o(e,n,a,l,f,d,p,h,v,y,g){try{(null==f||null==f.toString())&&(f="")}catch(m){f=""}if("retain"===f.subtree)return d;var w=U.call(d),b=U.call(f);if(null==d||w!==b){if(null!=d)if(a&&a.nodes){var _=h-l,O=_+(b===L?f:d.nodes).length;s(a.nodes.slice(_,O),a.slice(_,O))}else d.nodes&&s(d.nodes,d);d=new f.constructor,d.tag&&(d={}),d.nodes=[]}if(b===L){for(var x=0,T=f.length;T>x;x++)U.call(f[x])===L&&(f=f.concat.apply([],f),x--,T=f.length);for(var E=[],M=d.length===f.length,j=0,N=1,k=2,R=3,S={},B=!1,x=0;x<d.length;x++)d[x]&&d[x].attrs&&null!=d[x].attrs.key&&(B=!0,S[d[x].attrs.key]={action:N,index:x});for(var D=0,x=0,T=f.length;T>x;x++)if(f[x]&&f[x].attrs&&null!=f[x].attrs.key){for(var $=0,T=f.length;T>$;$++)f[$]&&f[$].attrs&&null==f[$].attrs.key&&(f[$].attrs.key="__mithril__"+D++);break}if(B){var H=!1;if(f.length!=d.length)H=!0;else for(var J,q,x=0;J=d[x],q=f[x];x++)if(J.attrs&&q.attrs&&J.attrs.key!=q.attrs.key){H=!0;break}if(H){for(var x=0,T=f.length;T>x;x++)if(f[x]&&f[x].attrs&&null!=f[x].attrs.key){var F=f[x].attrs.key;S[F]?S[F]={action:R,index:x,from:S[F].index,element:d.nodes[S[F].index]||C.createElement("div")}:S[F]={action:k,index:x}}var K=[];for(var V in S)K.push(S[V]);var X=K.sort(i),Z=new Array(d.length);Z.nodes=d.nodes.slice();for(var W,x=0;W=X[x];x++){if(W.action===N&&(s(d[W.index].nodes,d[W.index]),Z.splice(W.index,1)),W.action===k){var Q=C.createElement("div");Q.key=f[W.index].attrs.key,e.insertBefore(Q,e.childNodes[W.index]||null),Z.splice(W.index,0,{attrs:{key:f[W.index].attrs.key},nodes:[Q]}),Z.nodes[W.index]=Q}W.action===R&&(e.childNodes[W.index]!==W.element&&null!==W.element&&e.insertBefore(W.element,e.childNodes[W.index]||null),Z[W.index]=d[W.from],Z.nodes[W.index]=W.element)}d=Z}}for(var x=0,Y=0,T=f.length;T>x;x++){var te=o(e,n,d,h,f[x],d[Y],p,h+j||j,v,y,g);te!==t&&(te.nodes.intact||(M=!1),j+=te.$trusted?(te.match(/<[^\/]|\>\s*[^<]/g)||[0]).length:U.call(te)===L?te.length:1,d[Y++]=te)}if(!M){for(var x=0,T=f.length;T>x;x++)null!=d[x]&&E.push.apply(E,d[x].nodes);for(var ne,x=0;ne=d.nodes[x];x++)null!=ne.parentNode&&E.indexOf(ne)<0&&s([ne],[d[x]]);f.length<d.length&&(d.length=f.length),d.nodes=E}}else if(null!=f&&b===A){for(var oe=[],ae=[];f.view;){var ie=f.view.$original||f.view,ue="diff"==r.redraw.strategy()&&d.views?d.views.indexOf(ie):-1,se=ue>-1?d.controllers[ue]:new(f.controller||G),F=f&&f.attrs&&f.attrs.key;if(f=0==re||d&&d.controllers&&d.controllers.indexOf(se)>-1?f.view(se):{tag:"placeholder"},"retain"===f.subtree)return d;F&&(f.attrs||(f.attrs={}),f.attrs.key=F),se.onunload&&ee.push({controller:se,handler:se.onunload}),oe.push(ie),ae.push(se)}if(!f.tag&&ae.length)throw new Error("Component template must return a virtual element, not an array, string, etc.");f.attrs||(f.attrs={}),d.attrs||(d.attrs={});var le=Object.keys(f.attrs),ce=le.length>("key"in f.attrs?1:0);if((f.tag!=d.tag||le.sort().join()!=Object.keys(d.attrs).sort().join()||f.attrs.id!=d.attrs.id||f.attrs.key!=d.attrs.key||"all"==r.redraw.strategy()&&(!d.configContext||d.configContext.retain!==!0)||"diff"==r.redraw.strategy()&&d.configContext&&d.configContext.retain===!1)&&(d.nodes.length&&s(d.nodes),d.configContext&&typeof d.configContext.onunload===I&&d.configContext.onunload(),d.controllers))for(var se,x=0;se=d.controllers[x];x++)typeof se.onunload===I&&se.onunload({preventDefault:G});if(U.call(f.tag)!=P)return;var ne,fe=0===d.nodes.length;if(f.attrs.xmlns?y=f.attrs.xmlns:"svg"===f.tag?y="http://www.w3.org/2000/svg":"math"===f.tag&&(y="http://www.w3.org/1998/Math/MathML"),fe){if(ne=f.attrs.is?y===t?C.createElement(f.tag,f.attrs.is):C.createElementNS(y,f.tag,f.attrs.is):y===t?C.createElement(f.tag):C.createElementNS(y,f.tag),d={tag:f.tag,attrs:ce?u(ne,f.tag,f.attrs,{},y):f.attrs,children:null!=f.children&&f.children.length>0?o(ne,f.tag,t,t,f.children,d.children,!0,0,f.attrs.contenteditable?ne:v,y,g):f.children,nodes:[ne]},ae.length){d.views=oe,d.controllers=ae;for(var se,x=0;se=ae[x];x++)if(se.onunload&&se.onunload.$old&&(se.onunload=se.onunload.$old),re&&se.onunload){var de=se.onunload;se.onunload=G,se.onunload.$old=de}}d.children&&!d.children.nodes&&(d.children.nodes=[]),"select"===f.tag&&"value"in f.attrs&&u(ne,f.tag,{value:f.attrs.value},{},y),e.insertBefore(ne,e.childNodes[h]||null)}else ne=d.nodes[0],ce&&u(ne,f.tag,f.attrs,d.attrs,y),d.children=o(ne,f.tag,t,t,f.children,d.children,!1,0,f.attrs.contenteditable?ne:v,y,g),d.nodes.intact=!0,ae.length&&(d.views=oe,d.controllers=ae),p===!0&&null!=ne&&e.insertBefore(ne,e.childNodes[h]||null);if(typeof f.attrs.config===I){var pe=d.configContext=d.configContext||{},he=function(e,t){return function(){return e.attrs.config.apply(e,t)}};g.push(he(f,[ne,!fe,pe,d]))}}else if(typeof f!=I){var E;0===d.nodes.length?(f.$trusted?E=c(e,h,f):(E=[C.createTextNode(f)],e.nodeName.match(z)||e.insertBefore(E[0],e.childNodes[h]||null)),d="string number boolean".indexOf(typeof f)>-1?new f.constructor(f):f,d.nodes=E):d.valueOf()!==f.valueOf()||p===!0?(E=d.nodes,v&&v===C.activeElement||(f.$trusted?(s(E,d),E=c(e,h,f)):"textarea"===n?e.value=f:v?v.innerHTML=f:((1===E[0].nodeType||E.length>1)&&(s(d.nodes,d),E=[C.createTextNode(f)]),e.insertBefore(E[0],e.childNodes[h]||null),E[0].nodeValue=f)),d=new f.constructor(f),d.nodes=E):d.nodes.intact=!0}return d}function i(e,t){return e.action-t.action||e.index-t.index}function u(e,t,n,r,o){for(var a in n){var i=n[a],u=r[a];if(a in r&&u===i)"value"===a&&"input"===t&&e.value!=i&&(e.value=i);else{r[a]=i;try{if("config"===a||"key"==a)continue;if(typeof i===I&&0===a.indexOf("on"))e[a]=f(i,e);else if("style"===a&&null!=i&&U.call(i)===A){for(var s in i)(null==u||u[s]!==i[s])&&(e.style[s]=i[s]);for(var s in u)s in i||(e.style[s]="")}else null!=o?"href"===a?e.setAttributeNS("http://www.w3.org/1999/xlink","href",i):"className"===a?e.setAttribute("class",i):e.setAttribute(a,i):a in e&&"list"!==a&&"style"!==a&&"form"!==a&&"type"!==a&&"width"!==a&&"height"!==a?("input"!==t||e[a]!==i)&&(e[a]=i):e.setAttribute(a,i)}catch(l){if(l.message.indexOf("Invalid argument")<0)throw l}}}return r}function s(e,t){for(var n=e.length-1;n>-1;n--)if(e[n]&&e[n].parentNode){try{e[n].parentNode.removeChild(e[n])}catch(r){}t=[].concat(t),t[n]&&l(t[n])}0!=e.length&&(e.length=0)}function l(e){if(e.configContext&&typeof e.configContext.onunload===I&&(e.configContext.onunload(),e.configContext.onunload=null),e.controllers)for(var t,n=0;t=e.controllers[n];n++)typeof t.onunload===I&&t.onunload({preventDefault:G});if(e.children)if(U.call(e.children)===L)for(var r,n=0;r=e.children[n];n++)l(r);else e.children.tag&&l(e.children)}function c(e,t,n){var r=e.childNodes[t];if(r){var o=1!=r.nodeType,a=C.createElement("span");o?(e.insertBefore(a,r||null),a.insertAdjacentHTML("beforebegin",n),e.removeChild(a)):r.insertAdjacentHTML("beforebegin",n)}else e.insertAdjacentHTML("beforeend",n);for(var i=[];e.childNodes[t]!==r;)i.push(e.childNodes[t]),t++;return i}function f(e,t){return function(n){n=n||event,r.redraw.strategy("diff"),r.startComputation();try{return e.call(t,n)}finally{oe()}}}function d(e){var t=J.indexOf(e);return 0>t?J.push(e)-1:t}function p(e){var t=function(){return arguments.length&&(e=arguments[0]),e};return t.toJSON=function(){return e},t}function h(e,t){var n=function(){return(e.controller||G).apply(this,t)||this},r=function(n){return arguments.length>1&&(t=t.concat([].slice.call(arguments,1))),e.view.apply(e,t?[n].concat(t):[n])};r.$original=e.view;var o={controller:n,view:r};return t[0]&&null!=t[0].key&&(o.attrs={key:t[0].key}),o}function v(){Q&&(Q(),Q=null);for(var e,t=0;e=K[t];t++)if(X[t]){var n=V[t].controller&&V[t].controller.$$args?[X[t]].concat(V[t].controller.$$args):[X[t]];r.render(e,V[t].view?V[t].view(X[t],n):"")}Y&&(Y(),Y=null),Z=null,W=new Date,r.redraw.strategy("diff")}function y(e){return e.slice(ue[r.route.mode].length)}function g(e,t,n){ae={};var o=n.indexOf("?");-1!==o&&(ae=_(n.substr(o+1,n.length)),n=n.substr(0,o));var a=Object.keys(t),i=a.indexOf(n);if(-1!==i)return r.mount(e,t[a[i]]),!0;for(var u in t){if(u===n)return r.mount(e,t[u]),!0;var s=new RegExp("^"+u.replace(/:[^\/]+?\.{3}/g,"(.*?)").replace(/:[^\/]+/g,"([^\\/]+)")+"/?$");if(s.test(n))return n.replace(s,function(){for(var n=u.match(/:[^\/]+/g)||[],o=[].slice.call(arguments,1,-2),a=0,i=n.length;i>a;a++)ae[n[a].replace(/:|\./g,"")]=decodeURIComponent(o[a]);r.mount(e,t[u])}),!0}}function m(e){if(e=e||event,!e.ctrlKey&&!e.metaKey&&2!==e.which){e.preventDefault?e.preventDefault():e.returnValue=!1;for(var t=e.currentTarget||e.srcElement,n="pathname"===r.route.mode&&t.search?_(t.search.slice(1)):{};t&&"A"!=t.nodeName.toUpperCase();)t=t.parentNode;r.route(t[r.route.mode].slice(ue[r.route.mode].length),n)}}function w(){"hash"!=r.route.mode&&k.hash?k.hash=k.hash:e.scrollTo(0,0)}function b(e,n){var r={},o=[];for(var a in e){var i=n?n+"["+a+"]":a,u=e[a],s=U.call(u),l=null===u?encodeURIComponent(i):s===A?b(u,i):s===L?u.reduce(function(e,t){return r[i]||(r[i]={}),r[i][t]?e:(r[i][t]=!0,e.concat(encodeURIComponent(i)+"="+encodeURIComponent(t)))},[]).join("&"):encodeURIComponent(i)+"="+encodeURIComponent(u);u!==t&&o.push(l)}return o.join("&")}function _(e){"?"===e.charAt(0)&&(e=e.substring(1));for(var t=e.split("&"),n={},r=0,o=t.length;o>r;r++){var a=t[r].split("="),i=decodeURIComponent(a[0]),u=2==a.length?decodeURIComponent(a[1]):null;null!=n[i]?(U.call(n[i])!==L&&(n[i]=[n[i]]),n[i].push(u)):n[i]=u}return n}function O(e){var n=d(e);s(e.childNodes,q[n]),q[n]=t}function x(e,t){var n=r.prop(t);return e.then(n),n.then=function(n,r){return x(e.then(n,r),t)},n}function T(e,t){function n(e){f=e||l,p.map(function(e){f===s&&e.resolve(d)||e.reject(d)})}function o(e,t,n,o){if((null!=d&&U.call(d)===A||typeof d===I)&&typeof e===I)try{var a=0;e.call(d,function(e){a++||(d=e,t())},function(e){a++||(d=e,n())})}catch(i){r.deferred.onerror(i),d=i,n()}else o()}function a(){var l;try{l=d&&d.then}catch(p){return r.deferred.onerror(p),d=p,f=u,a()}o(l,function(){f=i,a()},function(){f=u,a()},function(){try{f===i&&typeof e===I?d=e(d):f===u&&"function"==typeof t&&(d=t(d),f=i)}catch(a){return r.deferred.onerror(a),d=a,n()}d===c?(d=TypeError(),n()):o(l,function(){n(s)},n,function(){n(f===i&&s)})})}var i=1,u=2,s=3,l=4,c=this,f=0,d=0,p=[];c.promise={},c.resolve=function(e){return f||(d=e,f=i,a()),this},c.reject=function(e){return f||(d=e,f=u,a()),this},c.promise.then=function(e,t){var n=new T(e,t);return f===s?n.resolve(d):f===l?n.reject(d):p.push(n),n.promise}}function E(e){return e}function M(n){if(!n.dataType||"jsonp"!==n.dataType.toLowerCase()){var r=new e.XMLHttpRequest;if(r.open(n.method,n.url,!0,n.user,n.password),r.onreadystatechange=function(){4===r.readyState&&(r.status>=200&&r.status<300?n.onload({type:"load",target:r}):n.onerror({type:"error",target:r}))},n.serialize===JSON.stringify&&n.data&&"GET"!==n.method&&r.setRequestHeader("Content-Type","application/json; charset=utf-8"),n.deserialize===JSON.parse&&r.setRequestHeader("Accept","application/json, text/*"),typeof n.config===I){var o=n.config(r,n);null!=o&&(r=o)}var a="GET"!==n.method&&n.data?n.data:"";if(a&&U.call(a)!=P&&a.constructor!=e.FormData)throw"Request data should be either be a string or FormData. Check the `serialize` option in `m.request`";return r.send(a),r}var i="mithril_callback_"+(new Date).getTime()+"_"+Math.round(1e16*Math.random()).toString(36),u=C.createElement("script");e[i]=function(r){u.parentNode.removeChild(u),n.onload({type:"load",target:{responseText:r}}),e[i]=t},u.onerror=function(r){return u.parentNode.removeChild(u),n.onerror({type:"error",target:{status:500,responseText:JSON.stringify({error:"Error making jsonp request"})}}),e[i]=t,!1},u.onload=function(e){return!1},u.src=n.url+(n.url.indexOf("?")>0?"&":"?")+(n.callbackKey?n.callbackKey:"callback")+"="+i+"&"+b(n.data||{}),C.body.appendChild(u)}function j(e,t,n){if("GET"===e.method&&"jsonp"!=e.dataType){var r=e.url.indexOf("?")<0?"?":"&",o=b(t);e.url=e.url+(o?r+o:"")}else e.data=n(t);return e}function N(e,t){var n=e.match(/:[a-z]\w+/gi);if(n&&t)for(var r=0;r<n.length;r++){var o=n[r].slice(1);e=e.replace(n[r],t[o]),delete t[o]}return e}var C,k,R,S,A="[object Object]",L="[object Array]",P="[object String]",I="function",U={}.toString,B=/(?:(^|#|\.)([^#\.\[\]]+))|(\[.+?\])/g,D=/\[(.+?)(?:=("|'|)(.*?)\2)?\]/,z=/^(AREA|BASE|BR|COL|COMMAND|EMBED|HR|IMG|INPUT|KEYGEN|LINK|META|PARAM|SOURCE|TRACK|WBR)$/,G=function(){};n(e);var $,H={appendChild:function(e){$===t&&($=C.createElement("html")),C.documentElement&&C.documentElement!==e?C.replaceChild(e,C.documentElement):C.appendChild(e),this.childNodes=C.childNodes},insertBefore:function(e){this.appendChild(e)},childNodes:[]},J=[],q={};r.render=function(e,n,r){var a=[];if(!e)throw new Error("Ensure the DOM element being passed to m.route/m.mount/m.render is not undefined.");var i=d(e),u=e===C,l=u||e===C.documentElement?H:e;u&&"html"!=n.tag&&(n={tag:"html",attrs:{},children:n}),q[i]===t&&s(l.childNodes),r===!0&&O(e),q[i]=o(l,null,t,t,n,q[i],!1,0,null,t,a);for(var c=0,f=a.length;f>c;c++)a[c]()},r.trust=function(e){return e=new String(e),e.$trusted=!0,e},r.prop=function(e){return(null!=e&&U.call(e)===A||typeof e===I)&&typeof e.then===I?x(e):p(e)};var F,K=[],V=[],X=[],Z=null,W=0,Q=null,Y=null,ee=[],te=16;r.component=function(e){return h(e,[].slice.call(arguments,1))},r.mount=r.module=function(e,t){if(!e)throw new Error("Please ensure the DOM element exists before rendering a template into it.");var n=K.indexOf(e);0>n&&(n=K.length);for(var o,a=!1,i={preventDefault:function(){a=!0,Q=Y=null}},u=0;o=ee[u];u++)o.handler.call(o.controller,i),o.controller.onunload=null;if(a)for(var o,u=0;o=ee[u];u++)o.controller.onunload=o.handler;else ee=[];if(X[n]&&typeof X[n].onunload===I&&X[n].onunload(i),!a){r.redraw.strategy("all"),r.startComputation(),K[n]=e,arguments.length>2&&(t=subcomponent(t,[].slice.call(arguments,2)));var s=F=t=t||{controller:function(){}},l=t.controller||G,c=new l;return s===F&&(X[n]=c,V[n]=t),oe(),X[n]}};var ne=!1;r.redraw=function(t){ne||(ne=!0,Z&&t!==!0?(R===e.requestAnimationFrame||new Date-W>te)&&(Z>0&&S(Z),Z=R(v,te)):(v(),Z=R(function(){Z=null},te)),ne=!1)},r.redraw.strategy=r.prop();var re=0;r.startComputation=function(){re++},r.endComputation=function(){re=Math.max(re-1,0),0===re&&r.redraw()};var oe=function(){"none"==r.redraw.strategy()?(re--,r.redraw.strategy("diff")):r.endComputation()};r.withAttr=function(e,t){return function(n){n=n||event;var r=n.currentTarget||this;t(e in r?r[e]:r.getAttribute(e))}};var ae,ie,ue={pathname:"",hash:"#",search:"?"},se=G,le=!1;return r.route=function(){if(0===arguments.length)return ie;if(3===arguments.length&&U.call(arguments[1])===P){var t=arguments[0],n=arguments[1],o=arguments[2];se=function(e){var a=ie=y(e);if(!g(t,o,a)){if(le)throw new Error("Ensure the default route matches one of the routes defined in m.route");le=!0,r.route(n,!0),le=!1}};var a="hash"===r.route.mode?"onhashchange":"onpopstate";e[a]=function(){var e=k[r.route.mode];"pathname"===r.route.mode&&(e+=k.search),ie!=y(e)&&se(e)},Q=w,e[a]()}else if(arguments[0].addEventListener||arguments[0].attachEvent){var i=arguments[0],u=(arguments[1],arguments[2],arguments[3]);i.href=("pathname"!==r.route.mode?k.pathname:"")+ue[r.route.mode]+u.attrs.href,i.addEventListener?(i.removeEventListener("click",m),i.addEventListener("click",m)):(i.detachEvent("onclick",m),i.attachEvent("onclick",m))}else if(U.call(arguments[0])===P){var s=ie;ie=arguments[0];var l=arguments[1]||{},c=ie.indexOf("?"),f=c>-1?_(ie.slice(c+1)):{};for(var d in l)f[d]=l[d];var p=b(f),h=c>-1?ie.slice(0,c):ie;p&&(ie=h+(-1===h.indexOf("?")?"?":"&")+p);var v=(3===arguments.length?arguments[2]:arguments[1])===!0||s===arguments[0];e.history.pushState?(Q=w,Y=function(){e.history[v?"replaceState":"pushState"](null,C.title,ue[r.route.mode]+ie)},se(ue[r.route.mode]+ie)):(k[r.route.mode]=ie,se(ue[r.route.mode]+ie))}},r.route.param=function(e){if(!ae)throw new Error("You must call m.route(element, defaultRoute, routes) before calling m.route.param()");return ae[e]},r.route.mode="search",r.route.buildQueryString=b,r.route.parseQueryString=_,r.deferred=function(){var e=new T;return e.promise=x(e.promise),e},r.deferred.onerror=function(e){if("[object Error]"===U.call(e)&&!e.constructor.toString().match(/ Error/))throw e},r.sync=function(e){function t(e,t){return function(r){return i[e]=r,t||(n="reject"),0===--a&&(o.promise(i),o[n](i)),r}}var n="resolve",o=r.deferred(),a=e.length,i=new Array(a);if(e.length>0)for(var u=0;u<e.length;u++)e[u].then(t(u,!0),t(u,!1));else o.resolve([]);return o.promise},r.request=function(e){e.background!==!0&&r.startComputation();var t=new T,n=e.dataType&&"jsonp"===e.dataType.toLowerCase(),o=e.serialize=n?E:e.serialize||JSON.stringify,a=e.deserialize=n?E:e.deserialize||JSON.parse,i=n?function(e){return e.responseText}:e.extract||function(e){return 0===e.responseText.length&&a===JSON.parse?null:e.responseText};return e.method=(e.method||"GET").toUpperCase(),e.url=N(e.url,e.data),e=j(e,e.data,o),e.onload=e.onerror=function(n){try{n=n||event;var o=("load"===n.type?e.unwrapSuccess:e.unwrapError)||E,u=o(a(i(n.target,e)),n.target);if("load"===n.type)if(U.call(u)===L&&e.type)for(var s=0;s<u.length;s++)u[s]=new e.type(u[s]);else e.type&&(u=new e.type(u));t["load"===n.type?"resolve":"reject"](u)}catch(n){r.deferred.onerror(n),t.reject(n)}e.background!==!0&&r.endComputation()},M(e),t.promise=x(t.promise,e.initialValue),t.promise},r.deps=function(t){return n(e=t||e),e},r.deps.factory=a,r}("undefined"!=typeof window?window:{});"undefined"!=typeof e&&null!==e&&e.exports?e.exports=o:(r=function(){return o}.call(t,n,t,e),!(void 0!==r&&(e.exports=r)))}).call(t,n(19)(e))},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(18),a=r(o),i=n(21),u=r(i),s=n(22),l=r(s),c={};c.controller=function(e){this.store=e.data,this.mSimple=new l["default"]},c.view=function(e){return(0,a["default"])("div",[a["default"].component(u["default"],{data:e.store}),a["default"].component(e.mSimple.m(),{data:e.store})])},t["default"]=c},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(18),a=r(o),i={controller:function(e){var t=this;this.store=e.data,this.count=e.data.getState().counter,this.increment=function(){console.log(t.store),t.store.dispatch({type:"INCREMENT"})},this.decrement=function(){t.store.dispatch({type:"DECREMENT"})},e.data.subscribe(function(){t.count=t.store.getState().counter})},view:function(e){return(0,a["default"])("div",[(0,a["default"])("span",e.count),(0,a["default"])("br"),(0,a["default"])("button",{onclick:e.increment},"+"),(0,a["default"])("button",{onclick:e.decrement},"-")])}};t["default"]=i},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var s=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(t,"__esModule",{value:!0});var l=n(18),c=o(l),f=n(23),d=o(f),p=n(24),h=r(p),v=function(e){function t(){return a(this,t),i(this,Object.getPrototypeOf(t).apply(this,arguments))}return u(t,e),s(t,[{key:"controller",value:function(e){this.store=e.data,this.mBtnTest=new h.component({tag:"a",label:"Initial Label",size:h.sizes.SMALL})}},{key:"view",value:function(e,t){var n=this.store.getState();return(0,c["default"])(".test",[(0,c["default"])("h1","Hello World !"),(0,c["default"])("p",n.text),(0,c["default"])("button",{onclick:this.clickText},"What time is it ?"),c["default"].component(this.mBtnTest.m(),{label:"Changed Label"})])}},{key:"clickText",value:function(e){e.preventDefault(),this.store.dispatch({type:appActions.TEXT_CHANGE,text:"It's currently: "+(new Date).toTimeString()})}}]),t}(d["default"]);t["default"]=v},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(t){n(this,e),this.options={};var r=this;r.options=Object.assign({},this.options,t),r.mithril={controller:function(){r.model(),r.controller.apply(r,arguments)},view:function(){return r.view.apply(r,arguments)}}}return r(e,[{key:"reducer",value:function(e){throw TypeError('Method "reducer" should be overriden in children');
2 }},{key:"model",value:function(e){}},{key:"controller",value:function(e){}},{key:"view",value:function(e){return[]}},{key:"m",value:function(){return this.mithril}}]),e}();t["default"]=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var u=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=n(23),l=r(s),c=n(18),f=r(c),d=n(25),p=r(d),h=n(26),v=r(h),y=n(27),g=(r(y),function(e){function t(e){o(this,t);var n=a(this,Object.getPrototypeOf(t).call(this,e));return n.options={tag:"button",label:"Button",size:p["default"].NORMAL},n}return i(t,e),u(t,[{key:"model",value:function(){this.theme=f["default"].prop(),this.tag=f["default"].prop(this.options.tag),this.label=f["default"].prop(this.options.label),this.descriptor=f["default"].prop(this.tag())}},{key:"controller",value:function(e){var t=Object.assign({},this.options,e);this.tag=f["default"].prop(t.tag),this.label=f["default"].prop(t.label),this.descriptor=f["default"].prop(t.tag+v["default"].MBUTTON),t.size!=p["default"].NORMAL&&(this.descriptor=f["default"].prop(this.descriptor()+v["default"][t.size]))}},{key:"view",value:function(e,t){return(0,f["default"])(this.descriptor(),this.label())}}]),t}(l["default"]));e.exports={component:g,sizes:p["default"]}},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={NORMAL:"MBUTTON",SMALL:"MBUTTON_SMALL",LARGE:"MBUTTON_LARGE"};t["default"]=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(25),a=(r(o),".mButton"),i={MBUTTON:a,MBUTTON_SMALL:a+"-small",MBUTTON_LARGE:a+"-large"};t["default"]=i},function(e,t,n){(function(e){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}var o=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};Object.defineProperty(t,"__esModule",{value:!0});var a=n(28),i=r(a),u=n(42),s=r(u),l=n(43),c=r(l),f=n(25),d=r(f),p=n(44),h=r(p),v=n(26),y=r(v);i["default"].use((0,s["default"])()),i["default"].use((0,c["default"])());var g="green",m=function(e){var t=void 0;switch(e){case d["default"].SMALL:t=".2rem";break;case d["default"].LARGE:t="1rem";break;default:t=".5rem"}return{padding:t}},w={};w[y["default"].MBUTTON]=o({},m(d["default"].NORMAL),{color:g}),w[y["default"].MBUTTON_SMALL]=o({},m(d["default"].SMALL)),w[y["default"].MBUTTON_LARGE]=o({},m(d["default"].LARGE));for(var b in h["default"])"default"==b?w[y["default"].MBUTTON]=o({},w[y["default"].MBUTTON],h["default"][b]):w[y["default"].MBUTTON+".t-"+b.toLowerCase()]=h["default"][b];var _=i["default"].createStyleSheet(w,{named:!1}).attach();e.jssStyle=Object.assign({},e.jssStyle,_),t["default"]=_}).call(t,function(){return this}())},function(e,t,n){/**
3 * StyleSheets written in javascript.
4 *
5 * @copyright Oleg Slobodskoi 2015
6 * @website https://github.com/jsstyles/jss
7 * @license MIT
8 */
9 "use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o=n(29),a=r(o);t["default"]=new a["default"],e.exports=t["default"]},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},u=n(30),s=o(u),l=n(41),c=o(l),f=n(33),d=r(f),p=n(31),h=o(p),v=n(38),y=o(v),g=function(){function e(){a(this,e),this.plugins=new c["default"],this.uid=d}return e.prototype.create=function(){return new e},e.prototype.createStyleSheet=function(e,t){return new s["default"](e,i({},t,{jss:this}))},e.prototype.createRule=function(e,t,n){"object"==typeof e&&(n=t,t=e,e=null);var r=h["default"](e,t,i({},n,{jss:this,Renderer:y["default"](n)}));return this.plugins.run(r),r},e.prototype.use=function(e){return this.plugins.use(e),this},e}();t["default"]=g,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(31),u=r(i),s=n(38),l=r(s),c=function(){function e(t,n){o(this,e),this.options=a({},n),null==this.options.named&&(this.options.named=!0),this.rules=Object.create(null),this.classes=Object.create(null),this.attached=!1,this.deployed=!1,this.linked=!1;var r=l["default"](this.options);this.options.Renderer=r,this.renderer=new r(this.options);for(var i in t)this.createRule(i,t[i])}return e.prototype.attach=function(){return this.attached?this:(this.deployed||this.deploy(),this.renderer.attach(),!this.linked&&this.options.link&&this.link(),this.attached=!0,this)},e.prototype.detach=function(){return this.attached?(this.renderer.detach(),this.attached=!1,this):this},e.prototype.addRule=function(e,t){var n=this.createRule(e,t);if(this.deployed){var r=this.renderer.insertRule(n);this.options.link&&(n.renderable=r)}return n},e.prototype.addRules=function(e){var t=[];for(var n in e)t.push(this.addRule(n,e[n]));return t},e.prototype.getRule=function(e){return this.rules[e]},e.prototype.toString=function(e){var t=this.rules,n=Object.create(null),r="";for(var o in t){var a=t[o];n[a.id]||(r&&(r+="\n"),r+=t[o].toString(e),n[a.id]=!0)}return r},e.prototype.createRule=function(e,t,n){n=a({},n,{sheet:this,jss:this.options.jss,Renderer:this.options.Renderer}),null==n.named&&(n.named=this.options.named);var r=u["default"](e,t,n);return"conditional"===r.type?this.rules[r.selector]=r:"simple"===r.type?this.rules[r.name]=r:r.options.parent&&"conditional"===r.options.parent.type?r.options.named&&(this.classes[e]=r.className):(this.rules[r.selector]=r,n.named&&(this.rules[e]=r,this.classes[e]=r.className)),n.jss.plugins.run(r),r},e.prototype.deploy=function(){return this.renderer.deploy(this),this.deployed=!0,this},e.prototype.link=function(){var e=this.renderer.getRules();for(var t in e){var n=this.rules[t];n&&(n.renderable=e[t])}return this.linked=!0,this},e}();t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],n=arguments.length<=2||void 0===arguments[2]?{}:arguments[2];if(e&&"@"===e[0]){var r=v.exec(e)[0],o=h[r];return"@font-face"===r&&n.named&&(n=a({},n,{named:!1})),new o(e,t,n)}return null==n.named&&(n.named=!0),new u["default"](e,t,n)}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e};t["default"]=o;var i=n(32),u=r(i),s=n(35),l=r(s),c=n(36),f=r(c),d=n(37),p=r(d),h={"@charset":l["default"],"@import":l["default"],"@namespace":l["default"],"@keyframes":f["default"],"@media":p["default"],"@supports":p["default"],"@font-face":u["default"]},v=/^@[^ ]+/;e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){for(var n="",r=0;e>r;r++)n+=" ";return n+t}t.__esModule=!0;var u=n(33),s=o(u),l=n(34),c=r(l),f=function(){function e(t,n,r){a(this,e),this.id=s.get(),this.type="regular",this.options=r,this.selector=t,r.named&&(this.name=t,this.className=r.className||(this.name?this.name+"--"+this.id:this.id),this.selector="."+this.className),this.originalStyle=n,this.style=c["default"](n)}return e.prototype.prop=function(e,t){var n=this.options.Renderer.style;return null!=t?(this.style[e]=t,this.renderable&&n(this.renderable,e,t),this):(this.renderable&&null==this.style[e]&&(this.style[e]=n(this.renderable,e)),this.style[e])},e.prototype.applyTo=function(e){for(var t in this.style){var n=this.style[t],r=this.options.Renderer.style;if(Array.isArray(n))for(var o=0;o<n.length;o++)r(e,t,n[o]);else r(e,t,n)}return this},e.prototype.toJSON=function(){var e=Object.create(null);for(var t in this.style)"object"!=typeof this.style[t]&&(e[t]=this.style[t]);return e},e.prototype.toString=function(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],t=null==e.selector?!0:e.selector,n=e.indentationLevel||0,r="";t&&(r+=i(n,this.selector+" {"),n++);for(var o in this.style){var a=this.style[o];if(Array.isArray(a))for(var u=0;u<a.length;u++)r+="\n"+i(n,o+": "+a[u]+";");else r+="\n"+i(n,o+": "+a+";")}return t&&(r+="\n"+i(--n,"}")),r},e}();t["default"]=f,e.exports=t["default"]},function(e,t){(function(e){"use strict";function n(){return"jss-"+i+"-"+u++}function r(){u=0}t.__esModule=!0,t.get=n,t.reset=r;var o="undefined"==typeof window?e:window,a="__JSS_VERSION_COUNTER__";null==o[a]&&(o[a]=0);var i=o[a]++,u=0}).call(t,function(){return this}())},function(e,t){"use strict";function n(e){return o(r(e))}t.__esModule=!0,t["default"]=n;var r=JSON.stringify,o=JSON.parse;e.exports=t["default"]},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var a=n(33),i=r(a),u=function(){function e(t,n,r){o(this,e),this.id=i.get(),this.type="simple",this.name=t,this.value=n,this.options=r}return e.prototype.toString=function(){return this.name+" "+this.value+";"},e}();t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(33),u=r(i),s=function(){function e(t,n,r){o(this,e),this.id=u.get(),this.type="keyframe",this.selector=t,this.options=r,this.frames=this.formatFrames(n)}return e.prototype.formatFrames=function(e){var t=Object.create(null);for(var n in e){var r=a({},this.options,{named:!1,parent:this});t[n]=this.options.jss.createRule(n,e[n],r)}return t},e.prototype.toString=function(){var e=this.selector+" {\n",t={indentationLevel:1};for(var n in this.frames)e+=this.frames[n].toString(t)+"\n";return e+="}"},e}();t["default"]=s,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i=n(33),u=r(i),s=function(){function e(t,n,r){o(this,e),this.id=u.get(),this.type="conditional",this.selector=t,this.options=a({},r,{parent:this}),this.rules=this.createChildRules(n)}return e.prototype.createChildRules=function(e){var t=Object.create(null),n=this.options,r=n.sheet,o=n.jss;for(var i in e){var u=this.options,s=this.options.sheet&&this.options.sheet.getRule(i);s&&(u=a({},this.options,{className:s.className})),t[i]=(r||o).createRule(i,e[i],u)}return t},e.prototype.toString=function(){var e=this.selector+" {\n";for(var t in this.rules){var n=this.rules[t].toString({indentationLevel:1});e+=n+"\n"}return e+="}"},e}();t["default"]=s,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){var e=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];return e.Renderer?e.Renderer:e.virtual||"undefined"==typeof document?s["default"]:i["default"]}t.__esModule=!0,t["default"]=o;var a=n(39),i=r(a),u=n(40),s=r(u);e.exports=t["default"]},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var r=function(){function e(t){n(this,e),this.head=document.head||document.getElementsByTagName("head")[0],this.element=document.createElement("style"),this.element.type="text/css",t.media&&this.element.setAttribute("media",t.media),t.meta&&this.element.setAttribute("data-meta",t.meta)}return e.style=function(e,t,n){try{if(null==n)return e.style[t];e.style[t]=n}catch(r){}},e.prototype.attach=function(){this.head.appendChild(this.element)},e.prototype.detach=function(){this.element.parentNode.removeChild(this.element)},e.prototype.deploy=function(e){var t="\n"+e.toString()+"\n";"sheet"in this.element?this.element.innerHTML=t:"styleSheet"in this.element&&(this.element.styleSheet.cssText=t)},e.prototype.insertRule=function(e){var t=this.element.sheet||this.element.styleSheet,n=t.cssRules||t.rules,r=n.length;return t.insertRule?t.insertRule(e.toString(),r):t.addRule(e.selector,e.toString({selector:!1}),r),n[r]},e.prototype.getRules=function(){for(var e=this.element.sheet||this.element.styleSheet,t=e.rules||e.cssRules,n=Object.create(null),r=0;r<t.length;r++){var o=t[r];n[o.selectorText]=o}return n},e}();t["default"]=r,e.exports=t["default"]},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var r=function(){function e(){n(this,e)}return e.style=function(){},e.prototype.attach=function(){},e.prototype.detach=function(){},e.prototype.deploy=function(){},e.prototype.insertRule=function(){},e.prototype.getRules=function(){return{}},e}();t["default"]=r,e.exports=t["default"]},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var r=function(){function e(){n(this,e),this.registry=[]}return e.prototype.use=function(e){this.registry.push(e)},e.prototype.run=function(e){for(var t=0;t<this.registry.length;t++)this.registry[t](e)},e}();t["default"]=r,e.exports=t["default"]},function(e,t){"use strict";function n(){return function(e){function t(n,r){if("string"==typeof r.extend){if(e.options&&e.options.sheet){var o=e.options.sheet.getRule(r.extend);o&&t(n,o.originalStyle)}}else if(Array.isArray(r.extend))for(var a=0;a<r.extend.length;a++)t(n,r.extend[a]);else for(var i in r.extend)"extend"===i?t(n,r.extend.extend):n[i]=r.extend[i];for(var i in r)"extend"!==i&&(n[i]=r[i]);return n}e.style&&e.style.extend&&(e.style=t({},e.style))}}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";function n(){return function(e){var t=e.style;if(t){e.style={};for(var n in t){var o=t[n];n=n.replace(r,"-$1").toLowerCase(),e.style[n]=o}}}}t.__esModule=!0,t["default"]=n;var r=/([A-Z])/g;e.exports=t["default"]},function(e,t){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={controlBack:"#eee",controlText:"#666"},r="none",o="transparent",a={"default":{backgroundColor:n.controlBack,color:n.controlText,border:r,boxShadow:r},outlined:{backgroundColor:o,color:n.controlText,border:"2px solid "},hero:{backgroundColor:"red",color:"white"}};t["default"]=a}]);
File lib/app/components/base/button/index.js changed (mode: 100644) (index ae3afcd..8e8b36e)
2 2
3 3 var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { 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); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
4 4
5 Object.defineProperty(exports, "__esModule", {
6 value: true
7 });
8
9 5 var _component = require('../../component.class'); var _component = require('../../component.class');
10 6
11 7 var _component2 = _interopRequireDefault(_component); var _component2 = _interopRequireDefault(_component);
 
... ... var _mithril = require('mithril');
14 10
15 11 var _mithril2 = _interopRequireDefault(_mithril); var _mithril2 = _interopRequireDefault(_mithril);
16 12
13 var _sizes = require('./sizes');
14
15 var _sizes2 = _interopRequireDefault(_sizes);
16
17 var _classes = require('./style/classes');
18
19 var _classes2 = _interopRequireDefault(_classes);
20
21 var _style = require('./style');
22
23 var _style2 = _interopRequireDefault(_style);
24
17 25 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18 26
19 27 function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
 
... ... var MButton = (function (_MComponent) {
33 41 _this.options = { _this.options = {
34 42 tag: 'button', tag: 'button',
35 43 label: 'Button', label: 'Button',
36 size: MButton.sizes.NORMAL
44 size: _sizes2.default.NORMAL
37 45 }; };
38 46 return _this; return _this;
39 47 } }
40 48
41 49 _createClass(MButton, [{ _createClass(MButton, [{
50 key: 'model',
51 value: function model() {
52 this.theme = _mithril2.default.prop();
53 this.tag = _mithril2.default.prop(this.options.tag);
54 this.label = _mithril2.default.prop(this.options.label);
55 this.descriptor = _mithril2.default.prop(this.tag());
56 }
57 }, {
42 58 key: 'controller', key: 'controller',
43 59 value: function controller(args) { value: function controller(args) {
44 60 var options = Object.assign({}, this.options, args); var options = Object.assign({}, this.options, args);
45 61
46 this.theme = _mithril2.default.prop();
47 this.size = _mithril2.default.prop(options.size);
62 // this.size = m.prop(options.size);
48 63 this.tag = _mithril2.default.prop(options.tag); this.tag = _mithril2.default.prop(options.tag);
49 64 this.label = _mithril2.default.prop(options.label); this.label = _mithril2.default.prop(options.label);
65 this.descriptor = _mithril2.default.prop(options.tag + _classes2.default.MBUTTON);
66
67 if (options.size != _sizes2.default.NORMAL) {
68 this.descriptor = _mithril2.default.prop(this.descriptor() + _classes2.default[options.size]);
69 }
50 70 } }
51 71 }, { }, {
52 72 key: 'view', key: 'view',
53 73 value: function view(ctrl, args) { value: function view(ctrl, args) {
54 return (0, _mithril2.default)(this.tag(), this.label());
74 // jssStyle.attach();
75 return (0, _mithril2.default)(this.descriptor(), this.label());
55 76 } }
56 77 }]); }]);
57 78
58 79 return MButton; return MButton;
59 80 })(_component2.default); })(_component2.default);
60 81
61 MButton.sizes = {
62 NORMAL: 'BTN_SIZE_NORMAL',
63 SMALL: 'BTN_SIZE_SMALL',
64 LARGE: 'BTN_SIZE_LARGE'
82 module.exports = {
83 component: MButton,
84 sizes: _sizes2.default
65 85 }; };
66 86
67 exports.default = MButton;
87 // export MButton;
88 //
89 // export MButtonSizes;
File lib/app/components/base/button/sizes.js added (mode: 100644) (index 0000000..b29d49d)
1 'use strict';
2
3 Object.defineProperty(exports, "__esModule", {
4 value: true
5 });
6 var MButtonSizes = {
7 NORMAL: 'MBUTTON',
8 SMALL: 'MBUTTON_SMALL',
9 LARGE: 'MBUTTON_LARGE'
10 };
11
12 exports.default = MButtonSizes;
File lib/app/components/base/button/style/classes.js added (mode: 100644) (index 0000000..5b8774a)
1 "use strict";
2
3 Object.defineProperty(exports, "__esModule", {
4 value: true
5 });
6
7 var _sizes = require("../sizes");
8
9 var _sizes2 = _interopRequireDefault(_sizes);
10
11 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
12
13 var MBUTTON = ".mButton";
14
15 var MButtonClasses = {
16 MBUTTON: MBUTTON,
17 MBUTTON_SMALL: MBUTTON + "-small",
18 MBUTTON_LARGE: MBUTTON + "-large"
19 };
20
21 exports.default = MButtonClasses;
File lib/app/components/base/button/style/index.js added (mode: 100644) (index 0000000..2d0a832)
1 'use strict';
2
3 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; };
4
5 Object.defineProperty(exports, "__esModule", {
6 value: true
7 });
8
9 var _jss = require('jss');
10
11 var _jss2 = _interopRequireDefault(_jss);
12
13 var _jssExtend = require('jss-extend');
14
15 var _jssExtend2 = _interopRequireDefault(_jssExtend);
16
17 var _jssCamelCase = require('jss-camel-case');
18
19 var _jssCamelCase2 = _interopRequireDefault(_jssCamelCase);
20
21 var _sizes = require('../sizes');
22
23 var _sizes2 = _interopRequireDefault(_sizes);
24
25 var _themes = require('./themes');
26
27 var _themes2 = _interopRequireDefault(_themes);
28
29 var _classes = require('./classes');
30
31 var _classes2 = _interopRequireDefault(_classes);
32
33 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
34
35 // import btnTheme from './theme.jss';
36
37 _jss2.default.use((0, _jssExtend2.default)());
38 _jss2.default.use((0, _jssCamelCase2.default)());
39
40 var someColor = 'green';
41
42 var button = function button(btnSize) {
43 var padding = undefined;
44
45 switch (btnSize) {
46 case _sizes2.default.SMALL:
47 padding = '.2rem';
48 break;
49 case _sizes2.default.LARGE:
50 padding = '1rem';
51 break;
52 default:
53 padding = '.5rem';
54 break;
55 }
56
57 return {
58 padding: padding
59
60 };
61 };
62
63 var buttonRules = {};
64
65 buttonRules[_classes2.default.MBUTTON] = _extends({}, button(_sizes2.default.NORMAL), {
66 color: someColor
67 });
68
69 buttonRules[_classes2.default.MBUTTON_SMALL] = _extends({}, button(_sizes2.default.SMALL));
70
71 buttonRules[_classes2.default.MBUTTON_LARGE] = _extends({}, button(_sizes2.default.LARGE));
72
73 for (var theme in _themes2.default) {
74 if (theme == 'default') {
75 buttonRules[_classes2.default.MBUTTON] = _extends({}, buttonRules[_classes2.default.MBUTTON], _themes2.default[theme]);
76 } else {
77 buttonRules[_classes2.default.MBUTTON + '.t-' + theme.toLowerCase()] = _themes2.default[theme];
78 }
79 }
80
81 var jssStyle = _jss2.default.createStyleSheet(buttonRules, { named: false }).attach();
82
83 global.jssStyle = Object.assign({}, global.jssStyle, jssStyle);
84
85 exports.default = jssStyle;
File lib/app/components/base/button/style/theme.jss.js added (mode: 100644) (index 0000000..629d810)
1 'use strict';
2
3 Object.defineProperty(exports, "__esModule", {
4 value: true
5 });
6
7 var _jss = require('jss');
8
9 var _jss2 = _interopRequireDefault(_jss);
10
11 var _jssExtend = require('jss-extend');
12
13 var _jssExtend2 = _interopRequireDefault(_jssExtend);
14
15 var _themes = require('./themes');
16
17 var _themes2 = _interopRequireDefault(_themes);
18
19 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20
21 _jss2.default.use((0, _jssExtend2.default)());
22
23 var btnTheme = function btnTheme(theme) {
24 var themeData = _themes2.default[theme];
25
26 if (typeof themeData == 'undefined') {
27 throw new Error('Theme "' + theme + '" doesn\'t exist for MButton component.');
28 }
29
30 return themeData;
31 };
32
33 exports.default = btnTheme;
File lib/app/components/base/button/style/themes.js added (mode: 100644) (index 0000000..435c755)
1 "use strict";
2
3 Object.defineProperty(exports, "__esModule", {
4 value: true
5 });
6 var colors = {
7 controlBack: "#eee",
8 controlText: "#666"
9 };
10
11 var none = 'none';
12 var transparent = 'transparent';
13
14 var MButtonThemes = {
15 default: {
16 backgroundColor: colors.controlBack,
17 color: colors.controlText,
18 border: none,
19 boxShadow: none
20 },
21 outlined: {
22 backgroundColor: transparent,
23 color: colors.controlText,
24 border: '2px solid '
25 },
26 hero: {
27 backgroundColor: 'red',
28 color: 'white'
29 }
30 };
31
32 exports.default = MButtonThemes;
File lib/app/components/component.class.js changed (mode: 100644) (index 9f1c061..7d7a52b)
... ... var MComponent = (function () {
22 22
23 23 self.mithril = { self.mithril = {
24 24 controller: function controller() { controller: function controller() {
25 self.model();
25 26 self.controller.apply(self, arguments); self.controller.apply(self, arguments);
26 27 }, },
27 28
 
... ... var MComponent = (function () {
36 37 value: function reducer(state) { value: function reducer(state) {
37 38 throw TypeError('Method "reducer" should be overriden in children'); throw TypeError('Method "reducer" should be overriden in children');
38 39 } }
40 }, {
41 key: 'model',
42 value: function model(state) {}
39 43 }, { }, {
40 44 key: 'controller', key: 'controller',
41 value: function controller(state) {
42 return;
43 }
45 value: function controller(state) {}
44 46 }, { }, {
45 47 key: 'view', key: 'view',
46 48 value: function view(state) { value: function view(state) {
File lib/app/components/simple.com.js changed (mode: 100644) (index b35d473..1735f46)
... ... var _component2 = _interopRequireDefault(_component);
16 16
17 17 var _button = require('./base/button'); var _button = require('./base/button');
18 18
19 var _button2 = _interopRequireDefault(_button);
19 var MButton = _interopRequireWildcard(_button);
20
21 function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
20 22
21 23 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22 24
 
... ... var MSimple = (function (_MComponent) {
39 41 key: 'controller', key: 'controller',
40 42 value: function controller(args) { value: function controller(args) {
41 43 this.store = args.data; this.store = args.data;
42 this.mBtnTest = new _button2.default({
44 this.mBtnTest = new MButton.component({
43 45 tag: 'a', tag: 'a',
44 46 label: "Initial Label", label: "Initial Label",
45 size: _button2.default.sizes.SMALL
47 size: MButton.sizes.SMALL
46 48 }); });
47 49 } }
48 50 }, { }, {
File lib/app/registry.js added (mode: 100644) (index 0000000..9433420)
1 "use strict";
2
3 Object.defineProperty(exports, "__esModule", {
4 value: true
5 });
6 exports.default = {};
File lib/app/render.js changed (mode: 100644) (index 6772975..853a040)
... ... var _main2 = _interopRequireDefault(_main);
15 15
16 16 function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17 17
18 global.registry = {};
19
18 20 function render(store) { function render(store) {
19 21 var rootTag = _mithril2.default.component(_main2.default, { data: store }); var rootTag = _mithril2.default.component(_main2.default, { data: store });
20 22 _mithril2.default.mount(document.getElementById('root'), rootTag); _mithril2.default.mount(document.getElementById('root'), rootTag);
23
24 console.log(global.registry);
21 25 } }
File package.json changed (mode: 100644) (index 9b22c32..8604efe)
46 46 "mocha": "^2.2.5", "mocha": "^2.2.5",
47 47 "redux": "^3.0.5", "redux": "^3.0.5",
48 48 "redux-thunk": "^1.0.3", "redux-thunk": "^1.0.3",
49 "jss": "^3.2.0",
50 "jss-extend": "^1.1.0",
51 "jss-nested": "^1.0.1",
52 "jss-camel-case": "^1.0.0",
49 53 "rimraf": "^2.3.4", "rimraf": "^2.3.4",
50 54 "watch": "^0.16.0", "watch": "^0.16.0",
51 55 "webpack": "^1.12.9", "webpack": "^1.12.9",
File src/app/components/base/button/index.js changed (mode: 100644) (index 9b5335a..f82d484)
1 1 import MComponent from '../../component.class'; import MComponent from '../../component.class';
2 2 import m from 'mithril'; import m from 'mithril';
3 import MButtonSizes from './sizes';
4 import MButtonClasses from './style/classes';
5 import jssStyle from './style';
3 6
4 7 class MButton extends MComponent { class MButton extends MComponent {
5 8 options = { options = {
6 9 tag: 'button', tag: 'button',
7 10 label: 'Button', label: 'Button',
8 size: MButton.sizes.NORMAL
11 size: MButtonSizes.NORMAL
9 12 }; };
10 13
11 14 constructor(options) { constructor(options) {
12 15 super(options); super(options);
13 16 } }
14 17
18 model () {
19 this.theme = m.prop();
20 this.tag = m.prop(this.options.tag);
21 this.label = m.prop(this.options.label);
22 this.descriptor = m.prop(this.tag());
23 }
24
15 25 controller(args) { controller(args) {
16 26 let options = Object.assign({}, this.options, args); let options = Object.assign({}, this.options, args);
17 27
18 this.theme = m.prop();
19 this.size = m.prop(options.size);
28 // this.size = m.prop(options.size);
20 29 this.tag = m.prop(options.tag); this.tag = m.prop(options.tag);
21 30 this.label = m.prop(options.label); this.label = m.prop(options.label);
31 this.descriptor = m.prop(options.tag + MButtonClasses.MBUTTON);
32
33 if (options.size != MButtonSizes.NORMAL) {
34 this.descriptor = m.prop(this.descriptor() + MButtonClasses[options.size]);
35 }
22 36 } }
23 37
24 38 view(ctrl, args) { view(ctrl, args) {
25 return m(this.tag(), this.label());
39 // jssStyle.attach();
40 return m(this.descriptor(), this.label());
26 41 } }
27 42 } }
28 43
29 MButton.sizes = {
30 NORMAL: 'BTN_SIZE_NORMAL',
31 SMALL: 'BTN_SIZE_SMALL',
32 LARGE: 'BTN_SIZE_LARGE'
33 };
44 module.exports = {
45 component: MButton,
46 sizes: MButtonSizes
47 }
34 48
35 export default MButton;
49 // export MButton;
50 //
51 // export MButtonSizes;
File src/app/components/base/button/sizes.js added (mode: 100644) (index 0000000..c170f00)
1 let MButtonSizes = {
2 NORMAL: 'MBUTTON',
3 SMALL: 'MBUTTON_SMALL',
4 LARGE: 'MBUTTON_LARGE'
5 };
6
7 export default MButtonSizes;
File src/app/components/base/button/style/classes.js added (mode: 100644) (index 0000000..c81391b)
1 import MButtonsSizes from '../sizes';
2
3 const MBUTTON = ".mButton";
4
5 let MButtonClasses = {
6 MBUTTON: MBUTTON,
7 MBUTTON_SMALL: MBUTTON + "-small",
8 MBUTTON_LARGE: MBUTTON + "-large"
9 };
10
11 export default MButtonClasses;
File src/app/components/base/button/style/index.js added (mode: 100644) (index 0000000..a2e2aee)
1 import jss from 'jss';
2 import extend from 'jss-extend'
3 import camelCase from 'jss-camel-case'
4 import MButtonSizes from '../sizes';
5 import MButtonThemes from './themes';
6 import cssClasses from './classes';
7 // import btnTheme from './theme.jss';
8
9
10 jss.use(extend());
11 jss.use(camelCase());
12
13
14 var someColor = 'green';
15
16 let button = (btnSize) => {
17 let padding;
18
19 switch (btnSize) {
20 case MButtonSizes.SMALL:
21 padding = '.2rem';
22 break;
23 case MButtonSizes.LARGE:
24 padding = '1rem';
25 break;
26 default:
27 padding = '.5rem';
28 break;
29 }
30
31 return {
32 padding,
33
34 }
35 };
36
37
38 let buttonRules = {};
39
40 buttonRules[cssClasses.MBUTTON] = {
41 ...button(MButtonSizes.NORMAL),
42 color: someColor
43 };
44
45 buttonRules[cssClasses.MBUTTON_SMALL] = {
46 ...button(MButtonSizes.SMALL)
47 };
48
49 buttonRules[cssClasses.MBUTTON_LARGE] = {
50 ...button(MButtonSizes.LARGE)
51 };
52
53 for (var theme in MButtonThemes) {
54 if (theme == 'default') {
55 buttonRules[cssClasses.MBUTTON] = {
56 ...buttonRules[cssClasses.MBUTTON],
57 ...MButtonThemes[theme]
58 }
59 } else {
60 buttonRules[cssClasses.MBUTTON + '.t-' + theme.toLowerCase()] = MButtonThemes[theme];
61 }
62 }
63
64 let jssStyle = jss.createStyleSheet(buttonRules, {named: false}).attach();
65
66 global.jssStyle = Object.assign({}, global.jssStyle, jssStyle);
67
68 export default jssStyle;
File src/app/components/base/button/style/theme.jss.js added (mode: 100644) (index 0000000..d360471)
1 import jss from 'jss';
2 import extend from 'jss-extend';
3 import MButtonThemes from './themes';
4
5
6 jss.use(extend());
7
8 let btnTheme = (theme) => {
9 var themeData = MButtonThemes[theme];
10
11 if (typeof(themeData) == 'undefined') {
12 throw new Error('Theme "' + theme + '" doesn\'t exist for MButton component.');
13 }
14
15 return themeData;
16 };
17
18 export default btnTheme;
File src/app/components/base/button/style/themes.js added (mode: 100644) (index 0000000..d210acf)
1 let colors = {
2 controlBack: "#eee",
3 controlText: "#666"
4 }
5
6 const none = 'none';
7 const transparent = 'transparent';
8
9 let MButtonThemes = {
10 default: {
11 backgroundColor: colors.controlBack,
12 color: colors.controlText,
13 border: none,
14 boxShadow: none
15 },
16 outlined: {
17 backgroundColor: transparent,
18 color: colors.controlText,
19 border: '2px solid '
20 },
21 hero: {
22 backgroundColor: 'red',
23 color: 'white'
24 }
25 };
26
27 export default MButtonThemes;
File src/app/components/component.class.js changed (mode: 100644) (index 2ef9f1c..15ec18f)
... ... class MComponent {
11 11
12 12 self.mithril = { self.mithril = {
13 13 controller: function () { controller: function () {
14 self.model();
14 15 self.controller.apply(self, arguments); self.controller.apply(self, arguments);
15 16 }, },
16 17
 
... ... class MComponent {
22 23
23 24 reducer (state) { throw TypeError('Method "reducer" should be overriden in children'); } reducer (state) { throw TypeError('Method "reducer" should be overriden in children'); }
24 25
25 controller(state) { return; }
26 model (state) {}
26 27
27 view(state) { return []; }
28 controller (state) {}
29
30 view (state) { return []; }
28 31
29 32 m () { return this.mithril; } m () { return this.mithril; }
30 33 } }
File src/app/components/simple.com.js changed (mode: 100644) (index a614a05..5ebaaf2)
1 1 import m from 'mithril'; import m from 'mithril';
2 2 import MComponent from './component.class'; import MComponent from './component.class';
3 import MButton from './base/button';
3 import * as MButton from './base/button';
4 4
5 5 class MSimple extends MComponent { class MSimple extends MComponent {
6 6 controller (args) { controller (args) {
7 7 this.store = args.data; this.store = args.data;
8 this.mBtnTest = new MButton({
8 this.mBtnTest = new MButton.component({
9 9 tag: 'a', tag: 'a',
10 10 label: "Initial Label", label: "Initial Label",
11 11 size: MButton.sizes.SMALL size: MButton.sizes.SMALL
File src/app/registry.js added (mode: 100644) (index 0000000..7ad3340)
1 export default {};
File src/app/render.js changed (mode: 100644) (index db70178..94fd22b)
1 1 import m from 'mithril'; import m from 'mithril';
2 2 import comMain from './components/main.com'; import comMain from './components/main.com';
3 3
4 global.registry = {};
4 5
5 6 export default function render (store) { export default function render (store) {
6 7 let rootTag = m.component(comMain, {data: store}); let rootTag = m.component(comMain, {data: store});
7 8 m.mount(document.getElementById('root'), rootTag); m.mount(document.getElementById('root'), rootTag);
9
10 console.log(global.registry);
8 11 } }
Hints:
Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://rocketgit.com/user/bitvice/mithril-webpack-starter

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@ssh.rocketgit.com/user/bitvice/mithril-webpack-starter

Clone this repository using git:
git clone git://git.rocketgit.com/user/bitvice/mithril-webpack-starter

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a merge request:
... clone the repository ...
... make some changes and some commits ...
git push origin main