{"version":3,"file":"js/editor-2f67253e461efdf29190.js","mappings":"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iBACtBO,OAAO,cAET,CACExR,KAAK,4BACL8O,KAAK,sBACLyC,YAAanB,GAASc,sBAExB,CACElR,KAAK,8BACL8O,KAAK,sBACLyC,YAAanB,GAASe,wBAExB,CACEnR,KAAK,iCACL8O,KAAK,gBACLyC,YAAanB,GAASgB,8BAExB,CACEpR,KAAK,yBACL8O,KAAK,oBACLyC,YAAanB,GAASiB,iBAIbI,GAAa,CACxB,CACEzR,KAAK,eACLwR,OAAO,SACPD,YAAanB,GAASC,aAExB,CACErQ,KAAK,aACL8O,KAAK,cACL0C,OAAO,SACPD,YAAanB,GAASG,QAExB,CACEvQ,KAAK,WACL8O,KAAK,mBACL0C,OAAO,SACPD,YAAanB,GAASE,SAExB,CACEtQ,KAAK,UACL8O,KAAK,mBACL0C,OAAO,oBACPD,YAAanB,GAASI,UAExB,CACExQ,KAAK,wBACL8O,KAAK,oBACLyC,YAAanB,GAASQ,kBAExB,CACE5Q,KAAK,0BACL8O,KAAK,uBACLyC,YAAanB,GAASO,oBAExB,CACE3Q,KAAK,iBACL8O,KAAK,kBACLyC,YAAanB,GAASS,cAExB,CACE7Q,KAAK,oBACL8O,KAAK,uBACLyC,YAAanB,GAASU,aACtBU,OAAO,UAET,CACExR,KAAK,iBACL8O,KAAK,uBACLyC,YAAanB,GAASW,kBACtBS,OAAO,cAET,CACExR,KAAK,qBACL8O,KAAK,sBACLyC,YAAanB,GAASY,eACtBQ,OAAO,UAET,CACExR,KAAK,kBACL8O,KAAK,sBACLyC,YAAanB,GAASa,iBACtBO,OAAO,cAET,CACExR,KAAK,4BACL8O,KAAK,sBACLyC,YAAanB,GAASc,sBAExB,CACElR,KAAK,8BACL8O,KAAK,sBACLyC,YAAanB,GAASe,wBAExB,CACEnR,KAAK,iCACL8O,KAAK,gBACLyC,YAAanB,GAASgB,+BAIbM,GAAa,CACxB,CACE1R,KAAK,aACL8O,KAAK,OACL0C,OAAO,SACPD,YAAanB,GAASG,QAExB,CACEvQ,KAAK,WACL8O,KAAK,YACL0C,OAAO,SACPD,YAAanB,GAASE,SAExB,CACEtQ,KAAK,UACL8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","sources":["webpack:///./applications/components/EditorApp/decorators/scaleByWindow.js","webpack:///./applications/components/common/ThreeDViewer.js","webpack:///./applications/contexts/MobileCtx.js","webpack:///./applications/dictionary/index.js","webpack:///./applications/utils/currency.js","webpack:///./applications/utils/track-event.js","webpack:///./javascripts/getMaterialTheme.js","webpack:///./applications/components/EditorApp/reducer/path.js","webpack:///./applications/components/EditorApp/constants/action-types.js","webpack:///./applications/components/EditorApp/reducer/product.js","webpack:///./applications/components/EditorApp/reducer/condition.js","webpack:///./applications/components/EditorApp/reducer/designs.js","webpack:///./applications/components/EditorApp/reducer/sides.js","webpack:///./applications/components/EditorApp/reducer/realism.js","webpack:///./applications/components/EditorApp/reducer/message.js","webpack:///./applications/components/EditorApp/reducer/pictures.js","webpack:///./applications/components/EditorApp/reducer/uploader.js","webpack:///./applications/components/EditorApp/reducer/authenticity-token.js","webpack:///./applications/components/EditorApp/reducer/modals.js","webpack:///./applications/components/EditorApp/reducer/undo-redo.js","webpack:///./applications/components/EditorApp/reducer/crops.js","webpack:///./applications/components/EditorApp/reducer/is-shown-products.js","webpack:///./applications/components/EditorApp/reducer/for-all-sides.js","webpack:///./applications/components/EditorApp/reducer/is-pichshop.js","webpack:///./applications/components/EditorApp/reducer/figures.js","webpack:///./applications/components/EditorApp/reducer/emoji.js","webpack:///./applications/components/EditorApp/reducer/cliparts.js","webpack:///./applications/components/EditorApp/reducer/letterings.js","webpack:///./applications/components/EditorApp/reducer/initial-variants.js","webpack:///./applications/components/EditorApp/reducer/user.js","webpack:///./applications/components/EditorApp/reducer/visionhub-state.js","webpack:///./applications/components/EditorApp/reducer/onPlatform.js","webpack:///./applications/components/EditorApp/reducer/shutter-stock-enabled.js","webpack:///./applications/components/EditorApp/reducer/mobile-app.js","webpack:///./applications/components/EditorApp/reducer/drawControlPopup.js","webpack:///./applications/components/EditorApp/reducer/selectionMode.js","webpack:///./applications/components/EditorApp/store/index.js","webpack:///./applications/components/EditorApp/reducer/index.js","webpack:///./applications/components/EditorApp/decorators/withErrorBoundary.js","webpack:///./applications/components/EditorApp/decorators/withMobileContext.js","webpack:///./applications/components/EditorApp/selectors/index.js","webpack:///./applications/components/EditorApp/components/Products/Children.js","webpack:///./applications/components/EditorApp/components/Products/Department.js","webpack:///./applications/components/EditorApp/components/HorizontalScroll.js","webpack:///./applications/components/EditorApp/contexts/ProductsCtx.js","webpack:///./applications/components/EditorApp/decorators/withProductsContext.js","webpack:///./applications/components/EditorApp/AC/toggle-products.js","webpack:///./applications/components/EditorApp/services/lib/undo-redo/change-product-command.js","webpack:///./applications/components/EditorApp/AC/apply-condition-to-canvas.js","webpack:///./applications/components/EditorApp/AC/toggle-static-objects.js","webpack:///./applications/components/EditorApp/components/Products/index.js","webpack:///./applications/components/EditorApp/AC/change-product.js","webpack:///./applications/components/EditorApp/AC/save-design.js","webpack:///./applications/components/EditorApp/AC/auto-save-design.js","webpack:///./applications/components/EditorApp/services/lib/save-design.js","webpack:///./applications/components/EditorApp/components/Product/Canvas.js","webpack:///./applications/components/EditorApp/decorators/contextMenuTrigger.js","webpack:///./applications/components/EditorApp/components/Product/Message.js","webpack:///./applications/components/EditorApp/components/Product/Messages.js","webpack:///./applications/components/EditorApp/constants/edit-menu.js","webpack:///./applications/components/EditorApp/components/Product/ObjectContextMenu.js","webpack:///./applications/components/EditorApp/components/Product/ContextMenu.js","webpack:///./applications/components/EditorApp/components/Product/KeyObserver.js","webpack:///./applications/components/EditorApp/components/Product/AngleLabel.js","webpack:///./applications/components/EditorApp/components/Product/index.js","webpack:///./applications/components/EditorApp/AC/init-canvas.js","webpack:///./applications/components/EditorApp/AC/restore-design.js","webpack:///./applications/components/EditorApp/AC/add-message.js","webpack:///./applications/components/EditorApp/AC/change-design.js","webpack:///./applications/components/EditorApp/AC/redirect.js","webpack:///./applications/components/EditorApp/AC/order-product.js","webpack:///./applications/components/EditorApp/services/lib/price-format.js","webpack:///./applications/components/EditorApp/services/lib/has-design.js","webpack:///./applications/components/EditorApp/services/lib/get-price-from-scheme.js","webpack:///./applications/components/EditorApp/components/Price.js","webpack:///./applications/components/EditorApp/decorators/withSelectionContext.js","webpack:///./applications/components/EditorApp/components/Order.js","webpack:///./applications/utils/track-pageview.js","webpack:///./applications/components/EditorApp/decorators/withViewPortContext.js","webpack:///./applications/components/EditorApp/components/ActionPanel.js","webpack:///./applications/components/EditorApp/AC/sell-product.js","webpack:///./applications/components/EditorApp/components/RealisticView/View.js","webpack:///./applications/components/EditorApp/components/RealisticView/Views.js","webpack:///./applications/components/EditorApp/components/RealisticView/Realism.js","webpack:///./applications/components/EditorApp/AC/modal.js","webpack:///./applications/components/EditorApp/AC/realism.js","webpack:///./applications/components/EditorApp/components/RealisticView/index.js","webpack:///./applications/components/EditorApp/components/Navigation.js","webpack:///./applications/components/EditorApp/services/lib/is-dark-color.js","webpack:///./applications/components/EditorApp/AC/add-text.js","webpack:///./applications/icons/TextIcon.js","webpack:///./applications/components/EditorApp/components/ObjectManager/AddingText.js","webpack:///./applications/components/EditorApp/AC/add-picture-to-canvas.js","webpack:///./applications/components/EditorApp/AC/add-image.js","webpack:///./applications/components/EditorApp/AC/upload-image.js","webpack:///./applications/components/EditorApp/components/ObjectManager/Pictures/Picture.js","webpack:///./applications/components/EditorApp/AC/remove-picture.js","webpack:///./applications/components/EditorApp/components/ObjectManager/Pictures/index.js","webpack:///./applications/components/EditorApp/components/ObjectManager/PictureBox.js","webpack:///./applications/icons/LocalIcon.js","webpack:///./applications/icons/GoogleSearchIcon.js","webpack:///./applications/components/EditorApp/components/ObjectManager/Uploader/Local.js","webpack:///./applications/components/EditorApp/AC/change-source-uploader.js","webpack:///./applications/components/EditorApp/AC/third-party-search.js","webpack:///./applications/components/EditorApp/components/ObjectManager/Uploader/Image.js","webpack:///./applications/components/EditorApp/components/ObjectManager/Uploader/GoogleSearchResults.js","webpack:///./applications/components/EditorApp/components/ObjectManager/Uploader/Results.js","webpack:///./applications/components/EditorApp/components/ObjectManager/Uploader/ShutterStockResults.js","webpack:///./applications/components/EditorApp/AC/upload-shutterstock-image.js","webpack:///./applications/components/EditorApp/components/ObjectManager/Uploader/ThirdPartySearch.js","webpack:///./applications/components/EditorApp/components/ObjectManager/Uploader/index.js","webpack:///./applications/components/EditorApp/components/ObjectManager/AddingPicture.js","webpack:///./applications/components/EditorApp/components/ObjectManager/index.js","webpack:///./applications/components/EditorApp/AC/apply-condition-to-sides.js","webpack:///./applications/components/EditorApp/AC/change-side.js","webpack:///./applications/components/EditorApp/components/SideControl.js","webpack:///./applications/components/EditorApp/components/TextControl/TextValue.js","webpack:///./applications/components/EditorApp/components/MSelect.js","webpack:///./applications/components/EditorApp/services/lib/fonts.js","webpack:///./applications/components/EditorApp/components/TextControl/FontFamily.js","webpack:///./applications/icons/ShadowIcon.js","webpack:///./applications/components/EditorApp/components/TextControl/FontStyle.js","webpack:///./applications/components/EditorApp/components/TextControl/TextAlign.js","webpack:///./applications/components/EditorApp/components/ColorPicker.js","webpack:///./applications/icons/FormatColorTextWithShadowIcon.js","webpack:///./applications/components/EditorApp/components/TextControl/TextColor.js","webpack:///./applications/components/EditorApp/components/TextControl/FontSize.js","webpack:///./applications/components/EditorApp/components/TextControl/index.js","webpack:///./applications/components/EditorApp/AC/set-text-property.js","webpack:///./applications/contexts/DictionaryCtx.js","webpack:///./applications/components/EditorApp/components/VariantControl/Template/Line.js","webpack:///./applications/components/EditorApp/components/VariantControl/Template/Select.js","webpack:///./applications/components/EditorApp/components/VariantControl/Template/Checkbox.js","webpack:///./applications/components/EditorApp/components/ColorWheelIcon.js","webpack:///./applications/components/EditorApp/components/VariantControl/Template/LineWithColorPicker.js","webpack:///./applications/components/EditorApp/AC/set-for-all-sides.js","webpack:///./applications/components/EditorApp/services/lib/price-map-formatter.js","webpack:///./applications/components/EditorApp/components/VariantControl/Template/index.js","webpack:///./applications/components/EditorApp/contexts/ColorHexMapCtx.js","webpack:///./applications/components/EditorApp/decorators/withColorHexMapContext.js","webpack:///./applications/components/EditorApp/AC/change-bg-color-for-other-sides.js","webpack:///./applications/components/EditorApp/AC/set-background-color.js","webpack:///./applications/components/EditorApp/components/VariantControl/index.js","webpack:///./applications/components/EditorApp/AC/change-variant.js","webpack:///./applications/components/EditorApp/components/SystemControl/UndoRedo.js","webpack:///./applications/components/EditorApp/AC/undo-redo.js","webpack:///./applications/icons/ClipboardIcon.js","webpack:///./applications/components/EditorApp/components/SystemControl/System.js","webpack:///./applications/components/EditorApp/components/SystemControl/index.js","webpack:///./applications/icons/EnhancerIcon.js","webpack:///./applications/components/EditorApp/constants/effects-menu.js","webpack:///./applications/components/EditorApp/AC/apply-vision-hub-filter.js","webpack:///./applications/components/EditorApp/components/EditControl/Effects.js","webpack:///./applications/components/EditorApp/AC/toggle-effect.js","webpack:///./applications/components/EditorApp/components/EditControl/Opacity.js","webpack:///./applications/components/EditorApp/AC/set-opacity.js","webpack:///./applications/components/EditorApp/components/EditControl/Edit.js","webpack:///./applications/icons/FillShadowIcon.js","webpack:///./applications/components/EditorApp/components/EditControl/ClipartFill.js","webpack:///./applications/components/EditorApp/AC/set-fill-for-path.js","webpack:///./applications/components/EditorApp/components/EditControl/Crop.js","webpack:///./applications/components/EditorApp/AC/apply-crop.js","webpack:///./applications/icons/StrokeIcon.js","webpack:///./applications/icons/WithoutStrokeIcon.js","webpack:///./applications/components/EditorApp/components/EditControl/Stroke.js","webpack:///./applications/components/EditorApp/AC/set-stroke.js","webpack:///./applications/icons/TilingIcon.js","webpack:///./applications/components/EditorApp/AC/tiling.js","webpack:///./applications/components/EditorApp/components/EditControl/Tiling.js","webpack:///./applications/components/EditorApp/components/EditControl/index.js","webpack:///./applications/components/EditorApp/components/BackgroundControl.js","webpack:///./applications/components/EditorApp/components/StaticObjectControl.js","webpack:///./applications/components/EditorApp/AC/set-fill-for-path-of-static-object.js","webpack:///./applications/components/EditorApp/AC/three-d-viewer.js","webpack:///./applications/components/EditorApp/components/ThreeDPreview/index.js","webpack:///./applications/components/EditorApp/components/DrawControl/ControlTooltip.js","webpack:///./applications/components/EditorApp/components/DrawControl/ControlClose.js","webpack:///./applications/icons/FiguresIcon.js","webpack:///./applications/components/EditorApp/components/DrawControl/Figures.js","webpack:///./applications/icons/EmojiIcon.js","webpack:///./applications/components/EditorApp/components/DrawControl/Emoji.js","webpack:///./applications/icons/ClipartsIcon.js","webpack:///./applications/components/EditorApp/components/DrawControl/Cliparts.js","webpack:///./applications/icons/TexturesIcon.js","webpack:///./applications/components/EditorApp/components/DrawControl/Textures.js","webpack:///./applications/icons/LetteringsIcon.js","webpack:///./applications/components/EditorApp/AC/add-objects-to-canvas.js","webpack:///./applications/components/EditorApp/components/DrawControl/Letterings.js","webpack:///./applications/components/EditorApp/components/DrawControl/index.js","webpack:///./applications/components/common/Icons/MoveTool.js","webpack:///./applications/components/common/Icons/SelectionTool.js","webpack:///./applications/components/EditorApp/components/Instruments/index.js","webpack:///./applications/components/EditorApp/components/Root.js","webpack:///./applications/components/EditorApp/index.js","webpack:///./packs/editor.js","webpack:///./applications/components/EditorApp/components/DrawControl/DrawControl.module.scss?4ce9"],"sourcesContent":["import React, {Component} from \"react\";\n\nexport default ({width, height}) => (OriginalComponent) =>\n class DecoratedComponent extends Component {\n state = {\n transform: `scale(1)`,\n height: `auto`\n };\n componentDidMount() {\n if (window) {\n this.scale();\n window.addEventListener(`resize`, this.scale);\n }\n }\n componentWillUnmount() {\n if (window) {\n window.removeEventListener(`resize`, this.scale);\n }\n }\n scale = () => {\n const side = width > height ? width : height;\n const windowWidth = window.innerWidth;\n const minWidth = 320;\n const scaleVal =\n windowWidth > minWidth ? windowWidth / side : minWidth / side;\n const tx = (width - width * scaleVal) / 2 / scaleVal;\n const ty = (height - height * scaleVal) / 2 / scaleVal;\n this.setState({\n transform:\n scaleVal > 1\n ? `scale(1)`\n : `scale(${scaleVal}) translate(-${tx}px, -${ty}px)`,\n height: scaleVal > 1 ? `auto` : height * scaleVal\n });\n };\n render() {\n const {transform, height: heightContainer} = this.state;\n return (\n
\n \n \n
\n \n );\n }\n };\n","import React, {useRef, useEffect} from \"react\";\nimport PropTypes from \"prop-types\";\nimport scaleByWindow from \"../EditorApp/decorators/scaleByWindow\";\n\nfunction ThreeDViewer(props) {\n const {enable, disable, className} = props;\n const threeDEl = useRef(null);\n useEffect(() => {\n enable(threeDEl.current);\n return () => {\n disable();\n };\n }, [disable, enable]);\n return (\n \n );\n}\n\nThreeDViewer.propTypes = {\n className: PropTypes.string,\n enable: PropTypes.func,\n disable: PropTypes.func\n};\n\nexport default scaleByWindow({width: 600, height: 600})(ThreeDViewer);\n","import React from \"react\";\n\nconst isMobile = false;\nexport default React.createContext(isMobile);\n","/* eslint-disable camelcase */\n\nexport default {\n store: {\n Own_design: `Свой дизайн`,\n Create_own_design: `Создать свой дизайн`,\n Show_more: `Показать ещё`,\n Select_the_desired_section_or_product: `Выберите нужный раздел или товар`,\n Sort: `Сортировка`,\n Didnt_find_what_you_were_looking_for: `Не нашли, что искали`\n },\n editor: {\n \"Constructor\": `Конструктор`,\n\n \"name\": `Полное имя`,\n \"job_title\": `Должность`,\n \"email\": `Е-мэйл`,\n \"phone\": `Телефон`,\n \"address1\": `Адрес 1`,\n \"address2\": `Адрес 2`,\n \"website\": `Веб-адрес`,\n \"mobile_phone\": `Мобильный телефон`,\n \"company_name\": `Название компании`,\n\n \"glossy\": `глянцевая`,\n \"matte\": `матовая`,\n \"none\": `отсутствует`,\n\n \"curious_white\": `маджестик белый мрамор`,\n \"curious_gold\": `маджестик сияние золота`,\n \"curious_creme\": `кириус кремовый`,\n \"plike_yellow\": `плайк желтый`,\n \"plike_orange\": `плайк оранжевый`,\n \"plike_purple\": `плайк фиолетовый`,\n \"linen_white\": `лён белый`,\n \"linen_grey\": `лён серый`,\n \"linen_ivory\": `лён слоновая кость`,\n \"touchcover_white\": `тачкавер белый`,\n \"touchcover_ivory\": `тачкавер слоновая кость`,\n\n \"no_frame\": `Без рамки`,\n \"dark_wood\": `Темное дерево`,\n \"light_wood\": `Светлое дерево`,\n\n \"soft_touch_white\": `Soft touch белый`,\n \"soft_touch_black\": `Soft touch чёрный`,\n \"soft_touch_translucent\": `Soft touch матовый полупрозрачный`,\n \"leather_white\": `Белая кожа`,\n \"leather_black\": `Чёрная кожа`,\n \"silicone_clear\": `Прозрачный силиконовый`,\n \"leather\": `Кожа`,\n \"polyester\": `Полиэстер`,\n\n \"vinyl\": `Виниловая плёнка`,\n \"resin\": `Заливка смолой - основа ПВХ`,\n \"magnet\": `Магнитная основа`,\n\n \"red-handle\": `красная ручка и ободок`,\n \"light-green-handle\": `светло-зелёная ручка и ободок`,\n \"burgundy-handle\": `бордовая ручка и ободок`,\n \"orange-handle\": `оранжевая ручка и ободок`,\n \"blue-handle\": `голубая ручка и ободок`,\n \"light-green-inside\": `светло-зелёная внутри`,\n \"blue-inside\": `голубая внутри`,\n \"pink-inside\": `розовая внутри`,\n \"red-inside\": `красная внутри`,\n \"orange-inside\": `оранжевая внутри`,\n \"black-inside\": `чёрная внутри`,\n \"yellow-inside\": `жёлтая внутри`,\n\n \"white\": `белый`,\n \"grey\": `серый`,\n \"red\": `красный`,\n \"orange\": `оранжевый`,\n \"yellow\": `жёлтый`,\n \"green\": `зелёный`,\n \"blue\": `голубой`,\n \"purple\": `фиолетовый`,\n \"violet\": `фиолетовый`,\n \"black\": `чёрный`,\n \"beige\": `бежевый`,\n \"pistachio\": `фисташковый`,\n \"burgundy\": `бордовый`,\n \"fuchsia\": `фуксия`,\n \"pink\": `розовый`,\n \"silver\": `серебристый`,\n \"gold\": `золотистый`,\n \"lilac\": `сиреневый`,\n \"ivory\": `слоновая кость`,\n \"sand\": `песочный`,\n \"torquoise\": `бирюзовый`,\n \"melange\": `меланж`,\n \"brown\": `коричневый`,\n \"coral\": `коралловый`,\n \"design\": `рисунок`,\n \"cornflower\": `василёк`,\n \"translucent\": `матовый полупрозрачный`,\n \"turquoise\": `мятный`,\n \"unpainted\": `неокрашенный`,\n\n \"light-grey\": `светло-серый`,\n \"dark-grey\": `тёмно-серый`,\n \"light-green\": `светло-зелёный`,\n \"dark-green\": `тёмно-зелёный`,\n \"light-blue\": `светло-голубой`,\n \"dark-blue\": `тёмно-синий`,\n \"bright-blue\": `ярко-синий`,\n \"dark-red\": `тёмно-красный`,\n \"lime-green\": `салатовый`,\n \"sky-blue\": `небесный`,\n \"light-brown\": `светло-коричневый`,\n \"grey-blue\": `серо-голубой`,\n \"natural-linen\": `натуральный`\n },\n item: {\n \"glossy\": `Глянцевое`,\n \"matte\": `Матовое`,\n \"none\": `Нет`,\n\n \"curious_white\": `маджестик белый мрамор`,\n \"curious_gold\": `маджестик сияние золота`,\n \"curious_creme\": `кириус кремовый`,\n \"plike_yellow\": `плайк желтый`,\n \"plike_orange\": `плайк оранжевый`,\n \"plike_purple\": `плайк фиолетовый`,\n \"linen_white\": `лён белый`,\n \"linen_grey\": `лён серый`,\n \"linen_ivory\": `лён слоновая кость`,\n \"touchcover_white\": `тачкавер белый`,\n \"touchcover_ivory\": `тачкавер слоновая кость`,\n\n \"frameType\": {\n no_frame: `Без рамки`,\n dark_wood: `Темное дерево`,\n light_wood: `Светлое дерево`,\n black: `Темная`,\n white: `Белая`,\n silver: `Серебристая`\n },\n\n \"soft_touch_white\": `Soft touch белый`,\n \"soft_touch_black\": `Soft touch чёрный`,\n \"soft_touch_translucent\": `Soft touch матовый полупрозрачный`,\n \"leather_white\": `Белая кожа`,\n \"leather_black\": `Чёрная кожа`,\n \"silicone_clear\": `Прозрачный силиконовый`,\n \"leather\": `Кожа`,\n \"polyester\": `Полиэстер`,\n\n \"vinyl\": `Виниловая плёнка`,\n \"resin\": `Заливка смолой - основа ПВХ`,\n \"magnet\": `Магнитная основа`,\n\n \"red-handle\": `красная ручка и ободок`,\n \"light-green-handle\": `светло-зелёная ручка и ободок`,\n \"burgundy-handle\": `бордовая ручка и ободок`,\n \"orange-handle\": `оранжевая ручка и ободок`,\n \"blue-handle\": `голубая ручка и ободок`,\n \"light-green-inside\": `светло-зелёная внутри`,\n \"blue-inside\": `голубая внутри`,\n \"pink-inside\": `розовая внутри`,\n \"red-inside\": `красная внутри`,\n \"orange-inside\": `оранжевая внутри`,\n \"black-inside\": `чёрная внутри`,\n \"yellow-inside\": `жёлтая внутри`,\n\n \"white\": `белый`,\n \"grey\": `серый`,\n \"red\": `красный`,\n \"orange\": `оранжевый`,\n \"yellow\": `жёлтый`,\n \"green\": `зелёный`,\n \"blue\": `голубой`,\n \"purple\": `фиолетовый`,\n \"violet\": `фиолетовый`,\n \"black\": `чёрный`,\n \"beige\": `бежевый`,\n \"pistachio\": `фисташковый`,\n \"burgundy\": `бордовый`,\n \"fuchsia\": `фуксия`,\n \"pink\": `розовый`,\n \"silver\": `серебристый`,\n \"gold\": `золотистый`,\n \"lilac\": `сиреневый`,\n \"ivory\": `слоновая кость`,\n \"sand\": `песочный`,\n \"torquoise\": `бирюзовый`,\n \"melange\": `меланж`,\n \"brown\": `коричневый`,\n \"coral\": `коралловый`,\n \"design\": `рисунок`,\n \"cornflower\": `василёк`,\n \"translucent\": `матовый полупрозрачный`,\n \"turquoise\": `мятный`,\n \"unpainted\": `неокрашенный`,\n\n \"light-grey\": `светло-серый`,\n \"dark-grey\": `тёмно-серый`,\n \"light-green\": `светло-зелёный`,\n \"dark-green\": `тёмно-зелёный`,\n \"light-blue\": `светло-голубой`,\n \"dark-blue\": `тёмно-синий`,\n \"bright-blue\": `ярко-синий`,\n \"dark-red\": `тёмно-красный`,\n \"lime-green\": `салатовый`,\n \"sky-blue\": `небесный`,\n \"light-brown\": `светло-коричневый`,\n \"grey-blue\": `серо-голубой`,\n \"natural-linen\": `натуральный`,\n\n \"standart\": `эконом`,\n \"premium\": `премиум`,\n\n \"cotton\": `хлопок`,\n \"synthetics\": `синтетика`,\n \"bouffant\": `с начёсом`,\n \"eyelet\": `петелька`,\n\n \"milk\": `молочный`,\n \"bitter\": `горький`,\n\n \"cornerRadius\": {\n \"0\": `Нет`,\n \"4\": `4 мм`\n },\n \"diameter\": {\n \"32\": `32 мм`,\n \"44\": `44 мм`,\n \"56\": `56 мм`\n },\n \"notebookCover\": {\n glossy: `глянцевая`,\n matte: `матовая`,\n plastic: `пластиковая`,\n none: `отсутствует`\n },\n \"numberOfPages\": {\n \"48_pages\": `48 листов`,\n \"96_pages\": `96 листов`\n },\n \"pageGrid\": {\n squared: `клетка`,\n ruled: `линейка`,\n none: `отсутствует`\n },\n \"numberOfStickers\": {\n \"500\": `500 шт.`,\n \"750\": `750 шт.`,\n \"1000\": `1000 шт.`,\n },\n \"pillowCase\": {\n sew: `зашита`,\n zipper: `на молнии`,\n zipper_without_extender: `на молнии без наполнителя`\n },\n \"pole\": {\n tubule: `трубочка 33 см`,\n pocket: `карман (под палку)`,\n eyelets: `люверсы`,\n shaft150: `древко 150 см`,\n shaft200: `древко 200 см`\n },\n \"dimensionSize\": {\n \"60x60\": `60x60 см`,\n \"70x70\": `70x70 см`\n },\n \"rubber\": `резиновый`,\n \"plastic\": `пластиковый Slim`\n },\n survey: {\n Yes: `Да`,\n No: `Нет`,\n Send: `Отправить`,\n Write_please: `Напишите, пожалуйста`\n },\n header: {}\n};\n","const currencyFallback = {\n compact: {\n zero: '₽',\n one: '₽',\n few: '₽',\n many: '₽',\n separator: ''\n },\n full: {\n zero: '₽',\n one: '₽',\n few: '₽',\n many: '₽',\n separator: ''\n }\n};\n\nfunction endingCurrency(price) {\n if (price >= 11 && price <= 14) return 'many';\n\n if (price % 10 === 0) return 'zero';\n else if (price % 10 === 1) return 'one';\n else if (price % 10 >= 2 && price % 10 <= 4) return 'few';\n else return 'many';\n}\n\nexport function shortCurrency(currency, price) {\n if (!currency) currency = currencyFallback\n\n const compact = currency.compact || currencyFallback.compact;\n const ending = endingCurrency(price);\n\n return `${compact.separator}${compact[ending]}`;\n}\n\nexport function longCurrency(currency, price) {\n if (!currency) currency = currencyFallback\n\n const full = currency.full || currencyFallback.full;\n const ending = endingCurrency(price);\n\n return `${full.separator}${full[ending]}`;\n}\n","const trackEvent = ({category, action, label, value}) => {\n if (window && window.ga) {\n const args = [`gtm3.send`, `event`, category, action, label, value].filter(\n (i) => i !== void 0\n );\n window.ga.apply(null, args);\n }\n};\n\nexport default trackEvent;\n","import {createMuiTheme} from \"@material-ui/core/styles\";\n\nexport function getMuiTheme(onPlatform) {\n const theme = {\n typography: {\n fontFamily: `\"Formular\", \"Arial\", sans-serif`,\n useNextVariants: true\n },\n breakpoints: {\n values: {\n xs: 0,\n sm: 740,\n md: 940,\n lg: 1240,\n xl: 1440\n }\n }\n };\n\n if (onPlatform === `vtb`) {\n theme.typography.fontFamily = `\"VTB Group\", Arial, sans-serif`;\n }\n\n return createMuiTheme(theme);\n}\n","import {CHANGE_LOCATION} from \"../../../constants\";\n\nexport default (path = ``, action) => {\n const {type, payload} = action;\n\n switch (type) {\n case CHANGE_LOCATION:\n return payload.location.pathname;\n }\n\n return path;\n};\n","export const START = `_START`;\nexport const SUCCESS = `_SUCCESS`;\nexport const FAIL = `_FAIL`;\nexport const TICK = `_TICK`;\nexport const INIT_CANVAS = `INIT_CANVAS`;\nexport const APPLY_CONDITION_TO_CANVAS = `APPLY_CONDITION_TO_CANVAS`;\nexport const APPLY_CONDITION_TO_SIDES = `APPLY_CONDITION_TO_SIDES`;\nexport const PRODUCT_READY = `PRODUCT_READY`;\nexport const LOAD_DATA = `LOAD_DATA`;\nexport const CHANGE_SIDE = `CHANGE_SIDE`;\nexport const CHANGE_PRODUCT = `CHANGE_PRODUCT`;\nexport const CHANGE_DESIGN = `CHANGE_DESIGN`;\nexport const CHANGE_VARIANT = `CHANGE_VARIANT`;\nexport const SAVE_DESIGN = `SAVE_DESIGN`;\nexport const AUTO_SAVE_DESIGN = `AUTO_SAVE_DESIGN`;\nexport const CLEAR_DESIGN = `CLEAR_DESIGN`;\nexport const GET_REALISM = `GET_REALISM`;\nexport const ADD_MESSAGE = `ADD_MESSAGE`;\nexport const CHANGE_BACKGROUND_FOR_OTHER_SIDES = `CHANGE_BACKGROUND_FOR_OTHER_SIDES`;\nexport const ADD_PICTURE_TO_CANVAS = `ADD_PICTURE_TO_CANVAS`;\nexport const UPLOAD_IMAGE = `UPLOAD_IMAGE`;\nexport const ADD_IMAGE = `ADD_IMAGE`;\nexport const REMOVE_IMAGE = `REMOVE_IMAGE`;\nexport const TOGGLE_MODAL = `TOGGLE_MODAL`;\nexport const CLOSE_ALL_MODALS = `CLOSE_ALL_MODALS`;\nexport const UPDATE_UNDO_REDO = `UPDATE_UNDO_REDO`;\nexport const UNDO = `UNDO`;\nexport const REDO = `REDO`;\nexport const ADD_TEXT = `ADD_TEXT`;\nexport const CHANGE_TEXT = `CHANGE_TEXT`;\nexport const TOGGLE_EFFECT = `TOGGLE_EFFECT`;\nexport const SET_OPACITY = `SET_OPACITY`;\nexport const SET_FILL = `SET_FILL`;\nexport const TOGGLE_PRODUCTS = `TOGGLE_PRODUCTS`;\nexport const SET_STROKE = `SET_STROKE`;\nexport const CHANGE_SOURCE_UPLOADER = `CHANGE_SOURCE_UPLOADER`;\nexport const THIRD_PARTY_SEARCH = `THIRD_PARTY_SEARCH`;\nexport const SET_THIRD_PARTY_SEARCH_QUERY = `SET_THIRD_PARTY_SEARCH_QUERY`;\nexport const INCREMENT_THIRD_PARTY_SEARCH_PAGE = `INCREMENT_THIRD_PARTY_SEARCH_PAGE`;\nexport const SET_FILL_FOR_STATIC_OBJECT = `SET_FILL_FOR_STATIC_OBJECT`;\nexport const TOGGLE_STATIC_OBJECTS = `TOGGLE_STATIC_OBJECTS`;\nexport const SET_BACKGROUND_COLOR = `SET_BACKGROUND_COLOR`;\nexport const SET_FOR_ALL_SIDES = `SET_FOR_ALL_SIDES`;\nexport const GET_THREE_D_VIEWER = `GET_THREE_D_VIEWER`;\nexport const DESTROY_TILING = `DESTROY_TILING`;\nexport const CREATE_TILING = `CREATE_TILING`;\nexport const SET_TILE_PADDING = `SET_TILE_PADDING`;\nexport const RESTORE_DESIGN = `RESTORE_DESIGN`;\nexport const ADD_OBJECTS_TO_CANVAS = `ADD_OBJECTS_TO_CANVAS`;\nexport const APPLY_VISIONHUB_FILTER = `APPLY_VISIONHUB_FILTER`;\nexport const OPEN_DRAW_CONTROL_POPUP = `OPEN_DRAW_CONTROL_POPUP`;\nexport const CLOSE_DRAW_CONTROL_POPUP = `CLOSE_DRAW_CONTROL_POPUP`;\n","import {\n CHANGE_PRODUCT,\n APPLY_CONDITION_TO_CANVAS,\n INIT_CANVAS,\n SAVE_DESIGN,\n START,\n SUCCESS,\n FAIL,\n CLEAR_DESIGN,\n ADD_TEXT,\n GET_REALISM,\n AUTO_SAVE_DESIGN\n} from \"../constants/action-types\";\n\nexport default (product = {loading: true, loaded: false}, action) => {\n const {type, response, error} = action;\n switch (type) {\n case CHANGE_PRODUCT + START:\n return {...product, loading: true, loaded: false};\n case CHANGE_PRODUCT + SUCCESS:\n return {...response.product, loading: false, loaded: true};\n case CHANGE_PRODUCT + FAIL:\n return {...product, loading: false, loaded: true, error};\n\n case INIT_CANVAS + START:\n return {...product, loading: true, loaded: false};\n case INIT_CANVAS + SUCCESS:\n return {...product, loading: false, loaded: true};\n case INIT_CANVAS + FAIL:\n return {...product, loading: false, loaded: true, error};\n\n case APPLY_CONDITION_TO_CANVAS + START:\n return {...product, loading: true, loaded: false};\n case APPLY_CONDITION_TO_CANVAS + SUCCESS:\n return {...product, loading: false, loaded: true};\n case APPLY_CONDITION_TO_CANVAS + FAIL:\n return {...product, loading: false, loaded: true, error};\n\n case SAVE_DESIGN + START:\n return {...product, loading: true, loaded: false};\n case SAVE_DESIGN + SUCCESS:\n return {...response.product, loading: false, loaded: true};\n case SAVE_DESIGN + FAIL:\n return {...product, loading: false, loaded: true, error};\n\n case AUTO_SAVE_DESIGN + START:\n return {...product};\n case AUTO_SAVE_DESIGN + SUCCESS:\n return {...response.product};\n case AUTO_SAVE_DESIGN + FAIL:\n return {...product, loading: false, loaded: true, error};\n\n case CLEAR_DESIGN + START:\n return {...product, loading: true, loaded: false};\n case CLEAR_DESIGN + SUCCESS:\n return {...product, loading: false, loaded: true};\n case CLEAR_DESIGN + FAIL:\n return {...product, loading: false, loaded: true, error};\n\n case GET_REALISM + START:\n return {...product, loading: true, loaded: false};\n case GET_REALISM + SUCCESS:\n return {...product, loading: false, loaded: true};\n case GET_REALISM + FAIL:\n return {...product, loading: false, loaded: true, error};\n\n case ADD_TEXT + START:\n return {...product, loading: true, loaded: false};\n case ADD_TEXT + SUCCESS:\n return {...product, loading: false, loaded: true};\n case ADD_TEXT + FAIL:\n return {...product, loading: false, loaded: true, error};\n }\n return product;\n};\n","import {\n CHANGE_SIDE,\n CHANGE_PRODUCT,\n CHANGE_VARIANT,\n SAVE_DESIGN,\n SUCCESS,\n CHANGE_DESIGN,\n TOGGLE_STATIC_OBJECTS,\n RESTORE_DESIGN\n} from \"../constants/action-types\";\n\nexport default (condition = {}, action) => {\n const {type, payload, response} = action;\n switch (type) {\n case CHANGE_SIDE:\n return {\n ...condition,\n side: payload.next.side,\n design: payload.next.design,\n dimensions: payload.next.dimensions,\n dpi: payload.next.dpi\n };\n case CHANGE_PRODUCT + SUCCESS:\n return {\n ...response.condition,\n design: payload.next.design\n };\n case TOGGLE_STATIC_OBJECTS:\n return {\n ...condition,\n design: payload.designs[0].design\n };\n case CHANGE_DESIGN:\n return {...condition, design: payload.design};\n case CHANGE_VARIANT:\n return {\n ...condition,\n variants: {...condition.variants, [payload.variant]: payload.value}\n };\n case SAVE_DESIGN + SUCCESS:\n return {\n ...response.condition\n };\n\n case RESTORE_DESIGN:\n return {\n ...condition,\n design: payload.designs[0].design\n };\n }\n return condition;\n};\n","import {\n CHANGE_SIDE,\n CHANGE_DESIGN,\n SAVE_DESIGN,\n SUCCESS,\n CHANGE_BACKGROUND_FOR_OTHER_SIDES,\n CHANGE_PRODUCT,\n TOGGLE_STATIC_OBJECTS,\n SET_FILL_FOR_STATIC_OBJECT,\n RESTORE_DESIGN\n} from \"../constants/action-types\";\n\nexport default (designs = {}, action) => {\n const {type, payload, response} = action;\n switch (type) {\n case CHANGE_SIDE:\n return {\n ...designs,\n [payload.prev.index]: {\n ...designs[payload.prev.index],\n design: payload.prev.design\n }\n };\n case CHANGE_DESIGN:\n return {\n ...designs,\n [payload.index]: {\n ...designs[payload.index],\n design: payload.design\n }\n };\n case SAVE_DESIGN + SUCCESS:\n return {\n ...designs,\n ...response.desings\n };\n case CHANGE_BACKGROUND_FOR_OTHER_SIDES:\n return {\n ...getDesignsWithChangedBg(designs, payload.color)\n };\n\n case CHANGE_PRODUCT + SUCCESS:\n return {\n ...response.designs,\n ...designs\n };\n\n case TOGGLE_STATIC_OBJECTS:\n return {\n ...payload.designs\n };\n\n case SET_FILL_FOR_STATIC_OBJECT:\n return {\n ...getDesignsWithChangedFill(\n designs,\n payload.fillColor,\n payload.pathNumber\n )\n };\n\n case RESTORE_DESIGN:\n return {\n ...payload.designs\n };\n }\n return designs;\n};\n\nfunction getDesignsWithChangedBg(designs, color) {\n const newDesigns = {...designs};\n for (const key in newDesigns) {\n if (newDesigns.hasOwnProperty(key)) {\n const design = newDesigns[key].design;\n design.background = color;\n }\n }\n return newDesigns;\n}\n\nfunction getDesignsWithChangedFill(designs, fillColor, pathNumber) {\n const newDesigns = {...designs};\n for (const key in newDesigns) {\n if (newDesigns.hasOwnProperty(key)) {\n const {design} = newDesigns[key];\n if (design.objects) {\n const staticObjects = design.objects.filter((o) => o.static);\n if (staticObjects.length) {\n if (staticObjects[0].objects) {\n staticObjects[0].objects[pathNumber].fill = fillColor;\n } else {\n staticObjects[0].fill = fillColor;\n }\n }\n }\n }\n }\n return newDesigns;\n}\n","import {\n APPLY_CONDITION_TO_SIDES,\n START,\n SUCCESS,\n FAIL\n} from \"../constants/action-types\";\n\nexport default (sides = {}, action) => {\n const {type, payload, error} = action;\n switch (type) {\n case APPLY_CONDITION_TO_SIDES + START:\n return {...sides, loading: true, loaded: false};\n case APPLY_CONDITION_TO_SIDES + SUCCESS:\n return {...sides, assets: payload.assets, loading: false, loaded: true};\n case APPLY_CONDITION_TO_SIDES + FAIL:\n return {...sides, error, loading: false, loaded: true};\n }\n return sides;\n};\n","import {\n GET_REALISM,\n START,\n TICK,\n FAIL,\n SUCCESS\n} from \"../constants/action-types\";\n\nexport default (realism = {}, action) => {\n const {type, response, error} = action;\n switch (type) {\n case GET_REALISM + START:\n return {progress: 0, loading: true, loaded: false};\n case GET_REALISM + TICK:\n return {...response, loading: true, loaded: false};\n case GET_REALISM + SUCCESS:\n return {\n ...response,\n loading: false,\n loaded: true\n };\n case GET_REALISM + FAIL:\n return {...realism, error, loading: false, loaded: true};\n }\n return realism;\n};\n","import {\n ADD_MESSAGE,\n UPLOAD_IMAGE,\n FAIL,\n ADD_PICTURE_TO_CANVAS,\n START,\n TICK,\n GET_REALISM,\n SAVE_DESIGN,\n GET_THREE_D_VIEWER,\n RESTORE_DESIGN,\n APPLY_VISIONHUB_FILTER\n} from \"../constants/action-types\";\nimport {SUCCESS} from \"../../../constants\";\n\nexport default (message = {}, action) => {\n const {type, payload} = action;\n\n switch (type) {\n case ADD_MESSAGE:\n return {[payload.type]: payload.text};\n\n case APPLY_VISIONHUB_FILTER + START:\n return {info: `Пожалуйста подождите, изображение обрабатывается`};\n case APPLY_VISIONHUB_FILTER + FAIL:\n return {error: `Произошла ошибка при обработке изображения`};\n\n case UPLOAD_IMAGE + START:\n return {info: `Пожалуйста подождите, загружается изображение...`};\n case UPLOAD_IMAGE + TICK:\n return {\n info: `Пожалуйста подождите, загружается изображение ${Math.round(\n payload.progress\n )}%`\n };\n case UPLOAD_IMAGE + SUCCESS:\n return {success: `Изображение успешно загружено`};\n case UPLOAD_IMAGE + FAIL:\n return {error: `Произошла ошибка при загрузке`};\n\n case ADD_PICTURE_TO_CANVAS + START:\n return {info: `Пожалуйста подождите, добавляем изображение...`};\n case ADD_PICTURE_TO_CANVAS + SUCCESS:\n return {success: `Изображение успешно добавлено`};\n case ADD_PICTURE_TO_CANVAS + FAIL:\n return {error: `Произошла ошибка при добавлении`};\n\n case GET_REALISM + START:\n return {info: `Получение реализма...`};\n case GET_REALISM + SUCCESS:\n return {success: `Успешно`};\n case GET_REALISM + FAIL:\n return {error: `Произошла ошибка при получении реализма`};\n\n case SAVE_DESIGN + START:\n return {info: `Cохранение...`};\n case SAVE_DESIGN + SUCCESS:\n return {success: `Успешно сохранено`};\n case SAVE_DESIGN + FAIL:\n return {\n error: `Произошла ошибка при сохранении, попробуйте обновить страницу`\n };\n\n case GET_THREE_D_VIEWER + START:\n return {info: `Подготавливаем 3D модель...`};\n case GET_THREE_D_VIEWER + SUCCESS:\n return {success: `Успешно`};\n case GET_THREE_D_VIEWER + FAIL:\n return {error: `Произошла ошибка при подготовке 3D модели`};\n\n case RESTORE_DESIGN:\n return {success: `Мы восстановили ваш дизайн`};\n }\n\n return message;\n};\n","import {ADD_IMAGE, SUCCESS, REMOVE_IMAGE} from \"../constants/action-types\";\n\nexport default (pictures = {}, action) => {\n const {type, response, payload} = action;\n switch (type) {\n case ADD_IMAGE + SUCCESS:\n return {\n ...pictures,\n images: [\n {\n id: response.id,\n type: response.picture_content_type,\n original: response.canvas_url,\n originalWidth: response.original_width,\n originalHeight: response.original_height,\n preview: response.small_url\n },\n ...pictures.images\n ]\n };\n case REMOVE_IMAGE + SUCCESS:\n return {\n ...pictures,\n images: pictures.images.filter((image) => image.id !== payload.id)\n };\n }\n return pictures;\n};\n","import {\n UPLOAD_IMAGE,\n START,\n SUCCESS,\n TICK,\n FAIL,\n CHANGE_SOURCE_UPLOADER,\n THIRD_PARTY_SEARCH,\n INCREMENT_THIRD_PARTY_SEARCH_PAGE,\n TOGGLE_MODAL,\n SET_THIRD_PARTY_SEARCH_QUERY\n} from \"../constants/action-types\";\n\nexport default (\n uploader = {\n query: ``,\n page: 0,\n loading: false,\n loaded: false\n },\n action\n) => {\n const {type, payload, error} = action;\n switch (type) {\n case UPLOAD_IMAGE + START:\n return {...uploader, loading: true, loaded: false};\n case UPLOAD_IMAGE + TICK:\n return {...uploader, progress: payload.progress};\n case UPLOAD_IMAGE + SUCCESS:\n return {...uploader, loading: false, loaded: true};\n case UPLOAD_IMAGE + FAIL:\n return {...uploader, error, loading: false, loaded: false};\n\n case CHANGE_SOURCE_UPLOADER:\n return {...uploader, source: payload.source};\n case TOGGLE_MODAL:\n return {...uploader, source: `local`};\n\n case THIRD_PARTY_SEARCH + START:\n return {\n ...uploader,\n loading: true,\n loaded: false\n };\n case THIRD_PARTY_SEARCH + SUCCESS:\n return {\n ...uploader,\n loading: false,\n loaded: true,\n data: [...uploader.data, payload.data]\n };\n case THIRD_PARTY_SEARCH + FAIL:\n return {\n ...uploader,\n loading: false,\n loaded: true\n };\n case SET_THIRD_PARTY_SEARCH_QUERY:\n return {\n ...uploader,\n query: payload.query,\n data: [],\n page: 0\n };\n case INCREMENT_THIRD_PARTY_SEARCH_PAGE:\n return {\n ...uploader,\n page: uploader.page + 1\n };\n }\n return uploader;\n};\n","export default (authenticityToken = ``) => {\n return authenticityToken;\n};\n","import {TOGGLE_MODAL, CLOSE_ALL_MODALS} from \"../constants/action-types\";\n\nexport default (\n modals = {\n realism: false,\n pictures: false,\n threeDPreview: false\n },\n action\n) => {\n const {type, payload} = action;\n\n switch (type) {\n case TOGGLE_MODAL:\n return {...modals, [payload.modal]: !modals[payload.modal]};\n\n case CLOSE_ALL_MODALS:\n return Object.keys(modals).reduce((acc, key) => {\n return {...acc, [key]: false};\n }, {});\n }\n\n return modals;\n};\n","import {UPDATE_UNDO_REDO, UNDO, REDO} from \"../constants/action-types\";\n\nexport default (\n undoRedo = {\n canUndo: false,\n canRedo: false\n },\n action\n) => {\n const {type, payload} = action;\n\n switch (type) {\n case UPDATE_UNDO_REDO:\n return {...undoRedo, ...payload};\n\n case UNDO:\n return {...undoRedo, ...payload};\n\n case REDO:\n return {...undoRedo, ...payload};\n }\n\n return undoRedo;\n};\n","export default (crops = []) => {\n return crops;\n};\n","import {TOGGLE_PRODUCTS} from \"../constants/action-types\";\n\nexport default (isShownProducts = false, action) => {\n const {type, payload} = action;\n switch (type) {\n case TOGGLE_PRODUCTS:\n return payload;\n }\n return isShownProducts;\n};\n","import {SET_FOR_ALL_SIDES} from \"../constants/action-types\";\n\nexport default (forAllSides = false, action) => {\n const {type, payload} = action;\n\n switch (type) {\n case SET_FOR_ALL_SIDES:\n return payload;\n }\n return forAllSides;\n};\n","export default (isPichshop = false) => {\n return isPichshop;\n};\n","export default (figures = []) => {\n return figures;\n};\n","export default (emoji = {}) => {\n return emoji;\n};\n","export default (cliparts = {}) => {\n return cliparts;\n};\n","export default (lettering = {}) => {\n return lettering;\n};\n","export default (initialVariants = {}) => {\n return initialVariants;\n};\n","export default (user = {name: null}) => {\n return user;\n};\n","import {APPLY_VISIONHUB_FILTER, START} from \"../constants/action-types\";\nimport {FAIL, SUCCESS} from \"../../../constants\";\n\nexport default function visionHubState(state = false, {type}) {\n switch (type) {\n case APPLY_VISIONHUB_FILTER + START:\n return true;\n case APPLY_VISIONHUB_FILTER + FAIL:\n return false;\n case APPLY_VISIONHUB_FILTER + SUCCESS:\n return false;\n default:\n return state;\n }\n}\n","export default (onPlatform = ``) => {\n return onPlatform;\n};\n","export default (shutterStockEnabled = false) => {\n return shutterStockEnabled;\n};\n","export default (mobileApp = false) => {\n return mobileApp;\n};\n","import {OPEN_DRAW_CONTROL_POPUP, CLOSE_DRAW_CONTROL_POPUP} from \"../constants/action-types\";\n\nexport default (state = '', action) => {\n const {type, payload} = action\n\n switch (type) {\n case OPEN_DRAW_CONTROL_POPUP:\n return payload\n case CLOSE_DRAW_CONTROL_POPUP:\n return ''\n }\n\n return state\n}","import {createSlice} from '@reduxjs/toolkit'\n\nconst selectionModeSlice = createSlice({\n name: 'selectionMode',\n initialState: false,\n reducers: {\n setMode(_, {payload}) {\n return payload\n }\n }\n})\n\nexport const selectionModeSelect = (state) => state.selectionMode\n\nexport const {setMode} = selectionModeSlice.actions\n\nexport default selectionModeSlice.reducer","import {createStore, applyMiddleware, compose} from \"redux\";\nimport createRootReducer from \"../reducer\";\nimport {routerMiddleware} from \"connected-react-router\";\nimport api from \"../../../middlewares/api\";\nimport thunk from \"redux-thunk\";\nimport history from \"../../common/Router/history\";\n\nconst IS_BROWSER = typeof window === `object`;\nconst IS_DEV = IS_BROWSER ? window.location.hostname === `lvh.me` : false;\n\nconst composeEnhancers =\n IS_BROWSER && IS_DEV && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\n ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\n // Specify extension’s options like name, actionsBlacklist, actionsCreators, serialize...\n })\n : compose;\n\nconst middlewares = [\n thunk,\n api,\n IS_BROWSER\n ? routerMiddleware(history)\n : () => (next) => (action) => {\n next(action);\n }\n];\n\nconst enhancer = composeEnhancers(applyMiddleware.apply(this, middlewares));\n\nconst createStoreForSSR = (initialStore) =>\n createStore(createRootReducer(history), initialStore, enhancer);\n\nexport default createStoreForSSR;\n","import {combineReducers} from \"redux\";\nimport {connectRouter} from \"connected-react-router\";\nimport path from \"./path\";\nimport product from \"./product\";\nimport condition from \"./condition\";\nimport designs from \"./designs\";\nimport sides from \"./sides\";\nimport realism from \"./realism\";\nimport message from \"./message\";\nimport pictures from \"./pictures\";\nimport uploader from \"./uploader\";\nimport authenticityToken from \"./authenticity-token\";\nimport modals from \"./modals\";\nimport undoRedo from \"./undo-redo\";\nimport crops from \"./crops\";\nimport isShownProducts from \"./is-shown-products\";\nimport forAllSides from \"./for-all-sides\";\nimport isPichshop from \"./is-pichshop\";\nimport figures from \"./figures\";\nimport emoji from \"./emoji\";\nimport cliparts from \"./cliparts\";\nimport letterings from \"./letterings\";\nimport initialVariants from \"./initial-variants\";\nimport user from \"./user\";\nimport visionHubState from \"./visionhub-state\";\nimport onPlatform from \"./onPlatform\";\nimport shutterStockEnabled from \"./shutter-stock-enabled\";\nimport mobileApp from \"./mobile-app\";\nimport drawControlPopup from \"./drawControlPopup\";\nimport selectionMode from \"./selectionMode\";\n\nconst createRootReducer = (history) =>\n combineReducers({\n router: connectRouter(history),\n path,\n authenticityToken,\n product,\n condition,\n designs,\n sides,\n realism,\n message,\n pictures,\n uploader,\n modals,\n undoRedo,\n crops,\n isShownProducts,\n forAllSides,\n isPichshop,\n figures,\n emoji,\n cliparts,\n letterings,\n initialVariants,\n user,\n visionHubState,\n onPlatform,\n shutterStockEnabled,\n mobileApp,\n drawControlPopup,\n currency: (state = {}) => state,\n selectionMode,\n isMobile: (state = false) => state,\n });\n\nexport default createRootReducer;\n","import React, {Component} from \"react\";\nimport Error from \"../../common/Error\";\n\nexport default (WrappedComponent) =>\n class ErrorBoundary extends Component {\n state = {error: null, errorInfo: null};\n componentDidCatch = (error, errorInfo) => catchFunc(error, errorInfo, this);\n render() {\n if (this.state.errorInfo) {\n return ;\n }\n return ;\n }\n };\n\nconst catchFunc = (error, errorInfo, ctx) => {\n ctx.setState({\n error,\n errorInfo\n });\n};\n","import React, {Component} from \"react\";\nimport MobileCtx from \"../../../contexts/MobileCtx\";\n\nexport default (OriginalComponent) =>\n class MobileContextComponent extends Component {\n render() {\n return (\n \n {(isMobile) => (\n \n )}\n \n );\n }\n };\n","import {createSelector} from \"reselect\";\n\nexport const conditionSelector = (state) => state.condition;\n\nexport const productMapSelector = (state) => state.product;\nexport const productSelector = createSelector(\n productMapSelector,\n (product) => product\n);\n\nexport const designsSelector = (state) => state.designs;\n\nexport const sidesSelector = (state) => state.sides;\n\nexport const pathSelector = (state) => state.path;\nexport const variantsSelector = (state) => state.condition.variants;\nexport const realismSelector = (state) => state.realism;\nexport const messageSelector = (state) => state.message;\nexport const picturesSelector = (state) => state.pictures;\nexport const uploaderSelector = (state) => state.uploader;\n\nexport const modalsMapSelector = (state) => state.modals;\nexport const modalSelector = (state, modal) => state.modals[modal];\n\nexport const undoRedoSelector = (state) => state.undoRedo;\n\nexport const isShownProductsSelector = (state) => state.isShownProducts;\n\nexport const cropsSelector = (state) => state.crops;\n\nexport const forAllSidesSelector = (state) => state.forAllSides;\n\nexport const isPichshopSelector = (state) => state.isPichshop;\n\nexport const figuresSelector = (state) => state.figures;\nexport const emojiSelector = (state) => state.emoji;\n\nexport const clipartsSelector = (state) => state.cliparts;\n\nexport const letteringsSelector = (state) => state.letterings;\n\nexport const initialVariantsSelector = (state) => state.initialVariants;\n\nexport const userSelector = (state) => state.user;\n\nexport const visionHubStateSelector = (state) => state.visionHubState;\n\nexport const onPlatformSelector = (state) => state.onPlatform;\n\nexport const shutterStockEnabledSelector = (state) => state.shutterStockEnabled;\n\nexport const mobileAppSelector = (state) => state.mobileApp;\n\nexport const drawControlPopupSelector = (state) => state.drawControlPopup;\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {NavLink, withRouter} from \"react-router-dom\";\n\nclass Children extends PureComponent {\n static propTypes = {\n items: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n path: PropTypes.string,\n assetURL: PropTypes.string\n })\n ),\n activeItem: PropTypes.object,\n changeProduct: PropTypes.func,\n isMobile: PropTypes.bool,\n minimized: PropTypes.bool\n };\n isActive = (item) => item.product === this.props.activeItem.productName;\n render() {\n const {items, changeProduct, activeItem, minimized} = this.props;\n return (\n !!items &&\n items.map((item) => (\n \n {!minimized && (\n \n {item.title}\n\n \n )}\n \n {item.title}\n \n \n ))\n );\n }\n}\n\nexport default withRouter(Children);\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport Children from \"./Children\";\n\nclass Department extends PureComponent {\n static propTypes = {\n department: PropTypes.object,\n activeItem: PropTypes.object,\n active: PropTypes.bool,\n changeDepartment: PropTypes.func,\n isMobile: PropTypes.bool,\n changeProduct: PropTypes.func,\n minimized: PropTypes.bool\n };\n\n render() {\n const {\n department,\n changeDepartment,\n active,\n activeItem,\n isMobile,\n changeProduct,\n minimized\n } = this.props;\n return (\n \n
{department.title}
\n {isMobile && (\n
\n \n
\n )}\n \n );\n }\n}\n\nexport default Department;\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\n\nexport default class HorizontalScroll extends Component {\n static propTypes = {\n children: PropTypes.element,\n withArrows: PropTypes.bool,\n onScroll: PropTypes.func\n };\n state = {\n scrollLeft: 0,\n isVisibleScroll: true\n };\n static defaultProps = {\n withArrows: true,\n onScroll: () => {}\n };\n scrollWrapper = React.createRef();\n wheel = (e) => {\n const delta =\n Math.abs(e.wheelDeltaY) > Math.abs(e.wheelDeltaX)\n ? e.wheelDeltaY\n : e.wheelDeltaX;\n e.currentTarget.scrollLeft -= delta / 2;\n this.setState({\n scrollLeft: e.currentTarget.scrollLeft\n });\n this.props.onScroll();\n e.preventDefault();\n };\n changeScrollLeft = (direction) => () => {\n const scrollLeft = this.scrollWrapper.current.scrollLeft + direction * 1170; // 1 item = 130\n this.setState({\n scrollLeft\n });\n this.scrollWrapper.current.scrollLeft = scrollLeft;\n };\n componentDidMount() {\n if (this.scrollWrapper.current) {\n this.scrollWrapper.current.addEventListener(`mousewheel`, this.wheel);\n this.scrollWrapper.current.addEventListener(`DOMMouseScroll`, this.wheel);\n }\n }\n componentDidUpdate() {\n const isVisibleScroll = this.checkScroll();\n if (this.state.isVisibleScroll !== isVisibleScroll) {\n this.setState({\n isVisibleScroll\n });\n }\n }\n componentWillUnmount() {\n this.scrollWrapper.current.removeEventListener(`mousewheel`, this.wheel);\n this.scrollWrapper.current.removeEventListener(\n `DOMMouseScroll`,\n this.wheel\n );\n }\n checkScroll() {\n let result = true;\n if (\n this.scrollWrapper.current.scrollLeft === 0 &&\n this.scrollWrapper.current.scrollTo\n ) {\n this.scrollWrapper.current.scrollTo(1, 0);\n result = this.scrollWrapper.current.scrollLeft;\n this.scrollWrapper.current.scrollTo(0, 0);\n }\n return !!result;\n }\n render() {\n const {children, withArrows} = this.props;\n const {isVisibleScroll} = this.state;\n return (\n
\n {isVisibleScroll && withArrows && (\n \n )}\n
{children}
\n {isVisibleScroll && withArrows && (\n \n )}\n
\n );\n }\n}\n","import React from \"react\";\n\nconst products = [];\nexport default React.createContext(products);\n","import React, {Component} from \"react\";\nimport ProductsCtx from \"../contexts/ProductsCtx\";\n\nexport default (OriginalComponent) =>\n class ColorHexMapContextComponent extends Component {\n render() {\n return (\n \n {(products) => (\n \n )}\n \n );\n }\n };\n","import {TOGGLE_PRODUCTS} from \"../constants/action-types\";\n\nexport const toggleProducts = (value) => ({\n type: TOGGLE_PRODUCTS,\n payload: value\n});\n","class ChangeProductCommand {\n constructor(prevProduct, product, controller) {\n this.prevProduct = prevProduct;\n this.product = product;\n this.controller = controller;\n }\n execute() {\n this.controller.changeProduct(this.product, true /* silent */)(\n this.controller.dispatch,\n this.controller.getState\n );\n }\n undo() {\n this.controller.changeProduct(this.prevProduct, true /* silent */)(\n this.controller.dispatch,\n this.controller.getState\n );\n }\n}\n\nexport default ChangeProductCommand;\n","import {\n APPLY_CONDITION_TO_CANVAS,\n START,\n SUCCESS,\n FAIL\n} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\n\nexport const applyConditionToCanvas = (prevCondition) => {\n return (dispatch, getState) => {\n dispatch({\n type: APPLY_CONDITION_TO_CANVAS + START\n });\n (async () => {\n try {\n const {condition} = getState();\n await Mediator.applyConditionToCanvas(condition, prevCondition);\n dispatch({\n type: APPLY_CONDITION_TO_CANVAS + SUCCESS\n });\n } catch (e) {\n dispatch({\n type: APPLY_CONDITION_TO_CANVAS + FAIL,\n error: `Произошла ошибка при загрузке товара`\n });\n throw e;\n }\n })();\n };\n};\n","import {TOGGLE_STATIC_OBJECTS} from \"../constants/action-types\";\nimport productSettings from \"../services/product-settings\";\nimport Mediator from \"../services/Mediator\";\nimport {applyConditionToCanvas} from \"./apply-condition-to-canvas\";\n\nconst getSideIndex = (metaDesigns, side) => {\n return metaDesigns.reduce(\n (acc, item, i) => (item.side === side ? i : acc),\n 0\n );\n};\n\nconst getDesignsWithoutStaticObjects = (designs) => {\n return Object.values(designs).reduce((acc, item, index) => {\n const {design} = item;\n const objectsWithoutStatic = design.objects.filter((o) => !o.static);\n return {\n ...acc,\n [index]: {\n ...item,\n design: {\n ...design,\n objects: objectsWithoutStatic\n }\n }\n };\n }, {});\n};\nconst getDesignsWithStaticObjects = async (\n designs,\n objectToLoad,\n metaDesigns\n) => {\n const promisesForStaticObjects = [];\n const modifingDesings = {};\n for (let objectKey in objectToLoad) {\n if (objectToLoad.hasOwnProperty(objectKey)) {\n const sideIndex = getSideIndex(metaDesigns, objectKey);\n const {path, ...options} = objectToLoad[objectKey];\n modifingDesings[sideIndex] = designs[sideIndex];\n promisesForStaticObjects.push(\n Mediator.loadSVGFromURL(path, {\n ...options,\n hasBorders: false,\n hasControls: false,\n selectable: false,\n evented: false,\n static: true\n })\n );\n }\n }\n const staticObjects = await Promise.all(promisesForStaticObjects);\n const modifiedDesigns = {};\n let i = 0;\n for (const modifingDesingsKey in modifingDesings) {\n if (modifingDesings.hasOwnProperty(modifingDesingsKey)) {\n const element = modifingDesings[modifingDesingsKey];\n const staticObject = staticObjects[i].toObject([\n `selectable`,\n `hasControls`,\n `hasBorders`,\n `static`,\n `evented`\n ]);\n\n modifiedDesigns[modifingDesingsKey] = element;\n modifiedDesigns[modifingDesingsKey].design.objects.push(staticObject);\n i++;\n }\n }\n return {\n ...designs,\n ...modifiedDesigns\n };\n};\n\nconst getDesigns = (getState) => {\n const {\n condition: {product},\n designs,\n product: {\n meta: {designs: metaDesigns}\n }\n } = getState();\n const settings = productSettings[product];\n const designsWithoutStaticObjects = getDesignsWithoutStaticObjects(designs);\n if (settings && settings.objectToLoad) {\n return getDesignsWithStaticObjects(\n designsWithoutStaticObjects,\n settings.objectToLoad,\n metaDesigns\n );\n } else {\n return designsWithoutStaticObjects;\n }\n};\n\nexport const toggleStaticObjects = (prevCondition) => async (\n dispatch,\n getState\n) => {\n try {\n const designsWithInitialStaticObjects = await getDesigns(getState);\n dispatch({\n type: TOGGLE_STATIC_OBJECTS,\n payload: {\n designs: designsWithInitialStaticObjects\n }\n });\n dispatch(applyConditionToCanvas(prevCondition));\n } catch (err) {\n throw err;\n }\n};\n","import React, {PureComponent} from \"react\";\nimport {connect} from \"react-redux\";\nimport {push} from \"connected-react-router\";\nimport PropTypes from \"prop-types\";\nimport Department from \"./Department\";\nimport Children from \"./Children\";\nimport HorizontalScroll from \"../HorizontalScroll\";\nimport withErrorBoundary from \"../../decorators/withErrorBoundary\";\nimport withMobileContext from \"../../decorators/withMobileContext\";\nimport withProductsContext from \"../../decorators/withProductsContext\";\nimport {productSelector, conditionSelector} from \"../../selectors\";\nimport {toggleProducts} from \"../../AC/toggle-products\";\nimport {changeProduct} from \"../../AC/change-product\";\n\nclass Products extends PureComponent {\n static propTypes = {\n isMobile: PropTypes.bool,\n products: PropTypes.array,\n product: PropTypes.object,\n condition: PropTypes.object,\n changeProduct: PropTypes.func,\n toggleProducts: PropTypes.func,\n push: PropTypes.func\n };\n\n state = {\n activeDepartment: this.getActiveDepartment(),\n };\n\n changeProduct = (productName) => {\n return (e) => {\n e.preventDefault();\n const url = e.currentTarget.attributes.href.value;\n this.props.changeProduct(productName);\n this.props.push(url);\n if (this.props.isMobile) {\n this.props.toggleProducts(false);\n }\n };\n };\n\n changeDepartment = (department) => {\n return () => {\n this.setState({\n activeDepartment: department\n });\n };\n };\n\n getActiveDepartment() {\n return this.props.products.reduce((acc, department) => {\n return {...acc, ...this.hasActiveItem(department)};\n }, {});\n }\n\n hasActiveItem(department) {\n return department.children.filter(\n (i) => i.product === this.props.condition.product\n ).length\n ? department\n : ``;\n }\n\n render() {\n const {products, isMobile, condition, product} = this.props;\n const activeItem = {\n productName: condition.product,\n id: product.id,\n rawParentId: product.raw_parent_id\n };\n const {activeDepartment} = this.state;\n return (\n \n {isMobile ? (\n products &&\n products.map((department) => {\n return (\n \n );\n })\n ) : (\n \n
\n {products.map((department) => {\n return (\n \n );\n })}\n
\n
\n \n \n \n
\n
\n )}\n \n );\n }\n}\n\nexport default connect(\n (state) => ({\n product: productSelector(state),\n condition: conditionSelector(state)\n }),\n {\n push,\n toggleProducts,\n changeProduct\n }\n)(withErrorBoundary(withMobileContext(withProductsContext(Products))));\n","import {CHANGE_PRODUCT, START, SUCCESS, FAIL} from \"../constants/action-types\";\nimport {API_PRODUCT_INFO} from \"../constants/api\";\nimport Mediator from \"../services/Mediator\";\nimport ChangeProductCommand from \"../services/lib/undo-redo/change-product-command\";\nimport trackEvent from \"../../../utils/track-event\";\nimport {toggleStaticObjects} from \"./toggle-static-objects\";\n\nexport const changeProduct = (productName, silent) => (dispatch, getState) => {\n const {\n condition,\n designs,\n product,\n product: {\n id,\n meta: {pluralized_product: prevProductName}\n }\n } = getState();\n const callAPI = `${API_PRODUCT_INFO}/${productName}/new${\n id || product.raw_parent_id\n ? `?product_id=${id || product.raw_parent_id}`\n : ``\n }`;\n const sideIndex = product.meta.designs.reduce(\n (acc, item, i) => (item.side === product.meta.default_side ? i : acc),\n 0\n );\n if (!silent) {\n Mediator.history.add(\n new ChangeProductCommand(prevProductName, productName, {\n changeProduct,\n dispatch,\n getState\n })\n );\n }\n dispatch({\n type: CHANGE_PRODUCT + START\n });\n return fetch(callAPI, {\n headers: {\n \"Accept\": `application/json`,\n \"Content-Type\": `application/json`\n },\n credentials: `same-origin`\n })\n .then((res) => {\n if (res.status >= 400) {\n throw new Error(`Error`);\n }\n return res.json();\n })\n .then((response) => {\n dispatch({\n type: CHANGE_PRODUCT + SUCCESS,\n response,\n payload: {\n prev: {\n condition,\n sideIndex\n },\n next: {\n design: designs[sideIndex].design\n }\n }\n });\n dispatch(toggleStaticObjects(condition));\n trackEvent({\n category: `Editor`,\n action: `Switch product`\n });\n })\n .catch((error) =>\n dispatch({\n type: CHANGE_PRODUCT + FAIL,\n error,\n payload: {\n prev: {\n condition,\n sideIndex\n },\n next: {\n design: designs[sideIndex].design\n }\n }\n })\n );\n};\n","import axios from 'axios'\nimport {push} from \"connected-react-router\";\nimport {API_PRODUCT_INFO} from \"../constants/api\";\nimport {START, SAVE_DESIGN, SUCCESS, FAIL} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\nimport trackEvent from \"../../../utils/track-event\";\nimport {\n saveDesignToLocalStorage,\n clearDesignFromLocalStorage\n} from \"../services/lib/save-design\";\n\nexport const getURLforPushInHistory = ({product: {closeup}}) => {\n return `${closeup}/edit_v2`;\n};\n\nconst getDataForSavingFromState = (state) => {\n const {product, condition, designs} = state;\n /* eslint-disable camelcase */\n const body = {\n authenticity_token: state.authenticityToken,\n [product.meta.product]: {\n ...product.meta.designs.reduce((acc, design, i) => {\n if (designs[i]) {\n return {\n ...acc,\n [`${design.side}_design_canvas_data`]: JSON.stringify(\n designs[i].design\n )\n };\n }\n return acc;\n }, {}),\n ...Object.keys(condition.variants).reduce((acc, variantKey) => {\n return {\n ...acc,\n [`${\n variantKey === `color` ? `default_${variantKey}` : variantKey\n }`]: condition.variants[variantKey]\n };\n }, {}),\n product_attributes: {\n id: product.id,\n psignature: product.psignature,\n raw_parent_id: product.raw_parent_id\n }\n }\n };\n return JSON.stringify(body);\n /* eslint-enable camelcase */\n};\n\nconst getURLforCallAPI = ({\n product: {\n id,\n closeup,\n meta: {pluralized_product: name}\n },\n mobileApp\n}) =>\n `${mobileApp ? `/mobile` : API_PRODUCT_INFO}/${name}${\n id ? `/${closeup.split(`/`).slice(-1)[0]}` : ``\n }`;\n\nexport const saveDesignRequest = (dispatch, getState) => {\n const {\n product: {\n id,\n meta: {product}\n },\n designs,\n mobileApp\n } = getState();\n dispatch({\n type: SAVE_DESIGN + START\n });\n\n const authHeader = mobileApp ? window.authHeaders : {};\n\n return axios({\n url: getURLforCallAPI(getState()),\n method: id ? `PATCH` : `POST`,\n headers: {\n \"Accept\": `application/json`,\n \"Content-Type\": `application/json`,\n ...authHeader\n },\n data: getDataForSavingFromState(getState())\n })\n .then(({ data, status, statusText }) => {\n if (status >= 400) {\n throw new Error(statusText);\n }\n\n // change url\n if (data.product.id) {\n dispatch({\n type: SAVE_DESIGN + SUCCESS,\n response: data\n });\n Mediator.isDesignSaved = true;\n Mediator.exitTextEditing(data.condition.design);\n\n if (/edit_v2/.test(window.location.href) === false && !Mediator.isDesignSaved) {\n dispatch(push(getURLforPushInHistory(getState())));\n }\n\n clearDesignFromLocalStorage(product, id);\n trackEvent({\n category: `Editor`,\n action: `Save design`\n });\n return data;\n } else {\n throw new Error(`Ошибка сохранения`);\n }\n })\n .catch((error) => {\n dispatch({\n type: SAVE_DESIGN + FAIL,\n error\n });\n saveDesignToLocalStorage(product, id, designs);\n throw error;\n });\n};\n\nexport const saveDesign = () => {\n return (dispatch, getState) => {\n saveDesignRequest(dispatch, getState);\n };\n};\n","import {push} from \"connected-react-router\";\nimport {saveDesignRequest, getURLforPushInHistory} from \"./save-design\";\nimport {\n START,\n AUTO_SAVE_DESIGN,\n SUCCESS,\n FAIL\n} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\n\nlet timeoutId;\n\nexport const autoSaveDesign = () => {\n return (dispatch, getState) => {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n if (!Mediator.isDesignSaved) {\n dispatch({\n type: AUTO_SAVE_DESIGN + START\n });\n saveDesignRequest(dispatch, getState)\n .then((response) => {\n // change url\n if (response.product.id) {\n dispatch({\n type: AUTO_SAVE_DESIGN + SUCCESS,\n response\n });\n Mediator.isDesignSaved = true;\n dispatch(push(getURLforPushInHistory(getState())));\n } else {\n throw new Error(`Ошибка сохранения`);\n }\n })\n .catch((error) => {\n dispatch({\n type: AUTO_SAVE_DESIGN + FAIL,\n error\n });\n throw error;\n });\n }\n }, 10000);\n };\n};\n","export const saveDesignToLocalStorage = (product, id, designs) => {\n window.localStorage.setItem(\n `editor-designs-${product}-${id}`,\n JSON.stringify(designs)\n );\n};\n\nexport const clearDesignFromLocalStorage = (product, id) => {\n window.localStorage.removeItem(`editor-designs-${product}-null`);\n window.localStorage.removeItem(`editor-designs-${product}-${id}`);\n};\n\nexport const getDesignFromLocalStorage = (product, id) => {\n return JSON.parse(\n window.localStorage.getItem(`editor-designs-${product}-${id}`)\n );\n};\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport scaleByWindow from \"../../decorators/scaleByWindow\";\nimport contextMenuTrigger from \"../../decorators/contextMenuTrigger\";\nimport {CANVAS} from \"../../constants\";\n\nclass Canvas extends PureComponent {\n static propTypes = {\n background: PropTypes.string\n };\n render() {\n const {background} = this.props;\n return (\n \n \n \n \n );\n }\n}\n\nexport default contextMenuTrigger(\n scaleByWindow({width: CANVAS.WIDTH, height: CANVAS.HEIGHT})(Canvas)\n);\n","import React, {Component} from \"react\";\nimport Provider from \"pubsub-js\";\nimport {\n SELECTION_CREATED,\n BEFORE,\n SELECTION_CLEARED,\n OBJECT_MOVING,\n OBJECT_SCALING,\n OBJECT_ROTATING,\n OBJECT_MODIFIED,\n TOUCH_MOVE\n} from \"../constants/event-types\";\nimport {ContextMenuTrigger} from \"react-contextmenu\";\n\nexport default (OriginalComponent) =>\n class DecoratedComponent extends Component {\n state = {\n disableObjectContextMenu: true\n };\n componentDidMount() {\n Provider.subscribe(OBJECT_MOVING, this.changeStateContextMenu(true));\n Provider.subscribe(OBJECT_SCALING, this.changeStateContextMenu(true));\n Provider.subscribe(OBJECT_ROTATING, this.changeStateContextMenu(true));\n Provider.subscribe(OBJECT_MODIFIED, this.changeStateContextMenu(false));\n Provider.subscribe(SELECTION_CREATED, this.changeStateContextMenu(false));\n Provider.subscribe(SELECTION_CLEARED, this.changeStateContextMenu(true));\n Provider.subscribe(\n SELECTION_CREATED + BEFORE,\n this.changeStateContextMenu(false)\n );\n Provider.subscribe(\n SELECTION_CLEARED + BEFORE,\n this.changeStateContextMenu(true)\n );\n Provider.subscribe(TOUCH_MOVE, this.changeStateContextMenu(true));\n }\n componentWillUnmount() {\n Provider.unsubscribe(SELECTION_CREATED + BEFORE);\n Provider.unsubscribe(SELECTION_CLEARED + BEFORE);\n Provider.unsubscribe(OBJECT_SCALING);\n Provider.unsubscribe(OBJECT_MOVING);\n Provider.unsubscribe(OBJECT_ROTATING);\n Provider.unsubscribe(OBJECT_MODIFIED);\n Provider.unsubscribe(SELECTION_CREATED);\n Provider.unsubscribe(SELECTION_CLEARED);\n Provider.unsubscribe(TOUCH_MOVE);\n }\n changeStateContextMenu = (val) => () => {\n if (val !== this.state.disableObjectContextMenu) {\n this.setState({\n disableObjectContextMenu: val\n });\n }\n };\n render() {\n const {disableObjectContextMenu} = this.state;\n return (\n \n \n \n \n \n );\n }\n };\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport classNames from \"classnames\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport SnackbarContent from \"@material-ui/core/SnackbarContent\";\nimport ErrorIcon from \"@material-ui/icons/Error\";\nimport InfoIcon from \"@material-ui/icons/Info\";\nimport CheckCircleIcon from \"@material-ui/icons/CheckCircle\";\nimport WarningIcon from \"@material-ui/icons/Warning\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport {green, amber} from \"@material-ui/core/colors\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport withMobileContext from \"../../decorators/withMobileContext\";\n\nconst styles = (theme) => ({\n success: {\n backgroundColor: green[600]\n },\n error: {\n backgroundColor: theme.palette.error.dark\n },\n info: {\n backgroundColor: theme.palette.primary.dark\n },\n warning: {\n backgroundColor: amber[700]\n },\n icon: {\n fontSize: 20\n },\n iconVariant: {\n opacity: 0.9,\n marginRight: theme.spacing.unit\n },\n message: {\n display: `flex`,\n alignItems: `center`\n },\n messageText: {\n margin: `0 0 0 10px`\n },\n content: {\n flexWrap: `nowrap`\n }\n});\n\nclass Message extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n className: PropTypes.string,\n type: PropTypes.string,\n text: PropTypes.string,\n isMobile: PropTypes.bool\n };\n state = {\n isOpen: true\n };\n handleClose = () => {\n this.setState({\n isOpen: false\n });\n };\n render() {\n const {type, text, classes, className, isMobile} = this.props;\n return (\n
\n \n \n {this.getIconForMessage(type)}\n {text}\n \n }\n action={[\n \n \n \n ]}\n />\n \n
\n );\n }\n getIconForMessage(type) {\n switch (type) {\n case `error`:\n return ;\n case `info`:\n return ;\n case `warning`:\n return ;\n case `success`:\n return ;\n }\n return void 0;\n }\n}\n\nexport default withStyles(styles)(withMobileContext(Message));\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport Message from \"./Message\";\n\nfunction Messages(props) {\n const {message} = props;\n return (\n \n {message &&\n [`info`, `warning`, `error`, `success`].map((type) => {\n return (\n message[type] && (\n \n \n \n )\n );\n })}\n \n );\n}\n\nMessages.propTypes = {\n message: PropTypes.shape({\n info: PropTypes.string,\n warning: PropTypes.string,\n error: PropTypes.string\n })\n};\n\nexport default Messages;\n","import Mediator from \"../services/Mediator.js\";\n\nconst handlers = {\n onSelectAll() {\n Mediator.selectAllObjects();\n },\n onPaste() {\n Mediator.pasteCopiedObject();\n },\n onCopy() {\n Mediator.copyActiveObject();\n },\n onDelete() {\n Mediator.removeActive();\n },\n onDeleteOthers() {\n Mediator.removeAllExceptActive();\n },\n onClone() {\n Mediator.cloneActiveObject();\n },\n onFlipHorizontally() {\n Mediator.flipHorizontally();\n },\n onFlipVertically() {\n Mediator.flipVertically();\n },\n onStraighten() {\n Mediator.straightenActive();\n },\n onSendToBack() {\n Mediator.sendActiveToBack();\n },\n onSendToBackwards() {\n Mediator.sendActiveToBackwards();\n },\n onBringToFront() {\n Mediator.bringActiveToFront();\n },\n onBringToForward() {\n Mediator.bringActiveToForward();\n },\n onCenterVertically() {\n return () => {\n Mediator.centerActiveVertically();\n };\n },\n onCenterHorizontally() {\n return () => {\n Mediator.centerActiveHorizontally();\n };\n },\n onResizeActiveObjectToFill() {\n return () => {\n Mediator.resizeActiveObjectToFill();\n };\n },\n onRestoreRatio() {\n Mediator.restoreRatioOfActiveObject();\n }\n};\n\nexport const layerMenu = [\n {\n name: `Отразить по вертикали`,\n icon: `fas fa-chevron-up`,\n handleClick: handlers.onFlipVertically\n },\n {\n name: `Отразить по горизонтали`,\n icon: `fas fa-chevron-right`,\n handleClick: handlers.onFlipHorizontally\n },\n {\n name: `Выровнять угол`,\n icon: `fas fa-sync-alt`,\n handleClick: handlers.onStraighten\n },\n {\n name: `На один слой вниз`,\n icon: `fas fa-step-backward`,\n handleClick: handlers.onSendToBack,\n hotKey: `Ctrl+[`\n },\n {\n name: `На нижний слой`,\n icon: `fas fa-fast-backward`,\n handleClick: handlers.onSendToBackwards,\n hotKey: `Ctrl+Alt+[`\n },\n {\n name: `На один слой вверх`,\n icon: `fas fa-step-forward`,\n handleClick: handlers.onBringToFront,\n hotKey: `Ctrl+]`\n },\n {\n name: `На верхний слой`,\n icon: `fas fa-fast-forward`,\n handleClick: handlers.onBringToForward,\n hotKey: `Ctrl+Alt+]`\n },\n {\n name: `Центрировать по вертикали`,\n icon: `fas fa-arrows-alt-v`,\n handleClick: handlers.onCenterVertically()\n },\n {\n name: `Центрировать по горизонтали`,\n icon: `fas fa-arrows-alt-h`,\n handleClick: handlers.onCenterHorizontally()\n },\n {\n name: `Заполнить всю печатную область`,\n icon: `fas fa-expand`,\n handleClick: handlers.onResizeActiveObjectToFill()\n },\n {\n name: `Восстановить пропорции`,\n icon: `fas fa-percentage`,\n handleClick: handlers.onRestoreRatio\n }\n];\n\nexport const objectMenu = [\n {\n name: `Выделить все`,\n hotKey: `Ctrl+A`,\n handleClick: handlers.onSelectAll\n },\n {\n name: `Копировать`,\n icon: `far fa-copy`,\n hotKey: `Ctrl+C`,\n handleClick: handlers.onCopy\n },\n {\n name: `Вставить`,\n icon: `far fa-clipboard`,\n hotKey: `Ctrl+V`,\n handleClick: handlers.onPaste\n },\n {\n name: `Удалить`,\n icon: `far fa-trash-alt`,\n hotKey: `Delete, Backspace`,\n handleClick: handlers.onDelete\n },\n {\n name: `Отразить по вертикали`,\n icon: `fas fa-chevron-up`,\n handleClick: handlers.onFlipVertically\n },\n {\n name: `Отразить по горизонтали`,\n icon: `fas fa-chevron-right`,\n handleClick: handlers.onFlipHorizontally\n },\n {\n name: `Выровнять угол`,\n icon: `fas fa-sync-alt`,\n handleClick: handlers.onStraighten\n },\n {\n name: `На один слой вниз`,\n icon: `fas fa-step-backward`,\n handleClick: handlers.onSendToBack,\n hotKey: `Ctrl+[`\n },\n {\n name: `На нижний слой`,\n icon: `fas fa-fast-backward`,\n handleClick: handlers.onSendToBackwards,\n hotKey: `Ctrl+Alt+[`\n },\n {\n name: `На один слой вверх`,\n icon: `fas fa-step-forward`,\n handleClick: handlers.onBringToFront,\n hotKey: `Ctrl+]`\n },\n {\n name: `На верхний слой`,\n icon: `fas fa-fast-forward`,\n handleClick: handlers.onBringToForward,\n hotKey: `Ctrl+Alt+]`\n },\n {\n name: `Центрировать по вертикали`,\n icon: `fas fa-arrows-alt-v`,\n handleClick: handlers.onCenterVertically()\n },\n {\n name: `Центрировать по горизонтали`,\n icon: `fas fa-arrows-alt-h`,\n handleClick: handlers.onCenterHorizontally()\n },\n {\n name: `Заполнить всю печатную область`,\n icon: `fas fa-expand`,\n handleClick: handlers.onResizeActiveObjectToFill()\n }\n];\n\nexport const systemMenu = [\n {\n name: `Копировать`,\n icon: `copy`,\n hotKey: `Ctrl+C`,\n handleClick: handlers.onCopy\n },\n {\n name: `Вставить`,\n icon: `clipboard`,\n hotKey: `Ctrl+V`,\n handleClick: handlers.onPaste\n },\n {\n name: `Удалить`,\n icon: `trash`,\n hotKey: `Delete, Backspace`,\n handleClick: handlers.onDelete\n }\n];\n\nexport const menu = [\n {\n name: `Выделить все`,\n hotKey: `Ctrl+A`,\n handleClick: handlers.onSelectAll\n },\n {\n name: `Вставить`,\n icon: `far fa-clipboard`,\n hotKey: `Ctrl+V`,\n handleClick: handlers.onPaste\n }\n];\n","import React from \"react\";\nimport {ContextMenu, MenuItem} from \"react-contextmenu\";\nimport Provider from \"pubsub-js\";\nimport {objectMenu} from \"../../constants/edit-menu.js\";\nimport {HAS_COPIED_OBJECT} from \"../../constants/event-types\";\n\nclass ObjectCtxMenu extends React.Component {\n state = {\n hasCopiedObject: false\n };\n componentDidMount() {\n Provider.subscribe(HAS_COPIED_OBJECT, () => {\n this.setState({\n hasCopiedObject: true\n });\n });\n }\n componentWillUnmount() {\n Provider.unsubscribe(HAS_COPIED_OBJECT);\n }\n render() {\n return (\n \n {objectMenu.map((item) => {\n const {name, icon, handleClick, hotKey} = item;\n return (\n \n \n {icon && }\n {name}\n \n {hotKey && (\n {hotKey}\n )}\n \n );\n })}\n \n );\n }\n}\n\nexport default ObjectCtxMenu;\n","import React from \"react\";\nimport {ContextMenu, MenuItem} from \"react-contextmenu\";\nimport Provider from \"pubsub-js\";\nimport Mediator from \"../../services/Mediator\";\nimport {HAS_COPIED_OBJECT} from \"../../constants/event-types\";\n\nclass CtxMenu extends React.Component {\n state = {\n hasCopiedObject: false\n };\n componentDidMount() {\n Provider.subscribe(HAS_COPIED_OBJECT, () => {\n this.setState({\n hasCopiedObject: true\n });\n });\n }\n componentWillUnmount() {\n Provider.unsubscribe(HAS_COPIED_OBJECT);\n }\n render() {\n const items = [\n {\n name: `Выделить все`,\n hotKey: `Ctrl+A`,\n handleClick: handlers.onSelectAll\n },\n {\n name: `Вставить`,\n icon: `far fa-clipboard`,\n hotKey: `Ctrl+V`,\n disabled: !this.state.hasCopiedObject,\n handleClick: handlers.onPaste\n }\n ];\n return (\n \n {items.map((item) => {\n const {name, icon, handleClick, hotKey, disabled} = item;\n return (\n \n \n {icon && }\n {name}\n \n {hotKey && (\n {hotKey}\n )}\n \n );\n })}\n \n );\n }\n}\n\nconst handlers = {\n onPaste() {\n Mediator.pasteCopiedObject();\n },\n onSelectAll() {\n Mediator.selectAllObjects();\n }\n};\n\nexport default CtxMenu;\n","import React, {Component} from \"react\";\nimport {connect} from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport {saveDesign} from \"../../AC/save-design\";\nimport Mediator from \"../../services/Mediator\";\n\nexport class KeyObserver extends Component {\n static propTypes = {\n saveDesign: PropTypes.func\n };\n componentDidMount() {\n if (document) {\n document.addEventListener(`keypress`, this.onKeyDownPress);\n document.addEventListener(`keydown`, this.onKeyDownPress);\n }\n }\n componentWillUnmount() {\n if (document) {\n document.removeEventListener(`keypress`, this.onKeyDownPress);\n document.removeEventListener(`keydown`, this.onKeyDownPress);\n }\n }\n keyCodes = {\n ArrowRight: 39,\n ArrowLeft: 37,\n ArrowUp: 38,\n ArrowDown: 40,\n V: 86,\n v: 118,\n C: 67,\n c: 99,\n A: 65,\n a: 97,\n Z: 90,\n z: 122,\n S: 83,\n s: 115,\n Delete: 46,\n Backspace: 8,\n RightSquareBracket: 221,\n LeftSquareBracket: 219\n };\n onKeyDownPress = (e) => {\n const {key, metaKey, ctrlKey, shiftKey, altKey, keyCode, target} = e;\n if (key && target.tagName === `BODY`) {\n const delta = shiftKey ? 10 : 1;\n switch (keyCode) {\n case this.keyCodes[`ArrowRight`]:\n Mediator.moveActiveObjectTo(`right`, delta);\n e.preventDefault();\n break;\n case this.keyCodes[`ArrowLeft`]:\n Mediator.moveActiveObjectTo(`left`, delta);\n e.preventDefault();\n break;\n case this.keyCodes[`ArrowUp`]:\n Mediator.moveActiveObjectTo(`top`, delta);\n e.preventDefault();\n break;\n case this.keyCodes[`ArrowDown`]:\n Mediator.moveActiveObjectTo(`down`, delta);\n e.preventDefault();\n break;\n case this.keyCodes[`z`]:\n case this.keyCodes[`Z`]:\n if (metaKey || ctrlKey) {\n if (e.shiftKey) {\n Mediator.redo();\n } else {\n Mediator.undo();\n }\n }\n break;\n case this.keyCodes[`s`]:\n case this.keyCodes[`S`]:\n if (metaKey || ctrlKey) {\n e.preventDefault();\n this.props.saveDesign();\n }\n break;\n\n case this.keyCodes[`Delete`]:\n case this.keyCodes[`Backspace`]:\n Mediator.removeActive();\n break;\n\n case this.keyCodes[`c`]:\n case this.keyCodes[`C`]:\n if (metaKey || ctrlKey) {\n Mediator.copyActiveObject();\n }\n break;\n\n case this.keyCodes[`v`]:\n case this.keyCodes[`V`]:\n if (metaKey || ctrlKey) {\n Mediator.pasteCopiedObject();\n }\n break;\n\n case this.keyCodes[`a`]:\n case this.keyCodes[`A`]:\n if (metaKey || ctrlKey) {\n e.preventDefault();\n Mediator.selectAllObjects();\n }\n break;\n\n case this.keyCodes[`RightSquareBracket`]:\n e.preventDefault();\n if (altKey) {\n Mediator.bringActiveToFront();\n } else {\n Mediator.bringActiveToForward();\n }\n break;\n\n case this.keyCodes[`LeftSquareBracket`]:\n e.preventDefault();\n if (altKey) {\n Mediator.sendActiveToBack();\n } else {\n Mediator.sendActiveToBackwards();\n }\n break;\n }\n }\n };\n render() {\n return
;\n }\n}\n\nconst mapDispatchToProps = {\n saveDesign\n};\n\nexport default connect(null, mapDispatchToProps)(KeyObserver);\n","import React, {Component} from \"react\";\nimport Provider from \"pubsub-js\";\nimport {OBJECT_ROTATING, CANVAS_MODIFIED} from \"../../constants/event-types\";\n\nexport class AngleLabel extends Component {\n state = {\n angle: 0,\n left: 0,\n top: 0,\n isShow: false\n };\n\n componentDidMount() {\n Provider.subscribe(OBJECT_ROTATING, this.onObjectRotating);\n Provider.subscribe(CANVAS_MODIFIED, this.onCanvasModified);\n }\n componentWillUnmount() {\n Provider.unsubscribe(this.onObjectRotating);\n Provider.unsubscribe(this.onCanvasModified);\n }\n onObjectRotating = (_, memo) => {\n const {\n e: {x, y, touches},\n target: {angle}\n } = memo;\n\n const left = x ? x + 20 : touches[0].clientX + 20;\n const top = y ? y - 30 : touches[0].clientY - 30;\n this.setState({\n left,\n top,\n angle: Math.round(angle),\n isShow: true\n });\n };\n onCanvasModified = () => {\n this.setState({\n isShow: false\n });\n };\n\n render() {\n const {isShow, angle, left, top} = this.state;\n return isShow ? (\n \n {angle}°\n \n ) : null;\n }\n}\n\nexport default AngleLabel;\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport Provider from \"pubsub-js\";\nimport {CANVAS} from \"../../constants\";\nimport {\n APPLY_BACKGROUND,\n CANVAS_MODIFIED,\n SCALLED_UP_IMAGES\n} from \"../../constants/event-types\";\nimport {\n productSelector,\n conditionSelector,\n messageSelector\n} from \"../../selectors\";\nimport withMobileContext from \"../../decorators/withMobileContext\";\nimport {initCanvas as initCanvasAC} from \"../../AC/init-canvas\";\nimport {applyConditionToCanvas as applyConditionToCanvasAC} from \"../../AC/apply-condition-to-canvas\";\nimport {addMessage as addMessageAC} from \"../../AC/add-message\";\nimport {changeDesign} from \"../../AC/change-design\";\nimport {autoSaveDesign} from \"../../AC/auto-save-design\";\nimport Loader from \"../../../common/Loader\";\nimport Canvas from \"./Canvas\";\nimport Messages from \"./Messages\";\nimport ObjectContextMenu from \"./ObjectContextMenu\";\nimport ContextMenu from \"./ContextMenu\";\nimport KeyObserver from \"./KeyObserver\";\nimport AngleLabel from \"./AngleLabel\";\nimport Mediator from \"../../services/Mediator\";\nimport {selectionModeSelect} from \"../../reducer/selectionMode\";\n\nclass Product extends PureComponent {\n static propTypes = {\n id: PropTypes.string,\n width: PropTypes.string,\n height: PropTypes.string,\n product: PropTypes.shape({\n meta: PropTypes.object,\n loading: PropTypes.bool,\n loaded: PropTypes.bool\n }),\n message: PropTypes.shape({\n warning: PropTypes.string,\n info: PropTypes.string\n }),\n condition: PropTypes.object,\n initCanvas: PropTypes.func,\n applyConditionToCanvas: PropTypes.func,\n changeDesign: PropTypes.func,\n autoSaveDesign: PropTypes.func,\n addMessage: PropTypes.func,\n changeVariant: PropTypes.func,\n isMobile: PropTypes.bool\n };\n state = {\n background: ``,\n disableContextMenu: true,\n hasScaledUpImages: false\n };\n componentDidMount() {\n const {initCanvas, applyConditionToCanvas, isMobile} = this.props;\n const {ID: id, WIDTH: width, HEIGHT: height} = CANVAS;\n\n initCanvas({id, width, height, isMobile});\n applyConditionToCanvas();\n this.initListeners();\n this.touchStartHandler = this.touchStartHandler.bind(this)\n this.touchEndHandler = this.touchEndHandler.bind(this)\n }\n componentDidUpdate(prevProps) {\n const {condition: prevCondition} = prevProps;\n const {condition: nextCondition, applyConditionToCanvas} = this.props;\n if (\n prevCondition.product !== nextCondition.product ||\n JSON.stringify({\n ...prevCondition,\n design: ``\n }) ===\n JSON.stringify({\n ...nextCondition,\n design: ``\n })\n ) {\n return;\n }\n // apply condition only when changed variants and side\n applyConditionToCanvas(prevCondition);\n }\n componentWillUnmount() {\n Provider.clearAllSubscriptions();\n }\n initListeners() {\n Provider.subscribe(APPLY_BACKGROUND, (_, background) => {\n this.setState({\n background\n });\n });\n Provider.subscribe(CANVAS_MODIFIED, (_, newDesign) => {\n const {\n product: {\n meta: {designs}\n },\n condition: {side}\n } = this.props;\n const sideIndex = designs.reduce(\n (acc, item, i) => (item.side === side ? i : acc),\n 0\n );\n this.props.changeDesign(side, newDesign, sideIndex);\n });\n Provider.subscribe(\n SCALLED_UP_IMAGES,\n (_, {result: hasScaledUpImages, list}) => {\n const {addMessage} = this.props;\n const notJustShutterstock = list.find(\n (item) => item.fields && !item.fields.isShutterstockImage\n );\n if (\n !this.state.hasScaledUpImages &&\n hasScaledUpImages &&\n notJustShutterstock\n ) {\n addMessage(\n `warning`,\n `Превышен размер картинки (возможен размытый результат)`\n );\n this.setState({\n hasScaledUpImages\n });\n } else if (this.state.hasScaledUpImages && !hasScaledUpImages) {\n addMessage(`warning`, ``);\n this.setState({\n hasScaledUpImages\n });\n }\n }\n );\n }\n touchMoveScrollDisable(e) {\n e.preventDefault()\n }\n touchStartHandler(e) {\n if (!this.props.selectionMode) return\n\n const pointer = e.touches[0]\n const canvas = document.getElementById(CANVAS.ID)\n const {left, top} = canvas.getBoundingClientRect()\n const scaleFactor = window.innerWidth > CANVAS.WIDTH ? 1 : CANVAS.WIDTH / window.innerWidth\n\n Mediator.setSelectionMode(true)\n document.body.addEventListener('touchmove', this.touchMoveScrollDisable, {passive: false})\n\n Mediator.getCanvas()._groupSelector = {\n ex: (pointer.clientX - left) * scaleFactor,\n ey: (pointer.clientY - top) * scaleFactor,\n top: 0,\n left: 0\n }\n }\n touchEndHandler() {\n setTimeout(() => {\n Mediator.setSelectionMode(false)\n document.body.removeEventListener('touchmove', this.touchMoveScrollDisable)\n })\n }\n render() {\n const {\n message,\n product: {loading, loaded},\n isMobile\n } = this.props;\n const {background} = this.state;\n return (\n
\n \n \n {!isMobile && }\n {!isMobile && }\n \n \n {loading && !loaded && }\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n product: productSelector(state),\n condition: conditionSelector(state),\n message: messageSelector(state),\n selectionMode: selectionModeSelect(state),\n});\n\nexport default connect(mapStateToProps, {\n initCanvas: initCanvasAC,\n applyConditionToCanvas: applyConditionToCanvasAC,\n addMessage: addMessageAC,\n changeDesign,\n autoSaveDesign\n})(withMobileContext(Product));\n","import {START, INIT_CANVAS, SUCCESS, FAIL} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\nimport {toggleStaticObjects} from \"./toggle-static-objects\";\nimport {getDesignFromLocalStorage} from \"../services/lib/save-design\";\nimport {restoreDesign} from \"./restore-design\";\n\nexport const initCanvas = (options) => {\n return (dispatch, getState) => {\n dispatch({\n type: INIT_CANVAS + START\n });\n try {\n Mediator.initCanvas(options);\n dispatch({\n type: INIT_CANVAS + SUCCESS\n });\n const {\n condition,\n product: {\n id,\n meta: {product}\n }\n } = getState();\n const designs = getDesignFromLocalStorage(product, id);\n if (designs) {\n dispatch(restoreDesign(designs));\n }\n\n const hasStatic =\n condition.design &&\n condition.design.objects &&\n condition.design.objects.filter((o) => o.static).length;\n if (!hasStatic) {\n dispatch(toggleStaticObjects(condition));\n }\n } catch (e) {\n dispatch({\n type: INIT_CANVAS + FAIL,\n error: `Произошла ошибка`\n });\n throw e;\n }\n };\n};\n","import {RESTORE_DESIGN} from \"../constants/action-types\";\n\nexport const restoreDesign = (designs) => ({\n type: RESTORE_DESIGN,\n payload: {\n designs\n }\n});\n","import {ADD_MESSAGE} from \"../constants/action-types\";\n\nexport const addMessage = (type, text) => ({\n type: ADD_MESSAGE,\n payload: {\n type,\n text\n }\n});\n","import {CHANGE_DESIGN} from \"../constants/action-types\";\n\nexport const changeDesign = (side, design, index) => ({\n type: CHANGE_DESIGN,\n payload: {\n side,\n design,\n index\n }\n});\n","export const redirect = (url) => {\n if (url && window) {\n window.location = url;\n }\n};\n","import {saveDesignRequest, getURLforPushInHistory} from \"./save-design\";\nimport {redirect} from \"./redirect\";\nimport {push} from \"connected-react-router\";\nimport {SAVE_DESIGN, START, SUCCESS, FAIL} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\nimport trackPageview from \"../../../utils/track-pageview\";\nimport productSettings from \"../services/product-settings\";\n\nconst convertOptionsToStringWithVerticalLine = (options) =>\n Object.keys(options)\n .map((key) => `${key}:${options[key]}`)\n .join(`|`);\n\nconst getParams = (initialVariants, currentVariants, settings) => {\n if (settings && settings.variants) {\n const changingVariants = settings.variants.reduce(\n (acc, variant) => ({...acc, [variant.name]: true}),\n {}\n );\n const mergedVariants = Object.keys(currentVariants).reduce(\n (acc, variantKey) => {\n if (changingVariants[variantKey]) {\n return {...acc, [variantKey]: currentVariants[variantKey]};\n } else if (initialVariants[variantKey]) {\n return {...acc, [variantKey]: initialVariants[variantKey]};\n }\n return acc;\n },\n {}\n );\n return convertOptionsToStringWithVerticalLine(mergedVariants);\n }\n return ``;\n};\n\nexport const orderProduct = () => (dispatch, getState) => {\n dispatch({\n type: SAVE_DESIGN + START\n });\n saveDesignRequest(dispatch, getState)\n .then((response) => {\n // change url\n if (response.product.id) {\n dispatch({\n type: SAVE_DESIGN + SUCCESS,\n response\n });\n Mediator.isDesignSaved = true;\n dispatch(push(getURLforPushInHistory(getState())));\n } else {\n throw new Error(`Ошибка сохранения`);\n }\n })\n .catch((error) => {\n dispatch({\n type: SAVE_DESIGN + FAIL,\n error\n });\n throw error;\n })\n .then(() => {\n const {\n initialVariants,\n mobileApp,\n condition: {variants: currentVariants, product},\n product: {closeup}\n } = getState();\n const settings = productSettings[product];\n const params = getParams(initialVariants, currentVariants, settings);\n const url = `${closeup}${params ? `?present[variant]=${params}` : ``}`;\n trackPageview({\n page: `/virtual/predmet-sozdan`\n });\n return mobileApp\n ? window.ReactNativeWebView.postMessage(\n JSON.stringify({\n product,\n closeup,\n variants: currentVariants\n })\n )\n : redirect(url);\n });\n};\n","export default (price) => {\n return `${Math.floor((parseInt(price, 10) || 0) / 100)}`;\n};\n","import isTransparent from \"./is-transparent\";\n\nconst hasDesign = (\n {objects = [], background = `transparent`} = {\n objects: [],\n background: `transparent`\n }\n) => {\n const isEmpty = objects && !objects.length;\n return !(isEmpty && isTransparent(background));\n};\n\nexport default hasDesign;\n","import hasDesign from \"./has-design\";\n\n// basic\n// basic_variant_dependent\n// per_item_quantity_discounts\n// variant_and_quantity_dependent\n// card_packs\n\nexport const getDesignInfo = ({data, meta}) => {\n return meta.reduce(\n (acc, design, i) => {\n if (!design.additional && data[i] && hasDesign(data[i].design)) {\n return {...acc, main: acc.main + 1};\n } else if (design.additional && data[i] && hasDesign(data[i].design)) {\n return {...acc, additional: acc.additional + 1};\n }\n return {...acc};\n },\n {\n main: 0,\n additional: 0\n }\n );\n};\n\nexport const getFormattedBasicDependentPriceMap = (priceMap) => {\n // {\n // black: [117000, 23000, 15000]\n // light-blue: [117000, 23000, 15000]\n // melange: [117000, 23000, 15000]\n // turquoise: [117000, 23000, 15000]\n // white: [89000, 21000, 15000]\n // yellow: [117000, 23000, 15000]\n // }\n return priceMap.reduce((acc, current, index) => {\n if (!(index % 2)) {\n return {\n ...acc,\n ...Object.values(current).reduce((_, elem) => {\n return elem.reduce((a, el) => {\n return {...a, [el]: Object.values(priceMap[index + 1])};\n }, {});\n }, {})\n };\n } else {\n return {...acc};\n }\n }, {});\n};\nconst getPriceForBasicVariantDependent = (priceData, {variants, designs}) => {\n const priceMap = getFormattedBasicDependentPriceMap(priceData.variant_prices);\n const dependent = Object.keys(priceData.variant_prices[0])[0];\n const priceMapForVariant = priceMap[variants[dependent]];\n const {main, additional} = getDesignInfo(designs);\n let price = priceMapForVariant[0];\n if (main > 1 && priceMapForVariant[1]) {\n price += priceMapForVariant[1];\n }\n if (additional && priceMapForVariant[2]) {\n price += priceMapForVariant[2] * additional;\n }\n return price;\n};\n\nconst getPriceForBasic = (priceData, {designs}) => {\n const {main, additional} = getDesignInfo(designs);\n let price = priceData.base_price;\n if (main > 1 && priceData.double_side_adjustment) {\n price += priceData.double_side_adjustment;\n }\n if (additional && priceData.additional_design_adjustment) {\n price += priceData.additional_design_adjustment * additional;\n }\n return price;\n};\n\nconst getPriceForPerItemQuantityDiscounts = (priceData) => {\n return Object.values(priceData.price_map)[0];\n};\n\nexport const getFormattedVariantAndQuantityDependent = (priceMap) => {\n // don't take quantity\n // {\n // milk: 2000\n // bitter: 2200\n // }\n\n return priceMap.reduce((acc, item, index) => {\n if (Array.isArray(item)) {\n return item.reduce((ac, el, i) => {\n return {...ac, [el]: Object.values(priceMap[index + 1])[0][i]};\n }, {});\n }\n return acc;\n }, {});\n};\nconst getPriceForVariantAndQuantityDependent = (priceData, {variants}) => {\n const priceMap = getFormattedVariantAndQuantityDependent(priceData.price_map);\n const dependent = priceData.variant_prices[0];\n return priceMap[variants[dependent]];\n};\n\nexport const getFormattedPaperPriceMap = (priceMap) => {\n // {\n // black: [117000, 23000]\n // light-blue: [117000, 23000]\n // melange: [117000, 23000]\n // turquoise: [117000, 23000]\n // white: [89000, 21000]\n // yellow: [117000, 23000]\n // }\n return priceMap.reduce((acc, arr, index) => {\n if (Array.isArray(arr)) {\n return arr.reduce(\n (ac, prop) => ({...ac, [prop]: priceMap[index + 1][200]}),\n {...acc}\n );\n }\n return acc;\n }, {});\n};\nconst getPriceForCardPacks = (priceData, {variants, designs}) => {\n const paperPriceMap = getFormattedPaperPriceMap(priceData.paper_price_maps);\n const laminationPriceMap = priceData.lamination_per_100;\n const cornerRadiusPriceMap = priceData.rounded_corners_per_100;\n const {main} = getDesignInfo(designs);\n\n let price = paperPriceMap[variants.paper_type][main > 1 ? 1 : 0];\n if (laminationPriceMap[variants.lamination]) {\n price += laminationPriceMap[variants.lamination];\n }\n if (variants.corner_radius !== `0`) {\n price += cornerRadiusPriceMap;\n }\n return price;\n};\n\nexport const getPriceFromScheme = (priceData, options) => {\n let price;\n switch (priceData.pricing_scheme) {\n case `basic_variant_dependent`:\n price = getPriceForBasicVariantDependent(priceData, options);\n break;\n case `basic`:\n price = getPriceForBasic(priceData, options);\n break;\n case `per_item_quantity_discounts`:\n price = getPriceForPerItemQuantityDiscounts(priceData);\n break;\n case `variant_and_quantity_dependent`:\n price = getPriceForVariantAndQuantityDependent(priceData, options);\n break;\n case `card_packs`:\n price = getPriceForCardPacks(priceData, options);\n }\n return price;\n};\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport Provider from \"pubsub-js\";\nimport {\n productSelector,\n designsSelector,\n conditionSelector\n} from \"../selectors\";\nimport priceFormat from \"../services/lib/price-format\";\nimport {\n BACKGROUND_COLOR_CHANGED,\n OBJECT_ADDED,\n OBJECT_REMOVED\n} from \"../constants/event-types\";\nimport {getPriceFromScheme} from \"../services/lib/get-price-from-scheme\";\nimport withErrorBoundary from \"../decorators/withErrorBoundary\";\nimport {longCurrency} from \"../../../utils/currency\";\n\nexport class Price extends PureComponent {\n static propTypes = {\n product: PropTypes.object,\n designs: PropTypes.object,\n condition: PropTypes.object\n };\n state = {\n price: this.props.product.price.price\n };\n componentDidMount() {\n Provider.subscribe(BACKGROUND_COLOR_CHANGED, this.setPrice);\n Provider.subscribe(OBJECT_ADDED, this.setPrice);\n Provider.subscribe(OBJECT_REMOVED, this.setPrice);\n }\n componentWillUnmount() {\n Provider.unsubscribe(BACKGROUND_COLOR_CHANGED);\n Provider.unsubscribe(OBJECT_ADDED);\n Provider.unsubscribe(OBJECT_REMOVED);\n }\n setPrice = () => {\n const calcPrice = this.calculatePrice();\n if (calcPrice !== this.state.price) {\n this.setState({\n price: calcPrice\n });\n }\n };\n componentDidUpdate() {\n this.setPrice();\n }\n calculatePrice() {\n const {\n product: {meta},\n designs: designData,\n condition: {variants}\n } = this.props;\n return getPriceFromScheme(meta.price_data, {\n variants,\n designs: {\n data: designData,\n meta: meta.designs\n }\n });\n }\n render() {\n const {price} = this.state;\n const {currency} = this.props\n\n return
{priceFormat(price)}{longCurrency(currency, price)}
;\n }\n}\n\nconst mapStateToProps = (state) => ({\n product: productSelector(state),\n designs: designsSelector(state),\n condition: conditionSelector(state),\n currency: state.currency\n});\n\nexport default connect(mapStateToProps)(withErrorBoundary(Price));\n","import React, {Component} from \"react\";\nimport Provider from \"pubsub-js\";\nimport {\n SELECTION_CREATED,\n SELECTION_CLEARED,\n SELECTION_UPDATED,\n OBJECT_REMOVED\n} from \"../constants/event-types\";\n\nexport default (OriginalComponent) =>\n class SelectionContextComponent extends Component {\n state = {\n selected: null\n };\n onSelectionCreated = (_, selected) => {\n this.setState({\n selected\n });\n };\n onSelectionUpdated = (_, {selected}) => {\n this.onSelectionCreated(_, selected[0]);\n };\n onSelectionCleared = () => {\n this.setState({\n selected: null\n });\n };\n componentDidMount() {\n Provider.subscribe(SELECTION_CREATED, this.onSelectionCreated);\n Provider.subscribe(SELECTION_UPDATED, this.onSelectionUpdated);\n Provider.subscribe(SELECTION_CLEARED, this.onSelectionCleared);\n Provider.subscribe(OBJECT_REMOVED, this.onSelectionCleared);\n }\n componentWillUnmount() {\n Provider.unsubscribe(SELECTION_CREATED, this.onSelectionCreated);\n Provider.unsubscribe(SELECTION_CLEARED, this.onSelectionCleared);\n Provider.unsubscribe(SELECTION_UPDATED, this.onSelectionUpdated);\n Provider.unsubscribe(OBJECT_REMOVED, this.onSelectionCleared);\n }\n render() {\n return ;\n }\n };\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport classNames from \"classnames\";\nimport {orderProduct} from \"../AC/order-product\";\nimport Price from \"./Price\";\nimport Button from \"@material-ui/core/Button\";\nimport withSelectionContext from \"../decorators/withSelectionContext\";\nimport withViewPortContext from \"../decorators/withViewPortContext\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport {onPlatformSelector} from \"../selectors\";\n\nconst styles = () => ({\n button: {\n \"backgroundColor\": `#3cb868`,\n \"borderRadius\": `25px`,\n \"height\": `50px`,\n \"fontWeight\": `normal`,\n \"padding\": `0 30px`,\n \"boxShadow\": `none`,\n \"color\": `#fff`,\n \"&:hover\": {\n opacity: `.8`,\n backgroundColor: `#3cb868`\n }\n },\n vtb: {\n \"borderRadius\": `4px`,\n \"backgroundColor\": `#002882 !important`,\n \"color\": `white`,\n \"&:hover\": {\n backgroundColor: `#002882`\n }\n }\n});\n\nclass Order extends Component {\n static propTypes = {\n orderProduct: PropTypes.func,\n classes: PropTypes.object,\n isItInViewport: PropTypes.bool,\n selected: PropTypes.object,\n onPlatform: PropTypes.string\n };\n\n render() {\n const {classes, isItInViewport, selected, onPlatform} = this.props;\n return (\n \n \n \n Заказать\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n onPlatform: onPlatformSelector(state)\n});\n\nconst mapDispatchToProps = {\n orderProduct\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withStyles(styles)(withSelectionContext(withViewPortContext(Order))));\n","const trackPageview = ({page}) => {\n if (window && window.ga) {\n const args = [`gtm3.send`, `pageview`, page].filter((i) => i !== void 0);\n window.ga.apply(null, args);\n }\n};\n\nexport default trackPageview;\n","import React, {Component} from \"react\";\n\nconst withViewPortContext = (OriginalComponent) =>\n class ViewPortContext extends Component {\n state = {\n isItInViewport: false\n };\n element = React.createRef();\n componentDidMount() {\n this.checkViewPort();\n document.addEventListener(`scroll`, this.checkViewPort);\n }\n componentWillUnmount() {\n document.removeEventListener(`scroll`, this.checkViewPort);\n }\n checkViewPort = () => {\n const heightViewport = window.innerHeight;\n const heightOfEl = this.element.current.offsetHeight;\n const topPositionOfEl = this.element.current.getBoundingClientRect().top;\n if (\n heightViewport < topPositionOfEl ||\n topPositionOfEl + heightOfEl < 0\n ) {\n this.setState({\n isItInViewport: false\n });\n } else {\n this.setState({\n isItInViewport: true\n });\n }\n };\n render() {\n return (\n
\n \n
\n );\n }\n };\n\nexport default withViewPortContext;\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport {sellProduct} from \"../AC/sell-product\";\nimport {saveDesign} from \"../AC/save-design\";\nimport MobileCtx from \"../../../contexts/MobileCtx\";\nimport withErrorBoundary from \"../decorators/withErrorBoundary\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport SaveIcon from \"@material-ui/icons/SaveOutlined\";\nimport MoneyIcon from \"@material-ui/icons/AttachMoneyOutlined\";\nimport {Tooltip} from \"@material-ui/core\";\nimport Order from \"./Order\";\nimport {mobileAppSelector, onPlatformSelector} from \"../selectors\";\n\nexport class ActionPanel extends PureComponent {\n static propTypes = {\n isOwner: PropTypes.bool,\n sellProduct: PropTypes.func,\n saveDesign: PropTypes.func,\n classes: PropTypes.object,\n onPlatform: PropTypes.string,\n mobileApp: PropTypes.bool\n };\n\n render() {\n const {isOwner, onPlatform, mobileApp} = this.props;\n return (\n
\n \n {(isMobile) => (\n \n
\n \n
\n {!mobileApp && (\n \n \n \n Сохранить\n \n \n )}\n {!isMobile && isOwner && onPlatform !== `vtb` && (\n \n \n На продажу\n \n )}\n
\n )}\n
\n
\n );\n }\n}\n\nexport default connect(\n (state) => ({\n onPlatform: onPlatformSelector(state),\n mobileApp: mobileAppSelector(state)\n }),\n {\n sellProduct,\n saveDesign\n }\n)(withErrorBoundary(ActionPanel));\n","import {saveDesignRequest, getURLforPushInHistory} from \"./save-design\";\nimport {redirect} from \"./redirect\";\nimport {push} from \"connected-react-router\";\nimport {SAVE_DESIGN, START, SUCCESS, FAIL} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\n\nexport const sellProduct = () => (dispatch, getState) => {\n dispatch({\n type: SAVE_DESIGN + START\n });\n saveDesignRequest(dispatch, getState)\n .then((response) => {\n // change url\n if (response.product.id) {\n dispatch({\n type: SAVE_DESIGN + SUCCESS,\n response\n });\n Mediator.isDesignSaved = true;\n dispatch(push(getURLforPushInHistory(getState())));\n } else {\n throw new Error(`Ошибка сохранения`);\n }\n })\n .catch((error) => {\n dispatch({\n type: SAVE_DESIGN + FAIL,\n error\n });\n throw error;\n })\n .then(() => {\n const url = getState().product.sell;\n redirect(url);\n });\n};\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\n\nexport default class View extends PureComponent {\n static propTypes = {\n mode: PropTypes.string,\n src: PropTypes.string,\n handleClick: PropTypes.func\n };\n\n render() {\n const {mode, src, handleClick} = this.props;\n return (\n \n \n \n );\n }\n}\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport View from \"./View\";\n\nexport default class Views extends PureComponent {\n static propTypes = {\n views: PropTypes.shape({\n large: PropTypes.arrayOf(PropTypes.string),\n small: PropTypes.arrayOf(PropTypes.string)\n })\n };\n state = {\n currentIndex: 0\n };\n changeCurrentIndex = (index) => {\n return () => {\n const {\n views: {large}\n } = this.props;\n const end = large && large.length;\n if (index < 0) {\n this.setState({\n currentIndex: end + index\n });\n } else if (index >= end) {\n this.setState({\n currentIndex: index - end\n });\n } else {\n this.setState({\n currentIndex: index\n });\n }\n };\n };\n render() {\n const {\n views: {large, small}\n } = this.props;\n const {currentIndex} = this.state;\n const filterLargeViews = large.filter((i) => !!i);\n const filterSmallViews = small.filter((i) => !!i);\n return (\n
\n
\n {filterLargeViews && filterLargeViews.length > 1 && (\n \n \n \n )}\n {filterLargeViews && filterLargeViews.length > 0 && (\n \n )}\n {filterLargeViews && filterLargeViews.length > 1 && (\n \n \n \n )}\n
\n {filterSmallViews.length > 1 && (\n
\n {filterSmallViews.map((src, index) => {\n return (\n \n \n
\n );\n })}\n
\n )}\n \n );\n }\n}\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {Line} from \"rc-progress\";\nimport Views from \"./Views\";\n\nexport default class Realism extends PureComponent {\n static propTypes = {\n progress: PropTypes.number,\n views: PropTypes.object\n };\n render() {\n const {progress, views} = this.props;\n return (\n \n {progress < 100 && (\n \n )}\n {views && }\n \n );\n }\n}\n","import {CLOSE_ALL_MODALS, TOGGLE_MODAL} from \"../constants/action-types\";\n\nexport const toggleModal = (modal) => ({\n type: TOGGLE_MODAL,\n payload: {\n modal\n }\n});\n\nexport const closeAllModals = () => ({\n type: CLOSE_ALL_MODALS\n});\n","import hasDesign from \"../services/lib/has-design\";\nimport {\n GET_REALISM,\n START,\n SUCCESS,\n TICK,\n FAIL\n} from \"../constants/action-types\";\nimport {API_REALISM} from \"../constants/api\";\nimport {REALISM_POLL_TIME} from \"../constants\";\nimport {saveDesignRequest} from \"./save-design\";\nimport {toggleModal} from \"./modal\";\nimport Mediator from \"../services/Mediator\";\nimport trackEvent from \"../../../utils/track-event\";\n\nconst calculateProgress = (\n {views: receivedRealiscticViews},\n {\n product: {\n meta: {realistic_views: realisticViews}\n },\n designs\n }\n) => {\n const mainRealiscticViews = realisticViews.filter((view) => !view.additional);\n const numberOfExpectedMainRealiscticViews = mainRealiscticViews.length;\n const hasProductAdditionalRealisticViews =\n numberOfExpectedMainRealiscticViews !== realisticViews.length;\n if (!hasProductAdditionalRealisticViews) {\n return Math.round(\n (receivedRealiscticViews.large.filter((view) => !!view).length /\n numberOfExpectedMainRealiscticViews) *\n 100\n );\n }\n const additionalRealisticViews = realisticViews.filter(\n (view) => view.additional\n );\n const numberOfExpectedAdditionalRealiscticViews = additionalRealisticViews.reduce(\n (acc, view) => {\n return view.required_design_defs.every((designDefs) => {\n let result = false;\n for (const key in designs) {\n if (designs.hasOwnProperty(key)) {\n const art = designs[key];\n if (art.name === designDefs.name && hasDesign(art.design)) {\n result = true;\n }\n }\n }\n return result;\n })\n ? acc + 1\n : acc;\n },\n 0\n );\n return Math.round(\n (receivedRealiscticViews.large.filter((view) => !!view).length /\n (numberOfExpectedMainRealiscticViews +\n numberOfExpectedAdditionalRealiscticViews)) *\n 100\n );\n};\n\nlet realismInterval;\n\nexport const realismRequest = (productId, dispatch, getState) => {\n resetGettingRealism();\n dispatch({\n type: GET_REALISM + START\n });\n realismInterval = setInterval(() => {\n fetch(`${API_REALISM}/${productId}`, {\n headers: {\n \"Accept\": `application/json`,\n \"Content-Type\": `application/json`\n },\n credentials: `same-origin`\n })\n .then((res) => {\n if (res.status >= 400) {\n throw new Error(`Error`);\n }\n return res.json();\n })\n .then((res) => {\n const progress = calculateProgress(res, getState());\n if (progress === 100) {\n resetGettingRealism();\n dispatch({\n type: GET_REALISM + SUCCESS,\n response: {\n ...res,\n progress\n }\n });\n } else {\n dispatch({\n type: GET_REALISM + TICK,\n response: {\n ...res,\n progress\n }\n });\n }\n })\n .catch((error) => {\n resetGettingRealism();\n dispatch({\n type: GET_REALISM + FAIL,\n error\n });\n });\n }, REALISM_POLL_TIME);\n // clear intervar after end time\n setTimeout(() => {\n clearInterval(realismInterval);\n }, 120000);\n};\n\nexport const getRealism = () => {\n return (dispatch, getState) => {\n trackEvent({\n category: `Editor`,\n action: `Realistic View`\n });\n if (Mediator.isDesignSaved && getState().product.id) {\n dispatch(toggleModal(`realism`));\n realismRequest(getState().product.id, dispatch, getState);\n } else {\n saveDesignRequest(dispatch, getState).then((response) => {\n const productId = response.product.id;\n if (productId) {\n dispatch(toggleModal(`realism`));\n realismRequest(productId, dispatch, getState);\n }\n });\n }\n };\n};\n\nexport const resetGettingRealism = () => {\n if (realismInterval) {\n clearInterval(realismInterval);\n }\n};\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport Modal from \"react-modal\";\nimport {connect} from \"react-redux\";\nimport {realismSelector, modalSelector} from \"../../selectors\";\nimport Realism from \"./Realism\";\nimport {getRealism, resetGettingRealism} from \"../../AC/realism\";\nimport {toggleModal} from \"../../AC/modal\";\nimport withErrorBoundary from \"../../decorators/withErrorBoundary\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport Button from \"@material-ui/core/Button\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport VisibilityIcon from \"@material-ui/icons/VisibilityOutlined\";\nimport classNames from \"classnames\";\n\nconst styles = () => ({\n button: {\n \"backgroundColor\": `#fff`,\n \"color\": `#333`,\n \"boxShadow\": `none`,\n \"fontWeight\": `normal`,\n \"textTransform\": `none`,\n \"border\": `1px solid`,\n \"&:hover\": {\n opacity: `.8`,\n backgroundColor: `#fff`,\n color: `#333`\n }\n }\n});\n\nclass RealisticView extends PureComponent {\n static propTypes = {\n isModalOpen: PropTypes.bool,\n toggleModal: PropTypes.func,\n realism: PropTypes.object,\n getRealism: PropTypes.func,\n classes: PropTypes.object\n };\n toggleModal = () => {\n this.props.toggleModal(`realism`);\n resetGettingRealism();\n };\n showRealisticViews = () => {\n this.props.getRealism();\n };\n render() {\n const {realism, isModalOpen, classes} = this.props;\n return (\n
\n \n \n \n \n Реалистичный просмотр\n \n \n \n \n
\n {realism.progress >= 0 && (\n \n )}\n
\n \n \n
\n );\n }\n}\n\nModal.setAppElement(`body`);\n\nconst mapStateToProps = (state) => ({\n realism: realismSelector(state),\n isModalOpen: modalSelector(state, `realism`)\n});\n\nconst mapDispatchToProps = {\n getRealism,\n toggleModal\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withErrorBoundary(withStyles(styles)(RealisticView)));\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport {isShownProductsSelector} from \"../selectors\";\nimport {toggleProducts} from \"../AC/toggle-products\";\nimport ArrowForwardIcon from \"@material-ui/icons/ArrowForwardIos\";\n\nclass Navigation extends Component {\n static propTypes = {\n toggleProducts: PropTypes.func,\n isShownProducts: PropTypes.bool\n };\n toggleProducts = (value) => (e) => {\n if (e && e.preventDefault) {\n e.preventDefault();\n }\n this.props.toggleProducts(value);\n if (window) {\n window.scrollTo(0, 0);\n }\n };\n render() {\n const {isShownProducts} = this.props;\n return (\n \n {isShownProducts ? (\n \n Назад\n \n \n ) : (\n \n )}\n \n );\n }\n}\n\nexport default connect(\n (state) => ({\n isShownProducts: isShownProductsSelector(state)\n }),\n {\n toggleProducts\n }\n)(Navigation);\n","import isTransparent from \"./is-transparent\";\n\nexport default (color) => {\n if (isTransparent(color)) {\n return false;\n }\n // Variables for red, green, blue values\n let r;\n let g;\n let b;\n let hsp;\n // Check the format of the color, HEX or RGB?\n if (color.match(/^rgb/)) {\n // If HEX --> store the red, green, blue values in separate variables\n color = color.match(\n /^rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*(\\d+(?:\\.\\d+)?))?\\)$/\n );\n r = color[1];\n g = color[2];\n b = color[3];\n } else {\n // If RGB --> Convert it to HEX: http://gist.github.com/983661\n color = +`0x${color.slice(1).replace(color.length < 5 && /./g, `$&$&`)}`;\n r = color >> 16;\n g = (color >> 8) & 255;\n b = color & 255;\n }\n // HSP (Highly Sensitive Poo) equation from http://alienryderflex.com/hsp.html\n hsp = Math.sqrt(0.299 * (r * r) + 0.587 * (g * g) + 0.114 * (b * b));\n // Using the HSP value, determine whether the color is light or dark\n return hsp < 127.5;\n};\n","import {ADD_TEXT, START, SUCCESS, FAIL} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\nimport isDarkColor from \"../services/lib/is-dark-color\";\n\nconst isDarkDesign = (design) => {\n return design && design.background && isDarkColor(design.background);\n};\n\nconst isBlackProduct = (variants) => {\n return variants && variants.color === `black`;\n};\n\nexport const addText = (text = `Впишите\\nтекст`) => (dispatch, getState) => {\n dispatch({\n type: ADD_TEXT + START\n });\n (async () => {\n try {\n const {\n condition: {variants, design}\n } = getState();\n const {\n color,\n fontFamily,\n fontSize,\n fontWeight,\n textDecoration,\n shadow,\n fontStyle,\n stroke,\n strokeWidth,\n textAlign,\n lineHeight,\n textBackgroundColor,\n fill\n } = await Mediator.addTextToCanvas(text, {\n fill: isBlackProduct(variants) || isDarkDesign(design) ? `#fff` : `#000`\n });\n dispatch({\n type: ADD_TEXT + SUCCESS,\n payload: {\n color,\n fontFamily,\n fontSize,\n fontWeight,\n textDecoration,\n shadow,\n fontStyle,\n stroke,\n strokeWidth,\n textAlign,\n lineHeight,\n textBackgroundColor,\n fill\n }\n });\n } catch (error) {\n dispatch({\n type: ADD_TEXT + FAIL,\n error\n });\n }\n })();\n};\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n ,\n `Enhancer`\n);\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport withErrorBoundary from \"../../decorators/withErrorBoundary\";\nimport {addText} from \"../../AC/add-text\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport Button from \"@material-ui/core/Button\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport TextIcon from \"../../../../icons/TextIcon\";\nimport classNames from \"classnames\";\nimport {conditionSelector, onPlatformSelector} from \"../../selectors\";\nimport productSettings from \"../../services/product-settings\";\n\nconst styles = () => ({\n button: {\n backgroundColor: `#48a1d5`,\n color: `white`,\n width: `100%`,\n height: `46px`,\n boxShadow: `none`,\n borderRadius: `23px`,\n border: `1px solid`,\n \"&:hover\": {\n opacity: `.8`,\n backgroundColor: `#48a1d5`\n },\n \"&:active\": {\n boxShadow: `none`\n }\n },\n vtb: {\n borderRadius: `4px`,\n border: `1px solid #00AAFF`,\n color: `#00AAFF`\n }\n});\n\nclass AddingText extends PureComponent {\n static propTypes = {\n addText: PropTypes.func,\n condition: PropTypes.object,\n classes: PropTypes.object,\n onPlatform: PropTypes.string\n };\n addText = () => {\n this.props.addText();\n };\n isDisabled = () => {\n const {\n condition: {product, side}\n } = this.props;\n const settings = productSettings[product];\n return (\n settings &&\n settings.permissions &&\n settings.permissions[side] &&\n !settings.permissions[side].text\n );\n };\n render() {\n const {classes, onPlatform} = this.props;\n const disabled = this.isDisabled();\n return (\n
\n \n \n
\n \n \n Текст \n \n \n
\n \n
\n
\n );\n }\n}\n\nexport default connect(\n (state) => ({\n condition: conditionSelector(state),\n onPlatform: onPlatformSelector(state)\n }),\n {\n addText\n }\n)(withErrorBoundary(withStyles(styles)(AddingText)));\n","import {\n ADD_PICTURE_TO_CANVAS,\n START,\n SUCCESS,\n FAIL\n} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\nimport isDarkColor from \"../services/lib/is-dark-color\";\n\nconst isDarkDesign = (design) => {\n return design && design.background && isDarkColor(design.background);\n};\n\nconst isBlackProduct = (variants) => {\n return variants && variants.color === `black`;\n};\n\nexport const addPictureToCanvas = (params, options, fields) => (\n dispatch,\n getState\n) => {\n dispatch({\n type: ADD_PICTURE_TO_CANVAS + START\n });\n (async () => {\n const {\n condition: {variants, design}\n } = getState();\n try {\n let fill;\n if (options.fill) {\n fill = options.fill;\n } else {\n fill =\n isBlackProduct(variants) || isDarkDesign(design) ? `#fff` : `#000`;\n }\n await Mediator.addPictureToCanvas(\n params,\n {\n ...options,\n fill\n },\n fields\n );\n dispatch({\n type: ADD_PICTURE_TO_CANVAS + SUCCESS\n });\n } catch (e) {\n dispatch({\n type: ADD_PICTURE_TO_CANVAS + FAIL,\n error: `Произошла ошибка`\n });\n throw e;\n }\n })();\n};\n","import {ADD_IMAGE, START, TICK, SUCCESS, FAIL} from \"../constants/action-types\";\nimport {API_IMAGES} from \"../constants/api\";\nimport {addPictureToCanvas} from \"./add-picture-to-canvas\";\nimport {closeAllModals} from \"./modal\";\nimport {PICTURE_POLL_TIME} from \"../constants\";\n\nexport const addImage = (id, fields = {}) => (dispatch, getState) => {\n const {mobileApp} = getState();\n const authHeader = mobileApp ? window.authHeaders : {};\n dispatch({\n type: ADD_IMAGE + START\n });\n dispatch(closeAllModals());\n const interval = setInterval(() => {\n fetch(`${API_IMAGES}/${id}`, {\n headers: {\n \"Accept\": `application/json`,\n \"Content-Type\": `application/json`,\n ...authHeader\n },\n credentials: `same-origin`\n })\n .then((res) => {\n if (res.status >= 400) {\n throw new Error(`Error`);\n }\n return res.json();\n })\n .then((response) => {\n if (!response) {\n dispatch({type: ADD_IMAGE + TICK});\n } else {\n clearInterval(interval);\n const {\n picture_content_type: type,\n canvas_url: original,\n original_width: originalWidth,\n original_height: originalHeight\n } = response;\n dispatch(\n addPictureToCanvas(\n {\n id,\n type,\n original,\n originalWidth,\n originalHeight\n },\n {},\n fields\n )\n );\n dispatch({type: ADD_IMAGE + SUCCESS, response});\n }\n })\n .catch((error) => {\n clearInterval(interval);\n dispatch({type: ADD_IMAGE + FAIL, error});\n });\n }, PICTURE_POLL_TIME);\n};\n","import {\n UPLOAD_IMAGE,\n START,\n TICK,\n FAIL,\n SUCCESS\n} from \"../constants/action-types\";\n\nimport request from \"superagent\";\nimport {API_IMAGES} from \"../constants/api\";\nimport {addImage} from \"./add-image\";\nexport const uploadImage = (data, fields, shutterstock) => (\n dispatch,\n getState\n) => {\n dispatch({\n type: UPLOAD_IMAGE + START\n });\n const formData = new FormData();\n formData.append(`authenticity_token`, getState().authenticityToken);\n if (typeof data === `string`) {\n formData.append(`image[remote_picture_url]`, data);\n\n if (shutterstock) {\n formData.append(`image[shutter_stock_params][image_id]`, shutterstock.id);\n formData.append(\n `image[shutter_stock_params][search_query]`,\n shutterstock.searchRequest\n );\n formData.append(\n `image[shutter_stock_params][contributor_id]`,\n shutterstock.contributor\n );\n }\n } else {\n formData.append(`image[picture]`, data);\n }\n request\n .post(API_IMAGES)\n .send(formData)\n .on(`progress`, (e) => {\n if (e.direction === `upload`) {\n dispatch({\n type: UPLOAD_IMAGE + TICK,\n payload: {\n progress: e.percent\n }\n });\n }\n })\n .end((error, response) => {\n if (error) {\n dispatch({\n type: UPLOAD_IMAGE + FAIL,\n error\n });\n throw error;\n } else {\n const json = JSON.parse(response.text);\n dispatch({\n type: UPLOAD_IMAGE + SUCCESS\n });\n if (json.id) {\n dispatch(addImage(json.id, fields));\n }\n }\n });\n};\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport {addPictureToCanvas} from \"../../../AC/add-picture-to-canvas\";\nimport {removePicture} from \"../../../AC/remove-picture\";\nimport LazyLoad from \"react-lazyload\";\n\nexport class Picture extends PureComponent {\n static propTypes = {\n type: PropTypes.string,\n picture: PropTypes.object,\n addPictureToCanvas: PropTypes.func,\n removability: PropTypes.bool,\n removePicture: PropTypes.func,\n onRequestCloseModal: PropTypes.func\n };\n addPictureToCanvas = (params) => (e) => {\n const {type} = this.props;\n let flag;\n if (type === `images`) {\n flag = `isLocal`;\n } else if (type === `cliparts`) {\n flag = `isClipart`;\n } else if (type === `textures`) {\n flag = `isTexture`;\n }\n e.preventDefault();\n this.props.addPictureToCanvas(params, {\n [flag]: true\n });\n this.props.onRequestCloseModal();\n };\n removePicture = (params) => () => {\n this.props.removePicture(params);\n };\n render() {\n const {\n picture: {preview, ...params},\n removability\n } = this.props;\n return (\n
\n \n Загрузка...

}\n >\n \n \n \n {removability && (\n \n ×\n \n )}\n
\n );\n }\n}\n\nconst mapDispatchToProps = {\n addPictureToCanvas,\n removePicture\n};\n\nexport default connect(null, mapDispatchToProps)(Picture);\n","import {REMOVE_IMAGE, START, SUCCESS, FAIL} from \"../constants/action-types\";\nimport {API_IMAGES} from \"../constants/api\";\n\nexport const removePicture = ({id}) => (dispatch, getState) => {\n dispatch({\n type: REMOVE_IMAGE + START\n });\n fetch(`${API_IMAGES}/${id}`, {\n method: `delete`,\n headers: {\n \"Accept\": `application/json`,\n \"Content-Type\": `application/json`\n },\n body: JSON.stringify({\n /* eslint-disable camelcase */\n authenticity_token: getState().authenticityToken\n /* eslint-enable camelcase */\n }),\n credentials: `same-origin`\n })\n .then((res) => {\n if (res.status >= 400) {\n throw new Error(`Error`);\n }\n dispatch({type: REMOVE_IMAGE + SUCCESS, payload: {id}});\n })\n .catch((error) => {\n dispatch({type: REMOVE_IMAGE + FAIL, error});\n });\n};\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport Picture from \"./Picture\";\nimport Button from \"@material-ui/core/Button\";\n\nexport default class Pictures extends PureComponent {\n static propTypes = {\n type: PropTypes.string,\n pictures: PropTypes.array,\n removability: PropTypes.bool,\n onRequestCloseModal: PropTypes.func\n };\n state = {\n end: 40\n };\n showMore = () => {\n const step = 40;\n this.setState({\n end: this.state.end + step\n });\n };\n render() {\n const {pictures, onRequestCloseModal, removability, type} = this.props;\n const {end} = this.state;\n return (\n \n
\n {pictures.length ? (\n pictures.slice(0, end).map((picture) => {\n return (\n
\n \n
\n );\n })\n ) : (\n Нет изображений\n )}\n
\n
\n {pictures.length && end <= pictures.length ? (\n \n ) : null}\n
\n
\n );\n }\n}\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport {picturesSelector} from \"../../selectors\";\nimport Pictures from \"./Pictures\";\nimport trackEvent from \"../../../../utils/track-event\";\n\nexport class PictureBox extends PureComponent {\n static propTypes = {\n activeCategory: PropTypes.string,\n pictures: PropTypes.object,\n onRequestCloseModal: PropTypes.func\n };\n state = {\n activeCategory: this.props.activeCategory\n };\n setActiveCategory = (category) => () => {\n this.setState({\n activeCategory: category\n });\n if (category === `textures`) {\n trackEvent({\n category: `Editor`,\n action: `Texture tab click`\n });\n }\n };\n render() {\n const {activeCategory} = this.state;\n const {pictures, onRequestCloseModal} = this.props;\n return (\n
\n
\n {[\n {\n name: `Мои фото`,\n type: `images`\n },\n {\n name: `Текстуры`,\n type: `textures`\n }\n ].map((category) => {\n const {type, name} = category;\n return (\n \n \n {name}\n
\n {` `}\n \n );\n })}\n
\n
\n \n
\n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n pictures: picturesSelector(state)\n});\n\nexport default connect(mapStateToProps)(PictureBox);\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n \n \n \n \n ,\n `Local`\n);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nfunction GoogleSearchIcon(props) {\n const {style} = props;\n return (\n \n \n \n \n \n \n \n \n );\n}\n\nGoogleSearchIcon.propTypes = {\n style: PropTypes.object\n};\n\nexport default GoogleSearchIcon;\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport {uploadImage} from \"../../../AC/upload-image\";\nimport {changeSourceUploader} from \"../../../AC/change-source-uploader\";\nimport {\n uploaderSelector,\n picturesSelector,\n shutterStockEnabledSelector\n} from \"../../../selectors\";\nimport {toggleModal} from \"../../../AC/modal\";\nimport PictureBox from \"../PictureBox\";\nimport Button from \"@material-ui/core/Button\";\nimport LocalIcon from \"../../../../../icons/LocalIcon\";\nimport GoogleSearchIcon from \"../../../../../icons/GoogleSearchIcon\";\nimport Mediator from \"../../../services/Mediator\";\nimport trackEvent from \"../../../../../utils/track-event\";\n\nconst styles = (theme) => ({\n leftIcon: {\n marginRight: theme.spacing.unit\n },\n button: {\n \"backgroundColor\": `#52abda`,\n \"color\": `#fff`,\n \"fontSize\": `12px`,\n \"padding\": `5px 10px`,\n \"&:hover\": {\n opacity: `.8`,\n backgroundColor: `#52abda`\n }\n },\n lightButton: {\n border: `1px solid #c4c1c1`,\n fontWeight: `normal`,\n textTransform: `none`,\n color: `#727272`,\n fontSize: `12px`,\n padding: `5px 10px`\n }\n});\n\nclass Local extends PureComponent {\n static propTypes = {\n uploadImage: PropTypes.func,\n toggleModal: PropTypes.func,\n changeSourceUploader: PropTypes.func,\n uploader: PropTypes.object,\n pictures: PropTypes.object,\n product: PropTypes.object,\n classes: PropTypes.object.isRequired,\n shutterStockEnabled: PropTypes.bool\n };\n state = {\n activeCategory: `images`\n };\n fileInput = React.createRef();\n uploadImage = () => {\n const file = this.fileInput.current.files[0];\n if (file) {\n this.props.uploadImage(file);\n }\n };\n areThereShutterstockPicsOnCanvas = () => {\n const objects = Mediator.getCanvas().getObjects();\n return objects.find((obj) => {\n if (obj.fields) {\n return obj.fields.isShutterstockImage;\n }\n return false;\n });\n };\n componentDidUpdate() {\n if (window && !window.localStorage.getItem(`is-open-clipart`)) {\n window.localStorage.setItem(`is-open-clipart`, true);\n this.setState({\n activeCategory: `cliparts`\n });\n }\n }\n changeSource = (source) => this.props.changeSourceUploader(source);\n render() {\n const {classes, shutterStockEnabled} = this.props;\n return (\n \n
\n

