{"version":3,"file":"js/643-2aaeaab7549c57ca6855.js","mappings":"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","sources":["webpack://pitch/./app/assets/components/ sync ^\\.\\/.*$","webpack://pitch/./app/assets/components/AddToList.jsx","webpack://pitch/./app/assets/components/AttachmentUploadButton.jsx","webpack://pitch/./app/assets/components/AttachmentUploadPreview.jsx","webpack://pitch/./app/assets/components/Bar.jsx","webpack://pitch/./app/assets/components/BarChart.jsx","webpack://pitch/./app/assets/components/ChartEditor.jsx","webpack://pitch/./app/assets/components/CityFilter.jsx","webpack://pitch/./app/assets/components/CitySelector.jsx","webpack://pitch/./app/assets/components/ColumnSorter.jsx","webpack://pitch/./app/assets/components/CompanyJoinModal.jsx","webpack://pitch/./app/assets/components/CopyButton.jsx","webpack://pitch/./app/assets/components/CurrencyInput.jsx","webpack://pitch/./app/assets/components/DateInput.jsx","webpack://pitch/./app/assets/components/DefaultAvatar.jsx","webpack://pitch/./app/assets/components/DropdownButton.jsx","webpack://pitch/./app/assets/components/EmailNotificationToggle.jsx","webpack://pitch/./app/assets/components/EndorsementModal.jsx","webpack://pitch/./app/assets/components/Endorsements.jsx","webpack://pitch/./app/assets/components/FollowButton.jsx","webpack://pitch/./app/assets/components/FollowCardButton.jsx","webpack://pitch/./app/assets/components/FollowingFilterCheckbox.jsx","webpack://pitch/./app/assets/components/FundingToggle.jsx","webpack://pitch/./app/assets/components/Icon.jsx","webpack://pitch/./app/assets/components/ImageUploadPreview.jsx","webpack://pitch/./app/assets/components/LinkAwareTextarea.jsx","webpack://pitch/./app/assets/components/LogoUploadPreview.jsx","webpack://pitch/./app/assets/components/Modal.jsx","webpack://pitch/./app/assets/components/MultiCompanySelector.jsx","webpack://pitch/./app/assets/components/NotificationSettingToggle.jsx","webpack://pitch/./app/assets/components/PermissionsBanner.jsx","webpack://pitch/./app/assets/components/PermissionsToggle.jsx","webpack://pitch/./app/assets/components/PieChart.jsx","webpack://pitch/./app/assets/components/ProductCarousel.jsx","webpack://pitch/./app/assets/components/ProductVideoPlayer.jsx","webpack://pitch/./app/assets/components/ProgressBar.jsx","webpack://pitch/./app/assets/components/PublishedToggleButton.jsx","webpack://pitch/./app/assets/components/ScreenshotsUploadPreview.jsx","webpack://pitch/./app/assets/components/SortOptions.jsx","webpack://pitch/./app/assets/components/TagFilter.jsx","webpack://pitch/./app/assets/components/TagSelector.jsx","webpack://pitch/./app/assets/components/Toast.jsx","webpack://pitch/./app/assets/components/ToggleElement.jsx","webpack://pitch/./app/assets/components/VideoInputPreview.jsx","webpack://pitch/./app/assets/components/VisitTracker.jsx","webpack://pitch/./app/assets/components/VisitorInformationCollector.jsx","webpack://pitch/./app/assets/components/WatchlistTVDisplay.jsx","webpack://pitch/./app/assets/lib/axios.jsx","webpack://pitch/./app/assets/lib/cable.jsx"],"sourcesContent":["var map = {\n\t\"./AddToList\": 2050,\n\t\"./AddToList.jsx\": 2050,\n\t\"./AttachmentUploadButton\": 8678,\n\t\"./AttachmentUploadButton.jsx\": 8678,\n\t\"./AttachmentUploadPreview\": 2308,\n\t\"./AttachmentUploadPreview.jsx\": 2308,\n\t\"./Bar\": 4499,\n\t\"./Bar.jsx\": 4499,\n\t\"./BarChart\": 1927,\n\t\"./BarChart.jsx\": 1927,\n\t\"./ChartEditor\": 3239,\n\t\"./ChartEditor.jsx\": 3239,\n\t\"./CityFilter\": 3525,\n\t\"./CityFilter.jsx\": 3525,\n\t\"./CitySelector\": 8344,\n\t\"./CitySelector.jsx\": 8344,\n\t\"./ColumnSorter\": 5933,\n\t\"./ColumnSorter.jsx\": 5933,\n\t\"./CompanyJoinModal\": 4534,\n\t\"./CompanyJoinModal.jsx\": 4534,\n\t\"./CopyButton\": 7481,\n\t\"./CopyButton.jsx\": 7481,\n\t\"./CurrencyInput\": 7155,\n\t\"./CurrencyInput.jsx\": 7155,\n\t\"./DateInput\": 9392,\n\t\"./DateInput.jsx\": 9392,\n\t\"./DefaultAvatar\": 5456,\n\t\"./DefaultAvatar.jsx\": 5456,\n\t\"./DropdownButton\": 6485,\n\t\"./DropdownButton.jsx\": 6485,\n\t\"./EmailNotificationToggle\": 4669,\n\t\"./EmailNotificationToggle.jsx\": 4669,\n\t\"./EndorsementModal\": 4737,\n\t\"./EndorsementModal.jsx\": 4737,\n\t\"./Endorsements\": 8205,\n\t\"./Endorsements.jsx\": 8205,\n\t\"./FollowButton\": 2749,\n\t\"./FollowButton.jsx\": 2749,\n\t\"./FollowCardButton\": 2487,\n\t\"./FollowCardButton.jsx\": 2487,\n\t\"./FollowingFilterCheckbox\": 2264,\n\t\"./FollowingFilterCheckbox.jsx\": 2264,\n\t\"./FundingToggle\": 195,\n\t\"./FundingToggle.jsx\": 195,\n\t\"./Icon\": 5801,\n\t\"./Icon.jsx\": 5801,\n\t\"./ImageUploadPreview\": 7490,\n\t\"./ImageUploadPreview.jsx\": 7490,\n\t\"./LinkAwareTextarea\": 9916,\n\t\"./LinkAwareTextarea.jsx\": 9916,\n\t\"./LogoUploadPreview\": 34,\n\t\"./LogoUploadPreview.jsx\": 34,\n\t\"./Modal\": 8967,\n\t\"./Modal.jsx\": 8967,\n\t\"./MultiCompanySelector\": 3233,\n\t\"./MultiCompanySelector.jsx\": 3233,\n\t\"./NotificationSettingToggle\": 9971,\n\t\"./NotificationSettingToggle.jsx\": 9971,\n\t\"./PermissionsBanner\": 7854,\n\t\"./PermissionsBanner.jsx\": 7854,\n\t\"./PermissionsToggle\": 5752,\n\t\"./PermissionsToggle.jsx\": 5752,\n\t\"./PieChart\": 7836,\n\t\"./PieChart.jsx\": 7836,\n\t\"./ProductCarousel\": 3727,\n\t\"./ProductCarousel.jsx\": 3727,\n\t\"./ProductVideoPlayer\": 8463,\n\t\"./ProductVideoPlayer.jsx\": 8463,\n\t\"./ProgressBar\": 1680,\n\t\"./ProgressBar.jsx\": 1680,\n\t\"./PublishedToggleButton\": 3030,\n\t\"./PublishedToggleButton.jsx\": 3030,\n\t\"./ScreenshotsUploadPreview\": 5366,\n\t\"./ScreenshotsUploadPreview.jsx\": 5366,\n\t\"./SortOptions\": 6322,\n\t\"./SortOptions.jsx\": 6322,\n\t\"./TagFilter\": 5334,\n\t\"./TagFilter.jsx\": 5334,\n\t\"./TagSelector\": 6283,\n\t\"./TagSelector.jsx\": 6283,\n\t\"./Toast\": 7033,\n\t\"./Toast.jsx\": 7033,\n\t\"./ToggleElement\": 1512,\n\t\"./ToggleElement.jsx\": 1512,\n\t\"./VideoInputPreview\": 8141,\n\t\"./VideoInputPreview.jsx\": 8141,\n\t\"./VisitTracker\": 2729,\n\t\"./VisitTracker.jsx\": 2729,\n\t\"./VisitorInformationCollector\": 4117,\n\t\"./VisitorInformationCollector.jsx\": 4117,\n\t\"./WatchlistTVDisplay\": 9589,\n\t\"./WatchlistTVDisplay.jsx\": 9589\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 7286;","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\nimport Modal from \"./Modal\";\n\nexport default class AddToList extends Component {\n  static propTypes = {\n    watchlistsUrl: PropTypes.string.isRequired,\n    company: PropTypes.shape({\n      id: PropTypes.number.isRequired,\n      name: PropTypes.string.isRequired,\n    }).isRequired,\n    lists: PropTypes.arrayOf(\n      PropTypes.shape({\n        id: PropTypes.number.isRequired,\n        title: PropTypes.string.isRequired,\n      })\n    ),\n  };\n\n  static defaultProps = {\n    watchlistsUrl: \"\",\n    company: {\n      id: 0,\n      name: \"\",\n    },\n    lists: [],\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      visible: false,\n      select: this.props.lists.length > 0,\n      selectedList: \"\",\n    };\n  }\n\n  close = () => {\n    this.setState({ visible: false, select: this.props.lists.length > 0 });\n  };\n\n  open = () => {\n    this.setState({ visible: true });\n  };\n\n  handleListPick = (e) => {\n    if (e.target.value === \"+\") {\n      this.setState({ select: false, selectedList: \"\" });\n    } else {\n      this.setState({ selectedList: e.target.value });\n    }\n  };\n\n  actionUrl() {\n    return this.state.select\n      ? `${this.props.watchlistsUrl}/${this.state.selectedList}/add_company`\n      : this.props.watchlistsUrl;\n  }\n\n  renderListSelect() {\n    return (\n      <>\n        <input type=\"hidden\" value={this.props.company.id} name=\"company_id\" />\n        <select\n          class=\"form-input\"\n          name=\"id\"\n          value={this.state.selectedList}\n          onChange={this.handleListPick}\n        >\n          <option disabled value=\"\">\n            Select a list\n          </option>\n          {this.props.lists.map((l) => (\n            <option value={l.id}>{l.title}</option>\n          ))}\n          <option value=\"+\">New List...</option>\n        </select>\n        <input\n          type=\"submit\"\n          className=\"button button-primary mt-4\"\n          value={`Add ${this.props.company.name} to list`}\n        />\n      </>\n    );\n  }\n\n  renderListCreate() {\n    return (\n      <>\n        <input\n          type=\"hidden\"\n          value={this.props.company.id}\n          name=\"watchlist[company_ids][]\"\n        />\n        <input type=\"hidden\" name=\"redirect_to_company\" value=\"1\" />\n        <input\n          type=\"text\"\n          className=\"form-input\"\n          name=\"watchlist[title]\"\n          placeholder=\"Type a new list name...\"\n        />\n        <input\n          type=\"submit\"\n          className=\"button button-primary mt-4\"\n          value={`Create list and add ${this.props.company.name} to it`}\n        />\n      </>\n    );\n  }\n\n  render() {\n    return (\n      <>\n        <a onClick={this.open} className=\"button\">\n          <Icon name=\"plus-square\" extraClasses=\"mr-1\" /> Add to watchlist\n        </a>\n        {this.state.visible && (\n          <Modal onClose={this.close}>\n            <form action={this.actionUrl()} method=\"POST\">\n              <input\n                type=\"hidden\"\n                name=\"authenticity_token\"\n                value={document\n                  .querySelector(\"meta[name='csrf-token']\")\n                  .getAttribute(\"content\")}\n              />\n              <h1 className=\"section-headline\">\n                Add {this.props.company.name} to a watchlist\n              </h1>\n              <p className=\"text-sm mb-4\">\n                Once added to a watchlist, this company's public profile will be\n                accessible from the list until removed.\n              </p>\n              {this.state.select && this.renderListSelect()}\n              {!this.state.select && this.renderListCreate()}\n            </form>\n          </Modal>\n        )}\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\nimport AttachmentUploadPreview from \"./AttachmentUploadPreview\";\n\nexport default class AttachmentUploadButton extends Component {\n  static propTypes = {\n    preview: PropTypes.string.isRequired,\n    id: PropTypes.string.isRequired,\n    attachments: PropTypes.array,\n    name: PropTypes.string.isRequired,\n    namePurge: PropTypes.string.isRequired,\n  }\n\n  static defaultProps = {\n\n  }\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      uploadedAttachments: this.props.attachments.map((a) => ({\n        id: a.id,\n        image: a.type && a.type.startsWith(\"image/\"),\n        src: a.src,\n        type: a.type,\n        name: a.name,\n      })),\n      removedAttachments: [],\n      attachments: [],\n    };\n  }\n\n  render() {\n    return (\n      <>\n        <div className=\"button relative\">\n          <input\n            multiple={true}\n            type=\"file\"\n            onChange={this.handleChange}\n            name={this.props.name}\n            id={this.props.id}\n            className=\"opacity-0 z-20 inset-0 h-full absolute w-full\"\n          />\n          {this.state.removedAttachments.map((attachment) => (\n            <input type=\"hidden\" name={this.props.namePurge} value={attachment.id} />\n          ))}\n          <Icon name=\"paperclip\" /> Attach a file\n        </div>\n        {(this.state.attachments.length > 0 || this.state.uploadedAttachments.length > 0) && (\n          <AttachmentUploadPreview\n            id={this.props.preview}\n            uploadedAttachments={this.state.uploadedAttachments}\n            attachments={this.state.attachments}\n            trash={this.trash}\n          />\n        )}\n      </>\n    );\n  }\n\n  handleChange = (e) => {\n    const input = e.target;\n    if (input.files && input.files.length > 0) {\n      Promise.all(\n        [].map.call(\n          input.files,\n          (f) =>\n            new Promise((resolve, reject) => {\n              if (f.type && f.type.startsWith(\"image/\")) {\n                const reader = new FileReader();\n                reader.onload = (e) => {\n                  resolve({ image: true, src: e.target.result });\n                };\n                reader.readAsDataURL(f);\n              } else {\n                resolve({ image: false, name: f.name, type: f.type || \"unknown\", size: f.size });\n              }\n            })\n        )\n      ).then((values) => {\n        this.setState({ attachments: values });\n      });\n    }\n  };\n\n  trash = (e, index) => {\n    e.preventDefault();\n    e.stopPropagation();\n\n    this.setState({\n      uploadedAttachments: this.state.uploadedAttachments.slice(0, index).concat(this.state.uploadedAttachments.slice(index + 1)),\n      removedAttachments: this.state.removedAttachments.concat(this.state.uploadedAttachments[index]),\n    });\n  };\n}\n","import React, { Component } from \"react\";\nimport ReactDOM from 'react-dom';\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\n\nexport default class AttachmentUploadPreview extends Component {\n  static propTypes = {\n    attachments: PropTypes.array,\n    uploadedAttachments: PropTypes.array,\n    id: PropTypes.string.isRequired,\n    trash: PropTypes.func,\n    mimeTypes: PropTypes.any,\n  };\n\n  static defaultProps = {\n    attachments: [],\n    mimeTypes: {\n      \"video/x-msvideo\": \"video\",\n      \"video/mp4\": \"video\",\n      \"video/mpeg\": \"video\",\n      \"video/quicktime\": \"video\",\n\n      csv: \"file-text\",\n      \"application/msword\": \"file-text\",\n      \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\": \"file-text\",\n      \"text/plain\": \"file-text\",\n      \"application/pdf\": \"file-text\",\n      \"application/vnd.ms-powerpoint\": \"file-text\",\n      \"application/vnd.openxmlformats-officedocument.presentationml.presentation\": \"file-text\",\n      \"application/vnd.oasis.opendocument.presentation\": \"file-text\",\n      \"application/vnd.oasis.opendocument.spreadsheet\": \"file-text\",\n      \"application/vnd.oasis.opendocument.text\": \"file-text\",\n      \"application/vnd.ms-excel\": \"file-text\",\n      \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\": \"file-text\",\n\n      \"audio/mpeg\": \"music\",\n\n      \"application/gzip\": \"package\",\n      \"application/vnd.rar\": \"package\",\n      \"application/zip\": \"package\",\n      \"application/x-7z-compressed\": \"package\",\n    },\n  };\n\n  iconForMime(t) {\n    return this.props.mimeTypes[t] || \"file\";\n  }\n\n  typeFromIcon(t) {\n    return { file: \"File\", video: \"Video\", music: \"Sound\", \"file-text\": \"Document\", package: \"Package\" }[t];\n  }\n\n  render() {\n    return ReactDOM.createPortal(\n      <div className=\"border bg-gray-100 border-gray-300 p-2 rounded flex-grow relative\">\n        {this.renderPreview()}\n      </div>\n      ,document.getElementById(this.props.id)\n    );\n  }\n\n  renderImagePreview(attachment) {\n    return <img src={attachment.src} />;\n  }\n\n  renderAttachmentPreview(attachment) {\n    return (\n      <>\n        <div class=\"flex items-center justify-center\">\n          <Icon name={this.iconForMime(attachment.type)} />\n          {this.typeFromIcon(this.iconForMime(attachment.type))}\n        </div>\n        <div class=\"truncate text-center text-xs\">{attachment.name}</div>\n      </>\n    );\n  }\n\n  renderPreview() {\n    const previews = this.props.uploadedAttachments\n      .map((attachment, index) => (\n        <div key={`uploaded_${index}`} className=\"w-32 border relative rounded p-2 bg-gray-200 border-gray-300\">\n          <span onClick={(e) => this.props.trash(e, index)} class=\"trash cursor-pointer absolute top-0 pb-1 pl-1 pr-1 right-0 bg-gray-100 rounded-bl hover:text-red-500\">\n            <Icon name=\"trash\" extraClasses=\"mr-0\" />\n          </span>\n          {attachment.image ? this.renderImagePreview(attachment) : this.renderAttachmentPreview(attachment)}\n        </div>\n      ))\n      .concat(\n        this.props.attachments.map((attachment, index) => (\n          <div key={index} className=\"w-32 border rounded p-2 bg-gray-200 border-gray-300\">\n            {attachment.image ? this.renderImagePreview(attachment) : this.renderAttachmentPreview(attachment)}\n          </div>\n        ))\n      );\n    if (previews && previews.length > 0) {\n      return <div class=\"flex flex-wrap gap-2 items-center\">{previews}</div>;\n    } else {\n      return null;\n    }\n  }\n}\n","import React, { Component } from \"react\";\n\nconst ProgressBar = (props) => {\n  const { completed } = props;\n\n  const fillerStyles = {\n    width: `${completed}%`,\n  };\n\n  return (\n    <div className=\"bar-container\">\n      <div className=\"bar-filler\" style={fillerStyles}></div>\n    </div>\n  );\n};\n\nexport default ProgressBar;\n","import React, { Component } from \"react\";\nimport { Chart as ChartJS, CategoryScale, LinearScale, BarElement, Title, Tooltip, Legend } from \"chart.js\";\nimport { Bar } from \"react-chartjs-2\";\nimport PropTypes from \"prop-types\";\n\nexport default class BarChart extends Component {\n  static propTypes = {\n    data: PropTypes.arrayOf(PropTypes.object),\n    title: PropTypes.string.isRequired,\n    description: PropTypes.string,\n    chartOnly: PropTypes.bool,\n    barColor: PropTypes.string,\n  };\n\n  static defaultProps = {\n    data: [\n      { value: 10, label: \"Q1\" },\n      { value: 100, label: \"Q2\" },\n      { value: 1000, label: \"Q3\" },\n      { value: 10000, label: \"Q4\" },\n    ],\n    title: \"Chart title\",\n    chartOnly: false,\n    barColor: \"#6C82FF\",\n  };\n\n  render() {\n    ChartJS.register(CategoryScale, LinearScale, BarElement, Title, Tooltip, Legend);\n    ChartJS.defaults.font.size = 11;\n\n    return (\n      <div>\n        {!this.props.chartOnly && <div className=\"text-sm mb-4 text-gray-400\">{this.props.title}</div>}\n        <Bar\n          options={{\n            responsive: true,\n            elements: {\n              bar: {\n                borderRadius: 5,\n              },\n            },\n            plugins: {\n              legend: {\n                display: false,\n              },\n            },\n            scales: {\n              x: {\n                ticks: {\n                  color: \"#aaa\",\n                  padding: 4,\n                },\n              },\n              y: {\n                ticks: {\n                  color: \"#aaa\",\n                  padding: 4,\n                },\n              },\n            },\n          }}\n          data={{\n            labels: this.props.data.map((l) => l.label),\n            datasets: [\n              {\n                data: this.props.data.map((v) => v.value),\n                backgroundColor: this.props.barColor,\n              },\n            ],\n          }}\n        />\n        {!this.props.chartOnly && this.props.description && <div className=\"text-sm mt-4 text-gray-400\">{this.props.description}</div>}\n      </div>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport BarChart from \"./BarChart\";\nimport PropTypes from \"prop-types\";\nimport axios from \"../lib/axios\";\n\nexport default class ChartEditor extends Component {\n  static propTypes = {\n    title: PropTypes.string,\n    description: PropTypes.string,\n    data: PropTypes.arrayOf(PropTypes.object),\n    url: PropTypes.string.isRequired,\n    method: PropTypes.string.isRequired,\n    companyProfileUrl: PropTypes.string.isRequired,\n    barColor: PropTypes.string,\n  };\n\n  static defaultProps = {\n    data: [\n      { value: 10, label: \"Q1\" },\n      { value: 20, label: \"Q2\" },\n      { value: 30, label: \"Q3\" },\n      { value: 40, label: \"Q4\" },\n    ],\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      title: this.props.title,\n      description: this.props.description,\n      data: this.props.data,\n      companyProfileUrl: this.props.companyProfileUrl,\n      barColor: this.props.barColor,\n    };\n  }\n\n  handleTitleChange = (e) => {\n    this.setState({ title: e.target.value });\n  };\n\n  handleDescriptionChange = (e) => {\n    this.setState({ description: e.target.value });\n  };\n\n  handleDataPointLabelChange = (index) => (e) => {\n    const updatedPoints = this.state.data.map((dp, dpindex) => {\n      if (index != dpindex) return dp;\n      return { ...dp, label: e.target.value };\n    });\n\n    this.setState({\n      data: updatedPoints,\n    });\n  };\n\n  handleDataPointValueChange = (index) => (e) => {\n    const updatedPoints = this.state.data.map((dp, dpindex) => {\n      if (index != dpindex) return dp;\n      return { ...dp, value: e.target.value };\n    });\n\n    this.setState({\n      data: updatedPoints,\n    });\n  };\n\n  handleAddDataPoint = () => {\n    this.setState({\n      data: this.state.data.concat(this.state.data.length > 0 ? this.state.data[this.state.data.length - 1] : [{ value: \"100\", label: \"Q1\" }]),\n    });\n  };\n\n  handleRemoveDataPoint = (index) => {\n    this.setState({\n      data: this.state.data.filter((dp, dpindex) => index != dpindex),\n    });\n  };\n\n  handleSubmit = (e) => {\n    e.preventDefault();\n\n    axios({\n      method: this.props.method,\n      url: this.props.url,\n      data: {\n        title: this.state.title,\n        description: this.state.description,\n        datapoints: this.state.data,\n      },\n    }).then((response) => {\n      window.location.href = this.state.companyProfileUrl;\n    });\n  };\n\n  renderDataRow(index, datapoint) {\n    return (\n      <tr key={index} className=\"mb-1\">\n        <td>\n          <input className=\"form-input\" type=\"text\" value={datapoint.label} onChange={this.handleDataPointLabelChange(index)}></input>\n        </td>\n        <td>\n          <input className=\"form-input\" type=\"number\" value={datapoint.value} onChange={this.handleDataPointValueChange(index)}></input>\n        </td>\n        <td>\n          <button type=\"button\" className=\"button button-circle\" onClick={() => this.handleRemoveDataPoint(index)}>\n            x\n          </button>\n        </td>\n      </tr>\n    );\n  }\n\n  render() {\n    const dataItems = [];\n\n    for (const [index, _value] of this.state.data.entries()) {\n      dataItems.push(this.renderDataRow(index, this.state.data[index]));\n    }\n\n    return (\n      <div className=\"mb-4 flex space-x-6\">\n        <div className=\"w-1/2\">\n          <h2 className=\"section-headline\">Chart details</h2>\n          <form onSubmit={this.handleSubmit}>\n            <div className=\"border border-gray-200 p-4 rounded mb-4\">\n              <label className=\"form-label\" htmlFor=\"chart_title\">\n                Chart title\n              </label>\n\n              <input className=\"form-input\" type=\"text\" onChange={this.handleTitleChange} value={this.state.title || \"\"} name=\"chart[title]\" id=\"chart_title\" autoComplete=\"off\" />\n\n              <label className=\"form-label\" htmlFor=\"chart_description\">\n                Chart description\n              </label>\n\n              <input\n                className=\"form-input\"\n                type=\"text\"\n                onChange={this.handleDescriptionChange}\n                value={this.state.description || \"\"}\n                name=\"chart[description]\"\n                id=\"chart_description\"\n                autoComplete=\"off\"\n              />\n\n              <label className=\"form-label mt-2\" htmlFor=\"chart_data\">\n                Chart data\n              </label>\n\n              <table className=\"mb-1\">\n                <thead className=\"text-left\">\n                  <tr>\n                    <th className=\"text-xs font-normal\">Legend</th>\n                    <th className=\"text-xs font-normal\">Value</th>\n                  </tr>\n                </thead>\n                <tbody>{dataItems}</tbody>\n              </table>\n\n              <button type=\"button\" onClick={this.handleAddDataPoint} className=\"button button-green\">\n                + Add value\n              </button>\n            </div>\n            <button type=\"submit\" className=\"button button-primary\">\n              Save chart\n            </button>\n          </form>\n        </div>\n        <div className=\"w-1/2\">\n          <h2 className=\"section-headline\">Chart preview</h2>\n          <div className=\"border border-gray-200 p-4 rounded\">\n            <BarChart chartOnly={false} data={this.state.data} title={this.state.title} description={this.state.description} barColor={this.state.barColor}></BarChart>\n          </div>\n        </div>\n      </div>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport CitySelector from \"./CitySelector\";\nimport qs from \"qs\";\n\nexport default class CityFilter extends Component {\n  static propTypes = {\n    cityList: PropTypes.arrayOf(\n      PropTypes.shape({\n        value: PropTypes.number.isRequired,\n        label: PropTypes.string.isRequired,\n      })\n    ).isRequired,\n    selected: PropTypes.arrayOf(\n      PropTypes.shape({\n        value: PropTypes.number.isRequired,\n        label: PropTypes.string.isRequired,\n      })\n    ).isRequired,\n  };\n\n  static defaultProps = {\n    cityList: [],\n    selected: [],\n  };\n\n  constructor(props) {\n    super(props);\n    // If we want to use async load of results, we need to change this.\n    this.state = {\n      selected: this.props.selected.map((city) => city.value),\n    };\n  }\n\n  render() {\n    return (\n      <CitySelector\n        onChange={this.onChange}\n        placeholder={\"Start typing...\"}\n        {...this.props}\n      />\n    );\n  }\n\n  onChange = (value) => {\n    this.setState({ selected: value.map((city) => city.value) }, this.submit);\n  };\n\n  submit = () => {\n    const search =\n      qs.parse(document.location.search, { ignoreQueryPrefix: true }) || {};\n    Object.assign(search, {\n      page: 1,\n      filter: Object.assign({}, search.filter || {}, {\n        cities: this.state.selected,\n      }),\n    });\n    document.location.assign(\n      document.location.pathname +\n        \"?\" +\n        qs.stringify(search, { arrayFormat: \"brackets\" })\n    );\n  };\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Select from \"react-select\";\n\nconst colourStyles = {\n  control: (styles, { data }) => ({\n    ...styles,\n    backgroundColor: \"#F9FAFB\",\n    borderColor: \"#ddd\",\n    borderRadius: \"8px\",\n  }),\n  input: (styles, { data }) => ({\n    ...styles,\n    fontSize: \"13px\",\n  }),\n  valueContainer: (styles, { data }) => ({\n    ...styles,\n    padding: \"2px 5px\",\n  }),\n  multiValue: (styles, { data }) => {\n    return {\n      ...styles,\n      backgroundColor: \"#eee\",\n      color: \"#555\",\n    };\n  },\n  multiValueLabel: (styles, { data }) => ({\n    ...styles,\n    color: data.color,\n    fontSize: \"12px\",\n  }),\n  multiValueRemove: (styles, { data }) => ({\n    ...styles,\n    color: data.color,\n    backgroundColor: \"#e6e6e6\",\n    \":hover\": {\n      backgroundColor: \"#666\",\n      color: \"white\",\n    },\n  }),\n  menuList: (styles, { data }) => ({\n    ...styles,\n    fontSize: \"13px\",\n  }),\n  menuPortal: (styles, { data }) => ({\n    ...styles,\n    zIndex: \"1000\",\n  }),\n  placeholder: (styles, { data }) => ({\n    ...styles,\n    fontSize: \"13px\",\n  }),\n};\n\nconst Option = (props) => {\n  const { data, getStyles, innerRef, innerProps } = props;\n\n  return <div {...innerProps} ref={innerRef} />;\n};\n\nexport default class CitySelector extends Component {\n  static propTypes = {\n    onChange: PropTypes.func,\n    cityList: PropTypes.array.isRequired,\n    selected: PropTypes.array,\n  };\n\n  static defaultProps = {\n    onChange: null,\n    cityList: [],\n    selected: [],\n  };\n\n  render() {\n    return (\n      <Select\n        onChange={this.props.onChange}\n        defaultValue={this.props.selected}\n        closeMenuOnSelect={false}\n        isMulti\n        options={this.props.cityList}\n        name={\"company[city_ids]\"}\n        delimiter={\",\"}\n        placeholder={this.props.placeholder || \"Start typing to see suggestions...\"}\n        className=\"react-select-container\"\n        classNamePrefix=\"react-select\"\n        menuPortalTarget={document.body}\n        styles={colourStyles}\n      />\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\n\nexport default class ColumnSorter extends Component {\n  static propTypes = {\n    title: PropTypes.string,\n    col: PropTypes.string,\n    dir: PropTypes.string,\n    active: PropTypes.bool,\n  };\n\n  handleClick = (e) => {\n    const toggle = { asc: \"desc\", desc: \"asc\" };\n    window.location.search = `sort_column=${this.props.col}&sort_direction=${this.props.active ? toggle[this.props.dir] : this.props.dir}`;\n  };\n\n  render() {\n    return (\n      <div className=\"whitespace-nowrap inline-block cursor-pointer\" onClick={this.handleClick}>\n        <span className={`border-b ${this.props.active ? \"text-green-700 border-green-700\" : \"border-gray-400\"}`}>{this.props.title}</span>\n        <Icon name={this.props.dir == \"asc\" ? \"chevron-up\" : \"chevron-down\"} extraClasses={`mr-0 ml-1 ${this.props.active ? \"text-black\" : \"text-gray-300\"}`} />\n      </div>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\nimport Modal from \"./Modal\";\n\nexport default class CompanyJoinModal extends Component {\n  static propTypes = {\n    url: PropTypes.string.isRequired,\n    open: PropTypes.bool,\n    options: PropTypes.array,\n    company: PropTypes.shape({\n      name: PropTypes.string.isRequired,\n    }).isRequired,\n    user: PropTypes.shape({\n      name: PropTypes.string,\n      email: PropTypes.string,\n    }),\n  };\n\n  static defaultProps = {\n    open: false,\n    user: {\n      name: undefined,\n      email: undefined,\n    },\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      visible: this.props.open,\n    };\n  }\n\n  close = () => {\n    this.setState({ visible: false });\n  };\n\n  open = () => {\n    this.setState({ visible: true });\n  };\n\n  render() {\n    return (\n      <>\n        <div className=\"border rounded-lg shadow-sm bg-gray-50 text-sm p-3\">\n          <a onClick={this.open} className=\"cursor-pointer\">\n            <Icon name=\"user-plus\" /> Are you a part of the team at {this.props.company.name}? Click here to request access.\n          </a>\n        </div>\n\n        {this.state.visible && (\n          <Modal onClose={this.close}>\n            <h1 className=\"text-center text-lg mb-4\">\n              Request to join <span className=\"font-bold\">{this.props.company.name}</span>\n            </h1>\n\n            <div className=\"text-center\">\n              <img src={this.props.company.logo} alt={this.props.company.name} className=\"mb-4 company-logo mx-auto\" />\n            </div>\n\n            <form action={this.props.url} method=\"post\">\n              <div className=\"space-y-2\">\n                <input type=\"hidden\" name=\"authenticity_token\" value={document.querySelector(\"meta[name='csrf-token']\").getAttribute(\"content\")} />\n\n                <label for=\"member_name\" className=\"form-label\">\n                  Your name\n                </label>\n                <input type=\"text\" id=\"member_name\" name=\"name\" className=\"form-input\" placeholder=\"Your name\" readonly disabled value={this.props.user.name} />\n\n                <label for=\"member_email\" className=\"form-label\">\n                  Your email\n                </label>\n                <input type=\"email\" id=\"member_email\" name=\"email\" className=\"form-input\" placeholder=\"Your email address\" readonly disabled value={this.props.user.email} />\n\n                <label for=\"member_role\" className=\"form-label\">\n                  Your role at {this.props.company.name}\n                </label>\n                <select id=\"member_role\" name=\"role\" className=\"form-input form-select\">\n                  {this.props.options.map((o, i) => (\n                    <option key={i} value={o.toLowerCase()}>\n                      {o}\n                    </option>\n                  ))}\n                </select>\n              </div>\n\n              <div className=\"text-center mt-6\">\n                <input className=\"button button-primary\" type=\"submit\" name=\"commit\" value=\"Send my request for approval\" />\n              </div>\n            </form>\n          </Modal>\n        )}\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\nimport Toast from \"./Toast\";\n\nexport default class CopyButton extends Component {\n  static propTypes = {\n    text: PropTypes.string,\n    content: PropTypes.string.isRequired,\n    class: PropTypes.string,\n  };\n\n  static defaultProps = {\n    text: \"Copy\",\n    class: \"button\",\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = { copied: false };\n  }\n\n  copyToClipboard(textToCopy) {\n    if (navigator.clipboard && window.isSecureContext) {\n      return navigator.clipboard.writeText(textToCopy);\n    } else {\n      let t = document.createElement(\"textarea\");\n      t.value = textToCopy;\n      t.style.position = \"fixed\";\n      t.style.left = \"-999999px\";\n      t.style.top = \"-999999px\";\n\n      document.body.appendChild(t);\n      t.focus();\n      t.select();\n\n      return new Promise((res, rej) => {\n        document.execCommand(\"copy\") ? res() : rej();\n        t.remove();\n      });\n    }\n  }\n\n  handleClick = (e) => {\n    this.copyToClipboard(this.props.content).then(this.copySuccess, this.copyFail);\n  };\n\n  copySuccess = (e) => {\n    this.setState({ copied: true });\n  };\n\n  copyFail = (e) => {};\n\n  renderToast = () => {\n    return (\n      <Toast\n        onDismiss={() => {\n          this.setState({ copied: false });\n        }}\n      >\n        The link was copied to the clipboard.\n      </Toast>\n    );\n  };\n\n  render() {\n    return (\n      <>\n        <div className={`whitespace-nowrap ${this.props.class}`} onClick={this.handleClick}>\n          <Icon name=\"copy\" /> {this.props.text}\n        </div>\n        {this.state.copied && this.renderToast()}\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\n\nexport default class CurrencyInput extends Component {\n  static propTypes = {\n    name: PropTypes.string.isRequired,\n    label: PropTypes.string,\n    id: PropTypes.string.isRequired,\n  };\n\n  static defaultProps = {\n    id: \"\",\n    label: \"\",\n    name: \"\",\n  };\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      type: \"text\",\n      value: this.parse(this.props.value),\n      display: this.display(this.parse(this.props.value)),\n    };\n  }\n\n  parse(input) {\n    if (input === null || input === undefined) {\n      return null;\n    }\n\n    if (typeof input === \"string\") {\n      input = input.replaceAll(/[^\\d]/gi, \"\");\n      if (input.length > 0) {\n        return parseInt(input);\n      } else {\n        return null;\n      }\n    }\n\n    if (typeof input === \"number\") {\n      return input;\n    }\n  }\n\n  display(input) {\n    if (input === null) {\n      return \"\";\n    }\n    let r = input;\n    let out = r === 0 ? \"0\" : \"\";\n    while (r > 0) {\n      let n = r % 1000;\n      r = Math.floor(r / 1000);\n      if (r > 0) {\n        if (n < 10) {\n          out = \",00\" + n + out;\n        } else if (n < 100) {\n          out = \",0\" + n + out;\n        } else {\n          out = \",\" + n + out;\n        }\n      } else {\n        out = n + out;\n      }\n    }\n    return out;\n  }\n\n  handleChange = (e) => {\n    this.setState({\n      display: this.parse(e.target.value),\n    });\n  };\n\n  handleBlur = (e) => {\n    this.setState({\n      type: \"text\",\n      value:\n        this.parse(e.target.value) === null ? \"\" : this.parse(e.target.value),\n      display: this.display(this.parse(e.target.value)),\n    });\n  };\n\n  handleFocus = (e) => {\n    this.setState({\n      type: \"number\",\n      display: this.state.value,\n    });\n  };\n\n  render() {\n    return (\n      <>\n        <label htmlFor={this.props.id} className=\"form-label\">\n          {this.props.label}\n        </label>\n        <div>\n          <Icon name=\"dollar-sign\" extraClasses=\"relative z-10 ml-2 mr-0\" />\n          <input\n            id={this.props.id}\n            className=\"form-input pl-8 -ml-6 relative z-0\"\n            type={this.state.type}\n            value={this.state.display}\n            onChange={this.handleChange}\n            onBlur={this.handleBlur}\n            onFocus={this.handleFocus}\n            step=\"10000\"\n            placeholder=\"0,000,000\"\n          />\n        </div>\n\n        <input type=\"hidden\" name={this.props.name} value={this.state.value} />\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from 'prop-types';\nimport DatePicker from \"react-datepicker\";\n\nexport default class DateInput extends Component {\n  static propTypes = {\n    defaultValue: PropTypes.string,\n    name: PropTypes.string.isRequired,\n    class: PropTypes.string,\n  };\n\n  static defaultProps = {\n    defaultValue: null,\n    name: '',\n    class: '',\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = { selected: this.props.defaultValue && this.props.defaultValue.length > 0 ? new Date(this.props.defaultValue) : null }\n  }\n\n  handleDateChange = (date) => {\n    this.setState({ selected: date });\n  }\n\n  render() {\n    return (\n      <>\n        <DatePicker\n          peekNextMonth\n          showMonthDropdown\n          showYearDropdown\n          dropdownMode=\"select\"\n          selected={this.state.selected}\n          onChange={this.handleDateChange}\n          className={this.props.class}\n          placeholderText=\"mm/dd/yyyy\"\n        />\n        {this.state.selected && (\n          <input type=\"hidden\" name={this.props.name} value={this.state.selected.toDateString()} />\n        )}\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\n\nexport default class DefaultAvatar extends Component {\n  render() {\n    return (\n      <div className=\"avatar-container\">\n        <div className=\"rounded-tl-lg bg-gray-200 w-16 h-16 inline-block mr-2 align-middle\">&nbsp;</div>\n      </div>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\n\nexport default class DropdownButton extends Component {\n  static propTypes = {\n    onChange: PropTypes.func,\n    extraClasses: PropTypes.string,\n  };\n\n  static defaultProps = {\n    title: null,\n    extraClasses: \"\",\n    onChange: () => {},\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.dropdownRef = React.createRef();\n    this.state = {\n      open: false,\n      activeChild:\n        this.props.children.find((child) => child.props.isActive) ||\n        this.props.children[0],\n    };\n  }\n\n  componentDidMount() {\n    document.addEventListener(\"click\", this.handleClickOutside);\n  }\n\n  componentWillUnmount() {\n    document.removeEventListener(\"click\", this.handleClickOutside);\n  }\n\n  handleClickOutside = (e) => {\n    if (\n      this.state.open &&\n      this.dropdownRef &&\n      this.dropdownRef.current &&\n      !this.dropdownRef.current.contains(e.target)\n    ) {\n      this.setState({ open: false });\n    }\n  };\n\n  render() {\n    const buttonClasses = [\"button button-toggle relative\"];\n    buttonClasses.push(this.props.extraClasses);\n    if (this.state.open) {\n      buttonClasses.push(\"border-b-0 rounded-b-none\");\n    }\n    return (\n      <div\n        className={buttonClasses.join(\" \")}\n        ref={this.dropdownRef}\n        onClick={this.toggleDropdown}\n        onMouseEnter={(e) => this.toggleHover(true)}\n        onMouseLeave={(e) => this.toggleHover(false)}\n      >\n        <div className=\"flex justify-between items-center\">\n          {this.state.activeChild}\n          <Icon extraClasses=\"mr-0 ml-1\" name=\"chevron-down\" />\n        </div>\n        {this.state.open && this.renderDropdown()}\n      </div>\n    );\n  }\n\n  renderDropdown() {\n    const buttonClasses = [\"button-dropdown -mx-px\"];\n    if (this.state.hovering) {\n      buttonClasses.push(\"button-hover\");\n    }\n\n    return (\n      <div className={buttonClasses.join(\" \")}>\n        {this.props.children.map((child, index) => (\n          <div key={index} onClick={(e) => this.select(index, e)}>\n            {child}\n          </div>\n        ))}\n      </div>\n    );\n  }\n\n  toggleHover = (hovering) => {\n    this.setState({ hovering });\n  };\n\n  select = (index, e) => {\n    e.preventDefault();\n    e.stopPropagation();\n    this.setState(\n      { activeChild: this.props.children[index], open: false },\n      this.changed\n    );\n  };\n\n  changed = () => {\n    this.props.onChange(this.state.activeChild);\n  };\n\n  toggleDropdown = (e) => {\n    this.setState((state) => ({ open: !state.open }));\n  };\n}\n\nexport class DropdownOption extends Component {\n  static propTypes = {\n    isActive: PropTypes.bool,\n    value: PropTypes.string,\n  };\n\n  static defaultProps = {\n    isActive: false,\n    value: \"\",\n  };\n\n  render() {\n    return <>{this.props.children}</>;\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport axios from \"../lib/axios\";\n\nexport default class EmailNotificationToggle extends Component {\n  static propTypes = {\n    notificationAll: PropTypes.bool.isRequired,\n    notificationSettingsUrl: PropTypes.string.isRequired,\n  };\n\n  static defaultProps = {\n    notificationAll: false,\n    notificationSettingsUrl: \"\",\n  };\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      suscribedAll: this.props.notificationAll,\n    };\n  }\n\n  disableEmailNotifications = (checkboxes) => {\n    for (var i = 0; i < checkboxes.length; i++) {\n      checkboxes[i].disabled = !this.state.suscribedAll;\n    }\n  };\n\n  writeEmailNotifications = () => {\n    axios({\n      remote: true,\n      method: \"post\",\n      url: this.props.notificationSettingsUrl,\n    }).then((_response) => {\n      this.setState({ suscribedAll: !this.state.suscribedAll });\n      this.disableEmailNotifications(document.getElementsByClassName(\"disable\"));\n    });\n  };\n\n  render() {\n    return (\n      <>\n        <div className=\"flex flex-row float-right\">\n          <label htmlFor=\"toggle_notification\" className=\"switch\">\n            <input\n              type=\"checkbox\"\n              onChange={this.writeEmailNotifications}\n              name=\"toggle_notification\"\n              id=\"toggle_notification\"\n              value=\"toggle_notification\"\n              data-remote=\"true\"\n              checked={this.state.suscribedAll}\n            ></input>\n            <span className=\"slider round\"></span>\n          </label>\n        </div>\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Modal from \"./Modal\";\nimport Icon from \"./Icon\";\n\nexport default class EndorsementModal extends Component {\n  static propTypes = {\n    url: PropTypes.string.isRequired,\n    open: PropTypes.bool,\n    options: PropTypes.array,\n    company: PropTypes.shape({\n      name: PropTypes.string.isRequired,\n    }).isRequired,\n    user: PropTypes.shape({\n      name: PropTypes.string,\n      email: PropTypes.string,\n    }),\n    canEndorse: PropTypes.bool,\n  };\n\n  static defaultProps = {\n    open: false,\n    user: {\n      name: undefined,\n      email: undefined,\n    },\n    canEndorse: true,\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      visible: this.props.open,\n    };\n  }\n\n  close = () => {\n    this.setState({ visible: false });\n  };\n\n  open = () => {\n    this.setState({ visible: true });\n  };\n\n  render() {\n    return (\n      <div className=\"inline\">\n        {this.props.canEndorse && (\n          <div className=\"flex items-center\">\n            <a\n              onClick={this.open}\n              className=\"bg-zinc-900 hover:bg-gray-500 rounded-full h-6 w-6 text-white text-center ml-3 leading-5 cursor-pointer flex items-center justify-center\"\n            >\n              <Icon name=\"plus\" extraClasses=\"mr-1\" />\n            </a>\n          </div>\n        )}\n\n        {this.state.visible && (\n          <Modal onClose={this.close}>\n            <h1 className=\"text-lg mb-4\">\n              <img\n                src={this.props.company.logo}\n                alt={this.props.company.name}\n                className=\"h-6 w-auto inline mr-2\"\n              />\n              Endorse {this.props.company.name}\n            </h1>\n\n            <div className=\"help mb-4\">\n              Tell {this.props.company.name} profile visitors what you think\n              about the company. Endorsements are approved by founders, so they\n              may take a bit to show up on the profile.\n            </div>\n\n            <form action={this.props.url} method=\"post\">\n              <div className=\"space-y-2\">\n                <input\n                  type=\"hidden\"\n                  name=\"authenticity_token\"\n                  value={document\n                    .querySelector(\"meta[name='csrf-token']\")\n                    .getAttribute(\"content\")}\n                />\n\n                <label for=\"endorsement_role\" className=\"form-label\">\n                  Your relationship with {this.props.company.name}\n                </label>\n                <select\n                  id=\"endorsement_role\"\n                  name=\"role\"\n                  className=\"form-input form-select\"\n                >\n                  {this.props.options.map((o, i) => (\n                    <option key={i} value={o.toLowerCase()}>\n                      {o}\n                    </option>\n                  ))}\n                </select>\n\n                <label for=\"endorsement_copy\" className=\"form-label\">\n                  Your feedback\n                </label>\n                <textarea\n                  id=\"endorsement_copy\"\n                  name=\"copy\"\n                  className=\"form-input\"\n                  placeholder=\"Tell us what you think in a sentence or two\"\n                />\n              </div>\n\n              <div className=\"text-right mt-4\">\n                <input\n                  className=\"button button-primary\"\n                  type=\"submit\"\n                  name=\"commit\"\n                  value=\"Add my endorsement\"\n                />\n              </div>\n            </form>\n          </Modal>\n        )}\n      </div>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport EndorsementModal from \"./EndorsementModal\";\nimport Icon from \"./Icon\";\nimport DefaultAvatar from \"./DefaultAvatar\";\n\nexport default class Endorsements extends Component {\n  static propTypes = {\n    company: PropTypes.shape({\n      name: PropTypes.string.isRequired,\n    }).isRequired,\n    canEndorse: PropTypes.bool,\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      currentEndorsement: 0,\n      endorsementCount: this.props.endorsements.length,\n    };\n  }\n\n  next = () => {\n    this.setState({ currentEndorsement: this.state.currentEndorsement + 1 });\n  };\n\n  previous = () => {\n    this.setState({ currentEndorsement: this.state.currentEndorsement - 1 });\n  };\n\n  taglineOrRole = (endorsement) => {\n    if (endorsement.relationship.person.tagline) {\n      return endorsement.relationship.person.tagline;\n    } else {\n      return (\n        endorsement.relationship.role.charAt(0).toUpperCase() +\n        endorsement.relationship.role.slice(1) +\n        \" at \" +\n        this.props.company.name\n      );\n    }\n  };\n\n  renderEndorsement(endorsement) {\n    return (\n      <>\n        {/* Endorsement display */}\n        <div className=\"rounded-lg shadow-sm border border-gray-200 bg-white overflow-clip\">\n          <div className=\"flex border-b border-gray-200 bg-gray-50\">\n            <div className=\"w-16 h-auto flex-shrink-0\">\n              {endorsement.relationship.person.avatarUrl ? (\n                <img\n                  src={endorsement.relationship.person.avatarUrl}\n                  className=\"inline w-16 h-auto\"\n                  alt={endorsement.relationship.person.name}\n                />\n              ) : (\n                <DefaultAvatar />\n              )}\n            </div>\n            <div className=\"text-base py-2 px-3 flex flex-col justify-center overflow-hidden\">\n              {endorsement.relationship.person.name}\n              <div className=\"text-sm text-gray-400 truncate w-full whitespace-nowrap\">\n                {this.taglineOrRole(endorsement)}\n              </div>\n            </div>\n          </div>\n\n          <div className=\"leading-relaxed text-gray-600 text-sm p-4\">\n            {endorsement.description}\n          </div>\n        </div>\n\n        {/* Endorsement navigation */}\n        {this.state.endorsementCount > 1 && (\n          <div className=\"space-x-2 text-right text-sm mt-4 flex\">\n            <div className=\"flex-grow\"></div>\n            <div className=\"flex\">\n              {this.state.currentEndorsement > 0 && (\n                <a\n                  onClick={this.previous}\n                  className=\"border border-gray-300 rounded-full h-6 w-6 text-gray-600 flex justify-center items-center\"\n                >\n                  <Icon name=\"arrow-left\" extraClasses=\"mr-0\" />\n                </a>\n              )}\n              {this.state.currentEndorsement + 1 <\n                this.state.endorsementCount && (\n                <a\n                  onClick={this.next}\n                  className=\"border border-gray-300 rounded-full h-6 w-6 text-gray-600 flex justify-center items-center\"\n                >\n                  <Icon name=\"arrow-right\" extraClasses=\"mr-0\" />\n                </a>\n              )}\n            </div>\n          </div>\n        )}\n      </>\n    );\n  }\n\n  render() {\n    return (\n      <>\n        <h2 className=\"section-headline flex items-center\">\n          {((this.state.endorsementCount == 0 && this.props.canEndorse) ||\n            this.state.endorsementCount > 0) && <div>Endorsements</div>}\n          {((this.state.endorsementCount == 0 && this.props.canEndorse) ||\n            (this.state.endorsementCount > 0 && this.props.canEndorse)) && (\n            <div>\n              <EndorsementModal {...this.props} />\n            </div>\n          )}\n        </h2>\n        <div className=\"profile-section\">\n          {this.state.endorsementCount == 0 && this.props.canEndorse && (\n            <div>\n              <div className=\"help help-gray p-4 mb-0\">\n                <Icon name=\"pen-tool\" />\n                Do you know and love {this.props.company.name}? Add an\n                endorsement to their profile!\n              </div>\n            </div>\n          )}\n\n          {this.state.endorsementCount > 0 &&\n            this.renderEndorsement(\n              this.props.endorsements[this.state.currentEndorsement]\n            )}\n        </div>\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\nimport axios from \"../lib/axios\";\nimport Toast from \"./Toast\";\n\nexport default class FollowButton extends Component {\n  static propTypes = {\n    follows: PropTypes.bool.isRequired,\n    followUrl: PropTypes.string.isRequired,\n    entityName: PropTypes.string.isRequired,\n  };\n\n  static defaultProps = {\n    follows: false,\n    followUrl: \"\",\n    entityName: \"\",\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      following: this.props.follows,\n      showAlert: false,\n    };\n  }\n\n  toggleFollow = () => {\n    axios({\n      method: \"post\",\n      url: this.props.followUrl,\n    }).then((_response) => {\n      this.setState({ following: !this.state.following });\n      this.setState({ showAlert: true });\n    });\n  };\n\n  render() {\n    let message = {\n      followed:\n        \"You are now following \" +\n        this.props.entityName +\n        \". You will start receiving notifications via email and text whenever meaningful updates are made to the profile.\",\n      unfollowed:\n        \"You are no longer following \" +\n        this.props.entityName +\n        \". You will no longer receive notifications via email or text.\",\n    };\n\n    return (\n      <>\n        <a\n          onClick={this.toggleFollow}\n          className={\n            this.state.following\n              ? \"button button-green button-green-filled\"\n              : \"button\"\n          }\n        >\n          <Icon\n            name={this.state.following ? \"check\" : \"plus\"}\n            extraClasses=\"mr-1\"\n          />{\" \"}\n          {this.state.following ? \"Following\" : \"Follow\"}\n        </a>\n        {this.state.showAlert && (\n          <Toast\n            message={message[this.state.following ? \"followed\" : \"unfollowed\"]}\n          ></Toast>\n        )}\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\nimport axios from \"../lib/axios\";\n\nexport default class FollowCardButton extends Component {\n  static propTypes = {\n    follows: PropTypes.bool.isRequired,\n    followUrl: PropTypes.string.isRequired,\n    entityName: PropTypes.string.isRequired,\n    message: PropTypes.string.isRequired,\n  };\n\n  static defaultProps = {\n    follows: false,\n    followUrl: \"\",\n    entityName: \"\",\n    message: \"\",\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      following: this.props.follows,\n      showAlert: false,\n    };\n  }\n\n  toggleFollow = () => {\n    axios({\n      method: \"post\",\n      url: this.props.followUrl,\n    }).then((_response) => {\n      this.setState({ following: !this.state.following });\n      this.setState({ showAlert: true });\n    });\n  };\n\n  render() {\n    return (\n      <>\n        <a onClick={this.toggleFollow} className={this.state.following ? \"button-following\" : \"button-follow\"}>\n          <Icon extraClasses=\"mx-0\" name={this.state.following ? \"check\" : \"plus\"} /> {this.state.following ? \"Following\" : \"Follow\"}\n        </a>\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport qs from \"qs\";\n\nexport default class FollowingFilterCheckbox extends Component {\n  static propTypes = {\n    pageFilter: PropTypes.string,\n    checked: PropTypes.bool,\n  };\n\n  static defaultProps = {\n    pageFilter: \"\",\n  };\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      checked: this.props.checked,\n    };\n  }\n\n  componentDidMount() {\n    if (document.location.search == \"\") {\n      localStorage.setItem(this.props.pageFilter, 0);\n    }\n\n    if (localStorage.getItem(this.props.pageFilter) != 1) {\n      this.setState({ checked: this.state.checked });\n    } else {\n      this.setState({ checked: !this.state.checked });\n    }\n  }\n\n  handleCheckbox = (event) => {\n    if (localStorage.getItem(this.props.pageFilter) != 1) {\n      localStorage.setItem(this.props.pageFilter, 1);\n    } else {\n      localStorage.setItem(this.props.pageFilter, 0);\n    }\n\n    this.setState(this.submit(event, window.localStorage.getItem(this.props.pageFilter)));\n  };\n\n  submit = (event, checked) => {\n    const search = qs.parse(document.location.search, { ignoreQueryPrefix: true }) || {};\n    Object.assign(search, {\n      page: 1,\n      filter: Object.assign({}, search.filter || {}, { following: checked || false }),\n    });\n\n    document.location.assign(document.location.pathname + \"?\" + qs.stringify(search, { arrayFormat: \"brackets\" }));\n  };\n\n  render() {\n    return (\n      <>\n        <label htmlFor=\"following\" className=\"text-sm rounded bg-white p-2 border flex items-center button\">\n          <input type=\"checkbox\" onClick={this.handleCheckbox} id=\"following\" data-remote=\"true\" defaultChecked={this.state.checked} className=\"mr-2\"></input>\n          Followed by me\n        </label>\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport axios from \"../lib/axios\";\n\nexport default class EmailNotificationToggle extends Component {\n  static propTypes = {\n    raisingFunds: PropTypes.bool.isRequired,\n    toggleFundingUrl: PropTypes.string.isRequired,\n  };\n\n  static defaultProps = {\n    raisingFunds: false,\n    toggleFundingUrl: \"\",\n  };\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      raisingFunds: this.props.raisingFunds,\n    };\n  }\n\n  toggleFunding = () => {\n    axios({\n      remote: true,\n      method: \"post\",\n      url: this.props.toggleFundingUrl,\n    }).then((_response) => {\n      this.setState({ raisingFunds: !this.state.raisingFunds });\n    });\n  };\n\n  render() {\n    return (\n      <>\n        <div class=\"flex flex-row\">\n          <div className=\"w-2/3\">\n            <label class=\"form-label mb-0 mt-1\">\n              {this.state.raisingFunds\n                ? \"Yes, we are currently raising capital.\"\n                : \"No, we are not raising capital at this time.\"}\n            </label>\n          </div>\n          <div className=\"w-1/3 text-right\">\n            <label htmlFor=\"toggle_funding\" className=\"switch\">\n              <input\n                type=\"checkbox\"\n                onChange={this.toggleFunding}\n                name=\"toggle_funding\"\n                id=\"toggle_funding\"\n                value=\"toggle_funding\"\n                data-remote=\"true\"\n                checked={this.state.raisingFunds}\n              ></input>\n              <span className=\"slider round\"></span>\n            </label>\n          </div>\n        </div>\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Sprite from \"../images/feather.svg\";\n\nexport default class Icon extends Component {\n  static propTypes = {\n    extraClasses: PropTypes.string,\n    name: PropTypes.string,\n  };\n\n  render() {\n    return (\n      <svg className={`icon feather ${this.props.extraClasses}`}>\n        <use xlinkHref={`${Sprite}#${this.props.name}`} />\n      </svg>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\n\nexport default class ImageUploadPreview extends Component {\n  static propTypes = {\n    image: PropTypes.any.isRequired,\n    id: PropTypes.string.isRequired,\n    name: PropTypes.string.isRequired,\n    namePurge: PropTypes.string.isRequired,\n    label: PropTypes.string.isRequired,\n    previewCss: PropTypes.string\n  };\n\n  static defaultProps = {\n    action: \"\",\n    name: \"\",\n    namePurge: \"_purge\",\n    label: \"\",\n    previewCss: \"\"\n  };\n  constructor(props) {\n    super(props);\n    this.state = {  uploadedImage: this.props.image, removedImage: null, image: null };\n  }\n\n  trash = (e) => {\n    e.preventDefault();\n    e.stopPropagation();\n\n    e.target.dispatchEvent(new Event('change', {bubbles: true}));\n\n    this.setState({\n      uploadedImage: null,\n      removedImage: this.state.uploadedImage,\n    });\n  };\n\n  render() {\n    return (\n      <div className=\"flex flex-col flex-grow relative\">\n        <label htmlFor={this.props.id} className=\"form-label flex-no-grow\">\n          {this.props.label}\n        </label>\n        <div className={`${this.props.previewCss} flex-grow border bg-gray-100 border-gray-300 flex flex-col items-center`}>\n          <input\n            type=\"file\"\n            onChange={this.handleChange}\n            name={this.props.name}\n            id={this.props.id}\n            className={`${!this.props.showInput ? \"opacity-0 z-20 inset-0 h-full absolute w-full\" : \"\"} w-full`}\n          />\n          {this.state.removedImage && (\n            <input type=\"hidden\" name={this.props.namePurge} value={this.state.removedImage.id} />\n          )}\n\n          {(!!this.state.uploadedImage || !!this.state.image) && (\n            <div className=\"relative\">\n              {this.props.showInput && this.state.uploadedImage && (\n                <span onClick={(e) => this.trash(e)} class=\"trash cursor-pointer absolute top-0 pb-1 pl-1 right-0 bg-gray-100 rounded-bl hover:text-red-500\">\n                  <Icon name=\"trash\" extraClasses=\"mr-0\" />\n                </span>\n              )}\n              <img className={`${(!!this.state.uploadedImage || !!this.state.image) ? \"mt-2\" : \"\"} w-full h-auto`} src={(this.state.uploadedImage || this.state.image).src} />\n            </div>\n          )}\n\n        </div>\n      </div>\n    );\n  }\n\n  handleChange = (e) => {\n    const input = e.target;\n    if (input.files && input.files[0]) {\n      const reader = new FileReader();\n      reader.onload = (e) => {\n        this.setState({ image: { src: e.target.result }, uploadedImage: null, removedImage: this.state.uploadedImage });\n      };\n      reader.readAsDataURL(input.files[0]);\n    }\n  };\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\nimport cable from \"../lib/cable\";\n\nexport default class LinkAwareTextarea extends Component {\n  static propTypes = {\n    id: PropTypes.string.isRequired,\n    name: PropTypes.string.isRequired,\n    defaultValue: PropTypes.string,\n    inputCss: PropTypes.string,\n    placeholder: PropTypes.string,\n    linkName: PropTypes.string.isRequired,\n  };\n\n  static defaultProps = {\n    defaultValue: \"\",\n    placeholder: \"\",\n    inputCss: \"form-input h-20\",\n  };\n\n  constructor(props) {\n    super(props);\n    this.state = { preview: null, dismissed: [], waiting: null };\n  }\n\n  componentDidMount() {\n    this.subscribe();\n  }\n\n  componentWillUnmount() {\n    this.unsubscribe();\n  }\n\n  subscribe() {\n    this.subscription = cable.subscriptions.create(\n      {\n        channel: \"LinkPreviewsChannel\",\n      },\n      {\n        received: (data) => {\n          this.unfurled(data);\n        },\n      }\n    );\n  }\n\n  unsubscribe() {\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n  }\n\n  detect = (e) => {\n    if (this.state.preview || this.state.waiting) {\n      return;\n    }\n    clearTimeout(this.throttle);\n    this.throttle = setTimeout(() => {\n      const matches = e.target.value.match(/(http|https)\\:\\/\\/[a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]{2,3}(\\/\\S*)?/g);\n      if (matches && matches.length > 0) {\n        this.unfurl(matches[matches.length - 1]);\n      }\n    }, 300);\n  };\n\n  unfurl(url) {\n    if (this.state.dismissed.indexOf(url) !== -1) {\n      return;\n    }\n    this.setState({ waiting: url }, () => this.subscription.perform(\"unfurl\", { url }));\n  }\n\n  unfurled(data) {\n    if (this.state.waiting === data[\"url\"]) {\n      let preview = {\n        url: data[\"url\"],\n        image_url: data[\"image_url\"],\n        name: data[\"name\"],\n        description: data[\"description\"],\n      };\n\n      if (data[\"failure\"]) {\n        preview = null;\n      }\n\n      this.setState({\n        waiting: null,\n        preview: preview,\n      });\n    }\n  }\n\n  dismiss = (e) => {\n    this.setState({ preview: null, waiting: null, dismissed: this.state.dismissed.concat(this.state.preview.link) });\n  };\n\n  render() {\n    let css = this.props.inputCss;\n    if (this.state.preview) {\n      css = css + \" rounded-t rounded-b-none\";\n    }\n    return (\n      <>\n        <textarea onChange={this.detect} id={this.props.id} name={this.props.name} className={css} placeholder={this.props.placeholder}>\n          {this.props.defaultValue}\n        </textarea>\n        {this.state.preview && this.renderPreview()}\n      </>\n    );\n  }\n\n  renderPreview() {\n    return (\n      <div className=\"flex form-link-preview\">\n        <img className=\"flex-no-grow w-36\" src={this.state.preview.image_url} />\n        <div className=\"flex-grow flex flex-col pl-2\">\n          <h3 className=\"flex-no-grow\">\n            <span className=\"font-bold\">{this.state.preview.name}</span>\n            <span onClick={this.dismiss} className=\"float-right cursor-pointer\">\n              <Icon name=\"x\" extraClasses=\"mr-0 \" />\n            </span>\n          </h3>\n          <p className=\"flex-grow\">{this.state.preview.description}</p>\n        </div>\n        <input type=\"hidden\" name={this.props.linkName + \"[url]\"} value={this.state.preview.url} />\n        <input type=\"hidden\" name={this.props.linkName + \"[image_url]\"} value={this.state.preview.image_url} />\n        <input type=\"hidden\" name={this.props.linkName + \"[name]\"} value={this.state.preview.name} />\n        <input type=\"hidden\" name={this.props.linkName + \"[description]\"} value={this.state.preview.description} />\n      </div>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\n\nexport default class LogoUploadPreview extends Component {\n  static propTypes = {\n    image: PropTypes.string.isRequired,\n    id: PropTypes.string.isRequired,\n    name: PropTypes.string.isRequired,\n    label: PropTypes.string.isRequired,\n    previewCss: PropTypes.string,\n    showInput: PropTypes.bool,\n  };\n\n  static defaultProps = {\n    action: \"\",\n    name: \"\",\n    label: \"\",\n    previewCss: \"\",\n    showInput: false,\n  };\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      image: this.props.image,\n      imageRemoveChecked: false,\n    };\n  }\n\n  render() {\n    return (\n      <div className=\"flex space-x-2\">\n        <div className=\"flex flex-col\">\n          <div className={`${this.props.previewCss} relative overflow-hidden flex-grow border bg-gray-100 border-gray-300 flex flex-col items-center justify-center`}>\n            <input\n              type=\"file\"\n              onChange={this.handleChange}\n              name={this.props.name}\n              id={this.props.id}\n              className={`${!this.props.showInput ? \"opacity-0 z-20 inset-0 h-full absolute w-full\" : \"\"} w-full`}\n            />\n            <input id=\"company_remove_logo\" type=\"checkbox\" name=\"company[remove_logo]\" className=\"hidden\" checked={this.state.imageRemoveChecked} />\n            {this.state.image && <img className=\"logo-preview\" src={this.state.image} />}\n            {!this.state.image && <div className=\"w-full text-xs text-gray-400 default-logo\">Add your logo. Select a file (max. 20 MB)</div>}\n          </div>\n        </div>\n        <div className=\"flex flex-col space-y-2\">\n          <button className=\"button button-primary\" type=\"button\" onClick={this.handleClick}>\n            <Icon name=\"upload\" />\n            Upload\n          </button>\n\n          <button className=\"button button-danger\" type=\"button\" onClick={this.handleRemoveLogo}>\n            <Icon name=\"trash\" />\n            Remove\n          </button>\n        </div>\n      </div>\n    );\n  }\n\n  handleRemoveLogo = (e) => {\n    e.preventDefault();\n    this.setState({\n      image: null,\n      imageRemoveChecked: true,\n    });\n  };\n\n  handleClick = (e) => {\n    e.preventDefault();\n    document.getElementById(\"company_logo\").click();\n  };\n\n  handleChange = (e) => {\n    const input = e.target;\n    if (input.files && input.files[0]) {\n      const reader = new FileReader();\n      reader.onload = (e) => {\n        this.setState({ image: e.target.result, imageRemoveChecked: false });\n      };\n      reader.readAsDataURL(input.files[0]);\n    }\n  };\n}\n","import React, { Component } from \"react\";\nimport ReactDOM from \"react-dom\";\n\nexport default class Modal extends Component {\n  handleClose = () => {\n    this.props.onClose();\n  };\n\n  ignoreClick = (e) => {\n    e.stopPropagation();\n  };\n\n  render() {\n    return ReactDOM.createPortal(\n      <div id=\"overlay\" onClick={this.handleClose}>\n        <div className=\"overlay-content\" onClick={this.ignoreClick}>\n          {this.props.children}\n        </div>\n      </div>,\n      document.getElementsByTagName(\"body\")[0]\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport Icon from \"./Icon\";\nimport axios from \"../lib/axios\";\nimport PropTypes from \"prop-types\";\nimport qs from \"qs\";\n\nexport default class MultiCompanySelector extends Component {\n  static propTypes = {\n    defaultLogo: PropTypes.string,\n    id: PropTypes.string.isRequired,\n    name: PropTypes.string.isRequired,\n    api: PropTypes.string.isRequired,\n    companies: PropTypes.arrayOf(\n      PropTypes.shape({\n        id: PropTypes.number.isRequired,\n        name: PropTypes.string.isRequired,\n        logoUrl: PropTypes.string,\n      })\n    ),\n  };\n\n  static defaultProps = {\n    defaultLogo: \"\",\n    id: \"id\",\n    name: \"\",\n    companies: [],\n  };\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      query: \"\",\n      suggestedCompanies: [],\n      selectedCompanies: this.props.companies,\n      selectedSuggestion: 0,\n    };\n  }\n\n  handleKey = (e) => {\n    switch (e.keyCode) {\n      case 9:\n        this.handleSelect(e);\n        break;\n      case 13:\n        this.handleSelect(e);\n        break;\n      case 38:\n        this.handleUp(e);\n        break;\n      case 40:\n        this.handleDown(e);\n        break;\n      case 27:\n        this.handleCancel(e);\n        break;\n      default:\n        return;\n    }\n    e.preventDefault();\n  };\n\n  handleChange = (e) => {\n    this.setState({ query: e.target.value }, this.throttle);\n  };\n\n  throttle = () => {\n    if (this.state.waiting) {\n      return;\n    }\n\n    clearTimeout(this.timeout);\n    this.timeout = setTimeout(this.search, 300);\n  };\n\n  search = () => {\n    const param = qs.stringify(\n      { query: this.state.query },\n      { addQueryPrefix: true, arrayFormat: \"brackets\" }\n    );\n\n    this.setState({ waiting: true }, () => {\n      axios.get(this.props.api + param).then((response) => {\n        this.setState({\n          waiting: false,\n          suggestedCompanies: response.data,\n        });\n      });\n    });\n  };\n\n  renderSuggestions = () => {\n    if (this.state.suggestedCompanies.length === 0) {\n      return null;\n    }\n\n    return (\n      <ul className=\"suggestion-list\">\n        {this.state.suggestedCompanies.map((company, i) => (\n          <li\n            key={i}\n            onClick={() => this.handleClick(i)}\n            className={`${\n              this.state.selectedSuggestion === i ? \"bg-white\" : \"\"\n            }`}\n          >\n            {company.logoUrl ? (\n              <img\n                className=\"mx-2 w-6 flex-no-grow\"\n                src={company.logoUrl}\n                alt={company.name}\n              />\n            ) : (\n              <img\n                className=\"mx-2 w-6 flex-no-grow\"\n                src={this.props.defaultLogo}\n                alt={company.name}\n              />\n            )}\n            <span className=\"text-sm\">{company.name}</span>\n          </li>\n        ))}\n      </ul>\n    );\n  };\n\n  renderSelected = () => {\n    if (this.state.selectedCompanies.length === 0) {\n      return null;\n    }\n\n    return (\n      <table className=\"w-full border mt-2\">\n        {this.state.selectedCompanies.map((company, i) => (\n          <tr key={i} className=\"border-b\">\n            <td className=\"bg-gray-100 p-2 w-8\">\n              <input\n                type=\"checkbox\"\n                name={this.props.name}\n                value={company.id}\n                checked\n                onChange={() => this.handleRemove(i)}\n              />\n            </td>\n            <td className=\"p-2 w-14\">\n              {company.logoUrl ? (\n                <img\n                  className=\"mx-2 w-6 flex-no-grow\"\n                  src={company.logoUrl}\n                  alt={company.name}\n                />\n              ) : (\n                <img\n                  className=\"mx-2 w-6 flex-no-grow\"\n                  src={this.props.defaultLogo}\n                  alt={company.name}\n                />\n              )}\n            </td>\n            <td>\n              <span className=\"text-sm\">{company.name}</span>\n            </td>\n          </tr>\n        ))}\n      </table>\n    );\n  };\n\n  handleRemove = (i) => {\n    const selectedCompanies = this.state.selectedCompanies.slice();\n    selectedCompanies.splice(i, 1);\n    this.setState({ selectedCompanies });\n  };\n\n  handleDown = () => {\n    this.setState({\n      selectedSuggestion: Math.min(\n        this.state.suggestedCompanies.length - 1,\n        this.state.selectedSuggestion + 1\n      ),\n    });\n  };\n\n  handleUp = () => {\n    this.setState({\n      selectedSuggestion: Math.max(0, this.state.selectedSuggestion - 1),\n    });\n  };\n\n  handleSelect = () => {\n    const selectedSuggestion =\n      this.state.suggestedCompanies[this.state.selectedSuggestion];\n    this.handleSelection(selectedSuggestion);\n  };\n\n  handleCancel = () => {\n    this.setState({ query: \"\", suggestedCompanies: [] });\n  };\n\n  handleClick = (i) => {\n    const selectedSuggestion = this.state.suggestedCompanies[i];\n    this.handleSelection(selectedSuggestion);\n  };\n\n  handleSelection = (selectedSuggestion) => {\n    if (\n      this.state.selectedCompanies.findIndex(\n        (c) => c.id === selectedSuggestion.id\n      ) === -1\n    ) {\n      this.setState({\n        query: \"\",\n        suggestedCompanies: [],\n        selectedCompanies: [\n          selectedSuggestion,\n          ...this.state.selectedCompanies,\n        ],\n      });\n    } else {\n      this.setState({ query: \"\", suggestedCompanies: [] });\n    }\n  };\n\n  render() {\n    return (\n      <>\n        <div>\n          <label htmlFor={this.props.id}>\n            <Icon name=\"search\" extraClasses=\"relative z-10 ml-2 mr-0\" />\n          </label>\n          <input\n            onKeyDown={this.handleKey}\n            value={this.state.query}\n            onChange={this.handleChange}\n            id={this.props.id}\n            className={`form-input pl-8 -ml-6 relative z-0 mb-0 focus:outline-none ${\n              this.state.suggestedCompanies.length > 0\n                ? \"rounded-b-none border-b-0\"\n                : \"\"\n            }`}\n            type=\"text\"\n            placeholder=\"Start typing to search companies...\"\n            autoComplete=\"off\"\n          />\n          {this.renderSuggestions()}\n          {this.renderSelected()}\n        </div>\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes, { object } from \"prop-types\";\nimport axios from \"../lib/axios\";\n\nexport default class NotificationSettingToggle extends Component {\n  static propTypes = {\n    settingId: PropTypes.array.isRequired,\n    notificationSettingsUrl: PropTypes.string.isRequired,\n    status: PropTypes.bool.isRequired,\n    notificationSettingsStatus: PropTypes.bool.isRequired,\n  };\n\n  static defaultProps = {\n    settingId: [],\n    notificationSettingsUrl: \"\",\n    status: false,\n    notificationSettingsStatus: false,\n  };\n\n  constructor(props) {\n    super(props);\n    this.state = {\n      suscribed: this.props.status,\n    };\n  }\n\n  updateEmailNotifications = () => {\n    axios({\n      remote: true,\n      method: \"post\",\n      data: { id: this.props.settingId },\n      url: this.props.notificationSettingsUrl,\n    }).then((_response) => {\n      this.setState({ suscribed: !this.state.suscribed });\n    });\n  };\n\n  render() {\n    return (\n      <label htmlFor=\"update_notification\">\n        <input\n          disabled={!this.props.notificationSettingsStatus}\n          type=\"checkbox\"\n          onChange={this.updateEmailNotifications}\n          name=\"update_notification\"\n          id={this.props.settingId}\n          value=\"update_notification\"\n          checked={this.state.suscribed}\n          className=\"float-right disable\"\n        ></input>\n      </label>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport axios from \"../lib/axios\";\nimport Icon from \"./Icon\";\n\nexport default class PermissionsBanner extends Component {\n  static propTypes = {\n    url: PropTypes.string.isRequired,\n  };\n\n  constructor(props) {\n    super(props);\n    this.state = { open: true };\n  }\n\n  dismiss = () => {\n    axios.put(this.props.url, { user: { seen_permissions_banner: true } }).then((response) => {\n      this.setState({ open: false });\n    });\n  };\n\n  render() {\n    return (\n      <>\n        {this.state.open && (\n          <div className=\"permissions-banner\">\n            <h2>\n              Decide who sees what on your company profile with these visibility levels:\n              <span onClick={this.dismiss} className=\"float-right\">\n                <Icon name=\"x\" extraClasses=\"mr-0\" />\n              </span>\n            </h2>\n            <dl>\n              <dt>\n                <Icon name=\"globe\" extraClasses=\"mr-2\" />\n                Public:\n              </dt>\n              <dd>Visible to anyone on the internet</dd>\n\n              <dt>\n                <Icon name=\"lock\" extraClasses=\"mr-2\" />\n                Private:\n              </dt>\n              <dd>Only visible with a private sharing link (includes public content)</dd>\n\n              <dt>\n                <Icon name=\"eye-off\" extraClasses=\"mr-2\" />\n                Owner:\n              </dt>\n              <dd>Only visible to you and other profile admins</dd>\n            </dl>\n          </div>\n        )}\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport DropdownButton, { DropdownOption } from \"./DropdownButton\";\nimport Icon from \"./Icon\";\nimport axios from \"../lib/axios\";\n\nexport default class PermissionsToggle extends Component {\n  static propTypes = {\n    action: PropTypes.string,\n    options: PropTypes.array.isRequired,\n    name: PropTypes.string.isRequired,\n    defaultValue: PropTypes.number,\n    maxValue: PropTypes.number,\n    shouldReload: PropTypes.bool,\n  };\n\n  static defaultProps = {\n    action: null,\n    options: [],\n    name: \"\",\n    defaultValue: 1,\n    maxValue: 2,\n    shouldReload: false,\n  };\n\n  constructor(props) {\n    super(props);\n    this.options = [\"owner\", \"private\", \"public\"];\n    this.state = { selected: this.options[this.props.defaultValue] };\n  }\n\n  valueToProps(value, option) {\n    const v = this.options.indexOf(option);\n    return {\n      isActive: value === v,\n      value: option,\n    };\n  }\n\n  render() {\n    return (\n      <>\n        <DropdownButton onChange={this.changed}>\n          <DropdownOption\n            {...this.valueToProps(this.props.defaultValue, \"public\")}\n          >\n            <Icon name=\"globe\" /> Public\n          </DropdownOption>\n          <DropdownOption\n            {...this.valueToProps(this.props.defaultValue, \"private\")}\n          >\n            <Icon name=\"lock\" /> Private\n          </DropdownOption>\n          <DropdownOption\n            {...this.valueToProps(this.props.defaultValue, \"owner\")}\n          >\n            <Icon name=\"eye-off\" /> Owner\n          </DropdownOption>\n        </DropdownButton>\n        <input\n          type=\"hidden\"\n          name={`permission[${this.props.name}]`}\n          value={this.state.selected}\n        />\n      </>\n    );\n  }\n\n  changed = (option) => {\n    this.setState({ selected: option.props.value }, this.submit);\n  };\n\n  submit = () => {\n    if (this.props.action) {\n      const params = { permission: {} };\n      params[\"permission\"][this.props.name] = this.state.selected;\n      axios.post(this.props.action, params).then((response) => {\n        this.props.shouldReload ? location.reload() : null;\n      });\n    }\n  };\n}\n","import React, { Component } from \"react\";\nimport { Chart as ChartJS, ArcElement, Tooltip, Legend } from \"chart.js\";\nimport { Pie } from \"react-chartjs-2\";\n\nChartJS.register(ArcElement, Tooltip, Legend);\n\nexport const options = {\n  plugins: {\n    legend: {\n      position: \"bottom\",\n    },\n  },\n};\n\nexport const data = {\n  labels: [\"Red\", \"Blue\", \"Pink\"],\n  datasets: [\n    {\n      label: \"# of Votes\",\n      data: [12, 19, 3],\n      backgroundColor: [\"#E84D86\", \"#6C82FF\", \"#F29DBC\"],\n      //borderColor: [\"rgba(255, 99, 132, 1)\", \"rgba(54, 162, 235, 1)\", \"rgba(255, 206, 86, 1)\", \"rgba(75, 192, 192, 1)\", \"rgba(153, 102, 255, 1)\", \"rgba(255, 159, 64, 1)\"],\n      borderWidth: 1,\n    },\n  ],\n};\n\nexport default class PieChart extends Component {\n  render() {\n    return (\n      <div>\n        <Pie data={data} options={options} />\n      </div>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Carousel } from \"react-responsive-carousel\";\nexport default class ProductCarousel extends Component {\n  static propTypes = {\n    content: PropTypes.array.isRequired,\n  };\n\n  render() {\n    return (\n      <Carousel\n        showStatus={false}\n        autoPlay={true}\n        infiniteLoop={true}\n        stopOnHover={true}\n        thumbWidth={110}\n        interval={3500}\n      >\n        {this.props.content.map((value, index) => {\n          return (\n            <div key={index}>\n              <img src={value} />\n            </div>\n          );\n        })}\n      </Carousel>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport ReactPlayer from \"react-player\";\n\nexport default class ProductVideoPlayer extends Component {\n  static propTypes = {\n    url: PropTypes.string.isRequired,\n  };\n\n  render() {\n    return <ReactPlayer url={this.props.url} width={\"100%\"} />;\n  }\n}\n","import React, { Component } from \"react\";\nimport Bar from \"./Bar\";\nimport PropTypes from \"prop-types\";\n\nexport default class ProgressBar extends Component {\n  static propTypes = {\n    percentage: PropTypes.number.isRequired,\n  };\n\n  static defaultProps = {\n    percentage: 0,\n  };\n\n  constructor(props) {\n    super(props);\n  }\n\n  render() {\n    return (\n      <div className=\"text-center w-full my-2\">\n        <Bar completed={this.props.percentage} />\n      </div>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport axios from \"../lib/axios\";\n\nexport default class PublishedToggleButton extends Component {\n  static propTypes = {\n    published: PropTypes.bool.isRequired,\n    url: PropTypes.string.isRequired,\n  };\n\n  static defaultProps = {\n    published: false,\n    url: \"\",\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      published: this.props.published,\n      showAlert: this.props.follows,\n    };\n  }\n\n  toggleFollow = () => {\n    axios({\n      method: \"post\",\n      url: this.props.url,\n    }).then((_response) => {\n      this.setState({ published: !this.state.published });\n    });\n  };\n\n  render() {\n    return (\n      <div className=\"text-base bg-white shadow rounded-lg py-3 px-3 mb-8\">\n        <div className=\"flex items-center\">\n          <div className=\"flex-grow\">Profile visible</div>\n          <div>\n            <label htmlFor=\"toggle_published\" className=\"switch\">\n              <input\n                type=\"checkbox\"\n                onChange={this.toggleFollow}\n                name=\"toggle_published\"\n                id=\"toggle_published\"\n                value=\"toggle_published\"\n                data-remote=\"true\"\n                checked={this.state.published}\n              />\n              <span className=\"slider round\"></span>\n            </label>\n          </div>\n        </div>\n        <div className=\"border-t text-xs pt-1 mt-2 text-gray-400\">{this.state.published ? \"Your profile is visible to the public\" : \"Only you can see and edit your profile\"}</div>\n      </div>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { Carousel } from \"react-responsive-carousel\";\nimport Icon from \"./Icon\";\nimport factoryWithThrowingShims from \"prop-types/factoryWithThrowingShims\";\n\nexport default class ScreenshotsUploadPreview extends Component {\n  static propTypes = {\n    images: PropTypes.array,\n    id: PropTypes.string.isRequired,\n    name: PropTypes.string.isRequired,\n    namePurge: PropTypes.string.isRequired,\n    label: PropTypes.string.isRequired,\n  };\n\n  static defaultProps = {\n    name: \"\",\n    namePurge: \"_purge\",\n    label: \"\",\n    images: [],\n  };\n  constructor(props) {\n    super(props);\n    this.state = { uploadedImages: this.props.images, removedImages: [], images: [] };\n  }\n\n  trash = (e, index) => {\n    e.preventDefault();\n    e.stopPropagation();\n\n    this.setState({\n      uploadedImages: this.state.uploadedImages.slice(0, index).concat(this.state.uploadedImages.slice(index + 1)),\n      removedImages: this.state.removedImages.concat(this.state.uploadedImages[index]),\n    });\n  };\n\n  renderThumbs = (images) => images.map((image) => <div>{image}</div>);\n\n  render() {\n    return (\n      <div className=\"flex flex-col flex-grow\">\n        <label htmlFor={this.props.id} className=\"form-label flex-no-grow\">\n          {this.props.label}\n        </label>\n        <div className=\"border bg-gray-100 border-gray-300 p-2 rounded flex-grow relative\">\n          <input multiple={true} type=\"file\" onChange={this.handleChange} name={this.props.name} id={this.props.id} />\n          {this.state.removedImages.map((image) => (\n            <input type=\"hidden\" name={this.props.namePurge} value={image.id} />\n          ))}\n          <Carousel showStatus={false} autoPlay={false} infiniteLoop={true} thumbWidth={110} renderThumbs={this.renderThumbs}>\n            {this.state.uploadedImages\n              .map((image, index) => (\n                <div key={`uploaded-${index}`} className=\"relative\">\n                  <span onClick={(e) => this.trash(e, index)} class=\"trash cursor-pointer absolute top-0 pb-1 pl-1 right-0 bg-gray-100 rounded-bl hover:text-red-500\">\n                    <Icon name=\"trash\" extraClasses=\"mr-0\" />\n                  </span>\n                  <img src={image.src} />\n                </div>\n              ))\n              .concat(\n                this.state.images.map((image, index) => (\n                  <div key={`new-${index}`} className=\"relative\">\n                    <img src={image.src} />\n                  </div>\n                ))\n              )}\n          </Carousel>\n        </div>\n      </div>\n    );\n  }\n\n  handleChange = (e) => {\n    const input = e.target;\n    if (input.files && input.files.length > 0) {\n      Promise.all(\n        [].map.call(\n          input.files,\n          (f) =>\n            new Promise((resolve, reject) => {\n              const reader = new FileReader();\n              reader.onload = resolve;\n              reader.readAsDataURL(f);\n            })\n        )\n      ).then((values) => {\n        this.setState({ images: values.map((e) => ({ src: e.target.result })) });\n      });\n    }\n  };\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport DropdownButton, { DropdownOption } from \"./DropdownButton\";\nimport Icon from \"./Icon\";\nimport qs from \"qs\";\n\nexport default class SortOptions extends Component {\n  static propTypes = {\n    extraClasses: PropTypes.string,\n    options: PropTypes.arrayOf(\n      PropTypes.shape({\n        query: PropTypes.string.isRequired,\n        label: PropTypes.string.isRequired,\n        icon: PropTypes.string.isRequired,\n      })\n    ).isRequired,\n  };\n\n  static defaultProps = {\n    options: [],\n    extraClasses: \"\",\n  };\n\n  constructor(props) {\n    super(props);\n    const search = qs.parse(document.location.search, {\n      ignoreQueryPrefix: true,\n    });\n    const option = this.props.options.find(\n      (option) => option.query === search.sort\n    );\n    this.state = { selected: option ? option.query : null };\n  }\n\n  valueToProps(value, option) {\n    return {\n      isActive: value === option.query,\n      value: option.query,\n    };\n  }\n\n  render() {\n    return (\n      <DropdownButton\n        onChange={this.changed}\n        extraClasses={this.props.extraClasses}\n      >\n        {this.props.options.map((option) => {\n          return (\n            <DropdownOption\n              key={option.label}\n              {...this.valueToProps(this.state.selected, option)}\n            >\n              <Icon name={option.icon} /> {option.label}\n            </DropdownOption>\n          );\n        })}\n      </DropdownButton>\n    );\n  }\n\n  changed = (option) => {\n    this.setState({ selected: option.props.value }, this.submit);\n  };\n\n  submit = () => {\n    const search = qs.parse(document.location.search, {\n      ignoreQueryPrefix: true,\n    });\n    Object.assign(search, { sort: this.state.selected, page: 1 });\n    document.location.assign(\n      document.location.pathname +\n        \"?\" +\n        qs.stringify(search, { arrayFormat: \"brackets\" })\n    );\n  };\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport TagSelector from \"./TagSelector\";\nimport qs from \"qs\";\n\nexport default class TagFilter extends Component {\n  static propTypes = {\n    taxonomy: PropTypes.arrayOf(\n      PropTypes.shape({\n        value: PropTypes.number.isRequired,\n        label: PropTypes.string.isRequired,\n      })\n    ).isRequired,\n    selected: PropTypes.arrayOf(\n      PropTypes.shape({\n        value: PropTypes.number.isRequired,\n        label: PropTypes.string.isRequired,\n      })\n    ).isRequired,\n  };\n\n  static defaultProps = {\n    taxonomy: [],\n    selected: [],\n  };\n\n  constructor(props) {\n    super(props);\n    // If we want to use async load of results, we need to change this.\n    this.state = {\n      selected: this.props.selected.map((tag) => tag.value),\n    };\n  }\n\n  render() {\n    return <TagSelector onChange={this.onChange} placeholder={\"Start typing...\"} {...this.props} />;\n  }\n\n  onChange = (value) => {\n    this.setState({ selected: value.map((tag) => tag.value) }, this.submit);\n  };\n\n  submit = () => {\n    const search = qs.parse(document.location.search, { ignoreQueryPrefix: true }) || {};\n    Object.assign(search, {\n      page: 1,\n      filter: Object.assign({}, search.filter || {}, { tags: this.state.selected }),\n    });\n    document.location.assign(document.location.pathname + \"?\" + qs.stringify(search, { arrayFormat: \"brackets\" }));\n  };\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Select, { SelectComponents, StylesConfig } from \"react-select\";\n\nconst colourStyles = {\n  control: (styles, { data }) => ({\n    ...styles,\n    backgroundColor: \"#F9FAFB\",\n    borderColor: \"#ddd\",\n    borderRadius: \"8px\",\n  }),\n  input: (styles, { data }) => ({\n    ...styles,\n    fontSize: \"13px\",\n  }),\n  valueContainer: (styles, { data }) => ({\n    ...styles,\n    padding: \"2px 5px\",\n  }),\n  multiValue: (styles, { data }) => {\n    return {\n      ...styles,\n      backgroundColor: \"#eee\",\n      color: \"#555\",\n    };\n  },\n  multiValueLabel: (styles, { data }) => ({\n    ...styles,\n    color: data.color,\n    fontSize: \"12px\",\n  }),\n  multiValueRemove: (styles, { data }) => ({\n    ...styles,\n    color: data.color,\n    backgroundColor: \"#e6e6e6\",\n    \":hover\": {\n      backgroundColor: \"#666\",\n      color: \"white\",\n    },\n  }),\n  menuList: (styles, { data }) => ({\n    ...styles,\n    fontSize: \"13px\",\n  }),\n  menuPortal: (styles, { data }) => ({\n    ...styles,\n    zIndex: \"1000\",\n  }),\n  placeholder: (styles, { data }) => ({\n    ...styles,\n    fontSize: \"13px\",\n  }),\n};\n\nconst Option = (props) => {\n  const { data, getStyles, innerRef, innerProps } = props;\n\n  return <div {...innerProps} ref={innerRef} />;\n};\n\nexport default class TagSelector extends Component {\n  static propTypes = {\n    onChange: PropTypes.func,\n    taxonomy: PropTypes.array.isRequired,\n    selected: PropTypes.array,\n  };\n\n  static defaultProps = {\n    onChange: null,\n    taxonomy: [],\n    selected: [],\n  };\n\n  render() {\n    return (\n      <Select\n        onChange={this.props.onChange}\n        defaultValue={this.props.selected}\n        closeMenuOnSelect={false}\n        isMulti\n        options={this.props.taxonomy}\n        name={\"company[tag_ids]\"}\n        delimiter={\",\"}\n        placeholder={this.props.placeholder || \"Start typing to see suggestions...\"}\n        className=\"react-select-container\"\n        classNamePrefix=\"react-select\"\n        menuPortalTarget={document.body}\n        styles={colourStyles}\n      />\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Icon from \"./Icon\";\n\nexport default class Toast extends Component {\n  static propTypes = {\n    type: PropTypes.string,\n    onDismiss: PropTypes.func,\n    message: PropTypes.string,\n    title: PropTypes.string,\n  };\n\n  static defaultProps = {\n    message: null,\n    title: \"Message\",\n    dismissable: true,\n    type: \"notice\",\n    onDismiss() {},\n  };\n\n  constructor(props) {\n    super(props);\n    this.state = { open: true };\n\n    // Automatically hide after 10 seconds\n    setTimeout(() => {\n      this.setState({ open: false });\n    }, 10000);\n  }\n\n  dismiss = () => {\n    if (this.props.dismissable) {\n      this.setState({ open: false }, this.props.onDismiss);\n    }\n  };\n\n  message() {\n    return {\n      __html: this.props.message,\n    };\n  }\n\n  render() {\n    const classes = [\"toast cursor-pointer\"];\n    classes.push(`toast-${this.props.type}`);\n\n    let icons = {\n      notice: \"👋\",\n      alert: \"🔔\",\n    };\n\n    return (\n      <div>\n        {this.state.open && (\n          <div className={classes.join(\" \")} onClick={this.dismiss}>\n            <div className=\"toast-header flex\">\n              <div className=\"flex-grow\">\n                <span className=\"mr-2\">{icons[this.props.type]}</span>\n                {this.props.title}\n              </div>\n              {this.props.dismissable && (\n                <div>\n                  <div className=\"rounded-full bg-white h-4 w-4 opacity-50 text-gray-800 text-center shadow-sm\">\n                    <Icon name=\"x\" extraClasses=\"w-3 align-middle block pl-1 opacity-70\" />\n                  </div>\n                </div>\n              )}\n            </div>\n            <div className=\"toast-content\" style={this.props.style} dangerouslySetInnerHTML={this.message()} />\n          </div>\n        )}\n      </div>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport Icon from \"./Icon\";\nimport PropTypes from \"prop-types\";\n\nexport default class ToggleElement extends Component {\n  static propTypes = {\n    toggleClass: PropTypes.string,\n    element: PropTypes.string,\n    copy: PropTypes.string,\n    icon: PropTypes.string,\n    linkid: PropTypes.string,\n  };\n\n  toggleElement = () => {\n    document.getElementById(this.props.element).classList.toggle(this.props.toggleClass);\n    document.getElementById(this.props.linkid).classList.toggle(\"hidden\");\n  };\n\n  render() {\n    return (\n      <div id={this.props.linkid} className=\"text-sm text-gray-500\">\n        <div className=\"cursor-pointer\" onClick={() => this.toggleElement()}>\n          <Icon name={this.props.icon} />\n          <span className=\"underline\">{this.props.copy}</span>\n        </div>\n      </div>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport ProductVideoPlayer from \"./ProductVideoPlayer\";\nimport PropTypes from \"prop-types\";\n\nexport default class VideoInputPreview extends Component {\n  static propTypes = {\n    id: PropTypes.string.isRequired,\n    name: PropTypes.string.isRequired,\n    label: PropTypes.string.isRequired,\n    defaultValue: PropTypes.string,\n    placeholder: PropTypes.string,\n  };\n\n  static defaultProps = {\n    defaultValue: null,\n    placeholder: \"Paste your url here\",\n  };\n\n  constructor(props) {\n    super(props);\n    this.state = { url: this.props.defaultValue };\n  }\n\n  render() {\n    return (\n      <>\n        <label htmlFor={this.props.id} class=\"form-label\">\n          {this.props.label}\n        </label>\n        <div class=\"form-input\">\n          <input\n            type=\"text\"\n            class=\"bg-transparent w-full\"\n            placeholder={this.props.placeholder}\n            name={this.props.name}\n            id={this.props.id}\n            value={this.state.url}\n            onChange={(e) => this.setState({ url: e.target.value })}\n          />\n          {this.state.url && (\n            <div class=\"mt-2\">\n              <ProductVideoPlayer url={this.state.url} />\n            </div>\n          )}\n        </div>\n      </>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport axios from \"../lib/axios\";\nimport cable from \"../lib/cable\";\n\nexport default class VisitTracker extends Component {\n  static propTypes = {\n    url: PropTypes.string.isRequired,\n    visitId: PropTypes.string.isRequired,\n  };\n\n  componentDidMount() {\n    this.subscribe();\n    window.addEventListener(\"beforeunload\", this.visitEnded);\n    document.addEventListener(\"turbolinks:before-visit\", this.visitEnded);\n    document.addEventListener(\"click\", this.clickHandler);\n  }\n\n  componentWillUnmount() {\n    this.unsubscribe();\n    window.removeEventListener('beforeunload', this.visitEnded);\n    document.removeEventListener('turbolinks:before-visit', this.visitEnded);\n    document.addEventListener('click', this.clickHandler);\n  }\n\n  subscribe() {\n    this.subscription = cable.subscriptions.create(\n      {\n        channel: \"VisitsChannel\",\n        visit_id: this.props.visitId,\n      },\n      { received: (data) => {} }\n    );\n  }\n\n  unsubscribe() {\n    if (this.subscription) {\n      this.subscription.unsubscribe();\n    }\n  }\n\n  render() {\n    return null;\n  }\n\n  visitEnded = (e) => {\n    this.unsubscribe();\n  };\n\n  clickHandler = (e) => {\n    if (e.target.id === \"company_deck\" || document.getElementById(\"company_deck\").contains(e.target)) {\n      this.visitDownload(e);\n    }\n  };\n\n  visitDownload = (e) => {\n    axios.put(this.props.url, { visit: { downloaded_deck: true } }).then((response) => {});\n  };\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Modal from \"./Modal\";\n\nexport default class VisitorInformationCollector extends React.Component {\n  static propTypes = {\n    url: PropTypes.string.isRequired,\n    company: PropTypes.shape({\n      name: PropTypes.string.isRequired\n    }).isRequired,\n  };\n\n  render() {\n    return (\n      <Modal>\n        <h1 className=\"text-center text-lg mb-4\">\n          Please enter your information to view <br />\n          <span className=\"font-bold\">{this.props.company.name}</span> on Pitch.vc\n        </h1>\n\n        <div className=\"text-center\">\n          <img src={this.props.company.logo} alt={this.props.company.name} className=\"mb-4 company-logo mx-auto\" />\n        </div>\n\n        <form action={this.props.url} method=\"post\">\n          <input type=\"hidden\" name=\"authenticity_token\" value={document.querySelector(\"meta[name='csrf-token']\").getAttribute(\"content\")} />\n\n          <label for=\"visit_name\" className=\"form-label\">Your name</label>\n          <input type=\"text\" id=\"visit_name\" name=\"visit[name]\" className=\"form-input\" placeholder=\"Your name\" />\n\n          <label for=\"visit_email\" className=\"form-label\">Your email</label>\n          <input type=\"email\" id=\"visit_email\" name=\"visit[email]\" className=\"form-input\" placeholder=\"Your email address\" />\n\n          <input className=\"button mt-4 w-full\" type=\"submit\" name=\"commit\" value=\"View the profile\" />\n\n          <p className=\"mt-4 text-gray-400 text-sm text-center w-3/4 mx-auto\">\n            This information will be used for Pitch.vc analytics and when you view other profiles on this device.\n          </p>\n        </form>\n      </Modal>\n    );\n  }\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\n\nexport default class WatchlistTVDisplay extends Component {\n  static propTypes = {\n    companies: PropTypes.array,\n  };\n\n  constructor(props) {\n    super(props);\n\n    this.state = {\n      currentCompany: 0,\n      numberOfCompanies: this.props.companies.length,\n      companies: this.props.companies,\n      slideDuration: 5000,\n    };\n  }\n\n  componentDidMount() {\n    let timer = setInterval(\n      () => this.rotateCompany(),\n      this.state.slideDuration\n    );\n  }\n\n  rotateCompany() {\n    this.setState({\n      currentCompany:\n        this.state.currentCompany < this.state.numberOfCompanies - 1\n          ? (this.state.currentCompany += 1)\n          : 0,\n    });\n  }\n\n  renderQR(company) {\n    return (\n      \"https://api.qrserver.com/v1/create-qr-code/?size=280x280&data=\" +\n      company.companyFullUrl +\n      \"?utm_source=tv\"\n    );\n  }\n\n  renderTags(company) {\n    return (\n      <div className=\"flex space-x-2\">\n        {company.tags.slice(0, 3).map(({ id, name }) => (\n          <div\n            key={id}\n            className=\"bg-gray-700 rounded text-white text-sm p-1 px-3 whitespace-nowrap\"\n          >\n            {name}\n          </div>\n        ))}\n      </div>\n    );\n  }\n\n  renderCompany(company) {\n    return (\n      <div className=\"flex space-x-16 p-16\">\n        <div className=\"w-1/2 space-y-12\">\n          <div>\n            <div className=\"mb-8\">\n              {company.logoUrl ? (\n                <img\n                  src={company.logoUrl}\n                  className=\"mb-8 h-20 w-auto\"\n                  alt={company.name}\n                />\n              ) : (\n                \"\"\n              )}\n              <h1 className=\"flex font-bold text-8xl\">{company.name}</h1>\n            </div>\n            {this.renderTags(company)}\n          </div>\n\n          <h2 className=\"font-medium leading-normal text-2xl mb-8 text-grey-300 text-pitchorange\">\n            {company.tagline}\n          </h2>\n          <div className=\"text-2xl leading-relaxed\">{company.description}</div>\n        </div>\n        <div className=\"w-1/2\">\n          <div className=\"mb-12 flex justify-end\">\n            <div className=\"bg-white rounded-lg flex-grow-0 overflow-hidden\">\n              <img\n                src={this.renderQR(company)}\n                alt=\"View this company profile on Pitch\"\n                className=\"h-48 mx-auto p-3 rounded bg-white\"\n              />\n\n              <div className=\"bg-pitchorange text-white text-center text-sm p-2\">\n                Scan for full Pitch profile\n              </div>\n            </div>\n          </div>\n          {company.productImageUrl ? (\n            <img\n              src={company.productImageUrl}\n              alt={company.name}\n              className=\"w-full h-auto flex-grow-0\"\n            />\n          ) : (\n            \"\"\n          )}\n        </div>\n      </div>\n    );\n  }\n\n  render() {\n    return (\n      <div>\n        {this.renderCompany(this.state.companies[this.state.currentCompany])}\n      </div>\n    );\n  }\n}\n","import axios from \"axios\";\n\n(function () {\n  const setup = function () {\n    const csrfToken = document.querySelector(\"meta[name=csrf-token]\").content;\n    axios.defaults.headers.common[\"X-CSRF-Token\"] = csrfToken;\n  };\n\n  axios.defaults.headers.common[\"X-Requested-With\"] = \"XMLHttpRequest\";\n\n  if (document.readyState === \"complete\") {\n    setup();\n  } else {\n    document.addEventListener(\"readystatechange\", (event) => {\n      if (event.target.readyState === \"complete\") {\n        setup();\n      }\n    });\n  }\n})();\n\nexport default axios;\n","import ActionCable from \"actioncable\";\n\nexport default ActionCable.createConsumer();\n"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","AddToList","Component","static","watchlistsUrl","PropTypes","isRequired","company","name","lists","title","constructor","props","super","this","state","visible","select","length","selectedList","close","setState","open","handleListPick","target","value","actionUrl","renderListSelect","React","type","class","onChange","disabled","l","className","renderListCreate","placeholder","render","onClick","Icon","extraClasses","Modal","onClose","action","method","document","querySelector","getAttribute","AttachmentUploadButton","preview","attachments","namePurge","uploadedAttachments","a","image","startsWith","src","removedAttachments","multiple","handleChange","attachment","AttachmentUploadPreview","trash","input","files","Promise","all","call","f","reject","reader","FileReader","onload","result","readAsDataURL","size","then","values","index","preventDefault","stopPropagation","slice","concat","mimeTypes","csv","iconForMime","t","typeFromIcon","file","video","music","package","ReactDOM","renderPreview","getElementById","renderImagePreview","renderAttachmentPreview","previews","key","completed","fillerStyles","width","style","BarChart","data","description","chartOnly","barColor","label","ChartJS","register","CategoryScale","LinearScale","BarElement","Title","Tooltip","Legend","defaults","font","Bar","options","responsive","elements","bar","borderRadius","plugins","legend","display","scales","x","ticks","color","padding","y","labels","datasets","v","backgroundColor","ChartEditor","url","companyProfileUrl","handleTitleChange","handleDescriptionChange","handleDataPointLabelChange","updatedPoints","dp","dpindex","handleDataPointValueChange","handleAddDataPoint","handleRemoveDataPoint","filter","handleSubmit","axios","datapoints","response","window","location","href","renderDataRow","datapoint","dataItems","_value","entries","push","onSubmit","htmlFor","autoComplete","CityFilter","cityList","selected","city","CitySelector","_extends","submit","search","qs","ignoreQueryPrefix","assign","page","cities","pathname","arrayFormat","colourStyles","control","styles","borderColor","fontSize","valueContainer","multiValue","multiValueLabel","multiValueRemove","menuList","menuPortal","zIndex","Select","defaultValue","closeMenuOnSelect","isMulti","delimiter","classNamePrefix","menuPortalTarget","body","ColumnSorter","col","dir","active","handleClick","asc","desc","CompanyJoinModal","user","email","undefined","logo","alt","for","readonly","i","toLowerCase","CopyButton","text","content","copied","copyToClipboard","textToCopy","navigator","clipboard","isSecureContext","writeText","createElement","position","left","top","appendChild","focus","res","rej","execCommand","remove","copySuccess","copyFail","renderToast","Toast","onDismiss","CurrencyInput","parse","replaceAll","parseInt","r","out","n","Math","floor","handleBlur","handleFocus","onBlur","onFocus","step","DateInput","Date","handleDateChange","date","DatePicker","peekNextMonth","showMonthDropdown","showYearDropdown","dropdownMode","placeholderText","toDateString","DefaultAvatar","DropdownButton","dropdownRef","activeChild","children","find","child","isActive","componentDidMount","addEventListener","handleClickOutside","componentWillUnmount","removeEventListener","current","contains","buttonClasses","join","ref","toggleDropdown","onMouseEnter","toggleHover","onMouseLeave","renderDropdown","hovering","changed","DropdownOption","EmailNotificationToggle","notificationAll","notificationSettingsUrl","suscribedAll","disableEmailNotifications","checkboxes","writeEmailNotifications","remote","_response","getElementsByClassName","checked","EndorsementModal","canEndorse","Endorsements","currentEndorsement","endorsementCount","endorsements","next","previous","taglineOrRole","endorsement","relationship","person","tagline","role","charAt","toUpperCase","renderEndorsement","avatarUrl","FollowButton","follows","followUrl","entityName","following","showAlert","toggleFollow","message","followed","unfollowed","FollowCardButton","FollowingFilterCheckbox","pageFilter","localStorage","setItem","getItem","handleCheckbox","event","defaultChecked","raisingFunds","toggleFundingUrl","toggleFunding","xlinkHref","Sprite","ImageUploadPreview","previewCss","uploadedImage","removedImage","dispatchEvent","Event","bubbles","showInput","LinkAwareTextarea","inputCss","linkName","dismissed","waiting","subscribe","unsubscribe","subscription","cable","subscriptions","create","channel","received","unfurled","detect","clearTimeout","throttle","setTimeout","matches","match","unfurl","indexOf","perform","image_url","dismiss","link","css","LogoUploadPreview","imageRemoveChecked","handleRemoveLogo","click","handleClose","ignoreClick","getElementsByTagName","MultiCompanySelector","defaultLogo","api","companies","logoUrl","query","suggestedCompanies","selectedCompanies","selectedSuggestion","handleKey","keyCode","handleSelect","handleUp","handleDown","handleCancel","timeout","param","addQueryPrefix","get","renderSuggestions","renderSelected","handleRemove","splice","min","max","handleSelection","findIndex","c","onKeyDown","NotificationSettingToggle","settingId","status","notificationSettingsStatus","suscribed","updateEmailNotifications","PermissionsBanner","put","seen_permissions_banner","PermissionsToggle","maxValue","shouldReload","valueToProps","option","params","permission","post","reload","ArcElement","borderWidth","PieChart","Pie","ProductCarousel","Carousel","showStatus","autoPlay","infiniteLoop","stopOnHover","thumbWidth","interval","ProductVideoPlayer","ReactPlayer","ProgressBar","percentage","PublishedToggleButton","published","ScreenshotsUploadPreview","images","uploadedImages","removedImages","renderThumbs","SortOptions","icon","sort","TagFilter","taxonomy","tag","TagSelector","tags","dismissable","__html","classes","notice","alert","dangerouslySetInnerHTML","ToggleElement","toggleClass","element","copy","linkid","toggleElement","classList","toggle","VideoInputPreview","VisitTracker","visitId","visitEnded","clickHandler","visit_id","visitDownload","visit","downloaded_deck","VisitorInformationCollector","WatchlistTVDisplay","currentCompany","numberOfCompanies","slideDuration","setInterval","rotateCompany","renderQR","companyFullUrl","renderTags","renderCompany","productImageUrl","setup","csrfToken","headers","common","readyState","ActionCable"],"sourceRoot":""}