<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Third party js library in mashup in ThingWorx Developers</title>
    <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029189#M70329</link>
    <description>&lt;P&gt;But you can see that the dymo.js is not fetched, so in the end you will have to create a widget to pull the script into the page context.&lt;/P&gt;</description>
    <pubDate>Wed, 13 Aug 2025 09:27:41 GMT</pubDate>
    <dc:creator>Rocko</dc:creator>
    <dc:date>2025-08-13T09:27:41Z</dc:date>
    <item>
      <title>Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029141#M70318</link>
      <description>&lt;P&gt;Hi everyone,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i have this third party software which i would like to connect with thingworx so my first test is that i have app.js, index.html and this javascript library which worked well locally in my computer and now i would like to do same thing in mashup.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;i am using valueDisplay widget in mashup and would like to render it in mashup. now my html is rendered properly and i can see it in mashup but i feel like i am unable to get app.js file and library js file in html.. I have uploaded all three files in the file repository.. i feel i am not accessing it right with repo link ....&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Anyone has some feedback, i would be happy to hear..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/dymosoftware/dymo-connect-framework?tab=readme-ov-file" target="_blank"&gt;https://github.com/dymosoftware/dymo-connect-framework?tab=readme-ov-file&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;&amp;lt;!doctype html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset="utf-8" /&amp;gt;
  &amp;lt;title&amp;gt;DYMO Connect Framework – ThingWorx&amp;lt;/title&amp;gt;
  &amp;lt;style&amp;gt;
    body { font-family: system-ui, Arial, sans-serif; margin: 24px; }
    button { margin-right: 8px; }
    #log { white-space: pre-wrap; font-family: ui-monospace, Consolas, monospace; }
    #preview { max-height: 180px; display: block; margin-top: 12px; }
  &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;h2&amp;gt;DYMO Connect Framework – Test&amp;lt;/h2&amp;gt;
  &amp;lt;div&amp;gt;
    &amp;lt;button id="btnEnv"&amp;gt;Check Environment&amp;lt;/button&amp;gt;
    &amp;lt;button id="btnList"&amp;gt;List Printers&amp;lt;/button&amp;gt;
    &amp;lt;button id="btnPreview"&amp;gt;Render Preview&amp;lt;/button&amp;gt;
    &amp;lt;button id="btnPrint"&amp;gt;Print&amp;lt;/button&amp;gt;
  &amp;lt;/div&amp;gt;
  &amp;lt;img id="preview" alt="Label preview will appear here" /&amp;gt;
  &amp;lt;h3&amp;gt;Log&amp;lt;/h3&amp;gt;
  &amp;lt;div id="log"&amp;gt;&amp;lt;/div&amp;gt;

  &amp;lt;!-- External scripts only --&amp;gt;
  &amp;lt;script src="/Thingworx/FileRepositories/TestBench.Repository/downLoadPicturesWithTimeRange/dymo.connect.framework.js"&amp;gt;&amp;lt;/script&amp;gt;
  &amp;lt;script src="/Thingworx/FileRepositories/TestBench.Repository/downLoadPicturesWithTimeRange/app.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;My vs code implementation is&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;index.html&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;!doctype html&amp;gt;
