{"version":3,"sources":["webpack:///../jarvis/app/assets/javascripts/core/services/HttpRequestBatcher/batchers/photoMaps/fetchPins.ts","webpack:///../jarvis/app/assets/javascripts/site/controllers/PhotoMap/components/PhotoMapWidget/components/PhotoPins/index.tsx","webpack:///../jarvis/app/assets/javascripts/site/controllers/PhotoMap/components/PhotoMapWidget/index.tsx","webpack:///../jarvis/app/assets/javascripts/site/controllers/PhotoMap/utils.ts"],"names":["fetchPins","_x","_fetchPins","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee","requests","result","wrap","_context","prev","next","Http","post","data","digests","sent","abrupt","_ref","digest","stop","TYPES_TO_TEMPLATES","text","asyncComponent","product","external_product","template","PhotoPins","_Component","_inherits","_super","_createSuper","_this","_classCallCheck","handlePinClick","e","stopPropagation","key","value","_this2","pins","this","props","h","map","pin","index","PinByType","type","zone","calculateZone","x","y","onClick","Component","PhotoMapWidget","_fetchPins2","state","handleOpenEditor","onOpenEditor","_this$props","productId","params","product_id","HttpRequestBatcher","request","t0","setState","isEditable","className","length","get","_a","Env","isLogged","user","ability","showPinsEditor","isDOMRect","rect","DOMRect","normalizeCoordinates","left","right","top","bottom","percentageCoordinates","_ref2","width","height","_ref3","Number","join"],"mappings":"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","file":"chunk.102.76da05ac6f8248686a4a.f7c16ad6.js","sourcesContent":["import Http from 'core/services/Http';\nexport async function fetchPins(requests) {\n let result = await Http.post('/front_api/photo_maps/batch_fetch_pins.json', {\n data: { digests: requests }\n });\n return ({ digest }) => result[digest];\n}\n","import { h, Component } from 'preact';\nimport { calculateZone } from '../../../../utils';\nimport { asyncComponent } from 'core/components/Hoc/asyncComponent';\nconst TextPin = asyncComponent(() => import(/* webpackChunkName: \"site_c-TextPin\" */ './templates/TextPin'), 'TextPin');\nconst ProductPin = asyncComponent(() => import(/* webpackChunkName: \"site_c-ProductPin\" */ './templates/ProductPin'), 'ProductPin');\nconst ExternalProductPin = asyncComponent(() => import(/* webpackChunkName: \"site_c-ExternalProductPin\" */ './templates/ExternalProductPin'), 'ExternalProductPin');\nconst TemplatePin = asyncComponent(() => import(/* webpackChunkName: \"site_c-TemplatePin\" */ './templates/TemplatePin'), 'TemplatePin');\nconst TYPES_TO_TEMPLATES = {\n text: TextPin,\n product: ProductPin,\n external_product: ExternalProductPin,\n template: TemplatePin\n};\nexport class PhotoPins extends Component {\n constructor() {\n super(...arguments);\n this.handlePinClick = (e) => {\n e.stopPropagation();\n };\n }\n render() {\n const { pins } = this.props;\n return (h(\"div\", null, pins.map((pin, index) => {\n const PinByType = TYPES_TO_TEMPLATES[pin.type];\n const zone = calculateZone({ x: pin.x, y: pin.y });\n return (h(PinByType, { pin: pin, zone: zone, key: index, onClick: this.handlePinClick }));\n })));\n }\n}\n","import { h, Component } from 'preact';\nimport HttpRequestBatcher from 'core/services/HttpRequestBatcher';\nimport { fetchPins } from 'core/services/HttpRequestBatcher/batchers/photoMaps';\nimport { PhotoPins } from './components/PhotoPins';\nexport class PhotoMapWidget extends Component {\n constructor() {\n super(...arguments);\n this.state = {\n pins: []\n };\n this.handleOpenEditor = (e) => {\n e.stopPropagation();\n this.props.onOpenEditor();\n };\n }\n get isEditable() {\n var _a;\n return !this.props.productId && Env.isLogged && ((_a = Env === null || Env === void 0 ? void 0 : Env.user) === null || _a === void 0 ? void 0 : _a.ability.showPinsEditor);\n }\n componentWillMount() {\n this.fetchPins();\n }\n async fetchPins() {\n const { digest, productId } = this.props;\n const params = { digest };\n if (productId)\n params.product_id = productId;\n const pins = await HttpRequestBatcher.request(fetchPins, params) || [];\n this.setState({ pins });\n }\n render() {\n const { pins } = this.state;\n return (h(\"div\", null,\n this.isEditable && (h(\"div\", null,\n h(\"button\", { type: 'button', className: '_edit', onClick: this.handleOpenEditor }))),\n pins.length > 0 && (h(PhotoPins, { pins: pins }))));\n }\n}\n","export const isDOMRect = (rect) => rect instanceof DOMRect;\nexport const normalizeCoordinates = (rect, { x: initialX, y: initialY }) => {\n let x = initialX;\n let y = initialY;\n if (x < rect.left)\n x = rect.left;\n if (x > rect.right)\n x = rect.right;\n if (y < rect.top)\n y = rect.top;\n if (y > rect.bottom)\n y = rect.bottom;\n return {\n x: x - rect.left,\n y: y - rect.top\n };\n};\nexport const percentageCoordinates = (rect, { x, y }) => ({\n x: x / rect.width * 100,\n y: y / rect.height * 100\n});\nexport const calculateZone = ({ x, y }) => [\n Number(x - 50 >= 0),\n Number(y - 50 >= 0)\n].join('');\n"],"sourceRoot":""}