{"version":3,"file":"js/rescript-bundles-blog-posts-category-BlogCategory-res-fdc20ed883c95fc115c9.chunk.js","mappings":"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","sources":["webpack://datacenters/./node_modules/@rescript/react/src/RescriptReactRouter.res.js","webpack://datacenters/./client/app/rescript/bundles/blog-posts/category/BlogCategory.scss?7b4e","webpack://datacenters/./client/app/rescript/bundles/blog-posts/category/BlogCategory.res.js","webpack://datacenters/./client/app/rescript/bundles/blog-posts/common/blog-post-tile/BlogPostTileCss.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/LazyBackgroundImage/LazyBackgroundImage.res.js","webpack://datacenters/./client/app/rescript/bundles/blog-posts/common/blog-post-tile/BlogPostTile.res.js","webpack://datacenters/./client/app/rescript/bundles/blog-posts/common/top-bar/BlogPostTopBar.scss?0ec2","webpack://datacenters/./client/app/rescript/bundles/blog-posts/common/top-bar/BlogPostTopBar.res.js","webpack://datacenters/./client/app/rescript/libs/Char.res.js","webpack://datacenters/./client/app/rescript/models/BlogPostCategory.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Heading/H1.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Link/Link.res.js","webpack://datacenters/./client/app/rescript/styleguide/components/Pagination/Pagination.scss?5bec","webpack://datacenters/./client/app/rescript/styleguide/components/Pagination/Pagination.res.js"],"sourcesContent":["// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as React from \"react\";\nimport * as Js_array from \"rescript/lib/es6/js_array.js\";\nimport * as Js_string from \"rescript/lib/es6/js_string.js\";\n\nfunction safeMakeEvent(eventName) {\n if (typeof Event === \"function\") {\n return new Event(eventName);\n }\n var $$event = document.createEvent(\"Event\");\n $$event.initEvent(eventName, true, true);\n return $$event;\n}\n\nfunction pathParse(str) {\n switch (str) {\n case \"\" :\n case \"/\" :\n return /* [] */0;\n default:\n var raw = Js_string.sliceToEnd(1, str);\n var match = raw[raw.length - 1 | 0];\n var raw$1 = match === \"/\" ? Js_string.slice(0, -1, raw) : raw;\n var match$1 = Js_string.splitAtMost(\"?\", 2, raw$1);\n var raw$2 = match$1.length !== 2 ? raw$1 : match$1[0];\n var a = Js_array.filter((function (item) {\n return item.length !== 0;\n }), Js_string.split(\"/\", raw$2));\n var _i = a.length - 1 | 0;\n var _res = /* [] */0;\n while(true) {\n var res = _res;\n var i = _i;\n if (i < 0) {\n return res;\n }\n _res = {\n hd: a[i],\n tl: res\n };\n _i = i - 1 | 0;\n continue ;\n };\n }\n}\n\nfunction path(serverUrlString, param) {\n var match = typeof window === \"undefined\" ? undefined : window;\n if (serverUrlString !== undefined) {\n return pathParse(serverUrlString);\n } else if (match !== undefined) {\n return pathParse(match.location.pathname);\n } else {\n return /* [] */0;\n }\n}\n\nfunction hash() {\n var $$window = typeof window === \"undefined\" ? undefined : window;\n if ($$window === undefined) {\n return \"\";\n }\n var raw = $$window.location.hash;\n switch (raw) {\n case \"\" :\n case \"#\" :\n return \"\";\n default:\n return Js_string.sliceToEnd(1, raw);\n }\n}\n\nfunction searchParse(str) {\n switch (str) {\n case \"\" :\n case \"?\" :\n return \"\";\n default:\n var match = Js_string.splitAtMost(\"?\", 2, str);\n if (match.length !== 2) {\n return \"\";\n } else {\n return match[1];\n }\n }\n}\n\nfunction search(serverUrlString, param) {\n var match = typeof window === \"undefined\" ? undefined : window;\n if (serverUrlString !== undefined) {\n return searchParse(serverUrlString);\n } else if (match !== undefined) {\n return searchParse(match.location.search);\n } else {\n return \"\";\n }\n}\n\nfunction push(path) {\n var match = typeof history === \"undefined\" ? undefined : history;\n var match$1 = typeof window === \"undefined\" ? undefined : window;\n if (match !== undefined && match$1 !== undefined) {\n match.pushState(null, \"\", path);\n match$1.dispatchEvent(safeMakeEvent(\"popstate\"));\n return ;\n }\n \n}\n\nfunction replace(path) {\n var match = typeof history === \"undefined\" ? undefined : history;\n var match$1 = typeof window === \"undefined\" ? undefined : window;\n if (match !== undefined && match$1 !== undefined) {\n match.replaceState(null, \"\", path);\n match$1.dispatchEvent(safeMakeEvent(\"popstate\"));\n return ;\n }\n \n}\n\nfunction urlNotEqual(a, b) {\n if (a.hash !== b.hash || a.search !== b.search) {\n return true;\n } else {\n var _aList = a.path;\n var _bList = b.path;\n while(true) {\n var bList = _bList;\n var aList = _aList;\n if (!aList) {\n if (bList) {\n return true;\n } else {\n return false;\n }\n }\n if (!bList) {\n return true;\n }\n if (aList.hd !== bList.hd) {\n return true;\n }\n _bList = bList.tl;\n _aList = aList.tl;\n continue ;\n };\n }\n}\n\nfunction url(serverUrlString, param) {\n return {\n path: path(serverUrlString, undefined),\n hash: hash(),\n search: search(serverUrlString, undefined)\n };\n}\n\nfunction watchUrl(callback) {\n var $$window = typeof window === \"undefined\" ? undefined : window;\n if ($$window === undefined) {\n return function () {\n \n };\n }\n var watcherID = function () {\n callback(url(undefined, undefined));\n };\n $$window.addEventListener(\"popstate\", watcherID);\n return watcherID;\n}\n\nfunction unwatchUrl(watcherID) {\n var $$window = typeof window === \"undefined\" ? undefined : window;\n if ($$window !== undefined) {\n $$window.removeEventListener(\"popstate\", watcherID);\n return ;\n }\n \n}\n\nfunction useUrl(serverUrl, param) {\n var match = React.useState(function () {\n if (serverUrl !== undefined) {\n return serverUrl;\n } else {\n return url(undefined, undefined);\n }\n });\n var setUrl = match[1];\n var url$1 = match[0];\n React.useEffect((function () {\n var watcherId = watchUrl(function (url) {\n setUrl(function (param) {\n return url;\n });\n });\n var newUrl = url(undefined, undefined);\n if (urlNotEqual(newUrl, url$1)) {\n setUrl(function (param) {\n return newUrl;\n });\n }\n return (function () {\n unwatchUrl(watcherId);\n });\n }), []);\n return url$1;\n}\n\nvar dangerouslyGetInitialUrl = url;\n\nexport {\n push ,\n replace ,\n watchUrl ,\n unwatchUrl ,\n dangerouslyGetInitialUrl ,\n useUrl ,\n}\n/* react Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var blogCategory = \"BlogCategory__blogCategory__QjYJN\";\nexport var blogCategoryContainer = \"BlogCategory__blogCategoryContainer__uojF_\";\nexport var categoryIntro = \"BlogCategory__categoryIntro__W_96E\";\nexport var column = \"BlogCategory__column__o313R\";\nexport var container = \"BlogCategory__container__l7eNf\";\nexport var current = \"BlogCategory__current__ROSaw\";\nexport var flex = \"BlogCategory__flex__Ur225\";\nexport var flexColumn = \"BlogCategory__flexColumn__m6wsJ\";\nexport var gap1 = \"BlogCategory__gap1__W049S\";\nexport var gap2 = \"BlogCategory__gap2__CGS6w\";\nexport var gap3 = \"BlogCategory__gap3__alaHy\";\nexport var gap4 = \"BlogCategory__gap4__xSA8Y\";\nexport var gap5 = \"BlogCategory__gap5__Z_FE3\";\nexport var link = \"BlogCategory__link__zhSDO\";\nexport var pagination = \"BlogCategory__pagination__QR2zu\";\nexport var row = \"BlogCategory__row__MgHMH\";\nexport var sidebarContainer = \"BlogCategory__sidebarContainer__t1Z6B\";\nexport var spinnerContainer = \"BlogCategory__spinnerContainer__krpbo\";\nexport var topCategories = \"BlogCategory__topCategories__Bq_Re\";\nexport var topContainer = \"BlogCategory__topContainer__tCcpI\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as H1 from \"../../../styleguide/components/Heading/H1.res.js\";\nimport * as ID from \"../../../libs/ID.res.js\";\nimport * as Hooks from \"../../../libs/Hooks.res.js\";\nimport * as React from \"react\";\nimport * as $$String from \"rescript/lib/es6/string.js\";\nimport * as $$Promise from \"../../../bindings/Promise.res.js\";\nimport * as Spinner from \"../../../styleguide/components/Spinner/Spinner.res.js\";\nimport * as BlogPost from \"../../../models/BlogPost.res.js\";\nimport * as Js_string from \"rescript/lib/es6/js_string.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Pagination from \"../../../styleguide/components/Pagination/Pagination.res.js\";\nimport * as Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport * as Caml_option from \"rescript/lib/es6/caml_option.js\";\nimport * as LatestPosts from \"../common/latest-posts/LatestPosts.res.js\";\nimport * as TopServices from \"../../common/top-services/TopServices.res.js\";\nimport * as Api_BlogPost from \"../../../api/blog-posts/Api_BlogPost.res.js\";\nimport * as BlogPostTile from \"../common/blog-post-tile/BlogPostTile.res.js\";\nimport * as SentryLogger from \"../../../loggers/SentryLogger.res.js\";\nimport * as BlogNewsletter from \"../common/blog-newsletter/BlogNewsletter.res.js\";\nimport * as BlogPostTopBar from \"../common/top-bar/BlogPostTopBar.res.js\";\nimport * as BlogPostCategory from \"../../../models/BlogPostCategory.res.js\";\nimport * as DownloadResources from \"../../resources/download-resources/DownloadResources.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as BlogCategoryScss from \"./BlogCategory.scss\";\nimport * as RescriptReactRouter from \"@rescript/react/src/RescriptReactRouter.res.js\";\n\nvar css = BlogCategoryScss;\n\nfunction trim(lengthOpt, shouldTrim, string) {\n var length = lengthOpt !== undefined ? lengthOpt : 200;\n if (shouldTrim) {\n return Js_string.slice(0, length, string) + \"... \";\n } else {\n return string;\n }\n}\n\nfunction paramsConstructor(state) {\n return \"?page=\" + String(state.currentPageNumber);\n}\n\nvar Helpers = {\n trim: trim,\n paramsConstructor: paramsConstructor\n};\n\nfunction BlogCategory$Component(props) {\n var trendingPosts = props.trendingPosts;\n var category = props.category;\n var blogContainer = React.useRef(null);\n var initialState = React.useMemo((function () {\n return {\n isShowLess: true,\n currentPageNumber: 1,\n blogPosts: [],\n categoryName: category.title,\n totalPages: 1\n };\n }), []);\n var match = Hooks.useReducer(initialState, (function (state, action) {\n if (typeof action !== \"object\") {\n if (action === \"FetchPosts\") {\n return {\n TAG: \"SideEffects\",\n _0: (function (param) {\n var dispatch = param.dispatch;\n $$Promise.wait(Api_BlogPost.fetchBlogPosts(category.id, param.state.currentPageNumber, undefined), (function (x) {\n if (x.TAG !== \"Ok\") {\n return SentryLogger.error1({\n rootModule: \"BlogCategory\",\n subModulePath: {\n hd: \"Component\",\n tl: /* [] */0\n },\n value: \"make\",\n fullPath: \"BlogCategory.Component.make\"\n }, \"BlogCategory::Error\", [\n \"Error\",\n x._0\n ]);\n }\n var res = x._0;\n dispatch({\n TAG: \"UpdatePosts\",\n _0: res.blogPosts,\n _1: res.totalPages\n });\n }));\n })\n };\n } else {\n return {\n TAG: \"Update\",\n _0: {\n isShowLess: !state.isShowLess,\n currentPageNumber: state.currentPageNumber,\n blogPosts: state.blogPosts,\n categoryName: state.categoryName,\n totalPages: state.totalPages\n }\n };\n }\n } else if (action.TAG === \"UpdatePosts\") {\n return {\n TAG: \"Update\",\n _0: {\n isShowLess: state.isShowLess,\n currentPageNumber: state.currentPageNumber,\n blogPosts: action._0,\n categoryName: state.categoryName,\n totalPages: action._1\n }\n };\n } else {\n return {\n TAG: \"UpdateWithSideEffects\",\n _0: {\n isShowLess: state.isShowLess,\n currentPageNumber: action._0,\n blogPosts: state.blogPosts,\n categoryName: state.categoryName,\n totalPages: state.totalPages\n },\n _1: (function (param) {\n RescriptReactRouter.push(paramsConstructor(param.state));\n Belt_Option.map(Caml_option.nullable_to_opt(blogContainer.current), (function (prim) {\n prim.scrollIntoView();\n }));\n param.dispatch(\"FetchPosts\");\n })\n };\n }\n }));\n var dispatch = match[1];\n var state = match[0];\n React.useEffect((function () {\n dispatch(\"FetchPosts\");\n }), []);\n return JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(BlogPostTopBar.make, {\n categories: props.categories,\n selectedCategory: category.slug\n }),\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(H1.make, {\n children: $$String.capitalize_ascii(state.categoryName) + \" News\"\n }),\n JsxRuntime.jsxs(\"div\", {\n children: [\n trim(undefined, state.isShowLess, \"Cloud computing has changed the way we do business indefinitely. Most companies have come around to appreciate the convenience and cost-effectiveness of storing data with. Cloud computing has changed the way we do business indefinitely. Most companies have come around to appreciate the convenience and cost-effectiveness of storing data with\"),\n JsxRuntime.jsx(\"span\", {\n children: state.isShowLess ? \"Show more\" : \"Show less\",\n onClick: (function (param) {\n dispatch(\"ToggleIntro\");\n })\n })\n ],\n className: css.categoryIntro\n }),\n state.blogPosts.length !== 0 ? JsxRuntime.jsxs(JsxRuntime.Fragment, {\n children: [\n JsxRuntime.jsx(\"div\", {\n children: Belt_Array.map(state.blogPosts, (function (blogPost) {\n return JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(BlogPostTile.make, {\n blogPost: blogPost,\n pageType: \"BlogCategory\"\n }),\n className: css.column\n }, ID.toString(blogPost.id));\n })),\n className: css.row\n }),\n JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(Pagination.make, {\n currentPage: state.currentPageNumber,\n totalPages: state.totalPages,\n onPageClick: (function (number) {\n dispatch({\n TAG: \"UpdatePageNumber\",\n _0: number\n });\n })\n }),\n className: css.pagination\n })\n ]\n }) : JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(Spinner.make, {\n size: \"LG\",\n color: \"Teal\"\n }),\n className: css.spinnerContainer\n })\n ],\n ref: Caml_option.some(blogContainer),\n className: css.blogCategory\n }),\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(DownloadResources.make, {}),\n JsxRuntime.jsx(TopServices.make, {}),\n trendingPosts.length !== 0 ? JsxRuntime.jsx(LatestPosts.make, {\n latestPosts: trendingPosts,\n title: category.title + \" Trending\"\n }) : null\n ],\n className: css.sidebarContainer\n })\n ],\n className: css.container\n }),\n JsxRuntime.jsx(BlogNewsletter.make, {\n orientation: \"Row\",\n borderRadius: \"Flat\"\n })\n ],\n className: css.blogCategoryContainer\n });\n}\n\nvar Component = {\n make: BlogCategory$Component\n};\n\nfunction BlogCategory$default(props) {\n var category = BlogPostCategory.$$Navigation.fromJs(props.category);\n var categories = Belt_Array.map(props.categories, BlogPostCategory.Section.fromJs);\n var trendingPosts = Belt_Array.map(props.trendingPosts, BlogPost.Simple.fromJs);\n return JsxRuntime.jsx(BlogCategory$Component, {\n category: category,\n categories: categories,\n trendingPosts: trendingPosts\n });\n}\n\nvar make = BlogCategory$Component;\n\nvar $$default = BlogCategory$default;\n\nexport {\n css ,\n Helpers ,\n Component ,\n make ,\n $$default as default,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\n\nvar wrapper = Cx.cx([\n \"flex\",\n \"md:flex-col\",\n \"flex-row\",\n \"max-md:h-auto\",\n \"max-md:mb-8\"\n ]);\n\nvar wrapperBlogCategory = Cx.cx([\n \"flex\",\n \"flex-col\",\n \"md:w-[260px]\",\n \"w-full\"\n ]);\n\nvar featuredImage = Cx.cx([\n \"md:h-[215px]\",\n \"md:w-full\",\n \"object-cover\",\n \"bg-no-repeat\",\n \"bg-center\",\n \"rounded\",\n \"mb-5\",\n \"w-25\",\n \"h-19\",\n \"max-md:mr-5\",\n \"max-md:mb-0\"\n ]);\n\nvar featuredImageBlogCategory = Cx.cx([\n \"md:h-[195px]\",\n \"max:md:w-full\",\n \"max:md:mb-4\",\n \"max:md:mr-0\"\n ]);\n\nvar details = Cx.cx([\n \"flex\",\n \"flex-col\",\n \"max:sm:flex-col-reverse\",\n \"max-sm:justify-end\"\n ]);\n\nvar detailsBlogCategory = Cx.cx([\n \"flex\",\n \"flex-col\",\n \"max-sm:justify-start\",\n \"max-sm:max-w-full\"\n ]);\n\nvar title = Cx.cx([\n \"text-sm\",\n \"md:text-base\",\n \"font-semibold\",\n \"text-black\",\n \"mb-0\"\n ]);\n\nvar titleBlogCategory = Cx.cx([\n \"max:md:text-sm\",\n \"text-black\",\n \"mb-0\"\n ]);\n\nvar date = Cx.cx([\n \"text-gray-700\",\n \"text-sm\",\n \"mb-1\"\n ]);\n\nvar body = Cx.cx([\"hidden\"]);\n\nvar bodyBlogCategory = Cx.cx([\"max:sm:hidden\"]);\n\nexport {\n wrapper ,\n wrapperBlogCategory ,\n featuredImage ,\n featuredImageBlogCategory ,\n details ,\n detailsBlogCategory ,\n title ,\n titleBlogCategory ,\n date ,\n body ,\n bodyBlogCategory ,\n}\n/* wrapper Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Belt_Option from \"rescript/lib/es6/belt_Option.js\";\nimport ReactLazyload from \"react-lazyload\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nfunction LazyBackgroundImage(props) {\n return JsxRuntime.jsx(ReactLazyload, {\n height: props.height,\n offset: props.offset,\n children: JsxRuntime.jsx(\"div\", {\n children: Belt_Option.getWithDefault(props.children, null),\n className: props.className,\n style: {\n backgroundImage: \"url(\" + (props.src + \")\")\n }\n })\n });\n}\n\nvar make = LazyBackgroundImage;\n\nexport {\n make ,\n}\n/* react-lazyload Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as A from \"../../../../styleguide/components/Link/A.res.js\";\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Js_string from \"rescript/lib/es6/js_string.js\";\nimport * as Cloudinary from \"../../../../libs/Cloudinary.res.js\";\nimport * as BlogPostTileCss from \"./BlogPostTileCss.res.js\";\nimport Format from \"date-fns/format\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as LazyBackgroundImage from \"../../../../styleguide/components/LazyBackgroundImage/LazyBackgroundImage.res.js\";\n\nfunction cleanText(text) {\n return Js_string.replaceByRe(/(<([^>]+)>)|(&.{1,6};)/ig, \"\", text);\n}\n\nfunction buildUrl(src) {\n return Cloudinary.Url.build(\"Auto\", {\n hd: \"Dpr\",\n tl: {\n hd: \"Quality\",\n tl: {\n hd: {\n TAG: \"FetchFormat\",\n _0: \"Auto\"\n },\n tl: {\n hd: {\n TAG: \"Height\",\n _0: 300\n },\n tl: /* [] */0\n }\n }\n }\n }, src);\n}\n\nvar Helpers = {\n cleanText: cleanText,\n buildUrl: buildUrl\n};\n\nfunction BlogPostTile(props) {\n var __deferImage = props.deferImage;\n var __pageType = props.pageType;\n var blogPost = props.blogPost;\n var pageType = __pageType !== undefined ? __pageType : \"Home\";\n var deferImage = __deferImage !== undefined ? __deferImage : false;\n var tmp;\n if (deferImage) {\n var tmp$1;\n tmp$1 = pageType === \"Home\" ? Cx.cx([\n BlogPostTileCss.featuredImage,\n \"lozad\"\n ]) : Cx.cx([\n BlogPostTileCss.featuredImageBlogCategory,\n \"lozad\"\n ]);\n tmp = JsxRuntime.jsx(LazyBackgroundImage.make, {\n src: buildUrl(blogPost.featuredImage),\n height: 300,\n className: tmp$1\n });\n } else {\n var tmp$2;\n tmp$2 = pageType === \"Home\" ? BlogPostTileCss.featuredImage : BlogPostTileCss.featuredImageBlogCategory;\n tmp = JsxRuntime.jsx(\"div\", {\n className: tmp$2,\n style: {\n backgroundImage: \"url(\" + (buildUrl(blogPost.featuredImage) + \")\")\n }\n });\n }\n var tmp$3;\n tmp$3 = pageType === \"Home\" ? BlogPostTileCss.title : BlogPostTileCss.titleBlogCategory;\n var tmp$4;\n tmp$4 = pageType === \"Home\" ? BlogPostTileCss.body : Cx.cx([\n BlogPostTileCss.body,\n BlogPostTileCss.bodyBlogCategory\n ]);\n var tmp$5;\n tmp$5 = pageType === \"Home\" ? BlogPostTileCss.details : BlogPostTileCss.detailsBlogCategory;\n var tmp$6;\n tmp$6 = pageType === \"Home\" ? BlogPostTileCss.wrapper : BlogPostTileCss.wrapperBlogCategory;\n return JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(A.make, {\n href: blogPost.url,\n children: tmp\n }),\n JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"div\", {\n children: Format(blogPost.publishedAt, \"d MMM yyyy\"),\n className: BlogPostTileCss.date\n }),\n JsxRuntime.jsxs(A.make, {\n href: blogPost.url,\n children: [\n JsxRuntime.jsx(\"div\", {\n children: blogPost.title,\n className: tmp$3\n }),\n JsxRuntime.jsx(\"div\", {\n children: cleanText(blogPost.body),\n className: tmp$4\n })\n ]\n })\n ],\n className: tmp$5\n })\n ],\n className: tmp$6\n });\n}\n\nvar Css;\n\nvar make = BlogPostTile;\n\nexport {\n Css ,\n Helpers ,\n make ,\n}\n/* A Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var barContainer = \"BlogPostTopBar__barContainer__z1Y7k\";\nexport var barWrapper = \"BlogPostTopBar__barWrapper__WBhpE\";\nexport var column = \"BlogPostTopBar__column__nQTO2\";\nexport var flex = \"BlogPostTopBar__flex__Wjbv9\";\nexport var flexColumn = \"BlogPostTopBar__flexColumn__Z4oqc\";\nexport var gap1 = \"BlogPostTopBar__gap1__PhAyq\";\nexport var gap2 = \"BlogPostTopBar__gap2__XMMpG\";\nexport var gap3 = \"BlogPostTopBar__gap3__InGbo\";\nexport var gap4 = \"BlogPostTopBar__gap4__E8Pg3\";\nexport var gap5 = \"BlogPostTopBar__gap5__kejGf\";\nexport var linkContainer = \"BlogPostTopBar__linkContainer__q9Xvy\";\nexport var linkItem = \"BlogPostTopBar__linkItem__R9FpC\";\nexport var row = \"BlogPostTopBar__row__wZ9Yc\";\nexport var underlinedLink = \"BlogPostTopBar__underlinedLink__mDjHd\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Url from \"../../../../utils/Url.res.js\";\nimport * as Link from \"../../../../styleguide/components/Link/Link.res.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Routes_BlogPost from \"../../../../routes/common/Routes_BlogPost.res.js\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\nimport * as BlogPostTopBarScss from \"./BlogPostTopBar.scss\";\n\nvar css = BlogPostTopBarScss;\n\nfunction isSelectedCategory(itemName, selectedCategoryDetail) {\n if (selectedCategoryDetail !== undefined) {\n return selectedCategoryDetail.navigationName === itemName;\n } else {\n return false;\n }\n}\n\nfunction BlogPostTopBar(props) {\n var isIndex = props.isIndex;\n var selectedCategory = props.selectedCategory;\n return JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsxs(\"div\", {\n children: [\n JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(Link.make, {\n href: Routes_BlogPost.news,\n className: css.linkItem,\n children: \"All Topics\"\n }),\n className: Cx.cx([\n css.linkContainer,\n isIndex !== undefined && isIndex ? css.underlinedLink : \"\"\n ]),\n onClick: (function (param) {\n Url.visit(Routes_BlogPost.news);\n })\n }),\n Belt_Array.mapWithIndex(props.categories, (function (index, category) {\n return JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(Link.make, {\n href: Routes_BlogPost.category(category.slug),\n className: css.linkItem,\n children: category.title\n }),\n className: Cx.cx([\n css.linkContainer,\n category.slug === selectedCategory ? css.underlinedLink : \"\"\n ])\n }, category.title + String(index));\n }))\n ],\n className: css.barContainer\n }),\n className: css.barWrapper\n });\n}\n\nvar make = BlogPostTopBar;\n\nexport {\n css ,\n isSelectedCategory ,\n make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar arrow = '\\u279e';\n\nvar middot = '\\u00b7';\n\nvar mdash = '\\u2014';\n\nvar rightCaret = '\\u203a';\n\nvar ampersand = '\\u0026';\n\nvar times = '\\u00D7';\n\nfunction Char$Middot(props) {\n return JsxRuntime.jsx(\"span\", {\n children: \" \" + (middot + \" \"),\n style: {\n padding: \"0 1px\"\n }\n });\n}\n\nvar Middot = {\n make: Char$Middot\n};\n\nfunction Char$RightArrow(props) {\n return JsxRuntime.jsx(\"div\", {\n children: arrow,\n className: props.className\n });\n}\n\nvar RightArrow = {\n make: Char$RightArrow\n};\n\nfunction Char$LeftArrow(props) {\n return JsxRuntime.jsx(\"div\", {\n children: arrow,\n style: {\n transform: \"rotate(180deg)\"\n }\n });\n}\n\nvar LeftArrow = {\n make: Char$LeftArrow\n};\n\nfunction Char$RightCaret(props) {\n return JsxRuntime.jsx(\"span\", {\n children: rightCaret\n });\n}\n\nvar RightCaret = {\n make: Char$RightCaret\n};\n\nfunction Char$Ampersand(props) {\n return JsxRuntime.jsx(\"span\", {\n children: ampersand\n });\n}\n\nvar Ampersand = {\n make: Char$Ampersand\n};\n\nfunction Char$Times(props) {\n return JsxRuntime.jsx(\"span\", {\n children: times\n });\n}\n\nvar Times = {\n make: Char$Times\n};\n\nexport {\n arrow ,\n middot ,\n mdash ,\n rightCaret ,\n ampersand ,\n times ,\n Middot ,\n RightArrow ,\n LeftArrow ,\n RightCaret ,\n Ampersand ,\n Times ,\n}\n/* react/jsx-runtime Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as ID from \"../libs/ID.res.js\";\nimport * as $$Date from \"../libs/Date.res.js\";\nimport * as BlogPost from \"./BlogPost.res.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as Belt_Result from \"rescript/lib/es6/belt_Result.js\";\nimport * as Json$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json.res.js\";\nimport * as Json_Decode$JsonCombinators from \"@glennsl/rescript-json-combinators/src/Json_Decode.res.js\";\n\nfunction fromJs(js) {\n return {\n id: js.id,\n title: js.title,\n slug: js.slug\n };\n}\n\nvar $$Navigation = {\n fromJs: fromJs\n};\n\nfunction fromJs$1(js) {\n return {\n id: js.id,\n title: js.title,\n slug: js.slug,\n featured: js.featured,\n protected: js.protected,\n blogPosts: js.blogPosts,\n priorityOrder: js.priorityOrder,\n createdAt: $$Date.Naive.fromString(js.createdAt),\n updatedAt: $$Date.Naive.fromString(js.updatedAt)\n };\n}\n\nvar decoder = Json_Decode$JsonCombinators.object(function (field) {\n return {\n id: field.required(\"id\", ID.decoder),\n title: field.required(\"title\", Json_Decode$JsonCombinators.string),\n slug: field.required(\"slug\", Json_Decode$JsonCombinators.string),\n featured: field.required(\"featured\", Json_Decode$JsonCombinators.bool),\n protected: field.required(\"protected\", Json_Decode$JsonCombinators.bool),\n blogPosts: field.required(\"blogPosts\", Json_Decode$JsonCombinators.$$int),\n priorityOrder: field.required(\"priorityOrder\", Json_Decode$JsonCombinators.$$int),\n createdAt: field.required(\"createdAt\", $$Date.Naive.decoder),\n updatedAt: field.required(\"updatedAt\", $$Date.Naive.decoder)\n };\n });\n\nfunction fromJson(json) {\n return Belt_Result.getExn(Json$JsonCombinators.decode(json, decoder));\n}\n\nvar Dashboard = {\n fromJs: fromJs$1,\n decoder: decoder,\n fromJson: fromJson\n};\n\nfunction fromJs$2(js) {\n return {\n id: js.id,\n title: js.title,\n description: js.description,\n metaTitle: js.metaTitle,\n metaDescription: js.metaDescription,\n featured: js.featured,\n priorityOrder: js.priorityOrder,\n createdAt: $$Date.Naive.fromString(js.createdAt),\n updatedAt: $$Date.Naive.fromString(js.updatedAt)\n };\n}\n\nvar decoder$1 = Json_Decode$JsonCombinators.object(function (field) {\n return {\n id: field.required(\"id\", ID.decoder),\n title: field.required(\"title\", Json_Decode$JsonCombinators.string),\n description: field.required(\"description\", Json_Decode$JsonCombinators.string),\n metaTitle: field.required(\"metaTitle\", Json_Decode$JsonCombinators.string),\n metaDescription: field.required(\"metaDescription\", Json_Decode$JsonCombinators.string),\n featured: field.required(\"featured\", Json_Decode$JsonCombinators.bool),\n priorityOrder: field.required(\"priorityOrder\", Json_Decode$JsonCombinators.$$int),\n createdAt: field.required(\"createdAt\", $$Date.Naive.decoder),\n updatedAt: field.required(\"updatedAt\", $$Date.Naive.decoder)\n };\n });\n\nfunction fromJson$1(json) {\n return Belt_Result.getExn(Json$JsonCombinators.decode(json, decoder$1));\n}\n\nvar Edit = {\n fromJs: fromJs$2,\n decoder: decoder$1,\n fromJson: fromJson$1\n};\n\nfunction fromJs$3(js) {\n return {\n id: js.id,\n title: js.title\n };\n}\n\nvar decoder$2 = Json_Decode$JsonCombinators.object(function (field) {\n return {\n id: field.required(\"id\", ID.decoder),\n title: field.required(\"title\", Json_Decode$JsonCombinators.string)\n };\n });\n\nfunction fromJson$2(json) {\n return Belt_Result.getExn(Json$JsonCombinators.decode(json, decoder$2));\n}\n\nvar Filter = {\n fromJs: fromJs$3,\n decoder: decoder$2,\n fromJson: fromJson$2\n};\n\nfunction fromJs$4(js) {\n return {\n id: js.id,\n title: js.title,\n slug: js.slug,\n blogPosts: Belt_Array.map(js.blogPosts, BlogPost.Simple.fromJs)\n };\n}\n\nvar Section = {\n fromJs: fromJs$4\n};\n\nexport {\n $$Navigation ,\n Dashboard ,\n Edit ,\n Filter ,\n Section ,\n}\n/* decoder Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as HeadingScss from \"./Heading.scss\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar css = HeadingScss;\n\nfunction H1(props) {\n var __className = props.className;\n var __id = props.id;\n var id = __id !== undefined ? __id : \"\";\n var className = __className !== undefined ? __className : \"\";\n return JsxRuntime.jsx(\"h1\", {\n children: props.children,\n className: Cx.cx([\n css.h1,\n className\n ]),\n id: id\n });\n}\n\nvar make = H1;\n\nexport {\n css ,\n make ,\n}\n/* css Not a pure module */\n","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Router from \"../../../libs/Router.res.js\";\nimport * as LinkScss from \"./Link.scss\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar css = LinkScss;\n\nfunction Link(props) {\n var __className = props.className;\n var className = __className !== undefined ? __className : \"\";\n return JsxRuntime.jsx(Router.Link.make, {\n path: props.href,\n className: Cx.cx([\n css.link,\n className\n ]),\n children: props.children\n });\n}\n\nvar make = Link;\n\nexport {\n css ,\n make ,\n}\n/* css Not a pure module */\n","// extracted by mini-css-extract-plugin\nexport var active = \"Pagination__active__EK2e1\";\nexport var column = \"Pagination__column__pRq2C\";\nexport var disabled = \"Pagination__disabled__FbUC6\";\nexport var flex = \"Pagination__flex__DwHSX\";\nexport var flexColumn = \"Pagination__flexColumn__Z4xK0\";\nexport var gap1 = \"Pagination__gap1__aoXRh\";\nexport var gap2 = \"Pagination__gap2__EJjiH\";\nexport var gap3 = \"Pagination__gap3__HT6F_\";\nexport var gap4 = \"Pagination__gap4__AyBux\";\nexport var gap5 = \"Pagination__gap5__tImuc\";\nexport var pageItem = \"Pagination__pageItem__NsQSw\";\nexport var row = \"Pagination__row__lF2Xq\";\nexport var symbol = \"Pagination__symbol__KHv6r\";","// Generated by ReScript, PLEASE EDIT WITH CARE\n\nimport * as Cx from \"rescript-classnames/src/Cx.res.js\";\nimport * as Caml from \"rescript/lib/es6/caml.js\";\nimport * as Char from \"../../../libs/Char.res.js\";\nimport * as Control from \"../Control/Control.res.js\";\nimport * as Caml_obj from \"rescript/lib/es6/caml_obj.js\";\nimport * as Belt_List from \"rescript/lib/es6/belt_List.js\";\nimport * as Belt_Array from \"rescript/lib/es6/belt_Array.js\";\nimport * as PaginationScss from \"./Pagination.scss\";\nimport * as JsxRuntime from \"react/jsx-runtime\";\n\nvar css = PaginationScss;\n\nfunction range(start, end_) {\n if (start > end_) {\n return /* [] */0;\n } else if (start === end_) {\n return {\n hd: {\n TAG: \"Page\",\n _0: start\n },\n tl: /* [] */0\n };\n } else {\n return {\n hd: {\n TAG: \"Page\",\n _0: start\n },\n tl: range(start + 1 | 0, end_)\n };\n }\n}\n\nfunction generatePageNumbers(currentPage, totalPages) {\n var startPage = Caml.int_max(2, currentPage - 1 | 0);\n var endPage = Caml.int_min(totalPages - 1 | 0, currentPage + 1 | 0);\n var pages = range(startPage, endPage);\n var hasLeftSpill = startPage > 2;\n var hasRightSpill = (totalPages - endPage | 0) > 1;\n if (hasLeftSpill) {\n if (hasRightSpill) {\n return Belt_List.concatMany([\n {\n hd: \"LeftArrow\",\n tl: {\n hd: {\n TAG: \"Page\",\n _0: 1\n },\n tl: {\n hd: \"Ellipsis\",\n tl: /* [] */0\n }\n }\n },\n pages,\n {\n hd: \"Ellipsis\",\n tl: {\n hd: {\n TAG: \"Page\",\n _0: totalPages\n },\n tl: {\n hd: \"RightArrow\",\n tl: /* [] */0\n }\n }\n }\n ]);\n } else {\n return Belt_List.concat({\n hd: \"LeftArrow\",\n tl: {\n hd: {\n TAG: \"Page\",\n _0: 1\n },\n tl: {\n hd: \"Ellipsis\",\n tl: /* [] */0\n }\n }\n }, {\n hd: {\n TAG: \"Page\",\n _0: totalPages\n },\n tl: {\n hd: \"RightArrow\",\n tl: /* [] */0\n }\n });\n }\n } else if (hasRightSpill) {\n return Belt_List.concat({\n hd: \"LeftArrow\",\n tl: {\n hd: {\n TAG: \"Page\",\n _0: 1\n },\n tl: /* [] */0\n }\n }, {\n hd: \"Ellipsis\",\n tl: {\n hd: {\n TAG: \"Page\",\n _0: totalPages\n },\n tl: {\n hd: \"RightArrow\",\n tl: /* [] */0\n }\n }\n });\n } else {\n return Belt_List.concatMany([\n {\n hd: \"LeftArrow\",\n tl: /* [] */0\n },\n range(1, totalPages),\n {\n hd: \"RightArrow\",\n tl: /* [] */0\n }\n ]);\n }\n}\n\nfunction isSpecialPage(pageNumber, specialPages) {\n if (specialPages !== undefined) {\n return Belt_Array.some(specialPages, (function (page) {\n return Caml_obj.equal(page, pageNumber);\n }));\n } else {\n return false;\n }\n}\n\nfunction Pagination(props) {\n var __specialClassName = props.specialClassName;\n var specialPages = props.specialPages;\n var onPageClick = props.onPageClick;\n var totalPages = props.totalPages;\n var currentPage = props.currentPage;\n var specialClassName = __specialClassName !== undefined ? __specialClassName : \"\";\n var pageNumbers = generatePageNumbers(currentPage, totalPages);\n return JsxRuntime.jsx(\"div\", {\n children: JsxRuntime.jsx(\"nav\", {\n children: Belt_List.toArray(Belt_List.mapWithIndex(pageNumbers, (function (index, pageNumber) {\n if (typeof pageNumber !== \"object\") {\n switch (pageNumber) {\n case \"Ellipsis\" :\n return JsxRuntime.jsx(Control.make, {\n className: Cx.cx([\n css.pageItem,\n css.disabled,\n css.symbol\n ]),\n children: \"...\"\n }, \"pagination\" + String(index));\n case \"LeftArrow\" :\n return JsxRuntime.jsx(Control.make, {\n className: Cx.cx([\n css.pageItem,\n currentPage === 1 ? css.disabled : \"\",\n css.symbol\n ]),\n onClick: (function (param) {\n onPageClick(currentPage - 1 | 0);\n }),\n children: JsxRuntime.jsx(Char.LeftArrow.make, {})\n }, \"pagination\" + String(index));\n case \"RightArrow\" :\n return JsxRuntime.jsx(Control.make, {\n className: Cx.cx([\n css.pageItem,\n currentPage === totalPages ? css.disabled : \"\",\n css.symbol\n ]),\n onClick: (function (param) {\n onPageClick(currentPage + 1 | 0);\n }),\n children: JsxRuntime.jsx(Char.RightArrow.make, {})\n }, \"pagination\" + String(index));\n \n }\n } else {\n var number = pageNumber._0;\n var tmp;\n tmp = typeof pageNumber !== \"object\" || pageNumber._0 !== currentPage ? \"\" : css.active;\n return JsxRuntime.jsx(Control.make, {\n className: Cx.cx([\n css.pageItem,\n tmp,\n isSpecialPage(number, specialPages) ? specialClassName : \"\"\n ]),\n onClick: (function (param) {\n onPageClick(number);\n }),\n children: String(number)\n }, \"pagination\" + String(index));\n }\n })))\n }),\n className: props.className\n });\n}\n\nvar make = Pagination;\n\nexport {\n css ,\n range ,\n generatePageNumbers ,\n isSpecialPage ,\n make ,\n}\n/* css Not a pure module */\n"],"names":["safeMakeEvent","eventName","Event","$$event","document","createEvent","initEvent","pathParse","str","raw","raw$1","length","match$1","raw$2","a","item","_i","_res","res","i","hd","tl","path","serverUrlString","param","match","window","undefined","location","pathname","hash","$$window","searchParse","search","push","history","pushState","dispatchEvent","replace","replaceState","url","useUrl","serverUrl","setUrl","url$1","watcherId","callback","watcherID","addEventListener","watchUrl","newUrl","b","_aList","_bList","bList","aList","urlNotEqual","removeEventListener","blogCategory","blogCategoryContainer","categoryIntro","column","container","current","flex","flexColumn","gap1","gap2","gap3","gap4","gap5","pagination","row","sidebarContainer","spinnerContainer","topCategories","topContainer","css","BlogCategoryScss","trim","lengthOpt","shouldTrim","string","Js_string","paramsConstructor","state","String","currentPageNumber","Helpers","BlogCategory$Component","props","trendingPosts","category","blogContainer","React","initialState","isShowLess","blogPosts","categoryName","title","totalPages","Hooks","action","TAG","_0","dispatch","$$Promise","Api_BlogPost","id","x","SentryLogger","rootModule","subModulePath","value","fullPath","_1","RescriptReactRouter","Belt_Option","Caml_option","prim","scrollIntoView","JsxRuntime","children","BlogPostTopBar","categories","selectedCategory","slug","H1","$$String","onClick","className","Belt_Array","blogPost","BlogPostTile","pageType","ID","Pagination","currentPage","onPageClick","number","Spinner","size","color","ref","DownloadResources","TopServices","LatestPosts","latestPosts","BlogNewsletter","orientation","borderRadius","Component","make","$$default","BlogPostCategory","fromJs","BlogPost","wrapper","Cx","wrapperBlogCategory","featuredImage","featuredImageBlogCategory","details","detailsBlogCategory","titleBlogCategory","date","body","bodyBlogCategory","ReactLazyload","height","offset","style","backgroundImage","src","cleanText","text","buildUrl","Cloudinary","build","tmp","tmp$1","tmp$2","tmp$3","tmp$4","tmp$5","tmp$6","__deferImage","deferImage","__pageType","BlogPostTileCss","LazyBackgroundImage","A","href","Format","publishedAt","barContainer","barWrapper","linkContainer","linkItem","underlinedLink","BlogPostTopBarScss","isIndex","Link","Routes_BlogPost","Url","index","mdash","times","Middot","padding","RightArrow","LeftArrow","transform","RightCaret","Ampersand","$$Navigation","js","decoder","Json_Decode$JsonCombinators","field","required","featured","protected","priorityOrder","createdAt","$$Date","updatedAt","Dashboard","fromString","fromJson","json","Belt_Result","Json$JsonCombinators","decoder$1","description","metaTitle","metaDescription","Edit","decoder$2","Filter","Section","HeadingScss","__className","__id","h1","LinkScss","Router","link","active","disabled","pageItem","symbol","PaginationScss","range","start","end_","isSpecialPage","pageNumber","specialPages","page","Caml_obj","__specialClassName","specialClassName","pageNumbers","startPage","Caml","endPage","pages","hasRightSpill","Belt_List","generatePageNumbers","Control","Char"],"sourceRoot":""}