&amp;lt;html&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset="utf-8" /&amp;gt;
  &amp;lt;title&amp;gt;DYMO Connect Framework – Local Test&amp;lt;/title&amp;gt;
  &amp;lt;style&amp;gt;
    body { font-family: system-ui, Arial, sans-serif; margin: 24px; }
    button { margin-right: 8px; }
    #log { white-space: pre-wrap; font-family: ui-monospace, Consolas, monospace; }
    #preview { max-height: 180px; display: block; margin-top: 12px; }
  &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;h2&amp;gt;DYMO Connect Framework – Test&amp;lt;/h2&amp;gt;

  &amp;lt;div&amp;gt;
    &amp;lt;button id="btnEnv"&amp;gt;Check Environment&amp;lt;/button&amp;gt;
    &amp;lt;button id="btnList"&amp;gt;List Printers&amp;lt;/button&amp;gt;
    &amp;lt;button id="btnPreview"&amp;gt;Render Preview&amp;lt;/button&amp;gt;
    &amp;lt;button id="btnPrint"&amp;gt;Print&amp;lt;/button&amp;gt;
  &amp;lt;/div&amp;gt;

  &amp;lt;img id="preview" alt="Label preview will appear here" /&amp;gt;
  &amp;lt;h3&amp;gt;Log&amp;lt;/h3&amp;gt;
  &amp;lt;div id="log"&amp;gt;&amp;lt;/div&amp;gt;

 
  &amp;lt;script src="./dymo.connect.framework.js"&amp;gt;&amp;lt;/script&amp;gt;

  &amp;lt;script src="./app.js"&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;app.js&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="javascript"&gt;const $ = (sel) =&amp;gt; document.querySelector(sel);
const log = (msg) =&amp;gt; { console.log(msg); $('#log').textContent += msg + '\n'; };

(async function main() {
  try {
  
    await dymo.label.framework.init();
    log('Framework initialized');

   
    $('#btnEnv').addEventListener('click', () =&amp;gt; {
      try {
        const env = dymo.label.framework.checkEnvironment();
        log('Environment:\n' + JSON.stringify(env, null, 2));
      } catch (e) { log('checkEnvironment error: ' + e); }
    });

    $('#btnList').addEventListener('click', async () =&amp;gt; {
      try {
        const printers = await dymo.label.framework.getPrinters();
        log('Printers:\n' + JSON.stringify(printers, null, 2));
      } catch (e) { log('getPrinters error: ' + e); }
    });

    // A tiny sample label (Address 30252); adjust to match your label stock
    const sampleLabelXml = `
&amp;lt;DieCutLabel Version="8.0" Units="twips"&amp;gt;
  &amp;lt;PaperOrientation&amp;gt;Landscape&amp;lt;/PaperOrientation&amp;gt;
  &amp;lt;Id&amp;gt;Address&amp;lt;/Id&amp;gt;
  &amp;lt;PaperName&amp;gt;30252 Address&amp;lt;/PaperName&amp;gt;
  &amp;lt;DrawCommands/&amp;gt;
  &amp;lt;ObjectInfo&amp;gt;
    &amp;lt;TextObject&amp;gt;
      &amp;lt;Name&amp;gt;TEXT&amp;lt;/Name&amp;gt;
      &amp;lt;ForeColor Alpha="255" Red="0" Green="0" Blue="0"/&amp;gt;
      &amp;lt;BackColor Alpha="0" Red="255" Green="255" Blue="255"/&amp;gt;
      &amp;lt;LinkedObjectName/&amp;gt;
      &amp;lt;Rotation&amp;gt;Rotation0&amp;lt;/Rotation&amp;gt;
      &amp;lt;IsMirrored&amp;gt;False&amp;lt;/IsMirrored&amp;gt;
      &amp;lt;IsVariable&amp;gt;True&amp;lt;/IsVariable&amp;gt;
      &amp;lt;Text&amp;gt;DYMO Test\nHello World&amp;lt;/Text&amp;gt;
      &amp;lt;HorizontalAlignment&amp;gt;Center&amp;lt;/HorizontalAlignment&amp;gt;
      &amp;lt;VerticalAlignment&amp;gt;Middle&amp;lt;/VerticalAlignment&amp;gt;
      &amp;lt;TextFitMode&amp;gt;AlwaysFit&amp;lt;/TextFitMode&amp;gt;
    &amp;lt;/TextObject&amp;gt;
    &amp;lt;Bounds X="180" Y="120" Width="3060" Height="540"/&amp;gt;
  &amp;lt;/ObjectInfo&amp;gt;
&amp;lt;/DieCutLabel&amp;gt;`.trim();

    let label = null;

    $('#btnPreview').addEventListener('click', async () =&amp;gt; {
      try {
        label = dymo.label.framework.openLabelXml(sampleLabelXml);
        const png = await dymo.label.framework.renderLabel(sampleLabelXml, null, null);
        $('#preview').src='data&amp;amp;colon;image/png;base64,' + png;
        log('Preview rendered');
      } catch (e) { log('renderLabel error: ' + e); }
    });

    $('#btnPrint').addEventListener('click', async () =&amp;gt; {
      try {
        if (!label) label = dymo.label.framework.openLabelXml(sampleLabelXml);
        const printers = await dymo.label.framework.getPrinters();
        if (!printers.length) return log('No DYMO printers found');
        const printerName = printers[0].name;
        await dymo.label.framework.printLabel(printerName, null, sampleLabelXml, null);
        log('Printed on: ' + printerName);
      } catch (e) { log('printLabel error: ' + e); }
    });

  } catch (e) {
    log('Framework init failed. Is DYMO Connect running? ' + e);
  }
})();&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 05:28:20 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029141#M70318</guid>
      <dc:creator>MA8731174</dc:creator>
      <dc:date>2025-08-13T05:28:20Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029154#M70321</link>
      <description>&lt;P&gt;The sentence "i am using valueDisplay widget in mashup and would like to render it in mashup" does not make sense to me.&lt;/P&gt;
