(window.webpackJsonp=window.webpackJsonp||[]).push([[57],{grBe:function(e,t,n){"use strict";n.r(t),n.d(t,"_frontmatter",(function(){return r})),n.d(t,"default",(function(){return b}));var a=n("k1TG"),i=n("8o2o"),o=(n("q1tI"),n("7ljp")),l=n("hhGP"),r=(n("qKvR"),{});void 0!==r&&r&&r===Object(r)&&Object.isExtensible(r)&&!r.hasOwnProperty("__filemeta")&&Object.defineProperty(r,"__filemeta",{configurable:!0,value:{name:"_frontmatter",filename:"src/pages/docs/installation/building-viz-plugins.mdx"}});var s={_frontmatter:r},p=l.a;function b(e){var t=e.components,n=Object(i.a)(e,["components"]);return Object(o.b)(p,Object(a.a)({},s,n,{components:t,mdxType:"MDXLayout"}),Object(o.b)("p",null,'This is a tutorial to help you build a "Hello World" viz plugin. The intent is to provide a basic\nscaffolding to build any sort of data visualization, using any viz libary you\'d like (e.g. ECharts,\nAntV, HighCharts, VX, and D3.).'),Object(o.b)("p",null,"You can build the Hello World plugin by running a ",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://yeoman.io/"}),"Yeoman")," generator, which\ntakes a few simple options, and provides this plugin scaffolding."),Object(o.b)("h2",{id:"getting-set-up"},"Getting Set Up"),Object(o.b)("h3",{id:"install-yeoman-and-the-superset-package-generator"},"Install Yeoman and the Superset Package Generator"),Object(o.b)("p",null,"This Hello World plugin we'll be building is generated automatically with\n",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://yeoman.io/"}),"Yeoman"),". Let's first get that installed by opening up a terminal and installing\nboth the ",Object(o.b)("inlineCode",{parentName:"p"},"yo")," module and the\n",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/apache-superset/superset-ui/tree/master/packages/generator-superset"}),"superset package generator"),"\n(",Object(o.b)("inlineCode",{parentName:"p"},"v0.14.7"),") to create the new plugin."),Object(o.b)("pre",null,Object(o.b)("code",Object(a.a)({parentName:"pre"},{}),"npm install -g yo @superset-ui/generator-superset\n")),Object(o.b)("h3",{id:"install-superset"},"Install Superset"),Object(o.b)("p",null,"There are\n",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/apache/superset#installation-and-configuration"}),"complete instructions"),"\navailable on the ",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/apache/superset"}),"Superset Github repository"),". In a\nnutshell, the easiest way is to:"),Object(o.b)("ol",null,Object(o.b)("li",{parentName:"ol"},"Have a Mac or linux-based machine"),Object(o.b)("li",{parentName:"ol"},"Install ",Object(o.b)("a",Object(a.a)({parentName:"li"},{href:"https://docs.docker.com/get-docker/"}),"Docker")),Object(o.b)("li",{parentName:"ol"},"Clone ",Object(o.b)("a",Object(a.a)({parentName:"li"},{href:"https://github.com/apache/superset"}),"the repository")," to your computer"),Object(o.b)("li",{parentName:"ol"},"Use your terminal to ",Object(o.b)("inlineCode",{parentName:"li"},"cd")," into the ",Object(o.b)("inlineCode",{parentName:"li"},"superset")," directory"),Object(o.b)("li",{parentName:"ol"},"Run ",Object(o.b)("inlineCode",{parentName:"li"},"docker-compose up")),Object(o.b)("li",{parentName:"ol"},"Open ",Object(o.b)("em",{parentName:"li"},"another")," terminal, and ",Object(o.b)("inlineCode",{parentName:"li"},"cd")," into ",Object(o.b)("inlineCode",{parentName:"li"},"superset/superset-frontend")),Object(o.b)("li",{parentName:"ol"},"Run ",Object(o.b)("inlineCode",{parentName:"li"},"npm install")," to load up all the npm packages."),Object(o.b)("li",{parentName:"ol"},"Run ",Object(o.b)("inlineCode",{parentName:"li"},"npm run dev-server")," to spin up the Webpack hot-reloading server"),Object(o.b)("li",{parentName:"ol"},"Wait for it to build, and then open your browser to ",Object(o.b)("inlineCode",{parentName:"li"},"http://localhost:9000")," and log in with\n",Object(o.b)("inlineCode",{parentName:"li"},"admin"),"/",Object(o.b)("inlineCode",{parentName:"li"},"admin"),". You're off to the races! (Note: we'll be restarting this later)")),Object(o.b)("h3",{id:"install-superset-ui"},"Install Superset-UI"),Object(o.b)("ol",null,Object(o.b)("li",{parentName:"ol"},"Clone ",Object(o.b)("a",Object(a.a)({parentName:"li"},{href:"https://github.com/apache-superset/superset-ui"}),"the ",Object(o.b)("inlineCode",{parentName:"a"},"superset-ui")," repository")," to your\ncomputer. It can sit in the same parent directory as your ",Object(o.b)("inlineCode",{parentName:"li"},"superset")," repo"),Object(o.b)("li",{parentName:"ol"},"Use your terminal to ",Object(o.b)("inlineCode",{parentName:"li"},"cd")," into ",Object(o.b)("inlineCode",{parentName:"li"},"superset-ui")),Object(o.b)("li",{parentName:"ol"},"Run ",Object(o.b)("inlineCode",{parentName:"li"},"yarn install")," and wait for all the packages to get installed")),Object(o.b)("h2",{id:"build-your-hello-world"},'Build Your "Hello, World"'),Object(o.b)("h3",{id:"write-generate-some-code"},Object(o.b)("del",{parentName:"h3"},"Write")," ",Object(o.b)("em",{parentName:"h3"},"generate")," some code!"),Object(o.b)("ol",null,Object(o.b)("li",{parentName:"ol"},"Using your terminal, ",Object(o.b)("inlineCode",{parentName:"li"},"cd")," into your local ",Object(o.b)("inlineCode",{parentName:"li"},"superset-ui")," repo folder and then into the ",Object(o.b)("inlineCode",{parentName:"li"},"plugins"),"\nsubdirectory."),Object(o.b)("li",{parentName:"ol"},"Make a new directory for your plugin, i.e. ",Object(o.b)("inlineCode",{parentName:"li"},"mkdir plugin-chart-hello-world"),". ",Object(o.b)("strong",{parentName:"li"},"Note:")," we\n",Object(o.b)("em",{parentName:"li"},"highly")," recommend following the ",Object(o.b)("inlineCode",{parentName:"li"},"plugin-chart-your-plugin-name")," pattern."),Object(o.b)("li",{parentName:"ol"},"Now ",Object(o.b)("inlineCode",{parentName:"li"},"cd plugin-chart-hello-world")),Object(o.b)("li",{parentName:"ol"},"Finally, run ",Object(o.b)("inlineCode",{parentName:"li"},"yo @superset-ui/superset")),Object(o.b)("li",{parentName:"ol"},"Select ",Object(o.b)("inlineCode",{parentName:"li"},"Create superset-ui chart plugin package")," on the following screen:")),Object(o.b)("img",{src:"/images/plugin-1-yeoman-select.png"})," ",Object(o.b)("ol",{start:6},Object(o.b)("li",{parentName:"ol"},Object(o.b)("p",{parentName:"li"},"Give it a name (in our case, go with the default, based on the folder name):"),Object(o.b)("img",{src:"/images/plugin-2-yeoman-package-name.png"})),Object(o.b)("li",{parentName:"ol"},Object(o.b)("p",{parentName:"li"},"Give it a description (again, default is fine!)"),Object(o.b)("img",{src:"/images/plugin-3-yeoman-description.png"})," "),Object(o.b)("li",{parentName:"ol"},Object(o.b)("p",{parentName:"li"},"Choose which type of React component you want to make (Class, or Function component)."),Object(o.b)("img",{src:"/images/plugin-4-yeoman-component-type.png"})," "),Object(o.b)("li",{parentName:"ol"},Object(o.b)("p",{parentName:"li"},"Select whether you'd like your visualization to be timeseries-based or not"),Object(o.b)("img",{src:"/images/plugin-5-yeoman-timeseries.png"})," "),Object(o.b)("li",{parentName:"ol"},Object(o.b)("p",{parentName:"li"},"Select whether or not you want to include badges at the top of your README file (really only\nneeded if you intend to contribute your plugin to the ",Object(o.b)("inlineCode",{parentName:"p"},"superset-ui")," repo)."),Object(o.b)("img",{src:"/images/plugin-6-yeoman-badges.png"})," "),Object(o.b)("li",{parentName:"ol"},Object(o.b)("p",{parentName:"li"},"Admire all the files the generator has created for you. Note that EACH of these is chock full of\ncomments about what they're for, and how best to use them."),Object(o.b)("img",{src:"/images/plugin-7-yeoman-files.png"})," ")),Object(o.b)("h3",{id:"add-your-plugin-to-superset-with-npm-link"},"Add your Plugin to Superset (with NPM Link)"),Object(o.b)("p",null,"Now, we want to see this thing actually RUN! To do that, we'll add your package to Superset and\nembrace the magic power of ",Object(o.b)("inlineCode",{parentName:"p"},"npm link")," to see it in-situ, without needing to ",Object(o.b)("strong",{parentName:"p"},"build")," the plugin, or\nopen any PRs on Github."),Object(o.b)("ol",null,Object(o.b)("li",{parentName:"ol"},Object(o.b)("p",{parentName:"li"},"Add your package to the ",Object(o.b)("inlineCode",{parentName:"p"},"package.json")," file in ",Object(o.b)("inlineCode",{parentName:"p"},"superset/superset-frontend"),"."),Object(o.b)("img",{src:"/images/plugin-8-package-json.png"})," ")),Object(o.b)("p",null,"Note: Do ",Object(o.b)("em",{parentName:"p"},"not")," run ",Object(o.b)("inlineCode",{parentName:"p"},"npm install"),"... explanation below."),Object(o.b)("ol",{start:2},Object(o.b)("li",{parentName:"ol"},Object(o.b)("p",{parentName:"li"},"Add your plugin to the ",Object(o.b)("inlineCode",{parentName:"p"},"MainPreset.js")," file (located in\n",Object(o.b)("inlineCode",{parentName:"p"},"superset/superset-frontend/src/visualizations/presets/MainPreset.js"),") in two places,\nalongside the other plugins."),Object(o.b)("img",{src:"/images/plugin-9-mainpreset-import.png"})," ",Object(o.b)("p",{parentName:"li"},"{' '}"),Object(o.b)("img",{src:"/images/plugin-9-mainpreset-register.png"})),Object(o.b)("li",{parentName:"ol"},Object(o.b)("p",{parentName:"li"},"Open a terminal window to ",Object(o.b)("inlineCode",{parentName:"p"},"superset/superset-frontend"),". If you did the Install Superset\nsteps above, you may still have webpack running there, and you can just stop it with ",Object(o.b)("inlineCode",{parentName:"p"},"ctrol-c"),".\nIf not, just open a new window and or ",Object(o.b)("inlineCode",{parentName:"p"},"cd")," to that directory path."))),Object(o.b)("p",null,"4) Use ",Object(o.b)("inlineCode",{parentName:"p"},"npm link")," to symlink plugin, using a relative path to ",Object(o.b)("inlineCode",{parentName:"p"},"superset-ui")," and your plugin folder,\ne.g. ",Object(o.b)("inlineCode",{parentName:"p"},"npm link ../../superset-ui/plugins/plugin-chart-hello-world"),"."),Object(o.b)("ol",{start:5},Object(o.b)("li",{parentName:"ol"},"Restart your webpack dev server with ",Object(o.b)("inlineCode",{parentName:"li"},"npm run dev-server"),". You'll know it worked if you see a\nline stating\n",Object(o.b)("inlineCode",{parentName:"li"},"[Superset Plugin] Use symlink source for @superset-ui/plugin-chart-hello-world @ ^0.0.0"),".")),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"NOTE:")," If/when you do an ",Object(o.b)("inlineCode",{parentName:"p"},"npm install")," that erases the symlink generated by ",Object(o.b)("inlineCode",{parentName:"p"},"npm link"),", so you'll\nhave to redo those steps."),Object(o.b)("p",null,Object(o.b)("strong",{parentName:"p"},"NOTE:")," Dynamic import is a work in progress. We hope you won't even need to DO this soon. We'll\nbe blogging again when that day comes, we assure you. In short, we have a goal to make editing\n",Object(o.b)("inlineCode",{parentName:"p"},"package.json")," and ",Object(o.b)("inlineCode",{parentName:"p"},"MainPreset.js")," unnecessary, so all the code changes are made in ONE repo."),Object(o.b)("h3",{id:"see-it-with-your-own-eyes"},"See it with your own eyes!"),Object(o.b)("p",null,"You should now be able to go to the Explore view in your local Superset and add a new chart! You'll\nsee your new plugin when you go to select your viz type."),Object(o.b)("img",{src:"/images/plugin-10-hello-thumbnail.png"})," ",Object(o.b)("p",null,"Now you can load up some data, and you'll see it appear in the plugin!"),Object(o.b)("img",{src:"/images/plugin-11-explore-view.png"})," ",Object(o.b)("p",null,"The plugin also outputs three things to your browser's console:"),Object(o.b)("ul",null,Object(o.b)("li",{parentName:"ul"},Object(o.b)("inlineCode",{parentName:"li"},"formData"),", a.k.a. everything sent into your viz from the controls"),Object(o.b)("li",{parentName:"ul"},Object(o.b)("inlineCode",{parentName:"li"},"props"),", as output from the ",Object(o.b)("inlineCode",{parentName:"li"},"transformProps")," file for your plugin's consumption"),Object(o.b)("li",{parentName:"ul"},"The actual HTML element, which your plugin has hooks into for any necessary DOM maniupluation")),Object(o.b)("img",{src:"/images/plugin-12-console-logs.png"})," ",Object(o.b)("h2",{id:"make-it-your-own"},"Make it Your Own"),Object(o.b)("p",null,"Now you're free to run wild with your new plugin! Here are a few places to start digging in:"),Object(o.b)("h3",{id:"read-the-comments-and-docs"},"Read the comments and docs"),Object(o.b)("p",null,"Take a look through the full file tree of the plugin. The Readme gives details for the job of each\nfile. EACH of these files has been annotated with extensive comments of what the file is for, and\nthe basics of what you can do with it."),Object(o.b)("h3",{id:"take-control"},"Take control!"),Object(o.b)("p",null,"The plugin includes a couple of example controls, but you can certainly continue to add as many as\nyou need to. The comments/documentation within the controls file is a start, but we recommend\nlooking at existing ",Object(o.b)("inlineCode",{parentName:"p"},"superset-ui")," plugins for more examples of how you can implement controls to\nenhance your queries, work with your data, and change your visualization's display."),Object(o.b)("h3",{id:"build-the-perfect-query"},"Build the perfect query"),Object(o.b)("p",null,"The ",Object(o.b)("inlineCode",{parentName:"p"},"buildQuery"),' file where your plugin actually fetches data from the Superset backend. This file\nbuilds he query "context" for your plugin. For a simple plugin, this file needn\'t do much. There are\na couple changes that need to be made for a timeseries plugin, thus the option in the Yeoman\ngenerator.'),Object(o.b)("p",null,"This file also allows you to add various post-processing operations, to have the Superset backend\nprocess your data in various ways (pivoting, etc), but that's a whole other topic we'll cover\nseparately in the near future."),Object(o.b)("h3",{id:"style-with-emotion"},"Style with Emotion"),Object(o.b)("p",null,"Each of these methods lets you add custom CSS styles using Emotion 👩‍🎤(a CSS-in-JS approach) which\nhas access to Superset's burgeoning set of theme variables, and also automatically scopes the styles\nto your plugin, so they don't \"leak\" to other areas of Superset."),Object(o.b)("p",null,"In the Hello World plugin, we've included a few example Theme variables (",Object(o.b)("inlineCode",{parentName:"p"},"colors"),", ",Object(o.b)("inlineCode",{parentName:"p"},"gridUnit"),"s, and\ntypographic weights/sizes). We'll be continuing to add more variables to this theme file as we\ncontinue to push Superset (and the viz plugins) toward the standards of the Superset redesign (see\n",Object(o.b)("a",Object(a.a)({parentName:"p"},{href:"https://github.com/apache/superset/issues/8976"}),"SIP-34"),")"),Object(o.b)("h3",{id:"give-it-a-thumbnail"},"Give it a thumbnail"),Object(o.b)("p",null,"Because come on... that's the fun part, right?"),Object(o.b)("h3",{id:"build-it"},"Build it!"),Object(o.b)("p",null,"In this tutorial, you built your plugin in the ",Object(o.b)("inlineCode",{parentName:"p"},"superset-ui")," repo. This means you can use the\nbuilt-in build scripts that the repo provides. With your terminal of choice, simply ",Object(o.b)("inlineCode",{parentName:"p"},"cd")," into the\nroot directory of ",Object(o.b)("inlineCode",{parentName:"p"},"supeset-ui")," and run ",Object(o.b)("inlineCode",{parentName:"p"},"yarn build"),". This will kick off a build of ALL the Superset\nplugins and packages, including yours."),Object(o.b)("h3",{id:"test-early-test-often"},"Test early, test often!"),Object(o.b)("p",null,"The Hello World plugin includes some basic Jest tests to act as a starting point to add unit tests\nto your plugin. These do a quick sanity check that the plugin actually loads correctly, and then run\nthrough the basics of making sure that your controls are properly respected by modifying the\nresulting data and/or props of the plugin. Running ",Object(o.b)("inlineCode",{parentName:"p"},"yarn test")," from the root directory of\n",Object(o.b)("inlineCode",{parentName:"p"},"superset-ui")," will run all the tests for plugins/packages, including your Hello World."),Object(o.b)("h3",{id:"deploying-custom-visualization-to-production"},"Deploying Custom Visualization to Production"),Object(o.b)("p",null,"To deploy plugins to a production environment, you must have additional code\ninside Superset that includes the npm packages of your plugins so they can be installed in the frontend."),Object(o.b)("p",null,"One option is to build your Dockerfile so it contains your custom visualization packages."))}void 0!==b&&b&&b===Object(b)&&Object.isExtensible(b)&&!b.hasOwnProperty("__filemeta")&&Object.defineProperty(b,"__filemeta",{configurable:!0,value:{name:"MDXContent",filename:"src/pages/docs/installation/building-viz-plugins.mdx"}}),b.isMDXComponent=!0}}]);
//# sourceMappingURL=component---src-pages-docs-installation-building-viz-plugins-mdx-abe105ff72a22a60338d.js.map