{"version":3,"sources":["webpack:///./src/resources/data.js","webpack:///./src/pages/community.tsx"],"names":["pmc","name","github","image","Databases","title","href","imgName","links","Meta","communityContainer","getInvolvedContainer","Community","pmcList","map","e","indexOf","target","rel","key","className","hoverable","style","width","size","cover","alt","src","paddingRight","paddingTop","css","bordered","dataSource","renderItem","link","post","Item"],"mappings":"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","file":"component---src-pages-community-tsx-2f781078bc24ffece269.js","sourcesContent":["/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nexport const pmc = [\n  {\n    name: ' Aaron Suddjian',\n    github: 'https://github.com/suddjian',\n    image: 'https://github.com/suddjian.png',\n  },\n  {\n    name: 'Beto Dealmeida',\n    github: 'https://github.com/betodealmeida',\n    image: 'https://github.com/betodealmeida.png',\n  },\n  {\n    name: 'Bogdan Kyryliuk',\n    github: 'https://github.com/bkyryliuk',\n    image: 'https://github.com/bkyryliuk.png',\n  },\n  {\n    name: 'Chris Williams',\n    github: 'https://github.com/williaster',\n    image: 'https://github.com/williaster.png',\n  },\n  {\n    name: 'Craig Rueda',\n    github: 'https://github.com/craig-rueda',\n    image: 'https://github.com/craig-rueda.png',\n  },\n  {\n    name: 'Daniel Gaspar',\n    github: 'https://github.com/dpgaspar',\n    image: 'https://github.com/dpgaspar.png',\n  },\n  {\n    name: 'Erik Ritker',\n    github: 'https://github.com/etr2460',\n    image: 'https://github.com/etr2460.png',\n  },\n  {\n    name: 'Evan Rusackas',\n    github: 'https://github.com/rusackas',\n    image: 'https://github.com/rusackas.png',\n  },\n\n  {\n    name: 'Grace Guo',\n    github: 'https://github.com/graceguo-supercat',\n    image: 'https://github.com/graceguo-supercat.png',\n  },\n\n  {\n    name: 'Jeff Feng',\n    github: 'https://github.com/jfeng15',\n    image: 'https://github.com/jfeng15.png',\n  },\n\n  {\n    name: 'Jesse Yang',\n    github: 'https://github.com/ktmud',\n    image: 'https://github.com/ktmud.png',\n  },\n\n  {\n    name: 'John Bodley',\n    github: 'https://github.com/john-bodley',\n    image: 'https://github.com/john-bodley.png',\n  },\n\n  {\n    name: 'Krist Wongsuphasawat',\n    github: 'https://github.com/kristw',\n    image: 'https://github.com/kristw.png',\n  },\n  {\n    name: 'Maxime Beauchemin',\n    github: 'https://github.com/mistercrunch',\n    image: 'https://github.com/mistercrunch.png',\n  },\n\n  {\n    name: 'Michelle Thomas',\n    github: 'https://github.com/michellethomas',\n    image: 'https://github.com/michellethomas.png',\n  },\n\n  {\n    name: 'Nishant Bangarwa',\n    github: 'https://github.com/nishantmonu51',\n    image: 'https://github.com/nishantmonu51.png',\n  },\n\n  {\n    name: 'Tai Dupree',\n    github: 'https://github.com/nytai',\n    image: 'https://github.com/nytai.png',\n  },\n\n  {\n    name: 'Ville Brofeldt',\n    github: 'https://github.com/villebro',\n    image: 'https://github.com/villebro.png',\n  },\n  {\n    name: 'Will Barrett',\n    github: 'https://github.com/willbarrett',\n    image: 'https://github.com/willbarrett.png',\n  },\n];\n\nexport const Databases = [\n  {\n    title: 'Amazon Redshfit',\n    href: 'https://aws.amazon.com/redshift/',\n    imgName: 'aws-redshift.png',\n  },\n  {\n    title: 'Apache Druid',\n    href: 'http://druid.io/',\n    imgName: 'druid.png',\n  },\n  {\n    title: 'Apache Kylin',\n    href: 'http://kylin.apache.org/',\n    imgName: 'apache-kylin.png',\n  },\n  {\n    title: 'BigQuery',\n    href: 'https://cloud.google.com/bigquery/',\n    imgName: 'googleBQ.png',\n  },\n  {\n    title: 'ClickHouse',\n    href: 'https://clickhouse.tech/',\n    imgName: 'clickhouse.png',\n  },\n  {\n    title: 'Exasol',\n    href: 'https://www.exasol.com/en/',\n    imgName: 'exasol.png',\n  },\n  {\n    title: 'FireBirdSql',\n    href: 'https://firebirdsql.org/',\n    imgName: 'firebird.png',\n  },\n  {\n    title: 'Green Plum',\n    href: 'https://greenplum.org/',\n    imgName: 'greenplum.png',\n  },\n  {\n    title: 'IBM Db2',\n    href: 'https://www.ibm.com/analytics/db2',\n    imgName: 'ibmdb2.png',\n  },\n  {\n    title: 'MySQL',\n    href: 'https://www.mysql.com/',\n    imgName: 'mysql.png',\n  },\n  {\n    title: 'Microsoft SqlServer',\n    href: 'https://www.microsoft.com/en-us/sql-server',\n    imgName: 'msql.png',\n  },\n  {\n    title: 'MonetDB',\n    href: 'https://www.monetdb.org/',\n    imgName: 'monet.png',\n  },\n  {\n    title: 'Oracle',\n    href: 'https://www.oracle.com/database/',\n    imgName: 'oraclelogo.png',\n  },\n  {\n    title: 'PostgresSQL',\n    href: 'https://www.postgresql.org/',\n    imgName: 'postsql.png',\n  },\n  {\n    title: 'Presto',\n    href: 'https://prestodb.io/',\n    imgName: 'presto-og.png',\n  },\n  {\n    title: 'Snowflake',\n    href: 'https://www.snowflake.com/',\n    imgName: 'snowflake.png',\n  },\n  {\n    title: 'SQLite',\n    href: 'https://www.sqlite.org/index.html',\n    imgName: 'sqllite.png',\n  },\n  {\n    title: 'Vertica',\n    href: 'https://www.vertica.com/',\n    imgName: 'vertica.png',\n  },\n];\n","/**\n * Licensed to the Apache Software Foundation (ASF) under one\n * or more contributor license agreements.  See the NOTICE file\n * distributed with this work for additional information\n * regarding copyright ownership.  The ASF licenses this file\n * to you under the Apache License, Version 2.0 (the\n * \"License\"); you may not use this file except in compliance\n * with the License.  You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing,\n * software distributed under the License is distributed on an\n * \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n * KIND, either express or implied.  See the License for the\n * specific language governing permissions and limitations\n * under the License.\n */\nimport React from 'react';\nimport { css } from '@emotion/core';\nimport { Card, List } from 'antd';\nimport { GithubOutlined } from '@ant-design/icons';\nimport SEO from '../components/seo';\nimport Layout from '../components/layout';\nimport { pmc } from '../resources/data';\n\nconst { Meta } = Card;\n\nconst links = [\n  [\n    'https://apache-superset.slack.com/join/shared_invite/zt-g8lpruog-HeqpgYrwdfrD5OYhlU7hPQ#/',\n    'Slack',\n    'interact with other Superset users and community members',\n  ],\n  [\n    'https://github.com/apache/incubator-superset',\n    'GitHub',\n    'create tickets to report issues, report bugs, and suggest new features',\n  ],\n  [\n    'https://lists.apache.org/list.html?dev@superset.apache.org',\n    'dev@ Mailing List',\n    'participate in conversations with committers and contributors',\n  ],\n  [\n    'https://stackoverflow.com/questions/tagged/superset+apache-superset',\n    'Stack Overflow',\n    'our growing knowledge base',\n  ],\n  [\n    'https://www.meetup.com/Global-Apache-Superset-Community-Meetup/',\n    'Superset Meetup Group',\n    'join our monthly virtual meetups and register for any upcoming events',\n  ],\n  [\n    'https://github.com/apache/incubator-superset/blob/master/INTHEWILD.md',\n    'Organizations',\n    'a list of some of the organizations using Superset in production',\n  ],\n  [\n    'https://github.com/apache-superset/awesome-apache-superset',\n    'Contributors Guide',\n    'Interested in contributing? Learn how to contribute and best practices',\n  ],\n];\n\nconst communityContainer = css`\n  display: flex;\n  flex-wrap: wrap;\n  justify-content: space-around;\n  margin: 0 auto;\n  overflow: auto;\n  .communityCard {\n    font-size: 12px;\n    overflow: hidden;\n    margin: 10px 10px;\n    .ant-card-meta-title {\n      text-overflow: clip;\n      white-space: normal;\n    }\n    .ant-card-body {\n      padding: 8px;\n      display:inline-block;\n      white-space: nowrap;\n    }\n  }\n`;\n\nconst getInvolvedContainer = css`\n  margin-bottom: 25px;\n`;\n\nconst Community = () => {\n  const pmcList = pmc.map((e) => {\n    const name = e.name.indexOf(' ');\n    return (\n      <a href={e.github} target=\"_blank\" rel=\"noreferrer\" key={name}>\n        <Card\n          className=\"communityCard\"\n          hoverable\n          style={{ width: '150px' }}\n          size=\"small\"\n          cover={<img alt=\"example\" src={e.image} />}\n        >\n          <GithubOutlined style={{ paddingRight: 3, paddingTop: 3}} />\n          {e.name}\n        </Card>\n      </a>\n    );\n  });\n  return (\n    <Layout>\n      <div className=\"contentPage\">\n        <SEO title=\"Community\" />\n        <section>\n          <h1 className=\"title\">Community</h1>\n          Get involved in our welcoming, fast growing community!\n        </section>\n        <section className=\"joinCommunity\">\n          <div css={getInvolvedContainer}>\n            <h2>Get involved!</h2>\n            <List\n              size=\"small\"\n              bordered\n              dataSource={links}\n              renderItem={([href, link, post]) => (\n                <List.Item>\n                  <a href={href}>{link}</a> - {post}\n                </List.Item>\n              )}\n            />\n          </div>\n        </section>\n        <section className=\"ppmc\">\n          <h2>Apache Committers</h2>\n          <div css={communityContainer}>{pmcList}</div>\n        </section>\n      </div>\n    </Layout>\n  );\n};\n\nexport default Community;\n"],"sourceRoot":""}