Skip to content

Instantly share code, notes, and snippets.

@magikcypress
Last active November 28, 2024 12:24
Show Gist options
  • Save magikcypress/7f723ae96be1209b7c0c4e60d67c6db7 to your computer and use it in GitHub Desktop.
Save magikcypress/7f723ae96be1209b7c0c4e60d67c6db7 to your computer and use it in GitHub Desktop.
Webcomponent Qlik-embed redesign

HTML file

CSS class d-none to hide qlik-embed element (same about display: none)

<div class="qlik-embed-home d-none" id="qlik-embed-kpi1">
    <qlik-embed
        ui="analytics/chart"
        app-id="{{ APP_ID }}"
        object-id="{{ OBJECT_ID }}"
        id="kpi1"
    ></qlik-embed>
</div>

Javascript file

// Function to set up KPI
async function setupKpi(kpiId, displayId) {
    let kpiElement = document.getElementById(kpiId);
    const refApi = await kpiElement.getRefApi();
    const obj = await refApi.getObject();
    let displayElement = document.getElementById(displayId);

    let objLayout = await obj.getLayout();
    let data = objLayout.qHyperCube.qDataPages[0].qMatrix[0][0].qText;
    displayElement.innerHTML = `${data}`;

    obj.on('changed', async () => {
        objLayout = await obj.getLayout();
        data = objLayout.qHyperCube.qDataPages[0].qMatrix[0][0].qText;
        displayElement.innerHTML = `${data}`;
    });
}
    
// Call function
setupKpi('kpi1', 'kpi1-display');

// delete element to the DOM
const elementKPI1 = document.getElementById('qlik-embed-kpi1');
elementKPI1.remove();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment