@citolab/qti-components 7.4.0 → 7.4.2

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.
Files changed (108) hide show
  1. package/custom-elements.json +152 -152
  2. package/dist/chunks/{chunk-6K4ROGDD.js → chunk-4BDOB6KY.js} +12 -11
  3. package/dist/chunks/chunk-4BDOB6KY.js.map +1 -0
  4. package/dist/chunks/chunk-4OGJBG35.js +8 -0
  5. package/dist/chunks/chunk-4OGJBG35.js.map +1 -0
  6. package/dist/chunks/{chunk-LN74Z5QM.js → chunk-7RW7LCEJ.js} +258 -589
  7. package/dist/chunks/chunk-7RW7LCEJ.js.map +1 -0
  8. package/dist/chunks/chunk-C5RLRG3L.js +10 -0
  9. package/dist/chunks/chunk-C5RLRG3L.js.map +1 -0
  10. package/dist/chunks/chunk-CJADUWEC.js +10 -0
  11. package/dist/chunks/chunk-CJADUWEC.js.map +1 -0
  12. package/dist/chunks/chunk-DVQQ7I6Y.js +8 -0
  13. package/dist/chunks/chunk-DVQQ7I6Y.js.map +1 -0
  14. package/dist/chunks/{chunk-O5N4DCU6.js → chunk-ELDMXTUQ.js} +2 -7
  15. package/dist/chunks/chunk-ELDMXTUQ.js.map +1 -0
  16. package/dist/chunks/chunk-ERYHQVOT.js +8 -0
  17. package/dist/chunks/chunk-ERYHQVOT.js.map +1 -0
  18. package/dist/chunks/chunk-GAAFN7QF.js +146 -0
  19. package/dist/chunks/chunk-GAAFN7QF.js.map +1 -0
  20. package/dist/chunks/chunk-H2JE6IVU.js +15 -0
  21. package/dist/chunks/chunk-H2JE6IVU.js.map +1 -0
  22. package/dist/chunks/chunk-H6KHXSIO.js +8 -0
  23. package/dist/chunks/chunk-H6KHXSIO.js.map +1 -0
  24. package/dist/chunks/chunk-HFAUM56X.js +208 -0
  25. package/dist/chunks/chunk-HFAUM56X.js.map +1 -0
  26. package/dist/chunks/chunk-JQ6HWGRY.js +22 -0
  27. package/dist/chunks/chunk-JQ6HWGRY.js.map +1 -0
  28. package/dist/chunks/{chunk-GUDRSXIP.js → chunk-K47QFOQX.js} +6 -20
  29. package/dist/chunks/chunk-K47QFOQX.js.map +1 -0
  30. package/dist/chunks/chunk-NJNQOQUU.js +8 -0
  31. package/dist/chunks/chunk-NJNQOQUU.js.map +1 -0
  32. package/dist/chunks/chunk-SV4K25ZI.js +19 -0
  33. package/dist/chunks/chunk-SV4K25ZI.js.map +1 -0
  34. package/dist/chunks/{chunk-TJ6ZOT7A.js → chunk-UVKOJQ52.js} +26 -24
  35. package/dist/chunks/chunk-UVKOJQ52.js.map +1 -0
  36. package/dist/chunks/{chunk-JDY5GL7E.js → chunk-WFUXZ4UT.js} +1 -13
  37. package/dist/chunks/{chunk-JDY5GL7E.js.map → chunk-WFUXZ4UT.js.map} +1 -1
  38. package/dist/custom-elements.json +152 -152
  39. package/dist/{computed-item.context-DpK-sS0T.d.ts → exports/computed-item.context.d.ts} +6 -2
  40. package/dist/exports/computed-item.context.js +8 -0
  41. package/dist/exports/computed-item.context.js.map +1 -0
  42. package/dist/exports/computed.context.d.ts +34 -0
  43. package/dist/exports/computed.context.js +8 -0
  44. package/dist/exports/computed.context.js.map +1 -0
  45. package/dist/{config.context-CmQ9L62n.d.ts → exports/config.context.d.ts} +4 -1
  46. package/dist/exports/config.context.js +8 -0
  47. package/dist/exports/config.context.js.map +1 -0
  48. package/dist/exports/expression-result.d.ts +19 -0
  49. package/dist/exports/expression-result.js +1 -0
  50. package/dist/exports/expression-result.js.map +1 -0
  51. package/dist/exports/interaction.d.ts +46 -0
  52. package/dist/exports/interaction.interface.d.ts +13 -0
  53. package/dist/exports/interaction.interface.js +1 -0
  54. package/dist/exports/interaction.interface.js.map +1 -0
  55. package/dist/exports/interaction.js +12 -0
  56. package/dist/exports/interaction.js.map +1 -0
  57. package/dist/exports/item.context.d.ts +11 -0
  58. package/dist/exports/item.context.js +8 -0
  59. package/dist/exports/item.context.js.map +1 -0
  60. package/dist/exports/qti-assessment-item.context.d.ts +9 -0
  61. package/dist/exports/qti-assessment-item.context.js +8 -0
  62. package/dist/exports/qti-assessment-item.context.js.map +1 -0
  63. package/dist/exports/qti-condition-expression.d.ts +14 -0
  64. package/dist/exports/qti-condition-expression.js +11 -0
  65. package/dist/exports/qti-condition-expression.js.map +1 -0
  66. package/dist/exports/qti-expression.d.ts +23 -0
  67. package/dist/exports/qti-expression.js +10 -0
  68. package/dist/exports/qti-expression.js.map +1 -0
  69. package/dist/exports/qti-test.d.ts +12 -0
  70. package/dist/exports/qti-test.js +1 -0
  71. package/dist/exports/qti-test.js.map +1 -0
  72. package/dist/exports/qti.context.d.ts +14 -0
  73. package/dist/exports/qti.context.js +8 -0
  74. package/dist/exports/qti.context.js.map +1 -0
  75. package/dist/exports/session.context.d.ts +15 -0
  76. package/dist/exports/session.context.js +10 -0
  77. package/dist/exports/session.context.js.map +1 -0
  78. package/dist/exports/test.context.d.ts +16 -0
  79. package/dist/exports/test.context.js +10 -0
  80. package/dist/exports/test.context.js.map +1 -0
  81. package/dist/exports/variables.d.ts +2 -0
  82. package/dist/exports/variables.js +1 -0
  83. package/dist/exports/variables.js.map +1 -0
  84. package/dist/index.d.ts +18 -6
  85. package/dist/index.js +25 -12
  86. package/dist/{qti-assessment-item-D77dJ1Ot.d.ts → qti-assessment-item-l-mN3teH.d.ts} +2 -1
  87. package/dist/qti-components/index.d.ts +14 -76
  88. package/dist/qti-components/index.js +13 -4
  89. package/dist/qti-item/index.d.ts +4 -3
  90. package/dist/qti-item/index.js +6 -3
  91. package/dist/qti-loader/index.d.ts +3 -2
  92. package/dist/qti-loader/index.js +2 -1
  93. package/dist/qti-loader/index.js.map +1 -1
  94. package/dist/qti-modal-feedback-PKbhO-3w.d.ts +30 -0
  95. package/dist/qti-test/index.d.ts +16 -129
  96. package/dist/qti-test/index.js +11 -4
  97. package/dist/qti-test-BwvOhz_-.d.ts +118 -0
  98. package/dist/qti-transform-item-C9WtMeDR.d.ts +39 -0
  99. package/dist/qti-transformers/index.d.ts +2 -38
  100. package/dist/qti-transformers/index.js +2 -1
  101. package/dist/{variables-Vgyr6yyW.d.ts → variables-BCkyLoXK.d.ts} +7 -10
  102. package/package.json +1 -2
  103. package/dist/chunks/chunk-6K4ROGDD.js.map +0 -1
  104. package/dist/chunks/chunk-GUDRSXIP.js.map +0 -1
  105. package/dist/chunks/chunk-LN74Z5QM.js.map +0 -1
  106. package/dist/chunks/chunk-O5N4DCU6.js.map +0 -1
  107. package/dist/chunks/chunk-TJ6ZOT7A.js.map +0 -1
  108. package/dist/test.context-L609DNAz.d.ts +0 -58
