UNPKG

43.9 kBJavaScriptView Raw
1exports["client"] =
2/******/ (function(modules) { // webpackBootstrap
3/******/ // The module cache
4/******/ var installedModules = {};
5/******/
6/******/ // The require function
7/******/ function __webpack_require__(moduleId) {
8/******/
9/******/ // Check if module is in cache
10/******/ if(installedModules[moduleId]) {
11/******/ return installedModules[moduleId].exports;
12/******/ }
13/******/ // Create a new module (and put it into the cache)
14/******/ var module = installedModules[moduleId] = {
15/******/ i: moduleId,
16/******/ l: false,
17/******/ exports: {}
18/******/ };
19/******/
20/******/ // Execute the module function
21/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
22/******/
23/******/ // Flag the module as loaded
24/******/ module.l = true;
25/******/
26/******/ // Return the exports of the module
27/******/ return module.exports;
28/******/ }
29/******/
30/******/
31/******/ // expose the modules object (__webpack_modules__)
32/******/ __webpack_require__.m = modules;
33/******/
34/******/ // expose the module cache
35/******/ __webpack_require__.c = installedModules;
36/******/
37/******/ // identity function for calling harmony imports with the correct context
38/******/ __webpack_require__.i = function(value) { return value; };
39/******/
40/******/ // define getter function for harmony exports
41/******/ __webpack_require__.d = function(exports, name, getter) {
42/******/ if(!__webpack_require__.o(exports, name)) {
43/******/ Object.defineProperty(exports, name, {
44/******/ configurable: false,
45/******/ enumerable: true,
46/******/ get: getter
47/******/ });
48/******/ }
49/******/ };
50/******/
51/******/ // getDefaultExport function for compatibility with non-harmony modules
52/******/ __webpack_require__.n = function(module) {
53/******/ var getter = module && module.__esModule ?
54/******/ function getDefault() { return module['default']; } :
55/******/ function getModuleExports() { return module; };
56/******/ __webpack_require__.d(getter, 'a', getter);
57/******/ return getter;
58/******/ };
59/******/
60/******/ // Object.prototype.hasOwnProperty.call
61/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
62/******/
63/******/ // __webpack_public_path__
64/******/ __webpack_require__.p = "";
65/******/
66/******/ // Load entry module and return exports
67/******/ return __webpack_require__(__webpack_require__.s = 5);
68/******/ })
69/************************************************************************/
70/******/ ([
71/* 0 */
72/***/ (function(module, exports) {
73
74module.exports = require("react");
75
76/***/ }),
77/* 1 */
78/***/ (function(module, exports, __webpack_require__) {
79
80"use strict";
81
82
83Object.defineProperty(exports, "__esModule", {
84 value: true
85});
86var scrollToY = function scrollToY() {};
87try {
88 // first add raf shim
89 // http://www.paulirish.com/2011/requestanimationframe-for-smart-animating/
90 window.requestAnimFrame = function () {
91 return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function (callback) {
92 window.setTimeout(callback, 1000 / 60);
93 };
94 }();
95
96 // main function
97 scrollToY = function scrollToY(scrollTargetY, speed, easing) {
98 // scrollTargetY: the target scrollY property of the window
99 // speed: time in pixels per second
100 // easing: easing equation to use
101
102 var scrollY = window.scrollY,
103 scrollTargetY = scrollTargetY || 0,
104 speed = speed || 2000,
105 easing = easing || 'easeOutSine',
106 currentTime = 0;
107
108 // min time .1, max time .8 seconds
109 var time = Math.max(0.1, Math.min(Math.abs(scrollY - scrollTargetY) / speed, 0.8));
110
111 // easing equations from https://github.com/danro/easing-js/blob/master/easing.js
112 var PI_D2 = Math.PI / 2,
113 easingEquations = {
114 easeOutSine: function easeOutSine(pos) {
115 return Math.sin(pos * (Math.PI / 2));
116 },
117 easeInOutSine: function easeInOutSine(pos) {
118 return -0.5 * (Math.cos(Math.PI * pos) - 1);
119 },
120 easeInOutQuint: function easeInOutQuint(pos) {
121 if ((pos /= 0.5) < 1) {
122 return 0.5 * Math.pow(pos, 5);
123 }
124 return 0.5 * (Math.pow(pos - 2, 5) + 2);
125 }
126
127 // add animation loop
128 };function tick() {
129 currentTime += 1 / 60;
130
131 var p = currentTime / time;
132 var t = easingEquations[easing](p);
133
134 if (p < 1) {
135 window.requestAnimFrame(tick);
136 window.scrollTo(0, scrollY + (scrollTargetY - scrollY) * t);
137 } else {
138 window.scrollTo(0, scrollTargetY);
139 }
140 }
141
142 tick();
143 };
144} catch (err) {/* Suppressing */}
145
146exports.default = {
147 scrollToY: scrollToY
148};
149module.exports = exports['default'];
150
151/***/ }),
152/* 2 */
153/***/ (function(module, exports) {
154
155var g;
156
157// This works in non-strict mode
158g = (function() {
159 return this;
160})();
161
162try {
163 // This works if eval is allowed (see CSP)
164 g = g || Function("return this")() || (1,eval)("this");
165} catch(e) {
166 // This works if the window reference is available
167 if(typeof window === "object")
168 g = window;
169}
170
171// g can still be undefined, but nothing to do about it...
172// We return undefined, instead of nothing here, so it's
173// easier to handle this case. if(!global) { ...}
174
175module.exports = g;
176
177
178/***/ }),
179/* 3 */
180/***/ (function(module, exports) {
181
182module.exports = require("async");
183
184/***/ }),
185/* 4 */
186/***/ (function(module, exports, __webpack_require__) {
187
188"use strict";
189/* WEBPACK VAR INJECTION */(function(global) {
190
191Object.defineProperty(exports, "__esModule", {
192 value: true
193});
194
195var _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; };
196
197var _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; }; }();
198
199__webpack_require__(11);
200
201var _async = __webpack_require__(3);
202
203var _async2 = _interopRequireDefault(_async);
204
205var _core = __webpack_require__(9);
206
207var _history = __webpack_require__(15);
208
209var _querystring = __webpack_require__(17);
210
211var _querystring2 = _interopRequireDefault(_querystring);
212
213var _react = __webpack_require__(0);
214
215var _react2 = _interopRequireDefault(_react);
216
217var _cookie = __webpack_require__(14);
218
219var _cookie2 = _interopRequireDefault(_cookie);
220
221var _reactDom = __webpack_require__(18);
222
223var _reactRedux = __webpack_require__(19);
224
225var _reactRouter = __webpack_require__(20);
226
227var _redux = __webpack_require__(21);
228
229var _reduxThunk = __webpack_require__(23);
230
231var _reduxThunk2 = _interopRequireDefault(_reduxThunk);
232
233var _UniversalPageHandler = __webpack_require__(12);
234
235var _UniversalPageHandler2 = _interopRequireDefault(_UniversalPageHandler);
236
237var _InternationalizationHandler = __webpack_require__(13);
238
239var _InternationalizationHandler2 = _interopRequireDefault(_InternationalizationHandler);
240
241var _scrollToAnimation = __webpack_require__(1);
242
243var _reduxDevtoolsExtension = __webpack_require__(22);
244
245function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
246
247function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
248
249var logger = global.Logger.getLogger('UniversalApplicationClient');
250
251var QS_REGEX = /^\?(.*)$/;
252
253/**
254 * This devTools is used for debugging purpose only
255 * Integrated with Chrome's extension, ReduxDevTools
256*/
257var createStoreWithMiddleWareAndDevTools = (0, _reduxDevtoolsExtension.composeWithDevTools)((0, _redux.applyMiddleware)(_reduxThunk2.default))(_redux.createStore);
258
259var createStoreWithMiddleware = (0, _redux.applyMiddleware)(_reduxThunk2.default)(_redux.createStore);
260
261var UniversalApplicationClient = function () {
262 function UniversalApplicationClient(options) {
263 _classCallCheck(this, UniversalApplicationClient);
264
265 logger.info('Initializing web application client.', this._options);
266 this._options = options;
267 this._initialize();
268 }
269
270 _createClass(UniversalApplicationClient, [{
271 key: '_initialize',
272 value: function _initialize() {
273 this._setupReducers();
274 this._setupStore();
275 this._setupRouting();
276 this._setupBrowserHistory();
277 this._setupViewContainer();
278 }
279 }, {
280 key: '_setupReducers',
281 value: function _setupReducers() {
282 var reducers = this.getReducers();
283 var allReducers = _extends({}, reducers, {
284 view: _core.serverFetchReducer
285 });
286 this._reducers = allReducers;
287 }
288 }, {
289 key: '_setupStore',
290 value: function _setupStore() {
291 // TODO: change to config element, or... not
292 if (__PROJECT__.environment === 'development' || __PROJECT__.environment === 'staging') {
293 this._store = createStoreWithMiddleWareAndDevTools((0, _redux.combineReducers)(this._reducers));
294 } else {
295 this._store = createStoreWithMiddleware((0, _redux.combineReducers)(this._reducers));
296 }
297 }
298 }, {
299 key: '_setupRouting',
300 value: function _setupRouting() {
301 var finalRoutes = null;
302 var originalRoutes = this.getRoutes();
303 var generatedRoutes = [];
304 this._options.locales.forEach(function (locale) {
305 var internationalRoute = _react2.default.createElement(
306 _reactRouter.Route,
307 { key: locale, path: locale, component: _InternationalizationHandler2.default },
308 originalRoutes
309 );
310 generatedRoutes.push(internationalRoute);
311 });
312
313 generatedRoutes.push(originalRoutes);
314 finalRoutes = _react2.default.createElement(
315 _reactRouter.Route,
316 { path: '/', component: _UniversalPageHandler2.default },
317 generatedRoutes.map(function (route) {
318 return route;
319 })
320 );
321 this._routes = finalRoutes;
322 }
323 }, {
324 key: '_runFilterPreFetchStage',
325 value: function _runFilterPreFetchStage(filterQueue, renderProps, renderedServerComponents, context, callback) {
326 var _this = this;
327
328 if (filterQueue.length > 0) {
329 var filterFnQueue = [];
330 filterQueue.reverse().forEach(function (filterFn) {
331 filterFnQueue.push(function (ccallback) {
332 var filterCallContext = {
333 get: function get() {
334 return context;
335 },
336 next: function next(booleanResult) {
337 if (typeof booleanResult === 'undefined' || booleanResult == null) {
338 booleanResult = true;
339 }
340 ccallback(null, booleanResult);
341 },
342 redirect: function redirect(_redirect) {
343 ccallback({ type: 'REDIRECTION', redirect: _redirect }, false);
344 },
345 notFound: function notFound() {
346 ccallback({ type: 'NOT_FOUND' }, false);
347 }
348 };
349 filterFn(filterCallContext);
350 });
351 });
352 _async2.default.series(filterFnQueue, function (err, results) {
353 if (err) {
354 if (err.type === 'REDIRECTION') {
355 _this._store.dispatch({
356 type: '__ROUTE_FINISH_TRANSITION__'
357 });
358 callback(false);
359 return _this._history.replace(err.redirect);
360 } else if (err.type === 'NOT_FOUND') {
361 logger.error('[404] URL not found. Redirecting to HOME_PAGE');
362 _this._store.dispatch({
363 type: '__ROUTE_FINISH_TRANSITION__'
364 });
365 callback(false);
366 return _this._history.replace('/');
367 } else {
368 // TODO what case need to be handled?
369 }
370 } else {
371 _this._runFetchStage(renderProps, renderedServerComponents, context, callback);
372 }
373 });
374 } else {
375 this._runFetchStage(renderProps, renderedServerComponents, context, callback);
376 }
377 }
378 }, {
379 key: '_runFetchStage',
380 value: function _runFetchStage(renderProps, renderedServerComponents, context, callback) {
381 var _this2 = this;
382
383 var fetchDataQueue = [];
384 var dataContextObject = {};
385
386 renderedServerComponents.forEach(function (rsc) {
387 if (rsc.__fetchData != null && typeof rsc.__fetchData !== 'undefined') {
388 var fnFetchCall = function fnFetchCall(callback) {
389 setTimeout(function () {
390 rsc.__fetchData(dataContextObject, context, callback);
391 }, 1);
392 };
393 fetchDataQueue.push(fnFetchCall);
394 }
395 });
396
397 _async2.default.series(fetchDataQueue, function (err, results) {
398 if (err) {
399 logger.error('[500] An error occurred. Redirecting to HOME_PAGE');
400 _this2._store.dispatch({
401 type: '__ROUTE_FINISH_TRANSITION__'
402 });
403 callback(false);
404 return _this2._history.replace('/');
405 } else {
406 var fetchedDataContext = {};
407 results.forEach(function (result) {
408 fetchedDataContext = _extends({}, fetchedDataContext, result);
409 });
410
411 _this2._store.dispatch({
412 type: '__SET_VIEW_STATE__',
413 data: fetchedDataContext
414 });
415
416 var postFetchFilterQueue = [];
417
418 renderedServerComponents.forEach(function (rsc) {
419 if (rsc.__postFetchFilter != null && typeof rsc.__postFetchFilter !== 'undefined') {
420 postFetchFilterQueue = postFetchFilterQueue.concat(rsc.__postFetchFilter);
421 }
422 });
423
424 _this2._runFilterPostFetchStage(postFetchFilterQueue, renderedServerComponents, context, callback);
425 }
426 });
427 }
428 }, {
429 key: '_runFilterPostFetchStage',
430 value: function _runFilterPostFetchStage(filterQueue, renderedServerComponents, context, callback) {
431 var _this3 = this;
432
433 var _store = this._store;
434
435 if (filterQueue.length > 0) {
436 var filterFnQueue = [];
437 filterQueue.reverse().forEach(function (filterFn) {
438 filterFnQueue.push(function (ccallback) {
439 var filterCallContext = {
440 store: function store() {
441 return _store.getState().view;
442 },
443 get: function get() {
444 return context;
445 },
446 next: function next(booleanResult) {
447 if (typeof booleanResult === 'undefined' || booleanResult == null) {
448 booleanResult = true;
449 }
450 ccallback(null, booleanResult);
451 },
452 redirect: function redirect(_redirect2) {
453 ccallback({ type: 'REDIRECTION', redirect: _redirect2 }, false);
454 },
455 notFound: function notFound() {
456 ccallback({ type: 'NOT_FOUND' }, false);
457 }
458 };
459 filterFn(filterCallContext);
460 });
461 });
462 _async2.default.series(filterFnQueue, function (err, results) {
463 if (err) {
464 if (err.type === 'REDIRECTION') {
465 _store.dispatch({
466 type: '__ROUTE_FINISH_TRANSITION__'
467 });
468 callback(true);
469 return _this3._history.replace(err.redirect);
470 } else if (err.type === 'NOT_FOUND') {
471 logger.error('[404] URL not found. Redirecting to HOME_PAGE');
472 _store.dispatch({
473 type: '__ROUTE_FINISH_TRANSITION__'
474 });
475 callback(false);
476 return _this3._history.replace('/');
477 } else {
478 // TODO what case need to be handled?
479 }
480 } else {
481 _this3._store.dispatch({
482 type: '__ROUTE_FINISH_TRANSITION__'
483 });
484 return callback(true);
485 }
486 });
487 } else {
488 this._store.dispatch({
489 type: '__ROUTE_FINISH_TRANSITION__'
490 });
491 return callback(true);
492 }
493 }
494 }, {
495 key: '_importRequestCookie',
496 value: function _importRequestCookie(context) {
497 var parsedCookie = _cookie2.default.parse(document.cookie);
498 context.request.cookies = parsedCookie;
499 }
500 }, {
501 key: '_setupBrowserHistory',
502 value: function _setupBrowserHistory() {
503 var _this4 = this;
504
505 this._history = (0, _history.createHistory)();
506 this._history.listenBefore(function (location, callback) {
507 var routes = _this4._routes;
508
509 _this4._store.dispatch({
510 type: '__ROUTE_START_TRANSITION__'
511 });
512
513 (0, _scrollToAnimation.scrollToY)(0, 10000, 'easeInOutQuint');
514 (0, _reactRouter.match)({ routes: routes, location: location }, function (err, redirectLocation, renderProps) {
515 if (err) {
516 logger.error('[MATCH_FATAL_ERROR] Unknown error occurred.', err);
517 _this4._store.dispatch({
518 type: '__ROUTE_FINISH_TRANSITION__'
519 });
520 callback(false);
521 }
522
523 if (!renderProps) {
524 logger.error('[ROUTES_NOT_FOUND] An error occurred when trying to match routes. Routes not found.', {});
525 _this4._store.dispatch({
526 type: '__ROUTE_FINISH_TRANSITION__'
527 });
528 callback(false);
529 } else {
530 var query = {};
531 var queryStringMatch = QS_REGEX.exec(location.search);
532 var queryString = '';
533 if (queryStringMatch != null && typeof queryStringMatch !== 'undefined') {
534 queryString = queryStringMatch[1];
535 }
536 if (queryString != null && typeof queryString !== 'undefined') {
537 query = _querystring2.default.parse(queryString);
538 }
539
540 var simplifiedRoutes = {
541 name: renderProps.routes[renderProps.routes.length - 1].name,
542 path: renderProps.routes[renderProps.routes.length - 1].path
543 };
544
545 var url = location.pathname;
546 if (location.search != null && typeof location.search !== 'undefined') {
547 url += location.search;
548 }
549
550 var context = {
551 host: _this4._options.applicationHost,
552 url: url,
553 locale: null, // TODO how to handle this properly
554 params: renderProps.params,
555 query: query,
556 routes: simplifiedRoutes,
557 path: location.pathname,
558 environment: _this4._options.environment,
559 server: false,
560 client: true,
561 request: {
562 cookies: {},
563 headers: {},
564 meta: {}
565 },
566 response: {
567 cookies: {},
568 headers: {},
569 meta: {}
570 }
571 };
572
573 _this4._importRequestCookie(context);
574
575 var renderedServerComponents = renderProps.components;
576 var preFetchFilterQueue = [];
577
578 renderedServerComponents.forEach(function (rsc) {
579 if (rsc.__preFetchFilter != null && typeof rsc.__preFetchFilter !== 'undefined') {
580 preFetchFilterQueue = preFetchFilterQueue.concat(rsc.__preFetchFilter);
581 }
582 });
583
584 _this4._runFilterPreFetchStage(preFetchFilterQueue, renderProps, renderedServerComponents, context, callback);
585 }
586 });
587 });
588 }
589 }, {
590 key: '_setupViewContainer',
591 value: function _setupViewContainer() {
592 this._viewContainer = this._options.viewContainer;
593 }
594 }, {
595 key: 'run',
596 value: function run() {
597 this._store.dispatch({
598 type: '__SET_VIEW_STATE__',
599 data: this._options.initialState.view
600 });
601 (0, _reactDom.render)(_react2.default.createElement(
602 _reactRedux.Provider,
603 { store: this._store },
604 _react2.default.createElement(_reactRouter.Router, { children: this._routes, history: this._history })
605 ), this._viewContainer);
606 }
607 }]);
608
609 return UniversalApplicationClient;
610}();
611
612exports.default = UniversalApplicationClient;
613module.exports = exports['default'];
614/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))
615
616/***/ }),
617/* 5 */
618/***/ (function(module, exports, __webpack_require__) {
619
620"use strict";
621
622
623Object.defineProperty(exports, "__esModule", {
624 value: true
625});
626
627var _UniversalApplicationClient = __webpack_require__(4);
628
629var _UniversalApplicationClient2 = _interopRequireDefault(_UniversalApplicationClient);
630
631var _scrollToAnimation = __webpack_require__(1);
632
633var _scrollToAnimation2 = _interopRequireDefault(_scrollToAnimation);
634
635function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
636
637exports.default = {
638 CatelaApplicationClient: _UniversalApplicationClient2.default,
639 util: {
640 scrollToAnimation: _scrollToAnimation2.default
641 }
642};
643module.exports = exports['default'];
644
645/***/ }),
646/* 6 */
647/***/ (function(module, exports, __webpack_require__) {
648
649"use strict";
650
651
652Object.defineProperty(exports, "__esModule", {
653 value: true
654});
655
656var _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; }; }();
657
658function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
659
660var DataFetch = function () {
661 function DataFetch() {
662 _classCallCheck(this, DataFetch);
663 }
664
665 _createClass(DataFetch, [{
666 key: "fetch",
667 value: function fetch(store, context, callback) {}
668 }]);
669
670 return DataFetch;
671}();
672
673exports.default = DataFetch;
674module.exports = exports["default"];
675
676/***/ }),
677/* 7 */
678/***/ (function(module, exports, __webpack_require__) {
679
680"use strict";
681
682
683Object.defineProperty(exports, "__esModule", {
684 value: true
685});
686
687var _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; }; }();
688
689var _DataFetch2 = __webpack_require__(6);
690
691var _DataFetch3 = _interopRequireDefault(_DataFetch2);
692
693function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
694
695function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
696
697function _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; }
698
699function _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; }
700
701var FetchableInstance = function (_DataFetch) {
702 _inherits(FetchableInstance, _DataFetch);
703
704 function FetchableInstance(FetchClass) {
705 _classCallCheck(this, FetchableInstance);
706
707 var _this = _possibleConstructorReturn(this, (FetchableInstance.__proto__ || Object.getPrototypeOf(FetchableInstance)).call(this));
708
709 _this._innerFetchInstance = new FetchClass();
710 _this._innerFetchInstance.disableClient = FetchClass.disableClient;
711 return _this;
712 }
713
714 _createClass(FetchableInstance, [{
715 key: 'fetch',
716 value: function fetch(store, context, callback) {
717 this._innerFetchInstance.fetch(store, context, function (err, results) {
718 callback(err, results);
719 });
720 }
721 }, {
722 key: 'disableClient',
723 value: function disableClient() {
724 return this._innerFetchInstance.disableClient;
725 }
726 }]);
727
728 return FetchableInstance;
729}(_DataFetch3.default);
730
731exports.default = FetchableInstance;
732module.exports = exports['default'];
733
734/***/ }),
735/* 8 */
736/***/ (function(module, exports, __webpack_require__) {
737
738"use strict";
739
740
741Object.defineProperty(exports, "__esModule", {
742 value: true
743});
744
745var _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; }; }();
746
747var _FetchableInstance = __webpack_require__(7);
748
749var _FetchableInstance2 = _interopRequireDefault(_FetchableInstance);
750
751function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
752
753function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
754
755var FetchableInstanceFactory = function () {
756 function FetchableInstanceFactory() {
757 _classCallCheck(this, FetchableInstanceFactory);
758
759 this._dataFetchInstanceCache = new Map();
760 }
761
762 _createClass(FetchableInstanceFactory, [{
763 key: 'getFetchableInstance',
764 value: function getFetchableInstance(FetchClass) {
765 var construct = true;
766 if (FetchClass.KeyProperty != null && typeof FetchClass.KeyProperty !== 'undefined') {
767 if (FetchClass.EnableCache === true) {
768 if (this._dataFetchInstanceCache.get(FetchClass.Key) != null && typeof FetchClass.Key !== 'undefined') {
769 construct = false;
770 }
771 }
772 }
773 if (construct) {
774 var fetchableInstance = new _FetchableInstance2.default(FetchClass);
775 this._dataFetchInstanceCache.set(FetchClass.KeyProperty, fetchableInstance);
776 return fetchableInstance;
777 } else {
778 return this._dataFetchInstanceCache.get(FetchClass.Key);
779 }
780 }
781 }]);
782
783 return FetchableInstanceFactory;
784}();
785
786exports.default = FetchableInstanceFactory;
787module.exports = exports['default'];
788
789/***/ }),
790/* 9 */
791/***/ (function(module, exports, __webpack_require__) {
792
793"use strict";
794
795
796Object.defineProperty(exports, "__esModule", {
797 value: true
798});
799
800var _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; };
801
802var _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; }; }();
803
804var _async = __webpack_require__(3);
805
806var _async2 = _interopRequireDefault(_async);
807
808var _FetchableInstanceFactory = __webpack_require__(8);
809
810var _FetchableInstanceFactory2 = _interopRequireDefault(_FetchableInstanceFactory);
811
812var _hoistNonReactStatics = __webpack_require__(16);
813
814var _hoistNonReactStatics2 = _interopRequireDefault(_hoistNonReactStatics);
815
816function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
817
818function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
819
820function _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; }
821
822function _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; }
823
824var fetchableInstanceFactory = new _FetchableInstanceFactory2.default();
825
826function getDisplayName(WrappedComponent) {
827 return WrappedComponent.displayName || WrappedComponent.name || 'Component';
828}
829
830function fetch(fetchClasses) {
831 return function wrapWithFetch(WrappedComponent) {
832 var fetchableDisplayName = 'Fetchable(' + getDisplayName(WrappedComponent) + ')';
833
834 var FetchableWrappedComponent = function (_WrappedComponent) {
835 _inherits(FetchableWrappedComponent, _WrappedComponent);
836
837 function FetchableWrappedComponent(props, context) {
838 _classCallCheck(this, FetchableWrappedComponent);
839
840 var _this = _possibleConstructorReturn(this, (FetchableWrappedComponent.__proto__ || Object.getPrototypeOf(FetchableWrappedComponent)).call(this, props, context));
841
842 _this.fetch = {};
843 _this.model = _this.context.model;
844 return _this;
845 }
846
847 _createClass(FetchableWrappedComponent, [{
848 key: 'render',
849 value: function render() {
850 return this.__innerRender();
851 }
852 }]);
853
854 return FetchableWrappedComponent;
855 }(WrappedComponent);
856
857 FetchableWrappedComponent.displayName = fetchableDisplayName;
858 FetchableWrappedComponent.prototype.__innerRender = WrappedComponent.prototype.render;
859 FetchableWrappedComponent.__fetchData = function (store, context, callback) {
860 if (typeof fetchClasses !== 'undefined' && fetchClasses != null) {
861 var asyncCalls = {};
862 Object.keys(fetchClasses).forEach(function (kc) {
863 asyncCalls[kc] = function (callback) {
864 var fetchDataInstance = fetchableInstanceFactory.getFetchableInstance(fetchClasses[kc]);
865 if (fetchDataInstance.disableClient() && !context.server) {
866 callback(null, []);
867 } else {
868 fetchDataInstance.fetch(store, context, function (err, results) {
869 if (err) {
870 console.log('[' + kc + '] Unknown error occurred when trying to fetch data. ', err);
871 callback(err, null);
872 } else {
873 store[kc] = results;
874 callback(null, results);
875 }
876 });
877 }
878 };
879 });
880 _async2.default.series(asyncCalls, function (err, results) {
881 if (err) {
882 callback(err, null);
883 } else {
884 callback(null, results);
885 }
886 });
887 } else {
888 callback(null, store);
889 }
890 };
891 return (0, _hoistNonReactStatics2.default)(FetchableWrappedComponent, WrappedComponent);
892 };
893}
894
895function simpleReducer() {
896 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
897 var action = arguments[1];
898
899 switch (action.type) {
900 case '__SET_VIEW_STATE__':
901 var newState = _extends({}, state, action.data);
902 return newState;
903 default:
904 return state;
905 }
906 return state;
907}
908
909exports.default = {
910 fetch: fetch,
911 serverFetchReducer: simpleReducer
912};
913module.exports = exports['default'];
914
915/***/ }),
916/* 10 */
917/***/ (function(module, exports, __webpack_require__) {
918
919"use strict";
920
921
922Object.defineProperty(exports, "__esModule", {
923 value: true
924});
925
926var _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; }; }();
927
928function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
929
930var LoggerComponent = function () {
931 function LoggerComponent(context) {
932 _classCallCheck(this, LoggerComponent);
933
934 this._context = context;
935 this.init();
936 }
937
938 _createClass(LoggerComponent, [{
939 key: 'init',
940 value: function init() {
941 this._logger = console;
942 }
943 }, {
944 key: 'getLogger',
945 value: function getLogger() {
946 return this._logger;
947 }
948 }]);
949
950 return LoggerComponent;
951}();
952
953var DecoratedContextLogger = function () {
954 function DecoratedContextLogger(logger, logContextName) {
955 _classCallCheck(this, DecoratedContextLogger);
956
957 this._context = logContextName;
958 this._logger = logger;
959 }
960
961 _createClass(DecoratedContextLogger, [{
962 key: 'log',
963 value: function log(level, _log, data) {
964 this._logger.log(level, '[' + this._context + '] ' + _log, data);
965 }
966 }, {
967 key: 'view',
968 value: function view(data) {
969 var dataObj = {};
970 if (typeof data !== 'undefined' && data !== null) {
971 dataObj.data = data;
972 }
973 this._logger.log('info', '[' + this._context + '] ', dataObj);
974 }
975 }, {
976 key: 'info',
977 value: function info(log, data) {
978 var dataObj = {};
979 if (typeof data !== 'undefined' && data !== null) {
980 dataObj.data = data;
981 }
982 this._logger.log('info', '[' + this._context + '] ' + log, dataObj);
983 }
984 }, {
985 key: 'warn',
986 value: function warn(log, data) {
987 var dataObj = {};
988 if (typeof data !== 'undefined' && data != null) {
989 dataObj.data = data;
990 }
991 this._logger.log('warn', '[' + this._context + '] ' + log, dataObj);
992 }
993 }, {
994 key: 'error',
995 value: function error(log, exception, data) {
996 var dataObj = {};
997 if (typeof data !== 'undefined' && data != null) {
998 dataObj.data = data;
999 }
1000 if (typeof exception !== 'undefined' && exception != null) {
1001 dataObj.ex = exception;
1002 }
1003 this._logger.log('error', '[' + this._context + '] ' + log, {
1004 stackTrace: exception.stack,
1005 data: dataObj.data
1006 });
1007 }
1008 }, {
1009 key: 'debug',
1010 value: function debug(log, data) {
1011 var dataObj = {};
1012 if (typeof data !== 'undefined' && data != null) {
1013 dataObj.data = data;
1014 }
1015 this._logger.log('debug', '[' + this._context + '] ' + log, dataObj);
1016 }
1017 }]);
1018
1019 return DecoratedContextLogger;
1020}();
1021
1022var LogManager = function () {
1023 function LogManager(loggerComponent) {
1024 _classCallCheck(this, LogManager);
1025
1026 this._loggerComponent = loggerComponent;
1027 }
1028
1029 _createClass(LogManager, [{
1030 key: 'getLogger',
1031 value: function getLogger(logContextName) {
1032 var decoratedLogger = new DecoratedContextLogger(this._loggerComponent.getLogger(), logContextName);
1033 return decoratedLogger;
1034 }
1035 }]);
1036
1037 return LogManager;
1038}();
1039
1040exports.default = {
1041 configure: function configure(context) {
1042 var contextLoggerComponent = new LoggerComponent(context);
1043 return new LogManager(contextLoggerComponent);
1044 }
1045};
1046module.exports = exports['default'];
1047
1048/***/ }),
1049/* 11 */
1050/***/ (function(module, exports, __webpack_require__) {
1051
1052"use strict";
1053/* WEBPACK VAR INJECTION */(function(global) {
1054
1055var _ClientLoggerComponent = __webpack_require__(10);
1056
1057var _ClientLoggerComponent2 = _interopRequireDefault(_ClientLoggerComponent);
1058
1059function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1060
1061var project = __PROJECT__;
1062
1063(function installClientLogger() {
1064 if (global.Logger === null || typeof global.Logger === 'undefined') {
1065 global.Logger = _ClientLoggerComponent2.default.configure(project.applicationName);
1066 }
1067})();
1068/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(2)))
1069
1070/***/ }),
1071/* 12 */
1072/***/ (function(module, exports, __webpack_require__) {
1073
1074"use strict";
1075
1076
1077Object.defineProperty(exports, "__esModule", {
1078 value: true
1079});
1080
1081var _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; }; }();
1082
1083var _react = __webpack_require__(0);
1084
1085var _react2 = _interopRequireDefault(_react);
1086
1087function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1088
1089function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1090
1091function _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; }
1092
1093function _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; }
1094
1095var UniversalPageHandler = function (_React$Component) {
1096 _inherits(UniversalPageHandler, _React$Component);
1097
1098 function UniversalPageHandler() {
1099 _classCallCheck(this, UniversalPageHandler);
1100
1101 return _possibleConstructorReturn(this, (UniversalPageHandler.__proto__ || Object.getPrototypeOf(UniversalPageHandler)).apply(this, arguments));
1102 }
1103
1104 _createClass(UniversalPageHandler, [{
1105 key: 'render',
1106 value: function render() {
1107 return _react2.default.createElement(
1108 'div',
1109 null,
1110 this.props.children
1111 );
1112 }
1113 }]);
1114
1115 return UniversalPageHandler;
1116}(_react2.default.Component);
1117
1118UniversalPageHandler.propTypes = {
1119 children: _react2.default.PropTypes.any
1120};
1121
1122exports.default = UniversalPageHandler;
1123module.exports = exports['default'];
1124
1125/***/ }),
1126/* 13 */
1127/***/ (function(module, exports, __webpack_require__) {
1128
1129"use strict";
1130
1131
1132Object.defineProperty(exports, "__esModule", {
1133 value: true
1134});
1135
1136var _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; }; }();
1137
1138var _react = __webpack_require__(0);
1139
1140var _react2 = _interopRequireDefault(_react);
1141
1142function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1143
1144function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1145
1146function _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; }
1147
1148function _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; }
1149
1150var InternationalizationHandler = function (_React$Component) {
1151 _inherits(InternationalizationHandler, _React$Component);
1152
1153 function InternationalizationHandler() {
1154 _classCallCheck(this, InternationalizationHandler);
1155
1156 return _possibleConstructorReturn(this, (InternationalizationHandler.__proto__ || Object.getPrototypeOf(InternationalizationHandler)).call(this));
1157 }
1158
1159 _createClass(InternationalizationHandler, [{
1160 key: 'render',
1161 value: function render() {
1162 return _react2.default.createElement(
1163 'div',
1164 null,
1165 this.props.children
1166 );
1167 }
1168 }]);
1169
1170 return InternationalizationHandler;
1171}(_react2.default.Component);
1172
1173InternationalizationHandler.propTypes = {
1174 children: _react2.default.PropTypes.any
1175};
1176
1177InternationalizationHandler.contextTypes = {
1178 intl: _react2.default.PropTypes.object
1179};
1180
1181exports.default = InternationalizationHandler;
1182module.exports = exports['default'];
1183
1184/***/ }),
1185/* 14 */
1186/***/ (function(module, exports) {
1187
1188module.exports = require("cookie");
1189
1190/***/ }),
1191/* 15 */
1192/***/ (function(module, exports) {
1193
1194module.exports = require("history");
1195
1196/***/ }),
1197/* 16 */
1198/***/ (function(module, exports) {
1199
1200module.exports = require("hoist-non-react-statics");
1201
1202/***/ }),
1203/* 17 */
1204/***/ (function(module, exports) {
1205
1206module.exports = require("querystring");
1207
1208/***/ }),
1209/* 18 */
1210/***/ (function(module, exports) {
1211
1212module.exports = require("react-dom");
1213
1214/***/ }),
1215/* 19 */
1216/***/ (function(module, exports) {
1217
1218module.exports = require("react-redux");
1219
1220/***/ }),
1221/* 20 */
1222/***/ (function(module, exports) {
1223
1224module.exports = require("react-router");
1225
1226/***/ }),
1227/* 21 */
1228/***/ (function(module, exports) {
1229
1230module.exports = require("redux");
1231
1232/***/ }),
1233/* 22 */
1234/***/ (function(module, exports) {
1235
1236module.exports = require("redux-devtools-extension");
1237
1238/***/ }),
1239/* 23 */
1240/***/ (function(module, exports) {
1241
1242module.exports = require("redux-thunk");
1243
1244/***/ })
1245/******/ ]);
1246//# sourceMappingURL=catela.build.client.js.map
\No newline at end of file