From bf7ac6af587f68553b83a54fcb724dfc9d684644 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Mon, 20 Mar 2017 01:03:23 +0100 Subject: refactor frontend --- public/bundle.js | 46524 ++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 32164 insertions(+), 14360 deletions(-) (limited to 'public/bundle.js') diff --git a/public/bundle.js b/public/bundle.js index 4725ea1..b99c70c 100644 --- a/public/bundle.js +++ b/public/bundle.js @@ -63,7 +63,7 @@ /******/ __webpack_require__.p = ""; /******/ /******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 230); +/******/ return __webpack_require__(__webpack_require__.s = 236); /******/ }) /************************************************************************/ /******/ ([ @@ -548,7 +548,7 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) { var _prodInvariant = __webpack_require__(3); var DOMProperty = __webpack_require__(13); -var ReactDOMComponentFlags = __webpack_require__(71); +var ReactDOMComponentFlags = __webpack_require__(73); var invariant = __webpack_require__(1); @@ -788,7 +788,7 @@ module.exports = ExecutionEnvironment; -var _prodInvariant = __webpack_require__(16); +var _prodInvariant = __webpack_require__(17); var ReactCurrentOwner = __webpack_require__(11); @@ -1133,7 +1133,7 @@ module.exports = ReactComponentTreeHook; var debugTool = null; if (process.env.NODE_ENV !== 'production') { - var ReactDebugTool = __webpack_require__(168); + var ReactDebugTool = __webpack_require__(174); debugTool = ReactDebugTool; } @@ -1204,11 +1204,11 @@ module.exports = emptyFunction; var _prodInvariant = __webpack_require__(3), _assign = __webpack_require__(4); -var CallbackQueue = __webpack_require__(69); -var PooledClass = __webpack_require__(14); -var ReactFeatureFlags = __webpack_require__(74); -var ReactReconciler = __webpack_require__(19); -var Transaction = __webpack_require__(32); +var CallbackQueue = __webpack_require__(71); +var PooledClass = __webpack_require__(15); +var ReactFeatureFlags = __webpack_require__(76); +var ReactReconciler = __webpack_require__(20); +var Transaction = __webpack_require__(33); var invariant = __webpack_require__(1); @@ -1496,7 +1496,7 @@ module.exports = ReactCurrentOwner; var _assign = __webpack_require__(4); -var PooledClass = __webpack_require__(14); +var PooledClass = __webpack_require__(15); var emptyFunction = __webpack_require__(9); var warning = __webpack_require__(2); @@ -1971,6 +1971,16 @@ module.exports = DOMProperty; /* 14 */ /***/ (function(module, exports, __webpack_require__) { +"use strict"; + + +module.exports = __webpack_require__(21); + + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + "use strict"; /* WEBPACK VAR INJECTION */(function(process) {/** * Copyright 2013-present, Facebook, Inc. @@ -2086,7 +2096,7 @@ module.exports = PooledClass; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 15 */ +/* 16 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2107,10 +2117,10 @@ var _assign = __webpack_require__(4); var ReactCurrentOwner = __webpack_require__(11); var warning = __webpack_require__(2); -var canDefineProperty = __webpack_require__(56); +var canDefineProperty = __webpack_require__(57); var hasOwnProperty = Object.prototype.hasOwnProperty; -var REACT_ELEMENT_TYPE = __webpack_require__(89); +var REACT_ELEMENT_TYPE = __webpack_require__(91); var RESERVED_PROPS = { key: true, @@ -2433,7 +2443,7 @@ module.exports = ReactElement; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 16 */ +/* 17 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2477,7 +2487,7 @@ function reactProdInvariant(code) { module.exports = reactProdInvariant; /***/ }), -/* 17 */ +/* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2487,13 +2497,13 @@ Object.defineProperty(exports, "__esModule", { value: true }); -var _arguments = __webpack_require__(115); +var _arguments = __webpack_require__(121); var _arguments2 = _interopRequireDefault(_arguments); -var _utils = __webpack_require__(63); +var _utils = __webpack_require__(65); -var _hooks = __webpack_require__(116); +var _hooks = __webpack_require__(122); var _hooks2 = _interopRequireDefault(_hooks); @@ -2525,7 +2535,7 @@ exports.default = { module.exports = exports['default']; /***/ }), -/* 18 */ +/* 19 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2541,11 +2551,11 @@ module.exports = exports['default']; -var DOMNamespaces = __webpack_require__(39); -var setInnerHTML = __webpack_require__(34); +var DOMNamespaces = __webpack_require__(40); +var setInnerHTML = __webpack_require__(35); -var createMicrosoftUnsafeLocalFunction = __webpack_require__(46); -var setTextContent = __webpack_require__(87); +var createMicrosoftUnsafeLocalFunction = __webpack_require__(47); +var setTextContent = __webpack_require__(89); var ELEMENT_NODE_TYPE = 1; var DOCUMENT_FRAGMENT_NODE_TYPE = 11; @@ -2648,7 +2658,7 @@ DOMLazyTree.queueText = queueText; module.exports = DOMLazyTree; /***/ }), -/* 19 */ +/* 20 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2664,7 +2674,7 @@ module.exports = DOMLazyTree; -var ReactRef = __webpack_require__(182); +var ReactRef = __webpack_require__(188); var ReactInstrumentation = __webpack_require__(8); var warning = __webpack_require__(2); @@ -2822,7 +2832,7 @@ module.exports = ReactReconciler; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 20 */ +/* 21 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2840,16 +2850,16 @@ module.exports = ReactReconciler; var _assign = __webpack_require__(4); -var ReactChildren = __webpack_require__(213); -var ReactComponent = __webpack_require__(53); -var ReactPureComponent = __webpack_require__(217); -var ReactClass = __webpack_require__(214); -var ReactDOMFactories = __webpack_require__(215); -var ReactElement = __webpack_require__(15); -var ReactPropTypes = __webpack_require__(216); -var ReactVersion = __webpack_require__(218); +var ReactChildren = __webpack_require__(219); +var ReactComponent = __webpack_require__(54); +var ReactPureComponent = __webpack_require__(223); +var ReactClass = __webpack_require__(220); +var ReactDOMFactories = __webpack_require__(221); +var ReactElement = __webpack_require__(16); +var ReactPropTypes = __webpack_require__(222); +var ReactVersion = __webpack_require__(224); -var onlyChild = __webpack_require__(220); +var onlyChild = __webpack_require__(226); var warning = __webpack_require__(2); var createElement = ReactElement.createElement; @@ -2857,7 +2867,7 @@ var createFactory = ReactElement.createFactory; var cloneElement = ReactElement.cloneElement; if (process.env.NODE_ENV !== 'production') { - var ReactElementValidator = __webpack_require__(90); + var ReactElementValidator = __webpack_require__(92); createElement = ReactElementValidator.createElement; createFactory = ReactElementValidator.createFactory; cloneElement = ReactElementValidator.cloneElement; @@ -2917,7 +2927,45 @@ module.exports = React; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 21 */ +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _client = __webpack_require__(133); + +var _client2 = _interopRequireDefault(_client); + +var _feathersHooks = __webpack_require__(125); + +var _feathersHooks2 = _interopRequireDefault(_feathersHooks); + +var _client3 = __webpack_require__(126); + +var _client4 = _interopRequireDefault(_client3); + +var _client5 = __webpack_require__(117); + +var _client6 = _interopRequireDefault(_client5); + +var _superagent = __webpack_require__(230); + +var _superagent2 = _interopRequireDefault(_superagent); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var rest = (0, _client4.default)(window.location.origin); +var client = (0, _client2.default)().configure((0, _feathersHooks2.default)()).configure((0, _client6.default)({ storage: localStorage })).configure(rest.superagent(_superagent2.default)); + +exports.default = client; + +/***/ }), +/* 23 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2943,7 +2991,7 @@ module.exports = emptyObject; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 22 */ +/* 24 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -2957,13 +3005,13 @@ var _extends = Object.assign || function (target) { for (var i = 1; i < argument 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 _qs = __webpack_require__(137); +var _qs = __webpack_require__(143); var _qs2 = _interopRequireDefault(_qs); -var _feathersCommons = __webpack_require__(17); +var _feathersCommons = __webpack_require__(18); -var _feathersErrors = __webpack_require__(28); +var _feathersErrors = __webpack_require__(29); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } @@ -3095,7 +3143,7 @@ exports.default = Base; module.exports = exports['default']; /***/ }), -/* 23 */ +/* 25 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3113,12 +3161,12 @@ module.exports = exports['default']; var _prodInvariant = __webpack_require__(3); -var EventPluginRegistry = __webpack_require__(29); -var EventPluginUtils = __webpack_require__(40); -var ReactErrorUtils = __webpack_require__(44); +var EventPluginRegistry = __webpack_require__(30); +var EventPluginUtils = __webpack_require__(41); +var ReactErrorUtils = __webpack_require__(45); -var accumulateInto = __webpack_require__(81); -var forEachAccumulated = __webpack_require__(82); +var accumulateInto = __webpack_require__(83); +var forEachAccumulated = __webpack_require__(84); var invariant = __webpack_require__(1); /** @@ -3379,7 +3427,7 @@ module.exports = EventPluginHub; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 24 */ +/* 26 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3395,11 +3443,11 @@ module.exports = EventPluginHub; -var EventPluginHub = __webpack_require__(23); -var EventPluginUtils = __webpack_require__(40); +var EventPluginHub = __webpack_require__(25); +var EventPluginUtils = __webpack_require__(41); -var accumulateInto = __webpack_require__(81); -var forEachAccumulated = __webpack_require__(82); +var accumulateInto = __webpack_require__(83); +var forEachAccumulated = __webpack_require__(84); var warning = __webpack_require__(2); var getListener = EventPluginHub.getListener; @@ -3519,7 +3567,7 @@ module.exports = EventPropagators; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 25 */ +/* 27 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3572,7 +3620,7 @@ var ReactInstanceMap = { module.exports = ReactInstanceMap; /***/ }), -/* 26 */ +/* 28 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3590,7 +3638,7 @@ module.exports = ReactInstanceMap; var SyntheticEvent = __webpack_require__(12); -var getEventTarget = __webpack_require__(49); +var getEventTarget = __webpack_require__(50); /** * @interface UIEvent @@ -3636,17 +3684,7 @@ SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface); module.exports = SyntheticUIEvent; /***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = __webpack_require__(20); - - -/***/ }), -/* 28 */ +/* 29 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -3693,7 +3731,7 @@ function _extendableBuiltin(cls) { return ExtendableBuiltin; } -var debug = __webpack_require__(59)('feathers-errors'); +var debug = __webpack_require__(61)('feathers-errors'); // NOTE (EK): Babel doesn't properly support extending // some classes in ES6. The Error class being one of them. @@ -4031,7 +4069,7 @@ exports.default = _extends({ module.exports = exports['default']; /***/ }), -/* 29 */ +/* 30 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4292,7 +4330,7 @@ module.exports = EventPluginRegistry; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 30 */ +/* 31 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4310,12 +4348,12 @@ module.exports = EventPluginRegistry; var _assign = __webpack_require__(4); -var EventPluginRegistry = __webpack_require__(29); -var ReactEventEmitterMixin = __webpack_require__(172); -var ViewportMetrics = __webpack_require__(80); +var EventPluginRegistry = __webpack_require__(30); +var ReactEventEmitterMixin = __webpack_require__(178); +var ViewportMetrics = __webpack_require__(82); -var getVendorPrefixedEventName = __webpack_require__(208); -var isEventSupported = __webpack_require__(50); +var getVendorPrefixedEventName = __webpack_require__(214); +var isEventSupported = __webpack_require__(51); /** * Summary of `ReactBrowserEventEmitter` event handling: @@ -4625,7 +4663,7 @@ var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin, { module.exports = ReactBrowserEventEmitter; /***/ }), -/* 31 */ +/* 32 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4641,10 +4679,10 @@ module.exports = ReactBrowserEventEmitter; -var SyntheticUIEvent = __webpack_require__(26); -var ViewportMetrics = __webpack_require__(80); +var SyntheticUIEvent = __webpack_require__(28); +var ViewportMetrics = __webpack_require__(82); -var getEventModifierState = __webpack_require__(48); +var getEventModifierState = __webpack_require__(49); /** * @interface MouseEvent @@ -4702,7 +4740,7 @@ SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface); module.exports = SyntheticMouseEvent; /***/ }), -/* 32 */ +/* 33 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -4933,7 +4971,7 @@ module.exports = TransactionImpl; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 33 */ +/* 34 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5061,7 +5099,7 @@ function escapeTextContentForBrowser(text) { module.exports = escapeTextContentForBrowser; /***/ }), -/* 34 */ +/* 35 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5078,12 +5116,12 @@ module.exports = escapeTextContentForBrowser; var ExecutionEnvironment = __webpack_require__(6); -var DOMNamespaces = __webpack_require__(39); +var DOMNamespaces = __webpack_require__(40); var WHITESPACE_TEST = /^[ \r\n\t\f]/; var NONVISIBLE_TEST = /<(!--|link|noscript|meta|script|style)[ \r\n\t\f\/>]/; -var createMicrosoftUnsafeLocalFunction = __webpack_require__(46); +var createMicrosoftUnsafeLocalFunction = __webpack_require__(47); // SVG temp container for IE lacking innerHTML var reusableSVGContainer; @@ -5164,7 +5202,7 @@ if (ExecutionEnvironment.canUseDOM) { module.exports = setInnerHTML; /***/ }), -/* 35 */ +/* 36 */ /***/ (function(module, exports, __webpack_require__) { var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* global define */ @@ -5315,7 +5353,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_ /***/ }), -/* 36 */ +/* 37 */ /***/ (function(module, exports) { // Copyright Joyent, Inc. and other Node contributors. @@ -5623,7 +5661,7 @@ function isUndefined(arg) { /***/ }), -/* 37 */ +/* 38 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5696,7 +5734,7 @@ function shallowEqual(objA, objB) { module.exports = shallowEqual; /***/ }), -/* 38 */ +/* 39 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5712,14 +5750,14 @@ module.exports = shallowEqual; -var DOMLazyTree = __webpack_require__(18); -var Danger = __webpack_require__(145); +var DOMLazyTree = __webpack_require__(19); +var Danger = __webpack_require__(151); var ReactDOMComponentTree = __webpack_require__(5); var ReactInstrumentation = __webpack_require__(8); -var createMicrosoftUnsafeLocalFunction = __webpack_require__(46); -var setInnerHTML = __webpack_require__(34); -var setTextContent = __webpack_require__(87); +var createMicrosoftUnsafeLocalFunction = __webpack_require__(47); +var setInnerHTML = __webpack_require__(35); +var setTextContent = __webpack_require__(89); function getNodeAfter(parentNode, node) { // Special case for text components, which return [open, close] comments @@ -5927,7 +5965,7 @@ module.exports = DOMChildrenOperations; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 39 */ +/* 40 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5952,7 +5990,7 @@ var DOMNamespaces = { module.exports = DOMNamespaces; /***/ }), -/* 40 */ +/* 41 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -5970,7 +6008,7 @@ module.exports = DOMNamespaces; var _prodInvariant = __webpack_require__(3); -var ReactErrorUtils = __webpack_require__(44); +var ReactErrorUtils = __webpack_require__(45); var invariant = __webpack_require__(1); var warning = __webpack_require__(2); @@ -6184,7 +6222,7 @@ module.exports = EventPluginUtils; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 41 */ +/* 42 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6248,7 +6286,7 @@ var KeyEscapeUtils = { module.exports = KeyEscapeUtils; /***/ }), -/* 42 */ +/* 43 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6266,8 +6304,8 @@ module.exports = KeyEscapeUtils; var _prodInvariant = __webpack_require__(3); -var React = __webpack_require__(20); -var ReactPropTypesSecret = __webpack_require__(79); +var React = __webpack_require__(21); +var ReactPropTypesSecret = __webpack_require__(81); var invariant = __webpack_require__(1); var warning = __webpack_require__(2); @@ -6389,7 +6427,7 @@ module.exports = LinkedValueUtils; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 43 */ +/* 44 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6441,7 +6479,7 @@ module.exports = ReactComponentEnvironment; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 44 */ +/* 45 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6524,7 +6562,7 @@ module.exports = ReactErrorUtils; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 45 */ +/* 46 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6543,7 +6581,7 @@ module.exports = ReactErrorUtils; var _prodInvariant = __webpack_require__(3); var ReactCurrentOwner = __webpack_require__(11); -var ReactInstanceMap = __webpack_require__(25); +var ReactInstanceMap = __webpack_require__(27); var ReactInstrumentation = __webpack_require__(8); var ReactUpdates = __webpack_require__(10); @@ -6756,7 +6794,7 @@ module.exports = ReactUpdateQueue; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 46 */ +/* 47 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6793,7 +6831,7 @@ var createMicrosoftUnsafeLocalFunction = function (func) { module.exports = createMicrosoftUnsafeLocalFunction; /***/ }), -/* 47 */ +/* 48 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6848,7 +6886,7 @@ function getEventCharCode(nativeEvent) { module.exports = getEventCharCode; /***/ }), -/* 48 */ +/* 49 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6896,7 +6934,7 @@ function getEventModifierState(nativeEvent) { module.exports = getEventModifierState; /***/ }), -/* 49 */ +/* 50 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -6936,7 +6974,7 @@ function getEventTarget(nativeEvent) { module.exports = getEventTarget; /***/ }), -/* 50 */ +/* 51 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -7001,7 +7039,7 @@ function isEventSupported(eventNameSuffix, capture) { module.exports = isEventSupported; /***/ }), -/* 51 */ +/* 52 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -7048,7 +7086,7 @@ function shouldUpdateReactComponent(prevElement, nextElement) { module.exports = shouldUpdateReactComponent; /***/ }), -/* 52 */ +/* 53 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -7436,7 +7474,7 @@ module.exports = validateDOMNesting; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 53 */ +/* 54 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -7452,12 +7490,12 @@ module.exports = validateDOMNesting; -var _prodInvariant = __webpack_require__(16); +var _prodInvariant = __webpack_require__(17); -var ReactNoopUpdateQueue = __webpack_require__(54); +var ReactNoopUpdateQueue = __webpack_require__(55); -var canDefineProperty = __webpack_require__(56); -var emptyObject = __webpack_require__(21); +var canDefineProperty = __webpack_require__(57); +var emptyObject = __webpack_require__(23); var invariant = __webpack_require__(1); var warning = __webpack_require__(2); @@ -7560,7 +7598,7 @@ module.exports = ReactComponent; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 54 */ +/* 55 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -7662,7 +7700,7 @@ module.exports = ReactNoopUpdateQueue; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 55 */ +/* 56 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -7693,7 +7731,7 @@ module.exports = ReactPropTypeLocationNames; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 56 */ +/* 57 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -7725,7 +7763,7 @@ module.exports = canDefineProperty; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 57 */ +/* 58 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -7771,7 +7809,7 @@ function getIteratorFn(maybeIterable) { module.exports = getIteratorFn; /***/ }), -/* 58 */ +/* 59 */ /***/ (function(module, exports) { /** @@ -7790,7 +7828,46 @@ module.exports = isObject; /***/ }), -/* 59 */ +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = ModalDialog; + +var _react = __webpack_require__(14); + +var _react2 = _interopRequireDefault(_react); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function ModalDialog(props) { + var visible = props.visible ? 'visible' : ''; + function cancel(e) { + e.stopPropagation(); + } + return _react2.default.createElement( + 'div', + { className: 'modal ' + visible, onClick: props.onClose }, + _react2.default.createElement( + 'div', + { className: 'inner', onClick: cancel }, + props.children, + _react2.default.createElement( + 'div', + { className: 'close', onClick: props.onClose }, + 'x' + ) + ) + ); +} + +/***/ }), +/* 61 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(process) {/** @@ -7799,7 +7876,7 @@ module.exports = isObject; * Expose `debug()` as the module. */ -exports = module.exports = __webpack_require__(97); +exports = module.exports = __webpack_require__(102); exports.log = log; exports.formatArgs = formatArgs; exports.save = save; @@ -7979,7 +8056,7 @@ function localstorage() { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 60 */ +/* 62 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -8069,7 +8146,7 @@ module.exports = EventListener; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 61 */ +/* 63 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -8101,7 +8178,7 @@ function focusNode(node) { module.exports = focusNode; /***/ }), -/* 62 */ +/* 64 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -8141,7 +8218,7 @@ function getActiveElement() /*?DOMElement*/{ module.exports = getActiveElement; /***/ }), -/* 63 */ +/* 65 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -8419,7 +8496,7 @@ function makeUrl(path) { /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 64 */ +/* 66 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -8436,12 +8513,12 @@ exports.pluck = pluck; exports.disable = disable; exports.legacyPopulate = legacyPopulate; -var _utils = __webpack_require__(65); +var _utils = __webpack_require__(67); /* eslint-env es6, node */ /* eslint brace-style: 0, consistent-return: 0, no-console: 0, no-param-reassign: 0, no-var: 0 */ -var errors = __webpack_require__(28).errors; +var errors = __webpack_require__(29).errors; /** @@ -8994,7 +9071,7 @@ function legacyPopulate(target, options) { } /***/ }), -/* 65 */ +/* 67 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -9157,7 +9234,7 @@ var replaceItems = exports.replaceItems = function replaceItems(hook, items) { }; /***/ }), -/* 66 */ +/* 68 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -9182,7 +9259,7 @@ module.exports = { /***/ }), -/* 67 */ +/* 69 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -9371,7 +9448,7 @@ exports.isBuffer = function (obj) { /***/ }), -/* 68 */ +/* 70 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -9524,7 +9601,7 @@ var CSSProperty = { module.exports = CSSProperty; /***/ }), -/* 69 */ +/* 71 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -9545,7 +9622,7 @@ var _prodInvariant = __webpack_require__(3); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var PooledClass = __webpack_require__(14); +var PooledClass = __webpack_require__(15); var invariant = __webpack_require__(1); @@ -9649,7 +9726,7 @@ module.exports = PooledClass.addPoolingTo(CallbackQueue); /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 70 */ +/* 72 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -9669,7 +9746,7 @@ var DOMProperty = __webpack_require__(13); var ReactDOMComponentTree = __webpack_require__(5); var ReactInstrumentation = __webpack_require__(8); -var quoteAttributeValueForBrowser = __webpack_require__(209); +var quoteAttributeValueForBrowser = __webpack_require__(215); var warning = __webpack_require__(2); var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty.ATTRIBUTE_NAME_CHAR + ']*$'); @@ -9892,7 +9969,7 @@ module.exports = DOMPropertyOperations; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 71 */ +/* 73 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -9915,7 +9992,7 @@ var ReactDOMComponentFlags = { module.exports = ReactDOMComponentFlags; /***/ }), -/* 72 */ +/* 74 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -9933,7 +10010,7 @@ module.exports = ReactDOMComponentFlags; var _assign = __webpack_require__(4); -var LinkedValueUtils = __webpack_require__(42); +var LinkedValueUtils = __webpack_require__(43); var ReactDOMComponentTree = __webpack_require__(5); var ReactUpdates = __webpack_require__(10); @@ -10121,7 +10198,7 @@ module.exports = ReactDOMSelect; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 73 */ +/* 75 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -10156,7 +10233,7 @@ ReactEmptyComponent.injection = ReactEmptyComponentInjection; module.exports = ReactEmptyComponent; /***/ }), -/* 74 */ +/* 76 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -10183,7 +10260,7 @@ var ReactFeatureFlags = { module.exports = ReactFeatureFlags; /***/ }), -/* 75 */ +/* 77 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -10257,7 +10334,7 @@ module.exports = ReactHostComponent; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 76 */ +/* 78 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -10273,11 +10350,11 @@ module.exports = ReactHostComponent; -var ReactDOMSelection = __webpack_require__(163); +var ReactDOMSelection = __webpack_require__(169); -var containsNode = __webpack_require__(100); -var focusNode = __webpack_require__(61); -var getActiveElement = __webpack_require__(62); +var containsNode = __webpack_require__(105); +var focusNode = __webpack_require__(63); +var getActiveElement = __webpack_require__(64); function isInDocument(node) { return containsNode(document.documentElement, node); @@ -10386,7 +10463,7 @@ var ReactInputSelection = { module.exports = ReactInputSelection; /***/ }), -/* 77 */ +/* 79 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -10404,27 +10481,27 @@ module.exports = ReactInputSelection; var _prodInvariant = __webpack_require__(3); -var DOMLazyTree = __webpack_require__(18); +var DOMLazyTree = __webpack_require__(19); var DOMProperty = __webpack_require__(13); -var React = __webpack_require__(20); -var ReactBrowserEventEmitter = __webpack_require__(30); +var React = __webpack_require__(21); +var ReactBrowserEventEmitter = __webpack_require__(31); var ReactCurrentOwner = __webpack_require__(11); var ReactDOMComponentTree = __webpack_require__(5); -var ReactDOMContainerInfo = __webpack_require__(155); -var ReactDOMFeatureFlags = __webpack_require__(157); -var ReactFeatureFlags = __webpack_require__(74); -var ReactInstanceMap = __webpack_require__(25); +var ReactDOMContainerInfo = __webpack_require__(161); +var ReactDOMFeatureFlags = __webpack_require__(163); +var ReactFeatureFlags = __webpack_require__(76); +var ReactInstanceMap = __webpack_require__(27); var ReactInstrumentation = __webpack_require__(8); -var ReactMarkupChecksum = __webpack_require__(177); -var ReactReconciler = __webpack_require__(19); -var ReactUpdateQueue = __webpack_require__(45); +var ReactMarkupChecksum = __webpack_require__(183); +var ReactReconciler = __webpack_require__(20); +var ReactUpdateQueue = __webpack_require__(46); var ReactUpdates = __webpack_require__(10); -var emptyObject = __webpack_require__(21); -var instantiateReactComponent = __webpack_require__(85); +var emptyObject = __webpack_require__(23); +var instantiateReactComponent = __webpack_require__(87); var invariant = __webpack_require__(1); -var setInnerHTML = __webpack_require__(34); -var shouldUpdateReactComponent = __webpack_require__(51); +var setInnerHTML = __webpack_require__(35); +var shouldUpdateReactComponent = __webpack_require__(52); var warning = __webpack_require__(2); var ATTR_NAME = DOMProperty.ID_ATTRIBUTE_NAME; @@ -10930,7 +11007,7 @@ module.exports = ReactMount; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 78 */ +/* 80 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -10949,7 +11026,7 @@ module.exports = ReactMount; var _prodInvariant = __webpack_require__(3); -var React = __webpack_require__(20); +var React = __webpack_require__(21); var invariant = __webpack_require__(1); @@ -10976,7 +11053,7 @@ module.exports = ReactNodeTypes; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 79 */ +/* 81 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -10998,7 +11075,7 @@ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; module.exports = ReactPropTypesSecret; /***/ }), -/* 80 */ +/* 82 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11030,7 +11107,7 @@ var ViewportMetrics = { module.exports = ViewportMetrics; /***/ }), -/* 81 */ +/* 83 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11094,7 +11171,7 @@ module.exports = accumulateInto; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 82 */ +/* 84 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11130,7 +11207,7 @@ function forEachAccumulated(arr, cb, scope) { module.exports = forEachAccumulated; /***/ }), -/* 83 */ +/* 85 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11146,7 +11223,7 @@ module.exports = forEachAccumulated; -var ReactNodeTypes = __webpack_require__(78); +var ReactNodeTypes = __webpack_require__(80); function getHostComponentFromComposite(inst) { var type; @@ -11165,7 +11242,7 @@ function getHostComponentFromComposite(inst) { module.exports = getHostComponentFromComposite; /***/ }), -/* 84 */ +/* 86 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11203,7 +11280,7 @@ function getTextContentAccessor() { module.exports = getTextContentAccessor; /***/ }), -/* 85 */ +/* 87 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11222,11 +11299,11 @@ module.exports = getTextContentAccessor; var _prodInvariant = __webpack_require__(3), _assign = __webpack_require__(4); -var ReactCompositeComponent = __webpack_require__(152); -var ReactEmptyComponent = __webpack_require__(73); -var ReactHostComponent = __webpack_require__(75); +var ReactCompositeComponent = __webpack_require__(158); +var ReactEmptyComponent = __webpack_require__(75); +var ReactHostComponent = __webpack_require__(77); -var getNextDebugID = __webpack_require__(206); +var getNextDebugID = __webpack_require__(212); var invariant = __webpack_require__(1); var warning = __webpack_require__(2); @@ -11337,7 +11414,7 @@ module.exports = instantiateReactComponent; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 86 */ +/* 88 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11393,7 +11470,7 @@ function isTextInputElement(elem) { module.exports = isTextInputElement; /***/ }), -/* 87 */ +/* 89 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11410,8 +11487,8 @@ module.exports = isTextInputElement; var ExecutionEnvironment = __webpack_require__(6); -var escapeTextContentForBrowser = __webpack_require__(33); -var setInnerHTML = __webpack_require__(34); +var escapeTextContentForBrowser = __webpack_require__(34); +var setInnerHTML = __webpack_require__(35); /** * Set the textContent property of a node, ensuring that whitespace is preserved @@ -11450,7 +11527,7 @@ if (ExecutionEnvironment.canUseDOM) { module.exports = setTextContent; /***/ }), -/* 88 */ +/* 90 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11469,11 +11546,11 @@ module.exports = setTextContent; var _prodInvariant = __webpack_require__(3); var ReactCurrentOwner = __webpack_require__(11); -var REACT_ELEMENT_TYPE = __webpack_require__(171); +var REACT_ELEMENT_TYPE = __webpack_require__(177); -var getIteratorFn = __webpack_require__(205); +var getIteratorFn = __webpack_require__(211); var invariant = __webpack_require__(1); -var KeyEscapeUtils = __webpack_require__(41); +var KeyEscapeUtils = __webpack_require__(42); var warning = __webpack_require__(2); var SEPARATOR = '.'; @@ -11632,7 +11709,7 @@ module.exports = traverseAllChildren; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 89 */ +/* 91 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11657,7 +11734,7 @@ var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol module.exports = REACT_ELEMENT_TYPE; /***/ }), -/* 90 */ +/* 92 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11682,12 +11759,12 @@ module.exports = REACT_ELEMENT_TYPE; var ReactCurrentOwner = __webpack_require__(11); var ReactComponentTreeHook = __webpack_require__(7); -var ReactElement = __webpack_require__(15); +var ReactElement = __webpack_require__(16); -var checkReactTypeSpec = __webpack_require__(219); +var checkReactTypeSpec = __webpack_require__(225); -var canDefineProperty = __webpack_require__(56); -var getIteratorFn = __webpack_require__(57); +var canDefineProperty = __webpack_require__(57); +var getIteratorFn = __webpack_require__(58); var warning = __webpack_require__(2); function getDeclarationErrorAddendum() { @@ -11897,7 +11974,7 @@ module.exports = ReactElementValidator; /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) /***/ }), -/* 91 */ +/* 93 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11919,7 +11996,7 @@ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; module.exports = ReactPropTypesSecret; /***/ }), -/* 92 */ +/* 94 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -11931,19 +12008,19 @@ Object.defineProperty(exports, "__esModule", { 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 _react = __webpack_require__(27); +var _react = __webpack_require__(14); var _react2 = _interopRequireDefault(_react); -var _LoggedOutView = __webpack_require__(94); +var _LoggedOutView = __webpack_require__(97); var _LoggedOutView2 = _interopRequireDefault(_LoggedOutView); -var _MealView = __webpack_require__(234); +var _LoggedInView = __webpack_require__(96); -var _MealView2 = _interopRequireDefault(_MealView); +var _LoggedInView2 = _interopRequireDefault(_LoggedInView); -var _client = __webpack_require__(233); +var _client = __webpack_require__(22); var _client2 = _interopRequireDefault(_client); @@ -11994,7 +12071,7 @@ var App = function (_React$Component) { value: function render() { if (this.state.ready) { if (this.state.loggedIn) { - return _react2.default.createElement(_MealView2.default, { user: this.state.user }); + return _react2.default.createElement(_LoggedInView2.default, { user: this.state.user }); } else { return _react2.default.createElement(_LoggedOutView2.default, null); } @@ -12014,17 +12091,17 @@ var App = function (_React$Component) { exports.default = App; /***/ }), -/* 93 */ +/* 95 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -module.exports = __webpack_require__(153); +module.exports = __webpack_require__(159); /***/ }), -/* 94 */ +/* 96 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -12036,32 +12113,275 @@ Object.defineProperty(exports, "__esModule", { 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 _react = __webpack_require__(27); +var _react = __webpack_require__(14); var _react2 = _interopRequireDefault(_react); -var _ModalDialog = __webpack_require__(95); +var _ModalDialog = __webpack_require__(60); var _ModalDialog2 = _interopRequireDefault(_ModalDialog); -var _client = __webpack_require__(233); +var _UserList = __webpack_require__(100); + +var _UserList2 = _interopRequireDefault(_UserList); + +var _MealList = __webpack_require__(99); + +var _MealList2 = _interopRequireDefault(_MealList); + +var _client = __webpack_require__(22); var _client2 = _interopRequireDefault(_client); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } -var LoggedOutView = function (_React$Component) { - _inherits(LoggedOutView, _React$Component); +var LoggedInView = function (_React$Component) { + _inherits(LoggedInView, _React$Component); - function LoggedOutView() { + function LoggedInView(props) { + _classCallCheck(this, LoggedInView); + + var _this = _possibleConstructorReturn(this, (LoggedInView.__proto__ || Object.getPrototypeOf(LoggedInView)).call(this)); + + _this.state = { + user: Object.assign({}, props.user), + mode: 'meals' + }; + _this.updateUser = _this.updateUser.bind(_this); + _this.toggleMode = _this.toggleMode.bind(_this); + return _this; + } + + _createClass(LoggedInView, [{ + key: 'toggleMode', + value: function toggleMode() { + this.state.mode = this.state.mode == 'meals' ? 'users' : 'meals'; + } + }, { + key: 'updateUser', + value: function updateUser(user) { + this.setState({ + user: user + }); + } + }, { + key: 'render', + value: function render() { + var activity = null; + if (this.state.mode == 'meals') { + activity = _react2.default.createElement(_MealList2.default, { user: this.state.user, currentUser: this.props.user }); + } else { + activity = _react2.default.createElement(_UserList2.default, { user: this.state.user, currentUser: this.props.user, updateUser: this.updateUser }); + } + return _react2.default.createElement( + 'div', + null, + _react2.default.createElement(Menu, { mode: this.state.mode, + user: this.state.user, + toggleMode: this.toggleMode, + currentUser: this.props.user, + updateUser: this.updateUser }), + activity + ); + } + }]); + + return LoggedInView; +}(_react2.default.Component); + +exports.default = LoggedInView; + +var Menu = function (_React$Component2) { + _inherits(Menu, _React$Component2); + + function Menu() { + _classCallCheck(this, Menu); + + var _this2 = _possibleConstructorReturn(this, (Menu.__proto__ || Object.getPrototypeOf(Menu)).call(this)); + + _this2.setGoal = _this2.setGoal.bind(_this2); + _this2.logout = _this2.logout.bind(_this2); + return _this2; + } + + _createClass(Menu, [{ + key: 'setGoal', + value: function setGoal() { + var _this3 = this; + + var goal = Math.abs(parseInt(prompt('Please enter your calorie goal', this.props.user.goal))); + if (goal) { + _client2.default.service('users').patch(this.props.user.id, { + goal: goal, + token: _client2.default.get('token') + }).then(function (user) { + _this3.props.updateUser(user); + }); + } + } + }, { + key: 'logout', + value: function logout() { + _client2.default.logout().then(function () { + window.location.reload(); + }); + } + }, { + key: 'render', + value: function render() { + var user = this.props.user; + var items = []; + items.push(_react2.default.createElement( + 'li', + { key: 'hello' }, + 'Hello ', + user.email + )); + items.push(_react2.default.createElement( + 'li', + { key: 'goal' }, + _react2.default.createElement( + 'a', + { href: '#', onClick: this.setGoal }, + 'Goal' + ), + ': ', + user.goal + )); + switch (user.role) { + case 'admin': + if (this.props.user.id !== this.props.currentUser.id) { + items.push(_react2.default.createElement( + 'li', + { key: 'resetUser' }, + _react2.default.createElement( + 'a', + { href: '#', onClick: this.resetUser }, + 'Reset User' + ) + )); + } + items.push(_react2.default.createElement( + 'li', + { key: 'userlist' }, + _react2.default.createElement( + 'a', + { href: '#', onClick: this.props.toggleMode }, + 'Users' + ) + )); + items.push(_react2.default.createElement( + 'li', + { key: 'userlist' }, + _react2.default.createElement( + 'a', + { href: '#', onClick: this.props.toggleMode }, + 'Meals' + ) + )); + break; + case 'manager': + items.push(_react2.default.createElement( + 'li', + { key: 'userlist' }, + _react2.default.createElement( + 'a', + { href: '#', onClick: this.props.toggleMode }, + 'Users' + ) + )); + items.push(_react2.default.createElement( + 'li', + { key: 'userlist' }, + _react2.default.createElement( + 'a', + { href: '#', onClick: this.props.toggleMode }, + 'Meals' + ) + )); + case 'user': + break; + } + items.push(_react2.default.createElement( + 'li', + { key: 'logout' }, + _react2.default.createElement( + 'a', + { href: '#', onClick: this.logout }, + 'Logout' + ) + )); + + return _react2.default.createElement( + 'div', + null, + _react2.default.createElement( + 'ul', + { className: 'menu' }, + items + ) + ); + // {}} /> + } + }]); + + return Menu; +}(_react2.default.Component); + +// class ProfileModal extends React.Component { +// render() { +// return ( +// +// +// ) +// } +// } + +/***/ }), +/* 97 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +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 _react = __webpack_require__(14); + +var _react2 = _interopRequireDefault(_react); + +var _ModalDialog = __webpack_require__(60); + +var _ModalDialog2 = _interopRequireDefault(_ModalDialog); + +var _client = __webpack_require__(22); + +var _client2 = _interopRequireDefault(_client); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var LoggedOutView = function (_React$Component) { + _inherits(LoggedOutView, _React$Component); + + function LoggedOutView() { _classCallCheck(this, LoggedOutView); var _this = _possibleConstructorReturn(this, (LoggedOutView.__proto__ || Object.getPrototypeOf(LoggedOutView)).call(this)); @@ -12271,8 +12591,9 @@ var SignupForm = function (_React$Component4) { event.preventDefault(); var usersService = _client2.default.service('users'); usersService.create(this.state).then(function (result) { + console.log(result); return _client2.default.authenticate({ - strategy: 'local', + type: 'local', email: _this6.state.email, password: _this6.state.password }); @@ -12332,7 +12653,7 @@ var SignupForm = function (_React$Component4) { }(_react2.default.Component); /***/ }), -/* 95 */ +/* 98 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; @@ -12341,493 +12662,533 @@ var SignupForm = function (_React$Component4) { Object.defineProperty(exports, "__esModule", { value: true }); -exports.default = ModalDialog; -var _react = __webpack_require__(27); +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 _react = __webpack_require__(14); var _react2 = _interopRequireDefault(_react); +var _client = __webpack_require__(22); + +var _client2 = _interopRequireDefault(_client); + +var _moment = __webpack_require__(237); + +var _moment2 = _interopRequireDefault(_moment); + +var _reactDateRange = __webpack_require__(363); + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -function ModalDialog(props) { - var visible = props.visible ? 'visible' : ''; - function cancel(e) { - e.stopPropagation(); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var MealFilter = function (_React$Component) { + _inherits(MealFilter, _React$Component); + + function MealFilter() { + _classCallCheck(this, MealFilter); + + var _this = _possibleConstructorReturn(this, (MealFilter.__proto__ || Object.getPrototypeOf(MealFilter)).call(this)); + + var start = new Date(); + var end = new Date(); + end.setDate(end.getDate() - 6); + _this.state = { + startDate: (0, _moment2.default)(start), + endDate: (0, _moment2.default)(end), + startTime: 0, + endTime: 23 + }; + _this.handleSelect = _this.handleSelect.bind(_this); + return _this; } - return _react2.default.createElement( - 'div', - { className: 'modal ' + visible, onClick: props.onClose }, - _react2.default.createElement( - 'div', - { className: 'inner', onClick: cancel }, - props.children, - _react2.default.createElement( + + _createClass(MealFilter, [{ + key: 'handleSelect', + value: function handleSelect(range) { + console.log(range); + // range.startDate; // Momentjs object + // range.endDate + this.setState(range); + } + }, { + key: 'pickTimeRange', + value: function pickTimeRange(event, start, end) { + this.setState({ startTime: start, endTime: end }); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var times = [[0, 11, 'Breakfast'], [12, 15, 'Lunch'], [15, 23, 'Dinner'], [0, 23, 'All']].map(function (r, i) { + var start = r[0]; + var end = r[1]; + var name = r[2]; + var className = ''; + if (_this2.state.startTime === start && _this2.state.endTime === end) { + className = 'selected'; + } + return _react2.default.createElement( + 'button', + { + key: i, + className: className, + onClick: function onClick(e) { + _this2.pickTimeRange(e, start, end); + } }, + name + ); + }); + return _react2.default.createElement( 'div', - { className: 'close', onClick: props.onClose }, - 'x' - ) - ) - ); -} + null, + _react2.default.createElement(_reactDateRange.DateRange, { + onInit: this.handleSelect, + onChange: this.handleSelect, + startDate: this.state.startDate, + endDate: this.state.endDate + }), + times + ); + } + }]); + + return MealFilter; +}(_react2.default.Component); + +// class MealFilter extends React.Component { +// constructor(props){ +// super() +// this.state = { +// fromDate: new Date (), +// toDate: new Date (), +// fromTime: new Date (), +// toTime: new Date (), +// } +// this.updateState = this.updateState.bind(this) +// } +// updateState(e){ +// const name = event.target.name +// let value = event.target.value +// if (name === 'date') { +// value = new Date(value + 'T' + this.state.date.split("T")[1] ).toString() +// } else if (name === 'time') { +// value = new Date(this.state.date.split("T")[0] + value).toString() +// } +// this.setState({ +// [name]: value, +// error: null, +// }) +// } +// render () { +// const fromDate = parseDate(this.state.fromDate) +// const toDate = parseDate(this.state.toDate) +// const fromTime = parseTime(this.state.fromTime) +// const toTime = parseTime(this.state.toTime) +// return ( +//
+// Filter by date: +// +// to +// +// and from time +// +// to +// +//
+// ) +// } +// } + + +exports.default = MealFilter; /***/ }), -/* 96 */ +/* 99 */ /***/ (function(module, exports, __webpack_require__) { - -/** - * Expose `Emitter`. - */ - -if (true) { - module.exports = Emitter; -} - -/** - * Initialize a new `Emitter`. - * - * @api public - */ - -function Emitter(obj) { - if (obj) return mixin(obj); -}; - -/** - * Mixin the emitter properties. - * - * @param {Object} obj - * @return {Object} - * @api private - */ - -function mixin(obj) { - for (var key in Emitter.prototype) { - obj[key] = Emitter.prototype[key]; - } - return obj; -} - -/** - * Listen on the given `event` with `fn`. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.on = -Emitter.prototype.addEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - (this._callbacks['$' + event] = this._callbacks['$' + event] || []) - .push(fn); - return this; -}; - -/** - * Adds an `event` listener that will be invoked a single - * time then automatically removed. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.once = function(event, fn){ - function on() { - this.off(event, on); - fn.apply(this, arguments); - } - - on.fn = fn; - this.on(event, on); - return this; -}; - -/** - * Remove the given callback for `event` or all - * registered callbacks. - * - * @param {String} event - * @param {Function} fn - * @return {Emitter} - * @api public - */ - -Emitter.prototype.off = -Emitter.prototype.removeListener = -Emitter.prototype.removeAllListeners = -Emitter.prototype.removeEventListener = function(event, fn){ - this._callbacks = this._callbacks || {}; - - // all - if (0 == arguments.length) { - this._callbacks = {}; - return this; - } - - // specific event - var callbacks = this._callbacks['$' + event]; - if (!callbacks) return this; - - // remove all handlers - if (1 == arguments.length) { - delete this._callbacks['$' + event]; - return this; - } - - // remove specific handler - var cb; - for (var i = 0; i < callbacks.length; i++) { - cb = callbacks[i]; - if (cb === fn || cb.fn === fn) { - callbacks.splice(i, 1); - break; - } - } - return this; -}; - -/** - * Emit `event` with the given args. - * - * @param {String} event - * @param {Mixed} ... - * @return {Emitter} - */ - -Emitter.prototype.emit = function(event){ - this._callbacks = this._callbacks || {}; - var args = [].slice.call(arguments, 1) - , callbacks = this._callbacks['$' + event]; - - if (callbacks) { - callbacks = callbacks.slice(0); - for (var i = 0, len = callbacks.length; i < len; ++i) { - callbacks[i].apply(this, args); - } - } - - return this; -}; - -/** - * Return array of callbacks for `event`. - * - * @param {String} event - * @return {Array} - * @api public - */ - -Emitter.prototype.listeners = function(event){ - this._callbacks = this._callbacks || {}; - return this._callbacks['$' + event] || []; -}; - -/** - * Check if this emitter has `event` handlers. - * - * @param {String} event - * @return {Boolean} - * @api public - */ - -Emitter.prototype.hasListeners = function(event){ - return !! this.listeners(event).length; -}; - - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __webpack_require__) { - - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - * - * Expose `debug()` as the module. - */ - -exports = module.exports = createDebug.debug = createDebug['default'] = createDebug; -exports.coerce = coerce; -exports.disable = disable; -exports.enable = enable; -exports.enabled = enabled; -exports.humanize = __webpack_require__(136); +"use strict"; -/** - * The currently active debug mode names, and names to skip. - */ -exports.names = []; -exports.skips = []; +Object.defineProperty(exports, "__esModule", { + value: true +}); -/** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ +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; }; }(); -exports.formatters = {}; +var _react = __webpack_require__(14); -/** - * Previous log timestamp. - */ +var _react2 = _interopRequireDefault(_react); -var prevTime; +var _client = __webpack_require__(22); -/** - * Select a color. - * @param {String} namespace - * @return {Number} - * @api private - */ +var _client2 = _interopRequireDefault(_client); -function selectColor(namespace) { - var hash = 0, i; +var _MealFilter = __webpack_require__(98); - for (i in namespace) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } +var _MealFilter2 = _interopRequireDefault(_MealFilter); - return exports.colors[Math.abs(hash) % exports.colors.length]; -} +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -/** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ +function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } -function createDebug(namespace) { +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - function debug() { - // disabled? - if (!debug.enabled) return; +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } - var self = debug; +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - // set `diff` timestamp - var curr = +new Date(); - var ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; +var MealList = function (_React$Component) { + _inherits(MealList, _React$Component); - // turn the `arguments` into a proper Array - var args = new Array(arguments.length); - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i]; - } + function MealList(props) { + _classCallCheck(this, MealList); - args[0] = exports.coerce(args[0]); + var _this = _possibleConstructorReturn(this, (MealList.__proto__ || Object.getPrototypeOf(MealList)).call(this)); - if ('string' !== typeof args[0]) { - // anything else let's inspect with %O - args.unshift('%O'); - } + _this.state = { + total: 0, + limit: 0, + skip: 0, + data: [] + }; - // apply any `formatters` transformations - var index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) { - // if we encounter an escaped % then don't increase the array index - if (match === '%%') return match; - index++; - var formatter = exports.formatters[format]; - if ('function' === typeof formatter) { - var val = args[index]; - match = formatter.call(self, val); + _this.handleCreate = _this.handleCreate.bind(_this); + _this.handleUpdate = _this.handleUpdate.bind(_this); + _this.handleDelete = _this.handleDelete.bind(_this); + _this.pickMeal = _this.pickMeal.bind(_this); - // now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; + _client2.default.service('meals').find({ + query: { + userid: props.user.id, + '$sort': { 'date': '-1' }, + token: _client2.default.get('token') } - return match; + }).then(function (data) { + _this.setState(data); + }).catch(function (error) { + console.error(error); }); - - // apply env-specific formatting (colors, etc.) - exports.formatArgs.call(self, args); - - var logFn = debug.log || exports.log || console.log.bind(console); - logFn.apply(self, args); + return _this; } - debug.namespace = namespace; - debug.enabled = exports.enabled(namespace); - debug.useColors = exports.useColors(); - debug.color = selectColor(namespace); + _createClass(MealList, [{ + key: 'handleCreate', + value: function handleCreate(meal) { + var meals = this.state.data.slice(); + meals.unshift(meal); + this.setState({ + data: meals.sort(sortByDate) + }); + } + }, { + key: 'handleUpdate', + value: function handleUpdate(meal) { + var meals = this.state.data.map(function (data) { + return data.id === meal.id ? meal : data; + }).sort(sortByDate); + this.setState({ + data: meals + }); + } + }, { + key: 'handleDelete', + value: function handleDelete(mealid) { + var meals = this.state.data.filter(function (data) { + return data.id !== mealid; + }).sort(sortByDate); + this.setState({ + data: meals + }); + } + }, { + key: 'pickMeal', + value: function pickMeal(meal) { + this.mealForm.pick(meal); + } + }, { + key: 'render', + value: function render() { + var _this2 = this; - // env-specific initialization logic for debug instances - if ('function' === typeof exports.init) { - exports.init(debug); - } + var items = this.state.data.map(function (meal) { + return _react2.default.createElement(MealItem, { key: meal.id, + meal: meal, + onClick: _this2.pickMeal, + onDelete: _this2.handleDelete }); + }); + if (!items.length) { + items.push(_react2.default.createElement( + 'div', + { className: 'quiet', key: 'nomeals' }, + 'No meals found' + )); + } + return _react2.default.createElement( + 'div', + null, + _react2.default.createElement(MealForm, { user: this.props.user, + ref: function ref(mealForm) { + _this2.mealForm = mealForm; + }, + onCreate: function onCreate(meal) { + _this2.handleCreate(meal); + }, + onUpdate: function onUpdate(meal) { + _this2.handleUpdate(meal); + } + }), + _react2.default.createElement(_MealFilter2.default, null), + _react2.default.createElement( + 'div', + null, + items + ) + ); + } + }]); - return debug; -} + return MealList; +}(_react2.default.Component); -/** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ +exports.default = MealList; -function enable(namespaces) { - exports.save(namespaces); +var MealItem = function (_React$Component2) { + _inherits(MealItem, _React$Component2); - exports.names = []; - exports.skips = []; + function MealItem() { + _classCallCheck(this, MealItem); - var split = (namespaces || '').split(/[\s,]+/); - var len = split.length; + var _this3 = _possibleConstructorReturn(this, (MealItem.__proto__ || Object.getPrototypeOf(MealItem)).call(this)); - for (var i = 0; i < len; i++) { - if (!split[i]) continue; // ignore empty strings - namespaces = split[i].replace(/\*/g, '.*?'); - if (namespaces[0] === '-') { - exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - exports.names.push(new RegExp('^' + namespaces + '$')); - } + _this3.remove = _this3.remove.bind(_this3); + return _this3; } -} - -/** - * Disable debug output. - * - * @api public - */ -function disable() { - exports.enable(''); -} - -/** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ + _createClass(MealItem, [{ + key: 'remove', + value: function remove(e) { + var _this4 = this; -function enabled(name) { - var i, len; - for (i = 0, len = exports.skips.length; i < len; i++) { - if (exports.skips[i].test(name)) { - return false; + e.stopPropagation(); + var mealid = this.props.meal.id; + var mealsService = _client2.default.service('meals'); + var params = { query: { token: _client2.default.get('token') } }; + mealsService.remove(mealid, params).then(function (result) { + _this4.props.onDelete(mealid); + }).catch(function (error) { + console.error(error); + }); } - } - for (i = 0, len = exports.names.length; i < len; i++) { - if (exports.names[i].test(name)) { - return true; + }, { + key: 'render', + value: function render() { + var _this5 = this; + + var meal = this.props.meal; + // const canEdit = this.props.meal.userid === this.props.currentUser.id ? 'canEdit' : '' + var canEdit = 'canEdit'; + var date = parseDate(meal.date); + var time = parseTime(meal.date); + return _react2.default.createElement( + 'div', + { className: 'meal row ' + canEdit, onClick: function onClick() { + return _this5.props.onClick(meal); + } }, + _react2.default.createElement( + 'div', + { className: 'name' }, + meal.name + ), + _react2.default.createElement( + 'div', + { className: 'calories' }, + meal.calories, + ' cal' + ), + _react2.default.createElement( + 'div', + { className: 'date' }, + date + ), + _react2.default.createElement( + 'div', + { className: 'time' }, + time + ), + _react2.default.createElement( + 'div', + { className: 'remove', onClick: this.remove }, + 'x' + ) + ); } - } - return false; -} + }]); -/** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ + return MealItem; +}(_react2.default.Component); -function coerce(val) { - if (val instanceof Error) return val.stack || val.message; - return val; -} +var MealForm = function (_React$Component3) { + _inherits(MealForm, _React$Component3); + function MealForm(props) { + _classCallCheck(this, MealForm); -/***/ }), -/* 98 */ -/***/ (function(module, exports, __webpack_require__) { + var _this6 = _possibleConstructorReturn(this, (MealForm.__proto__ || Object.getPrototypeOf(MealForm)).call(this)); -"use strict"; + _this6.state = { + id: '', + userid: props.user.id, + name: '', + calories: '', + date: new Date() + }; + _this6.updateState = _this6.updateState.bind(_this6); + _this6.handleSubmit = _this6.handleSubmit.bind(_this6); + return _this6; + } + _createClass(MealForm, [{ + key: 'reset', + value: function reset() { + this.setState({ + id: '', + name: '', + calories: '', + date: new Date() + }); + } + }, { + key: 'pick', + value: function pick(meal) { + this.setState(meal); + } + }, { + key: 'updateState', + value: function updateState(event) { + var _setState; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ + var name = event.target.name; + var value = event.target.value; + if (name === 'date') { + value = new Date(value + 'T' + this.state.date.split("T")[1]).toString(); + } else if (name === 'time') { + value = new Date(this.state.date.split("T")[0] + value).toString(); + } else if (name === 'calories') { + value = parseInt(value); + } + this.setState((_setState = {}, _defineProperty(_setState, name, value), _defineProperty(_setState, 'error', null), _setState)); + } + }, { + key: 'handleSubmit', + value: function handleSubmit(event) { + event.preventDefault(); -var _hyphenPattern = /-(.)/g; + var id = this.state.id; -/** - * Camelcases a hyphenated string, for example: - * - * > camelize('background-color') - * < "backgroundColor" - * - * @param {string} string - * @return {string} - */ -function camelize(string) { - return string.replace(_hyphenPattern, function (_, character) { - return character.toUpperCase(); - }); -} + if (!id) { + this.create(); + } else { + this.update(); + } + } + }, { + key: 'create', + value: function create() { + var _this7 = this; -module.exports = camelize; + var mealsService = _client2.default.service('meals'); + var params = { query: { token: _client2.default.get('token') } }; -/***/ }), -/* 99 */ -/***/ (function(module, exports, __webpack_require__) { + mealsService.create(this.state, params).then(function (result) { + _this7.props.onCreate(result); + _this7.reset(); + }).catch(function (error) { + console.error(error); + _this7.setState({ + error: error.toString() + }); + }); + } + }, { + key: 'update', + value: function update() { + var _this8 = this; -"use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ + var mealsService = _client2.default.service('meals'); + var params = { query: { token: _client2.default.get('token') } }; + + mealsService.update(this.state.id, this.state, params).then(function (result) { + _this8.props.onUpdate(result); + _this8.reset(); + }).catch(function (error) { + console.error(error); + _this8.setState({ + error: error.toString() + }); + }); + } + }, { + key: 'render', + value: function render() { + var _this9 = this; + + var id = this.state.id; + var action = id ? 'update' : 'create'; + var date = parseDate(this.state.date); + var time = parseTime(this.state.date); + return _react2.default.createElement( + 'form', + { onSubmit: this.handleSubmit, className: action }, + _react2.default.createElement('input', { type: 'hidden', name: 'id', value: this.state.id, readOnly: true }), + _react2.default.createElement('input', { type: 'hidden', name: 'userid', value: this.state.userid, readOnly: true }), + _react2.default.createElement('input', { type: 'text', name: 'name', placeholder: 'Name', value: this.state.name, required: true, onChange: this.updateState }), + _react2.default.createElement('input', { type: 'number', name: 'calories', placeholder: 'Calories', value: this.state.calories, required: true, onChange: this.updateState, min: '0', max: '10000' }), + _react2.default.createElement('input', { type: 'date', name: 'date', placeholder: 'Date', value: date, required: true, onChange: this.updateState }), + _react2.default.createElement('input', { type: 'time', name: 'time', placeholder: 'Time', value: time, required: true, onChange: this.updateState, step: '60' }), + _react2.default.createElement('input', { type: 'submit', value: capitalize(action) }), + _react2.default.createElement( + 'span', + { className: 'clear', onClick: function onClick() { + return _this9.reset(); + } }, + 'cancel' + ), + _react2.default.createElement( + 'div', + { className: 'error' }, + this.state.error + ) + ); + } + }]); + return MealForm; +}(_react2.default.Component); -var camelize = __webpack_require__(98); +function sortByDate(a, b) { + return new Date(b.date) - new Date(a.date); +} -var msPattern = /^-ms-/; +function parseDate(d) { + return new Date(d).toISOString().substr(0, 10); +} -/** - * Camelcases a hyphenated CSS property name, for example: - * - * > camelizeStyleName('background-color') - * < "backgroundColor" - * > camelizeStyleName('-moz-transition') - * < "MozTransition" - * > camelizeStyleName('-ms-transition') - * < "msTransition" - * - * As Andi Smith suggests - * (http://www.andismith.com/blog/2012/02/modernizr-prefixed/), an `-ms` prefix - * is converted to lowercase `ms`. - * - * @param {string} string - * @return {string} - */ -function camelizeStyleName(string) { - return camelize(string.replace(msPattern, 'ms-')); +function parseTime(d) { + return new Date(d).toISOString().substr(11, 5); } -module.exports = camelizeStyleName; +function capitalize(s) { + s = s || ''; + return (s[0] || '').toUpperCase() + s.substr(1); +} /***/ }), /* 100 */ @@ -12836,524 +13197,535 @@ module.exports = camelizeStyleName; "use strict"; -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * - */ +Object.defineProperty(exports, "__esModule", { + value: true +}); -var isTextNode = __webpack_require__(108); +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; }; }(); -/*eslint-disable no-bitwise */ +var _react = __webpack_require__(14); -/** - * Checks if a given DOM node contains or is another DOM node. - */ -function containsNode(outerNode, innerNode) { - if (!outerNode || !innerNode) { - return false; - } else if (outerNode === innerNode) { - return true; - } else if (isTextNode(outerNode)) { - return false; - } else if (isTextNode(innerNode)) { - return containsNode(outerNode, innerNode.parentNode); - } else if ('contains' in outerNode) { - return outerNode.contains(innerNode); - } else if (outerNode.compareDocumentPosition) { - return !!(outerNode.compareDocumentPosition(innerNode) & 16); - } else { - return false; - } -} +var _react2 = _interopRequireDefault(_react); -module.exports = containsNode; +var _client = __webpack_require__(22); -/***/ }), -/* 101 */ -/***/ (function(module, exports, __webpack_require__) { +var _client2 = _interopRequireDefault(_client); -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var invariant = __webpack_require__(1); +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } -/** - * Convert array-like objects to arrays. - * - * This API assumes the caller knows the contents of the data type. For less - * well defined inputs use createArrayFromMixed. - * - * @param {object|function|filelist} obj - * @return {array} - */ -function toArray(obj) { - var length = obj.length; +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - // Some browsers builtin objects can report typeof 'function' (e.g. NodeList - // in old versions of Safari). - !(!Array.isArray(obj) && (typeof obj === 'object' || typeof obj === 'function')) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Array-like object expected') : invariant(false) : void 0; +var UserList = function (_React$Component) { + _inherits(UserList, _React$Component); - !(typeof length === 'number') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object needs a length property') : invariant(false) : void 0; + function UserList(props) { + _classCallCheck(this, UserList); - !(length === 0 || length - 1 in obj) ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object should have keys for indices') : invariant(false) : void 0; + var _this = _possibleConstructorReturn(this, (UserList.__proto__ || Object.getPrototypeOf(UserList)).call(this)); - !(typeof obj.callee !== 'function') ? process.env.NODE_ENV !== 'production' ? invariant(false, 'toArray: Object can\'t be `arguments`. Use rest params ' + '(function(...args) {}) or Array.from() instead.') : invariant(false) : void 0; + console.log("WHAT"); + _this.state = { + users: [] + }; + // client.service('users').find({ + // query: { + // '$sort': { 'date': '-1' }, + // token: client.get('token'), + // }, + // }).then((data) => { + // this.setState(data) + // }).catch((error) => { + // console.error(error) + // }) + _this.pick.bind(_this); + return _this; + } - // Old IE doesn't give collections access to hasOwnProperty. Assume inputs - // without method will throw during the slice call and skip straight to the - // fallback. - if (obj.hasOwnProperty) { - try { - return Array.prototype.slice.call(obj); - } catch (e) { - // IE < 9 does not support Array#slice on collections objects + _createClass(UserList, [{ + key: 'pick', + value: function pick() {} + }, { + key: 'render', + value: function render() { + var _this2 = this; + + var items = this.state.users.map(function (item, i) { + return _react2.default.createElement(UserItem, { key: user.id, + user: user, + onClick: _this2.pick, + onDelete: _this2.handleDelete }); + }); + return _react2.default.createElement( + 'div', + null, + items + ); } - } + }]); - // Fall back to copying key by key. This assumes all keys have a value, - // so will not preserve sparsely populated inputs. - var ret = Array(length); - for (var ii = 0; ii < length; ii++) { - ret[ii] = obj[ii]; + return UserList; +}(_react2.default.Component); + +exports.default = UserList; + +var UserItem = function (_React$Component2) { + _inherits(UserItem, _React$Component2); + + function UserItem() { + _classCallCheck(this, UserItem); + + var _this3 = _possibleConstructorReturn(this, (UserItem.__proto__ || Object.getPrototypeOf(UserItem)).call(this)); + + _this3.remove = _this3.remove.bind(_this3); + return _this3; } - return ret; -} -/** - * Perform a heuristic test to determine if an object is "array-like". - * - * A monk asked Joshu, a Zen master, "Has a dog Buddha nature?" - * Joshu replied: "Mu." - * - * This function determines if its argument has "array nature": it returns - * true if the argument is an actual array, an `arguments' object, or an - * HTMLCollection (e.g. node.childNodes or node.getElementsByTagName()). - * - * It will return false for other array-like objects like Filelist. - * - * @param {*} obj - * @return {boolean} - */ -function hasArrayNature(obj) { - return ( - // not null/false - !!obj && ( - // arrays are objects, NodeLists are functions in Safari - typeof obj == 'object' || typeof obj == 'function') && - // quacks like an array - 'length' in obj && - // not window - !('setInterval' in obj) && - // no DOM node should be considered an array-like - // a 'select' element has 'length' and 'item' properties on IE8 - typeof obj.nodeType != 'number' && ( - // a real array - Array.isArray(obj) || - // arguments - 'callee' in obj || - // HTMLCollection/NodeList - 'item' in obj) - ); -} - -/** - * Ensure that the argument is an array by wrapping it in an array if it is not. - * Creates a copy of the argument if it is already an array. - * - * This is mostly useful idiomatically: - * - * var createArrayFromMixed = require('createArrayFromMixed'); - * - * function takesOneOrMoreThings(things) { - * things = createArrayFromMixed(things); - * ... - * } - * - * This allows you to treat `things' as an array, but accept scalars in the API. - * - * If you need to convert an array-like object, like `arguments`, into an array - * use toArray instead. - * - * @param {*} obj - * @return {array} - */ -function createArrayFromMixed(obj) { - if (!hasArrayNature(obj)) { - return [obj]; - } else if (Array.isArray(obj)) { - return obj.slice(); - } else { - return toArray(obj); - } -} - -module.exports = createArrayFromMixed; -/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(0))) - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(process) { - -/** - * Copyright (c) 2013-present, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - */ - -/*eslint-disable fb-www/unsafe-html*/ - -var ExecutionEnvironment = __webpack_require__(6); - -var createArrayFromMixed = __webpack_require__(101); -var getMarkupWrap = __webpack_require__(103); -var invariant = __webpack_require__(1); - -/** - * Dummy container used to render all markup. - */ -var dummyNode = ExecutionEnvironment.canUseDOM ? document.createElement('div') : null; - -/** - * Pattern used by `getNodeName`. - */ -var nodeNamePattern = /^\s*<(\w+)/; - -/** - * Extracts the `nodeName` of the first element in a string of markup. - * - * @param {string} markup String of markup. - * @return {?string} Node name of the supplied markup. - */ -function getNodeName(markup) { - var nodeNameMatch = markup.match(nodeNamePattern); - return nodeNameMatch && nodeNameMatch[1].toLowerCase(); -} - -/** - * Creates an array containing the nodes rendered from the supplied markup. The - * optionally supplied `handleScript` function will be invoked once for each - *