@@ -22878,12 +22878,6 @@
22878
22878
  }
22879
22879
  ]
22880
22880
  },
22881
- {
22882
- "kind": "javascript-module",
22883
- "path": "src/lib/qti-components/qti-response-processing/qti-expression/qti-gcd/qti.gcd.spec.ts",
22884
- "declarations": [],
22885
- "exports": []
22886
- },
22887
22881
  {
22888
22882
  "kind": "javascript-module",
22889
22883
  "path": "src/lib/qti-components/qti-interaction/internal/choices/choices.spec.ts",
@@ -23009,6 +23003,155 @@
23009
23003
  }
23010
23004
  ]
23011
23005
  },
23006
+ {
23007
+ "kind": "javascript-module",
23008
+ "path": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.spec.ts",
23009
+ "declarations": [
23010
+ {
23011
+ "kind": "class",
23012
+ "description": "",
23013
+ "name": "TestElement",
23014
+ "members": [
23015
+ {
23016
+ "kind": "field",
23017
+ "name": "class",
23018
+ "type": {
23019
+ "text": "string"
23020
+ },
23021
+ "attribute": "class",
23022
+ "reflects": true,
23023
+ "inheritedFrom": {
23024
+ "name": "VocabularyMixin",
23025
+ "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23026
+ }
23027
+ },
23028
+ {
23029
+ "kind": "field",
23030
+ "name": "shuffle",
23031
+ "type": {
23032
+ "text": "boolean"
23033
+ }
23034
+ },
23035
+ {
23036
+ "kind": "method",
23037
+ "name": "validate",
23038
+ "return": {
23039
+ "type": {
23040
+ "text": "boolean"
23041
+ }
23042
+ },
23043
+ "type": {
23044
+ "text": "validate() => boolean"
23045
+ }
23046
+ },
23047
+ {
23048
+ "kind": "field",
23049
+ "name": "value",
23050
+ "readonly": true
23051
+ },
23052
+ {
23053
+ "kind": "field",
23054
+ "name": "_classes",
23055
+ "type": {
23056
+ "text": "string[]"
23057
+ },
23058
+ "privacy": "private",
23059
+ "default": "[]",
23060
+ "inheritedFrom": {
23061
+ "name": "VocabularyMixin",
23062
+ "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23063
+ }
23064
+ },
23065
+ {
23066
+ "kind": "field",
23067
+ "name": "_allLabels",
23068
+ "type": {
23069
+ "text": "array"
23070
+ },
23071
+ "privacy": "private",
23072
+ "default": "['qti-labels-decimal', 'qti-labels-lower-alpha', 'qti-labels-upper-alpha']",
23073
+ "inheritedFrom": {
23074
+ "name": "VocabularyMixin",
23075
+ "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23076
+ }
23077
+ },
23078
+ {
23079
+ "kind": "field",
23080
+ "name": "_allLabelSuffixes",
23081
+ "privacy": "private",
23082
+ "default": "['qti-labels-suffix-period', 'qti-labels-suffix-parenthesis']",
23083
+ "inheritedFrom": {
23084
+ "name": "VocabularyMixin",
23085
+ "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23086
+ }
23087
+ },
23088
+ {
23089
+ "kind": "method",
23090
+ "name": "_addLabels",
23091
+ "privacy": "private",
23092
+ "inheritedFrom": {
23093
+ "name": "VocabularyMixin",
23094
+ "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23095
+ }
23096
+ },
23097
+ {
23098
+ "kind": "method",
23099
+ "name": "_getLabel",
23100
+ "privacy": "private",
23101
+ "parameters": [
23102
+ {
23103
+ "name": "index",
23104
+ "type": {
23105
+ "text": "number"
23106
+ }
23107
+ }
23108
+ ],
23109
+ "inheritedFrom": {
23110
+ "name": "VocabularyMixin",
23111
+ "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23112
+ }
23113
+ }
23114
+ ],
23115
+ "mixins": [
23116
+ {
23117
+ "name": "VocabularyMixin",
23118
+ "module": "/src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin"
23119
+ }
23120
+ ],
23121
+ "superclass": {
23122
+ "name": "Interaction",
23123
+ "module": "/src/lib/exports/interaction"
23124
+ },
23125
+ "tagName": "test-element",
23126
+ "customElement": true,
23127
+ "attributes": [
23128
+ {
23129
+ "name": "class",
23130
+ "type": {
23131
+ "text": "string"
23132
+ },
23133
+ "fieldName": "class",
23134
+ "inheritedFrom": {
23135
+ "name": "VocabularyMixin",
23136
+ "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23137
+ }
23138
+ }
23139
+ ],
23140
+ "modulePath": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.spec.ts",
23141
+ "definitionPath": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.spec.ts"
23142
+ }
23143
+ ],
23144
+ "exports": [
23145
+ {
23146
+ "kind": "custom-element-definition",
23147
+ "name": "test-element",
23148
+ "declaration": {
23149
+ "name": "TestElement",
23150
+ "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.spec.ts"
23151
+ }
23152
+ }
23153
+ ]
23154
+ },
23012
23155
  {
23013
23156
  "kind": "javascript-module",
23014
23157
  "path": "src/lib/qti-components/qti-interaction/internal/shuffle/shuffle.stories.ts",
@@ -23163,152 +23306,9 @@
23163
23306
  },
23164
23307
  {
23165
23308
  "kind": "javascript-module",
23166
- "path": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.spec.ts",
23167
- "declarations": [
23168
- {
23169
- "kind": "class",
23170
- "description": "",
23171
- "name": "TestElement",
23172
- "members": [
23173
- {
23174
- "kind": "field",
23175
- "name": "class",
23176
- "type": {
23177
- "text": "string"
23178
- },
23179
- "attribute": "class",
23180
- "reflects": true,
23181
- "inheritedFrom": {
23182
- "name": "VocabularyMixin",
23183
- "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23184
- }
23185
- },
23186
- {
23187
- "kind": "field",
23188
- "name": "shuffle",
23189
- "type": {
23190
- "text": "boolean"
23191
- }
23192
- },
23193
- {
23194
- "kind": "method",
23195
- "name": "validate",
23196
- "return": {
23197
- "type": {
23198
- "text": "boolean"
23199
- }
23200
- },
23201
- "type": {
23202
- "text": "validate() => boolean"
23203
- }
23204
- },
23205
- {
23206
- "kind": "field",
23207
- "name": "value",
23208
- "readonly": true
23209
- },
23210
- {
23211
- "kind": "field",
23212
- "name": "_classes",
23213
- "type": {
23214
- "text": "string[]"
23215
- },
23216
- "privacy": "private",
23217
- "default": "[]",
23218
- "inheritedFrom": {
23219
- "name": "VocabularyMixin",
23220
- "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23221
- }
23222
- },
23223
- {
23224
- "kind": "field",
23225
- "name": "_allLabels",
23226
- "type": {
23227
- "text": "array"
23228
- },
23229
- "privacy": "private",
23230
- "default": "['qti-labels-decimal', 'qti-labels-lower-alpha', 'qti-labels-upper-alpha']",
23231
- "inheritedFrom": {
23232
- "name": "VocabularyMixin",
23233
- "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23234
- }
23235
- },
23236
- {
23237
- "kind": "field",
23238
- "name": "_allLabelSuffixes",
23239
- "privacy": "private",
23240
- "default": "['qti-labels-suffix-period', 'qti-labels-suffix-parenthesis']",
23241
- "inheritedFrom": {
23242
- "name": "VocabularyMixin",
23243
- "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23244
- }
23245
- },
23246
- {
23247
- "kind": "method",
23248
- "name": "_addLabels",
23249
- "privacy": "private",
23250
- "inheritedFrom": {
23251
- "name": "VocabularyMixin",
23252
- "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23253
- }
23254
- },
23255
- {
23256
- "kind": "method",
23257
- "name": "_getLabel",
23258
- "privacy": "private",
23259
- "parameters": [
23260
- {
23261
- "name": "index",
23262
- "type": {
23263
- "text": "number"
23264
- }
23265
- }
23266
- ],
23267
- "inheritedFrom": {
23268
- "name": "VocabularyMixin",
23269
- "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23270
- }
23271
- }
23272
- ],
23273
- "mixins": [
23274
- {
23275
- "name": "VocabularyMixin",
23276
- "module": "/src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin"
23277
- }
23278
- ],
23279
- "superclass": {
23280
- "name": "Interaction",
23281
- "module": "/src/lib/exports/interaction"
23282
- },
23283
- "tagName": "test-element",
23284
- "customElement": true,
23285
- "attributes": [
23286
- {
23287
- "name": "class",
23288
- "type": {
23289
- "text": "string"
23290
- },
23291
- "fieldName": "class",
23292
- "inheritedFrom": {
23293
- "name": "VocabularyMixin",
23294
- "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.ts"
23295
- }
23296
- }
23297
- ],
23298
- "modulePath": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.spec.ts",
23299
- "definitionPath": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.spec.ts"
23300
- }
23301
- ],
23302
- "exports": [
23303
- {
23304
- "kind": "custom-element-definition",
23305
- "name": "test-element",
23306
- "declaration": {
23307
- "name": "TestElement",
23308
- "module": "src/lib/qti-components/qti-interaction/internal/vocabulary/vocabulary-mixin.spec.ts"
23309
- }
23310
- }
23311
- ]
23309
+ "path": "src/lib/qti-components/qti-response-processing/qti-expression/qti-gcd/qti.gcd.spec.ts",
23310
+ "declarations": [],
23311
+ "exports": []
23312
23312
  },
23313
23313
  {
23314
23314
  "kind": "javascript-module",
@@ -2,13 +2,20 @@ import {
2
2
  item_default
3
3
  } from "./chunk-LSEB52SP.js";
4
4
  import {
5
- configContext,
6
5
  watch
7
- } from "./chunk-O5N4DCU6.js";
6
+ } from "./chunk-ELDMXTUQ.js";
8
7
  import {
9
- __decorateClass,
10
8
  qtiTransformItem
11
- } from "./chunk-JDY5GL7E.js";
9
+ } from "./chunk-WFUXZ4UT.js";
10
+ import {
11
+ computedItemContext
12
+ } from "./chunk-4OGJBG35.js";
13
+ import {
14
+ configContext
15
+ } from "./chunk-ERYHQVOT.js";
16
+ import {
17
+ __decorateClass
18
+ } from "./chunk-H2JE6IVU.js";
12
19
 
13
20
  // src/lib/qti-item/components/item-container.ts
