{"version":3,"file":"Search.bundle.js","sources":["../../../Static/src/react/components/search/Input/Input.jsx","../../../Static/src/react/components/search/Button/Button.jsx","../../../Static/src/react/components/search/Suggestions/SuggestionsItem/SuggestionsItem.jsx","../../../Static/src/react/components/search/Suggestions/Suggestions.jsx","../../../Static/src/react/components/search/Search.jsx"],"sourcesContent":["import React, {Component} from 'react';\r\n\r\nexport default class Input extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n this.props.handleFocus(\"focus\")}\r\n onBlur={() => this.props.handleFocus(\"blur\")}\r\n onChange={this.props.handleInput} />\r\n )\r\n }\r\n}\r\n","import React, {Component} from 'react';\r\n\r\nexport default class Button extends Component {\r\n constructor(props) {\r\n super(props);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n )\r\n }\r\n}\r\n","import React, {Component} from 'react';\r\nimport * as settings from \"../../settings\";\r\n\r\nexport default class SuggestionsItem extends Component {\r\n constructor(props) {\r\n super(props);\r\n this.onLinkMouseDown = this.onLinkMouseDown.bind(this);\r\n this.getMarkup = this.getMarkup.bind(this);\r\n this.escapeRegExp = this.escapeRegExp.bind(this);\r\n this.handleMouseDown = this.handleMouseDown.bind(this);\r\n }\r\n\r\n onLinkMouseDown(e) {\r\n e.preventDefault();\r\n e.target.click();\r\n }\r\n\r\n escapeRegExp(string) {\r\n return string.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n }\r\n\r\n getMarkup(text) {\r\n let query = this.props.query.toLowerCase();\r\n let regExp = new RegExp(`(${this.escapeRegExp(query)})`, 'gi');\r\n let parts = text.split(regExp);\r\n\r\n return (\r\n \r\n {parts.map((part, i) => part.toLowerCase() === query ?\r\n {part} : part\r\n )}\r\n \r\n );\r\n }\r\n\r\n handleMouseDown(event) {\r\n event.stopPropagation();\r\n\r\n let target = event.target.classList.contains(\"search-component__suggestions-text\") ?\r\n event.target : event.target.closest(\".search-component__suggestions-text\");\r\n\r\n this.props.matchInputToSuggestionPick(target.childNodes[0].textContent);\r\n this.props.handleSuggestionClick(target);\r\n }\r\n\r\n render() {\r\n let itemContent;\r\n let searchableLabel;\r\n let nonSearchableLabel;\r\n\r\n if(this.props.searchableLabel) {\r\n searchableLabel = (\r\n \r\n {this.getMarkup(this.props.searchableLabel)}\r\n \r\n );\r\n }\r\n\r\n if(this.props.nonSearchableLabel) {\r\n nonSearchableLabel = (\r\n \r\n {this.props.nonSearchableLabel}\r\n \r\n );\r\n }\r\n\r\n if(this.props.url && !this.props.handleSuggestionClick) {\r\n itemContent = \r\n \r\n {this.getMarkup(this.props.content)}\r\n \r\n {nonSearchableLabel}\r\n {searchableLabel}\r\n \r\n } else {\r\n itemContent = \r\n \r\n {this.getMarkup(this.props.content)}\r\n \r\n {nonSearchableLabel}\r\n {searchableLabel}\r\n \r\n }\r\n\r\n return (\r\n