http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/fc9cccc4/pre-build/weex-rax-api.js ---------------------------------------------------------------------- diff --git a/pre-build/weex-rax-api.js b/pre-build/weex-rax-api.js new file mode 100644 index 0000000..145f880 --- /dev/null +++ b/pre-build/weex-rax-api.js @@ -0,0 +1,8283 @@ +/* Prepare Rax Environment APIs 0.4.20, Build 2018-01-11 16:00. */ + +var global = this; var process = {env:{}}; +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory() : + typeof define === 'function' && define.amd ? define(factory) : + (factory()); +}(this, (function () { 'use strict'; + +function unwrapExports (x) { + return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x; +} + +function createCommonjsModule(fn, module) { + return module = { exports: {} }, fn(module, module.exports), module.exports; +} + +var api = createCommonjsModule(function (module) { +module.exports = /******/ (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; +/******/ +/******/ // 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 = 3); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/*!***************************************************************************************************************************!*\ + !*** ./packages/weex-rax-framework-api/node_modules/.npminstall/event-target-shim/2.0.0/event-target-shim/lib/commons.js ***! + \***************************************************************************************************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ +/***/ (function(module, exports, __webpack_require__) { + +var createUniqueKey = module.exports.createUniqueKey = ( + typeof Symbol !== "undefined" ? Symbol : //eslint-disable-line no-undef + /* otherwise */ function createUniqueKey(name) { + return "[[" + name + "_" + Math.random().toFixed(8).slice(2) + "]]" + } +); + +/** + * Checks whether the given value is a non-null object or not. + * + * @param {any} x - The value to be check. + * @returns {boolean} `true` if the value is a non-null object. + * @private + */ +var isObject = module.exports.isObject = function isObject(x) { + return typeof x === "object" && x !== null +}; + +/** + * The key of listeners. + * + * @type {symbol|string} + * @private + */ +module.exports.LISTENERS = createUniqueKey("listeners"); + +/** + * A value of kind for listeners which are registered in the capturing phase. + * + * @type {number} + * @private + */ +module.exports.CAPTURE = 1; + +/** + * A value of kind for listeners which are registered in the bubbling phase. + * + * @type {number} + * @private + */ +module.exports.BUBBLE = 2; + +/** + * A value of kind for listeners which are registered as an attribute. + * + * @type {number} + * @private + */ +module.exports.ATTRIBUTE = 3; + +/** + * @typedef object ListenerNode + * @property {function} listener - A listener function. + * @property {number} kind - The kind of the listener. + * @property {ListenerNode|null} next - The next node. + * If this node is the last, this is `null`. + */ + +/** + * Creates a node of singly linked list for a list of listeners. + * + * @param {function} listener - A listener function. + * @param {number} kind - The kind of the listener. + * @param {object} [options] - The option object. + * @param {boolean} [options.once] - The flag to remove the listener at the first call. + * @param {boolean} [options.passive] - The flag to ignore `event.preventDefault` method. + * @returns {ListenerNode} The created listener node. + */ +module.exports.newNode = function newNode(listener, kind, options) { + var obj = isObject(options); + + return { + listener: listener, + kind: kind, + once: obj && Boolean(options.once), + passive: obj && Boolean(options.passive), + next: null, + } +}; + + +/***/ }), +/* 1 */ +/*!********************************************************!*\ + !*** ./packages/weex-rax-framework-api/src/emitter.js ***! + \********************************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ +/***/ (function(module, exports, __webpack_require__) { + +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; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var EventEmitter = function () { + function EventEmitter() { + _classCallCheck(this, EventEmitter); + + this._listeners = {}; + } + + /** + * Adds a listener function to the specified event. + * @param {String} type + * @param {Function} listener + * @param {Boolean} once + */ + + + _createClass(EventEmitter, [{ + key: "_addListener", + value: function _addListener(type, listener, once) { + this._listeners[type] = this._listeners[type] || []; + this._listeners[type].push({ listener: listener, once: once }); + return this; + } + + /** + * Adds a listener function to the specified event. + * @param {String} type + * @param {Function} listener + * @return {Object} Current instance of EventEmitter for chaining. + */ + + }, { + key: "on", + value: function on(type, listener) { + return this._addListener(type, listener, false); + } + }, { + key: "once", + value: function once(type, listener) { + return this._addListener(type, listener, true); + } + + /** + * Removes a listener function to the specified event. + * @param {String} type + * @param {Function} listener + * @return {Object} Current instance of EventEmitter for chaining. + */ + + }, { + key: "off", + value: function off(type, listener) { + // alias + if (!this._listeners[type]) { + return this; + } + if (!this._listeners[type].length) { + return this; + } + if (!listener) { + delete this._listeners[type]; + return this; + } + this._listeners[type] = this._listeners[type].filter(function (_listener) { + return !(_listener.listener === listener); + }); + return this; + } + + /** + * Emits an specified event. + * @param {String} type + * @param {Object} payload + * @return {Object} Current instance of EventEmitter for chaining. + */ + + }, { + key: "emit", + value: function emit(type, payload) { + var _this = this; + + if (!this._listeners[type]) { + return this; + } + this._listeners[type].forEach(function (_listener) { + _listener.listener.apply(_this, [payload]); + if (_listener.once) { + _this.removeListener(type, _listener.listener); + } + }); + return this; + } + }]); + + return EventEmitter; +}(); + +exports.default = EventEmitter; +module.exports = exports["default"]; + +/***/ }), +/* 2 */ +/*!********************************************************************************************************************************!*\ + !*** ./packages/weex-rax-framework-api/node_modules/.npminstall/event-target-shim/2.0.0/event-target-shim/lib/event-target.js ***! + \********************************************************************************************************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ +/***/ (function(module, exports, __webpack_require__) { + +var Commons = __webpack_require__(/*! ./commons */ 0); +var CustomEventTarget = __webpack_require__(/*! ./custom-event-target */ 15); +var EventWrapper = __webpack_require__(/*! ./event-wrapper */ 16); +var isObject = Commons.isObject; +var LISTENERS = Commons.LISTENERS; +var CAPTURE = Commons.CAPTURE; +var BUBBLE = Commons.BUBBLE; +var ATTRIBUTE = Commons.ATTRIBUTE; +var newNode = Commons.newNode; +var defineCustomEventTarget = CustomEventTarget.defineCustomEventTarget; +var createEventWrapper = EventWrapper.createEventWrapper; +var STOP_IMMEDIATE_PROPAGATION_FLAG = EventWrapper.STOP_IMMEDIATE_PROPAGATION_FLAG; +var PASSIVE_LISTENER_FLAG = EventWrapper.PASSIVE_LISTENER_FLAG; + +//------------------------------------------------------------------------------ +// Constants +//------------------------------------------------------------------------------ + +/** + * A flag which shows there is the native `EventTarget` interface object. + * + * @type {boolean} + * @private + */ +var HAS_EVENTTARGET_INTERFACE = ( + typeof window !== "undefined" && + typeof window.EventTarget !== "undefined" +); + +//------------------------------------------------------------------------------ +// Public Interface +//------------------------------------------------------------------------------ + +/** + * An implementation for `EventTarget` interface. + * + * @constructor + * @public + */ +var EventTarget = module.exports = function EventTarget() { + var arguments$1 = arguments; + + if (this instanceof EventTarget) { + // this[LISTENERS] is a Map. + // Its key is event type. + // Its value is ListenerNode object or null. + // + // interface ListenerNode { + // var listener: Function + // var kind: CAPTURE|BUBBLE|ATTRIBUTE + // var next: ListenerNode|null + // } + Object.defineProperty(this, LISTENERS, {value: Object.create(null)}); + } + else if (arguments.length === 1 && Array.isArray(arguments[0])) { + return defineCustomEventTarget(EventTarget, arguments[0]) + } + else if (arguments.length > 0) { + var types = Array(arguments.length); + for (var i = 0; i < arguments.length; ++i) { + types[i] = arguments$1[i]; + } + + // To use to extend with attribute listener properties. + // e.g. + // class MyCustomObject extends EventTarget("message", "error") { + // //... + // } + return defineCustomEventTarget(EventTarget, types) + } + else { + throw new TypeError("Cannot call a class as a function") + } +}; + +EventTarget.prototype = Object.create( + (HAS_EVENTTARGET_INTERFACE ? window.EventTarget : Object).prototype, + { + constructor: { + value: EventTarget, + writable: true, + configurable: true, + }, + + addEventListener: { + value: function addEventListener(type, listener, options) { + if (listener == null) { + return false + } + if (typeof listener !== "function" && typeof listener !== "object") { + throw new TypeError("\"listener\" is not an object.") + } + + var capture = isObject(options) ? Boolean(options.capture) : Boolean(options); + var kind = (capture ? CAPTURE : BUBBLE); + var node = this[LISTENERS][type]; + if (node == null) { + this[LISTENERS][type] = newNode(listener, kind, options); + return true + } + + var prev = null; + while (node != null) { + if (node.listener === listener && node.kind === kind) { + // Should ignore a duplicated listener. + return false + } + prev = node; + node = node.next; + } + + prev.next = newNode(listener, kind, options); + return true + }, + configurable: true, + writable: true, + }, + + removeEventListener: { + value: function removeEventListener(type, listener, options) { + var this$1 = this; + + if (listener == null) { + return false + } + + var capture = isObject(options) ? Boolean(options.capture) : Boolean(options); + var kind = (capture ? CAPTURE : BUBBLE); + var prev = null; + var node = this[LISTENERS][type]; + while (node != null) { + if (node.listener === listener && node.kind === kind) { + if (prev == null) { + this$1[LISTENERS][type] = node.next; + } + else { + prev.next = node.next; + } + return true + } + + prev = node; + node = node.next; + } + + return false + }, + configurable: true, + writable: true, + }, + + dispatchEvent: { + value: function dispatchEvent(event) { + var this$1 = this; + + // If listeners aren't registered, terminate. + var type = event.type; + var node = this[LISTENERS][type]; + if (node == null) { + return true + } + + // Since we cannot rewrite several properties, so wrap object. + var wrapped = createEventWrapper(event, this); + + // This doesn't process capturing phase and bubbling phase. + // This isn't participating in a tree. + var prev = null; + while (node != null) { + // Remove this listener if it's once + if (node.once) { + if (prev == null) { + this$1[LISTENERS][type] = node.next; + } + else { + prev.next = node.next; + } + } + else { + prev = node; + } + + // Call this listener + wrapped[PASSIVE_LISTENER_FLAG] = node.passive; + if (typeof node.listener === "function") { + node.listener.call(this$1, wrapped); + } + else if (node.kind !== ATTRIBUTE && typeof node.listener.handleEvent === "function") { + node.listener.handleEvent(wrapped); + } + + // Break if `event.stopImmediatePropagation` was called. + if (wrapped[STOP_IMMEDIATE_PROPAGATION_FLAG]) { + break + } + + node = node.next; + } + + return !wrapped.defaultPrevented + }, + configurable: true, + writable: true, + }, + } +); + + +/***/ }), +/* 3 */ +/*!******************************************************!*\ + !*** ./packages/weex-rax-framework-api/src/index.js ***! + \******************************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports.injectContext = injectContext; +exports.resetInstanceContext = resetInstanceContext; + +var _builtin = __webpack_require__(/*! ./builtin */ 4); + +var _emitter = __webpack_require__(/*! ./emitter */ 1); + +var _emitter2 = _interopRequireDefault(_emitter); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var MODULE_NAME_PREFIX = '@weex-module/'; +var MODAL_MODULE = MODULE_NAME_PREFIX + 'modal'; +var NAVIGATOR_MODULE = MODULE_NAME_PREFIX + 'navigator'; +var GLOBAL_EVENT_MODULE = MODULE_NAME_PREFIX + 'globalEvent'; +// Instance hub +// const instances = {}; +// Bundles hub +var noop = function noop() {}; +var weex = {}; + +function genBuiltinModules(modules, moduleFactories, context) { + for (var moduleName in moduleFactories) { + modules[moduleName] = { + factory: moduleFactories[moduleName].bind(context), + module: { exports: {} }, + isInitialized: false + }; + } + return modules; +} + +function __weex_supports__(name) { + return weex.supports(name); +} + +function injectContext() { + var instanceContext = new Function('return this')(); + var window = resetInstanceContext(instanceContext); + for (var key in window) { + if (typeof instanceContext[key] === 'undefined' && key != '__weex_data__') { + instanceContext[key] = window[key]; + } + } +} + +/** + * create a Weex instance + * + * @param {string} instanceId + * @param {string} __weex_code__ + * @param {object} [__weex_options__] {bundleUrl, debug} + */ +// export function createInstance(instanceId, __weex_code__, __weex_options__, __weex_data__, __weex_config__) { +function resetInstanceContext(instanceContext) { + var instanceId = instanceContext.instanceId, + document = instanceContext.document, + bundleUrl = instanceContext.bundleUrl, + __weex_document__ = instanceContext.__weex_document__, + __weex_options__ = instanceContext.__weex_options__, + __weex_data__ = instanceContext.__weex_data__, + __weex_config__ = instanceContext.__weex_config__; + + + weex = __weex_options__.weex; + + // Mark start time + var responseEnd = Date.now(); + var __weex_env__ = (typeof WXEnvironment === 'undefined' ? 'undefined' : _typeof(WXEnvironment)) === 'object' && WXEnvironment || {}; + // For better performance use built-in promise first + var shared = __webpack_require__(/*! runtime-shared/dist/shared.function */ 6)(); + + var Promise = typeof Promise === 'function' ? Promise : shared.Promise; + var _Symbol = typeof _Symbol === 'function' ? _Symbol : shared.Symbol; + var Set = typeof Set === 'function' ? Set : shared.Set; + var Map = typeof Map === 'function' ? Map : shared.Map; + var WeakMap = typeof WeakMap === 'function' ? WeakMap : shared.WeakMap; + var WeakSet = typeof WeakSet === 'function' ? WeakSet : shared.WeakSet; + var URL = shared.URL, + URLSearchParams = shared.URLSearchParams, + FontFace = shared.FontFace, + matchMedia = shared.matchMedia; + // let bundleUrl = __weex_options__.bundleUrl || 'about:blank'; + + if (!bundleUrl) { + console.error('Error: Must have bundleUrl option when createInstance, downgrade to "about:blank".'); + } else if (!bundleUrl.split('//')[0]) { + bundleUrl = 'https:' + bundleUrl; + } + + var documentURL = new URL(bundleUrl); + var modules = {}; + + // Generate native modules map at instance init + // genNativeModules(modules, document); + var __weex_define__ = __webpack_require__(/*! ./define.weex */ 7)(modules); + var __weex_require__ = __webpack_require__(/*! ./require.weex */ 8)(modules, weex); + var __weex_downgrade__ = __webpack_require__(/*! ./downgrade.weex */ 9)(__weex_require__); + // Extend document + __webpack_require__(/*! ./document.weex */ 11)(__weex_require__, document); + + var location = __webpack_require__(/*! ./location.weex */ 12)(__weex_require__, documentURL); + + var _require = __webpack_require__(/*! ./fetch.weex */ 13)(__weex_require__, Promise), + fetch = _require.fetch, + Headers = _require.Headers, + Request = _require.Request, + Response = _require.Response; + + var XMLHttpRequest = __webpack_require__(/*! ./xmlhttprequest.weex */ 14)(__weex_require__); + var WebSocket = __webpack_require__(/*! ./websocket.weex */ 17)(__weex_require__); + + var _require2 = __webpack_require__(/*! ./timer.weex */ 18)(__weex_require__, document), + setTimeout = _require2.setTimeout, + clearTimeout = _require2.clearTimeout, + setInterval = _require2.setInterval, + clearInterval = _require2.clearInterval, + requestAnimationFrame = _require2.requestAnimationFrame, + cancelAnimationFrame = _require2.cancelAnimationFrame; + + var _require3 = __webpack_require__(/*! ./base64.weex */ 19)(), + atob = _require3.atob, + btoa = _require3.btoa; + + var performance = __webpack_require__(/*! ./performance.weex */ 20)(responseEnd); + + var _require4 = __webpack_require__(/*! ./event.weex */ 21)(), + Event = _require4.Event, + CustomEvent = _require4.CustomEvent; + + var windowEmitter = new _emitter2.default(); + + var errorHandler = null; + function registerErrorHandler() { + if (registerErrorHandler.once) { return; } + + var globalEvent = __weex_require__(GLOBAL_EVENT_MODULE); + globalEvent.addEventListener('exception', function (e) { + // TODO: miss lineno and colno + // window.onerror = function(messageOrEvent, source, lineno, colno, error) { ... } + errorHandler(e.exception, e.bundleUrl, 0, 0, new Error(e.exception, e.bundleUrl, 0)); + }); + + registerErrorHandler.once = true; + } + + var window = { + // ES + Promise: Promise, + Symbol: _Symbol, + Map: Map, + Set: Set, + WeakMap: WeakMap, + WeakSet: WeakSet, + // W3C: https://www.w3.org/TR/html5/browsers.html#browsing-context-name + name: '', + // This read-only property indicates whether the referenced window is closed or not. + closed: false, + atob: atob, + btoa: btoa, + performance: performance, + // W3C + document: document, + location: location, + // https://www.w3.org/TR/2009/WD-html5-20090423/browsers.html#dom-navigator + navigator: { + product: 'Weex', + platform: __weex_env__.platform, + appName: __weex_env__.appName, + appVersion: __weex_env__.appVersion, + // Weex/0.12 iOS/9.3 (iPhone7,2) AppName/0.12 + userAgent: 'Weex/' + __weex_env__.weexVersion + ' ' + __weex_env__.platform + '/' + __weex_env__.osVersion + ' (' + __weex_env__.deviceModel + ') ' + __weex_env__.appName + '/' + __weex_env__.appVersion + }, + // https://drafts.csswg.org/cssom-view/#the-screen-interface + screen: { + width: __weex_env__.deviceWidth, + height: __weex_env__.deviceHeight, + availWidth: __weex_env__.deviceWidth, + availHeight: __weex_env__.deviceHeight, + colorDepth: 24, + pixelDepth: 24 + }, + devicePixelRatio: __weex_env__.scale, + fetch: fetch, + Headers: Headers, + Response: Response, + Request: Request, + XMLHttpRequest: XMLHttpRequest, + URL: URL, + URLSearchParams: URLSearchParams, + FontFace: FontFace, + WebSocket: WebSocket, + Event: Event, + CustomEvent: CustomEvent, + matchMedia: matchMedia, + setTimeout: setTimeout, + clearTimeout: clearTimeout, + setInterval: setInterval, + clearInterval: clearInterval, + requestAnimationFrame: requestAnimationFrame, + cancelAnimationFrame: cancelAnimationFrame, + alert: function alert(message) { + var modal = __weex_require__(MODAL_MODULE); + modal.alert({ + message: message + }, function () {}); + }, + open: function open(url) { + var weexNavigator = __weex_require__(NAVIGATOR_MODULE); + weexNavigator.push({ + url: url, + animated: true + }, noop); + }, + close: function close() { + var weexNavigator = __weex_require__(NAVIGATOR_MODULE); + weexNavigator.close({ + animated: true + }, noop, noop); + }, + postMessage: function postMessage(message, targetOrigin) { + var event = { + origin: location.origin, + data: JSON.parse(JSON.stringify(message)), + type: 'message', + source: window // FIXME: maybe not export window + }; + + if (typeof BroadcastChannel === 'function') { + var stack = new BroadcastChannel('massage' + instanceId); + stack.postMessage(event); + } + }, + addEventListener: function addEventListener(type, listener) { + if (type === 'massage') { + if (typeof BroadcastChannel === 'function') { + var stack = new BroadcastChannel('massage' + instanceId); + stack.onmessage(listener); + } + } else { + windowEmitter.on(type, listener); + } + }, + removeEventListener: function removeEventListener(type, listener) { + windowEmitter.off(type, listener); + }, + dispatchEvent: function dispatchEvent(e) { + windowEmitter.emit(e.type, e); + }, + set onerror(handler) { + if (typeof handler == 'function') { + errorHandler = handler; + registerErrorHandler(); + } else { + errorHandler = null; + } + }, + get onerror() { + return errorHandler; + }, + // ModuleJS + define: __weex_define__, + require: __weex_require__, + // Weex + callNative: function callNative() {}, + __weex_document__: __weex_document__, + __weex_module_supports__: __weex_supports__, + __weex_tag_supports__: __weex_supports__, + __weex_define__: __weex_define__, + __weex_require__: __weex_require__, + __weex_downgrade__: __weex_downgrade__, + __weex_env__: __weex_env__, + // __weex_code__, + __weex_options__: __weex_options__, + __weex_data__: __weex_data__, + __weex_config__: __weex_config__ + }; + + genBuiltinModules(modules, _builtin.ModuleFactories, window); + + window.self = window.window = window; + + console.log('Rax jsfm init window', typeof window === 'undefined' ? 'undefined' : _typeof(window)); + return window; +} + +/***/ }), +/* 4 */ +/*!********************************************************!*\ + !*** ./packages/weex-rax-framework-api/src/builtin.js ***! + \********************************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +var ModuleFactories = exports.ModuleFactories = { + 'rax': __webpack_require__(/*! rax/dist/rax.factory */ 5) +}; + +/***/ }), +/* 5 */ +/*!******************************************!*\ + !*** ./packages/rax/dist/rax.factory.js ***! + \******************************************/ +/*! dynamic exports provided */ +/*! all exports used */ +/*! ModuleConcatenation bailout: Module is not an ECMAScript module */ +/***/ (function(module, exports) { + +module.exports = function(require, exports, module) { + var __weex_document__ = this["__weex_document__"]; +var document = this["document"]; + module.exports = /******/ (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; +/******/ +/******/ // 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 = 17); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +/* + * Stateful things in runtime + */ +exports.default = { + component: null, + mountID: 1, + sandbox: true, + // Roots + rootComponents: {}, + rootInstances: {}, + // Inject + hook: null, + driver: null, + monitor: null +}; +module.exports = exports["default"]; + +/***/ }), +/* 1 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _host = __webpack_require__(0); + +var _host2 = _interopRequireDefault(_host); + +var _element = __webpack_require__(6); + +var _unmountComponentAtNode = __webpack_require__(9); + +var _unmountComponentAtNode2 = _interopRequireDefault(_unmountComponentAtNode); + +var _instantiateComponent = __webpack_require__(2); + +var _instantiateComponent2 = _interopRequireDefault(_instantiateComponent); + +var _shouldUpdateComponent = __webpack_require__(3); + +var _shouldUpdateComponent2 = _interopRequireDefault(_shouldUpdateComponent); + +var _root = __webpack_require__(19); + +var _root2 = _interopRequireDefault(_root); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/** + * Instance manager + */ +var KEY = '$$instance'; + +exports.default = { + set: function set(node, instance) { + if (!node[KEY]) { + node[KEY] = instance; + // Record root instance to roots map + if (instance.rootID) { + _host2.default.rootInstances[instance.rootID] = instance; + _host2.default.rootComponents[instance.rootID] = instance._internal; + } + } + }, + get: function get(node) { + return node[KEY]; + }, + remove: function remove(node) { + var instance = this.get(node); + if (instance) { + node[KEY] = null; + if (instance.rootID) { + delete _host2.default.rootComponents[instance.rootID]; + delete _host2.default.rootInstances[instance.rootID]; + } + } + }, + mount: function mount(element, container, parentInstance) { + _host2.default.driver.beforeRender && _host2.default.driver.beforeRender(); + + // Real native root node is body + if (container == null) { + container = _host2.default.driver.createBody(); + } + + // Get the context from the conceptual parent component. + var parentContext = void 0; + if (parentInstance) { + var parentInternal = parentInstance._internal; + parentContext = parentInternal._processChildContext(parentInternal._context); + } + + var prevRootInstance = this.get(container); + var hasPrevRootInstance = prevRootInstance && prevRootInstance.isRootComponent; + + if (hasPrevRootInstance) { + var prevRenderedComponent = prevRootInstance.getRenderedComponent(); + var prevElement = prevRenderedComponent._currentElement; + if ((0, _shouldUpdateComponent2.default)(prevElement, element)) { + var prevUnmaskedContext = prevRenderedComponent._context; + prevRenderedComponent.updateComponent(prevElement, element, prevUnmaskedContext, parentContext || prevUnmaskedContext); + + return prevRootInstance; + } else { + _host2.default.hook.Reconciler.unmountComponent(prevRootInstance); + (0, _unmountComponentAtNode2.default)(container); + } + } + + var wrappedElement = (0, _element.createElement)(_root2.default, null, element); + var renderedComponent = (0, _instantiateComponent2.default)(wrappedElement); + var defaultContext = parentContext || {}; + var rootInstance = renderedComponent.mountComponent(container, null, defaultContext); + this.set(container, rootInstance); + + // After render callback + _host2.default.driver.afterRender && _host2.default.driver.afterRender(rootInstance); + + // Devtool render new root hook + _host2.default.hook.Mount._renderNewRootComponent(rootInstance._internal); + + return rootInstance; + } +}; +module.exports = exports['default']; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +var _host = __webpack_require__(0); + +var _host2 = _interopRequireDefault(_host); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function instantiateComponent(element) { + var instance = void 0; + + if (element === undefined || element === null || element === false || element === true) { + instance = new _host2.default.EmptyComponent(); + } else if (Array.isArray(element)) { + instance = new _host2.default.FragmentComponent(element); + } else if ((typeof element === 'undefined' ? 'undefined' : _typeof(element)) === 'object' && element.type) { + // Special case string values + if (typeof element.type === 'string') { + instance = new _host2.default.NativeComponent(element); + } else { + instance = new _host2.default.CompositeComponent(element); + } + } else if (typeof element === 'string' || typeof element === 'number') { + instance = new _host2.default.TextComponent(element); + } else { + throw new Error('Invalid element type: ' + element + '. (keys: ' + Object.keys(element) + ')'); + } + + instance._mountIndex = 0; + + return instance; +} + +exports.default = instantiateComponent; +module.exports = exports['default']; + +/***/ }), +/* 3 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +function shouldUpdateComponent(prevElement, nextElement) { + // TODO: prevElement and nextElement could be array + var prevEmpty = prevElement === null; + var nextEmpty = nextElement === null; + if (prevEmpty || nextEmpty) { + return prevEmpty === nextEmpty; + } + + var prevType = typeof prevElement === 'undefined' ? 'undefined' : _typeof(prevElement); + var nextType = typeof nextElement === 'undefined' ? 'undefined' : _typeof(nextElement); + if (prevType === 'string' || prevType === 'number') { + return nextType === 'string' || nextType === 'number'; + } else { + return prevType === 'object' && nextType === 'object' && prevElement.type === nextElement.type && prevElement.key === nextElement.key; + } +} + +exports.default = shouldUpdateComponent; +module.exports = exports['default']; + +/***/ }), +/* 4 */ +/***/ (function(module, exports, __webpack_require__) { + +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; }; }(); + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +/** + * Base component class. + */ +var Component = function () { + function Component(props, context, updater) { + _classCallCheck(this, Component); + + this.props = props; + this.context = context; + this.refs = {}; + this.updater = updater; + } + + _createClass(Component, [{ + key: "isComponentClass", + value: function isComponentClass() {} + }, { + key: "setState", + value: function setState(partialState, callback) { + this.updater.setState(this, partialState, callback); + } + }, { + key: "forceUpdate", + value: function forceUpdate(callback) { + this.updater.forceUpdate(this, callback); + } + }]); + + return Component; +}(); + +exports.default = Component; +module.exports = exports["default"]; + +/***/ }), +/* 5 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _instance = __webpack_require__(1); + +var _instance2 = _interopRequireDefault(_instance); + +var _host = __webpack_require__(0); + +var _host2 = _interopRequireDefault(_host); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = { + ComponentTree: { + getClosestInstanceFromNode: function getClosestInstanceFromNode(node) { + return _instance2.default.get(node); + }, + getNodeFromInstance: function getNodeFromInstance(inst) { + // inst is an internal instance (but could be a composite) + while (inst._renderedComponent) { + inst = inst._renderedComponent; + } + + if (inst) { + return inst._nativeNode; + } else { + return null; + } + } + }, + Mount: { + _instancesByReactRootID: _host2.default.rootComponents, + + // Stub - React DevTools expects to find this method and replace it + // with a wrapper in order to observe new root components being added + _renderNewRootComponent: function _renderNewRootComponent() {} + }, + Reconciler: { + // Stubs - React DevTools expects to find these methods and replace them + // with wrappers in order to observe components being mounted, updated and + // unmounted + mountComponent: function mountComponent() {}, + receiveComponent: function receiveComponent() {}, + unmountComponent: function unmountComponent() {} + }, + // monitor the info of all components + monitor: null +}; +module.exports = exports['default']; + +/***/ }), +/* 6 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +exports.createElement = createElement; +exports.createFactory = createFactory; +exports.cloneElement = cloneElement; +exports.isValidElement = isValidElement; + +var _host = __webpack_require__(0); + +var _host2 = _interopRequireDefault(_host); + +var _flattenChildren = __webpack_require__(7); + +var _flattenChildren2 = _interopRequireDefault(_flattenChildren); + +var _universalEnv = __webpack_require__(8); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +var RESERVED_PROPS = { + key: true, + ref: true +}; + +function getRenderErrorInfo() { + if (_host2.default.component) { + var name = _host2.default.component.getName(); + if (name) { + return ' Check the render method of `' + name + '`.'; + } + } + return ''; +} + +function Element(type, key, ref, props, owner) { + if (_universalEnv.isWeex) { + props = filterProps(type, props); + } + + return { + // Built-in properties that belong on the element + type: type, + key: key, + ref: ref, + props: props, + // Record the component responsible for creating this element. + _owner: owner + }; +} + +exports.default = Element; + + +function flattenStyle(style) { + if (!style) { + return undefined; + } + + if (!Array.isArray(style)) { + return style; + } else { + var result = {}; + for (var i = 0; i < style.length; ++i) { + var computedStyle = flattenStyle(style[i]); + if (computedStyle) { + for (var key in computedStyle) { + result[key] = computedStyle[key]; + } + } + } + return result; + } +} + +// TODO: move to weex-drvier +function filterProps(type, props) { + // Only for weex text + if (type === 'text') { + var children = props.children; + var value = props.value; + + // Value is first + if (value == null && children != null) { + if (Array.isArray(children)) { + children = children.map(function (val) { + if (typeof val === 'number' || typeof val === 'string') { + return val; + } else { + return ''; + } + }).join(''); + } else if (typeof children !== 'number' && typeof children !== 'string') { + children = ''; + } + + props.value = String(children); + } + + props.children = null; + } + + return props; +} + +function createElement(type, config, children) { + var arguments$1 = arguments; + + if (type == null) { + throw Error('createElement: type should not be null or undefined.' + getRenderErrorInfo()); + } + // Reserved names are extracted + var props = {}; + var propName = void 0; + var key = null; + var ref = null; + + if (config != null) { + ref = config.ref === undefined ? null : config.ref; + key = config.key === undefined ? null : String(config.key); + // Remaining properties are added to a new props object + for (propName in config) { + if (!RESERVED_PROPS[propName]) { + props[propName] = config[propName]; + } + } + } + + var childrenLength = arguments.length - 2; + if (childrenLength > 0) { + if (childrenLength === 1 && !Array.isArray(children)) { + props.children = children; + } else { + var childArray = children; + if (childrenLength > 1) { + childArray = new Array(childrenLength); + for (var i = 0; i < childrenLength; i++) { + childArray[i] = arguments$1[i + 2]; + } + } + props.children = (0, _flattenChildren2.default)(childArray); + } + } + + // Resolve default props + if (type && type.defaultProps) { + var defaultProps = type.defaultProps; + for (propName in defaultProps) { + if (props[propName] === undefined) { + props[propName] = defaultProps[propName]; + } + } + } + + if (props.style && (Array.isArray(props.style) || _typeof(props.style) === 'object')) { + props.style = flattenStyle(props.style); + } + + return new Element(type, key, ref, props, _host2.default.component); +} + +function createFactory(type) { + var factory = createElement.bind(null, type); + // Expose the type on the factory and the prototype so that it can be + // easily accessed on elements. E.g. `<Foo />.type === Foo`. + // This should not be named `constructor` since this may not be the function + // that created the element, and it may not even be a constructor. + factory.type = type; + return factory; +} + +function cloneElement(element, config) { + var arguments$1 = arguments; + + if (!isValidElement(element)) { + throw Error('cloneElement: not a valid element.' + getRenderErrorInfo()); + } + + // Original props are copied + var props = Object.assign({}, element.props); + + // Reserved names are extracted + var key = element.key; + var ref = element.ref; + + // Owner will be preserved, unless ref is overridden + var owner = element._owner; + + if (config) { + // Should reset ref and owner if has a new ref + if (config.ref !== undefined) { + ref = config.ref; + owner = _host2.default.component; + } + + if (config.key !== undefined) { + key = String(config.key); + } + + // Resolve default props + var defaultProps = void 0; + if (element.type && element.type.defaultProps) { + defaultProps = element.type.defaultProps; + } + // Remaining properties override existing props + var propName = void 0; + for (propName in config) { + if (config.hasOwnProperty(propName) && !RESERVED_PROPS.hasOwnProperty(propName)) { + if (config[propName] === undefined && defaultProps !== undefined) { + // Resolve default props + props[propName] = defaultProps[propName]; + } else { + props[propName] = config[propName]; + } + } + } + } + + for (var _len = arguments.length, children = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) { + children[_key - 2] = arguments$1[_key]; + } + + if (children.length) { + props.children = (0, _flattenChildren2.default)(children); + } + + return new Element(element.type, key, ref, props, owner); +} + +function isValidElement(object) { + return (typeof object === 'undefined' ? 'undefined' : _typeof(object)) === 'object' && object !== null && object.type && object.props; +} + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = flattenChildren; +function traverseChildren(children, result) { + if (Array.isArray(children)) { + for (var i = 0, l = children.length; i < l; i++) { + traverseChildren(children[i], result); + } + } else { + result.push(children); + } +} + +function flattenChildren(children) { + if (children == null) { + return children; + } + var result = []; + traverseChildren(children, result); + + if (result.length === 1) { + result = result[0]; + } + + return result; +} +module.exports = exports["default"]; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { + return typeof obj === "undefined" ? "undefined" : _typeof2(obj); +} : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof2(obj); +}; + +// https://www.w3.org/TR/html5/webappapis.html#dom-navigator-appcodename +var isWeb = exports.isWeb = (typeof navigator === 'undefined' ? 'undefined' : _typeof(navigator)) === 'object' && (navigator.appCodeName === 'Mozilla' || navigator.product === 'Gecko'); +var isNode = exports.isNode = typeof process !== 'undefined' && !!(process.versions && process.versions.node); +var isWeex = exports.isWeex = typeof callNative === 'function'; +var isReactNative = exports.isReactNative = typeof __fbBatchedBridgeConfig !== 'undefined'; +exports['default'] = module.exports; +exports.default = module.exports; + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = unmountComponentAtNode; + +var _instance = __webpack_require__(1); + +var _instance2 = _interopRequireDefault(_instance); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function unmountComponentAtNode(node) { + var component = _instance2.default.get(node); + + if (!component) { + return false; + } + + _instance2.default.remove(node); + component._internal.unmountComponent(); + + return true; +} +module.exports = exports['default']; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _inject = __webpack_require__(22); + +var _inject2 = _interopRequireDefault(_inject); + +var _instance = __webpack_require__(1); + +var _instance2 = _interopRequireDefault(_instance); + +var _host = __webpack_require__(0); + +var _host2 = _interopRequireDefault(_host); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function render(element, container, options, callback) { + // Compatible with `render(element, container, callback)` + if (typeof options === 'function') { + callback = options; + options = null; + } + + options = options || {}; + // Init inject + (0, _inject2.default)(options); + + var rootComponent = _instance2.default.mount(element, container, options.parent); + var componentInstance = rootComponent.getPublicInstance(); + + if (callback) { + callback.call(componentInstance); + } + + return componentInstance; +} + +exports.default = render; +module.exports = exports['default']; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +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 _host = __webpack_require__(0); + +var _host2 = _interopRequireDefault(_host); + +var _ref = __webpack_require__(12); + +var _ref2 = _interopRequireDefault(_ref); + +var _instantiateComponent = __webpack_require__(2); + +var _instantiateComponent2 = _interopRequireDefault(_instantiateComponent); + +var _shouldUpdateComponent = __webpack_require__(3); + +var _shouldUpdateComponent2 = _interopRequireDefault(_shouldUpdateComponent); + +var _getElementKeyName = __webpack_require__(13); + +var _getElementKeyName2 = _interopRequireDefault(_getElementKeyName); + +var _instance = __webpack_require__(1); + +var _instance2 = _interopRequireDefault(_instance); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +var STYLE = 'style'; +var CHILDREN = 'children'; +var TREE = 'tree'; +var EVENT_PREFIX_REGEXP = /on[A-Z]/; + +/** + * Native Component + */ + +var NativeComponent = function () { + function NativeComponent(element) { + _classCallCheck(this, NativeComponent); + + this._currentElement = element; + } + + _createClass(NativeComponent, [{ + key: 'mountComponent', + value: function mountComponent(parent, parentInstance, context, childMounter) { + // Parent native element + this._parent = parent; + this._parentInstance = parentInstance; + this._context = context; + this._mountID = _host2.default.mountID++; + + var props = this._currentElement.props; + var type = this._currentElement.type; + var instance = { + _internal: this, + type: type, + props: props + }; + var appendType = props.append; // Default is node + + this._instance = instance; + + // Clone a copy for style diff + this._prevStyleCopy = Object.assign({}, props.style); + + var nativeNode = this.getNativeNode(); + + if (appendType !== TREE) { + if (childMounter) { + childMounter(nativeNode, parent); + } else { + _host2.default.driver.appendChild(nativeNode, parent); + } + } + + if (this._currentElement && this._currentElement.ref) { + _ref2.default.attach(this._currentElement._owner, this._currentElement.ref, this); + } + + // Process children + var children = props.children; + if (children != null) { + this.mountChildren(children, context); + } + + if (appendType === TREE) { + if (childMounter) { + childMounter(nativeNode, parent); + } else { + _host2.default.driver.appendChild(nativeNode, parent); + } + } + + _host2.default.hook.Reconciler.mountComponent(this); + + return instance; + } + }, { + key: 'mountChildren', + value: function mountChildren(children, context) { + var _this = this; + + if (!Array.isArray(children)) { + children = [children]; + } + + var renderedChildren = this._renderedChildren = {}; + + var renderedChildrenImage = children.map(function (element, index) { + var renderedChild = (0, _instantiateComponent2.default)(element); + var name = (0, _getElementKeyName2.default)(renderedChildren, element, index); + renderedChildren[name] = renderedChild; + renderedChild._mountIndex = index; + // Mount + var mountImage = renderedChild.mountComponent(_this.getNativeNode(), _this._instance, context, null); + return mountImage; + }); + + return renderedChildrenImage; + } + }, { + key: 'unmountChildren', + value: function unmountChildren(notRemoveChild) { + var renderedChildren = this._renderedChildren; + + if (renderedChildren) { + for (var name in renderedChildren) { + var renderedChild = renderedChildren[name]; + renderedChild.unmountComponent(notRemoveChild); + } + this._renderedChildren = null; + } + } + }, { + key: 'unmountComponent', + value: function unmountComponent(notRemoveChild) { + if (this._nativeNode) { + var ref = this._currentElement.ref; + if (ref) { + _ref2.default.detach(this._currentElement._owner, ref, this); + } + + _instance2.default.remove(this._nativeNode); + if (!notRemoveChild) { + _host2.default.driver.removeChild(this._nativeNode, this._parent); + } + _host2.default.driver.removeAllEventListeners(this._nativeNode); + } + + this.unmountChildren(notRemoveChild); + + _host2.default.hook.Reconciler.unmountComponent(this); + + this._currentElement = null; + this._nativeNode = null; + this._parent = null; + this._parentInstance = null; + this._context = null; + this._instance = null; + this._prevStyleCopy = null; + } + }, { + key: 'updateComponent', + value: function updateComponent(prevElement, nextElement, prevContext, nextContext) { + // Replace current element + this._currentElement = nextElement; + + _ref2.default.update(prevElement, nextElement, this); + + var prevProps = prevElement.props; + var nextProps = nextElement.props; + + this.updateProperties(prevProps, nextProps); + this.updateChildren(nextProps.children, nextContext); + + _host2.default.hook.Reconciler.receiveComponent(this); + } + }, { + key: 'updateProperties', + value: function updateProperties(prevProps, nextProps) { + var this$1 = this; + + var propKey = void 0; + var styleName = void 0; + var styleUpdates = void 0; + for (propKey in prevProps) { + if (propKey === CHILDREN || nextProps.hasOwnProperty(propKey) || !prevProps.hasOwnProperty(propKey) || prevProps[propKey] == null) { + continue; + } + if (propKey === STYLE) { + var lastStyle = this$1._prevStyleCopy; + for (styleName in lastStyle) { + if (lastStyle.hasOwnProperty(styleName)) { + styleUpdates = styleUpdates || {}; + styleUpdates[styleName] = ''; + } + } + this$1._prevStyleCopy = null; + } else if (EVENT_PREFIX_REGEXP.test(propKey)) { + if (typeof prevProps[propKey] === 'function') { + _host2.default.driver.removeEventListener(this$1.getNativeNode(), propKey.slice(2).toLowerCase(), prevProps[propKey]); + } + } else { + _host2.default.driver.removeAttribute(this$1.getNativeNode(), propKey, prevProps[propKey]); + } + } + + for (propKey in nextProps) { + var nextProp = nextProps[propKey]; + var prevProp = propKey === STYLE ? this$1._prevStyleCopy : prevProps != null ? prevProps[propKey] : undefined; + if (propKey === CHILDREN || !nextProps.hasOwnProperty(propKey) || nextProp === prevProp || nextProp == null && prevProp == null) { + continue; + } + // Update style + if (propKey === STYLE) { + if (nextProp) { + // Clone property + nextProp = this$1._prevStyleCopy = Object.assign({}, nextProp); + } else { + this$1._prevStyleCopy = null; + } + + if (prevProp != null) { + // Unset styles on `prevProp` but not on `nextProp`. + for (styleName in prevProp) { + if (prevProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) { + styleUpdates = styleUpdates || {}; + styleUpdates[styleName] = ''; + } + } + // Update styles that changed since `prevProp`. + for (styleName in nextProp) { + if (nextProp.hasOwnProperty(styleName) && prevProp[styleName] !== nextProp[styleName]) { + styleUpdates = styleUpdates || {}; + styleUpdates[styleName] = nextProp[styleName]; + } + } + } else { + // Assign next prop when prev style is null + styleUpdates = nextProp; + } + + // Update event binding + } else if (EVENT_PREFIX_REGEXP.test(propKey)) { + var eventName = propKey.slice(2).toLowerCase(); + + if (typeof prevProp === 'function') { + _host2.default.driver.removeEventListener(this$1.getNativeNode(), eventName, prevProp, nextProps); + } + + if (typeof nextProp === 'function') { + _host2.default.driver.addEventListener(this$1.getNativeNode(), eventName, nextProp, nextProps); + } + // Update other property + } else { + if (nextProp != null) { + _host2.default.driver.setAttribute(this$1.getNativeNode(), propKey, nextProp); + } else { + _host2.default.driver.removeAttribute(this$1.getNativeNode(), propKey, prevProps[propKey]); + } + + } + } + + if (styleUpdates) { + _host2.default.driver.setStyles(this.getNativeNode(), styleUpdates); + } + } + }, { + key: 'updateChildren', + value: function updateChildren(nextChildrenElements, context) { + var _this2 = this; + + // prev rendered children + var prevChildren = this._renderedChildren; + + if (nextChildrenElements == null && prevChildren == null) { + return; + } + + var nextChildren = {}; + var oldNodes = {}; + + if (nextChildrenElements != null) { + if (!Array.isArray(nextChildrenElements)) { + nextChildrenElements = [nextChildrenElements]; + } + + // Update next children elements + for (var index = 0, length = nextChildrenElements.length; index < length; index++) { + var nextElement = nextChildrenElements[index]; + var name = (0, _getElementKeyName2.default)(nextChildren, nextElement, index); + var prevChild = prevChildren && prevChildren[name]; + var prevElement = prevChild && prevChild._currentElement; + + if (prevChild != null && (0, _shouldUpdateComponent2.default)(prevElement, nextElement)) { + // Pass the same context when updating chidren + prevChild.updateComponent(prevElement, nextElement, context, context); + nextChildren[name] = prevChild; + } else { + // Unmount the prevChild when nextChild is different element type. + if (prevChild) { + var oldNativeNode = prevChild.getNativeNode(); + // Delay remove child + prevChild.unmountComponent(true); + oldNodes[name] = oldNativeNode; + } + // The child must be instantiated before it's mounted. + nextChildren[name] = (0, _instantiateComponent2.default)(nextElement); + } + } + } + + var firstPrevChild = void 0; + var delayRemoveFirstPrevChild = void 0; + // Unmount children that are no longer present. + if (prevChildren != null) { + for (var _name in prevChildren) { + if (!prevChildren.hasOwnProperty(_name)) { + continue; + } + + var _prevChild = prevChildren[_name]; + var shouldRemove = !nextChildren[_name]; + + // Store old first child ref for append node ahead and maybe delay remove it + if (!firstPrevChild) { + firstPrevChild = _prevChild; + delayRemoveFirstPrevChild = shouldRemove; + } else if (shouldRemove) { + _prevChild.unmountComponent(); + } + } + } + + if (nextChildren != null) { + (function () { + // `nextIndex` will increment for each child in `nextChildren`, but + // `lastIndex` will be the last index visited in `prevChildren`. + var lastIndex = 0; + var nextIndex = 0; + var lastPlacedNode = null; + var nextNativeNode = []; + + var _loop = function _loop(_name2) { + if (!nextChildren.hasOwnProperty(_name2)) { + return 'continue'; + } + + var nextChild = nextChildren[_name2]; + var prevChild = prevChildren && prevChildren[_name2]; + + if (prevChild === nextChild) { + var prevChildNativeNode = prevChild.getNativeNode(); + // Convert to array type + if (!Array.isArray(prevChildNativeNode)) { + prevChildNativeNode = [prevChildNativeNode]; + } + + // If the index of `child` is less than `lastIndex`, then it needs to + // be moved. Otherwise, we do not need to move it because a child will be + // inserted or moved before `child`. + if (prevChild._mountIndex < lastIndex) { + // Get the last child + if (Array.isArray(lastPlacedNode)) { + lastPlacedNode = lastPlacedNode[lastPlacedNode.length - 1]; + } + + for (var _i = prevChildNativeNode.length - 1; _i >= 0; _i--) { + _host2.default.driver.insertAfter(prevChildNativeNode[_i], lastPlacedNode); + } + } + + nextNativeNode = nextNativeNode.concat(prevChildNativeNode); + + lastIndex = Math.max(prevChild._mountIndex, lastIndex); + prevChild._mountIndex = nextIndex; + } else { + if (prevChild != null) { + // Update `lastIndex` before `_mountIndex` gets unset by unmounting. + lastIndex = Math.max(prevChild._mountIndex, lastIndex); + } + + var parent = _this2.getNativeNode(); + // Fragment extended native component, so if parent is fragment should get this._parent + if (Array.isArray(parent)) { + parent = _this2._parent; + } + + nextChild.mountComponent(parent, _this2._instance, context, function (newChild, parent) { + // TODO: Rework the duplicate code + var oldChild = oldNodes[_name2]; + if (!Array.isArray(newChild)) { + newChild = [newChild]; + } + + if (oldChild) { + // The oldChild or newChild all maybe fragment + if (!Array.isArray(oldChild)) { + oldChild = [oldChild]; + } + + // If newChild count large then oldChild + var lastNewChild = void 0; + for (var _i2 = 0; _i2 < newChild.length; _i2++) { + var child = newChild[_i2]; + if (oldChild[_i2]) { + _host2.default.driver.replaceChild(child, oldChild[_i2]); + } else { + _host2.default.driver.insertAfter(child, lastNewChild); + } + lastNewChild = child; + } + + // If newChild count less then oldChild + if (newChild.length < oldChild.length) { + for (var _i3 = newChild.length; _i3 < oldChild.length; _i3++) { + _host2.default.driver.removeChild(oldChild[_i3]); + } + } + } else { + // Insert child at a specific index + + // Get the last child + if (Array.isArray(lastPlacedNode)) { + lastPlacedNode = lastPlacedNode[lastPlacedNode.length - 1]; + } + + var prevFirstNativeNode = void 0; + + if (firstPrevChild && !lastPlacedNode) { + prevFirstNativeNode = firstPrevChild.getNativeNode(); + if (Array.isArray(prevFirstNativeNode)) { + prevFirstNativeNode = prevFirstNativeNode[0]; + } + } + + for (var _i4 = newChild.length - 1; _i4 >= 0; _i4--) { + var _child = newChild[_i4]; + if (lastPlacedNode) { + _host2.default.driver.insertAfter(_child, lastPlacedNode); + } else if (prevFirstNativeNode) { + _host2.default.driver.insertBefore(_child, prevFirstNativeNode); + } else { + _host2.default.driver.appendChild(_child, parent); + } + } + } + + nextNativeNode = nextNativeNode.concat(newChild); + }); + nextChild._mountIndex = nextIndex; + } + + nextIndex++; + lastPlacedNode = nextChild.getNativeNode(); + }; + + for (var _name2 in nextChildren) { + var _ret2 = _loop(_name2); + + if (_ret2 === 'continue') { continue; } + } + + // Sync update native refs + if (Array.isArray(_this2._nativeNode)) { + // Clear all and push the new array + _this2._nativeNode.splice(0, _this2._nativeNode.length); + for (var i = 0; i < nextNativeNode.length; i++) { + _this2._nativeNode.push(nextNativeNode[i]); + } + } + })(); + } + + if (delayRemoveFirstPrevChild) { + firstPrevChild.unmountComponent(); + } + + this._renderedChildren = nextChildren; + } + }, { + key: 'getNativeNode', + value: function getNativeNode() { + if (this._nativeNode == null) { + this._nativeNode = _host2.default.driver.createElement(this._instance); + _instance2.default.set(this._nativeNode, this._instance); + } + + return this._nativeNode; + } + }, { + key: 'getPublicInstance', + value: function getPublicInstance() { + return this.getNativeNode(); + } + }, { + key: 'getName', + value: function getName() { + return this._currentElement.type; + } + }]); + + return NativeComponent; +}(); + +exports.default = NativeComponent; +module.exports = exports['default']; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +/* + * Ref manager + */ + +exports.default = { + update: function update(prevElement, nextElement, component) { + var prevRef = prevElement != null && prevElement.ref; + var nextRef = nextElement != null && nextElement.ref; + + // Update refs in owner component + if (prevRef !== nextRef) { + // Detach prev RenderedElement's ref + prevRef != null && this.detach(prevElement._owner, prevRef, component); + // Attach next RenderedElement's ref + nextRef != null && this.attach(nextElement._owner, nextRef, component); + } + }, + attach: function attach(ownerComponent, ref, component) { + if (!ownerComponent) { + throw new Error('You might be adding a ref to a component that was not created inside a component\'s ' + '`render` method, or you have multiple copies of Rax loaded.'); + } + + var instance = component.getPublicInstance(); + if (typeof ref === 'function') { + ref(instance); + } else { + ownerComponent._instance.refs[ref] = instance; + } + }, + detach: function detach(ownerComponent, ref, component) { + if (typeof ref === 'function') { + // When the referenced component is unmounted and whenever the ref changes, the old ref will be called with null as an argument. + ref(null); + } else { + // Must match component and ref could detach the ref on owner when A's before ref is B's current ref + var instance = component.getPublicInstance(); + if (ownerComponent._instance.refs[ref] === instance) { + delete ownerComponent._instance.refs[ref]; + } + } + } +}; +module.exports = exports['default']; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +exports.default = function (children, element, index) { + var elementKey = element && element.key; + var hasKey = typeof elementKey === 'string'; + var defaultName = '.' + index.toString(36); + + if (hasKey) { + var keyName = '$' + elementKey; + // Child keys must be unique. + var keyUnique = children[keyName] === undefined; + // Only the first child will be used when encountered two children with the same key + if (!keyUnique) { console.warn('Encountered two children with the same key "' + elementKey + '".'); } + + return keyUnique ? keyName : defaultName; + } else { + return defaultName; + } +}; + +module.exports = exports['default']; + +/***/ }), +/* 14 */ +/***/ (function(module, exports, __webpack_require__) { + +var _typeof2 = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { + return typeof obj === "undefined" ? "undefined" : _typeof2(obj); +} : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof2(obj); +}; + +exports.isRem = isRem; +exports.calcRem = calcRem; +exports.getRem = getRem; +exports.setRem = setRem; +exports.isUnitNumber = isUnitNumber; +exports.convertUnit = convertUnit; +/** + * CSS properties which accept numbers but are not in units of "px". + */ +var UNITLESS_NUMBER_PROPS = { + animationIterationCount: true, + borderImageOutset: true, + borderImageSlice: true, + borderImageWidth: true, + boxFlex: true, + boxFlexGroup: true, + boxOrdinalGroup: true, + columnCount: true, + flex: true, + flexGrow: true, + flexPositive: true, + flexShrink: true, + flexNegative: true, + flexOrder: true, + gridRow: true, + gridColumn: true, + fontWeight: true, + lineClamp: true, + // We make lineHeight default is px that is diff with w3c spec + // lineHeight: true, + opacity: true, + order: true, + orphans: true, + tabSize: true, + widows: true, + zIndex: true, + zoom: true, + // Weex only + lines: true +}; +var SUFFIX = 'rem'; +var REM_REG = /[-+]?\d*\.?\d+rem/g; +var GLOBAL_REM_UNIT = '__global_rem_unit__'; +var global = (typeof window === 'undefined' ? 'undefined' : _typeof(window)) === 'object' ? window : (typeof global === 'undefined' ? 'undefined' : _typeof(global)) === 'object' ? global : {}; +// Default 1 rem to 1 px +if (global[GLOBAL_REM_UNIT] == null) { + global[GLOBAL_REM_UNIT] = 1; +} + +/** + * Is string contains rem + * @param {String} str + * @returns {Boolean} + */ +function isRem(str) { + return typeof str === 'string' && str.indexOf(SUFFIX) !== -1; +} + +/** + * Calculate rem to pixels: '1.2rem' => 1.2 * rem + * @param {String} str + * @param {Number} rem + * @returns {number} + */ +function calcRem(str) { + var remUnit = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : global[GLOBAL_REM_UNIT]; + + return str.replace(REM_REG, function (rem) { + return parseFloat(rem) * remUnit + 'px'; + }); +} + +function getRem() { + return global[GLOBAL_REM_UNIT]; +} + +function setRem(rem) { + global[GLOBAL_REM_UNIT] = rem; +} + +function isUnitNumber(val, prop) { + return typeof val === 'number' && !UNITLESS_NUMBER_PROPS[prop]; +} + +function convertUnit(val, prop) { + var remUnit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : global[GLOBAL_REM_UNIT]; + + if (prop && isUnitNumber(val, prop)) { + return val * remUnit + 'px'; + } else if (isRem(val)) { + return calcRem(val, remUnit); + } + + return val; +} +exports['default'] = module.exports; +exports.default = module.exports; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.transformPropsAttrsToStyle = transformPropsAttrsToStyle; +exports.renamePropsAttr = renamePropsAttr; +/** + * transformPropAttrsToStyle + * + * @param {Object} props + * @param {Array} attrs + */ +function transformPropsAttrsToStyle(props, attrs) { + props.style = props.style || {}; + + attrs.forEach(function (attr) { + if (props[attr] && !props.style[attr]) { + props.style[attr] = props[attr]; + delete props[attr]; + } + }); + + return props; +} + +/** + * renamePropsAttr + * + * @param {Object} props + * @param {String} originalAttrName + * @param {String} newAttrName + */ +function renamePropsAttr(props, originalAttrName, newAttrName) { + if (props[originalAttrName] && !props[newAttrName]) { + props[newAttrName] = props[originalAttrName]; + delete props[originalAttrName]; + } + + return props; +} +exports["default"] = module.exports; +exports.default = module.exports; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _host = __webpack_require__(0); + +var _host2 = _interopRequireDefault(_host); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function findDOMNode(instance) { + if (instance == null) { + return null; + } + + // If a native node, weex may not export ownerDocument property + if (instance.ownerDocument || instance.nodeType) { + return instance; + } + + // Native component + if (instance._nativeNode) { + return instance._nativeNode; + } + + if (typeof instance == 'string') { + return _host2.default.driver.getElementById(instance); + } + + if (typeof instance.render !== 'function') { + throw new Error('findDOMNode: find by neither component nor DOM node.'); + } + + // Composite component + var internal = instance._internal; + + if (internal) { + while (!internal._nativeNode) { + internal = internal._renderedComponent; + // If not mounted + if (internal == null) { + return null; + } + } + return internal._nativeNode; + } else { + throw new Error('findDOMNode: find on an unmounted component.'); + } +} + +exports.default = findDOMNode; +module.exports = exports['default']; + +/***/ }), +/* 17 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.Children = exports.version = exports.setNativeProps = exports.findComponentInstance = exports.unmountComponentAtNode = exports.findDOMNode = exports.hydrate = exports.render = exports.PropTypes = exports.PureComponent = exports.Component = exports.createFactory = exports.isValidElement = exports.cloneElement = exports.createElement = undefined; + +__webpack_require__(18); + +var _element = __webpack_require__(6); + +var _component = __webpack_require__(4); + +var _component2 = _interopRequireDefault(_component); + +var _purecomponent = __webpack_require__(20); + +var _purecomponent2 = _interopRequireDefault(_purecomponent); + +var _proptypes = __webpack_require__(21); + +var _proptypes2 = _interopRequireDefault(_proptypes); + +var _render2 = __webpack_require__(10); + +var _render3 = _interopRequireDefault(_render2); + +var _hydrate2 = __webpack_require__(42); + +var _hydrate3 = _interopRequireDefault(_hydrate2); + +var _findDOMNode2 = __webpack_require__(16); + +var _findDOMNode3 = _interopRequireDefault(_findDOMNode2); + +var _unmountComponentAtNode2 = __webpack_require__(9); + +var _unmountComponentAtNode3 = _interopRequireDefault(_unmountComponentAtNode2); + +var _findComponentInstance2 = __webpack_require__(43); + +var _findComponentInstance3 = _interopRequireDefault(_findComponentInstance2); + +var _setNativeProps2 = __webpack_require__(44); + +var _setNativeProps3 = _interopRequireDefault(_setNativeProps2); + +var _version2 = __webpack_require__(45); + +var _version3 = _interopRequireDefault(_version2); + +var _children = __webpack_require__(46); + +var _children2 = _interopRequireDefault(_children); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.createElement = _element.createElement; +exports.cloneElement = _element.cloneElement; +exports.isValidElement = _element.isValidElement; +exports.createFactory = _element.createFactory; +exports.Component = _component2.default; +exports.PureComponent = _purecomponent2.default; +exports.PropTypes = _proptypes2.default; +exports.render = _render3.default; +exports.hydrate = _hydrate3.default; +exports.findDOMNode = _findDOMNode3.default; +exports.unmountComponentAtNode = _unmountComponentAtNode3.default; +exports.findComponentInstance = _findComponentInstance3.default; +exports.setNativeProps = _setNativeProps3.default; +exports.version = _version3.default; +exports.Children = _children2.default; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +var _hook = __webpack_require__(5); + +var _hook2 = _interopRequireDefault(_hook); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +/* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */ +if (typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ !== 'undefined' && typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.inject === 'function') { + __REACT_DEVTOOLS_GLOBAL_HOOK__.inject(_hook2.default); +} + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +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 _component = __webpack_require__(4); + +var _component2 = _interopRequireDefault(_component); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) { Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } } + +var rootCounter = 1; + +var Root = function (_Component) { + _inherits(Root, _Component); + + function Root() { + var arguments$1 = arguments; + + var _ref; + + var _temp, _this, _ret; + + _classCallCheck(this, Root); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments$1[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_ref = Root.__proto__ || Object.getPrototypeOf(Root)).call.apply(_ref, [this].concat(args))), _this), _this.rootID = rootCounter++, _temp), _possibleConstructorReturn(_this, _ret); + } + + _createClass(Root, [{ + key: 'isRootComponent', + value: function isRootComponent() {} + }, { + key: 'render', + value: function render() { + return this.props.children; + } + }, { + key: 'getPublicInstance', + value: function getPublicInstance() { + return this.getRenderedComponent().getPublicInstance(); + } + }, { + key: 'getRenderedComponent', + value: function getRenderedComponent() { + return this._internal._renderedComponent; + } + }]); + + return Root; +}(_component2.default); + +exports.default = Root; +module.exports = exports['default']; + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +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 _component = __webpack_require__(4); + +var _component2 = _interopRequireDefault(_component); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) { Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } } + +/** + * Pure component class. + */ +var PureComponent = function (_Component) { + _inherits(PureComponent, _Component); + + function PureComponent(props, context) { + _classCallCheck(this, PureComponent); + + return _possibleConstructorReturn(this, (PureComponent.__proto__ || Object.getPrototypeOf(PureComponent)).call(this, props, context)); + } + + _createClass(PureComponent, [{ + key: 'isPureComponentClass', + value: function isPureComponentClass() {} + }]); + + return PureComponent; +}(_component2.default); + +exports.default = PureComponent; +module.exports = exports['default']; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +Object.defineProperty(exports, "__esModule",
<TRUNCATED>