&lt;P&gt;There are two ways to render HTML: HTMLAreaWidget or WebFrame.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;WebFrame is just an IFrame to some other location.&lt;/P&gt;
&lt;P&gt;HTMLAreaWidget will not run javascript. It has a limited support for HTML tags and attributes, this was recently discussed in the forum.&lt;/P&gt;
&lt;P&gt;You will have to use a custom widget rendering a script tag to add the library (and app.js) to the page.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 06:24:40 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029154#M70321</guid>
      <dc:creator>Rocko</dc:creator>
      <dc:date>2025-08-13T06:24:40Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029156#M70322</link>
      <description>&lt;P&gt;Thanks for your reply. ValueDisplay widget let you also render your html in mashup. you can select property &lt;STRONG&gt;valueFormat&amp;nbsp;&lt;/STRONG&gt;and then can select there HTML. as you can see below&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MA8731174_0-1755066488806.png" style="width: 400px;"&gt;&lt;img src="https://www.ptcusercommunity.com/t5/image/serverpage/image-id/126950i1EFC4AD4A42029A8/image-size/medium?v=v2&amp;amp;px=400" role="button" title="MA8731174_0-1755066488806.png" alt="MA8731174_0-1755066488806.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;yes about htmlAreaWidget and WebFrame you are right. But just curious about valueDisplay widget that why it did not work ..may be also because of limited support.... i will give it a shot with custom widget in mashup.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 06:30:03 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029156#M70322</guid>
      <dc:creator>MA8731174</dc:creator>
      <dc:date>2025-08-13T06:30:03Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029161#M70323</link>
      <description>&lt;P&gt;Oh, the HTML render function, didn't think of that.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Maybe check the mashup debug console and the browser console to see&lt;/P&gt;
&lt;P&gt;-what is finally rendered&lt;/P&gt;
&lt;P&gt;-if the files are loading (F12-&amp;gt;Network)&lt;/P&gt;
&lt;P&gt;-which errors are thrown&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 06:56:14 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029161#M70323</guid>
      <dc:creator>Rocko</dc:creator>
      <dc:date>2025-08-13T06:56:14Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029181#M70326</link>
      <description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;So for testing i have made a simple html file and when u open it in browser and click button it gives you output on screen. Its working in browser but in thingworx it shows me html but it does not work. nothing is showing in console.log or network when i click the button..&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;!doctype html&amp;gt;
