is not specified\n defaultAudioHeight: 140,\n autosizeProgress: false,\n audioVolume: 'vertical',\n // rate in milliseconds for Flash and Silverlight to fire the timeupdate event\n // larger number is less accurate, but less strain on plugin->JavaScript bridge\n timerRate: 1,\n // method that fires when the Flash or Silverlight object is ready\n // // path to Flash and Silverlight plugins\n // pluginPath: '/myjsfiles/',\n // // name of flash file\n // flashName: 'flashmediaelement.swf',\n // // name of silverlight file\n // silverlightName: 'silverlightmediaelement.xap',\n success: function (mediaElement, domObject) {\n var isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);\n\n // Get waveform for @track\n $('span.mejs__time-total, span.mejs__time-loaded, span.mejs__time-current').hide();\n $('.mejs__audio, .mejs__controls').css({\n 'background' : 'none'\n });\n\n // add event listener\n mediaElement.addEventListener('play', function(e) {\n global.EventHub.trigger('audioPlayerPlay', window.AudioPlayer.currentTrackData);\n that.playing = true;\n }, false);\n mediaElement.addEventListener('pause', function(e) {\n global.EventHub.trigger('audioPlayerStop');\n that.playing = false;\n }, false);\n mediaElement.addEventListener('ended', function(e) {\n global.EventHub.trigger('audioPlayerEnded');\n }, false);\n\n if (initialTrackId) {\n that.initTrack(initialTrackId);\n }\n\n if (initialSpeakerAudioId) {\n that.initSpeakerAudio(initialSpeakerAudioId);\n }\n\n if (initialSoundEffectId) {\n that.initSoundEffect(initialSoundEffectId);\n }\n },\n // fires when a problem is detected\n error: function () {\n\n }\n });\n },\n\n initTrack: function (track_id) {\n var that = this; // object\n\n $.ajax({\n url: \"/tracks/\" + track_id,\n dataType: 'json',\n success: function (data) {\n that.currentTrackData = data;\n that.updatePlayerWaveform(data);\n that.player.setSrc(data.stream_url);\n global.EventHub.trigger('updateTrackInfo', data);\n }\n });\n },\n\n initSpeakerAudio: function (speakerAudioId) {\n var that = this; // object\n $.ajax({\n url: \"/speaker_audios/\" + speakerAudioId,\n dataType: 'json',\n success: function (data) {\n that.currentTrackData = data;\n that.updatePlayerWaveform(data);\n that.player.setSrc(data.stream_url);\n global.EventHub.trigger('updateTrackInfo', data);\n }\n });\n },\n\n initSoundEffect: function (sound_effect_id) {\n var that = this; // object\n $.ajax({\n url: \"/sound_effects/\" + sound_effect_id,\n dataType: 'json',\n success: function (data) {\n that.currentTrackData = data;\n that.updatePlayerWaveform(data);\n that.player.setSrc(data.stream_url);\n global.EventHub.trigger('updateTrackInfo', data);\n }\n });\n },\n\n initAndPlayTrack: function (track_id) {\n var that = this,\n trackId = track_id[0]; // object\n\n if (this.currentTrackData.id === trackId) {\n if (this.playing) {\n this.player.pause();\n } else {\n this.player.setSrc(this.currentTrackData.stream_url);\n this.player.play()\n }\n } else {\n $.ajax({\n url: \"/tracks/\" + trackId,\n dataType: 'json',\n success: function (data) {\n that.currentTrackData = data;\n that.updatePlayerWaveform(data);\n that.playTrack(data.stream_url);\n global.EventHub.trigger('updateTrackInfo', data);\n }\n });\n }\n },\n\n initAndPlayTrackVariant: function (trackVariantId) {\n var that = this; // object\n\n $.ajax({\n url: \"/track_variants/\" + trackVariantId,\n dataType: 'json',\n success: function (data) {\n that.currentTrackData = data.track_data;\n that.updatePlayerWaveform(data.track_variant_data);\n that.playTrack(data.track_variant_data.stream_url);\n global.EventHub.trigger('updateTrackVariantInfo', data.track_data, data.track_variant_data);\n }\n });\n },\n\n initAndPlaySoundEffect: function (sound_effect_id) {\n var that = this,\n sound_effect_id = sound_effect_id[0]; // object\n\n if (this.currentTrackData.id === sound_effect_id) {\n if (this.playing) {\n this.player.pause();\n } else {\n this.player.setSrc(this.currentTrackData.stream_url);\n this.player.play()\n }\n } else {\n $.ajax({\n url: \"/sound-effects/\" + sound_effect_id,\n dataType: 'json',\n success: function (data) {\n that.currentTrackData = data;\n that.updatePlayerWaveform(data);\n that.playTrack(data.stream_url);\n global.EventHub.trigger('updateTrackInfo', data);\n }\n });\n }\n },\n\n initAndPlaySoundEffectVariant: function (soundEffectVariantId) {\n var that = this; // object\n\n $.ajax({\n url: \"/sound_effect_variants/\" + soundEffectVariantId,\n dataType: 'json',\n success: function (data) {\n that.currentTrackData = data.sound_effect_data;\n that.updatePlayerWaveform(data.sound_effect_variant_data);\n that.playTrack(data.sound_effect_variant_data.stream_url);\n global.EventHub.trigger('updateSoundEffectVariantInfo', data.sound_effect_data, data.sound_effect_variant_data);\n }\n });\n },\n\n initAndPlaySpeakerAudio: function (speakerAudioId) {\n var that = this,\n speakerAudioId = speakerAudioId[0]; // object\n\n if (this.currentTrackData.id === speakerAudioId) {\n if (this.playing) {\n this.player.pause();\n } else {\n this.player.setSrc(this.currentTrackData.stream_url);\n this.player.play()\n }\n } else {\n $.ajax({\n url: \"/speaker_audios/\" + speakerAudioId,\n dataType: 'json',\n success: function (data) {\n that.currentTrackData = data;\n that.updatePlayerWaveform(data);\n that.playTrack(data.stream_url);\n global.EventHub.trigger('updateTrackInfo', data);\n }\n });\n }\n },\n\n initAndPlayVoiceRecording: function (voiceRecordingId) {\n var that = this,\n voiceRecordingId = voiceRecordingId[0]; // object\n\n if (this.currentTrackData.id === voiceRecordingId) {\n if (this.playing) {\n this.player.pause();\n } else {\n this.player.setSrc(this.currentTrackData.stream_url);\n this.player.play()\n }\n } else {\n $.ajax({\n url: \"/voice_recordings/\" + voiceRecordingId,\n dataType: 'json',\n success: function (data) {\n that.currentTrackData = data;\n that.updatePlayerWaveform(data);\n that.playTrack(data.stream_url);\n global.EventHub.trigger('updateTrackInfo', data);\n }\n });\n }\n },\n\n updatePlayerWaveform: function (data) {\n let $waveformContainers = $('span.mejs__time-total, span.mejs__time-loaded, span.mejs__time-current'),\n imgcount = 3,\n $preloadWaveformContainer = $('#waveform_preload_container'),\n switchLength = 400,\n that = this;\n\n $waveformContainers.stop(true,true);\n $preloadWaveformContainer.empty();\n\n // Append dummy images\n $('#waveform_preload_container').append(' ');\n $('#waveform_preload_container').append(' ');\n $('#waveform_preload_container').append(' ');\n\n $waveformContainers.hide();\n\n \n $('#waveform_preload_container img').on('load', function() {\n imgcount--;\n if (imgcount < 1) {\n // console.log('all waveform images loaded!');\n $('#waveform_preload_container').fadeIn(switchLength, function() {\n $('span.mejs__time-total').css({\n 'background' : 'url(' + data.waveform_inactive + ')',\n 'background-size' : that.player.width + 'px 200px'\n });\n $('span.mejs__time-loaded').css({\n 'background' : 'url(' + data.waveform_loaded + ')',\n 'background-size' : that.player.width + 'px 200px'\n });\n $('span.mejs__time-current').css({\n 'background' : 'url(' + data.waveform_played + ')',\n 'background-size' : that.player.width + 'px 200px'\n });\n $waveformContainers.fadeIn(switchLength);\n imgcount = 3;\n });\n }\n });\n },\n\n playTrack: function (stream_url) {\n this.player.pause();\n this.player.setSrc(stream_url);\n this.player.load();\n this.player.play();\n },\n\n addEventListeners: function () {\n global.EventHub.on('playTrack', function() {\n var trackId = arguments[0];\n\n if (trackId) {\n this.initAndPlayTrack(trackId);\n }\n\n // scroll into view\n // $('html, body').animate({\n // scrollTop: $('#track-' + trackId).offset().top - 100\n // }, 300);\n\n }.bind(this));\n\n global.EventHub.on('playTrackVariant', function() {\n var trackVariantId = arguments[0][0];\n var trackId = arguments[0][1];\n\n if (trackVariantId) {\n this.initAndPlayTrackVariant(trackVariantId);\n }\n\n // scroll into view\n // $('html, body').animate({\n // scrollTop: $('#track-' + trackId).offset().top - 100\n // }, 300);\n\n }.bind(this));\n\n global.EventHub.on('playSoundEffect', function() {\n var sound_effect_id = arguments[0];\n\n if (sound_effect_id) {\n this.initAndPlaySoundEffect(sound_effect_id);\n }\n\n // scroll into view\n // $('html, body').animate({\n // scrollTop: $('#track-' + trackId).offset().top - 100\n // }, 300);\n\n }.bind(this));\n\n global.EventHub.on('playSoundEffectVariant', function() {\n var soundEffectVariantId = arguments[0][0];\n var sound_effect_id = arguments[0][1];\n\n if (soundEffectVariantId) {\n this.initAndPlaySoundEffectVariant(soundEffectVariantId);\n }\n\n // scroll into view\n // $('html, body').animate({\n // scrollTop: $('#track-' + trackId).offset().top - 100\n // }, 300);\n\n }.bind(this));\n\n global.EventHub.on('playSpeakerAudio', function() {\n var speakerAudioId = arguments[0];\n\n if (speakerAudioId) {\n this.initAndPlaySpeakerAudio(speakerAudioId);\n }\n\n // // scroll into view\n // $('html, body').animate({\n // scrollTop: $('[data-play-speaker-audio-id=' + speakerAudioId + ']').offset().top - 100\n // }, 300);\n\n }.bind(this));\n\n global.EventHub.on('playVoiceRecording', function() {\n var voiceRecordingId = arguments[0];\n\n if (voiceRecordingId) {\n this.initAndPlayVoiceRecording(voiceRecordingId);\n }\n\n // // scroll into view\n // $('html, body').animate({\n // scrollTop: $('[data-play-speaker-audio-id=' + speakerAudioId + ']').offset().top - 100\n // }, 300);\n\n }.bind(this));\n }\n};\n\nwindow.AudioPlayer = AudioPlayer;\n\nexport default AudioPlayer;\n","import React, { Component } from 'react';\n// import $ from 'jquery';\n\nclass CartItem extends Component{\n\n constructor(props) {\n super(props);\n\n this.playTrack = this.playTrack.bind(this);\n this.handleRemoveClick = this.handleRemoveClick.bind(this);\n\n this.state = {\n playing: false\n };\n }\n\n componentDidMount() {\n let that = this;\n\n global.EventHub.on('audioPlayerPlay', function(data) {\n if (data[0].id === that.props.id) {\n that.setState({\n playing : true\n });\n }\n });\n\n\n global.EventHub.on('audioPlayerStop', function() {\n if (that.state.playing) {\n that.setState({\n playing : false\n });\n }\n });\n\n global.EventHub.on('audioPlayerEnded', function() {\n if (that.state.playing) {\n that.setState({\n playing : false\n });\n }\n });\n }\n\n handleRemoveClick(e) {\n let cartItemId = this.props.id,\n updateUrl;\n\n e.preventDefault();\n\n if (this.props.exposure_pack_id) {\n updateUrl = \"/cart?exposure_pack_id=\" + this.props.exposure_pack_id + \"&usage_license_type_id=\" + this.props.usageLicenseType.id + \"&remove=true\";\n } else if (this.props.sound_effect_id) {\n updateUrl = \"/cart?sound_effect_id=\" + this.props.sound_effect_id + \"&usage_license_type_id=\" + this.props.usageLicenseType.id + \"&remove=true\";\n } else {\n updateUrl = \"/cart?track_id=\" + this.props.id + \"&usage_license_type_id=\" + this.props.usageLicenseType.id + \"&remove=true\";\n }\n\n $.ajax({\n url: updateUrl,\n type: 'POST'\n }).done(function(data) {\n global.EventHub.trigger('updateCart', data)\n }.bind(this))\n }\n\n playTrack(e) {\n e.preventDefault();\n if (this.props.sound_effect_id) {\n global.EventHub.trigger('playSoundEffect', this.props.sound_effect_id);\n } else {\n global.EventHub.trigger('playTrack', this.props.id);\n }\n\n global.EventHub.trigger('updateTrackInfo', this.props);\n\n this.setState({\n playing: !this.state.playing\n });\n }\n\n render() {\n let price;\n\n if (this.props.discount) {\n price = this.props.usageLicenseType.formatted_country_discount_gross_price;\n } else if (this.props.includedInSubscription) {\n price = this.props.locale === 'de' ? 'kostenlos' : 'free';\n } else {\n price = this.props.usageLicenseType.formatted_country_gross_price;\n }\n\n return (\n \n )\n }\n};\n\nexport default CartItem;","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames/bind';\nimport CartItem from '~/components/legacy/CartItem.jsx';\n\nclass Cart extends Component {\n\n constructor(props) {\n super(props);\n\n\n this.cartList = null;\n\n this.setCartListRef = element => {\n this.cartList = element;\n };\n\n this.handleClick = this.handleClick.bind(this);\n\n this.state = {\n opened: false,\n currencySymbol: '€',\n recentlyUpdated : false,\n data : this.props.data\n };\n }\n\n // getInitialState: function() {\n // return {\n // opened: false,\n // currencySymbol: '€',\n // recentlyUpdated : false,\n // data : this.props.data\n // };\n // },\n\n // getDefaultProps : function() {\n // return {\n // data : [],\n // subscribedUsageLicenseTypes: [],\n // flatrateDownloadsToday: 0,\n // flatrateDownloadLimit: 0,\n // usage_license_types: [],\n // i18n : {\n // free: 'for free',\n // checkout_now: 'Checkout now',\n // shopping_cart: 'Shopping cart'\n // }\n // }\n // },\n\n componentDidMount() {\n global.EventHub.on('updateCart', function(data) {\n let that = this;\n\n if (data[0].length === this.state.data.length - 1) {\n // item was removed, we omit animations\n that.setState({data: data[0]})\n } else {\n setTimeout(function() {\n that.setState({data: data[0], 'recentlyUpdated': true});\n }, 850)\n\n setTimeout(function() {\n that.setState({'recentlyUpdated': false});\n }, 2000);\n }\n\n if (data[0].length === 0) {\n this.setState({'opened': false});\n }\n\n }.bind(this));\n\n global.EventHub.on('menuFavoritesOpened', function() {\n this.setState({'opened': false});\n }.bind(this));\n\n global.EventHub.on('closePopupMenus', function() {\n this.setState({'opened': false});\n }.bind(this));\n }\n\n handleClick() {\n if (!this.state.opened) {\n global.EventHub.trigger('menuCartOpened');\n }\n\n this.setState({opened: !this.state.opened});\n }\n\n cartIsFree() {\n let isFree = false;\n\n if (this.state.data) {\n isFree = true;\n\n this.state.data.forEach(function(cartItem) {\n if (!this.props.subscribedUsageLicenseTypes.includes(cartItem.usage_license_type_id)) {\n isFree = false;\n }\n }.bind(this))\n }\n\n return isFree;\n }\n\n getUsageLicenseTypeById(usageLicenseTypeId) {\n let match;\n\n this.props.usage_license_types.forEach(function(usageLicenseType) {\n if (usageLicenseType.id === usageLicenseTypeId) {\n match = usageLicenseType;\n }\n });\n\n return match;\n }\n\n render() {\n let cartItems = [],\n submitButton,\n classes,\n limitHeading;\n\n if (this.state.data) {\n cartItems = this.state.data.map(function (cartItem, index) {\n return (\n \n );\n }.bind(this));\n }\n\n classes = classNames({\n 'cart': true,\n 'cart--filled' : cartItems.length !== 0,\n 'is-open' : this.state.opened,\n 'is-closed' : !this.state.opened,\n 'is-empty' : cartItems.length === 0,\n 'is-recently-updated' : this.state.recentlyUpdated\n });\n\n if (this.props.subscribedUsageLicenseTypes.length > 0) {\n limitHeading = (\n \n
{this.props.locale === 'de' ? 'Heutige Abo-Downloads:' : 'Subscription downloads today:'} ({this.props.flatrateDownloadsToday} / {this.props.flatrateDownloadLimit})
\n
\n )\n }\n\n submitButton = (function() {\n let buttonText = this.props.i18n.checkout_now;\n\n if (this.cartIsFree()) {\n buttonText = this.props.locale === 'de' ? 'Zum Download' : 'Proceed to download';\n }\n\n return (\n {buttonText} \n );\n }.bind(this))();\n\n if (this.state.opened) {\n if (cartItems.length > 0) {\n return (\n \n
\n
\n {cartItems.length} \n
\n
\n \n \n
\n
\n
\n
\n
{this.props.i18n.shopping_cart} ({cartItems.length})
\n
\n {limitHeading}\n
\n {cartItems}\n
\n {submitButton}\n
\n
\n
\n )\n } else {\n return (\n \n
\n
\n {cartItems.length} \n
\n
\n \n \n
\n
\n )\n }\n } else {\n return (\n \n
0 ? this.handleClick : (function(){})}>\n
\n {cartItems.length} \n
\n
\n \n \n
\n {cartItems}\n
\n {submitButton}\n
\n
\n
\n
\n )\n }\n }\n};\n\nCart.defaultProps = {\n data : [],\n subscribedUsageLicenseTypes: [],\n flatrateDownloadsToday: 0,\n flatrateDownloadLimit: 0,\n usage_license_types: [],\n i18n : {\n free: 'for free',\n checkout_now: 'Checkout now',\n shopping_cart: 'Shopping cart'\n }\n}\n\n\n// INIT\n\nlet elements = document.querySelectorAll('[data-react-component=Cart]');\n\nelements.forEach(function(element) {\n let reactProps = JSON.parse(element.dataset.reactProps);\n\n ReactDOM.render(\n \n \n ,\n element\n );\n})\n\nexport default Cart;","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n\nclass SearchTabName extends Component {\n\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n this.props.handleChange(this.props.index);\n }\n\n getItemNameForItemId(id) {\n let title = '';\n this.props.items.forEach(function(item) {\n if (item['id'] === id) {\n title = item['name'];\n }\n });\n\n return title;\n }\n\n render() {\n let classes = classNames({\n 'search-tab__name' : true,\n 'search-tab__name--active' : this.props.active === true,\n 'search-tab__name--highlighted' : this.props.highlighted === true,\n }),\n icon,\n counter,\n label;\n\n if (this.props.iconClassName) {\n icon = ;\n }\n\n if (this.props.counter && this.props.counter > 1) {\n counter = +{this.props.counter - 1} ;\n }\n\n if (this.props.proFilter) {\n if (this.props.activeItems === 0) {\n label = (\n {this.props.locale === 'de' ? 'Alle Tracks (P.R.O. und GEMAfrei)' : 'All tracks (P.R.O. and royalty free)'} \n )\n } else if (this.props.activeItems === 1) {\n label = (\n {this.props.locale === 'de' ? 'P.R.O. Tracks (nicht GEMA-frei)' : 'P.R.O. tracks'} \n )\n } else {\n label = (\n {this.props.locale === 'de' ? 'GEMAfrei' : 'Royalty free (non P.R.O.)'} \n )\n }\n } else {\n label = (\n \n {(this.props.activeItems.length > 0) ? this.getItemNameForItemId(this.props.activeItems[0]) : this.props.title}\n {counter}\n \n )\n }\n\n return (\n \n );\n }\n};\n\nexport default SearchTabName;\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n\nimport SearchTabName from '~/components/legacy/SearchTabName.jsx';\n\nclass SearchTabs extends Component {\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n\n this.state = {\n activeTab : 0\n }\n }\n\n componentDidMount() {\n this.setState({\n activeTab : this.props.activeTab\n });\n\n global.EventHub.on('fireSearch', function() {\n this.setState({\n activeTab : 0\n });\n }.bind(this));\n\n global.EventHub.on('closePopupMenus', function() {\n this.setState({activeTab: 0});\n }.bind(this));\n }\n\n handleChange(newIndex) {\n this.setState({\n activeTab : this.state.activeTab === newIndex ? 0 : newIndex\n });\n\n global.EventHub.trigger('searchTabNavClicked');\n }\n\n // getTabNavChildren() {\n // var children = this.props.children,\n // activeTabIndex = this.state.activeTab,\n // index = 0,\n // handleChange = this.handleChange;\n\n // return React.Children.map(children, function(child) {\n // index += 1;\n\n // return (\n // \n // )\n // });\n // }\n\n getTabContentChildren() {\n var children = this.props.children,\n activeTabIndex = this.state.activeTab,\n index = 0,\n handleChange = this.handleChange;\n\n return React.Children.map(children, function(child) {\n\n index += 1;\n\n if (child.props.itemNames) {\n return React.Children.map(child.props.children, function(tabContent) {\n var classesSearchTab = classNames({\n 'search-tab' : true,\n 'search-tab--last' : (index === children.length),\n 'search-tab--instruments' : (child.props.itemNames === 'instruments'),\n 'search-tab--moods' : (child.props.itemNames === 'moods'),\n 'search-tab--genres' : (child.props.itemNames === 'genres')\n });\n\n return (\n \n \n {index === activeTabIndex ? tabContent : ''}\n
\n )\n });\n } else {\n // length inputs & query input\n return child;\n }\n\n\n });\n }\n\n // \n // {tabContent}\n // \n\n render() {\n let classes = classNames({\n 'search-tabs' : true,\n 'search-tabs--horizontal' : this.props.alignment === 'horizontal',\n 'search-tabs--vertical' : this.props.alignment === 'vertical'\n });\n\n return (\n \n {this.getTabContentChildren()}\n
\n )\n\n }\n};\n\nSearchTabs.defaultProps = {\n activeTab : 0,\n alignment : 'horizontal' // 'horizontal' or 'vertical'\n}\n\nexport default SearchTabs;\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n\nclass SearchTab extends Component {\n\n constructor(props) {\n super(props)\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n this.props.handleChange(this.props.index);\n }\n\n render() {\n let classes = classNames({\n 'search-tab' : true,\n 'search-tab--active' : this.props.active === true,\n 'search-tab--last' : this.props.last === true,\n }),\n tabContent;\n\n tabContent = this.props.children;\n\n return (\n \n {tabContent}\n
\n );\n }\n};\n\nexport default SearchTab;\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n\nclass SearchTabContentItem extends Component {\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n }\n\n handleClick(e) {\n e.preventDefault();\n\n this.props.submitMenuItemClick(this.props.menuName, this.props.id);\n }\n\n render() {\n let classes = classNames({\n 'search-tab__content-item' : true,\n 'search-tab__content-item--active' : this.props.active,\n 'search-tab__content-item--remove-style' : this.props.removeStyling\n });\n\n let deleteLink;\n\n if (this.props.removeStyling) {\n deleteLink = ( )\n }\n\n return (\n \n {this.props.name}{deleteLink}\n \n )\n\n }\n};\n\nSearchTabContentItem.defaultProps = {\n id : '',\n name: '',\n active : false,\n menuName : 'genre'\n}\n\nexport default SearchTabContentItem;\n","import React, { Component } from 'react';\nimport SearchTabContentItem from '~/components/legacy/SearchTabContentItem.jsx';\n\nclass SearchTabContent extends Component {\n isActive(itemId) {\n let i,\n activeItemsLength = this.props.activeItems.length;\n\n for (i = 0; i < activeItemsLength; i += 1) {\n if (this.props.activeItems[i] === itemId) {\n return true;\n }\n }\n\n return false;\n }\n\n render() {\n\n let popularHeading,\n allHeading,\n activeItems = [];\n\n this.props.activeItems.map(function (itemId, index) {\n console.log(\"itemId\", itemId);\n activeItems.push(this.props.items.filter(function(el) {\n console.log(\"el.id\", el.id);\n return el.id === itemId;\n }));\n }.bind(this));\n\n activeItems = activeItems.flat();\n\n activeItems = activeItems.map(function(item, index) {\n console.log('item', item);\n return (\n \n );\n }.bind(this));\n\n var prioItems = this.props.items.map(function (item, index) {\n if (typeof item.prio !== 'undefined' && item.prio) {\n return (\n \n );\n }\n }.bind(this)).filter(function (el) {\n return el != null;\n });\n\n\n var items = this.props.items.map(function (item, index) {\n if (typeof item.prio === 'undefined' || !item.prio) {\n return (\n \n );\n }\n }.bind(this)).filter(function (el) {\n return el != null;\n });\n\n console.log('activeItems: ', activeItems);\n console.log('prioItems: ', prioItems);\n console.log('items: ', items);\n\n if (prioItems.length > 0) {\n popularHeading = ({this.props.locale === 'de' ? 'Beliebt' : 'popular'}
);\n allHeading = ({this.props.locale === 'de' ? 'Alle' : 'all'}
);\n }\n\n return (\n \n
\n {activeItems}\n {popularHeading}\n {prioItems}\n {allHeading}\n {items}\n
\n
\n )\n\n }\n};\n\nSearchTabContent.defaultProps = {\n items: [\n {\n id : '',\n name: '',\n active : false,\n prio: false\n }\n ],\n activeItems : [], // [0, 1, 2]\n name: 'genre'\n};\n\nexport default SearchTabContent;\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n\nclass SearchTabFilterContentItem extends Component {\n constructor(props) {\n super(props);\n \n this.handleClick = this.handleClick.bind(this); \n }\n\n handleClick(e) {\n e.preventDefault();\n\n this.props.submitMenuItemClick(this.props.menuName, this.props.id);\n }\n\n render() {\n let classes = classNames({\n 'search-tab__content-filter-item' : true,\n 'search-tab__content-filter-item--active' : this.props.active\n });\n\n return (\n \n
\n
{this.props.heading} \n
\n
\n
\n )\n\n }\n};\n\nSearchTabFilterContentItem.defaultProps = {\n id : '',\n name: '',\n active : false,\n menuName : 'genre'\n}\n\nexport default SearchTabFilterContentItem;","import React, { Component } from 'react';\nimport SearchTabFilterContentItem from '~/components/legacy/SearchTabFilterContentItem.jsx';\n\nclass SearchTabFilterContent extends Component {\n constructor(props) {\n super(props);\n }\n\n isExtendedFilterActive(category, value) {\n let isActive = false;\n\n this.props.activeItems.forEach(function(activeItem) {\n if (activeItem.name === category && activeItem.value === value) {\n isActive = true;\n }\n });\n\n return isActive;\n }\n\n render() {\n let items = this.props.items.map(function (item, index) {\n return (\n \n );\n }.bind(this)).filter(function (el) {\n return el != null;\n });\n\n\n return (\n \n )\n\n }\n};\n\nSearchTabFilterContent.defaultProps = {\n items: [\n {\n id : '',\n name: '',\n active : false,\n prio: false\n }\n ],\n activeItems : [], // [0, 1, 2]\n name: 'extendedFilters'\n};\n\nexport default SearchTabFilterContent;\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n\nclass SearchTabProFilterContentItem extends Component {\n constructor(props) {\n super(props);\n \n this.handleClick = this.handleClick.bind(this); \n }\n\n handleClick(e) {\n e.preventDefault();\n\n this.props.submitMenuItemClick(this.props.menuName, this.props.id);\n }\n\n render() {\n let classes = classNames({\n 'search-tab__content-filter-item' : true,\n 'search-tab__content-filter-item--active' : this.props.active\n });\n\n return (\n \n
\n
{this.props.heading} \n
\n
\n
\n )\n\n }\n};\n\nSearchTabProFilterContentItem.defaultProps = {\n id : '',\n name: '',\n active : false,\n menuName : 'genre'\n}\n\nexport default SearchTabProFilterContentItem;","import React, { Component } from 'react';\nimport SearchTabProFilterContentItem from '~/components/legacy/SearchTabProFilterContentItem.jsx';\n\nclass SearchTabProFilterContent extends Component {\n constructor(props) {\n super(props);\n }\n\n isProFilterActive(category, value) {\n let isActive = false;\n\n this.props.activeItems.forEach(function(activeItem) {\n if (activeItem.name === category && activeItem.value === value) {\n isActive = true;\n }\n });\n\n return isActive;\n }\n\n render() {\n let items = this.props.items.map(function (item, index) {\n return (\n \n );\n }.bind(this)).filter(function (el) {\n return el != null;\n });\n\n\n return (\n \n )\n\n }\n};\n\nSearchTabProFilterContent.defaultProps = {\n items: [\n {\n id : '',\n name: '',\n active : false,\n prio: false\n }\n ],\n activeItems : [], // [0, 1, 2]\n name: 'proFilters'\n};\n\nexport default SearchTabProFilterContent;\n","import React, { Component } from 'react';\n\nclass SearchMenuLengthInputs extends Component {\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n\n }\n\n handleChange(e) {\n let $minInputValue = parseInt($(this.refs.minField).val(), 10),\n $maxInputValue = parseInt($(this.refs.maxField).val(), 10);\n\n if (typeof tempoLengthChangeTimeout !== 'undefined') {\n clearTimeout(tempoLengthChangeTimeout);\n }\n\n this.props.submitLengthChange($minInputValue, $maxInputValue);\n\n window.tempoLengthChangeTimeout = setTimeout(function() {\n global.EventHub.trigger('queryInputSubmit');\n }, 500);\n }\n\n handleKeyPress(e) {\n if (e.key === 'Enter'){\n global.EventHub.trigger('queryInputSubmit');\n }\n }\n\n render() {\n return (\n \n )\n }\n};\n\nSearchMenuLengthInputs.defaultProps = {\n submitLengthChange : undefined\n}\n\nexport default SearchMenuLengthInputs;\n","import React, { Component } from 'react';\n\nclass SearchMenuQueryInput extends Component {\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n\n this.queryField = null;\n\n this.setQueryField = element => {\n this.queryField = element;\n };\n }\n\n componentDidMount() {\n // let $input = $(this.refs.queryField),\n // availableTags = this.props.autocompletion,\n // that = this;\n\n // function split( val ) {\n // return val.split( /,\\s*/ );\n // }\n\n // function extractLast( term ) {\n // return split(term).pop();\n // }\n\n // // if ($input.length > 0) {\n // // availableTags = this.props.autocompletion.split(', ');\n // // }\n\n // $input\n // // don't navigate away from the field on tab when selecting an item\n // .bind( \"keydown\", function( event ) {\n // if ( event.keyCode === $.ui.keyCode.TAB &&\n // $( this ).autocomplete( \"instance\" ).menu.active ) {\n // event.preventDefault();\n // }\n // })\n // .autocomplete({\n // minLength: 1,\n // autoFocus: false,\n\n // source: function( request, response ) {\n // let re = $.ui.autocomplete.escapeRegex(extractLast( request.term ));\n // let matcher = new RegExp( \"^\" + re, \"i\" );\n // let suggestions = $.grep( availableTags, function(item,index){\n // return matcher.test(item);\n // });\n\n // // delegate back to autocomplete, but extract the last term\n // response( $.ui.autocomplete.filter(\n // suggestions, extractLast( request.term ) ).slice(0, 20) );\n\n // },\n // focus: function() {\n // // prevent value inserted on focus\n // return false;\n // },\n // select: function( event, ui ) {\n // let terms = split( this.value );\n // // remove the current input\n // terms.pop();\n // // add the selected item\n // terms.push( ui.item.value );\n // // add placeholder to get the comma-and-space at the end\n // terms.push( \"\" );\n // this.value = terms.join( \", \" );\n\n // that.props.submitQueryChange(this.value);\n\n // return false;\n // }\n // });\n }\n\n handleChange(e) {\n this.props.submitQueryChange(e.target.value);\n }\n\n handleKeyUp(e) {\n if (e.which === 13) {\n global.EventHub.trigger('queryInputSubmit');\n }\n }\n\n render() {\n return (\n \n \n \n
\n )\n }\n};\n\nSearchMenuQueryInput.defaultProps = {\n query : '',\n submitQueryChange : undefined,\n placeholder : 'z.B. Urlaub Gitarre fröhlich',\n autocompletion : '' \n}\n\nexport default SearchMenuQueryInput;","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames/bind';\n// import $ from 'jquery';\n\nimport SearchTabs from '~/components/legacy/SearchTabs.jsx';\nimport SearchTab from '~/components/legacy/SearchTab.jsx';\nimport SearchTabContent from '~/components/legacy/SearchTabContent.jsx';\nimport SearchTabFilterContent from '~/components/legacy/SearchTabFilterContent.jsx';\nimport SearchTabProFilterContent from '~/components/legacy/SearchTabProFilterContent.jsx';\nimport SearchMenuLengthInputs from '~/components/legacy/SearchMenuLengthInputs.jsx';\nimport SearchMenuQueryInput from '~/components/legacy/SearchMenuQueryInput.jsx';\n\nclass Search extends Component {\n\n constructor(props) {\n super(props);\n\n this.searchRef = null;\n\n this.setSearchRef = element => {\n this.searchRef = element;\n };\n\n this.handleTempoChange = this.handleTempoChange.bind(this);\n this.toggleTempoSearch = this.toggleTempoSearch.bind(this);\n this.handleSubmitSearchClick = this.handleSubmitSearchClick.bind(this);\n this.submitQueryClick = this.submitQueryClick.bind(this);\n this.submitMenuItemClick = this.submitMenuItemClick.bind(this);\n this.submitQueryChange = this.submitQueryChange.bind(this);\n this.submitMinLengthClick = this.submitMinLengthClick.bind(this);\n this.submitMaxLengthClick = this.submitMaxLengthClick.bind(this);\n this.submitLengthChange = this.submitLengthChange.bind(this);\n this.submitExtendedFilterChange = this.submitExtendedFilterChange.bind(this);\n this.submitProFilterChange = this.submitProFilterChange.bind(this);\n this.isExtendedFilterChecked = this.isExtendedFilterChecked.bind(this);\n this.isProFilterChecked = this.isProFilterChecked.bind(this);\n this.sendPaginationSearchQuery = this.sendPaginationSearchQuery.bind(this);\n\n this.state = {\n query: '',\n genres: [],\n instruments: [],\n moods: [],\n tags: [],\n instoreTags: [],\n minTempo: 80,\n maxTempo: 140,\n tempoSearchActive: false,\n page: this.props.initialSearchQuery.page ? parseInt(this.props.initialSearchQuery.page, 10) : 1,\n composers: [],\n completedQuery: '',\n minLength: '',\n maxLength: '',\n free: false,\n sortDirection: '',\n exposurePackId: '',\n mediaBundleId: '',\n labelId: '',\n albumId: '',\n sortBy: '',\n trackId: this.props.initialSearchQuery.track_id,\n extendedFilters: {\n drums: 0,\n vocals: 0,\n withVariants: 0,\n loop: 0\n },\n proFilter: (typeof this.props.initialSearchQuery.include_pro === 'undefined') ? 2 : this.props.initialSearchQuery.include_pro\n };\n }\n\n UNSAFE_componentWillMount() {\n let stateObject = {},\n searchCloudItemIds = [];\n\n for (let searchCategory in this.props.initialSearchQuery) {\n if (this.props.initialSearchQuery.hasOwnProperty(searchCategory)) {\n\n if (searchCategory === 'query' && this.props.initialSearchQuery[searchCategory].length > 0) {\n this.setState({ query: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'minTempo' && this.props.initialSearchQuery[searchCategory] > 0 && this.props.initialSearchQuery.tempoSearchActive) {\n this.setState({ minTempo: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'maxTempo' && this.props.initialSearchQuery[searchCategory] > 0 && this.props.initialSearchQuery.tempoSearchActive) {\n this.setState({ maxTempo: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'minLength' && this.props.initialSearchQuery[searchCategory] >= 0) {\n this.setState({ minLength: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'maxLength' && parseInt(this.props.initialSearchQuery[searchCategory]) >= 0) {\n this.setState({ maxLength: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'trackId') {\n this.setState({ trackId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'exposurePackId') {\n this.setState({ exposurePackId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'mediaBundleId') {\n this.setState({ mediaBundleId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'labelId') {\n this.setState({ labelId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'albumId') {\n this.setState({ albumId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'free') {\n if (this.props.initialSearchQuery[searchCategory]) {\n this.setState({ free: this.props.initialSearchQuery[searchCategory] });\n }\n } else if (searchCategory === 'page') {\n if (this.props.initialSearchQuery[searchCategory]) {\n this.setState({ page: parseInt(this.props.initialSearchQuery[searchCategory], 10) });\n }\n } else {\n stateObject = {};\n searchCloudItemIds = [];\n\n for (let i = 0; i < this.props.initialSearchQuery[searchCategory].length; i += 1) {\n searchCloudItemIds.push(this.props.initialSearchQuery[searchCategory][i]);\n }\n\n stateObject[searchCategory] = searchCloudItemIds;\n this.setState(stateObject);\n }\n }\n }\n }\n\n componentDidMount() {\n this.setStateViaUrlParams();\n\n global.EventHub.on('queryInputSubmit', function () {\n this.sendSearchQuery();\n }.bind(this));\n\n global.EventHub.on('paginationClick', this.sendPaginationSearchQuery);\n\n global.EventHub.on('changeSort', function (payload) {\n if (payload[0]) {\n this.setState({ sortDirection: payload[0].sortDirection, sortBy: payload[0].sortBy }, function () {\n this.sendSearchQuery();\n });\n }\n }.bind(this));\n\n global.EventHub.on('trackTagClick', function (payload) {\n if (payload[0]) {\n if (this.state.tags.indexOf(payload[0]) > -1) {\n let index = this.state.tags.indexOf(payload[0]);\n let tags = this.state.tags;\n\n tags.splice(index, 1)\n\n this.setState({ tags: tags }, function () {\n this.sendSearchQuery();\n });\n\n } else {\n this.setState({ tags: [payload[0]] }, function () {\n this.sendSearchQuery();\n });\n }\n\n }\n }.bind(this));\n\n global.EventHub.on('trackGenreClick', function (payload) {\n if (payload[0]) {\n if (this.state.genres.indexOf(payload[0]) > -1) {\n let index = this.state.genres.indexOf(payload[0]);\n let genres = this.state.genres;\n\n genres.splice(index, 1)\n\n this.setState({ genres: genres }, function () {\n this.sendSearchQuery();\n });\n\n } else {\n this.setState({ genres: [payload[0]] }, function () {\n this.sendSearchQuery();\n });\n }\n }\n }.bind(this));\n\n global.EventHub.on('trackMoodClick', function (payload) {\n if (payload[0]) {\n if (this.state.moods.indexOf(payload[0]) > -1) {\n let index = this.state.moods.indexOf(payload[0]);\n let moods = this.state.moods;\n\n moods.splice(index, 1)\n\n this.setState({ moods: moods }, function () {\n this.sendSearchQuery();\n });\n\n } else {\n this.setState({ moods: [payload[0]] }, function () {\n this.sendSearchQuery();\n });\n }\n\n }\n }.bind(this));\n\n\n global.EventHub.on('requestUpdateTrackListing', function () {\n this.sendSearchQuery(true, true);\n }.bind(this));\n }\n\n sendPaginationSearchQuery(pageNumber) {\n this.setState({ page: pageNumber }, function () {\n this.sendSearchQuery(true);\n });\n }\n\n setStateViaUrlParams() {\n this.setQueryFromUrl(); \n this.setExtendedFiltersFromUrl();\n this.setIdsFromUrlFor('genre');\n this.setIdsFromUrlFor('instrument');\n this.setIdsFromUrlFor('mood');\n this.setIdsFromUrlFor('tag');\n this.setTempoFromUrl();\n this.setLabelFromUrl();\n this.setLengthFromUrl();\n this.setSortFromUrl();\n }\n\n setQueryFromUrl() {\n let regex = /\\q\\=([\\w\\+\\d\\%,-]*)/g,\n matches = regex.exec(document.location.search),\n matchesLength,\n queryText;\n\n if (matches !== null) {\n matchesLength = matches.length;\n for (let i = 0; i < matchesLength; i += 1) {\n queryText = matches[i].replace(/\\+/g, ' ');\n }\n this.setState({ query: decodeURI(queryText), completedQuery: decodeURI(queryText) });\n }\n }\n\n setLabelFromUrl() {\n let labelRegex = /label_id\\=([\\d]*)/g,\n labelMatches = labelRegex.exec(document.location.search),\n labelMatchesLength,\n labelId;\n\n if (labelMatches !== null) {\n labelMatchesLength = labelMatches.length;\n for (let i = 0; i < labelMatchesLength; i += 1) {\n labelId = labelMatches[i];\n }\n }\n\n if (labelId) {\n this.setState({\n labelId: labelId\n });\n }\n\n }\n\n setIdsFromUrlFor(paramString) {\n let pattern = '\\_id\\\\[\\\\]\\\\=(\\\\d)+',\n regex = new RegExp(paramString + pattern, 'gi'),\n matches = document.location.search.match(regex),\n ids = [],\n stateObject = {},\n matchesLength,\n matchId,\n i;\n\n if (matches !== null) {\n matchesLength = matches.length;\n for (i = 0; i < matchesLength; i += 1) {\n matchId = parseInt(matches[i].replace(paramString + '_id[]=', ''), 10);\n ids.push(matchId);\n }\n stateObject[paramString + 's'] = ids;\n this.setState(stateObject, function () {\n setTimeout(function () {\n global.EventHub.trigger('updateItemIdList', { genres: this.state.genres, tags: this.state.tags, moods: this.state.moods, includePro: this.state.proFilter });\n }.bind(this), 50)\n });\n }\n }\n\n setTempoFromUrl() {\n let minRegex = /min_tempo\\=([\\d]*)/g,\n minMatches = minRegex.exec(document.location.search),\n minMatchesLength,\n minQueryText,\n\n maxRegex = /max_tempo\\=([\\d]*)/g,\n maxMatches = maxRegex.exec(document.location.search),\n maxMatchesLength,\n maxQueryText;\n\n if (minMatches !== null) {\n minMatchesLength = minMatches.length;\n for (let i = 0; i < minMatchesLength; i += 1) {\n minQueryText = minMatches[i];\n }\n }\n\n if (maxMatches !== null) {\n maxMatchesLength = maxMatches.length;\n for (let i = 0; i < maxMatchesLength; i += 1) {\n maxQueryText = maxMatches[i];\n }\n }\n\n if (minQueryText) {\n this.setState({\n minTempo: minQueryText,\n tempoSearchActive: true\n });\n }\n\n if (maxQueryText) {\n this.setState({\n maxTempo: maxQueryText,\n tempoSearchActive: true\n });\n }\n }\n\n setExtendedFiltersFromUrl() {\n let drumRegex = /drums\\=([\\d]*)/g,\n drumMatches = drumRegex.exec(document.location.search),\n drumMatchesLength,\n drumValue,\n\n vocalRegex = /vocals\\=([\\d]*)/g,\n vocalMatches = vocalRegex.exec(document.location.search),\n vocalMatchesLength,\n vocalValue,\n\n includeProRegex = /include_pro\\=([\\d]*)/g,\n includeProMatches = includeProRegex.exec(document.location.search),\n includeProMatchesLength,\n includeProValue,\n\n variantsRegex = /with_variants\\=([\\d]*)/g,\n variantsMatches = variantsRegex.exec(document.location.search),\n variantsMatchesLength,\n variantsValue,\n\n loopRegex = /loop\\=([\\d]*)/g,\n loopMatches = loopRegex.exec(document.location.search),\n loopMatchesLength,\n loopValue,\n\n shouldUpdate = false,\n\n stateObject = this.state;\n\n if (drumMatches !== null) {\n drumMatchesLength = drumMatches.length;\n for (let i = 0; i < drumMatchesLength; i += 1) {\n drumValue = drumMatches[i];\n }\n }\n\n if (drumValue) {\n stateObject.extendedFilters.drums = parseInt(drumValue, 10);\n if (this.state.extendedFiters && this.state.extendedFiters.drums !== stateObject.extendedFilters.drums) {\n shouldUpdate = true;\n }\n }\n\n if (vocalMatches !== null) {\n vocalMatchesLength = vocalMatches.length;\n for (let i = 0; i < vocalMatchesLength; i += 1) {\n vocalValue = vocalMatches[i];\n }\n }\n\n if (vocalValue) {\n stateObject.extendedFilters.vocals = parseInt(vocalValue, 10);\n if (this.state.extendedFiters && this.state.extendedFiters.vocals !== stateObject.extendedFilters.vocals) {\n shouldUpdate = true;\n }\n }\n\n if (includeProMatches !== null) {\n includeProMatchesLength = includeProMatches.length;\n for (var i = 0; i < includeProMatchesLength; i += 1) {\n includeProValue = includeProMatches[i];\n }\n }\n\n if (includeProValue) {\n stateObject.proFilter = parseInt(includeProValue, 10);\n if (this.stateproFilter !== stateObject.proFilter) {\n shouldUpdate = true;\n }\n }\n\n if (variantsMatches !== null) {\n variantsMatchesLength = variantsMatches.length;\n for (let i = 0; i < variantsMatchesLength; i += 1) {\n variantsValue = variantsMatches[i];\n }\n }\n\n if (variantsValue) {\n stateObject.extendedFilters.withVariants = parseInt(variantsValue, 10);\n if (this.state.extendedFiters && this.state.extendedFiters.withVariants !== stateObject.extendedFilters.withVariants) {\n shouldUpdate = true;\n }\n }\n\n if (loopMatches !== null) {\n loopMatchesLength = loopMatches.length;\n for (let i = 0; i < loopMatchesLength; i += 1) {\n loopValue = loopMatches[i];\n }\n }\n\n if (loopValue) {\n stateObject.extendedFilters.loop = parseInt(loopValue, 10);\n if (this.state.extendedFiters && this.state.extendedFiters.loop !== stateObject.extendedFilters.loop) {\n shouldUpdate = true;\n }\n }\n\n if (shouldUpdate) {\n this.setState(stateObject);\n }\n }\n\n setLengthFromUrl() {\n let minRegex = /min_length\\=([\\d]*)/g,\n minMatches = minRegex.exec(document.location.search),\n minMatchesLength,\n minQueryText,\n\n maxRegex = /max_length\\=([\\d]*)/g,\n maxMatches = maxRegex.exec(document.location.search),\n maxMatchesLength,\n maxQueryText;\n\n if (minMatches !== null) {\n minMatchesLength = minMatches.length;\n for (let i = 0; i < minMatchesLength; i += 1) {\n minQueryText = minMatches[i];\n }\n }\n\n if (maxMatches !== null) {\n maxMatchesLength = maxMatches.length;\n for (let i = 0; i < maxMatchesLength; i += 1) {\n maxQueryText = maxMatches[i];\n }\n }\n\n if (minQueryText) {\n this.setState({\n minLength: parseInt(minQueryText, 10)\n });\n }\n\n if (maxQueryText) {\n this.setState({\n maxLength: parseInt(maxQueryText, 10)\n });\n }\n }\n\n setSortFromUrl() {\n let directionRegex = /sort_direction\\=([a-zA-Z]+)/g,\n directionMatches = directionRegex.exec(document.location.search),\n directionMatchesLength,\n directionQueryText;\n\n if (directionMatches !== null) {\n directionMatchesLength = directionMatches.length;\n for (let i = 0; i < directionMatchesLength; i += 1) {\n directionQueryText = directionMatches[i];\n }\n }\n\n let sortByRegex = /sort_by\\=([a-zA-Z]+)/g,\n sortByMatches = sortByRegex.exec(document.location.search),\n sortByMatchesLength,\n sortByQueryText;\n\n if (sortByMatches !== null) {\n sortByMatchesLength = sortByMatches.length;\n for (let i = 0; i < sortByMatchesLength; i += 1) {\n sortByQueryText = sortByMatches[i];\n }\n }\n\n\n if (sortByQueryText && directionQueryText) {\n this.setState({\n sortDirection: directionQueryText,\n sortBy: sortByQueryText\n });\n } else if (directionQueryText) {\n this.setState({\n sortDirection: directionQueryText\n });\n }\n }\n\n handleTempoChange(minTempo, maxTempo, active) {\n this.setState({\n minTempo: minTempo,\n maxTempo: maxTempo,\n tempoSearchActive: active\n });\n\n this.sendSearchQuery();\n }\n\n toggleTempoSearch(e) {\n e.preventDefault();\n\n this.setState({\n tempoSearchActive: !this.state.tempoSearchActive,\n });\n\n setTimeout(function () {\n this.sendSearchQuery();\n }.bind(this), 1)\n }\n\n handleSubmitSearchClick() {\n this.sendSearchQuery();\n }\n\n submitQueryClick(query) {\n let stateObject = this.state;\n\n stateObject.query = '';\n stateObject.completedQuery = '';\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitMenuItemClick(name, id) {\n let stateObject = this.state,\n arrayLength = stateObject[name].length,\n i,\n removeIndex,\n shouldAddToArray = true;\n\n for (i = 0; i < arrayLength; i += 1) {\n if (stateObject[name][i] === id) {\n shouldAddToArray = false;\n }\n }\n\n if (shouldAddToArray) {\n if (name === 'moods' || name === 'instruments') {\n stateObject[name].push(id);\n } else {\n stateObject[name] = [id];\n }\n } else {\n removeIndex = stateObject[name].indexOf(id);\n if (removeIndex > -1) {\n stateObject[name].splice(removeIndex, 1);\n }\n }\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitQueryChange(fieldValue) {\n this.setState({ query: fieldValue });\n }\n\n submitMinLengthClick() {\n let stateObject = this.state;\n\n stateObject.minLength = '';\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitMaxLengthClick() {\n let stateObject = this.state;\n\n stateObject.maxLength = '';\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitLengthChange(minLength, maxLength) {\n if (minLength > 0) {\n this.setState({ minLength: minLength });\n } else {\n this.setState({ minLength: '' });\n }\n if (maxLength > 0) {\n this.setState({ maxLength: maxLength });\n } else {\n this.setState({ maxLength: '' });\n }\n }\n\n submitExtendedFilterChange(name, value) {\n let shouldChange = false;\n let stateObject = this.state;\n\n stateObject.extendedFilters[name] = value;\n\n this.setState(stateObject, function () {\n this.sendSearchQuery();\n });\n\n\n }\n\n submitProFilterChange(value) {\n let shouldChange = false;\n let stateObject = this.state;\n\n stateObject.proFilter = value;\n\n this.setState(stateObject, function () {\n this.sendSearchQuery();\n });\n }\n\n\n isExtendedFilterChecked(name, value) {\n let isChecked = false;\n\n if (this.state.extendedFilters[name] === value) {\n isChecked = true;\n }\n\n return isChecked;\n }\n\n isProFilterChecked(value) {\n let isChecked = false;\n\n if (this.state.proFilter === value) {\n isChecked = true;\n }\n\n return isChecked;\n }\n\n extendedFiltersMenuHighlighted() {\n let isHighlighted = false;\n\n if (this.state.extendedFilters.drums !== 0 || this.state.extendedFilters.vocals !== 0 || this.state.extendedFilters.withVariants !== 0 || this.state.extendedFilters.loop !== 0) {\n isHighlighted = true\n }\n\n return isHighlighted;\n }\n\n proFiltersMenuHighlighted() {\n let isHighlighted = true;\n // let isHighlighted = false;\n\n // if (this.state.proFilter !== 2) {\n // isHighlighted = true\n // }\n\n return isHighlighted;\n }\n\n\n submitSortChange(sortBy, sortDirection) {\n let stateObject = {\n sortBy: '',\n sortDirection: ''\n };\n\n if (sortBy === 'date') {\n stateObject['sortBy'] = sortBy;\n } else if (sortBy === 'popularity') {\n stateObject['sortBy'] = sortBy;\n } else if (sortBy === 'length') {\n stateObject['sortBy'] = sortBy;\n } else {\n stateObject['sortBy'] = '';\n }\n\n if (sortDirection === 'asc') {\n stateObject['sortDirection'] = sortDirection;\n } else if (sortDirection === 'desc') {\n stateObject['sortDirection'] = sortDirection;\n } else {\n stateObject['sortDirection'] = '';\n }\n\n this.setState(stateObject, function () {\n this.sendSearchQuery();\n });\n\n }\n\n getActiveSearchCriteriaCount() {\n let criteriaCount = 0;\n\n if (this.props.hideCategoryFromUrl !== 'tag' && this.state.tags.length > 0) {\n criteriaCount += this.state.tags.length;\n }\n\n if (this.props.hideCategoryFromUrl !== 'instore_tag' && this.state.instoreTags.length > 0) {\n criteriaCount += this.state.instoreTags.length;\n }\n\n if (this.props.hideCategoryFromUrl !== 'genre' && this.state.genres.length > 0) {\n criteriaCount += this.state.genres.length;\n }\n\n if (this.props.hideCategoryFromUrl !== 'instrument' && this.state.instruments.length > 0) {\n criteriaCount += this.state.instruments.length;\n }\n\n if (this.props.hideCategoryFromUrl !== 'mood' && this.state.moods.length > 0) {\n criteriaCount += this.state.moods.length;\n }\n\n if (this.state.minLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.maxLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.query.length > 0) {\n criteriaCount += 1;\n }\n\n return criteriaCount;\n }\n\n getActiveSearchCriteriaCountWithHiddenCriterias() {\n let criteriaCount = 0;\n\n if (this.state.tags.length > 0) {\n criteriaCount += this.state.tags.length;\n }\n\n if (this.state.instoreTags.length > 0) {\n criteriaCount += this.state.instoreTags.length;\n }\n\n if (this.state.genres.length > 0) {\n criteriaCount += this.state.genres.length;\n }\n\n if (this.state.instruments.length > 0) {\n criteriaCount += this.state.instruments.length;\n }\n\n if (this.state.moods.length > 0) {\n criteriaCount += this.state.moods.length;\n }\n\n if (this.state.minLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.maxLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.query.length > 0) {\n criteriaCount += 1;\n }\n\n return criteriaCount;\n }\n\n buildSearchQueryParams(omitPageParam) {\n let searchQueryParamsString = '',\n textQuery = '';\n\n for (let searchCategory in this.state) {\n if (this.state.hasOwnProperty(searchCategory)) {\n\n if (searchCategory === 'query' && this.state[searchCategory].length > 0) {\n textQuery = 'q=' + this.state[searchCategory] + '&';\n searchQueryParamsString += textQuery;\n } else if (searchCategory === 'minLength' && this.state[searchCategory] > 0) {\n searchQueryParamsString += 'min_length=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'maxLength' && this.state[searchCategory] > 0) {\n searchQueryParamsString += 'max_length=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'minTempo' && this.state[searchCategory] > 0 && this.state.tempoSearchActive) {\n searchQueryParamsString += 'min_tempo=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'maxTempo' && this.state[searchCategory] > 0 && this.state.tempoSearchActive) {\n searchQueryParamsString += 'max_tempo=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'trackId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'track_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'exposurePackId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'exposure_pack_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'mediaBundleId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'media_bundle_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'labelId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'label_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'albumId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'album_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'proFilter') {\n if (this.state[searchCategory] !== 2) {\n searchQueryParamsString += 'include_pro=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'extendedFilters') {\n if (this.state[searchCategory].drums !== 0) {\n searchQueryParamsString += 'drums=' + this.state[searchCategory].drums + '&';\n }\n\n if (this.state[searchCategory].vocals !== 0) {\n searchQueryParamsString += 'vocals=' + this.state[searchCategory].vocals + '&';\n }\n\n // if (this.state[searchCategory].includePro !== 2) {\n // searchQueryParamsString += 'include_pro=' + this.state[searchCategory].includePro + '&';\n // }\n\n if (this.state[searchCategory].withVariants !== 0) {\n searchQueryParamsString += 'with_variants=' + this.state[searchCategory].withVariants + '&';\n }\n\n if (this.state[searchCategory].loop !== 0) {\n searchQueryParamsString += 'loop=' + this.state[searchCategory].loop + '&';\n }\n\n } else if (searchCategory === 'page') {\n if (omitPageParam) {\n searchQueryParamsString += 'page=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'sortBy' && typeof this.state[searchCategory] === 'string') {\n searchQueryParamsString += 'sort_by=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'sortDirection' && typeof this.state[searchCategory] === 'string') {\n searchQueryParamsString += 'sort_direction=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'free' && this.state[searchCategory] === true) {\n searchQueryParamsString += 'free=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'completedQuery') {\n\n } else {\n for (let i = 0; i < this.state[searchCategory].length; i += 1) {\n let elementValue = this.state[searchCategory][i],\n singularCategory = searchCategory.slice(0, -1),\n text = '';\n\n // if (this.props.hideCategoryFromUrl !== singularCategory) {\n // text = singularCategory + '_id[]=' + elementValue + '&';\n // }\n\n text = singularCategory + '_id[]=' + elementValue + '&';\n\n searchQueryParamsString += text;\n }\n }\n }\n }\n\n\n if (searchQueryParamsString.endsWith('&')) {\n searchQueryParamsString = searchQueryParamsString.slice(0, -1);\n }\n\n if (searchQueryParamsString === 'sort_direction=&sort_by=') {\n searchQueryParamsString = '';\n }\n\n return searchQueryParamsString;\n }\n\n sendSearchQuery(paginationMode, initialPageLoadQuery) {\n let that = this,\n searchQueryParams, // search object\n newUrl,\n urlParams;\n\n if (!paginationMode) {\n this.setState({ page: 1 });\n }\n\n searchQueryParams = this.buildSearchQueryParams(paginationMode); // search object\n urlParams = (searchQueryParams.length > 0 ? ('?' + searchQueryParams) : '');\n\n $.ajax({\n url: '/tracks/search_results' + urlParams,\n beforeSend: function () {\n if (initialPageLoadQuery) {\n global.EventHub.trigger('fireSearchWithoutAnimation');\n } else {\n global.EventHub.trigger('fireSearch');\n }\n },\n success: function (data) {\n if (initialPageLoadQuery) {\n global.EventHub.trigger('initialUpdateTrackListing', data);\n } else {\n global.EventHub.trigger('updateTrackListing', data);\n }\n\n global.EventHub.trigger('searchSuccess', data);\n global.EventHub.trigger('updateItemIdList', { genres: that.state.genres, tags: that.state.tags, moods: that.state.moods, instoreTags: that.state.instoreTags, includePro: that.state.proFilter });\n if (history.pushState && !initialPageLoadQuery) {\n if (paginationMode) {\n var prevParams = location.search.replace(/\\?page=[\\d]+/, '').replace(/&page=[\\d]+/, '').replace(/[\\?]+/, '');\n var path = window.location.pathname + '?' + prevParams + (prevParams.length > 0 ? '&' : '') + 'page=' + (that.state.page);\n if (path === '?') {\n path = '';\n }\n newUrl = window.location.protocol + \"//\" + window.location.host + path;\n newUrl = newUrl.replace(/\\?page=1$/, '').replace(/&page=1$/, '');\n } else {\n var path = (searchQueryParams.length > 0 ? ('?' + searchQueryParams) : '').replace('?sort_direction=&sort_by=', '?').replace('&sort_direction=&sort_by=', '').replace('&sort_direction=desc&sort_by=popularity', '').replace('?sort_direction=desc&sort_by=popularity', '?');\n\n if (path === '?') {\n path = ''\n }\n\n newUrl = window.location.protocol + \"//\" + window.location.host + window.location.pathname + path;\n newUrl = newUrl.replace(/&page=[\\d]+/, '');\n }\n\n if (that.props.hideCategoryFromUrl.length > 0) {\n if (that.props.hideCategoryFromUrl === 'tag') {\n newUrl = newUrl.replace(/\\?tag_id\\[\\]=[\\d]+&/, '?');\n newUrl = newUrl.replace(/&tag_id\\[\\]=[\\d]+&/, '&');\n newUrl = newUrl.replace(/&tag_id\\[\\]=[\\d]+/, '');\n newUrl = newUrl.replace(/\\?tag_id\\[\\]=[\\d]+/, '');\n }\n\n if (that.props.hideCategoryFromUrl === 'instore_tag') {\n newUrl = newUrl.replace(/\\?instore_tag_id\\[\\]=[\\d]+&/, '?');\n newUrl = newUrl.replace(/&instore_tag_id\\[\\]=[\\d]+&/, '&');\n newUrl = newUrl.replace(/&instore_tag_id\\[\\]=[\\d]+/, '');\n newUrl = newUrl.replace(/\\?instore_tag_id\\[\\]=[\\d]+/, '');\n }\n\n if (that.props.hideCategoryFromUrl === 'genre') {\n newUrl = newUrl.replace(/\\?genre_id\\[\\]=[\\d]+&/, '?');\n newUrl = newUrl.replace(/&genre_id\\[\\]=[\\d]+&/, '&');\n newUrl = newUrl.replace(/&genre_id\\[\\]=[\\d]+/, '');\n newUrl = newUrl.replace(/\\?genre_id\\[\\]=[\\d]+/, '');\n }\n\n if (that.props.hideCategoryFromUrl === 'composer') {\n newUrl = newUrl.replace(/\\?composer_id\\[\\]=[\\d]+&/, '?');\n newUrl = newUrl.replace(/&composer_id\\[\\]=[\\d]+&/, '&');\n newUrl = newUrl.replace(/&composer_id\\[\\]=[\\d]+/, '');\n newUrl = newUrl.replace(/\\?composer_id\\[\\]=[\\d]+/, '');\n }\n\n }\n\n window.history.pushState({ path: newUrl }, '', newUrl);\n\n if (typeof ga === 'function') {\n ga('send', 'pageview', path);\n }\n\n that.setState({ completedQuery: that.state.query });\n }\n }\n });\n }\n\n render() {\n let classes = classNames({\n 'search': true\n });\n\n let searchCombinationHint;\n\n if (this.getActiveSearchCriteriaCountWithHiddenCriterias() !== 0 && this.getActiveSearchCriteriaCountWithHiddenCriterias() === this.state.tags.length) {\n // only tags activated\n searchCombinationHint = ({this.props.locale === 'de' ? 'TIPP' : 'HINT'} : {this.props.locale === 'de' ? 'Nutzen Sie zusätzlich den Stimmungen-Filter für eine genauere Eingrenzung.' : 'Additionally, use the mood filter for a more precise narrowing down.'}
)\n } else if (this.getActiveSearchCriteriaCountWithHiddenCriterias() !== 0 && this.getActiveSearchCriteriaCountWithHiddenCriterias() === this.state.genres.length) {\n searchCombinationHint = ({this.props.locale === 'de' ? 'TIPP' : 'HINT'} : {this.props.locale === 'de' ? 'Nutzen Sie zusätzlich den Stimmungen-Filter für eine genauere Eingrenzung.' : 'Additionally, use the mood filter for a more precise narrowing down.'}
)\n } else if (this.getActiveSearchCriteriaCountWithHiddenCriterias() !== 0 && this.getActiveSearchCriteriaCountWithHiddenCriterias() === this.state.moods.length) {\n searchCombinationHint = ({this.props.locale === 'de' ? 'TIPP' : 'HINT'} : {this.props.locale === 'de' ? 'Nutzen Sie zusätzlich den Themen- oder Genres-Filter für eine genauere Eingrenzung.' : 'Additionally, use the topic or genre filter for a more precise narrowing.'}
)\n } else if (this.getActiveSearchCriteriaCountWithHiddenCriterias() === 0) {\n searchCombinationHint = ({this.props.locale === 'de' ? 'TIPP' : 'HINT'} : {this.props.locale === 'de' ? 'Nutzen Sie den Thema-Filter, um schnell zur passenden Musik zu kommen.' : 'Use the topic filter to quickly find the music you need'}
)\n }\n\n return (\n \n
\n
\n
\n
\n \n \n \n \n 0} counter={this.state.tags.length}>\n \n \n 0} counter={this.state.genres.length}>\n \n \n 0} counter={this.state.moods.length}>\n \n \n 0} counter={this.state.instruments.length}>\n \n \n \n \n \n\n \n \n \n
\n
\n {searchCombinationHint}\n
\n
\n
\n
\n
\n )\n }\n};\n\nSearch.defaultProps = {\n genres: [\n {\n name: '',\n id: ''\n }\n ],\n instruments: [\n {\n name: '',\n id: ''\n }\n ],\n moods: [\n {\n name: '',\n id: ''\n }\n ],\n composers: [\n {\n name: '',\n id: ''\n }\n ],\n sortDirection: 'desc',\n sortBy: 'popularity',\n initialSearchQuery: {\n // query : '',\n // free : false,\n // genres : [],\n // instruments : [],\n // moods : [],\n // tags : [],\n // instoreTags : [],\n // minTempo : 80,\n // maxTempo : 140,\n // tempoSearchActive : false,\n // page : 1,\n // composers : [],\n // trackId : undefined,\n // aId : 1,\n // albumId : 1\n\n },\n autocompletion: [],\n i18n: {\n placeholder: 'z.B. Urlaub Gitarre fröhlich'\n },\n hideCategoryFromUrl: '',\n extendedFilters: [\n { category: 'drums', nameDe: 'Schlagzeug / Beat', nameEn: 'Drums / beat', value: undefined, labelsDe: ['Beliebig', 'Mit Beat', 'Ohne Beat'], labelsEn: ['Any', 'With beat', 'Without beat'] },\n { category: 'vocals', nameDe: 'Gesang / Stimme', nameEn: 'Singing / vocals', value: undefined, labelsDe: ['Beliebig', 'Mit Gesang', 'Ohne Gesang'], labelsEn: ['Any', 'With vocals', 'Without vocals'] },\n { category: 'withVariants', nameDe: 'Varianten / Stems', nameEn: 'Variants / stems', value: undefined, labelsDe: ['Beliebig', 'Mit Varianten', 'Ohne Varianten'], labelsEn: ['Any', 'With variants', 'Without variants'] },\n { category: 'loop', nameDe: 'Loop', nameEn: 'Loop', value: undefined, labelsDe: ['Beliebig', 'Mit Loops', 'Ohne Loops'], labelsEn: ['Any', 'With loops', 'Without loops'] },\n ],\n proFilters: [\n { category: 'includePro', nameDe: 'Verwertungsgesellschaft', nameEn: 'P.R.O.', value: undefined, labelsDe: ['Alle Tracks', 'Nur GEMA-pflichtig (P.R.O.)', 'Nur GEMA-frei'], labelsEn: ['Any', 'Only P.R.O. tracks', 'Only royalty free tracks'] }\n ]\n}\n\nSearch.propTypes = {\n locale: PropTypes.string\n};\n\n\n// INIT\n\nlet elements = document.querySelectorAll('[data-react-component=Search]');\n\nelements.forEach(function (element) {\n let reactProps = JSON.parse(element.dataset.reactProps);\n\n console.log('reactProps');\n console.log(reactProps);\n\n ReactDOM.render(\n \n \n ,\n element\n );\n})\n\nexport default Search;\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames/bind';\n// import $ from 'jquery';\n\n\nclass SearchMenuInvisible extends Component {\n\n constructor(props) {\n super(props);\n\n this.searchRef = null;\n\n this.setSearchRef = element => {\n this.searchRef = element;\n };\n\n this.handleTempoChange = this.handleTempoChange.bind(this);\n this.toggleTempoSearch = this.toggleTempoSearch.bind(this);\n this.handleSubmitSearchClick = this.handleSubmitSearchClick.bind(this);\n this.submitQueryClick = this.submitQueryClick.bind(this);\n this.submitMenuItemClick = this.submitMenuItemClick.bind(this);\n this.submitQueryChange = this.submitQueryChange.bind(this);\n this.submitMinLengthClick = this.submitMinLengthClick.bind(this);\n this.submitMaxLengthClick = this.submitMaxLengthClick.bind(this);\n this.submitLengthChange = this.submitLengthChange.bind(this);\n this.submitExtendedFilterChange = this.submitExtendedFilterChange.bind(this);\n this.submitProFilterChange = this.submitProFilterChange.bind(this);\n this.isExtendedFilterChecked = this.isExtendedFilterChecked.bind(this);\n this.isProFilterChecked = this.isProFilterChecked.bind(this);\n this.sendPaginationSearchQuery = this.sendPaginationSearchQuery.bind(this);\n\n this.state = {\n query: '',\n genres: [],\n instruments: [],\n moods: [],\n tags: [],\n instoreTags: [],\n minTempo: 80,\n maxTempo: 140,\n tempoSearchActive: false,\n page: this.props.initialSearchQuery.page ? parseInt(this.props.initialSearchQuery.page, 10) : 1,\n composers: [],\n completedQuery: '',\n minLength: '',\n maxLength: '',\n free: false,\n sortDirection: '',\n exposurePackId: '',\n mediaBundleId: '',\n labelId: '',\n albumId: '',\n sortBy: '',\n trackId: this.props.initialSearchQuery.track_id,\n extendedFilters: {\n drums: 0,\n vocals: 0,\n withVariants: 0,\n loop: 0\n },\n proFilter: (typeof this.props.initialSearchQuery.include_pro === 'undefined') ? 2 : this.props.initialSearchQuery.include_pro\n };\n }\n\n UNSAFE_componentWillMount() {\n let stateObject = {},\n searchCloudItemIds = [];\n\n for (let searchCategory in this.props.initialSearchQuery) {\n if (this.props.initialSearchQuery.hasOwnProperty(searchCategory)) {\n\n if (searchCategory === 'query' && this.props.initialSearchQuery[searchCategory].length > 0) {\n this.setState({ query: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'minTempo' && this.props.initialSearchQuery[searchCategory] > 0 && this.props.initialSearchQuery.tempoSearchActive) {\n this.setState({ minTempo: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'maxTempo' && this.props.initialSearchQuery[searchCategory] > 0 && this.props.initialSearchQuery.tempoSearchActive) {\n this.setState({ maxTempo: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'minLength' && this.props.initialSearchQuery[searchCategory] >= 0) {\n this.setState({ minLength: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'maxLength' && parseInt(this.props.initialSearchQuery[searchCategory]) >= 0) {\n this.setState({ maxLength: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'trackId') {\n this.setState({ trackId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'exposurePackId') {\n this.setState({ exposurePackId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'mediaBundleId') {\n this.setState({ mediaBundleId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'labelId') {\n this.setState({ labelId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'albumId') {\n this.setState({ albumId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'free') {\n if (this.props.initialSearchQuery[searchCategory]) {\n this.setState({ free: this.props.initialSearchQuery[searchCategory] });\n }\n } else if (searchCategory === 'page') {\n if (this.props.initialSearchQuery[searchCategory]) {\n this.setState({ page: parseInt(this.props.initialSearchQuery[searchCategory], 10) });\n }\n } else {\n stateObject = {};\n searchCloudItemIds = [];\n\n for (let i = 0; i < this.props.initialSearchQuery[searchCategory].length; i += 1) {\n searchCloudItemIds.push(this.props.initialSearchQuery[searchCategory][i]);\n }\n\n stateObject[searchCategory] = searchCloudItemIds;\n this.setState(stateObject);\n }\n }\n }\n }\n\n componentDidMount() {\n this.setStateViaUrlParams();\n\n global.EventHub.on('queryInputSubmit', function () {\n this.sendSearchQuery();\n }.bind(this));\n\n global.EventHub.on('paginationClick', this.sendPaginationSearchQuery);\n\n global.EventHub.on('changeSort', function (payload) {\n if (payload[0]) {\n this.setState({ sortDirection: payload[0].sortDirection, sortBy: payload[0].sortBy }, function () {\n this.sendSearchQuery();\n });\n }\n }.bind(this));\n\n global.EventHub.on('trackTagClick', function (payload) {\n if (payload[0]) {\n if (this.state.tags.indexOf(payload[0]) > -1) {\n let index = this.state.tags.indexOf(payload[0]);\n let tags = this.state.tags;\n\n tags.splice(index, 1)\n\n this.setState({ tags: tags }, function () {\n this.sendSearchQuery();\n });\n\n } else {\n this.setState({ tags: [payload[0]] }, function () {\n this.sendSearchQuery();\n });\n }\n\n }\n }.bind(this));\n\n global.EventHub.on('trackGenreClick', function (payload) {\n if (payload[0]) {\n if (this.state.genres.indexOf(payload[0]) > -1) {\n let index = this.state.genres.indexOf(payload[0]);\n let genres = this.state.genres;\n\n genres.splice(index, 1)\n\n this.setState({ genres: genres }, function () {\n this.sendSearchQuery();\n });\n\n } else {\n this.setState({ genres: [payload[0]] }, function () {\n this.sendSearchQuery();\n });\n }\n }\n }.bind(this));\n\n global.EventHub.on('trackMoodClick', function (payload) {\n if (payload[0]) {\n if (this.state.moods.indexOf(payload[0]) > -1) {\n let index = this.state.moods.indexOf(payload[0]);\n let moods = this.state.moods;\n\n moods.splice(index, 1)\n\n this.setState({ moods: moods }, function () {\n this.sendSearchQuery();\n });\n\n } else {\n this.setState({ moods: [payload[0]] }, function () {\n this.sendSearchQuery();\n });\n }\n\n }\n }.bind(this));\n\n\n global.EventHub.on('requestUpdateTrackListing', function () {\n this.sendSearchQuery(true, true);\n }.bind(this));\n }\n\n sendPaginationSearchQuery(pageNumber) {\n this.setState({ page: pageNumber }, function () {\n this.sendSearchQuery(true);\n });\n }\n\n setStateViaUrlParams() {\n this.setQueryFromUrl(); \n this.setExtendedFiltersFromUrl();\n this.setIdsFromUrlFor('genre');\n this.setIdsFromUrlFor('instrument');\n this.setIdsFromUrlFor('mood');\n this.setIdsFromUrlFor('tag');\n this.setTempoFromUrl();\n this.setLabelFromUrl();\n this.setLengthFromUrl();\n this.setSortFromUrl();\n }\n\n setQueryFromUrl() {\n let regex = /\\q\\=([\\w\\+\\d\\%,-]*)/g,\n matches = regex.exec(document.location.search),\n matchesLength,\n queryText;\n\n if (matches !== null) {\n matchesLength = matches.length;\n for (let i = 0; i < matchesLength; i += 1) {\n queryText = matches[i].replace(/\\+/g, ' ');\n }\n this.setState({ query: decodeURI(queryText), completedQuery: decodeURI(queryText) });\n }\n }\n\n setLabelFromUrl() {\n let labelRegex = /label_id\\=([\\d]*)/g,\n labelMatches = labelRegex.exec(document.location.search),\n labelMatchesLength,\n labelId;\n\n if (labelMatches !== null) {\n labelMatchesLength = labelMatches.length;\n for (let i = 0; i < labelMatchesLength; i += 1) {\n labelId = labelMatches[i];\n }\n }\n\n if (labelId) {\n this.setState({\n labelId: labelId\n });\n }\n\n }\n\n setIdsFromUrlFor(paramString) {\n let pattern = '\\_id\\\\[\\\\]\\\\=(\\\\d)+',\n regex = new RegExp(paramString + pattern, 'gi'),\n matches = document.location.search.match(regex),\n ids = [],\n stateObject = {},\n matchesLength,\n matchId,\n i;\n\n if (matches !== null) {\n matchesLength = matches.length;\n for (i = 0; i < matchesLength; i += 1) {\n matchId = parseInt(matches[i].replace(paramString + '_id[]=', ''), 10);\n ids.push(matchId);\n }\n stateObject[paramString + 's'] = ids;\n this.setState(stateObject, function () {\n setTimeout(function () {\n global.EventHub.trigger('updateItemIdList', { genres: this.state.genres, tags: this.state.tags, moods: this.state.moods, includePro: this.state.proFilter });\n }.bind(this), 50)\n });\n }\n }\n\n setTempoFromUrl() {\n let minRegex = /min_tempo\\=([\\d]*)/g,\n minMatches = minRegex.exec(document.location.search),\n minMatchesLength,\n minQueryText,\n\n maxRegex = /max_tempo\\=([\\d]*)/g,\n maxMatches = maxRegex.exec(document.location.search),\n maxMatchesLength,\n maxQueryText;\n\n if (minMatches !== null) {\n minMatchesLength = minMatches.length;\n for (let i = 0; i < minMatchesLength; i += 1) {\n minQueryText = minMatches[i];\n }\n }\n\n if (maxMatches !== null) {\n maxMatchesLength = maxMatches.length;\n for (let i = 0; i < maxMatchesLength; i += 1) {\n maxQueryText = maxMatches[i];\n }\n }\n\n if (minQueryText) {\n this.setState({\n minTempo: minQueryText,\n tempoSearchActive: true\n });\n }\n\n if (maxQueryText) {\n this.setState({\n maxTempo: maxQueryText,\n tempoSearchActive: true\n });\n }\n }\n\n setExtendedFiltersFromUrl() {\n let drumRegex = /drums\\=([\\d]*)/g,\n drumMatches = drumRegex.exec(document.location.search),\n drumMatchesLength,\n drumValue,\n\n vocalRegex = /vocals\\=([\\d]*)/g,\n vocalMatches = vocalRegex.exec(document.location.search),\n vocalMatchesLength,\n vocalValue,\n\n includeProRegex = /include_pro\\=([\\d]*)/g,\n includeProMatches = includeProRegex.exec(document.location.search),\n includeProMatchesLength,\n includeProValue,\n\n variantsRegex = /with_variants\\=([\\d]*)/g,\n variantsMatches = variantsRegex.exec(document.location.search),\n variantsMatchesLength,\n variantsValue,\n\n loopRegex = /loop\\=([\\d]*)/g,\n loopMatches = loopRegex.exec(document.location.search),\n loopMatchesLength,\n loopValue,\n\n shouldUpdate = false,\n\n stateObject = this.state;\n\n if (drumMatches !== null) {\n drumMatchesLength = drumMatches.length;\n for (let i = 0; i < drumMatchesLength; i += 1) {\n drumValue = drumMatches[i];\n }\n }\n\n if (drumValue) {\n stateObject.extendedFilters.drums = parseInt(drumValue, 10);\n if (this.state.extendedFiters && this.state.extendedFiters.drums !== stateObject.extendedFilters.drums) {\n shouldUpdate = true;\n }\n }\n\n if (vocalMatches !== null) {\n vocalMatchesLength = vocalMatches.length;\n for (let i = 0; i < vocalMatchesLength; i += 1) {\n vocalValue = vocalMatches[i];\n }\n }\n\n if (vocalValue) {\n stateObject.extendedFilters.vocals = parseInt(vocalValue, 10);\n if (this.state.extendedFiters && this.state.extendedFiters.vocals !== stateObject.extendedFilters.vocals) {\n shouldUpdate = true;\n }\n }\n\n if (includeProMatches !== null) {\n includeProMatchesLength = includeProMatches.length;\n for (var i = 0; i < includeProMatchesLength; i += 1) {\n includeProValue = includeProMatches[i];\n }\n }\n\n if (includeProValue) {\n stateObject.proFilter = parseInt(includeProValue, 10);\n if (this.stateproFilter !== stateObject.proFilter) {\n shouldUpdate = true;\n }\n }\n\n if (variantsMatches !== null) {\n variantsMatchesLength = variantsMatches.length;\n for (let i = 0; i < variantsMatchesLength; i += 1) {\n variantsValue = variantsMatches[i];\n }\n }\n\n if (variantsValue) {\n stateObject.extendedFilters.withVariants = parseInt(variantsValue, 10);\n if (this.state.extendedFiters && this.state.extendedFiters.withVariants !== stateObject.extendedFilters.withVariants) {\n shouldUpdate = true;\n }\n }\n\n if (loopMatches !== null) {\n loopMatchesLength = loopMatches.length;\n for (let i = 0; i < loopMatchesLength; i += 1) {\n loopValue = loopMatches[i];\n }\n }\n\n if (loopValue) {\n stateObject.extendedFilters.loop = parseInt(loopValue, 10);\n if (this.state.extendedFiters && this.state.extendedFiters.loop !== stateObject.extendedFilters.loop) {\n shouldUpdate = true;\n }\n }\n\n if (shouldUpdate) {\n this.setState(stateObject);\n }\n }\n\n setLengthFromUrl() {\n let minRegex = /min_length\\=([\\d]*)/g,\n minMatches = minRegex.exec(document.location.search),\n minMatchesLength,\n minQueryText,\n\n maxRegex = /max_length\\=([\\d]*)/g,\n maxMatches = maxRegex.exec(document.location.search),\n maxMatchesLength,\n maxQueryText;\n\n if (minMatches !== null) {\n minMatchesLength = minMatches.length;\n for (let i = 0; i < minMatchesLength; i += 1) {\n minQueryText = minMatches[i];\n }\n }\n\n if (maxMatches !== null) {\n maxMatchesLength = maxMatches.length;\n for (let i = 0; i < maxMatchesLength; i += 1) {\n maxQueryText = maxMatches[i];\n }\n }\n\n if (minQueryText) {\n this.setState({\n minLength: parseInt(minQueryText, 10)\n });\n }\n\n if (maxQueryText) {\n this.setState({\n maxLength: parseInt(maxQueryText, 10)\n });\n }\n }\n\n setSortFromUrl() {\n let directionRegex = /sort_direction\\=([a-zA-Z]+)/g,\n directionMatches = directionRegex.exec(document.location.search),\n directionMatchesLength,\n directionQueryText;\n\n if (directionMatches !== null) {\n directionMatchesLength = directionMatches.length;\n for (let i = 0; i < directionMatchesLength; i += 1) {\n directionQueryText = directionMatches[i];\n }\n }\n\n let sortByRegex = /sort_by\\=([a-zA-Z]+)/g,\n sortByMatches = sortByRegex.exec(document.location.search),\n sortByMatchesLength,\n sortByQueryText;\n\n if (sortByMatches !== null) {\n sortByMatchesLength = sortByMatches.length;\n for (let i = 0; i < sortByMatchesLength; i += 1) {\n sortByQueryText = sortByMatches[i];\n }\n }\n\n\n if (sortByQueryText && directionQueryText) {\n this.setState({\n sortDirection: directionQueryText,\n sortBy: sortByQueryText\n });\n } else if (directionQueryText) {\n this.setState({\n sortDirection: directionQueryText\n });\n }\n }\n\n handleTempoChange(minTempo, maxTempo, active) {\n this.setState({\n minTempo: minTempo,\n maxTempo: maxTempo,\n tempoSearchActive: active\n });\n\n this.sendSearchQuery();\n }\n\n toggleTempoSearch(e) {\n e.preventDefault();\n\n this.setState({\n tempoSearchActive: !this.state.tempoSearchActive,\n });\n\n setTimeout(function () {\n this.sendSearchQuery();\n }.bind(this), 1)\n }\n\n handleSubmitSearchClick() {\n this.sendSearchQuery();\n }\n\n submitQueryClick(query) {\n let stateObject = this.state;\n\n stateObject.query = '';\n stateObject.completedQuery = '';\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitMenuItemClick(name, id) {\n let stateObject = this.state,\n arrayLength = stateObject[name].length,\n i,\n removeIndex,\n shouldAddToArray = true;\n\n for (i = 0; i < arrayLength; i += 1) {\n if (stateObject[name][i] === id) {\n shouldAddToArray = false;\n }\n }\n\n if (shouldAddToArray) {\n if (name === 'moods' || name === 'instruments') {\n stateObject[name].push(id);\n } else {\n stateObject[name] = [id];\n }\n } else {\n removeIndex = stateObject[name].indexOf(id);\n if (removeIndex > -1) {\n stateObject[name].splice(removeIndex, 1);\n }\n }\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitQueryChange(fieldValue) {\n this.setState({ query: fieldValue });\n }\n\n submitMinLengthClick() {\n let stateObject = this.state;\n\n stateObject.minLength = '';\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitMaxLengthClick() {\n let stateObject = this.state;\n\n stateObject.maxLength = '';\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitLengthChange(minLength, maxLength) {\n if (minLength > 0) {\n this.setState({ minLength: minLength });\n } else {\n this.setState({ minLength: '' });\n }\n if (maxLength > 0) {\n this.setState({ maxLength: maxLength });\n } else {\n this.setState({ maxLength: '' });\n }\n }\n\n submitExtendedFilterChange(name, value) {\n let shouldChange = false;\n let stateObject = this.state;\n\n stateObject.extendedFilters[name] = value;\n\n this.setState(stateObject, function () {\n this.sendSearchQuery();\n });\n\n\n }\n\n submitProFilterChange(value) {\n let shouldChange = false;\n let stateObject = this.state;\n\n stateObject.proFilter = value;\n\n this.setState(stateObject, function () {\n this.sendSearchQuery();\n });\n }\n\n\n isExtendedFilterChecked(name, value) {\n let isChecked = false;\n\n if (this.state.extendedFilters[name] === value) {\n isChecked = true;\n }\n\n return isChecked;\n }\n\n isProFilterChecked(value) {\n let isChecked = false;\n\n if (this.state.proFilter === value) {\n isChecked = true;\n }\n\n return isChecked;\n }\n\n extendedFiltersMenuHighlighted() {\n let isHighlighted = false;\n\n if (this.state.extendedFilters.drums !== 0 || this.state.extendedFilters.vocals !== 0 || this.state.extendedFilters.withVariants !== 0 || this.state.extendedFilters.loop !== 0) {\n isHighlighted = true\n }\n\n return isHighlighted;\n }\n\n proFiltersMenuHighlighted() {\n let isHighlighted = true;\n // let isHighlighted = false;\n\n // if (this.state.proFilter !== 2) {\n // isHighlighted = true\n // }\n\n return isHighlighted;\n }\n\n\n submitSortChange(sortBy, sortDirection) {\n let stateObject = {\n sortBy: '',\n sortDirection: ''\n };\n\n if (sortBy === 'date') {\n stateObject['sortBy'] = sortBy;\n } else if (sortBy === 'popularity') {\n stateObject['sortBy'] = sortBy;\n } else if (sortBy === 'length') {\n stateObject['sortBy'] = sortBy;\n } else {\n stateObject['sortBy'] = '';\n }\n\n if (sortDirection === 'asc') {\n stateObject['sortDirection'] = sortDirection;\n } else if (sortDirection === 'desc') {\n stateObject['sortDirection'] = sortDirection;\n } else {\n stateObject['sortDirection'] = '';\n }\n\n this.setState(stateObject, function () {\n this.sendSearchQuery();\n });\n\n }\n\n getActiveSearchCriteriaCount() {\n let criteriaCount = 0;\n\n if (this.props.hideCategoryFromUrl !== 'tag' && this.state.tags.length > 0) {\n criteriaCount += this.state.tags.length;\n }\n\n if (this.props.hideCategoryFromUrl !== 'instore_tag' && this.state.instoreTags.length > 0) {\n criteriaCount += this.state.instoreTags.length;\n }\n\n if (this.props.hideCategoryFromUrl !== 'genre' && this.state.genres.length > 0) {\n criteriaCount += this.state.genres.length;\n }\n\n if (this.props.hideCategoryFromUrl !== 'instrument' && this.state.instruments.length > 0) {\n criteriaCount += this.state.instruments.length;\n }\n\n if (this.props.hideCategoryFromUrl !== 'mood' && this.state.moods.length > 0) {\n criteriaCount += this.state.moods.length;\n }\n\n if (this.state.minLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.maxLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.query.length > 0) {\n criteriaCount += 1;\n }\n\n return criteriaCount;\n }\n\n getActiveSearchCriteriaCountWithHiddenCriterias() {\n let criteriaCount = 0;\n\n if (this.state.tags.length > 0) {\n criteriaCount += this.state.tags.length;\n }\n\n if (this.state.instoreTags.length > 0) {\n criteriaCount += this.state.instoreTags.length;\n }\n\n if (this.state.genres.length > 0) {\n criteriaCount += this.state.genres.length;\n }\n\n if (this.state.instruments.length > 0) {\n criteriaCount += this.state.instruments.length;\n }\n\n if (this.state.moods.length > 0) {\n criteriaCount += this.state.moods.length;\n }\n\n if (this.state.minLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.maxLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.query.length > 0) {\n criteriaCount += 1;\n }\n\n return criteriaCount;\n }\n\n buildSearchQueryParams(omitPageParam) {\n let searchQueryParamsString = '',\n textQuery = '';\n\n for (let searchCategory in this.state) {\n if (this.state.hasOwnProperty(searchCategory)) {\n\n if (searchCategory === 'query' && this.state[searchCategory].length > 0) {\n textQuery = 'q=' + this.state[searchCategory] + '&';\n searchQueryParamsString += textQuery;\n } else if (searchCategory === 'minLength' && this.state[searchCategory] > 0) {\n searchQueryParamsString += 'min_length=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'maxLength' && this.state[searchCategory] > 0) {\n searchQueryParamsString += 'max_length=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'minTempo' && this.state[searchCategory] > 0 && this.state.tempoSearchActive) {\n searchQueryParamsString += 'min_tempo=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'maxTempo' && this.state[searchCategory] > 0 && this.state.tempoSearchActive) {\n searchQueryParamsString += 'max_tempo=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'trackId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'track_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'exposurePackId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'exposure_pack_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'mediaBundleId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'media_bundle_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'labelId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'label_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'albumId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'album_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'proFilter') {\n if (this.state[searchCategory] !== 2) {\n searchQueryParamsString += 'include_pro=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'extendedFilters') {\n if (this.state[searchCategory].drums !== 0) {\n searchQueryParamsString += 'drums=' + this.state[searchCategory].drums + '&';\n }\n\n if (this.state[searchCategory].vocals !== 0) {\n searchQueryParamsString += 'vocals=' + this.state[searchCategory].vocals + '&';\n }\n\n // if (this.state[searchCategory].includePro !== 2) {\n // searchQueryParamsString += 'include_pro=' + this.state[searchCategory].includePro + '&';\n // }\n\n if (this.state[searchCategory].withVariants !== 0) {\n searchQueryParamsString += 'with_variants=' + this.state[searchCategory].withVariants + '&';\n }\n\n if (this.state[searchCategory].loop !== 0) {\n searchQueryParamsString += 'loop=' + this.state[searchCategory].loop + '&';\n }\n\n } else if (searchCategory === 'page') {\n if (omitPageParam) {\n searchQueryParamsString += 'page=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'sortBy' && typeof this.state[searchCategory] === 'string') {\n searchQueryParamsString += 'sort_by=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'sortDirection' && typeof this.state[searchCategory] === 'string') {\n searchQueryParamsString += 'sort_direction=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'free' && this.state[searchCategory] === true) {\n searchQueryParamsString += 'free=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'completedQuery') {\n\n } else {\n for (let i = 0; i < this.state[searchCategory].length; i += 1) {\n let elementValue = this.state[searchCategory][i],\n singularCategory = searchCategory.slice(0, -1),\n text = '';\n\n // if (this.props.hideCategoryFromUrl !== singularCategory) {\n // text = singularCategory + '_id[]=' + elementValue + '&';\n // }\n\n text = singularCategory + '_id[]=' + elementValue + '&';\n\n searchQueryParamsString += text;\n }\n }\n }\n }\n\n\n if (searchQueryParamsString.endsWith('&')) {\n searchQueryParamsString = searchQueryParamsString.slice(0, -1);\n }\n\n if (searchQueryParamsString === 'sort_direction=&sort_by=') {\n searchQueryParamsString = '';\n }\n\n return searchQueryParamsString;\n }\n\n sendSearchQuery(paginationMode, initialPageLoadQuery) {\n let that = this,\n searchQueryParams, // search object\n newUrl,\n urlParams;\n\n if (!paginationMode) {\n this.setState({ page: 1 });\n }\n\n searchQueryParams = this.buildSearchQueryParams(paginationMode); // search object\n urlParams = (searchQueryParams.length > 0 ? ('?' + searchQueryParams) : '');\n\n $.ajax({\n url: '/tracks/search_results' + urlParams,\n beforeSend: function () {\n if (initialPageLoadQuery) {\n global.EventHub.trigger('fireSearchWithoutAnimation');\n } else {\n global.EventHub.trigger('fireSearch');\n }\n },\n success: function (data) {\n if (initialPageLoadQuery) {\n global.EventHub.trigger('initialUpdateTrackListing', data);\n } else {\n global.EventHub.trigger('updateTrackListing', data);\n }\n\n global.EventHub.trigger('searchSuccess', data);\n global.EventHub.trigger('updateItemIdList', { genres: that.state.genres, tags: that.state.tags, moods: that.state.moods, instoreTags: that.state.instoreTags, includePro: that.state.proFilter });\n if (history.pushState && !initialPageLoadQuery) {\n if (paginationMode) {\n var prevParams = location.search.replace(/\\?page=[\\d]+/, '').replace(/&page=[\\d]+/, '').replace(/[\\?]+/, '');\n var path = window.location.pathname + '?' + prevParams + (prevParams.length > 0 ? '&' : '') + 'page=' + (that.state.page);\n if (path === '?') {\n path = '';\n }\n newUrl = window.location.protocol + \"//\" + window.location.host + path;\n newUrl = newUrl.replace(/\\?page=1$/, '').replace(/&page=1$/, '');\n } else {\n var path = (searchQueryParams.length > 0 ? ('?' + searchQueryParams) : '').replace('?sort_direction=&sort_by=', '?').replace('&sort_direction=&sort_by=', '').replace('&sort_direction=desc&sort_by=popularity', '').replace('?sort_direction=desc&sort_by=popularity', '?');\n\n if (path === '?') {\n path = ''\n }\n\n newUrl = window.location.protocol + \"//\" + window.location.host + window.location.pathname + path;\n newUrl = newUrl.replace(/&page=[\\d]+/, '');\n }\n\n if (that.props.hideCategoryFromUrl.length > 0) {\n if (that.props.hideCategoryFromUrl === 'tag') {\n newUrl = newUrl.replace(/\\?tag_id\\[\\]=[\\d]+&/, '?');\n newUrl = newUrl.replace(/&tag_id\\[\\]=[\\d]+&/, '&');\n newUrl = newUrl.replace(/&tag_id\\[\\]=[\\d]+/, '');\n newUrl = newUrl.replace(/\\?tag_id\\[\\]=[\\d]+/, '');\n }\n\n if (that.props.hideCategoryFromUrl === 'instore_tag') {\n newUrl = newUrl.replace(/\\?instore_tag_id\\[\\]=[\\d]+&/, '?');\n newUrl = newUrl.replace(/&instore_tag_id\\[\\]=[\\d]+&/, '&');\n newUrl = newUrl.replace(/&instore_tag_id\\[\\]=[\\d]+/, '');\n newUrl = newUrl.replace(/\\?instore_tag_id\\[\\]=[\\d]+/, '');\n }\n\n if (that.props.hideCategoryFromUrl === 'genre') {\n newUrl = newUrl.replace(/\\?genre_id\\[\\]=[\\d]+&/, '?');\n newUrl = newUrl.replace(/&genre_id\\[\\]=[\\d]+&/, '&');\n newUrl = newUrl.replace(/&genre_id\\[\\]=[\\d]+/, '');\n newUrl = newUrl.replace(/\\?genre_id\\[\\]=[\\d]+/, '');\n }\n\n if (that.props.hideCategoryFromUrl === 'composer') {\n newUrl = newUrl.replace(/\\?composer_id\\[\\]=[\\d]+&/, '?');\n newUrl = newUrl.replace(/&composer_id\\[\\]=[\\d]+&/, '&');\n newUrl = newUrl.replace(/&composer_id\\[\\]=[\\d]+/, '');\n newUrl = newUrl.replace(/\\?composer_id\\[\\]=[\\d]+/, '');\n }\n\n }\n\n window.history.pushState({ path: newUrl }, '', newUrl);\n\n if (typeof ga === 'function') {\n ga('send', 'pageview', path);\n }\n\n that.setState({ completedQuery: that.state.query });\n }\n }\n });\n }\n\n\n render() {\n return (\n \n
\n )\n }\n};\n\nSearchMenuInvisible.defaultProps = {\n genres: [\n {\n name: '',\n id: ''\n }\n ],\n instruments: [\n {\n name: '',\n id: ''\n }\n ],\n moods: [\n {\n name: '',\n id: ''\n }\n ],\n composers: [\n {\n name: '',\n id: ''\n }\n ],\n sortDirection: 'desc',\n sortBy: 'popularity',\n initialSearchQuery: {\n // query : '',\n // free : false,\n // genres : [],\n // instruments : [],\n // moods : [],\n // tags : [],\n // instoreTags : [],\n // minTempo : 80,\n // maxTempo : 140,\n // tempoSearchActive : false,\n // page : 1,\n // composers : [],\n // trackId : undefined,\n // aId : 1,\n // albumId : 1\n\n },\n autocompletion: [],\n i18n: {\n placeholder: 'z.B. Urlaub Gitarre fröhlich'\n },\n hideCategoryFromUrl: '',\n extendedFilters: [\n { category: 'drums', nameDe: 'Schlagzeug / Beat', nameEn: 'Drums / beat', value: undefined, labelsDe: ['Beliebig', 'Mit Beat', 'Ohne Beat'], labelsEn: ['Any', 'With beat', 'Without beat'] },\n { category: 'vocals', nameDe: 'Gesang / Stimme', nameEn: 'Singing / vocals', value: undefined, labelsDe: ['Beliebig', 'Mit Gesang', 'Ohne Gesang'], labelsEn: ['Any', 'With vocals', 'Without vocals'] },\n { category: 'withVariants', nameDe: 'Varianten / Stems', nameEn: 'Variants / stems', value: undefined, labelsDe: ['Beliebig', 'Mit Varianten', 'Ohne Varianten'], labelsEn: ['Any', 'With variants', 'Without variants'] },\n { category: 'loop', nameDe: 'Loop', nameEn: 'Loop', value: undefined, labelsDe: ['Beliebig', 'Mit Loops', 'Ohne Loops'], labelsEn: ['Any', 'With loops', 'Without loops'] },\n ],\n proFilters: [\n { category: 'includePro', nameDe: 'Verwertungsgesellschaft', nameEn: 'P.R.O.', value: undefined, labelsDe: ['Alle Tracks', 'Nur GEMA-pflichtig (P.R.O.)', 'Nur GEMA-frei'], labelsEn: ['Any', 'Only P.R.O. tracks', 'Only royalty free tracks'] }\n ]\n}\n\nSearchMenuInvisible.propTypes = {\n locale: PropTypes.string\n};\n\n\n// INIT\n\nlet elements = document.querySelectorAll('[data-react-component=SearchMenuInvisible]');\n\nelements.forEach(function (element) {\n let reactProps = JSON.parse(element.dataset.reactProps);\n\n console.log('reactProps');\n console.log(reactProps);\n\n ReactDOM.render(\n \n \n ,\n element\n );\n})\n\nexport default SearchMenuInvisible;\n","// canvas-confetti v1.6.0 built on 2022-10-24T21:26:41.619Z\nvar module = {};\n\n// source content\n(function main(global, module, isWorker, workerSize) {\n var canUseWorker = !!(\n global.Worker &&\n global.Blob &&\n global.Promise &&\n global.OffscreenCanvas &&\n global.OffscreenCanvasRenderingContext2D &&\n global.HTMLCanvasElement &&\n global.HTMLCanvasElement.prototype.transferControlToOffscreen &&\n global.URL &&\n global.URL.createObjectURL);\n\n function noop() {}\n\n // create a promise if it exists, otherwise, just\n // call the function directly\n function promise(func) {\n var ModulePromise = module.exports.Promise;\n var Prom = ModulePromise !== void 0 ? ModulePromise : global.Promise;\n\n if (typeof Prom === 'function') {\n return new Prom(func);\n }\n\n func(noop, noop);\n\n return null;\n }\n\n var raf = (function () {\n var TIME = Math.floor(1000 / 60);\n var frame, cancel;\n var frames = {};\n var lastFrameTime = 0;\n\n if (typeof requestAnimationFrame === 'function' && typeof cancelAnimationFrame === 'function') {\n frame = function (cb) {\n var id = Math.random();\n\n frames[id] = requestAnimationFrame(function onFrame(time) {\n if (lastFrameTime === time || lastFrameTime + TIME - 1 < time) {\n lastFrameTime = time;\n delete frames[id];\n\n cb();\n } else {\n frames[id] = requestAnimationFrame(onFrame);\n }\n });\n\n return id;\n };\n cancel = function (id) {\n if (frames[id]) {\n cancelAnimationFrame(frames[id]);\n }\n };\n } else {\n frame = function (cb) {\n return setTimeout(cb, TIME);\n };\n cancel = function (timer) {\n return clearTimeout(timer);\n };\n }\n\n return { frame: frame, cancel: cancel };\n }());\n\n var getWorker = (function () {\n var worker;\n var prom;\n var resolves = {};\n\n function decorate(worker) {\n function execute(options, callback) {\n worker.postMessage({ options: options || {}, callback: callback });\n }\n worker.init = function initWorker(canvas) {\n var offscreen = canvas.transferControlToOffscreen();\n worker.postMessage({ canvas: offscreen }, [offscreen]);\n };\n\n worker.fire = function fireWorker(options, size, done) {\n if (prom) {\n execute(options, null);\n return prom;\n }\n\n var id = Math.random().toString(36).slice(2);\n\n prom = promise(function (resolve) {\n function workerDone(msg) {\n if (msg.data.callback !== id) {\n return;\n }\n\n delete resolves[id];\n worker.removeEventListener('message', workerDone);\n\n prom = null;\n done();\n resolve();\n }\n\n worker.addEventListener('message', workerDone);\n execute(options, id);\n\n resolves[id] = workerDone.bind(null, { data: { callback: id }});\n });\n\n return prom;\n };\n\n worker.reset = function resetWorker() {\n worker.postMessage({ reset: true });\n\n for (var id in resolves) {\n resolves[id]();\n delete resolves[id];\n }\n };\n }\n\n return function () {\n if (worker) {\n return worker;\n }\n\n if (!isWorker && canUseWorker) {\n var code = [\n 'var CONFETTI, SIZE = {}, module = {};',\n '(' + main.toString() + ')(this, module, true, SIZE);',\n 'onmessage = function(msg) {',\n ' if (msg.data.options) {',\n ' CONFETTI(msg.data.options).then(function () {',\n ' if (msg.data.callback) {',\n ' postMessage({ callback: msg.data.callback });',\n ' }',\n ' });',\n ' } else if (msg.data.reset) {',\n ' CONFETTI && CONFETTI.reset();',\n ' } else if (msg.data.resize) {',\n ' SIZE.width = msg.data.resize.width;',\n ' SIZE.height = msg.data.resize.height;',\n ' } else if (msg.data.canvas) {',\n ' SIZE.width = msg.data.canvas.width;',\n ' SIZE.height = msg.data.canvas.height;',\n ' CONFETTI = module.exports.create(msg.data.canvas);',\n ' }',\n '}',\n ].join('\\n');\n try {\n worker = new Worker(URL.createObjectURL(new Blob([code])));\n } catch (e) {\n // eslint-disable-next-line no-console\n typeof console !== undefined && typeof console.warn === 'function' ? console.warn('🎊 Could not load worker', e) : null;\n\n return null;\n }\n\n decorate(worker);\n }\n\n return worker;\n };\n })();\n\n var defaults = {\n particleCount: 50,\n angle: 90,\n spread: 45,\n startVelocity: 45,\n decay: 0.9,\n gravity: 1,\n drift: 0,\n ticks: 200,\n x: 0.5,\n y: 0.5,\n shapes: ['square', 'circle'],\n zIndex: 100,\n colors: [\n '#26ccff',\n '#a25afd',\n '#ff5e7e',\n '#88ff5a',\n '#fcff42',\n '#ffa62d',\n '#ff36ff'\n ],\n // probably should be true, but back-compat\n disableForReducedMotion: false,\n scalar: 1\n };\n\n function convert(val, transform) {\n return transform ? transform(val) : val;\n }\n\n function isOk(val) {\n return !(val === null || val === undefined);\n }\n\n function prop(options, name, transform) {\n return convert(\n options && isOk(options[name]) ? options[name] : defaults[name],\n transform\n );\n }\n\n function onlyPositiveInt(number){\n return number < 0 ? 0 : Math.floor(number);\n }\n\n function randomInt(min, max) {\n // [min, max)\n return Math.floor(Math.random() * (max - min)) + min;\n }\n\n function toDecimal(str) {\n return parseInt(str, 16);\n }\n\n function colorsToRgb(colors) {\n return colors.map(hexToRgb);\n }\n\n function hexToRgb(str) {\n var val = String(str).replace(/[^0-9a-f]/gi, '');\n\n if (val.length < 6) {\n val = val[0]+val[0]+val[1]+val[1]+val[2]+val[2];\n }\n\n return {\n r: toDecimal(val.substring(0,2)),\n g: toDecimal(val.substring(2,4)),\n b: toDecimal(val.substring(4,6))\n };\n }\n\n function getOrigin(options) {\n var origin = prop(options, 'origin', Object);\n origin.x = prop(origin, 'x', Number);\n origin.y = prop(origin, 'y', Number);\n\n return origin;\n }\n\n function setCanvasWindowSize(canvas) {\n canvas.width = document.documentElement.clientWidth;\n canvas.height = document.documentElement.clientHeight;\n }\n\n function setCanvasRectSize(canvas) {\n var rect = canvas.getBoundingClientRect();\n canvas.width = rect.width;\n canvas.height = rect.height;\n }\n\n function getCanvas(zIndex) {\n var canvas = document.createElement('canvas');\n\n canvas.style.position = 'fixed';\n canvas.style.top = '0px';\n canvas.style.left = '0px';\n canvas.style.pointerEvents = 'none';\n canvas.style.zIndex = zIndex;\n\n return canvas;\n }\n\n function ellipse(context, x, y, radiusX, radiusY, rotation, startAngle, endAngle, antiClockwise) {\n context.save();\n context.translate(x, y);\n context.rotate(rotation);\n context.scale(radiusX, radiusY);\n context.arc(0, 0, 1, startAngle, endAngle, antiClockwise);\n context.restore();\n }\n\n function randomPhysics(opts) {\n var radAngle = opts.angle * (Math.PI / 180);\n var radSpread = opts.spread * (Math.PI / 180);\n\n return {\n x: opts.x,\n y: opts.y,\n wobble: Math.random() * 10,\n wobbleSpeed: Math.min(0.11, Math.random() * 0.1 + 0.05),\n velocity: (opts.startVelocity * 0.5) + (Math.random() * opts.startVelocity),\n angle2D: -radAngle + ((0.5 * radSpread) - (Math.random() * radSpread)),\n tiltAngle: (Math.random() * (0.75 - 0.25) + 0.25) * Math.PI,\n color: opts.color,\n shape: opts.shape,\n tick: 0,\n totalTicks: opts.ticks,\n decay: opts.decay,\n drift: opts.drift,\n random: Math.random() + 2,\n tiltSin: 0,\n tiltCos: 0,\n wobbleX: 0,\n wobbleY: 0,\n gravity: opts.gravity * 3,\n ovalScalar: 0.6,\n scalar: opts.scalar\n };\n }\n\n function updateFetti(context, fetti) {\n fetti.x += Math.cos(fetti.angle2D) * fetti.velocity + fetti.drift;\n fetti.y += Math.sin(fetti.angle2D) * fetti.velocity + fetti.gravity;\n fetti.wobble += fetti.wobbleSpeed;\n fetti.velocity *= fetti.decay;\n fetti.tiltAngle += 0.1;\n fetti.tiltSin = Math.sin(fetti.tiltAngle);\n fetti.tiltCos = Math.cos(fetti.tiltAngle);\n fetti.random = Math.random() + 2;\n fetti.wobbleX = fetti.x + ((10 * fetti.scalar) * Math.cos(fetti.wobble));\n fetti.wobbleY = fetti.y + ((10 * fetti.scalar) * Math.sin(fetti.wobble));\n\n var progress = (fetti.tick++) / fetti.totalTicks;\n\n var x1 = fetti.x + (fetti.random * fetti.tiltCos);\n var y1 = fetti.y + (fetti.random * fetti.tiltSin);\n var x2 = fetti.wobbleX + (fetti.random * fetti.tiltCos);\n var y2 = fetti.wobbleY + (fetti.random * fetti.tiltSin);\n\n context.fillStyle = 'rgba(' + fetti.color.r + ', ' + fetti.color.g + ', ' + fetti.color.b + ', ' + (1 - progress) + ')';\n context.beginPath();\n\n if (fetti.shape === 'circle') {\n context.ellipse ?\n context.ellipse(fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI) :\n ellipse(context, fetti.x, fetti.y, Math.abs(x2 - x1) * fetti.ovalScalar, Math.abs(y2 - y1) * fetti.ovalScalar, Math.PI / 10 * fetti.wobble, 0, 2 * Math.PI);\n } else if (fetti.shape === 'star') {\n var rot = Math.PI / 2 * 3;\n var innerRadius = 4 * fetti.scalar;\n var outerRadius = 8 * fetti.scalar;\n var x = fetti.x;\n var y = fetti.y;\n var spikes = 5;\n var step = Math.PI / spikes;\n\n while (spikes--) {\n x = fetti.x + Math.cos(rot) * outerRadius;\n y = fetti.y + Math.sin(rot) * outerRadius;\n context.lineTo(x, y);\n rot += step;\n\n x = fetti.x + Math.cos(rot) * innerRadius;\n y = fetti.y + Math.sin(rot) * innerRadius;\n context.lineTo(x, y);\n rot += step;\n }\n } else {\n context.moveTo(Math.floor(fetti.x), Math.floor(fetti.y));\n context.lineTo(Math.floor(fetti.wobbleX), Math.floor(y1));\n context.lineTo(Math.floor(x2), Math.floor(y2));\n context.lineTo(Math.floor(x1), Math.floor(fetti.wobbleY));\n }\n\n context.closePath();\n context.fill();\n\n return fetti.tick < fetti.totalTicks;\n }\n\n function animate(canvas, fettis, resizer, size, done) {\n var animatingFettis = fettis.slice();\n var context = canvas.getContext('2d');\n var animationFrame;\n var destroy;\n\n var prom = promise(function (resolve) {\n function onDone() {\n animationFrame = destroy = null;\n\n context.clearRect(0, 0, size.width, size.height);\n\n done();\n resolve();\n }\n\n function update() {\n if (isWorker && !(size.width === workerSize.width && size.height === workerSize.height)) {\n size.width = canvas.width = workerSize.width;\n size.height = canvas.height = workerSize.height;\n }\n\n if (!size.width && !size.height) {\n resizer(canvas);\n size.width = canvas.width;\n size.height = canvas.height;\n }\n\n context.clearRect(0, 0, size.width, size.height);\n\n animatingFettis = animatingFettis.filter(function (fetti) {\n return updateFetti(context, fetti);\n });\n\n if (animatingFettis.length) {\n animationFrame = raf.frame(update);\n } else {\n onDone();\n }\n }\n\n animationFrame = raf.frame(update);\n destroy = onDone;\n });\n\n return {\n addFettis: function (fettis) {\n animatingFettis = animatingFettis.concat(fettis);\n\n return prom;\n },\n canvas: canvas,\n promise: prom,\n reset: function () {\n if (animationFrame) {\n raf.cancel(animationFrame);\n }\n\n if (destroy) {\n destroy();\n }\n }\n };\n }\n\n function confettiCannon(canvas, globalOpts) {\n var isLibCanvas = !canvas;\n var allowResize = !!prop(globalOpts || {}, 'resize');\n var globalDisableForReducedMotion = prop(globalOpts, 'disableForReducedMotion', Boolean);\n var shouldUseWorker = canUseWorker && !!prop(globalOpts || {}, 'useWorker');\n var worker = shouldUseWorker ? getWorker() : null;\n var resizer = isLibCanvas ? setCanvasWindowSize : setCanvasRectSize;\n var initialized = (canvas && worker) ? !!canvas.__confetti_initialized : false;\n var preferLessMotion = typeof matchMedia === 'function' && matchMedia('(prefers-reduced-motion)').matches;\n var animationObj;\n\n function fireLocal(options, size, done) {\n var particleCount = prop(options, 'particleCount', onlyPositiveInt);\n var angle = prop(options, 'angle', Number);\n var spread = prop(options, 'spread', Number);\n var startVelocity = prop(options, 'startVelocity', Number);\n var decay = prop(options, 'decay', Number);\n var gravity = prop(options, 'gravity', Number);\n var drift = prop(options, 'drift', Number);\n var colors = prop(options, 'colors', colorsToRgb);\n var ticks = prop(options, 'ticks', Number);\n var shapes = prop(options, 'shapes');\n var scalar = prop(options, 'scalar');\n var origin = getOrigin(options);\n\n var temp = particleCount;\n var fettis = [];\n\n var startX = canvas.width * origin.x;\n var startY = canvas.height * origin.y;\n\n while (temp--) {\n fettis.push(\n randomPhysics({\n x: startX,\n y: startY,\n angle: angle,\n spread: spread,\n startVelocity: startVelocity,\n color: colors[temp % colors.length],\n shape: shapes[randomInt(0, shapes.length)],\n ticks: ticks,\n decay: decay,\n gravity: gravity,\n drift: drift,\n scalar: scalar\n })\n );\n }\n\n // if we have a previous canvas already animating,\n // add to it\n if (animationObj) {\n return animationObj.addFettis(fettis);\n }\n\n animationObj = animate(canvas, fettis, resizer, size , done);\n\n return animationObj.promise;\n }\n\n function fire(options) {\n var disableForReducedMotion = globalDisableForReducedMotion || prop(options, 'disableForReducedMotion', Boolean);\n var zIndex = prop(options, 'zIndex', Number);\n\n if (disableForReducedMotion && preferLessMotion) {\n return promise(function (resolve) {\n resolve();\n });\n }\n\n if (isLibCanvas && animationObj) {\n // use existing canvas from in-progress animation\n canvas = animationObj.canvas;\n } else if (isLibCanvas && !canvas) {\n // create and initialize a new canvas\n canvas = getCanvas(zIndex);\n document.body.appendChild(canvas);\n }\n\n if (allowResize && !initialized) {\n // initialize the size of a user-supplied canvas\n resizer(canvas);\n }\n\n var size = {\n width: canvas.width,\n height: canvas.height\n };\n\n if (worker && !initialized) {\n worker.init(canvas);\n }\n\n initialized = true;\n\n if (worker) {\n canvas.__confetti_initialized = true;\n }\n\n function onResize() {\n if (worker) {\n // TODO this really shouldn't be immediate, because it is expensive\n var obj = {\n getBoundingClientRect: function () {\n if (!isLibCanvas) {\n return canvas.getBoundingClientRect();\n }\n }\n };\n\n resizer(obj);\n\n worker.postMessage({\n resize: {\n width: obj.width,\n height: obj.height\n }\n });\n return;\n }\n\n // don't actually query the size here, since this\n // can execute frequently and rapidly\n size.width = size.height = null;\n }\n\n function done() {\n animationObj = null;\n\n if (allowResize) {\n global.removeEventListener('resize', onResize);\n }\n\n if (isLibCanvas && canvas) {\n document.body.removeChild(canvas);\n canvas = null;\n initialized = false;\n }\n }\n\n if (allowResize) {\n global.addEventListener('resize', onResize, false);\n }\n\n if (worker) {\n return worker.fire(options, size, done);\n }\n\n return fireLocal(options, size, done);\n }\n\n fire.reset = function () {\n if (worker) {\n worker.reset();\n }\n\n if (animationObj) {\n animationObj.reset();\n }\n };\n\n return fire;\n }\n\n // Make default export lazy to defer worker creation until called.\n var defaultFire;\n function getDefaultFire() {\n if (!defaultFire) {\n defaultFire = confettiCannon(null, { useWorker: true, resize: true });\n }\n return defaultFire;\n }\n\n module.exports = function() {\n return getDefaultFire().apply(this, arguments);\n };\n module.exports.reset = function() {\n getDefaultFire().reset();\n };\n module.exports.create = confettiCannon;\n}((function () {\n if (typeof window !== 'undefined') {\n return window;\n }\n\n if (typeof self !== 'undefined') {\n return self;\n }\n\n return this || {};\n})(), module, false));\n\n// end source content\n\nexport default module.exports;\nexport var create = module.exports.create;\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n\nclass UsageLicenseTypeSelectItem extends Component {\n\n constructor(props) {\n super(props);\n\n this.handleAddClick = this.handleAddClick.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n\n this.state = {\n hover: false\n }\n }\n \n handleAddClick(e) {\n e.preventDefault();\n\n global.EventHub.trigger('elementCatapult', 'cart', this.refs.plusButton);\n\n if (this.props.forFx) {\n this.props.handleClick(this.props.id, true);\n } else {\n this.props.handleClick(this.props.id, false);\n }\n }\n\n handleMouseEnter() {\n this.setState({\n hover: true\n });\n }\n\n handleMouseLeave() {\n this.setState({\n hover: false\n });\n }\n\n render() {\n let classes = classNames({\n 'usage-license-type-select__item': true,\n 'usage-license-type-select__item--hover': this.state.hover,\n 'usage-license-type-select__item--selected': this.props.selected\n }),\n icon,\n price,\n usageLicenseTypeLabel;\n\n if (this.props.selected) {\n icon =
;\n }\n\n if (this.props.free) {\n price = this.props.i18n.free;\n } else {\n if (this.props.discount) {\n price = this.props.discountGrossPrice;\n } else if (this.props.includedInSubscription) {\n price = this.props.i18n.free;\n } else {\n price = this.props.grossPrice;\n }\n\n }\n\n if (this.state.hover) {\n usageLicenseTypeLabel = {this.props.name}{this.props.count > 0 ? (' (x' + this.props.count + ')') : ''}{this.props.locale === 'de' ? 'In Warenkorb' : 'Add to cart'}
\n } else {\n usageLicenseTypeLabel = {this.props.name}{this.props.count > 0 ? (' (x' + this.props.count + ')') : ''}
\n }\n\n return (\n \n )\n }\n};\n\nUsageLicenseTypeSelectItem.defaultProps = {\n selected: false,\n free: false,\n count: 0,\n includedInSubscription: false\n}\n\nexport default UsageLicenseTypeSelectItem;\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\nimport PropTypes from 'prop-types';\nimport confetti from 'canvas-confetti';\n\nimport UsageLicenseTypeSelectItem from '~/components/legacy/UsageLicenseTypeSelectItem.jsx';\n\nclass UsageLicenseTypeSelect extends Component {\n\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.handleUsageLicenseTypeViewChange = this.handleUsageLicenseTypeViewChange.bind(this);\n\n this.state = {\n selectedItemId : 0,\n viewSoundExposureLicenseTypes: false \n }\n }\n\n handleClick(itemId, forFx) {\n confetti({\n particleCount: 200,\n startVelocity: 30,\n spread: 360\n });\n\n if (forFx) {\n this.props.updateCart(itemId, undefined, true);\n } else {\n this.props.updateCart(itemId);\n }\n }\n\n handleUsageLicenseTypeViewChange(e) {\n e.preventDefault();\n\n this.setState({\n viewSoundExposureLicenseTypes : !this.state.viewSoundExposureLicenseTypes\n });\n }\n\n usageLicenseTypeIsSelected(usageLicenseTypeId) {\n let selected = false;\n\n this.props.selectedUsageLicenseTypeIds.forEach(function(element) {\n if (element === usageLicenseTypeId) {\n selected = true;\n }\n });\n\n return selected;\n }\n\n getUsageLicenseTypeCount(usageLicenseTypeId) {\n let count = 0;\n\n this.props.selectedUsageLicenseTypeIds.forEach(function(element) {\n if (element === usageLicenseTypeId) {\n count++;\n }\n });\n\n return count;\n }\n\n render() {\n let classes = classNames({\n 'usage-license-type-select': true,\n 'usage-license-type-select--active': this.props.visible,\n 'usage-license-type-select--top': this.props.position === 'top',\n 'usage-license-type-select--top-showcase': this.props.position === 'top-showcase',\n 'usage-license-type-select--showcase': this.props.position === 'showcase',\n 'usage-license-type-select--bottom': this.props.position === 'bottom',\n 'usage-license-type-select--overlay': this.props.position === 'overlay',\n 'usage-license-type-select--cart': this.props.position === 'cart'\n }),\n usageLicenseTypes = this.props.usageLicenseTypes\n .filter(function (usageLicenseType) {\n return usageLicenseType.for_sound_exposure === this.state.viewSoundExposureLicenseTypes\n }.bind(this))\n .map(function (usageLicenseType, index) {\n return (\n \n );\n }.bind(this)),\n checkoutButton = ,\n pricingInfoLink,\n licensesViewText;\n\n if (this.props.selectedUsageLicenseTypeIds.length > 0) {\n if (this.props.show_download_button) {\n checkoutButton = ();\n } else {\n checkoutButton = ();\n }\n }\n\n pricingInfoLink = (\n \n )\n\n if (this.props.locale === 'de') {\n if (this.state.viewSoundExposureLicenseTypes) {\n licensesViewText = 'Projekt-Lizenzen';\n } else {\n licensesViewText = 'Event und Beschallungs-Lizenzen';\n }\n } else {\n if (this.state.viewSoundExposureLicenseTypes) {\n licensesViewText = 'Show project licenses';\n } else {\n licensesViewText = 'Show event and in-store licenses';\n }\n }\n\n var header;\n\n if (this.props.position === 'overlay') {\n header = ({this.props.locale === 'de' ? 'Wählen Sie Ihre Lizenz(en) für ' + (this.props.trackTitle) + ' aus:' : 'Choose your license(s) for ' + (this.props.trackTitle) + ':'}
)\n }\n\n return (\n \n {header}\n
\n
\n {/*
\n Bitte wählen Sie eine Lizenz aus: \n
*/}\n {usageLicenseTypes}\n
\n {this.props.locale === 'de' ? (\n
Nicht sicher, welche Lizenz die Richtige ist? Nutzen Sie einfach unseren Lizenz-Assistent . \n ):(\n
Not sure which license is right for you? Simply use our license assistant . \n )}\n \n
\n
\n {checkoutButton}\n
\n
\n
{this.props.locale === 'de' ? 'Schließen' : 'Close'}
\n
\n
\n {pricingInfoLink}\n
\n
\n\n
\n )\n }\n};\n\nUsageLicenseTypeSelect.defaultProps = {\n subscribedUsageLicenseTypes : []\n};\n\nUsageLicenseTypeSelect.propTypes = {\n locale: PropTypes.string\n};\n\nexport default UsageLicenseTypeSelect;\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames/bind';\n// import $ from 'jquery';\nimport ahoy from 'ahoy.js';\nimport confetti from 'canvas-confetti';\n\nimport UsageLicenseTypeSelect from '~/components/legacy/UsageLicenseTypeSelect.jsx';\n\nclass SoundEffectInfo extends Component {\n\n // mixins : [UsageLicenseTypeSelectMixin, SoundEffectFavoriteMixin],\n\n constructor(props) {\n super(props);\n\n this.handleLayoutDownloadClick = this.handleLayoutDownloadClick.bind(this);\n this.handleCartLinkClick = this.handleCartLinkClick.bind(this);\n this.triggerDemoDownload = this.triggerDemoDownload.bind(this);\n this.delegateFavoriteClick = this.delegateFavoriteClick.bind(this);\n this.handleShareClick = this.handleShareClick.bind(this);\n this.handleCartClick = this.handleCartClick.bind(this);\n this.handleFavoriteClick = this.handleFavoriteClick.bind(this);\n\n\n this.state = {\n data: this.props.data,\n displayCopyHint: false,\n shareTrackingFired: false,\n layoutDownloadTrackingFired: false,\n isVariant: false,\n variantTitle: '',\n showUsageLicenseSelect: false,\n soundEffectFavorites: this.props.soundEffectFavorites\n }\n }\n\n componentDidMount() {\n global.EventHub.on('updateSoundEffectInfo', function (data) {\n this.setState({ data: data[0], isVariant: false, variantTitle: '' })\n }.bind(this));\n\n global.EventHub.on('updateSoundEffectVariantInfo', function (data) {\n this.setState({ data: data[0], isVariant: true, variantTitle: data[1].title })\n }.bind(this));\n\n global.EventHub.on('updateCart', function (data) {\n this.setState({ cart_items: data[0] });\n }.bind(this));\n\n global.on('updateSoundEffectFavorites', function (data) {\n this.setState({ soundEffectFavorites: data[0] });\n }.bind(this));\n }\n\n handleFavoriteClick(sound_effect_id) {\n $.ajax({\n url: \"/sound_effect_favorite?sound_effect_id=\" + sound_effect_id,\n type: 'POST'\n }).done(function (data) {\n if (!(this.soundEffectIsFavorited(sound_effect_id, this.state.soundEffectFavorites))) {\n global.EventHub.trigger('soundEffectFavorited', sound_effect_id);\n }\n\n global.EventHub.trigger('updateSoundEffectFavorites', data)\n }.bind(this));\n }\n\n soundEffectIsFavorited(sound_effect_id, favorites) {\n let i,\n favoritesLength = favorites && favorites.length ? favorites.length : 0;\n\n for (i = 0; i < favoritesLength; i += 1) {\n if (favorites[i].sound_effect_id === sound_effect_id) {\n return true;\n }\n }\n return false;\n }\n\n updateCart(usageLicenseTypeId, exposurePackId, forFx) {\n let itemId = this.props.id || this.state.data.id,\n i,\n updateUrl;\n\n if (exposurePackId) {\n updateUrl = \"/cart?exposure_pack_id=\" + exposurePackId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else if (forFx) {\n updateUrl = \"/cart?sound_effect_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else {\n updateUrl = \"/cart?track_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n }\n\n $.ajax({\n url: updateUrl,\n type: 'POST'\n }).done(function (data) {\n\n global.EventHub.trigger('updateCart', data)\n\n for (i = 0; i < data.length; i += 1) {\n if (data[i].track_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('track_add_cart', { props: { track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href } });\n }\n\n ahoy.track('track_add_cart', { track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false })\n } else if (data[i].sound_effect_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('sound_effect_add_cart', { props: { sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href } });\n }\n\n ahoy.track('sound_effect_add_cart', { sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false })\n }\n }\n\n if (typeof fbq === 'function') {\n fbq('track', 'AddToWishlist', {\n content_ids: itemId.toString(),\n content_type: 'product',\n });\n }\n\n }.bind(this));\n }\n\n handleCartClick(e) {\n e.preventDefault();\n this.props.handleCartClick(this.props.id);\n }\n\n getSelectedUsageLicenseTypeIds() {\n var ids = [],\n that = this,\n trackId = this.props.id || that.state.data.id,\n cart_items = this.state.cart_items || this.props.cart_items;\n\n cart_items.forEach(function (element) {\n if (element.track_id === trackId) {\n ids.push(element.usage_license_type_id);\n }\n });\n\n return ids;\n }\n\n\n handleLayoutDownloadClick(e) {\n this.triggerDemoDownload();\n\n if (typeof confetti !== 'undefined') {\n var rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 30,\n angle: 90,\n spread: 60,\n shapes: ['circle'],\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 20) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n\n handleCartLinkClick(e) {\n e.preventDefault();\n this.setState({ showUsageLicenseSelect: !this.state.showUsageLicenseSelect });\n }\n\n triggerDemoDownload() {\n var link = document.createElement(\"a\"),\n uri = '/c/sound_effects/' + this.state.data.id + '/download_layout',\n isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor),\n isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\n // If you don't know the name or want to use\n // the webserver default set name = ''\n\n link.href = uri\n\n if ($('[data-logged-in]').length === 0) {\n // not logged in\n link.setAttribute('target', '_blank');\n } else {\n // logged in\n if (!isChrome && !isFirefox) {\n link.setAttribute('download', '');\n }\n }\n\n if (!this.state.layoutDownloadTrackingFired) {\n if (typeof plausible === 'function') {\n plausible(this.props.freeMode ? 'sound_effect_layout_download_free' : 'sound_effect_layout_download', { props: { sound_effect_id: this.state.data.id, location: window.location.href } });\n }\n\n ahoy.track(this.props.freeMode ? 'sound_effect_layout_download_free' : 'sound_effect_layout_download', { sound_effect_id: this.state.data.id, location: window.location.href, categorization_processed: false })\n this.setState({ layoutDownloadTrackingFired: true });\n }\n\n document.body.appendChild(link);\n\n link.click();\n link.remove();\n }\n\n\n delegateFavoriteClick(e) {\n e.preventDefault();\n\n this.handleFavoriteClick(this.state.data.id);\n\n if (!(this.soundEffectIsFavorited(this.state.data.id, this.state.soundEffectFavorites)) && typeof confetti !== 'undefined') {\n var rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 30,\n angle: 90,\n spread: 60,\n shapes: ['circle'],\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 20) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n\n handleShareClick(e) {\n e.preventDefault();\n\n if (this.state.displayCopyHint) {\n this.setState({ displayCopyHint: false });\n } else {\n if (!this.state.shareTrackingFired) {\n if (typeof plausible === 'function') {\n plausible('sound_effect_share', { props: { sound_effect_id: this.state.data.id, location: window.location.href } });\n }\n\n ahoy.track('sound_effect_share', { sound_effect_id: this.state.data.id, location: window.location.href, categorization_processed: false })\n }\n\n if (navigator.share) {\n // Web Share API is supported\n navigator.share({\n title: (this.state.data.display_title || this.state.data.title) + ' | ' + (I18n.locale === 'de' ? 'GEMAfreie Musik auf audiocrowd.net' : 'Royalty-free music on audiocrowd.net'),\n url: this.state.data.showcase_url + '?utm_source=share_link&utm_medium=referral'\n })\n this.setState({ shareTrackingFired: true });\n } else {\n // Fallback\n this.copyToClipboard(this.state.data.showcase_url + '?utm_source=share_link&utm_medium=referral');\n this.setState({ displayCopyHint: true, shareTrackingFired: true }, function () {\n setTimeout(function () {\n this.setState({ displayCopyHint: false })\n }.bind(this), 5000)\n });\n }\n\n if (typeof confetti !== 'undefined') {\n var rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 30,\n angle: 90,\n spread: 60,\n shapes: ['circle'],\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 20) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n }\n\n\n copyToClipboard(str) {\n var el = document.createElement('textarea');\n el.value = str;\n el.setAttribute('readonly', '');\n el.style.position = 'absolute';\n el.style.left = '-9999px';\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n }\n\n // handleClick: function(e) {\n // var that = this;\n // e.preventDefault();\n // $.ajax({\n // url: \"/cart?track_id=\" + this.state.data.id + (this.trackIsInCart(this.state.data.id, this.props.tracks_in_cart) ? '' : '&add=1'),\n // type: 'POST'\n // }).done(function(data) {\n // global.EventHub.trigger('updateCart', data)\n // }.bind(this));\n // },\n\n // trackIsInCart : function(trackId, tracks) {\n // var i,\n // tracksLength = tracks && tracks.length ? tracks.length : 0;\n\n // for (i = 0; i < tracksLength; i += 1) {\n // if (tracks[i].track_id === trackId) {\n // return true;\n // }\n // }\n // return false;\n // },\n\n getUsageLicenseSelect() {\n var usageLicenseTypes = [];\n\n if (this.state.data.sound_effect_id) {\n usageLicenseTypes = this.props.usageLicenseTypes.filter(function (usageLicenseType) { return usageLicenseType.for_fx === true });\n } else {\n usageLicenseTypes = this.props.usageLicenseTypes.filter(function (usageLicenseType) { return usageLicenseType.for_fx === false });\n }\n\n return (\n \n )\n }\n\n render() {\n var classes = classNames({\n 'track-info': true,\n 'track-info--hide-cart': this.props.hide_add_to_cart\n }),\n loop,\n variableTempo,\n cartLink,\n toCheckoutLink,\n instruments,\n genres,\n moods,\n tags,\n trackTitle,\n layoutDownloadLink,\n showcaseLink,\n favoriteLink,\n showCaseLink,\n copyHint,\n price,\n shareLink;\n\n // if (this.props.usageLicenseTypes.length > 0) {\n // price = ab {this.props.usageLicenseTypes[0].formatted_gross_price_eur} ;\n\n // if (this.state.data.discount) {\n // price = ab {this.props.usageLicenseTypes[0].formatted_discount_gross_price_eur} ;\n // }\n\n // if (this.state.data.free) {\n // price = {this.props.i18n.free} ;\n // }\n // }\n\n if (this.state.data) {\n\n if (this.state.data.tags) {\n tags = this.state.data.sound_effect_tags.map(function (tag, index) {\n return (\n {tag} \n );\n });\n }\n\n if (this.state.displayCopyHint && !navigator.share) {\n copyHint = \n \n {I18n.locale === 'de' ? 'Die Track-URL wurde in die Zwischenablage kopiert.' : 'The track URL was copied to your clipboard.'} \n
;\n }\n\n trackTitle = {this.state.data.display_title || this.state.data.title}{this.state.isVariant && this.state.variantTitle.length > 0 ? (' (' + this.state.variantTitle + ')') : ''} ;\n\n if (this.props.show_meta && !this.props.hideActions) {\n cartLink = \n\n layoutDownloadLink = (\n \n
\n
{this.props.i18n.layout_download} \n
{I18n.locale === 'de' ? 'DEMO-Download: Wenn Sie die Musik erst ausprobieren möchten, können Sie eine Demo-Version herunterladen.' : 'Demo download: If you want to try the music first, you can download a demo version.'}
\n
\n );\n }\n\n if (!this.props.hideActions) {\n if (this.soundEffectIsFavorited(this.state.data.sound_effect_id, this.state.soundEffectFavorites)) {\n favoriteLink = {I18n.locale === 'de' ? 'gemerkt' : 'remembered'} ;\n } else {\n favoriteLink = {I18n.locale === 'de' ? 'merken' : 'remember'} ;\n }\n\n shareLink = (\n \n {copyHint}\n \n {I18n.locale === 'de' ? 'Teilen' : 'Share'} \n
\n );\n }\n\n\n return (\n \n \n \n {this.state.data.id}\n \n {trackTitle}\n \n {favoriteLink}\n {cartLink}\n {shareLink}\n {this.getUsageLicenseSelect()}\n
\n );\n } else {\n return (
);\n }\n }\n};\n\nSoundEffectInfo.defaultProps = {\n data: {\n tracks_in_cart: [],\n is_in_cart: false,\n sound_effect_tags: [],\n showcase_url: ''\n },\n i18n: {\n add_to_cart: 'add to cart',\n checkout_now: 'checkout now',\n layout_download: 'layout download'\n },\n checkout_path: 'c/checkouts/new',\n open_in_new_tab: 'open in new tab',\n show_meta: true,\n usageLicensePosition: 'overlay',\n freeMode: false,\n subscribedUsageLicenseTypes: [],\n hideActions: false,\n cart_items: [],\n soundEffectFavorites: []\n\n}\n\nexport default SoundEffectInfo;\n","import React, { Component } from 'react';\n\nclass Pagination extends Component {\n\n constructor(props) {\n super(props);\n\n this.handleNextClick = this.handleNextClick.bind(this);\n this.handlePrevClick = this.handlePrevClick.bind(this);\n }\n\n catchClick(e) {\n e.preventDefault();\n }\n\n handleNextClick(e) {\n e.preventDefault();\n\n if (this.props.data.current_page < this.props.data.total_pages) {\n global.EventHub.trigger('paginationClick', this.props.data.current_page + 1);\n }\n }\n\n handlePrevClick(e) {\n e.preventDefault();\n\n global.EventHub.trigger('paginationClick', this.props.data.current_page - 1);\n }\n\n buildNextLinkHref() {\n let hrefText = '',\n currentParams = this.props.data.current_query;\n\n if (this.props.data.current_page < this.props.data.total_pages) {\n hrefText = currentParams.replace(/page=(\\d+)/, 'page=' + (this.props.data.current_page + 1));\n if (hrefText.indexOf('page=') < 0) {\n if (hrefText.indexOf('?') > -1) {\n hrefText += '&page=' + (this.props.data.current_page + 1);\n } else {\n hrefText += '?page=' + (this.props.data.current_page + 1);\n }\n }\n } else {\n hrefText = currentParams;\n }\n\n return (this.props.data.path || (window.location ? window.location.pathname : '/')) + hrefText;\n }\n\n buildPrevLinkHref() {\n let hrefText = '',\n currentParams = this.props.data.current_query;\n\n if (this.props.data.current_page > 1) {\n if (this.props.data.current_page === 2) {\n // remove page param\n hrefText = currentParams.replace(/page=(\\d+)/, '');\n // remove trailing '?' if necessary\n if (hrefText.slice(-1) === '?') {\n hrefText = hrefText.slice(0, -1);\n }\n if (hrefText.slice(-1) === '&') {\n hrefText = hrefText.slice(0, -1);\n }\n } else {\n hrefText = currentParams.replace(/page=(\\d+)/, 'page=' + (this.props.data.current_page - 1));\n }\n\n } else {\n hrefText = currentParams;\n }\n\n return (this.props.data.path || (window.location ? window.location.pathname : '/')) + hrefText;\n }\n\n render() {\n\n let prevLink = function() {\n if (this.props.data.current_page > 1) {\n return (\n \n )\n } else {\n return (\n
\n )\n }\n }.bind(this);\n\n let nextLink = function() {\n if (this.props.data.current_page < this.props.data.total_pages) {\n return (\n \n )\n } else {\n return (\n
\n )\n }\n }.bind(this);\n\n let currentPage = function() {\n if (!(this.props.data.total_pages === 1 && this.props.data.current_page === 1)) {\n if (this.props.data.total_pages > 1) {\n return (\n {this.props.data.current_page} / {this.props.data.total_pages}
\n )\n } else {\n return (\n {this.props.data.current_page}
\n )\n }\n }\n\n }.bind(this);\n\n return (\n \n
\n
\n
\n {prevLink()}\n
\n
\n {currentPage()}\n
\n
\n {nextLink()}\n
\n
\n
\n
\n )\n }\n};\n\nexport default Pagination;\n","import React, { Component } from 'react';\n\nclass SoundEffectBarebone extends Component {\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n \n )\n }\n};\n\nexport default SoundEffectBarebone;\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n// // import $ from 'jquery';\nimport confetti from 'canvas-confetti';\nimport ahoy from 'ahoy.js';\n\nimport UsageLicenseTypeSelect from '~/components/legacy/UsageLicenseTypeSelect.jsx';\n\nclass SoundEffect extends Component {\n\n // mixins : [UsageLicenseTypeSelectMixin],\n\n constructor(props) {\n super(props)\n\n this.handleClick = this.handleClick.bind(this);\n this.handleShareClick = this.handleShareClick.bind(this);\n this.handlefreeDownloadBuyInShopClick = this.handlefreeDownloadBuyInShopClick.bind(this);\n this.handlefreeDownloadAgreeClick = this.handlefreeDownloadAgreeClick.bind(this);\n this.handleNextClick = this.handleNextClick.bind(this);\n this.handlePrevClick = this.handlePrevClick.bind(this);\n this.handleFavoriteClick = this.handleFavoriteClick.bind(this);\n this.handleFreeDownloadClick = this.handleFreeDownloadClick.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleVariantClick = this.handleVariantClick.bind(this);\n this.handleCartClick = this.handleCartClick.bind(this);\n this.updateCart = this.updateCart.bind(this);\n\n this.state = {\n playing: false,\n isHovered: false,\n showUsageLicenseSelect: false\n }\n }\n\n componentDidMount() {\n let that = this;\n\n global.EventHub.on('updateSoundEffectInfo', function (data) {\n if (data[0].id !== that.props.id) {\n that.setState({\n playing: false\n });\n }\n });\n\n global.EventHub.on('updateSoundEffectVariantInfo', function (data) {\n if (data[0].id !== that.props.id) {\n that.setState({\n playing: false\n });\n }\n });\n\n\n global.EventHub.on('audioPlayerPlay', function (data) {\n if (data[0].id === that.props.id) {\n that.setState({\n playing: true\n });\n }\n });\n\n\n global.EventHub.on('audioPlayerStop', function () {\n if (that.state.playing) {\n that.setState({\n playing: false\n });\n }\n });\n\n global.EventHub.on('audioPlayerEnded', function () {\n if (that.state.playing) {\n that.setState({\n playing: false\n });\n }\n });\n }\n\n\n updateCart(usageLicenseTypeId, exposurePackId, forFx) {\n let itemId = this.props.id || this.state.data.id,\n i,\n updateUrl;\n\n if (exposurePackId) {\n updateUrl = \"/cart?exposure_pack_id=\" + exposurePackId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else if (forFx) {\n updateUrl = \"/cart?sound_effect_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else {\n updateUrl = \"/cart?track_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n }\n\n $.ajax({\n url: updateUrl,\n type: 'POST'\n }).done(function (data) {\n\n global.EventHub.trigger('updateCart', data)\n\n for (i = 0; i < data.length; i += 1) {\n if (data[i].track_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('track_add_cart', { props: { track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href } });\n }\n\n ahoy.track('track_add_cart', { track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false })\n } else if (data[i].sound_effect_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('sound_effect_add_cart', { props: { sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href } });\n }\n\n ahoy.track('sound_effect_add_cart', { sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false })\n }\n }\n\n if (typeof fbq === 'function') {\n fbq('track', 'AddToWishlist', {\n content_ids: itemId.toString(),\n content_type: 'product',\n });\n }\n\n }.bind(this));\n }\n\n handleCartClick(e) {\n e.preventDefault();\n this.props.handleCartClick(this.props.id);\n }\n\n getSelectedUsageLicenseTypeIds() {\n var ids = [],\n that = this,\n trackId = this.props.id || that.state.data.id,\n cart_items = this.state.cart_items || this.props.cart_items;\n\n cart_items.forEach(function (element) {\n if (element.track_id === trackId) {\n ids.push(element.usage_license_type_id);\n }\n });\n\n return ids;\n }\n\n\n\n\n\n handleClick(e) {\n e.preventDefault();\n global.EventHub.trigger('playSoundEffect', this.props.id);\n global.EventHub.trigger('updateSoundEffectInfo', this.props);\n this.setState({\n playing: !this.state.playing\n });\n }\n\n handleShareClick(e) {\n e.preventDefault();\n\n if (this.state.displayCopyHint) {\n this.setState({ displayCopyHint: false });\n } else {\n if (!this.state.shareTrackingFired) {\n if (typeof plausible === 'function') {\n plausible('sound_effect_share', { props: { sound_effect_id: this.props.id, location: window.location.href } });\n }\n\n ahoy.track('sound_effect_share', { sound_effect_id: this.props.id, location: window.location.href, categorization_processed: false });\n }\n\n if (navigator.share) {\n // Web Share API is supported\n navigator.share({\n title: (this.props.display_title || this.props.title) + ' | ' + (this.props.locale === 'de' ? 'GEMAfreie Musik auf audiocrowd.net' : 'Royalty-free music on audiocrowd.net'),\n url: this.props.showcaseUrl + '?utm_source=share_link_teaser&utm_medium=referral'\n })\n this.setState({ shareTrackingFired: true });\n } else {\n // Fallback\n this.copyToClipboard(this.props.showcaseUrl + '?utm_source=share_link_teaser&utm_medium=referral');\n this.setState({ displayCopyHint: true, shareTrackingFired: true }, function () {\n setTimeout(function () {\n this.setState({ displayCopyHint: false })\n }.bind(this), 5000)\n });\n }\n\n if (typeof confetti !== 'undefined') {\n var rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 30,\n angle: 90,\n spread: 60,\n shapes: ['circle'],\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 20) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n }\n\n copyToClipboard(str) {\n var el = document.createElement('textarea');\n el.value = str;\n el.setAttribute('readonly', '');\n el.style.position = 'absolute';\n el.style.left = '-9999px';\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n }\n\n triggerDemoDownload() {\n var link = document.createElement(\"a\"),\n uri = '/c/sound_effects/' + this.props.id + '/download_layout',\n isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor),\n isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\n // If you don't know the name or want to use\n // the webserver default set name = ''\n\n link.href = uri\n\n if ($('[data-logged-in]').length === 0) {\n // not logged in\n link.setAttribute('target', '_blank');\n } else {\n // logged in\n if (!isChrome && !isFirefox) {\n link.setAttribute('download', '');\n }\n }\n\n if (typeof plausible === 'function') {\n plausible('sound_effect_layout_download', { props: { sound_effect_id: this.props.id, location: window.location.href } });\n }\n\n ahoy.track('sound_effect_layout_download', { sound_effect_id: this.props.id, location: window.location.href, categorization_processed: false })\n\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n\n handlefreeDownloadBuyInShopClick(e) {\n e.preventDefault();\n var win = window.open(this.props.showcaseUrl, '_blank');\n // var win = window.open((this.props.locale === 'de' ? ('http://localhost:3000/tracks/' + this.props.id + '/free_download') : ('http://localhost:3000/tracks/' + this.props.id + '/free_download')), '_blank');\n win.focus();\n\n console.log('handle buy in shop click');\n }\n\n handlefreeDownloadAgreeClick(e) {\n e.preventDefault();\n\n if (typeof plausible === 'function') {\n plausible('sound_effect_download_free', { props: { track_id: this.props.id, location: window.location.href } });\n }\n\n ahoy.track('sound_effect_download_free', { track_id: this.props.id, location: window.location.href, categorization_processed: false })\n\n var win = window.open((this.props.locale === 'de' ? ('/sound_effects/' + this.props.id + '/free_download') : ('/sound_effects/' + this.props.id + '/free_download')), '_blank');\n // var win = window.open((this.props.locale === 'de' ? ('http://localhost:3000/tracks/' + this.props.id + '/free_download') : ('http://localhost:3000/tracks/' + this.props.id + '/free_download')), '_blank');\n win.focus();\n }\n\n handlefreeDownloadRejectClick(e) {\n e.preventDefault();\n console.log('handle reject click');\n }\n\n handleNextClick(e) {\n e.preventDefault();\n global.EventHub.trigger('playSoundEffect', this.props.next_sound_effect.id);\n global.EventHub.trigger('updateSoundEffectInfo', this.props.next_sound_effect);\n this.setState({\n playing: !this.state.playing\n });\n }\n\n handlePrevClick(e) {\n e.preventDefault();\n global.EventHub.trigger('playSoundEffect', this.props.prev_sound_effect.id);\n global.EventHub.trigger('updateSoundEffectInfo', this.props.prev_sound_effect);\n this.setState({\n playing: !this.state.playing\n });\n }\n\n handleFavoriteClick(e) {\n e.preventDefault();\n\n this.props.handleFavoriteClick(this.props.id);\n\n if (!this.props.favorited && typeof confetti !== 'undefined') {\n var rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 30,\n angle: 90,\n spread: 60,\n shapes: ['circle'],\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 20) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n\n handleFreeDownloadClick(e) {\n e.preventDefault();\n this.props.handleFreeDownloadClick(this.props.id);\n }\n\n handleFreeDownloadDialogClick(e) {\n e.preventDefault();\n }\n\n handlefreeDownloadRejectClick(e) {\n e.preventDefault();\n global.EventHub.trigger('closePopupMenus');\n }\n\n\n handleSoundEffectTagClick(soundEffectTagId, e) {\n e.preventDefault();\n global.EventHub.trigger('soundEffectTagClick', soundEffectTagId);\n }\n\n handleMouseEnter(e) {\n e.preventDefault();\n this.setState({\n isHovered: true\n });\n }\n\n handleMouseLeave(e) {\n e.preventDefault();\n this.setState({\n isHovered: false\n });\n }\n\n handleVariantClick(variantId, sound_effect_id, variantTitle, e) {\n e.preventDefault();\n global.EventHub.trigger('playSoundEffectVariant', variantId, sound_effect_id);\n this.setState({\n playing: false\n });\n }\n\n\n truncate(text, count) {\n return (text.length > count) ? text.substr(0, count - 1) + '...' : text;\n }\n\n\n render() {\n let classes = classNames({\n 'track': true,\n 'track--active': this.props.active,\n 'track--slim': this.props.slim,\n 'track--free': this.props.free,\n 'track--new': this.props.recently_activated,\n 'track--favorited': this.props.favorited,\n 'track--license-select-open': this.props.showUsageLicenseSelect,\n 'track--search-in-progress': this.props.search_in_progress,\n 'track--playing': this.state.playing && !(parseInt(this.props.activeSoundEffectVariantId, 10) > 0),\n 'track--variant-playing': this.state.playing && (parseInt(this.props.activeSoundEffectVariantId, 10) > 0),\n 'track--within-exposure-pack': typeof this.props.exposure_pack !== 'undefined' && this.props.exposure_pack.id\n }),\n cartLink,\n favoriteLink,\n recentlyCreatedLabel,\n cartLinkIcon,\n usageLicenseTypeSelect,\n soundEffectLabels,\n nextButton,\n prevButton,\n composerInfo,\n soundEffectTagItems = [];\n\n var layoutDownloadLink,\n shareLink,\n freeDownloadDialog,\n copyHint;\n\n if (this.state.displayCopyHint && !navigator.share) {\n copyHint = \n
\n \n {this.props.locale === 'de' ? 'Die Track-URL wurde in die Zwischenablage kopiert.' : 'The track URL was copied to your clipboard.'} \n
\n
;\n }\n\n\n if (this.props.showFreeDownloadDialog) {\n freeDownloadDialog = (\n \n
\n
\n
\n
\n
#{this.props.id} - {this.props.display_title || this.props.title} - Free Download starten
\n
\n
\n\n
\n
\n
Bitte verlinken und nennen Sie audiocrowd!
\n
\n\n {this.props.locale === 'de' ? 'Nennen Sie audiocrowd mit Internetadresse https://de.audiocrowd.net in Ihrem Video-Abspann oder Outro!' : 'Name audiocrowd with internet address https://en.audiocrowd.net in your video credits or outro!'} \n \n {this.props.locale === 'de' ? 'Bitte denken Sie daran, audiocrowd mit einem Link als Quelle anzugeben!' : 'Please remember to mention audiocrowd with a link as source!'}\n \n {this.props.locale === 'de' ? 'Ist eine Verlinkung nicht möglich, ist der Einsatz der kostenlosen Musik nicht gestattet.' : 'If a link is not possible, the use of free music is not permitted.'} \n \n
\n
\n
Beispiel HTML-Code: \n
\n
\n
\n
Lieber ohne Verlinkung nutzen?
\n
\n {this.props.locale === 'de' ? 'Möchten Sie keinen Link setzen? Dann können Sie den Musiktitel einfach im Shop lizenzieren.' : \"You don't want to set a link? Then you can simply license the music title in the shop.\"}\n
\n
\n
\n
\n
\n
\n )\n }\n\n if (!this.props.freeMode) {\n // layoutDownloadLink = \n // \n //
\n //
Demo \n // {/*
{this.props.locale === 'de' ? 'DEMO-Download: Wenn Sie die Musik erst ausprobieren möchten, können Sie eine Demo-Version herunterladen. Der Download erfordert ein Kunden-Konto, das Sie nach einem Klick einfach und schnell anlegen können.' : 'Demo download: If you want to try the music first, you can download a demo version. The download requires a customer account, which you can create easily after one click.'}
*/}\n //
\n\n // {/* {this.props.layout_download} */}\n // ;\n } else {\n layoutDownloadLink = \n\n \n Download \n {/* {this.props.layout_download} */}\n ;\n }\n\n shareLink = (\n \n \n
\n
{this.props.locale === 'de' ? 'Teilen' : 'share'} \n {/*
{this.props.locale === 'de' ? 'DEMO-Download: Wenn Sie die Musik erst ausprobieren möchten, können Sie eine Demo-Version herunterladen. Der Download erfordert ein Kunden-Konto, das Sie nach einem Klick einfach und schnell anlegen können.' : 'Demo download: If you want to try the music first, you can download a demo version. The download requires a customer account, which you can create easily after one click.'}
*/}\n
\n\n {/* {this.props.layout_download} */}\n );\n\n\n var formatLength = function (length) {\n var minutes = Math.floor(length / 60);\n var seconds = length % 60;\n\n if (minutes < 10) {\n minutes = \"0\" + minutes;\n }\n\n if (seconds < 10) {\n seconds = \"0\" + seconds;\n }\n\n return minutes + ':' + seconds;\n };\n\n var soundEffectVariants = this.props.sound_effect_variants.map(function (variant) {\n return ({variant.title} )\n }.bind(this));\n\n var soundEffectVariantInfo;\n\n if (this.props.sound_effect_variants.length > 0) {\n soundEffectVariantInfo = {this.props.locale === 'de' ? (' Enthält ' + this.props.sound_effect_variants.length + ' zusätzliche ' + (this.props.sound_effect_variants.length === 1 ? 'Variante.' : 'Varianten.')) : (' Including ' + this.props.sound_effect_variants.length + ' additional ' + (this.props.sound_effect_variants.length === 1 ? 'variant.' : 'variants.'))} ;\n }\n\n if (this.props.prev_sound_effect) {\n prevButton = ;\n } else {\n prevButton = ;\n }\n\n if (this.props.next_sound_effect) {\n nextButton = ;\n } else {\n nextButton = ;\n }\n\n if (this.props.favorited) {\n favoriteLink = {this.props.locale === 'de' ? 'gemerkt' : 'remembered'}
;\n } else {\n favoriteLink = {this.props.locale === 'de' ? 'merken' : 'remember'}
;\n }\n\n if (this.props.recently_activated) {\n recentlyCreatedLabel = {this.props.i18n.recently_created} \n soundEffectLabels = {recentlyCreatedLabel} ;\n }\n\n if (this.props.composerName) {\n composerInfo = by {this.props.composerName} ;\n } else {\n composerInfo = '';\n }\n\n\n if (!this.props.hideItemIdList) {\n soundEffectTagItems = this.props.sound_effect_tag_id_list.map((soundEffectTagId) =>\n {this.props.getNameFor('tags', soundEffectTagId)} \n );\n }\n\n if (!this.props.freeMode) {\n if (this.props.inCart) {\n if (this.props.show_download_button) {\n cartLinkIcon = ;\n } else {\n cartLinkIcon = ;\n }\n cartLink = {cartLinkIcon}{this.props.remove_from_cart} \n } else {\n if (this.props.show_download_button) {\n cartLinkIcon = ;\n } else {\n cartLinkIcon = ;\n }\n cartLink = {cartLinkIcon}{this.props.add_to_cart} \n }\n }\n\n if (this.props.showUsageLicenseSelect && !this.props.freeMode) {\n usageLicenseTypeSelect = (\n \n );\n }\n\n\n return (\n \n
audiocrowd GmbH \n
audiocrowd GmbH \n
audiocrowd GmbH \n
\n
\n {prevButton}\n
\n
0)) ? 'fa fa-pause' : 'fa fa-play'} />\n
\n \n {nextButton}\n
\n \n {this.props.id} \n {this.props.display_title || this.props.title} \n {soundEffectLabels} \n {/* \n {this.props.score} */}\n \n {composerInfo}\n
\n
\n {formatLength(this.props.length)}\n
\n\n {favoriteLink}\n {shareLink}\n {copyHint}\n {layoutDownloadLink}\n {freeDownloadDialog}\n\n
\n {cartLink}\n
\n {usageLicenseTypeSelect}\n
\n
\n
{this.props.description}{soundEffectVariantInfo}
\n
\n
\n
\n
\n )\n }\n};\n\nSoundEffect.defaultProps = {\n cart_items: [],\n hideAddToCart: false\n}\n\nexport default SoundEffect;\n\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n\nclass UsageLicenseTypeSelectItemSidebar extends Component {\n\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n\n this.state = {\n hover: false\n }\n }\n\n handleClick(e) {\n e.preventDefault();\n\n this.props.handleClick(this.props.id);\n }\n\n render() {\n let classes = classNames({\n 'usage-license-type-select__item': true,\n 'usage-license-type-select__item--selected': this.props.selected\n }),\n icon,\n price,\n usageLicenseTypeLabel;\n\n let addToCartButton;\n\n addToCartButton = (\n {this.props.locale === 'de' ? '+ In den Warenkorb' : '+ Add to cart'} \n );\n\n\n if (this.props.free) {\n price = this.props.i18n.free;\n } else {\n if (this.props.discount) {\n price = this.props.discountGrossPrice;\n } else {\n price = this.props.grossPrice;\n }\n\n }\n\n // if (this.state.hover) {\n // if (this.props.selected) {\n // usageLicenseTypeLabel = {this.props.name} {this.props.i18n.remove}
\n // } else {\n // usageLicenseTypeLabel = {this.props.name} {this.props.i18n.add_to_cart}
\n // }\n // } else {\n // usageLicenseTypeLabel = {this.props.name} \n // }\n\n usageLicenseTypeLabel = {this.props.name} \n\n return (\n \n
\n {price}\n inkl. MwSt. \n
\n {addToCartButton}\n
\n )\n }\n}\n\nUsageLicenseTypeSelectItemSidebar.defaultProps = {\n selected: false,\n free: false\n}\n\nexport default UsageLicenseTypeSelectItemSidebar;\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n\nimport UsageLicenseTypeSelectItemSidebar from '~/components/legacy/UsageLicenseTypeSelectItemSidebar.jsx' ;\n\nclass UsageLicenseTypeSelectSidebar extends Component {\n\n constructor(props) {\n super(props)\n\n this.handleClick = this.handleClick.bind(this);\n\n this.state = {\n selectedItemId: 0\n }\n }\n\n\n updateCart(usageLicenseTypeId, exposurePackId) {\n var trackId = this.props.id,\n i,\n updateUrl;\n\n if (exposurePackId) {\n updateUrl = \"/cart?exposure_pack_id=\" + exposurePackId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else {\n updateUrl = \"/cart?track_id=\" + trackId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n }\n\n $.ajax({\n url: updateUrl,\n type: 'POST'\n }).done(function (data) {\n\n global.EventHub.trigger('updateCart', data)\n\n\n for (i = 0; i < data.length; i += 1) {\n if (data[i].track_id === trackId) {\n if (typeof plausible === 'function') {\n plausible('track_add_cart', { props: { track_id: trackId, usage_license_type_id: usageLicenseTypeId, location: window.location.href } });\n }\n ahoy.track('track_add_cart', { track_id: trackId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false })\n }\n }\n\n\n }.bind(this));\n }\n\n\n handleClick(itemId) {\n if (typeof this.props.exposure_pack !== 'undefined' && this.props.exposure_pack.id) {\n this.updateCart(itemId, this.props.exposure_pack.id);\n } else {\n this.updateCart(itemId);\n }\n }\n\n usageLicenseTypeIsSelected(usageLicenseTypeId) {\n var selected = false;\n\n this.props.selectedUsageLicenseTypeIds.forEach(function (element) {\n if (element === usageLicenseTypeId) {\n selected = true;\n }\n });\n\n return selected;\n }\n\n render() {\n var classes = classNames({\n 'usage-license-type-select-sidebar': true\n }),\n usageLicenseTypes = this.props.usageLicenseTypes.map(function (usageLicenseType, index) {\n return (\n \n );\n }.bind(this)),\n checkoutButton = ,\n pricingInfoLink;\n\n if (this.props.selectedUsageLicenseTypeIds.length > 0) {\n checkoutButton = {this.props.i18n.checkout_now} ;\n } else {\n // checkoutButton = {this.props.i18n.checkout_now} ;\n }\n\n return (\n \n
\n
\n
\n
\n
Beschallungspaket
\n {this.props.title}\n
\n
\n
\n {usageLicenseTypes}\n
\n
\n
\n {checkoutButton}\n
\n
\n
{this.props.locale === 'de' ? 'Lieferumfang:' : 'Contents:'}
\n
\n {this.props.trackCount} Tracks / {this.props.totalDuration} {this.props.locale === 'de' ? 'Minuten Spielzeit' : 'minutes playing time'} \n Download-Format: MP3 \n {this.props.locale === 'de' ? 'GEMA-Freistellungsdokument (PDF)' : 'License document (PDF)'} \n {this.props.locale === 'de' ? 'Rechnung (PDF)' : 'Invoice (PDF)'} \n \n
Info:
\n
\n {this.props.locale === 'de' ? 'Keine Folgekosten / Keine GEMA-Gebühren' : 'No follow up costs / no royalty collection'} \n {this.props.locale === 'de' ? 'Preis pro Filiale' : 'Price per branch'} \n \n
\n
\n )\n }\n};\n\nexport default UsageLicenseTypeSelectSidebar;","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames/bind';\n\nimport Pagination from '~/components/legacy/Pagination.jsx';\nimport SoundEffectBarebone from '~/components/legacy/SoundEffectBarebone.jsx';\nimport SoundEffect from '~/components/legacy/SoundEffect.jsx';\nimport UsageLicenseTypeSelectSidebar from '~/components/legacy/UsageLicenseTypeSelectSidebar.jsx';\n// import $ from 'jquery';\n\nclass SoundEffectListing extends Component {\n\n // mixins: [SearchInProgressMixin, SoundEffectFavoriteMixin],\n\n constructor(props) {\n super(props)\n\n this.handleCartClick = this.handleCartClick.bind(this);\n this.handleFreeDownloadClick = this.handleFreeDownloadClick.bind(this);\n this.handleFavoriteClick = this.handleFavoriteClick.bind(this);\n\n this.state = {\n showUsageLicenseSelectForSoundEffectId: [],\n showFreeDownloadDialogForSoundEffectId: [],\n data: this.props.data,\n pagination: this.props.pagination,\n active_sound_effect_id: this.props.active_sound_effect_id,\n cart_items: this.props.cart_items,\n currentQuery: {\n soundEffectTags: [],\n },\n searchInProgress: false,\n animationFinished: true,\n soundEffectFavorites: this.props.soundEffectFavorites\n\n }\n }\n\n componentDidMount() {\n setTimeout(function() {\n global.EventHub.trigger('requestUpdateSoundEffectListing');\n }, 10)\n\n global.EventHub.on('updateSoundEffectListing', function (data) {\n this.setState({ data: data[0].sound_effects, pagination: data[0].pagination });\n }.bind(this));\n\n global.EventHub.on('initialUpdateSoundEffectListing', function (data) {\n this.setState({ data: data[0].sound_effects, pagination: data[0].pagination });\n global.EventHub.trigger('playerInitSoundEffect', data[0].sound_effects[0].id);\n }.bind(this));\n\n\n global.EventHub.on('paginationClick', function (data) {\n this.scrollToListStart();\n }.bind(this));\n\n global.EventHub.on('playSoundEffect', function (data) {\n this.setState({ active_sound_effect_id: data[0], activeSoundEffectVariantId: '' })\n }.bind(this));\n\n global.EventHub.on('playSoundEffectVariant', function (data) {\n this.setState({ active_sound_effect_id: data[1], activeSoundEffectVariantId: data[0] })\n }.bind(this));\n\n global.EventHub.on('updateCart', function (data) {\n this.setState({ cart_items: data[0] });\n }.bind(this));\n\n global.EventHub.on('closePopupMenus', function () {\n this.setState({ showUsageLicenseSelectForSoundEffectId: [], showFreeDownloadDialogForSoundEffectId: [] })\n }.bind(this));\n\n global.EventHub.on('updateItemIdList', function (payload) {\n this.setState({ currentQuery: payload[0] });\n }.bind(this));\n\n\n\n global.EventHub.on('fireSearch', function () {\n $(\"html, body\").animate({ scrollTop: $('.track-listing').offset().top - 320 }, \"slow\");\n this.setState({ searchInProgress: true, animationFinished: false });\n }.bind(this));\n\n global.EventHub.on('fireSearchWithoutAnimation', function () {\n this.setState({ searchInProgress: false, animationFinished: true });\n }.bind(this));\n\n global.EventHub.on('searchSuccess', function () {\n setTimeout(function () {\n this.setState({ searchInProgress: false });\n }.bind(this), 200);\n setTimeout(function () {\n this.setState({ animationFinished: true });\n }.bind(this), 400);\n }.bind(this));\n\n\n global.EventHub.on('updateSoundEffectFavorites', function (data) {\n this.setState({ soundEffectFavorites: data[0] });\n }.bind(this));\n }\n\n\n handleFavoriteClick(sound_effect_id) {\n $.ajax({\n url: \"/sound_effect_favorite?sound_effect_id=\" + sound_effect_id,\n type: 'POST'\n }).done(function (data) {\n if (!(this.soundEffectIsFavorited(sound_effect_id, this.state.soundEffectFavorites))) {\n global.EventHub.trigger('soundEffectFavorited', sound_effect_id);\n }\n\n global.EventHub.trigger('updateSoundEffectFavorites', data)\n }.bind(this));\n }\n\n soundEffectIsFavorited(sound_effect_id, favorites) {\n let i,\n favoritesLength = favorites && favorites.length ? favorites.length : 0;\n\n for (i = 0; i < favoritesLength; i += 1) {\n if (favorites[i].sound_effect_id === sound_effect_id) {\n return true;\n }\n }\n return false;\n }\n\n handleCartClick(sound_effect_id) {\n let stateObject = {},\n indexOfSoundEffectId = this.state.showUsageLicenseSelectForSoundEffectId.indexOf(sound_effect_id);\n\n if (indexOfSoundEffectId === -1) {\n stateObject = {};\n stateObject['showUsageLicenseSelectForSoundEffectId'] = [];\n stateObject['showUsageLicenseSelectForSoundEffectId'].push(sound_effect_id);\n } else {\n global.EventHub.trigger('closePopupMenus');\n }\n\n this.setState(stateObject);\n }\n\n handleFreeDownloadClick(sound_effect_id) {\n let stateObject = {},\n indexOfSoundEffectId = this.state.showFreeDownloadDialogForSoundEffectId.indexOf(sound_effect_id);\n\n if (indexOfSoundEffectId === -1) {\n stateObject = {};\n stateObject['showFreeDownloadDialogForSoundEffectId'] = [];\n stateObject['showFreeDownloadDialogForSoundEffectId'].push(sound_effect_id);\n } else {\n global.EventHub.trigger('closePopupMenus');\n }\n\n this.setState(stateObject);\n }\n\n scrollToListStart() {\n $('html, body').animate({\n scrollTop: $(this.refs.trackListing).offset().top - 260\n }, 400);\n }\n\n soundEffectIsInCart(sound_effect_id, cartItems) {\n let i,\n cartItemsLength = cartItems && cartItems.length ? cartItems.length : 0;\n\n for (i = 0; i < cartItemsLength; i += 1) {\n if (cartItems[i].sound_effect_id === sound_effect_id) {\n return true;\n }\n }\n return false;\n }\n\n isUsageLicenseSelectVisible(sound_effect_id) {\n if (this.state.showUsageLicenseSelectForSoundEffectId.indexOf(sound_effect_id) > -1) {\n return true;\n }\n\n return false;\n }\n\n\n isFreeDownloadDialogVisible(sound_effect_id) {\n if (this.state.showFreeDownloadDialogForSoundEffectId.indexOf(sound_effect_id) > -1) {\n return true;\n }\n\n return false;\n }\n\n shouldRenderUsageLicenseTypeSelect(sound_effect_id) {\n let shouldRender = false;\n\n for (var i = 0; i < this.state.showUsageLicenseSelectForSoundEffectId.length; i += 1) {\n if (this.state.showUsageLicenseSelectForSoundEffectId[i] === sound_effect_id && typeof this.props.exposure_pack.id === 'undefined') {\n shouldRender = true;\n }\n }\n\n return shouldRender;\n }\n\n getContent() {\n return this.props.content.map(function (content, index) {\n return (\n 4 ? 'track-listing__content track-listing__content--long' : 'track-listing__content'} key={'sound_effect_listing_content_' + index}>\n
\n {content.title} \n \n \n
\n )\n }.bind(this))\n }\n\n getNameFor(itemName, id) {\n return this.props.itemNames[itemName][id];\n }\n\n isActiveItem(itemName, id) {\n return (this.state.currentQuery[itemName].indexOf(id) > -1);\n }\n\n getSelectedUsageLicenseTypeIdsForExposurePack() {\n var ids = [],\n that = this,\n exposurePackId = this.props.exposure_pack.id || that.state.data.exposure_pack.id;\n cart_items = this.state.cart_items || this.props.cart_items;\n\n cart_items.forEach(function (element) {\n if (element.exposure_pack_id === exposurePackId) {\n ids.push(element.usage_license_type_id);\n }\n });\n\n return ids;\n }\n\n\n render() {\n var activeSoundEffectId = this.state.active_sound_effect_id;\n var activeSoundEffectVariantId = this.state.activeSoundEffectVariantId;\n var content = [];\n var similarSoundEffectHeading;\n var clientListing = [];\n var soundEffects = this.state.data.map(function (soundEffect, index) {\n var nextProps;\n var currentProps = {\n id: soundEffect.id,\n sound_effect_id: soundEffect.id,\n composerName: soundEffect.composer_name,\n composerUrl: soundEffect.composer_url,\n showcaseUrl: soundEffect.showcase_url,\n i18n: this.props.i18n,\n title: soundEffect.title,\n display_title: soundEffect.display_title,\n active: soundEffect.id === activeSoundEffectId,\n activeSoundEffectVariantId: activeSoundEffectVariantId,\n key: \"sound-effect-\" + soundEffect.id,\n length: soundEffect.length,\n description: this.props.locale === 'de' ? soundEffect.description_de : soundEffect.description_en,\n inCart: this.soundEffectIsInCart(soundEffect.id, this.state.cart_items),\n free: soundEffect.free,\n hideItemIdList: this.props.hideItemIdList,\n hideAddToCart: this.props.hideAddToCart,\n sound_effect_tag_id_list: soundEffect.sound_effect_tag_id_list,\n isActiveItem: this.isActiveItem,\n discount: soundEffect.discount,\n copyrightYear: soundEffect.copyright_year,\n recently_activated: soundEffect.recently_activated,\n usageLicenseTypes: this.props.usageLicenseTypes.filter(function (usageLicenseType) { return usageLicenseType.for_fx === true }),\n subscribedUsageLicenseTypes: this.props.subscribedUsageLicenseTypes,\n pricing_path: this.props.pricing_path,\n cart_items: this.state.cart_items,\n soundEffectFavorites: this.state.soundEffectFavorites,\n favorited: this.soundEffectIsFavorited(soundEffect.id, this.state.soundEffectFavorites),\n handleFavoriteClick: this.handleFavoriteClick,\n showUsageLicenseSelect: this.isUsageLicenseSelectVisible(soundEffect.id),\n showFreeDownloadDialog: this.isFreeDownloadDialogVisible(soundEffect.id),\n handleCartClick: this.handleCartClick,\n handleFreeDownloadClick: this.handleFreeDownloadClick,\n show_download_button: this.props.show_download_button,\n search_in_progress: this.state.searchInProgress,\n exposure_pack: this.props.exposure_pack,\n slim: this.props.slim,\n score: soundEffect.score,\n getNameFor: this.getNameFor,\n freeMode: this.props.freeMode,\n sound_effect_variants: soundEffect.sound_effect_variants,\n sound_effect_image_markup: soundEffect.sound_effect_image_markup,\n youtube_content_id_enabled: soundEffect.youtube_content_id_enabled,\n locale: this.props.locale\n }\n\n if (typeof this.state.data[index + 1] !== 'undefined') {\n var nextSoundEffect = this.state.data[index + 1];\n var nextProps = {\n id: nextSoundEffect.id,\n sound_effect_id: nextSoundEffect.id,\n composerName: nextSoundEffect.composer_name,\n composerUrl: nextSoundEffect.composer_url,\n showcaseUrl: nextSoundEffect.showcase_url,\n i18n: this.props.i18n,\n title: nextSoundEffect.title,\n display_title: nextSoundEffect.display_title,\n active: nextSoundEffect.id === activeSoundEffectId,\n activeSoundEffectVariantId: activeSoundEffectVariantId,\n key: \"sound-effect-\" + nextSoundEffect.id,\n length: nextSoundEffect.length,\n description: this.props.locale === 'de' ? nextSoundEffect.description_de : nextSoundEffect.description_en,\n inCart: this.soundEffectIsInCart(nextSoundEffect.id, this.state.cart_items),\n free: nextSoundEffect.free,\n hideItemIdList: this.props.hideItemIdList,\n hideAddToCart: this.props.hideAddToCart,\n sound_effect_tag_id_list: nextSoundEffect.sound_effect_tag_id_list,\n isActiveItem: this.isActiveItem,\n discount: nextSoundEffect.discount,\n copyrightYear: nextSoundEffect.copyright_year,\n recently_activated: nextSoundEffect.recently_activated,\n usageLicenseTypes: this.props.usageLicenseTypes.filter(function (usageLicenseType) { return usageLicenseType.for_fx === true }),\n subscribedUsageLicenseTypes: this.props.subscribedUsageLicenseTypes,\n pricing_path: this.props.pricing_path,\n cart_items: this.state.cart_items,\n soundEffectFavorites: this.state.soundEffectFavorites,\n favorited: this.soundEffectIsFavorited(nextSoundEffect.id, this.state.soundEffectFavorites),\n handleFavoriteClick: this.handleFavoriteClick,\n showUsageLicenseSelect: this.isUsageLicenseSelectVisible(nextSoundEffect.id),\n showFreeDownloadDialog: this.isFreeDownloadDialogVisible(nextSoundEffect.id),\n handleCartClick: this.handleCartClick,\n handleFreeDownloadClick: this.handleFreeDownloadClick,\n show_download_button: this.props.show_download_button,\n exposure_pack: this.props.exposure_pack,\n slim: this.props.slim,\n score: nextSoundEffect.score,\n getNameFor: this.getNameFor,\n freeMode: this.props.freeMode,\n sound_effect_variants: nextSoundEffect.sound_effect_variants,\n handleVariantClick: this.handleVariantClick,\n sound_effect_image_markup: nextSoundEffect.sound_effect_image_markup,\n youtube_content_id_enabled: nextSoundEffect.youtube_content_id_enabled,\n locale: this.props.locale\n }\n }\n\n if (typeof this.state.data[index - 1] !== 'undefined') {\n var prevSoundEffect = this.state.data[index - 1];\n var prevProps = {\n id: prevSoundEffect.id,\n sound_effect_id: prevSoundEffect.id,\n composerName: prevSoundEffect.composer_name,\n composerUrl: prevSoundEffect.composer_url,\n showcaseUrl: prevSoundEffect.showcase_url,\n i18n: this.props.i18n,\n title: prevSoundEffect.title,\n display_title: prevSoundEffect.display_title,\n active: prevSoundEffect.id === activeSoundEffectId,\n activeSoundEffectVariantId: activeSoundEffectVariantId,\n key: \"sound-effect-\" + prevSoundEffect.id,\n length: prevSoundEffect.length,\n description: this.props.locale === 'de' ? prevSoundEffect.description_de : prevSoundEffect.description_en,\n inCart: this.soundEffectIsInCart(prevSoundEffect.id, this.state.cart_items),\n free: prevSoundEffect.free,\n hideItemIdList: this.props.hideItemIdList,\n hideAddToCart: this.props.hideAddToCart,\n sound_effect_tag_id_list: prevSoundEffect.sound_effect_tag_id_list,\n isActiveItem: this.isActiveItem,\n discount: prevSoundEffect.discount,\n copyrightYear: prevSoundEffect.copyright_year,\n recently_activated: prevSoundEffect.recently_activated,\n usageLicenseTypes: this.props.usageLicenseTypes.filter(function (usageLicenseType) { return usageLicenseType.for_fx === true }),\n subscribedUsageLicenseTypes: this.props.subscribedUsageLicenseTypes,\n pricing_path: this.props.pricing_path,\n cart_items: this.state.cart_items,\n soundEffectFavorites: this.state.soundEffectFavorites,\n favorited: this.soundEffectIsFavorited(prevSoundEffect.id, this.state.soundEffectFavorites),\n handleFavoriteClick: this.handleFavoriteClick,\n showUsageLicenseSelect: this.isUsageLicenseSelectVisible(prevSoundEffect.id),\n showFreeDownloadDialog: this.isFreeDownloadDialogVisible(prevSoundEffect.id),\n handleCartClick: this.handleCartClick,\n handleFreeDownloadClick: this.handleFreeDownloadClick,\n show_download_button: this.props.show_download_button,\n exposure_pack: this.props.exposure_pack,\n slim: this.props.slim,\n score: prevSoundEffect.score,\n getNameFor: this.getNameFor,\n freeMode: this.props.freeMode,\n sound_effect_variants: prevSoundEffect.sound_effect_variants,\n handleVariantClick: this.handleVariantClick,\n sound_effect_image_markup: prevSoundEffect.sound_effect_image_markup,\n youtube_content_id_enabled: prevSoundEffect.youtube_content_id_enabled,\n locale: this.props.locale\n }\n }\n\n if (index === 2 && this.props.content && this.props.content.length > 0 && this.state.pagination.current_page === 1) {\n content = this.getContent();\n } else {\n content = [];\n }\n\n if (index === 0 && this.props.soundEffectShow) {\n similarSoundEffectHeading =
{this.props.locale === 'de' ? 'Weitere ähnliche Sound-Effekte:' : 'Similar sound effects:'} \n }\n\n // if (index === 10 && this.props.clientListing && this.props.clientListing.length > 0 && this.state.pagination.current_page === 1) {\n // clientListing = this.props.clientListing.map(function(client, index) {\n // return (\n // \n // {client}\n //
\n // )\n // }.bind(this));\n // } else {\n // clientListing = [];\n // }\n\n return (\n \n
\n {similarSoundEffectHeading && index === 0 ? similarSoundEffectHeading : ''}\n {content.length === 0 ? '' : (
{this.props.locale === 'de' ? 'Oft gestellte Fragen' : 'FAQ'}
{content}
)}\n {clientListing.length === 0 ? '' : (
{this.props.locale === 'de' ? 'Diese Marken vertrauen auf unsere Komponisten' : 'These brands rely on our composers'} {clientListing}
)}\n
\n );\n\n }.bind(this));\n\n var pagination = function () {\n if (this.props.show_pagination && this.state.pagination.total_count > 10) {\n return (\n \n )\n }\n }.bind(this);\n\n var spinner = function () {\n if (this.state.searchInProgress) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n }\n }.bind(this);\n\n var smiley = function () {\n return (\n \n )\n }.bind(this);\n\n // var trackBarebone = function() {\n // return (\n // \n // )\n // }.bind(this);\n\n var classes = classNames({\n 'track-listing': true,\n 'track-listing--slim': this.props.slim,\n 'track-listing-with-pagination': this.props.show_pagination,\n 'is-spinning': this.state.searchInProgress,\n 'is-empty': this.state.data.length === 0,\n 'track-listing-animation-finished': this.state.animationFinished,\n 'track-listing--track-show': this.props.soundEffectShow\n });\n\n var soundEffectsDuration = 0;\n\n for (let i = 0; i < this.state.data.length; i += 1) {\n soundEffectsDuration += this.state.data[i].length;\n }\n\n if (typeof this.props.exposure_pack !== 'undefined' && this.props.exposure_pack.id) {\n return (\n \n
\n \n
\n
\n
\n {(this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? this.getContent() : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? this.getContent() : ''}\n {tracks.length > 0 ? tracks : (this.state.data.length == 0 ? '' : I18n.t('no_songs_available'))}\n {pagination()}\n {spinner()}\n {smiley()}\n
\n
\n
\n \n
\n
\n\n )\n\n } else {\n if (this.props.showHeading) {\n return (\n \n
{this.state.pagination.total_count} {this.state.pagination.total_count === 1 ? 'sound effect' : 'sound effects'}
\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? (
{this.props.locale === 'de' ? 'Oft gestellte Fragen' : 'FAQ'}
{this.getContent()}
) : ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {soundEffects.length > 0 ? soundEffects : (this.props.data.length == 0 ? '' : I18n.t('no_songs_available'))}\n {pagination()}\n {spinner()}\n {smiley()}\n
\n )\n } else {\n return (\n \n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? (
{this.props.locale === 'de' ? 'Oft gestellte Fragen' : 'FAQ'}
{this.getContent()}
) : ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(soundEffects.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {soundEffects.length > 0 ? soundEffects : (this.props.data.length == 0 ? '' : I18n.t('no_songs_available'))}\n {spinner()}\n {smiley()}\n {pagination()}\n
\n )\n }\n }\n }\n};\n\nSoundEffectListing.defaultProps = {\n showHeading: false,\n active_sound_effect_id: 0,\n show_pagination: true,\n composer_page_permalink: false,\n totalCount: 250,\n slim: false,\n pricing_path: '',\n freeMode: false,\n i18n: {\n next: 'Next',\n previous: 'Previous',\n free: 'free',\n recently_created: 'new'\n },\n pagination: {\n current_page: 1,\n next_page: '',\n prev_page: '',\n total_pages: 1,\n total_count: 10\n },\n usageLicenseTypes: [],\n subscribedUsageLicenseTypes: [],\n content: [],\n show_download_button: false,\n hideItemIdList: false,\n hideAddToCart: false,\n soundEffectShow: false,\n soundEffectFavorites: []\n}\n\n// INIT\nlet elements = document.querySelectorAll('[data-react-component=SoundEffectListing]');\n\nelements.forEach(function(element) {\n let reactProps = JSON.parse(element.dataset.reactProps);\n\n ReactDOM.render(\n \n \n ,\n element\n );\n})\n\nexport default SoundEffectListing;\n\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames/bind';\n// import $ from 'jquery';\n\n\nclass SoundEffectSearchMenuInvisible extends Component {\n\n // mixins : [SoundEffectSearchMenuMixin],\n\n constructor(props) {\n super(props);\n\n this.handleSubmitSearchClick = this.handleSubmitSearchClick.bind(this);\n this.submitQueryClick = this.submitQueryClick.bind(this);\n this.submitMenuItemClick = this.submitMenuItemClick.bind(this);\n this.submitQueryChange = this.submitQueryChange.bind(this);\n this.submitMinLengthClick = this.submitMinLengthClick.bind(this);\n this.submitMaxLengthClick = this.submitMaxLengthClick.bind(this);\n this.submitLengthChange = this.submitLengthChange.bind(this);\n this.submitSortChange = this.submitSortChange.bind(this);\n\n this.state = {\n query: '',\n page: this.props.initialSearchQuery.page ? parseInt(this.props.initialSearchQuery.page, 10) : 1,\n composers: [],\n soundEffectTags: [],\n completedQuery: '',\n minLength: '',\n maxLength: '',\n free: false,\n sortDirection: '',\n sortBy: '',\n soundEffectId: this.props.initialSearchQuery.sound_effect_id,\n mediaBundleId: ''\n }\n }\n\n componentWillMount() {\n var stateObject = {},\n searchCloudItemIds = [];\n\n for (var searchCategory in this.props.initialSearchQuery) {\n if (this.props.initialSearchQuery.hasOwnProperty(searchCategory)) {\n\n if (searchCategory === 'query' && this.props.initialSearchQuery[searchCategory].length > 0) {\n this.setState({ query: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'minLength' && this.props.initialSearchQuery[searchCategory] >= 0) {\n this.setState({ minLength: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'maxLength' && parseInt(this.props.initialSearchQuery[searchCategory]) >= 0) {\n this.setState({ maxLength: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'soundEffectId') {\n this.setState({ soundEffectId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'mediaBundleId') {\n this.setState({ mediaBundleId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'page') {\n if (this.props.initialSearchQuery[searchCategory]) {\n this.setState({ page: parseInt(this.props.initialSearchQuery[searchCategory], 10) });\n }\n } else {\n stateObject = {};\n searchCloudItemIds = [];\n\n for (var i = 0; i < this.props.initialSearchQuery[searchCategory].length; i += 1) {\n searchCloudItemIds.push(this.props.initialSearchQuery[searchCategory][i]);\n }\n\n stateObject[searchCategory] = searchCloudItemIds;\n this.setState(stateObject);\n }\n }\n }\n }\n\n componentDidMount() {\n\n this.setStateViaUrlParams();\n global.EventHub.on('queryInputSubmit', function () {\n this.sendSearchQuery();\n }.bind(this));\n\n global.EventHub.on('paginationClick', this.sendPaginationSearchQuery);\n\n global.EventHub.on('changeSort', function (payload) {\n if (payload[0]) {\n this.setState({ sortDirection: payload[0].sortDirection, sortBy: payload[0].sortBy }, function () {\n this.sendSearchQuery();\n });\n }\n }.bind(this));\n\n global.EventHub.on('soundEffectTagClick', function (payload) {\n if (payload[0]) {\n if (this.state.soundEffectTags.indexOf(payload[0]) > -1) {\n var index = this.state.soundEffectTags.indexOf(payload[0]);\n var soundEffectTags = this.state.soundEffectTags;\n\n soundEffectTags.splice(index, 1)\n\n this.setState({ soundEffectTags: soundEffectTags }, function () {\n this.sendSearchQuery();\n });\n\n } else {\n this.setState({ soundEffectTags: [payload[0]] }, function () {\n this.sendSearchQuery();\n });\n }\n\n }\n }.bind(this));\n\n global.EventHub.on('requestUpdateSoundEffectListing', function () {\n this.sendSearchQuery(true, true);\n }.bind(this));\n }\n\n sendPaginationSearchQuery(pageNumber) {\n this.setState({ page: pageNumber }, function () {\n this.sendSearchQuery(true);\n });\n }\n\n setStateViaUrlParams() {\n this.setQueryFromUrl();\n this.setIdsFromUrlFor('sound_effect_tag');\n this.setLengthFromUrl();\n this.setSortFromUrl();\n }\n\n setQueryFromUrl() {\n var regex = /\\q\\=([\\w\\+\\d\\%,-]*)/g,\n matches = regex.exec(document.location.search),\n matchesLength,\n queryText;\n\n if (matches !== null) {\n matchesLength = matches.length;\n for (var i = 0; i < matchesLength; i += 1) {\n queryText = matches[i].replace(/\\+/g, ' ');\n }\n this.setState({ query: decodeURI(queryText), completedQuery: decodeURI(queryText) });\n }\n }\n\n setIdsFromUrlFor(paramString) {\n var pattern = '\\_id\\\\[\\\\]\\\\=(\\\\d)+',\n regex = new RegExp(paramString + pattern, 'gi'),\n matches = document.location.search.match(regex),\n ids = [],\n stateObject = {},\n matchesLength,\n matchId,\n i;\n\n if (matches !== null) {\n matchesLength = matches.length;\n for (i = 0; i < matchesLength; i += 1) {\n matchId = parseInt(matches[i].replace(paramString + '_id[]=', ''), 10);\n ids.push(matchId);\n }\n stateObject[paramString + 's'] = ids;\n this.setState(stateObject, function () {\n setTimeout(function () {\n global.EventHub.trigger('updateItemIdList', { soundEffectTags: this.state.soundEffectTags });\n }.bind(this), 50)\n }.bind(this));\n }\n }\n\n setLengthFromUrl() {\n var minRegex = /min_length\\=([\\d]*)/g,\n minMatches = minRegex.exec(document.location.search),\n minMatchesLength,\n minQueryText,\n\n maxRegex = /max_length\\=([\\d]*)/g,\n maxMatches = maxRegex.exec(document.location.search),\n maxMatchesLength,\n maxQueryText;\n\n if (minMatches !== null) {\n minMatchesLength = minMatches.length;\n for (var i = 0; i < minMatchesLength; i += 1) {\n minQueryText = minMatches[i];\n }\n }\n\n if (maxMatches !== null) {\n maxMatchesLength = maxMatches.length;\n for (var i = 0; i < maxMatchesLength; i += 1) {\n maxQueryText = maxMatches[i];\n }\n }\n\n if (minQueryText) {\n this.setState({\n minLength: parseInt(minQueryText, 10)\n });\n }\n\n if (maxQueryText) {\n this.setState({\n maxLength: parseInt(maxQueryText, 10)\n });\n }\n }\n\n setSortFromUrl() {\n var directionRegex = /sort_direction\\=([a-zA-Z]+)/g,\n directionMatches = directionRegex.exec(document.location.search),\n directionMatchesLength,\n directionQueryText;\n\n if (directionMatches !== null) {\n directionMatchesLength = directionMatches.length;\n for (var i = 0; i < directionMatchesLength; i += 1) {\n directionQueryText = directionMatches[i];\n }\n }\n\n var sortByRegex = /sort_by\\=([a-zA-Z]+)/g,\n sortByMatches = sortByRegex.exec(document.location.search),\n sortByMatchesLength,\n sortByQueryText;\n\n if (sortByMatches !== null) {\n sortByMatchesLength = sortByMatches.length;\n for (var i = 0; i < sortByMatchesLength; i += 1) {\n sortByQueryText = sortByMatches[i];\n }\n }\n\n\n if (sortByQueryText && directionQueryText) {\n this.setState({\n sortDirection: directionQueryText,\n sortBy: sortByQueryText\n });\n } else if (directionQueryText) {\n this.setState({\n sortDirection: directionQueryText\n });\n }\n }\n\n handleSubmitSearchClick() {\n this.sendSearchQuery();\n }\n\n submitQueryClick(query) {\n var stateObject = this.state;\n\n stateObject.query = '';\n stateObject.completedQuery = '';\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitMenuItemClick(name, id) {\n var stateObject = this.state,\n arrayLength = stateObject[name].length,\n i,\n removeIndex,\n shouldAddToArray = true;\n\n for (i = 0; i < arrayLength; i += 1) {\n if (stateObject[name][i] === id) {\n shouldAddToArray = false;\n }\n }\n\n if (shouldAddToArray) {\n if (name === 'moods' || name === 'instruments') {\n stateObject[name].push(id);\n } else {\n stateObject[name] = [id];\n }\n } else {\n removeIndex = stateObject[name].indexOf(id);\n if (removeIndex > -1) {\n stateObject[name].splice(removeIndex, 1);\n }\n }\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitQueryChange(fieldValue) {\n this.setState({ query: fieldValue });\n }\n\n submitMinLengthClick() {\n var stateObject = this.state;\n\n stateObject.minLength = '';\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitMaxLengthClick() {\n var stateObject = this.state;\n\n stateObject.maxLength = '';\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitLengthChange(minLength, maxLength) {\n if (minLength > 0) {\n this.setState({ minLength: minLength });\n } else {\n this.setState({ minLength: '' });\n }\n if (maxLength > 0) {\n this.setState({ maxLength: maxLength });\n } else {\n this.setState({ maxLength: '' });\n }\n }\n\n submitSortChange(sortBy, sortDirection) {\n var stateObject = {\n sortBy: '',\n sortDirection: ''\n };\n\n if (sortBy === 'date') {\n stateObject['sortBy'] = sortBy;\n } else if (sortBy === 'popularity') {\n stateObject['sortBy'] = sortBy;\n } else if (sortBy === 'length') {\n stateObject['sortBy'] = sortBy;\n } else {\n stateObject['sortBy'] = '';\n }\n\n if (sortDirection === 'asc') {\n stateObject['sortDirection'] = sortDirection;\n } else if (sortDirection === 'desc') {\n stateObject['sortDirection'] = sortDirection;\n } else {\n stateObject['sortDirection'] = '';\n }\n\n this.setState(stateObject, function () {\n this.sendSearchQuery();\n });\n }\n\n getActiveSearchCriteriaCount() {\n var criteriaCount = 0;\n\n if (this.props.hideCategoryFromUrl !== 'sound_effect_tag' && this.state.soundEffectTags.length > 0) {\n criteriaCount += this.state.soundEffectTags.length;\n }\n\n if (this.state.minLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.maxLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.query.length > 0) {\n criteriaCount += 1;\n }\n\n return criteriaCount;\n }\n\n getActiveSearchCriteriaCountWithHiddenCriterias() {\n var criteriaCount = 0;\n\n if (this.state.soundEffectTags.length > 0) {\n criteriaCount += this.state.soundEffectTags.length;\n }\n\n if (this.state.minLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.maxLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.query.length > 0) {\n criteriaCount += 1;\n }\n\n return criteriaCount;\n }\n\n buildSearchQueryParams(omitPageParam) {\n var searchQueryParamsString = '',\n textQuery = '';\n\n for (var searchCategory in this.state) {\n if (this.state.hasOwnProperty(searchCategory)) {\n\n if (searchCategory === 'query' && this.state[searchCategory].length > 0) {\n textQuery = 'q=' + this.state[searchCategory] + '&';\n searchQueryParamsString += textQuery;\n } else if (searchCategory === 'minLength' && this.state[searchCategory] > 0) {\n searchQueryParamsString += 'min_length=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'maxLength' && this.state[searchCategory] > 0) {\n searchQueryParamsString += 'max_length=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'soundEffectId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'sound_effect_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'mediaBundleId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'media_bundle_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'page') {\n if (omitPageParam) {\n searchQueryParamsString += 'page=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'sortBy' && typeof this.state[searchCategory] === 'string') {\n searchQueryParamsString += 'sort_by=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'sortDirection' && typeof this.state[searchCategory] === 'string') {\n searchQueryParamsString += 'sort_direction=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'free' && this.state[searchCategory] === true) {\n searchQueryParamsString += 'free=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'completedQuery') {\n\n } else {\n for (var i = 0; i < this.state[searchCategory].length; i += 1) {\n var elementValue = this.state[searchCategory][i],\n singularCategory = searchCategory.slice(0, -1),\n text = '';\n\n // if (this.props.hideCategoryFromUrl !== singularCategory) {\n // text = singularCategory + '_id[]=' + elementValue + '&';\n // }\n\n text = singularCategory + '_id[]=' + elementValue + '&';\n\n searchQueryParamsString += text;\n }\n }\n }\n }\n\n\n if (searchQueryParamsString.endsWith('&')) {\n searchQueryParamsString = searchQueryParamsString.slice(0, -1);\n }\n\n if (searchQueryParamsString === 'sort_direction=&sort_by=') {\n searchQueryParamsString = '';\n }\n\n return searchQueryParamsString;\n }\n\n sendSearchQuery(paginationMode, initialPageLoadQuery) {\n let that = this,\n searchQueryParams, // search object\n newUrl,\n urlParams;\n\n if (!paginationMode) {\n this.setState({ page: 1 });\n }\n\n searchQueryParams = this.buildSearchQueryParams(paginationMode); // search object\n urlParams = (searchQueryParams.length > 0 ? ('?' + searchQueryParams) : '');\n \n $.ajax({\n url: '/sound_effects/search_results' + urlParams,\n beforeSend: function () {\n if (initialPageLoadQuery) {\n global.EventHub.trigger('fireSearchWithoutAnimation');\n } else {\n global.EventHub.trigger('fireSearch');\n }\n },\n success: function(data) {\n if (initialPageLoadQuery) {\n global.EventHub.trigger('initialUpdateSoundEffectListing', data);\n } else {\n global.EventHub.trigger('updateSoundEffectListing', data);\n }\n\n global.EventHub.trigger('searchSuccess', data);\n global.EventHub.trigger('updateItemIdList', { soundEffectTags: that.state.soundEffectTags });\n if (history.pushState && !initialPageLoadQuery) {\n if (paginationMode) {\n var prevParams = location.search.replace(/\\?page=[\\d]+/, '').replace(/&page=[\\d]+/, '').replace(/[\\?]+/, '');\n var path = window.location.pathname + '?' + prevParams + (prevParams.length > 0 ? '&' : '') + 'page=' + (this.state.page);\n if (path === '?') {\n path = '';\n }\n newUrl = window.location.protocol + \"//\" + window.location.host + path;\n newUrl = newUrl.replace(/\\?page=1$/, '').replace(/&page=1$/, '');\n } else {\n var path = (searchQueryParams.length > 0 ? ('?' + searchQueryParams) : '').replace('?sort_direction=&sort_by=', '?').replace('&sort_direction=&sort_by=', '').replace('&sort_direction=desc&sort_by=popularity', '').replace('?sort_direction=desc&sort_by=popularity', '?');\n\n if (path === '?') {\n path = ''\n }\n\n newUrl = window.location.protocol + \"//\" + window.location.host + window.location.pathname + path;\n newUrl = newUrl.replace(/&page=[\\d]+/, '');\n }\n\n if (this.props.hideCategoryFromUrl.length > 0) {\n if (this.props.hideCategoryFromUrl === 'tag') {\n newUrl = newUrl.replace(/\\?sound_effect_tag_id\\[\\]=[\\d]+&/, '?');\n newUrl = newUrl.replace(/&sound_effect_tag_id\\[\\]=[\\d]+&/, '&');\n newUrl = newUrl.replace(/&sound_effect_tag_id\\[\\]=[\\d]+/, '');\n newUrl = newUrl.replace(/\\?sound_effect_tag_id\\[\\]=[\\d]+/, '');\n }\n\n if (this.props.hideCategoryFromUrl === 'composer') {\n newUrl = newUrl.replace(/\\?composer_id\\[\\]=[\\d]+&/, '?');\n newUrl = newUrl.replace(/&composer_id\\[\\]=[\\d]+&/, '&');\n newUrl = newUrl.replace(/&composer_id\\[\\]=[\\d]+/, '');\n newUrl = newUrl.replace(/\\?composer_id\\[\\]=[\\d]+/, '');\n }\n\n }\n\n window.history.pushState({ path: newUrl }, '', newUrl);\n\n if (typeof ga === 'function') {\n ga('send', 'pageview', path);\n }\n\n this.setState({ completedQuery: this.state.query });\n }\n }\n });\n }\n\n render() {\n return (\n \n
\n )\n }\n}\n\nSoundEffectSearchMenuInvisible.defaultProps = {\n composers: [\n {\n name: '',\n id: ''\n }\n ],\n sortDirection: 'desc',\n sortBy: 'popularity',\n initialSearchQuery: {\n // query : '',\n // free : false,\n // soundEffectTags : [],\n // page : 1,\n // composers : [],\n // soundEffectId : undefined\n\n },\n autocompletion: [],\n i18n: {\n placeholder: 'z.B. Atmen'\n },\n hideCategoryFromUrl: ''\n}\n\n\n\n// INIT\n\nlet elements = document.querySelectorAll('[data-react-component=SoundEffectSearchMenuInvisible]');\n\nelements.forEach(function (element) {\n let reactProps = JSON.parse(element.dataset.reactProps);\n\n console.log('reactProps');\n console.log(reactProps);\n\n ReactDOM.render(\n \n \n ,\n element\n );\n})\n\nexport default SoundEffectSearchMenuInvisible;\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nclass SoundEffectListingSortInputs extends Component {\n constructor(props) {\n super(props);\n\n this.handleDateDescClick = this.handleDateDescClick.bind(this);\n this.handleLengthAscClick = this.handleLengthAscClick.bind(this);\n this.handleLengthDescClick = this.handleLengthDescClick.bind(this);\n this.handlePopularityDescClick = this.handlePopularityDescClick.bind(this);\n\n this.state = {\n sortBy: this.props.sortBy,\n sortDirection: this.props.sortDirection\n }\n }\n\n handleDateDescClick() {\n let stateObject = { sortDirection: 'desc', sortBy: 'date' };\n\n global.EventHub.trigger('changeSort', stateObject);\n this.setState(stateObject)\n }\n\n handleLengthAscClick() {\n let stateObject = { sortDirection: 'asc', sortBy: 'length' };\n\n global.EventHub.trigger('changeSort', stateObject);\n this.setState(stateObject)\n }\n\n handleLengthDescClick() {\n let stateObject = { sortDirection: 'desc', sortBy: 'length' };\n\n global.EventHub.trigger('changeSort', stateObject);\n this.setState(stateObject)\n }\n\n handlePopularityDescClick() {\n let stateObject = { sortDirection: 'desc', sortBy: 'popularity' };\n\n global.EventHub.trigger('changeSort', stateObject);\n this.setState(stateObject)\n }\n\n getClassName(sortBy, sortDirection) {\n if (sortBy === this.state.sortBy && sortDirection === this.state.sortDirection) {\n return 'sort-inputs__item--active';\n }\n\n return '';\n }\n\n render() {\n return (\n \n )\n }\n};\n\nSoundEffectListingSortInputs.defaultProps = {\n sortBy: 'popularity',\n sortDirection: 'desc'\n}\n\nSoundEffectListingSortInputs.propTypes = {\n locale: PropTypes.string\n};\n\n// INIT\n\nlet elements = document.querySelectorAll('[data-react-component=SoundEffectListingSortInputs]');\n\nelements.forEach(function(element) {\n let reactProps = JSON.parse(element.dataset.reactProps);\n\n ReactDOM.render(\n \n \n ,\n element\n );\n})\n\n\nexport default SoundEffectListingSortInputs;\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames/bind';\n// import $ from 'jquery';\n\nimport SearchTabs from '~/components/legacy/SearchTabs.jsx';\n// import SearchTab from '~/components/legacy/SearchTab.jsx';\n// import SearchTabContent from '~/components/legacy/SearchTabContent.jsx';\n// import SearchTabFilterContent from '~/components/legacy/SearchTabFilterContent.jsx';\nimport SearchMenuLengthInputs from '~/components/legacy/SearchMenuLengthInputs.jsx';\nimport SearchMenuQueryInput from '~/components/legacy/SearchMenuQueryInput.jsx';\n\nclass SoundEffectSearch extends Component {\n\n // mixins: [SoundEffectSearchMenuMixin],\n\n constructor(props) {\n super(props);\n\n this.handleSubmitSearchClick = this.handleSubmitSearchClick.bind(this);\n this.submitQueryClick = this.submitQueryClick.bind(this);\n this.submitMenuItemClick = this.submitMenuItemClick.bind(this);\n this.submitQueryChange = this.submitQueryChange.bind(this);\n this.submitMinLengthClick = this.submitMinLengthClick.bind(this);\n this.submitMaxLengthClick = this.submitMaxLengthClick.bind(this);\n this.submitLengthChange = this.submitLengthChange.bind(this);\n this.submitSortChange = this.submitSortChange.bind(this);\n\n this.state = {\n query: '',\n page: this.props.initialSearchQuery.page ? parseInt(this.props.initialSearchQuery.page, 10) : 1,\n composers: [],\n soundEffectTags: [],\n completedQuery: '',\n minLength: '',\n maxLength: '',\n free: false,\n sortDirection: '',\n sortBy: '',\n soundEffectId: this.props.initialSearchQuery.sound_effect_id\n }\n }\n\n componentWillMount() {\n var stateObject = {},\n searchCloudItemIds = [];\n\n for (var searchCategory in this.props.initialSearchQuery) {\n if (this.props.initialSearchQuery.hasOwnProperty(searchCategory)) {\n\n if (searchCategory === 'query' && this.props.initialSearchQuery[searchCategory].length > 0) {\n this.setState({ query: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'minLength' && this.props.initialSearchQuery[searchCategory] >= 0) {\n this.setState({ minLength: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'maxLength' && parseInt(this.props.initialSearchQuery[searchCategory]) >= 0) {\n this.setState({ maxLength: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'soundEffectId') {\n this.setState({ soundEffectId: this.props.initialSearchQuery[searchCategory] });\n } else if (searchCategory === 'page') {\n if (this.props.initialSearchQuery[searchCategory]) {\n this.setState({ page: parseInt(this.props.initialSearchQuery[searchCategory], 10) });\n }\n } else {\n stateObject = {};\n searchCloudItemIds = [];\n\n for (var i = 0; i < this.props.initialSearchQuery[searchCategory].length; i += 1) {\n searchCloudItemIds.push(this.props.initialSearchQuery[searchCategory][i]);\n }\n\n stateObject[searchCategory] = searchCloudItemIds;\n this.setState(stateObject);\n }\n }\n }\n }\n\n componentDidMount() {\n\n this.setStateViaUrlParams();\n global.EventHub.on('queryInputSubmit', function () {\n this.sendSearchQuery();\n }.bind(this));\n\n global.EventHub.on('paginationClick', this.sendPaginationSearchQuery);\n\n global.EventHub.on('changeSort', function (payload) {\n if (payload[0]) {\n this.setState({ sortDirection: payload[0].sortDirection, sortBy: payload[0].sortBy }, function () {\n this.sendSearchQuery();\n });\n }\n }.bind(this));\n\n global.EventHub.on('soundEffectTagClick', function (payload) {\n if (payload[0]) {\n if (this.state.soundEffectTags.indexOf(payload[0]) > -1) {\n var index = this.state.soundEffectTags.indexOf(payload[0]);\n var soundEffectTags = this.state.soundEffectTags;\n\n soundEffectTags.splice(index, 1)\n\n this.setState({ soundEffectTags: soundEffectTags }, function () {\n this.sendSearchQuery();\n });\n\n } else {\n this.setState({ soundEffectTags: [payload[0]] }, function () {\n this.sendSearchQuery();\n });\n }\n\n }\n }.bind(this));\n\n global.EventHub.on('requestUpdateSoundEffectListing', function () {\n this.sendSearchQuery(true, true);\n }.bind(this));\n }\n\n sendPaginationSearchQuery(pageNumber) {\n this.setState({ page: pageNumber }, function () {\n this.sendSearchQuery(true);\n });\n }\n\n setStateViaUrlParams() {\n this.setQueryFromUrl();\n this.setIdsFromUrlFor('sound_effect_tag');\n this.setLengthFromUrl();\n this.setSortFromUrl();\n }\n\n setQueryFromUrl() {\n var regex = /\\q\\=([\\w\\+\\d\\%,-]*)/g,\n matches = regex.exec(document.location.search),\n matchesLength,\n queryText;\n\n if (matches !== null) {\n matchesLength = matches.length;\n for (var i = 0; i < matchesLength; i += 1) {\n queryText = matches[i].replace(/\\+/g, ' ');\n }\n this.setState({ query: decodeURI(queryText), completedQuery: decodeURI(queryText) });\n }\n }\n\n setIdsFromUrlFor(paramString) {\n var pattern = '\\_id\\\\[\\\\]\\\\=(\\\\d)+',\n regex = new RegExp(paramString + pattern, 'gi'),\n matches = document.location.search.match(regex),\n ids = [],\n stateObject = {},\n matchesLength,\n matchId,\n i;\n\n if (matches !== null) {\n matchesLength = matches.length;\n for (i = 0; i < matchesLength; i += 1) {\n matchId = parseInt(matches[i].replace(paramString + '_id[]=', ''), 10);\n ids.push(matchId);\n }\n stateObject[paramString + 's'] = ids;\n this.setState(stateObject, function () {\n setTimeout(function () {\n global.EventHub.trigger('updateItemIdList', { soundEffectTags: this.state.soundEffectTags });\n }.bind(this), 50)\n }.bind(this));\n }\n }\n\n setLengthFromUrl() {\n var minRegex = /min_length\\=([\\d]*)/g,\n minMatches = minRegex.exec(document.location.search),\n minMatchesLength,\n minQueryText,\n\n maxRegex = /max_length\\=([\\d]*)/g,\n maxMatches = maxRegex.exec(document.location.search),\n maxMatchesLength,\n maxQueryText;\n\n if (minMatches !== null) {\n minMatchesLength = minMatches.length;\n for (var i = 0; i < minMatchesLength; i += 1) {\n minQueryText = minMatches[i];\n }\n }\n\n if (maxMatches !== null) {\n maxMatchesLength = maxMatches.length;\n for (var i = 0; i < maxMatchesLength; i += 1) {\n maxQueryText = maxMatches[i];\n }\n }\n\n if (minQueryText) {\n this.setState({\n minLength: parseInt(minQueryText, 10)\n });\n }\n\n if (maxQueryText) {\n this.setState({\n maxLength: parseInt(maxQueryText, 10)\n });\n }\n }\n\n setSortFromUrl() {\n var directionRegex = /sort_direction\\=([a-zA-Z]+)/g,\n directionMatches = directionRegex.exec(document.location.search),\n directionMatchesLength,\n directionQueryText;\n\n if (directionMatches !== null) {\n directionMatchesLength = directionMatches.length;\n for (var i = 0; i < directionMatchesLength; i += 1) {\n directionQueryText = directionMatches[i];\n }\n }\n\n var sortByRegex = /sort_by\\=([a-zA-Z]+)/g,\n sortByMatches = sortByRegex.exec(document.location.search),\n sortByMatchesLength,\n sortByQueryText;\n\n if (sortByMatches !== null) {\n sortByMatchesLength = sortByMatches.length;\n for (var i = 0; i < sortByMatchesLength; i += 1) {\n sortByQueryText = sortByMatches[i];\n }\n }\n\n\n if (sortByQueryText && directionQueryText) {\n this.setState({\n sortDirection: directionQueryText,\n sortBy: sortByQueryText\n });\n } else if (directionQueryText) {\n this.setState({\n sortDirection: directionQueryText\n });\n }\n }\n\n handleSubmitSearchClick() {\n this.sendSearchQuery();\n }\n\n submitQueryClick(query) {\n var stateObject = this.state;\n\n stateObject.query = '';\n stateObject.completedQuery = '';\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitMenuItemClick(name, id) {\n var stateObject = this.state,\n arrayLength = stateObject[name].length,\n i,\n removeIndex,\n shouldAddToArray = true;\n\n for (i = 0; i < arrayLength; i += 1) {\n if (stateObject[name][i] === id) {\n shouldAddToArray = false;\n }\n }\n\n if (shouldAddToArray) {\n if (name === 'moods' || name === 'instruments') {\n stateObject[name].push(id);\n } else {\n stateObject[name] = [id];\n }\n } else {\n removeIndex = stateObject[name].indexOf(id);\n if (removeIndex > -1) {\n stateObject[name].splice(removeIndex, 1);\n }\n }\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitQueryChange(fieldValue) {\n this.setState({ query: fieldValue });\n }\n\n submitMinLengthClick() {\n var stateObject = this.state;\n\n stateObject.minLength = '';\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitMaxLengthClick() {\n var stateObject = this.state;\n\n stateObject.maxLength = '';\n\n this.setState(stateObject);\n this.sendSearchQuery();\n }\n\n submitLengthChange(minLength, maxLength) {\n if (minLength > 0) {\n this.setState({ minLength: minLength });\n } else {\n this.setState({ minLength: '' });\n }\n if (maxLength > 0) {\n this.setState({ maxLength: maxLength });\n } else {\n this.setState({ maxLength: '' });\n }\n }\n\n submitSortChange(sortBy, sortDirection) {\n var stateObject = {\n sortBy: '',\n sortDirection: ''\n };\n\n if (sortBy === 'date') {\n stateObject['sortBy'] = sortBy;\n } else if (sortBy === 'popularity') {\n stateObject['sortBy'] = sortBy;\n } else if (sortBy === 'length') {\n stateObject['sortBy'] = sortBy;\n } else {\n stateObject['sortBy'] = '';\n }\n\n if (sortDirection === 'asc') {\n stateObject['sortDirection'] = sortDirection;\n } else if (sortDirection === 'desc') {\n stateObject['sortDirection'] = sortDirection;\n } else {\n stateObject['sortDirection'] = '';\n }\n\n this.setState(stateObject, function () {\n this.sendSearchQuery();\n });\n }\n\n getActiveSearchCriteriaCount() {\n var criteriaCount = 0;\n\n if (this.props.hideCategoryFromUrl !== 'sound_effect_tag' && this.state.soundEffectTags.length > 0) {\n criteriaCount += this.state.soundEffectTags.length;\n }\n\n if (this.state.minLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.maxLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.query.length > 0) {\n criteriaCount += 1;\n }\n\n return criteriaCount;\n }\n\n getActiveSearchCriteriaCountWithHiddenCriterias() {\n var criteriaCount = 0;\n\n if (this.state.soundEffectTags.length > 0) {\n criteriaCount += this.state.soundEffectTags.length;\n }\n\n if (this.state.minLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.maxLength > 0) {\n criteriaCount += 1;\n }\n\n if (this.state.query.length > 0) {\n criteriaCount += 1;\n }\n\n return criteriaCount;\n }\n\n buildSearchQueryParams(omitPageParam) {\n var searchQueryParamsString = '',\n textQuery = '';\n\n for (var searchCategory in this.state) {\n if (this.state.hasOwnProperty(searchCategory)) {\n\n if (searchCategory === 'query' && this.state[searchCategory].length > 0) {\n textQuery = 'q=' + this.state[searchCategory] + '&';\n searchQueryParamsString += textQuery;\n } else if (searchCategory === 'minLength' && this.state[searchCategory] > 0) {\n searchQueryParamsString += 'min_length=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'maxLength' && this.state[searchCategory] > 0) {\n searchQueryParamsString += 'max_length=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'soundEffectId') {\n if (parseInt(this.state[searchCategory], 10) > 0) {\n searchQueryParamsString += 'sound_effect_id=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'page') {\n if (omitPageParam) {\n searchQueryParamsString += 'page=' + this.state[searchCategory] + '&';\n }\n } else if (searchCategory === 'sortBy' && typeof this.state[searchCategory] === 'string') {\n searchQueryParamsString += 'sort_by=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'sortDirection' && typeof this.state[searchCategory] === 'string') {\n searchQueryParamsString += 'sort_direction=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'free' && this.state[searchCategory] === true) {\n searchQueryParamsString += 'free=' + this.state[searchCategory] + '&';\n } else if (searchCategory === 'completedQuery') {\n\n } else {\n for (var i = 0; i < this.state[searchCategory].length; i += 1) {\n var elementValue = this.state[searchCategory][i],\n singularCategory = searchCategory.slice(0, -1),\n text = '';\n\n // if (this.props.hideCategoryFromUrl !== singularCategory) {\n // text = singularCategory + '_id[]=' + elementValue + '&';\n // }\n\n text = singularCategory + '_id[]=' + elementValue + '&';\n\n searchQueryParamsString += text;\n }\n }\n }\n }\n\n\n if (searchQueryParamsString.endsWith('&')) {\n searchQueryParamsString = searchQueryParamsString.slice(0, -1);\n }\n\n if (searchQueryParamsString === 'sort_direction=&sort_by=') {\n searchQueryParamsString = '';\n }\n\n return searchQueryParamsString;\n }\n\n sendSearchQuery(paginationMode, initialPageLoadQuery) {\n let that = this,\n searchQueryParams, // search object\n newUrl,\n urlParams;\n\n if (!paginationMode) {\n this.setState({ page: 1 });\n }\n\n searchQueryParams = this.buildSearchQueryParams(paginationMode); // search object\n urlParams = (searchQueryParams.length > 0 ? ('?' + searchQueryParams) : '');\n \n $.ajax({\n url: '/sound_effects/search_results' + urlParams,\n beforeSend: function () {\n if (initialPageLoadQuery) {\n global.EventHub.trigger('fireSearchWithoutAnimation');\n } else {\n global.EventHub.trigger('fireSearch');\n }\n },\n success: function(data) {\n if (initialPageLoadQuery) {\n global.EventHub.trigger('initialUpdateSoundEffectListing', data);\n } else {\n global.EventHub.trigger('updateSoundEffectListing', data);\n }\n\n global.EventHub.trigger('searchSuccess', data);\n global.EventHub.trigger('updateItemIdList', { soundEffectTags: that.state.soundEffectTags });\n if (history.pushState && !initialPageLoadQuery) {\n if (paginationMode) {\n var prevParams = location.search.replace(/\\?page=[\\d]+/, '').replace(/&page=[\\d]+/, '').replace(/[\\?]+/, '');\n var path = window.location.pathname + '?' + prevParams + (prevParams.length > 0 ? '&' : '') + 'page=' + (this.state.page);\n if (path === '?') {\n path = '';\n }\n newUrl = window.location.protocol + \"//\" + window.location.host + path;\n newUrl = newUrl.replace(/\\?page=1$/, '').replace(/&page=1$/, '');\n } else {\n var path = (searchQueryParams.length > 0 ? ('?' + searchQueryParams) : '').replace('?sort_direction=&sort_by=', '?').replace('&sort_direction=&sort_by=', '').replace('&sort_direction=desc&sort_by=popularity', '').replace('?sort_direction=desc&sort_by=popularity', '?');\n\n if (path === '?') {\n path = ''\n }\n\n newUrl = window.location.protocol + \"//\" + window.location.host + window.location.pathname + path;\n newUrl = newUrl.replace(/&page=[\\d]+/, '');\n }\n\n if (this.props.hideCategoryFromUrl.length > 0) {\n if (this.props.hideCategoryFromUrl === 'tag') {\n newUrl = newUrl.replace(/\\?sound_effect_tag_id\\[\\]=[\\d]+&/, '?');\n newUrl = newUrl.replace(/&sound_effect_tag_id\\[\\]=[\\d]+&/, '&');\n newUrl = newUrl.replace(/&sound_effect_tag_id\\[\\]=[\\d]+/, '');\n newUrl = newUrl.replace(/\\?sound_effect_tag_id\\[\\]=[\\d]+/, '');\n }\n\n if (this.props.hideCategoryFromUrl === 'composer') {\n newUrl = newUrl.replace(/\\?composer_id\\[\\]=[\\d]+&/, '?');\n newUrl = newUrl.replace(/&composer_id\\[\\]=[\\d]+&/, '&');\n newUrl = newUrl.replace(/&composer_id\\[\\]=[\\d]+/, '');\n newUrl = newUrl.replace(/\\?composer_id\\[\\]=[\\d]+/, '');\n }\n\n }\n\n window.history.pushState({ path: newUrl }, '', newUrl);\n\n if (typeof ga === 'function') {\n ga('send', 'pageview', path);\n }\n\n this.setState({ completedQuery: this.state.query });\n }\n }\n });\n }\n\n\n render() {\n let classes = classNames({\n 'search': true\n });\n\n return (\n \n )\n }\n};\n\nSoundEffectSearch.defaultProps = {\n composers: [\n {\n name: '',\n id: ''\n }\n ],\n sortDirection: 'desc',\n sortBy: 'popularity',\n initialSearchQuery: {\n // query : '',\n // free : false,\n // soundEffectTags : [],\n // page : 1,\n // composers : [],\n // soundEffectId : undefined\n\n },\n autocompletion: [],\n i18n: {\n placeholder: 'z.B. Atmen'\n },\n hideCategoryFromUrl: ''\n}\n\n\n\n// INIT\n\nlet elements = document.querySelectorAll('[data-react-component=SoundEffectSearch]');\n\nelements.forEach(function (element) {\n let reactProps = JSON.parse(element.dataset.reactProps);\n\n console.log('reactProps');\n console.log(reactProps);\n\n ReactDOM.render(\n \n \n ,\n element\n );\n})\n\n\nexport default SoundEffectSearch;\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n// // import $ from 'jquery';\nimport confetti from 'canvas-confetti';\nimport ahoy from 'ahoy.js';\n\nimport UsageLicenseTypeSelect from '~/components/legacy/UsageLicenseTypeSelect.jsx'\n\nclass StaticTrack extends Component {\n\n // mixins : [UsageLicenseTypeSelectMixin],\n\n constructor(props) {\n super(props)\n\n this.handleClick = this.handleClick.bind(this)\n this.handleLayoutDownloadClick = this.handleLayoutDownloadClick.bind(this)\n this.handleShareClick = this.handleShareClick.bind(this)\n this.handlefreeDownloadBuyInShopClick = this.handlefreeDownloadBuyInShopClick.bind(this)\n this.handlefreeDownloadAgreeClick = this.handlefreeDownloadAgreeClick.bind(this)\n this.handleNextClick = this.handleNextClick.bind(this)\n this.handlePrevClick = this.handlePrevClick.bind(this)\n this.handleFavoriteClick = this.handleFavoriteClick.bind(this)\n this.handleFreeDownloadClick = this.handleFreeDownloadClick.bind(this)\n this.handleMouseEnter = this.handleMouseEnter.bind(this)\n this.handleMouseLeave = this.handleMouseLeave.bind(this)\n this.handleVariantClick = this.handleVariantClick.bind(this)\n this.handleCartClick = this.handleCartClick.bind(this)\n this.updateCart = this.updateCart.bind(this)\n\n this.state = {\n playing: false,\n isHovered: false,\n showUsageLicenseSelect: false\n }\n }\n\n componentDidMount() {\n let that = this;\n\n global.EventHub.on('updateTrackInfo', function (data) {\n if (data[0].id !== that.props.id) {\n that.setState({\n playing: false\n });\n }\n });\n\n global.EventHub.on('updateTrackVariantInfo', function (data) {\n if (data[0].id !== that.props.id) {\n that.setState({\n playing: false\n });\n }\n });\n\n\n global.EventHub.on('audioPlayerPlay', function (data) {\n if (data[0].id === that.props.id) {\n that.setState({\n playing: true\n });\n }\n });\n\n\n global.EventHub.on('audioPlayerStop', function () {\n if (that.state.playing) {\n that.setState({\n playing: false\n });\n }\n });\n\n global.EventHub.on('audioPlayerEnded', function () {\n if (that.state.playing) {\n that.setState({\n playing: false\n });\n }\n });\n }\n\n handleClick(e) {\n e.preventDefault();\n global.EventHub.trigger('playTrack', this.props.id);\n global.EventHub.trigger('updateTrackInfo', this.props);\n this.setState({\n playing: !this.state.playing\n });\n }\n\n handleLayoutDownloadClick(e) {\n this.triggerDemoDownload();\n\n if (typeof confetti !== 'undefined') {\n let rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 20,\n angle: 90,\n spread: 60,\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 30) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n\n handleShareClick(e) {\n e.preventDefault();\n\n if (this.state.displayCopyHint) {\n this.setState({ displayCopyHint: false });\n } else {\n if (!this.state.shareTrackingFired) {\n if (typeof plausible === 'function') {\n plausible('track_share', { props: { track_id: this.props.id, location: window.location.href } });\n }\n\n ahoy.track('track_share', { track_id: this.props.id, location: window.location.href, categorization_processed: false });\n }\n\n if (navigator.share) {\n // Web Share API is supported\n navigator.share({\n title: (this.props.display_title || this.props.title) + ' | ' + (this.props.locale === 'de' ? 'GEMAfreie Musik auf audiocrowd.net' : 'Royalty-free music on audiocrowd.net'),\n url: this.props.showcaseUrl + '?utm_source=share_link_teaser&utm_medium=referral'\n })\n this.setState({ shareTrackingFired: true });\n } else {\n // Fallback\n this.copyToClipboard(this.props.showcaseUrl + '?utm_source=share_link_teaser&utm_medium=referral');\n this.setState({ displayCopyHint: true, shareTrackingFired: true }, function () {\n setTimeout(function () {\n this.setState({ displayCopyHint: false })\n }.bind(this), 5000)\n });\n }\n\n if (typeof confetti !== 'undefined') {\n let rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 30,\n angle: 90,\n spread: 60,\n shapes: ['circle'],\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 20) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n }\n\n copyToClipboard(str) {\n let el = document.createElement('textarea');\n\n el.value = str;\n el.setAttribute('readonly', '');\n el.style.position = 'absolute';\n el.style.left = '-9999px';\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n }\n\n\n triggerDemoDownload() {\n let link = document.createElement(\"a\"),\n uri = '/c/tracks/' + this.props.id + '/download_layout',\n isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor),\n isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\n // If you don't know the name or want to use\n // the webserver default set name = ''\n\n link.href = uri\n\n if ($('[data-logged-in]').length === 0) {\n // not logged in\n link.setAttribute('target', '_blank');\n } else {\n // logged in\n if (!isChrome && !isFirefox) {\n link.setAttribute('download', '');\n }\n }\n\n if (typeof plausible === 'function') {\n plausible('track_layout_download', { props: { track_id: this.props.id, location: window.location.href } });\n }\n\n ahoy.track('track_layout_download', { track_id: this.props.id, location: window.location.href, categorization_processed: false })\n\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n\n handlefreeDownloadBuyInShopClick(e) {\n e.preventDefault();\n let win = window.open(this.props.showcaseUrl, '_blank');\n // let win = window.open((this.props.locale === 'de' ? ('http://localhost:3000/tracks/' + this.props.id + '/free_download') : ('http://localhost:3000/tracks/' + this.props.id + '/free_download')), '_blank');\n win.focus();\n\n console.log('handle buy in shop click');\n }\n\n handlefreeDownloadAgreeClick(e) {\n e.preventDefault();\n\n if (typeof plausible === 'function') {\n plausible('track_download_free', { props: { track_id: this.props.id, location: window.location.href } });\n }\n\n ahoy.track('track_download_free', { track_id: this.props.id, location: window.location.href, categorization_processed: false })\n\n let win = window.open((this.props.locale === 'de' ? ('/tracks/' + this.props.id + '/free_download') : ('/tracks/' + this.props.id + '/free_download')), '_blank');\n // let win = window.open((this.props.locale === 'de' ? ('http://localhost:3000/tracks/' + this.props.id + '/free_download') : ('http://localhost:3000/tracks/' + this.props.id + '/free_download')), '_blank');\n win.focus();\n }\n\n handlefreeDownloadRejectClick(e) {\n e.preventDefault();\n console.log('handle reject click');\n }\n\n handleNextClick(e) {\n e.preventDefault();\n global.EventHub.trigger('playTrack', this.props.next_track.id);\n global.EventHub.trigger('updateTrackInfo', this.props.next_track);\n this.setState({\n playing: !this.state.playing\n });\n }\n\n handlePrevClick(e) {\n e.preventDefault();\n global.EventHub.trigger('playTrack', this.props.prev_track.id);\n global.EventHub.trigger('updateTrackInfo', this.props.prev_track);\n this.setState({\n playing: !this.state.playing\n });\n }\n\n handleFavoriteClick(e) {\n e.preventDefault();\n\n this.props.handleFavoriteClick(this.props.id);\n\n if (!this.props.favorited && typeof confetti !== 'undefined') {\n let rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 30,\n angle: 90,\n spread: 60,\n shapes: ['circle'],\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 20) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n\n handleFreeDownloadClick(e) {\n e.preventDefault();\n this.props.handleFreeDownloadClick(this.props.id);\n }\n\n handleFreeDownloadDialogClick(e) {\n e.preventDefault();\n }\n\n handlefreeDownloadRejectClick(e) {\n e.preventDefault();\n global.EventHub.trigger('closePopupMenus');\n }\n\n\n handleTagClick(tagId, e) {\n e.preventDefault();\n global.EventHub.trigger('trackTagClick', tagId);\n }\n\n handleGenreClick(genreId, e) {\n e.preventDefault();\n global.EventHub.trigger('trackGenreClick', genreId);\n }\n\n handleMoodClick(moodId, e) {\n e.preventDefault();\n global.EventHub.trigger('trackMoodClick', moodId);\n }\n\n handleMouseEnter(e) {\n e.preventDefault();\n this.setState({\n isHovered: true\n });\n }\n\n handleMouseLeave(e) {\n e.preventDefault();\n this.setState({\n isHovered: false\n });\n }\n\n handleVariantClick(variantId, trackId, variantTitle, e) {\n e.preventDefault();\n global.EventHub.trigger('playTrackVariant', variantId, trackId);\n this.setState({\n playing: false\n });\n }\n\n\n truncate(text, count) {\n return (text.length > count) ? text.substr(0, count - 1) + '...' : text;\n }\n\n\n updateCart(usageLicenseTypeId, exposurePackId, forFx) {\n let itemId = this.props.id || this.state.data.id,\n i,\n updateUrl;\n\n if (exposurePackId) {\n updateUrl = \"/cart?exposure_pack_id=\" + exposurePackId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else if (forFx) {\n updateUrl = \"/cart?sound_effect_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else {\n updateUrl = \"/cart?track_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n }\n\n $.ajax({\n url: updateUrl,\n type: 'POST'\n }).done(function (data) {\n\n global.EventHub.trigger('updateCart', data)\n\n for (i = 0; i < data.length; i += 1) {\n if (data[i].track_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('track_add_cart', { props: { track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href } });\n }\n\n ahoy.track('track_add_cart', { track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false })\n } else if (data[i].sound_effect_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('sound_effect_add_cart', { props: { sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href } });\n }\n\n ahoy.track('sound_effect_add_cart', { sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false })\n }\n }\n\n if (typeof fbq === 'function') {\n fbq('track', 'AddToWishlist', {\n content_ids: itemId.toString(),\n content_type: 'product',\n });\n }\n\n }.bind(this));\n }\n\n handleCartClick(e) {\n e.preventDefault();\n this.props.handleCartClick(this.props.id);\n }\n\n getSelectedUsageLicenseTypeIds() {\n let ids = [],\n that = this,\n trackId = this.props.id || that.state.data.id,\n cart_items = this.state.cart_items || this.props.cart_items;\n\n cart_items.forEach(function (element) {\n if (element.track_id === trackId) {\n ids.push(element.usage_license_type_id);\n }\n });\n\n return ids;\n }\n\n\n\n render() {\n let classes = classNames({\n 'static-track': true,\n 'static-track--slim': this.props.slim,\n 'static-track--active': this.props.active,\n 'static-track--new': this.props.recently_activated,\n 'static-track--favorited': this.props.favorited,\n 'static-track--license-select-open': this.props.showUsageLicenseSelect,\n 'static-track--playing': this.state.playing && !(parseInt(this.props.activeTrackVariantId, 10) > 0),\n 'static-track--variant-playing': this.state.playing && (parseInt(this.props.activeTrackVariantId, 10) > 0)\n }),\n cartLink,\n favoriteLink,\n recentlyCreatedLabel,\n cartLinkIcon,\n usageLicenseTypeSelect,\n trackLabels,\n nextButton,\n prevButton,\n composerInfo,\n genreItems = [],\n tagItems = [],\n moodItems = [];\n\n let layoutDownloadLink,\n shareLink,\n freeDownloadDialog,\n copyHint;\n\n if (this.state.displayCopyHint && !navigator.share) {\n copyHint = \n
\n \n {this.props.locale === 'de' ? 'Die Track-URL wurde in die Zwischenablage kopiert.' : 'The track URL was copied to your clipboard.'} \n
\n
;\n }\n\n\n layoutDownloadLink = \n \n
\n
Demo \n {/*
{this.props.locale === 'de' ? 'DEMO-Download: Wenn Sie die Musik erst ausprobieren möchten, können Sie eine Demo-Version herunterladen. Der Download erfordert ein Kunden-Konto, das Sie nach einem Klick einfach und schnell anlegen können.' : 'Demo download: If you want to try the music first, you can download a demo version. The download requires a customer account, which you can create easily after one click.'}
*/}\n
\n\n {/* {this.props.layout_download} */}\n ;\n\n shareLink = (\n \n \n
\n
{this.props.locale === 'de' ? 'Teilen' : 'share'} \n {/*
{this.props.locale === 'de' ? 'DEMO-Download: Wenn Sie die Musik erst ausprobieren möchten, können Sie eine Demo-Version herunterladen. Der Download erfordert ein Kunden-Konto, das Sie nach einem Klick einfach und schnell anlegen können.' : 'Demo download: If you want to try the music first, you can download a demo version. The download requires a customer account, which you can create easily after one click.'}
*/}\n
\n\n {/* {this.props.layout_download} */}\n );\n\n let trackVariants = this.props.track_variants.map(function (variant) {\n return ({variant.title} )\n }.bind(this));\n\n let trackVariantInfo;\n\n if (this.props.track_variants.length > 0) {\n trackVariantInfo = {this.props.locale === 'de' ? (' Enthält ' + this.props.track_variants.length + ' zusätzliche ' + (this.props.track_variants.length === 1 ? 'Variante.' : 'Varianten.')) : (' Including ' + this.props.track_variants.length + ' additional ' + (this.props.track_variants.length === 1 ? 'variant.' : 'variants.'))} ;\n }\n\n if (this.props.prev_track) {\n prevButton = ;\n } else {\n prevButton = ;\n }\n\n if (this.props.next_track) {\n nextButton = ;\n } else {\n nextButton = ;\n }\n\n if (this.props.favorited) {\n favoriteLink = {this.props.locale === 'de' ? 'gemerkt' : 'remembered'}
;\n } else {\n favoriteLink = {this.props.locale === 'de' ? 'merken' : 'remember'}
;\n }\n\n if (this.props.recently_activated) {\n recentlyCreatedLabel = {this.props.i18n.recently_created} \n trackLabels = {recentlyCreatedLabel} ;\n }\n\n if (this.props.composerName) {\n composerInfo = by {this.props.composerName} ;\n } else {\n composerInfo = '';\n }\n\n if (!this.props.freeMode) {\n if (this.props.inCart) {\n if (this.props.show_download_button) {\n cartLinkIcon = ;\n } else {\n cartLinkIcon = ;\n }\n cartLink = {cartLinkIcon}{this.props.remove_from_cart} \n } else {\n if (this.props.show_download_button) {\n cartLinkIcon = ;\n } else {\n cartLinkIcon = ;\n }\n cartLink = {cartLinkIcon}{this.props.add_to_cart} \n }\n }\n\n if (this.props.showUsageLicenseSelect && !this.props.freeMode) {\n usageLicenseTypeSelect = (\n \n );\n }\n\n\n return (\n \n\n\n
\n
\n {prevButton}\n
\n
0)) ? 'fa fa-pause' : 'fa fa-play'} />\n
\n \n {nextButton}\n
\n
\n
audiocrowd GmbH \n
audiocrowd GmbH \n
audiocrowd GmbH \n
\n
\n
\n \n {this.props.id} \n {this.props.display_title || this.props.title} \n {trackLabels} \n {/* \n {this.props.score} */}\n \n {composerInfo}\n
\n
\n {favoriteLink}\n {shareLink}\n {copyHint}\n {layoutDownloadLink}\n
\n {cartLink}\n
\n {usageLicenseTypeSelect}\n
\n
\n
\n
\n )\n }\n};\n\nStaticTrack.defaultProps = {\n cart_items: [],\n locale: 'de'\n}\n\nexport default StaticTrack;\n\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames/bind';\n// import $ from 'jquery';\n\nimport StaticTrack from '~/components/legacy/StaticTrack.jsx'\n\nclass StaticTrackListing extends Component {\n\n // mixins: [SearchInProgressMixin, TrackFavoriteMixin],\n\n constructor(props) {\n super(props)\n\n this.handleCartClick = this.handleCartClick.bind(this)\n this.handleFreeDownloadClick = this.handleFreeDownloadClick.bind(this)\n this.handleFavoriteClick = this.handleFavoriteClick.bind(this)\n\n this.state = {\n showUsageLicenseSelectForTrackId: [],\n showFreeDownloadDialogForTrackId: [],\n data: this.props.data,\n pagination: this.props.pagination,\n active_track_id: this.props.active_track_id,\n cart_items: this.props.cart_items,\n currentQuery: {\n genres: [],\n tags: [],\n moods: []\n },\n searchInProgress: false,\n animationFinished: true,\n trackFavorites: this.props.trackFavorites\n }\n }\n\n componentDidMount() {\n global.EventHub.on('playTrack', function (data) {\n this.setState({ active_track_id: data[0], activeTrackVariantId: '' })\n }.bind(this));\n\n global.EventHub.on('playTrackVariant', function (data) {\n this.setState({ active_track_id: data[1], activeTrackVariantId: data[0] })\n }.bind(this));\n\n\n global.EventHub.on('updateCart', function (data) {\n this.setState({ cart_items: data[0] });\n }.bind(this));\n\n global.EventHub.on('closePopupMenus', function () {\n this.setState({ showUsageLicenseSelectForTrackId: [], showFreeDownloadDialogForTrackId: [] })\n }.bind(this));\n\n global.EventHub.on('fireSearch', function () {\n $(\"html, body\").animate({ scrollTop: $('.track-listing').offset().top - 320 }, \"slow\");\n this.setState({ searchInProgress: true, animationFinished: false });\n }.bind(this));\n\n global.EventHub.on('fireSearchWithoutAnimation', function () {\n this.setState({ searchInProgress: false, animationFinished: true });\n }.bind(this));\n\n\n global.EventHub.on('searchSuccess', function () {\n setTimeout(function () {\n this.setState({ searchInProgress: false });\n }.bind(this), 200);\n setTimeout(function () {\n this.setState({ animationFinished: true });\n }.bind(this), 400);\n }.bind(this));\n\n global.EventHub.on('updateTrackFavorites', function (data) {\n this.setState({ trackFavorites: data[0] });\n }.bind(this));\n }\n\n handleCartClick(trackId) {\n let stateObject = {},\n indexOfTrackId = this.state.showUsageLicenseSelectForTrackId.indexOf(trackId);\n\n if (indexOfTrackId === -1) {\n stateObject = {};\n stateObject['showUsageLicenseSelectForTrackId'] = [];\n stateObject['showUsageLicenseSelectForTrackId'].push(trackId);\n } else {\n global.EventHub.trigger('closePopupMenus');\n }\n\n this.setState(stateObject);\n }\n\n handleFreeDownloadClick(trackId) {\n let stateObject = {},\n indexOfTrackId = this.state.showFreeDownloadDialogForTrackId.indexOf(trackId);\n\n if (indexOfTrackId === -1) {\n stateObject = {};\n stateObject['showFreeDownloadDialogForTrackId'] = [];\n stateObject['showFreeDownloadDialogForTrackId'].push(trackId);\n } else {\n global.EventHub.trigger('closePopupMenus');\n }\n\n this.setState(stateObject);\n }\n\n trackIsInCart(trackId, cartItems) {\n let i,\n cartItemsLength = cartItems && cartItems.length ? cartItems.length : 0;\n\n for (i = 0; i < cartItemsLength; i += 1) {\n if (cartItems[i].track_id === trackId) {\n return true;\n }\n }\n return false;\n }\n\n isUsageLicenseSelectVisible(trackId) {\n if (this.state.showUsageLicenseSelectForTrackId.indexOf(trackId) > -1) {\n return true;\n }\n\n return false;\n }\n\n isFreeDownloadDialogVisible(trackId) {\n if (this.state.showFreeDownloadDialogForTrackId.indexOf(trackId) > -1) {\n return true;\n }\n\n return false;\n }\n\n shouldRenderUsageLicenseTypeSelect(trackId) {\n let shouldRender = false;\n\n for (var i = 0; i < this.state.showUsageLicenseSelectForTrackId.length; i += 1) {\n if (this.state.showUsageLicenseSelectForTrackId[i] === trackId && typeof this.props.exposure_pack.id === 'undefined') {\n shouldRender = true;\n }\n }\n\n return shouldRender;\n }\n\n getContent() {\n return this.props.content.map(function (content, index) {\n return (\n 4 ? 'track-listing__content track-listing__content--long' : 'track-listing__content'} key={'track_listing_content_' + index}>\n
\n {content.title} \n \n \n
\n )\n }.bind(this))\n }\n\n getNameFor(itemName, id) {\n return this.props.itemNames[itemName][id];\n }\n\n isActiveItem(itemName, id) {\n return (this.state.currentQuery[itemName].indexOf(id) > -1);\n }\n\n getSelectedUsageLicenseTypeIdsForExposurePack() {\n let ids = [],\n that = this,\n exposurePackId = this.props.exposure_pack.id || that.props.data.exposure_pack.id,\n cart_items = this.state.cart_items || this.props.cart_items;\n\n cart_items.forEach(function (element) {\n if (element.exposure_pack_id === exposurePackId) {\n ids.push(element.usage_license_type_id);\n }\n });\n\n return ids;\n }\n\n handleFavoriteClick(trackId) {\n $.ajax({\n url: \"/track_favorite?track_id=\" + trackId,\n type: 'POST'\n }).done(function (data) {\n\n if (!(this.trackIsFavorited(trackId, this.state.trackFavorites))) {\n global.EventHub.trigger('trackFavorited', trackId);\n }\n\n global.EventHub.trigger('updateTrackFavorites', data)\n }.bind(this));\n }\n\n trackIsFavorited(trackId, favorites) {\n let i,\n favoritesLength = favorites && favorites.length ? favorites.length : 0;\n\n for (i = 0; i < favoritesLength; i += 1) {\n if (favorites[i].track_id === trackId) {\n return true;\n }\n }\n return false;\n }\n\n render() {\n\n var activeTrackId = this.state.active_track_id;\n var activeTrackVariantId = this.state.activeTrackVariantId;\n var content = [];\n var similarTrackHeading;\n var clientListing = [];\n var tracks = this.props.data.map(function (track, index) {\n var nextProps;\n var currentProps = {\n id: track.id,\n composerName: track.composer_name,\n composerUrl: track.composer_url,\n showcaseUrl: track.showcase_url,\n i18n: this.props.i18n,\n title: track.title,\n display_title: track.display_title,\n active: track.id === activeTrackId,\n activeTrackVariantId: activeTrackVariantId,\n key: \"track-\" + track.id,\n length: track.length,\n short_description: track.short_description,\n inCart: this.trackIsInCart(track.id, this.state.cart_items),\n free: track.free,\n hideItemIdList: this.props.hideItemIdList,\n genre_id_list: track.genre_id_list,\n tag_id_list: track.tag_id_list,\n mood_id_list: track.mood_id_list,\n isActiveItem: this.isActiveItem,\n discount: track.discount,\n copyrightYear: track.copyright_year,\n recently_activated: track.recently_activated,\n usageLicenseTypes: this.props.usageLicenseTypes.filter(function (usageLicenseType) { return usageLicenseType.for_fx === false }),\n subscribedUsageLicenseTypes: this.props.subscribedUsageLicenseTypes,\n pricing_path: this.props.pricing_path,\n cart_items: this.state.cart_items,\n trackFavorites: this.state.trackFavorites,\n favorited: this.trackIsFavorited(track.id, this.state.trackFavorites),\n handleFavoriteClick: this.handleFavoriteClick,\n showUsageLicenseSelect: this.isUsageLicenseSelectVisible(track.id),\n showFreeDownloadDialog: this.isFreeDownloadDialogVisible(track.id),\n handleCartClick: this.handleCartClick,\n handleFreeDownloadClick: this.handleFreeDownloadClick,\n show_download_button: this.props.show_download_button,\n exposure_pack: this.props.exposure_pack,\n score: track.score,\n getNameFor: this.getNameFor,\n freeMode: this.props.freeMode,\n slim: this.props.slim,\n track_variants: track.track_variants,\n track_image_markup: track.track_image,\n youtube_content_id_enabled: track.youtube_content_id_enabled,\n locale: this.props.locale\n }\n\n if (typeof this.props.data[index + 1] !== 'undefined') {\n var nextTrack = this.props.data[index + 1];\n var nextProps = {\n id: nextTrack.id,\n composerName: nextTrack.composer_name,\n composerUrl: nextTrack.composer_url,\n showcaseUrl: nextTrack.showcase_url,\n i18n: this.props.i18n,\n title: nextTrack.title,\n display_title: nextTrack.display_title,\n active: nextTrack.id === activeTrackId,\n activeTrackVariantId: activeTrackVariantId,\n key: \"track-\" + nextTrack.id,\n length: nextTrack.length,\n short_description: nextTrack.short_description,\n inCart: this.trackIsInCart(nextTrack.id, this.state.cart_items),\n free: nextTrack.free,\n hideItemIdList: this.props.hideItemIdList,\n genre_id_list: nextTrack.genre_id_list,\n tag_id_list: nextTrack.tag_id_list,\n mood_id_list: nextTrack.mood_id_list,\n isActiveItem: this.isActiveItem,\n discount: nextTrack.discount,\n copyrightYear: nextTrack.copyright_year,\n recently_activated: nextTrack.recently_activated,\n usageLicenseTypes: this.props.usageLicenseTypes.filter(function (usageLicenseType) { return usageLicenseType.for_fx === false }),\n subscribedUsageLicenseTypes: this.props.subscribedUsageLicenseTypes,\n pricing_path: this.props.pricing_path,\n cart_items: this.state.cart_items,\n trackFavorites: this.state.trackFavorites,\n favorited: this.trackIsFavorited(nextTrack.id, this.state.trackFavorites),\n handleFavoriteClick: this.handleFavoriteClick,\n showUsageLicenseSelect: this.isUsageLicenseSelectVisible(nextTrack.id),\n showFreeDownloadDialog: this.isFreeDownloadDialogVisible(nextTrack.id),\n handleCartClick: this.handleCartClick,\n handleFreeDownloadClick: this.handleFreeDownloadClick,\n show_download_button: this.props.show_download_button,\n exposure_pack: this.props.exposure_pack,\n score: nextTrack.score,\n getNameFor: this.getNameFor,\n freeMode: this.props.freeMode,\n slim: this.props.slim,\n track_variants: nextTrack.track_variants,\n handleVariantClick: this.handleVariantClick,\n track_image_markup: nextTrack.track_image,\n youtube_content_id_enabled: nextTrack.youtube_content_id_enabled,\n locale: this.props.locale\n }\n }\n\n if (typeof this.props.data[index - 1] !== 'undefined') {\n var prevTrack = this.props.data[index - 1];\n var prevProps = {\n id: prevTrack.id,\n composerName: prevTrack.composer_name,\n composerUrl: prevTrack.composer_url,\n showcaseUrl: prevTrack.showcase_url,\n i18n: this.props.i18n,\n title: prevTrack.title,\n display_title: prevTrack.display_title,\n active: prevTrack.id === activeTrackId,\n activeTrackVariantId: activeTrackVariantId,\n key: \"track-\" + prevTrack.id,\n length: prevTrack.length,\n short_description: prevTrack.short_description,\n inCart: this.trackIsInCart(prevTrack.id, this.state.cart_items),\n free: prevTrack.free,\n hideItemIdList: this.props.hideItemIdList,\n genre_id_list: prevTrack.genre_id_list,\n tag_id_list: prevTrack.tag_id_list,\n mood_id_list: prevTrack.mood_id_list,\n isActiveItem: this.isActiveItem,\n discount: prevTrack.discount,\n copyrightYear: prevTrack.copyright_year,\n recently_activated: prevTrack.recently_activated,\n usageLicenseTypes: this.props.usageLicenseTypes.filter(function (usageLicenseType) { return usageLicenseType.for_fx === false }),\n subscribedUsageLicenseTypes: this.props.subscribedUsageLicenseTypes,\n pricing_path: this.props.pricing_path,\n cart_items: this.state.cart_items,\n trackFavorites: this.state.trackFavorites,\n favorited: this.trackIsFavorited(prevTrack.id, this.state.trackFavorites),\n handleFavoriteClick: this.handleFavoriteClick,\n showUsageLicenseSelect: this.isUsageLicenseSelectVisible(prevTrack.id),\n showFreeDownloadDialog: this.isFreeDownloadDialogVisible(prevTrack.id),\n handleCartClick: this.handleCartClick,\n handleFreeDownloadClick: this.handleFreeDownloadClick,\n show_download_button: this.props.show_download_button,\n exposure_pack: this.props.exposure_pack,\n score: prevTrack.score,\n getNameFor: this.getNameFor,\n freeMode: this.props.freeMode,\n slim: this.props.slim,\n track_variants: prevTrack.track_variants,\n handleVariantClick: this.handleVariantClick,\n track_image_markup: prevTrack.track_image,\n youtube_content_id_enabled: prevTrack.youtube_content_id_enabled,\n locale: this.props.locale\n }\n }\n\n return (\n \n
\n {similarTrackHeading && index === 0 ? similarTrackHeading : ''}\n {content.length === 0 ? '' : (
{I18n.locale === 'de' ? 'Oft gestellte Fragen' : 'FAQ'}
{content}
)}\n {clientListing.length === 0 ? '' : (
{I18n.locale === 'de' ? 'Diese Marken vertrauen auf unsere Komponisten' : 'These brands rely on our composers'} {clientListing}
)}\n
\n );\n\n }.bind(this));\n\n var classes = classNames({\n 'static-track-listing': true,\n 'is-empty': this.props.data.length === 0\n });\n\n return (\n \n {tracks.length > 0 ? tracks : (this.props.data.length == 0 ? '' : I18n.t('no_songs_available'))}\n
\n )\n }\n};\n\nStaticTrackListing.defaultProps = {\n active_track_id: 0,\n composer_page_permalink: false,\n totalCount: 250,\n pricing_path: '',\n freeMode: false,\n slim: false,\n i18n: {\n next: 'Next',\n previous: 'Previous',\n free: 'free',\n recently_created: 'new'\n },\n pagination: {\n current_page: 1,\n next_page: '',\n prev_page: '',\n total_pages: 1,\n total_count: 10\n },\n usageLicenseTypes: [],\n subscribedUsageLicenseTypes: [],\n content: [],\n show_download_button: false,\n hideItemIdList: false,\n trackFavorites: [],\n locale: 'de'\n};\n\n// INIT\nlet elements = document.querySelectorAll('[data-react-component=StaticTrackListing]');\n\nelements.forEach(function (element) {\n let reactProps = JSON.parse(element.dataset.reactProps);\n\n ReactDOM.render(\n \n \n ,\n element\n );\n})\n\n\nexport default StaticTrackListing;\n\n","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n// import $ from 'jquery';\nimport ahoy from 'ahoy.js';\n\nimport UsageLicenseTypeSelect from '~/components/legacy/UsageLicenseTypeSelect.jsx';\n\nclass TrackFavorite extends Component {\n\n constructor(props) {\n super(props);\n \n this.handleClick = this.handleClick.bind(this);\n this.playTrack = this.playTrack.bind(this);\n this.handleCartClick = this.handleCartClick.bind(this);\n this.updateCart = this.updateCart.bind(this);\n\n this.state = {\n playing: false,\n showUsageLicenseSelect: false\n };\n }\n\n componentDidMount() {\n\n let that = this;\n\n global.EventHub.on('audioPlayerPlay', function(data) {\n if (data[0].id === that.props.id) {\n that.setState({\n playing : true\n });\n }\n });\n\n\n global.EventHub.on('audioPlayerStop', function() {\n if (that.state.playing) {\n that.setState({\n playing : false\n });\n }\n });\n\n global.EventHub.on('audioPlayerEnded', function() {\n if (that.state.playing) {\n that.setState({\n playing : false\n });\n }\n });\n }\n\n handleClick(e) {\n e.preventDefault();\n\n $.ajax({\n url: \"/track_favorite?track_id=\" + this.props.id,\n type: 'POST'\n }).done(function(data) {\n global.EventHub.trigger('updateTrackFavorites', data)\n }.bind(this))\n }\n\n playTrack(e) {\n e.preventDefault();\n global.EventHub.trigger('playTrack', this.props.id);\n global.EventHub.trigger('updateTrackInfo', this.props);\n this.setState({\n playing: !this.state.playing\n });\n }\n\n updateCart(usageLicenseTypeId, exposurePackId, forFx) {\n let itemId = this.props.id || this.state.data.id,\n i,\n updateUrl;\n\n if (exposurePackId) {\n updateUrl = \"/cart?exposure_pack_id=\" + exposurePackId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else if (forFx) {\n updateUrl = \"/cart?sound_effect_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else {\n updateUrl = \"/cart?track_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n }\n\n $.ajax({\n url: updateUrl,\n type: 'POST'\n }).done(function(data) {\n\n global.EventHub.trigger('updateCart', data)\n\n for (i = 0; i < data.length; i += 1) {\n if (data[i].track_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('track_add_cart', { props: {track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href}});\n }\n\n ahoy.track('track_add_cart', {track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false})\n } else if (data[i].sound_effect_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('sound_effect_add_cart', { props: {sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href}});\n }\n\n ahoy.track('sound_effect_add_cart', {sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false})\n }\n }\n\n if (typeof fbq === 'function') {\n fbq('track', 'AddToWishlist', {\n content_ids: itemId.toString(),\n content_type: 'product',\n });\n }\n\n }.bind(this));\n }\n\n handleCartClick(e) {\n e.preventDefault();\n this.props.handleCartClick(this.props.id);\n }\n\n getSelectedUsageLicenseTypeIds() {\n let ids = [],\n that = this,\n trackId = this.props.id || that.state.data.id,\n cart_items = this.state.cart_items || this.props.cart_items;\n\n cart_items.forEach(function(element) {\n if (element.track_id === trackId) {\n ids.push(element.usage_license_type_id);\n }\n });\n\n return ids;\n }\n\n render() {\n let cartLinkIcon,\n usageLicenseTypeSelect,\n cartLink,\n classes;\n\n usageLicenseTypeSelect = (\n \n );\n\n if (this.props.inCart) {\n if (this.props.show_download_button) {\n cartLinkIcon = ;\n } else {\n cartLinkIcon = ;\n }\n cartLink = {cartLinkIcon}{this.props.remove_from_cart} \n } else {\n if (this.props.show_download_button) {\n cartLinkIcon = ;\n } else {\n cartLinkIcon = ;\n }\n cartLink = {cartLinkIcon}{this.props.add_to_cart} \n }\n\n classes = classNames({\n 'track-favorites__item': true,\n 'track--active': this.props.active,\n 'track-favorites__item--license-select-open': this.props.showUsageLicenseSelect\n });\n\n return (\n \n
\n
\n \n \n \n \n
\n
\n {this.props.id} \n {this.props.title}\n
\n
\n
\n \n \n
\n {cartLink}\n
\n
\n {usageLicenseTypeSelect}\n
\n )\n }\n};\n\nTrackFavorite.defaultProps = {\n cart_items : []\n}\n\nexport default TrackFavorite;","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n// import $ from 'jquery';\nimport ahoy from 'ahoy.js';\n\nimport UsageLicenseTypeSelect from '~/components/legacy/UsageLicenseTypeSelect.jsx';\n\nclass SoundEffectFavorite extends Component {\n\n // mixins : [UsageLicenseTypeSelectMixin],\n\n constructor(props) {\n super(props);\n\n this.handleClick = this.handleClick.bind(this);\n this.playSoundEffect = this.playSoundEffect.bind(this);\n this.handleCartClick = this.handleCartClick.bind(this);\n this.updateCart = this.updateCart.bind(this);\n\n this.state = {\n playing: false,\n showUsageLicenseSelect: false\n };\n }\n\n componentDidMount() {\n global.EventHub.on('audioPlayerPlay', function (data) {\n if (data[0].id === this.props.id) {\n this.setState({\n playing: true\n });\n }\n }.bind(this));\n\n\n global.EventHub.on('audioPlayerStop', function () {\n if (this.state.playing) {\n this.setState({\n playing: false\n });\n }\n }.bind(this));\n\n global.EventHub.on('audioPlayerEnded', function () {\n if (this.state.playing) {\n this.setState({\n playing: false\n });\n }\n }.bind(this));\n }\n\n handleClick(e) {\n e.preventDefault();\n\n $.ajax({\n url: \"/sound_effect_favorite?sound_effect_id=\" + this.props.id,\n type: 'POST'\n }).done(function (data) {\n global.EventHub.trigger('updateSoundEffectFavorites', data)\n }.bind(this))\n }\n\n playSoundEffect(e) {\n e.preventDefault();\n global.EventHub.trigger('playSoundEffect', this.props.id);\n global.EventHub.trigger('updateTrackInfo', this.props);\n this.setState({\n playing: !this.state.playing\n });\n }\n\n updateCart(usageLicenseTypeId, exposurePackId, forFx) {\n var itemId = this.props.id || this.state.data.id,\n i,\n updateUrl;\n\n if (exposurePackId) {\n updateUrl = \"/cart?exposure_pack_id=\" + exposurePackId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else if (forFx) {\n updateUrl = \"/cart?sound_effect_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else {\n updateUrl = \"/cart?track_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n }\n\n $.ajax({\n url: updateUrl,\n type: 'POST'\n }).done(function (data) {\n\n global.EventHub.trigger('updateCart', data)\n\n for (i = 0; i < data.length; i += 1) {\n if (data[i].track_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('track_add_cart', { props: { track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href } });\n }\n\n ahoy.track('track_add_cart', { track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false })\n } else if (data[i].sound_effect_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('sound_effect_add_cart', { props: { sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href } });\n }\n\n ahoy.track('sound_effect_add_cart', { sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false })\n }\n }\n\n if (typeof fbq === 'function') {\n fbq('track', 'AddToWishlist', {\n content_ids: itemId.toString(),\n content_type: 'product',\n });\n }\n\n }.bind(this));\n }\n\n handleCartClick(e) {\n e.preventDefault();\n this.props.handleCartClick(this.props.id);\n }\n\n getSelectedUsageLicenseTypeIds() {\n var ids = [],\n that = this,\n trackId = this.props.id || that.state.data.id,\n cart_items = this.state.cart_items || this.props.cart_items;\n\n cart_items.forEach(function (element) {\n if (element.track_id === trackId) {\n ids.push(element.usage_license_type_id);\n }\n });\n\n return ids;\n }\n\n render() {\n let cartLinkIcon,\n usageLicenseTypeSelect,\n cartLink,\n classes;\n\n usageLicenseTypeSelect = (\n \n );\n\n if (this.props.inCart) {\n if (this.props.show_download_button) {\n cartLinkIcon = ;\n } else {\n cartLinkIcon = ;\n }\n cartLink = {cartLinkIcon}{this.props.remove_from_cart} \n } else {\n if (this.props.show_download_button) {\n cartLinkIcon = ;\n } else {\n cartLinkIcon = ;\n }\n cartLink = {cartLinkIcon}{this.props.add_to_cart} \n }\n\n classes = classNames({\n 'track-favorites__item': true,\n 'track--active': this.props.active,\n 'track-favorites__item--license-select-open': this.props.showUsageLicenseSelect\n });\n\n return (\n \n
\n
\n \n \n \n \n
\n
\n {this.props.id} \n {this.props.title}\n
\n
\n
\n \n \n
\n {cartLink}\n
\n
\n {usageLicenseTypeSelect}\n
\n )\n }\n};\n\nSoundEffectFavorite.defaultProps = {\n cart_items: []\n}\n\nexport default SoundEffectFavorite;\n\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames/bind';\nimport TrackFavorite from '~/components/legacy/TrackFavorite.jsx';\nimport SoundEffectFavorite from '~/components/legacy/SoundEffectFavorite.jsx';\n\nclass TrackFavorites extends Component {\n\n constructor(props) {\n super(props);\n\n this.trackFavoritesList = null;\n\n this.setTrackFavoritesList = element => {\n this.trackFavoritesList = element;\n };\n\n this.handleClick = this.handleClick.bind(this);\n this.handleCartClick = this.handleCartClick.bind(this);\n\n this.state = {\n opened: false,\n recentlyUpdated : false,\n data : this.props.data,\n trackFavoritesData : this.props.track_favorites_data,\n soundEffectFavoritesData : this.props.sound_effect_favorites_data,\n cart_items : this.props.cart_items,\n showUsageLicenseSelectForTrackId : []\n };\n }\n\n componentDidMount() {\n global.EventHub.on('updateTrackFavorites', function(data) {\n let that = this;\n\n this.setState({trackFavoritesData: data[0], 'recentlyUpdated': true});\n\n if (data[0].length === 0) {\n this.setState({'opened': false});\n }\n\n setTimeout(function() {\n this.setState({'recentlyUpdated': false});\n }.bind(this), 1000);\n }.bind(this));\n\n global.EventHub.on('updateSoundEffectFavorites', function(data) {\n let that = this;\n\n this.setState({soundEffectFavoritesData: data[0], 'recentlyUpdated': true});\n if (data[0].length === 0) {\n this.setState({'opened': false});\n }\n setTimeout(function() {\n this.setState({'recentlyUpdated': false});\n }.bind(this), 1000);\n }.bind(this));\n\n global.EventHub.on('updateCart', function(data) {\n let that = this;\n\n this.setState({cart_items: data[0]});\n\n if (data[0].length === 0) {\n this.setState({'opened': false});\n }\n }.bind(this));\n\n\n global.EventHub.on('menuCartOpened', function() {\n this.setState({'opened': false});\n }.bind(this));\n\n global.EventHub.on('closePopupMenus', function() {\n this.setState({'opened': false});\n this.setState({showUsageLicenseSelectForTrackId: []})\n }.bind(this));\n\n }\n\n handleClick() {\n if (!this.state.opened) {\n global.EventHub.trigger('menuFavoritesOpened');\n }\n\n this.setState({opened: !this.state.opened});\n }\n\n handleCartClick(trackId) {\n let stateObject = {},\n indexOfTrackId = this.state.showUsageLicenseSelectForTrackId.indexOf(trackId);\n\n if (indexOfTrackId === -1) {\n stateObject = {};\n stateObject['showUsageLicenseSelectForTrackId'] = [];\n stateObject['showUsageLicenseSelectForTrackId'].push(trackId);\n } else {\n stateObject = {};\n stateObject['showUsageLicenseSelectForTrackId'] = this.state.showUsageLicenseSelectForTrackId;\n stateObject['showUsageLicenseSelectForTrackId'].splice( stateObject['showUsageLicenseSelectForTrackId'].indexOf(trackId), 1 );\n }\n\n this.setState(stateObject);\n }\n\n isUsageLicenseSelectVisible(trackId) {\n if (this.state.showUsageLicenseSelectForTrackId.indexOf(trackId) > -1) {\n return true;\n }\n\n return false;\n }\n\n trackIsInCart(trackId, cartItems) {\n let i,\n cartItemsLength = cartItems && cartItems.length ? cartItems.length : 0;\n\n for (i = 0; i < cartItemsLength; i += 1) {\n if (cartItems[i].track_id === trackId) {\n return true;\n }\n }\n return false;\n }\n\n soundEffectIsInCart(sound_effect_id, cartItems) {\n let i,\n cartItemsLength = cartItems && cartItems.length ? cartItems.length : 0;\n\n for (i = 0; i < cartItemsLength; i += 1) {\n if (cartItems[i].sound_effect_id === sound_effect_id) {\n return true;\n }\n }\n return false;\n }\n\n render() {\n let trackFavorites = [],\n soundEffectFavorites = [],\n favorites = [],\n submitButton,\n classes;\n\n if (this.state.trackFavoritesData) {\n trackFavorites = this.state.trackFavoritesData.map(function (trackFavorite, index) {\n return (\n \n );\n }.bind(this));\n }\n\n if (this.state.soundEffectFavoritesData) {\n soundEffectFavorites = this.state.soundEffectFavoritesData.map(function (soundEffectFavorite, index) {\n return (\n \n );\n }.bind(this));\n }\n\n favorites = soundEffectFavorites.concat(trackFavorites)\n\n classes = classNames({\n 'track-favorites': true,\n 'is-open' : this.state.opened,\n 'is-closed' : !this.state.opened,\n 'is-empty' : favorites.length === 0,\n 'is-recently-updated' : this.state.recentlyUpdated\n });\n\n if (this.state.opened) {\n if (favorites.length > 0) {\n return (\n \n
\n
\n {favorites.length} \n
\n
\n \n \n
\n
\n
{this.props.i18n.heading} ({favorites.length})
\n {favorites}\n
\n
\n )\n } else {\n return (\n \n
\n
\n {favorites.length} \n
\n
\n \n \n
\n
\n )\n }\n } else {\n return (\n \n
0 ? this.handleClick : (function(){})}>\n
\n {favorites.length} \n
\n
\n 0 ? 'fa fa-heart' : 'fa fa-heart-o'}> \n \n
\n
{this.props.i18n.heading} ({favorites.length})
\n {favorites}\n
\n
\n
\n )\n }\n }\n};\n\nTrackFavorites.defaultProps = {\n data : [],\n i18n : {\n heading : 'Gemerkte Tracks'\n },\n usage_license_types : []\n}\n\n// INIT\n\nlet elements = document.querySelectorAll('[data-react-component=TrackFavorites]');\n\nelements.forEach(function(element) {\n let reactProps = JSON.parse(element.dataset.reactProps);\n\n ReactDOM.render(\n \n \n ,\n element\n );\n})\n\nexport default TrackFavorites;\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames/bind';\n// import $ from 'jquery';\nimport ahoy from 'ahoy.js';\nimport confetti from 'canvas-confetti';\n\nimport UsageLicenseTypeSelect from '~/components/legacy/UsageLicenseTypeSelect.jsx';\n\nclass TrackInfo extends Component {\n\n // mixins: [UsageLicenseTypeSelectMixin, TrackFavoriteMixin],\n\n constructor(props) {\n super(props);\n\n this.handleLayoutDownloadClick = this.handleLayoutDownloadClick.bind(this);\n this.handleCartLinkClick = this.handleCartLinkClick.bind(this);\n this.triggerDemoDownload = this.triggerDemoDownload.bind(this);\n this.delegateFavoriteClick = this.delegateFavoriteClick.bind(this);\n this.handleShareClick = this.handleShareClick.bind(this);\n this.handleCartClick = this.handleCartClick.bind(this);\n this.updateCart = this.updateCart.bind(this);\n\n this.state = {\n data: '',\n displayCopyHint: false,\n shareTrackingFired: false,\n layoutDownloadTrackingFired: false,\n isVariant: false,\n trackVariantId: undefined,\n variantTitle: '',\n showUsageLicenseSelect: false,\n trackFavorites: this.props.trackFavorites\n }\n }\n\n componentDidMount() {\n global.EventHub.on('updateTrackInfo', function (data) {\n this.setState({ data: data[0], isVariant: false, variantTitle: '', trackVariantId: undefined })\n }.bind(this));\n\n global.EventHub.on('updateTrackVariantInfo', function (data) {\n this.setState({ data: data[0], isVariant: true, variantTitle: data[1].title, trackVariantId: data[1].id })\n }.bind(this));\n\n global.EventHub.on('updateCart', function (data) {\n this.setState({ cart_items: data[0] });\n }.bind(this));\n\n global.EventHub.on('updateTrackFavorites', function (data) {\n this.setState({ trackFavorites: data[0] });\n }.bind(this));\n }\n\n handleLayoutDownloadClick(e) {\n this.triggerDemoDownload();\n\n if (typeof confetti !== 'undefined') {\n var rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 30,\n angle: 90,\n spread: 60,\n shapes: ['circle'],\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 20) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n\n handleCartLinkClick(e) {\n e.preventDefault();\n this.setState({ showUsageLicenseSelect: !this.state.showUsageLicenseSelect });\n }\n\n triggerDemoDownload() {\n var link = document.createElement(\"a\"),\n uri = '/c/tracks/' + this.state.data.id + '/download_layout',\n isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor),\n isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\n // If you don't know the name or want to use\n // the webserver default set name = ''\n\n if (typeof this.state.isVariant !== 'undefined') {\n uri = '/tracks/' + this.state.data.id + '/download_layout_variant/' + this.state.trackVariantId;\n }\n\n link.href = uri\n\n if ($('[data-logged-in]').length === 0) {\n // not logged in\n link.setAttribute('target', '_blank');\n } else {\n // logged in\n if (!isChrome && !isFirefox) {\n link.setAttribute('download', '');\n }\n }\n\n if (!this.state.layoutDownloadTrackingFired) {\n if (typeof plausible === 'function') {\n plausible(this.props.freeMode ? 'track_layout_download_free' : 'track_layout_download', { props: { track_id: this.state.data.id, location: window.location.href } });\n }\n\n ahoy.track(this.props.freeMode ? 'track_layout_download_free' : 'track_layout_download', { track_id: this.state.data.id, location: window.location.href, categorization_processed: false })\n this.setState({ layoutDownloadTrackingFired: true });\n }\n\n document.body.appendChild(link);\n\n link.click();\n link.remove();\n }\n\n\n delegateFavoriteClick(e) {\n e.preventDefault();\n\n this.handleFavoriteClick(this.state.data.id);\n\n if (!(this.trackIsFavorited(this.state.data.id, this.state.trackFavorites)) && typeof confetti !== 'undefined') {\n var rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 30,\n angle: 90,\n spread: 60,\n shapes: ['circle'],\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 20) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n\n handleShareClick(e) {\n e.preventDefault();\n\n if (this.state.displayCopyHint) {\n this.setState({ displayCopyHint: false });\n } else {\n if (!this.state.shareTrackingFired) {\n if (typeof plausible === 'function') {\n plausible('track_share', { props: { track_id: this.state.data.id, location: window.location.href } });\n }\n\n ahoy.track('track_share', { track_id: this.state.data.id, location: window.location.href, categorization_processed: false })\n }\n\n if (navigator.share) {\n // Web Share API is supported\n navigator.share({\n title: (this.state.data.display_title || this.state.data.title) + ' | ' + (this.props.locale === 'de' ? 'GEMAfreie Musik auf audiocrowd.net' : 'Royalty-free music on audiocrowd.net'),\n url: this.state.data.showcase_url + '?utm_source=share_link&utm_medium=referral'\n })\n this.setState({ shareTrackingFired: true });\n } else {\n // Fallback\n this.copyToClipboard(this.state.data.showcase_url + '?utm_source=share_link&utm_medium=referral');\n this.setState({ displayCopyHint: true, shareTrackingFired: true }, function () {\n setTimeout(function () {\n this.setState({ displayCopyHint: false })\n }.bind(this), 5000)\n });\n }\n\n if (typeof confetti !== 'undefined') {\n var rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 30,\n angle: 90,\n spread: 60,\n shapes: ['circle'],\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 20) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n }\n\n\n copyToClipboard(str) {\n var el = document.createElement('textarea');\n el.value = str;\n el.setAttribute('readonly', '');\n el.style.position = 'absolute';\n el.style.left = '-9999px';\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n }\n\n // handleClick: function(e) {\n // var that = this;\n // e.preventDefault();\n // $.ajax({\n // url: \"/cart?track_id=\" + this.state.data.id + (this.trackIsInCart(this.state.data.id, this.props.tracks_in_cart) ? '' : '&add=1'),\n // type: 'POST'\n // }).done(function(data) {\n // global.EventHub.trigger('updateCart', data)\n // }.bind(this));\n // },\n\n // trackIsInCart : function(trackId, tracks) {\n // var i,\n // tracksLength = tracks && tracks.length ? tracks.length : 0;\n\n // for (i = 0; i < tracksLength; i += 1) {\n // if (tracks[i].track_id === trackId) {\n // return true;\n // }\n // }\n // return false;\n // },\n\n getUsageLicenseSelect() {\n var usageLicenseTypes = [];\n\n if (this.state.data.sound_effect_id) {\n usageLicenseTypes = this.props.usageLicenseTypes.filter(function (usageLicenseType) { return usageLicenseType.for_fx === true });\n } else {\n usageLicenseTypes = this.props.usageLicenseTypes.filter(function (usageLicenseType) { return usageLicenseType.for_fx === false });\n }\n\n return (\n \n )\n }\n\n updateCart(usageLicenseTypeId, exposurePackId, forFx) {\n var itemId = this.props.id || this.state.data.id,\n i,\n updateUrl;\n\n if (exposurePackId) {\n updateUrl = \"/cart?exposure_pack_id=\" + exposurePackId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else if (forFx) {\n updateUrl = \"/cart?sound_effect_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else {\n updateUrl = \"/cart?track_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n }\n\n $.ajax({\n url: updateUrl,\n type: 'POST'\n }).done(function (data) {\n\n global.EventHub.trigger('updateCart', data)\n\n for (i = 0; i < data.length; i += 1) {\n if (data[i].track_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('track_add_cart', { props: { track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href } });\n }\n\n ahoy.track('track_add_cart', { track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false })\n } else if (data[i].sound_effect_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('sound_effect_add_cart', { props: { sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href } });\n }\n\n ahoy.track('sound_effect_add_cart', { sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false })\n }\n }\n\n if (typeof fbq === 'function') {\n fbq('track', 'AddToWishlist', {\n content_ids: itemId.toString(),\n content_type: 'product',\n });\n }\n\n }.bind(this));\n }\n\n handleCartClick(e) {\n e.preventDefault();\n this.props.handleCartClick(this.props.id);\n }\n\n getSelectedUsageLicenseTypeIds() {\n var ids = [],\n that = this,\n trackId = this.props.id || that.state.data.id,\n cart_items = this.state.cart_items || this.props.cart_items;\n\n cart_items.forEach(function (element) {\n if (element.track_id === trackId) {\n ids.push(element.usage_license_type_id);\n }\n });\n\n return ids;\n }\n\n handleFavoriteClick(trackId) {\n $.ajax({\n url: \"/track_favorite?track_id=\" + trackId,\n type: 'POST'\n }).done(function (data) {\n\n if (!(this.trackIsFavorited(trackId, this.state.trackFavorites))) {\n global.EventHub.trigger('trackFavorited', trackId);\n }\n\n global.EventHub.trigger('updateTrackFavorites', data)\n }.bind(this));\n }\n\n trackIsFavorited(trackId, favorites) {\n var i,\n favoritesLength = favorites && favorites.length ? favorites.length : 0;\n\n for (i = 0; i < favoritesLength; i += 1) {\n if (favorites[i].track_id === trackId) {\n return true;\n }\n }\n return false;\n }\n\n render() {\n var classes = classNames({\n 'track-info': true,\n 'track-info--hide-cart': this.props.hide_add_to_cart\n }),\n loop,\n variableTempo,\n cartLink,\n toCheckoutLink,\n instruments,\n genres,\n moods,\n tags,\n trackTitle,\n layoutDownloadLink,\n showcaseLink,\n favoriteLink,\n showCaseLink,\n copyHint,\n price,\n shareLink;\n\n // if (this.props.usageLicenseTypes.length > 0) {\n // price = ab {this.props.usageLicenseTypes[0].formatted_gross_price_eur} ;\n\n // if (this.state.data.discount) {\n // price = ab {this.props.usageLicenseTypes[0].formatted_discount_gross_price_eur} ;\n // }\n\n // if (this.state.data.free) {\n // price = {this.props.i18n.free} ;\n // }\n // }\n\n if (this.state.data) {\n if (this.state.data.instruments) {\n instruments = this.state.data.instruments.map(function (instrument, index) {\n return (\n {instrument} \n );\n });\n }\n\n if (this.state.data.moods) {\n moods = this.state.data.moods.map(function (mood, index) {\n return (\n {mood} \n );\n });\n }\n\n if (this.state.data.tags) {\n tags = this.state.data.tags.map(function (tag, index) {\n return (\n {tag} \n );\n });\n }\n\n if (this.state.data.genres) {\n genres = this.state.data.genres.map(function (genre, index) {\n return (\n {genre} \n );\n });\n }\n\n if (this.state.data.loop) {\n loop = Loop \n }\n\n if (this.state.displayCopyHint && !navigator.share) {\n copyHint = \n \n {this.props.locale === 'de' ? 'Die Track-URL wurde in die Zwischenablage kopiert.' : 'The track URL was copied to your clipboard.'} \n
;\n }\n\n\n if (this.state.data.variableTempo) {\n variableTempo = altering Tempo \n }\n\n trackTitle = {this.state.data.display_title || this.state.data.title}{this.state.isVariant && this.state.variantTitle.length > 0 ? (' (' + this.state.variantTitle + ')') : ''} ;\n\n if (this.props.show_meta && !this.props.hideActions) {\n cartLink = \n\n layoutDownloadLink = (\n \n
\n
{this.props.i18n.layout_download} \n
{this.props.locale === 'de' ? 'DEMO-Download: Wenn Sie die Musik erst ausprobieren möchten, können Sie eine Demo-Version herunterladen.' : 'Demo download: If you want to try the music first, you can download a demo version.'}
\n
\n );\n }\n\n if (!this.props.hideActions) {\n if (this.trackIsFavorited(this.state.data.id, this.state.trackFavorites)) {\n favoriteLink = {this.props.locale === 'de' ? 'gemerkt' : 'remembered'} ;\n } else {\n favoriteLink = {this.props.locale === 'de' ? 'merken' : 'remember'} ;\n }\n\n shareLink = (\n \n {copyHint}\n \n {this.props.locale === 'de' ? 'Teilen' : 'Share'} \n
\n );\n }\n\n\n return (\n \n \n \n {this.state.data.id}\n \n {trackTitle}\n \n {favoriteLink}\n {layoutDownloadLink}\n {cartLink}\n {shareLink}\n {this.getUsageLicenseSelect()}\n
\n );\n } else {\n return (
);\n }\n }\n}\n\nTrackInfo.defaultProps = {\n data: {\n tracks_in_cart: [],\n is_in_cart: false,\n instruments: [],\n moods: [],\n genres: [],\n tags: [],\n showcase_url: ''\n },\n i18n: {\n add_to_cart: 'add to cart',\n checkout_now: 'checkout now',\n layout_download: 'layout download'\n },\n checkout_path: 'c/checkouts/new',\n open_in_new_tab: 'open in new tab',\n show_meta: true,\n usageLicensePosition: 'overlay',\n freeMode: false,\n subscribedUsageLicenseTypes: [],\n hideActions: false,\n cart_items: [],\n trackFavorites: []\n}\n\n\n\n// INIT\n\nlet elements = document.querySelectorAll('[data-react-component=TrackInfo]');\n\nelements.forEach(function (element) {\n let reactProps = JSON.parse(element.dataset.reactProps);\n\n ReactDOM.render(\n \n \n ,\n element\n );\n})\n\nexport default TrackInfo;\n","import React, { Component } from 'react';\n\nclass TrackBarebone extends Component {\n\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n \n )\n }\n};\n\nexport default TrackBarebone;","import React, { Component } from 'react';\nimport classNames from 'classnames/bind';\n// // import $ from 'jquery';\nimport confetti from 'canvas-confetti';\nimport ahoy from 'ahoy.js';\n\nimport UsageLicenseTypeSelect from '~/components/legacy/UsageLicenseTypeSelect.jsx';\n\nclass Track extends Component {\n\n // mixins : [UsageLicenseTypeSelectMixin],\n\n constructor(props) {\n super(props)\n\n this.handleClick = this.handleClick.bind(this);\n this.handleLayoutDownloadClick = this.handleLayoutDownloadClick.bind(this);\n this.handleShareClick = this.handleShareClick.bind(this);\n this.handlefreeDownloadBuyInShopClick = this.handlefreeDownloadBuyInShopClick.bind(this);\n this.handlefreeDownloadAgreeClick = this.handlefreeDownloadAgreeClick.bind(this);\n this.handleNextClick = this.handleNextClick.bind(this);\n this.handlePrevClick = this.handlePrevClick.bind(this);\n this.handleFavoriteClick = this.handleFavoriteClick.bind(this);\n this.handleFreeDownloadClick = this.handleFreeDownloadClick.bind(this);\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleVariantClick = this.handleVariantClick.bind(this);\n this.handleCartClick = this.handleCartClick.bind(this);\n this.updateCart = this.updateCart.bind(this);\n\n this.state = {\n playing : false,\n isHovered : false,\n showUsageLicenseSelect: false\n }\n }\n\n componentDidMount() {\n let that = this;\n\n global.EventHub.on('updateTrackInfo', function(data) {\n if (data[0].id !== that.props.id) {\n that.setState({\n playing : false\n });\n }\n });\n\n global.EventHub.on('updateTrackVariantInfo', function(data) {\n if (data[0].id !== that.props.id) {\n that.setState({\n playing : false\n });\n }\n });\n\n\n global.EventHub.on('audioPlayerPlay', function(data) {\n if (data[0].id === that.props.id) {\n that.setState({\n playing : true\n });\n }\n });\n\n\n global.EventHub.on('audioPlayerStop', function() {\n if (that.state.playing) {\n that.setState({\n playing : false\n });\n }\n });\n\n global.EventHub.on('audioPlayerEnded', function() {\n if (that.state.playing) {\n that.setState({\n playing : false\n });\n }\n });\n }\n\n handleClick(e) {\n e.preventDefault();\n global.EventHub.trigger('playTrack', this.props.id);\n global.EventHub.trigger('updateTrackInfo', this.props);\n\n this.setState({\n playing: !this.state.playing\n });\n }\n\n handleLayoutDownloadClick(e) {\n this.triggerDemoDownload();\n\n if (typeof confetti !== 'undefined') {\n let rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 20,\n angle: 90,\n spread: 60,\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 30) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n\n handleShareClick(e) {\n e.preventDefault();\n\n if (this.state.displayCopyHint) {\n this.setState({displayCopyHint: false});\n } else {\n if (!this.state.shareTrackingFired) {\n if (typeof plausible === 'function') {\n plausible('track_share', { props: {track_id: this.props.id, location: window.location.href}});\n }\n\n ahoy.track('track_share', {track_id: this.props.id, location: window.location.href, categorization_processed: false});\n }\n\n if (navigator.share) {\n // Web Share API is supported\n navigator.share({\n title: (this.props.display_title || this.props.title) + ' | ' + (this.props.locale === 'de' ? 'GEMAfreie Musik auf audiocrowd.net' : 'Royalty-free music on audiocrowd.net'),\n url: this.props.showcaseUrl + '?utm_source=share_link_teaser&utm_medium=referral'\n })\n this.setState({shareTrackingFired: true});\n } else {\n // Fallback\n this.copyToClipboard(this.props.showcaseUrl + '?utm_source=share_link_teaser&utm_medium=referral');\n this.setState({displayCopyHint: true, shareTrackingFired: true}, function() {\n setTimeout(function() {\n this.setState({displayCopyHint: false})\n }.bind(this), 5000)\n });\n }\n\n if ( typeof confetti !== 'undefined') {\n let rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 30,\n angle: 90,\n spread: 60,\n shapes: ['circle'],\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 20) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n }\n\n copyToClipboard(str) {\n let el = document.createElement('textarea');\n el.value = str;\n el.setAttribute('readonly', '');\n el.style.position = 'absolute';\n el.style.left = '-9999px';\n document.body.appendChild(el);\n el.select();\n document.execCommand('copy');\n document.body.removeChild(el);\n }\n\n triggerDemoDownload() {\n let link = document.createElement(\"a\"),\n uri = '/c/tracks/' + this.props.id + '/download_layout',\n isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor),\n isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') > -1;\n\n // If you don't know the name or want to use\n // the webserver default set name = ''\n\n link.href = uri\n\n if ($('[data-logged-in]').length === 0) {\n // not logged in\n link.setAttribute('target', '_blank');\n } else {\n // logged in\n if (!isChrome && !isFirefox) {\n link.setAttribute('download', '');\n }\n }\n\n if (typeof plausible === 'function') {\n plausible('track_layout_download', { props: {track_id: this.props.id, location: window.location.href}});\n }\n\n ahoy.track('track_layout_download', {track_id: this.props.id, location: window.location.href, categorization_processed: false})\n\n document.body.appendChild(link);\n link.click();\n link.remove();\n }\n\n handlefreeDownloadBuyInShopClick(e) {\n e.preventDefault();\n let win = window.open(this.props.showcaseUrl, '_blank');\n // let win = window.open((this.props.locale === 'de' ? ('http://localhost:3000/tracks/' + this.props.id + '/free_download') : ('http://localhost:3000/tracks/' + this.props.id + '/free_download')), '_blank');\n win.focus();\n\n console.log('handle buy in shop click');\n }\n\n handlefreeDownloadAgreeClick(e) {\n e.preventDefault();\n\n if (typeof plausible === 'function') {\n plausible('track_download_free', { props: {track_id: this.props.id, location: window.location.href}});\n }\n\n ahoy.track('track_download_free', {track_id: this.props.id, location: window.location.href, categorization_processed: false})\n\n let win = window.open((this.props.locale === 'de' ? ('/tracks/' + this.props.id + '/free_download') : ('/tracks/' + this.props.id + '/free_download')), '_blank');\n // let win = window.open((this.props.locale === 'de' ? ('http://localhost:3000/tracks/' + this.props.id + '/free_download') : ('http://localhost:3000/tracks/' + this.props.id + '/free_download')), '_blank');\n win.focus();\n }\n\n handlefreeDownloadRejectClick(e) {\n e.preventDefault();\n console.log('handle reject click');\n }\n\n handleNextClick(e) {\n e.preventDefault();\n global.EventHub.trigger('playTrack', this.props.next_track.id);\n global.EventHub.trigger('updateTrackInfo', this.props.next_track);\n this.setState({\n playing: !this.state.playing\n });\n }\n\n handlePrevClick(e) {\n e.preventDefault();\n global.EventHub.trigger('playTrack', this.props.prev_track.id);\n global.EventHub.trigger('updateTrackInfo', this.props.prev_track);\n this.setState({\n playing: !this.state.playing\n });\n }\n\n handleFavoriteClick(e) {\n e.preventDefault();\n\n this.props.handleFavoriteClick(this.props.id);\n\n if (!this.props.favorited && typeof confetti !== 'undefined') {\n let rect = e.target.getBoundingClientRect();\n console.log(rect.top, rect.right, rect.bottom, rect.left);\n\n confetti({\n particleCount: 200,\n startVelocity: 30,\n angle: 90,\n spread: 60,\n shapes: ['circle'],\n origin: {\n x: (rect.left + 10) / window.innerWidth,\n // since they fall down, start a bit higher than random\n y: (rect.top + 20) / window.innerHeight\n },\n colors: ['#e97900', '#d77812', '#ffd6aa', '#43ce00', '#63de00', '#a4d08f', '#52489C', '#635b9a', '#baafff']\n });\n }\n }\n\n handleFreeDownloadClick(e) {\n e.preventDefault();\n this.props.handleFreeDownloadClick(this.props.id);\n }\n\n handleFreeDownloadDialogClick(e) {\n e.preventDefault();\n }\n\n handlefreeDownloadRejectClick(e) {\n e.preventDefault();\n global.EventHub.trigger('closePopupMenus');\n }\n\n\n handleTagClick(tagId, e) {\n e.preventDefault();\n global.EventHub.trigger('trackTagClick', tagId);\n }\n\n handleGenreClick(genreId, e) {\n e.preventDefault();\n global.EventHub.trigger('trackGenreClick', genreId);\n }\n\n handleMoodClick(moodId, e) {\n e.preventDefault();\n global.EventHub.trigger('trackMoodClick', moodId);\n }\n\n handleMouseEnter(e) {\n e.preventDefault();\n this.setState({\n isHovered: true\n });\n }\n\n handleMouseLeave(e) {\n e.preventDefault();\n this.setState({\n isHovered: false\n });\n }\n\n handleVariantClick(variantId, trackId, variantTitle, e) {\n e.preventDefault();\n global.EventHub.trigger('playTrackVariant', variantId, trackId);\n this.setState({\n playing: false\n });\n }\n\n truncate(text, count){\n return (text.length > count) ? text.substr(0, count-1) + '...' : text;\n }\n\n updateCart(usageLicenseTypeId, exposurePackId, forFx) {\n let itemId = this.props.id || this.state.data.id,\n i,\n updateUrl;\n\n if (exposurePackId) {\n updateUrl = \"/cart?exposure_pack_id=\" + exposurePackId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else if (forFx) {\n updateUrl = \"/cart?sound_effect_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n } else {\n updateUrl = \"/cart?track_id=\" + itemId + \"&usage_license_type_id=\" + usageLicenseTypeId;\n }\n\n $.ajax({\n url: updateUrl,\n type: 'POST'\n }).done(function(data) {\n\n global.EventHub.trigger('updateCart', data)\n\n for (i = 0; i < data.length; i += 1) {\n if (data[i].track_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('track_add_cart', { props: {track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href}});\n }\n\n ahoy.track('track_add_cart', {track_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false})\n } else if (data[i].sound_effect_id === itemId) {\n if (typeof plausible === 'function') {\n plausible('sound_effect_add_cart', { props: {sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href}});\n }\n\n ahoy.track('sound_effect_add_cart', {sound_effect_id: itemId, usage_license_type_id: usageLicenseTypeId, location: window.location.href, categorization_processed: false})\n }\n }\n\n if (typeof fbq === 'function') {\n fbq('track', 'AddToWishlist', {\n content_ids: itemId.toString(),\n content_type: 'product',\n });\n }\n\n }.bind(this));\n }\n\n handleCartClick(e) {\n e.preventDefault();\n this.props.handleCartClick(this.props.id);\n }\n\n getSelectedUsageLicenseTypeIds() {\n let ids = [],\n that = this,\n trackId = this.props.id || that.state.data.id,\n cart_items = this.props.cart_items;\n\n cart_items.forEach(function(element) {\n if (element.track_id === trackId) {\n ids.push(element.usage_license_type_id);\n }\n });\n\n return ids;\n }\n\n render() {\n let classes = classNames({\n 'track': true,\n 'track--active': this.props.active,\n 'track--slim': this.props.slim,\n 'track--free': this.props.free,\n 'track--purchased': this.props.purchased,\n 'track--new': this.props.recently_activated,\n 'track--favorited': this.props.favorited,\n 'track--license-select-open': this.props.showUsageLicenseSelect,\n 'track--search-in-progress': this.props.search_in_progress,\n 'track--playing': this.state.playing && !(parseInt(this.props.activeTrackVariantId, 10) > 0),\n 'track--variant-playing': this.state.playing && (parseInt(this.props.activeTrackVariantId, 10) > 0),\n 'track--within-exposure-pack': typeof this.props.exposure_pack !== 'undefined' && this.props.exposure_pack.id\n }),\n cartLink,\n favoriteLink,\n recentlyCreatedLabel,\n purchasedLabel,\n cartLinkIcon,\n usageLicenseTypeSelect,\n trackLabels,\n nextButton,\n prevButton,\n composerInfo,\n proListElement,\n trackDetailsLink,\n genreItems = [],\n tagItems = [],\n moodItems = [],\n bundleItems = [];\n\n let layoutDownloadLink,\n shareLink,\n freeDownloadDialog,\n copyHint;\n\n if (this.state.displayCopyHint && !navigator.share) {\n copyHint = \n
\n \n {this.props.locale === 'de' ? 'Die Track-URL wurde in die Zwischenablage kopiert.' : 'The track URL was copied to your clipboard.'} \n
\n
;\n }\n\n\n if (this.props.showFreeDownloadDialog) {\n freeDownloadDialog = (\n \n
\n
\n
\n
\n
#{this.props.id} - {this.props.display_title || this.props.title} - Free Download starten
\n
\n
\n\n
\n
\n
Bitte verlinken und nennen Sie audiocrowd!
\n
\n\n {this.props.locale === 'de' ? 'Nennen Sie audiocrowd mit Internetadresse https://de.audiocrowd.net in Ihrem Video-Abspann oder Outro!' : 'Name audiocrowd with internet address https://en.audiocrowd.net in your video credits or outro!'} \n \n {this.props.locale === 'de' ? 'Bitte denken Sie daran, audiocrowd mit einem Link als Quelle anzugeben!' : 'Please remember to mention audiocrowd with a link as source!'}\n \n {this.props.locale === 'de' ? 'Ist eine Verlinkung nicht möglich, ist der Einsatz der kostenlosen Musik nicht gestattet.' : 'If a link is not possible, the use of free music is not permitted.'} \n \n
\n
\n
Beispiel HTML-Code: \n
\n
\n
\n
Lieber ohne Verlinkung nutzen?
\n
\n {this.props.locale === 'de' ? 'Möchten Sie keinen Link setzen? Dann können Sie den Musiktitel einfach im Shop lizenzieren.' : \"You don't want to set a link? Then you can simply license the music title in the shop.\"}\n
\n
\n
\n
\n
\n
\n )\n }\n\n if (!this.props.exposurePackMode) {\n trackDetailsLink = (\n \n \n {this.props.locale === 'de' ? 'Track-Details' : 'track details'} \n \n \n );\n }\n\n if (!this.props.exposurePackMode) {\n if (!this.props.freeMode) {\n layoutDownloadLink = \n \n
\n
Demo \n {/*
{this.props.locale === 'de' ? 'DEMO-Download: Wenn Sie die Musik erst ausprobieren möchten, können Sie eine Demo-Version herunterladen. Der Download erfordert ein Kunden-Konto, das Sie nach einem Klick einfach und schnell anlegen können.' : 'Demo download: If you want to try the music first, you can download a demo version. The download requires a customer account, which you can create easily after one click.'}
*/}\n
\n \n {/* {this.props.layout_download} */}\n ;\n } else {\n layoutDownloadLink = \n \n \n Download \n {/* {this.props.layout_download} */}\n ;\n }\n }\n\n if (!this.props.exposurePackMode) {\n shareLink = (\n \n \n
\n
{this.props.locale === 'de' ? 'Teilen' : 'share'} \n {/*
{this.props.locale === 'de' ? 'DEMO-Download: Wenn Sie die Musik erst ausprobieren möchten, können Sie eine Demo-Version herunterladen. Der Download erfordert ein Kunden-Konto, das Sie nach einem Klick einfach und schnell anlegen können.' : 'Demo download: If you want to try the music first, you can download a demo version. The download requires a customer account, which you can create easily after one click.'}
*/}\n
\n\n {/* {this.props.layout_download} */}\n );\n }\n\n let formatLength = function(length) {\n let minutes = Math.floor(length / 60);\n let seconds = length % 60;\n\n if (minutes < 10) {\n minutes = \"0\" + minutes;\n }\n\n if (seconds < 10) {\n seconds = \"0\" + seconds;\n }\n\n return minutes + ':' + seconds;\n };\n\n let trackVariants = this.props.track_variants.map(function(variant) {\n return ({variant.title} )\n }.bind(this));\n\n let trackVariantInfo;\n\n if (this.props.track_variants.length > 0) {\n trackVariantInfo = {this.props.locale === 'de' ? (' Enthält ' + this.props.track_variants.length + ' zusätzliche ' + (this.props.track_variants.length === 1 ? 'Variante.' : 'Varianten.')) : (' Including ' + this.props.track_variants.length + ' additional ' + (this.props.track_variants.length === 1 ? 'variant.' : 'variants.'))} ;\n }\n\n if (this.props.royaltyFree === null || this.props.royaltyFree === true) {\n proListElement = (\n \n {(this.props.locale === 'de' ? 'GEMAfrei' : 'Royalty free')} \n \n );\n } else {\n proListElement = (\n \n {(this.props.locale === 'de' ? 'Verwertungsgesellschaft: ' : 'P.R.O.: ')} {this.props.pro_short_name} \n \n )\n }\n\n if (this.props.prev_track) {\n prevButton = ;\n } else {\n prevButton = ;\n }\n\n if (this.props.next_track) {\n nextButton = ;\n } else {\n nextButton = ;\n }\n\n if (!this.props.exposurePackMode) {\n if (this.props.favorited) {\n favoriteLink = {this.props.locale === 'de' ? 'gemerkt' : 'remembered'}
;\n } else {\n favoriteLink = {this.props.locale === 'de' ? 'merken' : 'remember'}
;\n }\n }\n\n if (this.props.recently_activated || this.props.purchased) {\n if (this.props.recently_activated) {\n recentlyCreatedLabel = {this.props.i18n.recently_created} \n }\n if (this.props.purchased) {\n purchasedLabel = {this.props.purchaseCount} {I18n.locale === 'de' ? 'x heruntergeladen' : 'x downloaded'} \n }\n trackLabels = {recentlyCreatedLabel} {purchasedLabel} ;\n }\n\n if (this.props.composerName && !this.props.exposurePackMode) {\n composerInfo = by {this.props.composerName} ;\n } else {\n composerInfo = '';\n }\n\n\n if (!this.props.hideItemIdList) {\n genreItems = this.props.genre_id_list.map((genreId) =>\n {this.props.getNameFor('genres', genreId)} \n );\n tagItems = this.props.tag_id_list.map((tagId) =>\n {this.props.getNameFor('tags', tagId)} \n );\n moodItems = this.props.mood_id_list.map((moodId) =>\n {this.props.getNameFor('moods', moodId)} \n );\n }\n\n bundleItems = this.props.included_media_bundles.map((mediaBundle) =>\n Bundle: {mediaBundle.title} \n );\n\n if (!this.props.freeMode) {\n if (this.props.inCart) {\n if (this.props.show_download_button) {\n cartLinkIcon = ;\n } else {\n cartLinkIcon = ;\n }\n cartLink = {cartLinkIcon}{this.props.remove_from_cart} \n } else {\n if (this.props.show_download_button) {\n cartLinkIcon = ;\n } else {\n cartLinkIcon = ;\n }\n cartLink = {cartLinkIcon}{this.props.add_to_cart} \n }\n }\n\n if (this.props.showUsageLicenseSelect && !this.props.freeMode) {\n usageLicenseTypeSelect = (\n \n );\n }\n\n\n return (\n \n
audiocrowd GmbH \n
audiocrowd GmbH \n
audiocrowd GmbH \n
\n
\n {prevButton}\n
\n
0)) ? 'fa fa-pause' : 'fa fa-play' } />\n
\n \n {nextButton}\n
\n \n {this.props.exposurePackMode ? (this.props.id) : (this.props.id)} \n {this.props.exposurePackMode ? (this.props.publicPerformanceTitle || this.props.display_title || this.props.title) : (this.props.display_title || this.props.title)} \n {trackLabels} \n {/* \n {this.props.score} */}\n \n {composerInfo}\n
\n
\n {formatLength(this.props.length)}\n
\n\n {favoriteLink}\n {shareLink}\n {copyHint}\n {layoutDownloadLink}\n {freeDownloadDialog}\n\n
\n {cartLink}\n
\n {usageLicenseTypeSelect}\n
\n
\n
{this.props.short_description}{trackVariantInfo}
\n
\n
\n
\n
\n )\n }\n};\n\nTrack.defaultProps = {\n cart_items : [],\n hideAddToCart: false,\n locale: 'de'\n} \n\nexport default Track;\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames/bind';\n\nimport Pagination from '~/components/legacy/Pagination.jsx';\nimport TrackBarebone from '~/components/legacy/TrackBarebone.jsx';\nimport Track from '~/components/legacy/Track.jsx';\nimport UsageLicenseTypeSelectSidebar from '~/components/legacy/UsageLicenseTypeSelectSidebar.jsx';\n// import $ from 'jquery';\n\nclass TrackListing extends Component {\n\n constructor(props) {\n super(props);\n\n this.trackListing = null;\n\n this.setTrackListing = element => {\n this.trackListing = element;\n };\n\n this.handleFavoriteClick = this.handleFavoriteClick.bind(this);\n this.handleCartClick = this.handleCartClick.bind(this);\n this.handleFreeDownloadClick = this.handleFreeDownloadClick.bind(this);\n\n this.state = {\n showUsageLicenseSelectForTrackId : [],\n showFreeDownloadDialogForTrackId : [],\n data : this.props.data,\n pagination : this.props.pagination,\n active_track_id : this.props.active_track_id,\n cart_items: this.props.cart_items,\n currentQuery : {\n genres : [],\n tags : [],\n moods : [],\n includePro: 2\n },\n trackFavorites : this.props.trackFavorites,\n\n searchInProgress : false,\n animationFinished : true\n };\n }\n\n componentDidMount() {\n setTimeout(function() {\n global.EventHub.trigger('requestUpdateTrackListing');\n }, 10)\n\n global.EventHub.on('updateTrackListing', function(data) {\n this.setState({data: data[0].tracks, pagination: data[0].pagination});\n }.bind(this));\n\n global.EventHub.on('initialUpdateTrackListing', function(data) {\n this.setState({data: data[0].tracks, pagination: data[0].pagination});\n global.EventHub.trigger('playerInitTrack', data[0].tracks[0].id);\n }.bind(this));\n\n\n global.EventHub.on('paginationClick', function(data) {\n this.scrollToListStart();\n }.bind(this));\n\n global.EventHub.on('playTrack', function(data) {\n this.setState({active_track_id : data[0], activeTrackVariantId: ''})\n }.bind(this));\n\n global.EventHub.on('playTrackVariant', function(data) {\n this.setState({active_track_id : data[1], activeTrackVariantId: data[0]})\n }.bind(this));\n\n global.EventHub.on('updateCart', function(data) {\n this.setState({cart_items: data[0]});\n }.bind(this));\n\n global.EventHub.on('closePopupMenus', function() {\n this.setState({showUsageLicenseSelectForTrackId: [], showFreeDownloadDialogForTrackId: []})\n }.bind(this));\n\n global.EventHub.on('updateItemIdList', function(payload) {\n this.setState({currentQuery : payload[0] });\n }.bind(this));\n\n global.EventHub.on('fireSearch', function() {\n // $(\"html, body\").animate({ scrollTop: $('.track-listing').offset().top - 320 }, \"slow\");\n this.setState({searchInProgress: true, animationFinished: false});\n }.bind(this));\n\n global.EventHub.on('fireSearchWithoutAnimation', function() {\n this.setState({searchInProgress: false, animationFinished: true});\n }.bind(this));\n\n global.EventHub.on('searchSuccess', function() {\n setTimeout(function() {\n this.setState({searchInProgress: false});\n }.bind(this), 200);\n setTimeout(function() {\n this.setState({animationFinished: true});\n }.bind(this), 400);\n }.bind(this));\n\n global.EventHub.on('updateTrackFavorites', function(data) {\n this.setState({trackFavorites: data[0]});\n }.bind(this));\n }\n\n handleFavoriteClick(trackId) {\n $.ajax({\n url: \"/track_favorite?track_id=\" + trackId,\n type: 'POST'\n }).done(function(data) {\n\n if (!(this.trackIsFavorited(trackId, this.state.trackFavorites))) {\n global.EventHub.trigger('trackFavorited', trackId);\n }\n\n global.EventHub.trigger('updateTrackFavorites', data)\n }.bind(this));\n }\n\n trackIsFavorited(trackId, favorites) {\n let i,\n favoritesLength = favorites && favorites.length ? favorites.length : 0;\n\n for (i = 0; i < favoritesLength; i += 1) {\n if (favorites[i].track_id === trackId) {\n return true;\n }\n }\n return false;\n }\n\n trackIsPurchased(trackId) {\n return !!this.props.purchasedTrackIds[trackId];\n }\n\n trackPurchaseCount(trackId) {\n if (this.trackIsPurchased(trackId)) {\n return this.props.purchasedTrackIds[trackId];\n } else {\n return 0;\n }\n }\n\n\n handleCartClick(trackId) {\n let stateObject = {},\n indexOfTrackId = this.state.showUsageLicenseSelectForTrackId.indexOf(trackId);\n\n if (indexOfTrackId === -1) {\n stateObject = {};\n stateObject['showUsageLicenseSelectForTrackId'] = [];\n stateObject['showUsageLicenseSelectForTrackId'].push(trackId);\n } else {\n global.EventHub.trigger('closePopupMenus');\n }\n\n this.setState(stateObject);\n }\n\n handleFreeDownloadClick(trackId) {\n let stateObject = {},\n indexOfTrackId = this.state.showFreeDownloadDialogForTrackId.indexOf(trackId);\n\n if (indexOfTrackId === -1) {\n stateObject = {};\n stateObject['showFreeDownloadDialogForTrackId'] = [];\n stateObject['showFreeDownloadDialogForTrackId'].push(trackId);\n } else {\n global.EventHub.trigger('closePopupMenus');\n }\n\n this.setState(stateObject);\n }\n\n scrollToListStart() {\n $('html, body').animate({\n scrollTop: $('.track-listing').offset().top - 260\n }, 400);\n }\n\n trackIsInCart(trackId, cartItems) {\n let i,\n cartItemsLength = cartItems && cartItems.length ? cartItems.length : 0;\n\n for (i = 0; i < cartItemsLength; i += 1) {\n if (cartItems[i].track_id === trackId) {\n return true;\n }\n }\n return false;\n }\n\n isUsageLicenseSelectVisible(trackId) {\n if (this.state.showUsageLicenseSelectForTrackId.indexOf(trackId) > -1) {\n return true;\n }\n\n return false;\n }\n\n isFreeDownloadDialogVisible(trackId) {\n if (this.state.showFreeDownloadDialogForTrackId.indexOf(trackId) > -1) {\n return true;\n }\n\n return false;\n }\n\n shouldRenderUsageLicenseTypeSelect(trackId) {\n let shouldRender = false;\n\n for (let i = 0; i < this.state.showUsageLicenseSelectForTrackId.length; i += 1) {\n if (this.state.showUsageLicenseSelectForTrackId[i] === trackId && typeof this.props.exposure_pack.id === 'undefined') {\n shouldRender = true;\n }\n }\n\n return shouldRender;\n }\n\n getContent() {\n return this.props.content.map(function(content, index) {\n return (\n 4 ? 'track-listing__content track-listing__content--long' : 'track-listing__content'} key={'track_listing_content_' + index}>\n
\n {content.title} \n \n \n
\n )\n }.bind(this))\n }\n\n getNameFor(itemName, id) {\n return this.props.itemNames[itemName][id];\n }\n\n isActiveItem(itemName, id) {\n return (this.state.currentQuery[itemName].indexOf(id) > -1);\n }\n\n getSelectedUsageLicenseTypeIdsForExposurePack() {\n let ids = [],\n that = this,\n exposurePackId = this.props.exposure_pack.id || that.state.data.exposure_pack.id,\n cart_items = this.state.cart_items || this.props.cart_items;\n\n cart_items.forEach(function(element) {\n if (element.exposure_pack_id === exposurePackId) {\n ids.push(element.usage_license_type_id);\n }\n });\n\n return ids;\n }\n\n\n render() {\n let activeTrackId = this.state.active_track_id;\n let activeTrackVariantId = this.state.activeTrackVariantId;\n let content = [];\n let similarTrackHeading;\n let clientListing = [];\n let prevProps;\n let nextProps;\n let currentProps;\n\n let tracks = this.state.data.map(function (track, index) {\n currentProps = {\n id : track.id,\n composerName: track.composer_name,\n composerUrl: track.composer_url,\n showcaseUrl: track.showcase_url,\n i18n : this.props.i18n,\n title : track.title,\n display_title : track.display_title,\n publicPerformanceTitle : track.public_performance_title,\n active : track.id === activeTrackId,\n activeTrackVariantId : activeTrackVariantId,\n key : \"track-\" + track.id,\n length : track.length,\n short_description : track.short_description,\n inCart : this.trackIsInCart(track.id, this.state.cart_items),\n free : track.free,\n hideItemIdList: this.props.hideItemIdList,\n hideAddToCart: this.props.hideAddToCart,\n genre_id_list : track.genre_id_list,\n tag_id_list : track.tag_id_list,\n mood_id_list : track.mood_id_list,\n isActiveItem : this.isActiveItem,\n discount : track.discount,\n copyrightYear : track.copyright_year,\n recently_activated : track.recently_activated,\n usageLicenseTypes : this.props.usageLicenseTypes.filter(function(usageLicenseType) { return usageLicenseType.for_fx === false }),\n subscribedUsageLicenseTypes: this.props.subscribedUsageLicenseTypes,\n pricing_path : this.props.pricing_path,\n cart_items : this.state.cart_items,\n trackFavorites : this.state.trackFavorites,\n favorited : this.trackIsFavorited(track.id, this.state.trackFavorites),\n purchased : this.trackIsPurchased(track.id),\n purchaseCount : this.trackPurchaseCount(track.id),\n handleFavoriteClick : this.handleFavoriteClick,\n showUsageLicenseSelect : this.isUsageLicenseSelectVisible(track.id),\n showFreeDownloadDialog : this.isFreeDownloadDialogVisible(track.id),\n handleCartClick : this.handleCartClick,\n handleFreeDownloadClick: this.handleFreeDownloadClick,\n show_download_button : this.props.show_download_button,\n search_in_progress: this.state.searchInProgress,\n exposure_pack: this.props.exposure_pack,\n slim: this.props.slim,\n exposurePackMode: this.props.exposurePackMode,\n score: track.score,\n getNameFor: this.getNameFor,\n freeMode: this.props.freeMode,\n track_variants: track.track_variants,\n track_image_markup: track.track_image,\n youtube_content_id_enabled: track.youtube_content_id_enabled,\n royaltyFree : track.royalty_free,\n pro_short_name : track.pro_short_name,\n included_media_bundles : track.included_media_bundles,\n locale: this.props.locale\n }\n\n if (typeof this.state.data[index+1] !== 'undefined') {\n let nextTrack = this.state.data[index+1];\n nextProps = {\n id : nextTrack.id,\n composerName: nextTrack.composer_name,\n composerUrl: nextTrack.composer_url,\n showcaseUrl: nextTrack.showcase_url,\n i18n : this.props.i18n,\n title : nextTrack.title,\n display_title : nextTrack.display_title,\n publicPerformanceTitle : nextTrack.public_performance_title,\n active : nextTrack.id === activeTrackId,\n activeTrackVariantId : activeTrackVariantId,\n key : \"track-\" + nextTrack.id,\n length : nextTrack.length,\n short_description : nextTrack.short_description,\n inCart : this.trackIsInCart(nextTrack.id, this.state.cart_items),\n free : nextTrack.free,\n hideItemIdList: this.props.hideItemIdList,\n hideAddToCart: this.props.hideAddToCart,\n genre_id_list : nextTrack.genre_id_list,\n tag_id_list : nextTrack.tag_id_list,\n mood_id_list : nextTrack.mood_id_list,\n isActiveItem : this.isActiveItem,\n discount : nextTrack.discount,\n copyrightYear : nextTrack.copyright_year,\n recently_activated : nextTrack.recently_activated,\n usageLicenseTypes : this.props.usageLicenseTypes.filter(function(usageLicenseType) { return usageLicenseType.for_fx === false }),\n subscribedUsageLicenseTypes: this.props.subscribedUsageLicenseTypes,\n pricing_path : this.props.pricing_path,\n cart_items : this.state.cart_items,\n trackFavorites : this.state.trackFavorites,\n favorited : this.trackIsFavorited(nextTrack.id, this.state.trackFavorites),\n purchased : this.trackIsPurchased(nextTrack.id),\n purchaseCount : this.trackPurchaseCount(nextTrack.id),\n handleFavoriteClick : this.handleFavoriteClick,\n showUsageLicenseSelect : this.isUsageLicenseSelectVisible(nextTrack.id),\n showFreeDownloadDialog : this.isFreeDownloadDialogVisible(nextTrack.id),\n handleCartClick : this.handleCartClick,\n handleFreeDownloadClick: this.handleFreeDownloadClick,\n show_download_button : this.props.show_download_button,\n exposure_pack: this.props.exposure_pack,\n slim: this.props.slim,\n exposurePackMode: this.props.exposurePackMode,\n score: nextTrack.score,\n getNameFor: this.getNameFor,\n freeMode: this.props.freeMode,\n track_variants: nextTrack.track_variants,\n handleVariantClick: this.handleVariantClick,\n track_image_markup: nextTrack.track_image,\n youtube_content_id_enabled: nextTrack.youtube_content_id_enabled,\n royaltyFree : nextTrack.royalty_free,\n pro_short_name : nextTrack.pro_short_name,\n included_media_bundles : nextTrack.included_media_bundles,\n locale: this.props.locale\n }\n }\n\n if (typeof this.state.data[index-1] !== 'undefined') {\n let prevTrack = this.state.data[index-1];\n prevProps = {\n id : prevTrack.id,\n composerName: prevTrack.composer_name,\n composerUrl: prevTrack.composer_url,\n showcaseUrl: prevTrack.showcase_url,\n i18n : this.props.i18n,\n title : prevTrack.title,\n display_title : prevTrack.display_title,\n publicPerformanceTitle : prevTrack.public_performance_title,\n active : prevTrack.id === activeTrackId,\n activeTrackVariantId : activeTrackVariantId,\n key : \"track-\" + prevTrack.id,\n length : prevTrack.length,\n short_description : prevTrack.short_description,\n inCart : this.trackIsInCart(prevTrack.id, this.state.cart_items),\n free : prevTrack.free,\n hideItemIdList: this.props.hideItemIdList,\n hideAddToCart: this.props.hideAddToCart,\n genre_id_list : prevTrack.genre_id_list,\n tag_id_list : prevTrack.tag_id_list,\n mood_id_list : prevTrack.mood_id_list,\n isActiveItem : this.isActiveItem,\n discount : prevTrack.discount,\n copyrightYear : prevTrack.copyright_year,\n recently_activated : prevTrack.recently_activated,\n usageLicenseTypes : this.props.usageLicenseTypes.filter(function(usageLicenseType) { return usageLicenseType.for_fx === false }),\n subscribedUsageLicenseTypes: this.props.subscribedUsageLicenseTypes,\n pricing_path : this.props.pricing_path,\n cart_items : this.state.cart_items,\n trackFavorites : this.state.trackFavorites,\n favorited : this.trackIsFavorited(prevTrack.id, this.state.trackFavorites),\n purchased : this.trackIsPurchased(prevTrack.id),\n purchaseCount : this.trackPurchaseCount(prevTrack.id),\n handleFavoriteClick : this.handleFavoriteClick,\n showUsageLicenseSelect : this.isUsageLicenseSelectVisible(prevTrack.id),\n showFreeDownloadDialog : this.isFreeDownloadDialogVisible(prevTrack.id),\n handleCartClick : this.handleCartClick,\n handleFreeDownloadClick: this.handleFreeDownloadClick,\n show_download_button : this.props.show_download_button,\n exposure_pack: this.props.exposure_pack,\n slim: this.props.slim,\n exposurePackMode: this.props.exposurePackMode,\n score: prevTrack.score,\n getNameFor: this.getNameFor,\n freeMode: this.props.freeMode,\n track_variants: prevTrack.track_variants,\n handleVariantClick: this.handleVariantClick,\n track_image_markup: prevTrack.track_image,\n youtube_content_id_enabled: prevTrack.youtube_content_id_enabled,\n royaltyFree : prevTrack.royalty_free,\n pro_short_name : prevTrack.pro_short_name,\n included_media_bundles : prevTrack.included_media_bundles,\n locale: this.props.locale\n }\n }\n\n if (index === 2 && this.props.content && this.props.content.length > 0 && this.state.pagination.current_page === 1) {\n content = this.getContent();\n } else {\n content = [];\n }\n\n if (index === 0 && this.props.trackShow) {\n similarTrackHeading =
{this.props.locale === 'de' ? 'Weitere ähnliche Tracks:' : 'Similar tracks:'} \n }\n\n // if (index === 10 && this.props.clientListing && this.props.clientListing.length > 0 && this.state.pagination.current_page === 1) {\n // clientListing = this.props.clientListing.map(function(client, index) {\n // return (\n // \n // {client}\n //
\n // )\n // }.bind(this));\n // } else {\n // clientListing = [];\n // }\n\n return (\n \n
\n {similarTrackHeading && index === 0 ? similarTrackHeading : ''}\n {content.length === 0 ? '' : (
{this.props.locale === 'de' ? 'Oft gestellte Fragen' : 'FAQ'}
{content}
)}\n {clientListing.length === 0 ? '' : (
{this.props.locale === 'de' ? 'Diese Marken vertrauen auf unsere Komponisten' : 'These brands rely on our composers'} {clientListing}
)}\n
\n );\n\n }.bind(this));\n\n let pagination = function() {\n if (this.props.show_pagination && this.state.pagination.total_count > 10) {\n return (\n \n )\n }\n }.bind(this);\n\n let spinner = function() {\n if (this.state.searchInProgress) {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n )\n }\n }.bind(this);\n\n let smiley = function() {\n return (\n \n )\n }.bind(this);\n\n let proStateHint = ( );\n\n if (this.state.currentQuery.includePro === 0) {\n proStateHint = ({this.props.locale === 'de' ? 'GEMA-frei und P.R.O.' : 'P.R.O. and royalty free'} );\n }\n\n if (this.state.currentQuery.includePro === 1) {\n proStateHint = ({this.props.locale === 'de' ? 'P.R.O. (GEMA-pflichtig)' : 'P.R.O.'} );\n }\n\n if (this.state.currentQuery.includePro === 2) {\n proStateHint = ({this.props.locale === 'de' ? 'GEMA-frei' : 'Royalty free'} );\n }\n\n let classes = classNames({\n 'track-listing': true,\n 'track-listing--slim': this.props.slim,\n 'track-listing-with-pagination': this.props.show_pagination,\n 'is-spinning': this.state.searchInProgress,\n 'is-empty': this.state.data.length === 0,\n 'track-listing-animation-finished': this.state.animationFinished,\n 'track-listing--track-show': this.props.trackShow\n });\n\n let tracksDuration = 0;\n\n for (let i = 0; i < this.state.data.length; i+=1) {\n tracksDuration += this.state.data[i].length;\n }\n\n if (typeof this.props.exposure_pack !== 'undefined' && this.props.exposure_pack.id && !this.props.exposurePackPreviewMode) {\n return (\n \n
\n \n
\n
\n
\n {(this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? this.getContent() : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? this.getContent() : ''}\n {tracks.length > 0 ? tracks : (this.state.data.length == 0 ? '' : I18n.t('no_songs_available'))}\n {pagination()}\n {spinner()}\n {smiley()}\n
\n
\n
\n \n
\n
\n )\n } else {\n if (this.props.showHeading) {\n return (\n \n
{this.state.pagination.total_count} {this.state.pagination.total_count === 1 ? 'Track' : 'Tracks'}{proStateHint}
\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? ({this.props.locale === 'de' ? 'Oft gestellte Fragen' : 'FAQ'}
{this.getContent()}
) : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {tracks.length > 0 ? tracks : (this.props.data.length == 0 ? '' : I18n.t('no_songs_available'))}\n {pagination()}\n {spinner()}\n {smiley()}\n \n )\n } else {\n return (\n \n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ?
: ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? ({this.props.locale === 'de' ? 'Oft gestellte Fragen' : 'FAQ'}
{this.getContent()}
) : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {(tracks.length === 0 && this.state.data.length === 0 && (typeof this.state.pagination.current_page === 'undefined')) ? : ''}\n {tracks.length > 0 ? tracks : (this.props.data.length == 0 ? '' : I18n.t('no_songs_available'))}\n {spinner()}\n {smiley()}\n {pagination()}\n \n )\n }\n }\n }\n}\n\nTrackListing.defaultProps = {\n showHeading: false,\n active_track_id: 0,\n show_pagination : true,\n composer_page_permalink: false,\n totalCount : 250,\n slim : false,\n pricing_path: '',\n freeMode: false,\n hideAddToCart: false,\n exposurePackMode: false,\n exposurePackPreviewMode: false,\n i18n: {\n next: 'Next',\n previous: 'Previous',\n free: 'free',\n recently_created: 'new'\n },\n pagination: {\n current_page: 1,\n next_page: '',\n prev_page: '',\n total_pages: 1,\n total_count: 10\n },\n usageLicenseTypes : [],\n subscribedUsageLicenseTypes: [],\n content : [],\n show_download_button : false,\n hideItemIdList: false,\n trackShow: false,\n trackFavorites : [],\n data : [],\n purchasedTrackIds: []\n}\n\n\n// INIT\nlet elements = document.querySelectorAll('[data-react-component=TrackListing]');\n\nelements.forEach(function(element) {\n let reactProps = JSON.parse(element.dataset.reactProps);\n\n ReactDOM.render(\n \n \n ,\n element\n );\n})\n\nexport default TrackListing;\n","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport PropTypes from 'prop-types';\n\nclass TrackListingSortInputs extends Component {\n constructor(props) {\n super(props);\n\n this.handleDateDescClick = this.handleDateDescClick.bind(this);\n this.handleLengthAscClick = this.handleLengthAscClick.bind(this);\n this.handleLengthDescClick = this.handleLengthDescClick.bind(this);\n this.handlePopularityDescClick = this.handlePopularityDescClick.bind(this);\n\n this.state = {\n sortBy: this.props.sortBy,\n sortDirection: this.props.sortDirection\n }\n }\n\n handleDateDescClick() {\n let stateObject = { sortDirection: 'desc', sortBy: 'date' };\n\n global.EventHub.trigger('changeSort', stateObject);\n this.setState(stateObject)\n }\n\n handleLengthAscClick() {\n let stateObject = { sortDirection: 'asc', sortBy: 'length' };\n\n global.EventHub.trigger('changeSort', stateObject);\n this.setState(stateObject)\n }\n\n handleLengthDescClick() {\n let stateObject = { sortDirection: 'desc', sortBy: 'length' };\n\n global.EventHub.trigger('changeSort', stateObject);\n this.setState(stateObject)\n }\n\n handlePopularityDescClick() {\n let stateObject = { sortDirection: 'desc', sortBy: 'popularity' };\n\n global.EventHub.trigger('changeSort', stateObject);\n this.setState(stateObject)\n }\n\n getClassName(sortBy, sortDirection) {\n if (sortBy === this.state.sortBy && sortDirection === this.state.sortDirection) {\n return 'sort-inputs__item--active';\n }\n\n return '';\n }\n\n render() {\n return (\n \n )\n }\n};\n\nTrackListingSortInputs.defaultProps = {\n sortBy: 'popularity',\n sortDirection: 'desc'\n}\n\nTrackListingSortInputs.propTypes = {\n locale: PropTypes.string\n};\n\n// INIT\n\nlet elements = document.querySelectorAll('[data-react-component=TrackListingSortInputs]');\n\nelements.forEach(function(element) {\n let reactProps = JSON.parse(element.dataset.reactProps);\n\n ReactDOM.render(\n \n \n ,\n element\n );\n})\n\n\nexport default TrackListingSortInputs;\n","const LazyLoad = function() {\n let _defaultConfig;\n\n _defaultConfig = {\n loadPixelThreshold: 200, // e.g. load image 100pxs before element gets into viewport\n throttleTime: 200,\n loadingCheckInterval: 500,\n maxLoadingRetries: 15,\n switchAttributes:[\n {\n attrName : 'src',\n dataAttrName : 'lazyLoadSrc' // camelcase gets transformed to kebap case via .dataset api\n },\n {\n attrName : 'srcset',\n dataAttrName : 'lazyLoadSrcset'\n }\n ],\n backgroundDataAttribute: 'lazyLoadBgSrc'\n };\n\n this.config = _defaultConfig;\n\n this.elements = [];\n this.backgroundElements = []; // elements, that lazy load css background image\n this.invisibleElements = [];\n\n this._init();\n};\n\nLazyLoad.prototype._init = function() {\n this._populateElements();\n this._addScrollObservers();\n setTimeout(this._checkAndUpdateDisplay.bind(this), 100);\n};\n\nLazyLoad.prototype._populateElements = function() {\n this.elements = document.querySelectorAll('[data-lazy-load-src], [data-lazy-load-bg-src]');\n this.invisibleElements = Array.from(this.elements);\n\n let i,\n elementsLength = this.elements.length;\n\n for (i = 0; i < elementsLength; i += 1) {\n this.elements[i].className += ' lazy-load--waiting';\n }\n\n};\n\nLazyLoad.prototype._addScrollObservers = function() {\n let i,\n elementsLength = this.elements.length;\n\n for (i = 0; i < elementsLength; i += 1) {\n this._addScrollObserver(this.elements[i]);\n }\n};\n\nLazyLoad.prototype._addScrollObserver = function(element) {\n let doc = element.ownerDocument,\n win = doc.defaultView || doc.parentWindow,\n lastScrollPosition,\n scrollingCallback;\n\n scrollingCallback = this._throttle(function() {\n let currentScrollTopPosition = window.pageYOffset || document.documentElement.scrollTop,\n scrollingDirection;\n\n if (currentScrollTopPosition > lastScrollPosition) {\n scrollingDirection = 'down';\n } else if (currentScrollTopPosition < lastScrollPosition){\n scrollingDirection = 'up';\n }\n\n if (this._isInvisible(element) && this._isInViewport(element, win, scrollingDirection)) {\n this._displayElement(element);\n }\n\n lastScrollPosition = currentScrollTopPosition;\n\n }.bind(this), this.config.throttleTime);\n\n win.addEventListener('scroll', scrollingCallback);\n};\n\nLazyLoad.prototype._checkAndUpdateDisplay = function(loadingRetryIndex) {\n let elements = this.elements,\n elementsLength = this.elements.length,\n i;\n\n if (typeof loadingRetryIndex === 'undefined') {\n loadingRetryIndex = 0;\n }\n\n for (i = 0; i < elementsLength; i += 1) {\n\n if (typeof elements[i] === 'undefined' && loadingRetryIndex < this.config.maxLoadingRetries) {\n setTimeout(function() {\n this._checkAndUpdateDisplay(loadingRetryIndex + 1);\n }.bind(this), this.config.loadingCheckInterval);\n\n break;\n }\n\n if (this._isInvisible(elements[i]) && this._isInViewport(elements[i], window)) {\n this._displayElement(elements[i]);\n }\n }\n};\n\nLazyLoad.prototype._isInViewport = function(element, win, scrollingDirection) {\n let windowHeight = Math.max(document.documentElement.clientHeight, win.innerHeight || 0),\n elemRect = element.getBoundingClientRect();\n\n if (scrollingDirection === 'up') {\n if (\n elemRect.bottom > 0 - this.config.loadPixelThreshold &&\n elemRect.bottom < (win.innerHeight || document.documentElement.clientHeight) + elemRect.height + this.config.loadPixelThreshold &&\n elemRect.left >= 0 &&\n elemRect.right <= (win.innerWidth || document.documentElement.clientWidth) &&\n elemRect.width !== 0 &&\n elemRect.height !== 0\n ) {\n return true;\n }\n\n return false;\n }\n\n if (\n elemRect.top - windowHeight <= this.config.loadPixelThreshold &&\n elemRect.bottom + this.config.loadPixelThreshold >= 0 &&\n elemRect.left >= 0 &&\n elemRect.right <= (win.innerWidth || document.documentElement.clientWidth) &&\n elemRect.width !== 0 &&\n elemRect.height !== 0\n ) {\n return true;\n }\n\n return false;\n};\n\nLazyLoad.prototype._isInvisible = function(node) {\n let invisibleElements = this.invisibleElements,\n invisibleElementsLength = invisibleElements.length,\n isInvisible = false,\n i;\n\n for (i = 0; i < invisibleElementsLength; i += 1) {\n if (invisibleElements[i] === node) {\n isInvisible = true;\n break;\n }\n }\n\n return isInvisible;\n};\n\nLazyLoad.prototype._displayElement = function(element) {\n this._switchAttributes(element);\n this._removeFromInvisibleElements(element);\n};\n\nLazyLoad.prototype._switchAttributes = function(element) {\n let switchAttributes = this.config.switchAttributes,\n switchAttributesLength = this.config.switchAttributes.length,\n i,\n dataAttributeValue;\n\n for (i = 0; i < switchAttributesLength; i += 1) {\n dataAttributeValue = element.dataset[switchAttributes[i]['dataAttrName']];\n\n if (dataAttributeValue) {\n element.setAttribute(switchAttributes[i]['attrName'], dataAttributeValue);\n }\n }\n\n if (element.dataset[this.config.backgroundDataAttribute]) {\n element.style.backgroundImage = 'url(' + element.dataset[this.config.backgroundDataAttribute] + ')';\n }\n};\n\nLazyLoad.prototype._removeFromInvisibleElements = function(element) {\n let invisibleElements = this.invisibleElements,\n index;\n\n index = invisibleElements.indexOf(element);\n\n if (index > -1) {\n invisibleElements.splice(index, 1);\n }\n\n this.invisibleElements = invisibleElements;\n};\n\nLazyLoad.prototype._throttle = function(fn, throttleTime, scope) {\n let last,\n deferTimer;\n\n if (typeof threshold === 'undefined') {\n throttleTime = this.config.throttleTime;\n }\n\n return function () {\n let context = scope || this,\n now = +new Date,\n args = arguments;\n\n if (last && now < last + throttleTime) {\n clearTimeout(deferTimer);\n\n deferTimer = setTimeout(function () {\n last = now;\n fn.apply(context, args);\n }, throttleTime);\n } else {\n last = now;\n fn.apply(context, args);\n }\n };\n};\n\nexport default LazyLoad;\n","const Helpers = {};\n\nHelpers.mergeObjects = function(configObject, defaultObject) {\n var mergedObject = {};\n\n mergedObject = this.copyObjectPropertiesFromTo(mergedObject, defaultObject);\n mergedObject = this.copyObjectPropertiesFromTo(mergedObject, configObject);\n\n return mergedObject;\n};\n\n/**\n * Robust solution to identify different types of numbers\n *\n * @see http://stackoverflow.com/questions/18082/validate-numbers-in-javascript-isnumeric\n *\n * @function isNumber\n * @memberof! Absolventa.Helpers\n * @param {numeric} possiblyANumber\n * @return {boolean}\n */\nHelpers.isNumber = function(possiblyANumber) {\n return !isNaN(parseFloat(possiblyANumber)) && isFinite(possiblyANumber);\n};\n\nHelpers.copyObjectPropertiesFromTo = function (targetObject, senderObject) {\n var prop;\n\n for (prop in senderObject) {\n try {\n // Property in destination object set; update its value.\n if (senderObject[prop].constructor === Object) {\n targetObject[prop] = this.mergeObjects(targetObject[prop], senderObject[prop]);\n } else {\n targetObject[prop] = senderObject[prop];\n }\n } catch (e) {\n // Property in destination object not set; create it and set its value.\n targetObject[prop] = senderObject[prop];\n }\n }\n\n return targetObject;\n};\n\nHelpers.createConfigObject = function(configObject, defaultObject) {\n var mergedObject = {};\n\n\n if (configObject === null || typeof configObject !== 'object') {\n configObject = {};\n }\n\n mergedObject = this.mergeObjects(configObject, defaultObject);\n\n return mergedObject;\n};\n\nHelpers._addEventListener = function(obj, evt, fnc) {\n /**\n * Cross Browser helper to addEventListener.\n *\n * @param {HTMLElement} obj The Element to attach event to.\n * @param {string} evt The event that will trigger the binded function.\n * @param {function(event)} fnc The function to bind to the element.\n * @return {boolean} true if it was successfuly binded.\n */\n\n // W3C model\n if (obj.addEventListener) {\n obj.addEventListener(evt, fnc, false);\n return true;\n }\n // Microsoft model\n if (obj.attachEvent) {\n obj.attachEvent(\"on\" + evt, fnc);\n return true;\n }\n\n return false;\n};\n\nHelpers._removeEventListener = function(obj, type, fnc) {\n if (obj.removeEventListener) {\n obj.removeEventListener(type, fnc, false);\n } else if (obj.detachEvent) {\n obj.detachEvent(\"on\" + type, fnc);\n }\n};\n\nHelpers.insertAfter = function(referenceNode, newNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode.nextSibling);\n};\n\nHelpers._generateSelectorStringArray = function(selector) {\n var selectors = [];\n\n // check for param availability\n if (selector !== undefined) {\n\n // convert to array, if param is a string\n if (typeof selector === 'string') {\n selectors.push(selector);\n }\n\n // is param an array?\n if (Object.prototype.toString.call(selector) === '[object Array]') {\n selectors = selectors.concat(selector);\n }\n }\n\n return selectors;\n};\n\nHelpers.sanitizeFileName = function(fileName) {\n const umlautMap = {\n 'ä': 'a',\n 'ö': 'o',\n 'ü': 'u',\n 'Ä': 'A',\n 'Ö': 'O',\n 'Ü': 'U',\n 'ß': 'ss',\n };\n\n // Replace umlauts\n let sanitizedFileName = fileName.replace(/[\\ä\\ö\\ü\\Ä\\Ö\\Ü\\ß]/g, function(key) {\n return umlautMap[key];\n });\n\n // Replace spaces and other special characters with underscores\n sanitizedFileName = sanitizedFileName.replace(/[^a-zA-Z0-9\\._]+/g, '_');\n\n return sanitizedFileName;\n};\n\n\nexport default Helpers;","import Helpers from '~/modules/Helpers.js';\n\nconst CancellationPolicyForm = function (element, config) {\n\n var _defaultConfig;\n\n _defaultConfig = {\n toggleClass: 'cancellation-policy__target--visible',\n // internals\n beforeMount: function () {\n // instance is available as instance parameter\n },\n afterMount: function () {\n // instance is available as instance parameter\n }\n };\n\n if (element && element.nodeType === 1) {\n this.cancellationPolicyContainer = element;\n } else {\n throw new Error('node for CancellationPolicyForm was invalid or not of the correct type');\n }\n\n this.cancellationPolicyFormSwitchLabel = undefined;\n this.cancellationPolicyTargetNotAccepted = undefined;\n this.cancellationPolicyTargetAccepted = undefined;\n\n this.config = Helpers.createConfigObject(config, _defaultConfig);\n\n this._init();\n};\n\nCancellationPolicyForm.prototype._init = function () {\n this.config.beforeMount(this);\n\n if (this.cancellationPolicyContainer) {\n this._mountElements();\n this._addEventListeners();\n }\n\n this.config.afterMount(this);\n};\n\nCancellationPolicyForm.prototype._mountElements = function () {\n this.cancellationPolicySwitchLabel = document.querySelector('[data-action~=cancellationPolicySwitchLabel]');\n this.cancellationPolicyTargetNotAccepted = document.querySelector('[data-action~=cancellationPolicyTargetNotAccepted]');\n this.cancellationPolicyTargetAccepted = document.querySelector('[data-action~=cancellationPolicyTargetAccepted]');\n};\n\n\nCancellationPolicyForm.prototype._addEventListeners = function () {\n this.cancellationPolicySwitchLabel.addEventListener('change', function (e) {\n this.cancellationPolicyTargetAccepted.classList.toggle(this.config.toggleClass);\n this.cancellationPolicyTargetNotAccepted.classList.toggle(this.config.toggleClass);\n }.bind(this));\n};\n\nexport default CancellationPolicyForm;\n","import Helpers from '~/modules/Helpers.js';\n\nconst CheckboxDropdown = function (element, config) {\n\n var _defaultConfig;\n\n _defaultConfig = {\n toggleClass: 'checkbox-dropdown--visible',\n unselectAllSelector: '[data-action~=checkboxDropdownUnselectAll]',\n // internals\n beforeMount: function () {\n // instance is available as instance parameter\n },\n afterMount: function () {\n // instance is available as instance parameter\n }\n };\n if (element && element.nodeType === 1) {\n this.dropdownContainer = element;\n } else {\n throw new Error('linkNode for Checkbox Dropdown was invalid or not of the correct type');\n }\n\n this.originalSwitchLabel = undefined;\n\n this.config = Helpers.createConfigObject(config, _defaultConfig);\n\n this._init();\n};\n\nCheckboxDropdown.prototype._init = function () {\n this.config.beforeMount(this);\n\n if (this.dropdownContainer) {\n this.unselectElement = this.dropdownContainer.querySelector(this.config.unselectAllSelector);\n this.originalSwitchLabel = this.dropdownContainer.querySelector('.checkbox-dropdown__switch-counter').getAttribute('data-checkbox-dropdown-label');\n this._updateSwitchLabel();\n this._addEventListeners();\n }\n\n this.config.afterMount(this);\n};\n\nCheckboxDropdown.prototype._updateSwitchLabel = function () {\n var activeElements = this.dropdownContainer.querySelectorAll('input[type=checkbox]:checked');\n\n if (activeElements.length === 0) {\n this.dropdownContainer.querySelector('.checkbox-dropdown__switch-counter').innerHTML = this.originalSwitchLabel;\n } else {\n if (activeElements.length === 1) {\n this.dropdownContainer.querySelector('.checkbox-dropdown__switch-counter').innerHTML = activeElements.length + ' ' + (I18n.locale === 'de' ? ' Option ausgewählt' : ' option selected');\n } else {\n this.dropdownContainer.querySelector('.checkbox-dropdown__switch-counter').innerHTML = activeElements.length + ' ' + (I18n.locale === 'de' ? ' Optionen ausgewählt' : ' options selected');\n }\n\n }\n};\n\nCheckboxDropdown.prototype._addEventListeners = function () {\n global.EventHub.on('closeAllDropdowns', function (data) {\n console.log('removing via eventhub');\n var originDropdownContainerElement = data[0];\n if (originDropdownContainerElement !== this.dropdownContainer) {\n this.dropdownContainer.classList.remove(this.config.toggleClass);\n }\n }.bind(this));\n\n global.EventHub.on('closePopupMenus', function (data) {\n this.dropdownContainer.classList.remove(this.config.toggleClass);\n }.bind(this));\n\n\n this.dropdownContainer.querySelector('.checkbox-dropdown__switch').addEventListener('click', function (e) {\n e.preventDefault();\n\n global.EventHub.trigger('closeAllDropdowns', this.dropdownContainer);\n\n // setTimeout(function () {\n if (this.dropdownContainer.classList.contains(this.config.toggleClass)) {\n // still open\n console.log('removing after 10ms');\n this.dropdownContainer.classList.remove(this.config.toggleClass);\n } else {\n // closed\n console.log('adding after 10ms');\n this.dropdownContainer.classList.add(this.config.toggleClass);\n }\n // }.bind(this), 10)\n }.bind(this));\n\n this.dropdownContainer.querySelector('.checkbox-dropdown__checkboxes').addEventListener('click', function (e) {\n this._updateSwitchLabel();\n }.bind(this));\n\n if (this.unselectElement) {\n this.unselectElement.addEventListener('click', function(e) {\n var checkedElements = this.dropdownContainer.querySelectorAll('input[type=checkbox]:checked');\n \n e.preventDefault();\n\n checkedElements.forEach(function(element) {\n element.checked = false;\n })\n }.bind(this))\n }\n};\n\nexport default CheckboxDropdown;","import Helpers from '~/modules/Helpers.js';\n\nconst Dropdown = function (element, config) {\n\n var _defaultConfig;\n\n _defaultConfig = {\n toggleClass: 'dropdown--visible',\n // internals\n beforeMount: function () {\n // instance is available as instance parameter\n },\n afterMount: function () {\n // instance is available as instance parameter\n }\n };\n\n if (element && element.nodeType === 1) {\n this.dropdownContainer = element;\n } else {\n throw new Error('linkNode for ToggleLink was invalid or not of the correct type');\n }\n\n this.closeEvent = undefined;\n\n this.config = Helpers.createConfigObject(config, _defaultConfig);\n\n this._init();\n};\n\nDropdown.prototype._init = function () {\n this.config.beforeMount(this);\n\n if (this.dropdownContainer) {\n this._addEventListeners();\n }\n\n this.config.afterMount(this);\n};\n\nDropdown.prototype._addEventListeners = function () {\n\n global.EventHub.on('closeAllDropdowns', function (data) {\n console.log('removing via eventhub');\n var originDropdownContainerElement = data[0];\n if (originDropdownContainerElement !== this.dropdownContainer) {\n this.dropdownContainer.parentElement.classList.remove(this.config.toggleClass);\n }\n }.bind(this));\n\n global.EventHub.on('closePopupMenus', function (data) {\n this.dropdownContainer.parentElement.classList.remove(this.config.toggleClass);\n }.bind(this));\n\n this.dropdownContainer.addEventListener('click', function (e) {\n e.preventDefault();\n\n global.EventHub.trigger('closeAllDropdowns', this.dropdownContainer);\n\n if (this.dropdownContainer.parentElement.classList.contains(this.config.toggleClass)) {\n // still open\n console.log('removing after 10ms');\n this.dropdownContainer.parentElement.classList.remove(this.config.toggleClass);\n } else {\n // closed\n console.log('adding after 10ms');\n this.dropdownContainer.parentElement.classList.add(this.config.toggleClass);\n }\n }.bind(this));\n};\n\nexport default Dropdown;\n","import Helpers from '~/modules/Helpers.js'\n\nconst ToggleLink = function(linkNode, config) {\n\n let _defaultConfig;\n\n _defaultConfig = {\n linkToggleClass: 'is-active',\n targetToggleClass: 'hide-element',\n lockBodyScrolling: false,\n bodyLockToggleClass: 'body-locked',\n // internals\n beforeMount: function() {\n // instance is available as instance parameter\n },\n afterMount: function() {\n // instance is available as instance parameter\n },\n afterToggle: function() {\n\n }\n };\n\n if (linkNode && linkNode.nodeType === 1) {\n this.link = linkNode;\n } else {\n throw new Error('linkNode for ToggleLink was invalid or not of the correct type');\n }\n\n this.config = Helpers.createConfigObject(config, _defaultConfig);\n\n this.targetContainer = undefined;\n\n this._init();\n};\n\nToggleLink.prototype._init = function() {\n this.config.beforeMount(this);\n\n if (this._mountElements()) {\n this._addEventListeners();\n }\n\n this.config.afterMount(this);\n};\n\nToggleLink.prototype._mountElements = function() {\n let targetContainer = document.getElementById(this.link.getAttribute('href').replace('#',''));\n\n if (targetContainer) {\n this.targetContainer = targetContainer;\n return true;\n }\n\n return false;\n};\n\nToggleLink.prototype._addEventListeners = function() {\n\n let openCallback = function(e) {\n e.preventDefault();\n this.link.classList.toggle(this.config.linkToggleClass);\n this.targetContainer.classList.toggle(this.config.targetToggleClass);\n\n if (this.config.lockBodyScrolling) {\n document.body.classList.toggle(this.config.bodyLockToggleClass);\n }\n\n this.config.afterToggle();\n };\n\n this.link.addEventListener('click', openCallback.bind(this));\n this.link.addEventListener('forceOpen', openCallback.bind(this));\n};\n\nexport default ToggleLink;\n","import Helpers from '~/modules/Helpers.js';\n// // import $ from 'jquery';\n\nconst PriceInfo = function(selectorString, config) {\n let _defaultConfig,\n that = this;\n\n _defaultConfig = {\n selectorString : '[data-action~=\"initPriceInfo\"]',\n selectBoxSelectorString : '[data-action~=\"initPriceInfoSelect\"]',\n selectBoxPrevPriceString : '[data-action~=\"initPriceInfoPrevPrice\"]',\n priceInfoNetPriceCssClass : '.price-info-net-price',\n priceInfoGrossPriceCssClass : '.price-info-gross-price',\n priceInfoCurrencyCssClass : '.price-info-currency',\n priceInfoTaxCssClass : '.price-info-tax',\n priceInfoReducedNetPriceCssClass : '.price-info-reduced-net-price',\n currency : '€',\n taxAmount : '0.07',\n delimiter : ',',\n beforeLoad : function(instance) {\n\n },\n afterLoad : function(instance) {\n\n }\n };\n\n this.config = Helpers.createConfigObject(config, _defaultConfig);\n\n if (selectorString) {\n this.config.selectorString = selectorString;\n }\n\n // elements\n this.containers = [];\n this.selectBoxes = [];\n this.netPrice = 0.00;\n this.grossPrice = 0.00;\n this.prevPrice = undefined;\n this.reducedPrice = undefined;\n\n this.onSelectBoxChange = function(e) {\n this._updatePriceInfo();\n }.bind(this);\n\n this.renderPriceInfo = function() {\n var containersLength = this.containers.length,\n i;\n\n for (i = 0; i < containersLength; i += 1) {\n this._updateContainerPrice(this.containers[i]);\n }\n\n }.bind(this);\n\n this._init();\n};\n\n\nPriceInfo.prototype._init = function() {\n var containers = document.querySelectorAll(this.config.selectorString);\n this.config.beforeLoad(this);\n\n if (containers.length > 0) {\n this._mountContainers();\n this._mountSelectBoxes();\n this._fetchCurrency();\n this._fetchTax();\n this._mountPrevPrice();\n this._updatePriceInfo();\n }\n\n this.config.afterLoad(this);\n};\n\nPriceInfo.prototype._mountContainers = function() {\n var containers = document.querySelectorAll(this.config.selectorString),\n containersLength = containers.length,\n i;\n\n // Add event handlers to all link elements and populate links array\n for (i = 0; i < containersLength; i += 1) {\n this.containers.push(containers[i]);\n this._addEventListenersForContainers();\n }\n};\n\nPriceInfo.prototype._mountSelectBoxes = function() {\n var selectBoxes = document.querySelectorAll(this.config.selectBoxSelectorString),\n selectBoxesLength = selectBoxes.length,\n i;\n\n for (i = 0; i < selectBoxesLength; i += 1) {\n this.selectBoxes.push(selectBoxes[i]);\n this._addEventListenersForSelectBoxes(selectBoxes[i]);\n }\n};\n\nPriceInfo.prototype._fetchCurrency = function() {\n var currencySymbol = this.containers[0].dataset.priceInfoCurrencySymbol;\n\n this.config.currency = currencySymbol;\n};\n\nPriceInfo.prototype._fetchTax = function() {\n var taxAmount = this.containers[0].dataset.priceInfoTax;\n\n this.config.taxAmount = taxAmount;\n};\n\n\nPriceInfo.prototype._mountPrevPrice = function() {\n var prevPriceElement = document.querySelector(this.config.selectBoxPrevPriceString);\n\n if (prevPriceElement) {\n this.prevPrice = (parseFloat(prevPriceElement.dataset.priceInfoPrev)).toFixed(2);\n }\n};\n\nPriceInfo.prototype._addEventListenersForSelectBoxes = function(selectBox) {\n Helpers._addEventListener(selectBox, 'change', this.onSelectBoxChange);\n};\n\nPriceInfo.prototype._updatePriceInfo = function() {\n var selectBoxesLength = this.selectBoxes.length,\n i,\n price = 0.00,\n vatPrice = 0.00,\n grossPrice = 0.00,\n reducedPrice = 0.00,\n priceString,\n vatString,\n grossPriceString;\n\n for (i = 0; i < selectBoxesLength; i += 1) {\n priceString = $(this.selectBoxes[i]).find('option:selected').attr('data-price');\n price += parseFloat(priceString);\n\n vatString = $(this.selectBoxes[i]).find('option:selected').attr('data-vat-price');\n vatPrice += parseFloat(vatString);\n\n grossPriceString = $(this.selectBoxes[i]).find('option:selected').attr('data-gross-price');\n grossPrice += parseFloat(grossPriceString);\n }\n\n if (this.prevPrice) {\n this.netPrice = price.toFixed(2);\n this.reducedPrice = (price - this.prevPrice).toFixed(2);\n this.tax = vatPrice.toFixed(2);\n this.grossPrice = (parseFloat(this.reducedPrice) + parseFloat(this.tax)).toFixed(2);\n } else {\n this.netPrice = price.toFixed(2);\n this.grossPrice = grossPrice.toFixed(2);\n this.tax = vatPrice.toFixed(2);\n }\n\n global.EventHub.trigger('renderPriceInfo');\n};\n\nPriceInfo.prototype._addEventListenersForContainers = function(container) {\n global.EventHub.on('renderPriceInfo', this.renderPriceInfo);\n};\n\nPriceInfo.prototype._updateContainerPrice = function(container) {\n $(container).find(this.config.priceInfoNetPriceCssClass).text(this.netPrice.replace('.',this.config.delimiter));\n \n if (this.reducedPrice) {\n $(container).find(this.config.priceInfoReducedNetPriceCssClass).text(this.reducedPrice.replace('.',this.config.delimiter))\n let tax = (parseFloat(this.reducedPrice) * this.config.taxAmount).toFixed(2);\n $(container).find(this.config.priceInfoTaxCssClass).text(tax.replace('.',this.config.delimiter));\n let reduced = parseFloat(this.reducedPrice);\n let gross = (reduced + parseFloat(tax)).toFixed(2);\n $(container).find(this.config.priceInfoGrossPriceCssClass).text(gross.replace('.',this.config.delimiter));\n } else {\n $(container).find(this.config.priceInfoTaxCssClass).text(this.tax.replace('.',this.config.delimiter));\n $(container).find(this.config.priceInfoGrossPriceCssClass).text(this.grossPrice.replace('.',this.config.delimiter));\n }\n\n $(container).find(this.config.priceInfoCurrencyCssClass).text(this.config.currency);\n};\n\nexport default PriceInfo;\n","// const $ = require('jquery');\n\nconst ProductFetcher = function(buttonNode, config = {}) {\n\n var _defaultConfig;\n\n _defaultConfig = {\n // internals\n beforeMount : function() {\n // instance is available as instance parameter\n },\n afterMount : function() {\n // instance is available as instance parameter\n }\n };\n\n if (buttonNode && buttonNode.nodeType === 1) {\n this.buttonNode = buttonNode;\n } else {\n throw new Error('ButtonNode for ProductFetcher was invalid or not of the correct type');\n }\n\n this.config = Object.assign({}, _defaultConfig, config);\n\n this.state = {};\n\n this._init();\n};\n\nProductFetcher.prototype._init = function() {\n this.config.beforeMount(this);\n this._mountElements();\n this._addEventHandlerForFetchButton();\n\n this.config.afterMount(this);\n};\n\nProductFetcher.prototype._mountElements = function() {\n\n};\n\nProductFetcher.prototype._addEventHandlerForFetchButton = function() {\n $(this.buttonNode).on('click', (e) => {\n let url = $('input#fetch_url').val(),\n productId = this._createProductFromInput(url);\n\n e.preventDefault();\n\n this._fetchProductData(productId).then((data) => {\n console.log(JSON.parse(data));\n this._populateInputs(JSON.parse(data));\n }).catch((data) => {\n alert(data);\n });\n });\n};\n\nProductFetcher.prototype._createProductFromInput = function(urlString) {\n\n let productId,\n regex,\n matches;\n\n if (typeof(urlString) !== \"undefined\" && typeof(urlString) === \"string\") {\n regex = /p\\/(product)?(\\/)?([A-Za-z0-9]+)/;\n matches = urlString.match(regex);\n productId = matches[3];\n\n console.log(matches)\n\n return productId;\n }\n\n return false;\n};\n\nProductFetcher.prototype._fetchProductData = function(productId) {\n return new Promise((resolve, reject) => {\n const xhr = new XMLHttpRequest();\n xhr.open(\"GET\", \"/e/affiliate_products/get_product_data/\" + productId);\n xhr.onload = () => resolve(xhr.responseText);\n xhr.onerror = () => reject(xhr.statusText);\n xhr.send();\n });\n};\n\nProductFetcher.prototype._populateInputs = function(data) {\n\n // $('input#affiliate_product_url_de').val(data.detailPageUrl);\n $('input#affiliate_product_url_de').val('https://www.amazon.de/dp/' + data.amazonId);\n $('input#affiliate_product_url_en').val('https://www.amazon.com/dp/' + data.amazonId);\n $('input#affiliate_product_amazon_id').val(data.amazonId);\n\n\n if ($('input#affiliate_product_title_de')[0].value === \"\") {\n $('input#affiliate_product_title_de').val(data.title);\n }\n\n if ($('input#affiliate_product_short_title_de')[0].value === '') {\n $('input#affiliate_product_short_title_de').val(data.title);\n }\n\n if ($('input#affiliate_product_title_en')[0].value === \"\") {\n $('input#affiliate_product_title_en').val(data.title);\n }\n\n if ($('input#affiliate_product_short_title_en')[0].value === '') {\n $('input#affiliate_product_short_title_en').val(data.title);\n }\n\n\n if ($('input#affiliate_product_image_response_url')[0].value === '') {\n $('input#affiliate_product_image_response_url').val(data.imageLargeUrl);\n }\n\n // $('input#product_medium_image_url').val(data.imageMediumUrl);\n // $('input#product_small_image_url').val(data.imageSmallUrl);\n // $('input#product_price').val(data.price);\n // $('input#product_currency_symbol').val(data.currency);\n // $('input#product_amount_saved').val(data.amountSaved);\n // $('input#product_amount_saved_currency_symbol').val(data.amountSavedCurrencySymbol);\n};\n\nexport default ProductFetcher;","\n// import $ from 'jquery';\nimport ahoy from 'ahoy.js';\nimport LazyLoad from '~/modules/LazyLoad.js';\nimport CancellationPolicyForm from '~/modules/CancellationPolicyForm.js';\nimport CheckboxDropdown from '~/modules/CheckboxDropdown.js';\nimport Dropdown from '~/modules/Dropdown.js';\nimport ToggleLink from '~/modules/ToggleLink.js';\nimport PriceInfo from '~/modules/PriceInfo.js';\nimport ProductFetcher from '~/modules/ProductFetcher.js';\nimport Helpers from './Helpers';\n\nconst I18n = {};\nwindow.I18n = I18n;\n\nfunction getPeaks(data) {\n\n // What we're going to do here, is to divide up our audio into parts.\n\n // We will then identify, for each part, what the loudest sample is in that\n // part.\n\n // It's implied that that sample would represent the most likely 'beat'\n // within that part.\n\n // Each part is 0.5 seconds long - or 22,050 samples.\n\n // This will give us 60 'beats' - we will only take the loudest half of\n // those.\n\n // This will allow us to ignore breaks, and allow us to address tracks with\n // a BPM below 120.\n\n var partSize = 22050,\n parts = data[0].length / partSize,\n peaks = [];\n\n for (var i = 0; i < parts; i++) {\n var max = 0;\n for (var j = i * partSize; j < (i + 1) * partSize; j++) {\n var volume = Math.max(Math.abs(data[0][j]), Math.abs(data[1][j]));\n if (!max || (volume > max.volume)) {\n max = {\n position: j,\n volume: volume\n };\n }\n }\n peaks.push(max);\n }\n\n // We then sort the peaks according to volume...\n\n peaks.sort(function (a, b) {\n return b.volume - a.volume;\n });\n\n // ...take the loundest half of those...\n\n peaks = peaks.splice(0, peaks.length * 0.5);\n\n // ...and re-sort it back based on position.\n\n peaks.sort(function (a, b) {\n return a.position - b.position;\n });\n\n return peaks;\n}\n\nfunction getIntervals(peaks) {\n\n // What we now do is get all of our peaks, and then measure the distance to\n // other peaks, to create intervals. Then based on the distance between\n // those peaks (the distance of the intervals) we can calculate the BPM of\n // that particular interval.\n\n // The interval that is seen the most should have the BPM that corresponds\n // to the track itself.\n\n var groups = [];\n\n peaks.forEach(function (peak, index) {\n for (var i = 1; (index + i) < peaks.length && i < 10; i++) {\n var group = {\n tempo: (60 * 44100) / (peaks[index + i].position - peak.position),\n count: 1\n };\n\n while (group.tempo < 90) {\n group.tempo *= 2;\n }\n\n while (group.tempo > 180) {\n group.tempo /= 2;\n }\n\n group.tempo = Math.round(group.tempo);\n\n if (!(groups.some(function (interval) {\n return (interval.tempo === group.tempo ? interval.count++ : 0);\n }))) {\n groups.push(group);\n }\n }\n });\n return groups;\n}\n\n\nconst globalModule = {\n\n init: function () {\n // PUBLIC AREA\n this.initI18n();\n this.initAhoy();\n this.initMediaBundlePricePreviewForm();\n this.initLazyLoading();\n this.initDropdown();\n this.initCheckboxDropdown();\n this.addScrollToEventListener();\n this.addEventHandlerForGlobalCloseClick();\n this.initPwa();\n this.addEventListenerForNavSearch();\n this.initTabby();\n this.initToggleLink();\n this.addNavScrollEventListener();\n this.addFlashEventListener();\n this.initSort();\n this.initRadioSubscriptionPricingForm();\n\n if (document.querySelector('audio')) {\n global.EventHub.trigger('mountAudioPlayer');\n global.EventHub.trigger('mountSearchMenu');\n this.initCustomPlaylinks();\n this.addEventHandlerForPlayTracking();\n this.addEventHandlerForFavoriteTracking();\n this.addEventHandlerForSoundEffectFavoriteTracking();\n this.initElementCatapult();\n }\n\n this.addEventHandlerForSubscriptionSelection();\n this.addEventHandlerForPhoneMessageConfiguratorForm();\n this.addEventHandlerForOnePlayingAudioTagAtATime();\n\n this.initMultiStepForm();\n\n // EDITOR AREA\n this.addEventHandlerForCopyButton();\n this.initProductFetcher();\n\n // // CUSTOMER AREA\n this.initPriceInfo();\n this.addEventHandlerForCheckout();\n this.addEventHandlerForRegistrationEmailCheck();\n this.addEventHandlerForPhoneMessageOrderTemplateSelection();\n this.initCancellationPolicyForm();\n\n // // MUSICIAN AREA\n this.initDirectFileUpload();\n this.addEventHandlerForTrackFormSubmit();\n this.addEventHandlerForTrackOriginatorSwitch();\n this.addEventHandlerForMusicSourceSelect();\n this.addEventHandlerForVoiceSourceSelect();\n this.initOverlay();\n this.addEventHandlerForCustomTagInput();\n },\n\n initI18n: function () {\n I18n.locale = $('body').data('lang');\n },\n\n initProductFetcher: function() {\n let button = document.querySelector('[data-action~=\"fetchProductData\"]');\n\n if (button) {\n new ProductFetcher(button, {});\n }\n },\n\n\n initMediaBundlePricePreviewForm: function() {\n let selectElements = document.querySelectorAll('.media-bundle-price-preview__select');\n let netPriceElements = document.querySelectorAll('.media-bundle-price-preview__target-net-price');\n let netPriceWithoutDiscountElements = document.querySelectorAll('.media-bundle-price-preview__target-net-price-without-discount');\n \n if (selectElements.length > 0) {\n selectElements.forEach(function(selectElement, index) {\n selectElement.addEventListener('change', function(e) {\n let selectedOption = selectElement.options[selectElement.selectedIndex];\n let netPrice = selectedOption.getAttribute('data-net-price');\n let netPriceWithoutDiscount = selectedOption.getAttribute('data-net-price-without-discount');\n \n // Update the corresponding net price elements\n let netPriceElement = netPriceElements[index];\n let netPriceWithoutDiscountElement = netPriceWithoutDiscountElements[index];\n netPriceElement.textContent = netPrice;\n netPriceWithoutDiscountElement.textContent = netPriceWithoutDiscount;\n });\n });\n }\n },\n\n addEventHandlerForPhoneMessageConfiguratorForm: function () {\n let form = document.querySelector('[data-action~=phoneMessageConfiguratorForm]');\n\n if (form) {\n form.addEventListener('change', function () {\n let options = form.querySelectorAll('input[type=radio]:checked');\n let speakerLabel = document.querySelector('[data-action~=phoneMessageConfiguratorFormSpeakerLabel]');\n let trackLabel = document.querySelector('[data-action~=phoneMessageConfiguratorFormTrackLabel]');\n let i = 0;\n let trackSelected = true;\n let speakerSelected = true;\n let optionsValid = true;\n\n for (i = 0; i < options.length; i++) {\n if (options[i].name === 'track_id' || options[i].name === 'phone_message_order[track_id]') {\n trackLabel.innerHTML = options[i].dataset.label;\n }\n if (options[i].name === 'speaker_id' || options[i].name === 'phone_message_order[speaker_id]') {\n speakerLabel.innerHTML = options[i].dataset.label;\n }\n\n if (options[i].id === 'speaker_id_0') {\n speakerSelected = false;\n }\n\n if (options[i].id === 'track_id_0') {\n trackSelected = false;\n }\n\n if (!speakerSelected || !trackSelected) {\n optionsValid = false;\n } else {\n optionsValid = true;\n }\n }\n\n if (optionsValid) {\n form.querySelector('input[type=submit]').removeAttribute('disabled');\n } else {\n form.querySelector('input[type=submit]').setAttribute('disabled', 'disabled');\n }\n });\n }\n },\n\n addEventHandlerForCopyButton: function() {\n let copyButtons = document.querySelectorAll('[data-action~=initCopyButton]'); \n\n let copyContainers = [];\n\n if (copyButtons) {\n for (i = 0; i < copyButtons.length; i++) {\n let copyContainer = document.querySelector(copyButtons[i].dataset.copyContainerSelector);\n \n if (copyContainer) {\n copyButtons[i].addEventListener('click', function(e) {\n e.preventDefault();\n \n navigator.clipboard.writeText(copyContainer.textContent);\n })\n }\n }\n }\n },\n\n addEventHandlerForOnePlayingAudioTagAtATime: function () {\n function onlyPlayOneIn(container) {\n container.addEventListener(\"play\", function (event) {\n let audio_elements = container.getElementsByTagName(\"audio\");\n let i = 0;\n\n for (i = 0; i < audio_elements.length; i++) {\n let audio_element = audio_elements[i];\n if (audio_element !== event.target) {\n audio_element.pause();\n }\n }\n }, true);\n }\n\n function connectCustomPlayButtons(container) {\n let playButtons = container.querySelectorAll('[data-action~=phoneMessageConfiguratorPlayButton]');\n let audioElements = container.getElementsByTagName(\"audio\");\n\n playButtons.forEach(function (playButton) {\n playButton.querySelector('.phone-message-config-radio__play').style = 'display: inline;';\n playButton.querySelector('.phone-message-config-radio__pause').style = 'display: none;';\n playButton.addEventListener('click', function (event) {\n event.preventDefault();\n let audioElement = playButton.parentNode.parentNode.parentNode.getElementsByTagName(\"audio\")[0];\n let i = 0;\n console.log('click');\n console.log(audioElement);\n console.log(audioElements);\n if (audioElement.paused) {\n for (i = 0; i < audioElements.length; i++) {\n audioElements[i].pause();\n audioElements[i].parentNode.querySelector('.phone-message-config-radio__play').style = 'display: inline;';\n audioElements[i].parentNode.querySelector('.phone-message-config-radio__pause').style = 'display: none;';\n }\n\n if (audioElement.dataset.volume) {\n audioElement.volume = parseFloat(audioElement.dataset.volume);\n }\n\n audioElement.play();\n playButton.querySelector('.phone-message-config-radio__play').style = 'display: none;';\n playButton.querySelector('.phone-message-config-radio__pause').style = 'display: inline;';\n } else {\n console.log('audioElement trigger pause');\n audioElement.pause();\n playButton.querySelector('.phone-message-config-radio__play').style = 'display: inline;';\n playButton.querySelector('.phone-message-config-radio__pause').style = 'display: none;';\n }\n });\n })\n }\n\n let containers = document.querySelectorAll('[data-action~=audioPlayGroup]');\n\n containers.forEach(function (element) {\n onlyPlayOneIn(element);\n connectCustomPlayButtons(element);\n });\n\n\n // let phoneMessageConfiguratorPlayButtons = document.querySelector\n },\n\n initAhoy: function () {\n ahoy.configure({\n cookies: false\n });\n ahoy.debug();\n },\n\n addNavScrollEventListener: function () {\n let navElement = document.querySelector('[data-action~=\"nav-transparent-present\"]');\n let visibleState = false;\n\n if (navElement) {\n if (window.scrollY > 50) {\n navElement.classList.remove('nav--transparent');\n }\n\n document.addEventListener('scroll', function () {\n if (window.scrollY > 50 && visibleState === false) {\n navElement.classList.remove('nav--transparent');\n visibleState = true;\n }\n\n if (window.scrollY <= 50 && visibleState === true) {\n navElement.classList.add('nav--transparent');\n visibleState = false;\n }\n })\n }\n },\n\n addEventHandlerForSubscriptionSelection: function () {\n\n $('[data-action~=chooseSubscription]').on('click', function (e) {\n $(this).find('input[type=\"radio\"]').attr(\"checked\", true);\n $(this).closest('form').submit();\n });\n\n },\n\n initRadioSubscriptionPricingForm: function() {\n $('[data-action~=initRadioSubscriptionPricingForm]').on('change', function (e) {\n $(this).closest('form').submit();\n });\n\n },\n\n addFlashEventListener: function () {\n let flashElement = document.querySelector('[data-action~=\"initFlash\"]');\n\n if (flashElement) {\n let closeButton = flashElement.querySelector('[data-action-flash~=\"close\"]');\n\n if (closeButton) {\n closeButton.addEventListener('click', function (e) {\n e.preventDefault();\n flashElement.classList.add('flash--hidden');\n });\n\n setTimeout(function () {\n flashElement.classList.add('flash--hidden');\n }, 5000)\n }\n // flashElement.classList.add('flash--hidden');\n }\n },\n\n initToggleLink: function () {\n (function () {\n var linkNodes = document.querySelectorAll('[data-action~=\"initMenuSearchSwitch\"]'),\n i,\n linkNodesLength = linkNodes.length;\n\n for (i = 0; i < linkNodesLength; i += 1) {\n new ToggleLink(linkNodes[i], {\n targetToggleClass: 'nav__search-form-wrapper--visible',\n afterToggle: function () {\n var form = document.querySelector('#header-menu-search-form-wrapper');\n if (form.classList.contains('nav__search-form-wrapper--visible')) {\n form.querySelector('input').focus();\n }\n }\n });\n }\n }());\n\n (function () {\n var linkNodes = document.querySelectorAll('[data-action~=\"initMenuBurgerSwitch\"]'),\n i,\n linkNodesLength = linkNodes.length;\n\n for (i = 0; i < linkNodesLength; i += 1) {\n new ToggleLink(linkNodes[i], {\n targetToggleClass: 'overlay-menu--visible',\n lockBodyScrolling: true\n });\n }\n }());\n },\n\n initPwa: function () {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.register('/service-worker.js');\n }\n },\n\n initLazyLoading: function () {\n var lazyLoader = new LazyLoad();\n window.Audiocrowd.lazyLoader = lazyLoader;\n },\n\n initDropdown: function () {\n var dropdownNodes = document.querySelectorAll('[data-action~=\"initDropdown\"]'),\n i,\n dropdownNodesLength = dropdownNodes.length;\n\n for (i = 0; i < dropdownNodesLength; i += 1) {\n new Dropdown(dropdownNodes[i]);\n }\n },\n\n initCheckboxDropdown: function () {\n var dropdownNodes = document.querySelectorAll('[data-action~=\"initCheckboxDropdown\"]'),\n i,\n dropdownNodesLength = dropdownNodes.length;\n\n for (i = 0; i < dropdownNodesLength; i += 1) {\n new CheckboxDropdown(dropdownNodes[i]);\n }\n },\n\n addEventHandlerForTrackOriginatorSwitch: function () {\n let inputElement = $('[data-action~=initTrackOriginatorSwitch] input')[0];\n\n if (inputElement && inputElement.checked) {\n $('[data-originator-content]').hide();\n }\n\n $('[data-action~=initTrackOriginatorSwitch]').on('change', 'input', function (e) {\n e.preventDefault();\n $('[data-originator-content]').toggle();\n });\n\n },\n\n addEventHandlerForMusicSourceSelect: function () {\n let inputElement = document.querySelector('[data-action~=initMusicSourceSelect]'),\n audiocrowdComposerIdInput = document.querySelector('[data-action~=initMusicSourceSelectAudiocrowdComposerId]'),\n audiocrowdTrackIdInput = document.querySelector('[data-action~=initMusicSourceSelectAudiocrowdTrackId]'),\n externalComposerInfoInput = document.querySelector('[data-action~=initMusicSourceSelectExternalComposerInfo]');\n\n\n\n\n if (inputElement) {\n if (inputElement.value !== 'audiocrowd') {\n if (audiocrowdComposerIdInput && audiocrowdComposerIdInput.value === '') {\n audiocrowdComposerIdInput.parentElement.classList.add('hide-element');\n }\n \n if (audiocrowdTrackIdInput && audiocrowdTrackIdInput.value === '') {\n audiocrowdTrackIdInput.parentElement.classList.add('hide-element');\n }\n }\n\n if (inputElement.value !== 'external') {\n if (externalComposerInfoInput && externalComposerInfoInput.value === '') {\n externalComposerInfoInput.parentElement.classList.add('hide-element');\n }\n }\n \n\n\n\n inputElement.addEventListener('change', function(e) {\n if (e.target.value === 'audiocrowd') {\n audiocrowdComposerIdInput.parentElement.classList.remove('hide-element');\n audiocrowdTrackIdInput.parentElement.classList.remove('hide-element');\n } else {\n audiocrowdComposerIdInput.parentElement.classList.add('hide-element');\n audiocrowdTrackIdInput.parentElement.classList.add('hide-element');\n }\n\n if (e.target.value === 'external') {\n externalComposerInfoInput.parentElement.classList.remove('hide-element');\n } else {\n externalComposerInfoInput.parentElement.classList.add('hide-element');\n }\n })\n }\n },\n\n addEventHandlerForVoiceSourceSelect: function () {\n let inputElement = document.querySelector('[data-action~=initVoiceSourceSelect]'),\n audiocrowdComposerIdInput = document.querySelector('[data-action~=initVoiceSourceSelectAudiocrowdSpeakerId]'),\n externalComposerInfoInput = document.querySelector('[data-action~=initVoiceSourceSelectExternalSpeakerInfo]');\n\n\n if (audiocrowdComposerIdInput && audiocrowdComposerIdInput.value === '') {\n audiocrowdComposerIdInput.parentElement.classList.add('hide-element');\n }\n\n if (externalComposerInfoInput && externalComposerInfoInput.value === '') {\n externalComposerInfoInput.parentElement.classList.add('hide-element');\n }\n\n if (inputElement) {\n inputElement.addEventListener('change', function(e) {\n if (e.target.value === 'audiocrowd') {\n audiocrowdComposerIdInput.parentElement.classList.remove('hide-element');\n } else {\n audiocrowdComposerIdInput.parentElement.classList.add('hide-element');\n }\n\n if (e.target.value === 'external') {\n externalComposerInfoInput.parentElement.classList.remove('hide-element');\n } else {\n externalComposerInfoInput.parentElement.classList.add('hide-element');\n }\n })\n }\n },\n\n initCustomPlaylinks: function () {\n $('[data-action~=playTrack]').on('click', function (e) {\n let id = $(this).attr('data-play-track-id');\n\n e.preventDefault();\n\n global.EventHub.trigger('playTrack', id);\n });\n\n $('[data-action~=playTrackVariant]').on('click', function (e) {\n let id = $(this).attr('data-play-track-variant-id');\n\n e.preventDefault();\n\n global.EventHub.trigger('playTrackVariant', id);\n });\n\n $('[data-action~=playSoundEffect]').on('click', function (e) {\n let id = $(this).attr('data-play-sound-effect-id');\n\n e.preventDefault();\n\n global.EventHub.trigger('playSoundEffect', id);\n });\n\n $('[data-action~=playSpeakerAudio]').on('click', function (e) {\n let id = $(this).attr('data-play-speaker-audio-id');\n\n $('[data-action~=playSpeakerAudio]').removeClass('speaker-audio--active');\n $(this).addClass('speaker-audio--active');\n\n e.preventDefault();\n\n\n\n global.EventHub.trigger('playSpeakerAudio', id);\n });\n\n $('[data-action~=playVoiceRecording]').on('click', function (e) {\n var id = $(this).attr('data-play-voice-recording-id');\n\n e.preventDefault();\n global.EventHub.trigger('playVoiceRecording', id);\n });\n\n },\n\n initSort: function () {\n sortable('#sortable', {\n items: 'tr'\n });\n\n if (typeof sortable('#sortable')[0] != 'undefined') {\n sortable('#sortable')[0].addEventListener('sortupdate', function (e) {\n\n var elementsArray = Array.prototype.slice.call(this.children);\n\n var ids = [];\n\n elementsArray.forEach(function (element) {\n ids.push(element.dataset.id);\n })\n\n var dataList = ids.map(function (id) {\n return \"sortable_element[]=\" + id;\n }).join(\"&\")\n\n console.log(dataList);\n\n $.ajax({\n url: $(this).data(\"url\"),\n type: \"PATCH\",\n data: dataList\n });\n });\n }\n },\n\n\n addEventHandlerForCheckout: function () {\n $('[data-action~=removeTrackFromNewCheckout]').on('click', function (e) {\n e.preventDefault();\n $.ajax({\n url: \"/cart?track_id=\" + $(this).data('track-id'),\n type: 'POST'\n }).done(function (data) {\n let env = NODE_ENV === 'production' ? 'production' : 'development';\n let checkoutUrl = env === 'development' ? 'http://' + I18n.locale + '.localhost.dev:3000/c/checkouts/new' : 'https://' + I18n.locale + '.audiocrowd.net/c/checkouts/new';\n window.location.href = checkoutUrl;\n }.bind(this))\n });\n\n $('[data-action~=removeTrackFromExistingCheckout]').on('click', function (e) {\n e.preventDefault();\n $.ajax({\n url: \"/c/checkouts/\" + $(this).data('checkout-id') + \"/remove_license?id=\" + $(this).data('checkout-id') + '&usage_license_id=' + $(this).data('usage-license-id'),\n type: 'POST'\n }).done(function (data) {\n let env = NODE_ENV === 'production' ? 'production' : 'development';\n let checkoutUrl = env === 'development' ? 'http://' + I18n.locale + '.localhost.dev:3000/c/checkouts/' + $(this).data('checkout-id') + '/edit_selection' : 'https://' + I18n.locale + '.audiocrowd.net/c/checkouts/' + $(this).data('checkout-id') + '/edit_selection';\n window.location.href = checkoutUrl;\n }.bind(this))\n });\n },\n\n addEventHandlerForPhoneMessageOrderTemplateSelection: function () {\n let parentContainer = document.querySelector('[data-action~=initPhoneOrderTemplateSelection]');\n\n if (parentContainer) {\n parentContainer.addEventListener('change', function (event) {\n let target = event.target,\n selectNodesInItem,\n selectedSelect,\n textareaInItem,\n notSelectedSelect;\n\n if (target.nodeName === 'SELECT') {\n selectNodesInItem = target.parentNode.parentNode.parentNode.parentNode.querySelectorAll('select');\n textareaInItem = target.parentNode.parentNode.parentNode.parentNode.querySelector('textarea');\n selectedSelect = target;\n\n for (var i = 0; i < selectNodesInItem.length; i += 1) {\n if (selectNodesInItem[i] !== selectedSelect) {\n notSelectedSelect = selectNodesInItem[i];\n }\n }\n\n textareaInItem.innerHTML = selectedSelect.options[selectedSelect.selectedIndex].innerHTML.replace(/#[\\d,_A-Z]+\\s/i, '');\n notSelectedSelect.selectedIndex = 0;\n }\n\n });\n\n if (parentContainer) {\n let form = document.querySelector('form[id*=\"edit_phone_message_order\"]');\n\n form.querySelector('input[type=submit]').addEventListener('click', function (event) {\n event.preventDefault();\n let selectNodes = parentContainer.querySelectorAll('select');\n\n for (var j = 0; j < selectNodes.length; j += 1) {\n if (selectNodes[j].selectedIndex === 0) {\n selectNodes[j].remove();\n // selectNodes[j].disabled = true;\n } else {\n // selectNodes[j].disabled = false;\n }\n }\n\n form.submit();\n });\n }\n }\n },\n\n initCancellationPolicyForm: function() {\n let cancellationPolicyElement = document.querySelector('[data-action~=\"initCancellationPolicy\"]');\n\n if (cancellationPolicyElement) {\n let cancellationPolicyForm = new CancellationPolicyForm(cancellationPolicyElement);\n }\n },\n\n addScrollToEventListener: function () {\n $('a[data-action~=\"scrollTo\"]').on('click', function (e) {\n let href = $(this).attr('href');\n\n $('html, body').animate({\n scrollTop: $(href).offset().top - 200\n }, 'slow');\n\n e.preventDefault();\n });\n },\n\n addEventHandlerForPlayTracking: function () {\n global.EventHub.on('audioPlayerPlay', function () {\n var trackData = arguments[0][0],\n shouldTrack = $('[data-logged-in]').length === 0,\n freeTrackingMode = $('[data-free-tracking-mode]').length > 0;\n\n if (trackData && trackData.id) {\n if (shouldTrack && !freeTrackingMode) {\n if (typeof plausible === 'function') {\n plausible('track_play', { props: { track_id: trackData.id, title: trackData.title, location: window.location.href } });\n }\n\n ahoy.track('track_play', { track_id: trackData.id, title: trackData.title, location: window.location.href, categorization_processed: false })\n } else if (shouldTrack && freeTrackingMode) {\n if (typeof plausible === 'function') {\n plausible('track_play_free', { props: { track_id: trackData.id, title: trackData.title, location: window.location.href } });\n }\n\n ahoy.track('track_play_free', { track_id: trackData.id, title: trackData.title, location: window.location.href, categorization_processed: false })\n }\n }\n\n });\n },\n\n addEventListenerForNavSearch: function () {\n let searchInput = document.querySelector('.nav__search-input');\n let searchInputWrapper = document.querySelector('.nav__content');\n\n if (searchInput && searchInputWrapper) {\n searchInput.addEventListener('focus', function () {\n searchInputWrapper.classList.add('nav__content--search-active');\n });\n\n searchInput.addEventListener('blur', function () {\n searchInputWrapper.classList.remove('nav__content--search-active');\n });\n }\n },\n\n addEventHandlerForFavoriteTracking: function () {\n global.EventHub.on('trackFavorited', function () {\n let trackId = arguments[0][0],\n shouldTrack = $('[data-logged-in]').length === 0,\n freeTrackingMode = $('[data-free-tracking-mode]').length > 0;\n\n if (trackId) {\n if (shouldTrack && !freeTrackingMode) {\n if (typeof plausible === 'function') {\n plausible('track_favorite', { props: { track_id: trackId, location: window.location.href } });\n }\n ahoy.track('track_favorite', { track_id: trackId, location: window.location.href, categorization_processed: false })\n } else if (shouldTrack && freeTrackingMode) {\n if (typeof plausible === 'function') {\n plausible('track_favorite_free', { props: { track_id: trackId, location: window.location.href } });\n }\n\n ahoy.track('track_favorite_free', { track_id: trackId, location: window.location.href, categorization_processed: false })\n }\n }\n });\n },\n\n addEventHandlerForSoundEffectFavoriteTracking: function () {\n global.EventHub.on('soundEffectFavorited', function () {\n let sound_effect_id = arguments[0][0],\n shouldTrack = $('[data-logged-in]').length === 0,\n freeTrackingMode = $('[data-free-tracking-mode]').length > 0;\n\n if (sound_effect_id) {\n if (shouldTrack && !freeTrackingMode) {\n if (typeof plausible === 'function') {\n plausible('sound_effect_favorite', { props: { track_id: sound_effect_id, location: window.location.href } });\n }\n ahoy.track('sound_effect_favorite', { track_id: sound_effect_id, location: window.location.href, categorization_processed: false })\n } else if (shouldTrack && freeTrackingMode) {\n if (typeof plausible === 'function') {\n plausible('sound_effect_favorite_free', { props: { track_id: sound_effect_id, location: window.location.href } });\n }\n\n ahoy.track('sound_effect_favorite_free', { track_id: sound_effect_id, location: window.location.href, categorization_processed: false })\n }\n }\n });\n },\n\n initPriceInfo: function () {\n let priceInfo = new PriceInfo('[data-action~=\"initPriceInfo\"]', {\n currency: I18n.locale === 'de' ? '€' : '$'\n });\n },\n\n addEventHandlerForCustomTagInput: function () {\n let $input = $('[data-action~=initCustomTagInput]'),\n availableTags;\n\n function split(val) {\n return val.split(/,\\s*/);\n }\n\n function extractLast(term) {\n return split(term).pop();\n }\n\n if ($input.length > 0) {\n availableTags = $input.data('autocompletion-suggestions').split(', ');\n }\n\n\n $('[data-action~=initCustomTagInput]')\n // don't navigate away from the field on tab when selecting an item\n .bind(\"keydown\", function (event) {\n if (event.keyCode === $.ui.keyCode.TAB &&\n $(this).autocomplete(\"instance\").menu.active) {\n event.preventDefault();\n }\n })\n .autocomplete({\n minLength: 0,\n source: function (request, response) {\n // delegate back to autocomplete, but extract the last term\n response($.ui.autocomplete.filter(\n availableTags, extractLast(request.term)).slice(0, 20));\n\n },\n focus: function () {\n // prevent value inserted on focus\n return false;\n },\n select: function (event, ui) {\n var terms = split(this.value);\n // remove the current input\n terms.pop();\n // add the selected item\n terms.push(ui.item.value);\n // add placeholder to get the comma-and-space at the end\n terms.push(\"\");\n this.value = terms.join(\", \");\n return false;\n }\n });\n },\n\n\n addEventHandlerForTrackFormSubmit: function () {\n let that = this;\n\n $('.track-form form').on('submit', function () {\n var message = $(this).closest('.track-form').attr('data-upload-text');\n var heading = $(this).closest('.track-form').attr('data-upload-heading');\n\n that.showOverlay({\n 'heading': heading,\n 'message': message,\n 'icon': 'fa-cog fa-spin'\n });\n });\n },\n\n showOverlay: function (options) {\n var $overlay = $('.overlay-wrapper');\n\n if (options === undefined) {\n options = {};\n }\n\n if (options['icon'] === undefined) {\n options['icon'] = 'fa-info';\n }\n\n if (options['heading'] === undefined) {\n // TODO: Implement localization\n options['heading'] = \"Please wait\";\n }\n\n if (options['message'] === undefined) {\n // TODO: Implement localization\n options['message'] = \"Please wait\";\n }\n\n if ($overlay.length === 0) {\n this.initOverlay();\n $overlay = $('.overlay-wrapper');\n }\n $('.overlay-message').text(options['message']);\n $('.overlay-heading').text(options['heading']);\n\n $overlay.find('.overlay-icon i')[0].className = '';\n $overlay.find('.overlay-icon i').addClass('fa ' + options['icon']);\n\n $overlay.fadeIn(200);\n },\n\n hideOverlay: function () {\n $('.overlay-wrapper').fadeOut(200);\n },\n\n initOverlay: function () {\n $('').appendTo('body');\n },\n\n addEventHandlerForSearchForm: function () {\n $('[data-action~=trackSearchForm]').on('submit', function (e) {\n e.preventDefault();\n });\n },\n\n addEventHandlerForGlobalCloseClick: function () {\n let element = document.querySelector('[data-action~=global-close-click]');\n element.addEventListener('click', function (e) {\n let usageLicenseTypeSelectCondition = !(e.target.classList.contains('usage-license-type-select') || $(e.target).parents('.usage-license-type-select').length > 0),\n addToCartCondition = !(e.target.classList.contains('track__cart-link') || $(e.target).parents('.track__cart-link').length > 0),\n addToCartLinkCondition = !(e.target.classList.contains('track__action-button-add-to-cart') || $(e.target).parents('.track__action-button-add-to-cart').length > 0),\n cartCondition = !(e.target.classList.contains('cart') || $(e.target).parents('.cart').length > 0),\n trackFavoritesCondition = !(e.target.classList.contains('track-favorites') || $(e.target).parents('.track-favorites').length > 0),\n searchTabCondition = !(e.target.classList.contains('search-tab') || $(e.target).parents('.search-tab').length > 0),\n freeDownloadCondition = !(e.target.classList.contains('track__free-download') || $(e.target).parents('.track__free-download').length > 0),\n freeDownloadDialogCondition = !(e.target.classList.contains('track__free-download-dialog-wrapper') || $(e.target).parents('.track__free-download-dialog-wrapper').length > 0),\n checkboxDropdownCondition = !(e.target.classList.contains('checkbox-dropdown') || $(e.target).parents('.checkbox-dropdown').length > 0),\n dropdownCondition = !(e.target.classList.contains('dropdown') || $(e.target).parents('.dropdown').length > 0);\n\n if (usageLicenseTypeSelectCondition && addToCartCondition && addToCartLinkCondition && cartCondition && trackFavoritesCondition && searchTabCondition && freeDownloadCondition && freeDownloadDialogCondition && checkboxDropdownCondition && dropdownCondition) {\n global.EventHub.trigger('closePopupMenus');\n }\n })\n },\n\n initDirectFileUpload: function () {\n\n $('.directUpload').find('input:file').each(function (i, elem) {\n if (!elem.classList.contains('directUploadIgnore')) {\n this.initDirectFileUploadElement(elem, true);\n\n // var fileInput = $(elem);\n // var form = $(fileInput.parents('form:first'));\n // var submitButton = form.find('input[type=\"submit\"]');\n // var progressBar = $('
');\n // var barContainer = $('
').append(progressBar);\n // fileInput.after(barContainer);\n // fileInput.fileupload({\n // fileInput: fileInput,\n // url: form.data('url'),\n // type: 'POST',\n // autoUpload: true,\n // formData: form.data('form-data'),\n // paramName: 'file', // S3 does not like nested name fields i.e. name=\"user[avatar_url]\"\n // dataType: 'XML', // S3 returns XML if success_action_status is set to 201\n // replaceFileInput: false,\n // progressall: function (e, data) {\n // var progress = parseInt(data.loaded / data.total * 100, 10);\n // progressBar.css('width', progress + '%');\n // },\n // start: function () {\n // submitButton.prop('disabled', true);\n\n // progressBar.\n // css('background', 'green').\n // css('display', 'block').\n // css('width', '0%').\n // text('Uploading...');\n // },\n // done: function (e, data) {\n // submitButton.prop('disabled', false);\n // progressBar.text('Uploading done');\n\n // // extract key and generate URL from response\n // var key = $(data.jqXHR.responseXML).find('Key').text();\n // var url = '//' + form.data('host') + '/' + key;\n\n // // create hidden field\n // var input = $(' ', { type: 'hidden', name: fileInput.attr('name'), value: url });\n // form.append(input);\n\n // // remove file upload element to avoid duplicate upload time\n // fileInput.fadeOut(1000, function () { fileInput.remove(); });\n // },\n // fail: function (e) {\n // submitButton.prop('disabled', false);\n\n // progressBar.\n // css('background', 'red').\n // text('Upload failed');\n // }\n // });\n\n }\n }.bind(this));\n\n $(document).on('nested:fieldAdded', function (event) {\n var field = event.field;\n if (field.closest('form')[0].classList.contains('directUpload') && !field.closest('form')[0].classList.contains('directUpload--bulk-tracks')) {\n var inputElement = field[0].querySelector('input[type=\"file\"]')\n this.initDirectFileUploadElement(inputElement, false);\n } else if (field.closest('form')[0].classList.contains('directUpload') && field.closest('form')[0].classList.contains('directUpload--bulk-tracks')) {\n var inputElement = field[0].querySelector('input[type=\"file\"]')\n this.initDirectFileUploadElement(inputElement, true);\n }\n\n // Auto fill position\n var currentPositionInput = field[0].querySelector('input[type=number][name$=\"[position]\"]');\n var formerPositionInput = field[0].previousElementSibling && field[0].previousElementSibling.querySelector('input[type=number][name$=\"[position]\"]');\n\n if (currentPositionInput && currentPositionInput.value.length === 0) {\n if (formerPositionInput) {\n if (formerPositionInput.value.length === 0) {\n currentPositionInput.value = 1;\n } else {\n currentPositionInput.value = parseInt(formerPositionInput.value, 10) + 1;\n }\n } else {\n currentPositionInput.value = 1;\n }\n }\n\n }.bind(this));\n },\n\n initDirectFileUploadElement: function (fileInputElement, bulkUploadMode) {\n var fileInput = $(fileInputElement);\n var form = $(fileInput.parents('form:first'));\n var submitButton = form.find('input[type=\"submit\"]');\n var progressBar = $('
');\n var barContainer = $('
').append(progressBar);\n window.formDataAttributes = form.data('form-data');\n\n fileInput.after(barContainer);\n fileInput.fileupload({\n fileInput: fileInput,\n url: form.data('url'),\n type: 'POST',\n autoUpload: true,\n formData: formDataAttributes,\n paramName: 'file', // S3 does not like nested name fields i.e. name=\"user[avatar_url]\"\n dataType: 'XML', // S3 returns XML if success_action_status is set to 201\n replaceFileInput: false,\n progressall: function (e, data) {\n var progress = parseInt(data.loaded / data.total * 100, 10);\n progressBar.css('width', progress + '%');\n },\n\n add: function(e, data){\n console.log('directFileUpload this:', this);\n console.log('directFileUpload this.value:', this.value);\n\n let fileName = this.value.split(/[\\\\]+/).pop();\n console.log('directFileUpload fileName:', fileName);\n\n if (typeof fileName === 'undefined' || fileName.length == 0) {\n fileName = 'fallback_filename_' + Math.random().toString(36).slice(2, 7) + '.wav'\n console.log('directFileUpload fallbackFileName:', fileName);\n }\n\n let sanitizedFileName = Helpers.sanitizeFileName(fileName);\n console.log('directFileUpload sanitizedFileName:', sanitizedFileName);\n\n let initialKey = formDataAttributes.key.replace('${filename}', sanitizedFileName);\n formDataAttributes.key = initialKey;\n\n console.log('initialKey', initialKey);\n\n let newKey = formDataAttributes.key.replace(/\\/([A-Za-z0-9])\\w+.wav/, '/' + sanitizedFileName);\n formDataAttributes.key = newKey;\n\n console.log('newKey', newKey);\n\n data.formData = formDataAttributes;\n console.log('data:', data);\n data.submit();\n },\n start: function () {\n submitButton.prop('disabled', true);\n\n progressBar.\n css('background', 'green').\n css('display', 'block').\n css('width', '0%').\n text('Uploading...');\n },\n done: function (e, data) {\n var file = data.files[0];\n\n console.log('directFileUpload done file:', file);\n\n submitButton.prop('disabled', false);\n progressBar.text(file['name']);\n\n if (bulkUploadMode) {\n\n // var previewUrl = track.preview_url;\n // audioTag.src = track.preview_url;\n\n\n if (file['type'] === 'audio/mpeg' || file['type'] === 'audio/wav') {\n setTimeout(function () {\n var urls = document.querySelectorAll('input[type=hidden][name$=\"[s3_file_upload_url]\"');\n var url = urls[urls.length - 1].value;\n\n var audioElement = document.createElement('audio');\n audioElement.setAttribute('controls', '');\n var sourceElement = document.createElement('source');\n sourceElement.setAttribute('src', url);\n audioElement.appendChild(sourceElement);\n\n progressBar[0].parentNode.parentNode.appendChild(audioElement);\n // barContainer[0].style.display = 'none';\n barContainer[0].previousElementSibling.style.display = 'none'; // label\n barContainer[0].nextElementSibling.style.display = 'none'; // svg\n\n }, 2000)\n\n\n // album[bulk_track_uploads_attributes][1625863844504][s3_file_upload_url]\n\n\n\n\n\n\n\n\n // get length\n // Obtain the uploaded file, you can change the logic if you are working with multiupload\n var file = data.files[0];\n\n // Create instance of FileReader\n var reader = new FileReader();\n\n // When the file has been succesfully read\n reader.onload = function (event) {\n\n\n // (function() {\n // // LENGTH DETECTION\n\n // // Create an instance of AudioContext\n // var audioContext = new (window.AudioContext || window.webkitAudioContext)();\n\n // // Asynchronously decode audio file data contained in an ArrayBuffer.\n // audioContext.decodeAudioData(event.target.result, function(buffer) {\n // // Obtain the duration in seconds of the audio file (with milliseconds as well, a float value)\n // var duration = buffer.duration;\n // var minutes = Math.floor(duration / 60);\n // var seconds = Math.floor(duration - minutes * 60);\n // // example 12.3234 seconds\n\n // console.log(\"The duration of the song is of: \" + minutes + \":\" + seconds);\n\n // var titleInput = fileInput.closest('.fields')[0] ? fileInput.closest('.fields')[0].querySelector('input[name$=\"[title]\"]') : undefined;\n // var minutesInput = fileInput.closest('.fields')[0] ? fileInput.closest('.fields')[0].querySelector('input[name$=\"[minutes]\"]') : undefined;\n // var secondsInput = fileInput.closest('.fields')[0] ? fileInput.closest('.fields')[0].querySelector('input[name$=\"[seconds]\"]') : undefined;\n\n // if (minutesInput && secondsInput) {\n // minutesInput.value = minutes;\n // secondsInput.value = seconds;\n // }\n\n // if (titleInput && titleInput.value.length === 0) {\n // titleInput.value = file['name'];\n // }\n // // Alternatively, just display the integer value with\n // // parseInt(duration)\n // // 12 seconds\n\n // // In case that the file couldn't be read\n\n // });\n // }())\n\n\n\n\n (function () {\n var OfflineContext = window.OfflineAudioContext || window.webkitOfflineAudioContext;\n var offlineContext = new OfflineContext(2, 30 * 44100, 44100);\n\n offlineContext.decodeAudioData(event.target.result, function (buffer) {\n\n\n // LENGTH DETECTION\n var duration = buffer.duration;\n // var minutes = Math.floor(duration / 60);\n // var seconds = Math.floor(duration - minutes * 60);\n // example 12.3234 seconds\n\n var titleInput = barContainer.closest('.fields')[0] ? barContainer.closest('.fields')[0].querySelector('input[name$=\"[title]\"]') : undefined;\n var lengthInput = barContainer.closest('.fields')[0] ? barContainer.closest('.fields')[0].querySelector('input[name$=\"[length]\"]') : undefined;\n // var minutesInput = fileInput.closest('.fields')[0] ? fileInput.closest('.fields')[0].querySelector('input[name$=\"[minutes]\"]') : undefined;\n // var secondsInput = fileInput.closest('.fields')[0] ? fileInput.closest('.fields')[0].querySelector('input[name$=\"[seconds]\"]') : undefined;\n\n if (lengthInput) {\n lengthInput.value = Math.floor(duration);\n }\n\n if (titleInput && titleInput.value.length === 0) {\n var sanitizedTitle = file['name'].replace(/-/g, ' ').replace(/.mp3/g, '').replace(/.wav/g, '').replace(/.aiff/g, '').replace(/.aif/g, '').replace(/_/g, ' ');\n\n var capitalisedTitleArray = sanitizedTitle.split(\" \");\n\n //loop through each element of the array and capitalize the first letter.\n\n\n for (var i = 0; i < capitalisedTitleArray.length; i++) {\n capitalisedTitleArray[i] = capitalisedTitleArray[i].charAt(0).toUpperCase() + capitalisedTitleArray[i].slice(1);\n\n }\n\n //Join all the elements of the array back into a string\n //using a blankspace as a separator\n var capitalisedTitle = capitalisedTitleArray.join(\" \");\n\n titleInput.value = capitalisedTitle;\n }\n\n\n\n\n // BPM DETECTION\n\n // Create buffer source\n var source = offlineContext.createBufferSource();\n source.buffer = buffer;\n\n // Beats, or kicks, generally occur around the 100 to 150 hz range.\n // Below this is often the bassline. So let's focus just on that.\n\n // First a lowpass to remove most of the song.\n\n var lowpass = offlineContext.createBiquadFilter();\n lowpass.type = \"lowpass\";\n lowpass.frequency.value = 150;\n lowpass.Q.value = 1;\n\n // Run the output of the source through the low pass.\n\n source.connect(lowpass);\n\n // Now a highpass to remove the bassline.\n\n var highpass = offlineContext.createBiquadFilter();\n highpass.type = \"highpass\";\n highpass.frequency.value = 100;\n highpass.Q.value = 1;\n\n // Run the output of the lowpass through the highpass.\n\n lowpass.connect(highpass);\n\n // Run the output of the highpass through our offline context.\n\n highpass.connect(offlineContext.destination);\n\n // Start the source, and render the output into the offline conext.\n\n source.start(0);\n offlineContext.startRendering();\n });\n\n offlineContext.oncomplete = function (e) {\n var buffer = e.renderedBuffer;\n var peaks = getPeaks([buffer.getChannelData(0), buffer.getChannelData(1)]);\n var groups = getIntervals(peaks);\n\n var svg = document.querySelector('#svg');\n svg.innerHTML = '';\n var svgNS = 'http://www.w3.org/2000/svg';\n var rect;\n peaks.forEach(function (peak) {\n rect = document.createElementNS(svgNS, 'rect');\n rect.setAttributeNS(null, 'x', (100 * peak.position / buffer.length) + '%');\n rect.setAttributeNS(null, 'y', 0);\n rect.setAttributeNS(null, 'width', 1);\n rect.setAttributeNS(null, 'height', '100%');\n svg.appendChild(rect);\n });\n\n rect = document.createElementNS(svgNS, 'rect');\n rect.setAttributeNS(null, 'id', 'progress');\n rect.setAttributeNS(null, 'y', 0);\n rect.setAttributeNS(null, 'width', 1);\n rect.setAttributeNS(null, 'height', '100%');\n svg.appendChild(rect);\n\n svg.innerHTML = svg.innerHTML; // force repaint in some browsers\n\n var top = groups.sort(function (intA, intB) {\n return intB.count - intA.count;\n }).splice(0, 5);\n\n var tempoInput = barContainer.closest('.fields')[0] ? barContainer.closest('.fields')[0].querySelector('input[name$=\"[tempo]\"]') : undefined;\n\n if (tempoInput && tempoInput.value.length === 0 && top.length > 0) {\n tempoInput.value = top[0]['tempo']\n }\n };\n }())\n };\n\n reader.onerror = function (event) {\n console.error(\"An error ocurred reading the file: \", event);\n };\n\n // Read file as an ArrayBuffer, important !\n reader.readAsArrayBuffer(file);\n\n }\n\n }\n\n\n\n\n\n\n\n\n // extract key and generate URL from response\n var key = $(data.jqXHR.responseXML).find('Key').text();\n var url = '//' + form.data('host') + '/' + key;\n\n console.log('key: ', key);\n console.log('url: ', url);\n console.log('file:', file)\n\n debugger\n\n // create hidden field\n var input = $(' ', { type: 'hidden', name: fileInput.attr('name'), value: url });\n form.append(input);\n\n console.log('directFileUpload hidden_input:', input[0]);\n\n debugger\n\n // remove file upload element to avoid duplicate upload time\n fileInput.fadeOut(1000, function () { fileInput.remove(); });\n },\n fail: function (e) {\n submitButton.prop('disabled', false);\n\n progressBar.\n css('background', 'red').\n text('Upload failed');\n }\n });\n },\n\n addEventHandlerForRegistrationEmailCheck: function() {\n let registrationForm = document.querySelector('.registration-form');\n\n if (registrationForm) {\n registrationForm.addEventListener('submit', function(event) {\n let email = registrationForm.querySelector('input[type~=email]');\n let emailRegex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$/;\n \n if (!emailRegex.test(email.value)) {\n event.preventDefault();\n email.classList.add('error');\n } else {\n email.classList.remove('error');\n // you don't need to do anything here, the form will be submitted\n }\n });\n }\n },\n\n initMultiStepForm: function () {\n let formElement = document.querySelector('[data-action~=initMultiStepForm]');\n\n if (formElement) {\n formElement.addEventListener('change', function(e) {\n if (e.target.type !== 'checkbox') {\n this.submit();\n }\n })\n // formElement.addEventListener('click', function(e) {\n\n // if (e.target.classList.contains('multistep-form__tab-checkbox-label')) {\n // // do nothing\n // } else if (e.target.type === 'checkbox') {\n // // do nothing\n // } else {\n // this.submit();\n // }\n // // if (e.target.type !== 'checkbox' || !e.target.classList.contains('multistep-form__tab-checkbox-label')) {\n // // this.submit();\n // // }\n\n // // if (e.target.type !== 'checkbox' || !e.target.classList.contains('multistep-form__tab-checkbox-label')) {\n // // this.submit();\n // // }\n // })\n }\n },\n\n initTabby: function () {\n let tabs;\n if (document.querySelector('[data-tabs]')) {\n tabs = new Tabby('[data-tabs]');\n }\n },\n\n initElementCatapult: function () {\n global.EventHub.on('elementCatapult', function () {\n let type = arguments[0][0],\n sourceNode = arguments[0][1],\n targetNode,\n sourceNodePositionX,\n sourceNodePositionY,\n targetNodePositionX,\n targetNodePositionY,\n cloneElement;\n\n if (type && sourceNode) {\n if (type === 'cart') {\n\n targetNode = document.querySelector('.nav .cart');\n if (targetNode) {\n let sourceRect = sourceNode.getBoundingClientRect();\n let targetRect = targetNode.getBoundingClientRect();\n sourceNodePositionX = sourceRect.left;\n sourceNodePositionY = sourceRect.top;\n targetNodePositionX = targetRect.left;\n targetNodePositionY = targetRect.top;\n\n $(sourceNode)\n .css({ opacity: 0 })\n .clone()\n .css({ opacity: 1 })\n .css({ left: sourceNodePositionX, top: sourceNodePositionY })\n .addClass('catapult-item catapult-item--cart')\n .appendTo($('body'))\n\n setTimeout(function () {\n $(\".catapult-item\")\n .css({ left: targetNodePositionX + 20, top: targetNodePositionY - 5, opacity: 0 });\n }, 200);\n\n setTimeout(function () {\n $(\".catapult-item\")\n .css({ marginTop: 40 });\n }, 1000);\n\n setTimeout(function () {\n $(\".catapult-item\").remove();\n $(sourceNode)\n .css({ opacity: 1 })\n }, 1200);\n }\n }\n }\n });\n }\n}\n\nexport default globalModule;","// \n\nimport Helpers from '~/modules/Helpers.js';\n\nconst TrackTextGenerator = function(config) {\n let _defaultConfig;\n\n _defaultConfig = {\n selectorString : '[data-action~=\"initTrackTextGenerator\"]',\n beforeLoad : function(instance) {\n\n },\n afterLoad : function(instance) {\n\n }\n };\n\n this.config = Helpers.createConfigObject(config, _defaultConfig);\n\n // elements\n this.formContainer = undefined;\n this.targetContainer = undefined;\n this.outputDeContainerShort = undefined;\n this.outputEnContainerShort = undefined;\n this.outputDeContainerLong = undefined;\n this.outputEnContainerLong = undefined;\n this.sloganInputDe = undefined;\n this.sloganInputEn = undefined;\n this.generatorButton = undefined;\n this.copyButton = undefined;\n this.formData = {\n track: {\n title: '',\n tag_ids: [],\n instrument_ids: [],\n genre_ids: [],\n mood_ids: [],\n tag_ids: [],\n tempo: undefined,\n loop: false\n }\n }\n\n this.queryString = '';\n this.response = {};\n\n this._init();\n};\n\nTrackTextGenerator.prototype._init = function() {\n var container = document.querySelector(this.config.selectorString);\n\n this.config.beforeLoad(this);\n\n if (container) {\n this.formContainer = container;\n this.outputDeContainerShort = document.querySelector('[data-action~=trackTextGeneratorOutputDe]');\n this.outputEnContainerShort = document.querySelector('[data-action~=trackTextGeneratorOutputEn]');\n this.outputDeContainerLong = document.querySelector('[data-action~=trackTextGeneratorOutputDeLong]');\n this.outputEnContainerLong = document.querySelector('[data-action~=trackTextGeneratorOutputEnLong]');\n this.sloganInputDe = document.querySelector('[data-action~=trackTextGeneratorSloganInputDe]');\n this.sloganInputEn = document.querySelector('[data-action~=trackTextGeneratorSloganInputEn]');\n this.outputEnContainerLong = document.querySelector('[data-action~=trackTextGeneratorOutputEnLong]');\n this.generatorButton = document.querySelector('[data-action~=trackTextGeneratorButton]');\n this.generatorButton.addEventListener('click', function(e) {\n e.preventDefault();\n this.gatherFormData();\n this.sendData();\n }.bind(this));\n this.copyButton = document.querySelector('[data-action~=trackTextCopyButton]');\n this.copyButton.addEventListener('click', function() {\n document.querySelector('#track_translations_attributes_1_short_description').value = this.outputDeContainerShort.innerHTML;\n document.querySelector('#track_translations_attributes_1_description').value = this.outputDeContainerLong.innerHTML;\n document.querySelector('#track_translations_attributes_2_short_description').value = this.outputEnContainerShort.innerHTML;\n document.querySelector('#track_translations_attributes_2_description').value = this.outputEnContainerLong.innerHTML;\n }.bind(this));\n\n this.gatherFormData();\n this.sendData();\n }\n\n this.config.afterLoad(this);\n};\n\nTrackTextGenerator.prototype.gatherFormData = function() {\n this.formData['track']['title'] = encodeURI(document.querySelector('#track_title').value);\n this.formData['track']['tempo'] = parseInt(document.querySelector('#track_tempo').value, 10);\n this.formData['track']['loop'] = !!document.querySelector('#track_loop').value;\n\n var genreInputs = document.querySelectorAll('[name=\"track[genre_ids][]\"');\n genreInputs.forEach(function(input) {\n if (input.checked === true) {\n this.formData['track']['genre_ids'].push({name: '[genre_ids][]', value: parseInt(input.value, 10)});\n }\n }.bind(this));\n\n var tagInputs = document.querySelectorAll('[name=\"track[tag_ids][]\"');\n tagInputs.forEach(function(input) {\n if (input.checked === true) {\n this.formData['track']['tag_ids'].push({name: '[tag_ids][]', value: parseInt(input.value, 10)});\n }\n }.bind(this));\n\n var moodInputs = document.querySelectorAll('[name=\"track[mood_ids][]\"');\n moodInputs.forEach(function(input) {\n if (input.checked === true) {\n this.formData['track']['mood_ids'].push({name: '[mood_ids][]', value: parseInt(input.value, 10)});\n }\n }.bind(this));\n\n var instrumentInputs = document.querySelectorAll('.track_instrument_roles_instrument_id select');\n instrumentInputs.forEach(function(input) {\n this.formData['track']['instrument_ids'].push({name: '[instrument_ids][]', value: parseInt(input.value, 10)});\n }.bind(this));\n\n};\n\n\n\nTrackTextGenerator.prototype.sendData = function() {\n var that = this;\n var requestUrl = window.location.href.includes('/e/') ? \"/e/tracks/fetch_track_text?\" : \"/a/tracks/fetch_track_text?\"\n $.ajax({\n url: requestUrl + this.buildParamString(), // it should be mapped in routes.rb in rails\n method: \"GET\",\n dataType: \"json\"\n }).success(function(data) {\n var sloganDe = that.sloganInputDe.value;\n var sloganEn = that.sloganInputEn.value;\n that.outputDeContainerShort.innerHTML = sloganDe ? sloganDe + ' ' + data[\"de_short\"] : data[\"de_short\"];\n that.outputEnContainerShort.innerHTML = sloganEn ? sloganEn + ' ' + data[\"en_short\"] : data[\"en_short\"];\n that.outputDeContainerLong.innerHTML = sloganDe ? sloganDe + ' ' + data[\"de_long\"] : data[\"de_long\"];\n that.outputEnContainerLong.innerHTML = sloganEn ? sloganEn + ' ' + data[\"en_long\"] : data[\"en_long\"];\n });\n};\n\nTrackTextGenerator.prototype.buildParamString = function() {\n var string = '',\n index = 0;\n\n for (var property in this.formData['track']) {\n if (this.formData['track'].hasOwnProperty(property)) {\n if (index !== 0) {\n string += '&'\n }\n if (property === 'title' || property === 'tempo' || property === 'loop') {\n string += (property + '=' + this.formData['track'][property]);\n } else {\n var propertyIds = []\n var propertyName = []\n this.formData['track'][property].forEach(function(propertyObject) {\n propertyName = propertyObject['name'];\n propertyIds.push(propertyObject['value'])\n })\n string += (propertyName + '=' + propertyIds);\n }\n\n index++\n }\n }\n\n return string;\n};\n\nexport default TrackTextGenerator;","// // import $ from 'jquery';\n\n// $.ajaxSetup({\n// headers: {\n// 'X-CSRF-Token': $('meta[name=\"csrf-token\"]').attr('content')\n// }\n// });\n\nimport AudioPlayer from '~/modules/AudioPlayer.js';\nAudioPlayer.init();\n\nimport Cart from '~/components/legacy/Cart.jsx';\nimport Search from '~/components/legacy/Search.jsx';\nimport SearchMenuInvisible from '~/components/legacy/SearchMenuInvisible.jsx';\nimport SoundEffectInfo from '~/components/legacy/SoundEffectInfo.jsx';\nimport SoundEffectListing from '~/components/legacy/SoundEffectListing.jsx';\nimport SoundEffectSearchMenuInvisible from '~/components/legacy/SoundEffectSearchMenuInvisible.jsx';\nimport SoundEffectListingSortInputs from '~/components/legacy/SoundEffectListingSortInputs.jsx';\nimport SoundEffectSearch from '~/components/legacy/SoundEffectSearch.jsx';\nimport StaticTrackListing from '~/components/legacy/StaticTrackListing.jsx';\nimport TrackFavorites from '~/components/legacy/TrackFavorites.jsx';\nimport TrackInfo from '~/components/legacy/TrackInfo.jsx';\nimport TrackListing from '~/components/legacy/TrackListing.jsx';\nimport TrackListingSortInputs from '~/components/legacy/TrackListingSortInputs.jsx';\n\nimport confetti from 'canvas-confetti';\nwindow.confetti = confetti;\n\n// To see this message, add the following to the `` section in your\n// views/layouts/application.html.erb\n//\n// <%= vite_client_tag %>\n// <%= vite_javascript_tag 'application' %>\nconsole.log('Vite ⚡️ Rails')\n\n// If using a TypeScript entrypoint file:\n// <%= vite_typescript_tag 'application' %>\n//\n// If you want to use .jsx or .tsx, add the extension:\n// <%= vite_javascript_tag 'application.jsx' %>\n\nconsole.log('Visit the guide for more information: ', 'https://vite-ruby.netlify.app/guide/rails')\n\n// Example: Load Rails libraries in Vite.\n//\n// import * as Turbo from '@hotwired/turbo'\n// Turbo.start()\n//\n// import ActiveStorage from '@rails/activestorage'\n// ActiveStorage.start()\n//\n// // Import all channels.\n// const channels = import.meta.globEager('./**/*_channel.js')\n\n// Example: Import a stylesheet in app/frontend/index.css\n// import '~/index.css'\n\n// let cartElements = document.querySelectorAll('[data-react-component=Cart]');\n\n// cartElements.forEach(function(element) {\n// let reactProps = element.dataset.props;\n\n// ReactDOM.render(\n// \n// \n// ,\n// element\n// );\n// })\n\nimport globalModule from '~/modules/global.js';\n\nwindow.Audiocrowd = window.Audiocrowd || {};\nwindow.Audiocrowd.Global = globalModule;\n\ndocument.addEventListener('DOMContentLoaded', function() {\n globalModule.init();\n});\n\n\nimport TrackTextGenerator from '~/modules/TrackTextGenerator.js';\nwindow.Audiocrowd.TrackTextGenerator = TrackTextGenerator;\n"],"names":["AudioPlayer","id","that","initialTrackId","initialSpeakerAudioId","initialSoundEffectId","mediaElement","domObject","e","track_id","data","speakerAudioId","sound_effect_id","trackId","trackVariantId","soundEffectVariantId","voiceRecordingId","$waveformContainers","imgcount","$preloadWaveformContainer","switchLength","stream_url","CartItem","Component","constructor","props","playTrack","bind","handleRemoveClick","state","playing","componentDidMount","global","EventHub","on","setState","updateUrl","preventDefault","exposure_pack_id","usageLicenseType","$","ajax","url","type","done","trigger","render","price","discount","formatted_country_discount_gross_price","includedInSubscription","locale","formatted_country_gross_price","className","children","_jsx","href","onClick","_jsxs","title","name","Cart","cartList","setCartListRef","element","handleClick","opened","currencySymbol","recentlyUpdated","length","setTimeout","cartIsFree","isFree","forEach","cartItem","subscribedUsageLicenseTypes","includes","usage_license_type_id","getUsageLicenseTypeById","usageLicenseTypeId","match","usage_license_types","cartItems","submitButton","classes","limitHeading","map","index","free","flatrate_access","i18n","classNames","flatrateDownloadsToday","flatrateDownloadLimit","buttonText","checkout_now","shopping_cart","ref","defaultProps","elements","document","querySelectorAll","reactProps","JSON","parse","dataset","React","StrictMode","SearchTabName","handleChange","getItemNameForItemId","items","item","active","highlighted","icon","counter","label","iconClassName","proFilter","activeItems","SearchTabs","activeTab","newIndex","getTabContentChildren","activeTabIndex","Children","child","itemNames","tabContent","classesSearchTab","alignment","SearchTab","last","SearchTabContentItem","submitMenuItemClick","menuName","removeStyling","deleteLink","SearchTabContent","isActive","itemId","i","activeItemsLength","popularHeading","allHeading","log","push","filter","el","flat","prio","prioItems","SearchTabFilterContentItem","heading","value","submitExtendedFilterChange","checked","isExtendedFilterChecked","htmlFor","labels","SearchTabFilterContent","isExtendedFilterActive","category","activeItem","I18n","nameDe","nameEn","labelsDe","labelsEn","SearchTabProFilterContentItem","submitProFilterChange","isProFilterChecked","SearchTabProFilterContent","isProFilterActive","target","SearchMenuLengthInputs","$minInputValue","parseInt","refs","minField","val","$maxInputValue","maxField","tempoLengthChangeTimeout","clearTimeout","submitLengthChange","handleKeyPress","key","placeholder","onChange","onKeyPress","minLength","maxLength","undefined","SearchMenuQueryInput","queryField","setQueryField","submitQueryChange","handleKeyUp","which","onKeyUp","query","autocompletion","Search","searchRef","setSearchRef","handleTempoChange","toggleTempoSearch","handleSubmitSearchClick","submitQueryClick","submitMinLengthClick","submitMaxLengthClick","sendPaginationSearchQuery","genres","instruments","moods","tags","instoreTags","minTempo","maxTempo","tempoSearchActive","page","initialSearchQuery","composers","completedQuery","sortDirection","exposurePackId","mediaBundleId","labelId","albumId","sortBy","extendedFilters","drums","vocals","withVariants","loop","include_pro","UNSAFE_componentWillMount","stateObject","searchCloudItemIds","searchCategory","hasOwnProperty","setStateViaUrlParams","sendSearchQuery","payload","indexOf","splice","pageNumber","setQueryFromUrl","setExtendedFiltersFromUrl","setIdsFromUrlFor","setTempoFromUrl","setLabelFromUrl","setLengthFromUrl","setSortFromUrl","regex","matches","exec","location","search","matchesLength","queryText","replace","decodeURI","labelRegex","labelMatches","labelMatchesLength","paramString","pattern","RegExp","ids","matchId","includePro","minRegex","minMatches","minMatchesLength","minQueryText","maxRegex","maxMatches","maxMatchesLength","maxQueryText","drumRegex","drumMatches","drumMatchesLength","drumValue","vocalRegex","vocalMatches","vocalMatchesLength","vocalValue","includeProRegex","includeProMatches","includeProMatchesLength","includeProValue","variantsRegex","variantsMatches","variantsMatchesLength","variantsValue","loopRegex","loopMatches","loopMatchesLength","loopValue","shouldUpdate","extendedFiters","stateproFilter","directionRegex","directionMatches","directionMatchesLength","directionQueryText","sortByRegex","sortByMatches","sortByMatchesLength","sortByQueryText","arrayLength","removeIndex","shouldAddToArray","fieldValue","isChecked","extendedFiltersMenuHighlighted","isHighlighted","proFiltersMenuHighlighted","submitSortChange","getActiveSearchCriteriaCount","criteriaCount","hideCategoryFromUrl","getActiveSearchCriteriaCountWithHiddenCriterias","buildSearchQueryParams","omitPageParam","searchQueryParamsString","textQuery","elementValue","singularCategory","slice","text","endsWith","paginationMode","initialPageLoadQuery","searchQueryParams","newUrl","urlParams","beforeSend","success","history","pushState","prevParams","path","window","pathname","protocol","host","ga","searchCombinationHint","proFilters","titles","propTypes","PropTypes","string","console","SearchMenuInvisible","module","main","isWorker","workerSize","canUseWorker","noop","promise","func","ModulePromise","Prom","raf","TIME","frame","cancel","frames","lastFrameTime","cb","onFrame","time","timer","getWorker","worker","prom","resolves","decorate","execute","options","callback","canvas","offscreen","size","resolve","workerDone","msg","code","defaults","convert","transform","isOk","prop","onlyPositiveInt","number","randomInt","min","max","toDecimal","str","colorsToRgb","colors","hexToRgb","getOrigin","origin","setCanvasWindowSize","setCanvasRectSize","rect","getCanvas","zIndex","ellipse","context","x","y","radiusX","radiusY","rotation","startAngle","endAngle","antiClockwise","randomPhysics","opts","radAngle","radSpread","updateFetti","fetti","progress","x1","y1","x2","y2","rot","innerRadius","outerRadius","spikes","step","animate","fettis","resizer","animatingFettis","animationFrame","destroy","onDone","update","confettiCannon","globalOpts","isLibCanvas","allowResize","globalDisableForReducedMotion","shouldUseWorker","initialized","preferLessMotion","animationObj","fireLocal","particleCount","angle","spread","startVelocity","decay","gravity","drift","ticks","shapes","scalar","temp","startX","startY","fire","disableForReducedMotion","onResize","obj","defaultFire","getDefaultFire","confetti","UsageLicenseTypeSelectItem","handleAddClick","handleMouseEnter","handleMouseLeave","hover","plusButton","forFx","selected","usageLicenseTypeLabel","discountGrossPrice","grossPrice","count","onMouseEnter","onMouseLeave","UsageLicenseTypeSelect","handleUsageLicenseTypeViewChange","selectedItemId","viewSoundExposureLicenseTypes","updateCart","usageLicenseTypeIsSelected","selectedUsageLicenseTypeIds","getUsageLicenseTypeCount","visible","position","usageLicenseTypes","for_sound_exposure","description","formatted_description","for_fx","checkoutButton","pricingInfoLink","show_download_button","pricing_path","header","trackTitle","handleCartClick","SoundEffectInfo","handleLayoutDownloadClick","handleCartLinkClick","triggerDemoDownload","delegateFavoriteClick","handleShareClick","handleFavoriteClick","displayCopyHint","shareTrackingFired","layoutDownloadTrackingFired","isVariant","variantTitle","showUsageLicenseSelect","soundEffectFavorites","cart_items","soundEffectIsFavorited","favorites","favoritesLength","plausible","ahoy","track","categorization_processed","fbq","content_ids","toString","content_type","getSelectedUsageLicenseTypeIds","getBoundingClientRect","top","right","bottom","left","innerWidth","innerHeight","link","createElement","uri","isChrome","test","navigator","userAgent","vendor","isFirefox","toLowerCase","setAttribute","freeMode","body","appendChild","click","remove","share","display_title","showcase_url","copyToClipboard","style","select","execCommand","removeChild","getUsageLicenseSelect","addToCart","add_to_cart","usageLicensePosition","hide_add_to_cart","cartLink","favoriteLink","copyHint","shareLink","sound_effect_tags","tag","show_meta","hideActions","layout_download","tracks_in_cart","is_in_cart","checkout_path","open_in_new_tab","Pagination","handleNextClick","handlePrevClick","catchClick","current_page","total_pages","buildNextLinkHref","hrefText","currentParams","current_query","buildPrevLinkHref","prevLink","previous","nextLink","next","currentPage","SoundEffectBarebone","Math","random","SoundEffect","handlefreeDownloadBuyInShopClick","handlefreeDownloadAgreeClick","handleFreeDownloadClick","handleVariantClick","isHovered","showcaseUrl","win","open","focus","handlefreeDownloadRejectClick","next_sound_effect","prev_sound_effect","favorited","handleFreeDownloadDialogClick","handleSoundEffectTagClick","soundEffectTagId","variantId","truncate","substr","slim","recently_activated","search_in_progress","activeSoundEffectVariantId","exposure_pack","recentlyCreatedLabel","cartLinkIcon","usageLicenseTypeSelect","soundEffectLabels","nextButton","prevButton","composerInfo","soundEffectTagItems","layoutDownloadLink","freeDownloadDialog","showFreeDownloadDialog","rows","formatLength","minutes","floor","seconds","soundEffectVariants","sound_effect_variants","variant","activeTrackVariantId","soundEffectVariantInfo","recently_created","composerName","itemProp","composerUrl","hideItemIdList","sound_effect_tag_id_list","isActiveItem","getNameFor","inCart","remove_from_cart","itemScope","itemType","content","copyrightYear","dangerouslySetInnerHTML","__html","sound_effect_image_markup","hideAddToCart","youtube_content_id_enabled","UsageLicenseTypeSelectItemSidebar","addToCartButton","UsageLicenseTypeSelectSidebar","src","cover_image_path","trackCount","totalDuration","SoundEffectListing","showUsageLicenseSelectForSoundEffectId","showFreeDownloadDialogForSoundEffectId","pagination","active_sound_effect_id","currentQuery","soundEffectTags","searchInProgress","animationFinished","sound_effects","scrollToListStart","scrollTop","offset","indexOfSoundEffectId","trackListing","soundEffectIsInCart","cartItemsLength","isUsageLicenseSelectVisible","isFreeDownloadDialogVisible","shouldRenderUsageLicenseTypeSelect","shouldRender","getContent","itemName","getSelectedUsageLicenseTypeIdsForExposurePack","activeSoundEffectId","similarSoundEffectHeading","clientListing","soundEffects","soundEffect","nextProps","currentProps","composer_name","composer_url","description_de","description_en","copyright_year","score","nextSoundEffect","prevSoundEffect","prevProps","soundEffectShow","_createElement","show_pagination","total_count","genre_id","composer_page_permalink","spinner","smiley","soundEffectsDuration","soundEffectCount","duration","tracks","t","showHeading","totalCount","next_page","prev_page","SoundEffectSearchMenuInvisible","soundEffectId","componentWillMount","SoundEffectListingSortInputs","handleDateDescClick","handleLengthAscClick","handleLengthDescClick","handlePopularityDescClick","getClassName","SoundEffectSearch","StaticTrack","next_track","prev_track","handleTagClick","tagId","handleGenreClick","genreId","handleMoodClick","moodId","trackLabels","track_variants","track_image_markup","StaticTrackListing","showUsageLicenseSelectForTrackId","showFreeDownloadDialogForTrackId","active_track_id","trackFavorites","indexOfTrackId","trackIsInCart","trackIsFavorited","activeTrackId","short_description","genre_id_list","tag_id_list","mood_id_list","track_image","nextTrack","prevTrack","TrackFavorite","SoundEffectFavorite","playSoundEffect","TrackFavorites","trackFavoritesList","setTrackFavoritesList","trackFavoritesData","track_favorites_data","soundEffectFavoritesData","sound_effect_favorites_data","trackFavorite","soundEffectFavorite","concat","TrackInfo","instrument","mood","genre","variableTempo","TrackBarebone","Track","purchased","purchasedLabel","proListElement","trackDetailsLink","genreItems","tagItems","moodItems","bundleItems","exposurePackMode","trackVariants","trackVariantInfo","royaltyFree","pro_short_name","purchaseCount","included_media_bundles","mediaBundle","permalink","media_bundle_id","publicPerformanceTitle","TrackListing","setTrackListing","trackIsPurchased","purchasedTrackIds","trackPurchaseCount","similarTrackHeading","public_performance_title","royalty_free","trackShow","proStateHint","tracksDuration","exposurePackPreviewMode","TrackListingSortInputs","LazyLoad","_defaultConfig","elementsLength","doc","lastScrollPosition","scrollingCallback","currentScrollTopPosition","scrollingDirection","loadingRetryIndex","windowHeight","elemRect","node","invisibleElements","invisibleElementsLength","isInvisible","switchAttributes","switchAttributesLength","dataAttributeValue","fn","throttleTime","scope","deferTimer","now","args","Helpers","configObject","defaultObject","mergedObject","possiblyANumber","targetObject","senderObject","evt","fnc","referenceNode","newNode","selector","selectors","fileName","umlautMap","sanitizedFileName","CancellationPolicyForm","config","CheckboxDropdown","activeElements","originDropdownContainerElement","checkedElements","Dropdown","ToggleLink","linkNode","targetContainer","openCallback","PriceInfo","selectorString","instance","containersLength","containers","selectBoxes","selectBoxesLength","taxAmount","prevPriceElement","selectBox","vatPrice","priceString","vatString","grossPriceString","container","tax","gross","ProductFetcher","buttonNode","productId","urlString","reject","xhr","getPeaks","partSize","parts","peaks","j","volume","a","b","getIntervals","groups","peak","group","interval","globalModule","button","selectElements","netPriceElements","netPriceWithoutDiscountElements","selectElement","selectedOption","netPrice","netPriceWithoutDiscount","netPriceElement","netPriceWithoutDiscountElement","form","speakerLabel","trackLabel","trackSelected","speakerSelected","optionsValid","copyButtons","copyContainer","onlyPlayOneIn","event","audio_elements","audio_element","connectCustomPlayButtons","playButtons","audioElements","playButton","audioElement","navElement","visibleState","flashElement","closeButton","linkNodes","linkNodesLength","lazyLoader","dropdownNodes","dropdownNodesLength","inputElement","audiocrowdComposerIdInput","audiocrowdTrackIdInput","externalComposerInfoInput","elementsArray","dataList","checkoutUrl","parentContainer","selectNodesInItem","selectedSelect","textareaInItem","notSelectedSelect","selectNodes","cancellationPolicyElement","trackData","shouldTrack","freeTrackingMode","searchInput","searchInputWrapper","$input","availableTags","split","extractLast","term","request","response","ui","terms","message","$overlay","usageLicenseTypeSelectCondition","addToCartCondition","addToCartLinkCondition","cartCondition","trackFavoritesCondition","searchTabCondition","freeDownloadCondition","freeDownloadDialogCondition","checkboxDropdownCondition","dropdownCondition","elem","field","currentPositionInput","formerPositionInput","fileInputElement","bulkUploadMode","fileInput","progressBar","barContainer","initialKey","newKey","file","urls","sourceElement","reader","OfflineContext","offlineContext","buffer","titleInput","lengthInput","sanitizedTitle","capitalisedTitleArray","capitalisedTitle","source","lowpass","highpass","svg","svgNS","intA","intB","tempoInput","input","registrationForm","email","formElement","sourceNode","targetNode","sourceNodePositionX","sourceNodePositionY","targetNodePositionX","targetNodePositionY","sourceRect","targetRect","TrackTextGenerator","genreInputs","tagInputs","moodInputs","instrumentInputs","requestUrl","sloganDe","sloganEn","property","propertyIds","propertyName","propertyObject","init","Audiocrowd","Global","addEventListener"],"mappings":"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"}