New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

frint-react

Package Overview
Dependencies
Maintainers
6
Versions
57
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

frint-react - npm Package Compare versions

Comparing version 2.2.1 to 2.3.0-alpha.f9a1b324

lib/handlers/ReactHandler.js

716

dist/frint-react.js

@@ -64,3 +64,3 @@ this["FrintReact"] =

/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 3);
/******/ return __webpack_require__(__webpack_require__.s = 4);
/******/ })

@@ -78,3 +78,3 @@ /************************************************************************/

(function() { module.exports = this["Rx"]; }());
(function() { module.exports = this["_"]; }());

@@ -85,6 +85,12 @@ /***/ }),

(function() { module.exports = this["Rx"]; }());
/***/ }),
/* 3 */
/***/ (function(module, exports) {
(function() { module.exports = this["PropTypes"]; }());
/***/ }),
/* 3 */
/* 4 */
/***/ (function(module, exports, __webpack_require__) {

@@ -99,11 +105,11 @@

var _render = __webpack_require__(8);
var _render = __webpack_require__(10);
var _render2 = _interopRequireDefault(_render);
var _streamProps = __webpack_require__(10);
var _streamProps = __webpack_require__(12);
var _streamProps2 = _interopRequireDefault(_streamProps);
var _isObservable = __webpack_require__(5);
var _isObservable = __webpack_require__(14);

@@ -116,7 +122,7 @@ var _isObservable2 = _interopRequireDefault(_isObservable);

var _observe = __webpack_require__(11);
var _observe = __webpack_require__(15);
var _observe2 = _interopRequireDefault(_observe);
var _Region = __webpack_require__(12);
var _Region = __webpack_require__(18);

@@ -129,3 +135,3 @@ var _Region2 = _interopRequireDefault(_Region);

var _Region3 = __webpack_require__(13);
var _Region3 = __webpack_require__(20);

@@ -151,8 +157,2 @@ var _Region4 = _interopRequireDefault(_Region3);

/***/ }),
/* 4 */
/***/ (function(module, exports) {
(function() { module.exports = this["_"]; }());
/***/ }),
/* 5 */