&amp;lt;html lang="en"&amp;gt;
&amp;lt;head&amp;gt;
  &amp;lt;meta charset="utf-8" /&amp;gt;
  &amp;lt;title&amp;gt;DYMO Mini Test&amp;lt;/title&amp;gt;
  &amp;lt;meta name="viewport" content="width=device-width, initial-scale=1" /&amp;gt;
  &amp;lt;style&amp;gt;
    body { font-family: system-ui, Arial, sans-serif; margin: 16px; }
    button { padding: 6px 10px; }
    pre { margin-top: 12px; font-size: 12px; white-space: pre-wrap; }
  &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;h3&amp;gt;DYMO Mini Test&amp;lt;/h3&amp;gt;
  &amp;lt;button id="btnInit"&amp;gt;Init &amp;amp; Check&amp;lt;/button&amp;gt;
  &amp;lt;pre id="out"&amp;gt;Click “Init &amp;amp; Check”.&amp;lt;/pre&amp;gt;

  &amp;lt;script&amp;gt;
    
   
     const SDK_src="https://qajavascriptsdktests.azurewebsites.net/JavaScript/dymo.connect.framework.js";

    function log(msg){ console.log("[DYMO]", msg); document.getElementById('out').textContent = String(msg); }
    function append(obj){
      const pre = document.getElementById('out');
      pre.textContent += "\n" + (typeof obj === "string" ? obj : JSON.stringify(obj, null, 2));
    }

    function loadSdkOnce(src){
      return new Promise(function(resolve, reject){
        if (window.dymo &amp;amp;&amp;amp; dymo.label &amp;amp;&amp;amp; dymo.label.framework) { resolve(); return; }
        const s = document.createElement("script");
        s.src=src;
        s.onload = resolve;
        s.onerror = (e) =&amp;gt; reject(new Error("DYMO SDK load failed: " + src));
        document.head.appendChild(s);
      });
    }

    async function initAndCheck(){
      await loadSdkOnce(SDK_SRC);
      log("SDK loaded. Calling init()…");
      await dymo.label.framework.init();
      const env = dymo.label.framework.checkEnvironment();
      append("\ncheckEnvironment():");
      append(env);
      const printers = (dymo.label.framework.getPrinters() || []).map(p =&amp;gt; p.name);
      append("\nPrinters:");
      append(printers.length ? printers : "(none)");
    }

    document.getElementById("btnInit").addEventListener("click", async () =&amp;gt; {
      console.log("testing testing ");
      try { await initAndCheck(); }
      catch (e) { log("Error: " + e.message); }
    });
  &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 08:58:44 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029181#M70326</guid>
      <dc:creator>MA8731174</dc:creator>
      <dc:date>2025-08-13T08:58:44Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029187#M70327</link>
      <description>&lt;P&gt;second experiment:&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;button onclick="(async()=&amp;gt;{try{
  if(!(window.dymo&amp;amp;&amp;amp;dymo.label&amp;amp;&amp;amp;dymo.label.framework)){
    await new Promise((res,rej)=&amp;gt;{
      var s=document.createElement('script');
      s.src='https://qajavascriptsdktests.azurewebsites.net/JavaScript/dymo.connect.framework.js';
      s.onload=res; s.onerror=()=&amp;gt;rej(new Error('SDK load failed'));
      document.head.appendChild(s);
    });
  }
  await dymo.label.framework.init();
  var env=dymo.label.framework.checkEnvironment();
  var out=document.getElementById('out'); if(out){ out.textContent='Init OK\n'+JSON.stringify(env,null,2); }
  console.log('DYMO env:', env);
})().catch(e=&amp;gt;{ alert('Error: '+e.message); console.error(e); })"&amp;gt;Init &amp;amp;amp; Check&amp;lt;/button&amp;gt;
&amp;lt;pre id="out" style="margin-top:12px;font-size:12px;white-space:pre-wrap;"&amp;gt;&amp;lt;/pre&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;in network tab.. bad request 400&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MA8731174_0-1755076222533.png" style="width: 400px;"&gt;&lt;img src="https://www.ptcusercommunity.com/t5/image/serverpage/image-id/126954iFDDCAEB94745D2DB/image-size/medium?v=v2&amp;amp;px=400" role="button" title="MA8731174_0-1755076222533.png" alt="MA8731174_0-1755076222533.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 09:10:50 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029187#M70327</guid>
      <dc:creator>MA8731174</dc:creator>
      <dc:date>2025-08-13T09:10:50Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029189#M70329</link>
      <description>&lt;P&gt;But you can see that the dymo.js is not fetched, so in the end you will have to create a widget to pull the script into the page context.&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 09:27:41 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029189#M70329</guid>
      <dc:creator>Rocko</dc:creator>
      <dc:date>2025-08-13T09:27:41Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029193#M70330</link>
      <description>&lt;P&gt;so i tried now with inline JS and not &amp;lt;&lt;STRONG&gt;script&lt;/STRONG&gt;&amp;gt; tag then it shows me results in console.log everytime i click&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;button onclick="(async()=&amp;gt;{try{
  if(!(window.dymo &amp;amp;&amp;amp; dymo.label &amp;amp;&amp;amp; dymo.label.framework)){
    await new Promise((res,rej)=&amp;gt;{
      const s=document.createElement('script');
      s.src='https://qajavascriptsdktests.azurewebsites.net/JavaScript/dymo.connect.framework.js';
      s.onload=res; s.onerror=()=&amp;gt;rej(new Error('SDK load failed'));
      document.head.appendChild(s);
    });
  }
  await dymo.label.framework.init();
  const env = dymo.label.framework.checkEnvironment();
  const out = document.getElementById('out');
  if(out) out.textContent = 'Init OK\n' + JSON.stringify(env, null, 2);
  console.log('DYMO env:', env);
} catch(e){
  alert('Error: ' + e.message);
  console.error(e);
}})()"&amp;gt;Init &amp;amp;amp; Check&amp;lt;/button&amp;gt;
&amp;lt;pre id="out" style="white-space:pre-wrap;font:12px system-ui"&amp;gt;&amp;lt;/pre&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;output in console.log&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MA8731174_0-1755077655078.png" style="width: 400px;"&gt;&lt;img src="https://www.ptcusercommunity.com/t5/image/serverpage/image-id/126955iC9173AD529800322/image-size/medium?v=v2&amp;amp;px=400" role="button" title="MA8731174_0-1755077655078.png" alt="MA8731174_0-1755077655078.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 09:34:47 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029193#M70330</guid>
      <dc:creator>MA8731174</dc:creator>
      <dc:date>2025-08-13T09:34:47Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029197#M70331</link>
      <description>&lt;P&gt;so finally it worked now in mashup with &lt;STRONG&gt;Valuedisplay&lt;/STRONG&gt; widget..&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;div id="dymoBox"&amp;gt;
  &amp;lt;button type="button" onclick="(async function(btn){try{
    if(!(window.dymo &amp;amp;&amp;amp; dymo.label &amp;amp;&amp;amp; dymo.label.framework)){
      await new Promise((res,rej)=&amp;gt;{
        const s=document.createElement('script');
        s.src='https://qajavascriptsdktests.azurewebsites.net/JavaScript/dymo.connect.framework.js';
        s.onload=res; s.onerror=()=&amp;gt;rej(new Error('SDK load failed'));
        document.head.appendChild(s);
      });
    }
    await dymo.label.framework.init();
    const env = dymo.label.framework.checkEnvironment();

    // get or create the output &amp;lt;pre&amp;gt;
    var out = document.getElementById('out');
    if(!out){
      out = document.createElement('pre');
      out.id = 'out';
      out.style.cssText = 'white-space:pre-wrap;font:12px system-ui;margin-top:8px;color:#111;';
      btn.parentNode.appendChild(out);           // append right under the button
    }
    out.textContent = 'Init OK\n' + JSON.stringify(env, null, 2);
    console.log('DYMO env:', env);
  }catch(e){
    alert('Error: ' + e.message);
    console.error(e);
  }})(this); return false;"&amp;gt;Init &amp;amp;amp; Check&amp;lt;/button&amp;gt;
