!function(){"use strict";function p(t,e){if("function"!=typeof e)throw new TypeError("predicate must be a function");for(var n,o=t.length>>>0,i=e,r=0;r<o;r++)if(n=t[r],e.call(i,n,r,t))return n}var r=(t.prototype.updateParams=function(t){var e=t.tpl,n=void 0===e?function(){return""}:e,o=(t.cssClass,t.halign),i=void 0===o?"center":o,r=t.valign,a=void 0===r?"center":r,s=t.halignBox,d=void 0===s?"center":s,p=t.valignBox,l=void 0===p?"center":p,u={top:-.5,left:-.5,center:0,right:.5,bottom:.5};this._align=[u[i],u[a],100*(u[d]-.5),100*(u[l]-.5)],this.tpl=n},t.prototype.updateData=function(t){for(;this._node.firstChild;)this._node.removeChild(this._node.firstChild);for(var e=(new DOMParser).parseFromString(this.tpl(t),"text/html").body.children,n=0;n<e.length;++n){var o=e[n];this._node.appendChild(o)}},t.prototype.getNode=function(){return this._node},t.prototype.updatePosition=function(t){this._renderPosition(t)},t.prototype.initStyles=function(t){this._node.style.position="absolute",t&&t.length&&this._node.classList.add(t)},t.prototype._renderPosition=function(t){var e,n,o=this._position,i=t.x+this._align[0]*t.w,r=t.y+this._align[1]*t.h;o&&o[0]===i&&o[1]===r||(this._position=[i,r],e="translate("+this._align[2]+"%,"+this._align[3]+"%) "+("translate("+i.toFixed(2)+"px,"+r.toFixed(2)+"px) "),(n=this._node.style).webkitTransform=e,n.msTransform=e,n.transform=e)},t);function t(t,e){var n=t.node,o=t.position,i=void 0===o?null:o,r=t.data,a=void 0===r?null:r;this.updateParams(e),this._node=n,this.initStyles(e.cssClass),a&&this.updateData(a),i&&this.updatePosition(i)}var l=(e.prototype.addOrUpdateElem=function(t,e,n){void 0===n&&(n={});var o,i=this._elements[t];i?(i.updateParams(e),i.updateData(n.data),i.updatePosition(n.position)):(o=document.createElement("div"),this._node.appendChild(o),this._elements[t]=new r({node:o,data:n.data,position:n.position},e))},e.prototype.removeElemById=function(t){this._elements[t]&&(this._node.removeChild(this._elements[t].getNode()),delete this._elements[t])},e.prototype.updateElemPosition=function(t,e){var n=this._elements[t];n&&n.updatePosition(e)},e.prototype.updatePanZoom=function(t){var e=t.pan,n=t.zoom,o="translate("+e.x+"px,"+e.y+"px) scale("+n+")",i=this._node.style,r="top left";i.webkitTransform=o,i.msTransform=o,i.transform=o,i.webkitTransformOrigin=r,i.msTransformOrigin=r,i.transformOrigin=r},e);function e(t){this._node=t,this._elements={}}function n(r,t,a){var o=t&&"object"==typeof t?t:[],i=function(){var t=r.container(),e=document.createElement("div"),n=t.querySelector("canvas"),o=t.querySelector("[class^='cy-node-html']");o&&n.parentNode.removeChild(o);var i=e.style;i.position="absolute",i["z-index"]=10,i.width="500px",i.margin="0px",i.padding="0px",i.border="0px",i.outline="0px",i.outline="0px",a&&!0!==a.enablePointerEvents&&(i["pointer-events"]="none");return n.parentNode.appendChild(e),new l(e)}();return r.one("render",function(t){var n;n=t.cy,o.forEach(function(e){n.elements(e.query).forEach(function(t){t.isNode()&&i.addOrUpdateElem(t.id(),e,{position:d(t),data:t.data()})})}),s(t)}),r.on("add",function(t){var e=t.target,n=p(o.slice().reverse(),function(t){return e.is(t.query)});n&&i.addOrUpdateElem(e.id(),n,{position:d(e),data:e.data()})}),r.on("layoutstop",function(t){var e=t.cy;o.forEach(function(t){e.elements(t.query).forEach(function(t){t.isNode()&&i.updateElemPosition(t.id(),d(t))})})}),r.on("remove",function(t){i.removeElemById(t.target.id())}),r.on("data",e),r.on("style",e),r.on("pan zoom",s),r.on("position bounds",function(t){i.updateElemPosition(t.target.id(),d(t.target))}),r;function e(n){setTimeout(function(){var e=n.target,t=p(o.slice().reverse(),function(t){return e.is(t.query)});t&&!e.removed()?i.addOrUpdateElem(e.id(),t,{position:d(e),data:e.data()}):i.removeElemById(e.id())},0)}function s(t){var e=t.cy;i.updatePanZoom({pan:e.pan(),zoom:e.zoom()})}function d(t){return{w:t.width(),h:t.height(),x:t.position("x"),y:t.position("y")}}}function o(t){t&&t("core","nodeHtmlLabel",function(t,e){return n(this,t,e)})}"undefined"!=typeof module&&module.exports?module.exports=function(t){o(t)}:"undefined"!=typeof define&&define.amd&&define("cytoscape-nodeHtmlLabel",function(){return o}),"undefined"!=typeof cytoscape&&o(cytoscape)}();