angular-spawn-x
Version:
Angular connector for spawn-x. (Reactive management for javaScript applications)
366 lines (307 loc) • 17.1 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory(require("@angular/core"), require("spawn-x"));
else if(typeof define === 'function' && define.amd)
define("ngSpawn", ["@angular/core", "spawn-x"], factory);
else if(typeof exports === 'object')
exports["ngSpawn"] = factory(require("@angular/core"), require("spawn-x"));
else
root["ngSpawn"] = factory(root["ng"]["core"], root["Spawn"]);
})(this, function(__WEBPACK_EXTERNAL_MODULE_0__, __WEBPACK_EXTERNAL_MODULE_8__) {
return /******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId])
/******/ return installedModules[moduleId].exports;
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/ // identity function for calling harmony imports with the correct context
/******/ __webpack_require__.i = function(value) { return value; };
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, {
/******/ configurable: false,
/******/ enumerable: true,
/******/ get: getter
/******/ });
/******/ }
/******/ };
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = 9);
/******/ })
/************************************************************************/
/******/ ([
/* 0 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_0__;
/***/ }),
/* 1 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_core__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__tokens__ = __webpack_require__(2);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__helpers__ = __webpack_require__(5);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return NgSpawn; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var __metadata = (this && this.__metadata) || function (k, v) {
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
};
var __param = (this && this.__param) || function (paramIndex, decorator) {
return function (target, key) { decorator(target, key, paramIndex); }
};
var NgSpawn = (function () {
function NgSpawn(configureStore) {
var _this = this;
this.connect = function (selection) { return function (component) {
component['@@SPAWN'] = {
selection: selection,
callbacks: []
};
var updateWithState = function (component, key, selector) {
component[key] = _this.store.select(selector);
};
var detect = function (_a) {
var zone = _a.zone, component = _a.component, key = _a.key, selector = _a.selector;
component['@@SPAWN']['callbacks'].push(updateWithState);
return _this.store.detect(zone, updateWithState, component, key, selector);
};
Object.keys(selection).forEach(function (key) {
var zone;
var selector;
if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__helpers__["a" /* isString */])(selection[key])) {
zone = selection[key];
selector = selection[key];
}
if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__helpers__["b" /* isArray */])(selection[key])) {
if (selection[key].length === 1 && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__helpers__["a" /* isString */])(selection[key][0])) {
zone = selection[key][0];
selector = selection[key][0];
}
if (selection[key].length > 1 && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__helpers__["a" /* isString */])(selection[key][0]) && __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__helpers__["c" /* isFunc */])(selection[key][1])) {
zone = selection[key][0];
selector = selection[key][1];
}
}
if (__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__helpers__["d" /* isUndefined */])(zone) || __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__helpers__["d" /* isUndefined */])(selector)) {
return __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_2__helpers__["e" /* error */])("angular-spawn-x: incorrect arguments for selection");
}
detect({ zone: zone, component: component, key: key, selector: selector });
});
}; };
this.disconnect = function (component) {
Object.keys(component['@@SPAWN']['selection']).forEach(function (key) {
component['@@SPAWN']['callbacks'].forEach(function (cb) {
_this.store.reject(key, cb);
});
});
};
this.select = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return (_a = _this.store).select.apply(_a, args);
var _a;
};
this.detect = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return (_a = _this.store).detect.apply(_a, args);
var _a;
};
this.reject = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return (_a = _this.store).reject.apply(_a, args);
var _a;
};
this.update = function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return (_a = _this.store).update.apply(_a, args);
var _a;
};
this.store = configureStore();
}
return NgSpawn;
}());
NgSpawn = __decorate([
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__["Injectable"])(),
__param(0, __webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__["Inject"])(__WEBPACK_IMPORTED_MODULE_1__tokens__["a" /* CONFIGURE_STORE */])),
__metadata("design:paramtypes", [Function])
], NgSpawn);
/***/ }),
/* 2 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_core__);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return CONFIGURE_STORE; });
var CONFIGURE_STORE = new __WEBPACK_IMPORTED_MODULE_0__angular_core__["OpaqueToken"]('angular-spawn-x configureStore');
/***/ }),
/* 3 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__spawn_module__ = __webpack_require__(6);
/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__spawn_module__["a"]; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__spawn_service__ = __webpack_require__(1);
/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_1__spawn_service__["a"]; });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__wrappers__ = __webpack_require__(7);
/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_2__wrappers__["a"]; });
/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_2__wrappers__["b"]; });
/***/ }),
/* 4 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return isArray; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return isFunc; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return isString; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return isUndefined; });
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return error; });
function isArray(target) {
return Array.isArray(target);
}
function isFunc(target) {
return typeof target === 'function';
}
function isString(target) {
return typeof target === 'string';
}
function isUndefined(target) {
return typeof target === 'undefined';
}
function error(message) {
throw new Error(message);
}
/***/ }),
/* 5 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__helpers__ = __webpack_require__(4);
/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_0__helpers__["a"]; });
/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__helpers__["b"]; });
/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "c", function() { return __WEBPACK_IMPORTED_MODULE_0__helpers__["c"]; });
/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "d", function() { return __WEBPACK_IMPORTED_MODULE_0__helpers__["d"]; });
/* harmony namespace reexport (by used) */ __webpack_require__.d(__webpack_exports__, "e", function() { return __WEBPACK_IMPORTED_MODULE_0__helpers__["e"]; });
/***/ }),
/* 6 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core__ = __webpack_require__(0);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__angular_core___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0__angular_core__);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__tokens__ = __webpack_require__(2);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__spawn_service__ = __webpack_require__(1);
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return NgSpawnModule; });
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
var NgSpawnModule = NgSpawnModule_1 = (function () {
function NgSpawnModule() {
}
NgSpawnModule.forRoot = function (configureStore) {
return {
ngModule: NgSpawnModule_1,
providers: [
{
provide: __WEBPACK_IMPORTED_MODULE_1__tokens__["a" /* CONFIGURE_STORE */],
useValue: configureStore
},
{
provide: __WEBPACK_IMPORTED_MODULE_2__spawn_service__["a" /* NgSpawn */],
useClass: __WEBPACK_IMPORTED_MODULE_2__spawn_service__["a" /* NgSpawn */],
deps: [__WEBPACK_IMPORTED_MODULE_1__tokens__["a" /* CONFIGURE_STORE */]]
}
]
};
};
return NgSpawnModule;
}());
NgSpawnModule = NgSpawnModule_1 = __decorate([
__webpack_require__.i(__WEBPACK_IMPORTED_MODULE_0__angular_core__["NgModule"])({})
], NgSpawnModule);
var NgSpawnModule_1;
/***/ }),
/* 7 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_spawn_x__ = __webpack_require__(8);
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_spawn_x___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_spawn_x__);
/* harmony export (immutable) */ __webpack_exports__["a"] = createStore;
/* harmony export (immutable) */ __webpack_exports__["b"] = addInterceptor;
function createStore() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return __WEBPACK_IMPORTED_MODULE_0_spawn_x__["createStore"].apply(__WEBPACK_IMPORTED_MODULE_0_spawn_x__, args);
}
function addInterceptor() {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
return __WEBPACK_IMPORTED_MODULE_0_spawn_x__["addInterceptor"].apply(__WEBPACK_IMPORTED_MODULE_0_spawn_x__, args);
}
/***/ }),
/* 8 */
/***/ (function(module, exports) {
module.exports = __WEBPACK_EXTERNAL_MODULE_8__;
/***/ }),
/* 9 */
/***/ (function(module, __webpack_exports__, __webpack_require__) {
;
Object.defineProperty(__webpack_exports__, "__esModule", { value: true });
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__src__ = __webpack_require__(3);
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "NgSpawnModule", function() { return __WEBPACK_IMPORTED_MODULE_0__src__["a"]; });
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "NgSpawn", function() { return __WEBPACK_IMPORTED_MODULE_0__src__["b"]; });
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "createStore", function() { return __WEBPACK_IMPORTED_MODULE_0__src__["c"]; });
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "addInterceptor", function() { return __WEBPACK_IMPORTED_MODULE_0__src__["d"]; });
/***/ })
/******/ ]);
});