code: function component(settings = {}) {
  
  	/**
  	 * decorator
  	 * @param  {function} ComponentClass
  	 */
  	return Class => {
  
  		initCoreMap(storage, Class);
  
  		let map = storage.get(Class);
  		map.set('@component', settings);
  
  		for(let callbackName of customElementHooks){
  			Class.prototype[`${callbackName}Callback`] = function(vars){
  				let callbacks = map.get('@callbacks').get(callbackName);
  				this::init(callbackName, callbacks, vars);
  			};
  		}
  	}
  }
docs: component {function}
  @param {object} settings