UNPKG

zoid

Version:
71 lines (60 loc) 2.47 kB
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; }; /* eslint new-cap: 0 */ import { replaceObject } from 'belter/src'; import { CONTEXT } from '../constants'; export var angular2 = { global: function global() { // pass }, register: function register(zoid, _ref) { var AngularComponent = _ref.Component, NgModule = _ref.NgModule, ElementRef = _ref.ElementRef, NgZone = _ref.NgZone; zoid.log('initializing angular2 component'); var getProps = function getProps(component) { return replaceObject(_extends({}, component.internalProps, component.props), function (item) { if (typeof item === 'function') { return function angular2Wrapped() { var _this = this, _arguments = arguments; return component.zone.run(function () { return item.apply(_this, _arguments); }); }; } return item; }); }; var ComponentInstance = AngularComponent({ selector: zoid.tag, template: '<div></div>', inputs: ['props'] }).Class({ constructor: [ElementRef, NgZone, function angularConstructor(elementRef, zone) { this.elementRef = elementRef; this.zone = zone; }], ngOnInit: function ngOnInit() { var targetElement = this.elementRef.nativeElement; var parent = zoid.init(getProps(this), null, targetElement); parent.render(CONTEXT.IFRAME, targetElement); this.parent = parent; }, ngOnChanges: function ngOnChanges() { if (this.parent) { this.parent.updateProps(getProps(this)); } } }); var ModuleInstance = NgModule({ declarations: [ComponentInstance], exports: [ComponentInstance] }).Class({ constructor: function constructor() { // pass } }); return ModuleInstance; } };