@@ -168,10 +168,2 @@ /***/ (function(module, exports, __webpack_require__) {

exports.default = isObservable;
/**
* Check if given `obj` is an Observable or not.
*
* @TODO: this function needs to be more proper and reliable
*
* @param any obj
* @return boolean
*/
function isObservable(obj) {

@@ -241,3 +233,3 @@ if (obj && typeof obj.subscribe === 'function' && typeof obj.map === 'function' && typeof obj.filter === 'function') {

var _propTypes = __webpack_require__(2);
var _propTypes = __webpack_require__(3);

@@ -306,2 +298,84 @@ var _propTypes2 = _interopRequireDefault(_propTypes);

});
exports.default = composeHandlers;
var _DefaultHandler = __webpack_require__(16);
var _DefaultHandler2 = _interopRequireDefault(_DefaultHandler);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : { default: obj };
}
function Handler() {
var _this = this;
for (var _len = arguments.length, handlers = Array(_len), _key = 0; _key < _len; _key++) {
handlers[_key] = arguments[_key];
}
[_DefaultHandler2.default].concat(handlers).forEach(function (options) {
Object.keys(options).forEach(function (k) {
_this[k] = options[k];
if (typeof options[k] === 'function') {
_this[k] = _this[k].bind(_this);
}
});
});
}
function composeHandlers() {
for (var _len2 = arguments.length, handlers = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
handlers[_key2] = arguments[_key2];
}
return new (Function.prototype.bind.apply(Handler, [null].concat(handlers)))();
}
module.exports = exports['default'];
/***/ }),
/* 9 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getMountableComponent = __webpack_require__(6);
var _getMountableComponent2 = _interopRequireDefault(_getMountableComponent);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = {
setData: function setData(key, value) {
this.component.state[key] = value;
},
getData: function getData(key) {
return this.component.state[key];
},
getProps: function getProps() {
return this.component.props;
},
getProp: function getProp(key) {
return this.component.props[key];
},
getMountableComponent: _getMountableComponent2.default
};
module.exports = exports['default'];
/***/ }),
/* 10 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = render;

@@ -313,7 +387,7 @@

var _reactDom = __webpack_require__(9);
var _reactDom = __webpack_require__(11);
var _reactDom2 = _interopRequireDefault(_reactDom);
var _ = __webpack_require__(3);
var _ = __webpack_require__(4);

@@ -332,3 +406,3 @@ var _2 = _interopRequireDefault(_);

/***/ }),
/* 9 */
/* 11 */
/***/ (function(module, exports) {

@@ -339,3 +413,3 @@

/***/ }),
/* 10 */
/* 12 */
/***/ (function(module, exports, __webpack_require__) {

@@ -350,15 +424,49 @@

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _streamProps = __webpack_require__(13);
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-underscore-dangle */
// @TODO: should go to frint-utils package?
var _streamProps2 = _interopRequireDefault(_streamProps);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = _streamProps2.default;
module.exports = exports['default'];
/***/ }),
/* 13 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i];for (var key in source) {
if (Object.prototype.hasOwnProperty.call(source, key)) {
target[key] = source[key];
}
}
}return target;
};
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.default = streamProps;
var _lodash = __webpack_require__(4);
var _lodash = __webpack_require__(1);
var _lodash2 = _interopRequireDefault(_lodash);
var _rxjs = __webpack_require__(1);
var _rxjs = __webpack_require__(2);

@@ -369,9 +477,29 @@ var _isObservable = __webpack_require__(5);

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : { default: obj };
}
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
function _toConsumableArray(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {
arr2[i] = arr[i];
}return arr2;
} else {
return Array.from(arr);
}
}
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 _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 _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}

@@ -492,3 +620,3 @@ var Streamer = function () {

/***/ }),
/* 11 */
/* 14 */
/***/ (function(module, exports, __webpack_require__) {

@@ -503,2 +631,22 @@

var _isObservable = __webpack_require__(5);
var _isObservable2 = _interopRequireDefault(_isObservable);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = _isObservable2.default;
module.exports = exports['default'];
/***/ }),
/* 15 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };

@@ -514,8 +662,20 @@

var _propTypes = __webpack_require__(2);
var _propTypes = __webpack_require__(3);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _rxjs = __webpack_require__(1);
var _rxjs = __webpack_require__(2);
var _composeHandlers = __webpack_require__(8);
var _composeHandlers2 = _interopRequireDefault(_composeHandlers);
var _ObserveHandler = __webpack_require__(17);
var _ObserveHandler2 = _interopRequireDefault(_ObserveHandler);
var _ReactHandler = __webpack_require__(9);
var _ReactHandler2 = _interopRequireDefault(_ReactHandler);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -546,5 +706,8 @@

_this.state = {
computedProps: {}
};
_this._handler = (0, _composeHandlers2.default)(_ReactHandler2.default, _ObserveHandler2.default, {
component: _this,
getProps$: fn
});
_this.state = _this._handler.getInitialData();
return _this;

@@ -556,13 +719,4 @@ }

value: function componentWillMount() {
var _this2 = this;
var observableFn = typeof fn !== 'undefined' ? fn : function () {
return _rxjs.Observable.of({});
};
this.subscription = observableFn(this.context.app).subscribe(function (computedProps) {
_this2.setState({
computedProps: computedProps
});
});
this._handler.app = this.context.app;
this._handler.beforeMount();
}

@@ -572,3 +726,3 @@ }, {

value: function componentWillUnmount() {
this.subscription.unsubscribe();
this._handler.beforeDestroy();
}

@@ -600,3 +754,3 @@ }, {

/***/ }),
/* 12 */
/* 16 */
/***/ (function(module, exports, __webpack_require__) {

@@ -610,6 +764,110 @@

});
/* eslint-disable no-unused-vars */
exports.default = {
// options
app: null,
component: null,
// lifecycle: creation
initialize: function initialize() {
return null;
},
beforeDestroy: function beforeDestroy() {
return null;
},
// data
getInitialData: function getInitialData() {
return {};
},
setData: function setData(key, value) {
return null;
},
setDataWithCallback: function setDataWithCallback(key, value, cb) {
this.setData(key, value);
cb();
},
getData: function getData(key) {
return null;
},
// props
getProp: function getProp(key) {
return null;
},
getProps: function getProps() {
return {};
},
// lifecycle: mounting
beforeMount: function beforeMount() {
return null;
},
afterMount: function afterMount() {
return null;
},
// lifecycle: re-rendering
beforeUpdate: function beforeUpdate() {
return null;
},
shouldUpdate: function shouldUpdate(nextProps, nextData) {
return true;
},
afterUpdate: function afterUpdate() {
return null;
},
// other
getMountableComponent: function getMountableComponent(app) {
return null;
}
};
module.exports = exports["default"];
/***/ }),
/* 17 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = {
getProps$: null,
getInitialData: function getInitialData() {
return {
computedProps: {}
};
},
beforeMount: function beforeMount() {
var _this = this;
this._subscription = this.getProps$(this.app).subscribe(function (props) {
_this.setData('computedProps', props);
});
},
beforeDestroy: function beforeDestroy() {
console.log('ObserveHandler: beforeDestroy');
this._subscription.unsubsribe();
}
};
module.exports = exports['default'];
/***/ }),
/* 18 */
/***/ (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 _lodash = __webpack_require__(4);
var _lodash = __webpack_require__(1);

@@ -622,10 +880,18 @@ var _lodash2 = _interopRequireDefault(_lodash);

var _propTypes = __webpack_require__(2);
var _propTypes = __webpack_require__(3);
var _propTypes2 = _interopRequireDefault(_propTypes);
var _getMountableComponent = __webpack_require__(6);
var _composeHandlers = __webpack_require__(8);
var _getMountableComponent2 = _interopRequireDefault(_getMountableComponent);
var _composeHandlers2 = _interopRequireDefault(_composeHandlers);
var _RegionHandler = __webpack_require__(19);
var _RegionHandler2 = _interopRequireDefault(_RegionHandler);
var _ReactHandler = __webpack_require__(9);
var _ReactHandler2 = _interopRequireDefault(_ReactHandler);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -655,35 +921,14 @@

_this.state = {
list: [], // array of apps ==> { name, instance }
listForRendering: [] // array of {name, Component} objects
};
_this._handler = (0, _composeHandlers2.default)(_ReactHandler2.default, _RegionHandler2.default, {
component: _this
});
_this.state = _this._handler.getInitialData();
return _this;
}
/**
* Determines if the the component should be updated or not.
* Since we are calling setState multiple times, we need to make sure that only when
* the list of apps to render, i.e. this.state.listForRendering, is changed should
* trigger a re-render of the region component.
* @param {Object} nextProps the next set of props
* @param {Object} nextState the next component state to be set
* @return {Boolean} a boolean flag indicating whether the component should be updated
*/
_createClass(Region, [{
key: 'shouldComponentUpdate',
value: function shouldComponentUpdate(nextProps, nextState) {
var shouldUpdate = !_lodash2.default.isEqual(this.props, nextProps);
if (!shouldUpdate) {
var listForRendering = nextState.listForRendering;
shouldUpdate = shouldUpdate || this.state.listForRendering.length !== listForRendering.length;
shouldUpdate = shouldUpdate || _lodash2.default.zipWith(this.state.listForRendering, listForRendering, function (prev, next) {
return prev.name === next.name;
}).some(function (value) {
return !value;
});
}
return shouldUpdate;
return this._handler.shouldUpdate(nextProps, nextState);
}

@@ -693,86 +938,9 @@ }, {

value: function componentWillMount() {
var _this2 = this;
var rootApp = !this.context || !this.context.app ? window.app // @TODO: can we avoid globals?
: this.context.app.getRootApp();
if (!rootApp) {
return;
}
this.rootApp = rootApp;
var apps$ = rootApp.getApps$(this.props.name, this.props.uniqueKey);
this.subscription = apps$.subscribe({
next: function next(list) {
_this2.setState({
list: list
}, function () {
_this2.state.list.forEach(function (item) {
var appName = item.name,
appWeight = item.weight,
multi = item.multi;
var existsInState = _this2.state.listForRendering.some(function (w) {
return w.name === appName;
});
// @TODO: take care of removal in streamed list too?
if (existsInState) {
return;
}
var regionArgs = _this2.props.uniqueKey ? [_this2.props.name, _this2.props.uniqueKey] : [_this2.props.name];
if (_this2.props.uniqueKey && !rootApp.hasAppInstance.apply(rootApp, [appName].concat(regionArgs))) {
rootApp.instantiateApp.apply(rootApp, [appName].concat(regionArgs));
}
var appInstance = rootApp.getAppInstance.apply(rootApp, [appName].concat(regionArgs));
if (appInstance) {
_this2.sendProps(appInstance, _this2.props);
}
_this2.setState({
listForRendering: _this2.state.listForRendering.concat({
name: appName,
weight: appWeight,
instance: appInstance,
multi: multi,
Component: (0, _getMountableComponent2.default)(appInstance)
}).sort(function (a, b) {
return a.weight - b.weight;
})
});
});
});
},
error: function error(err) {
console.warn('Subscription error for <Region name="' + _this2.props.name + '" />:', err);
}
});
this._handler.app = this.context.app;
this._handler.beforeMount();
}
}, {
key: 'sendProps',
value: function sendProps(appInstance, props) {
// eslint-disable-line
var regionService = appInstance.get(appInstance.options.providerNames.region);
if (!regionService) {
return;
}
regionService.emit(props);
}
}, {
key: 'componentWillReceiveProps',
value: function componentWillReceiveProps(nextProps) {
var _this3 = this;
this.state.listForRendering.filter(function (item) {
return item.instance;
}).forEach(function (item) {
return _this3.sendProps(item.instance, nextProps);
});
this._handler.afterUpdate(nextProps);
}

@@ -782,15 +950,3 @@ }, {

value: function componentWillUnmount() {
var _this4 = this;
if (this.subscription) {
this.subscription.unsubscribe();
}
if (this.rootApp) {
this.state.listForRendering.filter(function (item) {
return item.multi;
}).forEach(function (item) {
_this4.rootApp.destroyApp(item.name, _this4.props.name, _this4.props.uniqueKey);
});
}
this._handler.beforeDestroy();
}

@@ -833,3 +989,3 @@ }, {

/***/ }),
/* 13 */
/* 19 */
/***/ (function(module, exports, __webpack_require__) {

@@ -844,8 +1000,200 @@

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 _lodash = __webpack_require__(1);
var _rxjs = __webpack_require__(1);
var _lodash2 = _interopRequireDefault(_lodash);
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : { default: obj };
}
exports.default = {
getInitialData: function getInitialData() {
return {
list: [], // array of apps ==> { name, instance }
listForRendering: [] // array of {name, Component} objects
};
},
sendProps: function sendProps(appInstance, props) {
var regionService = appInstance.get(appInstance.options.providerNames.region);
if (!regionService) {
return;
}
regionService.emit(props);
},
beforeMount: function beforeMount() {
var _this = this;
var rootApp = !this.app ? window.app // @TODO: can we avoid globals?
: this.app.getRootApp();
if (!rootApp) {
return;
}
this.rootApp = rootApp;
var apps$ = rootApp.getApps$(this.getProp('name'), this.getProp('uniqueKey'));
this._subscription = apps$.subscribe({
next: function next(list) {
_this.setData('list', list);
_this.getData('list').forEach(function (item) {
var appName = item.name,
appWeight = item.weight,
multi = item.multi;
var existsInState = _this.getData('listForRendering').some(function (w) {
return w.name === appName;
});
// @TODO: take care of removal in streamed list too?
if (existsInState) {
return;
}
var regionArgs = _this.getProp('uniqueKey') ? [_this.getProp('name'), _this.getProp('uniqueKey')] : [_this.getProp('name')];
if (_this.getProp('uniqueKey') && !rootApp.hasAppInstance.apply(rootApp, [appName].concat(regionArgs))) {
rootApp.instantiateApp.apply(rootApp, [appName].concat(regionArgs));
}
var appInstance = rootApp.getAppInstance.apply(rootApp, [appName].concat(regionArgs));
if (appInstance) {
_this.sendProps(appInstance, {
name: _this.getProp('name'),
uniqueKey: _this.getProp('uniqueKey'),
data: _this.getProp('data')
});
}
_this.setData('listForRendering', _this.getData('listForRendering').concat({
name: appName,
weight: appWeight,
instance: appInstance,
multi: multi,
Component: _this.getMountableComponent(appInstance)
}).sort(function (a, b) {
return a.weight - b.weight;
}));
});
},
error: function error(err) {
console.warn('Subscription error for <Region name="' + _this.name + '" />:', err);
}
});
},
shouldUpdate: function shouldUpdate(nextProps, nextData) {
var shouldUpdate = !_lodash2.default.isEqual(this.getProps(), nextProps);
if (!shouldUpdate) {
var listForRendering = nextData.listForRendering;
shouldUpdate = shouldUpdate || this.getData('listForRendering').length !== listForRendering.length;
shouldUpdate = shouldUpdate || _lodash2.default.zipWith(this.getData('listForRendering'), listForRendering, function (prev, next) {
return prev.name === next.name;
}).some(function (value) {
return !value;
});
}
return shouldUpdate;
},
afterUpdate: function afterUpdate() {
var _this2 = this;
var newProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
var name = void 0;
var uniqueKey = void 0;
var data = void 0;
if (newProps) {
name = newProps.name;
uniqueKey = newProps.uniqueKey;
data = newProps.data;
} else {
name = this.getProp('name');
uniqueKey = this.getProp('uniqueKey');
data = this.getProp('data');
}
this.getData('listForRendering').filter(function (item) {
return item.instance;
}).forEach(function (item) {
return _this2.sendProps(item.instance, {
name: name,
uniqueKey: uniqueKey,
data: data
});
});
},
beforeDestroy: function beforeDestroy() {
var _this3 = this;
this._subscription.unsubsribe();
if (this.rootApp) {
this.getData('listForRendering').filter(function (item) {
return item.multi;
}).forEach(function (item) {
_this3.rootApp.destroyApp(item.name, _this3.getProp('name'), _this3.getProp('uniqueKey'));
});
}
}
}; /* global window */
/* eslint-disable no-console */
module.exports = exports['default'];
/***/ }),
/* 20 */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _RegionService = __webpack_require__(21);
var _RegionService2 = _interopRequireDefault(_RegionService);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = _RegionService2.default;
module.exports = exports['default'];
/***/ }),
/* 21 */
/***/ (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 _rxjs = __webpack_require__(2);
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
var RegionService = function () {

@@ -852,0 +1200,0 @@ function RegionService() {

@@ -1,1 +0,1 @@

this.FrintReact=function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=3)}([function(e,t){!function(){e.exports=this.React}()},function(e,t){!function(){e.exports=this.Rx}()},function(e,t){!function(){e.exports=this.PropTypes}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(8),u=r(o),i=n(10),a=r(i),s=n(5),c=r(s),f=n(6),l=r(f),p=n(11),d=r(p),b=n(12),h=r(b),v=n(7),y=r(v),m=n(13),g=r(m);t.default={render:u.default,streamProps:a.default,isObservable:c.default,getMountableComponent:l.default,observe:d.default,Region:h.default,Provider:y.default,RegionService:g.default},e.exports=t.default},function(e,t){!function(){e.exports=this._}()},function(e,t,n){"use strict";function r(e){return!(!e||"function"!=typeof e.subscribe||"function"!=typeof e.map||"function"!=typeof e.filter)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=e.get("component"),n={app:e},r=function(e){return i.default.createElement(s.default,n,i.default.createElement(t,e))};return function(e){return i.default.createElement(r,e)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var u=n(0),i=r(u),a=n(7),s=r(a);e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),a=n(0),s=n(2),c=function(e){return e&&e.__esModule?e:{default:e}}(s),f=function(e){function t(e,n){r(this,t);var u=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n));return u.app=e.app,u}return u(t,e),i(t,[{key:"getChildContext",value:function(){return{app:this.app}}}]),i(t,[{key:"render",value:function(){return a.Children.only(this.props.children)}}]),t}(a.Component);f.propTypes={app:c.default.object.isRequired,children:c.default.element.isRequired},f.childContextTypes={app:c.default.object.isRequired},t.default=f,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n=f.default.getMountableComponent(e);return s.default.render(i.default.createElement(n,null),t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var u=n(0),i=r(u),a=n(9),s=r(a),c=n(3),f=r(c);e.exports=t.default},function(e,t){!function(){e.exports=this.ReactDOM}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new h(e)}Object.defineProperty(t,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();t.default=a;var f=n(4),l=r(f),p=n(1),d=n(5),b=r(d),h=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,e),this._observables=[p.Observable.of(t)]}return c(e,[{key:"_push",value:function(e){this._observables.push(e)}},{key:"set",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return"string"==typeof e?this.setKey(e,n[0]):l.default.isPlainObject(e)?this.setPlainObject(e):(0,b.default)(e)?this.setObservable.apply(this,[e].concat(n)):this}},{key:"setKey",value:function(e,t){return this._push(p.Observable.of(u({},e,t))),this}},{key:"setPlainObject",value:function(e){return this._push(p.Observable.of(e)),this}},{key:"setObservable",value:function(e){for(var t=e,n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.forEach(function(e){t=t.concatMap(function(t){var n=e(t);return(0,b.default)(n)?n:p.Observable.of(n)})}),this._push(t),this}},{key:"setDispatch",value:function(e,t){var n={};return Object.keys(e).forEach(function(r){var o=e[r];n[r]=function(){return t.dispatch(o.apply(void 0,arguments))}}),this._push(p.Observable.of(n)),this}},{key:"get$",value:function(){return p.Observable.merge.apply(p.Observable,o(this._observables)).scan(function(e,t){return s({},e,t)})}}]),e}();e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e){return function(t){var n=function(n){function r(){var e;o(this,r);for(var t=arguments.length,n=Array(t),i=0;i<t;i++)n[i]=arguments[i];var a=u(this,(e=r.__proto__||Object.getPrototypeOf(r)).call.apply(e,[this].concat(n)));return a.state={computedProps:{}},a}return i(r,n),c(r,[{key:"componentWillMount",value:function(){var t=this,n=void 0!==e?e:function(){return b.Observable.of({})};this.subscription=n(this.context.app).subscribe(function(e){t.setState({computedProps:e})})}},{key:"componentWillUnmount",value:function(){this.subscription.unsubscribe()}},{key:"render",value:function(){var e=this.state.computedProps;return l.default.createElement(t,s({},e,this.props))}}]),r}(l.default.Component);return n.displayName=void 0!==t.displayName?"observe("+t.displayName+")":"observe",n.contextTypes={app:d.default.object.isRequired},n}}Object.defineProperty(t,"__esModule",{value:!0});var s=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},c=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();t.default=a;var f=n(0),l=r(f),p=n(2),d=r(p),b=n(1);e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),s=n(4),c=r(s),f=n(0),l=r(f),p=n(2),d=r(p),b=n(6),h=r(b),v=function(e){function t(){var e;o(this,t);for(var n=arguments.length,r=Array(n),i=0;i<n;i++)r[i]=arguments[i];var a=u(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(r)));return a.state={list:[],listForRendering:[]},a}return i(t,e),a(t,[{key:"shouldComponentUpdate",value:function(e,t){var n=!c.default.isEqual(this.props,e);if(!n){var r=t.listForRendering;n=n||this.state.listForRendering.length!==r.length,n=n||c.default.zipWith(this.state.listForRendering,r,function(e,t){return e.name===t.name}).some(function(e){return!e})}return n}},{key:"componentWillMount",value:function(){var e=this,t=this.context&&this.context.app?this.context.app.getRootApp():window.app;if(t){this.rootApp=t;var n=t.getApps$(this.props.name,this.props.uniqueKey);this.subscription=n.subscribe({next:function(n){e.setState({list:n},function(){e.state.list.forEach(function(n){var r=n.name,o=n.weight,u=n.multi;if(!e.state.listForRendering.some(function(e){return e.name===r})){var i=e.props.uniqueKey?[e.props.name,e.props.uniqueKey]:[e.props.name];e.props.uniqueKey&&!t.hasAppInstance.apply(t,[r].concat(i))&&t.instantiateApp.apply(t,[r].concat(i));var a=t.getAppInstance.apply(t,[r].concat(i));a&&e.sendProps(a,e.props),e.setState({listForRendering:e.state.listForRendering.concat({name:r,weight:o,instance:a,multi:u,Component:(0,h.default)(a)}).sort(function(e,t){return e.weight-t.weight})})}})})},error:function(t){console.warn('Subscription error for <Region name="'+e.props.name+'" />:',t)}})}}},{key:"sendProps",value:function(e,t){var n=e.get(e.options.providerNames.region);n&&n.emit(t)}},{key:"componentWillReceiveProps",value:function(e){var t=this;this.state.listForRendering.filter(function(e){return e.instance}).forEach(function(n){return t.sendProps(n.instance,e)})}},{key:"componentWillUnmount",value:function(){var e=this;this.subscription&&this.subscription.unsubscribe(),this.rootApp&&this.state.listForRendering.filter(function(e){return e.multi}).forEach(function(t){e.rootApp.destroyApp(t.name,e.props.name,e.props.uniqueKey)})}},{key:"render",value:function(){var e=this.state.listForRendering;return 0===e.length?null:l.default.createElement("div",null,e.map(function(e){var t=e.Component,n=e.name;return l.default.createElement(t,{key:"app-"+n})}))}}]),t}(l.default.Component);v.propTypes={name:d.default.string.isRequired,uniqueKey:d.default.string,data:d.default.any},t.default=v,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(1),i=function(){function e(){r(this,e),this.props$=new u.BehaviorSubject({})}return o(e,[{key:"emit",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.props$.next(e)}},{key:"getProps$",value:function(){return this.props$}},{key:"getData$",value:function(){return this.props$.map(function(e){return e.data})}}]),e}();t.default=i,e.exports=t.default}]);
this.FrintReact=function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};return t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=4)}([function(e,t){!function(){e.exports=this.React}()},function(e,t){!function(){e.exports=this._}()},function(e,t){!function(){e.exports=this.Rx}()},function(e,t){!function(){e.exports=this.PropTypes}()},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(10),u=r(o),a=n(12),i=r(a),l=n(14),f=r(l),s=n(6),c=r(s),p=n(15),d=r(p),h=n(18),b=r(h),y=n(7),v=r(y),g=n(20),_=r(g);t.default={render:u.default,streamProps:i.default,isObservable:f.default,getMountableComponent:c.default,observe:d.default,Region:b.default,Provider:v.default,RegionService:_.default},e.exports=t.default},function(e,t,n){"use strict";function r(e){return!(!e||"function"!=typeof e.subscribe||"function"!=typeof e.map||"function"!=typeof e.filter)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=r,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){var t=e.get("component"),n={app:e},r=function(e){return a.default.createElement(l.default,n,a.default.createElement(t,e))};return function(e){return a.default.createElement(r,e)}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var u=n(0),a=r(u),i=n(7),l=r(i);e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function u(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var a=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=n(0),l=n(3),f=function(e){return e&&e.__esModule?e:{default:e}}(l),s=function(e){function t(e,n){r(this,t);var u=o(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e,n));return u.app=e.app,u}return u(t,e),a(t,[{key:"getChildContext",value:function(){return{app:this.app}}}]),a(t,[{key:"render",value:function(){return i.Children.only(this.props.children)}}]),t}(i.Component);s.propTypes={app:f.default.object.isRequired,children:f.default.element.isRequired},s.childContextTypes={app:f.default.object.isRequired},t.default=s,e.exports=t.default},function(e,t,n){"use strict";function r(){for(var e=this,t=arguments.length,n=Array(t),r=0;r<t;r++)n[r]=arguments[r];[a.default].concat(n).forEach(function(t){Object.keys(t).forEach(function(n){e[n]=t[n],"function"==typeof t[n]&&(e[n]=e[n].bind(e))})})}function o(){for(var e=arguments.length,t=Array(e),n=0;n<e;n++)t[n]=arguments[n];return new(Function.prototype.bind.apply(r,[null].concat(t)))}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var u=n(16),a=function(e){return e&&e.__esModule?e:{default:e}}(u);e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(6),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default={setData:function(e,t){this.component.state[e]=t},getData:function(e){return this.component.state[e]},getProps:function(){return this.component.props},getProp:function(e){return this.component.props[e]},getMountableComponent:o.default},e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n=s.default.getMountableComponent(e);return l.default.render(a.default.createElement(n,null),t)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=o;var u=n(0),a=r(u),i=n(11),l=r(i),f=n(4),s=r(f);e.exports=t.default},function(e,t){!function(){e.exports=this.ReactDOM}()},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(13),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=o.default,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}function u(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return new b(e)}Object.defineProperty(t,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();t.default=i;var s=n(1),c=r(s),p=n(2),d=n(5),h=r(d),b=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a(this,e),this._observables=[p.Observable.of(t)]}return f(e,[{key:"_push",value:function(e){this._observables.push(e)}},{key:"set",value:function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return"string"==typeof e?this.setKey(e,n[0]):c.default.isPlainObject(e)?this.setPlainObject(e):(0,h.default)(e)?this.setObservable.apply(this,[e].concat(n)):this}},{key:"setKey",value:function(e,t){return this._push(p.Observable.of(u({},e,t))),this}},{key:"setPlainObject",value:function(e){return this._push(p.Observable.of(e)),this}},{key:"setObservable",value:function(e){for(var t=e,n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return r.forEach(function(e){t=t.concatMap(function(t){var n=e(t);return(0,h.default)(n)?n:p.Observable.of(n)})}),this._push(t),this}},{key:"setDispatch",value:function(e,t){var n={};return Object.keys(e).forEach(function(r){var o=e[r];n[r]=function(){return t.dispatch(o.apply(void 0,arguments))}}),this._push(p.Observable.of(n)),this}},{key:"get$",value:function(){return p.Observable.merge.apply(p.Observable,o(this._observables)).scan(function(e,t){return l({},e,t)})}}]),e}();e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(5),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=o.default,e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function i(e){return function(t){var n=function(n){function r(){var t;o(this,r);for(var n=arguments.length,a=Array(n),i=0;i<n;i++)a[i]=arguments[i];var l=u(this,(t=r.__proto__||Object.getPrototypeOf(r)).call.apply(t,[this].concat(a)));return l._handler=(0,b.default)(_.default,v.default,{component:l,getProps$:e}),l.state=l._handler.getInitialData(),l}return a(r,n),f(r,[{key:"componentWillMount",value:function(){this._handler.app=this.context.app,this._handler.beforeMount()}},{key:"componentWillUnmount",value:function(){this._handler.beforeDestroy()}},{key:"render",value:function(){var e=this.state.computedProps;return c.default.createElement(t,l({},e,this.props))}}]),r}(c.default.Component);return n.displayName=void 0!==t.displayName?"observe("+t.displayName+")":"observe",n.contextTypes={app:d.default.object.isRequired},n}}Object.defineProperty(t,"__esModule",{value:!0});var l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},f=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}();t.default=i;var s=n(0),c=r(s),p=n(3),d=r(p),h=(n(2),n(8)),b=r(h),y=n(17),v=r(y),g=n(9),_=r(g);e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={app:null,component:null,initialize:function(){return null},beforeDestroy:function(){return null},getInitialData:function(){return{}},setData:function(e,t){return null},setDataWithCallback:function(e,t,n){this.setData(e,t),n()},getData:function(e){return null},getProp:function(e){return null},getProps:function(){return{}},beforeMount:function(){return null},afterMount:function(){return null},beforeUpdate:function(){return null},shouldUpdate:function(e,t){return!0},afterUpdate:function(){return null},getMountableComponent:function(e){return null}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default={getProps$:null,getInitialData:function(){return{computedProps:{}}},beforeMount:function(){var e=this;this._subscription=this.getProps$(this.app).subscribe(function(t){e.setData("computedProps",t)})},beforeDestroy:function(){console.log("ObserveHandler: beforeDestroy"),this._subscription.unsubsribe()}},e.exports=t.default},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function u(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),l=n(1),f=(r(l),n(0)),s=r(f),c=n(3),p=r(c),d=n(8),h=r(d),b=n(19),y=r(b),v=n(9),g=r(v),_=function(e){function t(){var e;o(this,t);for(var n=arguments.length,r=Array(n),a=0;a<n;a++)r[a]=arguments[a];var i=u(this,(e=t.__proto__||Object.getPrototypeOf(t)).call.apply(e,[this].concat(r)));return i._handler=(0,h.default)(g.default,y.default,{component:i}),i.state=i._handler.getInitialData(),i}return a(t,e),i(t,[{key:"shouldComponentUpdate",value:function(e,t){return this._handler.shouldUpdate(e,t)}},{key:"componentWillMount",value:function(){this._handler.app=this.context.app,this._handler.beforeMount()}},{key:"componentWillReceiveProps",value:function(e){this._handler.afterUpdate(e)}},{key:"componentWillUnmount",value:function(){this._handler.beforeDestroy()}},{key:"render",value:function(){var e=this.state.listForRendering;return 0===e.length?null:s.default.createElement("div",null,e.map(function(e){var t=e.Component,n=e.name;return s.default.createElement(t,{key:"app-"+n})}))}}]),t}(s.default.Component);_.propTypes={name:p.default.string.isRequired,uniqueKey:p.default.string,data:p.default.any},t.default=_,e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(1),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default={getInitialData:function(){return{list:[],listForRendering:[]}},sendProps:function(e,t){var n=e.get(e.options.providerNames.region);n&&n.emit(t)},beforeMount:function(){var e=this,t=this.app?this.app.getRootApp():window.app;if(t){this.rootApp=t;var n=t.getApps$(this.getProp("name"),this.getProp("uniqueKey"));this._subscription=n.subscribe({next:function(n){e.setData("list",n),e.getData("list").forEach(function(n){var r=n.name,o=n.weight,u=n.multi;if(!e.getData("listForRendering").some(function(e){return e.name===r})){var a=e.getProp("uniqueKey")?[e.getProp("name"),e.getProp("uniqueKey")]:[e.getProp("name")];e.getProp("uniqueKey")&&!t.hasAppInstance.apply(t,[r].concat(a))&&t.instantiateApp.apply(t,[r].concat(a));var i=t.getAppInstance.apply(t,[r].concat(a));i&&e.sendProps(i,{name:e.getProp("name"),uniqueKey:e.getProp("uniqueKey"),data:e.getProp("data")}),e.setData("listForRendering",e.getData("listForRendering").concat({name:r,weight:o,instance:i,multi:u,Component:e.getMountableComponent(i)}).sort(function(e,t){return e.weight-t.weight}))}})},error:function(t){console.warn('Subscription error for <Region name="'+e.name+'" />:',t)}})}},shouldUpdate:function(e,t){var n=!o.default.isEqual(this.getProps(),e);if(!n){var r=t.listForRendering;n=n||this.getData("listForRendering").length!==r.length,n=n||o.default.zipWith(this.getData("listForRendering"),r,function(e,t){return e.name===t.name}).some(function(e){return!e})}return n},afterUpdate:function(){var e=this,t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null,n=void 0,r=void 0,o=void 0;t?(n=t.name,r=t.uniqueKey,o=t.data):(n=this.getProp("name"),r=this.getProp("uniqueKey"),o=this.getProp("data")),this.getData("listForRendering").filter(function(e){return e.instance}).forEach(function(t){return e.sendProps(t.instance,{name:n,uniqueKey:r,data:o})})},beforeDestroy:function(){var e=this;this._subscription.unsubsribe(),this.rootApp&&this.getData("listForRendering").filter(function(e){return e.multi}).forEach(function(t){e.rootApp.destroyApp(t.name,e.getProp("name"),e.getProp("uniqueKey"))})}},e.exports=t.default},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(21),o=function(e){return e&&e.__esModule?e:{default:e}}(r);t.default=o.default,e.exports=t.default},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var o=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),u=n(2),a=function(){function e(){r(this,e),this.props$=new u.BehaviorSubject({})}return o(e,[{key:"emit",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.props$.next(e)}},{key:"getProps$",value:function(){return this.props$}},{key:"getData$",value:function(){return this.props$.map(function(e){return e.data})}}]),e}();t.default=a,e.exports=t.default}]);