&amp;lt;/div&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Mashup (when i click button- i get the expected output)&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MA8731174_1-1755078388825.png" style="width: 400px;"&gt;&lt;img src="https://www.ptcusercommunity.com/t5/image/serverpage/image-id/126956i8C74AE05AEB521E8/image-size/medium?v=v2&amp;amp;px=400" role="button" title="MA8731174_1-1755078388825.png" alt="MA8731174_1-1755078388825.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;browser console.log&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="MA8731174_2-1755079446641.png" style="width: 400px;"&gt;&lt;img src="https://www.ptcusercommunity.com/t5/image/serverpage/image-id/126960iF7CA64FADA104D0F/image-size/medium?v=v2&amp;amp;px=400" role="button" title="MA8731174_2-1755079446641.png" alt="MA8731174_2-1755079446641.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;IMPORTANT&lt;/STRONG&gt;:&amp;nbsp;the &lt;STRONG&gt;ValueDisplay&lt;/STRONG&gt; widget sanitizes &amp;lt;script&amp;gt; tags, so they don’t run. my inline onclick works because the click handler is allowed and executes in the page context.&lt;/P&gt;</description>
      <pubDate>Wed, 13 Aug 2025 10:04:18 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029197#M70331</guid>
      <dc:creator>MA8731174</dc:creator>
      <dc:date>2025-08-13T10:04:18Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029377#M70337</link>
      <description>&lt;P&gt;Hello,&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You probably want to wrap it in a ThingWorx UI extension, since you now have a working example you made for opening/closing popups.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;You can expose those DYMO methods like checkEnvironment, getPrinters, printLabel and renderLabel through your widget's Services -- this way you can make it all ThingWorx-native and implement configurable logic based on Expressions, ThingWorx backend services, etc., instead of hacking HTML.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;/ Constantine&lt;/P&gt;</description>
      <pubDate>Thu, 14 Aug 2025 08:44:09 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029377#M70337</guid>
      <dc:creator>Constantine</dc:creator>
      <dc:date>2025-08-14T08:44:09Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1030178#M70348</link>
      <description>&lt;P&gt;Hello &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://www.ptcusercommunity.com/t5/user/viewprofilepage/user-id/709891"&gt;@MA8731174&lt;/a&gt;&lt;/SPAN&gt;,&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;It looks like you have some &lt;A href="https://community.ptc.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1029377#M70337" target="_blank"&gt;responses&lt;/A&gt; from some community members. If any of these replies helped you solve your question please mark the appropriate reply as the Accepted Solution.&amp;nbsp;&lt;BR /&gt;Of course, if you have more to share on your issue, please let the Community know so other community members can continue to help you.&lt;BR /&gt;&lt;BR /&gt;Thanks,&lt;BR /&gt;Vivek N.&lt;BR /&gt;Community Moderation Team.&lt;/P&gt;</description>
      <pubDate>Wed, 20 Aug 2025 09:17:36 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1030178#M70348</guid>
      <dc:creator>vnamboodheri</dc:creator>
      <dc:date>2025-08-20T09:17:36Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1030193#M70351</link>
      <description>&lt;P&gt;Thanks for your suggestion and that was also my thought and i am pretty close now to finish it. I have one query regarding it. I have a .dymo label file stored in a ThingWorx File Repository. To read it, I created the following service:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;DIV class=""&gt;&lt;DIV class=""&gt;&lt;SPAN&gt;&lt;SPAN class=""&gt;let&lt;/SPAN&gt; result = &lt;SPAN class=""&gt;Things&lt;/SPAN&gt;[&lt;SPAN class=""&gt;"Dummy.Repository"&lt;/SPAN&gt;].&lt;SPAN class=""&gt;LoadText&lt;/SPAN&gt;({ &lt;SPAN class=""&gt;path&lt;/SPAN&gt;: &lt;SPAN class=""&gt;"/downLoadPicturesWithTimeRange/label.dymo"&lt;/SPAN&gt; });&lt;/SPAN&gt;&lt;/DIV&gt;&lt;DIV class=""&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/DIV&gt;&lt;P&gt;The service returns the file content as a &lt;STRONG&gt;string&lt;/STRONG&gt;.&lt;BR /&gt;When I directly paste this string content into my widget property (type = String), everything works fine.&lt;/P&gt;&lt;P&gt;However, when I &lt;STRONG&gt;bind the service output&lt;/STRONG&gt; to the same property (also of type String), the property value in my widget becomes undefined in the logs.&lt;/P&gt;&lt;P&gt;Am I missing something in the binding or service configuration that could explain this behavior?&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This service which returns this string of file get executed when onmashup load and output i have also bind to one textfield just to test that either it returns string expected output. everything is fine but still it makes this property undefined in logs which i bind it.&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Aug 2025 10:16:42 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1030193#M70351</guid>
      <dc:creator>MA8731174</dc:creator>
      <dc:date>2025-08-20T10:16:42Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1030196#M70352</link>
      <description>&lt;P&gt;ah! i found out same issue created in the past and it has resolved my issue&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&lt;A href="https://community.ptc.com/t5/ThingWorx-Developers/How-can-I-use-binded-data-on-Custom-Widget/td-p/527537" target="_blank"&gt;https://community.ptc.com/t5/ThingWorx-Developers/How-can-I-use-binded-data-on-Custom-Widget/td-p/527537&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 20 Aug 2025 10:42:49 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1030196#M70352</guid>
      <dc:creator>MA8731174</dc:creator>
      <dc:date>2025-08-20T10:42:49Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1030216#M70353</link>
      <description>&lt;HTML&gt;
 &lt;HEAD&gt;
 &lt;/HEAD&gt;&lt;BODY&gt;
  It’s hard to say without looking at your extension code, but just a shot in the dark — make sure you call setProperty() in your updateProperty callback.
  &lt;DIV&gt;
   &lt;BR /&gt;
   &lt;DIV&gt;
    Regards,
    &lt;DIV&gt;
     Constantine
    &lt;/DIV&gt;
   &lt;/DIV&gt;
  &lt;/DIV&gt;
 