14
21
  import { LitElement, html } from "lit";
@@ -91,12 +98,6 @@ ItemContainer = __decorateClass([
91
98
  import { consume } from "@lit/context";
92
99
  import { css, html as html2, LitElement as LitElement2 } from "lit";
93
100
  import { customElement as customElement2 } from "lit/decorators.js";
94
-
95
- // src/lib/exports/computed-item.context.ts
96
- import { createContext } from "@lit/context";
97
- var computedItemContext = createContext(Symbol("computedItemContext"));
98
-
99
- // src/lib/qti-item/components/print-item-variables.ts
100
101
  var PrintItemVariables = class extends LitElement2 {
101
102
  render() {
102
103
  const activeItem = this.computedContext;
@@ -361,4 +362,4 @@ export {
361
362
  ItemShowCorrectResponse,
362
363
  QtiItem
363
364
  };
364
- //# sourceMappingURL=chunk-6K4ROGDD.js.map
365
+ //# sourceMappingURL=chunk-4BDOB6KY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/qti-item/components/item-container.ts","../../src/lib/qti-item/components/print-item-variables.ts","../../src/lib/qti-item/components/item-show-correct-response.ts","../../src/lib/qti-item/components/styles.ts","../../src/lib/qti-item/core/qti-item.ts"],"sourcesContent":["import { LitElement, html } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\nimport { until } from 'lit/directives/until.js';\n\nimport { watch } from '../../decorators/watch';\nimport itemCss from '../../../item.css?inline';\nimport { qtiTransformItem } from '../../qti-transformers';\n\n/**\n * `<item-container>` is a custom element designed for hosting the qti-assessment-item.\n * The `qti-assessment-item` will be placed inside the shadow DOM of this element.\n * The element loads the item from the provided URL and renders it inside the shadow DOM.\n *\n * ### Styling\n * Add a class to the element for styling.\n *\n * ```html\n * <qti-item>\n * <item-container class=\"m-4 bg-white\" item-url=\"./path/to/item.xml\"></item-container>\n * </qti-item>\n * ```\n */\n@customElement('item-container')\nexport class ItemContainer extends LitElement {\n /** URL of the item to load */\n @property({ type: String, attribute: 'item-url' })\n itemURL: string = null;\n\n /** A parsed HTML document */\n @state()\n itemDoc: DocumentFragment = null;\n\n /** The raw XML string */\n @state()\n itemXML: string = null;\n\n /** Template content if provided */\n private templateContent = null;\n\n @watch('itemURL', { waitUntilFirstUpdate: true })\n protected async handleItemURLChange() {\n if (!this.itemURL) return;\n try {\n const { promise: api } = await qtiTransformItem().load(this.itemURL);\n this.itemDoc = (await api).htmlDoc();\n } catch (error) {\n console.error('Error loading or parsing XML:', error);\n }\n }\n\n @watch('itemXML', { waitUntilFirstUpdate: true })\n protected handleItemXMLChange() {\n if (!this.itemXML) return;\n try {\n this.itemDoc = qtiTransformItem().parse(this.itemXML).htmlDoc();\n } catch (error) {\n console.error('Error parsing XML:', error);\n }\n }\n\n async connectedCallback(): Promise<void> {\n super.connectedCallback();\n this.initializeTemplateContent();\n this.applyStyles();\n if (this.itemURL) {\n this.handleItemURLChange();\n }\n if (this.itemXML) {\n this.handleItemXMLChange();\n }\n }\n\n private initializeTemplateContent() {\n const template = this.querySelector('template') as HTMLTemplateElement;\n this.templateContent = template ? template.content : html``;\n }\n\n private applyStyles() {\n const sheet = new CSSStyleSheet();\n sheet.replaceSync(itemCss);\n this.shadowRoot.adoptedStyleSheets = [sheet];\n }\n\n render() {\n return html`\n ${this.templateContent}\n <slot></slot>\n ${until(this.itemDoc, html`<span>Loading...</span>`)}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'item-container': ItemContainer;\n }\n}\n","import { consume } from '@lit/context';\nimport { css, html, LitElement } from 'lit';\nimport { customElement } from 'lit/decorators.js';\n\nimport { computedItemContext } from '../../exports/computed-item.context';\n\nimport type { ResponseVariable } from '../../exports/variables';\nimport type { ComputedItemContext } from '../../exports/computed-item.context';\n\n@customElement('print-item-variables')\nexport class PrintItemVariables extends LitElement {\n @consume({ context: computedItemContext, subscribe: true })\n protected computedContext?: ComputedItemContext;\n\n static styles = css`\n table {\n width: 100%;\n border-collapse: collapse;\n margin: 20px 0;\n font-size: 14px;\n text-align: left;\n }\n th,\n td {\n border: 1px solid #ddd;\n padding: 8px;\n }\n th {\n background-color: #f4f4f4;\n font-weight: bold;\n }\n h3 {\n margin-top: 20px;\n font-size: 16px;\n }\n `;\n\n render() {\n const activeItem = this.computedContext;\n\n if (!activeItem || !activeItem.variables) return html``;\n\n const responseVariables: ResponseVariable[] = activeItem.variables.filter(v => v.type === 'response');\n const outcomeVariables = activeItem.variables.filter(v => v.type === 'outcome');\n\n const renderTable = (variables: ResponseVariable[], title: string) => html`\n <h3>${title}</h3>\n <table>\n <thead>\n <tr>\n <th>Identifier</th>\n <th>Value</th>\n <th>Cardinality</th>\n <th>Base Type</th>\n <th>Correct Response / Mappings</th>\n </tr>\n </thead>\n <tbody>\n ${variables.map(v => {\n const correctResponse = v.correctResponse\n ? Array.isArray(v.correctResponse)\n ? v.correctResponse.join(', ')\n : v.correctResponse\n : '';\n\n const mapEntries = v.mapping?.mapEntries?.map(m => `${m.mapKey}=${m.mappedValue}pt`).join(', ') || '';\n\n const areaMapEntries =\n v.areaMapping?.areaMapEntries?.map(m => `${m.shape}(${m.coords})=${m.mappedValue}pt`).join(', ') || '';\n\n return html`\n <tr>\n <td>${v.identifier}</td>\n <td>${Array.isArray(v.value) ? v.value.join(', ') : v.value}</td>\n <td>${v.cardinality}</td>\n <td>${v.baseType}</td>\n <td>${correctResponse || mapEntries || areaMapEntries}</td>\n </tr>\n `;\n })}\n </tbody>\n </table>\n `;\n\n return html`\n ${renderTable(responseVariables, 'Response Variables')} ${renderTable(outcomeVariables, 'Outcome Variables')}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'print-item-variables': PrintItemVariables;\n }\n}\n","import { css, html, LitElement } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { consume } from '@lit/context';\n\nimport * as styles from './styles';\nimport { computedItemContext } from '../../exports/computed-item.context';\n\nimport type { ComputedItemContext } from '../../exports/computed-item.context';\n\n@customElement('item-show-correct-response')\nexport class ItemShowCorrectResponse extends LitElement {\n @consume({ context: computedItemContext, subscribe: true })\n public computedContext?: ComputedItemContext;\n\n static styles = css`\n :host {\n ${styles.btn};\n }\n :host([disabled]) {\n ${styles.dis};\n }\n `;\n\n @property({ type: Boolean, reflect: true }) shown = false;\n @property({ type: Boolean, reflect: true }) disabled = false; // Reflects to `disabled` attribute\n @property({ type: String }) showCorrectText = 'Show correct response';\n @property({ type: String }) hideCorrectText = 'Hide correct response';\n @property({ type: String }) noCorrectResponseText = 'No correct response specified';\n\n private _hasCorrectResponse = false; // correct response is removed on certain point\n private _previousActiveItem = ''; // Store previous active item reference\n\n updated() {\n if (!this._hasCorrectResponse || this._previousActiveItem !== this.computedContext?.identifier) {\n this._previousActiveItem = this.computedContext?.identifier;\n const containsCorrectResponse = !!this.computedContext?.variables.some(v => v['correctResponse']);\n const containsMapping = !!this.computedContext?.variables.some(v => {\n return v['mapping']?.mapEntries?.length > 0 || v['areaMapping']?.areaMapEntries?.length > 0;\n });\n this._hasCorrectResponse = containsCorrectResponse || containsMapping;\n }\n this.disabled = !this._hasCorrectResponse;\n }\n\n private _toggleState() {\n if (this.disabled) return; // Prevent toggle if disabled\n\n this.dispatchEvent(\n new CustomEvent('item-show-correct-response', {\n detail: !this.shown,\n bubbles: true\n })\n );\n }\n\n private _getDisplayedText(): string {\n return this.disabled ? this.noCorrectResponseText : this.shown ? this.hideCorrectText : this.showCorrectText;\n }\n\n render() {\n return html` <div @click=\"${this._toggleState}\">${this._getDisplayedText()}</div> `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'item-show-correct-response': ItemShowCorrectResponse;\n }\n}\n","// /* eslint-disable lit-plugin(no-invalid-css) */\nimport { css } from 'lit';\n\nexport const form = css`\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n padding: 0.5rem 1rem;\n border-radius: 0.25rem;\n user-select: none;\n`;\n\nexport const btn = css`\n background-color: lightgray;\n ${form};\n`;\n\nexport const dis = css`\n cursor: not-allowed;\n opacity: 0.8;\n`;\n\nexport const ind = css`\n ${form};\n border: 1px solid gray;\n`;\n","import { provide } from '@lit/context';\nimport { html, LitElement } from 'lit';\nimport { customElement, state } from 'lit/decorators.js';\n\nimport { computedItemContext } from '../../exports/computed-item.context';\nimport { configContext } from '../../exports/config.context.ts';\n\nimport type { QtiAssessmentItem } from '../../qti-components/qti-assessment-item/qti-assessment-item.ts';\nimport type { ConfigContext, CorrectResponseMode } from '../../exports/config.context.ts';\nimport type { ItemContext } from '../../exports/item.context';\nimport type { VariableDeclaration } from '../../exports/variables';\nimport type { ComputedItemContext } from '../../exports/computed-item.context';\n\n/**\n * `<qti-item>` is a custom element designed for rendering a single `qti-assessment-item`.\n * It can also host some functionalities to interact with the item like scoring, showing feedback, etc.\n * Placing a mandatory `<item-container>` inside '<qti-item>' will load or parse the item and render it.\n * See `<item-container>` for more details.\n *\n * ```html\n * <qti-item>\n * <item-container class=\"m-4 bg-white\" item-url=\"./path/to/item.xml\"></item-container>\n * </qti-item>\n * ```\n */\n@customElement('qti-item')\nexport class QtiItem extends LitElement {\n @state()\n @provide({ context: computedItemContext })\n public computedContext: ComputedItemContext;\n private _qtiAssessmentItem?: QtiAssessmentItem;\n\n @state()\n @provide({ context: configContext })\n public configContext: ConfigContext = {};\n\n // Store event handlers as instance properties\n private _onItemContextChanged = this._handleItemContextChanged.bind(this);\n private _onAssessmentItemConnected = this._handleAssessmentItemConnected.bind(this);\n\n private _onHandleShowCorrectResponse = this._handleShowCorrectResponse.bind(this);\n private _onHandleShowCandidateCorrection = this._handleShowCandidateCorrection.bind(this);\n private _onHandleSwitchCorrectResponseMode = this._handleSwitchCorrectResponseMode.bind(this);\n\n constructor() {\n super();\n this.addEventListener('qti-item-context-updated', this._onItemContextChanged);\n this.addEventListener('qti-assessment-item-connected', this._onAssessmentItemConnected);\n this.addEventListener('item-show-correct-response', this._onHandleShowCorrectResponse);\n this.addEventListener('item-show-candidate-correction', this._onHandleShowCandidateCorrection);\n this.addEventListener('item-switch-correct-response-mode', this._onHandleSwitchCorrectResponseMode);\n }\n\n private _handleItemContextChanged(e: CustomEvent<{ itemContext: ItemContext }>) {\n this._updateItemVariablesInTestContext(e.detail.itemContext.identifier, e.detail?.itemContext?.variables || []);\n }\n\n private _handleAssessmentItemConnected(e: CustomEvent<QtiAssessmentItem>) {\n const fullVariables = (e.detail as any)._context.variables;\n this._qtiAssessmentItem = e.detail;\n this.computedContext =\n this.computedContext?.identifier === this._qtiAssessmentItem.identifier\n ? { ...this.computedContext, title: this._qtiAssessmentItem.title }\n : ({\n identifier: this._qtiAssessmentItem.identifier,\n title: this._qtiAssessmentItem.title,\n adaptive: this._qtiAssessmentItem.getAttribute('adaptive')?.toLowerCase() === 'true' || false,\n variables: fullVariables,\n correctResponseMode: 'internal'\n } as ComputedItemContext);\n this._updateItemVariablesInTestContext(this._qtiAssessmentItem.identifier, fullVariables || []);\n }\n\n private _handleShowCorrectResponse(e: CustomEvent<boolean>) {\n if (this._qtiAssessmentItem) {\n this._qtiAssessmentItem.showCorrectResponse(e.detail);\n }\n }\n\n private _handleShowCandidateCorrection(e: CustomEvent<boolean>) {\n if (this._qtiAssessmentItem) {\n this._qtiAssessmentItem.showCandidateCorrection(e.detail);\n }\n }\n\n private _handleSwitchCorrectResponseMode(e: CustomEvent<CorrectResponseMode>) {\n // Switch off the correct response first\n this._handleShowCorrectResponse(new CustomEvent('item-show-correct-response', { detail: false, bubbles: true }));\n\n this.configContext = {\n ...this.configContext,\n correctResponseMode: e.detail\n };\n }\n\n private _updateItemVariablesInTestContext(\n identifier: string,\n variables: readonly VariableDeclaration<string | string[] | null>[]\n ): void {\n const rawscore = variables?.find(vr => vr.identifier == 'SCORE')?.value;\n const score = parseFloat(rawscore?.toString());\n const completionStatus = variables?.find(v => v.identifier === 'completionStatus')?.value;\n\n const correct = score !== undefined && !isNaN(score) && score > 0;\n const incorrect = score !== undefined && !isNaN(score) && score <= 0;\n const completed = completionStatus === 'completed';\n this.computedContext = {\n ...this.computedContext,\n identifier,\n correct,\n incorrect,\n completed,\n variables\n };\n }\n\n render() {\n return html`<slot></slot>`;\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('qti-item-context-changed', this._onItemContextChanged);\n this.removeEventListener('qti-assessment-item-connected', this._onAssessmentItemConnected);\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'qti-item': QtiItem;\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,SAAS,YAAY,YAAY;AACjC,SAAS,eAAe,UAAU,aAAa;AAC/C,SAAS,aAAa;AAqBf,IAAM,gBAAN,cAA4B,WAAW;AAAA,EAAvC;AAAA;AAGL,mBAAkB;AAIlB,mBAA4B;AAI5B,mBAAkB;AAGlB;AAAA,SAAQ,kBAAkB;AAAA;AAAA,EAG1B,MAAgB,sBAAsB;AACpC,QAAI,CAAC,KAAK,QAAS;AACnB,QAAI;AACF,YAAM,EAAE,SAAS,IAAI,IAAI,MAAM,iBAAiB,EAAE,KAAK,KAAK,OAAO;AACnE,WAAK,WAAW,MAAM,KAAK,QAAQ;AAAA,IACrC,SAAS,OAAO;AACd,cAAQ,MAAM,iCAAiC,KAAK;AAAA,IACtD;AAAA,EACF;AAAA,EAGU,sBAAsB;AAC9B,QAAI,CAAC,KAAK,QAAS;AACnB,QAAI;AACF,WAAK,UAAU,iBAAiB,EAAE,MAAM,KAAK,OAAO,EAAE,QAAQ;AAAA,IAChE,SAAS,OAAO;AACd,cAAQ,MAAM,sBAAsB,KAAK;AAAA,IAC3C;AAAA,EACF;AAAA,EAEA,MAAM,oBAAmC;AACvC,UAAM,kBAAkB;AACxB,SAAK,0BAA0B;AAC/B,SAAK,YAAY;AACjB,QAAI,KAAK,SAAS;AAChB,WAAK,oBAAoB;AAAA,IAC3B;AACA,QAAI,KAAK,SAAS;AAChB,WAAK,oBAAoB;AAAA,IAC3B;AAAA,EACF;AAAA,EAEQ,4BAA4B;AAClC,UAAM,WAAW,KAAK,cAAc,UAAU;AAC9C,SAAK,kBAAkB,WAAW,SAAS,UAAU;AAAA,EACvD;AAAA,EAEQ,cAAc;AACpB,UAAM,QAAQ,IAAI,cAAc;AAChC,UAAM,YAAY,YAAO;AACzB,SAAK,WAAW,qBAAqB,CAAC,KAAK;AAAA,EAC7C;AAAA,EAEA,SAAS;AACP,WAAO;AAAA,QACH,KAAK,eAAe;AAAA;AAAA,QAEpB,MAAM,KAAK,SAAS,6BAA6B,CAAC;AAAA;AAAA,EAExD;AACF;AAhEE;AAAA,EADC,SAAS,EAAE,MAAM,QAAQ,WAAW,WAAW,CAAC;AAAA,GAFtC,cAGX;AAIA;AAAA,EADC,MAAM;AAAA,GANI,cAOX;AAIA;AAAA,EADC,MAAM;AAAA,GAVI,cAWX;AAMgB;AAAA,EADf,MAAM,WAAW,EAAE,sBAAsB,KAAK,CAAC;AAAA,GAhBrC,cAiBK;AAWN;AAAA,EADT,MAAM,WAAW,EAAE,sBAAsB,KAAK,CAAC;AAAA,GA3BrC,cA4BD;AA5BC,gBAAN;AAAA,EADN,cAAc,gBAAgB;AAAA,GAClB;;;ACvBb,SAAS,eAAe;AACxB,SAAS,KAAK,QAAAA,OAAM,cAAAC,mBAAkB;AACtC,SAAS,iBAAAC,sBAAqB;AAQvB,IAAM,qBAAN,cAAiCC,YAAW;AAAA,EA2BjD,SAAS;AACP,UAAM,aAAa,KAAK;AAExB,QAAI,CAAC,cAAc,CAAC,WAAW,UAAW,QAAOC;AAEjD,UAAM,oBAAwC,WAAW,UAAU,OAAO,OAAK,EAAE,SAAS,UAAU;AACpG,UAAM,mBAAmB,WAAW,UAAU,OAAO,OAAK,EAAE,SAAS,SAAS;AAE9E,UAAM,cAAc,CAAC,WAA+B,UAAkBA;AAAA,YAC9D,KAAK;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAYL,UAAU,IAAI,OAAK;AACnB,YAAM,kBAAkB,EAAE,kBACtB,MAAM,QAAQ,EAAE,eAAe,IAC7B,EAAE,gBAAgB,KAAK,IAAI,IAC3B,EAAE,kBACJ;AAEJ,YAAM,aAAa,EAAE,SAAS,YAAY,IAAI,OAAK,GAAG,EAAE,MAAM,IAAI,EAAE,WAAW,IAAI,EAAE,KAAK,IAAI,KAAK;AAEnG,YAAM,iBACJ,EAAE,aAAa,gBAAgB,IAAI,OAAK,GAAG,EAAE,KAAK,IAAI,EAAE,MAAM,KAAK,EAAE,WAAW,IAAI,EAAE,KAAK,IAAI,KAAK;AAEtG,aAAOA;AAAA;AAAA,sBAEG,EAAE,UAAU;AAAA,sBACZ,MAAM,QAAQ,EAAE,KAAK,IAAI,EAAE,MAAM,KAAK,IAAI,IAAI,EAAE,KAAK;AAAA,sBACrD,EAAE,WAAW;AAAA,sBACb,EAAE,QAAQ;AAAA,sBACV,mBAAmB,cAAc,cAAc;AAAA;AAAA;AAAA,IAG3D,CAAC,CAAC;AAAA;AAAA;AAAA;AAKR,WAAOA;AAAA,QACH,YAAY,mBAAmB,oBAAoB,CAAC,IAAI,YAAY,kBAAkB,mBAAmB,CAAC;AAAA;AAAA,EAEhH;AACF;AA9Ea,mBAIJ,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAFN;AAAA,EADT,QAAQ,EAAE,SAAS,qBAAqB,WAAW,KAAK,CAAC;AAAA,GAD/C,mBAED;AAFC,qBAAN;AAAA,EADNC,eAAc,sBAAsB;AAAA,GACxB;;;ACVb,SAAS,OAAAC,MAAK,QAAAC,OAAM,cAAAC,mBAAkB;AACtC,SAAS,iBAAAC,gBAAe,YAAAC,iBAAgB;AACxC,SAAS,WAAAC,gBAAe;;;ACDxB,SAAS,OAAAC,YAAW;AAEb,IAAM,OAAOA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AASb,IAAM,MAAMA;AAAA;AAAA,IAEf,IAAI;AAAA;AAGD,IAAM,MAAMA;AAAA;AAAA;AAAA;AAKZ,IAAM,MAAMA;AAAA,IACf,IAAI;AAAA;AAAA;;;ADbD,IAAM,0BAAN,cAAsCC,YAAW;AAAA,EAAjD;AAAA;AAauC,iBAAQ;AACR,oBAAW;AAC3B,2BAAkB;AAClB,2BAAkB;AAClB,iCAAwB;AAEpD,SAAQ,sBAAsB;AAC9B;AAAA,SAAQ,sBAAsB;AAAA;AAAA;AAAA,EAE9B,UAAU;AACR,QAAI,CAAC,KAAK,uBAAuB,KAAK,wBAAwB,KAAK,iBAAiB,YAAY;AAC9F,WAAK,sBAAsB,KAAK,iBAAiB;AACjD,YAAM,0BAA0B,CAAC,CAAC,KAAK,iBAAiB,UAAU,KAAK,OAAK,EAAE,iBAAiB,CAAC;AAChG,YAAM,kBAAkB,CAAC,CAAC,KAAK,iBAAiB,UAAU,KAAK,OAAK;AAClE,eAAO,EAAE,SAAS,GAAG,YAAY,SAAS,KAAK,EAAE,aAAa,GAAG,gBAAgB,SAAS;AAAA,MAC5F,CAAC;AACD,WAAK,sBAAsB,2BAA2B;AAAA,IACxD;AACA,SAAK,WAAW,CAAC,KAAK;AAAA,EACxB;AAAA,EAEQ,eAAe;AACrB,QAAI,KAAK,SAAU;AAEnB,SAAK;AAAA,MACH,IAAI,YAAY,8BAA8B;AAAA,QAC5C,QAAQ,CAAC,KAAK;AAAA,QACd,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAAA,EACF;AAAA,EAEQ,oBAA4B;AAClC,WAAO,KAAK,WAAW,KAAK,wBAAwB,KAAK,QAAQ,KAAK,kBAAkB,KAAK;AAAA,EAC/F;AAAA,EAEA,SAAS;AACP,WAAOC,sBAAqB,KAAK,YAAY,KAAK,KAAK,kBAAkB,CAAC;AAAA,EAC5E;AACF;AApDa,wBAIJ,SAASC;AAAA;AAAA,QAEH,GAAG;AAAA;AAAA;AAAA,QAGH,GAAG;AAAA;AAAA;AAPT;AAAA,EADNC,SAAQ,EAAE,SAAS,qBAAqB,WAAW,KAAK,CAAC;AAAA,GAD/C,wBAEJ;AAWqC;AAAA,EAA3CC,UAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GAb/B,wBAaiC;AACA;AAAA,EAA3CA,UAAS,EAAE,MAAM,SAAS,SAAS,KAAK,CAAC;AAAA,GAd/B,wBAciC;AAChB;AAAA,EAA3BA,UAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAff,wBAeiB;AACA;AAAA,EAA3BA,UAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAhBf,wBAgBiB;AACA;AAAA,EAA3BA,UAAS,EAAE,MAAM,OAAO,CAAC;AAAA,GAjBf,wBAiBiB;AAjBjB,0BAAN;AAAA,EADNC,eAAc,4BAA4B;AAAA,GAC9B;;;AEVb,SAAS,eAAe;AACxB,SAAS,QAAAC,OAAM,cAAAC,mBAAkB;AACjC,SAAS,iBAAAC,gBAAe,SAAAC,cAAa;AAwB9B,IAAM,UAAN,cAAsBC,YAAW;AAAA,EAkBtC,cAAc;AACZ,UAAM;AAXR,SAAO,gBAA+B,CAAC;AAGvC;AAAA,SAAQ,wBAAwB,KAAK,0BAA0B,KAAK,IAAI;AACxE,SAAQ,6BAA6B,KAAK,+BAA+B,KAAK,IAAI;AAElF,SAAQ,+BAA+B,KAAK,2BAA2B,KAAK,IAAI;AAChF,SAAQ,mCAAmC,KAAK,+BAA+B,KAAK,IAAI;AACxF,SAAQ,qCAAqC,KAAK,iCAAiC,KAAK,IAAI;AAI1F,SAAK,iBAAiB,4BAA4B,KAAK,qBAAqB;AAC5E,SAAK,iBAAiB,iCAAiC,KAAK,0BAA0B;AACtF,SAAK,iBAAiB,8BAA8B,KAAK,4BAA4B;AACrF,SAAK,iBAAiB,kCAAkC,KAAK,gCAAgC;AAC7F,SAAK,iBAAiB,qCAAqC,KAAK,kCAAkC;AAAA,EACpG;AAAA,EAEQ,0BAA0B,GAA8C;AAC9E,SAAK,kCAAkC,EAAE,OAAO,YAAY,YAAY,EAAE,QAAQ,aAAa,aAAa,CAAC,CAAC;AAAA,EAChH;AAAA,EAEQ,+BAA+B,GAAmC;AACxE,UAAM,gBAAiB,EAAE,OAAe,SAAS;AACjD,SAAK,qBAAqB,EAAE;AAC5B,SAAK,kBACH,KAAK,iBAAiB,eAAe,KAAK,mBAAmB,aACzD,EAAE,GAAG,KAAK,iBAAiB,OAAO,KAAK,mBAAmB,MAAM,IAC/D;AAAA,MACC,YAAY,KAAK,mBAAmB;AAAA,MACpC,OAAO,KAAK,mBAAmB;AAAA,MAC/B,UAAU,KAAK,mBAAmB,aAAa,UAAU,GAAG,YAAY,MAAM,UAAU;AAAA,MACxF,WAAW;AAAA,MACX,qBAAqB;AAAA,IACvB;AACN,SAAK,kCAAkC,KAAK,mBAAmB,YAAY,iBAAiB,CAAC,CAAC;AAAA,EAChG;AAAA,EAEQ,2BAA2B,GAAyB;AAC1D,QAAI,KAAK,oBAAoB;AAC3B,WAAK,mBAAmB,oBAAoB,EAAE,MAAM;AAAA,IACtD;AAAA,EACF;AAAA,EAEQ,+BAA+B,GAAyB;AAC9D,QAAI,KAAK,oBAAoB;AAC3B,WAAK,mBAAmB,wBAAwB,EAAE,MAAM;AAAA,IAC1D;AAAA,EACF;AAAA,EAEQ,iCAAiC,GAAqC;AAE5E,SAAK,2BAA2B,IAAI,YAAY,8BAA8B,EAAE,QAAQ,OAAO,SAAS,KAAK,CAAC,CAAC;AAE/G,SAAK,gBAAgB;AAAA,MACnB,GAAG,KAAK;AAAA,MACR,qBAAqB,EAAE;AAAA,IACzB;AAAA,EACF;AAAA,EAEQ,kCACN,YACA,WACM;AACN,UAAM,WAAW,WAAW,KAAK,QAAM,GAAG,cAAc,OAAO,GAAG;AAClE,UAAM,QAAQ,WAAW,UAAU,SAAS,CAAC;AAC7C,UAAM,mBAAmB,WAAW,KAAK,OAAK,EAAE,eAAe,kBAAkB,GAAG;AAEpF,UAAM,UAAU,UAAU,UAAa,CAAC,MAAM,KAAK,KAAK,QAAQ;AAChE,UAAM,YAAY,UAAU,UAAa,CAAC,MAAM,KAAK,KAAK,SAAS;AACnE,UAAM,YAAY,qBAAqB;AACvC,SAAK,kBAAkB;AAAA,MACrB,GAAG,KAAK;AAAA,MACR;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA,EAEA,SAAS;AACP,WAAOC;AAAA,EACT;AAAA,EAES,uBAAuB;AAC9B,UAAM,qBAAqB;AAC3B,SAAK,oBAAoB,4BAA4B,KAAK,qBAAqB;AAC/E,SAAK,oBAAoB,iCAAiC,KAAK,0BAA0B;AAAA,EAC3F;AACF;AAhGS;AAAA,EAFNC,OAAM;AAAA,EACN,QAAQ,EAAE,SAAS,oBAAoB,CAAC;AAAA,GAF9B,QAGJ;AAKA;AAAA,EAFNA,OAAM;AAAA,EACN,QAAQ,EAAE,SAAS,cAAc,CAAC;AAAA,GAPxB,QAQJ;AARI,UAAN;AAAA,EADNC,eAAc,UAAU;AAAA,GACZ;","names":["html","LitElement","customElement","LitElement","html","customElement","css","html","LitElement","customElement","property","consume","css","LitElement","html","css","consume","property","customElement","html","LitElement","customElement","state","LitElement","html","state","customElement"]}
@@ -0,0 +1,8 @@
1
+ // src/lib/exports/computed-item.context.ts
2
+ import { createContext } from "@lit/context";
3
+ var computedItemContext = createContext(Symbol("computedItemContext"));
4
+
5
+ export {
6
+ computedItemContext
7
+ };
8
+ //# sourceMappingURL=chunk-4OGJBG35.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/exports/computed-item.context.ts"],"sourcesContent":["import { createContext } from '@lit/context';\n\nimport type { VariableDeclaration } from './variables';\n\nexport type ComputedItemContext = {\n identifier: string;\n href?: string;\n correct?: boolean;\n incorrect?: boolean;\n completed?: boolean;\n adaptive?: boolean;\n timeDependent?: boolean;\n title?: string;\n label?: string;\n score?: number;\n maxScore?: number;\n completionStatus?: string;\n variables: ReadonlyArray<VariableDeclaration<string | string[] | null>>;\n};\n\nexport const computedItemContext = createContext<Readonly<ComputedItemContext>>(Symbol('computedItemContext'));\n"],"mappings":";AAAA,SAAS,qBAAqB;AAoBvB,IAAM,sBAAsB,cAA6C,OAAO,qBAAqB,CAAC;","names":[]}