# Source: jsframework/core/gmp.js

    /**
     * Created by zhangmike on 16/10/14.
     */
    import initMixin from './internal/init';
    import initEvents from './internal/events';
    import initState from './internal/state';
    import initEventBus from './events/eventbus';
    import gmpx from './data/data';
    import extend from './inherits/extend';
    /**
     * The exposed GMP constructor.
     *
     * @constructor
     * @param {Object} [options]
     * @public
     * @example
     * new GMP({
     *  data: '123',
     *  methods: {
     *      login: function () {
     *
     *      }
     *  }
     * })
     */
    class GMP {
        constructor(options) {
            this._init(options);
        }
        static $() {
            if (window.$) return window.$;
            throw new Error('GMP need jQuery or Zepto in window scope named $');
        }
        static _assignPros(pros){
            Object.assign(GMP.prototype,pros);
        }
    }

    // 初始化属性
    initMixin(GMP);
    //初始化事件
    initEvents(GMP);
    //初始化数据
    initState(GMP);
    //初始化事件BUS
    initEventBus(GMP);

    GMP.GMPX = gmpx;
    GMP.extend = extend;
    export default GMP;