{"id":624,"date":"2025-03-24T10:41:33","date_gmt":"2025-03-24T10:41:33","guid":{"rendered":"https:\/\/dev.opendesignsin.com\/insillion\/?page_id=624"},"modified":"2025-06-23T11:28:39","modified_gmt":"2025-06-23T11:28:39","slug":"resources","status":"publish","type":"page","link":"https:\/\/dev.opendesignsin.com\/insillion\/resources","title":{"rendered":"Resources"},"content":{"rendered":"<p><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-1 fusion-flex-container has-pattern-background has-mask-background fusion-parallax-none nonhundred-percent-fullwidth non-hundred-percent-height-scrolling lazyload innerbannerSec resource\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-background-size:cover;--awb-flex-wrap:wrap;\" data-bg=\"https:\/\/dev.opendesignsin.com\/insillion\/wp-content\/uploads\/2025\/06\/Blog-Main.jpg\" id=\"innerbannerSec\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1339.52px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-0 fusion_builder_column_1_1 1_1 fusion-flex-column\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\" data-scroll-devices=\"small-visibility,medium-visibility,large-visibility\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-title title fusion-title-1 fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-one\"><h1 class=\"fusion-title-heading title-heading-center\" style=\"margin:0;\">Resources Center<\/h1><\/div><div class=\"fusion-text fusion-text-1\"><p>Discover insights, industry updates, and expert perspectives on<br \/>\ninsurance and technology.<\/p>\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-2 fusion-flex-container has-pattern-background has-mask-background nonhundred-percent-fullwidth non-hundred-percent-height-scrolling resourceListSec\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-background-image:linear-gradient(180deg, rgba(255,255,255,0) 0%,#f1f6fc 100%);--awb-background-size:cover;--awb-flex-wrap:wrap;\" id=\"resourceListSec\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1339.52px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-1 fusion_builder_column_1_1 1_1 fusion-flex-column ComHeadTitles textcenter ResourcePageContainer\" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\" data-scroll-devices=\"small-visibility,medium-visibility,large-visibility\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-text fusion-text-2\">\t<!-- Category Filters -->\n\t<div class=\"filters desktop\">\n\t\t<a href=\"https:\/\/dev.opendesignsin.com\/insillion\/resources\" class=\"category-btn active\" data-filter=\"all\">All<\/a>\n\t<\/div>\n\n\t<!-- Mobile Category Dropdown -->\n\t<div class=\"filters mobile\">\n\t\t<select id=\"category-filter\">\n\t\t\t<option value=\"https:\/\/dev.opendesignsin.com\/insillion\/resources\" selected>All<\/option>\n\t\t<\/select>\n\t<\/div>\n\n\t<script>\n\t\tdocument.addEventListener(\"DOMContentLoaded\", function() {\n\t\t\tconst categoryButtonsContainer = document.querySelector(\".filters.desktop\");\n\t\t\tconst categoryDropdown = document.getElementById(\"category-filter\");\n\t\t\tconst categoriesApiUrl = General.site_url + \"\/wp-json\/wp\/v2\/categories\";\n\t\t\tconst currentSlug = \"\";\n\n\t\t\tasync function fetchCategories() {\n\t\t\t\ttry {\n\t\t\t\t\tconst response = await fetch(categoriesApiUrl);\n\t\t\t\t\tconst categories = await response.json();\n\n\t\t\t\t\tcategories.forEach(category => {\n\t\t\t\t\t\tconst catSlug = category.slug;\n\t\t\t\t\t\tconst catName = category.name;\n\t\t\t\t\t\tconst catLink = `${General.site_url}\/${catSlug}`;\n\n\t\t\t\t\t\t\/\/ Add anchor link for desktop\n\t\t\t\t\t\tconst a = document.createElement(\"a\");\n\t\t\t\t\t\ta.textContent = catName;\n\t\t\t\t\t\ta.href = catLink;\n\t\t\t\t\t\ta.classList.add(\"category-btn\");\n\t\t\t\t\t\ta.setAttribute(\"data-filter\", catSlug);\n\t\t\t\t\t\tif (catSlug === currentSlug) a.classList.add(\"active\");\n\t\t\t\t\t\tcategoryButtonsContainer.appendChild(a);\n\n\t\t\t\t\t\t\/\/ Add option for mobile\n\t\t\t\t\t\tconst option = document.createElement(\"option\");\n\t\t\t\t\t\toption.value = catLink;\n\t\t\t\t\t\toption.textContent = catName;\n\t\t\t\t\t\tif (catSlug === currentSlug) option.selected = true;\n\t\t\t\t\t\tcategoryDropdown.appendChild(option);\n\t\t\t\t\t});\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(\"Error fetching categories:\", error);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t\/\/ Redirect on dropdown change\n\t\t\tcategoryDropdown.addEventListener(\"change\", function() {\n\t\t\t\tconst selected = this.value;\n\t\t\t\tif (selected === \"resource-centre\") {\n\t\t\t\t\twindow.location.href = \"https:\/\/dev.opendesignsin.com\/insillion\/resources\";\n\t\t\t\t} else {\n\t\t\t\t\twindow.location.href = selected;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tfetchCategories();\n\t\t});\n\t<\/script>\n\n<\/div><div class=\"fusion-text fusion-text-3\" id=\"ResourcesPostSection\">\t<div class=\"search-bar-container\">\n\t\t<div class=\"searchbarLeft\">\n\t\t\t<span id=\"current-category-label\">All<\/span>\n\t\t\t<p class=\"subText\">Explore by categories<\/p>\n\t\t<\/div>\n\t\t<div class=\"searchbarRight\">\n\t\t\t<input type=\"text\" id=\"search-input\" placeholder=\"Search\">\n\t\t<\/div>\n\t<\/div>\n\n\t<div class=\"posts-grid\"><\/div>\n\n\t<div class=\"pagination\">\n\t\t<button id=\"prev-page\" disabled>&#8592;<\/button>\n\t\t<div id=\"pagination-numbers\"><\/div>\n\t\t<button id=\"next-page\" disabled>&#8594;<\/button>\n\t<\/div>\n\n\t<script>\n\t\tdocument.addEventListener(\"DOMContentLoaded\", function() {\n\t\t\tconst postsContainer = document.querySelector(\".posts-grid\");\n\t\t\tconst paginationContainer = document.getElementById(\"pagination-numbers\");\n\t\t\tconst prevPageBtn = document.getElementById(\"prev-page\");\n\t\t\tconst nextPageBtn = document.getElementById(\"next-page\");\n\t\t\tconst searchInput = document.getElementById(\"search-input\");\n\t\t\tconst currentCategoryLabel = document.getElementById(\"current-category-label\");\n\n\t\t\tlet currentPage = 1;\n\t\t\tlet totalPages = 1;\n\t\t\tlet currentCategoryId = null;\n\t\t\tlet searchTerm = \"\";\n\n\t\t\tconst siteUrl = General.site_url;\n\t\t\tconst apiBaseUrl = siteUrl + \"\/wp-json\/wp\/v2\/posts\";\n\n\t\t\tfunction getSlugFromURL() {\n\t\t\t\tconst pathSegments = window.location.pathname.split('\/').filter(Boolean);\n\t\t\t\treturn pathSegments[pathSegments.length - 1];\n\t\t\t}\n\n\t\t\tasync function getCategoryIdFromSlug(slug) {\n\t\t\t\ttry {\n\t\t\t\t\tconst res = await fetch(`${siteUrl}\/wp-json\/wp\/v2\/categories?slug=${slug}`);\n\t\t\t\t\tconst data = await res.json();\n\t\t\t\t\treturn data.length > 0 ? data[0].id : null;\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconsole.error(\"Category fetch error:\", err);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tasync function fetchPosts(page = 1) {\n\t\t\t\tcurrentPage = page;\t\n\t\t\t\tpostsContainer.innerHTML = \"<div><\/div><div class='postLoadingOut'><p class='postLoading'><\/p><\/div><div><\/div>\";\n\t\t\t\tpaginationContainer.innerHTML = \"\";\n\n\t\t\t\tlet url = `${apiBaseUrl}?per_page=6&page=${page}&_embed`;\n\n\t\t\t\tif (currentCategoryId) {\n\t\t\t\t\turl += `&categories=${currentCategoryId}`;\n\t\t\t\t}\n\t\t\t\tif (searchTerm) {\n\t\t\t\t\turl += `&search=${encodeURIComponent(searchTerm)}`;\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tconst res = await fetch(url);\n\t\t\t\t\tif (!res.ok) throw new Error(\"No posts found.\");\n\t\t\t\t\tconst posts = await res.json();\n\t\t\t\t\ttotalPages = parseInt(res.headers.get(\"X-WP-TotalPages\")) || 1;\n\t\t\t\t\tdisplayPosts(posts);\n\t\t\t\t\tsetupPagination(totalPages, page);\n\n\t\t\t\t\t\/\/ Scroll only on non-mobile devices\n\/\/ \t\t\t\t\tif (window.innerWidth >= 768) {\n\/\/ \t\t\t\t\t\tconst scrollTarget = document.getElementById(\"resourceListSec\");\n\/\/ \t\t\t\t\t\tif (scrollTarget) {\n\/\/ \t\t\t\t\t\t\tscrollTarget.scrollIntoView({\n\/\/ \t\t\t\t\t\t\t\tbehavior: 'smooth',\n\/\/ \t\t\t\t\t\t\t\tblock: 'start'\n\/\/ \t\t\t\t\t\t\t});\n\/\/ \t\t\t\t\t\t}\n\/\/ \t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\twindow.addEventListener(\"load\", () => {\n  if (window.innerWidth >= 768) {\n    window.scrollTo({\n      top: 0,\n      left: 0,\n      behavior: \"smooth\" \/\/ or \"auto\" if you don\u2019t want smooth scroll\n    });\n  }\n});\n\n\t\t\t\t} catch (err) {\n\t\t\t\t\tpostsContainer.innerHTML = \"<p>No posts found.<\/p>\";\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tfunction displayPosts(posts) {\n\t\t\t\tpostsContainer.innerHTML = posts.map(post => {\n\n\t\t\t\t\tconst title = post.title.rendered.substring(0, 80) + (post.title.rendered.length > 80 ? \"...\" : \"\");\n\t\t\t\t\tconst excerpt = post.excerpt.rendered.replace(\/<[^>]+>\/g, \"\").substring(0, 100) + \"...\";\n\n\n\t\t\t\t\tconst category = post._embedded[\"wp:term\"]?.[0]?.[0]?.name || \"Uncategorized\";\n\t\t\t\t\tconst categorySlug = post._embedded[\"wp:term\"][0][0]?.slug || \"Uncategorized\";\n\t\t\t\t\tconst isEvent = category.toLowerCase() === \"events\";\n\n\t\t\t\t\t\/\/ Get date from ACF field if category is \"events\", else use post.date\n\t\t\t\t\tlet dateStr = isEvent ? post.acf?.event_date : post.date;\n\t\t\t\t\tlet date = \"\";\n\n\t\t\t\t\tif (dateStr) {\n\t\t\t\t\t\tconst dateObj = new Date(dateStr);\n\t\t\t\t\t\tdate = dateObj.toLocaleDateString('en-US', {\n\t\t\t\t\t\t\tmonth: 'short',\n\t\t\t\t\t\t\tday: 'numeric',\n\t\t\t\t\t\t\tyear: 'numeric'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tconst postUrl = isEvent ? \"#\" : post.link;\n\t\t\t\t\tconst imageUrl = post._embedded[\"wp:featuredmedia\"]?.[0]?.source_url || \"https:\/\/via.placeholder.com\/300\";\n\n\t\t\t\t\treturn `\n\t\t\t<a href=\"${postUrl}\" class=\"post-card ${categorySlug}\" ${isEvent ? 'onclick=\"return false;\"' : \"\"}>\n\t\t\t\t<div class=\"imgTitle\">\n\t\t\t\t\t<img decoding=\"async\" src=\"data:image\/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\" data-orig-src=\"${imageUrl}\" alt=\"${title}\" class=\"lazyload post-image\">\n\t\t\t\t\t<h3>${title}<\/h3>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"description\">\n\t\t\t\t\t<span class=\"category\">${category}<\/span>\n\t\t\t\t\t<p>${excerpt}<\/p>\n\t\t\t\t\t<span class=\"date\">${date}<\/span>\n\t\t\t\t<\/div>\n\t\t\t<\/a>\n\t\t`;\n\t\t\t\t}).join(\"\");\n\t\t\t}\n\n\n\t\t\tfunction setupPagination(totalPages, currentPage) {\n\t\t\t\tpaginationContainer.innerHTML = \"\";\n\n\t\t\t\tprevPageBtn.disabled = currentPage === 1;\n\t\t\t\tnextPageBtn.disabled = currentPage === totalPages;\n\n\t\t\t\tconsole.log(prevPageBtn.disabled);\n\n\n\t\t\t\tlet startPage = Math.max(1, currentPage - 1);\n\t\t\t\tlet endPage = Math.min(totalPages, startPage + 2);\n\n\t\t\t\tfor (let i = startPage; i <= endPage; i++) {\n\t\t\t\t\tconst btn = document.createElement(\"button\");\n\t\t\t\t\tbtn.textContent = i;\n\t\t\t\t\tbtn.classList.add(\"page-button\");\n\t\t\t\t\tif (i === currentPage) btn.classList.add(\"active\");\n\t\t\t\t\tbtn.addEventListener(\"click\", () => {\n\t\t\t\t\t\tcurrentPage = i;\n\t\t\t\t\t\tfetchPosts(i);\n\t\t\t\t\t});\n\t\t\t\t\tpaginationContainer.appendChild(btn);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tprevPageBtn.addEventListener(\"click\", () => {\n\n\t\t\t\tif (currentPage > 1) {\n\t\t\t\t\tcurrentPage--;\n\t\t\t\t\tfetchPosts(currentPage);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tnextPageBtn.addEventListener(\"click\", () => {\n\t\t\t\tif (currentPage < totalPages) {\n\t\t\t\t\tcurrentPage++;\n\t\t\t\t\tfetchPosts(currentPage);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tsearchInput.addEventListener(\"input\", (e) => {\n\t\t\t\tsearchTerm = e.target.value;\n\t\t\t\tcurrentPage = 1;\n\t\t\t\tfetchPosts();\n\t\t\t});\n\n\t\t\t\/\/ INIT\n\t\t\t(async () => {\n\t\t\t\tconst slug = getSlugFromURL();\n\t\t\t\tcurrentCategoryId = await getCategoryIdFromSlug(slug);\n\n\t\t\t\tfunction toCamelCase(slug) {\n\t\t\t\t\treturn slug\n\t\t\t\t\t\t.split('-')\n\t\t\t\t\t\t.map(word => word.charAt(0).toUpperCase() + word.slice(1))\n\t\t\t\t\t\t.join(' ');\n\t\t\t\t}\n\t\t\t\tconst formattedLabel = slug === 'resources' ? 'All' : toCamelCase(slug);\n\t\t\t\tcurrentCategoryLabel.textContent = formattedLabel;\n\n\t\t\t\tfetchPosts();\n\t\t\t})();\n\t\t});\n\t<\/script>\n\n\t<style>\n\t\t.posts-grid {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: repeat(3, 1fr);\n\t\t\tgap: 20px;\n\t\t}\n\n\t\t.post-card {\n\t\t\tdisplay: block;\n\t\t\tpadding: 20px;\n\t\t\tbackground: #001F3F;\n\t\t\tcolor: white;\n\t\t\tborder-radius: 10px;\n\t\t\ttext-align: center;\n\t\t\ttext-decoration: none;\n\t\t}\n\n\t\t.pagination {\n\t\t\tdisplay: flex;\n\t\t\tgap: 5px;\n\t\t\tjustify-content: center;\n\t\t\tmargin-top: 20px;\n\t\t}\n\n\t\t.pagination button {\n\t\t\tpadding: 8px 12px;\n\t\t\tbackground: #001F3F;\n\t\t\tcolor: #fff;\n\t\t\tborder-radius: 5px;\n\t\t\tborder: none;\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\t.pagination button:disabled {\n\t\t\topacity: 0.5;\n\t\t\tcursor: not-allowed;\n\t\t}\n\t<\/style>\n\n<\/div><\/div><\/div><\/div><\/div><div class=\"fusion-fullwidth fullwidth-box fusion-builder-row-3 fusion-flex-container has-pattern-background has-mask-background fusion-parallax-none nonhundred-percent-fullwidth non-hundred-percent-height-scrolling lazyload reimagineSec\" style=\"--awb-border-radius-top-left:0px;--awb-border-radius-top-right:0px;--awb-border-radius-bottom-right:0px;--awb-border-radius-bottom-left:0px;--awb-background-size:cover;--awb-flex-wrap:wrap;\" data-bg=\"https:\/\/dev.opendesignsin.com\/insillion\/wp-content\/uploads\/2025\/04\/inner-banner-bg.jpg\" id=\"reimagineSec\" ><div class=\"fusion-builder-row fusion-row fusion-flex-align-items-flex-start fusion-flex-content-wrap\" style=\"max-width:1339.52px;margin-left: calc(-4% \/ 2 );margin-right: calc(-4% \/ 2 );\"><div class=\"fusion-layout-column fusion_builder_column fusion-builder-column-2 fusion_builder_column_1_1 1_1 fusion-flex-column ComHeadTitles textcenter \" style=\"--awb-bg-size:cover;--awb-width-large:100%;--awb-margin-top-large:0px;--awb-spacing-right-large:1.92%;--awb-margin-bottom-large:0px;--awb-spacing-left-large:1.92%;--awb-width-medium:100%;--awb-order-medium:0;--awb-spacing-right-medium:1.92%;--awb-spacing-left-medium:1.92%;--awb-width-small:100%;--awb-order-small:0;--awb-spacing-right-small:1.92%;--awb-spacing-left-small:1.92%;\" data-scroll-devices=\"small-visibility,medium-visibility,large-visibility\"><div class=\"fusion-column-wrapper fusion-column-has-shadow fusion-flex-justify-content-flex-start fusion-content-layout-column\"><div class=\"fusion-title title fusion-title-2 fusion-sep-none fusion-title-center fusion-title-text fusion-title-size-two\"><h2 class=\"fusion-title-heading title-heading-center\" style=\"margin:0;\">Reimagine insurance<br \/>\nproducts and processes.<\/h2><\/div><div class=\"fusion-text fusion-text-4\"><p>Faster, Intelligent, and Out-of-the-box Software solutions.<\/p>\n<\/div><div class=\"fusion-text fusion-text-5\"><p><a href=\"https:\/\/dev.opendesignsin.com\/insillion\/subscribe\/\">Get started<\/a><\/p>\n<\/div><\/div><\/div><\/div><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"100-width.php","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-624","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/dev.opendesignsin.com\/insillion\/wp-json\/wp\/v2\/pages\/624","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.opendesignsin.com\/insillion\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dev.opendesignsin.com\/insillion\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dev.opendesignsin.com\/insillion\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.opendesignsin.com\/insillion\/wp-json\/wp\/v2\/comments?post=624"}],"version-history":[{"count":30,"href":"https:\/\/dev.opendesignsin.com\/insillion\/wp-json\/wp\/v2\/pages\/624\/revisions"}],"predecessor-version":[{"id":2862,"href":"https:\/\/dev.opendesignsin.com\/insillion\/wp-json\/wp\/v2\/pages\/624\/revisions\/2862"}],"wp:attachment":[{"href":"https:\/\/dev.opendesignsin.com\/insillion\/wp-json\/wp\/v2\/media?parent=624"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}