{"version":3,"file":"js/1722-8f1abdb8f9e1b7708073.chunk.js","mappings":"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","sources":["webpack://artfully-walls/./app/javascript/arts/actions/works.js","webpack://artfully-walls/./app/javascript/arts/components/category/category_description.js","webpack://artfully-walls/./app/javascript/arts/components/works/index.js","webpack://artfully-walls/./app/javascript/arts/components/category/category_style.js","webpack://artfully-walls/./app/javascript/arts/components/category/header.js","webpack://artfully-walls/./app/javascript/arts/components/category/index.js","webpack://artfully-walls/./app/javascript/arts/components/category/style.js","webpack://artfully-walls/./app/javascript/arts/components/category/styles.module.scss?215b"],"sourcesContent":["import Constants from 'arts/config/constants';\nimport { loadWorksPageApi, fetchArtFiltersApi } from 'arts/config/api';\nimport { buildFetchWorksPage } from 'arts/config/works_loader_actions';\n\nconst artFiltersFetched = (filters) => ({\n type: Constants.ArtFilters.FETCH_SUCCESS,\n filters\n});\n\nexport const fetchWorksPage = buildFetchWorksPage(Constants.Works, loadWorksPageApi, 'works');\n\nexport const fetchArtFilters = () => (dispatch) => {\n fetchArtFiltersApi().then(\n (data) => dispatch(artFiltersFetched(data))\n ).catch(() => {});\n};\n","import React, { useState, useMemo, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport ReactMarkdown from 'react-markdown';\nimport { loadPageDescriptionApi } from 'arts/config/api';\nimport * as AppClasses from '../Application/styles.module.scss';\nimport * as Classes from './styles.module.scss';\n\nconst CategoryDescription = ({ description, skipShowMore, loadadble }) => {\n const [showMore, setShowMore] = useState(!!skipShowMore);\n const [renderDescription, setRenderDescription] = useState(description);\n\n useEffect(() => {\n setRenderDescription(description);\n }, [description]);\n\n useEffect(() => {\n if (loadadble) {\n loadPageDescriptionApi().then(res => setRenderDescription(res.description)).catch(() => {});\n }\n }, [loadadble, description, window.location.href]);\n\n const button = useMemo(() => {\n if (skipShowMore) return null;\n if (showMore) {\n return (\n \n );\n }\n return (\n \n );\n }, [showMore, skipShowMore]);\n\n if (!renderDescription) return null;\n\n return (\n
\n
\n \n { renderDescription }\n \n { button }\n
\n
\n );\n};\n\nCategoryDescription.propTypes = {\n description: PropTypes.string,\n skipShowMore: PropTypes.bool,\n loadadble: PropTypes.bool\n};\n\nexport default CategoryDescription;\n","import { connect } from 'react-redux';\nimport {\n fetchWorksPage, fetchArtFilters\n} from 'arts/actions/works';\nimport Works from './works';\n\nconst mapStateToProps = (\n {\n works: {\n collection, error, loading, page, totalPages, loadedAt\n },\n artFilters: { filters }\n }\n) => ({\n works: collection,\n error,\n loading,\n page,\n totalPages,\n artFilters: filters,\n loadedAt,\n gtmSection: 'art prints'\n});\n\nexport default connect(mapStateToProps, {\n fetchWorksPage,\n fetchArtFilters\n})(Works);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport Works from '../works';\nimport Header from './header';\nimport CategoryDescription from './category_description';\n\nconst CategoryStyle = ({\n headerTitle,\n desktopImageHref,\n mobileImageHref,\n color,\n description,\n loadableDescription,\n ...rest\n}) => {\n const hasTitle = !!headerTitle;\n const theHeader = hasTitle ? (\n \n ) : null;\n\n return (\n <>\n { theHeader }\n \n \n \n );\n};\n\nCategoryStyle.propTypes = {\n headerTitle: PropTypes.string,\n desktopImageHref: PropTypes.string,\n mobileImageHref: PropTypes.string,\n description: PropTypes.string,\n color: PropTypes.string,\n loadableDescription: PropTypes.bool\n};\n\nexport default CategoryStyle;\n","import React from 'react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport * as AppClasses from '../Application/styles.module.scss';\nimport * as Classes from './styles.module.scss';\n\nexport const CategoryPrints = () => (\n

\n A hand-picked collection of fine art prints\n
\n Unique framing options\n
\n Pre-designed gallery walls\n

\n);\n\nCategoryPrints.propTypes = {\n title: PropTypes.string\n};\n\nconst CategoryHeader = ({\n title,\n desktopImageHref,\n mobileImageHref,\n color\n}) => {\n const styleD = { backgroundImage: `url(${ desktopImageHref })` };\n const styleM = { backgroundImage: `url(${ mobileImageHref })` };\n const bgStyle = {\n backgroundColor: `#${ color || 'fff' }`\n };\n\n const dImage = desktopImageHref ? (\n
\n ) : null;\n\n const mImage = mobileImageHref ? (\n
\n ) : (\n
\n );\n\n return (\n
\n
\n { mImage }\n
\n

{ title }

\n \n
\n { dImage }\n
\n
\n );\n};\n\nCategoryHeader.propTypes = {\n title: PropTypes.string.isRequired,\n desktopImageHref: PropTypes.string.isRequired,\n mobileImageHref: PropTypes.string.isRequired,\n color: PropTypes.string\n};\n\nexport default CategoryHeader;\n","import { connect } from 'react-redux';\nimport CategoryStyle from './category_style';\nimport { WITH_CATEGORY_ID } from '../works/works';\n\nconst ART_PRINTS = ' Art Prints';\n\nexport const dyanamicMapToProps = (filterKey) => (\n {\n artFilters: { filters }\n },\n {\n location: { pathname }\n }\n) => {\n const entries = pathname.split(/\\//);\n const currentId = entries[3];\n const index = (filters || []).findIndex(v => v.key === filterKey);\n\n if (index < 0) {\n return {};\n }\n\n const headers = filters[index].options.filter((v) => v.header).map(v => v.header);\n const header = headers.find(h => h.slug === currentId);\n if (header) {\n if (entries.length === 5 && filterKey === 'with_style_id') {\n // /art-prints/style/impressionist/botanicals\n const cIndex = (filters || []).findIndex(v => v.key === 'with_category_id');\n const cHeaders = filters[cIndex].options.filter((v) => v.header).map(v => v.header);\n const cHeader = cHeaders.find(h => h.slug === entries[4]);\n if (cHeader) {\n const { headerTitle: cHeaderTitle } = cHeader;\n if (cHeaderTitle) {\n const injectTitle = cHeaderTitle.replace(ART_PRINTS, '');\n const { headerTitle, ...restOfHeader } = header;\n const newTitle = `${ headerTitle.replace(ART_PRINTS, '') } ${ injectTitle }${ ART_PRINTS }`;\n return {\n ...restOfHeader,\n headerTitle: newTitle\n };\n }\n }\n }\n // /art-prints/style/impressionist\n return header;\n }\n\n let cName = null;\n const mainCategory = filters[index].options.find(\n v => v.slug === currentId || v.id === currentId\n );\n\n let loadableDescription = false;\n\n if (mainCategory) {\n cName = mainCategory.name;\n if (filterKey !== 'with_price') {\n cName = `${ cName } Prints`;\n }\n loadableDescription = mainCategory.loadableDescription;\n }\n\n const { defaultHeader } = filters[index];\n if (defaultHeader) {\n return {\n ...defaultHeader,\n headerTitle: cName,\n loadableDescription\n };\n }\n\n const otherHeader = filters.find(f => f.key === WITH_CATEGORY_ID)\n .options.find(v => v.allPrints).header;\n\n if (filterKey === 'by_color') {\n if (entries.length === 3 && filters[index].mapping[entries[2]]) {\n cName = `${ entries[2].toUpperCase() } Art Prints`;\n } else {\n cName = ART_PRINTS;\n }\n }\n\n if (otherHeader) {\n return {\n ...otherHeader,\n headerTitle: cName\n };\n }\n\n return {};\n};\n\nexport const mapHiddenCategory = (key) => ({ artFilters: { filters } }) => {\n if (!(filters || []).length) { return {}; }\n const defaultHeader = filters\n .find(f => f.key === WITH_CATEGORY_ID).options.find(v => v[key]).header;\n return defaultHeader;\n};\n\nconst mapStateToProps = (state, props) => dyanamicMapToProps(WITH_CATEGORY_ID)(state, props);\n\nexport default connect(mapStateToProps, {})(CategoryStyle);\n","import { connect } from 'react-redux';\nimport CategoryStyle from './category_style';\nimport { dyanamicMapToProps } from './index';\nimport { WITH_STYLE_ID } from '../works/works';\n\nconst mapStateToProps = (state, props) => dyanamicMapToProps(WITH_STYLE_ID)(state, props);\n\nexport default connect(mapStateToProps, {})(CategoryStyle);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"GnTxdLjaEAveUAPAK3Vg\";\nvar _2 = \"fHvf_erHDz6DUBG_TlfU\";\nvar _3 = \"SHYWF0Nt0E1U9D9FgA7L\";\nvar _4 = \"ZH_xP52rJyit3BsoOKMV\";\nvar _5 = \"hwtBvA5Gzgvnx6eDE27P\";\nvar _6 = \"Uctz7l38jJxS11gPk0E4\";\nvar _7 = \"wiVGqipIp7M28JdA_07g\";\nvar _8 = \"tGyt_x2fGxoqlBqCw7g1\";\nexport { _1 as \"description\", _2 as \"header\", _3 as \"headerText\", _4 as \"imgD\", _5 as \"imgM\", _6 as \"imgMHolder\", _7 as \"showLess\", _8 as \"showMore\" }\n"],"names":["fetchWorksPage","buildFetchWorksPage","Constants","Works","loadWorksPageApi","fetchArtFilters","dispatch","fetchArtFiltersApi","then","data","filters","type","ArtFilters","FETCH_SUCCESS","catch","CategoryDescription","description","skipShowMore","loadadble","showMore","setShowMore","useState","renderDescription","setRenderDescription","useEffect","loadPageDescriptionApi","res","window","location","href","button","useMemo","React","className","Classes","onClick","AppClasses","classnames","ReactMarkdown","connect","mapStateToProps","works","collection","error","loading","page","totalPages","loadedAt","artFilters","gtmSection","CategoryStyle","headerTitle","desktopImageHref","mobileImageHref","color","loadableDescription","rest","theHeader","Header","title","kind","CategoryPrints","CategoryHeader","styleD","backgroundImage","styleM","bgStyle","backgroundColor","dImage","style","mImage","ART_PRINTS","dyanamicMapToProps","filterKey","pathname","entries","split","currentId","index","findIndex","v","key","header","options","filter","map","find","h","slug","length","cHeader","cHeaderTitle","injectTitle","replace","restOfHeader","cName","mainCategory","id","name","defaultHeader","otherHeader","f","WITH_CATEGORY_ID","allPrints","mapping","toUpperCase","mapHiddenCategory","state","props","WITH_STYLE_ID","_1","_2","_3","_4","_5","_6","_7","_8"],"sourceRoot":""}