@citolab/qti-components 6.9.1-beta.36 → 6.9.1-beta.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-4DJXUJDE.js +24 -0
- package/dist/custom-elements.json +155 -155
- package/dist/qti-components/index.js +1 -1
- package/dist/qti-loader/index.js +1 -1
- package/dist/qti-transformers/index.d.ts +9 -75
- package/dist/qti-transformers/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-H5LB6SRI.js +0 -24
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
var f=String.raw,b=()=>{let e,n={async load(t,s=!1){return new Promise((r,o)=>{u(t,s).then(i=>(e=i,r(n)))})},parse(t){return e=p(t),n},path:t=>(y(e,t),n),fn(t){return t(e),n},pciHooks(t){let s=["hook","module"],r=t.substring(0,t.lastIndexOf("/"));for(let o of s)e.querySelectorAll("["+o+"]").forEach(a=>{let m=a.getAttribute(o);!m.startsWith("data:")&&!m.startsWith("http")&&(a.setAttribute("base-url",t),a.setAttribute("module",r+"/"+encodeURI(m+(m.endsWith(".js")?"":".js"))))});return n},customTypes:(t="type")=>{let s=(r,o)=>{let i=document.createElement(o);return[...r.attributes].forEach(a=>i.setAttribute(a.name,a.value)),i.append(...r.childNodes),i};e.querySelectorAll("*").forEach(r=>{[...r.classList].filter(o=>o.startsWith(`${t}:`)).forEach(o=>{let i=`${r.nodeName}-${o.slice(t.length).toUpperCase()}`;r.replaceWith(s(r,i))})})},customInteraction(t,s){let r=e.querySelector("qti-custom-interaction"),o=r.querySelector("object");return r.setAttribute("data-base-ref",t),r.setAttribute("data-base-item",t+s),r.setAttribute("data",o.getAttribute("data")),r.setAttribute("width",o.getAttribute("width")),r.setAttribute("height",o.getAttribute("height")),r.removeChild(o),n},convertCDATAtoComment(){return d(e),n},stripStyleSheets(){return x(e),n},html(){return new XMLSerializer().serializeToString(c(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return c(e)},xmldoc(){return e}};return n},A=()=>{let e,n={async load(t){return new Promise((s,r)=>{u(t).then(o=>(e=o,s(n)))})},parse(t){e=p(t)},assessmentTest(){let t=e.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:t.getAttribute("href"),identifier:t.getAttribute("identifier")}}};return n},T=()=>{let e,n={async load(t){return new Promise((s,r)=>{u(t).then(o=>(e=o,s(n)))})},parse(t){return e=p(t),n},fn(t){return t(e),n},items(){return h(e)},html(){return new XMLSerializer().serializeToString(c(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return c(e)},xmldoc(){return e}};return n},g=f`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
2
|
+
<xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
|
|
3
|
+
<xsl:template match="@*|node()">
|
|
4
|
+
<xsl:copy>
|
|
5
|
+
<xsl:apply-templates select="@*|node()"/>
|
|
6
|
+
</xsl:copy>
|
|
7
|
+
</xsl:template>
|
|
8
|
+
|
|
9
|
+
<!-- remove existing namespaces -->
|
|
10
|
+
<xsl:template match="*">
|
|
11
|
+
<!-- remove element prefix -->
|
|
12
|
+
<xsl:element name="{local-name()}">
|
|
13
|
+
<!-- process attributes -->
|
|
14
|
+
<xsl:for-each select="@*">
|
|
15
|
+
<!-- remove attribute prefix -->
|
|
16
|
+
<xsl:attribute name="{local-name()}">
|
|
17
|
+
<xsl:value-of select="."/>
|
|
18
|
+
</xsl:attribute>
|
|
19
|
+
</xsl:for-each>
|
|
20
|
+
<xsl:apply-templates/>
|
|
21
|
+
</xsl:element>
|
|
22
|
+
</xsl:template>
|
|
23
|
+
</xsl:stylesheet>`;function h(e){let n=[];return e.querySelectorAll("qti-assessment-item-ref").forEach(t=>{let s=t.getAttribute("identifier"),r=t.getAttribute("href"),o=t.getAttribute("category");n.push({identifier:s,href:r,category:o})}),n}var l=null;function u(e,n=!0){return n&&l!==null&&l.abort(),new Promise((t,s)=>{let r=new XMLHttpRequest;l=r,r.open("GET",e,!0),r.responseType="document",r.onload=()=>{r.status>=200&&r.status<300?t(r.responseXML):s(r.statusText)},r.onerror=()=>{s(r.statusText)},r.send()})}function p(e){return new DOMParser().parseFromString(e,"text/xml")}function c(e){let n=new XSLTProcessor,t=new DOMParser().parseFromString(g,"text/xml");return n.importStylesheet(t),n.transformToFragment(e,document)}function y(e,n){n.endsWith("/")||(n+="/"),e.querySelectorAll("[src],[href],[primary-path]").forEach(t=>{var o;let s="";t.getAttribute("src")&&(s="src"),t.getAttribute("href")&&(s="href"),t.getAttribute("primary-path")&&(s="primary-path");let r=(o=t.getAttribute(s))==null?void 0:o.trim();if(!r.startsWith("data:")&&!r.startsWith("http")){let i=n+encodeURI(r);t.setAttribute(s,i)}})}function d(e){e.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(t=>{let s=document.createComment(t.textContent);t.replaceChild(s,t.firstChild)})}function x(e){e.querySelectorAll("qti-stylesheet").forEach(n=>n.remove())}export{b as a,A as b,T as c};
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xpYi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm1lcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IHhtbCA9IFN0cmluZy5yYXc7XG5cbi8qKlxuICogQnJvd3NlciBiYXNlZCBRVEktWE1MIHRvIEhUTUwgdHJhbnNmb3JtZXIuXG4gKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UsIHRyYW5zZm9ybSBhbmQgc2VyaWFsaXplIFFUSSBYTUwgaXRlbXMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlLCB0cmFuc2Zvcm0gYW5kIHNlcmlhbGl6ZSBRVEkgWE1MIGl0ZW1zLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHF0aVRyYW5zZm9ybWVyID0gcXRpVHJhbnNmb3JtSXRlbSgpO1xuICogYXdhaXQgcXRpVHJhbnNmb3JtZXIubG9hZCgncGF0aC90by94bWwvZmlsZS54bWwnKTtcbiAqIHF0aVRyYW5zZm9ybWVyLnBhdGgoJy9hc3Nlc3NtZW50SXRlbS9pdGVtQm9keScpO1xuICogY29uc3QgaHRtbCA9IHF0aVRyYW5zZm9ybWVyLmh0bWwoKTtcbiAqIGNvbnN0IHhtbCA9IHF0aVRyYW5zZm9ybWVyLnhtbCgpO1xuICogY29uc3QgaHRtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLmh0bWxkb2MoKTtcbiAqIGNvbnN0IHhtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLnhtbGRvYygpO1xuICpcbiAqIHF0aVRyYW5zZm9ybUl0ZW0oKS5wYXJzZShzdG9yeVhNTCkuaHRtbCgpXG4gKi9cblxuZXhwb3J0IGNvbnN0IHF0aVRyYW5zZm9ybUl0ZW0gPSAoKToge1xuICBsb2FkOiAodXJpOiBzdHJpbmcsIGNhbmNlbFByZXZpb3VzUmVxdWVzdD86IGJvb2xlYW4pID0+IFByb21pc2U8dHlwZW9mIGFwaT47XG4gIHBhcnNlOiAoeG1sU3RyaW5nOiBzdHJpbmcpID0+IHR5cGVvZiBhcGk7XG4gIHBhdGg6IChsb2NhdGlvbjogc3RyaW5nKSA9PiB0eXBlb2YgYXBpO1xuICBmbjogKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSA9PiB0eXBlb2YgYXBpO1xuICBwY2lIb29rczogKHVyaTogc3RyaW5nKSA9PiB0eXBlb2YgYXBpO1xuICBjdXN0b21UeXBlczogKHBhcmFtOiBzdHJpbmcpID0+IHR5cGVvZiBhcGk7XG4gIGN1c3RvbUludGVyYWN0aW9uOiAoYmFzZVJlZjogc3RyaW5nLCBiYXNlSXRlbTogc3RyaW5nKSA9PiB0eXBlb2YgYXBpO1xuICBjb252ZXJ0Q0RBVEF0b0NvbW1lbnQ6ICgpID0+IHR5cGVvZiBhcGk7XG4gIHN0cmlwU3R5bGVTaGVldHM6ICgpID0+IHR5cGVvZiBhcGk7XG4gIGh0bWw6ICgpID0+IHN0cmluZztcbiAgeG1sOiAoKSA9PiBzdHJpbmc7XG4gIGh0bWxkb2M6ICgpID0+IERvY3VtZW50RnJhZ21lbnQ7XG4gIHhtbGRvYzogKCkgPT4gWE1MRG9jdW1lbnQ7XG59ID0+IHtcbiAgbGV0IHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudDtcblxuICBjb25zdCBhcGkgPSB7XG4gICAgYXN5bmMgbG9hZCh1cmk6IHN0cmluZywgY2FuY2VsUHJldmlvdXNSZXF1ZXN0ID0gZmFsc2UpIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx0eXBlb2YgYXBpPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxvYWRYTUwodXJpLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QpLnRoZW4oeG1sID0+IHtcbiAgICAgICAgICB4bWxGcmFnbWVudCA9IHhtbDtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShhcGkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcGFyc2UoeG1sU3RyaW5nOiBzdHJpbmcpOiB0eXBlb2YgYXBpIHtcbiAgICAgIHhtbEZyYWdtZW50ID0gcGFyc2VYTUwoeG1sU3RyaW5nKTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBwYXRoOiAobG9jYXRpb246IHN0cmluZyk6IHR5cGVvZiBhcGkgPT4ge1xuICAgICAgc2V0TG9jYXRpb24oeG1sRnJhZ21lbnQsIGxvY2F0aW9uKTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBmbihmbjogKHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudCkgPT4gdm9pZCk6IHR5cGVvZiBhcGkge1xuICAgICAgZm4oeG1sRnJhZ21lbnQpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIHBjaUhvb2tzKHVyaTogc3RyaW5nKTogdHlwZW9mIGFwaSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVzID0gWydob29rJywgJ21vZHVsZSddO1xuICAgICAgY29uc3QgZG9jdW1lbnRQYXRoID0gdXJpLnN1YnN0cmluZygwLCB1cmkubGFzdEluZGV4T2YoJy8nKSk7XG4gICAgICBmb3IgKGNvbnN0IGF0dHJpYnV0ZSBvZiBhdHRyaWJ1dGVzKSB7XG4gICAgICAgIGNvbnN0IHNyY0F0dHJpYnV0ZXMgPSB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbJyArIGF0dHJpYnV0ZSArICddJyk7XG4gICAgICAgIHNyY0F0dHJpYnV0ZXMuZm9yRWFjaChub2RlID0+IHtcbiAgICAgICAgICBjb25zdCBzcmNWYWx1ZSA9IG5vZGUuZ2V0QXR0cmlidXRlKGF0dHJpYnV0ZSkhO1xuICAgICAgICAgIGlmICghc3JjVmFsdWUuc3RhcnRzV2l0aCgnZGF0YTonKSAmJiAhc3JjVmFsdWUuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgICAvLyBKdXN0IHBhc3RlIHRoZSByZWxhdGl2ZSBwYXRoIG9mIHRoZSBzcmMgbG9jYXRpb24gYWZ0ZXIgdGhlIGRvY3VtZW50cm9vdFBhdGhcbiAgICAgICAgICAgIC8vIG9sZCBwY2lzIGNhbiBoYXZlIGEgLmpzLCBuZXcgcGNpJ3MgZG9uJ3RcbiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKCdiYXNlLXVybCcsIHVyaSk7XG4gICAgICAgICAgICBub2RlLnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgJ21vZHVsZScsXG4gICAgICAgICAgICAgIGRvY3VtZW50UGF0aCArICcvJyArIGVuY29kZVVSSShzcmNWYWx1ZSArIChzcmNWYWx1ZS5lbmRzV2l0aCgnLmpzJykgPyAnJyA6ICcuanMnKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBjdXN0b21UeXBlczogKHBhcmFtOiBzdHJpbmcgPSAndHlwZScpOiB0eXBlb2YgYXBpID0+IHtcbiAgICAgIGNvbnN0IGNyZWF0ZUVsZW1lbnRXaXRoTmV3VGFnTmFtZSA9IChlbGVtZW50LCBuZXdUYWdOYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld0VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG5ld1RhZ05hbWUpO1xuICAgICAgICBbLi4uZWxlbWVudC5hdHRyaWJ1dGVzXS5mb3JFYWNoKGF0dHIgPT4gbmV3RWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0ci5uYW1lLCBhdHRyLnZhbHVlKSk7XG4gICAgICAgIG5ld0VsZW1lbnQuYXBwZW5kKC4uLmVsZW1lbnQuY2hpbGROb2Rlcyk7XG4gICAgICAgIHJldHVybiBuZXdFbGVtZW50O1xuICAgICAgfTtcblxuICAgICAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgnKicpLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgIFsuLi5lbGVtZW50LmNsYXNzTGlzdF1cbiAgICAgICAgICAuZmlsdGVyKGNscyA9PiBjbHMuc3RhcnRzV2l0aChgJHtwYXJhbX06YCkpXG4gICAgICAgICAgLmZvckVhY2goY2xzID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5ld1RhZ05hbWUgPSBgJHtlbGVtZW50Lm5vZGVOYW1lfS0ke2Nscy5zbGljZShwYXJhbS5sZW5ndGgpLnRvVXBwZXJDYXNlKCl9YDtcbiAgICAgICAgICAgIGVsZW1lbnQucmVwbGFjZVdpdGgoY3JlYXRlRWxlbWVudFdpdGhOZXdUYWdOYW1lKGVsZW1lbnQsIG5ld1RhZ05hbWUpKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgY3VzdG9tSW50ZXJhY3Rpb24oYmFzZVJlZjogc3RyaW5nLCBiYXNlSXRlbTogc3RyaW5nKTogdHlwZW9mIGFwaSB7XG4gICAgICBjb25zdCBxdGlDdXN0b21JbnRlcmFjdGlvbiA9IHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3IoJ3F0aS1jdXN0b20taW50ZXJhY3Rpb24nKTtcbiAgICAgIGNvbnN0IHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0ID0gcXRpQ3VzdG9tSW50ZXJhY3Rpb24ucXVlcnlTZWxlY3Rvcignb2JqZWN0Jyk7XG5cbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnZGF0YS1iYXNlLXJlZicsIGJhc2VSZWYpO1xuICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24uc2V0QXR0cmlidXRlKCdkYXRhLWJhc2UtaXRlbScsIGJhc2VSZWYgKyBiYXNlSXRlbSk7XG4gICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5zZXRBdHRyaWJ1dGUoJ2RhdGEnLCBxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdC5nZXRBdHRyaWJ1dGUoJ2RhdGEnKSk7XG4gICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5zZXRBdHRyaWJ1dGUoJ3dpZHRoJywgcXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QuZ2V0QXR0cmlidXRlKCd3aWR0aCcpKTtcbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnaGVpZ2h0JywgcXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKSk7XG5cbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnJlbW92ZUNoaWxkKHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBjb252ZXJ0Q0RBVEF0b0NvbW1lbnQoKTogdHlwZW9mIGFwaSB7XG4gICAgICBjb252ZXJ0Q0RBVEF0b0NvbW1lbnQoeG1sRnJhZ21lbnQpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIHN0cmlwU3R5bGVTaGVldHMoKTogdHlwZW9mIGFwaSB7XG4gICAgICBzdHJpcFN0eWxlU2hlZXRzKHhtbEZyYWdtZW50KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBodG1sKCkge1xuICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcodG9IVE1MKHhtbEZyYWdtZW50KSk7XG4gICAgfSxcbiAgICB4bWwoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIGh0bWxkb2MoKSB7XG4gICAgICByZXR1cm4gdG9IVE1MKHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIHhtbGRvYygpOiBYTUxEb2N1bWVudCB7XG4gICAgICByZXR1cm4geG1sRnJhZ21lbnQ7IC8vIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoeG1sRnJhZ21lbnQpO1xuICAgIH1cbiAgfTtcbiAgcmV0dXJuIGFwaTtcbn07XG5cbmV4cG9ydCBjb25zdCBxdGlUcmFuc2Zvcm1NYW5pZmVzdCA9ICgpOiB7XG4gIGxvYWQ6ICh1cmk6IHN0cmluZykgPT4gUHJvbWlzZTx0eXBlb2YgYXBpPjtcbiAgYXNzZXNzbWVudFRlc3Q6ICgpID0+IHsgaHJlZjogc3RyaW5nOyBpZGVudGlmaWVyOiBzdHJpbmcgfTtcbn0gPT4ge1xuICBsZXQgeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50O1xuXG4gIGNvbnN0IGFwaSA9IHtcbiAgICBhc3luYyBsb2FkKHVyaSkge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHR5cGVvZiBhcGk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbG9hZFhNTCh1cmkpLnRoZW4oeG1sID0+IHtcbiAgICAgICAgICB4bWxGcmFnbWVudCA9IHhtbDtcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShhcGkpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgcGFyc2UoeG1sU3RyaW5nOiBzdHJpbmcpIHtcbiAgICAgIHhtbEZyYWdtZW50ID0gcGFyc2VYTUwoeG1sU3RyaW5nKTtcbiAgICB9LFxuICAgIGFzc2Vzc21lbnRUZXN0KCkge1xuICAgICAgY29uc3QgZWwgPSB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yKCdyZXNvdXJjZVt0eXBlPVwiaW1zcXRpX3Rlc3RfeG1sdjNwMFwiXScpO1xuICAgICAgcmV0dXJuIHsgaHJlZjogZWwuZ2V0QXR0cmlidXRlKCdocmVmJyksIGlkZW50aWZpZXI6IGVsLmdldEF0dHJpYnV0ZSgnaWRlbnRpZmllcicpIH07XG4gICAgfVxuICB9O1xuICByZXR1cm4gYXBpO1xufTtcblxuLyoqXG4gKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UgYW5kIHRyYW5zZm9ybSBRVEkgdGVzdHMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlIGFuZCB0cmFuc2Zvcm0gUVRJIHRlc3RzLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHF0aVRyYW5zZm9ybWVyID0gcXRpVHJhbnNmb3JtVGVzdCgpO1xuICogYXdhaXQgcXRpVHJhbnNmb3JtZXIubG9hZCgnaHR0cHM6Ly9leGFtcGxlLmNvbS90ZXN0LnhtbCcpO1xuICogY29uc3QgaXRlbXMgPSBxdGlUcmFuc2Zvcm1lci5pdGVtcygpO1xuICogY29uc3QgaHRtbCA9IHF0aVRyYW5zZm9ybWVyLmh0bWwoKTtcbiAqIGNvbnN0IHhtbCA9IHF0aVRyYW5zZm9ybWVyLnhtbCgpO1xuICovXG5leHBvcnQgY29uc3QgcXRpVHJhbnNmb3JtVGVzdCA9ICgpOiB7XG4gIGxvYWQ6ICh1cmk6IHN0cmluZykgPT4gUHJvbWlzZTx0eXBlb2YgYXBpPjtcbiAgcGFyc2U6ICh4bWxTdHJpbmc6IHN0cmluZykgPT4gdHlwZW9mIGFwaTtcbiAgZm46IChmbjogKHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudCkgPT4gdm9pZCkgPT4gdHlwZW9mIGFwaTtcbiAgaXRlbXM6ICgpID0+IHsgaWRlbnRpZmllcjogc3RyaW5nOyBocmVmOiBzdHJpbmc7IGNhdGVnb3J5OiBzdHJpbmcgfVtdO1xuICBodG1sOiAoKSA9PiBzdHJpbmc7XG4gIHhtbDogKCkgPT4gc3RyaW5nO1xuICBodG1sZG9jOiAoKSA9PiBEb2N1bWVudEZyYWdtZW50O1xuICB4bWxkb2M6ICgpID0+IFhNTERvY3VtZW50O1xufSA9PiB7XG4gIGxldCB4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQ7XG5cbiAgY29uc3QgYXBpID0ge1xuICAgIGFzeW5jIGxvYWQodXJpKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8dHlwZW9mIGFwaT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsb2FkWE1MKHVyaSkudGhlbih4bWwgPT4ge1xuICAgICAgICAgIHhtbEZyYWdtZW50ID0geG1sO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGFwaSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBwYXJzZSh4bWxTdHJpbmc6IHN0cmluZykge1xuICAgICAgeG1sRnJhZ21lbnQgPSBwYXJzZVhNTCh4bWxTdHJpbmcpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGZuKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSB7XG4gICAgICBmbih4bWxGcmFnbWVudCk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgaXRlbXMoKSB7XG4gICAgICByZXR1cm4gaXRlbXNGcm9tVGVzdCh4bWxGcmFnbWVudCk7XG4gICAgfSxcbiAgICBodG1sKCkge1xuICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcodG9IVE1MKHhtbEZyYWdtZW50KSk7XG4gICAgfSxcbiAgICB4bWwoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIGh0bWxkb2MoKSB7XG4gICAgICByZXR1cm4gdG9IVE1MKHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIHhtbGRvYygpOiBYTUxEb2N1bWVudCB7XG4gICAgICByZXR1cm4geG1sRnJhZ21lbnQ7XG4gICAgfVxuICB9O1xuICByZXR1cm4gYXBpO1xufTtcblxuLyogICA8IS0tIGNvbnZlcnQgQ0RBVEEgdG8gY29tbWVudHMgLS0+XG4gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9XCJ0ZXh0KClbY29udGFpbnMoLiwgJ0NEQVRBJyldXCI+XG4gIDx4c2w6Y29tbWVudD5cbiAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD1cIi5cIi8+XG4gIDwveHNsOmNvbW1lbnQ+XG48L3hzbDp0ZW1wbGF0ZT5cbiovXG5cbi8qXG4gIDwhLS0gcmVtb3ZlIHhtbCBjb21tZW50cyAtLT5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cImNvbW1lbnQoKVwiIC8+XG4gICovXG5cbmNvbnN0IHhtbFRvSFRNTCA9IHhtbGA8eHNsOnN0eWxlc2hlZXQgdmVyc2lvbj1cIjEuMFwiIHhtbG5zOnhzbD1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkvWFNML1RyYW5zZm9ybVwiPlxuPHhzbDpvdXRwdXQgbWV0aG9kPVwiaHRtbFwiIHZlcnNpb249XCI1LjBcIiBlbmNvZGluZz1cIlVURi04XCIgaW5kZW50PVwieWVzXCIgLz5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cIkAqfG5vZGUoKVwiPlxuICAgIDx4c2w6Y29weT5cbiAgICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzIHNlbGVjdD1cIkAqfG5vZGUoKVwiLz5cbiAgICA8L3hzbDpjb3B5PlxuICA8L3hzbDp0ZW1wbGF0ZT5cblxuICA8IS0tIHJlbW92ZSBleGlzdGluZyBuYW1lc3BhY2VzIC0tPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiKlwiPlxuICAgIDwhLS0gcmVtb3ZlIGVsZW1lbnQgcHJlZml4IC0tPlxuICAgIDx4c2w6ZWxlbWVudCBuYW1lPVwie2xvY2FsLW5hbWUoKX1cIj5cbiAgICAgIDwhLS0gcHJvY2VzcyBhdHRyaWJ1dGVzIC0tPlxuICAgICAgPHhzbDpmb3ItZWFjaCBzZWxlY3Q9XCJAKlwiPlxuICAgICAgICA8IS0tIHJlbW92ZSBhdHRyaWJ1dGUgcHJlZml4IC0tPlxuICAgICAgICA8eHNsOmF0dHJpYnV0ZSBuYW1lPVwie2xvY2FsLW5hbWUoKX1cIj5cbiAgICAgICAgICA8eHNsOnZhbHVlLW9mIHNlbGVjdD1cIi5cIi8+XG4gICAgICAgIDwveHNsOmF0dHJpYnV0ZT5cbiAgICAgIDwveHNsOmZvci1lYWNoPlxuICAgIDx4c2w6YXBwbHktdGVtcGxhdGVzLz5cbiAgPC94c2w6ZWxlbWVudD5cbjwveHNsOnRlbXBsYXRlPlxuPC94c2w6c3R5bGVzaGVldD5gO1xuXG5mdW5jdGlvbiBpdGVtc0Zyb21UZXN0KHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50KSB7XG4gIGNvbnN0IGl0ZW1zOiB7IGlkZW50aWZpZXI6IHN0cmluZzsgaHJlZjogc3RyaW5nOyBjYXRlZ29yeTogc3RyaW5nIH1bXSA9IFtdO1xuICB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdxdGktYXNzZXNzbWVudC1pdGVtLXJlZicpLmZvckVhY2goZWwgPT4ge1xuICAgIGNvbnN0IGlkZW50aWZpZXIgPSBlbC5nZXRBdHRyaWJ1dGUoJ2lkZW50aWZpZXInKTtcbiAgICBjb25zdCBocmVmID0gZWwuZ2V0QXR0cmlidXRlKCdocmVmJyk7XG4gICAgY29uc3QgY2F0ZWdvcnkgPSBlbC5nZXRBdHRyaWJ1dGUoJ2NhdGVnb3J5Jyk7XG4gICAgaXRlbXMucHVzaCh7IGlkZW50aWZpZXIsIGhyZWYsIGNhdGVnb3J5IH0pO1xuICB9KTtcbiAgcmV0dXJuIGl0ZW1zO1xufVxuXG5sZXQgY3VycmVudFJlcXVlc3Q6IFhNTEh0dHBSZXF1ZXN0IHwgbnVsbCA9IG51bGw7XG5cbmZ1bmN0aW9uIGxvYWRYTUwodXJsLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QgPSB0cnVlKSB7XG4gIGlmIChjYW5jZWxQcmV2aW91c1JlcXVlc3QgJiYgY3VycmVudFJlcXVlc3QgIT09IG51bGwpIHtcbiAgICBjdXJyZW50UmVxdWVzdC5hYm9ydCgpOyAvLyBBYm9ydCB0aGUgb25nb2luZyByZXF1ZXN0IGlmIHRoZXJlIGlzIG9uZVxuICB9XG5cbiAgcmV0dXJuIG5ldyBQcm9taXNlPFhNTERvY3VtZW50IHwgbnVsbD4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIGNvbnN0IHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpO1xuICAgIGN1cnJlbnRSZXF1ZXN0ID0geGhyOyAvLyBTdG9yZSB0aGUgY3VycmVudCByZXF1ZXN0XG5cbiAgICB4aHIub3BlbignR0VUJywgdXJsLCB0cnVlKTtcbiAgICB4aHIucmVzcG9uc2VUeXBlID0gJ2RvY3VtZW50JztcblxuICAgIHhoci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICBpZiAoeGhyLnN0YXR1cyA+PSAyMDAgJiYgeGhyLnN0YXR1cyA8IDMwMCkge1xuICAgICAgICByZXNvbHZlKHhoci5yZXNwb25zZVhNTCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZWplY3QoeGhyLnN0YXR1c1RleHQpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB4aHIub25lcnJvciA9ICgpID0+IHtcbiAgICAgIHJlamVjdCh4aHIuc3RhdHVzVGV4dCk7XG4gICAgfTtcblxuICAgIHhoci5zZW5kKCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBwYXJzZVhNTCh4bWxEb2N1bWVudDogc3RyaW5nKSB7XG4gIGNvbnN0IHBhcnNlciA9IG5ldyBET01QYXJzZXIoKTtcbiAgY29uc3QgeG1sRnJhZ21lbnQgPSBwYXJzZXIucGFyc2VGcm9tU3RyaW5nKHhtbERvY3VtZW50LCAndGV4dC94bWwnKTtcbiAgcmV0dXJuIHhtbEZyYWdtZW50O1xufVxuXG5mdW5jdGlvbiB0b0hUTUwoeG1sRnJhZ21lbnQ6IERvY3VtZW50KTogRG9jdW1lbnRGcmFnbWVudCB7XG4gIGNvbnN0IHByb2Nlc3NvciA9IG5ldyBYU0xUUHJvY2Vzc29yKCk7XG4gIGNvbnN0IHhzbHREb2N1bWVudCA9IG5ldyBET01QYXJzZXIoKS5wYXJzZUZyb21TdHJpbmcoeG1sVG9IVE1MLCAndGV4dC94bWwnKTtcbiAgcHJvY2Vzc29yLmltcG9ydFN0eWxlc2hlZXQoeHNsdERvY3VtZW50KTtcbiAgY29uc3QgaXRlbUhUTUxGcmFnbWVudCA9IHByb2Nlc3Nvci50cmFuc2Zvcm1Ub0ZyYWdtZW50KHhtbEZyYWdtZW50LCBkb2N1bWVudCk7XG4gIHJldHVybiBpdGVtSFRNTEZyYWdtZW50O1xufVxuXG5mdW5jdGlvbiBzZXRMb2NhdGlvbih4bWxGcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCwgbG9jYXRpb246IHN0cmluZykge1xuICBpZiAoIWxvY2F0aW9uLmVuZHNXaXRoKCcvJykpIHtcbiAgICBsb2NhdGlvbiArPSAnLyc7XG4gIH1cblxuICB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbc3JjXSxbaHJlZl0sW3ByaW1hcnktcGF0aF0nKS5mb3JFYWNoKGVsV2l0aFNyYyA9PiB7XG4gICAgbGV0IGF0dHI6ICdzcmMnIHwgJ2hyZWYnIHwgJ3ByaW1hcnktcGF0aCcgfCAnJyA9ICcnO1xuXG4gICAgaWYgKGVsV2l0aFNyYy5nZXRBdHRyaWJ1dGUoJ3NyYycpKSB7XG4gICAgICBhdHRyID0gJ3NyYyc7XG4gICAgfVxuICAgIGlmIChlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKCdocmVmJykpIHtcbiAgICAgIGF0dHIgPSAnaHJlZic7XG4gICAgfVxuICAgIGlmIChlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKCdwcmltYXJ5LXBhdGgnKSkge1xuICAgICAgYXR0ciA9ICdwcmltYXJ5LXBhdGgnO1xuICAgIH1cbiAgICBjb25zdCBhdHRyVmFsdWUgPSBlbFdpdGhTcmMuZ2V0QXR0cmlidXRlKGF0dHIpPy50cmltKCk7XG5cbiAgICBpZiAoIWF0dHJWYWx1ZS5zdGFydHNXaXRoKCdkYXRhOicpICYmICFhdHRyVmFsdWUuc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICBjb25zdCBuZXdTcmNWYWx1ZSA9IGxvY2F0aW9uICsgZW5jb2RlVVJJKGF0dHJWYWx1ZSk7XG4gICAgICBlbFdpdGhTcmMuc2V0QXR0cmlidXRlKGF0dHIsIG5ld1NyY1ZhbHVlKTtcbiAgICB9XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBjb252ZXJ0Q0RBVEF0b0NvbW1lbnQoeG1sRnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQpIHtcbiAgY29uc3QgY2RhdGFFbGVtZW50cyA9IHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3F0aS1jdXN0b20tb3BlcmF0b3JbY2xhc3M9XCJqcy5vcmdcIl0gPiBxdGktYmFzZS12YWx1ZScpO1xuICBjZGF0YUVsZW1lbnRzLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgY29uc3QgY29tbWVudFRleHQgPSBkb2N1bWVudC5jcmVhdGVDb21tZW50KGVsZW1lbnQudGV4dENvbnRlbnQpO1xuICAgIGVsZW1lbnQucmVwbGFjZUNoaWxkKGNvbW1lbnRUZXh0LCBlbGVtZW50LmZpcnN0Q2hpbGQpO1xuICB9KTtcbn1cblxuZnVuY3Rpb24gc3RyaXBTdHlsZVNoZWV0cyh4bWxGcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCkge1xuICAvLyByZW1vdmUgcXRpLXN0eWxlc2hlZXQgdGFnXG4gIHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3F0aS1zdHlsZXNoZWV0JykuZm9yRWFjaChzdHlsZXNoZWV0ID0+IHN0eWxlc2hlZXQucmVtb3ZlKCkpO1xufVxuIl0sCiAgIm1h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VSxFQUFpQjdCLEVBQStCLENBRXZEQSxFQUFZLGlCQUFpQixnQkFBZ0IsRUFBRSxRQUFRbUQsR0FBY0EsRUFBVyxPQUFPLENBQUMsQ0FDMUYiLAogICJuYW1lcyI6IFsieG1sIiwgInF0aVRyYW5zZm9ybUl0ZW0iLCAieG1sRnJhZ21lbnQiLCAiYXBpIiwgInVyaSIsICJjYW5jZWxQcmV2aW91c1JlcXVlc3QiLCAicmVzb2x2ZSIsICJyZWplY3QiLCAibG9hZFhNTCIsICJ4bWxTdHJpbmciLCAicGFyc2VYTUwiLCAibG9jYXRpb24iLCAic2V0TG9jYXRpb24iLCAiZm4iLCAiYXR0cmlidXRlcyIsICJkb2N1bWVudFBhdGgiLCAiYXR0cmlidXRlIiwgIm5vZGUiLCAic3JjVmFsdWUiLCAicGFyYW0iLCAiY3JlYXRlRWxlbWVudFdpdGhOZXdUYWdOYW1lIiwgImVsZW1lbnQiLCAibmV3VGFnTmFtZSIsICJuZXdFbGVtZW50IiwgImF0dHIiLCAiY2xzIiwgImJhc2VSZWYiLCAiYmFzZUl0ZW0iLCAicXRpQ3VzdG9tSW50ZXJhY3Rpb24iLCAicXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QiLCAiY29udmVydENEQVRBdG9Db21tZW50IiwgInN0cmlwU3R5bGVTaGVldHMiLCAidG9IVE1MIiwgInF0aVRyYW5zZm9ybU1hbmlmZXN0IiwgImVsIiwgInF0aVRyYW5zZm9ybVRlc3QiLCAiaXRlbXNGcm9tVGVzdCIsICJ4bWxUb0hUTUwiLCAiaXRlbXMiLCAiaWRlbnRpZmllciIsICJocmVmIiwgImNhdGVnb3J5IiwgImN1cnJlbnRSZXF1ZXN0IiwgInVybCIsICJ4aHIiLCAieG1sRG9jdW1lbnQiLCAicHJvY2Vzc29yIiwgInhzbHREb2N1bWVudCIsICJlbFdpdGhTcmMiLCAiX2EiLCAiYXR0clZhbHVlIiwgIm5ld1NyY1ZhbHVlIiwgImNvbW1lbnRUZXh0IiwgInN0eWxlc2hlZXQiXQp9Cg==
|
|
@@ -96,161 +96,6 @@
|
|
|
96
96
|
}
|
|
97
97
|
]
|
|
98
98
|
},
|
|
99
|
-
{
|
|
100
|
-
"kind": "javascript-module",
|
|
101
|
-
"path": "src/lib/qti-item/index.ts",
|
|
102
|
-
"declarations": [],
|
|
103
|
-
"exports": [
|
|
104
|
-
{
|
|
105
|
-
"kind": "js",
|
|
106
|
-
"name": "*",
|
|
107
|
-
"declaration": {
|
|
108
|
-
"name": "*",
|
|
109
|
-
"package": "./qti-item"
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
"kind": "js",
|
|
114
|
-
"name": "*",
|
|
115
|
-
"declaration": {
|
|
116
|
-
"name": "*",
|
|
117
|
-
"package": "./qti-item.mixin"
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
]
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
"kind": "javascript-module",
|
|
124
|
-
"path": "src/lib/qti-item/qti-item.mixin.ts",
|
|
125
|
-
"declarations": [
|
|
126
|
-
{
|
|
127
|
-
"kind": "mixin",
|
|
128
|
-
"description": "",
|
|
129
|
-
"name": "QtiItemMixin",
|
|
130
|
-
"members": [],
|
|
131
|
-
"events": [
|
|
132
|
-
{
|
|
133
|
-
"name": "qti-item-connected",
|
|
134
|
-
"type": {
|
|
135
|
-
"text": "CustomEvent"
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
],
|
|
139
|
-
"attributes": [
|
|
140
|
-
{
|
|
141
|
-
"name": "identifier",
|
|
142
|
-
"type": {
|
|
143
|
-
"text": "string | undefined"
|
|
144
|
-
},
|
|
145
|
-
"fieldName": "identifier"
|
|
146
|
-
},
|
|
147
|
-
{
|
|
148
|
-
"name": "href",
|
|
149
|
-
"type": {
|
|
150
|
-
"text": "string | undefined"
|
|
151
|
-
},
|
|
152
|
-
"fieldName": "href"
|
|
153
|
-
}
|
|
154
|
-
],
|
|
155
|
-
"parameters": [
|
|
156
|
-
{
|
|
157
|
-
"name": "Base",
|
|
158
|
-
"type": {
|
|
159
|
-
"text": "T"
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
]
|
|
163
|
-
}
|
|
164
|
-
],
|
|
165
|
-
"exports": [
|
|
166
|
-
{
|
|
167
|
-
"kind": "js",
|
|
168
|
-
"name": "QtiItemMixin",
|
|
169
|
-
"declaration": {
|
|
170
|
-
"name": "QtiItemMixin",
|
|
171
|
-
"module": "src/lib/qti-item/qti-item.mixin.ts"
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
]
|
|
175
|
-
},
|
|
176
|
-
{
|
|
177
|
-
"kind": "javascript-module",
|
|
178
|
-
"path": "src/lib/qti-item/qti-item.ts",
|
|
179
|
-
"declarations": [
|
|
180
|
-
{
|
|
181
|
-
"kind": "class",
|
|
182
|
-
"description": "",
|
|
183
|
-
"name": "QtiItem",
|
|
184
|
-
"mixins": [
|
|
185
|
-
{
|
|
186
|
-
"name": "QtiItemMixin",
|
|
187
|
-
"module": "/src/lib/qti-item/qti-item.mixin"
|
|
188
|
-
}
|
|
189
|
-
],
|
|
190
|
-
"superclass": {
|
|
191
|
-
"name": "LitElement",
|
|
192
|
-
"package": "lit"
|
|
193
|
-
},
|
|
194
|
-
"tagName": "qti-item",
|
|
195
|
-
"customElement": true,
|
|
196
|
-
"attributes": [
|
|
197
|
-
{
|
|
198
|
-
"name": "identifier",
|
|
199
|
-
"type": {
|
|
200
|
-
"text": "string | undefined"
|
|
201
|
-
},
|
|
202
|
-
"fieldName": "identifier",
|
|
203
|
-
"inheritedFrom": {
|
|
204
|
-
"name": "QtiItemMixin",
|
|
205
|
-
"module": "src/lib/qti-item/qti-item.mixin.ts"
|
|
206
|
-
}
|
|
207
|
-
},
|
|
208
|
-
{
|
|
209
|
-
"name": "href",
|
|
210
|
-
"type": {
|
|
211
|
-
"text": "string | undefined"
|
|
212
|
-
},
|
|
213
|
-
"fieldName": "href",
|
|
214
|
-
"inheritedFrom": {
|
|
215
|
-
"name": "QtiItemMixin",
|
|
216
|
-
"module": "src/lib/qti-item/qti-item.mixin.ts"
|
|
217
|
-
}
|
|
218
|
-
}
|
|
219
|
-
],
|
|
220
|
-
"members": [],
|
|
221
|
-
"events": [
|
|
222
|
-
{
|
|
223
|
-
"name": "qti-item-connected",
|
|
224
|
-
"type": {
|
|
225
|
-
"text": "CustomEvent"
|
|
226
|
-
},
|
|
227
|
-
"inheritedFrom": {
|
|
228
|
-
"name": "QtiItemMixin",
|
|
229
|
-
"module": "src/lib/qti-item/qti-item.mixin.ts"
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
]
|
|
233
|
-
}
|
|
234
|
-
],
|
|
235
|
-
"exports": [
|
|
236
|
-
{
|
|
237
|
-
"kind": "js",
|
|
238
|
-
"name": "QtiItem",
|
|
239
|
-
"declaration": {
|
|
240
|
-
"name": "QtiItem",
|
|
241
|
-
"module": "src/lib/qti-item/qti-item.ts"
|
|
242
|
-
}
|
|
243
|
-
},
|
|
244
|
-
{
|
|
245
|
-
"kind": "custom-element-definition",
|
|
246
|
-
"name": "qti-item",
|
|
247
|
-
"declaration": {
|
|
248
|
-
"name": "QtiItem",
|
|
249
|
-
"module": "src/lib/qti-item/qti-item.ts"
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
]
|
|
253
|
-
},
|
|
254
99
|
{
|
|
255
100
|
"kind": "javascript-module",
|
|
256
101
|
"path": "src/lib/qti-components/index.ts",
|
|
@@ -682,6 +527,161 @@
|
|
|
682
527
|
}
|
|
683
528
|
]
|
|
684
529
|
},
|
|
530
|
+
{
|
|
531
|
+
"kind": "javascript-module",
|
|
532
|
+
"path": "src/lib/qti-item/index.ts",
|
|
533
|
+
"declarations": [],
|
|
534
|
+
"exports": [
|
|
535
|
+
{
|
|
536
|
+
"kind": "js",
|
|
537
|
+
"name": "*",
|
|
538
|
+
"declaration": {
|
|
539
|
+
"name": "*",
|
|
540
|
+
"package": "./qti-item"
|
|
541
|
+
}
|
|
542
|
+
},
|
|
543
|
+
{
|
|
544
|
+
"kind": "js",
|
|
545
|
+
"name": "*",
|
|
546
|
+
"declaration": {
|
|
547
|
+
"name": "*",
|
|
548
|
+
"package": "./qti-item.mixin"
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
]
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
"kind": "javascript-module",
|
|
555
|
+
"path": "src/lib/qti-item/qti-item.mixin.ts",
|
|
556
|
+
"declarations": [
|
|
557
|
+
{
|
|
558
|
+
"kind": "mixin",
|
|
559
|
+
"description": "",
|
|
560
|
+
"name": "QtiItemMixin",
|
|
561
|
+
"members": [],
|
|
562
|
+
"events": [
|
|
563
|
+
{
|
|
564
|
+
"name": "qti-item-connected",
|
|
565
|
+
"type": {
|
|
566
|
+
"text": "CustomEvent"
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
],
|
|
570
|
+
"attributes": [
|
|
571
|
+
{
|
|
572
|
+
"name": "identifier",
|
|
573
|
+
"type": {
|
|
574
|
+
"text": "string | undefined"
|
|
575
|
+
},
|
|
576
|
+
"fieldName": "identifier"
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"name": "href",
|
|
580
|
+
"type": {
|
|
581
|
+
"text": "string | undefined"
|
|
582
|
+
},
|
|
583
|
+
"fieldName": "href"
|
|
584
|
+
}
|
|
585
|
+
],
|
|
586
|
+
"parameters": [
|
|
587
|
+
{
|
|
588
|
+
"name": "Base",
|
|
589
|
+
"type": {
|
|
590
|
+
"text": "T"
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
]
|
|
594
|
+
}
|
|
595
|
+
],
|
|
596
|
+
"exports": [
|
|
597
|
+
{
|
|
598
|
+
"kind": "js",
|
|
599
|
+
"name": "QtiItemMixin",
|
|
600
|
+
"declaration": {
|
|
601
|
+
"name": "QtiItemMixin",
|
|
602
|
+
"module": "src/lib/qti-item/qti-item.mixin.ts"
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
]
|
|
606
|
+
},
|
|
607
|
+
{
|
|
608
|
+
"kind": "javascript-module",
|
|
609
|
+
"path": "src/lib/qti-item/qti-item.ts",
|
|
610
|
+
"declarations": [
|
|
611
|
+
{
|
|
612
|
+
"kind": "class",
|
|
613
|
+
"description": "",
|
|
614
|
+
"name": "QtiItem",
|
|
615
|
+
"mixins": [
|
|
616
|
+
{
|
|
617
|
+
"name": "QtiItemMixin",
|
|
618
|
+
"module": "/src/lib/qti-item/qti-item.mixin"
|
|
619
|
+
}
|
|
620
|
+
],
|
|
621
|
+
"superclass": {
|
|
622
|
+
"name": "LitElement",
|
|
623
|
+
"package": "lit"
|
|
624
|
+
},
|
|
625
|
+
"tagName": "qti-item",
|
|
626
|
+
"customElement": true,
|
|
627
|
+
"attributes": [
|
|
628
|
+
{
|
|
629
|
+
"name": "identifier",
|
|
630
|
+
"type": {
|
|
631
|
+
"text": "string | undefined"
|
|
632
|
+
},
|
|
633
|
+
"fieldName": "identifier",
|
|
634
|
+
"inheritedFrom": {
|
|
635
|
+
"name": "QtiItemMixin",
|
|
636
|
+
"module": "src/lib/qti-item/qti-item.mixin.ts"
|
|
637
|
+
}
|
|
638
|
+
},
|
|
639
|
+
{
|
|
640
|
+
"name": "href",
|
|
641
|
+
"type": {
|
|
642
|
+
"text": "string | undefined"
|
|
643
|
+
},
|
|
644
|
+
"fieldName": "href",
|
|
645
|
+
"inheritedFrom": {
|
|
646
|
+
"name": "QtiItemMixin",
|
|
647
|
+
"module": "src/lib/qti-item/qti-item.mixin.ts"
|
|
648
|
+
}
|
|
649
|
+
}
|
|
650
|
+
],
|
|
651
|
+
"members": [],
|
|
652
|
+
"events": [
|
|
653
|
+
{
|
|
654
|
+
"name": "qti-item-connected",
|
|
655
|
+
"type": {
|
|
656
|
+
"text": "CustomEvent"
|
|
657
|
+
},
|
|
658
|
+
"inheritedFrom": {
|
|
659
|
+
"name": "QtiItemMixin",
|
|
660
|
+
"module": "src/lib/qti-item/qti-item.mixin.ts"
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
]
|
|
664
|
+
}
|
|
665
|
+
],
|
|
666
|
+
"exports": [
|
|
667
|
+
{
|
|
668
|
+
"kind": "js",
|
|
669
|
+
"name": "QtiItem",
|
|
670
|
+
"declaration": {
|
|
671
|
+
"name": "QtiItem",
|
|
672
|
+
"module": "src/lib/qti-item/qti-item.ts"
|
|
673
|
+
}
|
|
674
|
+
},
|
|
675
|
+
{
|
|
676
|
+
"kind": "custom-element-definition",
|
|
677
|
+
"name": "qti-item",
|
|
678
|
+
"declaration": {
|
|
679
|
+
"name": "QtiItem",
|
|
680
|
+
"module": "src/lib/qti-item/qti-item.ts"
|
|
681
|
+
}
|
|
682
|
+
}
|
|
683
|
+
]
|
|
684
|
+
},
|
|
685
685
|
{
|
|
686
686
|
"kind": "javascript-module",
|
|
687
687
|
"path": "src/lib/qti-loader/index.ts",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Dt}from"../chunk-
|
|
1
|
+
import{a as Dt}from"../chunk-4DJXUJDE.js";import{a as b,b as C,c as n}from"../chunk-NYAUPIAG.js";import{provide as hr}from"@lit/context";import{LitElement as fr,html as gr}from"lit";import{customElement as br,property as K}from"lit/decorators.js";function x(c,i){let e=b({waitUntilFirstUpdate:!1},i);return(t,r)=>{let{update:s}=t,o=Array.isArray(c)?c:[c];t.update=function(a){o.forEach(l=>{let p=l;if(a.has(p)){let d=a.get(p),u=this[p];d!==u&&(!e.waitUntilFirstUpdate||this.hasUpdated)&&this[r](d,u)}}),s.call(this,a)}}}import{createContext as mr}from"@lit/context";var Ht=[{identifier:"completionStatus",cardinality:"single",baseType:"string",value:"unknown",type:"outcome"},{identifier:"numAttempts",cardinality:"single",baseType:"integer",value:"0",type:"response"}],L=mr("item");var q=class extends fr{constructor(){super();this.identifier="";this.adaptive="false";this.timeDependent=null;this._handleDisabledChange=(e,t)=>{this._interactionElements.forEach(r=>r.disabled=t)};this._handleReadonlyChange=(e,t)=>this._interactionElements.forEach(r=>r.readonly=t);this._context={identifier:this.getAttribute("identifier"),variables:Ht};this._initialContext=C(b({},this._context),{variables:this._context.variables});this._feedbackElements=[];this._interactionElements=[];this.addEventListener("qti-register-variable",e=>{this._context=C(b({},this._context),{variables:[...this._context.variables,e.detail.variable]}),this._initialContext=this._context,e.stopPropagation()}),this.addEventListener("qti-register-feedback",e=>{e.stopPropagation();let t=e.detail;this._feedbackElements.push(t),t.checkShowFeedback(t.outcomeIdentifier)}),this.addEventListener("qti-register-interaction",e=>{e.stopPropagation(),this._interactionElements.push(e.target)}),this.addEventListener("end-attempt",e=>{let{responseIdentifier:t,countAttempt:r}=e.detail;this.updateResponseVariable(t,"true"),this.processResponse(r)}),this.addEventListener("qti-set-outcome-value",e=>{let{outcomeIdentifier:t,value:r}=e.detail;this.updateOutcomeVariable(t,r),e.stopPropagation()}),this.addEventListener("qti-interaction-response",this.handleUpdateResponseVariable)}get variables(){return this._context.variables.map(e=>b({identifier:e.identifier,value:e.value,type:e.type},e.type==="outcome"&&e.identifier==="SCORE"?{externalScored:e.externalScored}:{}))}set variables(e){if(!Array.isArray(e)||e.some(t=>!("identifier"in t))){console.warn("variables property should be an array of VariableDeclaration");return}this._context=C(b({},this._context),{variables:this._context.variables.map(t=>{let r=e.find(s=>s.identifier===t.identifier);return r?b(b({},t),r):t})}),this._context.variables.forEach(t=>{if(t.type==="response"){let r=this._interactionElements.find(s=>s.responseIdentifier===t.identifier);r&&(r.response=t.value)}t.type==="outcome"&&this._feedbackElements.forEach(r=>r.checkShowFeedback(t.identifier))})}async connectedCallback(){super.connectedCallback(),await this.updateComplete,this._emit("qti-assessment-item-connected",this)}set responses(e){if(e)for(let t of e){this.getResponse(t.responseIdentifier)&&this.updateResponseVariable(t.responseIdentifier,t.response);let s=this._interactionElements.find(o=>o.getAttribute("response-identifier")===t.responseIdentifier);s&&(s.response=t.response)}}render(){return gr`<slot></slot>`}showCorrectResponse(e){let r=this._context.variables.filter(s=>"correctResponse"in s&&s.correctResponse).map(s=>({responseIdentifier:s.identifier,response:s.correctResponse}));for(let s of r){let o=this._interactionElements.find(a=>a.getAttribute("response-identifier")===s.responseIdentifier);o&&(o.correctResponse=e?s.response:"")}}processResponse(e=!0){var r;let t=this.querySelector("qti-response-processing");return!t||!t.process?!1:(t.process(),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus()),e&&this.updateOutcomeVariable("numAttempts",(+((r=this._context.variables.find(s=>s.identifier==="numAttempts"))==null?void 0:r.value)+1).toString()),this._emit("qti-response-processed"),!0)}resetResponses(){this._context=this._initialContext}getResponse(e){return this.getVariable(e)}getOutcome(e){return this.getVariable(e)}getVariable(e){return this._context.variables.find(t=>t.identifier===e)||null}handleUpdateResponseVariable(e){let{responseIdentifier:t,response:r}=e.detail;this.updateResponseVariable(t,r)}updateResponseVariable(e,t){this._context=C(b({},this._context),{variables:this._context.variables.map(r=>r.identifier!==e?r:C(b({},r),{value:t}))}),this._emit("qti-interaction-changed",{item:this.identifier,responseIdentifier:e,response:Array.isArray(t)?[...t]:t}),this.adaptive==="false"&&this.updateOutcomeVariable("completionStatus",this._getCompletionStatus())}updateOutcomeVariable(e,t){var s;let r=this.getOutcome(e);if(!r){console.warn(`Can not set qti-outcome-identifier: ${e}, it is not available`);return}this._context=C(b({},this._context),{variables:this._context.variables.map(o=>o.identifier!==e?o:C(b({},o),{value:r.cardinality==="single"?t:[...o.value,t]}))}),this._feedbackElements.forEach(o=>o.checkShowFeedback(e)),this._emit("qti-outcome-changed",{item:this.identifier,outcomeIdentifier:e,value:(s=this._context.variables.find(o=>o.identifier===e))==null?void 0:s.value})}_getCompletionStatus(){return this._interactionElements.every(e=>e.validate())?"completed":this._interactionElements.some(e=>e.validate())?"incomplete":"not_attempted"}_emit(e,t=null){this.dispatchEvent(new CustomEvent(e,{bubbles:!0,composed:!0,detail:t}))}};n([K({type:String})],q.prototype,"title",2),n([K({type:String})],q.prototype,"identifier",2),n([K({type:String})],q.prototype,"adaptive",2),n([K({type:String})],q.prototype,"timeDependent",2),n([K({type:Boolean})],q.prototype,"disabled",2),n([x("disabled",{waitUntilFirstUpdate:!0})],q.prototype,"_handleDisabledChange",2),n([K({type:Boolean})],q.prototype,"readonly",2),n([x("readonly",{waitUntilFirstUpdate:!0})],q.prototype,"_handleReadonlyChange",2),n([hr({context:L})],q.prototype,"_context",2),q=n([br("qti-assessment-item")],q);import{LitElement as vr}from"lit";import{customElement as yr,property as Nt}from"lit/decorators.js";var W=class extends vr{constructor(){super(...arguments);this.identifier="";this.href=""}async connectedCallback(){super.connectedCallback();let e=new Event("qti-assessment-stimulus-ref-connected",{cancelable:!0,bubbles:!0});if(this.dispatchEvent(e)){let s=this.closest("qti-assessment-item").querySelector(`[data-stimulus-idref=${this.identifier}]`);s?await this.updateStimulusRef(s):console.warn(`Stimulus with data-stimulus-idref ${this.identifier} not found`)}}async updateStimulusRef(e){let t=this.href.substring(0,this.href.lastIndexOf("/")),r=await Dt().load(this.href).then(s=>s.path(t).htmldoc());if(r){let s=r.querySelectorAll("qti-stimulus-body, qti-stylesheet");e.innerHTML="",e.append(...s)}}};n([Nt({type:String})],W.prototype,"identifier",2),n([Nt({type:String})],W.prototype,"href",2),W=n([yr("qti-assessment-stimulus-ref")],W);import{html as xr}from"lit";import{property as Ae}from"lit/decorators.js";var Vt={toAttribute:c=>c?"true":"false",fromAttribute:c=>c==="true"};function R(c,i){class e extends c{constructor(...s){super(...s);this.identifier="";this.tabIndex=0;this.disabled=!1;this.readonly=!1;this._internals=this.attachInternals()}handleDisabledChange(s,o){this.tabIndex=o?-1:0,o&&this.blur()}setInternalState(s,o){o&&!this._internals.states.has(s)?this._internals.states.add(s):!o&&this._internals.states.has(s)&&this._internals.states.delete(s)}connectedCallback(){super.connectedCallback(),this.addEventListener("keyup",this._onKeyUp),this.addEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`register-${i}`,{bubbles:!0,composed:!0}))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keyup",this._onKeyUp),this.removeEventListener("click",this._onClick),this.dispatchEvent(new CustomEvent(`unregister-${i}`,{bubbles:!0,composed:!0}))}_onKeyUp(s){s.altKey||s.code==="Space"&&(s.preventDefault(),this._activate())}_onClick(){this.disabled||this.readonly||(this.focus(),this._activate())}_activate(){this.disabled||this.readonly||this.dispatchEvent(new CustomEvent(`activate-${i}`,{bubbles:!0,composed:!0,detail:{identifier:this.identifier}}))}render(){return xr`<slot></slot>`}}return n([Ae({type:String})],e.prototype,"identifier",2),n([Ae({type:Number,reflect:!0,attribute:"tabindex"})],e.prototype,"tabIndex",2),n([Ae({type:Boolean,reflect:!0,attribute:"aria-disabled",converter:Vt})],e.prototype,"disabled",2),n([Ae({type:Boolean,reflect:!0,attribute:"aria-readonly",converter:Vt})],e.prototype,"readonly",2),n([x("disabled",{waitUntilFirstUpdate:!0})],e.prototype,"handleDisabledChange",1),e}import{customElement as Cr}from"lit/decorators.js";import{html as qr,LitElement as Tr}from"lit";import{css as Er}from"lit";var $t=Er`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
}
|
package/dist/qti-loader/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as c,b as h,c as m}from"../chunk-
|
|
1
|
+
import{a as c,b as h,c as m}from"../chunk-4DJXUJDE.js";import"../chunk-NYAUPIAG.js";var l=t=>t.endsWith("/")?t:`${t}/`,g=async(t,e,n=!0)=>{let a=l(t),i=await h().load(`${a}imsmanifest.xml`).then(s=>s.assessmentTest()),f=await m().load(`${a}${i.href}`).then(s=>s.items()),r=`${a}${i.href.substring(0,i.href.lastIndexOf("/"))}/${f[e].href}`,o=await c().load(r,n).then(s=>s.path(r.substring(0,r.lastIndexOf("/"))).stripStyleSheets());return{itemHTMLDoc:o.htmldoc(),itemHTML:o.html(),items:f}},$=async t=>{let e=l(t),n=await h().load(`${e}imsmanifest.xml`).then(s=>s.assessmentTest()),a=await m().load(`${e}${n.href}`).then(s=>s.htmldoc()),i=await m().load(`${e}${n.href}`).then(s=>s.items()),r=`${e.substring(0,e.lastIndexOf("/"))}/${n.href.substring(0,n.href.lastIndexOf("/"))}`,o=`${r}/${i[0].href.substring(0,i[0].href.lastIndexOf("/"))}`;return{assessmentXML:a,itemLocation:o,assessmentLocation:r,items:i,testIdentifier:n.identifier}},x=async(t,e=!0)=>c().load(t,e).then(n=>n.path(t.substring(0,t.lastIndexOf("/"))).stripStyleSheets().html());export{$ as getAssessmentData,g as getItemByIndex,x as getItemByUri};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vLi4vc3JjL2xpYi9xdGktbG9hZGVyL3F0aS1sb2FkZXIudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHF0aVRyYW5zZm9ybUl0ZW0sIHF0aVRyYW5zZm9ybU1hbmlmZXN0LCBxdGlUcmFuc2Zvcm1UZXN0IH0gZnJvbSAnLi4vcXRpLXRyYW5zZm9ybWVycyc7XG5cbmV4cG9ydCB0eXBlIE1hbmlmZXN0RGF0YSA9IHtcbiAgaXRlbUxvY2F0aW9uOiBzdHJpbmc7XG4gIHRlc3RJZGVudGlmaWVyOiBzdHJpbmc7XG4gIGFzc2Vzc21lbnRYTUw6IERvY3VtZW50RnJhZ21lbnQ7XG4gIGFzc2Vzc21lbnRMb2NhdGlvbjogc3RyaW5nO1xuICBpdGVtczoge1xuICAgICAgaWRlbnRpZmllcjogc3RyaW5nO1xuICAgICAgaHJlZjogc3RyaW5nO1xuICAgICAgY2F0ZWdvcnk6IHN0cmluZztcbiAgfVtdO1xufTtcblxuLy8gVXRpbGl0eSBmdW5jdGlvbiB0byBlbnN1cmUgcGFja2FnZSBVUklzIGVuZCB3aXRoIGEgJy8nXG5jb25zdCBub3JtYWxpemVVcmkgPSAodXJpOiBzdHJpbmcpID0+ICh1cmkuZW5kc1dpdGgoJy8nKSA/IHVyaSA6IGAke3VyaX0vYCk7XG5cbi8vIEZldGNoZXMgYW4gaXRlbSBmcm9tIGEgbWFuaWZlc3QgYnkgaW5kZXhcbmV4cG9ydCBjb25zdCBnZXRJdGVtQnlJbmRleCA9IGFzeW5jIChwYWNrYWdlVXJpOiBzdHJpbmcsIGluZGV4OiBudW1iZXIsIGNhbmNlbFByZXZpb3VzUmVxdWVzdCA9IHRydWUpOiBQcm9taXNlPGFueT4gPT4ge1xuICBjb25zdCBub3JtYWxpemVkVXJpID0gbm9ybWFsaXplVXJpKHBhY2thZ2VVcmkpO1xuXG4gIGNvbnN0IHRlc3QgPSBhd2FpdCBxdGlUcmFuc2Zvcm1NYW5pZmVzdCgpXG4gICAgLmxvYWQoYCR7bm9ybWFsaXplZFVyaX1pbXNtYW5pZmVzdC54bWxgKVxuICAgIC50aGVuKGFwaSA9PiBhcGkuYXNzZXNzbWVudFRlc3QoKSk7XG5cbiAgY29uc3QgaXRlbXMgPSBhd2FpdCBxdGlUcmFuc2Zvcm1UZXN0KClcbiAgICAubG9hZChgJHtub3JtYWxpemVkVXJpfSR7dGVzdC5ocmVmfWApXG4gICAgLnRoZW4oYXBpID0+IGFwaS5pdGVtcygpKTtcblxuICBjb25zdCBpdGVtVXJpID0gYCR7bm9ybWFsaXplZFVyaX0ke3Rlc3QuaHJlZi5zdWJzdHJpbmcoMCwgdGVzdC5ocmVmLmxhc3RJbmRleE9mKCcvJykpfS8ke2l0ZW1zW2luZGV4XS5ocmVmfWA7XG5cbiAgY29uc3QgaXRlbURvYyA9IGF3YWl0IHF0aVRyYW5zZm9ybUl0ZW0oKVxuICAgIC5sb2FkKGl0ZW1VcmksIGNhbmNlbFByZXZpb3VzUmVxdWVzdClcbiAgICAudGhlbihhcGkgPT4gYXBpLnBhdGgoaXRlbVVyaS5zdWJzdHJpbmcoMCwgaXRlbVVyaS5sYXN0SW5kZXhPZignLycpKSkuc3RyaXBTdHlsZVNoZWV0cygpKTtcblxuICByZXR1cm4ge1xuICAgIGl0ZW1IVE1MRG9jOiBpdGVtRG9jLmh0bWxkb2MoKSxcbiAgICBpdGVtSFRNTDogaXRlbURvYy5odG1sKCksXG4gICAgaXRlbXNcbiAgfTtcbn07XG5cbi8vIEZldGNoZXMgYXNzZXNzbWVudCBkYXRhIGZyb20gdGhlIG1hbmlmZXN0XG5leHBvcnQgY29uc3QgZ2V0QXNzZXNzbWVudERhdGEgPSBhc3luYyAocGFja2FnZVVyaTogc3RyaW5nKTogUHJvbWlzZTxNYW5pZmVzdERhdGE+ID0+IHtcbiAgY29uc3Qgbm9ybWFsaXplZFVyaSA9IG5vcm1hbGl6ZVVyaShwYWNrYWdlVXJpKTtcblxuICBjb25zdCB0ZXN0ID0gYXdhaXQgcXRpVHJhbnNmb3JtTWFuaWZlc3QoKVxuICAgIC5sb2FkKGAke25vcm1hbGl6ZWRVcml9aW1zbWFuaWZlc3QueG1sYClcbiAgICAudGhlbihhcGkgPT4gYXBpLmFzc2Vzc21lbnRUZXN0KCkpO1xuXG4gIGNvbnN0IGFzc2Vzc21lbnREb2MgPSBhd2FpdCBxdGlUcmFuc2Zvcm1UZXN0KClcbiAgICAubG9hZChgJHtub3JtYWxpemVkVXJpfSR7dGVzdC5ocmVmfWApXG4gICAgLnRoZW4oYXBpID0+IGFwaS5odG1sZG9jKCkpO1xuXG4gIGNvbnN0IGl0ZW1zID0gYXdhaXQgcXRpVHJhbnNmb3JtVGVzdCgpXG4gICAgLmxvYWQoYCR7bm9ybWFsaXplZFVyaX0ke3Rlc3QuaHJlZn1gKVxuICAgIC50aGVuKGFwaSA9PiBhcGkuaXRlbXMoKSk7XG5cbiAgY29uc3QgYmFzZVVyaSA9IG5vcm1hbGl6ZWRVcmkuc3Vic3RyaW5nKDAsIG5vcm1hbGl6ZWRVcmkubGFzdEluZGV4T2YoJy8nKSk7XG4gIGNvbnN0IGFzc2Vzc21lbnRMb2NhdGlvbiA9IGAke2Jhc2VVcml9LyR7dGVzdC5ocmVmLnN1YnN0cmluZygwLCB0ZXN0LmhyZWYubGFzdEluZGV4T2YoJy8nKSl9YDtcbiAgY29uc3QgaXRlbUxvY2F0aW9uID0gYCR7YXNzZXNzbWVudExvY2F0aW9ufS8ke2l0ZW1zWzBdLmhyZWYuc3Vic3RyaW5nKDAsIGl0ZW1zWzBdLmhyZWYubGFzdEluZGV4T2YoJy8nKSl9YDtcblxuICByZXR1cm4ge1xuICAgIGFzc2Vzc21lbnRYTUw6IGFzc2Vzc21lbnREb2MsXG4gICAgaXRlbUxvY2F0aW9uLFxuICAgIGFzc2Vzc21lbnRMb2NhdGlvbixcbiAgICBpdGVtcyxcbiAgICB0ZXN0SWRlbnRpZmllcjogdGVzdC5pZGVudGlmaWVyXG4gIH07XG59O1xuXG4vLyBGZXRjaGVzIGEgc2luZ2xlIGl0ZW0gYnkgVVJJXG5leHBvcnQgY29uc3QgZ2V0SXRlbUJ5VXJpID0gYXN5bmMgKGl0ZW1Vcmk6IHN0cmluZywgY2FuY2VsUHJldmlvdXNSZXF1ZXN0ID0gdHJ1ZSk6IFByb21pc2U8YW55PiA9PiB7XG4gIHJldHVybiBxdGlUcmFuc2Zvcm1JdGVtKClcbiAgICAubG9hZChpdGVtVXJpLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QpXG4gICAgLnRoZW4oYXBpID0+XG4gICAgICBhcGlcbiAgICAgICAgLnBhdGgoaXRlbVVyaS5zdWJzdHJpbmcoMCwgaXRlbVVyaS5sYXN0SW5kZXhPZignLycpKSlcbiAgICAgICAgLnN0cmlwU3R5bGVTaGVldHMoKVxuICAgICAgICAuaHRtbCgpXG4gICAgKTtcbn07XG4iXSwKICAibWFwcGluZ3MiOiAib0ZBZUEsSUFBTUEsRUFBZ0JDLEdBQWlCQSxFQUFJLFNBQVMsR0FBRyxFQUFJQSxFQUFNLEdBQUdBLENBQUcsSUFHMURDLEVBQWlCLE1BQU9DLEVBQW9CQyxFQUFlQyxFQUF3QixLQUF1QixDQUNySCxJQUFNQyxFQUFnQk4sRUFBYUcsQ0FBVSxFQUV2Q0ksRUFBTyxNQUFNQyxFQUFxQixFQUNyQyxLQUFLLEdBQUdGLENBQWEsaUJBQWlCLEVBQ3RDLEtBQUtHLEdBQU9BLEVBQUksZUFBZSxDQUFDLEVBRTdCQyxFQUFRLE1BQU1DLEVBQWlCLEVBQ2xDLEtBQUssR0FBR0wsQ0FBYSxHQUFHQyxFQUFLLElBQUksRUFBRSxFQUNuQyxLQUFLRSxHQUFPQSxFQUFJLE1BQU0sQ0FBQyxFQUVwQkcsRUFBVSxHQUFHTixDQUFhLEdBQUdDLEVBQUssS0FBSyxVQUFVLEVBQUdBLEVBQUssS0FBSyxZQUFZLEdBQUcsQ0FBQyxDQUFDLElBQUlHLEVBQU1OLENBQUssRUFBRSxJQUFJLEdBRXBHUyxFQUFVLE1BQU1DLEVBQWlCLEVBQ3BDLEtBQUtGLEVBQVNQLENBQXFCLEVBQ25DLEtBQUtJLEdBQU9BLEVBQUksS0FBS0csRUFBUSxVQUFVLEVBQUdBLEVBQVEsWUFBWSxHQUFHLENBQUMsQ0FBQyxFQUFFLGlCQUFpQixDQUFDLEVBRTFGLE1BQU8sQ0FDTCxZQUFhQyxFQUFRLFFBQVEsRUFDN0IsU0FBVUEsRUFBUSxLQUFLLEVBQ3ZCLE1BQUFILENBQ0YsQ0FDRixFQUdhSyxFQUFvQixNQUFPWixHQUE4QyxDQUNwRixJQUFNRyxFQUFnQk4sRUFBYUcsQ0FBVSxFQUV2Q0ksRUFBTyxNQUFNQyxFQUFxQixFQUNyQyxLQUFLLEdBQUdGLENBQWEsaUJBQWlCLEVBQ3RDLEtBQUtHLEdBQU9BLEVBQUksZUFBZSxDQUFDLEVBRTdCTyxFQUFnQixNQUFNTCxFQUFpQixFQUMxQyxLQUFLLEdBQUdMLENBQWEsR0FBR0MsRUFBSyxJQUFJLEVBQUUsRUFDbkMsS0FBS0UsR0FBT0EsRUFBSSxRQUFRLENBQUMsRUFFdEJDLEVBQVEsTUFBTUMsRUFBaUIsRUFDbEMsS0FBSyxHQUFHTCxDQUFhLEdBQUdDLEVBQUssSUFBSSxFQUFFLEVBQ25DLEtBQUtFLEdBQU9BLEVBQUksTUFBTSxDQUFDLEVBR3BCUSxFQUFxQixHQURYWCxFQUFjLFVBQVUsRUFBR0EsRUFBYyxZQUFZLEdBQUcsQ0FBQyxDQUNwQyxJQUFJQyxFQUFLLEtBQUssVUFBVSxFQUFHQSxFQUFLLEtBQUssWUFBWSxHQUFHLENBQUMsQ0FBQyxHQUNyRlcsRUFBZSxHQUFHRCxDQUFrQixJQUFJUCxFQUFNLENBQUMsRUFBRSxLQUFLLFVBQVUsRUFBR0EsRUFBTSxDQUFDLEVBQUUsS0FBSyxZQUFZLEdBQUcsQ0FBQyxDQUFDLEdBRXhHLE1BQU8sQ0FDTCxjQUFlTSxFQUNmLGFBQUFFLEVBQ0EsbUJBQUFELEVBQ0EsTUFBQVAsRUFDQSxlQUFnQkgsRUFBSyxVQUN2QixDQUNGLEVBR2FZLEVBQWUsTUFBT1AsRUFBaUJQLEVBQXdCLEtBQ25FUyxFQUFpQixFQUNyQixLQUFLRixFQUFTUCxDQUFxQixFQUNuQyxLQUFLSSxHQUNKQSxFQUNHLEtBQUtHLEVBQVEsVUFBVSxFQUFHQSxFQUFRLFlBQVksR0FBRyxDQUFDLENBQUMsRUFDbkQsaUJBQWlCLEVBQ2pCLEtBQUssQ0FDViIsCiAgIm5hbWVzIjogWyJub3JtYWxpemVVcmkiLCAidXJpIiwgImdldEl0ZW1CeUluZGV4IiwgInBhY2thZ2VVcmkiLCAiaW5kZXgiLCAiY2FuY2VsUHJldmlvdXNSZXF1ZXN0IiwgIm5vcm1hbGl6ZWRVcmkiLCAidGVzdCIsICJxdGlUcmFuc2Zvcm1NYW5pZmVzdCIsICJhcGkiLCAiaXRlbXMiLCAicXRpVHJhbnNmb3JtVGVzdCIsICJpdGVtVXJpIiwgIml0ZW1Eb2MiLCAicXRpVHJhbnNmb3JtSXRlbSIsICJnZXRBc3Nlc3NtZW50RGF0YSIsICJhc3Nlc3NtZW50RG9jIiwgImFzc2Vzc21lbnRMb2NhdGlvbiIsICJpdGVtTG9jYXRpb24iLCAiZ2V0SXRlbUJ5VXJpIl0KfQo=
|
|
@@ -14,81 +14,15 @@
|
|
|
14
14
|
* qtiTransformItem().parse(storyXML).html()
|
|
15
15
|
*/
|
|
16
16
|
declare const qtiTransformItem: () => {
|
|
17
|
-
load: (uri: string, cancelPreviousRequest?: boolean) => Promise<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
stripStyleSheets(): any;
|
|
27
|
-
html(): string;
|
|
28
|
-
xml(): string;
|
|
29
|
-
htmldoc(): DocumentFragment;
|
|
30
|
-
xmldoc(): XMLDocument;
|
|
31
|
-
}>;
|
|
32
|
-
parse: (xmlString: string) => {
|
|
33
|
-
load(uri: string, cancelPreviousRequest?: boolean): Promise<any>;
|
|
34
|
-
parse(xmlString: string): any;
|
|
35
|
-
path: (location: string) => any;
|
|
36
|
-
fn(fn: (xmlFragment: XMLDocument) => void): any;
|
|
37
|
-
pciHooks(uri: string): any;
|
|
38
|
-
customTypes: (param?: string) => void;
|
|
39
|
-
customInteraction(baseRef: string, baseItem: string): any;
|
|
40
|
-
convertCDATAtoComment(): any;
|
|
41
|
-
stripStyleSheets(): any;
|
|
42
|
-
html(): string;
|
|
43
|
-
xml(): string;
|
|
44
|
-
htmldoc(): DocumentFragment;
|
|
45
|
-
xmldoc(): XMLDocument;
|
|
46
|
-
};
|
|
47
|
-
path: (location: string) => {
|
|
48
|
-
load(uri: string, cancelPreviousRequest?: boolean): Promise<any>;
|
|
49
|
-
parse(xmlString: string): any;
|
|
50
|
-
path: (location: string) => any;
|
|
51
|
-
fn(fn: (xmlFragment: XMLDocument) => void): any;
|
|
52
|
-
pciHooks(uri: string): any;
|
|
53
|
-
customTypes: (param?: string) => void;
|
|
54
|
-
customInteraction(baseRef: string, baseItem: string): any;
|
|
55
|
-
convertCDATAtoComment(): any;
|
|
56
|
-
stripStyleSheets(): any;
|
|
57
|
-
html(): string;
|
|
58
|
-
xml(): string;
|
|
59
|
-
htmldoc(): DocumentFragment;
|
|
60
|
-
xmldoc(): XMLDocument;
|
|
61
|
-
};
|
|
62
|
-
fn: (fn: (xmlFragment: XMLDocument) => void) => {
|
|
63
|
-
load(uri: string, cancelPreviousRequest?: boolean): Promise<any>;
|
|
64
|
-
parse(xmlString: string): any;
|
|
65
|
-
path: (location: string) => any;
|
|
66
|
-
fn(fn: (xmlFragment: XMLDocument) => void): any;
|
|
67
|
-
pciHooks(uri: string): any;
|
|
68
|
-
customTypes: (param?: string) => void;
|
|
69
|
-
customInteraction(baseRef: string, baseItem: string): any;
|
|
70
|
-
convertCDATAtoComment(): any;
|
|
71
|
-
stripStyleSheets(): any;
|
|
72
|
-
html(): string;
|
|
73
|
-
xml(): string;
|
|
74
|
-
htmldoc(): DocumentFragment;
|
|
75
|
-
xmldoc(): XMLDocument;
|
|
76
|
-
};
|
|
77
|
-
customInteraction: (baseRef: string, baseItem: string) => {
|
|
78
|
-
load(uri: string, cancelPreviousRequest?: boolean): Promise<any>;
|
|
79
|
-
parse(xmlString: string): any;
|
|
80
|
-
path: (location: string) => any;
|
|
81
|
-
fn(fn: (xmlFragment: XMLDocument) => void): any;
|
|
82
|
-
pciHooks(uri: string): any;
|
|
83
|
-
customTypes: (param?: string) => void;
|
|
84
|
-
customInteraction(baseRef: string, baseItem: string): any;
|
|
85
|
-
convertCDATAtoComment(): any;
|
|
86
|
-
stripStyleSheets(): any;
|
|
87
|
-
html(): string;
|
|
88
|
-
xml(): string;
|
|
89
|
-
htmldoc(): DocumentFragment;
|
|
90
|
-
xmldoc(): XMLDocument;
|
|
91
|
-
};
|
|
17
|
+
load: (uri: string, cancelPreviousRequest?: boolean) => Promise<any>;
|
|
18
|
+
parse: (xmlString: string) => any;
|
|
19
|
+
path: (location: string) => any;
|
|
20
|
+
fn: (fn: (xmlFragment: XMLDocument) => void) => any;
|
|
21
|
+
pciHooks: (uri: string) => any;
|
|
22
|
+
customTypes: (param: string) => any;
|
|
23
|
+
customInteraction: (baseRef: string, baseItem: string) => any;
|
|
24
|
+
convertCDATAtoComment: () => any;
|
|
25
|
+
stripStyleSheets: () => any;
|
|
92
26
|
html: () => string;
|
|
93
27
|
xml: () => string;
|
|
94
28
|
htmldoc: () => DocumentFragment;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a,b,c}from"../chunk-
|
|
1
|
+
import{a,b,c}from"../chunk-4DJXUJDE.js";import"../chunk-NYAUPIAG.js";export{a as qtiTransformItem,b as qtiTransformManifest,c as qtiTransformTest};
|
|
2
2
|
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFtdLAogICJzb3VyY2VzQ29udGVudCI6IFtdLAogICJtYXBwaW5ncyI6ICIiLAogICJuYW1lcyI6IFtdCn0K
|
package/package.json
CHANGED
package/dist/chunk-H5LB6SRI.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
var g=String.raw,b=()=>{let e,n={async load(t,s=!1){return new Promise((r,o)=>{u(t,s).then(i=>(e=i,r(n)))})},parse(t){return e=p(t),n},path:t=>(d(e,t),n),fn(t){return t(e),n},pciHooks(t){let s=["hook","module"],r=t.substring(0,t.lastIndexOf("/"));for(let o of s)e.querySelectorAll("["+o+"]").forEach(a=>{let m=a.getAttribute(o);!m.startsWith("data:")&&!m.startsWith("http")&&(a.setAttribute("base-url",t),a.setAttribute("module",r+"/"+encodeURI(m+(m.endsWith(".js")?"":".js"))))});return n},customTypes:(t="type")=>{let s=(r,o)=>{let i=document.createElement(o);return[...r.attributes].forEach(a=>i.setAttribute(a.name,a.value)),i.append(...r.childNodes),i};e.querySelectorAll("*").forEach(r=>{[...r.classList].filter(o=>o.startsWith(`${t}:`)).forEach(o=>{let i=`${r.nodeName}-${o.slice(t.length).toUpperCase()}`;r.replaceWith(s(r,i))})})},customInteraction(t,s){let r=e.querySelector("qti-custom-interaction"),o=r.querySelector("object");return r.setAttribute("data-base-ref",t),r.setAttribute("data-base-item",t+s),r.setAttribute("data",o.getAttribute("data")),r.setAttribute("width",o.getAttribute("width")),r.setAttribute("height",o.getAttribute("height")),r.removeChild(o),n},convertCDATAtoComment(){return x(e),n},stripStyleSheets(){return y(e),n},html(){return new XMLSerializer().serializeToString(c(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return c(e)},xmldoc(){return e}};return n},A=()=>{let e,n={async load(t){return new Promise((s,r)=>{u(t).then(o=>(e=o,s(n)))})},parse(t){e=p(t)},assessmentTest(){let t=e.querySelector('resource[type="imsqti_test_xmlv3p0"]');return{href:t.getAttribute("href"),identifier:t.getAttribute("identifier")}}};return n},T=()=>{let e,n={async load(t){return new Promise((s,r)=>{u(t).then(o=>(e=o,s(n)))})},parse(t){return e=p(t),n},fn(t){return t(e),n},items(){return h(e)},html(){return new XMLSerializer().serializeToString(c(e))},xml(){return new XMLSerializer().serializeToString(e)},htmldoc(){return c(e)},xmldoc(){return e}};return n},f=g`<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
2
|
-
<xsl:output method="html" version="5.0" encoding="UTF-8" indent="yes" />
|
|
3
|
-
<xsl:template match="@*|node()">
|
|
4
|
-
<xsl:copy>
|
|
5
|
-
<xsl:apply-templates select="@*|node()"/>
|
|
6
|
-
</xsl:copy>
|
|
7
|
-
</xsl:template>
|
|
8
|
-
|
|
9
|
-
<!-- remove existing namespaces -->
|
|
10
|
-
<xsl:template match="*">
|
|
11
|
-
<!-- remove element prefix -->
|
|
12
|
-
<xsl:element name="{local-name()}">
|
|
13
|
-
<!-- process attributes -->
|
|
14
|
-
<xsl:for-each select="@*">
|
|
15
|
-
<!-- remove attribute prefix -->
|
|
16
|
-
<xsl:attribute name="{local-name()}">
|
|
17
|
-
<xsl:value-of select="."/>
|
|
18
|
-
</xsl:attribute>
|
|
19
|
-
</xsl:for-each>
|
|
20
|
-
<xsl:apply-templates/>
|
|
21
|
-
</xsl:element>
|
|
22
|
-
</xsl:template>
|
|
23
|
-
</xsl:stylesheet>`;function h(e){let n=[];return e.querySelectorAll("qti-assessment-item-ref").forEach(t=>{let s=t.getAttribute("identifier"),r=t.getAttribute("href"),o=t.getAttribute("category");n.push({identifier:s,href:r,category:o})}),n}var l=null;function u(e,n=!0){return n&&l!==null&&l.abort(),new Promise((t,s)=>{let r=new XMLHttpRequest;l=r,r.open("GET",e,!0),r.responseType="document",r.onload=()=>{r.status>=200&&r.status<300?t(r.responseXML):s(r.statusText)},r.onerror=()=>{s(r.statusText)},r.send()})}function p(e){return new DOMParser().parseFromString(e,"text/xml")}function c(e){let n=new XSLTProcessor,t=new DOMParser().parseFromString(f,"text/xml");return n.importStylesheet(t),n.transformToFragment(e,document)}function d(e,n){n.endsWith("/")||(n+="/"),e.querySelectorAll("[src],[href],[primary-path]").forEach(t=>{var o;let s="";t.getAttribute("src")&&(s="src"),t.getAttribute("href")&&(s="href"),t.getAttribute("primary-path")&&(s="primary-path");let r=(o=t.getAttribute(s))==null?void 0:o.trim();if(!r.startsWith("data:")&&!r.startsWith("http")){let i=n+encodeURI(r);t.setAttribute(s,i)}})}function x(e){e.querySelectorAll('qti-custom-operator[class="js.org"] > qti-base-value').forEach(t=>{let s=document.createComment(t.textContent);t.replaceChild(s,t.firstChild)})}function y(e){e.querySelectorAll("qti-stylesheet").forEach(n=>n.remove())}export{b as a,A as b,T as c};
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL2xpYi9xdGktdHJhbnNmb3JtZXJzL3F0aS10cmFuc2Zvcm1lcnMudHMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImNvbnN0IHhtbCA9IFN0cmluZy5yYXc7XG5cbi8qKlxuICogQnJvd3NlciBiYXNlZCBRVEktWE1MIHRvIEhUTUwgdHJhbnNmb3JtZXIuXG4gKiBSZXR1cm5zIGFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UsIHRyYW5zZm9ybSBhbmQgc2VyaWFsaXplIFFUSSBYTUwgaXRlbXMuXG4gKiBAcmV0dXJucyBBbiBvYmplY3Qgd2l0aCBtZXRob2RzIHRvIGxvYWQsIHBhcnNlLCB0cmFuc2Zvcm0gYW5kIHNlcmlhbGl6ZSBRVEkgWE1MIGl0ZW1zLlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IHF0aVRyYW5zZm9ybWVyID0gcXRpVHJhbnNmb3JtSXRlbSgpO1xuICogYXdhaXQgcXRpVHJhbnNmb3JtZXIubG9hZCgncGF0aC90by94bWwvZmlsZS54bWwnKTtcbiAqIHF0aVRyYW5zZm9ybWVyLnBhdGgoJy9hc3Nlc3NtZW50SXRlbS9pdGVtQm9keScpO1xuICogY29uc3QgaHRtbCA9IHF0aVRyYW5zZm9ybWVyLmh0bWwoKTtcbiAqIGNvbnN0IHhtbCA9IHF0aVRyYW5zZm9ybWVyLnhtbCgpO1xuICogY29uc3QgaHRtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLmh0bWxkb2MoKTtcbiAqIGNvbnN0IHhtbGRvYyA9IHF0aVRyYW5zZm9ybWVyLnhtbGRvYygpO1xuICpcbiAqIHF0aVRyYW5zZm9ybUl0ZW0oKS5wYXJzZShzdG9yeVhNTCkuaHRtbCgpXG4gKi9cblxuZXhwb3J0IGNvbnN0IHF0aVRyYW5zZm9ybUl0ZW0gPSAoKToge1xuICBsb2FkOiAodXJpOiBzdHJpbmcsIGNhbmNlbFByZXZpb3VzUmVxdWVzdD86IGJvb2xlYW4pID0+IFByb21pc2U8dHlwZW9mIGFwaT47XG4gIHBhcnNlOiAoeG1sU3RyaW5nOiBzdHJpbmcpID0+IHR5cGVvZiBhcGk7XG4gIHBhdGg6IChsb2NhdGlvbjogc3RyaW5nKSA9PiB0eXBlb2YgYXBpO1xuICBmbjogKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSA9PiB0eXBlb2YgYXBpO1xuICBjdXN0b21JbnRlcmFjdGlvbjogKGJhc2VSZWY6IHN0cmluZywgYmFzZUl0ZW06IHN0cmluZykgPT4gdHlwZW9mIGFwaTtcbiAgaHRtbDogKCkgPT4gc3RyaW5nO1xuICB4bWw6ICgpID0+IHN0cmluZztcbiAgaHRtbGRvYzogKCkgPT4gRG9jdW1lbnRGcmFnbWVudDtcbiAgeG1sZG9jOiAoKSA9PiBYTUxEb2N1bWVudDtcbn0gPT4ge1xuICBsZXQgeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50O1xuXG4gIGNvbnN0IGFwaSA9IHtcbiAgICBhc3luYyBsb2FkKHVyaTogc3RyaW5nLCBjYW5jZWxQcmV2aW91c1JlcXVlc3QgPSBmYWxzZSkge1xuICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPHR5cGVvZiBhcGk+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgbG9hZFhNTCh1cmksIGNhbmNlbFByZXZpb3VzUmVxdWVzdCkudGhlbih4bWwgPT4ge1xuICAgICAgICAgIHhtbEZyYWdtZW50ID0geG1sO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGFwaSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBwYXJzZSh4bWxTdHJpbmc6IHN0cmluZykge1xuICAgICAgeG1sRnJhZ21lbnQgPSBwYXJzZVhNTCh4bWxTdHJpbmcpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIHBhdGg6IChsb2NhdGlvbjogc3RyaW5nKSA9PiB7XG4gICAgICBzZXRMb2NhdGlvbih4bWxGcmFnbWVudCwgbG9jYXRpb24pO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGZuKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSB7XG4gICAgICBmbih4bWxGcmFnbWVudCk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgcGNpSG9va3ModXJpOiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBbJ2hvb2snLCAnbW9kdWxlJ107XG4gICAgICBjb25zdCBkb2N1bWVudFBhdGggPSB1cmkuc3Vic3RyaW5nKDAsIHVyaS5sYXN0SW5kZXhPZignLycpKTtcbiAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZXMpIHtcbiAgICAgICAgY29uc3Qgc3JjQXR0cmlidXRlcyA9IHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1snICsgYXR0cmlidXRlICsgJ10nKTtcbiAgICAgICAgc3JjQXR0cmlidXRlcy5mb3JFYWNoKG5vZGUgPT4ge1xuICAgICAgICAgIGNvbnN0IHNyY1ZhbHVlID0gbm9kZS5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKSE7XG4gICAgICAgICAgaWYgKCFzcmNWYWx1ZS5zdGFydHNXaXRoKCdkYXRhOicpICYmICFzcmNWYWx1ZS5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgIC8vIEp1c3QgcGFzdGUgdGhlIHJlbGF0aXZlIHBhdGggb2YgdGhlIHNyYyBsb2NhdGlvbiBhZnRlciB0aGUgZG9jdW1lbnRyb290UGF0aFxuICAgICAgICAgICAgLy8gb2xkIHBjaXMgY2FuIGhhdmUgYSAuanMsIG5ldyBwY2kncyBkb24ndFxuICAgICAgICAgICAgbm9kZS5zZXRBdHRyaWJ1dGUoJ2Jhc2UtdXJsJywgdXJpKTtcbiAgICAgICAgICAgIG5vZGUuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAnbW9kdWxlJyxcbiAgICAgICAgICAgICAgZG9jdW1lbnRQYXRoICsgJy8nICsgZW5jb2RlVVJJKHNyY1ZhbHVlICsgKHNyY1ZhbHVlLmVuZHNXaXRoKCcuanMnKSA/ICcnIDogJy5qcycpKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGN1c3RvbVR5cGVzOiAocGFyYW06IHN0cmluZyA9ICd0eXBlJykgPT4ge1xuICAgICAgY29uc3QgY3JlYXRlRWxlbWVudFdpdGhOZXdUYWdOYW1lID0gKGVsZW1lbnQsIG5ld1RhZ05hbWUpID0+IHtcbiAgICAgICAgY29uc3QgbmV3RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQobmV3VGFnTmFtZSk7XG4gICAgICAgIFsuLi5lbGVtZW50LmF0dHJpYnV0ZXNdLmZvckVhY2goYXR0ciA9PiBuZXdFbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyLm5hbWUsIGF0dHIudmFsdWUpKTtcbiAgICAgICAgbmV3RWxlbWVudC5hcHBlbmQoLi4uZWxlbWVudC5jaGlsZE5vZGVzKTtcbiAgICAgICAgcmV0dXJuIG5ld0VsZW1lbnQ7XG4gICAgICB9O1xuXG4gICAgICB4bWxGcmFnbWVudC5xdWVyeVNlbGVjdG9yQWxsKCcqJykuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgWy4uLmVsZW1lbnQuY2xhc3NMaXN0XVxuICAgICAgICAgIC5maWx0ZXIoY2xzID0+IGNscy5zdGFydHNXaXRoKGAke3BhcmFtfTpgKSlcbiAgICAgICAgICAuZm9yRWFjaChjbHMgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3VGFnTmFtZSA9IGAke2VsZW1lbnQubm9kZU5hbWV9LSR7Y2xzLnNsaWNlKHBhcmFtLmxlbmd0aCkudG9VcHBlckNhc2UoKX1gO1xuICAgICAgICAgICAgZWxlbWVudC5yZXBsYWNlV2l0aChjcmVhdGVFbGVtZW50V2l0aE5ld1RhZ05hbWUoZWxlbWVudCwgbmV3VGFnTmFtZSkpO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBjdXN0b21JbnRlcmFjdGlvbihiYXNlUmVmOiBzdHJpbmcsIGJhc2VJdGVtOiBzdHJpbmcpIHtcbiAgICAgIGNvbnN0IHF0aUN1c3RvbUludGVyYWN0aW9uID0geG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvcigncXRpLWN1c3RvbS1pbnRlcmFjdGlvbicpO1xuICAgICAgY29uc3QgcXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QgPSBxdGlDdXN0b21JbnRlcmFjdGlvbi5xdWVyeVNlbGVjdG9yKCdvYmplY3QnKTtcblxuICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24uc2V0QXR0cmlidXRlKCdkYXRhLWJhc2UtcmVmJywgYmFzZVJlZik7XG4gICAgICBxdGlDdXN0b21JbnRlcmFjdGlvbi5zZXRBdHRyaWJ1dGUoJ2RhdGEtYmFzZS1pdGVtJywgYmFzZVJlZiArIGJhc2VJdGVtKTtcbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnZGF0YScsIHF0aUN1c3RvbUludGVyYWN0aW9uT2JqZWN0LmdldEF0dHJpYnV0ZSgnZGF0YScpKTtcbiAgICAgIHF0aUN1c3RvbUludGVyYWN0aW9uLnNldEF0dHJpYnV0ZSgnd2lkdGgnLCBxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdC5nZXRBdHRyaWJ1dGUoJ3dpZHRoJykpO1xuICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24uc2V0QXR0cmlidXRlKCdoZWlnaHQnLCBxdGlDdXN0b21JbnRlcmFjdGlvbk9iamVjdC5nZXRBdHRyaWJ1dGUoJ2hlaWdodCcpKTtcblxuICAgICAgcXRpQ3VzdG9tSW50ZXJhY3Rpb24ucmVtb3ZlQ2hpbGQocXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGNvbnZlcnRDREFUQXRvQ29tbWVudCgpIHtcbiAgICAgIGNvbnZlcnRDREFUQXRvQ29tbWVudCh4bWxGcmFnbWVudCk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgc3RyaXBTdHlsZVNoZWV0cygpIHtcbiAgICAgIHN0cmlwU3R5bGVTaGVldHMoeG1sRnJhZ21lbnQpO1xuICAgICAgcmV0dXJuIGFwaTtcbiAgICB9LFxuICAgIGh0bWwoKSB7XG4gICAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh0b0hUTUwoeG1sRnJhZ21lbnQpKTtcbiAgICB9LFxuICAgIHhtbCgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoeG1sRnJhZ21lbnQpO1xuICAgIH0sXG4gICAgaHRtbGRvYygpIHtcbiAgICAgIHJldHVybiB0b0hUTUwoeG1sRnJhZ21lbnQpO1xuICAgIH0sXG4gICAgeG1sZG9jKCk6IFhNTERvY3VtZW50IHtcbiAgICAgIHJldHVybiB4bWxGcmFnbWVudDsgLy8gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh4bWxGcmFnbWVudCk7XG4gICAgfVxuICB9O1xuICByZXR1cm4gYXBpO1xufTtcblxuZXhwb3J0IGNvbnN0IHF0aVRyYW5zZm9ybU1hbmlmZXN0ID0gKCk6IHtcbiAgbG9hZDogKHVyaTogc3RyaW5nKSA9PiBQcm9taXNlPHR5cGVvZiBhcGk+O1xuICBhc3Nlc3NtZW50VGVzdDogKCkgPT4geyBocmVmOiBzdHJpbmc7IGlkZW50aWZpZXI6IHN0cmluZyB9O1xufSA9PiB7XG4gIGxldCB4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQ7XG5cbiAgY29uc3QgYXBpID0ge1xuICAgIGFzeW5jIGxvYWQodXJpKSB7XG4gICAgICByZXR1cm4gbmV3IFByb21pc2U8dHlwZW9mIGFwaT4oKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBsb2FkWE1MKHVyaSkudGhlbih4bWwgPT4ge1xuICAgICAgICAgIHhtbEZyYWdtZW50ID0geG1sO1xuICAgICAgICAgIHJldHVybiByZXNvbHZlKGFwaSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfSxcbiAgICBwYXJzZSh4bWxTdHJpbmc6IHN0cmluZykge1xuICAgICAgeG1sRnJhZ21lbnQgPSBwYXJzZVhNTCh4bWxTdHJpbmcpO1xuICAgIH0sXG4gICAgYXNzZXNzbWVudFRlc3QoKSB7XG4gICAgICBjb25zdCBlbCA9IHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3IoJ3Jlc291cmNlW3R5cGU9XCJpbXNxdGlfdGVzdF94bWx2M3AwXCJdJyk7XG4gICAgICByZXR1cm4geyBocmVmOiBlbC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSwgaWRlbnRpZmllcjogZWwuZ2V0QXR0cmlidXRlKCdpZGVudGlmaWVyJykgfTtcbiAgICB9XG4gIH07XG4gIHJldHVybiBhcGk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgYW4gb2JqZWN0IHdpdGggbWV0aG9kcyB0byBsb2FkLCBwYXJzZSBhbmQgdHJhbnNmb3JtIFFUSSB0ZXN0cy5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIG1ldGhvZHMgdG8gbG9hZCwgcGFyc2UgYW5kIHRyYW5zZm9ybSBRVEkgdGVzdHMuXG4gKiBAZXhhbXBsZVxuICogY29uc3QgcXRpVHJhbnNmb3JtZXIgPSBxdGlUcmFuc2Zvcm1UZXN0KCk7XG4gKiBhd2FpdCBxdGlUcmFuc2Zvcm1lci5sb2FkKCdodHRwczovL2V4YW1wbGUuY29tL3Rlc3QueG1sJyk7XG4gKiBjb25zdCBpdGVtcyA9IHF0aVRyYW5zZm9ybWVyLml0ZW1zKCk7XG4gKiBjb25zdCBodG1sID0gcXRpVHJhbnNmb3JtZXIuaHRtbCgpO1xuICogY29uc3QgeG1sID0gcXRpVHJhbnNmb3JtZXIueG1sKCk7XG4gKi9cbmV4cG9ydCBjb25zdCBxdGlUcmFuc2Zvcm1UZXN0ID0gKCk6IHtcbiAgbG9hZDogKHVyaTogc3RyaW5nKSA9PiBQcm9taXNlPHR5cGVvZiBhcGk+O1xuICBwYXJzZTogKHhtbFN0cmluZzogc3RyaW5nKSA9PiB0eXBlb2YgYXBpO1xuICBmbjogKGZuOiAoeG1sRnJhZ21lbnQ6IFhNTERvY3VtZW50KSA9PiB2b2lkKSA9PiB0eXBlb2YgYXBpO1xuICBpdGVtczogKCkgPT4geyBpZGVudGlmaWVyOiBzdHJpbmc7IGhyZWY6IHN0cmluZzsgY2F0ZWdvcnk6IHN0cmluZyB9W107XG4gIGh0bWw6ICgpID0+IHN0cmluZztcbiAgeG1sOiAoKSA9PiBzdHJpbmc7XG4gIGh0bWxkb2M6ICgpID0+IERvY3VtZW50RnJhZ21lbnQ7XG4gIHhtbGRvYzogKCkgPT4gWE1MRG9jdW1lbnQ7XG59ID0+IHtcbiAgbGV0IHhtbEZyYWdtZW50OiBYTUxEb2N1bWVudDtcblxuICBjb25zdCBhcGkgPSB7XG4gICAgYXN5bmMgbG9hZCh1cmkpIHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTx0eXBlb2YgYXBpPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgIGxvYWRYTUwodXJpKS50aGVuKHhtbCA9PiB7XG4gICAgICAgICAgeG1sRnJhZ21lbnQgPSB4bWw7XG4gICAgICAgICAgcmV0dXJuIHJlc29sdmUoYXBpKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIHBhcnNlKHhtbFN0cmluZzogc3RyaW5nKSB7XG4gICAgICB4bWxGcmFnbWVudCA9IHBhcnNlWE1MKHhtbFN0cmluZyk7XG4gICAgICByZXR1cm4gYXBpO1xuICAgIH0sXG4gICAgZm4oZm46ICh4bWxGcmFnbWVudDogWE1MRG9jdW1lbnQpID0+IHZvaWQpIHtcbiAgICAgIGZuKHhtbEZyYWdtZW50KTtcbiAgICAgIHJldHVybiBhcGk7XG4gICAgfSxcbiAgICBpdGVtcygpIHtcbiAgICAgIHJldHVybiBpdGVtc0Zyb21UZXN0KHhtbEZyYWdtZW50KTtcbiAgICB9LFxuICAgIGh0bWwoKSB7XG4gICAgICByZXR1cm4gbmV3IFhNTFNlcmlhbGl6ZXIoKS5zZXJpYWxpemVUb1N0cmluZyh0b0hUTUwoeG1sRnJhZ21lbnQpKTtcbiAgICB9LFxuICAgIHhtbCgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoeG1sRnJhZ21lbnQpO1xuICAgIH0sXG4gICAgaHRtbGRvYygpIHtcbiAgICAgIHJldHVybiB0b0hUTUwoeG1sRnJhZ21lbnQpO1xuICAgIH0sXG4gICAgeG1sZG9jKCk6IFhNTERvY3VtZW50IHtcbiAgICAgIHJldHVybiB4bWxGcmFnbWVudDtcbiAgICB9XG4gIH07XG4gIHJldHVybiBhcGk7XG59O1xuXG4vKiAgIDwhLS0gY29udmVydCBDREFUQSB0byBjb21tZW50cyAtLT5cbiAgPHhzbDp0ZW1wbGF0ZSBtYXRjaD1cInRleHQoKVtjb250YWlucyguLCAnQ0RBVEEnKV1cIj5cbiAgPHhzbDpjb21tZW50PlxuICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PVwiLlwiLz5cbiAgPC94c2w6Y29tbWVudD5cbjwveHNsOnRlbXBsYXRlPlxuKi9cblxuLypcbiAgPCEtLSByZW1vdmUgeG1sIGNvbW1lbnRzIC0tPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiY29tbWVudCgpXCIgLz5cbiAgKi9cblxuY29uc3QgeG1sVG9IVE1MID0geG1sYDx4c2w6c3R5bGVzaGVldCB2ZXJzaW9uPVwiMS4wXCIgeG1sbnM6eHNsPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS9YU0wvVHJhbnNmb3JtXCI+XG48eHNsOm91dHB1dCBtZXRob2Q9XCJodG1sXCIgdmVyc2lvbj1cIjUuMFwiIGVuY29kaW5nPVwiVVRGLThcIiBpbmRlbnQ9XCJ5ZXNcIiAvPlxuICA8eHNsOnRlbXBsYXRlIG1hdGNoPVwiQCp8bm9kZSgpXCI+XG4gICAgPHhzbDpjb3B5PlxuICAgICAgPHhzbDphcHBseS10ZW1wbGF0ZXMgc2VsZWN0PVwiQCp8bm9kZSgpXCIvPlxuICAgIDwveHNsOmNvcHk+XG4gIDwveHNsOnRlbXBsYXRlPlxuXG4gIDwhLS0gcmVtb3ZlIGV4aXN0aW5nIG5hbWVzcGFjZXMgLS0+XG4gIDx4c2w6dGVtcGxhdGUgbWF0Y2g9XCIqXCI+XG4gICAgPCEtLSByZW1vdmUgZWxlbWVudCBwcmVmaXggLS0+XG4gICAgPHhzbDplbGVtZW50IG5hbWU9XCJ7bG9jYWwtbmFtZSgpfVwiPlxuICAgICAgPCEtLSBwcm9jZXNzIGF0dHJpYnV0ZXMgLS0+XG4gICAgICA8eHNsOmZvci1lYWNoIHNlbGVjdD1cIkAqXCI+XG4gICAgICAgIDwhLS0gcmVtb3ZlIGF0dHJpYnV0ZSBwcmVmaXggLS0+XG4gICAgICAgIDx4c2w6YXR0cmlidXRlIG5hbWU9XCJ7bG9jYWwtbmFtZSgpfVwiPlxuICAgICAgICAgIDx4c2w6dmFsdWUtb2Ygc2VsZWN0PVwiLlwiLz5cbiAgICAgICAgPC94c2w6YXR0cmlidXRlPlxuICAgICAgPC94c2w6Zm9yLWVhY2g+XG4gICAgPHhzbDphcHBseS10ZW1wbGF0ZXMvPlxuICA8L3hzbDplbGVtZW50PlxuPC94c2w6dGVtcGxhdGU+XG48L3hzbDpzdHlsZXNoZWV0PmA7XG5cbmZ1bmN0aW9uIGl0ZW1zRnJvbVRlc3QoeG1sRnJhZ21lbnQ6IERvY3VtZW50RnJhZ21lbnQpIHtcbiAgY29uc3QgaXRlbXM6IHsgaWRlbnRpZmllcjogc3RyaW5nOyBocmVmOiBzdHJpbmc7IGNhdGVnb3J5OiBzdHJpbmcgfVtdID0gW107XG4gIHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ3F0aS1hc3Nlc3NtZW50LWl0ZW0tcmVmJykuZm9yRWFjaChlbCA9PiB7XG4gICAgY29uc3QgaWRlbnRpZmllciA9IGVsLmdldEF0dHJpYnV0ZSgnaWRlbnRpZmllcicpO1xuICAgIGNvbnN0IGhyZWYgPSBlbC5nZXRBdHRyaWJ1dGUoJ2hyZWYnKTtcbiAgICBjb25zdCBjYXRlZ29yeSA9IGVsLmdldEF0dHJpYnV0ZSgnY2F0ZWdvcnknKTtcbiAgICBpdGVtcy5wdXNoKHsgaWRlbnRpZmllciwgaHJlZiwgY2F0ZWdvcnkgfSk7XG4gIH0pO1xuICByZXR1cm4gaXRlbXM7XG59XG5cbmxldCBjdXJyZW50UmVxdWVzdDogWE1MSHR0cFJlcXVlc3QgfCBudWxsID0gbnVsbDtcblxuZnVuY3Rpb24gbG9hZFhNTCh1cmwsIGNhbmNlbFByZXZpb3VzUmVxdWVzdCA9IHRydWUpIHtcbiAgaWYgKGNhbmNlbFByZXZpb3VzUmVxdWVzdCAmJiBjdXJyZW50UmVxdWVzdCAhPT0gbnVsbCkge1xuICAgIGN1cnJlbnRSZXF1ZXN0LmFib3J0KCk7IC8vIEFib3J0IHRoZSBvbmdvaW5nIHJlcXVlc3QgaWYgdGhlcmUgaXMgb25lXG4gIH1cblxuICByZXR1cm4gbmV3IFByb21pc2U8WE1MRG9jdW1lbnQgfCBudWxsPigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgY29uc3QgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7XG4gICAgY3VycmVudFJlcXVlc3QgPSB4aHI7IC8vIFN0b3JlIHRoZSBjdXJyZW50IHJlcXVlc3RcblxuICAgIHhoci5vcGVuKCdHRVQnLCB1cmwsIHRydWUpO1xuICAgIHhoci5yZXNwb25zZVR5cGUgPSAnZG9jdW1lbnQnO1xuXG4gICAgeGhyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgIGlmICh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwKSB7XG4gICAgICAgIHJlc29sdmUoeGhyLnJlc3BvbnNlWE1MKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlamVjdCh4aHIuc3RhdHVzVGV4dCk7XG4gICAgICB9XG4gICAgfTtcblxuICAgIHhoci5vbmVycm9yID0gKCkgPT4ge1xuICAgICAgcmVqZWN0KHhoci5zdGF0dXNUZXh0KTtcbiAgICB9O1xuXG4gICAgeGhyLnNlbmQoKTtcbiAgfSk7XG59XG5cbmZ1bmN0aW9uIHBhcnNlWE1MKHhtbERvY3VtZW50OiBzdHJpbmcpIHtcbiAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICBjb25zdCB4bWxGcmFnbWVudCA9IHBhcnNlci5wYXJzZUZyb21TdHJpbmcoeG1sRG9jdW1lbnQsICd0ZXh0L3htbCcpO1xuICByZXR1cm4geG1sRnJhZ21lbnQ7XG59XG5cbmZ1bmN0aW9uIHRvSFRNTCh4bWxGcmFnbWVudDogRG9jdW1lbnQpOiBEb2N1bWVudEZyYWdtZW50IHtcbiAgY29uc3QgcHJvY2Vzc29yID0gbmV3IFhTTFRQcm9jZXNzb3IoKTtcbiAgY29uc3QgeHNsdERvY3VtZW50ID0gbmV3IERPTVBhcnNlcigpLnBhcnNlRnJvbVN0cmluZyh4bWxUb0hUTUwsICd0ZXh0L3htbCcpO1xuICBwcm9jZXNzb3IuaW1wb3J0U3R5bGVzaGVldCh4c2x0RG9jdW1lbnQpO1xuICBjb25zdCBpdGVtSFRNTEZyYWdtZW50ID0gcHJvY2Vzc29yLnRyYW5zZm9ybVRvRnJhZ21lbnQoeG1sRnJhZ21lbnQsIGRvY3VtZW50KTtcbiAgcmV0dXJuIGl0ZW1IVE1MRnJhZ21lbnQ7XG59XG5cbmZ1bmN0aW9uIHNldExvY2F0aW9uKHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50LCBsb2NhdGlvbjogc3RyaW5nKSB7XG4gIGlmICghbG9jYXRpb24uZW5kc1dpdGgoJy8nKSkge1xuICAgIGxvY2F0aW9uICs9ICcvJztcbiAgfVxuXG4gIHhtbEZyYWdtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ1tzcmNdLFtocmVmXSxbcHJpbWFyeS1wYXRoXScpLmZvckVhY2goZWxXaXRoU3JjID0+IHtcbiAgICBsZXQgYXR0cjogJ3NyYycgfCAnaHJlZicgfCAncHJpbWFyeS1wYXRoJyB8ICcnID0gJyc7XG5cbiAgICBpZiAoZWxXaXRoU3JjLmdldEF0dHJpYnV0ZSgnc3JjJykpIHtcbiAgICAgIGF0dHIgPSAnc3JjJztcbiAgICB9XG4gICAgaWYgKGVsV2l0aFNyYy5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSkge1xuICAgICAgYXR0ciA9ICdocmVmJztcbiAgICB9XG4gICAgaWYgKGVsV2l0aFNyYy5nZXRBdHRyaWJ1dGUoJ3ByaW1hcnktcGF0aCcpKSB7XG4gICAgICBhdHRyID0gJ3ByaW1hcnktcGF0aCc7XG4gICAgfVxuICAgIGNvbnN0IGF0dHJWYWx1ZSA9IGVsV2l0aFNyYy5nZXRBdHRyaWJ1dGUoYXR0cik/LnRyaW0oKTtcblxuICAgIGlmICghYXR0clZhbHVlLnN0YXJ0c1dpdGgoJ2RhdGE6JykgJiYgIWF0dHJWYWx1ZS5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgIGNvbnN0IG5ld1NyY1ZhbHVlID0gbG9jYXRpb24gKyBlbmNvZGVVUkkoYXR0clZhbHVlKTtcbiAgICAgIGVsV2l0aFNyYy5zZXRBdHRyaWJ1dGUoYXR0ciwgbmV3U3JjVmFsdWUpO1xuICAgIH1cbiAgfSk7XG59XG5cbmZ1bmN0aW9uIGNvbnZlcnRDREFUQXRvQ29tbWVudCh4bWxGcmFnbWVudDogRG9jdW1lbnRGcmFnbWVudCkge1xuICBjb25zdCBjZGF0YUVsZW1lbnRzID0geG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgncXRpLWN1c3RvbS1vcGVyYXRvcltjbGFzcz1cImpzLm9yZ1wiXSA+IHF0aS1iYXNlLXZhbHVlJyk7XG4gIGNkYXRhRWxlbWVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICBjb25zdCBjb21tZW50VGV4dCA9IGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoZWxlbWVudC50ZXh0Q29udGVudCk7XG4gICAgZWxlbWVudC5yZXBsYWNlQ2hpbGQoY29tbWVudFRleHQsIGVsZW1lbnQuZmlyc3RDaGlsZCk7XG4gIH0pO1xufVxuXG5mdW5jdGlvbiBzdHJpcFN0eWxlU2hlZXRzKHhtbEZyYWdtZW50OiBEb2N1bWVudEZyYWdtZW50KSB7XG4gIC8vIHJlbW92ZSBxdGktc3R5bGVzaGVldCB0YWdcbiAgeG1sRnJhZ21lbnQucXVlcnlTZWxlY3RvckFsbCgncXRpLXN0eWxlc2hlZXQnKS5mb3JFYWNoKHN0eWxlc2hlZXQgPT4gc3R5bGVzaGVldC5yZW1vdmUoKSk7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiQUFBQSxJQUFNQSxFQUFNLE9BQU8sSUFrQk5DLEVBQW1CLElBVTNCLENBQ0gsSUFBSUMsRUFFRUMsRUFBTSxDQUNWLE1BQU0sS0FBS0MsRUFBYUMsRUFBd0IsR0FBTyxDQUNyRCxPQUFPLElBQUksUUFBb0IsQ0FBQ0MsRUFBU0MsSUFBVyxDQUNsREMsRUFBUUosRUFBS0MsQ0FBcUIsRUFBRSxLQUFLTCxJQUN2Q0UsRUFBY0YsRUFDUE0sRUFBUUgsQ0FBRyxFQUNuQixDQUNILENBQUMsQ0FDSCxFQUNBLE1BQU1NLEVBQW1CLENBQ3ZCLE9BQUFQLEVBQWNRLEVB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OUUsQ0FFQSxTQUFTVSxFQUFZVixFQUErQlMsRUFBa0IsQ0FDL0RBLEVBQVMsU0FBUyxHQUFHLElBQ3hCQSxHQUFZLEtBR2RULEVBQVksaUJBQWlCLDZCQUE2QixFQUFFLFFBQVE4QyxHQUFhLENBblRuRixJQUFBQyxFQW9USSxJQUFJekIsRUFBNkMsR0FFN0N3QixFQUFVLGFBQWEsS0FBSyxJQUM5QnhCLEVBQU8sT0FFTHdCLEVBQVUsYUFBYSxNQUFNLElBQy9CeEIsRUFBTyxRQUVMd0IsRUFBVSxhQUFhLGNBQWMsSUFDdkN4QixFQUFPLGdCQUVULElBQU0wQixHQUFZRCxFQUFBRCxFQUFVLGFBQWF4QixDQUFJLElBQTNCLFlBQUF5QixFQUE4QixPQUVoRCxHQUFJLENBQUNDLEVBQVUsV0FBVyxPQUFPLEdBQUssQ0FBQ0EsRUFBVSxXQUFXLE1BQU0sRUFBRyxDQUNuRSxJQUFNQyxFQUFjeEMsRUFBVyxVQUFVdUMsQ0FBUyxFQUNsREYsRUFBVSxhQUFheEIsRUFBTTJCLENBQVcsQ0FDMUMsQ0FDRixDQUFDLENBQ0gsQ0FFQSxTQUFTckIsRUFBc0I1QixFQUErQixDQUN0Q0EsRUFBWSxpQkFBaUIsc0RBQXNELEVBQzNGLFFBQVFtQixHQUFXLENBQy9CLElBQU0rQixFQUFjLFNBQVMsY0FBYy9CLEVBQVEsV0FBVyxFQUM5REEsRUFBUSxhQUFhK0IsRUFBYS9CLEVBQVEsVUFBVSxDQUN0RCxDQUFDLENBQ0gsQ0FFQSxTQUFTVSxFQUFpQjdCLEVBQStCLENBRXZEQSxFQUFZLGlCQUFpQixnQkFBZ0IsRUFBRSxRQUFRbUQsR0FBY0EsRUFBVyxPQUFPLENBQUMsQ0FDMUYiLAogICJuYW1lcyI6IFsieG1sIiwgInF0aVRyYW5zZm9ybUl0ZW0iLCAieG1sRnJhZ21lbnQiLCAiYXBpIiwgInVyaSIsICJjYW5jZWxQcmV2aW91c1JlcXVlc3QiLCAicmVzb2x2ZSIsICJyZWplY3QiLCAibG9hZFhNTCIsICJ4bWxTdHJpbmciLCAicGFyc2VYTUwiLCAibG9jYXRpb24iLCAic2V0TG9jYXRpb24iLCAiZm4iLCAiYXR0cmlidXRlcyIsICJkb2N1bWVudFBhdGgiLCAiYXR0cmlidXRlIiwgIm5vZGUiLCAic3JjVmFsdWUiLCAicGFyYW0iLCAiY3JlYXRlRWxlbWVudFdpdGhOZXdUYWdOYW1lIiwgImVsZW1lbnQiLCAibmV3VGFnTmFtZSIsICJuZXdFbGVtZW50IiwgImF0dHIiLCAiY2xzIiwgImJhc2VSZWYiLCAiYmFzZUl0ZW0iLCAicXRpQ3VzdG9tSW50ZXJhY3Rpb24iLCAicXRpQ3VzdG9tSW50ZXJhY3Rpb25PYmplY3QiLCAiY29udmVydENEQVRBdG9Db21tZW50IiwgInN0cmlwU3R5bGVTaGVldHMiLCAidG9IVE1MIiwgInF0aVRyYW5zZm9ybU1hbmlmZXN0IiwgImVsIiwgInF0aVRyYW5zZm9ybVRlc3QiLCAiaXRlbXNGcm9tVGVzdCIsICJ4bWxUb0hUTUwiLCAiaXRlbXMiLCAiaWRlbnRpZmllciIsICJocmVmIiwgImNhdGVnb3J5IiwgImN1cnJlbnRSZXF1ZXN0IiwgInVybCIsICJ4aHIiLCAieG1sRG9jdW1lbnQiLCAicHJvY2Vzc29yIiwgInhzbHREb2N1bWVudCIsICJlbFdpdGhTcmMiLCAiX2EiLCAiYXR0clZhbHVlIiwgIm5ld1NyY1ZhbHVlIiwgImNvbW1lbnRUZXh0IiwgInN0eWxlc2hlZXQiXQp9Cg==
|