{ "version": 3, "sources": ["../../src/modern/features/discover/components/sortingbar/index.js", "../../src/modern/features/discover/components/sortingbar/styles.js", "../../src/modern/features/discover/services.js", "../../src/modern/utils/extraFields.js"], "sourcesContent": ["import React from 'react'\nimport PropTypes from 'prop-types'\nimport MediaQuery from 'react-responsive'\n\nimport { tc, tnc } from '@ulule/localize'\nimport { DropdownFilter } from '@ulule/owl-kit-components'\n\nimport * as S from './styles'\n\nconst getTitle = (context = 'discover', projectCount, { tagName }) => {\n switch (context) {\n case 'discover':\n return tnc('[strong: %(nb)d beautiful story]', '[strong: %(nb)d beautiful stories] sorted by', projectCount, {\n nb: projectCount,\n strong: \n })\n case 'category':\n case 'channel': {\n if (projectCount === 0) {\n return tc('[strong: No %(tagName)s projects] corresponding to this filter', {\n strong: ,\n tagName\n })\n }\n\n return tnc(\n '[strong: %(nb)d %(tagName)s project]',\n '[strong: %(nb)d %(tagName)s projects] sorted by',\n projectCount,\n {\n nb: projectCount,\n strong: ,\n tagName\n }\n )\n }\n default:\n break\n }\n}\n\nconst SortingBar = ({ context, count, currentSorting, labelOptions, sorting, updateSorting, withBigTitle }) => (\n \n {getTitle(context, count, labelOptions)}\n {count > 1 && (\n \n {\n updateSorting({ value: event.target.value })\n }}\n />\n \n )}\n {count > 1 && (\n \n \n \n )}\n \n)\n\nSortingBar.defaultProps = {\n context: 'discover',\n labelOptions: {},\n withBigTitle: false\n}\n\nSortingBar.propTypes = {\n context: PropTypes.string,\n count: PropTypes.number,\n currentSorting: PropTypes.string.isRequired,\n labelOptions: PropTypes.shape({\n tagName: PropTypes.string\n }),\n sorting: PropTypes.array.isRequired,\n updateSorting: PropTypes.func.isRequired,\n withBigTitle: PropTypes.bool\n}\n\nexport default SortingBar\n", "import styled from 'styled-components'\n\nexport const SortingBarContainer = styled.div`\n position: relative;\n display: flex;\n flex-flow: row nowrap;\n justify-content: center;\n align-items: baseline;\n margin: 0;\n padding: 0;\n opacity: ${props => (props.isHidden ? 0 : 1)};\n transition: opacity 250ms ease-in-out;\n font-size: 13px;\n font-weight: 300;\n\n > span:first-child {\n margin-right: 5px;\n }\n\n > span + span {\n margin-left: 4px;\n }\n\n @media screen and (max-width: 767px) {\n ${props =>\n props.withBigTitle &&\n `\n display: block;\n text-align: center;\n `}\n }\n`\n", "import qs from 'qs'\n\nimport { api } from '$utils/apiRequester'\nimport { projectSearchFieldsForGuests, projectSearchFieldsForUsers } from '$utils/extraFields'\n\nconst stringifyQualifiers = input => {\n return Object.keys(input)\n .filter(key => input[key] && input[key].length > 0)\n .map(key => {\n if (Array.isArray(input[key])) {\n return input[key].map(value => `${key}:${value}`).join('+')\n } else {\n return `${key}:${input[key]}`\n }\n })\n .join('+')\n}\n\nconst getQuerySearch = (searchText, qualifiers) => {\n return [searchText, stringifyQualifiers(qualifiers)].filter(value => value && value.length > 0).join('+')\n}\n\nconst BASE_SEARCH_API = '/search/projects'\n\nexport const fetchSearchProjects = (search = '', qualifiers, params = {}, withAccessToken) => {\n const extraFields = withAccessToken ? projectSearchFieldsForUsers : projectSearchFieldsForGuests\n const query = qs.stringify(\n {\n q: getQuerySearch(search, qualifiers),\n extra_fields: extraFields.join(','),\n ...params\n },\n { encode: false }\n )\n\n const character = query.length > 0 ? '?' : ''\n const endpoint = `${BASE_SEARCH_API}${character}${query}`\n\n return api('ulule')\n .get(endpoint, {\n withAccessToken\n })\n .catch(error => {\n throw error\n })\n}\n\nexport const fetchSearchMoreProjects = (next, withAccessToken) => {\n const endpoint = `${BASE_SEARCH_API}${next}`\n\n return api('ulule')\n .get(endpoint, {\n withAccessToken\n })\n .catch(error => {\n throw error\n })\n}\n", "const projectSearchExtraFields = {\n guests: ['main_image', 'main_tag', 'owner', 'partnerships', 'avatar_image'],\n users: ['user_role'],\n}\n\nexport const projectSearchFieldsForGuests = projectSearchExtraFields.guests\nexport const projectSearchFieldsForUsers = [...projectSearchExtraFields.guests, ...projectSearchExtraFields.users]\n"], "mappings": "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", "names": ["init_define_process_env", "init_sentry_release_injection_stub", "import_react", "import_prop_types", "import_localize", "init_define_process_env", "init_sentry_release_injection_stub", "_a", "SortingBarContainer", "src_default", "__template", "props", "getTitle", "context", "projectCount", "tagName", "React", "SortingBar", "count", "currentSorting", "labelOptions", "sorting", "updateSorting", "withBigTitle", "SortingBarContainer", "MediaQuery", "DropdownFilter_default", "event", "PropTypes", "sortingbar_default", "init_define_process_env", "init_sentry_release_injection_stub", "import_qs", "init_define_process_env", "init_sentry_release_injection_stub", "projectSearchExtraFields", "projectSearchFieldsForGuests", "projectSearchFieldsForUsers", "stringifyQualifiers", "input", "key", "value", "getQuerySearch", "searchText", "qualifiers", "BASE_SEARCH_API", "fetchSearchProjects", "search", "params", "withAccessToken", "extraFields", "projectSearchFieldsForUsers", "projectSearchFieldsForGuests", "query", "qs", "__spreadValues", "character", "endpoint", "api", "error", "fetchSearchMoreProjects", "next"] }