UNPKG

@nodata/render

Version:

Allows to dynamically render nodata components

1 lines 2.07 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.DatablockRendererBuilder=void 0;var DatablockRendererPluginCode,operators_1=require("rxjs/operators"),action_1=require("@nodata/action"),error_1=require("@nodata/error"),datablock_1=require("./datablock"),datablock_renderer_plugins_1=require("./datablock-renderer-plugins");!function(e){e[e.WITCHART=1]="WITCHART"}(DatablockRendererPluginCode||(DatablockRendererPluginCode={}));var DatablockRendererBuilder=function(){function e(){this.pluginsMap=new Map,this.fallbackMessage="An unknown plugin was required for this datablock. Falling back on grid rendering.",this.isFallbackEnabled=!0,this.registerRenderingPlugin(DatablockRendererPluginCode.WITCHART,datablock_renderer_plugins_1.WitchartRendererPlugin)}return e.prototype.registerRenderingPlugin=function(e,r){return this.pluginsMap.has(e)&&console.debug("WARNING: Plugin code ".concat(e," was already registered. It will be overriden.")),this.pluginsMap.set(e,r),this},e.prototype.enableFallbackPlugin=function(){return this.isFallbackEnabled=!0,this},e.prototype.disableFallbackPlugin=function(){return this.isFallbackEnabled=!1,this},e.prototype.setFallbackMessage=function(e){return this.fallbackMessage=e,this},e.prototype.createDatablockRenderer=function(e,r,a){var t=this;return(0,action_1.retrieveDatablockView)(r).pipe((0,operators_1.map)((function(e){return[t.instantiateDatablockRenderer(e,a),e]})),(0,operators_1.map)((function(r){var a=r[0],t=r[1];return[a,a.initializeDatablockRenderer(e,t)]})))},e.prototype.instantiateDatablockRenderer=function(e,r){if(!this.pluginsMap.has(e.chartLib)){if(this.isFallbackEnabled){var a=new datablock_renderer_plugins_1.FallbackRendererPlugin(this.fallbackMessage);return new datablock_1.DatablockRenderer(a,r)}throw(0,error_1.createError)("NDR-DBR-BDR-101","Unable to create DatablockRenderer, unknown plugin code ".concat(e.chartLib,"."))}var t=new(this.pluginsMap.get(e.chartLib));return new datablock_1.DatablockRenderer(t,r)},e}();exports.DatablockRendererBuilder=DatablockRendererBuilder;