@fusioncharts/core
Version:
JavaScript Data Visualisation Library
1 lines • 7.44 kB
JavaScript
"use strict";var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _extends=require("@babel/runtime/helpers/extends");exports.__esModule=true;exports.default=void 0;var _inheritsLoose2=_interopRequireDefault(require("@babel/runtime/helpers/inheritsLoose"));var _componentBase=_interopRequireWildcard(require("./component-base"));function _interopRequireWildcard(e,t){if("function"==typeof WeakMap)var r=new WeakMap,n=new WeakMap;return(_interopRequireWildcard=function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule)return e;var o,i,f=_extends({},null,{default:e});if(null===e||"object"!=typeof e&&"function"!=typeof e)return f;if(o=t?n:r){if(o.has(e))return o.get(e);o.set(e,f)}for(var _t in e)"default"!==_t&&{}.hasOwnProperty.call(e,_t)&&((i=(o=Object.defineProperty)&&Object.getOwnPropertyDescriptor(e,_t))&&(i.get||i.set)?o(f,_t,i):f[_t]=e[_t]);return f})(e,t)}var addEventOnAllGraphics=function addEventOnAllGraphics(component,eventType,listener){var callBack;if(eventType&&listener){callBack=function callBack(element){element.on&&element.on(eventType,listener)};(0,_componentBase._mapSubFnForward)(component.getGraphicalElement(),callBack);(0,_componentBase._mapSubFnForward)(component.getChildContainer(),callBack)}},removeEventFromAllGraphics=function removeEventFromAllGraphics(component,eventType,listener){var callBack;if(eventType&&listener){callBack=function callBack(element){element.off&&element.off(eventType,listener)};(0,_componentBase._mapSubFnForward)(component.getGraphicalElement(),callBack);(0,_componentBase._mapSubFnForward)(component.getChildContainer(),callBack)}},UNDEF;var ComponentInterface=function(_ComponentBase){function ComponentInterface(){var _this;_this=_ComponentBase.call(this)||this;var component=_this;component._components={};component._version=1;component.fireEvent("instantiated");component.__setDefaultConfig();return _this}(0,_inheritsLoose2.default)(ComponentInterface,_ComponentBase);var _proto=ComponentInterface.prototype;_proto.addGraphicalElement=function addGraphicalElement(name,element,isArray,arrayIndex){if(isArray===void 0){isArray=false}var graphics=this._graphics;if(element){if(isArray){graphics[name]===UNDEF&&(graphics[name]=[]);if(arrayIndex){graphics[name][arrayIndex]=element}else{graphics[name].push(element)}}else{graphics[name]=element;this.fireEvent("graphicalelementattached",{element:element})}(0,_componentBase.addAllEventsOnGraphic)(element,this._middleListeners,this)}return element};_proto.removeGraphicalElement=function removeGraphicalElement(element){var component=this,graphics=component._graphics,found;(0,_componentBase._mapSubFnForward)(graphics,(function(child,type,index){if(child===element){found=true;(0,_componentBase.removeAllEventsFromGraphic)(child,component._middleListeners);component._setRemoveAnim(child,type);if(index!==UNDEF){graphics[type].splice(index,1)}else{delete graphics[type]}}}));if(found){this.fireEvent("graphicalelementremoved",{element:element})}};_proto.getGraphicalElement=function getGraphicalElement(name){return typeof name!=="undefined"?this._graphics[name]:this._graphics};_proto.addChildContainer=function addChildContainer(name,element){var component=this,containerStore=component._childContainers;if(element){if(containerStore===UNDEF){containerStore=component._childContainers={}}containerStore[name]=element;(0,_componentBase.addAllEventsOnGraphic)(element,component._middleListeners,component)}return element};_proto.removeChildContainer=function removeChildContainer(name){var component=this,containerStore=component._childContainers;if(containerStore&&containerStore[name]){(0,_componentBase.removeAllEventsFromGraphic)(containerStore[name],component._middleListeners);component._setRemoveAnim(containerStore[name],name);delete containerStore[name]}};_proto.getChildContainer=function getChildContainer(name){if(this._childContainers===UNDEF){this._childContainers={}}return name?this._childContainers[name]:this._childContainers};_proto.addContainer=function addContainer(name,element){var containerStore=this._containers;if(element){if(containerStore===UNDEF){containerStore=this._containers={}}containerStore[name]=element}return element};_proto.removeContainer=function removeContainer(name){var component=this,containerStore=component._containers;if(containerStore&&containerStore[name]){component._setRemoveAnim(containerStore[name],name);delete containerStore[name]}};_proto.getContainer=function getContainer(name){if(this._containers===UNDEF){this._containers={}}return name?this._containers[name]:this._containers};_proto.addEventListener=function addEventListener(eventType,callback,options){var superOutput=_ComponentBase.prototype.addEventListener.call(this,eventType,callback,options);if(superOutput===true){addEventOnAllGraphics(this,eventType,this._middleListeners[eventType]);return callback}else if(superOutput){return callback}return false};_proto.removeEventListener=function removeEventListener(eventType,callback){if(_ComponentBase.prototype.removeEventListener.call(this,eventType,callback)){removeEventFromAllGraphics(this,eventType,this._middleListeners[eventType])}};_proto._dispose=function _dispose(){var component=this,itemName;if(_ComponentBase.prototype._dispose.call(this)){if(component.getFromEnv("paper")&&!component.getFromEnv("paper").removed){(0,_componentBase._mapSubFnForward)(component.getChildContainer(),component.__instantRemoveFn);(0,_componentBase._mapSubFnForward)(component.getGraphicalElement(),component.__instantRemoveFn);(0,_componentBase._mapSubFnForward)(component.getContainer(),component.__instantRemoveFn)}for(itemName in component){if(component.hasOwnProperty(itemName)){delete component[itemName]}}component.fireEvent("removed")}};_proto.removingDraw=function removingDraw(){var component=this;(0,_componentBase._mapSubFnForward)(component.getChildContainer(),component._setRemoveAnim);(0,_componentBase._mapSubFnForward)(component.getGraphicalElement(),component._setRemoveAnim);(0,_componentBase._mapSubFnForward)(component.getContainer(),component._setRemoveAnim)};_proto.attachChild=function attachChild(component,componentType,componentIsArray){var type=componentType||component.getType(),components=this._components;if(componentIsArray===false){components[type]=component}else{if(!(components[type]&&components[type]instanceof Array)){components[type]=[]}components[type].push(component)}component._setLinkedParent(this);this.fireEvent("childattached",{attachedChild:component});return component};_proto.getChild=function getChild(id){var returnChild;if(id===UNDEF){return this._components}this._searchChildren(id,(function(foundChild){returnChild=foundChild}));return returnChild};_proto._searchChildren=function _searchChildren(id,cb){var attachedChildren=this._components,attachedChild,key,i;for(key in attachedChildren){if(attachedChildren.hasOwnProperty(key)){attachedChild=attachedChildren[key];if(attachedChild.constructor===Array){for(i=attachedChild.length-1;i>=0;i--){if(attachedChild[i].getId&&attachedChild[i].getId()===id){return cb(attachedChild[i],i,attachedChild)}}}else{if(attachedChild.getId&&attachedChild.getId()===id){return cb(key,UNDEF,attachedChildren)}}}}};_proto.getChildren=function getChildren(componentType){return componentType?this._components[componentType]:this._components};return ComponentInterface}(_componentBase.default);var _default=exports.default=ComponentInterface;