{"version":3,"file":"js/rescript-bundles-provider-detail-product-slider-LocationProviderProductsSlider-res-07a5ffb01ade5035fb15.chunk.js","mappings":"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","sources":["webpack://datacenters/./client/app/rescript/bundles/provider-detail/product-slider/LocationProviderProductsSlider.scss?3c72","webpack://datacenters/./client/app/rescript/bundles/provider-detail/product-slider/LocationProviderProductsSlider.res.js","webpack://datacenters/./node_modules/rescript/lib/es6/caml_int32.js"],"sourcesContent":["// extracted by mini-css-extract-plugin\nexport var column = \"LocationProviderProductsSlider__column__FDpyT\";\nexport var flex = \"LocationProviderProductsSlider__flex__I8_mO\";\nexport var flexColumn = \"LocationProviderProductsSlider__flexColumn__LNhHJ\";\nexport var gap1 = \"LocationProviderProductsSlider__gap1__juFFT\";\nexport var gap2 = \"LocationProviderProductsSlider__gap2__jxxqu\";\nexport var gap3 = \"LocationProviderProductsSlider__gap3__CmZr_\";\nexport var gap4 = \"LocationProviderProductsSlider__gap4__oHaGI\";\nexport var gap5 = \"LocationProviderProductsSlider__gap5__AaDth\";\nexport var row = \"LocationProviderProductsSlider__row__bXWkE\";\nexport var slickSliderOverride = \"LocationProviderProductsSlider__slickSliderOverride__vdv8Y\";\nexport var sliderContainer = \"LocationProviderProductsSlider__sliderContainer__b2dyo\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as ID from \"../../../libs/ID.res.js\";\nimport * as React from \"react\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Caml_int32 from \"rescript/lib/es6/caml_int32.js\";\nimport * as ProductTile from \"../../product-index/product-tile/ProductTile.res.js\";\nimport ReactSlick from \"react-slick\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as LocationProviderProductsSliderScss from \"./LocationProviderProductsSlider.scss\";\n\nvar css = LocationProviderProductsSliderScss;\n\nfunction bpSize(bpType) {\n if (bpType === \"Desktop\") {\n return 1440;\n } else if (bpType === \"Tablet\") {\n return 1024;\n } else {\n return 979;\n }\n}\n\nfunction reducer(state, action) {\n if (typeof action !== \"object\") {\n return {\n isClient: true,\n viewportWidth: state.viewportWidth,\n sliderStyle: state.sliderStyle\n };\n } else if (action.TAG === \"MeasureViewport\") {\n return {\n isClient: state.isClient,\n viewportWidth: action._0,\n sliderStyle: state.sliderStyle\n };\n } else {\n return {\n isClient: state.isClient,\n viewportWidth: state.viewportWidth,\n sliderStyle: action._0\n };\n }\n}\n\nvar initialState = {\n isClient: false,\n viewportWidth: 0,\n sliderStyle: \"Shown\"\n};\n\nfunction sliderConstraintsForViewport(viewportWidth) {\n if (viewportWidth >= bpSize(\"Desktop\")) {\n return {\n margin: 130,\n slideWidth: 280\n };\n } else if (viewportWidth < bpSize(\"Desktop\") && viewportWidth > bpSize(\"Phone\")) {\n return {\n margin: 60,\n slideWidth: 280\n };\n } else {\n return {\n margin: 0,\n slideWidth: 275\n };\n }\n}\n\nvar Helpers = {\n spacingBetweenSliders: 20,\n sliderConstraintsForViewport: sliderConstraintsForViewport\n};\n\nfunction LocationProviderProductsSlider(props) {\n var mobile = props.mobile;\n var toggleCart = props.toggleCart;\n var setCartQty = props.setCartQty;\n var setUserData = props.setUserData;\n var userLoginStatus = props.userLoginStatus;\n var products = props.products;\n var match = React.useReducer(reducer, initialState);\n var dispatch = match[1];\n var state = match[0];\n React.useEffect((function () {\n dispatch(\"SetIsClient\");\n dispatch({\n TAG: \"MeasureViewport\",\n _0: window.innerWidth\n });\n }), []);\n var sliderConstraints = React.useMemo((function () {\n return sliderConstraintsForViewport(state.viewportWidth);\n }), [state.viewportWidth]);\n var slidesToShow = React.useMemo((function () {\n return Caml_int32.div(state.viewportWidth - (sliderConstraints.margin << 1) | 0, sliderConstraints.slideWidth + 20 | 0);\n }), [state.viewportWidth]);\n return JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(ReactSlick, {\n dots: false,\n infinite: true,\n slidesToShow: slidesToShow > products.length ? products.length : (\n slidesToShow === 0 ? 1 : slidesToShow\n ),\n slidesToScroll: 1,\n className: slidesToShow >= products.length ? css.auto : \"\",\n responsive: state.isClient ? [\n {\n breakpoint: 1440,\n settings: {\n slidesToShow: products.length <= 2 ? products.length : 3,\n arrows: true,\n centerMode: true,\n centerPadding: \"0px\",\n rows: 1,\n slidesPerRow: 1,\n infinite: true\n }\n },\n {\n breakpoint: 600,\n settings: {\n slidesToShow: 1,\n arrows: false,\n centerMode: true,\n centerPadding: \"60px\",\n rows: 1,\n slidesPerRow: 1,\n infinite: true\n }\n }\n ] : undefined,\n rows: 1,\n slidesPerRow: 1,\n arrows: slidesToShow > 1,\n children: Belt_Array.map(products, (function (product) {\n return JsxRuntime.jsx(ProductTile.make, {\n product: product,\n className: css.product,\n userLoginStatus: userLoginStatus,\n tooltipPosition: \"Top\",\n setUserData: setUserData,\n setCartQty: setCartQty,\n toggleCart: toggleCart,\n mobile: mobile,\n setSliderStyle: (function (toggle) {\n dispatch({\n TAG: \"SetSliderStyle\",\n _0: toggle\n });\n })\n }, ID.toString(product.id));\n }))\n }, state.isClient ? \"location-product-slider-client\" : \"location-product-slider-server\"),\n className: Cx.cx([\n css.sliderContainer,\n state.sliderStyle === \"Hidden\" ? css.slickSliderOverride : \"\"\n ])\n });\n}\n\nvar make = LocationProviderProductsSlider;\n\nvar $$default = LocationProviderProductsSlider;\n\nexport {\n css ,\n bpSize ,\n reducer ,\n initialState ,\n Helpers ,\n make ,\n $$default as default,\n}\n/* css Not a pure module */\n","\n\n\nfunction div(x, y) {\n if (y === 0) {\n throw {\n RE_EXN_ID: \"Division_by_zero\",\n Error: new Error()\n };\n }\n return x / y | 0;\n}\n\nfunction mod_(x, y) {\n if (y === 0) {\n throw {\n RE_EXN_ID: \"Division_by_zero\",\n Error: new Error()\n };\n }\n return x % y;\n}\n\nexport {\n div ,\n mod_ ,\n}\n/* No side effect */\n"],"names":["column","flex","flexColumn","gap1","gap2","gap3","gap4","gap5","row","slickSliderOverride","sliderContainer","css","LocationProviderProductsSliderScss","bpSize","bpType","reducer","state","action","isClient","viewportWidth","sliderStyle","TAG","_0","initialState","sliderConstraintsForViewport","margin","slideWidth","Helpers","spacingBetweenSliders","LocationProviderProductsSlider","props","mobile","toggleCart","setCartQty","setUserData","userLoginStatus","products","match","React","dispatch","window","innerWidth","sliderConstraints","slidesToShow","Caml_int32","JsxRuntime","children","ReactSlick","dots","infinite","length","slidesToScroll","className","auto","responsive","breakpoint","settings","arrows","centerMode","centerPadding","rows","slidesPerRow","undefined","Belt_Array","product","ProductTile","tooltipPosition","setSliderStyle","toggle","ID","id","Cx","make","$$default","div","x","y","RE_EXN_ID","Error","mod_"],"sourceRoot":""}