angular-canvas
Advanced tools
Comparing version 0.0.7 to 0.1.0
@@ -349,2 +349,3 @@ (function (global, factory) { | ||
this.componentsDrawings = getArrayDrawingComponents(this.componentSet); | ||
this.drawAll(); | ||
}; | ||
@@ -354,2 +355,3 @@ NgCanvas.prototype.removeChild = function (oldChild) { | ||
this.componentsDrawings = getArrayDrawingComponents(this.componentSet); | ||
this.drawAll(); | ||
}; | ||
@@ -359,12 +361,25 @@ NgCanvas.prototype.insertBefore = function (newChild, refChild) { | ||
this.componentsDrawings = getArrayDrawingComponents(this.componentSet); | ||
this.drawAll(); | ||
}; | ||
NgCanvas.prototype.removeAttribute = function (name, namespace) { }; | ||
NgCanvas.prototype.removeClass = function (name) { }; | ||
NgCanvas.prototype.removeStyle = function (style, flags) { }; | ||
NgCanvas.prototype.removeAttribute = function (name, namespace) { | ||
this.element.removeAttribute(name); | ||
}; | ||
NgCanvas.prototype.removeClass = function (name) { | ||
this.element.classList.remove(name); | ||
}; | ||
NgCanvas.prototype.removeStyle = function (style, flags) { | ||
// Not supported | ||
}; | ||
NgCanvas.prototype.setNgAttribute = function (name, value, namespace) { | ||
this.element.setAttribute(name, value); | ||
}; | ||
NgCanvas.prototype.setNgProperty = function (name, value) { }; | ||
NgCanvas.prototype.setStyle = function (style, value, flags) { }; | ||
NgCanvas.prototype.setValue = function (value) { }; | ||
NgCanvas.prototype.setNgProperty = function (name, value) { | ||
// Not supported | ||
}; | ||
NgCanvas.prototype.setStyle = function (style, value, flags) { | ||
// Not supported | ||
}; | ||
NgCanvas.prototype.setValue = function (value) { | ||
// Not supported | ||
}; | ||
NgCanvas.prototype.drawAll = function (clear) { | ||
@@ -371,0 +386,0 @@ var _this = this; |
@@ -15,3 +15,3 @@ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("@angular/common"),require("@angular/platform-browser")):"function"==typeof define&&define.amd?define("angular-canvas",["exports","@angular/core","@angular/common","@angular/platform-browser"],e):e((t=t||self)["angular-canvas"]={},t.ng.core,t.ng.common,t.ng.platformBrowser)}(this,(function(t,e,n,o){"use strict"; | ||
PERFORMANCE OF THIS SOFTWARE. | ||
***************************************************************************** */var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)};function i(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}Object.create;function s(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,r,i=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)s.push(o.value)}catch(t){r={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return s}Object.create;function a(t){return Array.from(t.values()).filter((function(t){return t&&!!t.draw}))}var p=function(){function t(t){var e=this;this.ngZone=t,this.componentSet=new Set,this.componentsDrawings=[],this.element=document.createElement("canvas"),this.element.style.position="absolute",this.context=this.element.getContext("2d"),this.ngZone.runOutsideAngular((function(){window.requestAnimationFrame((function(t){return e.draw(t)}))}))}return Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},set:function(t){var e=this;this.resizeObserver=new ResizeObserver((function(t){var n=s(t,1)[0];e.element.width=n.contentRect.width,e.element.height=n.contentRect.height,e.drawAll(!1)})),this.resizeObserver.observe(t)},enumerable:!1,configurable:!0}),t.prototype.addClass=function(t){this.element.setAttribute("class",t)},t.prototype.appendChild=function(t){this.componentSet.add(t),this.componentsDrawings=a(this.componentSet)},t.prototype.removeChild=function(t){this.componentSet.delete(t),this.componentsDrawings=a(this.componentSet)},t.prototype.insertBefore=function(t,e){this.componentSet.add(t),this.componentsDrawings=a(this.componentSet)},t.prototype.removeAttribute=function(t,e){},t.prototype.removeClass=function(t){},t.prototype.removeStyle=function(t,e){},t.prototype.setNgAttribute=function(t,e,n){this.element.setAttribute(t,e)},t.prototype.setNgProperty=function(t,e){},t.prototype.setStyle=function(t,e,n){},t.prototype.setValue=function(t){},t.prototype.drawAll=function(t){var e=this;this.ngZone.runOutsideAngular((function(){e.requestId&&window.cancelAnimationFrame(e.requestId),e.requestId=window.requestAnimationFrame((function(n){return e.draw(n,t)}))}))},t.prototype.draw=function(t,e){var n=this;void 0===e&&(e=!0);var o=this.context;e&&o.clearRect(0,0,this.element.width,this.element.height);for(var r=!1,i=0;i<this.componentsDrawings.length;i++)this.componentsDrawings[i].draw(o,t),r=r||this.componentsDrawings[i].needDraw;r&&(this.requestId&&window.cancelAnimationFrame(this.requestId),this.requestId=window.requestAnimationFrame((function(t){return n.draw(t)})))},t}();p.nodeName="canvas";var u={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},c=/%COMP%/g,l="_nghost-%COMP%",d="_ngcontent-%COMP%";function h(t){return d.replace(c,t)}function y(t){return l.replace(c,t)}function f(t,e,n){for(var o=0;o<e.length;o++){var r=e[o];Array.isArray(r)?f(t,r,n):(r=r.replace(c,t),n.push(r))}return n}var m=window.ngDevMode,v=void 0===m||!!m;function w(t){return function(e){if("__ngUnwrap__"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}var g=function(){function t(t){this.eventManager=t,this.data=Object.create(null)}return t.prototype.destroy=function(){},t.prototype.createElement=function(t,e){return e?document.createElementNS(u[e]||e,t):document.createElement(t)},t.prototype.createComment=function(t){return document.createComment(t)},t.prototype.createText=function(t){return document.createTextNode(t)},t.prototype.appendChild=function(t,e){t.appendChild(e)},t.prototype.insertBefore=function(t,e,n){t&&t.insertBefore(e,n)},t.prototype.removeChild=function(t,e){t&&t.removeChild(e)},t.prototype.selectRootElement=function(t,e){var n="string"==typeof t?document.querySelector(t):t;if(!n)throw new Error('The selector "'+t+'" did not match any elements');return e||(n.textContent=""),n},t.prototype.parentNode=function(t){return t.parentNode},t.prototype.nextSibling=function(t){return t.nextSibling},t.prototype.setAttribute=function(t,e,n,o){if(o){e=o+":"+e;var r=u[o];r?t.setAttributeNS(r,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)},t.prototype.removeAttribute=function(t,e,n){if(n){var o=u[n];o?t.removeAttributeNS(o,e):t.removeAttribute(n+":"+e)}else t.removeAttribute(e)},t.prototype.addClass=function(t,e){t.classList.add(e)},t.prototype.removeClass=function(t,e){t.classList.remove(e)},t.prototype.setStyle=function(t,n,o,r){r&e.RendererStyleFlags2.DashCase?t.style.setProperty(n,o,r&e.RendererStyleFlags2.Important?"important":""):t.style[n]=o},t.prototype.removeStyle=function(t,n,o){o&e.RendererStyleFlags2.DashCase?t.style.removeProperty(n):t.style[n]=""},t.prototype.setProperty=function(t,e,n){v&&C(e,"property"),t[e]=n},t.prototype.setValue=function(t,e){t.nodeValue=e},t.prototype.listen=function(t,e,n){return v&&C(e,"listener"),"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,w(n)):this.eventManager.addEventListener(t,e,w(n))},t}(),S="@".charCodeAt(0);function C(t,e){if(t.charCodeAt(0)===S)throw new Error("Found the synthetic "+e+" "+t+'. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.')}var A=function(t){function e(e,n,o,r){var i=t.call(this,e)||this;i.component=o;var s=f(r+"-"+o.id,o.styles,[]);return n.addStyles(s),i.contentAttr=h(r+"-"+o.id),i.hostAttr=y(r+"-"+o.id),i}return i(e,t),e.prototype.applyToHost=function(e){t.prototype.setAttribute.call(this,e,this.hostAttr,"")},e.prototype.createElement=function(e,n){var o=t.prototype.createElement.call(this,e,n);return t.prototype.setAttribute.call(this,o,this.contentAttr,""),o},e}(g),b=function(t){function n(n,o,r,i){var s=t.call(this,n)||this;s.sharedStylesHost=o,s.hostEl=r,s.component=i,i.encapsulation===e.ViewEncapsulation.ShadowDom?s.shadowRoot=r.attachShadow({mode:"open"}):s.shadowRoot=r.createShadowRoot(),s.sharedStylesHost.addHost(s.shadowRoot);for(var a=f(i.id,i.styles,[]),p=0;p<a.length;p++){var u=document.createElement("style");u.textContent=a[p],s.shadowRoot.appendChild(u)}return s}return i(n,t),n.prototype.nodeOrShadowRoot=function(t){return t===this.hostEl?this.shadowRoot:t},n.prototype.destroy=function(){this.sharedStylesHost.removeHost(this.shadowRoot)},n.prototype.appendChild=function(e,n){return t.prototype.appendChild.call(this,this.nodeOrShadowRoot(e),n)},n.prototype.insertBefore=function(e,n,o){return t.prototype.insertBefore.call(this,this.nodeOrShadowRoot(e),n,o)},n.prototype.removeChild=function(e,n){return t.prototype.removeChild.call(this,this.nodeOrShadowRoot(e),n)},n.prototype.parentNode=function(e){return this.nodeOrShadowRoot(t.prototype.parentNode.call(this,this.nodeOrShadowRoot(e)))},n}(g),R={};function E(){return R.canvasRendererMetadataArgsStorage||(R.canvasRendererMetadataArgsStorage=new M),R.canvasRendererMetadataArgsStorage}var M=function(){this.elements=new Map},x=function(){function t(t,e,n,o){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.ngZone=o,this.rendererByCompId=new Map,this.defaultRenderer=new g(t)}return t.prototype.end=function(){},t.prototype.createRenderer=function(t,n){if(!t||!n)return this.defaultRenderer;if(n.type&&n.type.isCanvasComponent)return(o=this.rendererByCompId.get(n.id))||(o=new O(this.eventManager,this.sharedStylesHost,n,this.appId,this.ngZone),this.rendererByCompId.set(n.id,o)),o.applyToHost(t),o;switch(n.encapsulation){case e.ViewEncapsulation.Emulated:var o;return(o=this.rendererByCompId.get(n.id))||(o=new A(this.eventManager,this.sharedStylesHost,n,this.appId),this.rendererByCompId.set(n.id,o)),o.applyToHost(t),o;case e.ViewEncapsulation.Native:case e.ViewEncapsulation.ShadowDom:return new b(this.eventManager,this.sharedStylesHost,t,n);default:if(!this.rendererByCompId.has(n.id)){var r=f(n.id,n.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(n.id,this.defaultRenderer)}return this.defaultRenderer}},t}();x.decorators=[{type:e.Injectable}],x.ctorParameters=function(){return[{type:o.EventManager},{type:o.ɵDomSharedStylesHost},{type:String},{type:e.NgZone}]};var O=function(){function t(t,e,n,o,r){this.component=n,this.ngZone=r,this.canvasElements=E().elements;var i=f(o+"-"+n.id,n.styles,[]);e.addStyles(i),this.contentAttr=h(o+"-"+n.id),this.hostAttr=y(o+"-"+n.id)}return t.prototype.applyToHost=function(t){this.setAttribute(t,this.hostAttr,"")},t.prototype.createElement=function(t,e){var n=this.canvasElements.get(t);if(n)return new n;if("canvas"===t){var o=new p(this.ngZone);return o.element.setAttribute(this.contentAttr,""),o}var r=void 0;return r=e?document.createElementNS(u[e]||e,t):document.createElement(t),this.setAttribute(r,this.contentAttr,""),r},t.prototype.createText=function(t){return document.createTextNode(t)},t.prototype.selectRootElement=function(t,e){var n="string"==typeof t?document.querySelector(t):t;if(!n)throw new Error('The selector "'+t+'" did not match any elements');return e||(n.textContent=""),n},t.prototype.addClass=function(t,e){t.classList?t.classList.add(e):t.addClass(e)},t.prototype.removeClass=function(t,e){t.classList?t.classList.add(e):t.removeClass(e)},t.prototype.appendChild=function(t,e){e&&(e.parent=t,e instanceof p?t.appendChild(e.element):t.appendChild(e))},t.prototype.removeChild=function(t,e){e.destroy&&e.destroy(),t&&t.removeChild(e)},t.prototype.createComment=function(t){return document.createComment(t)},t.prototype.destroy=function(){},t.prototype.insertBefore=function(t,e,n){t&&t.insertBefore&&(e.parent=t,t.insertBefore(e,n))},t.prototype.listen=function(t,e,n){var o=function(e){return n.call(t,e)};return t.addEventListener(e,o),function(){return t.removeEventListener(e,o)}},t.prototype.nextSibling=function(t){return{previous:t,next:t.nextSibling}},t.prototype.parentNode=function(t){return t.parent?t.parent:t},t.prototype.removeAttribute=function(t,e,n){if(n){var o=u[n];o?t.removeAttributeNS(o,e):t.removeAttribute(n+":"+e)}else t.removeAttribute(e)},t.prototype.removeStyle=function(t,e,n){t.removeStyle(e,n)},t.prototype.setAttribute=function(t,e,n,o){if(o){e=o+":"+e;var r=u[o];r?t.setAttributeNS(r,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)},t.prototype.setProperty=function(t,e,n){t.setNgProperty(e,n)},t.prototype.setStyle=function(t,n,o,r){t.style?r&e.RendererStyleFlags2.DashCase?t.style.setProperty(n,o,r&e.RendererStyleFlags2.Important?"important":""):t.style[n]=o:t.setStyle(n,o,r)},t.prototype.setValue=function(t,e){t.setValue?t.setValue(e):t.nodeValue=e},t}(),N=function(){function t(){}return t.forRoot=function(e){return{ngModule:t}},t}();N.decorators=[{type:e.NgModule,args:[{imports:[n.CommonModule],providers:[{provide:e.RendererFactory2,useClass:x,deps:[o.EventManager,o.ɵDomSharedStylesHost,e.APP_ID,e.NgZone]}],schemas:[e.NO_ERRORS_SCHEMA]}]}],t.CanvasComponent=function(t){t.isCanvasComponent=!0},t.CanvasDomModule=N,t.CanvasDomRendererFactory=x,t.CanvasElement=function(t){return function(e){E().elements.set(t.selector,e)}},t.CanvasRenderer=O,t.MetadataArgsStorage=M,t.NgCanvas=p,t.getMetadataArgsStorage=E,Object.defineProperty(t,"__esModule",{value:!0})})); | ||
***************************************************************************** */var r=function(t,e){return(r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)};function i(t,e){function n(){this.constructor=t}r(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}Object.create;function s(t,e){var n="function"==typeof Symbol&&t[Symbol.iterator];if(!n)return t;var o,r,i=n.call(t),s=[];try{for(;(void 0===e||e-- >0)&&!(o=i.next()).done;)s.push(o.value)}catch(t){r={error:t}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(r)throw r.error}}return s}Object.create;function a(t){return Array.from(t.values()).filter((function(t){return t&&!!t.draw}))}var p=function(){function t(t){var e=this;this.ngZone=t,this.componentSet=new Set,this.componentsDrawings=[],this.element=document.createElement("canvas"),this.element.style.position="absolute",this.context=this.element.getContext("2d"),this.ngZone.runOutsideAngular((function(){window.requestAnimationFrame((function(t){return e.draw(t)}))}))}return Object.defineProperty(t.prototype,"parent",{get:function(){return this._parent},set:function(t){var e=this;this.resizeObserver=new ResizeObserver((function(t){var n=s(t,1)[0];e.element.width=n.contentRect.width,e.element.height=n.contentRect.height,e.drawAll(!1)})),this.resizeObserver.observe(t)},enumerable:!1,configurable:!0}),t.prototype.addClass=function(t){this.element.setAttribute("class",t)},t.prototype.appendChild=function(t){this.componentSet.add(t),this.componentsDrawings=a(this.componentSet),this.drawAll()},t.prototype.removeChild=function(t){this.componentSet.delete(t),this.componentsDrawings=a(this.componentSet),this.drawAll()},t.prototype.insertBefore=function(t,e){this.componentSet.add(t),this.componentsDrawings=a(this.componentSet),this.drawAll()},t.prototype.removeAttribute=function(t,e){this.element.removeAttribute(t)},t.prototype.removeClass=function(t){this.element.classList.remove(t)},t.prototype.removeStyle=function(t,e){},t.prototype.setNgAttribute=function(t,e,n){this.element.setAttribute(t,e)},t.prototype.setNgProperty=function(t,e){},t.prototype.setStyle=function(t,e,n){},t.prototype.setValue=function(t){},t.prototype.drawAll=function(t){var e=this;this.ngZone.runOutsideAngular((function(){e.requestId&&window.cancelAnimationFrame(e.requestId),e.requestId=window.requestAnimationFrame((function(n){return e.draw(n,t)}))}))},t.prototype.draw=function(t,e){var n=this;void 0===e&&(e=!0);var o=this.context;e&&o.clearRect(0,0,this.element.width,this.element.height);for(var r=!1,i=0;i<this.componentsDrawings.length;i++)this.componentsDrawings[i].draw(o,t),r=r||this.componentsDrawings[i].needDraw;r&&(this.requestId&&window.cancelAnimationFrame(this.requestId),this.requestId=window.requestAnimationFrame((function(t){return n.draw(t)})))},t}();p.nodeName="canvas";var u={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},c=/%COMP%/g,l="_nghost-%COMP%",d="_ngcontent-%COMP%";function h(t){return d.replace(c,t)}function y(t){return l.replace(c,t)}function f(t,e,n){for(var o=0;o<e.length;o++){var r=e[o];Array.isArray(r)?f(t,r,n):(r=r.replace(c,t),n.push(r))}return n}var m=window.ngDevMode,v=void 0===m||!!m;function w(t){return function(e){if("__ngUnwrap__"===e)return t;!1===t(e)&&(e.preventDefault(),e.returnValue=!1)}}var g=function(){function t(t){this.eventManager=t,this.data=Object.create(null)}return t.prototype.destroy=function(){},t.prototype.createElement=function(t,e){return e?document.createElementNS(u[e]||e,t):document.createElement(t)},t.prototype.createComment=function(t){return document.createComment(t)},t.prototype.createText=function(t){return document.createTextNode(t)},t.prototype.appendChild=function(t,e){t.appendChild(e)},t.prototype.insertBefore=function(t,e,n){t&&t.insertBefore(e,n)},t.prototype.removeChild=function(t,e){t&&t.removeChild(e)},t.prototype.selectRootElement=function(t,e){var n="string"==typeof t?document.querySelector(t):t;if(!n)throw new Error('The selector "'+t+'" did not match any elements');return e||(n.textContent=""),n},t.prototype.parentNode=function(t){return t.parentNode},t.prototype.nextSibling=function(t){return t.nextSibling},t.prototype.setAttribute=function(t,e,n,o){if(o){e=o+":"+e;var r=u[o];r?t.setAttributeNS(r,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)},t.prototype.removeAttribute=function(t,e,n){if(n){var o=u[n];o?t.removeAttributeNS(o,e):t.removeAttribute(n+":"+e)}else t.removeAttribute(e)},t.prototype.addClass=function(t,e){t.classList.add(e)},t.prototype.removeClass=function(t,e){t.classList.remove(e)},t.prototype.setStyle=function(t,n,o,r){r&e.RendererStyleFlags2.DashCase?t.style.setProperty(n,o,r&e.RendererStyleFlags2.Important?"important":""):t.style[n]=o},t.prototype.removeStyle=function(t,n,o){o&e.RendererStyleFlags2.DashCase?t.style.removeProperty(n):t.style[n]=""},t.prototype.setProperty=function(t,e,n){v&&A(e,"property"),t[e]=n},t.prototype.setValue=function(t,e){t.nodeValue=e},t.prototype.listen=function(t,e,n){return v&&A(e,"listener"),"string"==typeof t?this.eventManager.addGlobalEventListener(t,e,w(n)):this.eventManager.addEventListener(t,e,w(n))},t}(),S="@".charCodeAt(0);function A(t,e){if(t.charCodeAt(0)===S)throw new Error("Found the synthetic "+e+" "+t+'. Please include either "BrowserAnimationsModule" or "NoopAnimationsModule" in your application.')}var C=function(t){function e(e,n,o,r){var i=t.call(this,e)||this;i.component=o;var s=f(r+"-"+o.id,o.styles,[]);return n.addStyles(s),i.contentAttr=h(r+"-"+o.id),i.hostAttr=y(r+"-"+o.id),i}return i(e,t),e.prototype.applyToHost=function(e){t.prototype.setAttribute.call(this,e,this.hostAttr,"")},e.prototype.createElement=function(e,n){var o=t.prototype.createElement.call(this,e,n);return t.prototype.setAttribute.call(this,o,this.contentAttr,""),o},e}(g),b=function(t){function n(n,o,r,i){var s=t.call(this,n)||this;s.sharedStylesHost=o,s.hostEl=r,s.component=i,i.encapsulation===e.ViewEncapsulation.ShadowDom?s.shadowRoot=r.attachShadow({mode:"open"}):s.shadowRoot=r.createShadowRoot(),s.sharedStylesHost.addHost(s.shadowRoot);for(var a=f(i.id,i.styles,[]),p=0;p<a.length;p++){var u=document.createElement("style");u.textContent=a[p],s.shadowRoot.appendChild(u)}return s}return i(n,t),n.prototype.nodeOrShadowRoot=function(t){return t===this.hostEl?this.shadowRoot:t},n.prototype.destroy=function(){this.sharedStylesHost.removeHost(this.shadowRoot)},n.prototype.appendChild=function(e,n){return t.prototype.appendChild.call(this,this.nodeOrShadowRoot(e),n)},n.prototype.insertBefore=function(e,n,o){return t.prototype.insertBefore.call(this,this.nodeOrShadowRoot(e),n,o)},n.prototype.removeChild=function(e,n){return t.prototype.removeChild.call(this,this.nodeOrShadowRoot(e),n)},n.prototype.parentNode=function(e){return this.nodeOrShadowRoot(t.prototype.parentNode.call(this,this.nodeOrShadowRoot(e)))},n}(g),R={};function E(){return R.canvasRendererMetadataArgsStorage||(R.canvasRendererMetadataArgsStorage=new M),R.canvasRendererMetadataArgsStorage}var M=function(){this.elements=new Map},x=function(){function t(t,e,n,o){this.eventManager=t,this.sharedStylesHost=e,this.appId=n,this.ngZone=o,this.rendererByCompId=new Map,this.defaultRenderer=new g(t)}return t.prototype.end=function(){},t.prototype.createRenderer=function(t,n){if(!t||!n)return this.defaultRenderer;if(n.type&&n.type.isCanvasComponent)return(o=this.rendererByCompId.get(n.id))||(o=new O(this.eventManager,this.sharedStylesHost,n,this.appId,this.ngZone),this.rendererByCompId.set(n.id,o)),o.applyToHost(t),o;switch(n.encapsulation){case e.ViewEncapsulation.Emulated:var o;return(o=this.rendererByCompId.get(n.id))||(o=new C(this.eventManager,this.sharedStylesHost,n,this.appId),this.rendererByCompId.set(n.id,o)),o.applyToHost(t),o;case e.ViewEncapsulation.Native:case e.ViewEncapsulation.ShadowDom:return new b(this.eventManager,this.sharedStylesHost,t,n);default:if(!this.rendererByCompId.has(n.id)){var r=f(n.id,n.styles,[]);this.sharedStylesHost.addStyles(r),this.rendererByCompId.set(n.id,this.defaultRenderer)}return this.defaultRenderer}},t}();x.decorators=[{type:e.Injectable}],x.ctorParameters=function(){return[{type:o.EventManager},{type:o.ɵDomSharedStylesHost},{type:String},{type:e.NgZone}]};var O=function(){function t(t,e,n,o,r){this.component=n,this.ngZone=r,this.canvasElements=E().elements;var i=f(o+"-"+n.id,n.styles,[]);e.addStyles(i),this.contentAttr=h(o+"-"+n.id),this.hostAttr=y(o+"-"+n.id)}return t.prototype.applyToHost=function(t){this.setAttribute(t,this.hostAttr,"")},t.prototype.createElement=function(t,e){var n=this.canvasElements.get(t);if(n)return new n;if("canvas"===t){var o=new p(this.ngZone);return o.element.setAttribute(this.contentAttr,""),o}var r=void 0;return r=e?document.createElementNS(u[e]||e,t):document.createElement(t),this.setAttribute(r,this.contentAttr,""),r},t.prototype.createText=function(t){return document.createTextNode(t)},t.prototype.selectRootElement=function(t,e){var n="string"==typeof t?document.querySelector(t):t;if(!n)throw new Error('The selector "'+t+'" did not match any elements');return e||(n.textContent=""),n},t.prototype.addClass=function(t,e){t.classList?t.classList.add(e):t.addClass(e)},t.prototype.removeClass=function(t,e){t.classList?t.classList.add(e):t.removeClass(e)},t.prototype.appendChild=function(t,e){e&&(e.parent=t,e instanceof p?t.appendChild(e.element):t.appendChild(e))},t.prototype.removeChild=function(t,e){e.destroy&&e.destroy(),t&&t.removeChild(e)},t.prototype.createComment=function(t){return document.createComment(t)},t.prototype.destroy=function(){},t.prototype.insertBefore=function(t,e,n){t&&t.insertBefore&&(e.parent=t,t.insertBefore(e,n))},t.prototype.listen=function(t,e,n){var o=function(e){return n.call(t,e)};return t.addEventListener(e,o),function(){return t.removeEventListener(e,o)}},t.prototype.nextSibling=function(t){return{previous:t,next:t.nextSibling}},t.prototype.parentNode=function(t){return t.parent?t.parent:t},t.prototype.removeAttribute=function(t,e,n){if(n){var o=u[n];o?t.removeAttributeNS(o,e):t.removeAttribute(n+":"+e)}else t.removeAttribute(e)},t.prototype.removeStyle=function(t,e,n){t.removeStyle(e,n)},t.prototype.setAttribute=function(t,e,n,o){if(o){e=o+":"+e;var r=u[o];r?t.setAttributeNS(r,e,n):t.setAttribute(e,n)}else t.setAttribute(e,n)},t.prototype.setProperty=function(t,e,n){t.setNgProperty(e,n)},t.prototype.setStyle=function(t,n,o,r){t.style?r&e.RendererStyleFlags2.DashCase?t.style.setProperty(n,o,r&e.RendererStyleFlags2.Important?"important":""):t.style[n]=o:t.setStyle(n,o,r)},t.prototype.setValue=function(t,e){t.setValue?t.setValue(e):t.nodeValue=e},t}(),N=function(){function t(){}return t.forRoot=function(e){return{ngModule:t}},t}();N.decorators=[{type:e.NgModule,args:[{imports:[n.CommonModule],providers:[{provide:e.RendererFactory2,useClass:x,deps:[o.EventManager,o.ɵDomSharedStylesHost,e.APP_ID,e.NgZone]}],schemas:[e.NO_ERRORS_SCHEMA]}]}],t.CanvasComponent=function(t){t.isCanvasComponent=!0},t.CanvasDomModule=N,t.CanvasDomRendererFactory=x,t.CanvasElement=function(t){return function(e){E().elements.set(t.selector,e)}},t.CanvasRenderer=O,t.MetadataArgsStorage=M,t.NgCanvas=p,t.getMetadataArgsStorage=E,Object.defineProperty(t,"__esModule",{value:!0})})); | ||
//# sourceMappingURL=angular-canvas.umd.min.js.map |
@@ -35,2 +35,3 @@ function getArrayDrawingComponents(set) { | ||
this.componentsDrawings = getArrayDrawingComponents(this.componentSet); | ||
this.drawAll(); | ||
} | ||
@@ -40,2 +41,3 @@ removeChild(oldChild) { | ||
this.componentsDrawings = getArrayDrawingComponents(this.componentSet); | ||
this.drawAll(); | ||
} | ||
@@ -45,12 +47,25 @@ insertBefore(newChild, refChild) { | ||
this.componentsDrawings = getArrayDrawingComponents(this.componentSet); | ||
this.drawAll(); | ||
} | ||
removeAttribute(name, namespace) { } | ||
removeClass(name) { } | ||
removeStyle(style, flags) { } | ||
removeAttribute(name, namespace) { | ||
this.element.removeAttribute(name); | ||
} | ||
removeClass(name) { | ||
this.element.classList.remove(name); | ||
} | ||
removeStyle(style, flags) { | ||
// Not supported | ||
} | ||
setNgAttribute(name, value, namespace) { | ||
this.element.setAttribute(name, value); | ||
} | ||
setNgProperty(name, value) { } | ||
setStyle(style, value, flags) { } | ||
setValue(value) { } | ||
setNgProperty(name, value) { | ||
// Not supported | ||
} | ||
setStyle(style, value, flags) { | ||
// Not supported | ||
} | ||
setValue(value) { | ||
// Not supported | ||
} | ||
drawAll(clear) { | ||
@@ -80,2 +95,2 @@ this.ngZone.runOutsideAngular(() => { | ||
NgCanvas.nodeName = 'canvas'; | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2FudmFzLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9pcnVzdG0vZGV2L2dpdGh1Yi9hbmd1bGFyLWNhbnZhcy9wcm9qZWN0cy9hbmd1bGFyLWNhbnZhcy1saWIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbmctY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLFNBQVMseUJBQXlCLENBQ2hDLEdBQXlCO0lBRXpCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ3BDLENBQUMsQ0FBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNqQixDQUFDO0FBQ3pCLENBQUM7QUFFRCxNQUFNLE9BQU8sUUFBUTtJQWdDbkIsWUFBNkIsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFOMUIsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztRQUNuRCx1QkFBa0IsR0FBc0IsRUFBRSxDQUFDO1FBTWpELElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBakNELElBQVcsTUFBTSxDQUFDLE9BQU87UUFDdkIsYUFBYTtR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QUFDO1NBQ2xFO1FBRUQsSUFBSSxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXJCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQ3ZELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQy9DLFFBQVEsR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztTQUM1RDtRQUVELElBQUksUUFBUSxFQUFFO1lBQ1osSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7U0FDMUU7SUFDSCxDQUFDOztBQXZHYSxpQkFBUSxHQUFHLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2FudmFzRWxlbWVudCB9IGZyb20gJy4vbmctY2FudmFzLWVsZW1lbnQnO1xuaW1wb3J0IHsgTmdab25lLCBSZW5kZXJlclN0eWxlRmxhZ3MyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmZ1bmN0aW9uIGdldEFycmF5RHJhd2luZ0NvbXBvbmVudHMoXG4gIHNldDogU2V0PE5nQ2FudmFzRWxlbWVudD5cbik6IE5nQ2FudmFzRWxlbWVudFtdIHtcbiAgcmV0dXJuIEFycmF5LmZyb20oc2V0LnZhbHVlcygpKS5maWx0ZXIoXG4gICAgKGM6IE5nQ2FudmFzRWxlbWVudCkgPT4gYyAmJiAhIWMuZHJhd1xuICApIGFzIE5nQ2FudmFzRWxlbWVudFtdO1xufVxuXG5leHBvcnQgY2xhc3MgTmdDYW52YXMge1xuICBwdWJsaWMgc3RhdGljIG5vZGVOYW1lID0gJ2NhbnZhcyc7XG4gIHB1YmxpYyByZWFkb25seSBjb250ZXh0OiBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQ7XG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50OiBIVE1MQ2FudmFzRWxlbWVudDtcblxuICBwcml2YXRlIHJlcXVlc3RJZDogbnVtYmVyO1xuXG4gIHB1YmxpYyBzZXQgcGFyZW50KGVsZW1lbnQpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyBSZXNpemVPYnNlcnZlcigoW2VudHJ5XSkgPT4ge1xuICAgICAgdGhpcy5lbGVtZW50LndpZHRoID0gZW50cnkuY29udGVudFJlY3Qud2lkdGg7XG4gICAgICB0aGlzLmVsZW1lbnQuaGVpZ2h0ID0gZW50cnkuY29udGVudFJlY3QuaGVpZ2h0O1xuICAgICAgdGhpcy5kcmF3QWxsKGZhbHNlKTtcbiAgICB9KTtcblxuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50KTtcbiAgfVxuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp0eXBlZGVmXG4gIHB1YmxpYyBnZXQgcGFyZW50KCkge1xuICAgIHJldHVybiB0aGlzLl9wYXJlbnQ7XG4gIH1cblxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6dmFyaWFibGUtbmFtZVxuICBwcml2YXRlIF9wYXJlbnQ6IGFueTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGNvbXBvbmVudFNldCA9IG5ldyBTZXQ8TmdDYW52YXNFbGVtZW50PigpO1xuICBwcml2YXRlIGNvbXBvbmVudHNEcmF3aW5nczogTmdDYW52YXNFbGVtZW50W10gPSBbXTtcblxuICAvLyBAdHMtaWdub3JlXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbmdab25lOiBOZ1pvbmUpIHtcbiAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKTtcbiAgICB0aGlzLmVsZW1lbnQuc3R5bGUucG9zaXRpb24gPSAnYWJzb2x1dGUnO1xuICAgIHRoaXMuY29udGV4dCA9IHRoaXMuZWxlbWVudC5nZXRDb250ZXh0KCcyZCcpO1xuXG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgodGltZSkgPT4gdGhpcy5kcmF3KHRpbWUpKTtcbiAgICB9KTtcbiAgfVxuXG4gIGFkZENsYXNzKG5hbWUpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKCdjbGFzcycsIG5hbWUpO1xuICB9XG5cbiAgYXBwZW5kQ2hpbGQobmV3Q2hpbGQ6IE5nQ2FudmFzRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50U2V0LmFkZChuZXdDaGlsZCk7XG4gICAgdGhpcy5jb21wb25lbnRzRHJhd2luZ3MgPSBnZXRBcnJheURyYXdpbmdDb21wb25lbnRzKHRoaXMuY29tcG9uZW50U2V0KTtcbiAgfVxuXG4gIHJlbW92ZUNoaWxkKG9sZENoaWxkOiBOZ0NhbnZhc0VsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudFNldC5kZWxldGUob2xkQ2hpbGQpO1xuICAgIHRoaXMuY29tcG9uZW50c0RyYXdpbmdzID0gZ2V0QXJyYXlEcmF3aW5nQ29tcG9uZW50cyh0aGlzLmNvbXBvbmVudFNldCk7XG4gIH1cblxuICBpbnNlcnRCZWZvcmUobmV3Q2hpbGQ6IGFueSwgcmVmQ2hpbGQ6IGFueSk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50U2V0LmFkZChuZXdDaGlsZCk7XG4gICAgdGhpcy5jb21wb25lbnRzRHJhd2luZ3MgPSBnZXRBcnJheURyYXdpbmdDb21wb25lbnRzKHRoaXMuY29tcG9uZW50U2V0KTtcbiAgfVxuXG4gIHJlbW92ZUF0dHJpYnV0ZShuYW1lOiBzdHJpbmcsIG5hbWVzcGFjZT86IHN0cmluZyB8IG51bGwpOiB2b2lkIHt9XG5cbiAgcmVtb3ZlQ2xhc3MobmFtZTogc3RyaW5nKTogdm9pZCB7fVxuXG4gIHJlbW92ZVN0eWxlKHN0eWxlOiBzdHJpbmcsIGZsYWdzPzogUmVuZGVyZXJTdHlsZUZsYWdzMik6IHZvaWQge31cblxuICBzZXROZ0F0dHJpYnV0ZShuYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIG5hbWVzcGFjZT86IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgfVxuXG4gIHNldE5nUHJvcGVydHkobmFtZTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7fVxuXG4gIHNldFN0eWxlKHN0eWxlOiBzdHJpbmcsIHZhbHVlOiBhbnksIGZsYWdzPzogUmVuZGVyZXJTdHlsZUZsYWdzMik6IHZvaWQge31cblxuICBzZXRWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7fVxuXG4gIGRyYXdBbGwoY2xlYXI/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgdGhpcy5yZXF1ZXN0SWQgJiYgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lKHRoaXMucmVxdWVzdElkKTtcbiAgICAgIHRoaXMucmVxdWVzdElkID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgodGltZSkgPT5cbiAgICAgICAgdGhpcy5kcmF3KHRpbWUsIGNsZWFyKVxuICAgICAgKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIEB0cy1pZ25vcmVcbiAgZHJhdyh0aW1lOiBudW1iZXIsIGNsZWFyOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLmNvbnRleHQ7XG4gICAgaWYgKGNsZWFyKSB7XG4gICAgICBjb250ZXh0LmNsZWFyUmVjdCgwLCAwLCB0aGlzLmVsZW1lbnQud2lkdGgsIHRoaXMuZWxlbWVudC5oZWlnaHQpO1xuICAgIH1cblxuICAgIGxldCBuZWVkRHJhdyA9IGZhbHNlO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLmNvbXBvbmVudHNEcmF3aW5ncy5sZW5ndGg7IGkrKykge1xuICAgICAgdGhpcy5jb21wb25lbnRzRHJhd2luZ3NbaV0uZHJhdyhjb250ZXh0LCB0aW1lKTtcbiAgICAgIG5lZWREcmF3ID0gbmVlZERyYXcgfHwgdGhpcy5jb21wb25lbnRzRHJhd2luZ3NbaV0ubmVlZERyYXc7XG4gICAgfVxuXG4gICAgaWYgKG5lZWREcmF3KSB7XG4gICAgICB0aGlzLnJlcXVlc3RJZCAmJiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5yZXF1ZXN0SWQpO1xuICAgICAgdGhpcy5yZXF1ZXN0SWQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCh0aW1lKSA9PiB0aGlzLmRyYXcodGltZSkpO1xuICAgIH1cbiAgfVxufVxuIl19 | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctY2FudmFzLmpzIiwic291cmNlUm9vdCI6Ii9Vc2Vycy9pcnVzdG0vZGV2L2dpdGh1Yi9hbmd1bGFyLWNhbnZhcy9wcm9qZWN0cy9hbmd1bGFyLWNhbnZhcy1saWIvc3JjLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvbmctY2FudmFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLFNBQVMseUJBQXlCLENBQ2hDLEdBQXlCO0lBRXpCLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ3BDLENBQUMsQ0FBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUNqQixDQUFDO0FBQ3pCLENBQUM7QUFFRCxNQUFNLE9BQU8sUUFBUTtJQWdDbkIsWUFBNkIsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFOMUIsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBbUIsQ0FBQztRQUNuRCx1QkFBa0IsR0FBc0IsRUFBRSxDQUFDO1FBTWpELElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7WUFDakMsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBakNELElBQVcsTUFBTSxDQUFDLE9BQU87UUFDdkIsYUFBYTtR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QyxDQUN2QixDQUFDO1FBQ0osQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYTtJQUNiLElBQUksQ0FBQyxJQUFZLEVBQUUsUUFBaUIsSUFBSTtRQUN0QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdCLElBQUksS0FBSyxFQUFFO1lBQ1QsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFJLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFckIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDdkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDL0MsUUFBUSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1NBQzVEO1FBRUQsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLENBQUMsU0FBUyxJQUFJLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUQsSUFBSSxDQUFDLFNBQVMsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUMxRTtJQUNILENBQUM7O0FBdEhhLGlCQUFRLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDYW52YXNFbGVtZW50IH0gZnJvbSAnLi9uZy1jYW52YXMtZWxlbWVudCc7XG5pbXBvcnQgeyBOZ1pvbmUsIFJlbmRlcmVyU3R5bGVGbGFnczIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZnVuY3Rpb24gZ2V0QXJyYXlEcmF3aW5nQ29tcG9uZW50cyhcbiAgc2V0OiBTZXQ8TmdDYW52YXNFbGVtZW50PlxuKTogTmdDYW52YXNFbGVtZW50W10ge1xuICByZXR1cm4gQXJyYXkuZnJvbShzZXQudmFsdWVzKCkpLmZpbHRlcihcbiAgICAoYzogTmdDYW52YXNFbGVtZW50KSA9PiBjICYmICEhYy5kcmF3XG4gICkgYXMgTmdDYW52YXNFbGVtZW50W107XG59XG5cbmV4cG9ydCBjbGFzcyBOZ0NhbnZhcyB7XG4gIHB1YmxpYyBzdGF0aWMgbm9kZU5hbWUgPSAnY2FudmFzJztcbiAgcHVibGljIHJlYWRvbmx5IGNvbnRleHQ6IENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRDtcbiAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnQ6IEhUTUxDYW52YXNFbGVtZW50O1xuXG4gIHByaXZhdGUgcmVxdWVzdElkOiBudW1iZXI7XG5cbiAgcHVibGljIHNldCBwYXJlbnQoZWxlbWVudCkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKChbZW50cnldKSA9PiB7XG4gICAgICB0aGlzLmVsZW1lbnQud2lkdGggPSBlbnRyeS5jb250ZW50UmVjdC53aWR0aDtcbiAgICAgIHRoaXMuZWxlbWVudC5oZWlnaHQgPSBlbnRyeS5jb250ZW50UmVjdC5oZWlnaHQ7XG4gICAgICB0aGlzLmRyYXdBbGwoZmFsc2UpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICB9XG5cbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOnR5cGVkZWZcbiAgcHVibGljIGdldCBwYXJlbnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3BhcmVudDtcbiAgfVxuXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTp2YXJpYWJsZS1uYW1lXG4gIHByaXZhdGUgX3BhcmVudDogYW55O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY29tcG9uZW50U2V0ID0gbmV3IFNldDxOZ0NhbnZhc0VsZW1lbnQ+KCk7XG4gIHByaXZhdGUgY29tcG9uZW50c0RyYXdpbmdzOiBOZ0NhbnZhc0VsZW1lbnRbXSA9IFtdO1xuXG4gIC8vIEB0cy1pZ25vcmVcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcjogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBuZ1pvbmU6IE5nWm9uZSkge1xuICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuICAgIHRoaXMuZWxlbWVudC5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7XG4gICAgdGhpcy5jb250ZXh0ID0gdGhpcy5lbGVtZW50LmdldENvbnRleHQoJzJkJyk7XG5cbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCh0aW1lKSA9PiB0aGlzLmRyYXcodGltZSkpO1xuICAgIH0pO1xuICB9XG5cbiAgYWRkQ2xhc3MobmFtZSk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgbmFtZSk7XG4gIH1cblxuICBhcHBlbmRDaGlsZChuZXdDaGlsZDogTmdDYW52YXNFbGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRTZXQuYWRkKG5ld0NoaWxkKTtcbiAgICB0aGlzLmNvbXBvbmVudHNEcmF3aW5ncyA9IGdldEFycmF5RHJhd2luZ0NvbXBvbmVudHModGhpcy5jb21wb25lbnRTZXQpO1xuICAgIHRoaXMuZHJhd0FsbCgpO1xuICB9XG5cbiAgcmVtb3ZlQ2hpbGQob2xkQ2hpbGQ6IE5nQ2FudmFzRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50U2V0LmRlbGV0ZShvbGRDaGlsZCk7XG4gICAgdGhpcy5jb21wb25lbnRzRHJhd2luZ3MgPSBnZXRBcnJheURyYXdpbmdDb21wb25lbnRzKHRoaXMuY29tcG9uZW50U2V0KTtcbiAgICB0aGlzLmRyYXdBbGwoKTtcbiAgfVxuXG4gIGluc2VydEJlZm9yZShuZXdDaGlsZDogYW55LCByZWZDaGlsZDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnRTZXQuYWRkKG5ld0NoaWxkKTtcbiAgICB0aGlzLmNvbXBvbmVudHNEcmF3aW5ncyA9IGdldEFycmF5RHJhd2luZ0NvbXBvbmVudHModGhpcy5jb21wb25lbnRTZXQpO1xuICAgIHRoaXMuZHJhd0FsbCgpO1xuICB9XG5cbiAgcmVtb3ZlQXR0cmlidXRlKG5hbWU6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUobmFtZSk7XG4gIH1cblxuICByZW1vdmVDbGFzcyhuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShuYW1lKTtcbiAgfVxuXG4gIHJlbW92ZVN0eWxlKHN0eWxlOiBzdHJpbmcsIGZsYWdzPzogUmVuZGVyZXJTdHlsZUZsYWdzMik6IHZvaWQge1xuICAgIC8vIE5vdCBzdXBwb3J0ZWRcbiAgfVxuXG4gIHNldE5nQXR0cmlidXRlKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZywgbmFtZXNwYWNlPzogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuZWxlbWVudC5zZXRBdHRyaWJ1dGUobmFtZSwgdmFsdWUpO1xuICB9XG5cbiAgc2V0TmdQcm9wZXJ0eShuYW1lOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICAvLyBOb3Qgc3VwcG9ydGVkXG4gIH1cblxuICBzZXRTdHlsZShzdHlsZTogc3RyaW5nLCB2YWx1ZTogYW55LCBmbGFncz86IFJlbmRlcmVyU3R5bGVGbGFnczIpOiB2b2lkIHtcbiAgICAvLyBOb3Qgc3VwcG9ydGVkXG4gIH1cblxuICBzZXRWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgLy8gTm90IHN1cHBvcnRlZFxuICB9XG5cbiAgZHJhd0FsbChjbGVhcj86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICB0aGlzLnJlcXVlc3RJZCAmJiB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5yZXF1ZXN0SWQpO1xuICAgICAgdGhpcy5yZXF1ZXN0SWQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCh0aW1lKSA9PlxuICAgICAgICB0aGlzLmRyYXcodGltZSwgY2xlYXIpXG4gICAgICApO1xuICAgIH0pO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBkcmF3KHRpbWU6IG51bWJlciwgY2xlYXI6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuY29udGV4dDtcbiAgICBpZiAoY2xlYXIpIHtcbiAgICAgIGNvbnRleHQuY2xlYXJSZWN0KDAsIDAsIHRoaXMuZWxlbWVudC53aWR0aCwgdGhpcy5lbGVtZW50LmhlaWdodCk7XG4gICAgfVxuXG4gICAgbGV0IG5lZWREcmF3ID0gZmFsc2U7XG5cbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuY29tcG9uZW50c0RyYXdpbmdzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB0aGlzLmNvbXBvbmVudHNEcmF3aW5nc1tpXS5kcmF3KGNvbnRleHQsIHRpbWUpO1xuICAgICAgbmVlZERyYXcgPSBuZWVkRHJhdyB8fCB0aGlzLmNvbXBvbmVudHNEcmF3aW5nc1tpXS5uZWVkRHJhdztcbiAgICB9XG5cbiAgICBpZiAobmVlZERyYXcpIHtcbiAgICAgIHRoaXMucmVxdWVzdElkICYmIHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLnJlcXVlc3RJZCk7XG4gICAgICB0aGlzLnJlcXVlc3RJZCA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKHRpbWUpID0+IHRoaXMuZHJhdyh0aW1lKSk7XG4gICAgfVxuICB9XG59XG4iXX0= |
@@ -39,2 +39,3 @@ import { RendererStyleFlags2, ViewEncapsulation, Injectable, NgZone, NgModule, RendererFactory2, APP_ID, NO_ERRORS_SCHEMA } from '@angular/core'; | ||
this.componentsDrawings = getArrayDrawingComponents(this.componentSet); | ||
this.drawAll(); | ||
} | ||
@@ -44,2 +45,3 @@ removeChild(oldChild) { | ||
this.componentsDrawings = getArrayDrawingComponents(this.componentSet); | ||
this.drawAll(); | ||
} | ||
@@ -49,12 +51,25 @@ insertBefore(newChild, refChild) { | ||
this.componentsDrawings = getArrayDrawingComponents(this.componentSet); | ||
this.drawAll(); | ||
} | ||
removeAttribute(name, namespace) { } | ||
removeClass(name) { } | ||
removeStyle(style, flags) { } | ||
removeAttribute(name, namespace) { | ||
this.element.removeAttribute(name); | ||
} | ||
removeClass(name) { | ||
this.element.classList.remove(name); | ||
} | ||
removeStyle(style, flags) { | ||
// Not supported | ||
} | ||
setNgAttribute(name, value, namespace) { | ||
this.element.setAttribute(name, value); | ||
} | ||
setNgProperty(name, value) { } | ||
setStyle(style, value, flags) { } | ||
setValue(value) { } | ||
setNgProperty(name, value) { | ||
// Not supported | ||
} | ||
setStyle(style, value, flags) { | ||
// Not supported | ||
} | ||
setValue(value) { | ||
// Not supported | ||
} | ||
drawAll(clear) { | ||
@@ -61,0 +76,0 @@ this.ngZone.runOutsideAngular(() => { |
{ | ||
"name": "angular-canvas", | ||
"version": "0.0.7", | ||
"version": "0.1.0", | ||
"description": "Angular canvas renderer", | ||
@@ -5,0 +5,0 @@ "repository": { |
111
README.md
# AngularCanvas | ||
Angular canvas renderer. | ||
🎨 Angular canvas renderer with support DefaultDomRenderer. | ||
Features: | ||
- **Custom canvas elements** | ||
- **Support redraw** in one canvas context | ||
- **Support listeners** inputs and outputs | ||
- **Easily migrate** your code on canvas to component approach | ||
- EmulatedEncapsulation by default in canvas component | ||
# Examples | ||
[Demo](https://irustm.github.io/angular-canvas/) | ||
# Getting start | ||
`npm i --save angular-canvas` | ||
Create canvas element: | ||
```ts | ||
import { CanvasElement, NgCanvasElement, NgCanvas } from 'angular-canvas'; | ||
@CanvasElement({ | ||
@@ -15,3 +27,19 @@ selector: 'graph-line' | ||
export class GraphLineElement implements NgCanvasElement { | ||
... | ||
// parent element | ||
public parent: NgCanvas; | ||
// canvas element redraw until all NgCanvasElement needDraw as true | ||
public needDraw: boolean; | ||
setNgProperty(name: string, value: any): void { | ||
this[name] = value; | ||
// redraw all element in one canvas context after set ng property | ||
this.parent.drawAll(); | ||
} | ||
draw(context: CanvasRenderingContext2D, time: number): void { | ||
context.strokeStyle = 'red'; | ||
... | ||
} | ||
} | ||
@@ -21,3 +49,9 @@ ``` | ||
Register this element in module | ||
```ts | ||
import { CanvasDomModule } from 'angular-canvas'; | ||
... | ||
@NgModule({ | ||
... | ||
imports: [ | ||
@@ -62,1 +96,72 @@ CanvasDomModule.forRoot( | ||
<img src ="https://github.com/irustm/angular-canvas/blob/master/assets/graph-example.png?raw=true"> | ||
Game example: | ||
<img src ="https://github.com/irustm/angular-canvas/blob/master/assets/game-example.png?raw=true"> | ||
# API | ||
`NgCanvas` - main component with selector `canvas` | ||
```ts | ||
public element: HTMLCanvasElement; | ||
public drawAll(): void; // redraw all register elements in one canvas context | ||
``` | ||
--- | ||
`NgCanvasElement` - canvas element interface for register in module | ||
```ts | ||
style?: CSSStyleDeclaration; | ||
classList?: DOMTokenList; | ||
needDraw?: boolean; // canvas element redraw until all NgCanvasElement needDraw as true | ||
parent: NgCanvas; // canvas parent element | ||
/** | ||
* Method for draw element, *time* - requestAnimationTime | ||
*/ | ||
draw(context: CanvasRenderingContext2D, time?: number): void; | ||
// standart renderer methods | ||
appendChild?(newChild: any): void; | ||
addClass?(name): void; | ||
insertBefore?(newChild: any, refChild: any): void; | ||
setNgAttribute?(name: string, value: string, namespace?: string | null): void; | ||
setAttribute?(name: string, value: string, namespace?: string | null): void; | ||
setNgProperty?(name: string, value: any): void; | ||
setStyle?(style: string, value: any, flags?: RendererStyleFlags2): void; | ||
setValue?(value: any): void; | ||
removeAttribute?(name: string, namespace?: string | null): void; | ||
removeChild?(oldChild: any): void; | ||
removeClass?(name: string): void; | ||
removeStyle?(style: string, flags?: RendererStyleFlags2): void; | ||
setAttributeNS?(namespaceUri: string, name: string, value: string): void; | ||
removeAttributeNS?(namespaceUri: string, name: string): void; | ||
``` | ||
--- | ||
`CanvasComponent` - Decorator, need for use canvas renderer | ||
--- | ||
`CanvasElement` - Decorator, for register canvas elements in storage metadata | ||
support only one parameter: `selector` | ||
--- | ||
`CanvasDomModule.forRoot([])` register elements in AppModule |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
356351
2515
165