{"id":3668,"date":"2026-07-31T01:43:57","date_gmt":"2026-07-31T01:43:57","guid":{"rendered":"https:\/\/datacons.com.vn\/?page_id=3668"},"modified":"2026-09-07T03:02:14","modified_gmt":"2026-09-07T03:02:14","slug":"profile-2026","status":"publish","type":"page","link":"https:\/\/datacons.com.vn\/en\/profile-2026\/","title":{"rendered":"DATA Cons Profile 2026"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"3668\" class=\"elementor elementor-3668\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e6e4658 e-con-full e-flex e-con e-parent\" data-id=\"e6e4658\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-f28a0bb e-con-full e-flex e-con e-child\" data-id=\"f28a0bb\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d8f905f elementor-widget__width-inherit elementor-widget elementor-widget-html\" data-id=\"d8f905f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<div id=\"pdfFlipbookElementor\">\r\n\r\n    <div class=\"pf-loading\">\r\n        <strong>\u0110ang t\u1ea3i Profile\u2026, xin ch\u1edd 5s<\/strong>\r\n        <span class=\"pf-loading-text\">0%<\/span>\r\n\r\n        <div class=\"pf-progress\">\r\n            <div class=\"pf-progress-bar\"><\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <div class=\"pf-error\"><\/div>\r\n\r\n    <div class=\"pf-stage\">\r\n        <div class=\"pf-book\"><\/div>\r\n    <\/div>\r\n\r\n    <div class=\"pf-controls\">\r\n\r\n        <button\r\n            class=\"pf-button pf-prev\"\r\n            type=\"button\"\r\n            aria-label=\"Trang tr\u01b0\u1edbc\"\r\n        >\r\n            \u2190\r\n        <\/button>\r\n\r\n        <span class=\"pf-page-number\">\u2014 \/ \u2014<\/span>\r\n\r\n        <button\r\n            class=\"pf-button pf-next\"\r\n            type=\"button\"\r\n            aria-label=\"Trang sau\"\r\n        >\r\n            \u2192\r\n        <\/button>\r\n\r\n        <button\r\n            class=\"pf-button pf-fullscreen\"\r\n            type=\"button\"\r\n            aria-label=\"To\u00e0n m\u00e0n h\u00ecnh\"\r\n        >\r\n            \u26f6\r\n        <\/button>\r\n\r\n    <\/div>\r\n\r\n<\/div>\r\n\r\n<style>\r\n\/* ==========================================\r\n   KHUNG FLIPBOOK\r\n========================================== *\/\r\n\r\n#pdfFlipbookElementor {\r\n    --pf-height: clamp(800px, 78vh, 800px);\r\n\r\n    --pf-background: #17181c;\r\n    --pf-control: #292b31;\r\n    --pf-control-hover: #e53935;\r\n    --pf-text: #ffffff;\r\n\r\n    position: relative;\r\n\r\n    width: 100%;\r\n    height: var(--pf-height);\r\n\r\n    display: grid;\r\n    grid-template-rows: minmax(0, 1fr) auto;\r\n\r\n    gap: 8px;\r\n    padding: 5px 14px 5px;\r\n\r\n    color: var(--pf-text);\r\n    background-color: var(--pf-background);\r\n\r\n    border-radius: 16px;\r\n    overflow: hidden;\r\n    box-sizing: border-box;\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   V\u00d9NG CH\u1ee8A S\u00c1CH\r\n========================================== *\/\r\n\r\n#pdfFlipbookElementor .pf-stage {\r\n    width: 100%;\r\n    height: 100%;\r\n    min-height: 0;\r\n\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n\r\n    overflow: hidden;\r\n}\r\n\r\n#pdfFlipbookElementor .pf-book {\r\n    margin: auto;\r\n}\r\n\r\n\/* C\u0103n gi\u1eefa khung do PageFlip t\u1ea1o *\/\r\n#pdfFlipbookElementor .stf__parent {\r\n    margin-left: auto !important;\r\n    margin-right: auto !important;\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   TRANG PDF\r\n========================================== *\/\r\n\r\n#pdfFlipbookElementor .pf-page {\r\n    overflow: hidden;\r\n    background-color: #ffffff;\r\n}\r\n\r\n#pdfFlipbookElementor .pf-page-inner {\r\n    width: 100%;\r\n    height: 100%;\r\n\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n\r\n    overflow: hidden;\r\n    background-color: #ffffff;\r\n}\r\n\r\n#pdfFlipbookElementor canvas {\r\n    display: block;\r\n\r\n    width: 100% !important;\r\n    height: 100% !important;\r\n\r\n    max-width: 100%;\r\n    max-height: 100%;\r\n\r\n    object-fit: contain;\r\n    background-color: #ffffff;\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   THANH \u0110I\u1ec0U KHI\u1ec2N\r\n========================================== *\/\r\n\r\n#pdfFlipbookElementor .pf-controls {\r\n    min-height: 48px;\r\n\r\n    display: flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n\r\n    gap: 10px;\r\n}\r\n\r\n#pdfFlipbookElementor .pf-button {\r\n    width: 44px;\r\n    height: 44px;\r\n\r\n    display: inline-flex;\r\n    align-items: center;\r\n    justify-content: center;\r\n\r\n    padding: 0;\r\n\r\n    border: 1px solid rgba(255, 255, 255, 0.12);\r\n    border-radius: 10px;\r\n\r\n    color: var(--pf-text);\r\n    background-color: var(--pf-control);\r\n\r\n    font-size: 18px;\r\n    line-height: 1;\r\n\r\n    cursor: pointer;\r\n\r\n    transition:\r\n        transform 0.25s ease,\r\n        color 0.25s ease,\r\n        background-color 0.25s ease,\r\n        border-color 0.25s ease;\r\n}\r\n\r\n#pdfFlipbookElementor .pf-button:hover {\r\n    transform: translateY(-2px);\r\n\r\n    color: #ffffff;\r\n    border-color: var(--pf-control-hover);\r\n    background-color: var(--pf-control-hover);\r\n}\r\n\r\n#pdfFlipbookElementor .pf-button:active {\r\n    transform: translateY(0);\r\n}\r\n\r\n#pdfFlipbookElementor .pf-page-number {\r\n    min-width: 108px;\r\n\r\n    color: rgba(255, 255, 255, 0.8);\r\n\r\n    text-align: center;\r\n    font-size: 14px;\r\n    font-variant-numeric: tabular-nums;\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   LOADING\r\n========================================== *\/\r\n\r\n#pdfFlipbookElementor .pf-loading {\r\n    position: absolute;\r\n    top: 50%;\r\n    left: 50%;\r\n    z-index: 50;\r\n\r\n    width: min(420px, calc(100% - 40px));\r\n    padding: 20px;\r\n\r\n    transform: translate(-50%, -50%);\r\n\r\n    border: 1px solid rgba(255, 255, 255, 0.12);\r\n    border-radius: 14px;\r\n\r\n    color: #ffffff;\r\n    background-color: rgba(25, 26, 31, 0.97);\r\n\r\n    text-align: center;\r\n}\r\n\r\n#pdfFlipbookElementor .pf-loading-text {\r\n    display: block;\r\n\r\n    margin-top: 6px;\r\n\r\n    color: rgba(255, 255, 255, 0.65);\r\n    font-size: 15px;\r\n}\r\n\r\n#pdfFlipbookElementor .pf-progress {\r\n    height: 6px;\r\n    margin-top: 14px;\r\n\r\n    overflow: hidden;\r\n    border-radius: 999px;\r\n\r\n    background-color: rgba(255, 255, 255, 0.1);\r\n}\r\n\r\n#pdfFlipbookElementor .pf-progress-bar {\r\n    width: 0%;\r\n    height: 100%;\r\n\r\n    border-radius: inherit;\r\n    background-color: var(--pf-control-hover);\r\n\r\n    transition: width 0.2s ease;\r\n}\r\n\r\n#pdfFlipbookElementor .pf-loading strong {\r\n    font-size: 22px;\r\n    line-height: 1.3;\r\n}\r\n\r\n\/* ==========================================\r\n   TH\u00d4NG B\u00c1O L\u1ed6I\r\n========================================== *\/\r\n\r\n#pdfFlipbookElementor .pf-error {\r\n    display: none;\r\n\r\n    position: absolute;\r\n    top: 50%;\r\n    left: 50%;\r\n    z-index: 60;\r\n\r\n    width: min(520px, calc(100% - 40px));\r\n    padding: 20px;\r\n\r\n    transform: translate(-50%, -50%);\r\n\r\n    border: 1px solid rgba(255, 80, 80, 0.35);\r\n    border-radius: 12px;\r\n\r\n    color: #ffd2d2;\r\n    background-color: rgba(110, 20, 20, 0.95);\r\n\r\n    text-align: center;\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   TO\u00c0N M\u00c0N H\u00ccNH\r\n========================================== *\/\r\n\r\n#pdfFlipbookElementor:fullscreen {\r\n    width: 100vw;\r\n    height: 100vh;\r\n\r\n    padding: 12px;\r\n    border-radius: 0;\r\n}\r\n\r\n\r\n\/* ==========================================\r\n   \u0110I\u1ec6N THO\u1ea0I\r\n========================================== *\/\r\n\r\n@media (max-width: 767px) {\r\n    #pdfFlipbookElementor {\r\n        --pf-height: 72dvh;\r\n\r\n        min-height: 430px;\r\n\r\n        padding: 6px 8px 10px;\r\n        gap: 5px;\r\n\r\n        border-radius: 10px;\r\n    }\r\n\r\n    #pdfFlipbookElementor .pf-controls {\r\n        min-height: 44px;\r\n    }\r\n\r\n    #pdfFlipbookElementor .pf-button {\r\n        width: 40px;\r\n        height: 40px;\r\n    }\r\n\r\n    #pdfFlipbookElementor .pf-page-number {\r\n        min-width: 84px;\r\n    }\r\n}\r\n<\/style>\r\n\r\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.min.js\"><\/script>\r\n<script src=\"https:\/\/cdn.jsdelivr.net\/npm\/page-flip@2.0.7\/dist\/js\/page-flip.browser.min.js\"><\/script>\r\n\r\n<script>\r\n(function () {\r\n    \"use strict\";\r\n\r\n    \/* ==========================================\r\n       \u0110\u01af\u1edcNG D\u1eaaN PDF\r\n    ========================================== *\/\r\n\r\n    const DEFAULT_PDF_URL =\r\n        \"https:\/\/datacons.com.vn\/wp-content\/uploads\/2026\/08\/DATA-Cons_Profile-2026_File_nen-1.pdf\";\r\n\r\n    const params = new URLSearchParams(window.location.search);\r\n\r\n    const PDF_URL =\r\n        params.get(\"pdf\") || DEFAULT_PDF_URL;\r\n\r\n\r\n    \/* ==========================================\r\n       C\u00c1C TH\u00c0NH PH\u1ea6N\r\n    ========================================== *\/\r\n\r\n    const root =\r\n        document.getElementById(\"pdfFlipbookElementor\");\r\n\r\n    if (!root) {\r\n        return;\r\n    }\r\n\r\n    const stage =\r\n        root.querySelector(\".pf-stage\");\r\n\r\n    const bookElement =\r\n        root.querySelector(\".pf-book\");\r\n\r\n    const loadingElement =\r\n        root.querySelector(\".pf-loading\");\r\n\r\n    const loadingText =\r\n        root.querySelector(\".pf-loading-text\");\r\n\r\n    const progressBar =\r\n        root.querySelector(\".pf-progress-bar\");\r\n\r\n    const errorElement =\r\n        root.querySelector(\".pf-error\");\r\n\r\n    const pageNumberElement =\r\n        root.querySelector(\".pf-page-number\");\r\n\r\n    const previousButton =\r\n        root.querySelector(\".pf-prev\");\r\n\r\n    const nextButton =\r\n        root.querySelector(\".pf-next\");\r\n\r\n    const fullscreenButton =\r\n        root.querySelector(\".pf-fullscreen\");\r\n\r\n\r\n    \/* ==========================================\r\n       BI\u1ebeN H\u1ec6 TH\u1ed0NG\r\n    ========================================== *\/\r\n\r\n    let pdfDocument = null;\r\n    let pageFlip = null;\r\n    let totalPages = 0;\r\n    let resizeFrame = null;\r\n\r\n    const renderedPages = new Set();\r\n    const renderingPages = new Map();\r\n    const pageCanvases = new Map();\r\n\r\n    const isMobile =\r\n        window.matchMedia(\"(max-width: 767px)\").matches;\r\n\r\n\r\n    \/* ==========================================\r\n       H\u00c0M H\u1ed6 TR\u1ee2\r\n    ========================================== *\/\r\n\r\n    function clamp(value, minimum, maximum) {\r\n        return Math.min(\r\n            maximum,\r\n            Math.max(minimum, value)\r\n        );\r\n    }\r\n\r\n    function updateProgress(percent, message) {\r\n        const value = clamp(percent, 0, 100);\r\n\r\n        progressBar.style.width =\r\n            value + \"%\";\r\n\r\n        loadingText.textContent =\r\n            message || Math.round(value) + \"%\";\r\n    }\r\n\r\n    function showError(message) {\r\n        loadingElement.style.display = \"none\";\r\n        errorElement.style.display = \"block\";\r\n        errorElement.textContent = message;\r\n    }\r\n\r\n\r\n    \/* ==========================================\r\n       C\u1eacP NH\u1eacT S\u1ed0 TRANG\r\n    ========================================== *\/\r\n\r\n    function updatePage(index) {\r\n        const currentIndex =\r\n            Math.max(0, Number(index) || 0);\r\n\r\n        if (isMobile) {\r\n            pageNumberElement.textContent =\r\n                Math.min(currentIndex + 1, totalPages) +\r\n                \" \/ \" +\r\n                totalPages;\r\n\r\n            return;\r\n        }\r\n\r\n        const leftPage =\r\n            Math.min(currentIndex + 1, totalPages);\r\n\r\n        const rightPage =\r\n            Math.min(currentIndex + 2, totalPages);\r\n\r\n        if (leftPage === rightPage) {\r\n            pageNumberElement.textContent =\r\n                leftPage + \" \/ \" + totalPages;\r\n        } else {\r\n            pageNumberElement.textContent =\r\n                leftPage +\r\n                \"\u2013\" +\r\n                rightPage +\r\n                \" \/ \" +\r\n                totalPages;\r\n        }\r\n    }\r\n\r\n\r\n    \/* ==========================================\r\n       T\u00cdNH CH\u1ea4T L\u01af\u1ee2NG RENDER\r\n    ========================================== *\/\r\n\r\n    function getRenderScale(viewport) {\r\n        const stageWidth =\r\n            stage.clientWidth || 1000;\r\n\r\n        const stageHeight =\r\n            stage.clientHeight || 700;\r\n\r\n        const visiblePages =\r\n            isMobile ? 1 : 2;\r\n\r\n        const targetWidth =\r\n            stageWidth \/ visiblePages;\r\n\r\n        const targetHeight =\r\n            stageHeight;\r\n\r\n        const fitScale =\r\n            Math.min(\r\n                targetWidth \/ viewport.width,\r\n                targetHeight \/ viewport.height\r\n            );\r\n\r\n        const pixelRatio =\r\n            Math.min(\r\n                window.devicePixelRatio || 1,\r\n                1.4\r\n            );\r\n\r\n        \/*\r\n         * Gi\u1edbi h\u1ea1n \u1edf 1.3 \u0111\u1ec3 PDF t\u1ea3i nhanh\r\n         * nh\u01b0ng ch\u1eef v\u1eabn \u0111\u1ee7 r\u00f5.\r\n         *\/\r\n        return clamp(\r\n            fitScale * pixelRatio,\r\n            0.55,\r\n            1.3\r\n        );\r\n    }\r\n\r\n\r\n    \/* ==========================================\r\n       T\u1ea0O TRANG TR\u1ed0NG\r\n    ========================================== *\/\r\n\r\n    function createPageElement(pageNumber) {\r\n        const pageElement =\r\n            document.createElement(\"div\");\r\n\r\n        pageElement.className = \"pf-page\";\r\n        pageElement.dataset.pageNumber =\r\n            String(pageNumber);\r\n\r\n        const pageInner =\r\n            document.createElement(\"div\");\r\n\r\n        pageInner.className = \"pf-page-inner\";\r\n\r\n        const canvas =\r\n            document.createElement(\"canvas\");\r\n\r\n        canvas.width = 10;\r\n        canvas.height = 10;\r\n\r\n        pageInner.appendChild(canvas);\r\n        pageElement.appendChild(pageInner);\r\n\r\n        pageCanvases.set(\r\n            pageNumber,\r\n            canvas\r\n        );\r\n\r\n        return pageElement;\r\n    }\r\n\r\n\r\n    \/* ==========================================\r\n       RENDER M\u1ed8T TRANG PDF\r\n    ========================================== *\/\r\n\r\n    async function renderPage(pageNumber) {\r\n        if (\r\n            pageNumber < 1 ||\r\n            pageNumber > totalPages\r\n        ) {\r\n            return;\r\n        }\r\n\r\n        if (renderedPages.has(pageNumber)) {\r\n            return;\r\n        }\r\n\r\n        if (renderingPages.has(pageNumber)) {\r\n            return renderingPages.get(pageNumber);\r\n        }\r\n\r\n        const renderPromise =\r\n            (async function () {\r\n                const page =\r\n                    await pdfDocument.getPage(pageNumber);\r\n\r\n                const originalViewport =\r\n                    page.getViewport({\r\n                        scale: 1\r\n                    });\r\n\r\n                const renderScale =\r\n                    getRenderScale(originalViewport);\r\n\r\n                const viewport =\r\n                    page.getViewport({\r\n                        scale: renderScale\r\n                    });\r\n\r\n                const canvas =\r\n                    pageCanvases.get(pageNumber);\r\n\r\n                if (!canvas) {\r\n                    return;\r\n                }\r\n\r\n                const context =\r\n                    canvas.getContext(\"2d\", {\r\n                        alpha: false\r\n                    });\r\n\r\n                canvas.width =\r\n                    Math.max(\r\n                        1,\r\n                        Math.floor(viewport.width)\r\n                    );\r\n\r\n                canvas.height =\r\n                    Math.max(\r\n                        1,\r\n                        Math.floor(viewport.height)\r\n                    );\r\n\r\n                await page.render({\r\n                    canvasContext: context,\r\n                    viewport: viewport\r\n                }).promise;\r\n\r\n                renderedPages.add(pageNumber);\r\n            })();\r\n\r\n        renderingPages.set(\r\n            pageNumber,\r\n            renderPromise\r\n        );\r\n\r\n        try {\r\n            await renderPromise;\r\n        } finally {\r\n            renderingPages.delete(pageNumber);\r\n        }\r\n    }\r\n\r\n\r\n    \/* ==========================================\r\n       RENDER C\u00c1C TRANG G\u1ea6N TRANG \u0110ANG \u0110\u1eccC\r\n    ========================================== *\/\r\n\r\n    function renderNearby(index) {\r\n        const currentPage =\r\n            Number(index) + 1;\r\n\r\n        const tasks = [];\r\n\r\n        for (\r\n            let offset = -2;\r\n            offset <= 5;\r\n            offset++\r\n        ) {\r\n            const pageNumber =\r\n                currentPage + offset;\r\n\r\n            if (\r\n                pageNumber >= 1 &&\r\n                pageNumber <= totalPages\r\n            ) {\r\n                tasks.push(\r\n                    renderPage(pageNumber)\r\n                );\r\n            }\r\n        }\r\n\r\n        return Promise.all(tasks);\r\n    }\r\n\r\n\r\n    \/* ==========================================\r\n       T\u1ea2I PDF\r\n    ========================================== *\/\r\n\r\n    async function loadPdf() {\r\n        if (!PDF_URL) {\r\n            showError(\r\n                \"Ch\u01b0a c\u00f3 \u0111\u01b0\u1eddng d\u1eabn PDF.\"\r\n            );\r\n\r\n            return;\r\n        }\r\n\r\n        if (\r\n            !window.pdfjsLib ||\r\n            !window.St ||\r\n            !window.St.PageFlip\r\n        ) {\r\n            showError(\r\n                \"Kh\u00f4ng t\u1ea3i \u0111\u01b0\u1ee3c th\u01b0 vi\u1ec7n \u0111\u1ecdc PDF.\"\r\n            );\r\n\r\n            return;\r\n        }\r\n\r\n        try {\r\n            pdfjsLib.GlobalWorkerOptions.workerSrc =\r\n                \"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/pdf.js\/3.11.174\/pdf.worker.min.js\";\r\n\r\n            updateProgress(\r\n                5,\r\n                \"\u0110ang t\u1ea3i PDF\u2026\"\r\n            );\r\n\r\n            const loadingTask =\r\n                pdfjsLib.getDocument({\r\n                    url: PDF_URL,\r\n                    disableRange: false,\r\n                    disableStream: false,\r\n                    disableAutoFetch: true\r\n                });\r\n\r\n            loadingTask.onProgress =\r\n                function (data) {\r\n                    if (!data.total) {\r\n                        return;\r\n                    }\r\n\r\n                    const percent =\r\n                        5 +\r\n                        (data.loaded \/ data.total) * 25;\r\n\r\n                    updateProgress(\r\n                        percent,\r\n                        \"\u0110ang t\u1ea3i PDF\u2026 \" +\r\n                        Math.round(percent) +\r\n                        \"%\"\r\n                    );\r\n                };\r\n\r\n            pdfDocument =\r\n                await loadingTask.promise;\r\n\r\n            totalPages =\r\n                pdfDocument.numPages;\r\n\r\n            if (!totalPages) {\r\n                throw new Error(\r\n                    \"PDF kh\u00f4ng c\u00f3 trang.\"\r\n                );\r\n            }\r\n\r\n            updateProgress(\r\n                32,\r\n                \"\u0110ang chu\u1ea9n b\u1ecb flipbook\u2026\"\r\n            );\r\n\r\n\r\n            \/* T\u1ea1o c\u00e1c trang tr\u1ed1ng *\/\r\n            const fragment =\r\n                document.createDocumentFragment();\r\n\r\n            for (\r\n                let pageNumber = 1;\r\n                pageNumber <= totalPages;\r\n                pageNumber++\r\n            ) {\r\n                fragment.appendChild(\r\n                    createPageElement(pageNumber)\r\n                );\r\n            }\r\n\r\n            bookElement.innerHTML = \"\";\r\n            bookElement.appendChild(fragment);\r\n\r\n\r\n            \/*\r\n             * Ch\u1ec9 t\u1ea3i tr\u01b0\u1edbc v\u00e0i trang \u0111\u1ea7u\r\n             * \u0111\u1ec3 flipbook xu\u1ea5t hi\u1ec7n nhanh h\u01a1n.\r\n             *\/\r\n            const initialPageCount =\r\n                Math.min(\r\n                    totalPages,\r\n                    isMobile ? 2 : 4\r\n                );\r\n\r\n            for (\r\n                let pageNumber = 1;\r\n                pageNumber <= initialPageCount;\r\n                pageNumber++\r\n            ) {\r\n                await renderPage(pageNumber);\r\n\r\n                updateProgress(\r\n                    32 +\r\n                    (\r\n                        pageNumber \/\r\n                        initialPageCount\r\n                    ) * 63,\r\n\r\n                    \"\u0110ang chu\u1ea9n b\u1ecb trang \" +\r\n                    pageNumber +\r\n                    \" \/ \" +\r\n                    initialPageCount\r\n                );\r\n            }\r\n\r\n\r\n            \/* ==================================\r\n               KH\u1edeI T\u1ea0O FLIPBOOK A4 D\u1eccC\r\n            ================================== *\/\r\n\r\n            pageFlip =\r\n                new St.PageFlip(\r\n                    bookElement,\r\n                    {\r\n                        \/*\r\n                         * K\u00edch th\u01b0\u1edbc c\u1ee7a\r\n                         * M\u1ed8T trang A4 d\u1ecdc.\r\n                         *\/\r\n                        width: 595,\r\n                        height: 842,\r\n\r\n                        size: \"stretch\",\r\n\r\n                        minWidth: 260,\r\n                        minHeight: 368,\r\n\r\n                        maxWidth: 520,\r\n                        maxHeight: 736,\r\n\r\n                        \/*\r\n                         * Desktop: hai trang.\r\n                         * \u0110i\u1ec7n tho\u1ea1i: m\u1ed9t trang.\r\n                         *\/\r\n                        usePortrait: isMobile,\r\n                        showCover: false,\r\n\r\n                        autoSize: true,\r\n                        drawShadow: true,\r\n\r\n                        maxShadowOpacity: 0.25,\r\n                        showPageCorners: true,\r\n\r\n                        mobileScrollSupport: false,\r\n                        flippingTime: 700\r\n                    }\r\n                );\r\n\r\n\r\n            \/*\r\n             * \u0110\u01b0a c\u00e1c trang PDF v\u00e0o PageFlip.\r\n             * \u0110\u00e2y l\u00e0 d\u00f2ng quan tr\u1ecdng.\r\n             *\/\r\n            pageFlip.loadFromHTML(\r\n                bookElement.querySelectorAll(\r\n                    \".pf-page\"\r\n                )\r\n            );\r\n\r\n\r\n            pageFlip.on(\r\n                \"flip\",\r\n                function (event) {\r\n                    updatePage(event.data);\r\n                    renderNearby(event.data);\r\n                }\r\n            );\r\n\r\n\r\n            updateProgress(\r\n                100,\r\n                \"Ho\u00e0n t\u1ea5t\"\r\n            );\r\n\r\n            updatePage(0);\r\n\r\n            loadingElement.style.display =\r\n                \"none\";\r\n\r\n\r\n            \/*\r\n             * Chu\u1ea9n b\u1ecb th\u00eam c\u00e1c trang g\u1ea7n\r\n             * trang \u0111\u1ea7u nh\u01b0ng kh\u00f4ng ch\u1eb7n giao di\u1ec7n.\r\n             *\/\r\n            setTimeout(\r\n                function () {\r\n                    renderNearby(0);\r\n                },\r\n                100\r\n            );\r\n\r\n\r\n            requestAnimationFrame(\r\n                function () {\r\n                    if (pageFlip) {\r\n                        pageFlip.update();\r\n                    }\r\n                }\r\n            );\r\n\r\n\r\n            \/* T\u1ef1 c\u1eadp nh\u1eadt khi block \u0111\u1ed5i k\u00edch th\u01b0\u1edbc *\/\r\n            if (\"ResizeObserver\" in window) {\r\n                const resizeObserver =\r\n                    new ResizeObserver(\r\n                        function () {\r\n                            cancelAnimationFrame(\r\n                                resizeFrame\r\n                            );\r\n\r\n                            resizeFrame =\r\n                                requestAnimationFrame(\r\n                                    function () {\r\n                                        if (pageFlip) {\r\n                                            pageFlip.update();\r\n                                        }\r\n                                    }\r\n                                );\r\n                        }\r\n                    );\r\n\r\n                resizeObserver.observe(stage);\r\n            }\r\n\r\n        } catch (error) {\r\n            console.error(error);\r\n\r\n            showError(\r\n                \"Kh\u00f4ng m\u1edf \u0111\u01b0\u1ee3c PDF. H\u00e3y ki\u1ec3m tra URL PDF ho\u1eb7c c\u1ea5u h\u00ecnh m\u00e1y ch\u1ee7.\"\r\n            );\r\n        }\r\n    }\r\n\r\n\r\n    \/* ==========================================\r\n       N\u00daT TRANG TR\u01af\u1edaC\r\n    ========================================== *\/\r\n\r\n    previousButton.addEventListener(\r\n        \"click\",\r\n        async function () {\r\n            if (!pageFlip) {\r\n                return;\r\n            }\r\n\r\n            const currentIndex =\r\n                pageFlip.getCurrentPageIndex();\r\n\r\n            await Promise.all([\r\n                renderPage(currentIndex - 1),\r\n                renderPage(currentIndex)\r\n            ]);\r\n\r\n            pageFlip.flipPrev();\r\n        }\r\n    );\r\n\r\n\r\n    \/* ==========================================\r\n       N\u00daT TRANG SAU\r\n    ========================================== *\/\r\n\r\n    nextButton.addEventListener(\r\n        \"click\",\r\n        async function () {\r\n            if (!pageFlip) {\r\n                return;\r\n            }\r\n\r\n            const currentIndex =\r\n                pageFlip.getCurrentPageIndex();\r\n\r\n            await Promise.all([\r\n                renderPage(currentIndex + 2),\r\n                renderPage(currentIndex + 3),\r\n                renderPage(currentIndex + 4)\r\n            ]);\r\n\r\n            pageFlip.flipNext();\r\n        }\r\n    );\r\n\r\n\r\n    \/* ==========================================\r\n       TO\u00c0N M\u00c0N H\u00ccNH\r\n    ========================================== *\/\r\n\r\n    fullscreenButton.addEventListener(\r\n        \"click\",\r\n        async function () {\r\n            try {\r\n                if (!document.fullscreenElement) {\r\n                    await root.requestFullscreen();\r\n                } else {\r\n                    await document.exitFullscreen();\r\n                }\r\n\r\n                setTimeout(\r\n                    function () {\r\n                        if (pageFlip) {\r\n                            pageFlip.update();\r\n                        }\r\n                    },\r\n                    180\r\n                );\r\n\r\n            } catch (error) {\r\n                console.error(error);\r\n            }\r\n        }\r\n    );\r\n\r\n\r\n    \/* C\u1eadp nh\u1eadt sau khi tho\u00e1t to\u00e0n m\u00e0n h\u00ecnh *\/\r\n    document.addEventListener(\r\n        \"fullscreenchange\",\r\n        function () {\r\n            setTimeout(\r\n                function () {\r\n                    if (pageFlip) {\r\n                        pageFlip.update();\r\n                    }\r\n                },\r\n                180\r\n            );\r\n        }\r\n    );\r\n\r\n\r\n    \/* \u0110i\u1ec1u khi\u1ec3n b\u1eb1ng b\u00e0n ph\u00edm *\/\r\n    document.addEventListener(\r\n        \"keydown\",\r\n        function (event) {\r\n            if (!pageFlip) {\r\n                return;\r\n            }\r\n\r\n            if (event.key === \"ArrowLeft\") {\r\n                previousButton.click();\r\n            }\r\n\r\n            if (event.key === \"ArrowRight\") {\r\n                nextButton.click();\r\n            }\r\n        }\r\n    );\r\n\r\n\r\n    \/* B\u1eaft \u0111\u1ea7u t\u1ea3i *\/\r\n    loadPdf();\r\n\r\n})();\r\n<\/script>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\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>Loading Profile\u2026, please wait 5 seconds 0% \u2190 \u2014 \/ \u2014 \u2192 \u26f6<\/p>","protected":false},"author":3,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_angie_page":false,"_thinkrank_schema_form_data":"","_thinkrank_selected_schema_type":"","_thinkrank_additional_schemas":"","_thinkrank_canonical_url":"","_thinkrank_og_title":"","_thinkrank_og_description":"","_thinkrank_og_image":"","_thinkrank_twitter_title":"","_thinkrank_twitter_description":"","_thinkrank_twitter_image":"","_thinkrank_imported_from":"","_thinkrank_focus_keywords":[],"_thinkrank_focus_keyword":"","_thinkrank_robots_meta_enabled":0,"_thinkrank_robots_meta":"","_thinkrank_advanced_robots_meta":"","_thinkrank_primary_category":0,"footnotes":"","_yoast_wpseo_title":"","_yoast_wpseo_metadesc":"","_yoast_wpseo_focuskw":"","rank_math_title":"","rank_math_description":"","rank_math_focus_keyword":"","_aioseop_title":"","_aioseop_description":""},"class_list":["post-3668","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/datacons.com.vn\/en\/wp-json\/wp\/v2\/pages\/3668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/datacons.com.vn\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/datacons.com.vn\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/datacons.com.vn\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/datacons.com.vn\/en\/wp-json\/wp\/v2\/comments?post=3668"}],"version-history":[{"count":104,"href":"https:\/\/datacons.com.vn\/en\/wp-json\/wp\/v2\/pages\/3668\/revisions"}],"predecessor-version":[{"id":4357,"href":"https:\/\/datacons.com.vn\/en\/wp-json\/wp\/v2\/pages\/3668\/revisions\/4357"}],"wp:attachment":[{"href":"https:\/\/datacons.com.vn\/en\/wp-json\/wp\/v2\/media?parent=3668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}