@citolab/qti-components 6.0.2 → 6.0.3-0
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/ExpressionResult-b1ac7b27.d.ts +23 -0
- package/dist/chunk-DLLHO3W2.js +1 -0
- package/dist/chunk-M3YT56HW.js +1437 -0
- package/dist/custom-elements.json +4123 -17029
- package/dist/index.js +2237 -0
- package/dist/qti-assessment-item-219cef9e.d.ts +102 -0
- package/dist/qti-components/index.d.ts +184 -335
- package/dist/qti-components/index.js +146 -104
- package/dist/qti-components.js +13502 -0
- package/dist/qti-item/index.d.ts +13 -6
- package/dist/qti-item/index.js +1 -17
- package/dist/qti-item-react/index.d.ts +19 -0
- package/dist/qti-item-react/index.js +1 -0
- package/dist/qti-rule-5fe4f91e.d.ts +303 -0
- package/dist/qti-test/index.d.ts +2 -2
- package/dist/qti-test/index.js +13 -11
- package/dist/themes/qti.css +142 -112
- package/dist/vite.svg +1 -0
- package/package.json +1 -1
- package/dist/ExpressionResult-2192c3d8.d.ts +0 -33
- package/dist/chunk-2TX3IEPD.cjs +0 -1
- package/dist/chunk-HOQW4KDA.cjs +0 -1
- package/dist/chunk-JLKCCEGG.cjs +0 -1
- package/dist/chunk-JQY6IKDF.js +0 -1
- package/dist/chunk-L6436D6O.js +0 -1
- package/dist/qti-assessment-item-e9f437d6.d.ts +0 -117
- package/dist/qti-components/index.cjs +0 -403
- package/dist/qti-item/index.cjs +0 -17
- package/dist/qti-test/index.cjs +0 -12
- package/dist/qti-transform/index.cjs +0 -102
package/dist/qti-test/index.cjs
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkJLKCCEGGcjs = require('../chunk-JLKCCEGG.cjs');var _chunk2TX3IEPDcjs = require('../chunk-2TX3IEPD.cjs');var _chunkHOQW4KDAcjs = require('../chunk-HOQW4KDA.cjs');var _lit = require('lit');var m=(n,c)=>{class e extends n{_dispatch(){this.dispatchEvent(new CustomEvent(c,{composed:!0,bubbles:!0,detail:+this.getAttribute("index")}))}connectedCallback(){super.connectedCallback(),this.addEventListener("click",this._dispatch)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("click",this._dispatch)}}return e};customElements.define("qti-test-next",class extends m(_lit.LitElement,"on-next-item"){constructor(){super(...arguments);this.render=()=>_lit.html`<slot></slot>`}});customElements.define("qti-test-item",class extends m(_lit.LitElement,"on-request-item"){constructor(){super(...arguments);this.render=()=>_lit.html`<slot></slot>`}});customElements.define("qti-test-prev",class extends m(_lit.LitElement,"on-prev-item"){constructor(){super(...arguments);this.render=()=>_lit.html`<slot></slot>`}});customElements.define("qti-test-check",class extends m(_lit.LitElement,"on-check-item"){constructor(){super(...arguments);this.render=()=>_lit.html`<slot></slot>`}});customElements.define("qti-test-score",class extends m(_lit.LitElement,"on-score-item"){constructor(){super(...arguments);this.render=()=>_lit.html`<slot></slot>`}});customElements.define("qti-test-show-correct",class extends m(_lit.LitElement,"on-show-correct"){constructor(){super(...arguments);this.render=()=>_lit.html`<slot></slot>`}});var _context = require('@lit-labs/context');var _decoratorsjs = require('lit/decorators.js');var o={ON_ITEM_WAS_FINISHED:"onItemWasFinished",ON_NO_RESPONSE_ON_SUBMIT:"onNoResponseOnSubmit",ON_REQUEST_ITEM:"onRequestItem",ON_TEST_FINISHED:"onTestFinished",ON_ITEM_READY:"onItemReady"},b= exports.NavigationMode =(e=>(e.linear="linear",e.nonlinear="nonlinear",e))(b||{}),x= exports.SubmissionMode =(e=>(e.individual="individual",e.simultaneous="simultaneous",e))(x||{}),t= exports.QtiTest =class extends _lit.LitElement{constructor(){super(...arguments);this.disabled=!1;this.readonly=!1;this._navigationMode="nonlinear";this._submissionMode="simultaneous";this.items=[];this.itemIndex=0;this.provider=new (0, _context.ContextProvider)(this,_chunkJLKCCEGGcjs.a,{log:e=>{console.log(`[my-app] ${e}`)},view:"candidate"})}handleNavigationModeChange(e,s){this.prevButton.style.visibility=s==="linear"?"hidden":"visible"}handleItemIndexChange(e,s){this.emit(o.ON_REQUEST_ITEM,{detail:s})}set qtiContext(e){this.provider.value.view=e.view,this.provider.updateObservers()}set itemXML(e){this._itemRef&&this._itemRef.remove(),this.insertAdjacentHTML("afterbegin",e)}set manualOutcomeValue(e){this._itemRef.setOutcomeValue("SCORE",e)}set itemResponse(e){this._itemRef&&(this._itemRef.responses=e,this._navigationMode==="linear"&&(this._itemRef.style.filter="blur(5px)",this._itemRef.setAttribute("disabled",""),this.dispatchEvent(new CustomEvent(o.ON_ITEM_WAS_FINISHED))))}_onCheckItem(){return this._itemRef.validateResponses()?(this._itemRef.processResponse(),!0):!1}_onScoreItem(){this._onCheckItem()&&this._itemRef.processResponse()}_onPrevItem(){this.itemIndex>0&&this.emit(o.ON_REQUEST_ITEM,{detail:this.itemIndex-1})}_onNextItem(){if(this._navigationMode==="linear"&&!this._itemRef.validateResponses()){this.dispatchEvent(new CustomEvent(o.ON_NO_RESPONSE_ON_SUBMIT));return}this.itemIndex<this.items.length-1?this.emit(o.ON_REQUEST_ITEM,{detail:this.itemIndex+1}):this.dispatchEvent(new CustomEvent(o.ON_TEST_FINISHED))}_onShowCorrect(){this._itemRef.showCorrectResponse()}_onRequestItem({detail:e}){this.emit(o.ON_REQUEST_ITEM,{detail:e})}_handleSlotchange(e){let s=this.querySelector("qti-assessment-item");s&&(this._itemRef=s,this.disabled&&this._itemRef.setAttribute("disabled",""),this.readonly&&this._itemRef.setAttribute("readonly",""),this.emit(o.ON_ITEM_READY,{detail:s}))}render(){return _lit.html`
|
|
2
|
-
<slot
|
|
3
|
-
@slotchange=${this._handleSlotchange}
|
|
4
|
-
@on-prev-item=${this._onPrevItem}
|
|
5
|
-
@on-next-item=${this._onNextItem}
|
|
6
|
-
@on-check-item=${this._onCheckItem}
|
|
7
|
-
@on-score-item=${this._onScoreItem}
|
|
8
|
-
@on-request-item=${this._onRequestItem}
|
|
9
|
-
@on-show-correct=${this._onShowCorrect}
|
|
10
|
-
>
|
|
11
|
-
</slot>
|
|
12
|
-
`}emit(e,s){let v=new CustomEvent(e,_chunkHOQW4KDAcjs.a.call(void 0, {bubbles:!0,cancelable:!1,composed:!0,detail:{}},s));this.dispatchEvent(v)}};_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.query.call(void 0, "qti-test-prev")],t.prototype,"prevButton",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.query.call(void 0, "qti-test-next")],t.prototype,"nextButton",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean})],t.prototype,"disabled",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Boolean})],t.prototype,"readonly",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"navigation-mode"})],t.prototype,"_navigationMode",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk2TX3IEPDcjs.a.call(void 0, "_navigationMode",{waitUntilFirstUpdate:!0})],t.prototype,"handleNavigationModeChange",1),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:String,attribute:"submission-mode"})],t.prototype,"_submissionMode",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, )],t.prototype,"items",2),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.property.call(void 0, {type:Number,attribute:"item-index",reflect:!0})],t.prototype,"itemIndex",2),_chunkHOQW4KDAcjs.c.call(void 0, [_chunk2TX3IEPDcjs.a.call(void 0, "itemIndex",{waitUntilFirstUpdate:!0})],t.prototype,"handleItemIndexChange",1),_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.state.call(void 0, )],t.prototype,"_itemRef",2),t= exports.QtiTest =_chunkHOQW4KDAcjs.c.call(void 0, [_decoratorsjs.customElement.call(void 0, "qti-test")],t);exports.NavigationMode = b; exports.QtiTest = t; exports.SubmissionMode = x; exports.TestEvents = o;
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } }require('../chunk-HOQW4KDA.cjs');var _cheerio = require('cheerio'); var p = _interopRequireWildcard(_cheerio);var u=(x="type")=>`<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:qti="http://www.imsglobal.org/xsd/imsqti_v2p1" xmlns:m="http://www.w3.org/1998/Math/MathML">
|
|
3
|
-
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
|
|
4
|
-
<xsl:param name="separator" select="' '" />
|
|
5
|
-
<xsl:param name="prefix" select="'type:'" />
|
|
6
|
-
<xsl:variable name="prefixElements"></xsl:variable>
|
|
7
|
-
<xsl:variable name="suffixElements"></xsl:variable>
|
|
8
|
-
<!-- passthrough -->
|
|
9
|
-
<xsl:template match="*">
|
|
10
|
-
<xsl:copy>
|
|
11
|
-
<xsl:apply-templates select="* | @* | text()" />
|
|
12
|
-
</xsl:copy>
|
|
13
|
-
</xsl:template>
|
|
14
|
-
<xsl:template match="@* | text()">
|
|
15
|
-
<xsl:copy-of select="." />
|
|
16
|
-
</xsl:template>
|
|
17
|
-
|
|
18
|
-
<xsl:template match="*">
|
|
19
|
-
<xsl:variable name="elementName">
|
|
20
|
-
<xsl:call-template name="getTypedElementName">
|
|
21
|
-
<xsl:with-param name="input" select="." />
|
|
22
|
-
</xsl:call-template>
|
|
23
|
-
</xsl:variable>
|
|
24
|
-
<xsl:element name="{$elementName}">
|
|
25
|
-
<xsl:apply-templates select="* | @* | text()" />
|
|
26
|
-
</xsl:element>
|
|
27
|
-
</xsl:template>
|
|
28
|
-
|
|
29
|
-
<!-- custom names -->
|
|
30
|
-
<xsl:template name="getType">
|
|
31
|
-
<xsl:param name="input" />
|
|
32
|
-
<xsl:param name="separator" select="$separator" />
|
|
33
|
-
<xsl:param name="prefix" select="$prefix" />
|
|
34
|
-
<xsl:variable name="output">
|
|
35
|
-
<xsl:choose>
|
|
36
|
-
<xsl:when test="contains($input, $separator)">
|
|
37
|
-
<xsl:value-of select="substring-before($input, $separator)" />
|
|
38
|
-
</xsl:when>
|
|
39
|
-
<xsl:otherwise>
|
|
40
|
-
<xsl:value-of select="$input" />
|
|
41
|
-
</xsl:otherwise>
|
|
42
|
-
</xsl:choose>
|
|
43
|
-
</xsl:variable>
|
|
44
|
-
<xsl:choose>
|
|
45
|
-
<xsl:when test="starts-with($output, $prefix) and $output != $prefix">
|
|
46
|
-
<xsl:value-of select="substring-after($output, $prefix)" />
|
|
47
|
-
</xsl:when>
|
|
48
|
-
<xsl:otherwise>
|
|
49
|
-
<xsl:variable name="after" select="substring-after($input, $separator)" />
|
|
50
|
-
<xsl:if test="$after">
|
|
51
|
-
<xsl:call-template name="getType">
|
|
52
|
-
<xsl:with-param name="input" select="$after" />
|
|
53
|
-
<xsl:with-param name="separator" select="$separator" />
|
|
54
|
-
<xsl:with-param name="prefix" select="$prefix" />
|
|
55
|
-
</xsl:call-template>
|
|
56
|
-
</xsl:if>
|
|
57
|
-
</xsl:otherwise>
|
|
58
|
-
</xsl:choose>
|
|
59
|
-
</xsl:template>
|
|
60
|
-
|
|
61
|
-
<xsl:template name="getTypedElementName">
|
|
62
|
-
<xsl:param name="input" />
|
|
63
|
-
<xsl:variable name="prefixElements" select="document('')//xsl:variable[@name = 'prefixElements']/element" />
|
|
64
|
-
<xsl:variable name="suffixElements" select="document('')//xsl:variable[@name = 'suffixElements']/element" />
|
|
65
|
-
<xsl:variable name="originalName" select="name($input)" />
|
|
66
|
-
<xsl:variable name="type">
|
|
67
|
-
<xsl:call-template name="getType">
|
|
68
|
-
<xsl:with-param name="input" select="$input/@class" />
|
|
69
|
-
</xsl:call-template>
|
|
70
|
-
</xsl:variable>
|
|
71
|
-
<xsl:value-of select="$originalName" />
|
|
72
|
-
<!-- Add prefix elements -->
|
|
73
|
-
<xsl:if test="$prefixElements[text() = $originalName]">
|
|
74
|
-
<xsl:text>-</xsl:text>
|
|
75
|
-
</xsl:if>
|
|
76
|
-
<!-- Add suffix to typed elements -->
|
|
77
|
-
<xsl:if test="string-length($type)">
|
|
78
|
-
<xsl:text>-</xsl:text>
|
|
79
|
-
<xsl:value-of select="$type" />
|
|
80
|
-
</xsl:if>
|
|
81
|
-
<!-- Add suffix to elements -->
|
|
82
|
-
<xsl:if test="$suffixElements[text() = $originalName]">
|
|
83
|
-
<xsl:text>-</xsl:text>
|
|
84
|
-
</xsl:if>
|
|
85
|
-
</xsl:template>
|
|
86
|
-
</xsl:stylesheet>`,f=`
|
|
87
|
-
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
88
|
-
<xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/>
|
|
89
|
-
<xsl:template match="*">
|
|
90
|
-
<!-- remove element prefix -->
|
|
91
|
-
<xsl:element name="{local-name()}">
|
|
92
|
-
<!-- process attributes -->
|
|
93
|
-
<xsl:for-each select="@*">
|
|
94
|
-
<!-- remove attribute prefix -->
|
|
95
|
-
<xsl:attribute name="{local-name()}">
|
|
96
|
-
<xsl:value-of select="."/>
|
|
97
|
-
</xsl:attribute>
|
|
98
|
-
</xsl:for-each>
|
|
99
|
-
<xsl:apply-templates/>
|
|
100
|
-
</xsl:element>
|
|
101
|
-
</xsl:template>
|
|
102
|
-
</xsl:stylesheet>`,b= exports.qtiTransform =x=>{let e=x,i=t=>{let l=new DOMParser().parseFromString(e,"text/xml"),a=new XSLTProcessor,n=new DOMParser().parseFromString(t,"text/xml");a.importStylesheet(n);let r=a.transformToFragment(l,document);e=new XMLSerializer().serializeToString(r)},s={mathml(){let t=p.load(e,{xmlMode:!0,xml:!0});return t("math").each((l,a)=>{a.tagName="math-ml"}).find("*").each((l,a)=>{a.tagName=`math-${a.tagName.substring(1)}`}),e=t.xml(),s},removeNamesSpaces(){return i(f),s},pciHooks(t){let l=["hook","module"],a=t.substring(0,t.lastIndexOf("/")),n=new DOMParser().parseFromString(e,"text/xml");for(let r of l)n.querySelectorAll("["+r+"]").forEach(o=>{let m=o.getAttribute(r);!m.startsWith("data:")&&!m.startsWith("http")&&(o.setAttribute("base-url",t),o.setAttribute("module",a+"/"+encodeURIComponent(m+(m.endsWith(".js")?"":".js"))))});return e=new XMLSerializer().serializeToString(n),s},assetsLocation(t,l=["src","href","data"]){let a=t.substring(0,t.lastIndexOf("/")),n=new DOMParser().parseFromString(e,"text/xml");for(let r of l)n.querySelectorAll("["+r+"]").forEach(o=>{let m=o.getAttribute(r);!m.startsWith("data:")&&!m.startsWith("http")&&o.setAttribute(r,a+"/"+encodeURIComponent(m))});return e=new XMLSerializer().serializeToString(n),s},customTypes(){return i(u()),s},suffix(t,l){let a=p.load(e,{xml:!0,xmlMode:!0});return a("*").each((n,r)=>{t.includes(r.name)&&(r.name=`${r.name}-${l}`)}),e=a.xml(),s},fn(t){return e=t(e),s},fnCh(t){let l=p.load(e,{xml:!0,xmlMode:!0});return t(l),e=l.xml(),s},elementNameAttributes(t){return t.forEach(l=>{e=g(e,l,l+` data-element="${l}" `)}),s},print(){return console.log(e),s},xml(){return e=h(e),e}};return s},h= exports.fixSelfClosingTags =x=>{let e=x.split("/>"),i="";for(let s=0;s<e.length-1;s++){let t=e[s].split("<");i+=e[s]+"></"+t[t.length-1].split(" ")[0]+">"}return i+e[e.length-1]};function g(x,e,i){return x.replace(new RegExp(e,"g"),i)}exports.fixSelfClosingTags = h; exports.qtiTransform = b;
|