{"version":3,"sources":["webpack:///./src/pages/docs/Miscellaneous/index.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","parentName","isMDXComponent"],"mappings":"wPAQaA,G,UAAe,S,wNAC5B,IAAMC,EAAc,CAClBD,gBAEIE,EAAYC,IACH,SAASC,EAAT,GAGZ,IAFDC,EAEC,EAFDA,WACGC,EACF,8BACD,OAAO,YAACJ,EAAD,eAAeD,EAAiBK,EAAhC,CAAuCD,WAAYA,EAAYE,QAAQ,cAG5E,iBAAQ,CACN,GAAM,iCADR,iCAGA,iQAGF,6BAAGC,WAAW,KAAQ,CAChB,KAAQ,6CADd,cAHE,+KAQA,iBAAQ,CACN,GAAM,iBADR,iBAGA,gHACA,sBACE,kBAAIA,WAAW,MAAf,WACA,kBAAIA,WAAW,MAAf,UACA,kBAAIA,WAAW,MAAf,YACA,kBAAIA,WAAW,MAAf,UACA,kBAAIA,WAAW,MAAf,SACA,kBAAIA,WAAW,MAAf,SACA,kBAAIA,WAAW,MAAf,UACA,kBAAIA,WAAW,MAAf,WACA,kBAAIA,WAAW,MAAf,SACA,kBAAIA,WAAW,MAAf,QACA,kBAAIA,WAAW,MAAf,SACA,kBAAIA,WAAW,MAAf,SACA,kBAAIA,WAAW,MAAf,SACA,kBAAIA,WAAW,MAAf,iBACA,kBAAIA,WAAW,MAAf,WACA,kBAAIA,WAAW,MAAf,WACA,kBAAIA,WAAW,MAAf,eACA,kBAAIA,WAAW,MAAf,YACA,kBAAIA,WAAW,MAAf,UACA,kBAAIA,WAAW,MAAf,aACA,kBAAIA,WAAW,MAAf,SACA,kBAAIA,WAAW,MAAf,eACA,kBAAIA,WAAW,MAAf,SACA,kBAAIA,WAAW,MAAf,YACA,kBAAIA,WAAW,MAAf,cACA,kBAAIA,WAAW,MAAf,MACA,kBAAIA,WAAW,MAAf,WACA,kBAAIA,WAAW,MAAf,WACA,kBAAIA,WAAW,MAAf,OACA,kBAAIA,WAAW,MAAf,WAEF,iBAAQ,CACN,GAAM,wBADR,wBAGA,uFACF,6BAAGA,WAAW,KAAQ,CAChB,KAAQ,uGADd,gDADE,KAIA,sBACE,kBAAIA,WAAW,MAAf,uEAA4F,6BAAGA,WAAW,MAAS,CAC/G,KAAQ,yJADgF,yBAA5F,KAGA,kBAAIA,WAAW,MAAf,8BAAmD,6BAAGA,WAAW,MAAS,CACtE,KAAQ,wHADuC,oDAAnD,KAGA,kBAAIA,WAAW,MAAf,kDAAuE,0BAAYA,WAAW,MAAvB,gDAAvE,mEAEA,kBAAIA,WAAW,MAAf,8BAAmD,0BAAYA,WAAW,MAAvB,kCAAnD,kD,sNAMNJ,EAAWK,gBAAiB","file":"component---src-pages-docs-miscellaneous-index-mdx-3dd21a15159d57fefb78.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\n\nimport DefaultLayout from \"/home/runner/work/superset/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n\n\n    <h2 {...{\n      \"id\": \"the-country-map-visualization\"\n    }}>{`The Country Map Visualization`}</h2>\n    <p>{`The Country Map visualization allows you to plot lightweight choropleth maps of\nyour countries by province, states, or other subdivision types. It does not rely\non any third-party map services but would require you to provide the\n`}<a parentName=\"p\" {...{\n        \"href\": \"https://en.wikipedia.org/wiki/ISO_3166-2\"\n      }}>{`ISO-3166-2`}</a>{` codes of your country's\ntop-level subdivisions. Comparing to a province or state's full names, the ISO\ncode is less ambiguous and is unique to all regions in the world.`}</p>\n    <h2 {...{\n      \"id\": \"included-maps\"\n    }}>{`Included Maps`}</h2>\n    <p>{`The Country Maps visualization already ships with the maps for the following countries:`}</p>\n    <ul>\n      <li parentName=\"ul\">{`Belgium`}</li>\n      <li parentName=\"ul\">{`Brazil`}</li>\n      <li parentName=\"ul\">{`Bulgaria`}</li>\n      <li parentName=\"ul\">{`Canada`}</li>\n      <li parentName=\"ul\">{`China`}</li>\n      <li parentName=\"ul\">{`Egypt`}</li>\n      <li parentName=\"ul\">{`France`}</li>\n      <li parentName=\"ul\">{`Germany`}</li>\n      <li parentName=\"ul\">{`India`}</li>\n      <li parentName=\"ul\">{`Iran`}</li>\n      <li parentName=\"ul\">{`Italy`}</li>\n      <li parentName=\"ul\">{`Japan`}</li>\n      <li parentName=\"ul\">{`Korea`}</li>\n      <li parentName=\"ul\">{`Liechtenstein`}</li>\n      <li parentName=\"ul\">{`Morocco`}</li>\n      <li parentName=\"ul\">{`Myanmar`}</li>\n      <li parentName=\"ul\">{`Netherlands`}</li>\n      <li parentName=\"ul\">{`Portugal`}</li>\n      <li parentName=\"ul\">{`Russia`}</li>\n      <li parentName=\"ul\">{`Singapore`}</li>\n      <li parentName=\"ul\">{`Spain`}</li>\n      <li parentName=\"ul\">{`Switzerland`}</li>\n      <li parentName=\"ul\">{`Syria`}</li>\n      <li parentName=\"ul\">{`Thailand`}</li>\n      <li parentName=\"ul\">{`Timorleste`}</li>\n      <li parentName=\"ul\">{`UK`}</li>\n      <li parentName=\"ul\">{`Ukraine`}</li>\n      <li parentName=\"ul\">{`Uruguay`}</li>\n      <li parentName=\"ul\">{`USA`}</li>\n      <li parentName=\"ul\">{`Zambia`}</li>\n    </ul>\n    <h2 {...{\n      \"id\": \"adding-a-new-country\"\n    }}>{`Adding a New Country`}</h2>\n    <p>{`To add a new country to the list, you'd have to edit files in\n`}<a parentName=\"p\" {...{\n        \"href\": \"https://github.com/apache-superset/superset-ui/tree/master/plugins/legacy-plugin-chart-country-map\"\n      }}>{`@superset-ui/legacy-plugin-chart-country-map`}</a>{`.`}</p>\n    <ol>\n      <li parentName=\"ol\">{`Generate a new GeoJSON file for your country following the guide in `}<a parentName=\"li\" {...{\n          \"href\": \"https://github.com/apache-superset/superset-ui/blob/master/plugins/legacy-plugin-chart-country-map/scripts/Country%20Map%20GeoJSON%20Generator.ipynb\"\n        }}>{`this Jupyter notebook`}</a>{`.`}</li>\n      <li parentName=\"ol\">{`Edit the countries list in `}<a parentName=\"li\" {...{\n          \"href\": \"https://github.com/apache-superset/superset-ui/blob/master/plugins/legacy-plugin-chart-country-map/src/countries.js\"\n        }}>{`legacy-plugin-chart-country-map/src/countries.js`}</a>{`.`}</li>\n      <li parentName=\"ol\">{`Ping one of the Superset committers to get the `}<inlineCode parentName=\"li\">{`@superset-ui/legacy-plugin-chart-country-map`}</inlineCode>{` package published, or\npublish it under another name yourself.`}</li>\n      <li parentName=\"ol\">{`Update npm dependencies in `}<inlineCode parentName=\"li\">{`superset-frontend/package.json`}</inlineCode>{` to install the updated plugin package.`}</li>\n    </ol>\n\n    </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}