{"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":""}