\n JPG или PNG размером не более{` `}\n 14МБ.\n

\n
\n
\n
\n \n \n
\n
\n {\n trackEvent({\n category: `Editor`,\n action: `Open Google search`\n });\n this.changeSource(`google-search`);\n }}\n className={classes.lightButton}\n >\n Искать в\n \n \n
\n {shutterStockEnabled && !this.areThereShutterstockPicsOnCanvas() && (\n
\n {\n trackEvent({\n category: `Editor`,\n action: `Open ShutterStock search`\n });\n this.changeSource(`shutterstock`);\n }}\n className={classes.lightButton}\n >\n Искать в ShutterStock\n \n
\n )}\n
\n
\n

\n Загружая изображение, вы принимаете{` `}\n Пользовательское соглашение и подтверждаете\n соблюдение авторских прав\n

\n
\n this.props.toggleModal(`pictures`)}\n />\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n uploader: uploaderSelector(state),\n pictures: picturesSelector(state),\n shutterStockEnabled: shutterStockEnabledSelector(state)\n});\n\nconst mapDispatchToProps = {\n uploadImage,\n toggleModal,\n changeSourceUploader\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withStyles(styles)(Local));\n","import {CHANGE_SOURCE_UPLOADER} from \"../constants/action-types\";\n\nexport const changeSourceUploader = (source) => ({\n type: CHANGE_SOURCE_UPLOADER,\n payload: {\n source\n }\n});\n","import {\n FAIL,\n THIRD_PARTY_SEARCH,\n INCREMENT_THIRD_PARTY_SEARCH_PAGE,\n SET_THIRD_PARTY_SEARCH_QUERY,\n START,\n SUCCESS\n} from \"../constants/action-types\";\nimport {apiGoogleSearchTemplate, shutterStockSearch} from \"../constants/api\";\n\nexport const setSearchQuery = (query = ``) => ({\n type: SET_THIRD_PARTY_SEARCH_QUERY,\n payload: {query}\n});\n\nexport const clearSearchData = () => ({\n type: SET_THIRD_PARTY_SEARCH_QUERY,\n payload: {query: ``, data: []}\n});\n\nexport const incrementThirdPartySearchPage = () => {\n return {\n type: INCREMENT_THIRD_PARTY_SEARCH_PAGE\n };\n};\n\nconst getAPIParamsForQuery = (query) => {\n const totalPages = 5;\n const pages = new Array(totalPages).fill(0).map((_, i) => 10 * i + 1);\n const imageSizes = [`huge`, `xxlarge`, `xlarge`, `large`];\n const params = imageSizes\n .map((imgSize) => ({...query, imgSize}))\n .reduce((acc, searchQuery) => {\n return [...acc, ...pages.map((start) => ({...searchQuery, start}))];\n }, []);\n return params;\n};\n\nconst getImageData = (url) => {\n return fetch(url)\n .then((res) => res.json())\n .catch((err) => {\n throw err;\n });\n};\n\nconst searchInGoogle = () => (dispatch, getState) => {\n (async () => {\n try {\n const {\n uploader: {query, page}\n } = getState();\n const arrayOfParams = getAPIParamsForQuery({\n value: query,\n color: ``,\n type: ``\n });\n const data = await getImageData(\n apiGoogleSearchTemplate(arrayOfParams[page])\n );\n dispatch({\n type: THIRD_PARTY_SEARCH + SUCCESS,\n payload: {\n data\n }\n });\n } catch (error) {\n dispatch({\n type: THIRD_PARTY_SEARCH + FAIL,\n error\n });\n throw error;\n }\n })();\n};\n\nconst searchInShutterStock = () => (dispatch, getState) => {\n const {\n uploader: {query, page}\n } = getState();\n\n shutterStockSearch({query, page: page + 1})\n .then((result) => {\n dispatch({\n type: THIRD_PARTY_SEARCH + SUCCESS,\n payload: {\n data: result\n }\n });\n })\n .catch((error) => {\n dispatch({\n type: THIRD_PARTY_SEARCH + FAIL,\n error\n });\n });\n};\n\nexport const search = () => (dispatch, getState) => {\n const {\n uploader: {source}\n } = getState();\n\n dispatch({\n type: THIRD_PARTY_SEARCH + START\n });\n\n if (source === `google-search`) {\n dispatch(searchInGoogle());\n }\n\n if (source === `shutterstock`) {\n dispatch(searchInShutterStock());\n }\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\n\nfunction Image(props) {\n const {url, previewSrc, alt, handleClick} = props;\n return (\n
\n \n {alt}\n \n
\n );\n}\n\nImage.propTypes = {\n url: PropTypes.string,\n previewSrc: PropTypes.string,\n alt: PropTypes.string,\n handleClick: PropTypes.func\n};\n\nexport default Image;\n","import React, {useMemo, useCallback} from \"react\";\nimport {useSelector, useDispatch} from \"react-redux\";\nimport Image from \"./Image\";\nimport {uploaderSelector} from \"../../../selectors\";\nimport {uploadImage} from \"../../../AC/upload-image\";\nimport Loader from \"../../../../common/Loader\";\nimport Button from \"@material-ui/core/Button\";\nimport {\n incrementThirdPartySearchPage,\n search\n} from \"../../../AC/third-party-search\";\n\nexport function GoogleSearchResults() {\n const dispatch = useDispatch();\n const {\n uploader: {data, loading, loaded}\n } = useSelector((state) => ({\n uploader: uploaderSelector(state)\n }));\n\n const showMore = useCallback(() => {\n dispatch(incrementThirdPartySearchPage());\n dispatch(search());\n }, [dispatch]);\n\n const doesNextPageExist = useMemo(\n () =>\n data &&\n data.length &&\n data[data.length - 1].items &&\n data[data.length - 1].queries.nextPage &&\n data[data.length - 1].queries.nextPage[0].count > 0,\n [data]\n );\n\n return (\n
\n
\n {loading && !loaded && }\n {data &&\n data.map(({items}) => {\n return items ? (\n items.map(({link, image, title}) => {\n const {thumbnailLink: previewSrc} = image;\n return (\n
\n () => dispatch(uploadImage(url))}\n />\n
\n );\n })\n ) : (\n Ничего не найдено\n );\n })}\n
\n
\n {doesNextPageExist ? (\n \n ) : null}\n
\n
\n );\n}\n\nGoogleSearchResults.propTypes = {};\n","import React from \"react\";\nimport {useSelector} from \"react-redux\";\nimport {GoogleSearchResults} from \"./GoogleSearchResults\";\nimport {ShutterStockResults} from \"./ShutterStockResults\";\nimport {uploaderSelector} from \"../../../selectors\";\n\nconst resultsSources = {\n \"google-search\": ,\n \"shutterstock\": \n};\n\nexport function Results() {\n const {\n uploader: {source}\n } = useSelector((state) => ({\n uploader: uploaderSelector(state)\n }));\n return resultsSources[source];\n}\n","import React, {useCallback, useMemo} from \"react\";\nimport {useSelector, useDispatch} from \"react-redux\";\nimport Loader from \"../../../../common/Loader\";\nimport {uploaderSelector} from \"../../../selectors\";\nimport Image from \"./Image\";\nimport {uploadShutterstockImage} from \"../../../AC/upload-shutterstock-image\";\nimport Button from \"@material-ui/core/Button\";\nimport {\n incrementThirdPartySearchPage,\n search\n} from \"../../../AC/third-party-search\";\n\nexport function ShutterStockResults() {\n const dispatch = useDispatch();\n const {\n uploader: {query, data, loading, loaded, page}\n } = useSelector((state) => ({\n uploader: uploaderSelector(state)\n }));\n\n const showMore = useCallback(() => {\n dispatch(incrementThirdPartySearchPage());\n dispatch(search());\n }, [dispatch]);\n\n const doesNextPageExist = useMemo(() => {\n if (!data || data.length === 0) {\n return false;\n }\n\n const perPage = data[0][`per_page`];\n const totalCount = data[0][`total_count`];\n const totalPages = Math.floor(totalCount / perPage);\n return page < totalPages;\n }, [data, page]);\n\n const imagesList = useMemo(() => {\n if (!data || data.length === 0) {\n return null;\n }\n\n return data.map((result) =>\n result.data.map((item) => (\n
\n () =>\n dispatch(uploadShutterstockImage(url, query, item))}\n />\n
\n ))\n );\n }, [data, dispatch, query]);\n\n return (\n
\n
\n {loading && !loaded && }\n {imagesList}\n
\n
\n {doesNextPageExist ? (\n \n ) : null}\n
\n
\n );\n}\n","import {uploadImage} from \"./upload-image\";\nimport {shutterStockRetrieveContributor} from \"../constants/api\";\nimport {FAIL, UPLOAD_IMAGE} from \"../constants/action-types\";\n\nexport const uploadShutterstockImage = (url, query, item) => (dispatch) => {\n shutterStockRetrieveContributor(item.contributor.id)\n .then((contributor) =>\n dispatch(\n uploadImage(\n url,\n {\n isShutterstockImage: true\n },\n {\n id: item.id,\n searchRequest: query,\n contributor: contributor[`display_name`]\n }\n )\n )\n )\n .catch(() =>\n dispatch({\n type: UPLOAD_IMAGE + FAIL\n })\n );\n};\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport TextField from \"@material-ui/core/TextField\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport SearchIcon from \"@material-ui/icons/Search\";\nimport {\n setSearchQuery,\n incrementThirdPartySearchPage,\n search,\n clearSearchData\n} from \"../../../AC/third-party-search\";\nimport {uploaderSelector} from \"../../../selectors\";\nimport withErrorBoundary from \"../../../decorators/withErrorBoundary\";\nimport {Results} from \"./Results\";\n\nconst styles = () => ({\n input: {\n padding: `14px`\n }\n});\n\nexport class ThirdPartySearch extends Component {\n static propTypes = {\n source: PropTypes.oneOf(`google-search`, `shutterstock`),\n classes: PropTypes.object,\n uploader: PropTypes.object,\n search: PropTypes.func,\n clearSearchData: PropTypes.func,\n uploadImage: PropTypes.func,\n setSearchQuery: PropTypes.func,\n incrementGoogleSearchPage: PropTypes.func\n };\n textValueRef = React.createRef();\n inputLabels = {\n \"google-search\": `Искать в Google`,\n \"shutterstock\": `Искать в ShutterStock`\n };\n handleChange = (event) => {\n this.props.setSearchQuery(event.target.value);\n };\n handleSubmit = (e) => {\n e.preventDefault();\n if (this.props.uploader.query) {\n this.props.search(this.props.source);\n }\n };\n componentDidMount() {\n this.textValueRef.current.focus();\n }\n componentWillUnmount() {\n this.props.clearSearchData();\n }\n render() {\n const {\n classes,\n uploader: {source, query: value}\n } = this.props;\n return (\n
\n
\n
\n
\n \n
\n this.props.search(this.props.source)}\n >\n \n \n
\n
\n
\n
\n \n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n uploader: uploaderSelector(state)\n});\n\nconst mapDispatchToProps = {\n search,\n setSearchQuery,\n incrementGoogleSearchPage: incrementThirdPartySearchPage,\n clearSearchData\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withStyles(styles)(withErrorBoundary(ThirdPartySearch)));\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport {uploaderSelector} from \"../../../selectors\";\nimport Local from \"./Local\";\nimport ThirdPartySearch from \"./ThirdPartySearch\";\n\nexport class Uploader extends PureComponent {\n static propTypes = {\n source: PropTypes.string\n };\n static defaultProps = {\n source: `local`\n };\n getSourceContent() {\n switch (this.props.source) {\n case `local`:\n return ;\n case `google-search`:\n return ;\n case `shutterstock`:\n return ;\n }\n return ;\n }\n render() {\n return (\n
\n
{this.getSourceContent()}
\n
\n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n source: uploaderSelector(state).source\n});\n\nexport default connect(mapStateToProps)(Uploader);\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport Modal from \"react-modal\";\nimport withErrorBoundary from \"../../decorators/withErrorBoundary\";\nimport {toggleModal} from \"../../AC/modal\";\nimport {\n modalSelector,\n conditionSelector,\n onPlatformSelector\n} from \"../../selectors\";\nimport Uploader from \"./Uploader\";\nimport ImageIcon from \"@material-ui/icons/ImageOutlined\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport Button from \"@material-ui/core/Button\";\nimport classNames from \"classnames\";\nimport productSettings from \"../../services/product-settings\";\n\nconst styles = () => ({\n button: {\n backgroundColor: `#52abda`,\n height: `46px`,\n width: `100%`,\n boxShadow: `none`,\n borderRadius: `23px`,\n \"&:hover\": {\n opacity: `.8`,\n backgroundColor: `#52abda`\n },\n \"&:active\": {\n boxShadow: `none`\n }\n },\n vtb: {\n borderRadius: `4px`,\n backgroundColor: `#00AAFF`,\n color: `white`\n }\n});\n\nclass AddingPicture extends PureComponent {\n static propTypes = {\n isModalOpen: PropTypes.bool,\n condition: PropTypes.object,\n toggleModal: PropTypes.func,\n classes: PropTypes.object,\n onPlatform: PropTypes.string\n };\n toggleModal = () => {\n this.props.toggleModal(`pictures`);\n };\n isDisabled = () => {\n const {\n condition: {product, side}\n } = this.props;\n const settings = productSettings[product];\n return (\n settings &&\n settings.permissions &&\n settings.permissions[side] &&\n !settings.permissions[side].image\n );\n };\n render() {\n const {isModalOpen, classes, onPlatform} = this.props;\n const disabled = this.isDisabled();\n return (\n
\n \n \n
\n \n \n Фото \n \n \n
\n \n
\n \n \n \n \n
\n );\n }\n}\n\nModal.setAppElement(`body`);\n\nconst mapStateToProps = (state) => ({\n isModalOpen: modalSelector(state, `pictures`),\n condition: conditionSelector(state),\n onPlatform: onPlatformSelector(state)\n});\n\nexport default connect(mapStateToProps, {toggleModal})(\n withErrorBoundary(withStyles(styles)(AddingPicture))\n);\n","import React, {PureComponent} from \"react\";\nimport AddingText from \"./AddingText\";\nimport AddingPicture from \"./AddingPicture\";\n\nexport class ObjectManager extends PureComponent {\n render() {\n return (\n
\n
\n \n
\n
\n \n
\n
\n );\n }\n}\n\nexport default ObjectManager;\n","import {\n APPLY_CONDITION_TO_SIDES,\n START,\n SUCCESS,\n FAIL\n} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\n\nexport const applyConditionToSides = () => {\n return (dispatch, getState) => {\n dispatch({\n type: APPLY_CONDITION_TO_SIDES + START\n });\n (async () => {\n try {\n const {\n condition: {product, variants},\n product: {\n meta: {designs}\n }\n } = getState();\n const assets = await Promise.all(\n designs.map(async (design) => {\n return {\n [design.side]: await Mediator.getProductAssets({\n product,\n style: `small`,\n side: design.side,\n variants\n })\n };\n })\n ).catch((e) => {\n throw new Error(e);\n });\n dispatch({\n type: APPLY_CONDITION_TO_SIDES + SUCCESS,\n payload: {\n assets: assets.reduce((acc, item) => ({...acc, ...item}), {})\n }\n });\n } catch (e) {\n dispatch({\n type: APPLY_CONDITION_TO_SIDES + FAIL,\n error: `Произошла ошибка при загрузке сторон товара`\n });\n }\n })();\n };\n};\n","import {CHANGE_SIDE} from \"../constants/action-types\";\n\nconst getSideIndex = (metaDesigns, side) => {\n return metaDesigns.reduce(\n (acc, item, i) => (item.side === side ? i : acc),\n 0\n );\n};\nconst getSideInfo = (side, designs) => {\n return designs.find((design) => {\n return design.side === side;\n });\n};\nexport const changeSide = (side) => (dispatch, getState) => {\n const {\n designs,\n condition: {design: prevDesign, side: prevSide},\n product: {\n meta: {designs: metaDesigns}\n }\n } = getState();\n\n const prevSideIndex = getSideIndex(metaDesigns, prevSide);\n const nextSideIndex = getSideIndex(metaDesigns, side);\n const {dimensions, dpi} = getSideInfo(side, metaDesigns);\n\n dispatch({\n type: CHANGE_SIDE,\n payload: {\n prev: {\n side: prevSide,\n index: prevSideIndex,\n design: prevDesign ? prevDesign : {}\n },\n next: {\n side,\n index: nextSideIndex,\n design: designs[nextSideIndex].design,\n dimensions,\n dpi\n }\n }\n });\n};\n","import React, {PureComponent} from \"react\";\nimport {connect} from \"react-redux\";\nimport classnames from \"classnames\";\nimport PropTypes from \"prop-types\";\nimport Loader from \"../../common/Loader\";\nimport {\n productSelector,\n conditionSelector,\n designsSelector,\n sidesSelector,\n onPlatformSelector\n} from \"../selectors\";\nimport {applyConditionToSides} from \"../AC/apply-condition-to-sides\";\nimport {changeSide} from \"../AC/change-side\";\nimport withErrorBoundary from \"../decorators/withErrorBoundary\";\nimport {getFormattedBasicDependentPriceMap} from \"../services/lib/get-price-from-scheme\";\nimport hasDesign from \"../services/lib/has-design\";\nimport priceFormat from \"../services/lib/price-format\";\nimport { shortCurrency } from \"../../../utils/currency\";\n\nclass SideControl extends PureComponent {\n static propTypes = {\n product: PropTypes.object,\n condition: PropTypes.object,\n sides: PropTypes.object,\n designs: PropTypes.object,\n changeSide: PropTypes.func,\n applyConditionToSides: PropTypes.func,\n onPlatform: PropTypes.string\n };\n componentDidMount() {\n this.props.applyConditionToSides();\n }\n componentDidUpdate(prevProps) {\n const {condition: prevCondition} = prevProps;\n const {condition: nextCondition} = this.props;\n // disable update canvas when change design\n if (\n JSON.stringify({...prevCondition, design: ``}) ===\n JSON.stringify({...nextCondition, design: ``})\n ) {\n return;\n }\n this.props.applyConditionToSides();\n }\n changeSide = (side) => () => {\n return this.props.changeSide(side);\n };\n getPriceLabelForSide(side) {\n const {\n product: {\n meta: {designs, price_data: priceData}\n },\n designs: designData,\n condition: {variants},\n onPlatform,\n currency\n } = this.props;\n\n const getIndexOfDesignBySide = (metaDesigns, sideParam) => {\n return metaDesigns.reduce(\n (acc, item, i) => (item.side === sideParam ? i : acc),\n 0\n );\n };\n const indexOfDesign = getIndexOfDesignBySide(designs, side);\n const sideHasDesign = hasDesign(designData[indexOfDesign].design);\n\n let price = null;\n\n const isMainSide =\n indexOfDesign === 0 && !designs[indexOfDesign].additional;\n const isMainDoubleSide =\n indexOfDesign === 1 && !designs[indexOfDesign].additional;\n const isAdditionalDesign = !!designs[indexOfDesign].additional;\n\n if (priceData.pricing_scheme === `basic_variant_dependent`) {\n const priceMap = getFormattedBasicDependentPriceMap(\n priceData.variant_prices\n );\n const dependent = Object.keys(priceData.variant_prices[0])[0];\n const priceMapForVariant = priceMap[variants[dependent]];\n\n if (isMainSide) {\n price = priceMapForVariant[0];\n } else if (isMainDoubleSide) {\n price = priceMapForVariant[1] || 0;\n } else if (isAdditionalDesign) {\n price = priceMapForVariant[2] || 0;\n } else {\n price = 0;\n }\n } else if (priceData.pricing_scheme === `basic`) {\n if (isMainSide) {\n price = priceData.base_price;\n } else if (isMainDoubleSide) {\n price = priceData.double_side_adjustment || 0;\n } else if (isAdditionalDesign) {\n price = priceData.additional_design_adjustment || 0;\n } else {\n price = 0;\n }\n }\n\n return (\n (price || price === 0) && (\n \n {!isMainSide ? `+${priceFormat(price)}` : priceFormat(price)}\n {shortCurrency(currency, price)}\n \n )\n );\n }\n\n render() {\n const {\n product: {\n meta: {designs, price_data: priceData}\n },\n condition: {side: activeSide},\n sides\n } = this.props;\n if (!sides) {\n return void 0;\n }\n const {loading, loaded, assets} = sides;\n return (\n designs.length > 1 && (\n
\n {designs.map((design) => {\n const {side, name, translated_name: translatedName} = design;\n return (\n \n {loading && !loaded && }\n {loaded && (\n \n {translatedName}\n\n {priceData.pricing_scheme === `basic_variant_dependent` ||\n priceData.pricing_scheme === `basic`\n ? this.getPriceLabelForSide(side)\n : null}\n \n )}\n
\n );\n })}\n \n )\n );\n }\n}\n\nexport default connect(\n (state) => ({\n product: productSelector(state),\n designs: designsSelector(state),\n condition: conditionSelector(state),\n sides: sidesSelector(state),\n onPlatform: onPlatformSelector(state),\n currency: state.currency\n }),\n {\n changeSide,\n applyConditionToSides\n }\n)(withErrorBoundary(SideControl));\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport TextField from \"@material-ui/core/TextField\";\n\nclass TextValue extends React.Component {\n static propTypes = {\n current: PropTypes.string,\n handleChange: PropTypes.func,\n inputRef: PropTypes.object\n };\n render() {\n const {current, handleChange, inputRef} = this.props;\n return (\n
\n \n
\n );\n }\n}\n\nexport default TextValue;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport PropTypes from \"prop-types\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport InputLabel from \"@material-ui/core/InputLabel\";\nimport OutlinedInput from \"@material-ui/core/OutlinedInput\";\nimport Select from \"@material-ui/core/Select\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport {withStyles} from \"@material-ui/core/styles\";\n\nconst styles = {\n input: {\n \"paddingTop\": `14px`,\n \"paddingBottom\": `14px`,\n \"&:hover\": {\n backgroundColor: `rgba(0, 0, 0, 0.08)`\n }\n }\n};\n\nclass MSelect extends React.Component {\n static propTypes = {\n name: PropTypes.string,\n isOpen: PropTypes.bool,\n label: PropTypes.string,\n current: PropTypes.shape({\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.oneOfType([PropTypes.string, PropTypes.number])\n }),\n onChange: PropTypes.func,\n onPreviewHover: PropTypes.func,\n options: PropTypes.array,\n optionStyles: PropTypes.func,\n classes: PropTypes.object\n };\n static defaultProps = {\n isOpen: false\n };\n state = {\n labelWidth: 0,\n isOpen: this.props.isOpen\n };\n InputLabelRef = React.createRef();\n componentDidMount() {\n /* eslint-disable react/no-find-dom-node*/\n this.setState({\n labelWidth: ReactDOM.findDOMNode(this.InputLabelRef.current).offsetWidth\n });\n /* eslint-enable react/no-find-dom-node*/\n }\n handleOpen = () => {\n this.setState({\n isOpen: true\n });\n };\n handleClose = () => {\n this.setState({\n isOpen: false\n });\n };\n render() {\n const {\n current,\n onChange,\n onPreviewHover,\n label,\n options,\n optionStyles,\n classes\n } = this.props;\n const {labelWidth, isOpen} = this.state;\n return (\n \n \n {label}\n \n \n }\n >\n {options.map((option) => {\n const optionCSS = (optionStyles && optionStyles(option)) || {};\n return (\n {\n if (isOpen) {\n onPreviewHover(option.value);\n }\n }}\n >\n {option.label}\n \n );\n })}\n \n \n );\n }\n}\n\nexport default withStyles(styles)(MSelect);\n","export const fontFamilies = {\n \"Arial\": {\n fontWeight: true,\n fontStyle: true,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Roboto\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Open Sans\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"PT Sans\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Open Sans Condensed\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Roboto Condensed\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Montserrat Alternates\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Playfair Display SC\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Jost\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"PT Sans Caption\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Affect\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Candara\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"CentSchbkCyrill BT\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Adlery Pro\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"ALSSchlangesans-Black\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"ALSSchlangesans-Bold\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Bodoni 72\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Celestina\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Debby Script\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Cinzel\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"DIN Condensed\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Elowen\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Georgia\": {\n fontWeight: true,\n fontStyle: true,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Impact\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Katona III\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Kizo\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Kosko Regular\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"MADE TheArtist Script\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Monly\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Montserrat\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Montserrat ExtraBold\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Montserrat ExtraLight\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Montserrat Thin\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Pacifico\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"PosterizerKGRough\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Proxima Nova Extrabold\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Proxima Nova Light\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Proxima Nova Regular\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Proxima Nova Semibold\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Rozovii Chulok\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Shnobel\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"AA Haymaker\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"AA Magnum\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Alabama\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"AllegroScript\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"AmazDooMRight2\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Ariadna Script\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"a_Simpler\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"BadScript\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Brusher\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Capitalist\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Champagne Cyrillic\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Coca-Cola\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Cochin\": {\n fontWeight: true,\n fontStyle: true,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Code Pro Black\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Colus\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Container\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Courier New\": {\n fontWeight: true,\n fontStyle: true,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"DS Rabbit\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"DS Rada_Double\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Denistina\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Fowviel\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Gabor Pro\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Game of Thrones\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Genplan Free\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Hagin Caps Thin\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"HT Skyline\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Helvetica\": {\n fontWeight: true,\n fontStyle: true,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"I fink u freeky\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Intro Cond\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Jamaistevie\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Kuritza\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Lest\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Lighthaus\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Lombard\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Lumberjack\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Marker Felt\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Molot\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Mountains of Christmas C\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Movus BrushPen C\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Nathan Condensed\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Nexa Script\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Odessa Script\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Rounds Black\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Snowstorm Kraft\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Sprite Graffiti\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Tsarevich\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Ubuntu\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Uni Sans Heavy Caps\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Uni Sans Thin Caps\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Wild honey\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Wings of Darkness\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Wooden Ship Decorated\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Xiomara\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Yanone Kaffeesatz\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Zantroke\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n },\n \"Zhizn\": {\n fontWeight: false,\n fontStyle: false,\n linethrough: true,\n underline: true,\n shadow: true\n }\n};\n\nexport const fontSizes = [\n {value: 6, label: `6`},\n {value: 7, label: `7`},\n {value: 8, label: `8`},\n {value: 9, label: `9`},\n {value: 10, label: `10`},\n {value: 11, label: `11`},\n {value: 12, label: `12`},\n {value: 14, label: `14`},\n {value: 18, label: `18`},\n {value: 24, label: `24`},\n {value: 30, label: `30`},\n {value: 36, label: `36`},\n {value: 48, label: `48`},\n {value: 60, label: `60`},\n {value: 72, label: `72`},\n {value: 96, label: `96`}\n];\n\nexport const fontStyles = [\n {\n style: `fontWeight`,\n resetValue: `normal`,\n setValue: `bold`,\n tooltip: `Полужирный`\n },\n {\n style: `fontStyle`,\n resetValue: `normal`,\n setValue: `italic`,\n tooltip: `Курсив`\n },\n {\n style: `underline`,\n resetValue: false,\n setValue: true,\n tooltip: `Подчеркнутый`\n },\n {\n style: `linethrough`,\n resetValue: false,\n setValue: true,\n tooltip: `Зачеркнутый`\n },\n {\n style: `shadow`,\n resetValue: ``,\n setValue: `5px 5px 5px rgba(0,0,0,0.3)`,\n tooltip: `Тень`\n }\n];\n\nexport const textAlings = [\n {\n value: `left`,\n tooltip: `Выровнять по левому краю`\n },\n {\n value: `center`,\n tooltip: `Выровнять по центру`\n },\n {\n value: `right`,\n icon: `fas fa-align-right`,\n tooltip: `Выровнять по правому краю`\n },\n {\n value: `justify`,\n tooltip: `Выровнять по ширине`\n }\n];\n\nexport const lineHeight = {\n min: 0.5,\n max: 4,\n step: 0.2\n};\n\nexport const pichshopFonts = {\n \"Affect\": true,\n \"Candara\": true,\n \"CentSchbkCyrill BT\": true,\n \"Adlery Pro\": true,\n \"ALSSchlangesans-Black\": true,\n \"ALSSchlangesans-Bold\": true,\n \"Bodoni 72\": true,\n \"Celestina\": true,\n \"DIN Condensed\": true,\n \"Elowen\": true,\n \"Georgia\": true,\n \"Impact\": true,\n \"Katona III\": true,\n \"Kizo\": true,\n \"Kosko Regular\": true,\n \"MADE TheArtist Script\": true,\n \"Monly\": true,\n \"Montserrat\": true,\n \"Montserrat ExtraBold\": true,\n \"Montserrat ExtraLight\": true,\n \"Montserrat Thin\": true,\n \"Pacifico\": true,\n \"PosterizerKGRough\": true,\n \"Proxima Nova Extrabold\": true,\n \"Proxima Nova Light\": true,\n \"Proxima Nova Regular\": true,\n \"Proxima Nova Semibold\": true,\n \"Rozovii Chulok\": true,\n \"Shnobel\": true,\n \"Debby Script\": true,\n \"Cinzel\": true\n};\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport Select from \"../MSelect\";\nimport {fontFamilies, pichshopFonts} from \"../../services/lib/fonts\";\nimport {isPichshopSelector} from \"../../selectors\";\n\nfunction FontFamily(props) {\n const {current, isPichshop, handleChange} = props;\n return (\n
\n handleChange(`fontFamily`, fontFamily)()}\n options={Object.keys(fontFamilies)\n .map((font) => ({\n value: font,\n label: font\n }))\n .filter((font) => isPichshop || !pichshopFonts[font.value])}\n optionStyles={(option) => {\n return {\n fontFamily: option.value\n };\n }}\n />\n
\n );\n}\n\nFontFamily.propTypes = {\n current: PropTypes.string,\n handleChange: PropTypes.func,\n isPichshop: PropTypes.bool\n};\n\nexport default connect((state) => ({\n isPichshop: isPichshopSelector(state)\n}))(FontFamily);\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n \n ,\n `Enhancer`\n);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {fontStyles, fontFamilies} from \"../../services/lib/fonts\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Menu from \"@material-ui/core/Menu\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport FormatBoldIcon from \"@material-ui/icons/FormatBold\";\nimport FormatItalicIcon from \"@material-ui/icons/FormatItalic\";\nimport FormatUnderlinedIcon from \"@material-ui/icons/FormatUnderlined\";\nimport StrikethroughSIcon from \"@material-ui/icons/StrikethroughS\";\nimport ShadowIcon from \"../../../../icons/ShadowIcon\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\n\nclass FontStyle extends React.Component {\n static propTypes = {\n current: PropTypes.object,\n handleChange: PropTypes.func\n };\n state = {\n anchorEl: null\n };\n handleClick = (event) => {\n this.setState({anchorEl: event.currentTarget});\n };\n handleClose = () => {\n this.setState({anchorEl: null});\n };\n getIconForFontStyle(style) {\n switch (style) {\n case `fontWeight`:\n return ;\n case `fontStyle`:\n return ;\n case `underline`:\n return ;\n case `linethrough`:\n return ;\n case `shadow`:\n return ;\n }\n return void 0;\n }\n render() {\n const {current, handleChange} = this.props;\n const {anchorEl} = this.state;\n return (\n
\n \n \n \n \n \n \n \n \n {fontStyles.map(({style, setValue, resetValue, tooltip}) => {\n const active = setValue === current[style];\n const value = active ? resetValue : setValue;\n const disabled = !fontFamilies[current.fontFamily][style];\n return (\n {\n handleChange(style, value)();\n this.handleClose();\n }}\n selected={active}\n disabled={disabled}\n >\n {this.getIconForFontStyle(style)}\n {tooltip}\n \n );\n })}\n \n \n
\n );\n }\n}\n\nexport default FontStyle;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {textAlings} from \"../../services/lib/fonts\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Menu from \"@material-ui/core/Menu\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport FormatAlignLeftIcon from \"@material-ui/icons/FormatAlignLeft\";\nimport FormatAlignCenterIcon from \"@material-ui/icons/FormatAlignCenter\";\nimport FormatAlignRightIcon from \"@material-ui/icons/FormatAlignRight\";\nimport FormatAlignJustifyIcon from \"@material-ui/icons/FormatAlignJustify\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\n\nclass TextAlign extends React.Component {\n static propTypes = {\n current: PropTypes.string,\n handleChange: PropTypes.func\n };\n getIconForTextAlign(style) {\n switch (style) {\n case `left`:\n return ;\n case `center`:\n return ;\n case `right`:\n return ;\n case `justify`:\n return ;\n }\n return void 0;\n }\n state = {\n anchorEl: null\n };\n handleClick = (event) => {\n this.setState({anchorEl: event.currentTarget});\n };\n handleClose = () => {\n this.setState({anchorEl: null});\n };\n render() {\n const {current, handleChange} = this.props;\n const {anchorEl} = this.state;\n return (\n
\n \n \n \n {this.getIconForTextAlign(current)}\n \n \n \n \n {textAlings.map(({value, tooltip}) => {\n const selected = current === value;\n return (\n {\n handleChange(`textAlign`, value)();\n this.handleClose();\n }}\n selected={selected}\n >\n {this.getIconForTextAlign(value)}\n {tooltip}\n \n );\n })}\n \n \n
\n );\n }\n}\n\nexport default TextAlign;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {ChromePicker, GithubPicker} from \"react-color\";\nimport withErrorBoundary from \"../decorators/withErrorBoundary\";\nimport trackEvent from \"../../../utils/track-event\";\n\nclass ColorPicker extends React.Component {\n static propTypes = {\n color: PropTypes.string,\n onChange: PropTypes.func,\n children: PropTypes.element,\n position: PropTypes.string,\n withoutTransparent: PropTypes.bool,\n content: PropTypes.element\n };\n static defaultProps = {\n position: `bottom-right`,\n withoutTransparent: false\n };\n state = {\n isOpenPicker: false,\n pickerType: `Популярные`\n };\n componentDidMount() {\n document.addEventListener(`mousedown`, this.togglePicker.bind(this));\n }\n componentWillUnmount() {\n document.removeEventListener(`mousedown`, this.togglePicker.bind(this));\n }\n togglePicker = (e) => {\n const paletteNode = this.palette.current;\n const contentNode = this.content.current;\n if (paletteNode && !contentNode) {\n this.setState({\n isOpenPicker: paletteNode.contains(e.target)\n ? !this.state.isOpenPicker\n : false\n });\n } else if (paletteNode && contentNode) {\n this.setState({\n isOpenPicker: paletteNode.contains(e.target)\n ? !this.state.isOpenPicker\n : contentNode.contains(e.target)\n });\n }\n };\n setPickerType = (type) => () => {\n this.setState({\n pickerType: type\n });\n if (type === `Палитра`) {\n trackEvent({\n category: `Editor`,\n action: `Palette`\n });\n }\n };\n onChangeCirclePicker = (e) => {\n this.props.onChange(e, `circle`);\n };\n onChangeChromePicker = (e) => {\n this.props.onChange(e, `palette`);\n };\n getPicker() {\n const {pickerType} = this.state;\n const {color} = this.props;\n switch (pickerType) {\n case `Популярные`:\n return (\n {\n this.onChangeCirclePicker(e);\n this.togglePicker(e);\n }}\n colors={[\n `rgb(0,0,0)`,\n `rgb(80,0,255)`,\n `rgb(4,16,160)`,\n `rgb(33,165,42)`,\n `rgb(255,102,0)`,\n\n `rgb(102,102,102)`,\n `rgb(117,34,189)`,\n `rgb(0,0,255)`,\n `rgb(0,255,0)`,\n `rgb(255,153,153)`,\n\n `rgb(128,128,128)`,\n `rgb(169,51,204)`,\n `rgb(0,108,255)`,\n `rgb(199,255,92)`,\n `rgb(255,98,98)`,\n\n `rgb(170,180,180)`,\n `rgb(217,112,255)`,\n `rgb(11,173,255)`,\n `rgb(255,255,153)`,\n `rgb(198,0,82)`,\n\n `rgb(255,255,255)`,\n `rgb(174,111,255)`,\n `rgb(167,209,255)`,\n `rgb(255,213,0)`,\n `rgb(109,0,62)`,\n\n `transparent`,\n `rgb(197,172,255)`,\n `rgb(0,255,255)`,\n `rgb(255,255,0)`,\n `rgb(255,0,0)`\n ]}\n />\n );\n case `Палитра`:\n return (\n \n );\n }\n return void 0;\n }\n palette = React.createRef();\n content = React.createRef();\n render() {\n const {color, children, position, content} = this.props;\n const {isOpenPicker, pickerType} = this.state;\n return (\n \n {children ? (\n
\n {children}\n
\n ) : (\n \n )}\n {isOpenPicker && (\n \n
\n {content ? content : null}\n {[`Популярные`, `Палитра`].map((item) => {\n return (\n \n {item}\n \n );\n })}\n
\n
{this.getPicker()}
\n \n )}\n \n );\n }\n}\n\nexport default withErrorBoundary(ColorPicker);\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\nexport default createSvgIcon(\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n `FormatColorTextWithShadowIcon`\n);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport ColorPicker from \"../ColorPicker\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport withMobileContext from \"../../decorators/withMobileContext\";\nimport FormatColorTextWithShadowIcon from \"../../../../icons/FormatColorTextWithShadowIcon\";\nimport trackEvent from \"../../../../utils/track-event\";\n\nfunction TextColor(props) {\n const {current, handleChange, isMobile} = props;\n return (\n {\n handleChange(`fill`)(e);\n if (pickerType === `palette`) {\n trackEvent({\n category: `Editor`,\n action: `Palette`,\n label: `Font`\n });\n }\n }}\n position={isMobile ? `top-center` : `bottom-right`}\n >\n \n
\n \n
\n
\n \n );\n}\n\nTextColor.propTypes = {\n current: PropTypes.string,\n handleChange: PropTypes.func,\n isMobile: PropTypes.bool\n};\n\nexport default withMobileContext(TextColor);\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {fontSizes} from \"../../services/lib/fonts\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Menu from \"@material-ui/core/Menu\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\n\nclass FontSize extends React.Component {\n static propTypes = {\n current: PropTypes.number,\n handleChange: PropTypes.func\n };\n handleClick = (event) => {\n this.setState({anchorEl: event.currentTarget});\n };\n handleClose = () => {\n this.setState({anchorEl: null});\n };\n state = {\n anchorEl: null\n };\n render() {\n const {current, handleChange} = this.props;\n const {anchorEl} = this.state;\n return (\n
\n \n \n {current}\n \n \n \n \n {fontSizes.map(({value}) => {\n const selected = current === value;\n return (\n {\n handleChange(`fontSize`, value)();\n this.handleClose();\n }}\n onMouseEnter={() => {\n if (this.state.anchorEl) {\n handleChange(`fontSize`, value)();\n }\n }}\n selected={selected}\n >\n {value}\n \n );\n })}\n \n
\n );\n }\n}\n\nexport default FontSize;\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport Provider from \"pubsub-js\";\nimport {scroller, Element} from \"react-scroll\";\nimport {TEXT_CHANGED, TEXT_ADDED} from \"../../constants/event-types\";\nimport {setTextProperty} from \"../../AC/set-text-property\";\nimport Mediator from \"../../services/Mediator\";\nimport withErrorBoundary from \"../../decorators/withErrorBoundary\";\nimport withSelectionContext from \"../../decorators/withSelectionContext\";\nimport TextValue from \"./TextValue\";\nimport FontFamily from \"./FontFamily\";\nimport FontStyle from \"./FontStyle\";\nimport TextAlign from \"./TextAlign\";\nimport TextColor from \"./TextColor\";\nimport FontSize from \"./FontSize\";\n\nclass TextControl extends Component {\n static propTypes = {\n setTextProperty: PropTypes.func,\n selected: PropTypes.object\n };\n state = {\n text: `Впишите текст`,\n fontFamily: `Helvetica`,\n fontSize: 40,\n fontWeight: `normal`,\n linethrough: false,\n overline: false,\n underline: false,\n shadow: null,\n fontStyle: `normal`,\n stroke: null,\n strokeWidth: 1,\n textAlign: `left`,\n lineHeight: 1.16,\n textBackgroundColor: ``,\n fill: `rgb(0,0,0)`\n };\n onTextChanged = (_, target) => {\n this.setStateFromOText(target);\n };\n setStateFromOText(oText) {\n const {\n text,\n fontFamily,\n fontSize,\n fontWeight,\n linethrough,\n overline,\n underline,\n shadow,\n fontStyle,\n stroke,\n strokeWidth,\n textAlign,\n lineHeight,\n textBackgroundColor,\n fill\n } = oText;\n this.setState({\n text,\n fontFamily,\n fontSize,\n fontWeight,\n linethrough,\n overline,\n underline,\n shadow,\n fontStyle,\n stroke,\n strokeWidth,\n textAlign,\n lineHeight,\n textBackgroundColor,\n fill\n });\n }\n handleChange = (property, val) => (o) => {\n let value =\n (o && o.rgb) ||\n (o && o.target && o.currentTarget.value) ||\n (o && o.target && o.target.value);\n\n if (o && o.target && o.currentTarget.value === ``) {\n value = o.currentTarget.value;\n }\n if (val || val === false || val === ``) {\n value = val;\n }\n if (value.r || value.r === 0) {\n const {r, g, b, a} = value;\n const rgba = `rgba(${r}, ${g}, ${b}, ${a})`;\n value = rgba;\n }\n this.setState({\n [property]: value\n });\n this.props.setTextProperty(property, value);\n };\n focusTextField = () => {\n const viewHeight = window.innerHeight;\n scroller.scrollTo(`scroll-element`, {\n smooth: true,\n offset: -viewHeight + 150 // Scrolls to element + 50 pixels down the page\n });\n };\n textValueRef = React.createRef();\n componentDidMount() {\n Provider.subscribe(TEXT_ADDED, this.focusTextField);\n Provider.subscribe(TEXT_CHANGED, this.onTextChanged);\n }\n componentDidUpdate(prevProps) {\n const {selected: prevSelected} = prevProps;\n const {selected} = this.props;\n if (\n selected &&\n Mediator.isText(selected) &&\n JSON.stringify(selected) !== JSON.stringify(prevSelected)\n ) {\n this.setStateFromOText(selected);\n }\n }\n componentWillUnmount() {\n Provider.unsubscribe(TEXT_CHANGED, this.onTextChanged);\n Provider.unsubscribe(TEXT_ADDED, this.focusTextField);\n }\n render() {\n const {\n text,\n fontFamily,\n shadow,\n fontSize,\n fontStyle,\n textAlign,\n fill,\n fontWeight,\n underline,\n linethrough\n } = this.state;\n const {selected} = this.props;\n return selected && Mediator.isText(selected) ? (\n
\n
Текст
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n ) : null;\n }\n}\n\nexport default connect(null, {setTextProperty})(\n withErrorBoundary(withSelectionContext(TextControl))\n);\n","import {CHANGE_TEXT} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\n\nexport const setTextProperty = (property, value) => (dispatch) => {\n dispatch({\n type: CHANGE_TEXT\n });\n Mediator.setActiveTextProperty(property, value);\n};\n","import React from \"react\";\nimport dictionary from \"../dictionary\";\n\nexport default React.createContext(dictionary);\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport priceFormat from \"../../../services/lib/price-format\";\n\nexport default class LineTemplate extends PureComponent {\n static propTypes = {\n variant: PropTypes.string.isRequired,\n title: PropTypes.string,\n subTitle: PropTypes.string,\n items: PropTypes.oneOfType([PropTypes.array, PropTypes.object]).isRequired,\n itemsMap: PropTypes.object,\n changeVariant: PropTypes.func,\n currentValue: PropTypes.string,\n dict: PropTypes.object,\n customHandleClick: PropTypes.func,\n description: PropTypes.bool,\n priceMap: PropTypes.object,\n filterOfItemsBy: PropTypes.object\n };\n render() {\n const {variant, title, subTitle, items, filterOfItemsBy} = this.props;\n return (\n
\n {title &&
{title}
}\n {subTitle &&
{subTitle}
}\n
\n {Array.isArray(items)\n ? this.getItemsFromArray(\n filterOfItemsBy\n ? items.filter((item) => filterOfItemsBy.test(item))\n : items\n )\n : this.getItemsFromObject(items)}\n
\n
\n );\n }\n getItemsFromArray(items) {\n return items.map((item) => {\n return this.getElement(item);\n });\n }\n getItemsFromObject(items) {\n const elements = [];\n for (const key in items) {\n if (items.hasOwnProperty(key)) {\n const item = items[key];\n elements.push(this.getElement(item, key));\n }\n }\n return elements;\n }\n getElement(value, key) {\n const {\n variant,\n changeVariant,\n customHandleClick,\n currentValue,\n dict,\n description,\n priceMap\n } = this.props;\n\n const val = key || value;\n return (\n {\n if (customHandleClick) {\n customHandleClick(e, variant, val);\n }\n changeVariant(e, variant, val);\n }}\n >\n \n {description && (\n
\n {dict[val]}\n {priceMap && priceMap[val] && (\n \n
\n {`${priceFormat(priceMap[val][0])}/${priceFormat(\n priceMap[val][1]\n )}`}\n
\n )}\n
\n )}\n \n );\n }\n getBackground(val) {\n const {itemsMap, items, filterOfItemsBy} = this.props;\n if (itemsMap) {\n if (filterOfItemsBy && val.indexOf(`-`) > -1) {\n return itemsMap[val.replace(filterOfItemsBy, ``)];\n }\n return itemsMap[val];\n }\n return `url(${items[val]})`;\n }\n}\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport priceFormat from \"../../../services/lib/price-format\";\n\nexport default class SelectTemplate extends PureComponent {\n static propTypes = {\n variant: PropTypes.string.isRequired,\n title: PropTypes.string,\n items: PropTypes.array.isRequired,\n changeVariant: PropTypes.func,\n currentValue: PropTypes.string,\n dict: PropTypes.object,\n customHandleClick: PropTypes.func,\n priceMap: PropTypes.object\n };\n render() {\n const {\n variant,\n items,\n changeVariant,\n customHandleClick,\n currentValue,\n dict,\n priceMap,\n title\n } = this.props;\n return (\n
\n {title &&
{title}
}\n
\n {\n const value = e.target.value;\n if (customHandleClick) {\n customHandleClick(e, variant, value);\n }\n changeVariant(e, variant, value);\n }}\n >\n {items.map((item) => {\n return (\n \n );\n })}\n \n
\n
\n );\n }\n}\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport priceFormat from \"../../../services/lib/price-format\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\n\nexport default class CheckboxTemplate extends PureComponent {\n static propTypes = {\n variant: PropTypes.string.isRequired,\n title: PropTypes.string,\n items: PropTypes.array.isRequired,\n changeVariant: PropTypes.func,\n currentValue: PropTypes.string,\n dict: PropTypes.object,\n customHandleClick: PropTypes.func,\n priceMap: PropTypes.number\n };\n render() {\n const {\n variant,\n items,\n changeVariant,\n customHandleClick,\n currentValue,\n priceMap,\n title\n } = this.props;\n return (\n
\n
\n \n {\n const value = e.target.checked ? items[1] : items[0];\n if (customHandleClick) {\n customHandleClick(e, variant, value);\n }\n changeVariant(e, variant, value);\n }}\n color=\"primary\"\n />\n }\n label={\n title\n ? `${title} ${priceMap ? priceFormat(priceMap) : ``}`\n : null\n }\n />\n \n
\n
\n );\n }\n}\n","import React from \"react\";\n\nexport default function ColorWheelIcon() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport {conditionSelector, forAllSidesSelector} from \"../../../selectors\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport isTransparent from \"../../../services/lib/is-transparent\";\nimport ColorPicker from \"../../ColorPicker\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport ColorWheelIcon from \"../../ColorWheelIcon\";\nimport trackEvent from \"../../../../../utils/track-event\";\nimport withMobileContext from \"../../../decorators/withMobileContext\";\nimport {setForAllSides} from \"../../../AC/set-for-all-sides\";\n\nexport class LineWithColorPicker extends Component {\n static propTypes = {\n variant: PropTypes.string,\n title: PropTypes.string,\n items: PropTypes.array,\n changeVariant: PropTypes.func,\n setForAllSides: PropTypes.func,\n condition: PropTypes.object,\n forAllSides: PropTypes.bool,\n isMobile: PropTypes.bool\n };\n handleCheckboxChange = (e) => {\n const {checked} = e.target;\n this.props.setForAllSides(checked);\n if (checked) {\n const {variant, changeVariant} = this.props;\n const currentValue = this.getCurrentValue();\n changeVariant(e, variant, currentValue, true);\n }\n };\n getCurrentValue() {\n const {\n condition: {\n design: {background}\n }\n } = this.props;\n\n if (isTransparent(background)) {\n return `transparent`;\n }\n return background;\n }\n render() {\n const {items, variant, changeVariant, isMobile, forAllSides} = this.props;\n const currentValue = this.getCurrentValue();\n return (\n
\n
\n {items.map((val) => (\n {\n changeVariant(e, variant, val, forAllSides);\n }}\n >\n \n
\n ))}\n
\n {\n changeVariant(e, variant, e.rgb);\n if (pickerType === `palette`) {\n trackEvent({\n category: `Editor`,\n action: `Palette`,\n label: `Background color`\n });\n }\n }}\n position={isMobile ? `bottom-left` : `bottom-right`}\n >\n \n
\n \n
\n
\n \n
\n
\n \n \n }\n label=\"Применять ко всем сторонам\"\n />\n \n
\n
\n \n );\n }\n}\n\nconst mapStateToProps = (state) => ({\n condition: conditionSelector(state),\n forAllSides: forAllSidesSelector(state)\n});\n\nconst mapDispatchToProps = {\n setForAllSides\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withMobileContext(LineWithColorPicker));\n","import {SET_FOR_ALL_SIDES} from \"../constants/action-types\";\n\nexport const setForAllSides = (forAllSides) => ({\n type: SET_FOR_ALL_SIDES,\n payload: forAllSides\n});\n","const getFormattedPaperPriceMap = (priceMap) => {\n return priceMap.reduce((acc, arr, index) => {\n if (Array.isArray(arr)) {\n return arr.reduce(\n (ac, prop) => ({...ac, [prop]: priceMap[index + 1][200]}),\n {...acc}\n );\n }\n return acc;\n }, {});\n};\n\nconst getFormattedPriceMapForVariant = (priceData, variantName) => {\n switch (variantName) {\n case `paper_type`:\n return getFormattedPaperPriceMap(priceData.paper_price_maps);\n\n case `lamination`:\n return priceData.lamination_per_100;\n\n case `corner_radius`:\n return priceData.rounded_corners_per_100;\n }\n\n return void 0;\n};\n\nexport default getFormattedPriceMapForVariant;\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport DictionaryCtx from \"../../../../../contexts/DictionaryCtx\";\nimport LineTemplate from \"./Line\";\nimport SelectTemplate from \"./Select\";\nimport CheckboxTemplate from \"./Checkbox\";\nimport LineWithColorPickerTemplate from \"./LineWithColorPicker\";\nimport getFormattedPriceMapForVariant from \"../../../services/lib/price-map-formatter\";\n\nexport default class Template extends PureComponent {\n static propTypes = {\n name: PropTypes.string.isRequired,\n variant: PropTypes.object,\n productMeta: PropTypes.object,\n colorHexMap: PropTypes.object,\n currentVariants: PropTypes.object,\n changeVariant: PropTypes.func,\n withoutTitle: PropTypes.bool\n };\n render() {\n const {\n name,\n variant,\n productMeta,\n currentVariants,\n changeVariant,\n colorHexMap,\n withoutTitle\n } = this.props;\n return (\n \n {(dict) => {\n switch (name) {\n case `Line`:\n return (\n \n );\n\n case `Select`:\n return (\n \n );\n\n case `Checkbox`:\n return (\n \n );\n\n case `LineWithColorPicker`:\n return (\n \n );\n }\n return void 0;\n }}\n \n );\n }\n}\n","import React from \"react\";\n\nconst colorHexMap = {};\nexport default React.createContext(colorHexMap);\n","import React, {Component} from \"react\";\nimport ColorHexMapCtx from \"../contexts/ColorHexMapCtx\";\n\nexport default (OriginalComponent) =>\n class ColorHexMapContextComponent extends Component {\n render() {\n return (\n \n {(colorHexMap) => (\n \n )}\n \n );\n }\n };\n","import {CHANGE_BACKGROUND_FOR_OTHER_SIDES} from \"../constants/action-types\";\n\nexport const changeBgColorForOtherSides = (color) => ({\n type: CHANGE_BACKGROUND_FOR_OTHER_SIDES,\n payload: {\n color\n }\n});\n","import {SET_BACKGROUND_COLOR} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\nimport {changeBgColorForOtherSides} from \"./change-bg-color-for-other-sides\";\n\nexport const setBackgroundColor = (color, forAllSides) => (dispatch) => {\n dispatch({\n type: SET_BACKGROUND_COLOR,\n payload: {\n color\n }\n });\n Mediator.setBackgroundColor(color);\n if (forAllSides) {\n dispatch(changeBgColorForOtherSides(color));\n }\n};\n","import React, {Component} from \"react\";\nimport {connect} from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport Template from \"./Template\";\nimport withErrorBoundary from \"../../decorators/withErrorBoundary\";\nimport withColorHexMapContext from \"../../decorators/withColorHexMapContext\";\nimport withMobileContext from \"../../decorators/withMobileContext\";\nimport {conditionSelector, productSelector} from \"../../selectors\";\nimport productSettings from \"../../services/product-settings\";\nimport {changeVariant} from \"../../AC/change-variant\";\nimport {setBackgroundColor} from \"../../AC/set-background-color\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport trackEvent from \"../../../../utils/track-event\";\n\nclass VariantControl extends Component {\n static propTypes = {\n product: PropTypes.object,\n colorHexMap: PropTypes.object,\n condition: PropTypes.object,\n changeVariant: PropTypes.func,\n setBackgroundColor: PropTypes.func,\n isMobile: PropTypes.bool\n };\n state = {\n isOpen: false\n };\n palette = React.createRef();\n content = React.createRef();\n changeVariant = (e, variant, val, forAllSides) => {\n if (variant !== `background`) {\n this.props.changeVariant(variant, val);\n this.setState({\n isOpen: false\n });\n } else {\n if (val.r || val.r === 0) {\n const {r, g, b} = val;\n this.props.setBackgroundColor(`rgb(${r}, ${g}, ${b})`, forAllSides);\n } else {\n this.props.setBackgroundColor(val, forAllSides);\n this.setState({\n isOpen: false\n });\n }\n }\n trackEvent({\n category: `Editor`,\n action: `Item variant change`,\n label: val\n });\n };\n toggleVariants = (e) => {\n const paletteNode = this.palette.current;\n const contentNode = this.content.current;\n if (paletteNode && !contentNode) {\n this.setState({\n isOpen: paletteNode.contains(e.target) ? !this.state.isOpen : false\n });\n if (paletteNode.contains(e.target)) {\n trackEvent({\n category: `Editor`,\n action: `Item variant click`\n });\n }\n } else if (paletteNode && contentNode) {\n this.setState({\n isOpen: paletteNode.contains(e.target)\n ? !this.state.isOpen\n : contentNode.contains(e.target)\n });\n }\n };\n componentDidMount() {\n document.addEventListener(`mousedown`, this.toggleVariants.bind(this));\n }\n componentWillUnmount() {\n document.removeEventListener(`mousedown`, this.toggleVariants.bind(this));\n }\n componentDidUpdate() {\n if (window && !window.localStorage.getItem(`is-open-variants-control`)) {\n window.localStorage.setItem(`is-open-variants-control`, true);\n this.setState({\n isOpen: true\n });\n }\n }\n getBackground() {\n const {colorHexMap, product, condition} = this.props;\n const firstVariant =\n productSettings[condition.product] &&\n productSettings[condition.product].variants &&\n productSettings[condition.product].variants[0];\n if (firstVariant && firstVariant.keyInProductMeta) {\n const items = product.meta[firstVariant.keyInProductMeta];\n const filterOfItemsBy = /(white)|(-handle)|(-inside)/;\n const itemsMap =\n firstVariant.name === `color` || firstVariant.name === `mug_color`\n ? colorHexMap\n : void 0;\n const val = condition.variants[firstVariant.name];\n if (itemsMap) {\n if (filterOfItemsBy && val.indexOf(`-`) > -1) {\n return itemsMap[val.replace(filterOfItemsBy, ``)];\n }\n return itemsMap[val];\n }\n return `url(${items[val]})`;\n } else {\n return this.getColorFromDesign();\n }\n }\n getColorFromDesign() {\n const {\n condition: {design}\n } = this.props;\n if (design && design.background) {\n return design.background;\n }\n return `transparent`;\n }\n render() {\n const {condition, product, colorHexMap, isMobile} = this.props;\n const {isOpen} = this.state;\n const settings = productSettings[condition.product];\n const background = this.getBackground();\n return settings && settings.variants ? (\n
\n
\n
{settings.variants[0].title}
\n -1\n ? `backgroundImage`\n : `backgroundColor`]: background,\n backgroundPosition: ` center center`\n }}\n >\n \n \n \n
\n
\n {isOpen && (\n
\n {settings.variants.map((variant, i) => {\n return (\n \n );\n })}\n {isMobile && (\n
\n \n {\n this.setState({isOpen: false});\n }}\n >\n \n \n \n
\n )}\n
\n )}\n \n ) : null;\n }\n}\nexport default connect(\n (state) => ({\n condition: conditionSelector(state),\n product: productSelector(state)\n }),\n {\n changeVariant,\n setBackgroundColor\n }\n)(withErrorBoundary(withColorHexMapContext(withMobileContext(VariantControl))));\n","import {CHANGE_VARIANT} from \"../constants/action-types\";\n\nexport const changeVariant = (variant, value) => ({\n type: CHANGE_VARIANT,\n payload: {\n variant,\n value\n }\n});\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport Provider from \"pubsub-js\";\nimport {undoRedoSelector} from \"../../selectors\";\nimport {undo, redo, updateUndoRedo} from \"../../AC/undo-redo\";\nimport {HISTORY_ADD, HISTORY_CHANGED} from \"../../constants/event-types\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport UndoIcon from \"@material-ui/icons/Undo\";\nimport RedoIcon from \"@material-ui/icons/Redo\";\nimport {withStyles} from \"@material-ui/core/styles\";\n\nconst styles = {\n root: {\n borderRadius: `3px`\n }\n};\n\nexport class UndoRedo extends Component {\n static propTypes = {\n undoRedo: PropTypes.shape({\n canUndo: PropTypes.bool,\n canRedo: PropTypes.bool\n }),\n undo: PropTypes.func,\n redo: PropTypes.func,\n updateUndoRedo: PropTypes.func,\n classes: PropTypes.object\n };\n undo = () => {\n this.props.undo();\n };\n redo = () => {\n this.props.redo();\n };\n updateUndoRedo = () => {\n this.props.updateUndoRedo();\n };\n componentDidMount() {\n this.historyAdd = Provider.subscribe(HISTORY_ADD, this.updateUndoRedo);\n this.historyChanged = Provider.subscribe(\n HISTORY_CHANGED,\n this.updateUndoRedo\n );\n }\n componentWillUnmount() {\n Provider.unsubscribe(this.historyAdd);\n Provider.unsubscribe(this.historyChanged);\n }\n render() {\n const {\n undoRedo: {canUndo, canRedo},\n classes\n } = this.props;\n return (\n \n \n
\n \n
\n \n \n \n
\n
\n
\n
\n \n
\n \n \n \n
\n
\n
\n
\n
\n );\n }\n}\n\nexport default connect(\n (state) => ({\n undoRedo: undoRedoSelector(state)\n }),\n {\n undo,\n redo,\n updateUndoRedo\n }\n)(withStyles(styles)(UndoRedo));\n","import Mediator from \"../services/Mediator\";\nimport {UNDO, REDO, UPDATE_UNDO_REDO} from \"../constants/action-types\";\n\nexport const undo = () => (dispatch) => {\n const {index, lengthOfCommands} = Mediator.undo();\n\n dispatch({\n type: UNDO,\n payload: {\n canUndo: index > 0,\n canRedo: index !== lengthOfCommands\n }\n });\n};\nexport const redo = () => (dispatch) => {\n const {index, lengthOfCommands} = Mediator.redo();\n\n dispatch({\n type: REDO,\n payload: {\n canUndo: index > 0,\n canRedo: index !== lengthOfCommands\n }\n });\n};\n\nexport const updateUndoRedo = () => (dispatch) => {\n const {index, lengthOfCommands} = Mediator.getStateOfHistory();\n dispatch({\n type: UPDATE_UNDO_REDO,\n payload: {\n canUndo: index > 0,\n canRedo: index !== lengthOfCommands\n }\n });\n};\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n ,\n `Clipboard`\n);\n","import React, {Component} from \"react\";\nimport {connect} from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport Provider from \"pubsub-js\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport FileCopyIcon from \"@material-ui/icons/FileCopyOutlined\";\nimport DeleteIcon from \"@material-ui/icons/DeleteOutline\";\nimport ClipboardIcon from \"../../../../icons/ClipboardIcon\";\nimport {systemMenu} from \"../../constants/edit-menu\";\nimport withSelectionContext from \"../../decorators/withSelectionContext\";\nimport {HAS_COPIED_OBJECT, CANVAS_MODIFIED} from \"../../constants/event-types\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport {conditionSelector} from \"../../selectors\";\nimport productSettings from \"../../services/product-settings\";\n\nconst styles = {\n root: {\n borderRadius: `3px`\n }\n};\n\nclass System extends Component {\n static propTypes = {\n toggleEffect: PropTypes.func,\n condition: PropTypes.object,\n selected: PropTypes.object,\n classes: PropTypes.object\n };\n state = {\n hasCopiedObject: false,\n disabledPasteButton: false\n };\n getIcon(icon) {\n switch (icon) {\n case `copy`:\n return ;\n case `clipboard`:\n return ;\n case `trash`:\n return ;\n }\n return void 0;\n }\n componentDidMount() {\n Provider.subscribe(HAS_COPIED_OBJECT, this.setStateOfCopiedObject);\n Provider.subscribe(CANVAS_MODIFIED, this.handleDisabled);\n }\n componentWillUnmount() {\n Provider.unsubscribe(HAS_COPIED_OBJECT, this.setStateOfCopiedObject);\n Provider.unsubscribe(CANVAS_MODIFIED, this.handleDisabled);\n }\n setStateOfCopiedObject = () => {\n this.setState({\n hasCopiedObject: true,\n disabledPasteButton: true\n });\n };\n handleDisabled = () => {\n const {\n condition: {product, side}\n } = this.props;\n const settings = productSettings[product];\n const disabled =\n settings &&\n settings.permissions &&\n settings.permissions[side] &&\n !settings.permissions[side].image &&\n !settings.permissions[side].text;\n\n this.setState({\n disabledPasteButton: this.state.hasCopiedObject && !disabled\n });\n };\n render() {\n const {disabledPasteButton} = this.state;\n const {selected, classes} = this.props;\n return (\n \n {systemMenu.map((itemMenu) => {\n const {name, hotKey, icon, handleClick} = itemMenu;\n const isShow =\n !!selected || (icon === `clipboard` && disabledPasteButton);\n return (\n isShow && (\n
\n \n
\n \n {this.getIcon(icon)}\n \n
\n
\n
\n )\n );\n })}\n
\n );\n }\n}\n\nexport default connect((state) => ({\n condition: conditionSelector(state)\n}))(withSelectionContext(withStyles(styles)(System)));\n","import React, {Component} from \"react\";\nimport UndoRedo from \"./UndoRedo\";\nimport System from \"./System\";\nimport withErrorBoundary from \"../../decorators/withErrorBoundary\";\n\nexport class SystemControl extends Component {\n render() {\n return (\n
\n
\n \n \n
\n
\n );\n }\n}\n\nexport default withErrorBoundary(SystemControl);\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n \n ,\n `Enhancer`\n);\n","export default {\n removeWhite: {\n id: 0,\n title: `Удаление белого фона`,\n name: `removeWhite`\n },\n removeBlack: {\n id: 9,\n title: `Удаление чёрного фона`,\n name: `removeBlack`\n },\n grayscale: {\n id: 1,\n title: `Черно-белое`,\n name: `grayscale`\n },\n invert: {\n id: 2,\n title: `Инвертирование (негатив)`,\n name: `invert`\n },\n sepia: {\n id: 3,\n title: `Сепия`,\n name: `sepia`\n },\n brightness: {\n id: 4,\n title: `Яркость`,\n name: `brightness`\n },\n blur: {\n id: 5,\n title: `Размытость`,\n name: `blur`\n },\n sharpen: {\n id: 6,\n title: `Резкость`,\n name: `sharpen`\n },\n emboss: {\n id: 7,\n title: `Рельеф`,\n name: `emboss`\n },\n noise: {\n id: 8,\n title: `Шум`,\n name: `noise`\n },\n pixelate: {\n id: 10,\n title: `Пикселированность`,\n name: `pixelate`\n }\n};\n","import {API_IMAGE_FILTERS, API_IMAGES} from \"../constants/api\";\nimport Mediator from \"../services/Mediator\";\nimport {\n APPLY_VISIONHUB_FILTER,\n FAIL,\n START,\n SUCCESS\n} from \"../constants/action-types\";\nimport {addImage} from \"./add-image\";\nimport delay from \"../../../utils/delay\";\nimport trackEvent from \"../../../utils/track-event\";\n\nconst fetchProcessingStatus = async (id) => {\n let timeout = false;\n\n setTimeout(() => (timeout = true), 50000);\n\n while (!timeout) {\n await delay(2500);\n const result = await fetch(`${API_IMAGES}/${id}`).then((res) => {\n if (res.status >= 400) {\n throw new Error(`Error`);\n }\n return res.json();\n });\n if (result[`picture_processing`]) {\n continue;\n }\n return result.id;\n }\n\n throw new Error(`Processing timeout`);\n};\n\nconst waitForProcessing = (id) => (dispatch) => {\n fetchProcessingStatus(id)\n .then((processedId) => {\n dispatch(addImage(processedId));\n dispatch({\n type: APPLY_VISIONHUB_FILTER + SUCCESS\n });\n })\n .catch((error) => {\n dispatch({\n type: APPLY_VISIONHUB_FILTER + FAIL,\n error\n });\n });\n};\n\nexport const applyVisionHubFilter = (selected, filter) => (\n dispatch,\n getState\n) => {\n if (!selected.remoteId) {\n return false;\n }\n\n const formData = new FormData();\n formData.append(`authenticity_token`, getState().authenticityToken);\n formData.append(`image_filter[original_id]`, selected.remoteId);\n formData.append(`image_filter[filter]`, filter);\n\n dispatch({\n type: APPLY_VISIONHUB_FILTER + START\n });\n\n fetch(`${API_IMAGE_FILTERS}`, {\n credentials: `same-origin`,\n method: `post`,\n body: formData\n })\n .then((res) => {\n if (res.status >= 400) {\n throw new Error(`Error`);\n }\n return res.json();\n })\n .then(({id}) => {\n Mediator.removeActive();\n dispatch(waitForProcessing(id));\n })\n .catch((error) => {\n dispatch({\n type: APPLY_VISIONHUB_FILTER + FAIL,\n error\n });\n });\n\n trackEvent({\n category: `Editor`,\n action: `VisionHub Filter`,\n label: filter\n });\n};\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport Provider from \"pubsub-js\";\nimport Mediator from \"../../services/Mediator\";\nimport {FILTER_CHANGED} from \"../../constants/event-types\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport Menu from \"@material-ui/core/Menu\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport EnhancerIcon from \"../../../../icons/EnhancerIcon\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport effectsMenu from \"../../constants/effects-menu\";\nimport {toggleEffect} from \"../../AC/toggle-effect\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport {applyVisionHubFilter} from \"../../AC/apply-vision-hub-filter\";\nimport {userSelector} from \"../../selectors\";\n\nconst styles = {\n root: {\n padding: `12px 2px 12px 8px`,\n borderRadius: `3px`\n }\n};\n\nclass Effects extends Component {\n static propTypes = {\n toggleEffect: PropTypes.func,\n applyVisionHubFilter: PropTypes.func,\n selected: PropTypes.object,\n classes: PropTypes.object,\n user: PropTypes.object\n };\n state = {\n anchorEl: null,\n filters: [],\n clipPath: null\n };\n isGuest = this.props.user.name === `гость` || !this.props.user.name;\n setStateFromOImage = (oImage) => {\n const {filters, clipPath} = oImage;\n this.setState({\n filters,\n clipPath\n });\n };\n componentDidMount() {\n Provider.subscribe(FILTER_CHANGED, (_, target) => {\n this.setStateFromOImage(target);\n });\n }\n componentDidUpdate(prevProps) {\n const {selected: prevSelected} = prevProps;\n const {selected} = this.props;\n if (\n selected &&\n Mediator.isImage(selected) &&\n JSON.stringify(selected) !== JSON.stringify(prevSelected)\n ) {\n this.setStateFromOImage(selected);\n }\n }\n componentWillUnmount() {\n Provider.unsubscribe(FILTER_CHANGED);\n }\n handleClick = (event) => {\n this.setState({anchorEl: event.currentTarget});\n };\n handleClose = () => {\n this.setState({anchorEl: null});\n };\n toggleEffect = (effectName) => () => {\n this.props.toggleEffect(effectName);\n this.handleClose();\n };\n isSelected = (id) => {\n const {filters, clipPath} = this.state;\n if (typeof id === `number`) {\n return !!filters[id];\n }\n return Mediator.isActiveClipPath(clipPath, id);\n };\n mapDefaultEffects = ({id, title, name}) => (\n \n \n {title}\n \n );\n render() {\n const {selected, classes, user} = this.props;\n const {anchorEl} = this.state;\n const isGuest = user.name === `гость` || !user.name;\n return (\n selected &&\n Mediator.isImage(selected) && (\n \n
\n \n
\n \n \n \n \n
\n
\n \n {Object.values(effectsMenu)\n .slice(0, 2)\n .map(this.mapDefaultEffects)}\n {/* Андрей хотел именно тут и именно на 3 место */}\n {/* splice в такой ситуации не помогает */}\n {/* {isGuest && selected.remoteId && (\n \n this.props.applyVisionHubFilter(selected, `anime_gan`)\n }\n >\n \n Аниме фильтр\n new!\n \n )}*/}\n {Object.values(effectsMenu)\n .slice(3, effectsMenu.length)\n .map(this.mapDefaultEffects)}\n \n
\n
\n )\n );\n }\n}\n\nexport default connect(\n (state) => ({\n user: userSelector(state)\n }),\n {\n toggleEffect,\n applyVisionHubFilter\n }\n)(withStyles(styles)(Effects));\n","import {TOGGLE_EFFECT} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\n\nexport const toggleEffect = (effectName) => (dispatch) => {\n dispatch({\n type: TOGGLE_EFFECT,\n payload: {\n effect: effectName\n }\n });\n Mediator.toggleEffect(effectName);\n};\n","import React from \"react\";\nimport {connect} from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport Slider from \"@material-ui/lab/Slider\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport {setOpacity} from \"../../AC/set-opacity\";\nimport Menu from \"@material-ui/core/Menu\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport OpacityIcon from \"@material-ui/icons/OpacityOutlined\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\n\nconst styles = {\n slider: {\n padding: `22px 0px`,\n width: `100px`\n },\n root: {\n padding: `12px 2px 12px 8px`,\n borderRadius: `3px`\n },\n track: {\n backgroundColor: `#838587`\n },\n thumb: {\n backgroundColor: `#838587`\n }\n};\n\nclass Opacity extends React.Component {\n state = {\n opacity: this.props.selected ? this.props.selected.opacity * 100 : 100,\n anchorEl: null\n };\n static propTypes = {\n classes: PropTypes.object.isRequired,\n setOpacity: PropTypes.func,\n selected: PropTypes.object\n };\n componentDidUpdate(prevProps) {\n const {selected: prevSelected} = prevProps;\n const {selected} = this.props;\n if (selected && JSON.stringify(selected) !== JSON.stringify(prevSelected)) {\n this.setStateFromObject(selected);\n }\n }\n handleChange = (_, value) => {\n const opacity = value / 100;\n this.setState({\n opacity: value\n });\n this.props.setOpacity(opacity);\n };\n setStateFromObject = (object) => {\n const {opacity} = object;\n this.setState({\n opacity: opacity * 100\n });\n };\n handleClick = (event) => {\n this.setState({anchorEl: event.currentTarget});\n };\n handleClose = () => {\n this.setState({anchorEl: null});\n };\n render() {\n const {classes, selected} = this.props;\n const {opacity, anchorEl} = this.state;\n return (\n !!selected && (\n \n
\n \n \n \n \n \n \n \n \n \n \n {opacity.toFixed()}%\n \n \n \n
\n
\n )\n );\n }\n}\n\nexport default withStyles(styles)(connect(null, {setOpacity})(Opacity));\n","import {SET_OPACITY} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\n\nexport const setOpacity = (value) => (dispatch) => {\n dispatch({\n type: SET_OPACITY,\n payload: {\n value\n }\n });\n Mediator.setOpacityToActive(value);\n};\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport Menu from \"@material-ui/core/Menu\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport LayersIcon from \"@material-ui/icons/LayersOutlined\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport {layerMenu} from \"../../constants/edit-menu\";\nimport {withStyles} from \"@material-ui/core/styles\";\n\nconst styles = {\n root: {\n padding: `12px 2px 12px 8px`,\n borderRadius: `3px`\n }\n};\n\nclass Edit extends Component {\n static propTypes = {\n toggleEffect: PropTypes.func,\n selected: PropTypes.object,\n classes: PropTypes.object\n };\n state = {\n anchorEl: null\n };\n handleClick = (event) => {\n this.setState({anchorEl: event.currentTarget});\n };\n handleClose = () => {\n this.setState({anchorEl: null});\n };\n render() {\n const {anchorEl} = this.state;\n const {selected, classes} = this.props;\n return (\n !!selected && (\n \n
\n \n
\n \n \n \n \n
\n
\n \n {layerMenu.map((item) => {\n const {name, icon, handleClick, hotKey} = item;\n return (\n {\n handleClick();\n this.handleClose();\n }}\n >\n \n {icon && (\n \n )}\n {name}\n \n {hotKey && (\n \n {hotKey}\n \n )}\n \n );\n })}\n \n
\n
\n )\n );\n }\n}\n\nexport default withStyles(styles)(Edit);\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\nexport default createSvgIcon(\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n `FillShadow`\n);\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport Provider from \"pubsub-js\";\nimport {FILL_CHANGED} from \"../../constants/event-types\";\nimport {setFillForPath} from \"../../AC/set-fill-for-path\";\nimport Mediator from \"../../services/Mediator\";\nimport withErrorBoundary from \"../../decorators/withErrorBoundary\";\nimport MobileCtx from \"../../../../contexts/MobileCtx\";\nimport ColorPicker from \"../ColorPicker\";\nimport FillShadowIcon from \"../../../../icons/FillShadowIcon\";\n\nexport class ClipartFill extends Component {\n static propTypes = {\n setFillForPath: PropTypes.func,\n selected: PropTypes.object\n };\n state = {\n isShow: false,\n fill:\n this.props.selected &&\n (Mediator.isPathGroup(this.props.selected) ||\n Mediator.isPath(this.props.selected))\n ? this.props.selected.fill\n : `#000000`\n };\n onFillChanged = (_, target) => {\n this.setStateFromOPahtGroup(target);\n };\n setStateFromOPahtGroup(oPathGroup) {\n const {fill} = oPathGroup;\n this.setState({\n fill\n });\n }\n handleChange = ({hex}) => {\n this.setState({\n fill: hex\n });\n this.props.setFillForPath(hex);\n };\n componentDidMount() {\n Provider.subscribe(FILL_CHANGED, this.onFillChanged);\n }\n componentDidUpdate(prevProps) {\n const {selected: prevSelected} = prevProps;\n const {selected} = this.props;\n if (\n selected &&\n (Mediator.isPathGroup(selected) || Mediator.isPath(selected)) &&\n JSON.stringify(selected) !== JSON.stringify(prevSelected)\n ) {\n this.setStateFromOPahtGroup(selected);\n }\n }\n componentWillUnmount() {\n Provider.unsubscribe(FILL_CHANGED, this.onFillChanged);\n }\n render() {\n const {fill} = this.state;\n const {selected} = this.props;\n return (\n selected &&\n Mediator.isOneColorPath(selected) && (\n
\n
\n
\n \n {(isMobile) => (\n \n \n \n
\n \n )}\n \n
\n
\n \n )\n );\n }\n}\n\nexport default connect(null, {setFillForPath})(withErrorBoundary(ClipartFill));\n","import {SET_FILL} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\n\nexport const setFillForPath = (value) => (dispatch) => {\n dispatch({\n type: SET_FILL\n });\n Mediator.setFillForActivePath(value);\n};\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport Provider from \"pubsub-js\";\nimport Mediator from \"../../services/Mediator\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport CropIcon from \"@material-ui/icons/Crop\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport {CROP_APPLYIED} from \"../../constants/event-types\";\nimport {cropsSelector} from \"../../selectors\";\nimport {applyCrop} from \"../../AC/apply-crop\";\n\nconst styles = {\n root: {\n padding: `12px`,\n borderRadius: `3px`\n }\n};\n\nclass Crop extends Component {\n static propTypes = {\n toggleEffect: PropTypes.func,\n selected: PropTypes.object,\n classes: PropTypes.object,\n crops: PropTypes.array,\n applyCrop: PropTypes.func\n };\n state = {\n clipPath: null,\n isOpen: false\n };\n setStateFromOImage = (oImage) => {\n const {clipPath} = oImage;\n this.setState({\n clipPath\n });\n };\n componentDidMount() {\n Provider.subscribe(CROP_APPLYIED, (_, target) => {\n this.setStateFromOImage(target);\n });\n }\n componentDidUpdate(prevProps) {\n const {selected: prevSelected} = prevProps;\n const {selected} = this.props;\n if (\n selected &&\n Mediator.isImage(selected) &&\n JSON.stringify(selected) !== JSON.stringify(prevSelected)\n ) {\n this.setStateFromOImage(selected);\n }\n }\n componentWillUnmount() {\n Provider.unsubscribe(CROP_APPLYIED);\n }\n showPopup = () => {\n this.setState({\n isOpen: true\n });\n };\n hidePopup = () => {\n this.setState({\n isOpen: false\n });\n };\n applyCrop = (cropUrl) => () => {\n this.props.applyCrop(cropUrl);\n };\n render() {\n const {isOpen} = this.state;\n const {selected, classes, crops} = this.props;\n return (\n selected &&\n Mediator.isImage(selected) && (\n \n
\n \n
\n \n \n \n
\n
\n
\n {isOpen && (\n
\n
\n \n \n
\n {crops.map(({id, preview, original}) => {\n const active =\n selected.clipPath && selected.clipPath.id === original;\n return (\n \n \n
\n );\n })}\n \n
\n \n \n \n
\n \n )}\n
\n )\n );\n }\n}\n\nexport default connect(\n (state) => ({\n crops: cropsSelector(state)\n }),\n {\n applyCrop\n }\n)(withStyles(styles)(Crop));\n","import Mediator from \"../services/Mediator\";\n\nexport const applyCrop = (cropUrl) => () => {\n Mediator.applyCropToActiveObject(cropUrl);\n};\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n `Stroke`\n);\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n `WithoutStroke`\n);\n","import React from \"react\";\nimport {connect} from \"react-redux\";\nimport Provider from \"pubsub-js\";\nimport PropTypes from \"prop-types\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport {setStroke} from \"../../AC/set-stroke\";\nimport ColorPicker from \"../ColorPicker\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport StrokeIcon from \"../../../../icons/StrokeIcon\";\nimport WithoutStrokeIcon from \"../../../../icons/WithoutStrokeIcon\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport withMobileContext from \"../../decorators/withMobileContext\";\nimport {STROKE_CHANGED} from \"../../constants/event-types\";\nimport Mediator from \"../../services/Mediator\";\nimport Slider from \"@material-ui/lab/Slider\";\nimport TextField from \"@material-ui/core/TextField\";\nimport trackEvent from \"../../../../utils/track-event\";\n\nconst styles = {\n slider: {\n padding: `22px 0px`,\n width: `160px`,\n margin: `0 0 0 10px`,\n display: `inline-block`\n },\n root: {\n padding: `12px 2px 12px 8px`,\n borderRadius: `3px`\n },\n track: {\n backgroundColor: `#838587`\n },\n thumb: {\n backgroundColor: `#838587`\n },\n textField: {\n width: `70px`,\n height: `44px`,\n margin: `0`\n }\n};\n\nclass Stroke extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n setStroke: PropTypes.func,\n selected: PropTypes.object,\n isMobile: PropTypes.bool\n };\n state = {\n stroke: this.props.selected.stroke,\n strokeWidth: this.props.selected.strokeWidth\n };\n componentDidMount() {\n Provider.subscribe(STROKE_CHANGED, this.onStrokeChanged);\n }\n componentWillUnmount() {\n Provider.unsubscribe(STROKE_CHANGED, this.onStrokeChanged);\n }\n componentDidUpdate(prevProps) {\n const {selected: prevSelected} = prevProps;\n const {selected} = this.props;\n if (selected && JSON.stringify(selected) !== JSON.stringify(prevSelected)) {\n this.setStateFromObject(selected);\n }\n }\n onStrokeChanged = (_, target) => {\n this.setStateFromObject(target);\n };\n handleStroke = ({hex}, pickerType) => {\n this.setState({\n stroke: hex\n });\n this.props.setStroke({\n stroke: hex,\n strokeWidth: this.state.strokeWidth ? this.state.strokeWidth : 2\n });\n if (pickerType === `palette`) {\n trackEvent({\n category: `Editor`,\n action: `Palette color`,\n label: `Stroke`\n });\n }\n };\n handleStrokeWidth = ({target}, width) => {\n const value = parseInt(target.value, 10) || width || 0;\n this.setState({\n strokeWidth: value\n });\n this.props.setStroke({\n stroke: this.state.stroke,\n strokeWidth: value\n });\n };\n setStateFromObject = (object) => {\n const {stroke, strokeWidth} = object;\n this.setState({\n stroke,\n strokeWidth\n });\n };\n render() {\n const {classes, selected, isMobile} = this.props;\n const {stroke, strokeWidth} = this.state;\n const isEmptyStroke =\n stroke === `transparent` || stroke === null || strokeWidth === 0;\n return (\n !!selected &&\n (Mediator.isImage(selected) ||\n Mediator.isText(selected) ||\n Mediator.isPath(selected)) && (\n \n
\n \n \n \n \n }\n >\n \n \n \n {isEmptyStroke ? : }\n
\n \n \n \n \n \n
\n )\n );\n }\n}\n\nexport default withStyles(styles)(\n connect(null, {setStroke})(withMobileContext(Stroke))\n);\n","import {SET_STROKE} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\nimport isTransparent from \"../services/lib/is-transparent\";\n\nexport const setStroke = ({stroke, strokeWidth}) => (dispatch) => {\n const value = {\n stroke:\n stroke !== `transparent` && (!stroke || isTransparent(stroke))\n ? `#000`\n : stroke,\n strokeWidth\n };\n dispatch({\n type: SET_STROKE,\n payload: {\n value\n }\n });\n Mediator.setStrokeToActive(value);\n};\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n \n \n \n \n \n \n \n \n ,\n `Tiling`\n);\n","import {\n DESTROY_TILING,\n START,\n SUCCESS,\n FAIL,\n CREATE_TILING,\n SET_TILE_PADDING\n} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\n\nexport const destroyTiling = () => (dispatch) => {\n try {\n Mediator.destroyTilingFromActiveObject();\n dispatch({\n type: DESTROY_TILING\n });\n } catch (error) {\n throw error;\n }\n};\n\nexport const createTiling = (typeOfTiling) => async (dispatch) => {\n try {\n dispatch({\n type: CREATE_TILING + START\n });\n await Mediator.createTilingFromActiveObject(typeOfTiling);\n dispatch({\n type: CREATE_TILING + SUCCESS\n });\n } catch (error) {\n dispatch({\n type: CREATE_TILING + FAIL,\n error\n });\n throw error;\n }\n};\n\nexport const setTilePadding = (value) => (dispatch) => {\n dispatch({\n type: SET_TILE_PADDING,\n payload: {\n value\n }\n });\n Mediator.setTilePaddingToActive(value);\n};\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport Provider from \"pubsub-js\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport Menu from \"@material-ui/core/Menu\";\nimport Slider from \"@material-ui/lab/Slider\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport TilingIcon from \"../../../../icons/TilingIcon\";\nimport ArrowDropDownIcon from \"@material-ui/icons/ArrowDropDown\";\nimport withErrorBoundary from \"../../decorators/withErrorBoundary\";\nimport {destroyTiling, createTiling, setTilePadding} from \"../../AC/tiling\";\nimport Mediator from \"../../services/Mediator\";\nimport {TILING_CREATED, TILING_DESTROYED} from \"../../constants/event-types\";\nimport {Button} from \"@material-ui/core\";\nimport UndoIcon from \"@material-ui/icons/Undo\";\n\nconst styles = {\n rootWithArrow: {\n padding: `12px 2px 12px 8px`,\n borderRadius: `3px`\n },\n root: {\n padding: `12px 8px`,\n borderRadius: `3px`\n },\n slider: {\n padding: `22px 0px`\n },\n track: {\n backgroundColor: `#838587`\n },\n thumb: {\n backgroundColor: `#838587`\n },\n button: {\n borderRadius: `50px`,\n width: `100%`,\n height: `40px`\n }\n};\n\nclass Tiling extends Component {\n static propTypes = {\n classes: PropTypes.object,\n selected: PropTypes.object,\n createTiling: PropTypes.func,\n destroyTiling: PropTypes.func,\n setTilePadding: PropTypes.func\n };\n state = {\n anchorEl: null,\n tilePadding: Mediator.isTiling(this.props.selected)\n ? this.props.selected.tilePadding\n : 0\n };\n componentDidMount() {\n Provider.subscribe(TILING_CREATED, this.onTilingChanged);\n Provider.subscribe(TILING_DESTROYED, this.onTilingChanged);\n }\n componentWillUnmount() {\n Provider.unsubscribe(TILING_CREATED, this.onTilingChanged);\n Provider.unsubscribe(TILING_DESTROYED, this.onTilingChanged);\n }\n onTilingChanged = (_, target) => {\n this.setStateFromObject(target);\n };\n setStateFromObject = (object) => {\n const {tilePadding} = object;\n this.setState({\n tilePadding\n });\n this.props.setTilePadding(tilePadding);\n };\n handleClick = (event) => {\n this.setState({anchorEl: event.currentTarget});\n };\n handleClose = () => {\n this.setState({anchorEl: null});\n };\n handleChange = (_, tilePadding) => {\n this.setState({\n tilePadding\n });\n this.props.setTilePadding(tilePadding);\n };\n destroyTiling = () => {\n this.props.destroyTiling();\n this.setState({anchorEl: null});\n };\n createTiling = (typeOfTiling) => () => {\n this.props.createTiling(typeOfTiling);\n };\n render() {\n const {anchorEl, tilePadding} = this.state;\n const {selected, classes} = this.props;\n const isTiling = Mediator.isTiling(selected);\n return selected ? (\n
\n \n \n \n \n \n \n \n {isTiling\n ? [\n \n \n \n {tilePadding.toFixed()}\n \n ,\n \n \n \n ]\n : null}\n {[\n {\n type: `basic`,\n title: `базовый`,\n onClick: this.createTiling(`basic`)\n },\n {\n type: `centered`,\n title: `центрированый`,\n onClick: this.createTiling(`centered`)\n },\n {\n type: `half-brick`,\n title: `горизонтальное смещение`,\n onClick: this.createTiling(`half-brick`)\n },\n {\n type: `half-drop`,\n title: `вертикальное смещение`,\n onClick: this.createTiling(`half-drop`)\n },\n {\n type: `mirror`,\n title: `зеркальный`,\n onClick: this.createTiling(`mirror`)\n }\n ].map(({type, title, onClick}) => (\n \n \n \n \n \n ))}\n \n
\n ) : null;\n }\n}\n\nexport default connect(null, {\n destroyTiling,\n createTiling,\n setTilePadding\n})(withErrorBoundary(withStyles(styles)(Tiling)));\n","import React, {Component} from \"react\";\nimport PropTypes from \"prop-types\";\nimport Effects from \"./Effects\";\nimport Opacity from \"./Opacity\";\nimport Edit from \"./Edit\";\nimport ClipartFill from \"./ClipartFill\";\nimport Crop from \"./Crop\";\nimport Stroke from \"./Stroke\";\nimport withErrorBoundary from \"../../decorators/withErrorBoundary\";\nimport withSelectionContext from \"../../decorators/withSelectionContext\";\nimport Tiling from \"./Tiling\";\n\nexport class EditControl extends Component {\n static propTypes = {\n selected: PropTypes.object\n };\n render() {\n const {selected} = this.props;\n return (\n !!selected && (\n
\n
Правка и фильтры
\n
\n \n \n \n \n \n \n \n
\n
\n )\n );\n }\n}\n\nexport default withErrorBoundary(withSelectionContext(EditControl));\n","import React, {PureComponent} from \"react\";\nimport {connect} from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport ColorPicker from \"./ColorPicker\";\nimport FormControlLabel from \"@material-ui/core/FormControlLabel\";\nimport Checkbox from \"@material-ui/core/Checkbox\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport isTransparent from \"../services/lib/is-transparent\";\nimport {conditionSelector} from \"../selectors\";\nimport {changeBgColorForOtherSides} from \"../AC/change-bg-color-for-other-sides\";\nimport {setBackgroundColor} from \"../AC/set-background-color\";\nimport withErrorBoundary from \"../decorators/withErrorBoundary\";\nimport trackEvent from \"../../../utils/track-event\";\nimport productSettings from \"../services/product-settings\";\n\nclass BackgroundControl extends PureComponent {\n static propTypes = {\n condition: PropTypes.object,\n changeBgColorForOtherSides: PropTypes.func,\n setBackgroundColor: PropTypes.func\n };\n state = {\n forAllSides: false\n };\n changeBackground = (color, pickerType) => {\n const {r, g, b, a} = color.rgb;\n const rgba = `rgba(${r}, ${g}, ${b}, ${a})`;\n this.props.setBackgroundColor(rgba, this.state.forAllSides);\n if (pickerType === `palette`) {\n trackEvent({\n category: `Editor`,\n action: `Palette color`,\n label: `Background color`\n });\n }\n };\n removeBackground = () => {\n const transparent = `transparent`;\n this.props.setBackgroundColor(transparent, this.state.forAllSides);\n };\n handleCheckboxChange = (e) => {\n const {checked} = e.target;\n this.setState({\n forAllSides: checked\n });\n if (checked) {\n this.props.changeBgColorForOtherSides(this.getColorForBackgroundInput());\n }\n };\n getColorForBackgroundInput() {\n const {\n condition: {design}\n } = this.props;\n if (design && design.background) {\n return design.background;\n }\n return `transparent`;\n }\n isFullPrint() {\n const {\n condition: {product}\n } = this.props;\n const settings = productSettings[product];\n return settings && settings.fullPrint;\n }\n render() {\n const color = this.getColorForBackgroundInput();\n const {forAllSides} = this.state;\n return (\n !this.isFullPrint() && (\n
\n
Фон печатной области
\n
\n
\n
\n
\n \n
\n {!isTransparent(color) && (\n
\n \n \n }\n label=\"Применять ко всем сторонам\"\n />\n \n
\n )}\n
\n
\n
\n
\n )\n );\n }\n}\n\nexport default connect(\n (state) => ({\n condition: conditionSelector(state)\n }),\n {\n setBackgroundColor,\n changeBgColorForOtherSides\n }\n)(withErrorBoundary(BackgroundControl));\n","import React, {PureComponent} from \"react\";\nimport {connect} from \"react-redux\";\nimport PropTypes from \"prop-types\";\nimport Provider from \"pubsub-js\";\nimport {setFillForPathOfStaticObject} from \"../AC/set-fill-for-path-of-static-object\";\nimport ColorPicker from \"./ColorPicker\";\nimport {conditionSelector} from \"../selectors\";\nimport productSettings from \"../services/product-settings\";\nimport withErrorBoundary from \"../decorators/withErrorBoundary\";\nimport {CANVAS_MODIFIED} from \"../constants/event-types\";\n\nclass StaticObjectControl extends PureComponent {\n static propTypes = {\n condition: PropTypes.object,\n setFillForPathOfStaticObject: PropTypes.func\n };\n state = {\n colors: []\n };\n changeColor = (pathNumber) => (color) => {\n const {r, g, b, a} = color.rgb;\n const rgba = `rgba(${r}, ${g}, ${b}, ${a})`;\n\n this.props.setFillForPathOfStaticObject(rgba, pathNumber);\n };\n hasProductStaticObject() {\n const {\n condition: {side, product}\n } = this.props;\n const settigns = productSettings[product];\n return settigns && settigns.objectToLoad && settigns.objectToLoad[side];\n }\n onFillChanged = (_, staticObject) => {\n const colors = staticObject.getObjects().map((object) => object.fill);\n this.setState({\n colors\n });\n };\n setInitialValues = (_, design) => {\n if (design.objects) {\n const staticObject = design.objects.filter((o) => o.static)[0];\n if (staticObject) {\n const colors = staticObject.objects\n ? staticObject.objects.map((object) => object.fill)\n : [staticObject.fill];\n this.setState({\n colors\n });\n }\n }\n };\n componentDidMount() {\n Provider.subscribe(CANVAS_MODIFIED, this.setInitialValues);\n }\n componentWillUnmount() {\n Provider.unsubscribe(CANVAS_MODIFIED, this.setInitialValues);\n }\n getColor(pathNumber) {\n return this.state.colors[pathNumber];\n }\n render() {\n const {\n condition: {product}\n } = this.props;\n\n if (\n !productSettings[product] ||\n !productSettings[product].loadedObjectSettings\n ) {\n return null;\n }\n\n return this.hasProductStaticObject() ? (\n
\n
\n {productSettings[product].loadedObjectSettings.title}\n
\n
\n
\n {productSettings[product].loadedObjectSettings.colorPickers.map(\n ({label, pathNumber}) => (\n
\n
\n \n
\n {label && (\n
{label}
\n )}\n
\n )\n )}\n
\n
\n
\n ) : null;\n }\n}\n\nexport default connect(\n (state) => ({\n condition: conditionSelector(state)\n }),\n {\n setFillForPathOfStaticObject\n }\n)(withErrorBoundary(StaticObjectControl));\n","import {SET_FILL_FOR_STATIC_OBJECT} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\n\nexport const setFillForPathOfStaticObject = (fillColor, pathNumber) => (\n dispatch\n) => {\n dispatch({\n type: SET_FILL_FOR_STATIC_OBJECT,\n payload: {\n fillColor,\n pathNumber\n }\n });\n Mediator.setFillForPathOfStaticObject(fillColor, pathNumber);\n};\n","import ThreeJSMediator from \"../../../utils/threejs/ThreeJSMediator\";\nimport threeDSettings from \"../../../utils/threejs/three-d-settings\";\nimport {\n SUCCESS,\n GET_THREE_D_VIEWER,\n START,\n FAIL\n} from \"../constants/action-types\";\n\nexport const enableThreeDViewer = (element) => (dispatch, getState) => {\n const {\n condition: {product, side, variants},\n designs,\n product: {\n meta: {designs: designsInfo}\n }\n } = getState();\n const updateDesignsInfo = designsInfo.map((design, i) => {\n return {...designs[i], ...design};\n });\n dispatch({\n type: GET_THREE_D_VIEWER + START\n });\n ThreeJSMediator.enable(element);\n (async () => {\n if (threeDSettings && threeDSettings[product]) {\n try {\n await ThreeJSMediator.applySettings({\n ...threeDSettings[product],\n condition: {\n product,\n side,\n variants\n },\n designs: updateDesignsInfo\n });\n dispatch({\n type: GET_THREE_D_VIEWER + SUCCESS\n });\n } catch (err) {\n dispatch({\n type: GET_THREE_D_VIEWER + FAIL\n });\n throw err;\n }\n }\n })();\n};\nexport const disableThreeDViewer = () => () => {\n ThreeJSMediator.disable();\n};\n","import React, {PureComponent} from \"react\";\nimport PropTypes from \"prop-types\";\nimport Modal from \"react-modal\";\nimport {connect} from \"react-redux\";\nimport {modalSelector, productSelector} from \"../../selectors\";\nimport {toggleModal} from \"../../AC/modal\";\nimport {enableThreeDViewer, disableThreeDViewer} from \"../../AC/three-d-viewer\";\nimport threeDSettings from \"../../../../utils/threejs/three-d-settings\";\nimport withErrorBoundary from \"../../decorators/withErrorBoundary\";\nimport NoSsr from \"@material-ui/core/NoSsr\";\nimport Button from \"@material-ui/core/Button\";\nimport Tooltip from \"@material-ui/core/Tooltip\";\nimport {withStyles} from \"@material-ui/core/styles\";\nimport ThreeDRotationIcon from \"@material-ui/icons/ThreeDRotationOutlined\";\nimport ThreeDViewer from \"../../../common/ThreeDViewer\";\nimport classNames from \"classnames\";\n\nconst styles = () => ({\n button: {\n \"color\": `#fff`,\n \"boxShadow\": `none`,\n \"fontWeight\": `normal`,\n \"textTransform\": `none`,\n \"backgroundColor\": `#52abda`,\n \"&:hover\": {\n opacity: `.8`,\n backgroundColor: `#52abda`\n }\n }\n});\n\nclass ThreeDPreivew extends PureComponent {\n static propTypes = {\n product: PropTypes.object,\n isModalOpen: PropTypes.bool,\n toggleModal: PropTypes.func,\n threeDPreview: PropTypes.object,\n classes: PropTypes.object,\n enableThreeDViewer: PropTypes.func,\n disableThreeDViewer: PropTypes.func\n };\n toggleModal = () => {\n this.props.toggleModal(`threeDPreview`);\n };\n render() {\n const {\n product: {\n meta: {product}\n },\n isModalOpen,\n classes\n } = this.props;\n return threeDSettings && threeDSettings[product] ? (\n
\n \n \n \n \n просмотр\n \n \n \n \n
\n \n
\n \n \n
\n ) : null;\n }\n}\n\nModal.setAppElement(`body`);\n\nconst mapStateToProps = (state) => ({\n isModalOpen: modalSelector(state, `threeDPreview`),\n product: productSelector(state)\n});\n\nconst mapDispatchToProps = {\n toggleModal,\n enableThreeDViewer,\n disableThreeDViewer\n};\n\nexport default connect(\n mapStateToProps,\n mapDispatchToProps\n)(withErrorBoundary(withStyles(styles)(ThreeDPreivew)));\n","import React from 'react'\nimport {useSelector, useDispatch} from 'react-redux'\nimport cn from 'classnames'\nimport IconButton from '@material-ui/core/IconButton'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport {OPEN_DRAW_CONTROL_POPUP} from '../../constants/action-types'\nimport {drawControlPopupSelector} from '../../selectors'\n\nimport styles from './DrawControl.module.scss'\n\nexport default function ControlTooltip(props) {\n const {popupName, icon, title} = props\n const drawControlPopup = useSelector(drawControlPopupSelector)\n const dispatch = useDispatch()\n\n const showPopup = () => {\n dispatch({\n type: OPEN_DRAW_CONTROL_POPUP,\n payload: popupName,\n })\n }\n\n return (\n
\n \n
\n \n {icon}\n \n
\n
\n
\n )\n}\n","import React from 'react'\nimport {useDispatch} from 'react-redux'\nimport IconButton from '@material-ui/core/IconButton'\nimport CloseIcon from '@material-ui/icons/Close'\nimport {CLOSE_DRAW_CONTROL_POPUP} from '../../constants/action-types'\n\nexport default function ControlClose() {\n const dispatch = useDispatch()\n\n const hidePopup = () => {\n dispatch({type: CLOSE_DRAW_CONTROL_POPUP})\n }\n\n return (\n
\n \n \n \n
\n )\n}\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n ,\n `Figures`\n);\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {connect} from 'react-redux'\nimport NoSsr from '@material-ui/core/NoSsr'\nimport ControlTooltip from './ControlTooltip'\nimport ControlClose from './ControlClose'\nimport FiguresIcon from '../../../../icons/FiguresIcon'\nimport {figuresSelector, drawControlPopupSelector} from '../../selectors'\nimport {addPictureToCanvas} from '../../AC/add-picture-to-canvas'\n\nconst POPUP_NAME = 'FIGURES'\n\nFigures.propTypes = {\n figures: PropTypes.array,\n addPictureToCanvas: PropTypes.func,\n}\n\nfunction Figures(props) {\n const addFigure = (params) => () => {\n props.addPictureToCanvas(params, {\n fill: `#ffff00`,\n stroke: `#ff6262`,\n strokeWidth: 25,\n scaleWidth: 100,\n isFigure: true,\n })\n }\n\n const {figures, drawControlPopup} = props\n\n return (\n \n }\n title={'Блоки и фигуры'}\n />\n {drawControlPopup === POPUP_NAME && (\n
\n
\n {figures.map(({id, type, preview, original}) => (\n \n \n
\n ))}\n
\n \n \n )}\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n figures: figuresSelector(state),\n drawControlPopup: drawControlPopupSelector(state),\n})\n\nconst mapDispatchToProps = {\n addPictureToCanvas,\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Figures)\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n \n \n \n ,\n `Emoji`\n);\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {connect} from 'react-redux'\nimport {Link, scroller, Element} from 'react-scroll'\nimport LazyLoad from 'react-lazyload'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport NoSsr from '@material-ui/core/NoSsr'\nimport ControlTooltip from './ControlTooltip'\nimport ControlClose from './ControlClose'\nimport EmojiIcon from '../../../../icons/EmojiIcon'\nimport {emojiSelector, drawControlPopupSelector} from '../../selectors'\nimport {addPictureToCanvas} from '../../AC/add-picture-to-canvas'\n\nconst POPUP_NAME = 'EMOJI'\n\nEmoji.propTypes = {\n emoji: PropTypes.object,\n addPictureToCanvas: PropTypes.func,\n}\n\nfunction Emoji(props) {\n const addEmoji = (params) => () => {\n props.addPictureToCanvas(params, {\n isEmoji: true,\n scaleWidth: 50,\n })\n }\n\n const scrollToCategory = (category) => () => {\n scroller.scrollTo(category, {\n containerId: `container`,\n smooth: true,\n })\n }\n\n const {emoji, drawControlPopup} = props\n\n const categories = {\n '00-halloween': {\n title: `Хеллоуин`,\n icon: 38,\n },\n '01-faces': {\n title: `лица`,\n icon: 12,\n },\n '02-food': {\n title: `еда`,\n icon: 16,\n },\n '03-flags': {\n title: `флаги`,\n icon: 248,\n },\n '04-tropical': {\n title: `тропики`,\n icon: 17,\n },\n '05-party': {\n title: `вечеринка`,\n icon: 17,\n },\n }\n\n return (\n \n }\n title={'Emoji'}\n />\n {drawControlPopup === POPUP_NAME && (\n
\n
\n
\n {Object.keys(emoji)\n .sort()\n .filter((category) => emoji[category].length)\n .map((category) => {\n const {title, icon} = categories[category]\n return (\n \n \n \n \n \n )\n })}\n
\n
\n \n {Object.keys(emoji)\n .sort()\n .filter((category) => emoji[category].length)\n .map((category) => {\n const {title} = categories[category]\n return (\n \n
\n {title}\n
\n
\n {emoji[category].map(\n ({\n id,\n type,\n preview,\n original,\n }) => (\n \n \n \n \n
\n ),\n )}\n
\n \n )\n })}\n \n \n \n )}\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n emoji: emojiSelector(state),\n drawControlPopup: drawControlPopupSelector(state),\n})\n\nconst mapDispatchToProps = {\n addPictureToCanvas,\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Emoji)\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n ,\n `Cliparts`\n);\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {connect} from 'react-redux'\nimport {Link, scroller, Element} from 'react-scroll'\nimport LazyLoad from 'react-lazyload'\nimport Tooltip from '@material-ui/core/Tooltip'\nimport NoSsr from '@material-ui/core/NoSsr'\nimport ControlTooltip from './ControlTooltip'\nimport ControlClose from './ControlClose'\nimport ClipartsIcon from '../../../../icons/ClipartsIcon'\nimport {clipartsSelector, drawControlPopupSelector} from '../../selectors'\nimport {addPictureToCanvas} from '../../AC/add-picture-to-canvas'\n\nconst POPUP_NAME = 'CLIPARTS'\n\nCliparts.propTypes = {\n cliparts: PropTypes.object,\n addPictureToCanvas: PropTypes.func,\n}\n\nfunction Cliparts(props) {\n const addClipart = (params) => () => {\n props.addPictureToCanvas(params, {\n isClipart: true,\n })\n }\n\n const scrollToCategory = (category) => () => {\n scroller.scrollTo(category, {\n containerId: `container`,\n smooth: true,\n })\n }\n\n const {cliparts, drawControlPopup} = props\n\n const categories = {\n '00-halloween': {\n title: `Хеллоуин`,\n icon: 38,\n },\n '01-top': {\n title: `популярные`,\n icon: 2,\n },\n '02-hearts': {\n title: `сердца`,\n icon: 1,\n },\n '03-crowns': {\n title: `короны`,\n icon: 0,\n },\n '04-skulls': {\n title: `черепа`,\n icon: 0,\n },\n '05-others': {\n title: `разное`,\n icon: 8,\n },\n }\n return (\n \n }\n title={'Клипарты'}\n />\n {drawControlPopup === POPUP_NAME && (\n
\n
\n
\n {Object.keys(cliparts)\n .sort()\n .filter((category) => cliparts[category].length)\n .map((category) => {\n const {title, icon} = categories[category]\n return (\n \n \n \n \n \n )\n })}\n
\n
\n \n {Object.keys(cliparts)\n .sort()\n .filter((category) => cliparts[category].length)\n .map((category) => {\n const {title} = categories[category]\n return (\n \n
\n {title}\n
\n
\n {cliparts[category].map(\n ({\n id,\n type,\n preview,\n original,\n }) => (\n \n \n \n \n
\n ),\n )}\n
\n \n )\n })}\n \n \n \n )}\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n cliparts: clipartsSelector(state),\n drawControlPopup: drawControlPopupSelector(state),\n})\n\nconst mapDispatchToProps = {\n addPictureToCanvas,\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Cliparts)\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n ,\n `Textures`\n);\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {connect} from 'react-redux'\nimport NoSsr from '@material-ui/core/NoSsr'\nimport LazyLoad from 'react-lazyload'\nimport ControlTooltip from './ControlTooltip'\nimport ControlClose from './ControlClose'\nimport TexturesIcon from '../../../../icons/TexturesIcon'\nimport {picturesSelector, drawControlPopupSelector} from '../../selectors'\nimport {addPictureToCanvas} from '../../AC/add-picture-to-canvas'\n\nconst POPUP_NAME = 'TEXTURES'\n\nTextures.propTypes = {\n textures: PropTypes.array,\n addPictureToCanvas: PropTypes.func,\n}\n\nfunction Textures(props) {\n const addTexture = (params) => () => {\n props.addPictureToCanvas(params, {\n isTexture: true,\n })\n }\n\n const {textures, drawControlPopup} = props\n\n return (\n \n }\n title={'Текстуры'}\n />\n {drawControlPopup === POPUP_NAME && (\n
\n
\n {textures.map(({id, type, preview, original}) => (\n \n \n \n \n
\n ))}\n
\n \n \n )}\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n textures: picturesSelector(state).textures,\n drawControlPopup: drawControlPopupSelector(state),\n})\n\nconst mapDispatchToProps = {\n addPictureToCanvas,\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Textures)\n","import React from \"react\";\nimport createSvgIcon from \"@material-ui/icons/utils/createSvgIcon\";\n\nexport default createSvgIcon(\n \n \n \n \n \n \n \n \n ,\n `Letterings`\n);\n","import {\n ADD_OBJECTS_TO_CANVAS,\n START,\n SUCCESS,\n FAIL\n} from \"../constants/action-types\";\nimport Mediator from \"../services/Mediator\";\nimport isDarkColor from \"../services/lib/is-dark-color\";\n\nconst isDarkDesign = (design) => {\n return design && design.background && isDarkColor(design.background);\n};\n\nconst isBlackProduct = (variants) => {\n return variants && variants.color === `black`;\n};\n\nexport const addObjectsToCanvas = (params, options = {}) => (\n dispatch,\n getState\n) => {\n dispatch({\n type: ADD_OBJECTS_TO_CANVAS + START\n });\n (async () => {\n const {\n condition: {variants, design}\n } = getState();\n try {\n let fill;\n if (options.fill) {\n fill = options.fill;\n } else {\n fill =\n isBlackProduct(variants) || isDarkDesign(design) ? `#fff` : `#000`;\n }\n await Mediator.addObjectsToCanvas(params, {\n ...options,\n fill\n });\n dispatch({\n type: ADD_OBJECTS_TO_CANVAS + SUCCESS\n });\n } catch (e) {\n dispatch({\n type: ADD_OBJECTS_TO_CANVAS + FAIL,\n error: `Произошла ошибка`\n });\n throw e;\n }\n })();\n};\n","import React from 'react'\nimport PropTypes from 'prop-types'\nimport {connect} from 'react-redux'\nimport NoSsr from '@material-ui/core/NoSsr'\nimport ControlTooltip from './ControlTooltip'\nimport ControlClose from './ControlClose'\nimport LetteringsIcon from '../../../../icons/LetteringsIcon'\nimport {letteringsSelector, drawControlPopupSelector} from '../../selectors'\nimport {addObjectsToCanvas} from '../../AC/add-objects-to-canvas'\n\nconst POPUP_NAME = 'LETTERINGS'\n\nLetterings.propTypes = {\n letterings: PropTypes.array,\n addObjectsToCanvas: PropTypes.func,\n}\n\nfunction Letterings(props) {\n const addLettering = (params) => () => {\n props.addObjectsToCanvas(params)\n }\n\n const {letterings, drawControlPopup} = props\n\n return (\n \n }\n title={'Надписи'}\n />\n {drawControlPopup === POPUP_NAME && (\n
\n
\n Выбери надпись и редактируй\n
\n
\n {letterings.map(({id, type, preview, original}) => (\n \n \n
\n ))}\n
\n \n \n )}\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n letterings: letteringsSelector(state),\n drawControlPopup: drawControlPopupSelector(state),\n})\n\nconst mapDispatchToProps = {\n addObjectsToCanvas,\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(Letterings)\n","import React, {PureComponent} from \"react\";\nimport {connect} from \"react-redux\";\nimport withErrorBoundary from \"../../decorators/withErrorBoundary\";\nimport Figures from \"./Figures\";\nimport Emoji from \"./Emoji\";\nimport Cliparts from \"./Cliparts\";\nimport Textures from \"./Textures\";\nimport Letterings from \"./Letterings\";\n\nclass DrawControl extends PureComponent {\n render() {\n return (\n
\n
Фигуры и графика
\n
\n \n \n \n \n \n
\n
\n );\n }\n}\n\nexport default connect()(withErrorBoundary(DrawControl));\n","import React from 'react'\nimport SvgIcon from '@material-ui/core/SvgIcon'\n\nexport default function MoveToolIcon() {\n return (\n \n \n \n \n \n )\n}\n","import React from 'react'\n\nexport default function SelectionToolIcon() {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport {useSelector, useDispatch} from 'react-redux'\nimport IconButton from '@material-ui/core/IconButton'\nimport MoveToolIcon from '../../../common/Icons/MoveTool'\nimport SelectionToolIcon from '../../../common/Icons/SelectionTool'\nimport {setMode, selectionModeSelect} from '../../reducer/selectionMode'\n\nimport styles from '../DrawControl/DrawControl.module.scss'\n\nexport default function Instruments() {\n const dispatch = useDispatch()\n const isMobile = useSelector((state) => state.isMobile)\n const selectionMode = useSelector(selectionModeSelect)\n\n return (\n isMobile ? (\n
\n
Инструменты
\n
\n
\n dispatch(setMode(false))}\n className={!selectionMode ? styles.active : ''}\n >\n \n \n
\n
\n dispatch(setMode(true))}\n className={selectionMode ? styles.active : ''}\n >\n \n \n
\n
\n
\n ) : null\n )\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {connect} from \"react-redux\";\nimport classnames from \"classnames\";\nimport withErrorBoundary from \"../decorators/withErrorBoundary\";\nimport withMobileContext from \"../decorators/withMobileContext\";\nimport {\n productSelector,\n isShownProductsSelector,\n onPlatformSelector,\n mobileAppSelector\n} from \"../selectors\";\nimport Products from \"./Products\";\nimport Product from \"./Product\";\nimport ActionPanel from \"./ActionPanel\";\nimport RealisticView from \"./RealisticView\";\nimport Navigation from \"./Navigation\";\nimport ObjectManager from \"./ObjectManager\";\nimport SideControl from \"./SideControl\";\nimport TextControl from \"./TextControl\";\nimport VariantControl from \"./VariantControl\";\nimport SystemControl from \"./SystemControl\";\nimport EditControl from \"./EditControl\";\nimport BackgroundControl from \"./BackgroundControl\";\nimport StaticObjectControl from \"./StaticObjectControl\";\nimport ThreeDPreview from \"./ThreeDPreview\";\nimport DrawControl from \"./DrawControl\";\nimport Instruments from \"./Instruments\";\n\nclass Root extends React.Component {\n static propTypes = {\n product: PropTypes.object,\n isMobile: PropTypes.bool,\n isShownProducts: PropTypes.bool,\n onPlatform: PropTypes.string,\n mobileApp: PropTypes.bool\n };\n componentDidMount() {\n const jssStyles = document.getElementById(`jss-server-side`);\n if (jssStyles && jssStyles.parentNode) {\n jssStyles.parentNode.removeChild(jssStyles);\n }\n }\n render() {\n const {\n product: {\n meta: {translated_product: h1Text}\n },\n product,\n isMobile,\n isShownProducts,\n onPlatform,\n mobileApp\n } = this.props;\n return (\n \n {(isShownProducts || !isMobile) && (\n
\n \n {!isMobile && }\n
\n )}\n {!isMobile && (\n
\n
\n

{h1Text}

\n
\n
\n )}\n {!mobileApp && isMobile && (\n
\n
\n \n
\n
\n )}\n
\n
\n {!isMobile && }\n
\n
\n {isMobile && (\n \n \n
\n \n \n
\n
\n )}\n \n {!isMobile && (\n
\n \n \n
\n )}\n {isMobile && (\n \n
\n \n \n \n \n \n \n
\n \n
\n \n \n
\n \n
\n )}\n
\n
\n {!isMobile && (\n \n \n
\n \n \n \n \n \n \n
\n \n
\n )}\n
\n
\n \n );\n }\n}\n\nexport default connect((state) => ({\n product: productSelector(state),\n isShownProducts: isShownProductsSelector(state),\n onPlatform: onPlatformSelector(state),\n mobileApp: mobileAppSelector(state)\n}))(withErrorBoundary(withMobileContext(Root)));\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport {Provider} from \"react-redux\";\nimport axios from 'axios'\nimport axiosRetry from 'axios-retry'\nimport isRetryAllowed from 'is-retry-allowed';\nimport JssProvider from \"react-jss/lib/JssProvider\";\nimport {\n MuiThemeProvider,\n createGenerateClassName,\n jssPreset\n} from \"@material-ui/core/styles\";\nimport {create} from 'jss';\nimport createStoreForSSR from \"./store\";\nimport Router from \"../common/Router\";\nimport Root from \"./components/Root\";\nimport {Route} from \"react-router-dom\";\nimport MobileCtx from \"../../contexts/MobileCtx\";\nimport DictionaryCtx from \"../../contexts/DictionaryCtx\";\nimport dictionary from \"../../dictionary\";\nimport ProductsCtx from \"./contexts/ProductsCtx\";\nimport ColorHexMapCtx from \"./contexts/ColorHexMapCtx\";\nimport {getMuiTheme} from \"../../../javascripts/getMaterialTheme\";\n\naxiosRetry(axios, {\n retries: 2,\n retryDelay: (retryCount) => retryCount * 500,\n retryCondition: (error) => {\n return (\n error.code !== 'ECONNABORTED' &&\n (!error.response || (error.response.status >= 400 && error.response.status <= 599)) &&\n isRetryAllowed(error)\n );\n }\n})\n\nclass App extends React.Component {\n static propTypes = {\n materialUI: PropTypes.string,\n state: PropTypes.shape({\n path: PropTypes.string,\n isMobile: PropTypes.bool,\n isPichshop: PropTypes.bool,\n products: PropTypes.array,\n product: PropTypes.object,\n condition: PropTypes.object,\n initialVariants: PropTypes.object,\n designs: PropTypes.object,\n colorHexMap: PropTypes.object,\n pictures: PropTypes.object,\n crops: PropTypes.array,\n figures: PropTypes.array,\n emoji: PropTypes.object,\n cliparts: PropTypes.object,\n letterings: PropTypes.array,\n user: PropTypes.object,\n authenticityToken: PropTypes.string,\n onPlatform: PropTypes.string,\n shutterStockEnabled: PropTypes.bool,\n mobileApp: PropTypes.bool\n })\n };\n // Remove the server-side injected CSS.\n componentDidMount() {\n const jssStyles = document.getElementById(\n `jss-server-side-${this.props.materialUI}`\n );\n if (jssStyles && jssStyles.parentNode) {\n jssStyles.parentNode.removeChild(jssStyles);\n }\n document\n .querySelector(`[data-react-class]`)\n .removeAttribute(`data-react-props`);\n }\n render() {\n const {\n path,\n isMobile,\n isPichshop,\n products,\n product,\n designs,\n condition,\n initialVariants,\n colorHexMap,\n pictures,\n authenticityToken,\n crops,\n figures,\n emoji,\n cliparts,\n letterings,\n user,\n onPlatform,\n shutterStockEnabled,\n mobileApp,\n currency\n } = this.props.state;\n const sides = {};\n const realism = {};\n const message = {};\n const uploader = {};\n const undoRedo = {};\n const isShownProducts = false;\n const initialStore = {\n path,\n product,\n designs,\n condition,\n sides,\n realism,\n message,\n pictures,\n uploader,\n undoRedo,\n authenticityToken,\n isShownProducts,\n crops,\n isPichshop,\n figures,\n emoji,\n cliparts,\n letterings,\n initialVariants,\n user,\n forAllSides: true,\n onPlatform,\n shutterStockEnabled,\n mobileApp,\n drawControlPopup: '',\n currency,\n isMobile,\n };\n const store = createStoreForSSR(initialStore);\n const theme = getMuiTheme(onPlatform);\n // Create a new class name generator.\n const generateClassName = createGenerateClassName({\n productionPrefix: `${this.props.materialUI}-react-app`\n });\n const jss = create({\n ...jssPreset(),\n // We define a custom insertion point that JSS will look for injecting the styles in the DOM.\n insertionPoint: typeof document !== 'undefined' && document.getElementById('jss-insertion-point'),\n });\n\n return (\n \n \n (\n \n \n \n \n \n \n \n \n \n \n \n \n \n )}\n />\n \n \n );\n }\n}\n\nexport default App;\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport HeaderApp from '../applications/components/HeaderApp'\nimport EditorApp from '../applications/components/EditorApp'\nimport {\n componentExistsOnPage,\n getComponentProps,\n getRootElement,\n} from '../applications/utils/ssr'\nimport CustomStoreHeaderApp from '../applications/components/CustomStoreHeaderApp'\n\nif (componentExistsOnPage('HeaderApp')) {\n const props = getComponentProps('HeaderApp')\n\n ReactDOM.hydrate(, getRootElement('HeaderApp'))\n}\n\nif (componentExistsOnPage('CustomStoreHeaderApp')) {\n const props = getComponentProps('CustomStoreHeaderApp')\n\n ReactDOM.hydrate(\n ,\n getRootElement('CustomStoreHeaderApp')\n )\n}\n\nconst props = getComponentProps('EditorApp')\n\nReactDOM.hydrate(, getRootElement('EditorApp'))\n","// extracted by mini-css-extract-plugin\nexport default {\"active\":\"applications-components-EditorApp-components-DrawControl-DrawControl-module__active\",\"CTIconButton\":\"applications-components-EditorApp-components-DrawControl-DrawControl-module__CTIconButton\"};\n if(module.hot) {\n // 1715063929716\n var cssReload = require(\"../../../../../../../node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"locals\":true});\n module.hot.dispose(cssReload);\n \n }\n "],"names":["width","height","OriginalComponent","transform","side","windowWidth","window","innerWidth","scaleVal","tx","ty","setState","this","scale","addEventListener","removeEventListener","state","heightContainer","style","margin","props","Component","ThreeDViewer","enable","disable","className","threeDEl","useRef","useEffect","current","ref","propTypes","PropTypes","scaleByWindow","React","store","Own_design","Create_own_design","Show_more","Select_the_desired_section_or_product","Sort","Didnt_find_what_you_were_looking_for","editor","item","no_frame","dark_wood","light_wood","black","white","silver","glossy","matte","plastic","none","squared","ruled","sew","zipper","zipper_without_extender","tubule","pocket","eyelets","shaft150","shaft200","survey","Yes","No","Send","Write_please","header","currencyFallback","compact","zero","one","few","many","separator","full","endingCurrency","price","shortCurrency","currency","ending","longCurrency","category","action","label","value","ga","args","filter","i","apply","getMuiTheme","onPlatform","theme","typography","fontFamily","useNextVariants","breakpoints","values","xs","sm","md","lg","xl","createMuiTheme","path","type","payload","CHANGE_LOCATION","location","pathname","START","SUCCESS","FAIL","TICK","INIT_CANVAS","APPLY_CONDITION_TO_CANVAS","APPLY_CONDITION_TO_SIDES","CHANGE_SIDE","CHANGE_PRODUCT","CHANGE_DESIGN","CHANGE_VARIANT","SAVE_DESIGN","AUTO_SAVE_DESIGN","CLEAR_DESIGN","GET_REALISM","ADD_MESSAGE","CHANGE_BACKGROUND_FOR_OTHER_SIDES","ADD_PICTURE_TO_CANVAS","UPLOAD_IMAGE","ADD_IMAGE","REMOVE_IMAGE","TOGGLE_MODAL","CLOSE_ALL_MODALS","UPDATE_UNDO_REDO","UNDO","REDO","ADD_TEXT","TOGGLE_PRODUCTS","CHANGE_SOURCE_UPLOADER","THIRD_PARTY_SEARCH","SET_THIRD_PARTY_SEARCH_QUERY","INCREMENT_THIRD_PARTY_SEARCH_PAGE","SET_FILL_FOR_STATIC_OBJECT","TOGGLE_STATIC_OBJECTS","SET_FOR_ALL_SIDES","GET_THREE_D_VIEWER","CREATE_TILING","RESTORE_DESIGN","ADD_OBJECTS_TO_CANVAS","APPLY_VISIONHUB_FILTER","OPEN_DRAW_CONTROL_POPUP","CLOSE_DRAW_CONTROL_POPUP","product","loading","loaded","response","error","condition","next","design","dimensions","dpi","designs","variants","variant","prev","index","desings","getDesignsWithChangedBg","color","getDesignsWithChangedFill","fillColor","pathNumber","newDesigns","key","hasOwnProperty","background","objects","staticObjects","o","length","fill","sides","assets","realism","progress","message","text","info","Math","round","success","pictures","images","id","picture_content_type","original","canvas_url","originalWidth","original_width","originalHeight","original_height","preview","small_url","image","uploader","query","page","source","data","authenticityToken","modals","threeDPreview","modal","Object","keys","reduce","acc","undoRedo","canUndo","canRedo","crops","isShownProducts","forAllSides","isPichshop","figures","emoji","cliparts","lettering","initialVariants","user","name","visionHubState","shutterStockEnabled","mobileApp","selectionModeSlice","createSlice","initialState","reducers","setMode","_","selectionModeSelect","selectionMode","actions","IS_BROWSER","IS_DEV","hostname","composeEnhancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","middlewares","thunk","api","routerMiddleware","history","enhancer","applyMiddleware","initialStore","createStore","combineReducers","router","connectRouter","letterings","drawControlPopup","isMobile","WrappedComponent","errorInfo","catchFunc","ctx","MobileCtx","conditionSelector","productSelector","createSelector","designsSelector","sidesSelector","realismSelector","messageSelector","picturesSelector","uploaderSelector","modalSelector","undoRedoSelector","isShownProductsSelector","cropsSelector","forAllSidesSelector","isPichshopSelector","figuresSelector","emojiSelector","clipartsSelector","letteringsSelector","userSelector","onPlatformSelector","shutterStockEnabledSelector","mobileAppSelector","drawControlPopupSelector","Children","activeItem","productName","items","changeProduct","minimized","map","isActive","NavLink","to","rawParentId","onClick","pluralized_product","src","assetURL","alt","title","PureComponent","withRouter","Department","department","changeDepartment","active","children","HorizontalScroll","scrollLeft","isVisibleScroll","e","delta","abs","wheelDeltaY","wheelDeltaX","currentTarget","onScroll","preventDefault","direction","scrollWrapper","wheel","checkScroll","result","scrollTo","withArrows","changeScrollLeft","toggleProducts","ChangeProductCommand","prevProduct","controller","dispatch","getState","applyConditionToCanvas","prevCondition","Mediator","getSideIndex","metaDesigns","getDesignsWithStaticObjects","objectToLoad","objectKey","promisesForStaticObjects","modifingDesings","sideIndex","options","push","hasBorders","hasControls","selectable","evented","static","Promise","all","modifingDesingsKey","modifiedDesigns","element","staticObject","toObject","getDesigns","meta","settings","productSettings","designsWithoutStaticObjects","objectsWithoutStatic","getDesignsWithoutStaticObjects","toggleStaticObjects","designsWithInitialStaticObjects","Products","activeDepartment","getActiveDepartment","url","attributes","href","products","hasActiveItem","raw_parent_id","connect","silent","prevProductName","callAPI","API_PRODUCT_INFO","default_side","fetch","headers","credentials","then","res","status","Error","json","trackEvent","withErrorBoundary","withMobileContext","ProductsCtx","Consumer","timeoutId","getURLforPushInHistory","closeup","getDataForSavingFromState","body","authenticity_token","JSON","stringify","variantKey","product_attributes","psignature","getURLforCallAPI","split","slice","saveDesignRequest","authHeader","authHeaders","axios","method","statusText","test","localStorage","removeItem","clearDesignFromLocalStorage","setItem","saveDesignToLocalStorage","saveDesign","Canvas","position","top","left","CANVAS","disableObjectContextMenu","val","Provider","OBJECT_MOVING","changeStateContextMenu","OBJECT_SCALING","OBJECT_ROTATING","OBJECT_MODIFIED","SELECTION_CREATED","SELECTION_CLEARED","BEFORE","TOUCH_MOVE","holdToDisplay","Message","isOpen","classes","Snackbar","anchorOrigin","vertical","horizontal","onClose","handleClose","open","autoHideDuration","SnackbarContent","classNames","content","getIconForMessage","messageText","IconButton","close","Close","icon","Info","Warning","CheckCircle","withStyles","backgroundColor","green","palette","dark","primary","warning","amber","fontSize","iconVariant","opacity","marginRight","spacing","unit","display","alignItems","flexWrap","Messages","handlers","onSelectAll","onPaste","onCopy","onDelete","onDeleteOthers","onClone","onFlipHorizontally","onFlipVertically","onStraighten","onSendToBack","onSendToBackwards","onBringToFront","onBringToForward","onCenterVertically","onCenterHorizontally","onResizeActiveObjectToFill","onRestoreRatio","layerMenu","handleClick","hotKey","objectMenu","systemMenu","ObjectCtxMenu","hasCopiedObject","HAS_COPIED_OBJECT","disabled","CtxMenu","KeyObserver","ArrowRight","ArrowLeft","ArrowUp","ArrowDown","V","v","C","c","A","a","Z","z","S","s","Delete","Backspace","RightSquareBracket","LeftSquareBracket","metaKey","ctrlKey","shiftKey","altKey","keyCode","target","tagName","keyCodes","document","onKeyDownPress","mapDispatchToProps","AngleLabel","angle","isShow","memo","x","y","touches","clientX","clientY","onObjectRotating","CANVAS_MODIFIED","onCanvasModified","Product","disableContextMenu","hasScaledUpImages","initCanvas","initListeners","touchStartHandler","bind","touchEndHandler","prevProps","nextCondition","APPLY_BACKGROUND","newDesign","changeDesign","SCALLED_UP_IMAGES","list","addMessage","notJustShutterstock","find","fields","isShutterstockImage","pointer","getElementById","getBoundingClientRect","scaleFactor","touchMoveScrollDisable","passive","_groupSelector","ex","ey","setTimeout","onTouchStart","onTouchEnd","ObjectContextMenu","ContextMenu","Loader","autoSaveDesign","changeVariant","parse","getItem","getDesignFromLocalStorage","restoreDesign","applyConditionToCanvasAC","clearTimeout","redirect","floor","parseInt","isEmpty","isTransparent","getDesignInfo","additional","hasDesign","main","getFormattedBasicDependentPriceMap","priceMap","elem","el","getPriceFromScheme","priceData","pricing_scheme","priceMapForVariant","variant_prices","getPriceForBasicVariantDependent","base_price","double_side_adjustment","additional_design_adjustment","getPriceForBasic","price_map","getPriceForPerItemQuantityDiscounts","Array","isArray","ac","getPriceForVariantAndQuantityDependent","paperPriceMap","paper_price_maps","arr","prop","laminationPriceMap","lamination_per_100","cornerRadiusPriceMap","rounded_corners_per_100","paper_type","lamination","corner_radius","getPriceForCardPacks","Price","calcPrice","calculatePrice","BACKGROUND_COLOR_CHANGED","setPrice","OBJECT_ADDED","OBJECT_REMOVED","designData","price_data","priceFormat","selected","onSelectionCreated","SELECTION_UPDATED","onSelectionUpdated","onSelectionCleared","Order","isItInViewport","Button","orderProduct","button","vtb","currentVariants","params","changingVariants","mergedVariants","join","getParams","trackPageview","ReactNativeWebView","postMessage","withSelectionContext","heightViewport","innerHeight","heightOfEl","offsetHeight","topPositionOfEl","checkViewPort","withViewPortContext","ActionPanel","isOwner","NoSsr","Tooltip","sellProduct","sell","View","mode","Views","currentIndex","large","views","end","small","filterLargeViews","filterSmallViews","changeCurrentIndex","Realism","percent","strokeWidth","strokeColor","toggleModal","closeAllModals","realismInterval","realismRequest","productId","resetGettingRealism","setInterval","API_REALISM","receivedRealiscticViews","realisticViews","realistic_views","numberOfExpectedMainRealiscticViews","view","numberOfExpectedAdditionalRealiscticViews","required_design_defs","every","designDefs","art","calculateProgress","REALISM_POLL_TIME","clearInterval","RealisticView","getRealism","isModalOpen","showRealisticViews","marginLeft","overlayClassName","onRequestClose","Modal","Navigation","match","r","g","b","replace","sqrt","isDarkDesign","isDarkColor","isBlackProduct","createSvgIcon","d","AddingText","addText","permissions","isDisabled","Add","TextIcon","fontWeight","textDecoration","shadow","fontStyle","stroke","textAlign","lineHeight","textBackgroundColor","boxShadow","borderRadius","border","addPictureToCanvas","addImage","interval","API_IMAGES","PICTURE_POLL_TIME","uploadImage","shutterstock","formData","FormData","append","searchRequest","contributor","request","send","on","Picture","flag","onRequestCloseModal","removePicture","picture","removability","overflow","offset","placeholder","Pictures","padding","showMore","PictureBox","activeCategory","setActiveCategory","fillRule","clipRule","GoogleSearchIcon","xmlns","viewBox","Local","file","fileInput","files","getObjects","obj","changeSourceUploader","accept","zIndex","onChange","htmlFor","component","LocalIcon","leftIcon","changeSource","lightButton","areThereShutterstockPicsOnCanvas","textTransform","incrementThirdPartySearchPage","getAPIParamsForQuery","pages","imgSize","searchQuery","start","search","arrayOfParams","apiGoogleSearchTemplate","err","shutterStockSearch","Image","previewSrc","GoogleSearchResults","useDispatch","useSelector","useCallback","doesNextPageExist","useMemo","queries","nextPage","count","link","thumbnailLink","resultsSources","perPage","totalCount","totalPages","imagesList","description","shutterStockRetrieveContributor","uploadShutterstockImage","Results","ThirdPartySearch","event","setSearchQuery","textValueRef","focus","clearSearchData","onSubmit","handleSubmit","TextField","inputRef","inputLabels","handleChange","InputProps","input","fullWidth","Search","incrementGoogleSearchPage","Uploader","getSourceContent","AddingPicture","ObjectManager","SideControl","changeSide","applyConditionToSides","sideParam","indexOfDesign","sideHasDesign","isMainSide","isMainDoubleSide","isAdditionalDesign","classnames","activeSide","translatedName","translated_name","mod","blank","getPriceLabelForSide","prevDesign","prevSide","prevSideIndex","nextSideIndex","getSideInfo","TextValue","multiline","rowsMax","MSelect","labelWidth","ReactDOM","InputLabelRef","offsetWidth","onPreviewHover","optionStyles","FormControl","InputLabel","Select","onOpen","handleOpen","OutlinedInput","option","optionCSS","MenuItem","onMouseEnter","fontFamilies","linethrough","underline","fontSizes","fontStyles","resetValue","setValue","tooltip","textAlings","pichshopFonts","FontFamily","font","FontStyle","anchorEl","FormatBold","FormatItalic","FormatUnderlined","StrikethroughS","ShadowIcon","ArrowDropDown","Menu","Boolean","getIconForFontStyle","TextAlign","FormatAlignLeft","FormatAlignCenter","FormatAlignRight","FormatAlignJustify","getIconForTextAlign","ColorPicker","isOpenPicker","pickerType","paletteNode","contentNode","contains","togglePicker","onSwatchHover","onChangeCirclePicker","onChangeComplete","colors","onChangeChromePicker","setPickerType","getPicker","withoutTransparent","filterUnits","colorInterpolationFilters","floodOpacity","in","dy","stdDeviation","in2","TextColor","FormatColorTextWithShadowIcon","FontSize","TextControl","overline","setStateFromOText","property","rgb","setTextProperty","viewHeight","scroller","smooth","oText","TEXT_ADDED","focusTextField","TEXT_CHANGED","onTextChanged","prevSelected","Element","toString","dictionary","LineTemplate","subTitle","filterOfItemsBy","getItemsFromArray","getItemsFromObject","getElement","elements","customHandleClick","currentValue","dict","getBackground","itemsMap","indexOf","isRequired","SelectTemplate","CheckboxTemplate","FormControlLabel","control","Checkbox","checked","ColorWheelIcon","LineWithColorPicker","setForAllSides","getCurrentValue","backgroundPosition","handleCheckboxChange","variantName","Template","productMeta","colorHexMap","withoutTitle","DictionaryCtx","keyInProductMeta","withPrice","getFormattedPriceMapForVariant","changeBgColorForOtherSides","setBackgroundColor","VariantControl","toggleVariants","firstVariant","getColorFromDesign","template","ColorHexMapCtx","withColorHexMapContext","UndoRedo","undo","redo","updateUndoRedo","historyAdd","HISTORY_ADD","historyChanged","HISTORY_CHANGED","root","Undo","Redo","lengthOfCommands","System","disabledPasteButton","ClipboardIcon","setStateOfCopiedObject","handleDisabled","itemMenu","getIcon","toggleEffect","SystemControl","removeWhite","removeBlack","grayscale","invert","sepia","brightness","blur","sharpen","emboss","noise","pixelate","fetchProcessingStatus","timeout","delay","Effects","filters","clipPath","oImage","effectName","isSelected","FILTER_CHANGED","setStateFromOImage","EnhancerIcon","effectsMenu","mapDefaultEffects","applyVisionHubFilter","effect","remoteId","API_IMAGE_FILTERS","processedId","waitForProcessing","Opacity","setOpacity","object","setStateFromObject","Slider","container","slider","track","thumb","toFixed","Edit","ClipartFill","setStateFromOPahtGroup","hex","setFillForPath","oPathGroup","FILL_CHANGED","onFillChanged","FillShadowIcon","Crop","cropUrl","applyCrop","CROP_APPLYIED","showPopup","hidePopup","Stroke","setStroke","STROKE_CHANGED","onStrokeChanged","isEmptyStroke","handleStroke","handleStrokeWidth","textField","min","max","step","WithoutStrokeIcon","StrokeIcon","Tiling","tilePadding","setTilePadding","destroyTiling","typeOfTiling","createTiling","TILING_CREATED","onTilingChanged","TILING_DESTROYED","isTiling","rootWithArrow","TilingIcon","tile","EditControl","BackgroundControl","rgba","getColorForBackgroundInput","fullPrint","isFullPrint","changeBackground","StaticObjectControl","setFillForPathOfStaticObject","settigns","setInitialValues","loadedObjectSettings","hasProductStaticObject","colorPickers","getColor","changeColor","ThreeDPreivew","threeDSettings","enableThreeDViewer","disableThreeDViewer","updateDesignsInfo","ThreeJSMediator","ControlTooltip","popupName","cn","styles","ControlClose","POPUP_NAME","Figures","FiguresIcon","scaleWidth","isFigure","Emoji","scrollToCategory","containerId","categories","EmojiIcon","sort","Link","spy","activeClass","isEmoji","once","Cliparts","ClipartsIcon","isClipart","Textures","textures","TexturesIcon","isTexture","patternContentUnits","xlinkHref","Letterings","LetteringsIcon","addObjectsToCanvas","DrawControl","MoveToolIcon","version","preserveAspectRatio","SelectionToolIcon","Instruments","Root","jssStyles","parentNode","removeChild","h1Text","translated_product","ThreeDPreview","axiosRetry","retries","retryDelay","retryCount","retryCondition","code","isRetryAllowed","App","materialUI","querySelector","removeAttribute","createStoreForSSR","generateClassName","createGenerateClassName","productionPrefix","jss","create","jssPreset","insertionPoint","Router","render","JssProvider","MuiThemeProvider","componentExistsOnPage","getComponentProps","HeaderApp","getRootElement","CustomStoreHeaderApp","EditorApp","cssReload","module","hot","dispose"],"sourceRoot":""}