{"id":2365,"date":"2023-03-22T13:18:13","date_gmt":"2023-03-22T13:18:13","guid":{"rendered":"https:\/\/www.mymxdata.com\/?page_id=2365"},"modified":"2026-03-31T17:55:32","modified_gmt":"2026-03-31T16:55:32","slug":"blog","status":"publish","type":"page","link":"https:\/\/www.mymxdata.com\/en-us\/blog\/","title":{"rendered":"Blog"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2365\" class=\"elementor elementor-2365\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-a1751f8 e-flex e-con-boxed e-con e-parent\" data-id=\"a1751f8\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-af2fc7a elementor-widget elementor-widget-html\" data-id=\"af2fc7a\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\r\n    .blog-new-shell {\r\n        position: relative;\r\n        overflow: hidden;\r\n        background: linear-gradient(180deg, #f7faff 0%, #eef5ff 100%);\r\n    }\r\n\r\n    .blog-new-orb-container {\r\n        position: absolute;\r\n        inset: 0;\r\n        pointer-events: none;\r\n        z-index: 1;\r\n    }\r\n\r\n    .blog-new-orb {\r\n        position: absolute;\r\n        border-radius: 50%;\r\n        filter: blur(40px);\r\n        opacity: 0.28;\r\n        animation: blog-new-float 20s infinite ease-in-out;\r\n    }\r\n\r\n    .blog-new-orb:nth-child(1) {\r\n        width: 320px;\r\n        height: 320px;\r\n        background: radial-gradient(circle, #1e40af, #3b82f6);\r\n        top: 4%;\r\n        left: -8%;\r\n        animation-delay: 0s;\r\n    }\r\n\r\n    .blog-new-orb:nth-child(2) {\r\n        width: 220px;\r\n        height: 220px;\r\n        background: radial-gradient(circle, #3b82f6, #60a5fa);\r\n        top: 38%;\r\n        right: -5%;\r\n        animation-delay: -6s;\r\n    }\r\n\r\n    .blog-new-orb:nth-child(3) {\r\n        width: 260px;\r\n        height: 260px;\r\n        background: radial-gradient(circle, #1d4ed8, #2563eb);\r\n        bottom: 18%;\r\n        left: 18%;\r\n        animation-delay: -12s;\r\n    }\r\n\r\n    .blog-new-orb:nth-child(4) {\r\n        width: 180px;\r\n        height: 180px;\r\n        background: radial-gradient(circle, #2563eb, #3b82f6);\r\n        top: 20%;\r\n        right: 18%;\r\n        animation-delay: -4s;\r\n    }\r\n\r\n    @keyframes blog-new-float {\r\n        0%, 100% { transform: translateY(0) translateX(0) rotate(0deg); }\r\n        25% { transform: translateY(-70px) translateX(40px) rotate(90deg); }\r\n        50% { transform: translateY(-30px) translateX(-70px) rotate(180deg); }\r\n        75% { transform: translateY(45px) translateX(80px) rotate(270deg); }\r\n    }\r\n\r\n    .blog-new-container {\r\n        position: relative;\r\n        z-index: 2;\r\n        max-width: 1400px;\r\n        margin: 0 auto;\r\n        padding: 48px 20px 70px;\r\n    }\r\n\r\n    .blog-new-header {\r\n        text-align: center;\r\n        margin-bottom: 72px;\r\n        opacity: 0;\r\n        transform: translateY(36px);\r\n        animation: blog-new-fadeInUp 0.9s ease-out 0.15s forwards;\r\n    }\r\n\r\n    .blog-new-header h1 {\r\n        font-size: clamp(2.5rem, 5vw, 4rem);\r\n        font-weight: 900;\r\n        line-height: 1.05;\r\n        margin: 0 0 18px;\r\n        background: linear-gradient(135deg, #1e40af, #3b82f6, #60a5fa);\r\n        background-size: 300% 300%;\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        background-clip: text;\r\n        animation: blog-new-gradientShift 5s ease-in-out infinite;\r\n    }\r\n\r\n    .blog-new-header p {\r\n        font-size: 1.16rem;\r\n        max-width: 760px;\r\n        margin: 0 auto;\r\n        color: #42506b;\r\n        line-height: 1.7;\r\n    }\r\n\r\n    @keyframes blog-new-gradientShift {\r\n        0%, 100% { background-position: 0% 50%; }\r\n        50% { background-position: 100% 50%; }\r\n    }\r\n\r\n    @keyframes blog-new-fadeInUp {\r\n        to {\r\n            opacity: 1;\r\n            transform: translateY(0);\r\n        }\r\n    }\r\n\r\n    .blog-new-library {\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 84px;\r\n    }\r\n\r\n    .blog-new-category-section {\r\n        scroll-margin-top: 30px;\r\n    }\r\n\r\n    .blog-new-category-header {\r\n        background: linear-gradient(135deg, rgba(30, 64, 175, 0.08), rgba(59, 130, 246, 0.08));\r\n        backdrop-filter: blur(14px);\r\n        border: 1px solid rgba(59, 130, 246, 0.10);\r\n        padding: 34px 34px 30px;\r\n        border-radius: 24px;\r\n        margin-bottom: 28px;\r\n        position: relative;\r\n        overflow: hidden;\r\n        box-shadow: 0 14px 34px rgba(30, 64, 175, 0.09);\r\n    }\r\n\r\n    .blog-new-category-topline {\r\n        display: flex;\r\n        align-items: center;\r\n        justify-content: space-between;\r\n        gap: 16px;\r\n        margin-bottom: 10px;\r\n    }\r\n\r\n    .blog-new-category-header h2 {\r\n        font-size: clamp(1.8rem, 3vw, 2.4rem);\r\n        font-weight: 800;\r\n        margin: 0;\r\n        color: #16388f;\r\n        line-height: 1.1;\r\n    }\r\n\r\n    .blog-new-category-count {\r\n        display: inline-flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        min-width: 54px;\r\n        padding: 10px 14px;\r\n        border-radius: 999px;\r\n        font-size: 0.9rem;\r\n        font-weight: 800;\r\n        color: #fff;\r\n        background: linear-gradient(135deg, #1e40af, #2563eb);\r\n        box-shadow: 0 10px 22px rgba(37, 99, 235, 0.24);\r\n        white-space: nowrap;\r\n    }\r\n\r\n    .blog-new-category-header p {\r\n        font-size: 1.05rem;\r\n        line-height: 1.7;\r\n        margin: 0;\r\n        color: #4a5875;\r\n        max-width: 850px;\r\n    }\r\n\r\n    .blog-new-grid {\r\n        display: grid;\r\n        grid-template-columns: repeat(3, minmax(0, 1fr));\r\n        gap: 26px;\r\n    }\r\n\r\n    @media (max-width: 1100px) {\r\n        .blog-new-grid {\r\n            grid-template-columns: repeat(2, minmax(0, 1fr));\r\n        }\r\n    }\r\n\r\n    @media (max-width: 720px) {\r\n        .blog-new-grid {\r\n            grid-template-columns: 1fr;\r\n        }\r\n    }\r\n\r\n    .blog-new-article-card {\r\n        display: flex;\r\n        flex-direction: column;\r\n        min-height: 100%;\r\n        background: rgba(255, 255, 255, 0.98);\r\n        border: 1px solid rgba(59, 130, 246, 0.10);\r\n        border-radius: 22px;\r\n        overflow: hidden;\r\n        box-shadow: 0 10px 26px rgba(30, 64, 175, 0.10);\r\n        transform: translateY(24px);\r\n        opacity: 0;\r\n        transition: transform 0.45s ease, box-shadow 0.35s ease, opacity 0.45s ease;\r\n    }\r\n\r\n    .blog-new-article-card.is-visible {\r\n        transform: translateY(0);\r\n        opacity: 1;\r\n    }\r\n\r\n    .blog-new-article-card:hover {\r\n        transform: translateY(-8px);\r\n        box-shadow: 0 18px 36px rgba(30, 64, 175, 0.16);\r\n    }\r\n\r\n    .blog-new-article-image {\r\n        position: relative;\r\n        aspect-ratio: 16 \/ 9;\r\n        background: linear-gradient(135deg, #1e40af 0%, #2563eb 50%, #60a5fa 100%);\r\n        overflow: hidden;\r\n    }\r\n\r\n    .blog-new-article-image img {\r\n        width: 100%;\r\n        height: 100%;\r\n        object-fit: cover;\r\n        display: block;\r\n        transition: transform 0.6s ease, filter 0.4s ease;\r\n        filter: brightness(0.97) saturate(1.08);\r\n    }\r\n\r\n    .blog-new-article-card:hover .blog-new-article-image img {\r\n        transform: scale(1.06);\r\n        filter: brightness(1) saturate(1.16);\r\n    }\r\n\r\n    .blog-new-article-image-fallback {\r\n        position: absolute;\r\n        inset: 0;\r\n        display: grid;\r\n        place-items: center;\r\n        color: rgba(255, 255, 255, 0.9);\r\n        font-size: 1rem;\r\n        font-weight: 800;\r\n        letter-spacing: 0.04em;\r\n        text-transform: uppercase;\r\n        padding: 18px;\r\n        text-align: center;\r\n    }\r\n\r\n    .blog-new-priority-badge {\r\n        position: absolute;\r\n        top: 14px;\r\n        right: 14px;\r\n        z-index: 3;\r\n        padding: 9px 14px;\r\n        border-radius: 999px;\r\n        background: linear-gradient(135deg, #1e40af, #2563eb);\r\n        color: #fff;\r\n        font-size: 0.76rem;\r\n        font-weight: 800;\r\n        letter-spacing: 0.04em;\r\n        text-transform: uppercase;\r\n        box-shadow: 0 8px 18px rgba(30, 64, 175, 0.24);\r\n    }\r\n\r\n    .blog-new-new-badge {\r\n        position: absolute;\r\n        top: 14px;\r\n        left: 14px;\r\n        z-index: 4;\r\n        padding: 9px 14px;\r\n        border-radius: 999px;\r\n        background: linear-gradient(135deg, #16a34a, #15803d);\r\n        color: #fff;\r\n        font-size: 0.76rem;\r\n        font-weight: 900;\r\n        letter-spacing: 0.08em;\r\n        text-transform: uppercase;\r\n        border: 2px solid rgba(255, 255, 255, 0.96);\r\n        box-shadow: 0 10px 20px rgba(22, 163, 74, 0.34);\r\n        animation: blog-new-newPulse 2.5s ease-in-out infinite;\r\n    }\r\n\r\n    @keyframes blog-new-newPulse {\r\n        0%, 100% {\r\n            transform: scale(1);\r\n            box-shadow: 0 10px 20px rgba(22, 163, 74, 0.34);\r\n        }\r\n        50% {\r\n            transform: scale(1.05);\r\n            box-shadow: 0 12px 26px rgba(22, 163, 74, 0.46);\r\n        }\r\n    }\r\n\r\n    .blog-new-article-content {\r\n        display: flex;\r\n        flex-direction: column;\r\n        gap: 18px;\r\n        padding: 26px;\r\n        flex: 1;\r\n    }\r\n\r\n    .blog-new-article-title {\r\n        margin: 0;\r\n        font-size: 1.18rem;\r\n        font-weight: 700;\r\n        line-height: 1.5;\r\n        color: #152132;\r\n    }\r\n\r\n    .blog-new-article-title a {\r\n        color: inherit;\r\n        text-decoration: none;\r\n        transition: color 0.25s ease;\r\n    }\r\n\r\n    .blog-new-article-title a:hover {\r\n        color: #1e40af;\r\n    }\r\n\r\n    .blog-new-visit-btn {\r\n        margin-top: auto;\r\n        display: inline-flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 10px;\r\n        align-self: flex-start;\r\n        min-height: 48px;\r\n        padding: 14px 20px;\r\n        border-radius: 999px;\r\n        background: linear-gradient(135deg, #1e40af, #2563eb);\r\n        color: #fff;\r\n        text-decoration: none;\r\n        font-size: 0.94rem;\r\n        font-weight: 700;\r\n        box-shadow: 0 10px 22px rgba(30, 64, 175, 0.22);\r\n        transition: transform 0.28s ease, box-shadow 0.28s ease, background 0.28s ease;\r\n    }\r\n\r\n    .blog-new-visit-btn:hover {\r\n        transform: translateY(-2px);\r\n        box-shadow: 0 14px 28px rgba(30, 64, 175, 0.30);\r\n        background: linear-gradient(135deg, #1d4ed8, #1e40af);\r\n    }\r\n\r\n    .blog-new-actions {\r\n        display: flex;\r\n        justify-content: center;\r\n        margin-top: 24px;\r\n    }\r\n\r\n    .blog-new-view-more {\r\n        display: inline-flex;\r\n        align-items: center;\r\n        justify-content: center;\r\n        gap: 10px;\r\n        min-width: 190px;\r\n        min-height: 52px;\r\n        padding: 14px 24px;\r\n        border: 0;\r\n        border-radius: 999px;\r\n        background: linear-gradient(135deg, #1e40af, #2563eb);\r\n        color: #fff;\r\n        font-size: 0.95rem;\r\n        font-weight: 800;\r\n        cursor: pointer;\r\n        box-shadow: 0 12px 26px rgba(30, 64, 175, 0.22);\r\n        transition: transform 0.28s ease, box-shadow 0.28s ease, opacity 0.2s ease;\r\n    }\r\n\r\n    .blog-new-view-more:hover:not(:disabled) {\r\n        transform: translateY(-2px);\r\n        box-shadow: 0 16px 30px rgba(30, 64, 175, 0.28);\r\n    }\r\n\r\n    .blog-new-view-more:disabled {\r\n        opacity: 0.65;\r\n        cursor: wait;\r\n    }\r\n\r\n    .blog-new-empty,\r\n    .blog-new-error,\r\n    .blog-new-loading {\r\n        display: grid;\r\n        place-items: center;\r\n        min-height: 180px;\r\n        padding: 24px;\r\n        border-radius: 22px;\r\n        background: rgba(255, 255, 255, 0.8);\r\n        border: 1px solid rgba(59, 130, 246, 0.10);\r\n        color: #41516d;\r\n        text-align: center;\r\n        line-height: 1.7;\r\n        box-shadow: 0 10px 24px rgba(30, 64, 175, 0.08);\r\n    }\r\n\r\n    .blog-new-loading-spinner {\r\n        width: 36px;\r\n        height: 36px;\r\n        border: 3px solid rgba(37, 99, 235, 0.18);\r\n        border-top-color: #2563eb;\r\n        border-radius: 50%;\r\n        animation: blog-new-spin 0.75s linear infinite;\r\n        margin: 0 auto 14px;\r\n    }\r\n\r\n    @keyframes blog-new-spin {\r\n        to { transform: rotate(360deg); }\r\n    }\r\n\r\n    .blog-new-summary-grid {\r\n        display: grid;\r\n        grid-template-columns: repeat(4, minmax(0, 1fr));\r\n        gap: 22px;\r\n        margin-top: 42px;\r\n    }\r\n\r\n    @media (max-width: 980px) {\r\n        .blog-new-summary-grid {\r\n            grid-template-columns: repeat(2, minmax(0, 1fr));\r\n        }\r\n    }\r\n\r\n    @media (max-width: 560px) {\r\n        .blog-new-summary-grid {\r\n            grid-template-columns: 1fr;\r\n        }\r\n    }\r\n\r\n    .blog-new-summary-card {\r\n        background: rgba(255, 255, 255, 0.98);\r\n        border: 1px solid rgba(59, 130, 246, 0.10);\r\n        padding: 34px 24px;\r\n        border-radius: 22px;\r\n        text-align: center;\r\n        box-shadow: 0 10px 24px rgba(30, 64, 175, 0.10);\r\n    }\r\n\r\n    .blog-new-summary-card h3 {\r\n        margin: 0 0 8px;\r\n        font-size: 2.6rem;\r\n        font-weight: 900;\r\n        line-height: 1;\r\n        background: linear-gradient(135deg, #1e40af, #3b82f6);\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        background-clip: text;\r\n    }\r\n\r\n    .blog-new-summary-card p {\r\n        margin: 0;\r\n        font-size: 1rem;\r\n        color: #4a5875;\r\n        font-weight: 600;\r\n    }\r\n\r\n    .blog-new-footer {\r\n        margin-top: 78px;\r\n        padding-top: 4px;\r\n        text-align: center;\r\n    }\r\n\r\n    .blog-new-footer h3 {\r\n        margin: 0 0 14px;\r\n        font-size: 2.1rem;\r\n        font-weight: 800;\r\n        background: linear-gradient(135deg, #1e40af, #3b82f6);\r\n        -webkit-background-clip: text;\r\n        -webkit-text-fill-color: transparent;\r\n        background-clip: text;\r\n    }\r\n\r\n    .blog-new-footer p {\r\n        max-width: 720px;\r\n        margin: 0 auto;\r\n        font-size: 1.08rem;\r\n        line-height: 1.7;\r\n        color: #465570;\r\n    }\r\n\r\n    @media (max-width: 768px) {\r\n        .blog-new-container {\r\n            padding: 38px 16px 58px;\r\n        }\r\n\r\n        .blog-new-header {\r\n            margin-bottom: 54px;\r\n        }\r\n\r\n        .blog-new-category-header {\r\n            padding: 26px 22px 24px;\r\n        }\r\n\r\n        .blog-new-category-topline {\r\n            align-items: flex-start;\r\n            flex-direction: column;\r\n        }\r\n\r\n        .blog-new-article-content {\r\n            padding: 22px;\r\n        }\r\n\r\n        .blog-new-view-more {\r\n            width: 100%;\r\n        }\r\n    }\r\n<\/style>\r\n\r\n<div class=\"blog-new-shell\">\r\n    <div class=\"blog-new-orb-container\">\r\n        <div class=\"blog-new-orb\"><\/div>\r\n        <div class=\"blog-new-orb\"><\/div>\r\n        <div class=\"blog-new-orb\"><\/div>\r\n        <div class=\"blog-new-orb\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"blog-new-container\">\r\n        <div class=\"blog-new-header\">\r\n            <h1>My MX Data Content Library<\/h1>\r\n            <p>Your complete destination for secure file sharing, data protection, and business collaboration knowledge.<\/p>\r\n        <\/div>\r\n\r\n        <div id=\"blogNewLibrary\" class=\"blog-new-library\"><\/div>\r\n\r\n        <div class=\"blog-new-category-section\">\r\n            <div class=\"blog-new-category-header\">\r\n                <div class=\"blog-new-category-topline\">\r\n                    <h2>Complete Content Library<\/h2>\r\n                    <div id=\"blogNewTotalCount\" class=\"blog-new-category-count\">0<\/div>\r\n                <\/div>\r\n                <p>Your comprehensive resource for secure data sharing and collaboration.<\/p>\r\n            <\/div>\r\n\r\n            <div class=\"blog-new-summary-grid\">\r\n                <div class=\"blog-new-summary-card\">\r\n                    <h3 id=\"blogNewSummaryArticles\">0<\/h3>\r\n                    <p>Articles Loaded<\/p>\r\n                <\/div>\r\n                <div class=\"blog-new-summary-card\">\r\n                    <h3 id=\"blogNewSummaryCategories\">0<\/h3>\r\n                    <p>Core Categories<\/p>\r\n                <\/div>\r\n                <div class=\"blog-new-summary-card\">\r\n                    <h3 id=\"blogNewSummaryFocus\">100%<\/h3>\r\n                    <p>Security Focus<\/p>\r\n                <\/div>\r\n                <div class=\"blog-new-summary-card\">\r\n                    <h3 id=\"blogNewSummaryNew\">0<\/h3>\r\n                    <p>New Articles<\/p>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div class=\"blog-new-footer\">\r\n            <h3>My MX Data<\/h3>\r\n            <p>Empowering businesses with next generation secure file sharing, advanced encryption, and seamless collaboration tools for the digital age.<\/p>\r\n        <\/div>\r\n    <\/div>\r\n<\/div>\r\n\r\n<script>\r\ndocument.addEventListener('DOMContentLoaded', function () {\r\n    const libraryRoot = document.getElementById('blogNewLibrary');\r\n    const summaryArticles = document.getElementById('blogNewSummaryArticles');\r\n    const summaryCategories = document.getElementById('blogNewSummaryCategories');\r\n    const summaryNew = document.getElementById('blogNewSummaryNew');\r\n    const totalCountPill = document.getElementById('blogNewTotalCount');\r\n\r\n    const categories = [\r\n        {\r\n            slug: 'data-security-privacy',\r\n            title: 'Data Security & Privacy',\r\n            description: 'Essential knowledge for protecting your data and maintaining privacy compliance.'\r\n        },\r\n        {\r\n            slug: 'file-sharing-collaboration',\r\n            title: 'File Sharing & Collaboration',\r\n            description: 'Master secure file sharing and enhance team collaboration.'\r\n        },\r\n        {\r\n            slug: 'mx-platform-features',\r\n            title: 'MX Platform & Features',\r\n            description: 'Discover the power of My MX Data capabilities and product features.'\r\n        },\r\n        {\r\n            slug: 'industry-applications',\r\n            title: 'Industry Applications',\r\n            description: 'Specialised solutions for industry specific data security challenges.'\r\n        },\r\n        {\r\n            slug: 'insights-trends',\r\n            title: 'Insights & Trends',\r\n            description: 'Stay ahead with the latest industry insights and emerging trends.'\r\n        }\r\n    ];\r\n\r\n    const state = {\r\n        totalAvailablePosts: 0,\r\n        totalLoadedPosts: 0,\r\n        totalNewPosts: 0\r\n    };\r\n\r\n    summaryCategories.textContent = String(categories.length);\r\n\r\n    function escapeHtml(value) {\r\n        const div = document.createElement('div');\r\n        div.textContent = value || '';\r\n        return div.innerHTML;\r\n    }\r\n\r\n    function decodeHtml(html) {\r\n        const textarea = document.createElement('textarea');\r\n        textarea.innerHTML = html || '';\r\n        return textarea.value;\r\n    }\r\n\r\n    function stripTags(html) {\r\n        const div = document.createElement('div');\r\n        div.innerHTML = html || '';\r\n        return (div.textContent || div.innerText || '').trim();\r\n    }\r\n\r\n    function getFeaturedImage(post) {\r\n        const media = post && post._embedded && post._embedded['wp:featuredmedia'] && post._embedded['wp:featuredmedia'][0];\r\n        if (!media) return '';\r\n        if (media.media_details && media.media_details.sizes) {\r\n            if (media.media_details.sizes.large && media.media_details.sizes.large.source_url) return media.media_details.sizes.large.source_url;\r\n            if (media.media_details.sizes.medium_large && media.media_details.sizes.medium_large.source_url) return media.media_details.sizes.medium_large.source_url;\r\n            if (media.media_details.sizes.full && media.media_details.sizes.full.source_url) return media.media_details.sizes.full.source_url;\r\n        }\r\n        return media.source_url || '';\r\n    }\r\n\r\n    function isNewPost(postDate) {\r\n        const published = new Date(postDate);\r\n        const now = new Date();\r\n        const diffDays = (now - published) \/ (1000 * 60 * 60 * 24);\r\n        return diffDays <= 30;\r\n    }\r\n\r\n    function createLoadingMarkup() {\r\n        return `\r\n            <div class=\"blog-new-loading\">\r\n                <div>\r\n                    <div class=\"blog-new-loading-spinner\"><\/div>\r\n                    <div>Loading articles...<\/div>\r\n                <\/div>\r\n            <\/div>\r\n        `;\r\n    }\r\n\r\n    function createErrorMarkup(message) {\r\n        return `\r\n            <div class=\"blog-new-error\">\r\n                <div>${escapeHtml(message)}<\/div>\r\n            <\/div>\r\n        `;\r\n    }\r\n\r\n    function createEmptyMarkup() {\r\n        return `\r\n            <div class=\"blog-new-empty\">\r\n                <div>No articles found in this category yet.<\/div>\r\n            <\/div>\r\n        `;\r\n    }\r\n\r\n    function createSection(category) {\r\n        const section = document.createElement('section');\r\n        section.className = 'blog-new-category-section';\r\n        section.dataset.slug = category.slug;\r\n        section.innerHTML = `\r\n            <div class=\"blog-new-category-header\">\r\n                <div class=\"blog-new-category-topline\">\r\n                    <h2>${escapeHtml(category.title)}<\/h2>\r\n                    <div class=\"blog-new-category-count\" data-role=\"count\">0<\/div>\r\n                <\/div>\r\n                <p>${escapeHtml(category.description)}<\/p>\r\n            <\/div>\r\n            <div class=\"blog-new-grid-wrap\" data-role=\"grid-wrap\">\r\n                ${createLoadingMarkup()}\r\n            <\/div>\r\n            <div class=\"blog-new-actions\" data-role=\"actions\" hidden>\r\n                <button type=\"button\" class=\"blog-new-view-more\" data-role=\"load-more\">View More <span>\u2193<\/span><\/button>\r\n            <\/div>\r\n        `;\r\n        return section;\r\n    }\r\n\r\n    async function fetchJson(url) {\r\n        const response = await fetch(url, { credentials: 'same-origin' });\r\n        if (!response.ok) {\r\n            throw new Error('Request failed with status ' + response.status);\r\n        }\r\n        return response;\r\n    }\r\n\r\n    async function fetchCategoryBySlug(slug) {\r\n        const response = await fetchJson(`\/wp-json\/wp\/v2\/categories?slug=${encodeURIComponent(slug)}&per_page=1`);\r\n        const data = await response.json();\r\n        return data && data.length ? data[0] : null;\r\n    }\r\n\r\n    async function fetchPostsByCategory(categoryId, page, perPage) {\r\n        const response = await fetchJson(`\/wp-json\/wp\/v2\/posts?categories=${categoryId}&page=${page}&per_page=${perPage}&_embed=1&orderby=date&order=desc`);\r\n        const posts = await response.json();\r\n        return {\r\n            posts,\r\n            totalPages: parseInt(response.headers.get('X-WP-TotalPages') || '1', 10),\r\n            totalPosts: parseInt(response.headers.get('X-WP-Total') || String(posts.length), 10)\r\n        };\r\n    }\r\n\r\n    function ensureGrid(section) {\r\n        const wrap = section.querySelector('[data-role=\"grid-wrap\"]');\r\n        let grid = wrap.querySelector('.blog-new-grid');\r\n        if (!grid) {\r\n            grid = document.createElement('div');\r\n            grid.className = 'blog-new-grid';\r\n            wrap.innerHTML = '';\r\n            wrap.appendChild(grid);\r\n        }\r\n        return grid;\r\n    }\r\n\r\n    function animateNewCards(cards) {\r\n        const observer = new IntersectionObserver((entries, obs) => {\r\n            entries.forEach(entry => {\r\n                if (entry.isIntersecting) {\r\n                    entry.target.classList.add('is-visible');\r\n                    obs.unobserve(entry.target);\r\n                }\r\n            });\r\n        }, { threshold: 0.12 });\r\n\r\n        cards.forEach(card => observer.observe(card));\r\n    }\r\n\r\n    function renderPosts(section, posts, appendMode) {\r\n        const grid = ensureGrid(section);\r\n        const fragment = document.createDocumentFragment();\r\n        const newCards = [];\r\n\r\n        posts.forEach(post => {\r\n            const card = document.createElement('article');\r\n            card.className = 'blog-new-article-card';\r\n\r\n            const imageUrl = getFeaturedImage(post);\r\n            const title = decodeHtml(post.title && post.title.rendered ? post.title.rendered : '');\r\n            const titleText = stripTags(title);\r\n            const isNew = isNewPost(post.date);\r\n\r\n            card.innerHTML = `\r\n                <div class=\"blog-new-article-image\">\r\n                    ${isNew ? '<div class=\"blog-new-new-badge\">New<\/div>' : ''}\r\n                    <div class=\"blog-new-priority-badge\">Article<\/div>\r\n                    ${\r\n                        imageUrl\r\n                        ? `<img decoding=\"async\" src=\"${escapeHtml(imageUrl)}\" alt=\"${escapeHtml(titleText)}\" loading=\"lazy\">`\r\n                        : `<div class=\"blog-new-article-image-fallback\">${escapeHtml(titleText)}<\/div>`\r\n                    }\r\n                <\/div>\r\n                <div class=\"blog-new-article-content\">\r\n                    <h3 class=\"blog-new-article-title\">\r\n                        <a href=\"${escapeHtml(post.link)}\">${escapeHtml(titleText)}<\/a>\r\n                    <\/h3>\r\n                    <a href=\"${escapeHtml(post.link)}\" class=\"blog-new-visit-btn\">Read Article \u2192<\/a>\r\n                <\/div>\r\n            `;\r\n\r\n            fragment.appendChild(card);\r\n            newCards.push(card);\r\n\r\n            state.totalLoadedPosts += 1;\r\n            if (isNew) state.totalNewPosts += 1;\r\n        });\r\n\r\n        if (!appendMode) {\r\n            grid.innerHTML = '';\r\n        }\r\n\r\n        grid.appendChild(fragment);\r\n        animateNewCards(newCards);\r\n        updateSummary();\r\n    }\r\n\r\n    function updateSummary() {\r\n        summaryArticles.textContent = String(state.totalLoadedPosts);\r\n        summaryNew.textContent = String(state.totalNewPosts);\r\n        totalCountPill.textContent = String(state.totalAvailablePosts);\r\n    }\r\n\r\n    async function loadCategory(section, categoryConfig) {\r\n        const countEl = section.querySelector('[data-role=\"count\"]');\r\n        const actions = section.querySelector('[data-role=\"actions\"]');\r\n        const loadMoreBtn = section.querySelector('[data-role=\"load-more\"]');\r\n\r\n        const runtime = {\r\n            categoryId: null,\r\n            currentPage: 1,\r\n            totalPages: 1,\r\n            totalPosts: 0,\r\n            perPage: 6,\r\n            loading: false\r\n        };\r\n\r\n        section._runtime = runtime;\r\n\r\n        try {\r\n            const category = await fetchCategoryBySlug(categoryConfig.slug);\r\n\r\n            if (!category || !category.id) {\r\n                section.querySelector('[data-role=\"grid-wrap\"]').innerHTML = createErrorMarkup('Category not found: ' + categoryConfig.title);\r\n                countEl.textContent = '0';\r\n                return;\r\n            }\r\n\r\n            runtime.categoryId = category.id;\r\n\r\n            const firstBatch = await fetchPostsByCategory(runtime.categoryId, runtime.currentPage, runtime.perPage);\r\n            runtime.totalPages = firstBatch.totalPages;\r\n            runtime.totalPosts = firstBatch.totalPosts;\r\n\r\n            countEl.textContent = String(runtime.totalPosts);\r\n            state.totalAvailablePosts += runtime.totalPosts;\r\n            updateSummary();\r\n\r\n            if (!firstBatch.posts.length) {\r\n                section.querySelector('[data-role=\"grid-wrap\"]').innerHTML = createEmptyMarkup();\r\n                return;\r\n            }\r\n\r\n            renderPosts(section, firstBatch.posts, false);\r\n\r\n            if (runtime.currentPage < runtime.totalPages) {\r\n                actions.hidden = false;\r\n                loadMoreBtn.innerHTML = 'View More <span>\u2193<\/span>';\r\n            } else {\r\n                actions.hidden = true;\r\n            }\r\n\r\n            loadMoreBtn.addEventListener('click', async function () {\r\n                if (runtime.loading) return;\r\n                if (runtime.currentPage >= runtime.totalPages) return;\r\n\r\n                runtime.loading = true;\r\n                loadMoreBtn.disabled = true;\r\n                loadMoreBtn.innerHTML = 'Loading...';\r\n\r\n                try {\r\n                    runtime.currentPage += 1;\r\n                    const nextBatch = await fetchPostsByCategory(runtime.categoryId, runtime.currentPage, runtime.perPage);\r\n                    renderPosts(section, nextBatch.posts, true);\r\n\r\n                    if (runtime.currentPage >= runtime.totalPages) {\r\n                        actions.hidden = true;\r\n                    } else {\r\n                        loadMoreBtn.disabled = false;\r\n                        loadMoreBtn.innerHTML = 'View More <span>\u2193<\/span>';\r\n                    }\r\n                } catch (error) {\r\n                    runtime.currentPage -= 1;\r\n                    loadMoreBtn.disabled = false;\r\n                    loadMoreBtn.innerHTML = 'Try Again <span>\u21bb<\/span>';\r\n                } finally {\r\n                    runtime.loading = false;\r\n                }\r\n            });\r\n\r\n        } catch (error) {\r\n            section.querySelector('[data-role=\"grid-wrap\"]').innerHTML = createErrorMarkup('Unable to load this category right now.');\r\n            countEl.textContent = '0';\r\n        }\r\n    }\r\n\r\n    categories.forEach(category => {\r\n        const section = createSection(category);\r\n        libraryRoot.appendChild(section);\r\n        loadCategory(section, category);\r\n    });\r\n});\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e529aad e-flex e-con-boxed e-con e-parent\" data-id=\"e529aad\" data-element_type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-74ca0c66 elementor-widget elementor-widget-text-editor\" data-id=\"74ca0c66\" data-element_type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<p>\u00a0<\/p><p style=\"text-align: center;\">View In: <a href=\"https:\/\/www.mymxdata.com\/en-gb\/blog\/\"><img decoding=\"async\" class=\"alignnone wp-image-4730 size-full\" src=\"https:\/\/www.mymxdata.com\/wp-content\/uploads\/en-gb-1.png\" alt=\"\" width=\"32\" height=\"32\" \/><\/a> <a href=\"https:\/\/www.mymxdata.com\/en-us\/blog\/\"><img decoding=\"async\" class=\"alignnone wp-image-4729 size-full\" src=\"https:\/\/www.mymxdata.com\/wp-content\/uploads\/en-us-1.png\" alt=\"\" width=\"32\" height=\"32\" \/><\/a><\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>My MX Data Content Library Your complete destination for secure file sharing, data protection, and business collaboration knowledge. Complete Content Library 0 Your comprehensive resource for secure data sharing and collaboration. 0 Articles Loaded 0 Core Categories 100% Security Focus 0 New Articles My MX Data Empowering businesses with next generation secure file sharing, advanced [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-2365","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/pages\/2365","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/comments?post=2365"}],"version-history":[{"count":20,"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/pages\/2365\/revisions"}],"predecessor-version":[{"id":11323,"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/pages\/2365\/revisions\/11323"}],"wp:attachment":[{"href":"https:\/\/www.mymxdata.com\/en-us\/wp-json\/wp\/v2\/media?parent=2365"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}