&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 20 Aug 2025 12:00:37 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1030216#M70353</guid>
      <dc:creator>Constantine</dc:creator>
      <dc:date>2025-08-20T12:00:37Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1030353#M70356</link>
      <description>&lt;P&gt;Thingworx Extension for Software&amp;nbsp;Dymo Connect Framework:-&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;A href="https://github.com/Jamal8548/twx_dymo_extension" target="_blank"&gt;https://github.com/Jamal8548/twx_dymo_extension&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Thu, 21 Aug 2025 07:55:44 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1030353#M70356</guid>
      <dc:creator>MA8731174</dc:creator>
      <dc:date>2025-08-21T07:55:44Z</dc:date>
    </item>
    <item>
      <title>Re: Third party js library in mashup</title>
      <link>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1031371#M70416</link>
      <description>&lt;P&gt;Hi &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://www.ptcusercommunity.com/t5/user/viewprofilepage/user-id/709891"&gt;@MA8731174&lt;/a&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;If a response to this post allowed you to find a solution, please mark the appropriate one as the Accepted Solution for the benefit of others in the community.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Regards.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;--Sharon&lt;/P&gt;</description>
      <pubDate>Wed, 27 Aug 2025 20:30:41 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/ThingWorx-Developers/Third-party-js-library-in-mashup/m-p/1031371#M70416</guid>
      <dc:creator>slangley</dc:creator>
      <dc:date>2025-08-27T20:30:41Z</dc:date>
    </item>
  </channel>
</rss>