@@ -23,2 +23,14 @@ 'use strict';

var _composeHandlers = require('frint-component-utils/lib/composeHandlers');
var _composeHandlers2 = _interopRequireDefault(_composeHandlers);
var _ObserveHandler = require('frint-component-handlers/lib/ObserveHandler');
var _ObserveHandler2 = _interopRequireDefault(_ObserveHandler);
var _ReactHandler = require('../handlers/ReactHandler');
var _ReactHandler2 = _interopRequireDefault(_ReactHandler);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -49,5 +61,8 @@

_this.state = {
computedProps: {}
};
_this._handler = (0, _composeHandlers2.default)(_ReactHandler2.default, _ObserveHandler2.default, {
component: _this,
getProps$: fn
});
_this.state = _this._handler.getInitialData();
return _this;

@@ -59,13 +74,4 @@ }

value: function componentWillMount() {
var _this2 = this;
var observableFn = typeof fn !== 'undefined' ? fn : function () {
return _rxjs.Observable.of({});
};
this.subscription = observableFn(this.context.app).subscribe(function (computedProps) {
_this2.setState({
computedProps: computedProps
});
});
this._handler.app = this.context.app;
this._handler.beforeMount();
}

@@ -75,3 +81,3 @@ }, {

value: function componentWillUnmount() {
this.subscription.unsubscribe();
this._handler.beforeDestroy();
}

@@ -78,0 +84,0 @@ }, {

@@ -21,6 +21,14 @@ 'use strict';

var _getMountableComponent = require('./getMountableComponent');
var _composeHandlers = require('frint-component-utils/lib/composeHandlers');
var _getMountableComponent2 = _interopRequireDefault(_getMountableComponent);
var _composeHandlers2 = _interopRequireDefault(_composeHandlers);
var _RegionHandler = require('frint-component-handlers/lib/RegionHandler');
var _RegionHandler2 = _interopRequireDefault(_RegionHandler);
var _ReactHandler = require('../handlers/ReactHandler');
var _ReactHandler2 = _interopRequireDefault(_ReactHandler);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

@@ -50,35 +58,14 @@

_this.state = {
list: [], // array of apps ==> { name, instance }
listForRendering: [] // array of {name, Component} objects
};
_this._handler = (0, _composeHandlers2.default)(_ReactHandler2.default, _RegionHandler2.default, {
component: _this
});
_this.state = _this._handler.getInitialData();
return _this;
}
/**
* Determines if the the component should be updated or not.
* Since we are calling setState multiple times, we need to make sure that only when
* the list of apps to render, i.e. this.state.listForRendering, is changed should
* trigger a re-render of the region component.
* @param {Object} nextProps the next set of props
* @param {Object} nextState the next component state to be set
* @return {Boolean} a boolean flag indicating whether the component should be updated
*/
_createClass(Region, [{
key: 'shouldComponentUpdate',
value: function shouldComponentUpdate(nextProps, nextState) {
var shouldUpdate = !_lodash2.default.isEqual(this.props, nextProps);
if (!shouldUpdate) {
var listForRendering = nextState.listForRendering;
shouldUpdate = shouldUpdate || this.state.listForRendering.length !== listForRendering.length;
shouldUpdate = shouldUpdate || _lodash2.default.zipWith(this.state.listForRendering, listForRendering, function (prev, next) {
return prev.name === next.name;
}).some(function (value) {
return !value;
});
}
return shouldUpdate;
return this._handler.shouldUpdate(nextProps, nextState);
}

@@ -88,86 +75,9 @@ }, {

value: function componentWillMount() {
var _this2 = this;
var rootApp = !this.context || !this.context.app ? window.app // @TODO: can we avoid globals?
: this.context.app.getRootApp();
if (!rootApp) {
return;
}
this.rootApp = rootApp;
var apps$ = rootApp.getApps$(this.props.name, this.props.uniqueKey);
this.subscription = apps$.subscribe({
next: function next(list) {
_this2.setState({
list: list
}, function () {
_this2.state.list.forEach(function (item) {
var appName = item.name,
appWeight = item.weight,
multi = item.multi;
var existsInState = _this2.state.listForRendering.some(function (w) {
return w.name === appName;
});
// @TODO: take care of removal in streamed list too?
if (existsInState) {
return;
}
var regionArgs = _this2.props.uniqueKey ? [_this2.props.name, _this2.props.uniqueKey] : [_this2.props.name];
if (_this2.props.uniqueKey && !rootApp.hasAppInstance.apply(rootApp, [appName].concat(regionArgs))) {
rootApp.instantiateApp.apply(rootApp, [appName].concat(regionArgs));
}
var appInstance = rootApp.getAppInstance.apply(rootApp, [appName].concat(regionArgs));
if (appInstance) {
_this2.sendProps(appInstance, _this2.props);
}
_this2.setState({
listForRendering: _this2.state.listForRendering.concat({
name: appName,
weight: appWeight,
instance: appInstance,
multi: multi,
Component: (0, _getMountableComponent2.default)(appInstance)
}).sort(function (a, b) {
return a.weight - b.weight;
})
});
});
});
},
error: function error(err) {
console.warn('Subscription error for <Region name="' + _this2.props.name + '" />:', err);
}
});
this._handler.app = this.context.app;
this._handler.beforeMount();
}
}, {
key: 'sendProps',
value: function sendProps(appInstance, props) {
// eslint-disable-line
var regionService = appInstance.get(appInstance.options.providerNames.region);
if (!regionService) {
return;
}
regionService.emit(props);
}
}, {
key: 'componentWillReceiveProps',
value: function componentWillReceiveProps(nextProps) {
var _this3 = this;
this.state.listForRendering.filter(function (item) {
return item.instance;
}).forEach(function (item) {
return _this3.sendProps(item.instance, nextProps);
});
this._handler.afterUpdate(nextProps);
}

@@ -177,15 +87,3 @@ }, {

value: function componentWillUnmount() {
var _this4 = this;
if (this.subscription) {
this.subscription.unsubscribe();
}
if (this.rootApp) {
this.state.listForRendering.filter(function (item) {
return item.multi;
}).forEach(function (item) {
_this4.rootApp.destroyApp(item.name, _this4.props.name, _this4.props.uniqueKey);
});
}
this._handler.beforeDestroy();
}

@@ -192,0 +90,0 @@ }, {

@@ -6,18 +6,10 @@ 'use strict';

});
exports.default = isObservable;
/**
* Check if given `obj` is an Observable or not.
*
* @TODO: this function needs to be more proper and reliable
*
* @param any obj
* @return boolean
*/
function isObservable(obj) {
if (obj && typeof obj.subscribe === 'function' && typeof obj.map === 'function' && typeof obj.filter === 'function') {
return true;
}
return false;
}
var _isObservable = require('frint-component-utils/lib/isObservable');
var _isObservable2 = _interopRequireDefault(_isObservable);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = _isObservable2.default;
module.exports = exports['default'];

@@ -7,45 +7,9 @@ 'use strict';

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 _RegionService = require('frint-component-handlers/lib/RegionService');
var _rxjs = require('rxjs');
var _RegionService2 = _interopRequireDefault(_RegionService);
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var RegionService = function () {
function RegionService() {
_classCallCheck(this, RegionService);
this.props$ = new _rxjs.BehaviorSubject({});
}
_createClass(RegionService, [{
key: 'emit',
value: function emit() {
var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
this.props$.next(props);
}
// @TODO: support synchronous versions
// getName() {}
// getKey() {}
}, {
key: 'getProps$',
value: function getProps$() {
return this.props$;
}
}, {
key: 'getData$',
value: function getData$() {
return this.props$.map(function (props) {
return props.data;
});
}
}]);
return RegionService;
}();
exports.default = RegionService;
exports.default = _RegionService2.default;
module.exports = exports['default'];

@@ -7,139 +7,9 @@ 'use strict';

var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _streamProps = require('frint-component-utils/lib/streamProps');
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-underscore-dangle */
// @TODO: should go to frint-utils package?
var _streamProps2 = _interopRequireDefault(_streamProps);
exports.default = streamProps;
var _lodash = require('lodash');
var _lodash2 = _interopRequireDefault(_lodash);
var _rxjs = require('rxjs');
var _isObservable = require('./isObservable');
var _isObservable2 = _interopRequireDefault(_isObservable);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
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"); } }
var Streamer = function () {
function Streamer() {
var defaults = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
_classCallCheck(this, Streamer);
this._observables = [_rxjs.Observable.of(defaults)];
}
_createClass(Streamer, [{
key: '_push',
value: function _push(observable) {
this._observables.push(observable);
}
}, {
key: 'set',
value: function set(value) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
// (key, value)
if (typeof value === 'string') {
return this.setKey(value, args[0]);
}
// (plainObject)
if (_lodash2.default.isPlainObject(value)) {
return this.setPlainObject(value);
}
// (observable$, ...mapperFns)
if ((0, _isObservable2.default)(value)) {
return this.setObservable.apply(this, [value].concat(args));
}
return this;
}
}, {
key: 'setKey',
value: function setKey(key, value) {
this._push(_rxjs.Observable.of(_defineProperty({}, key, value)));
return this;
}
}, {
key: 'setPlainObject',
value: function setPlainObject(object) {
this._push(_rxjs.Observable.of(object));
return this;
}
}, {
key: 'setObservable',
value: function setObservable(object$) {
var mappedObject$ = object$;
for (var _len2 = arguments.length, mappers = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
mappers[_key2 - 1] = arguments[_key2];
}
mappers.forEach(function (mapperFn) {
mappedObject$ = mappedObject$.concatMap(function (object) {
var result = mapperFn(object);
if ((0, _isObservable2.default)(result)) {
return result;
}
return _rxjs.Observable.of(result);
});
});
this._push(mappedObject$);
return this;
}
}, {
key: 'setDispatch',
value: function setDispatch(actions, store) {
var object = {};
Object.keys(actions).forEach(function (propKey) {
var actionFn = actions[propKey];
object[propKey] = function () {
return store.dispatch(actionFn.apply(undefined, arguments));
};
});
this._push(_rxjs.Observable.of(object));
return this;
}
}, {
key: 'get$',
value: function get$() {
return _rxjs.Observable.merge.apply(_rxjs.Observable, _toConsumableArray(this._observables)).scan(function (props, emitted) {
return _extends({}, props, emitted);
});
}
}]);
return Streamer;
}();
function streamProps() {
var defaultProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
return new Streamer(defaultProps);
}
exports.default = _streamProps2.default;
module.exports = exports['default'];

@@ -103,4 +103,3 @@ 'use strict';

name: 'Alex',
number: 6 // 3 * 2
});
number: 6 });

@@ -107,0 +106,0 @@ done();

{
"name": "frint-react",
"version": "2.2.1",
"version": "2.3.0-alpha.f9a1b324",
"description": "React package for Frint",

@@ -31,2 +31,4 @@ "main": "lib/index.js",

"dependencies": {
"frint-component-handlers": "^2.3.0-alpha.f9a1b324",
"frint-component-utils": "^2.3.0-alpha.f9a1b324",
"lodash": "^4.13.1",

@@ -36,4 +38,4 @@ "rxjs": "^5.2.0"

"devDependencies": {
"frint": "^2.2.1",
"frint-test-utils": "^2.2.1"
"frint": "^2.3.0-alpha.f9a1b324",
"frint-test-utils": "^2.3.0-alpha.f9a1b324"
},

@@ -40,0 +42,0 @@ "bugs": {

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc