{"version":3,"file":"js/wall_builder.80b4c989-c58f97daf4e8fd2ff9b2.js","mappings":"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","sources":["webpack://artfully-walls/./app/javascript/arts/components/PapersMenu/mount.js","webpack://artfully-walls/./app/javascript/arts/components/PapersMenu/mat_color.js","webpack://artfully-walls/./app/javascript/arts/components/PapersMenu/mounts.js","webpack://artfully-walls/./app/javascript/arts/components/Radio/index.js","webpack://artfully-walls/./app/javascript/arts/components/Radio/styles.module.scss?0458","webpack://artfully-walls/./app/javascript/arts/components/Social/pin_it.js","webpack://artfully-walls/./app/javascript/arts/components/Social/styles.module.scss?b676","webpack://artfully-walls/./app/javascript/arts/components/works/color_filters.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/panel.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/works.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/favoriteWorks.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/work_details.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/custom_image.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/wall_paper.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/canvas.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/undos.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/export.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/current_index.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/saving_wall.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/more_like_this.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/hangings.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/crop.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/pin.js","webpack://artfully-walls/./app/javascript/wall_builder/reducers/index.js","webpack://artfully-walls/./app/javascript/wall_builder/config/store.js","webpack://artfully-walls/./app/javascript/arts/config/parseFB.js","webpack://artfully-walls/./app/javascript/arts/components/ArtistWorks/share.js","webpack://artfully-walls/./app/javascript/wall_builder/components/command_bar/classes.module.scss?8cce","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/undo.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/zoom_in.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/zoom_out.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/ruler.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/save.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/info.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/export.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/silhouette.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/add_other.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/new_wall.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/new_wall_plus.js","webpack://artfully-walls/./app/javascript/wall_builder/components/command_bar/subtitle.js","webpack://artfully-walls/./app/javascript/wall_builder/components/command_bar/command_bar.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/panel.js","webpack://artfully-walls/./app/javascript/wall_builder/config/api.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/works.js","webpack://artfully-walls/./app/javascript/wall_builder/selectors/work_sizes.js","webpack://artfully-walls/./app/javascript/wall_builder/selectors/preview.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/save_wall.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/undo.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/canvas.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/cart.js","webpack://artfully-walls/./app/javascript/wall_builder/components/command_bar/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/find_works/classes.module.scss?3846","webpack://artfully-walls/./app/javascript/wall_builder/config/proptypes.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/more.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/shared.module.scss?4961","webpack://artfully-walls/./app/javascript/wall_builder/components/info/classes.module.scss?8a9c","webpack://artfully-walls/./app/javascript/wall_builder/components/info/sizes.js","webpack://artfully-walls/./app/javascript/wall_builder/components/info/work_details.js","webpack://artfully-walls/./app/javascript/wall_builder/components/find_works/add_to_canvas.js","webpack://artfully-walls/./app/javascript/wall_builder/components/find_works/work.js","webpack://artfully-walls/./app/javascript/wall_builder/components/find_works/search.js","webpack://artfully-walls/./app/javascript/wall_builder/components/find_works/find_works.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/more_like_this.js","webpack://artfully-walls/./app/javascript/wall_builder/components/find_works/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/find_favorites/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/panel/layout.js","webpack://artfully-walls/./app/javascript/wall_builder/components/panel/classes.module.scss?78fe","webpack://artfully-walls/./app/javascript/wall_builder/components/shared/classes.module.scss?316e","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/pin.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/pinned.js","webpack://artfully-walls/./app/javascript/wall_builder/components/shared/pin.js","webpack://artfully-walls/./app/javascript/wall_builder/components/add_art/add_art.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/pin.js","webpack://artfully-walls/./app/javascript/wall_builder/components/add_art/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/color/classes.module.scss?3632","webpack://artfully-walls/./app/javascript/wall_builder/components/color/color.js","webpack://artfully-walls/./app/javascript/wall_builder/components/color/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/custom_image/classes.module.scss?3220","webpack://artfully-walls/./app/javascript/wall_builder/components/custom_image/custom_image.js","webpack://artfully-walls/./app/javascript/wall_builder/components/custom_image/index.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/custom_image.js","webpack://artfully-walls/./app/javascript/wall_builder/components/add_other/add_other.js","webpack://artfully-walls/./app/javascript/wall_builder/components/add_other/classes.module.scss?1d26","webpack://artfully-walls/./app/javascript/wall_builder/components/add_other/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/guides_config/classes.module.scss?57c6","webpack://artfully-walls/./app/javascript/wall_builder/components/guides_config/guides_config.js","webpack://artfully-walls/./app/javascript/wall_builder/components/guides_config/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/info/editor.js","webpack://artfully-walls/./app/javascript/wall_builder/components/info/title.js","webpack://artfully-walls/./app/javascript/wall_builder/components/info/info.js","webpack://artfully-walls/./app/javascript/wall_builder/components/info/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/export/classes.module.scss?c560","webpack://artfully-walls/./app/javascript/wall_builder/components/export/preview.js","webpack://artfully-walls/./app/javascript/wall_builder/components/export/edit_description.js","webpack://artfully-walls/./app/javascript/wall_builder/components/export/upload_logo.js","webpack://artfully-walls/./app/javascript/wall_builder/components/export/copy_text.js","webpack://artfully-walls/./app/javascript/wall_builder/components/attributes/attributes.js","webpack://artfully-walls/./app/javascript/wall_builder/components/attributes/classes.module.scss?5c97","webpack://artfully-walls/./app/javascript/wall_builder/components/attributes/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/export/export.js","webpack://artfully-walls/./app/javascript/wall_builder/components/export/index.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/export.js","webpack://artfully-walls/./app/javascript/wall_builder/components/work_details/classes.module.scss?05d8","webpack://artfully-walls/./app/javascript/wall_builder/components/work_details/selectable_frame.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/remove.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/bag.js","webpack://artfully-walls/./app/javascript/wall_builder/components/work_details/work_title.js","webpack://artfully-walls/./app/javascript/wall_builder/components/work_details/work_details.js","webpack://artfully-walls/./app/javascript/wall_builder/components/work_details/index.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/current_index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/shared/back.js","webpack://artfully-walls/./app/javascript/wall_builder/components/more_like_this/more_like_this.js","webpack://artfully-walls/./app/javascript/wall_builder/components/more_like_this/classes.module.scss?e0e0","webpack://artfully-walls/./app/javascript/wall_builder/components/more_like_this/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/custom_preview_panel/custom_preview_panel.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/crop.js","webpack://artfully-walls/./app/javascript/wall_builder/components/custom_preview_panel/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/hanging/hanging.js","webpack://artfully-walls/./app/javascript/wall_builder/components/hanging/styles.module.scss?5d06","webpack://artfully-walls/./app/javascript/wall_builder/components/hanging/index.js","webpack://artfully-walls/./app/javascript/wall_builder/actions/hangings.js","webpack://artfully-walls/./app/javascript/wall_builder/components/panel/panel.js","webpack://artfully-walls/./app/javascript/wall_builder/components/panel/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/work/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/shared/draggable.js","webpack://artfully-walls/./app/javascript/wall_builder/components/shared/drag_object.js","webpack://artfully-walls/./app/javascript/wall_builder/components/canvas/meter.js","webpack://artfully-walls/./app/javascript/wall_builder/components/canvas/working_area.js","webpack://artfully-walls/./app/javascript/wall_builder/components/canvas/white_bg.js","webpack://artfully-walls/./app/javascript/wall_builder/components/canvas/custom_image.js","webpack://artfully-walls/./app/javascript/wall_builder/components/ruler/classes.module.scss?1abb","webpack://artfully-walls/./app/javascript/wall_builder/config/dpi.js","webpack://artfully-walls/./app/javascript/wall_builder/components/ruler/h_ruler.js","webpack://artfully-walls/./app/javascript/wall_builder/components/ruler/v_ruler.js","webpack://artfully-walls/./app/javascript/wall_builder/components/ruler/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/guides/guides.js","webpack://artfully-walls/./app/javascript/wall_builder/components/guides/classes.module.scss?5154","webpack://artfully-walls/./app/javascript/wall_builder/components/guides/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/custom_crop/classes.module.scss?fcdd","webpack://artfully-walls/./app/javascript/wall_builder/components/custom_crop/custom_crop.js","webpack://artfully-walls/./app/javascript/wall_builder/components/custom_crop/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/canvas/canvas.js","webpack://artfully-walls/./app/javascript/wall_builder/components/canvas/index.js","webpack://artfully-walls/./app/javascript/wall_builder/components/application/application.js","webpack://artfully-walls/./app/javascript/wall_builder/components/application/classes.module.scss?1edd","webpack://artfully-walls/./app/javascript/wall_builder/components/application/index.js","webpack://artfully-walls/./app/javascript/wall_builder/index.js","webpack://artfully-walls/./app/javascript/packs/wall_builder.js","webpack://artfully-walls/./app/javascript/shared/preview_const.js","webpack://artfully-walls/./app/javascript/shared/tag_editor.js","webpack://artfully-walls/./app/javascript/shared/styles.module.scss?32aa","webpack://artfully-walls/./app/javascript/wall_builder/components/canvas/image.js","webpack://artfully-walls/./app/javascript/wall_builder/components/canvas/silhouette.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/settings.js","webpack://artfully-walls/./app/javascript/wall_builder/components/assets/trash.js","webpack://artfully-walls/./app/javascript/wall_builder/components/work/work.js","webpack://artfully-walls/./app/javascript/wall_builder/components/work/work_picture_image.js","webpack://artfully-walls/./app/javascript/wall_builder/config/const.js","webpack://artfully-walls/./app/javascript/arts/components/ArtistWorks/styles.module.scss?2bed","webpack://artfully-walls/./app/javascript/arts/components/PapersMenu/styles.module.scss?49a2","webpack://artfully-walls/./app/javascript/wall_builder/components/canvas/classes.module.scss?a4f6","webpack://artfully-walls/./app/javascript/wall_builder/components/work/classes.module.scss?f0e0"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport Radio from 'arts/components/Radio';\nimport * as Classes from './styles.module.scss';\n\nconst Mount = ({\n isSelected, kind, name, description, onSelect, paperId, postFix, children\n}) => {\n const radioId = `MountRadioControl-${ paperId }-${ kind }`;\n const radioName = `MountRadioControl-${ paperId }-${ postFix }`;\n\n return (\n
\n \n
\n \n\n
\n { name }\n \n { description }\n \n
\n
\n \n { children }\n
\n );\n};\n\nMount.propTypes = {\n isSelected: PropTypes.bool.isRequired,\n kind: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n onSelect: PropTypes.func.isRequired,\n paperId: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n postFix: PropTypes.string,\n children: PropTypes.node\n};\n\nexport default Mount;\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport * as Classes from './styles.module.scss';\n\nconst MatColor = ({\n isSelected, kind, onSelect, paperId, postFix, colorRgb, name\n}) => {\n const radioId = `MountRadioControl-${ paperId }-${ kind }`;\n const radioName = `MountRadioControl-${ paperId }-${ postFix }`;\n\n const ref = useRef(null);\n\n const onClick = (e) => {\n e.preventDefault();\n ref.current.click();\n };\n\n return (\n
\n \n
\n \n \n
\n );\n};\n\nMatColor.propTypes = {\n isSelected: PropTypes.bool.isRequired,\n kind: PropTypes.string.isRequired,\n onSelect: PropTypes.func.isRequired,\n paperId: PropTypes.string.isRequired,\n postFix: PropTypes.string.isRequired,\n colorRgb: PropTypes.array.isRequired,\n name: PropTypes.string.isRequired\n};\n\nexport default MatColor;\n","import React, { useMemo } from 'react';\nimport T from 'prop-types';\n\nimport * as Classes from './styles.module.scss';\nimport Mount from './mount';\nimport MatColor from './mat_color';\n\nexport const FULL_BLEED = 'fullBleed';\nexport const MATTE = 'matte';\nexport const FLOAT_DECKLED = 'dckl';\nexport const FLOAT_STRIGHT = 'fltn';\nexport const FLOATING = 'floating';\n\nexport const MAT_COLORS_ORDER = ['White', 'Deep Red', 'Indigo', 'Moss Point Green'];\n\nexport const mat = () => (window.currentLocale.currentLocale === 'en' ? '2.75\"' : '7cm');\nconst matteText = (caps) => (caps ? 'M' : 'm') + (window.currentLocale.currentLocale === 'en' ? 'atte' : 'ount');\n\nconst VALID_MOUNT_KINDS = [MATTE, FULL_BLEED, FLOAT_STRIGHT, FLOAT_DECKLED];\n\nconst Mounts = ({\n onSelect, selectedMount, selectedMatColor, paperId, matte,\n fullBleed, dckl, fltn, matColors, matColorsRgb\n}) => {\n const onChange = (e) => {\n const { value } = e.target;\n if (value === FLOATING) {\n onSelect(FLOAT_STRIGHT, null);\n } else if (value === MATTE) {\n onSelect(MATTE, selectedMatColor);\n } else if (value.indexOf(';') > -1) {\n const [kind, color] = value.split(';');\n onSelect(kind, color);\n } else {\n onSelect(value, selectedMatColor);\n }\n };\n\n const renderMatte = useMemo(() => {\n const description = selectedMatColor\n ? ` - ${ mat() } wide, ${ selectedMatColor } matboard, buffered for extended life`\n : ` - ${ mat() } wide matboard, buffered for extended life`;\n if (matte) {\n return (\n \n
\n { MAT_COLORS_ORDER.map((color) => (\n (matColors.includes(color) ? (\n \n ) : null)\n )) }\n
\n \n );\n }\n return null;\n }, [matte, matColors, selectedMatColor, selectedMount]);\n\n const renderFillBleed = useMemo(() => {\n if (fullBleed) {\n return (\n \n );\n }\n return null;\n }, [fullBleed, selectedMount, matColors, selectedMatColor]);\n\n const renderFloating = useMemo(() => {\n if (dckl || fltn) {\n return (\n \n
\n { fltn && (\n \n ) }\n { dckl && (\n \n ) }\n
\n \n );\n }\n return null;\n }, [dckl, fltn, selectedMount, matColors, selectedMatColor]);\n\n return (\n
\n { renderMatte }\n { renderFillBleed }\n { renderFloating }\n
\n );\n};\n\nMounts.propTypes = {\n onSelect: T.func.isRequired,\n selectedMount: T.oneOf(VALID_MOUNT_KINDS),\n selectedMatColor: T.string,\n paperId: T.oneOfType([T.number, T.string]).isRequired,\n matte: T.bool,\n fullBleed: T.bool,\n dckl: T.bool,\n fltn: T.bool,\n matColors: T.arrayOf(T.string),\n matColorsRgb: T.arrayOf(T.arrayOf(T.number))\n};\n\nexport default Mounts;\n","import React from 'react';\nimport T from 'prop-types';\nimport * as Classes from './styles.module.scss';\n\nconst Radio = (props) => (\n
\n \n \n
\n);\nRadio.propTypes = {\n checked: T.bool,\n id: T.oneOfType([T.string, T.number])\n};\nexport default Radio;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"_nayueMnaS3n4G3LaZXg\";\nexport { _1 as \"radio\" }\n","import React from 'react';\nimport T from 'prop-types';\nimport * as Classes from './styles.module.scss';\n\nconst PinIt = ({ href, imageUrl, description }) => {\n if (!window.allowSharing) { return null; }\n\n const onClick = (e) => {\n e.preventDefault();\n if (window.PinUtils) {\n window.PinUtils.pinOne({\n url: href,\n media: imageUrl,\n description\n });\n }\n };\n\n return (\n // eslint-disable-next-line jsx-a11y/anchor-is-valid\n \n \n \n );\n};\n\nPinIt.propTypes = {\n href: T.string,\n imageUrl: T.string,\n description: T.string\n};\n\nexport default PinIt;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"KEyrofTPyAhIimrsHvwT\";\nvar _2 = \"OcT7WzKypu5O5gCStFrO\";\nexport { _1 as \"letter\", _2 as \"pinClass\" }\n","import React from 'react';\n\nexport const BY_COLOR = 'by_color';\n\nexport const renderColorSelection = (\n onSelect, options, classLine, classColor\n) => options.map((line, index) => (\n
\n {\n line.map((color, cindex) => (\n onSelect(color) }\n >\n  \n
\n ))\n }\n
\n));\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\n\nconst getDefaultState = () => ({\n kind: null,\n options: null\n});\n\nconst panel = createReducer(getDefaultState(), {\n [Constants.panel.open]: (state, { kind, options }) => ({\n ...state,\n kind,\n options\n }),\n [Constants.panel.close]: (state) => ({\n ...state,\n kind: null,\n options: null\n })\n});\n\nexport default panel;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\n\nconst getDefaultState = () => ({\n works: [],\n loading: false,\n filters: [],\n activeFilters: {},\n page: 1\n});\n\nconst removeFilter = (opts, key) => {\n const { [key]: _, ...rest } = opts;\n return rest;\n};\n\nconst worksReducer = createReducer(getDefaultState(), {\n [Constants.works.load]: (state) => ({\n ...state,\n loading: true\n }),\n [Constants.works.success]: (state, { works }) => ({\n ...state,\n works: [...state.works, ...(works || [])],\n loading: false,\n page: state.page + 1\n }),\n [Constants.works.filtersLoaded]: (state, { filters }) => ({\n ...state,\n filters\n }),\n [Constants.works.addFilter]: (state, { param, value, text }) => ({\n ...state,\n page: 1,\n activeFilters: {\n ...state.activeFilters,\n [param]: { value, text }\n },\n works: []\n }),\n [Constants.works.removeFilter]: (state, { param }) => ({\n ...state,\n page: 1,\n activeFilters: removeFilter(state.activeFilters, param),\n works: []\n })\n});\n\nexport default worksReducer;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\n\nconst getDefaultState = () => ({\n works: [],\n loading: false,\n page: 1\n});\n\nconst favoriteWorksReducer = createReducer(getDefaultState(), {\n [Constants.favoriteWorks.load]: (state) => ({\n ...state,\n loading: true\n }),\n [Constants.favoriteWorks.success]: (state, { works }) => ({\n ...state,\n works: [...state.works, ...works],\n loading: false,\n page: state.page + 1\n })\n});\n\nexport default favoriteWorksReducer;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\n\nconst getDefaultState = () => ({});\n\nconst workDetailsReducer = createReducer(getDefaultState(), {\n [Constants.work.load]: (state, { id }) => ({\n ...state,\n [id]: {\n loading: true\n }\n }),\n [Constants.work.success]: (state, { work }) => ({\n ...state,\n [work.id]: {\n ...work,\n loading: false\n }\n })\n});\n\nexport default workDetailsReducer;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\nimport { toCamelCase } from '../config/utils';\n\nconst getDefaultState = () => toCamelCase(window.wall.customImage || {});\n\n// src: null,\n// widthIn: null,\n// heightIn: null,\n// posX: null,\n// poxY: null\n\nconst customImage = createReducer(getDefaultState(), {\n [Constants.customImage.update]: (state, { src }) => ({\n ...state,\n src\n }),\n [Constants.customImage.add]: (state, {\n src,\n widthIn,\n heightIn,\n posX,\n posY\n }) => ({\n src,\n widthIn,\n heightIn,\n posX,\n posY\n }),\n [Constants.customImage.remove]: () => ({}),\n [Constants.customImage.move]: (state, { posX, posY }) => ({\n ...state,\n posX,\n posY\n })\n});\n\nexport default customImage;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\nimport { toCamelCase } from '../config/utils';\n\nconst getDefaultState = () => toCamelCase(window.wall.wallPaper || {});\n// src: null,\n// widthIn: null,\n// heightIn: null\n\nconst wallPaper = createReducer(getDefaultState(), {\n [Constants.wallPaper.update]: (state, { src }) => ({\n ...state,\n src\n }),\n [Constants.wallPaper.add]: (state, { src, widthIn, heightIn }) => ({\n src, widthIn, heightIn\n }),\n [Constants.wallPaper.remove]: () => ({})\n});\n\nexport default wallPaper;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\nimport { screenToDefaultDpi } from '../config/utils';\n\nconst DEFAULT_ZOOM_POS = 2;\n\nconst recalculateDpis = (wall, zoomPosition) => {\n const { width: wWidth, height: wHeight } = wall;\n const { width: sWidth, height: sHeight, whitePos } = Constants.silhouette;\n const width = zoomPosition === DEFAULT_ZOOM_POS ? Math.max(sWidth, wWidth) : wWidth;\n const height = zoomPosition === DEFAULT_ZOOM_POS ? wHeight + (sHeight - whitePos) : wHeight;\n const dpi = screenToDefaultDpi({ width, height });\n const dpis = [dpi * 4, dpi * 2, dpi, dpi / 2];\n\n return {\n dpis,\n dpi: dpis[zoomPosition]\n };\n};\n\nconst centerCanvasPosition = (\n { canvasWidth, canvasHeight },\n { width, height }\n) => {\n const dx = (canvasWidth - width) / 2;\n const dy = (canvasHeight - height) / 2;\n return {\n posX: -dx,\n posY: -dy,\n centerX: width / 2,\n centerY: height / 2\n };\n};\n\nconst getDefaultState = () => {\n const {\n wallId,\n currency,\n wallPictures,\n width,\n height,\n currentColor,\n name,\n description,\n sharingUrl,\n keywordList,\n colorList,\n associatedRoomIds,\n associatedHomeDecorStyleIds\n } = window.wall || {};\n\n return ({\n wallId,\n currency,\n works: wallPictures || [],\n centerX: 0,\n centerY: 0,\n posX: 0,\n posY: 0,\n showSilhouette: true,\n silhouette: Constants.silhouette.default,\n silhouetteX: (width - Constants.silhouette.width) / 2,\n silhouetteY: height - Constants.silhouette.zero,\n currentColor,\n rulerVisible: true,\n guidesVisible: false,\n widthVisible: false,\n heightVisible: false,\n width,\n height,\n name,\n description,\n sharingUrl,\n zoomPosition: DEFAULT_ZOOM_POS,\n ...recalculateDpis(window.wall, DEFAULT_ZOOM_POS),\n keywordList,\n colorList,\n associatedRoomIds,\n associatedHomeDecorStyleIds\n });\n};\n\nconst updateWork = (works, index, newProps) => {\n const before = works.slice(0, index);\n const after = works.slice(index + 1);\n return [...before, { ...works[index], ...newProps }, ...after];\n};\n\nconst removeWork = (works, index) => {\n const before = works.slice(0, index);\n const after = works.slice(index + 1);\n return [...before, ...after];\n};\n\nconst calculateNewPosNoWorks = (state, newDpi) => {\n const {\n centerX, posX, centerY, posY, dpi\n } = state;\n const wpx = (centerX - posX) * 2 * dpi;\n const wInNew = wpx / newDpi;\n const hpx = (centerY - posY) * 2 * dpi;\n const hInNew = hpx / newDpi;\n return {\n ...state,\n posX: 0,\n posY: 0,\n centerX: wInNew / 2,\n centerY: hInNew / 2\n };\n};\n\nconst calculateNewPos = (state, newDpi) => {\n const {\n dpi, works, posX: posXWas, posY: posYWas, centerX: centerXWas, centerY: centerYWas\n } = state;\n\n if (!works.length) {\n return calculateNewPosNoWorks(state, newDpi);\n }\n\n let centerX = 0;\n let centerY = 0;\n works.forEach(({ x, y }) => {\n centerX += parseFloat(x) + 5;\n centerY += parseFloat(y) + 5;\n });\n centerX /= state.works.length;\n centerY /= state.works.length;\n\n const wpx = (centerXWas - posXWas) * 2 * dpi;\n const wInNew = wpx / newDpi;\n const posX = centerX - (wInNew / 2);\n const hpx = (centerYWas - posYWas) * 2 * dpi;\n const hInNew = hpx / newDpi;\n const posY = centerY - (hInNew / 2);\n\n return {\n ...state,\n posX,\n posY,\n centerX,\n centerY,\n dpi: newDpi\n };\n};\n\nconst setZoomPosition = (state, zoomPosition) => {\n const { dpis } = state;\n const dpi = dpis[zoomPosition];\n return ({\n ...calculateNewPos(state, dpi),\n zoomPosition\n });\n};\n\nconst resetCenter = (state, { canvasWidth, canvasHeight }) => {\n const newState = setZoomPosition(state, DEFAULT_ZOOM_POS);\n const { width: wWidth, height: wHeight } = newState;\n const { height, whitePos } = Constants.silhouette;\n const canvasPositions = centerCanvasPosition(\n { canvasWidth, canvasHeight },\n { width: wWidth, height: wHeight + (height - whitePos) }\n );\n return ({\n ...newState,\n ...canvasPositions\n });\n};\n\nconst canvasReducer = createReducer(getDefaultState(), {\n [Constants.canvas.add]: (state, {\n workId, workSizeId, frameId, x, y\n }) => ({\n ...state,\n works: [...state.works, {\n workId, workSizeId, frameId, key: (new Date()).getTime(), x, y\n }]\n }),\n [Constants.canvas.remove]: (state, { index }) => ({\n ...state,\n works: removeWork(state.works, index)\n }),\n [Constants.canvas.move]: (state, { index, x, y }) => ({\n ...state,\n works: updateWork(state.works, index, { x, y })\n }),\n [Constants.canvas.recalculateDpis]: (state) => {\n const { dpi, dpis } = recalculateDpis(state, state.zoomPosition);\n return ({\n ...calculateNewPos(state, dpi),\n dpis\n });\n },\n [Constants.canvas.zoomIn]: (state) => {\n const { zoomPosition } = state;\n if (zoomPosition === 0) { return state; }\n return setZoomPosition(state, zoomPosition - 1);\n },\n [Constants.canvas.zoomOut]: (state) => {\n const { dpis, zoomPosition } = state;\n if (zoomPosition === dpis.length - 1) { return state; }\n return setZoomPosition(state, zoomPosition + 1);\n },\n [Constants.canvas.resetCenter]: (\n state, { canvasWidth, canvasHeight }\n ) => resetCenter(state, { canvasWidth, canvasHeight }),\n [Constants.canvas.resetZoom]: (state) => {\n const newState = setZoomPosition(state, DEFAULT_ZOOM_POS);\n const {\n centerX, centerY, posX, posY\n } = newState;\n const canvasWidth = (centerX - posX) * 2;\n const canvasHeight = (centerY - posY) * 2;\n\n return resetCenter(newState, { canvasWidth, canvasHeight });\n },\n [Constants.canvas.setSize]: (state, { index, workSizeId }) => ({\n ...state,\n works: updateWork(state.works, index, { workSizeId, frameId: null })\n }),\n [Constants.canvas.setFrame]: (state, { index, frameId }) => ({\n ...state,\n works: updateWork(state.works, index, { frameId })\n }),\n [Constants.canvas.setCenter]: (state, {\n centerX, centerY, posX, posY\n }) => ({\n ...state, centerX, centerY, posX, posY\n }),\n [Constants.canvas.hideSilhouette]: (state) => ({\n ...state,\n showSilhouette: false\n }),\n [Constants.canvas.setSilhouette]: (state, { silhouette }) => {\n const newState = setZoomPosition(state, DEFAULT_ZOOM_POS);\n const {\n centerX, centerY, posX, posY\n } = newState;\n const canvasWidth = (centerX - posX) * 2;\n const canvasHeight = (centerY - posY) * 2;\n\n return {\n ...resetCenter(newState, { canvasWidth, canvasHeight }),\n silhouette,\n showSilhouette: true\n };\n },\n [Constants.canvas.setColor]: (state, { currentColor }) => ({\n ...state,\n currentColor\n }),\n [Constants.canvas.showRuler]: (state) => ({\n ...state,\n rulerVisible: true\n }),\n [Constants.canvas.hideRuler]: (state) => ({\n ...state,\n rulerVisible: false\n }),\n [Constants.canvas.showGuides]: (state) => ({\n ...state,\n guidesVisible: true\n }),\n [Constants.canvas.hideGuides]: (state) => ({\n ...state,\n guidesVisible: false\n }),\n [Constants.canvas.setWidth]: (state, { width }) => {\n const newState = {\n ...state,\n width\n };\n const { dpi, dpis } = recalculateDpis(newState, DEFAULT_ZOOM_POS);\n return ({\n ...calculateNewPos(newState, dpi),\n dpis\n });\n },\n [Constants.canvas.setHeight]: (state, { height }) => {\n const newState = {\n ...state,\n height\n };\n const { dpi, dpis } = recalculateDpis(newState, DEFAULT_ZOOM_POS);\n return ({\n ...calculateNewPos(newState, dpi),\n dpis\n });\n },\n [Constants.canvas.showWidth]: (state) => ({ ...state, widthVisible: true }),\n [Constants.canvas.hideWidth]: (state) => ({ ...state, widthVisible: false }),\n [Constants.canvas.showHeight]: (state) => ({ ...state, heightVisible: true }),\n [Constants.canvas.hideHeight]: (state) => ({ ...state, heightVisible: false }),\n [Constants.canvas.updateAttributes]: (state, { attributes }) => ({\n ...state,\n ...attributes\n })\n});\n\nexport default canvasReducer;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\n\nconst getDefaultState = () => [];\n\nconst undos = createReducer(getDefaultState(), {\n [Constants.undo.push]: (state, { action }) => [...state, action],\n [Constants.undo.pop]: (state) => state.slice(0, -1)\n});\n\nexport default undos;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\n\nconst getDefaultState = () => ({\n publishing: false,\n savingPreview: false,\n previewSaved: false,\n previewSavingError: null,\n showSharing: false,\n previewTimeStamp: null,\n previewSrc: null,\n logoSrc: null\n});\n\nconst exportReducer = createReducer(getDefaultState(), {\n [Constants.export.publishing]: (state) => ({\n ...state,\n publishing: true\n }),\n [Constants.export.published]: (state) => ({\n ...state,\n publishing: false\n }),\n [Constants.export.savePreview]: (state) => ({\n ...state,\n savingPreview: true,\n previewSaved: false,\n previewSavingError: null,\n showSharing: false,\n previewTimeStamp: null,\n previewSrc: null\n }),\n [Constants.export.previewSaved]: (state, { error, previewTimeStamp, previewSrc }) => ({\n ...state,\n savingPreview: false,\n previewSaved: !error,\n previewSavingError: error,\n previewTimeStamp,\n previewSrc\n }),\n [Constants.export.showSharing]: (state) => ({\n ...state,\n showSharing: true\n }),\n [Constants.export.setLogo]: (state, { logoSrc }) => ({\n ...state,\n logoSrc\n }),\n [Constants.canvas.setColor]: (state) => ({\n ...state,\n previewSrc: null\n }),\n [Constants.canvas.remove]: (state) => ({\n ...state,\n previewSrc: null\n }),\n [Constants.canvas.move]: (state) => ({\n ...state,\n previewSrc: null\n }),\n [Constants.canvas.add]: (state) => ({\n ...state,\n previewSrc: null\n }),\n [Constants.canvas.setFrame]: (state) => ({\n ...state,\n previewSrc: null\n }),\n [Constants.wallPaper.add]: (state) => ({\n ...state,\n previewSrc: null\n }),\n [Constants.wallPaper.update]: (state) => ({\n ...state,\n previewSrc: null\n }),\n [Constants.wallPaper.remove]: (state) => ({\n ...state,\n previewSrc: null\n }),\n [Constants.customImage.update]: (state) => ({\n ...state,\n previewSrc: null\n }),\n [Constants.customImage.add]: (state) => ({\n ...state,\n previewSrc: null\n }),\n [Constants.customImage.remove]: (state) => ({\n ...state,\n previewSrc: null\n }),\n [Constants.customImage.move]: (state) => ({\n ...state,\n previewSrc: null\n })\n});\n\nexport default exportReducer;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\n\nconst currentIndex = createReducer(-1, {\n [Constants.workDetails.show]: (_, { index }) => index,\n [Constants.workDetails.hide]: () => (-1)\n});\n\nexport default currentIndex;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\n\nconst getDefaultState = () => ({\n savingPictures: false,\n assetsUploading: 0\n});\n\nconst savingWall = createReducer(getDefaultState(), {\n [Constants.savingWall.start]: (state) => ({\n ...state,\n savingPictures: true\n }),\n [Constants.savingWall.end]: (state) => ({\n ...state,\n savingPictures: false\n }),\n [Constants.savingWall.uploadAssetsStart]: (state) => ({\n ...state,\n assetsUploading: state.assetsUploading + 1\n }),\n [Constants.savingWall.uploadAssetsEnd]: (state) => ({\n ...state,\n assetsUploading: state.assetsUploading - 1\n })\n});\n\nexport default savingWall;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\n\nconst getDefaultState = () => ({\n sourceId: null,\n loading: false,\n works: [],\n original: null\n});\n\nconst moreLikeThis = createReducer(getDefaultState(), {\n [Constants.moreLikeThis.set]: (state, { sourceId, index, original }) => ({\n ...state,\n loading: false,\n works: [],\n sourceId,\n index,\n original\n }),\n [Constants.moreLikeThis.reset]: (state) => ({\n ...state,\n works: [],\n sourceId: null,\n index: 0,\n original: null\n }),\n [Constants.moreLikeThis.loading]: (state) => ({\n ...state,\n loading: true\n }),\n [Constants.moreLikeThis.loaded]: (state, { works }) => ({\n ...state,\n works,\n loading: false\n })\n});\n\nexport default moreLikeThis;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\n\nconst getDefaultState = () => ({\n loading: false\n});\n\n// src: null,\n// widthIn: null,\n// heightIn: null,\n// posX: null,\n// poxY: null\n\nconst hangings = createReducer(getDefaultState(), {\n [Constants.hangings.load]: () => ({ loading: true }),\n [Constants.hangings.loaded]: (state, { hangingMarks }) => ({ hangingMarks, loading: false }),\n [Constants.hangings.update]: (state, {\n first, second, kind, isAdd\n }) => {\n const { hangingMarks } = state;\n let newMarks = [...hangingMarks];\n if (isAdd) {\n newMarks.push({ first, second, kind });\n } else {\n const index = hangingMarks.findIndex((m) => (\n ((m.first === first && m.second === second) || (m.first === second && m.second === first))\n && m.kind === kind\n ));\n newMarks[index] = null;\n newMarks = newMarks.filter(m => !!m);\n }\n return {\n ...state,\n hangingMarks: newMarks\n };\n },\n [Constants.hangings.reset]: (state) => ({\n ...state,\n hangingMarks: []\n }),\n [Constants.hangings.saving]: (state) => ({\n ...state,\n loading: true\n }),\n [Constants.hangings.saved]: (state, { hangingMarks }) => ({\n ...state,\n loading: false,\n hangingMarks\n })\n});\n\nexport default hangings;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\n\nconst getDefaultState = () => ({\n x: 0,\n width: 0,\n y: 0,\n height: 0,\n custom: false\n});\n\nconst crop = createReducer(getDefaultState(), {\n [Constants.crop.set]: (_, {\n x, y, width, height\n }) => ({\n x, y, width, height, custom: true\n }),\n [Constants.crop.reset]: (state) => ({\n ...state,\n custom: false\n })\n});\nexport default crop;\n","import createReducer from 'arts/config/create_reducer';\nimport Constants from '../config/const';\n\nconst PIN_KEY = 'WallBuiler::Pin';\n\nconst getDefaultState = () => ({\n pinned: window.localStorage.getItem(PIN_KEY) === '1'\n});\n\nconst pin = createReducer(getDefaultState(), {\n [Constants.pin.toggle]: (state) => ({\n pinned: !state.pinned\n })\n});\n\nexport default pin;\n","import { combineReducers } from 'redux';\nimport cartItems from 'arts/reducers/cart_items';\nimport panel from './panel';\nimport works from './works';\nimport favoriteWorks from './favoriteWorks';\nimport workDetails from './work_details';\nimport customImage from './custom_image';\nimport wallPaper from './wall_paper';\nimport canvas from './canvas';\nimport undos from './undos';\nimport exportReducer from './export';\nimport currentIndex from './current_index';\nimport savingWall from './saving_wall';\nimport moreLikeThis from './more_like_this';\nimport hangings from './hangings';\nimport crop from './crop';\nimport pin from './pin';\n\nexport default combineReducers({\n panel,\n works,\n workDetails,\n canvas,\n customImage,\n wallPaper,\n undos,\n currentIndex,\n savingWall,\n exporting: exportReducer,\n moreLikeThis,\n crop,\n hangings,\n pin,\n favoriteWorks,\n cartItems\n});\n","/* eslint-disable import/no-import-module-exports */\nimport thunk from 'redux-thunk';\nimport { createStore, applyMiddleware } from 'redux';\nimport reducer from '../reducers';\n\nconst middleware = [\n thunk\n];\n\nif (process.env.NODE_ENV === 'development') {\n /* eslint-disable global-require */\n const { createLogger } = require('redux-logger');\n /* eslint-enable global-require */\n const logger = createLogger({ diff: false });\n middleware.push(logger);\n}\n\nexport const buildStore = () => {\n const middleWares = applyMiddleware(...middleware);\n const store = createStore(\n reducer,\n undefined,\n middleWares\n );\n // eslint-disable-next-line no-undef\n if (module.hot) {\n module.hot.accept(() => {\n /* eslint-disable global-require */\n const nextRootReducer = require('../reducers/index').default;\n /* eslint-enable global-require */\n store.replaceReducer(nextRootReducer);\n });\n }\n return store;\n};\n","const parseFB = (scope) => {\n if (window.FB && window.FB.XFBML) { window.FB.XFBML.parse(scope); }\n};\n\nexport default parseFB;\n","import React, { PureComponent } from 'react';\nimport T from 'prop-types';\nimport parseFB from 'arts/config/parseFB';\nimport PinIt from 'arts/components/Social/pin_it';\n\nimport * as Classes from './styles.module.scss';\n\nexport default class Share extends PureComponent {\n static propTypes = {\n imageUrl: T.string,\n description: T.string,\n href: T.string\n };\n\n componentDidMount() {\n parseFB(this.fbScope);\n }\n\n componentDidUpdate() {\n parseFB(this.fbScope);\n }\n\n render() {\n const { imageUrl, description, href } = this.props;\n\n return (\n
{ this.fbScope = r; } }>\n
\n \n
\n\n \n
\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nvar _1 = \"MEsAiqSR0gevw8SSRCY7\";\nvar _2 = \"PVjRqukEzowQp5Y9jFoz\";\nvar _3 = \"fh9zPgLoA376OSd7OxjQ\";\nvar _4 = \"iW75lbOIgiFJRZ4haCiw\";\nvar _5 = \"vWMbOjIRpNKwyAMqXbfw\";\nvar _6 = \"_2THsBWyDulnpuyJJhUjD\";\nvar _7 = \"GF3JNgsyO_veqdZAew4c\";\nvar _8 = \"nJdTJpPhvXywslp8bdQg\";\nvar _9 = \"I5RU2Qm01GiMdpiKlXtC\";\nvar _a = \"yLS2IvKm5j4oGVctADfg\";\nvar _b = \"pkTZgqzJgOIkRCfF2AzU\";\nvar _c = \"mXrBOzhG4w4ljwlVEuTm\";\nvar _d = \"YE5LqtCQccWRrR6PEaRI\";\nvar _e = \"Dx9l27roXnBaIeMnxA6q\";\nvar _f = \"Q6D91ErYYiBIxj7ogomo\";\nvar _10 = \"tnAgHPqsn9_w7B6mc3Rw\";\nexport { _1 as \"add\", _2 as \"divider\", _3 as \"full\", _4 as \"infoItems\", _5 as \"menu\", _6 as \"menuDropDown\", _7 as \"menuItem\", _8 as \"noWorks\", _9 as \"reset\", _a as \"rightMenu\", _b as \"shop\", _c as \"silhouetteOption\", _d as \"subtitle\", _e as \"subtitleDropDown\", _f as \"zoom\", _10 as \"zoomHolder\" }\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string\n};\n\nexport default SvgComponent;\n","import React from 'react';\n\nconst SvgComponent = (props) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as classes from './classes.module.scss';\n\nconst Subtitle = ({ name, className }) => (\n
\n { name }\n
\n);\n\nSubtitle.propTypes = {\n name: PropTypes.string.isRequired,\n className: PropTypes.string\n};\n\nexport default Subtitle;\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from 'react';\nimport { Menu, Button, Dropdown } from 'semantic-ui-react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport Constants from '../../config/const';\nimport * as classes from './classes.module.scss';\nimport Undo from '../assets/undo';\nimport ZoomIn from '../assets/zoom_in';\nimport ZoomOut from '../assets/zoom_out';\nimport Ruler from '../assets/ruler';\nimport Save from '../assets/save';\nimport Info from '../assets/info';\nimport Export from '../assets/export';\nimport Silhouette from '../assets/silhouette';\nimport AddOther from '../assets/add_other';\nimport NewWall from '../assets/new_wall';\nimport NewWallPlus from '../assets/new_wall_plus';\nimport Subtitle from './subtitle';\n\nconst renderShopThisWall = (addCurrentWallToCart, works, price, currency) => {\n if (!price) {\n return null;\n }\n return (\n
\n \n ADD TO CART\n \n
\n { works.length }\n  item(s),\n { currency }\n { price.toFixed(2) }\n
\n
\n );\n};\n\nconst CommandBar = ({\n openPanel, zoomIn, zoomOut, resetZoom,\n undo, totalPrice, works, currency,\n addCurrentWallToCart,\n hideSilhouette, setSilhouette,\n hasWorks\n}) => {\n const dropDown = (\n
\n \n \n
\n );\n\n const renderCrop = window.canPublish && totalPrice ? (\n <>\n openPanel({ kind: Constants.panelKinds.customPreview }) }\n className={ classes.menuItem }\n >\n \n \n \n openPanel({ kind: Constants.panelKinds.hanging }) }\n className={ classes.menuItem }\n >\n \n \n \n \n ) : null;\n\n const onSave = () => {\n if (window.isGuest) {\n const sigInLink = document.querySelector('a.signin-link');\n if (sigInLink) {\n const evt = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n sigInLink.dispatchEvent(evt);\n }\n return;\n }\n openPanel({ kind: Constants.panelKinds.export });\n };\n\n return (\n \n \n openPanel({ kind: Constants.panelKinds.works }) }\n >\n +\n Select Art\n \n \n openPanel({ kind: Constants.panelKinds.other }) }\n className={ classes.menuItem }\n >\n \n \n \n openPanel({ kind: Constants.panelKinds.grids }) }\n className={ classes.menuItem }\n >\n \n \n \n \n \n setSilhouette('livingRoom') }\n >\n \"Living\n Living Room\n \n setSilhouette('chaise') }>\n \"Chaise\"\n Chaise\n \n setSilhouette('console') }>\n \"Console\"\n Console\n \n \n Hide\n \n \n \n \n
\n \n \n
\n \n
\n \n Reset Zoom\n \n \n
\n \n \n \n \n
\n { window.location.href = '/stylist/wall_builder/new'; } }\n >\n \n \n \n
\n { window.location.href = `/stylist/wall_builder/new?source_wall_id=${ window.wall.wallId }`; } }\n >\n \n \n \n
\n \n \n \n \n
\n { renderCrop }\n
\n openPanel({ kind: Constants.panelKinds.info }) }\n className={ classes.menuItem }\n >\n \n \n \n
\n \n { renderShopThisWall(addCurrentWallToCart, works, totalPrice, currency) }\n \n \n
\n );\n};\n\nCommandBar.propTypes = {\n openPanel: PropTypes.func.isRequired,\n zoomIn: PropTypes.func.isRequired,\n zoomOut: PropTypes.func.isRequired,\n resetZoom: PropTypes.func.isRequired,\n addCurrentWallToCart : PropTypes.func.isRequired,\n hideSilhouette: PropTypes.func.isRequired,\n setSilhouette: PropTypes.func.isRequired,\n undo: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n currency: PropTypes.string.isRequired,\n detailsVisible: PropTypes.bool.isRequired,\n works: PropTypes.array.isRequired,\n totalPrice: PropTypes.number.isRequired,\n hasWorks: PropTypes.bool.isRequired\n};\n\nexport default CommandBar;\n","import Constants from '../config/const';\n\nexport const openPanel = ({ options, kind }) => ({\n type: Constants.panel.open,\n options,\n kind\n});\n\nexport const closePanel = (kind) => ({\n type: Constants.panel.close,\n kind\n});\n","import queryString from 'query-string';\nimport { request, toSnakeCase } from '../../shared/request';\n\nconst baseName = () => (window.currentLocale.basename || '');\n\nexport const loadWorksApi = (page, activeFilters) => {\n const params = { page };\n Object.keys(activeFilters).forEach((f) => {\n params[f] = activeFilters[f].value;\n });\n return request(`${ baseName() }/stylist/works?per=40&${ queryString.stringify(params) }`);\n};\n\nexport const loadWorkDetailsApi = (id) => request(`${ baseName() }/api/arts/${ id }`);\n\nexport const loadArtfilters = () => request(`${ baseName() }/api/arts/filters`);\n\nexport const signWallUpload = (wallId, contentType, prefix, name, extension) => request(\n `${ baseName() }/stylist/wall_builder/sign?wall_id=${ wallId }`, {\n method: 'POST',\n body: JSON.stringify({\n content_type: contentType, prefix, name, extension\n })\n }\n);\n\nexport const saveWallApi = ({\n wallId, ...rest\n}) => {\n const body = toSnakeCase(rest);\n return request(\n `${ baseName() }/stylist/wall_builder?id=${ wallId }`,\n {\n method: 'PUT',\n body: JSON.stringify(body)\n }\n );\n};\n\nexport const publishWallApi = (wallId) => request(\n `${ baseName() }/stylist/wall_builder/publish?id=${ wallId }`,\n {\n method: 'POST'\n }\n);\n\nexport const loadSmilarWorks = (id) => request(`${ baseName() }/stylist/works?similar_of=${ id }&per=40&page=0`);\n\nexport const loadHanging = (id) => request(`${ baseName() }/stylist/walls/${ id }?marks=true`);\n\nexport const saveHanging = (wallId, hangingMarks) => {\n const body = toSnakeCase({ wall: { hangingMarks } });\n return request(\n `${ baseName() }/stylist/walls/${ wallId }`,\n {\n method: 'PUT',\n body: JSON.stringify(body)\n }\n );\n};\n\nexport const saveHangingImage = (wallId, image) => request(\n `${ baseName() }/stylist/walls/${ wallId }/hanging`,\n {\n method: 'POST',\n body: JSON.stringify({\n image\n })\n }\n);\n","import Constants from '../config/const';\nimport { loadArtfilters, loadWorksApi, loadWorkDetailsApi } from '../config/api';\n\nexport const loadNextPage = () => (dispatch, getState) => {\n const { page, loading, activeFilters } = getState().works;\n if (loading) {\n return;\n }\n dispatch({\n type: Constants.works.load\n });\n loadWorksApi(page, activeFilters).then((works) => {\n dispatch({\n type: Constants.works.success, works\n });\n });\n};\n\nexport const loadNextFavoritePage = () => (dispatch, getState) => {\n const { page, loading } = getState().favoriteWorks;\n if (loading) {\n return;\n }\n dispatch({\n type: Constants.favoriteWorks.load\n });\n loadWorksApi(page, { favorites: { value: true } }).then((data) => {\n const works = Array.isArray(data) ? data : [];\n dispatch({\n type: Constants.favoriteWorks.success, works\n });\n });\n};\n\nexport const loadWorkDetails = (id) => (dispatch) => {\n dispatch({\n type: Constants.work.load,\n id\n });\n loadWorkDetailsApi(id).then((work) => dispatch({\n type: Constants.work.success,\n work\n })).catch((e) => {\n if (e.status === 404) {\n // console.log('Error loading work details', e);\n }\n });\n};\n\nexport const loadArtFilters = () => (dispatch) => {\n loadArtfilters().then((filters) => dispatch({\n type: Constants.works.filtersLoaded,\n filters\n }));\n};\n\nexport const addFilter = (param, value, text) => (dispatch) => {\n dispatch({\n type: Constants.works.addFilter,\n param,\n value,\n text\n });\n dispatch(loadNextPage());\n};\n\nexport const removeFilter = (param) => (dispatch) => {\n dispatch({\n type: Constants.works.removeFilter,\n param\n });\n dispatch(loadNextPage());\n};\n","import { createSelector } from 'reselect';\nimport Constants from '../config/const';\n\nconst worksSelector = ({ canvas: { works } }) => works;\n\nconst workDetailsSelector = ({ workDetails }) => workDetails;\n\nexport const workSizeDetails = createSelector(\n worksSelector,\n workDetailsSelector,\n (works, workDetails) => (works || [])\n .sort((w1, w2) => Math.sign(w1.wallPictureId - w2.wallPictureId))\n .map((w) => {\n const { workSizeId, frameId, workId } = w;\n const {\n title, workSizes, authorName, landscape, isHidden\n } = workDetails[workId] || {};\n if (!workSizes) { return w; }\n const workSize = workSizes.find((ws) => ws.id === workSizeId);\n if (!workSize) { return w; }\n const {\n paperMaterial, isHidden: isWorkSizeHidden,\n displayPaperWidth, displayPaperHeight, displayPrintWidth, displayPrintHeight,\n displayPrintWidthNoMat, displayPrintHeightNoMat\n } = workSize || {};\n let option = workSize.options.find((o) => o.frameId === (frameId || null))\n || workSize.options.find((o) => o.frameId === null);\n if (!option) {\n // eslint-disable-next-line no-console\n console.log('No option found for', workSize, 'frame=', frameId);\n // first one\n [option] = workSize.options;\n }\n const {\n frameDisplayWidth, frameDisplayDepth, frame, previewWidth, previewHeight,\n zoomPreviewUrl, price, frameName, frameFinalFramedSize, frameMat\n } = option;\n return {\n ...w,\n isHidden,\n previewWidth,\n previewHeight,\n zoomPreviewUrl,\n frameDisplayDepth,\n frameDisplayWidth,\n frameFinalFramedSize,\n frame,\n frameName,\n title,\n authorName,\n landscape,\n paperMaterial,\n displayPaperWidth,\n displayPaperHeight,\n displayPrintWidth,\n displayPrintHeight,\n displayPrintWidthNoMat,\n displayPrintHeightNoMat,\n frameMat,\n price,\n isWorkSizeHidden,\n previewW: previewWidth * Constants.preview.scaleX / 100,\n previewH: previewHeight * Constants.preview.scaleY / 100\n };\n })\n);\n\nconst hangingMarksSelector = ({ hangings: { hangingMarks } }) => hangingMarks;\n\nconst findMarksFor = ({ first: sFirst, second: sSecond }, marks) => {\n const kinds = [];\n marks.forEach(({ first, second, kind }) => {\n if ((first === sFirst && second === sSecond) || (second === sFirst && first === sSecond)) {\n kinds.push(kind);\n }\n });\n return kinds;\n};\n\nexport const hangingVariations = createSelector(\n workSizeDetails, hangingMarksSelector,\n (sizes, hangingMarks) => {\n const sortedSizes = sizes.sort((a, b) => Math.sign(a.wallPictureId - b.wallPictureId));\n const l = sortedSizes.length;\n const res = [];\n for (let i = 0; i < l; i += 1) {\n for (let j = i + 1; j < l; j += 1) {\n const variant = {\n i0: i,\n i1: j,\n first: sortedSizes[i].wallPictureId,\n second: sortedSizes[j].wallPictureId\n };\n const kinds = findMarksFor(variant, hangingMarks || []);\n res.push({\n ...variant,\n kinds\n });\n }\n }\n return res;\n }\n);\n\nexport const totalPrice = createSelector(\n workSizeDetails,\n (works) => works.reduce((a, w) => a + parseFloat(w.price || 0), 0)\n);\n","import { createSelector } from 'reselect';\nimport Constants from '../config/const';\n\nimport { workSizeDetails } from './work_sizes';\n\nconst PADDING = {\n left: 2,\n right: 2,\n bottom: 2,\n top: 2\n};\n\nconst cropSelector = ({ crop }) => crop;\n\nconst calculatePositions = (works, crop, padding) => {\n const {\n x: cX, y: cY, width: cWidth, height: cHeight, custom\n } = crop;\n\n let minx = null;\n let miny = null;\n let maxx = null;\n let maxy = null;\n let noData = false;\n works.forEach((work) => {\n const x = parseFloat(work.x);\n const y = parseFloat(work.y);\n const { previewW, previewH } = work;\n if (previewW && previewH) {\n if (minx === null || minx > x) { minx = x; }\n if (maxx === null || maxx < x + previewW) { maxx = x + previewW; }\n if (miny === null || miny > y) { miny = y; }\n if (maxy === null || maxy < y + previewH) { maxy = y + previewH; }\n } else {\n noData = true;\n }\n });\n\n if (noData) { return {}; }\n\n if (custom) {\n return {\n x: cX,\n y: cY,\n width: cWidth,\n height: cHeight\n };\n }\n\n const base = {\n x: minx - (padding.left || 0),\n y: miny - (padding.top || 0),\n width: maxx - minx + (padding.left || 0) + (padding.right || 0),\n height: maxy - miny + (padding.top || 0) + (padding.bottom || 0)\n };\n\n const { scaleX, scaleY } = Constants.preview;\n const dw = base.width / scaleX;\n const dh = base.height / scaleY;\n let shiftX = 0;\n let shiftY = 0;\n if (dw < dh) {\n shiftX = ((scaleX / scaleY) * base.height - base.width) / 2;\n } else {\n shiftY = ((scaleY / scaleX) * base.width - base.height) / 2;\n }\n\n base.x -= shiftX;\n base.y -= shiftY;\n base.width += 2 * shiftX;\n base.height += 2 * shiftY;\n\n return base;\n};\n\nexport const automaticPreview = createSelector(\n workSizeDetails, cropSelector, (works, crop) => calculatePositions(works, crop, PADDING)\n);\n\nexport const hangingPreview = createSelector(\n workSizeDetails, (works) => {\n const {\n x, y, width, height\n } = calculatePositions(works, { custom: false }, {});\n const top = height * 0.2;\n const bottom = height * 0.4;\n const left = width * 0.6;\n const right = width * 0.02;\n const previewConfig = {\n x: x - left,\n width: width + left + right,\n y: y - top,\n height: height + top + bottom\n };\n const markPositions = {\n top: top / 2,\n bottom: height + bottom + (top / 2),\n left: left - right,\n right: width + left + (right / 2),\n groundLeft: left - (right / 2)\n };\n return { previewConfig, markPositions };\n }\n);\n","/* eslint-disable no-use-before-define */\nimport Constants from '../config/const';\nimport { saveWallApi, signWallUpload } from '../config/api';\nimport { automaticPreview } from '../selectors/preview';\n\nlet saving = false;\nlet queue = [];\n\nconst doSaveWall = (dispatch, resolve, reject) => {\n saving = true;\n dispatch({\n type: Constants.savingWall.start\n });\n const {\n wallId, wall, customImage, wallPaper,\n works, previewImageUrl, preview, transparentPreviewImageUrl\n } = queue.pop();\n queue = [];\n const updateParams = {\n wallId, wall, works\n };\n updateParams.wall.preview = preview;\n if (previewImageUrl) {\n updateParams.previewImageUrl = previewImageUrl;\n }\n if (transparentPreviewImageUrl) {\n updateParams.transparentPreviewImageUrl = transparentPreviewImageUrl;\n }\n if (customImage) {\n if (!customImage.src || customImage.src.match(/^http/)) {\n updateParams.customImage = customImage;\n }\n }\n if (wallPaper) {\n if (!wallPaper.src || wallPaper.src.match(/^http/)) {\n updateParams.wallPaper = wallPaper;\n }\n }\n saveWallApi(updateParams).then(() => {\n onWallSaved(dispatch);\n if (resolve) {\n resolve();\n }\n }).catch((error) => {\n onWallSaved(dispatch);\n if (reject) {\n reject(error);\n }\n });\n};\n\nconst onWallSaved = (dispatch) => {\n saving = false;\n dispatch({\n type: Constants.savingWall.end\n });\n if (queue.length) {\n doSaveWall(dispatch);\n }\n};\n\nexport const saveWall = (\n previewImageUrl, transparentPreviewImageUrl, resolve, reject\n) => (dispatch, getState) => {\n const {\n canvas, customImage, wallPaper\n } = getState();\n const preview = automaticPreview(getState());\n const {\n wallId, works, currentColor, width, height, name, description,\n keywordList, colorList, associatedRoomIds, associatedHomeDecorStyleIds\n } = canvas;\n const wall = {\n wallId,\n currentColor,\n width,\n height,\n name,\n description,\n keywordList,\n colorList,\n associatedRoomIds,\n associatedHomeDecorStyleIds\n };\n const entry = {\n wallId, wall, customImage, wallPaper, works: { ...works }, preview\n };\n if (previewImageUrl) {\n entry.previewImageUrl = previewImageUrl;\n }\n if (transparentPreviewImageUrl) {\n entry.transparentPreviewImageUrl = transparentPreviewImageUrl;\n }\n queue.push(entry);\n if (!saving || resolve) {\n doSaveWall(dispatch, resolve, reject);\n }\n};\n\nconst uploadSignedFile = (url, newHref, values, content) => new Promise((resolve, reject) => {\n const formData = new FormData();\n Object.entries(values).forEach(([k, v]) => {\n if (k === 'contentType') {\n formData.append('Content-Type', v);\n } else {\n formData.append(k, v);\n }\n });\n formData.append('file', content);\n window.fetch(url, {\n method: 'POST',\n body: formData\n }).then(({ status }) => {\n if (status === 204) {\n resolve(newHref);\n } else {\n alert('Error uploading file');\n reject();\n }\n }).catch((error) => {\n alert(`Error uploading file ${ error }`);\n reject();\n });\n});\n\nconst uploadBase64File = (url, newHref, values, base64) => new Promise((resolve) => {\n fetch(base64).then((image) => {\n image.blob().then((data) => {\n uploadSignedFile(url, newHref, values, data).then((newSrc) => {\n resolve(newSrc);\n });\n });\n });\n});\n\nexport const uploadPreview = (getState, base64, transparentBase64) => new Promise((resolve) => {\n const coma = base64.indexOf(',');\n const contentType = base64.substr(0, coma).split(/:/)[1].split(/;/)[0];\n const ext = contentType.split(/\\//)[1];\n const { canvas: { wallId } } = getState();\n\n const sign1 = signWallUpload(wallId, contentType, 'wall_previews', 'preview', ext);\n const sign2 = signWallUpload(wallId, contentType, 'wall_previews', 'preview-transparent', ext);\n Promise.all([sign1, sign2]).then((signatures) => {\n const urls = [];\n uploadBase64File(\n signatures[0].url,\n signatures[0].newHref,\n signatures[0].values,\n base64\n ).then((url) => {\n urls.push(url);\n uploadBase64File(\n signatures[1].url,\n signatures[1].newHref,\n signatures[1].values,\n transparentBase64\n ).then((transparentUrl) => {\n urls.push(transparentUrl);\n resolve(urls);\n });\n });\n });\n});\n\nexport const uploadAsset = (\n dispatch, getState, src, binaryContent, prefix\n) => new Promise((resolve) => {\n dispatch({\n type: Constants.savingWall.uploadAssetsStart\n });\n const coma = src.indexOf(',');\n const contentType = src.substr(0, coma).split(/:/)[1].split(/;/)[0];\n const ext = contentType.split(/\\//)[1];\n\n const { canvas: { wallId } } = getState();\n signWallUpload(wallId, contentType, prefix, 'file', ext).then(({ url, newHref, values }) => {\n uploadSignedFile(url, newHref, values, binaryContent).then((newSrc) => {\n dispatch({\n type: Constants.savingWall.uploadAssetsEnd\n });\n resolve(newSrc);\n });\n });\n});\n","import Constants from '../config/const';\nimport { saveWall } from './save_wall';\n\nexport const redo = (action) => ({\n type: Constants.undo.push,\n action\n});\n\nexport const undo = () => (dispatch, getState) => {\n const { undos } = getState();\n if (undos.length) {\n const action = undos[undos.length - 1];\n dispatch({\n type: Constants.undo.pop\n });\n dispatch(action);\n dispatch(saveWall());\n }\n};\n","import { trackEvent } from 'arts/config/analytics';\nimport Constants from '../config/const';\nimport { loadWorkDetails } from './works';\nimport { redo } from './undo';\nimport { saveWall } from './save_wall';\n\nconst detectBestPosition = (width, height, works, centerX, centerY) => {\n let posX = centerX - width / 2;\n let posY = centerY - height / 2;\n const work = works.find(({ x, y }) => (x === posX && y === posY));\n if (work) {\n posX += 1;\n posY += 1;\n }\n return {\n x: posX,\n y: posY\n };\n};\n\nexport const addToCanvas = ({\n workId, workSizeId, frameId, width, height\n}) => (dispatch, getState) => {\n const { silhouetteX, silhouetteY, works } = getState().canvas;\n if (!getState().workDetails[workId]) {\n dispatch(loadWorkDetails(workId));\n }\n const silhouetteCenterX = silhouetteX + (Constants.silhouette.width / 2);\n const silhouetteCenterY = silhouetteY + (Constants.silhouette.height / 2);\n const { x, y } = detectBestPosition(width, height, works, silhouetteCenterX, silhouetteCenterY);\n dispatch(redo({\n type: Constants.canvas.remove,\n index: works.length\n }));\n dispatch({\n type: Constants.canvas.add,\n workId,\n workSizeId,\n frameId,\n x,\n y\n });\n dispatch(saveWall());\n const { wallId, currency } = window.wall;\n trackEvent('wall builder: add work', {\n 'wall id': wallId,\n currency,\n 'work id': workId,\n 'frame id': frameId,\n width,\n height\n });\n};\n\nexport const removeFromCanvas = (index) => (dispatch, getState) => {\n const {\n workId, workSizeId, frameId, x, y\n } = getState().canvas.works[index];\n dispatch(redo({\n type: Constants.canvas.add,\n workId,\n workSizeId,\n frameId,\n x,\n y\n }));\n dispatch({\n type: Constants.canvas.remove,\n index\n });\n dispatch(saveWall());\n const { wallId, currency } = window.wall;\n trackEvent('wall builder: remove work', {\n 'wall id': wallId,\n currency,\n 'work id': workId,\n 'frame id': frameId\n });\n};\n\nexport const moveWorkTo = ({ index, x, y }) => (dispatch) => {\n dispatch({\n type: Constants.canvas.move,\n index,\n x,\n y\n });\n dispatch(saveWall());\n};\n\nexport const zoomIn = () => ({\n type: Constants.canvas.zoomIn\n});\n\nexport const zoomOut = () => ({\n type: Constants.canvas.zoomOut\n});\n\nexport const resetZoom = () => ({\n type: Constants.canvas.resetZoom\n});\n\nexport const recalculateDpis = () => ({\n type: Constants.canvas.recalculateDpis\n});\n\nexport const resetCenter = (canvasWidth, canvasHeight) => ({\n type: Constants.canvas.resetCenter,\n canvasWidth,\n canvasHeight\n});\n\nexport const setWorkSize = (workSizeId, index) => (dispatch, getState) => {\n const { workSizeId: prevWorkSizeId } = getState().canvas.works[index];\n dispatch(redo({\n type: Constants.canvas.setSize,\n workSizeId: prevWorkSizeId,\n index\n }));\n dispatch({\n type: Constants.canvas.setSize,\n workSizeId,\n index\n });\n dispatch(saveWall());\n};\n\nexport const setFrame = (frameId, index) => (dispatch, getState) => {\n const { frameId: prevFrameId } = getState().canvas.works[index];\n dispatch(redo({\n type: Constants.canvas.setFrame,\n frameId: prevFrameId,\n index\n }));\n dispatch({\n type: Constants.canvas.setFrame,\n frameId,\n index\n });\n dispatch(saveWall());\n};\n\nexport const setCenter = (centerX, centerY, x, y) => ({\n type: Constants.canvas.setCenter,\n centerX,\n centerY,\n posX: x,\n posY: y\n});\n\nexport const setColor = (currentColor) => (dispatch, getState) => {\n const { currentColor: prevColor } = getState().canvas;\n dispatch(redo({\n type: Constants.canvas.setColor,\n currentColor: prevColor\n }));\n dispatch({\n type: Constants.canvas.setColor,\n currentColor\n });\n dispatch(saveWall());\n};\n\nexport const showRuler = () => ({\n type: Constants.canvas.showRuler\n});\n\nexport const hideRuler = () => ({\n type: Constants.canvas.hideRuler\n});\n\nexport const showGuides = () => ({\n type: Constants.canvas.showGuides\n});\n\nexport const hideGuides = () => ({\n type: Constants.canvas.hideGuides\n});\n\nexport const showWidth = () => ({\n type: Constants.canvas.showWidth\n});\n\nexport const hideWidth = () => ({\n type: Constants.canvas.hideWidth\n});\n\nexport const setWidth = (width) => (dispatch) => {\n dispatch({\n type: Constants.canvas.setWidth,\n width\n });\n dispatch(saveWall());\n};\n\nexport const showHeight = () => ({\n type: Constants.canvas.showHeight\n});\n\nexport const hideHeight = () => ({\n type: Constants.canvas.hideHeight\n});\n\nexport const setHeight = (height) => (dispatch) => {\n dispatch({\n type: Constants.canvas.setHeight,\n height\n });\n dispatch(saveWall());\n};\n\nexport const updateAttributes = (attributes) => (dispatch) => {\n dispatch({\n type: Constants.canvas.updateAttributes,\n attributes\n });\n dispatch(saveWall());\n};\n\nexport const setSilhouette = (silhouette) => ({\n type: Constants.canvas.setSilhouette,\n silhouette\n});\n\nexport const hideSilhouette = () => ({\n type: Constants.canvas.hideSilhouette\n});\n","import { addArtToCart, addWallToCart } from 'arts/actions/cart_items';\n\nexport const addToCart = (index) => (dispatch, getState) => {\n const { canvas: { works }, workDetails } = getState();\n const { workId, workSizeId, frameId } = works[index];\n const { paperId } = workDetails[workId].workSizes.find((ws) => ws.id === workSizeId);\n dispatch(addArtToCart({ frameId, paperId, workId }));\n};\n\nexport const addCurrentWallToCart = () => (dispatch, getState) => {\n const { canvas: { wallId } } = getState();\n dispatch(addWallToCart(wallId));\n};\n","import { connect } from 'react-redux';\nimport CommandBar from './command_bar';\nimport { openPanel } from '../../actions/panel';\nimport {\n zoomIn, zoomOut, resetZoom, setSilhouette, hideSilhouette\n} from '../../actions/canvas';\nimport { addCurrentWallToCart } from '../../actions/cart';\nimport { undo } from '../../actions/undo';\nimport { totalPrice } from '../../selectors/work_sizes';\n\nconst mapStateToProps = (state) => {\n const {\n canvas: {\n name, works, currency\n },\n panel: { info }\n } = state;\n return {\n name,\n currency,\n detailsVisible: !!info,\n totalPrice: totalPrice(state),\n works,\n hasWorks: !!(works || []).length\n };\n};\n\nexport default connect(mapStateToProps, {\n openPanel,\n zoomIn,\n zoomOut,\n resetZoom,\n undo,\n addCurrentWallToCart,\n setSilhouette,\n hideSilhouette\n})(CommandBar);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"Wb12ed_5rPnBGFL4eL1J\";\nvar _2 = \"Vh6zaQHC75dYhEONkBr7\";\nvar _3 = \"GxV6tctaA_l8k5uglViw\";\nvar _4 = \"I0WVJjVjkX_WA0MaWRe1\";\nvar _5 = \"fLfs6d5gdGMVg1sJeSii\";\nvar _6 = \"EGeI4PReqESgVEP6EssK\";\nvar _7 = \"Bd4MwsmOGnpbzQu4y5TM\";\nvar _8 = \"anmE4Dut1sjHy86RWgk9\";\nvar _9 = \"VeSim_djljgtIxQHotIQ\";\nvar _a = \"BnedBJxwJqxfyU_O3irw\";\nvar _b = \"D5tWsW98Ihhiuoaqr9WD\";\nvar _c = \"GvlH6yyM_eBLrvIPaHbT\";\nvar _d = \"lF6QdQc2bJNdxMwwLK31\";\nvar _e = \"p_IoSBrI_OmdIVFoeZlG\";\nvar _f = \"Q8qQeieBm3JNup7jHEWr\";\nvar _10 = \"EBIkuw0a2lRemiIGxPTX\";\nvar _11 = \"eyyxyzD8JGUi8om2GlwD\";\nvar _12 = \"fieKNKzeTuyFUuKc8tqu\";\nvar _13 = \"YolSfs3f2RQXIYZhuWLb\";\nvar _14 = \"VuOWIrNda7ITQkl346W8\";\nvar _15 = \"yamXiGh97YGhD3fMFyjL\";\nvar _16 = \"WOuUgr16qv1cz0flB3Gb\";\nvar _17 = \"uMlHgdKbTR4cjnQlybBL\";\nvar _18 = \"wwOkVVe4AmThC0mguywt\";\nvar _19 = \"pvo0aNz_bMEiYvwHHC03\";\nvar _1a = \"sb8FKRQKWoXyxfpfidZ0\";\nvar _1b = \"hyxjLoTsX_0VfzGt5seM\";\nvar _1c = \"Fb5zYwmuyxiyC4dOfvvb\";\nvar _1d = \"AWDW7_9mZNzKYMq2E3kj\";\nexport { _1 as \"aboutFavs\", _2 as \"activeFilters\", _3 as \"adding\", _4 as \"awColor\", _5 as \"byColor\", _6 as \"colorLine\", _7 as \"container\", _8 as \"filterButton\", _9 as \"filters\", _a as \"header\", _b as \"headerFilters\", _c as \"headerTabs\", _d as \"image\", _e as \"info\", _f as \"inner\", _10 as \"loader\", _11 as \"more\", _12 as \"moreDivider\", _13 as \"moreFilter\", _14 as \"names\", _15 as \"paper\", _16 as \"search\", _17 as \"singleColor\", _18 as \"sizes\", _19 as \"tabs\", _1a as \"title\", _1b as \"wHolder\", _1c as \"work\", _1d as \"works\" }\n","import PropTypes from 'prop-types';\n\nexport const WorkPropTypes = {\n id: PropTypes.number.isRequired,\n title: PropTypes.string.isRequired,\n description: PropTypes.string.isRequired,\n imageThumbUrl: PropTypes.string.isRequired,\n imageUrl: PropTypes.string.isRequired,\n user: PropTypes.shape({\n userName: PropTypes.string.isRequired,\n id: PropTypes.number.isRequired,\n avatarUrl: PropTypes.string\n }).isRequired,\n landscape: PropTypes.bool.isRequired,\n workSizesAttributes: PropTypes.arrayOf(PropTypes.shape({\n paperWidth: PropTypes.number.isRequired,\n paperHeight: PropTypes.number.isRequired\n })).isRequired,\n printedOn: PropTypes.arrayOf(PropTypes.string).isRequired,\n isHidden: PropTypes.bool\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"HiP7BURvQjLKJ7dqAeSu\";\nvar _2 = \"w_JZQDwSfE_aLA5TUJQ_\";\nvar _3 = \"BOO5inz2zx0zU1hHdSbM\";\nvar _4 = \"Me3756CzZTfYlZqorpiw\";\nvar _5 = \"KAy9qngPEv5oIkbxEIU_\";\nvar _6 = \"XnhrxEnrqc2G77y3_UKw\";\nvar _7 = \"XmEB0ln8OKDhvbvP3Uw2\";\nexport { _1 as \"balanced\", _2 as \"container\", _3 as \"h4\", _4 as \"holder\", _5 as \"noPadding\", _6 as \"scroll\", _7 as \"title\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"tAyVQ99hJX8hL2g4zQ9m\";\nvar _2 = \"DGW3ialg95zgormlDcZZ\";\nvar _3 = \"m6_BI9ny2fmY4vxxCT3W\";\nvar _4 = \"BLEE9c8aboyNwEjDhHwV\";\nvar _5 = \"i1PAc66e5J5rBL1cKlv5\";\nvar _6 = \"LchdL8_ffj8ZP_iFLDmT\";\nvar _7 = \"ineQCD8jqgX59PcVLSwl\";\nvar _8 = \"SJVIIK2SwkZQlr4eIIlK\";\nvar _9 = \"f8UJQiTA62Ukt7aDqWBK\";\nvar _a = \"eVgKGCqxDBHOkcxayyzG\";\nvar _b = \"ysoM3e7HCqWi5R0XC7ib\";\nvar _c = \"bQhowxcFP_nKxswbo5TI\";\nvar _d = \"vRrzZnYhTWERjSI4R0Ya\";\nvar _e = \"NteuwNCQGml9Ww9WEAgv\";\nexport { _1 as \"addToCart\", _2 as \"columns\", _3 as \"details\", _4 as \"edit\", _5 as \"editButton\", _6 as \"editor\", _7 as \"img\", _8 as \"inlineEdit\", _9 as \"input\", _a as \"price\", _b as \"remove\", _c as \"sizes\", _d as \"title\", _e as \"work\" }\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Icon } from 'semantic-ui-react';\nimport { humanSizes } from '../../config/utils';\nimport * as classes from './classes.module.scss';\n\nconst Sizes = ({\n landscape,\n displayPaperWidth,\n displayPaperHeight,\n displayPrintWidth,\n displayPrintHeight,\n displayPrintWidthNoMat,\n displayPrintHeightNoMat,\n frameMat,\n frame,\n frameDisplayDepth,\n frameDisplayWidth,\n isWorkSizeHidden,\n paperMaterial,\n frameFinalFramedSize\n}) => {\n const hs = frameMat === 0\n ? humanSizes(landscape, displayPrintWidthNoMat, displayPrintHeightNoMat)\n : humanSizes(landscape, displayPrintWidth, displayPrintHeight);\n\n const frameDetails = frame ? (\n
\n { frame }\n  frame\n
\n Frame Depth: \n { frameDisplayDepth }\n
\n Frame Width: \n { frameDisplayWidth }\n { window.currentLocale.unit }\n
\n Final Framed Size: \n { frameFinalFramedSize }\n
\n ) : null;\n\n const phs = humanSizes(landscape, displayPaperWidth, displayPaperHeight);\n\n const hidden = isWorkSizeHidden ? (\n \n ) : null;\n\n return (\n
\n
\n Image Size: \n { hidden }\n { hs }\n
\n
\n { paperMaterial === 'Canvas' ? 'Canvas' : 'Paper' }\n  Size\n { frame ? ' (unframed)' : null }\n : \n { phs }\n
\n
\n Printed on \n { paperMaterial }\n
\n
\n { frameDetails }\n
\n
\n );\n};\n\nSizes.propTypes = {\n landscape: PropTypes.bool,\n displayPaperWidth: PropTypes.number,\n displayPaperHeight: PropTypes.number,\n displayPrintWidth: PropTypes.number,\n displayPrintHeight: PropTypes.number,\n displayPrintWidthNoMat: PropTypes.number,\n displayPrintHeightNoMat: PropTypes.number,\n frameMat: PropTypes.number,\n frame: PropTypes.string,\n frameDisplayDepth: PropTypes.string,\n frameDisplayWidth: PropTypes.number,\n paperMaterial: PropTypes.string,\n isWorkSizeHidden: PropTypes.bool,\n frameFinalFramedSize: PropTypes.string\n};\n\nexport default Sizes;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { Icon } from 'semantic-ui-react';\nimport * as shared from '../assets/shared.module.scss';\nimport * as classes from './classes.module.scss';\nimport Sizes from './sizes';\n\nexport const renderTitle = (title, authorName, isHidden) => {\n const hidden = isHidden ? (\n \n ) : null;\n return (\n
\n \n { hidden }\n { title }\n \n \n by \n { authorName }\n \n
\n );\n};\n\nconst WorkDetails = ({\n landscape,\n displayPaperWidth,\n displayPaperHeight,\n displayPrintWidth,\n displayPrintHeight,\n displayPrintWidthNoMat,\n displayPrintHeightNoMat,\n frameMat,\n title,\n authorName,\n price,\n paperMaterial,\n frame,\n frameDisplayDepth,\n frameDisplayWidth,\n frameFinalFramedSize,\n columns,\n showPrice,\n isHidden,\n isWorkSizeHidden,\n currency\n}) => {\n if (!title) {\n return null;\n }\n\n const sizesProps = {\n landscape,\n displayPaperWidth,\n displayPaperHeight,\n displayPrintWidth,\n displayPrintHeight,\n displayPrintWidthNoMat,\n displayPrintHeightNoMat,\n frameMat,\n frame,\n frameDisplayDepth,\n frameDisplayWidth,\n isWorkSizeHidden,\n paperMaterial,\n frameFinalFramedSize\n };\n\n if (columns) {\n const renderPrice = showPrice ? (\n
\n Price: \n { currency }\n { parseFloat(price).toFixed(2) }\n
\n ) : null;\n\n return (\n
\n { renderTitle(title, authorName, isHidden) }\n
\n \n
\n { renderPrice }\n
\n );\n }\n\n return (\n <>\n { renderTitle(title, authorName, isHidden) }\n
\n Price: \n { currency }\n { parseFloat(price).toFixed(2) }\n \n
\n \n );\n};\n\nWorkDetails.propTypes = {\n landscape: PropTypes.bool,\n frameDisplayWidth: PropTypes.number,\n displayPaperWidth: PropTypes.number,\n displayPaperHeight: PropTypes.number,\n displayPrintWidth: PropTypes.number,\n displayPrintHeight: PropTypes.number,\n displayPrintWidthNoMat: PropTypes.number,\n displayPrintHeightNoMat: PropTypes.number,\n frameMat: PropTypes.number,\n title: PropTypes.string,\n authorName: PropTypes.string,\n price: PropTypes.number,\n paperMaterial: PropTypes.string,\n frameFinalFramedSize: PropTypes.string,\n frame: PropTypes.string,\n frameDisplayDepth: PropTypes.string,\n columns: PropTypes.bool,\n showPrice: PropTypes.bool,\n isHidden: PropTypes.bool,\n isWorkSizeHidden: PropTypes.bool,\n currency: PropTypes.string\n};\n\nexport default WorkDetails;\n","import React from 'react';\nimport { Button, Icon } from 'semantic-ui-react';\nimport PropTypes from 'prop-types';\nimport { sortedHumanSizes } from '../../config/utils';\n\nconst AddToCanvasButtons = ({\n workSizesAttributes, landscape, addToCanvas\n}) => sortedHumanSizes(workSizesAttributes, landscape).map(([hs, ws]) => (\n addToCanvas(ws.id, ws.paperWidth, ws.paperHeight) }\n >\n { ws.isHidden ? : null }\n { hs }\n \n));\n\nAddToCanvasButtons.propTypes = {\n addToCanvas: PropTypes.func.isRequired,\n landscape: PropTypes.bool.isRequired,\n workSizesAttributes: PropTypes.arrayOf(PropTypes.shape({\n paperWidth: PropTypes.number.isRequired,\n paperHeight: PropTypes.number.isRequired,\n id: PropTypes.number.isRequired\n })).isRequired\n};\n\nexport default AddToCanvasButtons;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Icon } from 'semantic-ui-react';\nimport * as classes from './classes.module.scss';\nimport { WorkPropTypes } from '../../config/proptypes';\nimport More from '../assets/more';\nimport { renderTitle } from '../info/work_details';\nimport AddToCanvasButtons from './add_to_canvas';\n\nexport default class Work extends PureComponent {\n static propTypes = {\n ...WorkPropTypes,\n index: PropTypes.number.isRequired,\n addToCanvas: PropTypes.func.isRequired,\n showMoreLikeThis: PropTypes.func,\n moreSource: PropTypes.string.isRequired\n };\n\n showMoreLikeThis = () => {\n const {\n showMoreLikeThis, id, index, moreSource\n } = this.props;\n showMoreLikeThis(id, index, moreSource);\n }\n\n addToCanvas = (workSizeId, width, height) => {\n const { id, addToCanvas } = this.props;\n addToCanvas({\n workId: id, workSizeId, width, height\n });\n };\n\n renderSizes() {\n const { workSizesAttributes, landscape } = this.props;\n return (\n \n );\n }\n\n render() {\n const {\n title,\n imageUrl,\n user: {\n userName\n },\n showMoreLikeThis,\n isHidden\n } = this.props;\n\n const showMore = showMoreLikeThis ? (\n
\n \n
\n ) : null;\n\n return (\n
\n
\n {\n
\n
\n
\n { renderTitle(title, userName, isHidden) }\n
\n
\n { this.renderSizes() }\n
\n { showMore }\n
\n
\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport debounce from 'lodash.debounce';\nimport PropTypes from 'prop-types';\nimport {\n Input\n} from 'semantic-ui-react';\nimport * as classes from './classes.module.scss';\n\nexport default class Search extends PureComponent {\n static propTypes = {\n onChange: PropTypes.func.isRequired\n };\n\n constructor(props) {\n super(props);\n this.state = { query: '' };\n this.debouncedSetQuery = debounce(this.debouncedSetQuery, 400);\n }\n\n debouncedSetQuery = () => {\n const { query } = this.state;\n const { onChange } = this.props;\n onChange(query);\n }\n\n onChange = (e) => {\n this.setState({ query: e.target.value });\n this.debouncedSetQuery();\n }\n\n render() {\n const { query } = this.state;\n return (\n \n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Loader, Dropdown, Label, Icon, Menu\n} from 'semantic-ui-react';\nimport { Waypoint } from 'react-waypoint';\nimport { BY_COLOR, renderColorSelection } from 'arts/components/works/color_filters';\nimport Work from './work';\nimport * as classes from './classes.module.scss';\nimport Const from '../../config/const';\nimport Search from './search';\n\nconst renderCurrentFilter = (key, activeFilters, removeFilter) => {\n let content = null;\n if (key === BY_COLOR) {\n const hexColor = parseInt(activeFilters[key].value, 10).toString(16).padStart(6, '0');\n content = (\n
\n Color: \n
\n
\n );\n } else {\n content = activeFilters[key].text;\n }\n return (\n \n );\n};\n\nexport default class FindWorks extends PureComponent {\n static propTypes = {\n loadNextPage: PropTypes.func.isRequired,\n addToCanvas: PropTypes.func.isRequired,\n\n loadArtFilters: PropTypes.func,\n addFilter: PropTypes.func,\n removeFilter: PropTypes.func,\n\n closePanel: PropTypes.func.isRequired,\n showMoreLikeThis: PropTypes.func.isRequired,\n works: PropTypes.arrayOf(PropTypes.object).isRequired,\n loading: PropTypes.bool.isRequired,\n filters: PropTypes.array,\n activeFilters: PropTypes.object,\n\n pinned: PropTypes.bool.isRequired,\n onlyFavorites: PropTypes.bool\n };\n\n scroll = React.createRef();\n\n componentDidMount() {\n const { loadNextPage, loadArtFilters } = this.props;\n if (loadArtFilters) {\n loadArtFilters();\n }\n loadNextPage();\n }\n\n closePanel = () => {\n const { closePanel } = this.props;\n closePanel(Const.panelKinds.works);\n }\n\n addToCanvas = (opts) => {\n const { addToCanvas, pinned } = this.props;\n addToCanvas(opts);\n if (!pinned) {\n this.closePanel();\n }\n };\n\n addSeachFilter = (query) => {\n const { addFilter, removeFilter } = this.props;\n if (query) {\n addFilter('query', query, query);\n } else {\n removeFilter('query');\n }\n }\n\n renderLoader() {\n const { loading } = this.props;\n if (!loading) { return null; }\n return (\n
\n \n
\n );\n }\n\n renderMenuFilter({ key, options, title }) {\n const { addFilter } = this.props;\n const onSelect = (id) => addFilter(key, id, id);\n return (\n \n \n {\n key === BY_COLOR ? (\n
\n { renderColorSelection(onSelect, options, classes.colorLine, classes.singleColor) }\n
\n ) : (\n options.map(({ id, name }) => (\n addFilter(key, id, name) }>\n { name }\n \n ))\n )\n }\n
\n
\n );\n }\n\n renderFilters() {\n const { filters, addFilter } = this.props;\n if (!filters.length) {\n return this.renderLoader();\n }\n const topFilters = filters.filter((f) => !f.group);\n const groupFilters = filters.filter((f) => f.group);\n return (\n
\n
\n \n {\n topFilters.map((f) => this.renderMenuFilter(f))\n }\n \n \n { groupFilters.map((f) => this.renderMenuFilter(f)) }\n addFilter('newest_only', 'true', 'New Arrivals') }>\n NEW ARRIVALS\n \n \n \n \n
\n \n
\n );\n }\n\n renderWorks() {\n const { works, showMoreLikeThis } = this.props;\n return works.map((w, index) => (\n \n ));\n }\n\n renderActiveFilters() {\n const { activeFilters, removeFilter } = this.props;\n if (!Object.keys(activeFilters).length) { return null; }\n\n return (\n
\n {\n Object.keys(activeFilters).map(\n key => renderCurrentFilter(key, activeFilters, removeFilter)\n )\n }\n
\n );\n }\n\n render() {\n const { onlyFavorites, loadNextPage } = this.props;\n const wayPoint = (\n \n \n  \n \n \n );\n\n const filters = onlyFavorites ? null : (\n <>\n { this.renderFilters() }\n
\n { this.renderActiveFilters() }\n
\n \n );\n\n return (\n <>\n { filters }\n
\n
\n { this.renderWorks() }\n { this.renderLoader() }\n
\n { wayPoint }\n
\n \n );\n }\n}\n","import Constants from '../config/const';\nimport { loadSmilarWorks } from '../config/api';\nimport { openPanel, closePanel } from './panel';\n\nexport const showMoreLikeThis = (sourceId, index, source) => (dispatch, getState) => {\n let original;\n const { moreLikeThis: { works: moreWorks }, works, workDetails } = getState();\n switch (source) {\n case Constants.moreLikeThisSources.works: {\n original = works.works[index];\n break;\n }\n case Constants.moreLikeThisSources.canvas: {\n original = workDetails[sourceId];\n break;\n }\n default: {\n original = moreWorks[index];\n break;\n }\n }\n dispatch({\n type: Constants.moreLikeThis.set,\n sourceId,\n index,\n original\n });\n dispatch(closePanel({ kind: Constants.panelKinds.works }));\n setTimeout(() => {\n dispatch(openPanel({ kind: Constants.panelKinds.moreLikeThis }));\n }, 400);\n};\n\nexport const showWorks = () => (dispatch) => {\n dispatch(closePanel({ kind: Constants.panelKinds.moreLikeThis }));\n setTimeout(() => {\n dispatch(openPanel({ kind: Constants.panelKinds.works }));\n }, 400);\n};\n\nexport const hideMoreLikeThis = () => (dispatch) => {\n dispatch(closePanel({ kind: Constants.panelKinds.moreLikeThis }));\n dispatch({\n type: Constants.moreLikeThis.reset\n });\n};\n\nconst loadedMoreLikeThis = (works) => ({\n type: Constants.moreLikeThis.loaded,\n works\n});\n\nexport const loadMoreLikeThis = () => (dispatch, getState) => {\n dispatch({ type: Constants.moreLikeThis.loading });\n const { sourceId, source } = getState().moreLikeThis;\n loadSmilarWorks(sourceId).then((works) => {\n const { sourceId: sourceIdNew, source: sourceNew } = getState().moreLikeThis;\n if (sourceId === sourceIdNew && source === sourceNew) {\n dispatch(loadedMoreLikeThis(works));\n }\n });\n};\n","import { connect } from 'react-redux';\nimport FindWorks from './find_works';\nimport {\n loadNextPage, loadArtFilters, addFilter, removeFilter\n} from '../../actions/works';\nimport { closePanel } from '../../actions/panel';\nimport { addToCanvas } from '../../actions/canvas';\nimport { showMoreLikeThis } from '../../actions/more_like_this';\n\nconst mapStateToProps = ({ works, pin }) => ({ ...works, ...pin });\n\nexport default connect(mapStateToProps, {\n loadNextPage,\n addToCanvas,\n closePanel,\n loadArtFilters,\n addFilter,\n removeFilter,\n showMoreLikeThis\n})(FindWorks);\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport FindWorks from '../find_works/find_works';\nimport {\n loadNextFavoritePage\n} from '../../actions/works';\nimport { closePanel } from '../../actions/panel';\nimport { addToCanvas } from '../../actions/canvas';\nimport { showMoreLikeThis } from '../../actions/more_like_this';\n\nconst mapStateToProps = ({ favoriteWorks, pin }) => ({ ...favoriteWorks, ...pin });\n\nconst FindFavoriteWorks = (props) => ;\n\nexport default connect(mapStateToProps, {\n loadNextPage: loadNextFavoritePage,\n addToCanvas,\n closePanel,\n showMoreLikeThis\n})(FindFavoriteWorks);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport * as classes from './classes.module.scss';\n\nconst renderTitle = (title) => {\n if (typeof title === 'string') {\n return (\n

{ title }

\n );\n }\n return title;\n};\n\nconst Header = ({\n title, onClose, Icon, className, children\n}) => (\n <>\n
\n { Icon ? : null }\n { renderTitle(title) }\n
\n \n
\n
\n { children }\n \n);\n\nHeader.propTypes = {\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n onClose: PropTypes.func.isRequired,\n children: PropTypes.node,\n Icon: PropTypes.func,\n className: PropTypes.string\n};\n\nconst PanelLayout = ({\n title, onClose, children, icon, headerClass, headerChildren\n}) => (\n
\n
\n { headerChildren }\n
\n
\n { children }\n
\n
\n);\n\nPanelLayout.propTypes = {\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),\n onClose: PropTypes.func.isRequired,\n children: PropTypes.node.isRequired,\n headerChildren: PropTypes.node,\n icon: PropTypes.func,\n headerClass: PropTypes.string\n};\n\nexport default PanelLayout;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"sfgYu44uPSu3A1n5cHS_\";\nvar _2 = \"USAW0bMk6xSKKeVmCbdc\";\nvar _3 = \"GGCJfFoH8foC04G7Lqmt\";\nvar _4 = \"I2StfrN3dRCEWF8CmuCC\";\nvar _5 = \"QFXN7JJGUC_HkSxSZZS2\";\nvar _6 = \"DR_1rbWWS1L0KttrnS_E\";\nvar _7 = \"arkK6ZAFthvPpBWZP_tX\";\nexport { _1 as \"body\", _2 as \"close\", _3 as \"header\", _4 as \"icon\", _5 as \"panelDefault\", _6 as \"panelLayout\", _7 as \"right\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"B0K7FkZ9SRTrLwnVeQ2B\";\nexport { _1 as \"pin\" }\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as classes from './classes.module.scss';\nimport Pin from '../assets/pin';\nimport Pinned from '../assets/pinned';\n\nconst PinButton = ({ pinned, togglePin }) => (\n
\n \n
\n);\n\nPinButton.propTypes = {\n pinned: PropTypes.bool.isRequired,\n togglePin: PropTypes.func.isRequired\n};\n\nexport default PinButton;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Menu } from 'semantic-ui-react';\nimport FindWorks from '../find_works';\nimport FindFavorites from '../find_favorites';\nimport PanelLayout from '../panel/layout';\nimport PinButton from '../shared/pin';\nimport * as classes from '../find_works/classes';\n\nconst AddArt = ({ closePanel, pinned, togglePin }) => {\n const [currentTab, setTab] = useState(0);\n\n const content = currentTab === 0 ? : (\n <>\n

\n Easily create and style your art groupings while browsing the site -\n just mark your favorites as you browse the site (with the heart icon - \n \n ),\n
\n and you can access them from here when designing your combinations.\n

\n \n \n );\n\n const title = (\n
\n
\n \n setTab(0) }\n />\n setTab(1) }\n />\n \n
\n \n
\n );\n\n return (\n \n
\n { content }\n
\n \n );\n};\n\nAddArt.propTypes = {\n closePanel: PropTypes.func.isRequired,\n pinned: PropTypes.bool.isRequired,\n togglePin: PropTypes.func.isRequired\n};\n\nexport default AddArt;\n","import Constants from '../config/const';\n\nexport const togglePin = () => ({\n type: Constants.pin.toggle\n});\n","import { connect } from 'react-redux';\nimport AddArt from './add_art';\nimport { closePanel } from '../../actions/panel';\nimport { togglePin } from '../../actions/pin';\n\nconst mapStateToProps = ({ pin }) => pin;\n\nexport default connect(mapStateToProps, {\n closePanel,\n togglePin\n})(AddArt);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"J7c8oxeiN1J0nt0ForUu\";\nvar _2 = \"NJGvJy6PWanHotKs_he1\";\nvar _3 = \"ero4Gc0kH3NXzXwItBBP\";\nvar _4 = \"XInUhnwRYyMVlqSoxOsq\";\nexport { _1 as \"color\", _2 as \"defaultView\", _3 as \"section\", _4 as \"selectedColor\" }\n","/* eslint-disable jsx-a11y/control-has-associated-label */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport * as shared from '../assets/shared.module.scss';\nimport * as classes from './classes.module.scss';\n\nconst ColorSelection = ({\n colorName,\n currentColor,\n setColor\n}) => {\n const [name, color] = colorName;\n const className = classnames(\n classes.color, { [classes.selectedColor]: color === currentColor }\n );\n const style = {\n backgroundColor: color\n };\n const selectColor = () => setColor(color);\n return (\n \n  \n \n );\n};\n\nColorSelection.propTypes = {\n colorName: PropTypes.array.isRequired,\n currentColor: PropTypes.string.isRequired,\n setColor: PropTypes.func.isRequired\n};\n\nconst ColorSection = ({\n section, colors, currentColor, setColor\n}) => {\n if (!colors.length) {\n return null;\n }\n return (\n
\n

\n { section }\n

\n
\n {\n colors.map((c) => (\n \n ))\n }\n
\n
\n );\n};\n\nColorSection.propTypes = {\n section: PropTypes.string.isRequired,\n colors: PropTypes.array.isRequired,\n currentColor: PropTypes.string.isRequired,\n setColor: PropTypes.func.isRequired\n};\n\nconst Color = ({ currentColor, defaultColor, setColor }) => (\n <>\n
\n

\n Default\n

\n
\n \n
\n
\n {\n window.colors.map(({ name, colors }) => (\n \n ))\n }\n \n);\n\nColor.propTypes = {\n currentColor: PropTypes.string.isRequired,\n defaultColor: PropTypes.string.isRequired,\n setColor: PropTypes.func.isRequired\n};\n\nexport default Color;\n","import { connect } from 'react-redux';\nimport { setColor } from '../../actions/canvas';\nimport Color from './color';\nimport Const from '../../config/const';\n\nconst mapStateToProps = ({ canvas }) => ({\n ...canvas,\n defaultColor: Const.defaultColor\n});\n\nexport default connect(mapStateToProps, {\n setColor\n})(Color);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"YX9boAmESKv3AI5Gkxqj\";\nvar _2 = \"WiCkfKSQmGDMlsjHALbB\";\nvar _3 = \"cepIDhZc81hZlEi3_lEU\";\nvar _4 = \"S2Wa_IPllv4_JqBY4yI6\";\nvar _5 = \"WDh_thrASxTg7oBSLRXA\";\nvar _6 = \"e_FEziotiYC60SLIs8ii\";\nvar _7 = \"L1o_EbYYdKxmpiV8YFqv\";\nexport { _1 as \"description\", _2 as \"holder\", _3 as \"imageContainer\", _4 as \"input\", _5 as \"selectFile\", _6 as \"upload\", _7 as \"uploadHolder\" }\n","import React, { PureComponent } from 'react';\nimport { Button } from 'semantic-ui-react';\nimport classnames from 'classnames';\nimport PropTypes from 'prop-types';\nimport ZoomIn from '../assets/zoom_in';\nimport Const from '../../config/const';\nimport * as classes from './classes.module.scss';\n\nconst roundSize = (v) => parseFloat(v.toFixed(2));\n\nconst DEFAULT_DPI = 12;\n\nexport default class CustomImage extends PureComponent {\n static propTypes = {\n closePanel: PropTypes.func.isRequired,\n addCustomImage: PropTypes.func.isRequired,\n removeCustomImage: PropTypes.func.isRequired,\n src: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n widthIn: PropTypes.number,\n heightIn: PropTypes.number\n };\n\n constructor(props) {\n super(props);\n this.loadImageProps(props, false);\n }\n\n componentDidUpdate(prevProps) {\n const { src } = this.props;\n const { src: sSrc } = this.state;\n if (prevProps.src !== src && src !== sSrc) {\n this.loadImageProps(this.props, true);\n }\n }\n\n closePanel = () => {\n const { closePanel } = this.props;\n closePanel(Const.panelKinds.other);\n }\n\n loadImage = (src, binaryContent) => {\n const i = new Image();\n i.onload = () => {\n const { width, height } = i;\n const widthIn = roundSize(width / DEFAULT_DPI);\n const heightIn = roundSize(height / DEFAULT_DPI);\n const ratio = widthIn / heightIn;\n this.setState({\n src, widthIn, heightIn, ratio, binaryContent\n });\n };\n i.src = src;\n };\n\n onFileSelected = (e) => {\n const reader = new FileReader();\n const file = e.target.files[0];\n reader.addEventListener('load', () => {\n this.loadImage(reader.result, file);\n }, false);\n reader.readAsDataURL(file);\n }\n\n onChangeWidth = (e) => {\n const { ratio } = this.state;\n const widthIn = parseFloat(e.target.value);\n const heightIn = roundSize(widthIn / ratio);\n this.setState({ widthIn, heightIn });\n }\n\n onChangeHeight = (e) => {\n const { ratio } = this.state;\n const heightIn = parseFloat(e.target.value);\n const widthIn = roundSize(ratio * heightIn);\n this.setState({ widthIn, heightIn });\n }\n\n setCustomImage = () => {\n const { addCustomImage } = this.props;\n const {\n src, widthIn, heightIn, binaryContent\n } = this.state;\n addCustomImage({\n src, widthIn, heightIn, binaryContent\n });\n this.closePanel();\n };\n\n removeCustomImage = () => {\n const { removeCustomImage } = this.props;\n removeCustomImage();\n this.setState({\n src: null, widthIn: 0, heightIn: 0, ratio: 0\n });\n this.closePanel();\n };\n\n loadImageProps(props, canSetState) {\n const { src, widthIn, heightIn } = props;\n const newState = {\n src,\n widthIn,\n heightIn,\n ratio: (widthIn && heightIn) ? widthIn / heightIn : 0\n };\n if (canSetState) {\n this.setState(newState);\n } else {\n this.state = newState;\n }\n }\n\n renderInputs() {\n const { widthIn, heightIn } = this.state;\n if (!widthIn) {\n return (\n
\n

\n Upload a custom image.\n

\n
\n );\n }\n\n return (\n
\n

\n Please define the exact size of the image\n
\n in inches in order to best represent the size of your background.\n

\n
\n \n \n
\n
\n \n \n
\n
\n );\n }\n\n renderImage() {\n const { src } = this.state;\n return src ? (\n \"img\"\n ) : (\n
\n \n
\n );\n }\n\n render() {\n return (\n
\n
\n
\n { this.renderImage() }\n
\n { this.renderInputs() }\n
\n
\n );\n }\n}\n","import { connect } from 'react-redux';\nimport { addCustomImage, removeCustomImage } from '../../actions/custom_image';\nimport CustomImage from './custom_image';\nimport { closePanel } from '../../actions/panel';\n\nconst mapStateToProps = ({ customImage }) => customImage;\n\nexport default connect(mapStateToProps, {\n addCustomImage, removeCustomImage, closePanel\n})(CustomImage);\n","import Constants from '../config/const';\nimport { redo } from './undo';\nimport { saveWall, uploadAsset } from './save_wall';\n\nexport const removeCustomImage = () => (dispatch, getState) => {\n const {\n src, widthIn, heightIn, posX, posY\n } = getState().customImage;\n dispatch(redo({\n type: Constants.customImage.add,\n src,\n widthIn,\n heightIn,\n posX,\n posY\n }));\n dispatch({\n type: Constants.customImage.remove\n });\n dispatch(saveWall());\n};\n\nconst updateSrc = (src) => ({\n type: Constants.customImage.update,\n src\n});\n\nexport const addCustomImage = ({\n src, widthIn, heightIn, binaryContent\n}) => (dispatch, getState) => {\n const { centerX, centerY } = getState().canvas;\n dispatch({\n type: Constants.customImage.add,\n src,\n widthIn,\n heightIn,\n posX: centerX - (widthIn / 2),\n posY: centerY - (heightIn / 2)\n });\n dispatch(redo({\n type: Constants.customImage.remove\n }));\n uploadAsset(dispatch, getState, src, binaryContent, 'custom_images').then((newSrc) => {\n const { src: prevSrc } = getState().customImage;\n if (newSrc !== prevSrc && prevSrc) {\n dispatch(updateSrc(newSrc));\n dispatch(saveWall());\n }\n });\n};\n\nexport const moveCustomImage = ({ posX, posY }) => (dispatch, getState) => {\n const { posX: posXWas, posY: posYWas } = getState().customImage;\n dispatch({\n type: Constants.customImage.move,\n posX,\n posY\n });\n dispatch(redo({\n type: Constants.customImage.move,\n posX: posXWas,\n posY: posYWas\n }));\n dispatch(saveWall());\n};\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Menu } from 'semantic-ui-react';\nimport PanelLayout from '../panel/layout';\nimport Const from '../../config/const';\nimport Color from '../color';\nimport CustomImage from '../custom_image';\n// import WallPaper from '../wall_paper';\nimport * as classes from './classes.module.scss';\n\nconst TABS = {\n 'Paint Colors': Color,\n // wallpaper: WallPaper,\n 'Upload Your Own Background': CustomImage\n};\n\nexport default class AddOther extends PureComponent {\n static propTypes = {\n closePanel: PropTypes.func.isRequired,\n hasCustomImage: PropTypes.bool.isRequired,\n hasWallPaper: PropTypes.bool.isRequired\n };\n\n constructor(props) {\n super(props);\n const { hasCustomImage /* , hasWallPaper */ } = props;\n // eslint-disable-next-line no-nested-ternary\n const activeItemIndex = hasCustomImage ? 1 : 0;\n const activeItem = Object.keys(TABS)[activeItemIndex];\n this.state = {\n activeItem\n };\n }\n\n closePanel = () => {\n const { closePanel } = this.props;\n closePanel(Const.panelKinds.other);\n }\n\n changeTab = (_, { name }) => this.setState({ activeItem: name });\n\n render() {\n const { activeItem } = this.state;\n\n const tabs = Object.keys(TABS).map((t) => (\n \n ));\n\n const C = TABS[activeItem];\n\n return (\n \n
\n
\n \n { tabs }\n \n
\n
\n
\n \n
\n
\n
\n
\n );\n }\n}\n","// extracted by mini-css-extract-plugin\nvar _1 = \"PQMXC3X4njaU0N0gyxpF\";\nvar _2 = \"AzvQhpEy1DmjKoiLVnVd\";\nvar _3 = \"FvO6LX5HKosEPTllK2xP\";\nvar _4 = \"qb1c0kCGw4ApNM3pF3b8\";\nexport { _1 as \"container\", _2 as \"filters\", _3 as \"holder\", _4 as \"scroll\" }\n","import { connect } from 'react-redux';\nimport AddOther from './add_other';\nimport { closePanel } from '../../actions/panel';\n// import { addToCanvas } from '../../actions/canvas';\n\nconst mapStateToProps = ({ works, customImage: { src: ciSrc }, wallPaper: { src: wpSrc } }) => ({\n ...works,\n hasCustomImage: !!ciSrc,\n hasWallPaper: !!wpSrc\n});\n\nexport default connect(mapStateToProps, {\n closePanel\n})(AddOther);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"RWJq3gjDN6entAut1o_A\";\nvar _2 = \"NLWmkGp6lJByQm4daycA\";\nvar _3 = \"RyxEOTxVxfJ9dGOBlCTX\";\nexport { _1 as \"checkbox\", _2 as \"container\", _3 as \"line\" }\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Checkbox // , Button, Dropdown\n} from 'semantic-ui-react';\nimport PanelLayout from '../panel/layout';\nimport Const from '../../config/const';\nimport * as shared from '../assets/shared.module.scss';\nimport * as classes from './classes.module.scss';\n\nexport default class GuidesConfig extends PureComponent {\n static propTypes = {\n rulerVisible: PropTypes.bool.isRequired,\n guidesVisible: PropTypes.bool.isRequired,\n widthVisible: PropTypes.bool.isRequired,\n heightVisible: PropTypes.bool.isRequired,\n\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired,\n\n closePanel: PropTypes.func.isRequired,\n\n showRuler: PropTypes.func.isRequired,\n hideRuler: PropTypes.func.isRequired,\n\n showGuides: PropTypes.func.isRequired,\n hideGuides: PropTypes.func.isRequired,\n\n showWidth: PropTypes.func.isRequired,\n hideWidth: PropTypes.func.isRequired,\n setWidth: PropTypes.func.isRequired,\n\n showHeight: PropTypes.func.isRequired,\n hideHeight: PropTypes.func.isRequired,\n setHeight: PropTypes.func.isRequired\n };\n\n closePanel = () => {\n const { closePanel } = this.props;\n closePanel(Const.panelKinds.grids);\n };\n\n onShowGrid = (e, { checked }) => {\n const { showRuler, hideRuler } = this.props;\n (checked ? showRuler : hideRuler)();\n };\n\n onShowGuides = (e, { checked }) => {\n const { showGuides, hideGuides } = this.props;\n (checked ? showGuides : hideGuides)();\n };\n\n // onShowWidth = (e, { checked }) => {\n // const { showWidth, hideWidth } = this.props;\n // (checked ? showWidth : hideWidth)();\n // };\n\n // onShowHeight = (e, { checked }) => {\n // const { showHeight, hideHeight } = this.props;\n // (checked ? showHeight : hideHeight)();\n // };\n\n // onWidthChanged = (e) => {\n // const { setWidth } = this.props;\n // setWidth(parseFloat(e.target.value));\n // };\n\n // onHeightChanged = (e) => {\n // const { setHeight } = this.props;\n // setHeight(parseFloat(e.target.value));\n // };\n\n render() {\n const {\n rulerVisible, guidesVisible // , widthVisible, heightVisible, width, height\n } = this.props;\n return (\n \n
\n

\n Better understand the measurement of your art grouping - measurements are in inches.\n

\n

\n View\n

\n
\n \n \n

 

\n
\n
\n
\n );\n }\n}\n\n/*\n\n

\n Wall Size\n

\n
\n \n \n
\n
\n \n \n
\n*/\n","import { connect } from 'react-redux';\nimport GuidesConfig from './guides_config';\nimport { closePanel } from '../../actions/panel';\nimport {\n showRuler, hideRuler,\n showGuides, hideGuides,\n showWidth, hideWidth, setWidth,\n showHeight, hideHeight, setHeight\n} from '../../actions/canvas';\n\nconst mapStateToProps = ({ canvas }) => canvas;\n\nexport default connect(mapStateToProps, {\n closePanel,\n showRuler,\n hideRuler,\n showGuides,\n hideGuides,\n showWidth,\n hideWidth,\n setWidth,\n showHeight,\n hideHeight,\n setHeight\n})(GuidesConfig);\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Input, TextArea } from 'semantic-ui-react';\nimport * as classes from './classes.module.scss';\n\nexport default class Editor extends PureComponent {\n static propTypes = {\n value: PropTypes.string,\n setValue: PropTypes.func.isRequired,\n name: PropTypes.string.isRequired,\n text: PropTypes.bool\n };\n\n constructor(props) {\n super(props);\n this.state = { editing: false, newValue: '' };\n }\n\n input = React.createRef();\n\n startEditing = () => {\n const { value } = this.props;\n this.setState({ editing: true, newValue: value }, () => {\n this.input.current.focus();\n });\n };\n\n onChange = (event) => this.setState({ newValue: event.target.value });\n\n onCancel = () => this.setState({ editing: false });\n\n onSave = () => {\n const { newValue } = this.state;\n const { setValue } = this.props;\n setValue(newValue);\n this.onCancel();\n };\n\n onKeyDown = (e) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n this.onSave();\n return;\n }\n\n if (e.key === 'Escape') {\n e.preventDefault();\n this.onCancel();\n }\n };\n\n render() {\n const { editing, newValue } = this.state;\n const { name, value, text } = this.props;\n\n const C = text ? TextArea : Input;\n const content = editing ? (\n
\n \n
\n ) : (\n \n { value }\n \n );\n return (\n
\n \n { name }\n :\n \n { content }\n
\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Editor from './editor';\nimport * as classes from './classes.module.scss';\n\nconst Title = ({\n name, updateAttributes\n}) => {\n const setName = (newName) => updateAttributes({ name: newName });\n\n return (\n
\n \n
\n );\n};\n\nTitle.propTypes = {\n name: PropTypes.string,\n updateAttributes: PropTypes.func.isRequired\n};\n\nexport default Title;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Button } from 'semantic-ui-react';\nimport PanelLayout from '../panel/layout';\nimport * as shared from '../assets/shared.module.scss';\nimport * as classes from './classes.module.scss';\nimport Title from './title';\nimport WorkDetails from './work_details';\nimport Const from '../../config/const';\n\nconst renderWork = (\n workExtended,\n index,\n removeFromCanvas,\n addToCart,\n currency\n) => {\n const {\n zoomPreviewUrl,\n title\n } = workExtended;\n if (!title) {\n return null;\n }\n const remove = () => removeFromCanvas(index);\n\n const addWorkCart = () => addToCart(index);\n\n return (\n
\n
\n {\n \n
\n \n
\n \n
\n
\n );\n};\n\nconst Info = ({\n worksExtended, closePanel, removeFromCanvas, addToCart, currency, ...rest\n}) => (\n }\n onClose={ () => closePanel(Const.panelKinds.info) }\n >\n
\n
\n
\n {\n worksExtended.map((work, index) => renderWork(\n work, index, removeFromCanvas, addToCart, currency\n ))\n }\n
\n
\n
\n \n);\n\nInfo.propTypes = {\n closePanel: PropTypes.func.isRequired,\n removeFromCanvas: PropTypes.func.isRequired,\n worksExtended: PropTypes.array.isRequired,\n addToCart: PropTypes.func.isRequired,\n // the rest\n name: PropTypes.string,\n currency: PropTypes.string\n};\n\nexport default Info;\n","import { connect } from 'react-redux';\nimport Info from './info';\nimport { closePanel } from '../../actions/panel';\nimport { removeFromCanvas, updateAttributes } from '../../actions/canvas';\nimport { addToCart } from '../../actions/cart';\nimport { workSizeDetails } from '../../selectors/work_sizes';\n\nconst mapStateToProps = (state) => {\n const {\n canvas: {\n name, currency\n }\n } = state;\n\n return {\n worksExtended: workSizeDetails(state),\n name,\n currency\n };\n};\n\nexport default connect(mapStateToProps, {\n removeFromCanvas, closePanel, addToCart, updateAttributes\n})(Info);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"w3udV4OLLl6_ADrCCKrX\";\nvar _2 = \"foi3AQqLRw5G3HJxFZ31\";\nvar _3 = \"BoB07SQlvgrRc9e7ywxQ\";\nvar _4 = \"S91WTYJAl2LK2XyjaF9R\";\nvar _5 = \"MJEgKl7ZsMTM6TXxet3c\";\nvar _6 = \"I5uwhbcPCIkgerHWzNAI\";\nvar _7 = \"hgrrGTrX6Xp4N44wzJRg\";\nvar _8 = \"JYRhcMxdmfG5JMbUvkS6\";\nvar _9 = \"QS_nkxxTAidp_spHXJip\";\nvar _a = \"mJmg83Z4Yp0bv1yjqKiD\";\nvar _b = \"vN60tQ7jeHE1PMkjoc9H\";\nvar _c = \"wbYWLIaxCWz83qiLLm28\";\nvar _d = \"zsrMlpqkSFxVRz9YaQ7c\";\nvar _e = \"LdZGCFh3zzTBNTyXXMYa\";\nvar _f = \"W1_w0Z5U9PGU3VZL7esZ\";\nvar _10 = \"rYVKNjiCOIxrXBcKbeL4\";\nvar _11 = \"Q_B0AA9suOHzny0aTQNQ\";\nvar _12 = \"WYy2P_EKtDIq6jM3hlnT\";\nvar _13 = \"Fqh8BnP1YK4Nb0Up0Vys\";\nvar _14 = \"bO4xDPYpbwCDewikTUSQ\";\nvar _15 = \"UaaHGEtSmsLL70S86TV6\";\nvar _16 = \"rQ51A5fcIELsExwjl8zg\";\nvar _17 = \"EJ0NNyI3dj3GOhImq48O\";\nvar _18 = \"yMhfsM0FAdC81AcACeYa\";\nvar _19 = \"AjFLHfx6rDe7fGDqdkwA\";\nvar _1a = \"iN4Ir2U2KI8F3n3lMT9g\";\nvar _1b = \"vpAgnolDJUIpMhoyc6gq\";\nvar _1c = \"vLlOaf3SnUPVH14mnSxT\";\nexport { _1 as \"action\", _2 as \"actionAlignment\", _3 as \"actions\", _4 as \"addDescription\", _5 as \"canvas\", _6 as \"copyInput\", _7 as \"copyLink\", _8 as \"description\", _9 as \"details\", _a as \"detailsSection\", _b as \"divider\", _c as \"editDescription\", _d as \"editOverlay\", _e as \"img\", _f as \"logo\", _10 as \"logoSection\", _11 as \"preview\", _12 as \"previewSection\", _13 as \"saveActions\", _14 as \"saving\", _15 as \"scroll\", _16 as \"showPrice\", _17 as \"title\", _18 as \"totals\", _19 as \"uploadFile\", _1a as \"uploading\", _1b as \"work\", _1c as \"workDetails\" }\n","/* eslint-disable no-bitwise */\nimport React, { PureComponent } from 'react';\nimport { Loader, Button } from 'semantic-ui-react';\nimport PropTypes from 'prop-types';\nimport deepEqual from 'deep-equal';\nimport * as classes from './classes.module.scss';\nimport Constants from '../../config/const';\n\nconst MARK_PADDING_PX = 4;\nconst DEFAULT_MARK_COLOR = 'red';\nconst CONNECTOR_MARK_COLOR = '#f28c8c';\n\nconst lightenDarkenColor = (col, amt) => {\n let usePound = false;\n if (col[0] === '#') {\n // eslint-disable-next-line no-param-reassign\n col = col.slice(1);\n usePound = true;\n }\n\n const num = parseInt(col, 16);\n\n let r = (num >> 16) + amt;\n\n if (r > 255) r = 255;\n else if (r < 0) r = 0;\n\n let b = ((num >> 8) & 0x00FF) + amt;\n\n if (b > 255) b = 255;\n else if (b < 0) b = 0;\n\n let g = (num & 0x0000FF) + amt;\n\n if (g > 255) g = 255;\n else if (g < 0) g = 0;\n\n let v = (g | (b << 8) | (r << 16)).toString(16);\n if (v.length < 6) {\n v = '0'.repeat(6 - v.length) + v;\n }\n return (usePound ? '#' : '') + v;\n};\n\nconst fillBackrround = (ctx, color, canvasWidth, canvasHeight) => {\n const cleanColor = color.length > 5 ? color : (`#${ color.replace(/#/, '') }${ color.replace(/#/, '') }`);\n const gradColor = cleanColor === '#ffffff' ? '#f0f0ef' : lightenDarkenColor(cleanColor, -30);\n const gradient = ctx.createLinearGradient(0, 0, canvasWidth, canvasHeight);\n gradient.addColorStop(0, cleanColor);\n gradient.addColorStop(1, gradColor);\n ctx.fillStyle = gradient;\n ctx.fillRect(0, 0, canvasWidth, canvasHeight);\n};\n\nconst renderCaption = (ctx, text, x, y, align) => {\n ctx.beginPath();\n ctx.textAlign = align;\n ctx.font = 'bold 12px sans-serif';\n ctx.fillStyle = DEFAULT_MARK_COLOR;\n ctx.fillText(`${ text.toFixed(1) }\"`, x, y);\n ctx.closePath();\n};\n\nconst renderMark = (x0, x1, y0, y1, ctx, color = DEFAULT_MARK_COLOR) => {\n ctx.beginPath();\n ctx.strokeStyle = color;\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n ctx.stroke();\n ctx.closePath();\n};\n\nconst fullyContained = (iX, iY, iW, iH, canvasWidth, canvasHeight) => (\n iX >= 0 && iY >= 0 && iX + iW <= canvasWidth && iY + iH <= canvasHeight\n);\n\nconst cropImage = (iX, iY, iW, iH, canvasWidth, canvasHeight) => {\n let [sx, sy, sw, sh, dx, dy, dw, dh] = [iX, iY, iW, iH, iX, iY, iW, iH];\n if (iX < 0) {\n dx = 0;\n sx = -iX;\n sw -= -iX;\n dw -= -iX;\n } else {\n sx = 0;\n }\n if (iY < 0) {\n dy = 0;\n sy = -iY;\n sh -= -iY;\n dh -= -iY;\n } else {\n sy = 0;\n }\n if (dx + dw > canvasWidth) {\n dw = canvasWidth - dx;\n sw = dw;\n }\n if (dy + dh > canvasHeight) {\n dh = canvasHeight - dy;\n sh = dh;\n }\n return [sx, sy, sw, sh, dx, dy, dw, dh];\n};\n\nconst resizeImage = (src, width, height) => new Promise((resolve) => {\n const canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext('2d');\n const img = new Image();\n img.onload = () => {\n ctx.drawImage(img, 0, 0, width, height);\n resolve(ctx.canvas.toDataURL());\n };\n img.crossOrigin = '';\n img.src = src.match(/^http/) ? `${ src }?_=${ new Date().getTime() }` : src;\n});\n\nconst addWallPaper = (\n ctx, src, widthIn, heightIn, dpi, previewX, previewY, previewWidth, previewHeight\n) => new Promise((resolve) => {\n const img = new Image();\n img.onload = () => {\n let x = previewX;\n // TODO: cut last preview image\n while (x < previewX + previewWidth) {\n let y = previewY;\n while (y < previewY + previewHeight) {\n ctx.drawImage(\n img,\n 0, 0, widthIn * dpi, heightIn * dpi,\n (x - previewX) * dpi, (y - previewY) * dpi, widthIn * dpi, heightIn * dpi\n );\n y += heightIn;\n }\n x += widthIn;\n }\n resolve();\n };\n img.crossOrigin = '';\n img.src = src.match(/^http/) ? `${ src }?_=${ new Date().getTime() }` : src;\n});\n\nexport default class Preview extends PureComponent {\n static propTypes = {\n worksExtended: PropTypes.array.isRequired,\n wallPaper: PropTypes.shape({\n x: PropTypes.number,\n y: PropTypes.number,\n src: PropTypes.string\n }),\n previewConfig: PropTypes.shape({\n height: PropTypes.number,\n width: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number\n }),\n hangingVariations: PropTypes.arrayOf(PropTypes.shape({\n i0: PropTypes.number.isRequired,\n i1: PropTypes.number.isRequired,\n kinds: PropTypes.arrayOf(PropTypes.string)\n })),\n markPositions: PropTypes.shape({\n top: PropTypes.number.isRequired,\n left: PropTypes.number.isRequired,\n bottom: PropTypes.number.isRequired,\n right: PropTypes.number.isRequired,\n groundLeft: PropTypes.number.isRequired\n }),\n onBuildStarted: PropTypes.func.isRequired,\n onBuildComplete: PropTypes.func.isRequired,\n onClose: PropTypes.func,\n currentColor: PropTypes.string.isRequired,\n customImage: PropTypes.object,\n onlyPlaceHolders: PropTypes.bool,\n display: PropTypes.bool.isRequired,\n wallHeight: PropTypes.number\n };\n\n canvas = React.createRef();\n\n constructor(props) {\n super(props);\n this.state = { previewSrc: null, building: false };\n }\n\n componentDidMount() {\n this.renderPreview();\n }\n\n componentDidUpdate(prevProps) {\n const {\n previewConfig,\n worksExtended,\n currentColor,\n onlyPlaceHolders,\n wallPaper,\n customImage\n } = this.props;\n const {\n previewConfig: previewConfigWas,\n worksExtended: worksExtendedWas,\n currentColor: currentColorWas,\n onlyPlaceHolders: onlyPlaceHoldersWas,\n wallPaper: wallPaperWas,\n customImage: customImageWas\n } = prevProps;\n const compareProps = {\n previewConfig,\n worksExtended,\n currentColor,\n onlyPlaceHolders,\n wallPaper,\n customImage\n };\n const comparePropsWas = {\n previewConfig: previewConfigWas,\n worksExtended: worksExtendedWas,\n currentColor: currentColorWas,\n onlyPlaceHolders: onlyPlaceHoldersWas,\n wallPaper: wallPaperWas,\n customImage: customImageWas\n };\n if (!deepEqual(compareProps, comparePropsWas)) {\n this.renderPreview();\n }\n }\n\n onBuildComplete = (src, previewReady) => {\n const { onBuildComplete } = this.props;\n this.setState({ building: !previewReady, previewSrc: src });\n onBuildComplete(src, previewReady);\n };\n\n onBuildStarted = () => {\n const { onBuildStarted } = this.props;\n onBuildStarted();\n this.setState({ building: true, previewSrc: null });\n }\n\n onImageRendered(imagesLoaded, totalImages, ctx, dpi) {\n const { onlyPlaceHolders } = this.props;\n const res = imagesLoaded + 1;\n if (res === totalImages && this.canvas.current) {\n if (onlyPlaceHolders) {\n this.renderMarks(ctx, dpi);\n }\n this.onBuildComplete(this.canvas.current.toDataURL(), true);\n }\n return res;\n }\n\n addImage(shiftX, shiftY, previewX, previewY, x, y, previewW, previewH,\n url, dpi, ctx, canvasWidth, canvasHeight, skipShadow, onlyPlaceHolders, imageNumber) {\n return new Promise((resolve) => {\n const iX = shiftX + (parseFloat(x) - previewX) * dpi;\n const iY = shiftY + (parseFloat(y) - previewY) * dpi;\n const iW = previewW * dpi;\n const iH = previewH * dpi;\n resizeImage(url.match(/^http/) ? `${ url }?_=${ new Date().getTime() }` : url, iW, iH).then((src) => {\n const img = new Image();\n img.onload = () => {\n ctx.beginPath();\n if (!skipShadow && !onlyPlaceHolders) {\n ctx.shadowOffsetX = 4;\n ctx.shadowOffsetY = 6;\n ctx.shadowColor = 'rgba(0, 0, 0, 0.4)';\n ctx.shadowBlur = 19;\n }\n if (fullyContained(iX, iY, iW, iH, canvasWidth, canvasHeight)) {\n if (onlyPlaceHolders) {\n ctx.fillStyle = '#adadad';\n ctx.fillRect(iX, iY, iW, iH);\n const text = `${ imageNumber + 1 }`;\n const numbersSize = dpi * 5;\n ctx.font = `bold ${ numbersSize }px sans-serif`;\n const dx = parseInt(iW / 2, 10);\n ctx.textBaseline = 'middle';\n ctx.textAlign = 'center';\n ctx.fillStyle = '#fff';\n ctx.fillText(text, iX + dx, iY + parseInt(iH / 2, 10));\n this.positions[imageNumber] = {\n x: iX, y: iY, w: iW, h: iH\n };\n } else {\n ctx.drawImage(img, iX, iY, iW, iH);\n }\n } else {\n const [sx, sy, sw, sh, dx, dy, dw, dh] = cropImage(\n iX, iY, iW, iH, canvasWidth, canvasHeight\n );\n ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh);\n }\n ctx.closePath();\n resolve();\n };\n img.crossOrigin = '';\n img.src = src;\n });\n });\n }\n\n renderGroundMark(ctx) {\n const { wallHeight, worksExtended, markPositions: { groundLeft } } = this.props;\n const { height: canvasHeight } = Constants.preview;\n const lowerPos = canvasHeight - MARK_PADDING_PX * 2;\n const mappedWorks = worksExtended.map((w, index) => ({\n x: parseFloat(w.x),\n index\n })).sort((a, b) => Math.sign(a.x - b.x));\n const { index } = mappedWorks[0];\n const leftestWork = worksExtended[index];\n const text = parseFloat((wallHeight || 138) - leftestWork.y);\n const { x, y } = this.positions[index];\n renderMark(groundLeft, groundLeft, y, lowerPos, ctx);\n const mx0 = groundLeft - MARK_PADDING_PX;\n const mx1 = groundLeft + MARK_PADDING_PX;\n renderMark(mx0, mx1, y, y, ctx);\n renderMark(mx0, mx1, lowerPos, lowerPos, ctx);\n renderMark(groundLeft, x, y, y, ctx, CONNECTOR_MARK_COLOR);\n renderCaption(ctx, text, groundLeft - MARK_PADDING_PX, y + (lowerPos - y) / 2, 'right');\n }\n\n renderHangingMark(ctx, dpi, index0, index1, kind) {\n const { markPositions } = this.props;\n let x0 = 0;\n let y0 = 0;\n let x1 = 0;\n let y1 = 0;\n // eslint-disable-next-line no-unused-vars\n let _;\n if (kind === 'top' || kind === 'bottom') {\n y0 = markPositions[kind] * dpi;\n const pos = [\n this.positions[index0].x,\n this.positions[index0].x + this.positions[index0].w,\n this.positions[index1].x,\n this.positions[index1].x + this.positions[index1].w\n ].sort((a, b) => Math.sign(a - b));\n [_, x0, x1, _] = pos;\n renderMark(x0, x1, y0, y0, ctx);\n renderMark(x0, x0, y0 - MARK_PADDING_PX, y0 + MARK_PADDING_PX, ctx);\n renderMark(x1, x1, y0 - MARK_PADDING_PX, y0 + MARK_PADDING_PX, ctx);\n const imageMarkerBottom = (kind === 'top')\n ? Math.max(this.positions[index0].y, this.positions[index1].y)\n : Math.min(\n this.positions[index0].y + this.positions[index0].h,\n this.positions[index1].y + this.positions[index1].h\n );\n renderMark(x0, x0, y0, imageMarkerBottom, ctx, CONNECTOR_MARK_COLOR);\n renderMark(x1, x1, y0, imageMarkerBottom, ctx, CONNECTOR_MARK_COLOR);\n renderCaption(ctx, Math.abs((x1 - x0)) / dpi, x0 + ((x1 - x0) / 2), y0 - 2 * MARK_PADDING_PX, 'center');\n } else {\n x0 = markPositions[kind] * dpi;\n const pos = [\n this.positions[index0].y,\n this.positions[index0].y + this.positions[index0].h,\n this.positions[index1].y,\n this.positions[index1].y + this.positions[index1].h\n ].sort((a, b) => Math.sign(a - b));\n // eslint-disable-next-line no-unused-vars\n [_, y0, y1, _] = pos;\n renderMark(x0, x0, y0, y1, ctx);\n renderMark(x0 - MARK_PADDING_PX, x0 + MARK_PADDING_PX, y0, y0, ctx);\n renderMark(x0 - MARK_PADDING_PX, x0 + MARK_PADDING_PX, y1, y1, ctx);\n const imageMarkerSide = (kind === 'left')\n ? Math.max(this.positions[index0].x, this.positions[index1].x)\n : Math.min(\n this.positions[index0].x + this.positions[index0].w,\n this.positions[index1].x + this.positions[index1].w\n );\n renderMark(imageMarkerSide, x0, y0, y0, ctx, CONNECTOR_MARK_COLOR);\n renderMark(imageMarkerSide, x0, y1, y1, ctx, CONNECTOR_MARK_COLOR);\n renderCaption(\n ctx,\n Math.abs(y1 - y0) / dpi,\n x0 + MARK_PADDING_PX * (kind === 'left' ? -1 : 1),\n y0 + (y1 - y0) / 2,\n kind === 'left' ? 'right' : 'left'\n );\n }\n }\n\n renderMarks(ctx, dpi) {\n const { hangingVariations } = this.props;\n hangingVariations.forEach((v) => {\n v.kinds.forEach((kind) => {\n this.renderHangingMark(ctx, dpi, v.i0, v.i1, kind);\n });\n });\n this.renderGroundMark(ctx);\n }\n\n renderWorks(shiftX, shiftY, dpi, ctx, imagesLoaded, totalImages) {\n let iLoaded = imagesLoaded;\n const { previewConfig, worksExtended, onlyPlaceHolders } = this.props;\n const { x: previewX, y: previewY } = previewConfig;\n const { width: canvasWidth, height: canvasHeight } = Constants.preview;\n\n worksExtended.forEach((w, index) => {\n const {\n zoomPreviewUrl, x, y, previewW, previewH\n } = w;\n this.addImage(\n shiftX, shiftY, previewX, previewY, x, y, previewW, previewH,\n zoomPreviewUrl, dpi, ctx, canvasWidth, canvasHeight, false,\n onlyPlaceHolders, index\n ).then(() => {\n iLoaded = this.onImageRendered(iLoaded, totalImages, ctx, dpi);\n });\n });\n }\n\n renderWallPaper(shiftX, shiftY, dpi, ctx, il, ti) {\n let totalImages = ti;\n let imagesLoaded = il;\n const {\n previewConfig: {\n width: previewWidth, height: previewHeight, x: previewX, y: previewY\n },\n wallPaper\n } = this.props;\n const { src, widthIn, heightIn } = wallPaper || {};\n if (src) {\n totalImages += 1;\n resizeImage(src, widthIn * dpi, heightIn * dpi).then((newSrc) => {\n addWallPaper(ctx, newSrc, widthIn, heightIn, dpi,\n previewX, previewY, previewWidth, previewHeight).then(() => {\n imagesLoaded = this.onImageRendered(imagesLoaded, totalImages, ctx, dpi);\n this.renderCustomImage(shiftX, shiftY, dpi, ctx, imagesLoaded, totalImages);\n });\n });\n } else {\n this.renderCustomImage(shiftX, shiftY, dpi, ctx, imagesLoaded, totalImages);\n }\n }\n\n renderCustomImage(shiftX, shiftY, dpi, ctx, il, ti) {\n let totalImages = ti;\n let imagesLoaded = il;\n const { previewConfig, customImage, onlyPlaceHolders } = this.props;\n const { x: previewX, y: previewY } = previewConfig;\n const { width: canvasWidth, height: canvasHeight } = Constants.preview;\n if (customImage && customImage.src) {\n totalImages += 1;\n const {\n widthIn, heightIn, posX, posY, src\n } = customImage;\n resizeImage(src, widthIn * dpi, heightIn * dpi).then((newSrc) => {\n this.addImage(\n shiftX, shiftY, previewX, previewY, posX, posY, widthIn, heightIn,\n newSrc, dpi, ctx, canvasWidth, canvasHeight, true,\n onlyPlaceHolders, -1\n ).then(() => {\n imagesLoaded = this.onImageRendered(imagesLoaded, totalImages, ctx, dpi);\n this.renderWorks(shiftX, shiftY, dpi, ctx, imagesLoaded, totalImages);\n });\n });\n } else {\n this.renderWorks(shiftX, shiftY, dpi, ctx, imagesLoaded, totalImages);\n }\n }\n\n renderPreview() {\n const { building } = this.state;\n if (building) { return; }\n\n const {\n previewConfig, worksExtended, currentColor, onlyPlaceHolders\n } = this.props;\n const { width: canvasWidth, height: canvasHeight } = Constants.preview;\n this.onBuildStarted();\n this.positions = [];\n const {\n width: previewWidth, height: previewHeight\n } = previewConfig;\n\n if (!canvasWidth || !worksExtended.length || worksExtended.find((w) => !w.zoomPreviewUrl)) {\n this.onBuildComplete('data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==', false);\n return;\n }\n\n const dpiX = canvasWidth / previewWidth;\n const dpiY = canvasHeight / previewHeight;\n const dpi = Math.min(dpiX, dpiY);\n const shiftX = (canvasWidth - previewWidth * dpi) / 2;\n const shiftY = (canvasHeight - previewHeight * dpi) / 2;\n\n const ctx = this.canvas.current.getContext('2d');\n\n ctx.beginPath();\n fillBackrround(ctx, currentColor, canvasWidth, canvasHeight);\n if (onlyPlaceHolders) {\n ctx.strokeStyle = 'black';\n ctx.fillStyle = 'black';\n ctx.moveTo(0, canvasHeight - 3);\n ctx.lineTo(canvasWidth, canvasHeight - 3);\n ctx.stroke();\n ctx.textBaseline = 'bottom';\n ctx.textAlign = 'left';\n ctx.font = 'bold 12px sans-serif';\n ctx.fillText('Floor', 3, canvasHeight - 3);\n }\n ctx.closePath();\n this.renderWallPaper(shiftX, shiftY, dpi, ctx, 0, worksExtended.length);\n }\n\n render() {\n const { onClose, display } = this.props;\n const { width, height } = Constants.preview;\n const { previewSrc } = this.state;\n let preview = null;\n if (display) {\n preview = previewSrc ? (\n \"preview\"\n ) : (\n Building preview, please hold on.\n );\n }\n\n const editOverLay = onClose ? (\n
\n \n GO BACK TO WALL TO EDIT PREVIEW\n \n
\n ) : null;\n\n return (\n
\n
\n { preview }\n
\n \n { editOverLay }\n
\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, TextArea, Input } from 'semantic-ui-react';\nimport * as classes from './classes.module.scss';\n\nexport default class EditDescription extends PureComponent {\n static propTypes = {\n description: PropTypes.string,\n name: PropTypes.string,\n updateAttributes: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired\n };\n\n constructor(props) {\n super(props);\n const { name, description } = props;\n this.state = { newDescription: description, newName: name };\n this.textarea = React.createRef();\n }\n\n componentDidMount() {\n this.textarea.current.focus();\n }\n\n onChangeDescription = (event) => this.setState({ newDescription: event.target.value });\n\n onChangeName = (event) => this.setState({ newName: event.target.value });\n\n onSave = () => {\n const { newDescription, newName } = this.state;\n const { updateAttributes, onCancel } = this.props;\n updateAttributes({\n name: newName,\n description: newDescription\n });\n onCancel();\n };\n\n render() {\n const { newDescription, newName } = this.state;\n const { onCancel } = this.props;\n return (\n
\n Wall Title:\n \n Wall Description:\n \n
\n \n \n
\n
\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as classes from './classes.module.scss';\n\nexport default class UploadLogo extends PureComponent {\n static propTypes = {\n setLogo: PropTypes.func.isRequired,\n onCancel: PropTypes.func.isRequired\n };\n\n input = React.createRef();\n\n componentDidMount() {\n this.input.current.click();\n }\n\n onFileSelected = (e) => {\n const { setLogo, onCancel } = this.props;\n const reader = new FileReader();\n const file = e.target.files[0];\n reader.addEventListener('load', () => {\n setLogo(reader.result);\n onCancel();\n }, false);\n reader.readAsDataURL(file);\n }\n\n render() {\n return (\n
\n \n UPLOAD LOGO\n \n \n
\n );\n }\n}\n","import React, { useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport copy from 'clipboard-copy';\nimport { onWallShared } from 'arts/config/analytics';\nimport * as classes from './classes.module.scss';\n\nconst CopyText = ({ text, numItemsWall }) => {\n const ref = useRef(null);\n const copyLink = () => {\n onWallShared(numItemsWall);\n copy(text);\n };\n return (\n <>\n \n \n \n );\n};\n\nCopyText.propTypes = {\n text: PropTypes.string.isRequired,\n numItemsWall: PropTypes.number.isRequired\n};\n\nexport default CopyText;\n","import React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport {\n Button\n} from 'semantic-ui-react';\nimport Select from 'react-select';\nimport * as exportClasses from '../export/classes.module.scss';\nimport * as classes from './classes.module.scss';\nimport TagEditor from '../../../shared/tag_editor';\n\nconst mapValues = (collection) => collection.map(v => ({ value: v.id, label: v.name }));\nconst mapSelectedValues = (ids, collection) => collection\n .filter(v => ids.indexOf(v.id) > -1)\n .map(v => ({ value: v.id, label: v.name }));\n\nconst Attributes = ({\n onDone, updateAttributes, keywordList, colorList, associatedRoomIds, associatedHomeDecorStyleIds\n}) => {\n // console.log('attrs');\n //\n const setAtts = useCallback(\n (key) => (values) => updateAttributes({ [key]: values })\n );\n\n const setKeywords = setAtts('keywordList');\n const setColors = setAtts('colorList');\n\n const setIds = useCallback(\n (key) => (values) => updateAttributes({ [key]: values.map(v => v.value) })\n );\n\n const onRoomIds = setIds('associatedRoomIds');\n const onStyleIds = setIds('associatedHomeDecorStyleIds');\n\n return (\n
\n
\n
Colors
\n ({ value: v, label: v })) }\n onChange={ setColors }\n />\n
Keywords
\n ({ value: v, label: v })) }\n onChange={ setKeywords }\n />\n
Rooms
\n \n
Decor Styles
\n \n
\n \n Done\n \n
\n );\n};\n\nAttributes.propTypes = {\n onDone: PropTypes.func.isRequired,\n updateAttributes: PropTypes.func.isRequired,\n keywordList: PropTypes.arrayOf(PropTypes.string).isRequired,\n colorList: PropTypes.arrayOf(PropTypes.string).isRequired,\n associatedRoomIds: PropTypes.arrayOf(PropTypes.number).isRequired,\n associatedHomeDecorStyleIds: PropTypes.arrayOf(PropTypes.number).isRequired\n};\n\nexport default Attributes;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"eI0gKMQGNOV7sTSGAJ9N\";\nvar _2 = \"nqvMlKT9lrm_inXI7u03\";\nexport { _1 as \"form\", _2 as \"root\" }\n","import { connect } from 'react-redux';\nimport Attributes from './attributes';\nimport { updateAttributes } from '../../actions/canvas';\n\nconst mapStateToProps = (state) => {\n const {\n canvas: {\n keywordList, colorList, associatedRoomIds, associatedHomeDecorStyleIds\n }\n } = state;\n\n return {\n keywordList, colorList, associatedRoomIds, associatedHomeDecorStyleIds\n };\n};\n\nexport default connect(mapStateToProps, { updateAttributes })(Attributes);\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Checkbox, Loader } from 'semantic-ui-react';\nimport classnames from 'classnames';\nimport { onWallSaved, onWallShared } from 'arts/config/analytics';\nimport PanelLayout from '../panel/layout';\nimport * as shared from '../assets/shared.module.scss';\nimport * as classes from './classes.module.scss';\nimport Const from '../../config/const';\nimport WorkDetails from '../info/work_details';\nimport Preview from './preview';\nimport EditDescription from './edit_description';\nimport UploadLogo from './upload_logo';\nimport CopyText from './copy_text';\nimport Attributes from '../attributes';\n\nexport default class Export extends PureComponent {\n static propTypes = {\n closePanel: PropTypes.func.isRequired,\n savePreview: PropTypes.func.isRequired,\n publish: PropTypes.func.isRequired,\n showSharing: PropTypes.func.isRequired,\n updateAttributes: PropTypes.func.isRequired,\n setLogo: PropTypes.func.isRequired,\n resetLogo: PropTypes.func.isRequired,\n name: PropTypes.string,\n description: PropTypes.string,\n worksExtended: PropTypes.array.isRequired,\n totalPrice: PropTypes.number.isRequired,\n currency: PropTypes.string.isRequired,\n wallId: PropTypes.number.isRequired,\n // savingWall\n savingPictures: PropTypes.bool.isRequired,\n // exporting\n publishing: PropTypes.bool.isRequired,\n savingPreview: PropTypes.bool.isRequired,\n previewSaved: PropTypes.bool.isRequired,\n previewSavingError: PropTypes.object,\n previewSrc: PropTypes.string,\n logoSrc: PropTypes.string,\n // sharing\n sharingUrl: PropTypes.string\n };\n\n constructor(props) {\n super(props);\n this.state = {\n previewReady: false,\n previewReadyTransparent: false,\n showPrice: true,\n src: null,\n srcTransparent: null,\n editingDescription: false,\n uploadingLogo: false,\n editingAttributes: false\n };\n }\n\n componentDidUpdate({ publishing: prevPublishing }) {\n const { publishing } = this.props;\n if (publishing !== prevPublishing && !publishing) {\n // eslint-disable-next-line no-alert\n alert('Wall published');\n }\n }\n\n closePanel = () => {\n const { closePanel } = this.props;\n closePanel(Const.panelKinds.export);\n }\n\n savePreview = () => {\n const { savePreview, worksExtended } = this.props;\n const { src, srcTransparent, previewTimeStamp } = this.state;\n const itemsCount = (worksExtended || []).length;\n onWallSaved(itemsCount);\n savePreview(src, srcTransparent, previewTimeStamp);\n };\n\n onShareWall = () => {\n const { showSharing, worksExtended } = this.props;\n const itemsCount = (worksExtended || []).length;\n onWallShared(itemsCount);\n showSharing();\n };\n\n onBuildComplete = (src, previewReady) => {\n const newState = { previewReady, src };\n if (previewReady && src) {\n newState.previewTimeStamp = new Date().getTime();\n }\n this.setState(newState);\n };\n\n onBuildCompleteTransparent = (srcTransparent, previewReadyTransparent) => {\n const newState = { previewReadyTransparent, srcTransparent };\n this.setState(newState);\n };\n\n onBuildStarted = () => this.setState({ previewReady: false });\n\n onBuildStartedTransparent = () => this.setState({ previewReadyTransparent: false });\n\n onTogglePrice = () => this.setState((state) => ({ showPrice: !state.showPrice }));\n\n onEditDescription = () => this.setState({ editingDescription: true });\n\n onCancelEditingDescription = () => this.setState({ editingDescription: false });\n\n onUploadLogo = () => {\n const { logoSrc, resetLogo } = this.props;\n if (logoSrc) {\n resetLogo();\n return;\n }\n this.setState({ uploadingLogo: true });\n }\n\n onCancelUploadingLogo = () => this.setState({ uploadingLogo: false });\n\n exportPdf = () => {\n const { showPrice } = this.state;\n const { logoSrc } = this.props;\n document.querySelector('#pdf_form input[name=prices]').value = showPrice ? 'true' : 'false';\n document.querySelector('#pdf_form input[name=pdf_logo]').value = logoSrc || '';\n document.querySelector('#pdf_form').submit();\n };\n\n startEditingAttributes = () => this.setState({ editingAttributes: true });\n\n stopEditingAttributes = () => this.setState({ editingAttributes: false });\n\n renderWorks() {\n const { worksExtended, currency } = this.props;\n const { showPrice } = this.state;\n return worksExtended.map((w, index) => (\n
\n
\n
\n {\n
\n
\n \n
\n
\n
\n
\n ));\n }\n\n renderActions() {\n const {\n previewReady, showPrice, previewReadyTransparent, editingAttributes\n } = this.state;\n const {\n totalPrice, savingPreview, previewSavingError, previewSrc,\n publish, publishing, savingPictures, sharingUrl, worksExtended\n } = this.props;\n const disableControls = !totalPrice || !previewReadyTransparent\n || !previewReady || savingPreview || publishing || savingPictures;\n\n let renderStatus = null;\n if (previewSavingError) {\n renderStatus = (\n

\n Error saving preview, please try again.\n

\n );\n } else if (savingPreview) {\n renderStatus = (\n
\n \n

 Saving preview, please wait...

\n
\n );\n } else if (publishing) {\n renderStatus = (\n
\n \n

 Publishing, please wait...

\n
\n );\n }\n\n const renderPublish = window.canPublish ? (\n \n Publish\n \n ) : null;\n\n const renderEditAttributes = (window.canPublish && !editingAttributes) ? (\n \n Attributes...\n \n ) : null;\n\n if (publishing) {\n return (\n <>\n { renderPublish }\n { renderStatus }\n \n );\n }\n\n if (!previewSrc) {\n return (\n <>\n \n Save...\n \n { renderEditAttributes }\n { renderStatus }\n \n );\n }\n\n return (\n <>\n
\n \n \n Export PDF\n \n { renderEditAttributes }\n { renderStatus }\n
\n
\n \n Share\n \n { renderPublish }\n \n
\n \n );\n }\n\n renderLogo() {\n const { logoSrc, setLogo } = this.props;\n const { uploadingLogo } = this.state;\n\n let content = null;\n if (uploadingLogo) {\n content = (\n \n );\n } else if (!logoSrc) {\n content = (\n
\n UPLOAD YOUR LOGO\n
\n 200x200px tops, PNG/JPG image\n
\n );\n } else if (logoSrc) {\n content = (\n
\n \"Logo\"\n
\n );\n }\n\n const hoverTitle = logoSrc ? 'REMOVE LOGO' : 'UPLOAD LOGO';\n const hover = uploadingLogo ? null : (\n
\n \n { hoverTitle }\n \n
\n );\n\n return (\n <>\n
\n
\n { content }\n { hover }\n
\n \n );\n }\n\n render() {\n const {\n name, description, totalPrice, worksExtended, updateAttributes, currency\n } = this.props;\n\n const { showPrice, editingDescription, editingAttributes } = this.state;\n const price = showPrice ? (\n
\n Total Price: \n { currency }\n \n { totalPrice.toFixed(2) }\n \n
\n ) : null;\n\n const renderDesc = description ? (\n
\n Wall Descripiton: \n { description }\n
\n ) : (\n
\n ADD WALL DESCRIPTION\n
\n );\n\n const detailsSection = editingDescription ? (\n \n ) : (\n <>\n
\n Wall Title: \n { name }\n
\n { renderDesc }\n
\n \n EDIT\n \n
\n \n );\n\n const renderAttributes = (editingAttributes && window.canPublish) ? (\n <>\n

\n Attributes\n

\n \n \n ) : null;\n\n return (\n \n
\n
\n
\n

\n General Info\n

\n
\n \n \n
\n
\n { detailsSection }\n
\n { window.allowLogo ? this.renderLogo() : null }\n
\n { renderAttributes }\n

\n \n Art Details\n \n
\n \n { worksExtended.length }\n  items(s)\n \n { price }\n
\n

\n
\n { this.renderWorks() }\n
\n
\n
\n
\n { this.renderActions() }\n
\n
\n \n );\n }\n}\n","import { connect } from 'react-redux';\nimport Export from './export';\nimport { closePanel } from '../../actions/panel';\nimport { automaticPreview } from '../../selectors/preview';\nimport { workSizeDetails, totalPrice } from '../../selectors/work_sizes';\nimport {\n savePreview, showSharing, setLogo, resetLogo, publish\n} from '../../actions/export';\nimport { updateAttributes } from '../../actions/canvas';\n\nconst mapStateToProps = (state) => {\n const {\n canvas: {\n name, description, currentColor, wallId, sharingUrl, currency\n },\n customImage, wallPaper, exporting,\n savingWall: { savingPictures }\n } = state;\n return {\n wallId,\n name,\n description,\n worksExtended: workSizeDetails(state),\n totalPrice: totalPrice(state),\n previewConfig: automaticPreview(state),\n currentColor,\n customImage,\n wallPaper,\n savingPictures,\n ...exporting,\n sharingUrl,\n currency\n };\n};\n\nexport default connect(mapStateToProps, {\n closePanel, savePreview, showSharing, updateAttributes, setLogo, resetLogo, publish\n})(Export);\n","import Constants from '../config/const';\nimport { uploadPreview, saveWall } from './save_wall';\nimport { publishWallApi } from '../config/api';\n\nexport const publish = () => (dispatch, getState) => {\n dispatch({ type: Constants.export.publishing });\n const { canvas: { wallId } } = getState();\n publishWallApi(wallId).then(() => {\n dispatch({ type: Constants.export.published });\n });\n};\n\nexport const savePreview = (src, transparentSrc, previewTimeStamp) => (dispatch, getState) => {\n const {\n previewTimeStamp: lastPreviewTimeStamp,\n previewSrc\n } = getState().exporting;\n if (previewTimeStamp === lastPreviewTimeStamp) {\n dispatch({\n type: Constants.export.previewSaved,\n previewTimeStamp,\n previewSrc\n });\n return;\n }\n dispatch({ type: Constants.export.savePreview });\n uploadPreview(getState, src, transparentSrc).then(([newSrc, newTransparentSrc]) => {\n const complete = new Promise((res, rej) => {\n dispatch(saveWall(newSrc, newTransparentSrc, res, rej));\n });\n complete.then(() => {\n dispatch({\n type: Constants.export.previewSaved,\n previewTimeStamp,\n previewSrc: newSrc\n });\n });\n }).catch((error) => {\n dispatch({\n type: Constants.export.previewSaved,\n error\n });\n });\n};\n\nexport const showSharing = () => ({\n type: Constants.export.showSharing\n});\n\nexport const setLogo = (logoSrc) => ({\n type: Constants.export.setLogo,\n logoSrc\n});\n\nexport const resetLogo = () => ({\n type: Constants.export.setLogo,\n logoSrc: null\n});\n\n// export const publish = (src, previewTimeStamp) => (\n// dispatch, getState\n// ) => savePreviewAndSaveWall(src, previewTimeStamp, dispatch, getState).then(() => {\n// // TODO\n// });\n","// extracted by mini-css-extract-plugin\nvar _1 = \"gWgvAp31RA6kZCUjg15g\";\nvar _2 = \"vrOSYfIeFvxelwWvrrgj\";\nvar _3 = \"bkPIwR82prvdM1FDu8Rk\";\nvar _4 = \"aAF90ISWpcbYU0hZY8zY\";\nvar _5 = \"QSgHSJEaFkyRJ4WzxRLQ\";\nvar _6 = \"hb8foXlqRIhlF23dkejA\";\nvar _7 = \"J5NGEUTp3xEG55yEs557\";\nvar _8 = \"jxaSLZaKsz6mz7xY949Z\";\nvar _9 = \"SfFgCDEj6uxXWlPsFPaz\";\nvar _a = \"_m6IB9ouwpMc8VPlP_JI\";\nvar _b = \"ktDh2Jo0xc4t6Vgf2RZN\";\nvar _c = \"z6jolfKMYkYnuWCUyBRn\";\nvar _d = \"fZ4nJ6zR5Sr3IlCRagJh\";\nvar _e = \"sTyBwVM4EMHYOAE_Qus5\";\nvar _f = \"HQ2x7qcAb8f4hV2edHP4\";\nvar _10 = \"yxmS5_RQnA3wrlPNYoIz\";\nvar _11 = \"QCH7FdOW4E0meTGsEYQz\";\nexport { _1 as \"action\", _2 as \"actions\", _3 as \"category\", _4 as \"content\", _5 as \"details\", _6 as \"divider\", _7 as \"frame\", _8 as \"image\", _9 as \"large\", _a as \"medium\", _b as \"mounts\", _c as \"options\", _d as \"placeHolder\", _e as \"scroll\", _f as \"section\", _10 as \"selected\", _11 as \"workDetails\" }\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport * as classes from './classes.module.scss';\n\nconst renderImage = (src, alt) => (src\n ? ({)\n : (
)\n);\n\nconst SelectableFrame = ({\n frameId, currentFrameId, setFrameFromOption, frameThumbUrl, frame, mount, frameMatColorName\n}) => (\n setFrameFromOption(frameId, mount, frameMatColorName) }\n >\n { renderImage(frameThumbUrl, frame) }\n
\n);\n\nSelectableFrame.propTypes = {\n frameId: PropTypes.number,\n currentFrameId: PropTypes.number,\n frameThumbUrl: PropTypes.string,\n frame: PropTypes.string,\n setFrameFromOption: PropTypes.func.isRequired,\n mount: PropTypes.string,\n frameMatColorName: PropTypes.string\n};\n\nexport default SelectableFrame;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Icon } from 'semantic-ui-react';\nimport classnames from 'classnames';\nimport * as shared from '../assets/shared.module.scss';\nimport * as classes from './classes.module.scss';\n\nconst WorkTitle = ({\n imageUrl, title, authorName, large, medium, isHidden, children\n}) => {\n const hidden = isHidden ? (\n \n ) : null;\n\n const className = classnames(\n classes.image, {\n [classes.medium]: medium,\n [classes.large]: large\n }\n );\n\n // TODO: refactor with base_work\n return (\n
\n
\n {\n
\n
\n \n { hidden }\n { title }\n \n \n by \n { authorName }\n \n { children }\n
\n
\n );\n};\n\nWorkTitle.propTypes = {\n imageUrl: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n authorName: PropTypes.string.isRequired,\n medium: PropTypes.bool,\n large: PropTypes.bool,\n isHidden: PropTypes.bool,\n children: PropTypes.node\n};\n\nexport default WorkTitle;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Button, Radio, Icon } from 'semantic-ui-react';\nimport {\n FULL_BLEED, MATTE, FLOAT_DECKLED, FLOAT_STRIGHT\n} from 'arts/components/PapersMenu/mounts';\nimport PanelLayout from '../panel/layout';\nimport SelectableFrame from './selectable_frame';\nimport * as shared from '../assets/shared.module.scss';\nimport * as classes from './classes.module.scss';\nimport More from '../assets/more';\nimport Remove from '../assets/remove';\nimport Bag from '../assets/bag';\nimport WorkTitle from './work_title';\nimport Const from '../../config/const';\nimport { sortedHumanSizes } from '../../config/utils';\n\nconst NO_FRAME = 'noFrame';\n\nconst bestOptionFor = (obj, sequence) => {\n for (let i = 0, l = sequence.length; i < l; i += 1) {\n if (obj[sequence[i]]) {\n return sequence[i];\n }\n }\n return sequence[0];\n};\n\nconst buildFrameGroups = (options, frameId) => {\n const res = {\n [NO_FRAME]: options[0]\n };\n options.forEach((o) => {\n if (o.frameId) {\n const matKey = o.mount;\n res[matKey] = res[matKey] || {};\n res[matKey][o.frameCategory] = res[matKey][o.frameCategory] || [];\n res[matKey][o.frameCategory].push(o);\n if (frameId === o.frameId) {\n res.currentMount = matKey;\n res.currentMatColor = o.frameMatColorName;\n }\n }\n });\n res.currentMount = res.currentMount || bestOptionFor(res, ['matte', 'fullBleed', NO_FRAME]);\n // noFrame, 0, 3, currentMount\n return res;\n};\n\nconst filterOptions = (options, matColor) => {\n const useMatColor = matColor || 'White';\n const res = {};\n Object.keys(options).forEach((key) => {\n res[key] = options[key].filter((o) => o.frameMatColorName === useMatColor);\n });\n return res;\n};\n\nexport default class WorkDetails extends PureComponent {\n static propTypes = {\n workId: PropTypes.number,\n workSizeId: PropTypes.number,\n frameId: PropTypes.number,\n index: PropTypes.number,\n workSizes: PropTypes.array,\n setWorkSize: PropTypes.func.isRequired,\n removeFromCanvas: PropTypes.func.isRequired,\n setFrame: PropTypes.func.isRequired,\n hide: PropTypes.func.isRequired,\n showMoreLikeThis: PropTypes.func.isRequired,\n addToCart: PropTypes.func.isRequired,\n framingOptions: PropTypes.array.isRequired,\n landscape: PropTypes.bool,\n imageUrl: PropTypes.string,\n title: PropTypes.string,\n authorName: PropTypes.string,\n isHidden: PropTypes.bool\n };\n\n constructor(props) {\n super(props);\n const { framingOptions, frameId } = props;\n this.state = buildFrameGroups(framingOptions, frameId);\n this.setFrameFromOption = this.setFrameFromOption.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n const { framingOptions, frameId } = this.props;\n if (prevProps.framingOptions !== framingOptions) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState(buildFrameGroups(framingOptions, frameId));\n }\n }\n\n setFrameFromOption(frameId, mount, frameMatColorName) {\n const { setFrame, index } = this.props;\n setFrame(frameId, index);\n this.setState({ currentMount: mount, currentMatColor: frameMatColorName });\n }\n\n setMount(mount, frameMatColorName) {\n const {\n frameId, setFrame, index, workSizeId\n } = this.props;\n const newFrameId = this.findFirstMatchingFrameId(\n workSizeId, workSizeId, mount, frameMatColorName\n );\n if (frameId !== newFrameId) {\n setFrame(newFrameId, index);\n }\n this.setState({ currentMount: mount, currentMatColor: frameMatColorName });\n }\n\n setNoFrame = () => {\n const { setFrame, index } = this.props;\n setFrame(null, index);\n this.setState({ currentMatColor: null, currentMount: MATTE });\n };\n\n removeWork = () => {\n const { hide, index, removeFromCanvas } = this.props;\n removeFromCanvas(index);\n hide();\n }\n\n setWorkSize = (newId) => {\n const { currentMount, currentMatColor } = this.state;\n const {\n index, setFrame, setWorkSize, workSizeId\n } = this.props;\n const newFrameId = this.findFirstMatchingFrameId(\n workSizeId, newId, currentMount, currentMatColor\n );\n setWorkSize(newId, index);\n if (newFrameId) {\n setFrame(newFrameId, index);\n }\n }\n\n addToCart = () => {\n const { addToCart, index } = this.props;\n addToCart(index);\n }\n\n showMoreLikeThis = () => {\n const { showMoreLikeThis, workId, index } = this.props;\n showMoreLikeThis(workId, index, Const.moreLikeThisSources.canvas);\n }\n\n findFirstMatchingFrameId(prevWorkSize, newWorkSizeId, mount, frameMatColorName) {\n const {\n frameId, workSizes\n } = this.props;\n const ws = (workSizes || []).find((w) => w.id === prevWorkSize);\n let option;\n if (!frameId) {\n option = ws.options.find((o) => !!o.frameId);\n } else {\n option = ws.options.find((o) => o.frameId === frameId);\n }\n if (!option) {\n return null;\n }\n const { frameName } = option;\n const newWs = (workSizes || []).find((w) => w.id === newWorkSizeId);\n const altOption = newWs.options.find(\n (o) => (\n o.frameName === frameName\n && o.mount === mount\n && o.frameMatColorName === frameMatColorName\n )\n );\n if (altOption) {\n return altOption.frameId;\n }\n const mountAndMatOption = newWs.options.find(\n (o) => (\n o.mount === mount && o.frameMatColorName === frameMatColorName\n )\n );\n if (mountAndMatOption) {\n return mountAndMatOption.frameId;\n }\n const mountOption = newWs.options.find((o) => o.mount === mount);\n if (mountOption) {\n return mountOption.frameId;\n }\n return null;\n }\n\n renderWorkSizes() {\n const {\n workSizes, workSizeId, landscape\n } = this.props;\n return sortedHumanSizes(workSizes || [], landscape).map(([hs, ws]) => (\n this.setWorkSize(ws.id) }\n color={ ws.id === workSizeId ? 'black' : null }\n >\n { ws.isHidden ? : null }\n { hs }\n \n ));\n }\n\n renderCategory(name, options) {\n const { frameId } = this.props;\n if (!options) {\n return null;\n }\n return (\n
\n

\n { name }\n

\n
\n {\n options.map((o) => (\n \n ))\n }\n
\n
\n );\n }\n\n renderMountSelection(mount, label) {\n const { framingOptions, frameId } = this.props;\n const { currentMount, currentMatColor } = this.state;\n if (framingOptions.findIndex((o) => o.mount === mount) === -1) {\n // no frames with this kind\n return null;\n }\n const availableMatColors = mount === MATTE\n ? [...new Set(framingOptions.filter(o => o.frameMatColorName).map(o => o.frameMatColorName))]\n : [];\n if (mount === MATTE) {\n return (\n <>\n {\n availableMatColors.map((matColor) => (\n this.setMount(mount, matColor) }\n />\n ))\n }\n \n );\n }\n\n return (\n this.setMount(mount, null) }\n />\n );\n }\n\n render() {\n const {\n workId, frameId, hide, title, authorName, imageUrl, isHidden\n } = this.props;\n if (!workId) {\n return null;\n }\n\n const { currentMount, currentMatColor } = this.state;\n // eslint-disable-next-line react/destructuring-assignment\n const options = currentMount === NO_FRAME\n ? {}\n : (this.state[currentMount] || {});\n const filteredOptions = currentMount === MATTE\n ? filterOptions(options, currentMatColor)\n : options;\n\n const selectFrame = Object.keys(options).length ? (\n <>\n
\n \n { this.renderMountSelection(MATTE, 'With Matte') }\n { this.renderMountSelection(FULL_BLEED, 'No Matte') }\n { this.renderMountSelection(FLOAT_STRIGHT, 'Float Mount - Straight Edge') }\n { this.renderMountSelection(FLOAT_DECKLED, 'Float Mount - Deckled Edge') }\n
\n
\n { Object.keys(filteredOptions).map((c) => this.renderCategory(c, filteredOptions[c])) }\n
\n \n ) : null;\n\n const renderTitle = imageUrl ? (\n \n ) : null;\n\n return (\n \n
\n
\n
\n
\n \n
\n \n
\n \n
\n { renderTitle }\n
\n { this.renderWorkSizes() }\n
\n { selectFrame }\n
\n
\n
\n \n );\n }\n}\n","import { connect } from 'react-redux';\nimport WorkDetails from './work_details';\nimport { setWorkSize, setFrame, removeFromCanvas } from '../../actions/canvas';\nimport { hide } from '../../actions/current_index';\nimport { addToCart } from '../../actions/cart';\nimport { showMoreLikeThis } from '../../actions/more_like_this';\n\nconst mapStateToProps = ({ workDetails, canvas: { works }, currentIndex }) => {\n const work = works[currentIndex] || {};\n const details = (work.workId ? workDetails[work.workId] : {}) || {};\n const framingOptions = work.workId\n ? ((details.workSizes || []).find((ws) => ws.id === work.workSizeId) || {}).options || []\n : [];\n return ({\n ...work,\n ...details,\n framingOptions,\n index: currentIndex\n });\n};\n\nexport default connect(mapStateToProps, {\n setFrame, setWorkSize, hide, removeFromCanvas, addToCart, showMoreLikeThis\n})(WorkDetails);\n","import Constants from '../config/const';\nimport { openPanel, closePanel } from './panel';\n\nexport const show = (index) => (dispatch) => {\n dispatch({ type: Constants.workDetails.show, index });\n dispatch(openPanel({ kind: Constants.panelKinds.details }));\n};\n\nexport const hide = () => (dispatch) => {\n dispatch(closePanel({ kind: Constants.panelKinds.details }));\n dispatch({ type: Constants.workDetails.hide });\n};\n","import React from 'react';\nimport { Icon } from 'semantic-ui-react';\nimport * as classes from './classes.module.scss';\n\nconst BackButton = (props) => (\n
\n \n
\n);\n\nexport default BackButton;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Loader } from 'semantic-ui-react';\nimport classnames from 'classnames';\nimport { WorkPropTypes } from '../../config/proptypes';\nimport Work from '../find_works/work';\nimport WorkTitle from '../work_details/work_title';\nimport AddToCanvasButtons from '../find_works/add_to_canvas';\nimport Const from '../../config/const';\nimport * as findClasses from '../find_works/classes.module.scss';\nimport * as detailsClasses from '../work_details/classes.module.scss';\nimport PanelLayout from '../panel/layout';\nimport * as shared from '../assets/shared.module.scss';\nimport * as classes from './classes.module.scss';\nimport PinButton from '../shared/pin';\nimport BackButton from '../shared/back';\n\nexport default class MoreLikeThis extends PureComponent {\n static propTypes = {\n sourceId: PropTypes.number,\n loading: PropTypes.bool.isRequired,\n\n hideMoreLikeThis: PropTypes.func.isRequired,\n loadMoreLikeThis: PropTypes.func.isRequired,\n showMoreLikeThis: PropTypes.func.isRequired,\n addToCanvas: PropTypes.func.isRequired,\n\n original: PropTypes.shape({\n artistName: PropTypes.string,\n authorName: PropTypes.string,\n imageUrl: PropTypes.string,\n title: PropTypes.string,\n id: PropTypes.number,\n workSizesAttributes: PropTypes.object,\n workSizes: PropTypes.array,\n landscape: PropTypes.bool\n }),\n works: PropTypes.arrayOf(PropTypes.shape(WorkPropTypes)),\n\n pinned: PropTypes.bool.isRequired,\n togglePin: PropTypes.func.isRequired,\n showWorks: PropTypes.func.isRequired\n };\n\n constructor(props) {\n super(props);\n this.state = { large: true };\n }\n\n componentDidMount() {\n const { loadMoreLikeThis } = this.props;\n loadMoreLikeThis();\n }\n\n componentDidUpdate({ sourceId: sourceIdWas }) {\n const { sourceId, loadMoreLikeThis } = this.props;\n if (sourceId && sourceId !== sourceIdWas) {\n loadMoreLikeThis();\n }\n }\n\n onToggle = () => this.setState(({ large }) => ({\n large: !large\n }));\n\n addToCanvas = (workSizeId, width, height) => {\n const {\n original: { id }, addToCanvas, hideMoreLikeThis, pinned\n } = this.props;\n addToCanvas({\n workId: id, workSizeId, width, height\n });\n if (!pinned) {\n hideMoreLikeThis();\n }\n };\n\n addToCanvasAndClose = (opts) => {\n const { addToCanvas, hideMoreLikeThis, pinned } = this.props;\n addToCanvas(opts);\n if (!pinned) {\n hideMoreLikeThis();\n }\n };\n\n renderLoader() {\n const { loading } = this.props;\n if (!loading) { return null; }\n return (\n
\n \n
\n );\n }\n\n renderWorks() {\n const { works, showMoreLikeThis } = this.props;\n return (works || []).map((w, index) => (\n \n ));\n }\n\n render() {\n const {\n hideMoreLikeThis, original, pinned, togglePin, showWorks\n } = this.props;\n if (!original) {\n return null;\n }\n const {\n artistName: authorName, authorName: authorName2,\n imageUrl, title, workSizesAttributes, workSizes, landscape\n } = original;\n const workTitleProps = { authorName: authorName || authorName2, imageUrl, title };\n const { large } = this.state;\n\n if (!workSizesAttributes && !workSizes) {\n return null;\n }\n\n const rendeTitle = (\n <>\n
\n \n
\n \n
\n
\n\n
\n \n \n \n );\n\n const headerChildren = (\n

\n \n More like \n "\n { title }\n "\n \n \n «\n \n

\n );\n\n return (\n \n
\n
\n
\n { this.renderWorks() }\n { this.renderLoader() }\n
\n
\n
\n\n \n );\n }\n}\n","// extracted by mini-css-extract-plugin\nvar _1 = \"JBA_rgdDLV0IfMdTDIsa\";\nvar _2 = \"F_DlNVSgYoe21DKUsWQ6\";\nvar _3 = \"srGAmk_enMSM5V2xfVro\";\nvar _4 = \"J0AS9vqNCyAPGphoVXSA\";\nvar _5 = \"J1okO5TTbvH4gJM_YdXg\";\nexport { _1 as \"headerClass\", _2 as \"large\", _3 as \"sizes\", _4 as \"small\", _5 as \"subTitle\" }\n","import { connect } from 'react-redux';\nimport MoreLikeThis from './more_like_this';\nimport {\n hideMoreLikeThis, loadMoreLikeThis, showMoreLikeThis, showWorks\n} from '../../actions/more_like_this';\nimport { addToCanvas } from '../../actions/canvas';\nimport { togglePin } from '../../actions/pin';\n\nconst mapStateToProps = ({ moreLikeThis, pin }) => ({ ...moreLikeThis, ...pin });\n\nexport default connect(mapStateToProps, {\n hideMoreLikeThis, loadMoreLikeThis, showMoreLikeThis, addToCanvas, togglePin, showWorks\n})(MoreLikeThis);\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Checkbox } from 'semantic-ui-react';\nimport Const from '../../config/const';\nimport PanelLayout from '../panel/layout';\nimport * as shared from '../assets/shared.module.scss';\n\nexport default class CustomPreviewPanel extends PureComponent {\n static propTypes = {\n custom: PropTypes.bool.isRequired,\n automaticPreview: PropTypes.shape({\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n }).isRequired,\n\n closePanel: PropTypes.func.isRequired,\n setCrop: PropTypes.func.isRequired,\n resetCrop: PropTypes.func.isRequired\n };\n\n closePanel = () => {\n const { closePanel } = this.props;\n closePanel(Const.panelKinds.customPreview);\n };\n\n onToggleCrop = (e, { checked }) => {\n const {\n automaticPreview: {\n x, y, width, height\n },\n setCrop,\n resetCrop\n } = this.props;\n\n if (checked) {\n setCrop({\n x, y, width, height\n });\n return;\n }\n resetCrop();\n };\n\n render() {\n const { custom } = this.props;\n\n return (\n \n
\n
\n \n
\n
\n \n );\n }\n}\n","import Constants from '../config/const';\n\nexport const setCrop = ({\n x, y, width, height\n}) => ({\n type: Constants.crop.set,\n x,\n y,\n width,\n height\n});\n\nexport const resetCrop = () => ({ type: Constants.crop.reset });\n","import { connect } from 'react-redux';\nimport CustomPreviewPanel from './custom_preview_panel';\nimport { automaticPreview } from '../../selectors/preview';\nimport { setCrop, resetCrop } from '../../actions/crop';\nimport { closePanel } from '../../actions/panel';\n\nconst mapStateToProps = (state) => {\n const { crop } = state;\n return {\n ...crop,\n automaticPreview: automaticPreview(state)\n };\n};\n\nexport default connect(mapStateToProps, {\n closePanel, setCrop, resetCrop\n})(CustomPreviewPanel);\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport { Loader, Checkbox, Button } from 'semantic-ui-react';\nimport PanelLayout from '../panel/layout';\nimport Preview from '../export/preview';\nimport * as shared from '../assets/shared.module.scss';\nimport * as classes from './styles.module.scss';\nimport Const from '../../config/const';\n\nconst KINDS = ['top', 'bottom', 'left', 'right'];\n\nexport default class Hanging extends PureComponent {\n static propTypes = {\n closePanel: PropTypes.func.isRequired,\n load: PropTypes.func.isRequired,\n update: PropTypes.func.isRequired,\n reset: PropTypes.func.isRequired,\n save: PropTypes.func.isRequired,\n\n worksExtended: PropTypes.array.isRequired,\n previewConfig: PropTypes.shape({\n height: PropTypes.number,\n width: PropTypes.number,\n x: PropTypes.number,\n y: PropTypes.number\n }).isRequired,\n\n loading: PropTypes.bool.isRequired,\n hangingVariations: PropTypes.array,\n markPositions: PropTypes.object,\n wallHeight: PropTypes.number\n };\n\n constructor(props) {\n super(props);\n this.state = { canSave: false, image: null };\n }\n\n componentDidMount() {\n const { load } = this.props;\n load();\n }\n\n onBuildStarted = () => this.setState({ canSave: false, image: null });\n\n onBuildComplete = (image, canSave) => this.setState({ canSave, image });\n\n onChecked(index, kind, checked) {\n const { hangingVariations, update } = this.props;\n const { first, second } = hangingVariations[index];\n if (checked) {\n update(first, second, kind, true);\n } else {\n update(first, second, kind, false);\n }\n }\n\n save = () => {\n const { save } = this.props;\n const { image } = this.state;\n save(image);\n };\n\n // eslint-disable-next-line class-methods-use-this\n renderKind(kind, kinds, index) {\n const isChecked = kinds.includes(kind);\n return (\n this.onChecked(index, kind, checked) }\n />\n );\n }\n\n // eslint-disable-next-line class-methods-use-this\n renderVariation(variation, index) {\n // const { }\n const {\n i0, i1, kinds // , first, second, kinds\n } = variation;\n return (\n
\n \n { i0 + 1 }\n \n ←\n →\n \n { i1 + 1 }\n \n { KINDS.map((k) => this.renderKind(k, kinds, index)) }\n
\n );\n }\n\n renderContent() {\n const {\n loading, hangingVariations, worksExtended, previewConfig,\n markPositions, reset, wallHeight\n } = this.props;\n\n if (loading || !hangingVariations.length) {\n return (\n \n );\n }\n\n const previewProps = {\n worksExtended,\n previewConfig,\n onBuildStarted: this.onBuildStarted,\n onBuildComplete: this.onBuildComplete,\n currentColor: '#fff',\n onlyPlaceHolders: true,\n markPositions,\n hangingVariations,\n display: true,\n wallHeight\n };\n\n const { canSave } = this.state;\n\n const renderSave = canSave ? (\n \n ) : null;\n\n return (\n <>\n \n
\n
\n
\n \n { renderSave }\n
\n
\n { hangingVariations.map((hv, index) => this.renderVariation(hv, index)) }\n
\n
\n
\n \n );\n }\n\n render() {\n const { closePanel } = this.props;\n\n return (\n closePanel(Const.panelKinds.hanging) }\n >\n
\n { this.renderContent() }\n
\n \n );\n }\n}\n","// extracted by mini-css-extract-plugin\nvar _1 = \"cVFLze8UWrkLM1xsbaI6\";\nvar _2 = \"HL6xh6bIfxz8rbC88CYL\";\nexport { _1 as \"marks\", _2 as \"scroll\" }\n","import { connect } from 'react-redux';\nimport { closePanel } from '../../actions/panel';\nimport {\n load, update, reset, save\n} from '../../actions/hangings';\nimport { hangingPreview } from '../../selectors/preview';\nimport { workSizeDetails, hangingVariations } from '../../selectors/work_sizes';\nimport Hanging from './hanging';\n\nconst mapStateToProps = (state) => ({\n worksExtended: workSizeDetails(state),\n ...hangingPreview(state),\n hangingVariations: hangingVariations(state),\n ...state.hangings,\n wallHeight: state.canvas.height\n});\n\nexport default connect(mapStateToProps, {\n closePanel, load, update, reset, save\n})(Hanging);\n","import Constants from '../config/const';\nimport { loadHanging, saveHanging, saveHangingImage } from '../config/api';\n\nexport const load = () => (dispatch, getState) => {\n const { canvas: { wallId } } = getState();\n dispatch({ type: Constants.hangings.load });\n loadHanging(wallId).then(({ hangingMarks }) => {\n dispatch({\n type: Constants.hangings.loaded,\n hangingMarks\n });\n });\n};\n\nexport const update = (first, second, kind, isAdd) => ({\n type: Constants.hangings.update, first, second, kind, isAdd\n});\n\nexport const reset = () => ({\n type: Constants.hangings.reset\n});\n\nexport const save = (image) => (dispatch, getState) => {\n const { hangings: { hangingMarks }, canvas: { wallId } } = getState();\n dispatch({ type: Constants.hangings.saving });\n saveHanging(wallId, hangingMarks).then(({ hangingMarks: newMarks }) => {\n saveHangingImage(wallId, image).then(() => {\n dispatch({ type: Constants.hangings.saved, hangingMarks: newMarks });\n });\n });\n};\n","import React, { PureComponent } from 'react';\nimport { Sidebar } from 'semantic-ui-react';\nimport PropTypes from 'prop-types';\nimport AddArt from '../add_art';\nimport AddOther from '../add_other';\nimport GuidesConfig from '../guides_config';\nimport Info from '../info';\nimport Export from '../export';\nimport WorkDetails from '../work_details';\nimport MoreLikeThis from '../more_like_this';\nimport CustomPreviewPanel from '../custom_preview_panel';\nimport Hanging from '../hanging';\nimport Constants from '../../config/const';\nimport * as classes from './classes.module.scss';\n\nconst PANEL_DIRECTION_BY_KIND = {\n [Constants.panelKinds.works]: 'left',\n [Constants.panelKinds.other]: 'left',\n [Constants.panelKinds.grids]: 'left',\n [Constants.panelKinds.export]: 'left',\n [Constants.panelKinds.info]: 'right',\n [Constants.panelKinds.details]:'left',\n [Constants.panelKinds.moreLikeThis]: 'left',\n [Constants.panelKinds.customPreview]: 'right',\n [Constants.panelKinds.hanging]: 'right'\n};\n\nconst PANEL_CONTENT_BY_KIND = {\n [Constants.panelKinds.works]: AddArt,\n [Constants.panelKinds.other]: AddOther,\n [Constants.panelKinds.grids]: GuidesConfig,\n [Constants.panelKinds.export]: Export,\n [Constants.panelKinds.info]: Info,\n [Constants.panelKinds.details]: WorkDetails,\n [Constants.panelKinds.moreLikeThis]: MoreLikeThis,\n [Constants.panelKinds.customPreview]: CustomPreviewPanel,\n [Constants.panelKinds.hanging]: Hanging\n};\n\nconst PANEL_WIDTH_BY_KIND = {\n [Constants.panelKinds.works]: 'very wide',\n [Constants.panelKinds.other]: 'very wide',\n [Constants.panelKinds.grids]: 'thin',\n [Constants.panelKinds.info]: 'thin',\n [Constants.panelKinds.export]: 'very wide',\n [Constants.panelKinds.details]: 'wide',\n [Constants.panelKinds.moreLikeThis]: 'very wide',\n [Constants.panelKinds.customPreview]: 'thin',\n [Constants.panelKinds.hanging]: 'very wide'\n};\n\nconst contentByKind = (doRender, C, options) => {\n if (!C || !doRender) { return null; }\n return ;\n};\n\nconst panelContentByKind = (doRender, kind, options) => contentByKind(\n doRender || kind === Constants.panelKinds.works,\n PANEL_CONTENT_BY_KIND[kind],\n options\n // doRender, PANEL_CONTENT_BY_KIND[kind], options\n);\n\nexport default class Panels extends PureComponent {\n static propTypes = {\n kind: PropTypes.string,\n options: PropTypes.object,\n closePanel: PropTypes.func.isRequired\n };\n\n constructor(props) {\n super(props);\n this.state = {\n [Constants.panelKinds.works]: false,\n [Constants.panelKinds.other]: false,\n [Constants.panelKinds.grids]: false,\n [Constants.panelKinds.export]: false,\n [Constants.panelKinds.info]: false,\n [Constants.panelKinds.details]: false,\n [Constants.panelKinds.moreLikeThis]: false,\n [Constants.panelKinds.customPreview]: false,\n [Constants.panelKinds.hanging]: false\n };\n }\n\n onShow = (kind) => this.setState({ [kind]: true });\n\n onHidden = (kind) => this.setState({ [kind]: false });\n\n onHide = (panelKind) => {\n if (panelKind === Constants.panelKinds.details || panelKind === Constants.panelKinds.info) {\n return;\n }\n const { closePanel } = this.props;\n closePanel(panelKind);\n }\n\n render() {\n const { kind, options } = this.props;\n\n return (\n <>\n {\n Object.keys(PANEL_CONTENT_BY_KIND).map((panelKind) => (\n this.onShow(panelKind) }\n onHidden={ () => this.onHidden(panelKind) }\n onHide={ () => this.onHide(panelKind) }\n width={ PANEL_WIDTH_BY_KIND[panelKind] }\n direction={ PANEL_DIRECTION_BY_KIND[panelKind] }\n >\n {\n panelContentByKind(\n // eslint-disable-next-line react/destructuring-assignment\n this.state[panelKind],\n panelKind,\n panelKind === kind ? (options || {}) : {}\n )\n }\n \n ))\n }\n \n );\n }\n}\n","import { connect } from 'react-redux';\nimport Panel from './panel';\nimport { closePanel } from '../../actions/panel';\n\nconst mapStateToProps = ({ panel }) => ({ ...panel });\n\nexport default connect(mapStateToProps, { closePanel })(Panel);\n","import { connect } from 'react-redux';\nimport Work from './work';\nimport { loadWorkDetails } from '../../actions/works';\nimport { removeFromCanvas } from '../../actions/canvas';\n\nconst mapStateToProps = ({ workDetails }, { workId }) => workDetails[workId] || {};\n\nexport default connect(mapStateToProps, { loadWorkDetails, removeFromCanvas })(Work);\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class Draggable extends PureComponent {\n static propTypes = {\n className: PropTypes.string,\n children: PropTypes.func.isRequired,\n style: PropTypes.object,\n defaultObjectId: PropTypes.any.isRequired,\n childRef: PropTypes.object.isRequired\n };\n\n constructor(props) {\n super(props);\n this.defaultChild = React.createRef();\n this.state = {\n dragging: false, startX: null, dx: 0, dy: 0, draggingObject: null\n };\n }\n\n setDraggingObject = (draggingObject, { clientX, clientY }) => {\n this.setState({ draggingObject, startX: clientX, startY: clientY });\n };\n\n setPosition = (currentX, currentY, dragging) => {\n const {\n startX, startY, draggingObject\n } = this.state;\n if (startX !== null) {\n const dx = currentX - startX;\n const dy = currentY - startY;\n this.setState({\n dx,\n dy,\n dragging,\n startX: dragging ? startX : null,\n draggingObject: dragging ? draggingObject : null\n });\n }\n };\n\n onMouseDown = (e) => {\n if (this.defaultChild.current) {\n this.defaultChild.current.onMouseDown(e);\n }\n };\n\n onMouseUp = (e) => {\n const { startX } = this.state;\n if (startX) {\n this.setPosition(e.clientX, e.clientY, false);\n e.preventDefault();\n e.stopPropagation();\n }\n };\n\n onMouseMove = (e) => {\n const { draggingObject } = this.state;\n if (draggingObject) {\n this.setPosition(e.clientX, e.clientY, true);\n }\n };\n\n render() {\n const {\n dx, dy, dragging, draggingObject\n } = this.state;\n\n const {\n className, children, style, childRef\n } = this.props;\n\n const waStyle = {\n cursor: dragging ? 'grabbing' : 'grab',\n ...(style || {})\n };\n\n return (\n \n {\n children({\n dx,\n dy,\n dragging,\n setDraggingObject: this.setDraggingObject,\n draggingObject,\n defaultChild: this.defaultChild\n })\n }\n
\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class DraggingObject extends PureComponent {\n static propTypes = {\n setDraggingObject: PropTypes.func.isRequired,\n objectId: PropTypes.any.isRequired,\n dx: PropTypes.number.isRequired,\n dy: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n draggingObject: PropTypes.any,\n dragging: PropTypes.bool.isRequired,\n className: PropTypes.string.isRequired,\n children: PropTypes.func.isRequired,\n onClick: PropTypes.func,\n index: PropTypes.number,\n limitNegative: PropTypes.bool,\n limitPositive: PropTypes.bool\n };\n\n constructor(props) {\n super(props);\n const { x, y } = props;\n this.state = { x, y };\n }\n\n componentDidUpdate(prevProps) {\n const {\n dx, dy, draggingObject, objectId, x, y, limitNegative, limitPositive\n } = this.props;\n const { dx: dxWas, dy: dyWas } = prevProps;\n const { x0, y0 } = this.state;\n const { x: xWas, y: yWas } = prevProps;\n if (xWas !== x || yWas !== y) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ x, y });\n return;\n }\n if (draggingObject === objectId && (dx !== dxWas || dy !== dyWas)) {\n let newX = x0 + dx;\n if ((newX < 0 && limitNegative) || (newX > 0 && limitPositive)) {\n newX = 0;\n }\n let newY = y0 + dy;\n if ((newY < 0 && limitNegative) || (newY > 0 && limitPositive)) {\n newY = 0;\n }\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ x: newX, y: newY });\n }\n }\n\n onMouseDown = (e) => {\n const { setDraggingObject, objectId } = this.props;\n const { x, y } = this.state;\n this.setState({ x0: x, y0: y });\n setDraggingObject(objectId, e);\n e.preventDefault();\n e.stopPropagation();\n }\n\n onMouseUp = (e) => {\n const {\n x, y, x0, y0\n } = this.state;\n const { onClick, index } = this.props;\n if (x === x0 && y === y0 && onClick) {\n // TODO: fix that\n const skipClick = e.target.getAttribute('data') || e.target.parentElement.getAttribute('data') || e.target.parentElement.parentElement.getAttribute('data');\n if (skipClick !== 'skipclick') {\n onClick(index);\n }\n }\n }\n\n render() {\n const {\n className, children, dragging, objectId, draggingObject\n } = this.props;\n const { x, y } = this.state;\n const style = { top: y, left: x };\n return (\n \n {\n children({ x, y, dragging: dragging && objectId === draggingObject })\n }\n
\n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as classes from './classes.module.scss';\n\nconst style = (dpi) => ({\n width: dpi\n});\n\nconst Meter = ({ dpi }) => (\n
\n \n 1"\n \n
\n);\n\nMeter.propTypes = {\n dpi: PropTypes.number.isRequired\n};\n\nexport default Meter;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nexport default class WorkingArea extends PureComponent {\n static propTypes = {\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n w: PropTypes.number.isRequired,\n h: PropTypes.number.isRequired,\n draggingOpts: PropTypes.object.isRequired,\n works: PropTypes.array.isRequired,\n pixelsToInches: PropTypes.func.isRequired,\n renderWork: PropTypes.func.isRequired,\n setCenter: PropTypes.func.isRequired,\n resetCenter: PropTypes.func.isRequired\n };\n\n componentDidMount() {\n const {\n w, h, pixelsToInches, resetCenter\n } = this.props;\n const { x, y } = pixelsToInches({ x: w, y: h });\n resetCenter(x, y);\n }\n\n componentDidUpdate(prevProps) {\n const {\n x, y, w, h\n } = this.props;\n const {\n x: wasX, y: wasY, w: wasW, h: wasH\n } = prevProps;\n if (x !== wasX || y !== wasY || w !== wasW || h !== wasH) {\n this.setCenter();\n }\n }\n\n setCenter() {\n const {\n x, y, w, h, pixelsToInches, setCenter\n } = this.props;\n const cX = (w / 2) - x;\n const cY = (h / 2) - y;\n const { x: centerX, y: centerY } = pixelsToInches({ x: cX, y: cY });\n const { x: posX, y: posY } = pixelsToInches({ x: -x, y: -y });\n setCenter(centerX, centerY, posX, posY);\n }\n\n render() {\n const {\n works, draggingOpts, renderWork // , x, y\n } = this.props;\n return (\n <>\n { works.map((work, index) => renderWork(draggingOpts, work, index)) }\n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Constants from '../../config/const';\nimport * as classes from './classes.module.scss';\n\nconst { whitePos } = Constants.silhouette;\n\nconst WhiteBg = ({\n posX, posY, centerX, centerY, dpi, silhouetteY\n}) => {\n const screenHeight = (centerY - posY) * 2;\n const screenWidth = (centerX - posX) * 2;\n\n const wTop = silhouetteY + whitePos;\n\n if (posY + screenHeight < wTop) {\n return null;\n }\n\n // const whitePosTop = wTop - posY;\n const whitePosLeft = posX;\n const whitePosRight = whitePosLeft + screenWidth;\n\n const style = {\n top: wTop * dpi,\n height: '100%',\n left: whitePosLeft * dpi,\n right: whitePosRight * dpi\n };\n return (\n
\n );\n};\n\nWhiteBg.propTypes = {\n dpi: PropTypes.number.isRequired,\n posX: PropTypes.number.isRequired,\n posY: PropTypes.number.isRequired,\n centerX: PropTypes.number.isRequired,\n centerY: PropTypes.number.isRequired,\n silhouetteY: PropTypes.number.isRequired\n};\n\nexport default WhiteBg;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport Image from './image';\nimport * as classes from './classes.module.scss';\n\nexport default class CustomImage extends PureComponent {\n static propTypes = {\n dpi: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n widthIn: PropTypes.number.isRequired,\n heightIn: PropTypes.number.isRequired,\n src: PropTypes.string.isRequired,\n dragging: PropTypes.bool.isRequired,\n moveCustomImageTo: PropTypes.func.isRequired\n };\n\n componentDidUpdate(prevProps) {\n const { x, y, moveCustomImageTo } = this.props;\n if (prevProps.x !== x || prevProps.y !== y) {\n moveCustomImageTo({ x, y });\n }\n }\n\n render() {\n const {\n dpi, dragging, src, heightIn, widthIn\n } = this.props;\n return (\n \n );\n }\n}\n","// extracted by mini-css-extract-plugin\nvar _1 = \"hO3w83FCDsoBU7Ek_yZY\";\nvar _2 = \"ye60qPVlWpxoolcT_Str\";\nvar _3 = \"MbYI1ilMhIoyaB6PwSse\";\nvar _4 = \"gPNXKBUGSByiuhJbWlBE\";\nvar _5 = \"VWqmz0d_4jHlQQ6BC1CP\";\nvar _6 = \"p2xC7EOqi__42uNcZaYg\";\nexport { _1 as \"labeledTick\", _2 as \"labeledTickV\", _3 as \"ruler\", _4 as \"rulerV\", _5 as \"tick\", _6 as \"tickV\" }\n","import Constants from './const';\n\nexport const rulersForDpi = (currentDpi) => {\n const dpis = Object.keys(Constants.dpi.rulers);\n const nextIndex = dpis.findIndex((dpi) => currentDpi < dpi);\n if (nextIndex > -1) {\n const key = dpis[nextIndex - 1];\n if (key) { return Constants.dpi.rulers[key]; }\n return Constants.dpi.rulers[Constants.dpi.minRulers];\n }\n return Constants.dpi.rulers[Constants.dpi.maxRulers];\n};\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport * as classes from './classes.module.scss';\nimport { rulersForDpi } from '../../config/dpi';\n\nexport default class Ruler extends PureComponent {\n static propTypes = {\n pos: PropTypes.number.isRequired,\n center: PropTypes.number.isRequired,\n dpi: PropTypes.number.isRequired,\n maxLastTick: PropTypes.number.isRequired\n };\n\n renderTicks() {\n const {\n pos, center, dpi, maxLastTick\n } = this.props;\n const {\n step, labelStep, labelStepCm, stepCm\n } = rulersForDpi(dpi);\n const firstTick = Math.max(Math.ceil(pos / step) * step, 0);\n const lastTick = Math.min(pos + (center - pos) * 2, maxLastTick);\n let tick = firstTick;\n let tickCm = Math.round(firstTick / 2.54);\n const res = [];\n while (tick < lastTick) {\n let label = null;\n if (window.currentLocale.unit === 'cm') {\n if (tickCm % labelStepCm === 0) {\n label = tickCm;\n }\n } else if (tick % labelStep === 0) {\n label = tick;\n }\n let style;\n const className = classnames(\n classes.tick,\n { [classes.labeledTick]: label !== null }\n );\n if (window.currentLocale.unit === 'cm') {\n style = { left: ((tickCm / 2.54) - pos) * dpi };\n } else {\n style = { left: (tick - pos) * dpi };\n }\n\n res.push(\n
\n { label }\n
\n );\n tick += step;\n tickCm += stepCm;\n }\n return res;\n }\n\n render() {\n return (\n
\n { this.renderTicks() }\n
\n );\n }\n}\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport * as classes from './classes.module.scss';\nimport { rulersForDpi } from '../../config/dpi';\n\nexport default class Ruler extends PureComponent {\n static propTypes = {\n pos: PropTypes.number.isRequired,\n center: PropTypes.number.isRequired,\n dpi: PropTypes.number.isRequired,\n maxLastTick: PropTypes.number.isRequired\n };\n\n renderTicks() {\n const {\n pos, dpi, maxLastTick\n } = this.props;\n const {\n step, labelStep, labelStepCm, stepCm\n } = rulersForDpi(dpi);\n const firstTick = Math.max(Math.ceil(pos / step) * step, 0);\n const lastTick = maxLastTick;\n let tick = lastTick;\n let tickCm = Math.round(tick * 2.54);\n let labelTick = maxLastTick - lastTick;\n let labelTickCm = Math.round(labelTick * 2.54);\n const res = [];\n while (tick >= firstTick) {\n let label = null;\n const top = (tick - pos);\n const topCm = tickCm - pos * 2.54;\n let style;\n if (window.currentLocale.unit === 'cm') {\n style = { top: topCm * dpi / 2.54 };\n if (labelTickCm % labelStepCm === 0) {\n label = labelTickCm;\n }\n } else {\n style = { top: top * dpi };\n if (labelTick % labelStep === 0) {\n label = labelTick;\n }\n }\n const className = classnames(\n classes.tickV,\n { [classes.labeledTickV]: label !== null }\n );\n\n res.push(\n
\n { label }\n
\n );\n tick -= step;\n tickCm -= stepCm;\n labelTick += step;\n labelTickCm += stepCm;\n }\n return res;\n }\n\n render() {\n return (\n
\n { this.renderTicks() }\n
\n );\n }\n}\n","import { connect } from 'react-redux';\nimport HRulerS from './h_ruler';\nimport VRulerS from './v_ruler';\n\nconst mapStateToPropsH = ({\n canvas: {\n posX, centerX, dpi, width\n }\n}) => ({\n pos: posX,\n center: centerX,\n maxLastTick: width,\n dpi\n});\n\nconst mapStateToPropsV = ({\n canvas: {\n posY, centerY, dpi, height\n }\n}) => ({\n pos: posY,\n center: centerY,\n maxLastTick: height,\n dpi\n});\n\nexport const HRuler = connect(mapStateToPropsH)(HRulerS);\nexport const VRuler = connect(mapStateToPropsV)(VRulerS);\n\n// export default connect(mapStateToProps)(Ruler);\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as classes from './classes.module.scss';\nimport { rulersForDpi } from '../../config/dpi';\n\nexport default class Guids extends PureComponent {\n static propTypes = {\n posX: PropTypes.number.isRequired,\n centerX: PropTypes.number.isRequired,\n posY: PropTypes.number.isRequired,\n centerY: PropTypes.number.isRequired,\n dpi: PropTypes.number.isRequired,\n guidesVisible: PropTypes.bool.isRequired,\n widthVisible: PropTypes.bool.isRequired,\n heightVisible: PropTypes.bool.isRequired,\n\n width: PropTypes.number.isRequired,\n height: PropTypes.number.isRequired\n };\n\n renderWallGuide(kind, position) {\n const {\n posX, posY, centerX, centerY, dpi, width, height\n } = this.props;\n const viewPortWidth = (centerX - posX) * 2;\n const viewPortHeight = (centerY - posY) * 2;\n let style = null;\n let className = null;\n if (kind === 'vertical' && posX < position && position < posX + viewPortWidth) {\n style = {\n left: (position - posX) * dpi,\n width: 0,\n top: 0,\n height: (height - posY) * dpi\n };\n className = classes.vertical;\n } else if (kind === 'horizontal' && posY < position && position < posY + viewPortHeight) {\n style = {\n left: 0,\n width: (width - posX) * dpi,\n top: (position - posY) * dpi,\n hight: 0\n };\n className = classes.horizontal;\n }\n if (!style) { return null; }\n return (\n \n );\n }\n\n renderGrid(start, end, step, baseStart, size, isHorizonal) {\n const { dpi } = this.props;\n const res = [];\n let pos = start;\n while (pos <= end) {\n const style = isHorizonal ? {\n left: 0,\n width: size * dpi,\n top: (pos - baseStart) * dpi,\n hight: 0\n } : {\n left: (pos - baseStart) * dpi,\n width: 0,\n top: 0,\n height: size * dpi\n };\n const className = isHorizonal ? classes.gridH : classes.gridV;\n const line = (\n
\n );\n res.push(line);\n pos += step;\n }\n return res;\n }\n\n renderGrids() {\n const {\n posX, posY, centerX, centerY, dpi\n } = this.props;\n const viewPortWidth = (centerX - posX) * 2;\n const viewPortHeight = (centerY - posY) * 2;\n const { guideStep } = rulersForDpi(dpi);\n\n const startX = Math.ceil(posX / guideStep) * guideStep;\n const endX = posX + viewPortWidth;\n\n const startY = Math.ceil(posY / guideStep) * guideStep;\n const endY = posY + viewPortHeight;\n\n const x = this.renderGrid(startX, endX, guideStep, posX, viewPortHeight, false);\n const y = this.renderGrid(startY, endY, guideStep, posY, viewPortWidth, true);\n\n return (\n <>\n { x }\n { y }\n \n );\n }\n\n render() {\n const {\n widthVisible, width, heightVisible, height, guidesVisible\n } = this.props;\n const w = widthVisible ? this.renderWallGuide('vertical', width) : null;\n const h = heightVisible ? this.renderWallGuide('horizontal', height) : null;\n return (\n <>\n { w }\n { h }\n { guidesVisible ? this.renderGrids() : null }\n \n );\n }\n}\n","// extracted by mini-css-extract-plugin\nvar _1 = \"ZyvwaocO91B5xVZ3JYgn\";\nvar _2 = \"ZY1_LnURWEDMOkO1hLGF\";\nvar _3 = \"ir_XGRS98Tv_RYUQSu8F\";\nvar _4 = \"EGoyV001T7qdEiHGg4JR\";\nexport { _1 as \"gridH\", _2 as \"gridV\", _3 as \"horizontal\", _4 as \"vertical\" }\n","import { connect } from 'react-redux';\nimport Guides from './guides';\n\nconst mapStateToProps = ({ canvas }) => canvas;\n\nexport default connect(mapStateToProps)(Guides);\n","// extracted by mini-css-extract-plugin\nvar _1 = \"O1sitMwhOO5UTgsQdNIs\";\nvar _2 = \"KdXsu9mBtqeBihYPXf57\";\nvar _3 = \"HZnn6ZmubYzZkl2fJhvD\";\nexport { _1 as \"customArea\", _2 as \"pin\", _3 as \"previewArea\" }\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as classes from './classes.module.scss';\nimport Const from '../../config/const';\n\nconst RATIO = Const.preview.ratio;\n\nexport default class CustomCrop extends PureComponent {\n static propTypes = {\n x: PropTypes.number,\n y: PropTypes.number,\n width: PropTypes.number,\n height: PropTypes.number,\n custom: PropTypes.bool.isRequired,\n dpi: PropTypes.number.isRequired,\n setCrop: PropTypes.func.isRequired\n };\n\n constructor(props) {\n super(props);\n this.state = {\n startX: 0,\n startY: 0\n };\n }\n\n onMouseMoveStart = (e) => {\n const { clientX, clientY } = e;\n e.preventDefault();\n e.stopPropagation();\n this.setPosStart({ clientX, clientY });\n };\n\n onMouseMoveEnd = (e) => {\n const { clientX, clientY } = e;\n e.preventDefault();\n e.stopPropagation();\n this.setPosEnd({ clientX, clientY });\n };\n\n onMouseUpStart = (e) => {\n window.removeEventListener('mousemove', this.onMouseMoveStart);\n window.removeEventListener('mouseup', this.onMouseUpStart);\n const { clientX, clientY } = e;\n e.preventDefault();\n e.stopPropagation();\n this.setPosStart({ clientX, clientY });\n };\n\n onMouseUpEnd = (e) => {\n window.removeEventListener('mousemove', this.onMouseMoveEnd);\n window.removeEventListener('mouseup', this.onMouseUpEnd);\n const { clientX, clientY } = e;\n e.preventDefault();\n e.stopPropagation();\n this.setPosEnd({ clientX, clientY });\n };\n\n onMouseDownStart = (e) => {\n window.addEventListener('mousemove', this.onMouseMoveStart);\n window.addEventListener('mouseup', this.onMouseUpStart);\n const { clientX, clientY } = e;\n e.preventDefault();\n e.stopPropagation();\n this.setState({ startX: clientX, startY: clientY });\n };\n\n onMouseDownEnd = (e) => {\n window.addEventListener('mousemove', this.onMouseMoveEnd);\n window.addEventListener('mouseup', this.onMouseUpEnd);\n const { clientX, clientY } = e;\n e.preventDefault();\n e.stopPropagation();\n this.setState({ startX: clientX, startY: clientY });\n };\n\n setPosStart({ clientX, clientY }) {\n const { startX, startY } = this.state;\n const {\n dpi, setCrop, x, y, width, height\n } = this.props;\n const dx = (clientX - startX) / dpi;\n const dy = (clientY - startY) / dpi;\n setCrop({\n x: x + dx, y: y + dy, width, height\n });\n this.setState({ startX: clientX, startY: clientY });\n }\n\n setPosEnd({ clientX, clientY }) {\n const { startX, startY } = this.state;\n const {\n dpi, setCrop, x, y, width, height\n } = this.props;\n const dx = (clientX - startX) / dpi;\n const dy = (clientY - startY) / dpi;\n let newWidth = width + dx;\n let newHeight = height + dy;\n if (dx < dy) {\n newWidth = newHeight * RATIO;\n } else {\n newHeight = newWidth / RATIO;\n }\n setCrop({\n x, y, width: newWidth, height: newHeight\n });\n this.setState({ startX: clientX, startY: clientY });\n }\n\n calculateStyle() {\n const {\n x, y, width: wIn, height: hIn, dpi\n } = this.props;\n\n const left = (x || 0) * dpi;\n const top = (y || 0) * dpi;\n const width = (wIn || 0) * dpi;\n const height = (hIn || 0) * dpi;\n\n return {\n box: {\n left, top, width, height\n },\n p0: {\n left: left - 2,\n top: top - 2\n },\n p1: {\n left: left + width - 4,\n top: top + height - 3\n }\n };\n }\n\n renderCustom() {\n const { box, p0, p1 } = this.calculateStyle();\n return (\n <>\n
\n \n \n \n );\n }\n\n render() {\n const { custom, width } = this.props;\n if (!width) {\n return null;\n }\n if (custom) {\n return this.renderCustom();\n }\n\n const { box } = this.calculateStyle();\n return (\n
\n );\n }\n}\n","import { connect } from 'react-redux';\nimport CustomCrop from './custom_crop';\nimport { setCrop } from '../../actions/crop';\nimport { automaticPreview } from '../../selectors/preview';\n\nconst mapStateToProps = (state) => {\n const { custom } = state.crop;\n const { dpi } = state.canvas;\n return {\n ...automaticPreview(state),\n custom,\n dpi\n };\n};\n\nexport default connect(mapStateToProps, { setCrop })(CustomCrop);\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport * as classes from './classes.module.scss';\nimport Work from '../work';\nimport Draggable from '../shared/draggable';\nimport DraggingObject from '../shared/drag_object';\nimport Meter from './meter';\nimport WorkingArea from './working_area';\nimport Silhouette from './silhouette';\nimport WhiteBg from './white_bg';\nimport CustomImage from './custom_image';\nimport { HRuler, VRuler } from '../ruler';\nimport Guides from '../guides';\nimport CustomCrop from '../custom_crop';\nimport { calculateCanvasSize } from '../../config/utils';\n\nconst renderOptimial = () => (window.wbOptimalWarning ? (\n
\n For optimal results, use the wall designer via your computer (and not a tablet)\n
\n) : null);\n\nconst renderWelcome = () => (\n
\n

Curate and Design Your Walls

\n

\n Start by clicking the "Select Art" button in the upper left corner of the toolbar\n

\n { renderOptimial() }\n
\n);\n\nexport default class Canvas extends PureComponent {\n static propTypes = {\n currentColor: PropTypes.string.isRequired,\n dpi: PropTypes.number.isRequired,\n works: PropTypes.array.isRequired,\n moveWorkTo: PropTypes.func.isRequired,\n showWorkDetails: PropTypes.func.isRequired,\n setCenter: PropTypes.func.isRequired,\n recalculateDpis: PropTypes.func.isRequired,\n posX: PropTypes.number.isRequired,\n posY: PropTypes.number.isRequired,\n centerX: PropTypes.number.isRequired,\n centerY: PropTypes.number.isRequired,\n rulerVisible: PropTypes.bool.isRequired,\n silhouette: PropTypes.string.isRequired,\n showSilhouette: PropTypes.bool.isRequired,\n silhouetteX: PropTypes.number.isRequired,\n silhouetteY: PropTypes.number.isRequired,\n customImage: PropTypes.object,\n moveCustomImage: PropTypes.func.isRequired,\n resetCenter: PropTypes.func.isRequired,\n wallPaper: PropTypes.object\n };\n\n constructor(props) {\n super(props);\n const { cWidth, cHeight } = calculateCanvasSize();\n this.state = { w: cWidth, h: cHeight };\n this.workingArea = React.createRef();\n }\n\n onWorkClicked = (index) => {\n const { showWorkDetails } = this.props;\n showWorkDetails(index);\n }\n\n moveWorkTo = ({ x, y, index }) => {\n const { moveWorkTo } = this.props;\n const { x: newX, y: newY } = this.pixelsToInches({ x, y });\n moveWorkTo({ x: newX, y: newY, index });\n }\n\n moveCustomImageTo = ({ x, y }) => {\n const { moveCustomImage } = this.props;\n const { x: newX, y: newY } = this.pixelsToInches({ x, y });\n moveCustomImage({ posX: newX, posY: newY });\n };\n\n pixelsToInches = ({ x, y }) => {\n const { dpi } = this.props;\n return {\n x: x / dpi,\n y: y / dpi\n };\n }\n\n inchesToPixels({ x, y }) {\n const { dpi } = this.props;\n return {\n x: x * dpi,\n y: y * dpi\n };\n }\n\n renderWork = (draggingOpts, work, index) => {\n const { dpi } = this.props;\n const position = this.inchesToPixels(work);\n return (\n \n {\n ({ x, y, dragging }) => (\n \n )\n }\n \n );\n }\n\n renderSilhouette() {\n const {\n silhouetteX, silhouetteY, showSilhouette, dpi, silhouette, posX, posY, centerX, centerY\n } = this.props;\n if (!showSilhouette) {\n return null;\n }\n const position = this.inchesToPixels({ x: silhouetteX, y: silhouetteY });\n const bgProps = {\n posX, posY, centerX, centerY, dpi, silhouetteY\n };\n return (\n <>\n \n \n \n );\n }\n\n renderCustomImage(draggingOpts) {\n const {\n dpi,\n customImage\n } = this.props;\n const {\n src, posX, posY, widthIn, heightIn\n } = customImage || {};\n if (!src) {\n return null;\n }\n const position = this.inchesToPixels({ x: posX, y: posY });\n return (\n \n {\n ({ x, y, dragging }) => (\n \n )\n }\n \n );\n }\n\n render() {\n const {\n works, dpi, setCenter, posX, posY, currentColor, wallPaper, rulerVisible,\n resetCenter\n } = this.props;\n\n if (!works.length) {\n return renderWelcome();\n }\n\n const { x: posX0, y: posY0 } = this.inchesToPixels({ x: posX, y: posY });\n const { w, h } = this.state;\n const canvasId = 'canvas';\n const style = { backgroundColor: currentColor };\n if (wallPaper && wallPaper.src) {\n style.backgroundImage = `url(${ wallPaper.src })`;\n const { x: bgW, y: bgH } = this.inchesToPixels({\n x: wallPaper.widthIn, y: wallPaper.heightIn\n });\n style.backgroundSize = `${ bgW }px ${ bgH }px`;\n style.backgroundRepeat = 'repeat';\n }\n\n const rulers = rulerVisible ? (\n <>\n \n \n \n ) : null;\n\n return (\n \n {\n ({ defaultChild, ...draggingOpts }) => (\n <>\n { rulers }\n \n \n {\n ({ x, y }) => (\n <>\n \n \n { this.renderSilhouette() }\n { this.renderCustomImage(draggingOpts) }\n \n )\n }\n \n \n \n )\n }\n \n );\n }\n}\n","import { connect } from 'react-redux';\nimport Canvas from './canvas';\nimport {\n moveWorkTo, setCenter, recalculateDpis, resetCenter\n} from '../../actions/canvas';\nimport { moveCustomImage } from '../../actions/custom_image';\nimport { show } from '../../actions/current_index';\n\nconst mapStateToProps = (state) => {\n const {\n canvas, customImage, wallPaper, workDetails, grids\n } = state;\n return {\n ...canvas,\n customImage,\n wallPaper,\n workDetails,\n grids\n };\n};\n\nexport default connect(mapStateToProps, {\n moveWorkTo, setCenter, moveCustomImage, showWorkDetails: show, recalculateDpis, resetCenter\n})(Canvas);\n","import React, { useState, useEffect, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport CartItemsPopup from 'arts/components/cart_items_popup';\nimport Share from 'arts/components/ArtistWorks/share';\nimport {\n Sidebar, Modal, Input\n} from 'semantic-ui-react';\nimport { trackEvent } from 'arts/config/analytics';\nimport * as classes from './classes.module.scss';\nimport CommandBar from '../command_bar';\nimport Panel from '../panel';\nimport Canvas from '../canvas';\nimport LocaleSelection from '../../../shared/locale_selection';\nimport CookiesConsent from '../../../shared/cookies_consent';\n\nconst Application = ({\n sharingUrl, previewSrc, name\n}) => {\n const [showSharing, setShowSharing] = useState(false);\n\n useEffect(() => {\n const { wallId, currency } = window.wall;\n trackEvent('wall builder', { wallId, currency });\n }, []);\n\n useEffect(() => {\n if (sharingUrl) { setShowSharing(true); }\n }, [sharingUrl]);\n\n const closeSharing = () => { setShowSharing(false); };\n\n const description = useMemo(() => `${ name } on Artfully Walls`, [name]);\n\n return (\n
\n \n \n \n Share This Wall\n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n
\n
\n );\n};\n\nApplication.propTypes = {\n sharingUrl: PropTypes.string,\n previewSrc: PropTypes.string,\n name: PropTypes.string\n};\n\nexport default Application;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"oJ2rvDDYmTFbWCfLlw4a\";\nvar _2 = \"ZB5n29bNu9_l5w3Am5Tb\";\nvar _3 = \"SVGd4udc6U8qWvSmCgSV\";\nvar _4 = \"x_fsfmH4sc2uW0b9ICzM\";\nexport { _1 as \"builder\", _2 as \"content\", _3 as \"input\", _4 as \"modal\" }\n","import { connect } from 'react-redux';\nimport Application from './application';\n\nconst mapStateToProps = ({\n canvas: { sharingUrl, name },\n exporting: { showSharing, previewSrc }\n}) => ({\n sharingUrl: showSharing ? sharingUrl : null,\n previewSrc,\n name\n});\n\nexport default connect(mapStateToProps, {})(Application);\n","import React from 'react';\nimport 'whatwg-fetch';\nimport 'intersection-observer';\nimport { Provider } from 'react-redux';\nimport './semantic_custom.less';\nimport { buildStore } from './config/store';\nimport Application from './components/application';\n\nconst store = buildStore();\n\nconst WallBuilder = () => (\n \n \n \n);\n\nexport default WallBuilder;\n","import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport WallBuilder from 'wb';\nimport * as Sentry from '@sentry/browser';\nimport { setupAnalytics } from 'arts/config/analytics';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n if (window.sentry_dsn) {\n Sentry.init({\n dsn: window.sentry_dsn,\n integrations: [Sentry.browserTracingIntegration],\n tracesSampleRate: 1.0\n });\n window.Sentry = Sentry;\n }\n setupAnalytics();\n const rootElement = document.getElementById('wall-builder-root');\n const root = createRoot(rootElement);\n root.render();\n});\n","const PreviewConst = {\n ratio: 1.66666666,\n width: 1200,\n height: 720,\n scaleX: 158.33,\n scaleY: 95.0\n};\n\nexport const scaledPreviewDmentions = (previewWidth, previewHeight, dpi) => ({\n width: ((previewWidth || 0) * PreviewConst.scaleX * dpi) / 100,\n height: ((previewHeight || 0) * PreviewConst.scaleY * dpi) / 100\n});\n\nexport default PreviewConst;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport AsyncCreatableSelect from 'react-select/async-creatable';\nimport Select from 'react-select';\nimport { searchTagsWithOptions } from './request';\nimport * as Classes from './styles.module.scss';\n\nconst TagEditor = ({\n basePath,\n options,\n onChange,\n ...rest\n}) => {\n const loadOptions = basePath ? ((query) => searchTagsWithOptions(query, basePath)) : null;\n\n const Klass = basePath ? AsyncCreatableSelect : Select;\n\n const onValueChanged = (selectedValue) => {\n if (selectedValue) {\n const values = selectedValue.map((v) => v.value);\n onChange(values);\n }\n };\n\n return (\n
\n \n
\n );\n};\n\nTagEditor.propTypes = {\n basePath: PropTypes.string,\n options: PropTypes.arrayOf(PropTypes.shape({\n value: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired\n })),\n onChange: PropTypes.func.isRequired\n};\n\nexport default TagEditor;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"H73e1O1_4649WtWsPR0I\";\nexport { _1 as \"te\" }\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Image = ({\n widthIn, heightIn, dpi, src, className\n}) => {\n const style = {\n width: widthIn * dpi,\n height: heightIn * dpi\n };\n\n return (\n // eslint-disable-next-line jsx-a11y/img-redundant-alt\n \n );\n};\n\nImage.propTypes = {\n widthIn: PropTypes.number.isRequired,\n heightIn: PropTypes.number.isRequired,\n dpi: PropTypes.number.isRequired,\n src: PropTypes.oneOfType([PropTypes.object, PropTypes.string]).isRequired,\n className: PropTypes.string\n};\n\nexport default Image;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport Constants from '../../config/const';\nimport Image from './image';\nimport * as classes from './classes.module.scss';\n\nconst { width, height } = Constants.silhouette;\n\nconst Silhouette = ({\n dpi, x, y, silhouette\n}) => {\n const style = {\n width: width * dpi,\n height: height * dpi,\n left: x,\n top: y\n };\n return (\n
\n \n
\n );\n};\n\nSilhouette.propTypes = {\n dpi: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n silhouette: PropTypes.string.isRequired\n};\n\nexport default Silhouette;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst SvgComponent = ({ fill, ...props }) => (\n \n \n \n);\n\nSvgComponent.propTypes = {\n fill: PropTypes.string.isRequired\n};\n\nexport default SvgComponent;\n","import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { Loader } from 'semantic-ui-react';\nimport * as classes from './classes.module.scss';\nimport Settings from '../assets/settings';\nimport Trash from '../assets/trash';\nimport WorkPictureImage from './work_picture_image';\n\nexport default class Work extends PureComponent {\n static propTypes = {\n workId: PropTypes.number.isRequired,\n index: PropTypes.number.isRequired,\n x: PropTypes.number.isRequired,\n y: PropTypes.number.isRequired,\n dpi: PropTypes.number.isRequired,\n dragging: PropTypes.bool.isRequired,\n\n title: PropTypes.string,\n workSizeId: PropTypes.number.isRequired,\n frameId: PropTypes.number,\n landscape: PropTypes.bool,\n\n workSizes: PropTypes.array,\n loadWorkDetails: PropTypes.func,\n moveWorkTo: PropTypes.func,\n removeFromCanvas: PropTypes.func,\n onClick: PropTypes.func,\n\n readOnly: PropTypes.bool\n };\n\n componentDidMount() {\n const { workId, workSizes, loadWorkDetails } = this.props;\n if (!(workSizes || []).length) {\n loadWorkDetails(workId);\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n x, y, moveWorkTo, index\n } = this.props;\n if (!moveWorkTo) {\n return;\n }\n if (prevProps.x !== x || prevProps.y !== y) {\n moveWorkTo({ x, y, index });\n }\n }\n\n onClick = () => {\n const { index, onClick } = this.props;\n onClick(index);\n }\n\n removeWork = (e) => {\n e.preventDefault();\n e.stopPropagation();\n const { index, removeFromCanvas } = this.props;\n removeFromCanvas(index);\n }\n\n findWorkSize() {\n const { workSizeId, workSizes } = this.props;\n const res = (workSizes || []).find((ws) => ws.id === workSizeId);\n return res || (workSizes || [])[0];\n }\n\n findFramedOption() {\n const { frameId } = this.props;\n const workSize = this.findWorkSize();\n if (!workSize) {\n return {};\n }\n const fId = frameId || null;\n const option = workSize.options.find((o) => o.frameId === fId)\n || workSize.options.find((o) => o.frameId === null);\n if (!option) {\n return workSize.options[0];\n }\n return option;\n }\n\n render() {\n const {\n workSizes, title, dragging, readOnly\n } = this.props;\n\n if (!(workSizes || []).length) {\n return ;\n }\n\n const frameOption = this.findFramedOption();\n\n if (!frameOption) {\n return null;\n }\n\n const controls = readOnly ? null : (\n <>\n \n \n \n );\n\n return (\n \n { controls }\n \n );\n }\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport * as classes from './classes.module.scss';\nimport { scaledPreviewDmentions } from '../../../shared/preview_const';\n\nconst WorkPictureImage = ({\n previewHeight, previewWidth, dpi, zoomPreviewUrl, dragging, title, children\n}) => {\n const style = scaledPreviewDmentions(previewWidth, previewHeight, dpi);\n\n return (\n \n {\n { children }\n
\n );\n};\n\nWorkPictureImage.propTypes = {\n previewHeight: PropTypes.number.isRequired,\n previewWidth: PropTypes.number.isRequired,\n dpi: PropTypes.number.isRequired,\n zoomPreviewUrl: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n dragging: PropTypes.bool,\n children: PropTypes.node\n};\n\nexport default WorkPictureImage;\n","import livingRoom from '../components/assets/living-room.gif';\nimport console from '../components/assets/console.gif';\nimport chaise from '../components/assets/chaise.gif';\nimport livingRoomSmall from '../components/assets/living-room-small.png';\nimport consoleSmall from '../components/assets/console-small.png';\nimport chaiseSmall from '../components/assets/chaise-small.png';\nimport PreviewConst from '../../shared/preview_const';\n\nconst Const = {\n hangings: {\n load: 'hangings:load',\n loaded: 'hangings:loaded',\n update: 'hangings:update',\n reset: 'hangings:reset',\n saving: 'hangings:saving',\n saved: 'hangings:saved'\n },\n pin: {\n toggle: 'pin:toggle'\n },\n crop: {\n set: 'crop:set',\n reset: 'crop:reset'\n },\n savingWall: {\n start: 'wall:saving:start',\n end: 'wall:saving:end',\n uploadAssetsStart: 'wall:saving:uploadAssets:start',\n uploadAssetsEnd: 'wall:saving:uploadAssets:end'\n },\n panel: {\n open: 'panel:open',\n close: 'panel:close'\n },\n favoriteWorks: {\n load: 'favoriteWorks:load',\n success: 'favoriteWorks:load:success'\n },\n works: {\n load: 'works:load',\n success: 'works:load:success',\n filtersLoaded: 'works:filters:loaded',\n addFilter: 'works:filter:add',\n removeFilter: 'works:filter:remove'\n },\n work: {\n load: 'work:load',\n success: 'work:load:success'\n },\n panelKinds: {\n works: 'panel:kind:works',\n other: 'panel:kind:other',\n grids: 'panel:kind:grids',\n export: 'panel:kind:export',\n info: 'panel:kind:info',\n details: 'panel:kind:details',\n moreLikeThis: 'panel:kind:moreLikeThis',\n customPreview: 'panel:kind:customPreview',\n hanging: 'panel:kind:hanging'\n },\n moreLikeThisSources: {\n works: 'moreLikeThisSources:works',\n more: 'moreLikeThisSources:more',\n canvas: 'moreLikeThisSources:canvas'\n },\n export: {\n savePreview: 'export:preview:save',\n previewSaved: 'export:preview:saved',\n showSharing: 'export:sharing:showSharing',\n setLogo: 'export:setLogo',\n publishing: 'export:publishing',\n published: 'export:published'\n },\n canvas: {\n add: 'canvas:add',\n remove: 'canvas:remove',\n move: 'canvas:move',\n zoomIn: 'canvas:zoomIn',\n zoomOut: 'canvas:zoomOut',\n setSize: 'canvas:setWorkSize',\n setFrame: 'canvas:setFrame',\n setCenter: 'canvas:setCenter',\n resetZoom: 'canvas:resetZoom',\n setSilhouette: 'canvas:setSilhouette',\n hideSilhouette: 'canvas:hideSilhouette',\n setColor: 'canvas:setColor',\n showRuler: 'canvas:showRuler',\n hideRuler: 'canvas:hideRuler',\n showGuides: 'canvas:showGuides',\n hideGuides: 'canvas:hideGuides',\n showWidth: 'canvas:showWidth',\n hideWidth: 'canvas:hideWidth',\n showHeight: 'canvas:showHeight',\n hideHeight: 'canvas:hideHeight',\n setWidth: 'canvas:setWidth',\n setHeight: 'canvas:setHeight',\n recalculateDpis: 'canvas:recalculateDpis',\n resetCenter: 'canvas:resetCenter',\n updateAttributes: 'canvas:updateAttributes'\n },\n defaultColor: '#ffffff',\n customImage: {\n add: 'customImage:add',\n remove: 'customImage:remove',\n move: 'customImage:move',\n update: 'customImage:update'\n },\n wallPaper: {\n add: 'wallPaper:add',\n remove: 'wallPaper:remove',\n update: 'wallPaper:update'\n },\n silhouette: {\n // width: 158.33,\n width: 230, // 158.33 - 1881\n height: 172.3, // 118.403304348 - 1410\n // height: 118.40,\n whitePos: 130,\n zero: 140.4,\n // whitePos: 89.49,\n mappingSmall: {\n livingRoom: livingRoomSmall, console: consoleSmall, chaise: chaiseSmall\n },\n mapping: {\n livingRoom, console, chaise\n },\n default: 'livingRoom'\n },\n undo: {\n pop: 'undo:pop',\n push: 'undo:push'\n },\n workDetails: {\n show: 'workDetails:show',\n hide: 'workDetails:hide'\n },\n moreLikeThis: {\n set: 'moreLikeThis:set',\n reset: 'moreLikeThis:reset',\n loading: 'moreLikeThis:loading',\n loaded: 'moreLikeThis:loaded'\n },\n preview: PreviewConst,\n dpi: {\n minRulers: 2.25,\n maxRulers: 288,\n rulers: {\n 2.25: {\n step: 10,\n stepCm: 25,\n labelStep: 20,\n labelStepCm: 50,\n guideStep: 5\n },\n 4.5: {\n step: 5,\n stepCm: 20,\n labelStep: 10,\n labelStepCm: 25,\n guideStep: 5\n },\n 9: {\n step: 5,\n stepCm: 25,\n labelStep: 5,\n labelStepCm: 10,\n guideStep: 2.5\n },\n 18: {\n step: 1,\n stepCm: 5,\n labelStep: 5,\n labelStepCm: 10,\n guideStep: 1\n },\n 36: {\n step: 1,\n stepCm: 5,\n labelStep: 5,\n labelStepCm: 10,\n guideStep: 0.5\n },\n 72: {\n step: 1,\n stepCm: 5,\n labelStep: 5,\n labelStepCm: 10,\n guideStep: 0.5\n },\n 144: {\n step: 1,\n stepCm: 5,\n labelStep: 1,\n labelStepCm: 10,\n guideStep: 0.5\n },\n 288: {\n step: 1,\n stepCm: 5,\n labelStep: 1,\n labelStepCm: 10,\n guideStep: 0.5\n }\n }\n }\n};\n\nexport default Const;\n","// extracted by mini-css-extract-plugin\nvar _1 = \"JHy6KcQW0hYPsxDF7zLI\";\nvar _2 = \"s_NTys4RXRaBxrj9JC_X\";\nvar _3 = \"k60l5WX8aXbfyLOvWNRj\";\nvar _4 = \"awsYEwfhBIjiV7ILimHL\";\nvar _5 = \"WfeI1x7aCtF9di3p_iMz\";\nvar _6 = \"NtllDbU4RmYshDgHbtsl\";\nvar _7 = \"d7MzskdQkRBBCuBOVUSh\";\nvar _8 = \"m3ov7ZpdBssoQCeYzgng\";\nvar _9 = \"QQ_R1PN65oad6x7NE2VD\";\nvar _a = \"ejlbgwXfojncHQGule2V\";\nvar _b = \"ZA6PDqRg01DtXtBN53KA\";\nvar _c = \"UlbJSbLSb2WrcsxW7bDv\";\nvar _d = \"_1m4shkDlTi6tG2ILgjyp\";\nvar _e = \"ox2FN0C1DC9nrcKzNGqh\";\nvar _f = \"m5zqcoQCLlt7RwbLVuG9\";\nexport { _1 as \"artistName\", _2 as \"author\", _3 as \"column\", _4 as \"content\", _5 as \"details\", _6 as \"favorite\", _7 as \"like\", _8 as \"middle\", _9 as \"profile\", _a as \"right\", _b as \"section\", _c as \"share\", _d as \"styles\", _e as \"title\", _f as \"withImages\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"LkiGpUNb7zxyQMLPDCPT\";\nvar _2 = \"LGmdgNRNNoXz34NUwRPU\";\nvar _3 = \"yp7cSjNHLvexsM6AnGeB\";\nvar _4 = \"yR2A4pdRw2CHXvC7gpxw\";\nvar _5 = \"T2QzTyrMxiaW9tGbpLh1\";\nvar _6 = \"YvU3E3SVnWEve4DtKkwI\";\nvar _7 = \"DKgtbr1kmwUAViz2CoWp\";\nvar _8 = \"PcaggSywK3Vdx1BDr6OU\";\nvar _9 = \"V0lYXcNRH4d3RNBPiFEL\";\nvar _a = \"Ol4TeDEEkO7iCr9Kk2uS\";\nvar _b = \"lztilp1xS9zUrMwmoaRA\";\nvar _c = \"dm0NZR6McuaCzhfqp2yG\";\nvar _d = \"_ckrDz98IzlKJAu1t9iG\";\nvar _e = \"Ybj9Z5J19i8md8sRsfzK\";\nvar _f = \"Y2qkPta2fK9aYM6U4mg9\";\nvar _10 = \"MxvMhxYNIg5gPQKcHA7J\";\nvar _11 = \"nNkY1SeG4cTYjppZlw6R\";\nvar _12 = \"OW0K4m8ayDK2AMGnQWhA\";\nvar _13 = \"o2sUrjULaA6ngDKZPcxL\";\nvar _14 = \"LCo5NzkCvB6XeXQtsIgX\";\nvar _15 = \"ubHyV6DfaGUqJI_0tcBw\";\nvar _16 = \"jP5nKQKxkD4xcLNFw7RE\";\nvar _17 = \"Krw4OtG5bVYVG4T5DPIO\";\nvar _18 = \"YM2Wdu5slJCk1zYNc3Av\";\nvar _19 = \"Hpf82A6ab3vBeIIOkIGi\";\nvar _1a = \"DS1OgjfG2xa4Ty3qqB43\";\nvar _1b = \"HZgbLJ1V5Itk7FkI36SM\";\nvar _1c = \"uvl3h3rBRg4uS1nDrmqQ\";\nvar _1d = \"ExoQaQZuacwrgfD2vk9a\";\nvar _1e = \"WNhyrBt9O4XZsKwYMkdc\";\nvar _1f = \"RUOT7ENMorPwaTDws1lK\";\nvar _20 = \"BaACJSVIlrqSBul8uLIv\";\nvar _21 = \"BvZJHuacvnR9_oMXxTVY\";\nexport { _1 as \"active\", _2 as \"category\", _3 as \"flatWarning\", _4 as \"floatForm\", _5 as \"frame\", _6 as \"frameAddRemove\", _7 as \"frameHolder\", _8 as \"frames\", _9 as \"framesRoot\", _a as \"header\", _b as \"heading\", _c as \"hidden\", _d as \"label\", _e as \"matColor\", _f as \"matColorHolder\", _10 as \"matColorInput\", _11 as \"matColorSelected\", _12 as \"matColors\", _13 as \"mobileFrames\", _14 as \"mouldingSection\", _15 as \"mount\", _16 as \"mountOption\", _17 as \"mounts\", _18 as \"options\", _19 as \"plexi\", _1a as \"previewImage\", _1b as \"price\", _1c as \"printSize\", _1d as \"printSizeUk\", _1e as \"root\", _1f as \"sectionTitle\", _20 as \"step3\", _21 as \"warning\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"asJdWqq0nckEaCuoqs01\";\nvar _2 = \"JV4TKZsYXEophEtqeZ7b\";\nvar _3 = \"Rc0sVsIxe4gA7rCx8BJk\";\nvar _4 = \"l4J_ELXZJT6zciZ9Ilv3\";\nvar _5 = \"NAvlvktilNC7DlGTGKDl\";\nvar _6 = \"sIJZmzM1M5n_r59xB2Tm\";\nvar _7 = \"pwQpBE0APkO4yLrgsmYb\";\nvar _8 = \"vvUl7wpa79gz6apYzpQr\";\nvar _9 = \"x54ZOdnl0q9oZxtM8_09\";\nexport { _1 as \"canvas\", _2 as \"customImage\", _3 as \"draggingSilhouette\", _4 as \"meter\", _5 as \"silhouette\", _6 as \"welcome\", _7 as \"whiteBg\", _8 as \"work\", _9 as \"workingArea\" }\n","// extracted by mini-css-extract-plugin\nvar _1 = \"AB51E6bsDIdqx9qhsoC6\";\nvar _2 = \"GyshaaCuOPwjuygKlVbM\";\nvar _3 = \"WEuN_Xjz69BG6OJeNKnv\";\nvar _4 = \"ShYK0ABicadIG2cCcZB1\";\nexport { _1 as \"cog\", _2 as \"dragging\", _3 as \"remove\", _4 as \"work\" }\n"],"names":["Mount","isSelected","kind","name","description","onSelect","paperId","postFix","children","radioId","radioName","React","key","htmlFor","className","Classes","Radio","type","value","checked","onChange","id","MatColor","colorRgb","ref","useRef","classnames","onClick","e","preventDefault","current","click","style","backgroundColor","join","FULL_BLEED","MATTE","FLOAT_DECKLED","FLOAT_STRIGHT","FLOATING","MAT_COLORS_ORDER","mat","window","currentLocale","matteText","caps","Mounts","selectedMount","selectedMatColor","matte","fullBleed","dckl","fltn","matColors","matColorsRgb","target","indexOf","color","split","renderMatte","useMemo","map","includes","renderFillBleed","renderFloating","props","Object","assign","PinIt","href","imageUrl","allowSharing","PinUtils","pinOne","url","media","src","alt","width","height","BY_COLOR","renderColorSelection","options","classLine","classColor","line","index","cindex","parseInt","toString","padStart","createReducer","Constants","panel","open","state","close","removeFilter","opts","_","rest","worksReducer","works","loading","filters","activeFilters","page","load","success","filtersLoaded","addFilter","param","text","favoriteWorksReducer","favoriteWorks","workDetailsReducer","work","toCamelCase","wall","customImage","update","add","widthIn","heightIn","posX","posY","remove","move","wallPaper","recalculateDpis","zoomPosition","wWidth","wHeight","sWidth","sHeight","whitePos","silhouette","Math","max","dpi","screenToDefaultDpi","dpis","updateWork","newProps","before","slice","after","removeWork","calculateNewPos","newDpi","posXWas","posYWas","centerX","centerXWas","centerY","centerYWas","length","calculateNewPosNoWorks","wInNew","hInNew","forEach","x","y","parseFloat","setZoomPosition","resetCenter","canvasWidth","canvasHeight","newState","canvasPositions","centerCanvasPosition","canvasReducer","getDefaultState","wallId","currency","wallPictures","currentColor","sharingUrl","keywordList","colorList","associatedRoomIds","associatedHomeDecorStyleIds","showSilhouette","default","silhouetteX","silhouetteY","zero","rulerVisible","guidesVisible","widthVisible","heightVisible","canvas","workId","workSizeId","frameId","Date","getTime","zoomIn","zoomOut","resetZoom","setSize","setFrame","setCenter","hideSilhouette","setSilhouette","setColor","showRuler","hideRuler","showGuides","hideGuides","setWidth","setHeight","showWidth","hideWidth","showHeight","hideHeight","updateAttributes","attributes","undo","push","action","pop","publishing","savingPreview","previewSaved","previewSavingError","showSharing","previewTimeStamp","previewSrc","logoSrc","export","published","savePreview","error","setLogo","workDetails","show","hide","savingPictures","assetsUploading","savingWall","start","end","uploadAssetsStart","uploadAssetsEnd","moreLikeThis","sourceId","original","set","reset","loaded","hangings","hangingMarks","first","second","isAdd","newMarks","findIndex","m","filter","saving","saved","custom","crop","pinned","localStorage","getItem","pin","toggle","combineReducers","undos","currentIndex","exporting","exportReducer","cartItems","middleware","thunk","scope","FB","XFBML","parse","Share","PureComponent","componentDidMount","parseFB","this","fbScope","componentDidUpdate","render","r","_7","_8","_c","_f","SvgComponent","fill","viewBox","d","gradientUnits","x1","y1","x2","y2","offset","stopColor","Subtitle","CommandBar","openPanel","totalPrice","addCurrentWallToCart","hasWorks","dropDown","Silhouette","renderCrop","canPublish","Menu","Item","panelKinds","customPreview","classes","Export","hanging","inverted","Button","other","AddOther","grids","Ruler","Dropdown","additionLabel","item","icon","mappingSmall","livingRoom","chaise","console","ZoomOut","ZoomIn","position","Undo","location","NewWallPlus","NewWall","onSave","isGuest","sigInLink","document","querySelector","evt","MouseEvent","bubbles","cancelable","view","dispatchEvent","Save","info","Info","renderShopThisWall","price","toFixed","closePanel","baseName","basename","loadWorksApi","params","keys","f","request","queryString","stringify","signWallUpload","contentType","prefix","extension","method","body","JSON","content_type","loadNextPage","dispatch","getState","then","loadWorkDetails","loadWorkDetailsApi","catch","status","workSizeDetails","createSelector","worksSelector","workDetailsSelector","sort","w1","w2","sign","wallPictureId","w","title","workSizes","authorName","landscape","isHidden","workSize","find","ws","paperMaterial","isWorkSizeHidden","displayPaperWidth","displayPaperHeight","displayPrintWidth","displayPrintHeight","displayPrintWidthNoMat","displayPrintHeightNoMat","option","o","log","frameDisplayWidth","frameDisplayDepth","frame","previewWidth","previewHeight","zoomPreviewUrl","frameName","frameFinalFramedSize","frameMat","previewW","preview","scaleX","previewH","scaleY","findMarksFor","sFirst","sSecond","marks","kinds","hangingVariations","hangingMarksSelector","sizes","sortedSizes","a","b","l","res","i","j","variant","i0","i1","reduce","PADDING","left","right","bottom","top","calculatePositions","padding","cX","cY","cWidth","cHeight","minx","miny","maxx","maxy","noData","base","shiftX","shiftY","automaticPreview","cropSelector","hangingPreview","previewConfig","markPositions","groundLeft","queue","doSaveWall","resolve","reject","previewImageUrl","transparentPreviewImageUrl","updateParams","match","saveWallApi","toSnakeCase","onWallSaved","saveWall","entry","uploadSignedFile","newHref","values","content","Promise","formData","FormData","entries","k","v","append","fetch","alert","uploadBase64File","base64","image","blob","data","newSrc","redo","addToCanvas","silhouetteCenterX","silhouetteCenterY","detectBestPosition","trackEvent","removeFromCanvas","addToCart","addArtToCart","connect","detailsVisible","addWallToCart","_11","_12","_13","_14","_15","_16","_17","_18","_19","_1a","_1b","_1c","_1d","PropTypes","isRequired","userName","avatarUrl","paperWidth","paperHeight","Sizes","hs","humanSizes","frameDetails","unit","phs","hidden","Icon","renderTitle","shared","WorkDetails","columns","showPrice","sizesProps","renderPrice","AddToCanvasButtons","workSizesAttributes","sortedHumanSizes","size","Work","showMoreLikeThis","moreSource","renderSizes","user","showMore","More","Search","constructor","super","query","debouncedSetQuery","debounce","setState","Input","placeholder","FindWorks","scroll","loadArtFilters","Const","addSeachFilter","renderLoader","Loader","active","inline","renderMenuFilter","toUpperCase","renderFilters","topFilters","group","groupFilters","secondary","renderWorks","moreLikeThisSources","renderActiveFilters","renderCurrentFilter","hexColor","Label","onlyFavorites","wayPoint","Waypoint","onEnter","scrollableAncestor","source","moreWorks","setTimeout","mapStateToProps","loadNextFavoritePage","favorites","Array","isArray","Header","onClose","PanelLayout","headerClass","headerChildren","PinButton","togglePin","Pinned","Pin","AddArt","currentTab","setTab","useState","allowApi","FindFavorites","pointing","ColorSelection","colorName","selectColor","ColorSection","section","colors","c","Color","defaultColor","prevColor","roundSize","CustomImage","loadImageProps","prevProps","sSrc","loadImage","binaryContent","Image","onload","ratio","onFileSelected","reader","FileReader","file","files","addEventListener","result","readAsDataURL","onChangeWidth","onChangeHeight","setCustomImage","addCustomImage","removeCustomImage","canSetState","renderInputs","renderImage","accept","uploadAsset","coma","substr","ext","prevSrc","updateSrc","TABS","hasCustomImage","activeItemIndex","activeItem","changeTab","tabs","t","C","ciSrc","wpSrc","hasWallPaper","GuidesConfig","onShowGrid","onShowGuides","Checkbox","label","Editor","editing","newValue","input","startEditing","focus","event","onCancel","setValue","onKeyDown","TextArea","onBlur","Title","newName","worksExtended","renderWork","workExtended","addWorkCart","CONNECTOR_MARK_COLOR","fillBackrround","ctx","cleanColor","replace","gradColor","lightenDarkenColor","col","amt","usePound","num","g","repeat","gradient","createLinearGradient","addColorStop","fillStyle","fillRect","renderCaption","align","beginPath","textAlign","font","fillText","closePath","renderMark","x0","y0","strokeStyle","moveTo","lineTo","stroke","resizeImage","createElement","getContext","img","drawImage","toDataURL","crossOrigin","Preview","building","renderPreview","onlyPlaceHolders","previewConfigWas","worksExtendedWas","currentColorWas","onlyPlaceHoldersWas","wallPaperWas","customImageWas","compareProps","comparePropsWas","deepEqual","onBuildComplete","previewReady","onBuildStarted","onImageRendered","imagesLoaded","totalImages","renderMarks","addImage","previewX","previewY","skipShadow","imageNumber","iX","iY","iW","iH","shadowOffsetX","shadowOffsetY","shadowColor","shadowBlur","fullyContained","numbersSize","dx","textBaseline","positions","h","sx","sy","sw","sh","dy","dw","dh","cropImage","renderGroundMark","wallHeight","lowerPos","MARK_PADDING_PX","mappedWorks","leftestWork","mx0","mx1","renderHangingMark","index0","index1","pos","imageMarkerBottom","min","abs","imageMarkerSide","iLoaded","renderWallPaper","il","ti","addWallPaper","renderCustomImage","dpiX","dpiY","display","editOverLay","EditDescription","newDescription","textarea","onChangeDescription","onChangeName","basic","UploadLogo","CopyText","numItemsWall","disabled","copyLink","onWallShared","copy","mapValues","collection","mapSelectedValues","ids","Attributes","onDone","setAtts","useCallback","setKeywords","setColors","setIds","onRoomIds","onStyleIds","TagEditor","basePath","defaultValue","Select","isMulti","rooms","homeDecorStyles","exportClasses","previewReadyTransparent","srcTransparent","editingDescription","uploadingLogo","editingAttributes","prevPublishing","itemsCount","onShareWall","onBuildCompleteTransparent","onBuildStartedTransparent","onTogglePrice","onEditDescription","onCancelEditingDescription","onUploadLogo","resetLogo","onCancelUploadingLogo","exportPdf","submit","startEditingAttributes","stopEditingAttributes","renderActions","publish","disableControls","renderStatus","renderPublish","renderEditAttributes","renderLogo","hoverTitle","hover","renderDesc","detailsSection","renderAttributes","allowLogo","transparentSrc","lastPreviewTimeStamp","uploadPreview","transparentBase64","sign1","sign2","all","signatures","urls","transparentUrl","newTransparentSrc","rej","publishWallApi","SelectableFrame","currentFrameId","setFrameFromOption","frameThumbUrl","mount","frameMatColorName","WorkTitle","large","medium","NO_FRAME","buildFrameGroups","matKey","frameCategory","currentMount","currentMatColor","bestOptionFor","obj","sequence","framingOptions","bind","setMount","newFrameId","findFirstMatchingFrameId","setNoFrame","setWorkSize","newId","prevWorkSize","newWorkSizeId","newWs","altOption","mountAndMatOption","mountOption","renderWorkSizes","renderCategory","renderMountSelection","availableMatColors","Set","matColor","filteredOptions","filterOptions","useMatColor","selectFrame","Bag","Remove","details","prevFrameId","prevWorkSizeId","MoreLikeThis","loadMoreLikeThis","sourceIdWas","onToggle","hideMoreLikeThis","addToCanvasAndClose","findClasses","more","showWorks","artistName","authorName2","workTitleProps","rendeTitle","detailsClasses","BackButton","sourceIdNew","sourceNew","loadedMoreLikeThis","CustomPreviewPanel","onToggleCrop","setCrop","resetCrop","KINDS","Hanging","canSave","onChecked","save","renderKind","isChecked","renderVariation","variation","renderContent","previewProps","renderSave","hv","saveHanging","saveHangingImage","PANEL_DIRECTION_BY_KIND","PANEL_CONTENT_BY_KIND","PANEL_WIDTH_BY_KIND","panelContentByKind","doRender","contentByKind","Panels","onShow","onHidden","onHide","panelKind","Sidebar","animation","visible","onVisible","direction","Panel","Draggable","defaultChild","dragging","startX","draggingObject","setDraggingObject","clientX","clientY","startY","setPosition","currentX","currentY","onMouseDown","onMouseUp","stopPropagation","onMouseMove","childRef","waStyle","cursor","DraggingObject","objectId","limitNegative","limitPositive","dxWas","dyWas","xWas","yWas","newX","newY","getAttribute","parentElement","Meter","WorkingArea","pixelsToInches","wasX","wasY","wasW","wasH","draggingOpts","WhiteBg","wTop","moveCustomImageTo","rulersForDpi","currentDpi","rulers","nextIndex","minRulers","maxRulers","renderTicks","center","maxLastTick","step","labelStep","labelStepCm","stepCm","firstTick","ceil","lastTick","tick","tickCm","round","labelTick","labelTickCm","topCm","HRuler","mapStateToPropsH","HRulerS","VRuler","mapStateToPropsV","VRulerS","Guids","renderWallGuide","hight","renderGrid","baseStart","isHorizonal","renderGrids","viewPortWidth","viewPortHeight","guideStep","endX","endY","Guides","RATIO","CustomCrop","onMouseMoveStart","setPosStart","onMouseMoveEnd","setPosEnd","onMouseUpStart","removeEventListener","onMouseUpEnd","onMouseDownStart","onMouseDownEnd","newWidth","newHeight","calculateStyle","wIn","hIn","box","p0","p1","renderCustom","renderWelcome","wbOptimalWarning","Canvas","calculateCanvasSize","workingArea","onWorkClicked","showWorkDetails","moveWorkTo","moveCustomImage","inchesToPixels","renderSilhouette","bgProps","posX0","posY0","canvasId","backgroundImage","bgW","bgH","backgroundSize","backgroundRepeat","defaultObjectId","Application","setShowSharing","useEffect","LocaleSelection","CookiesConsent","Modal","closeOnDimmerClick","closeSharing","Content","Description","readOnly","CartItemsPopup","Pushable","Pusher","store","buildStore","middleWares","applyMiddleware","createStore","reducer","undefined","WallBuilder","Provider","sentry_dsn","Sentry","dsn","integrations","tracesSampleRate","setupAnalytics","rootElement","getElementById","createRoot","PreviewConst","scaledPreviewDmentions","loadOptions","searchTagsWithOptions","Klass","AsyncCreatableSelect","defaultOptions","selectedValue","mapping","findWorkSize","findFramedOption","fId","frameOption","controls","Settings","Trash","WorkPictureImage","draggable","_1","_2","_3","_4","_5","_9","_a","_b","_d","_e","_6","_10","_1f","_20","_21"],"sourceRoot":""}