@gmb/bitmark-parser-generator 1.2.0 → 1.2.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 (181) hide show
  1. package/dist/browser/bitmark-parser-generator-antlr.min.js +1 -1
  2. package/dist/browser/bitmark-parser-generator.min.js +1 -1
  3. package/dist/browser/bundle-report.html +2 -2
  4. package/dist/cjs/ast/BaseBuilder.js +22 -22
  5. package/dist/cjs/ast/BaseBuilder.js.map +1 -1
  6. package/dist/cjs/ast/Builder.js +120 -80
  7. package/dist/cjs/ast/Builder.js.map +1 -1
  8. package/dist/cjs/config/bits/appFlashcardsBitConfig.js +20 -0
  9. package/dist/cjs/config/bits/appFlashcardsBitConfig.js.map +1 -0
  10. package/dist/cjs/config/bits/flashcardBitConfig.js +6 -2
  11. package/dist/cjs/config/bits/flashcardBitConfig.js.map +1 -1
  12. package/dist/cjs/config/bits/generic/cardSetBitConfigs.js +16 -2
  13. package/dist/cjs/config/bits/generic/cardSetBitConfigs.js.map +1 -1
  14. package/dist/cjs/config/bits/generic/standardBitConfigs.js +18 -0
  15. package/dist/cjs/config/bits/generic/standardBitConfigs.js.map +1 -1
  16. package/dist/cjs/config/config.js +7 -1
  17. package/dist/cjs/config/config.js.map +1 -1
  18. package/dist/cjs/config/properties/colorTagPropertyConfig.js +8 -0
  19. package/dist/cjs/config/properties/colorTagPropertyConfig.js.map +1 -0
  20. package/dist/cjs/config/properties/flashcardSetPropertyConfig.js +8 -0
  21. package/dist/cjs/config/properties/flashcardSetPropertyConfig.js.map +1 -0
  22. package/dist/cjs/config/properties/iconPropertyConfig.js +9 -0
  23. package/dist/cjs/config/properties/iconPropertyConfig.js.map +1 -0
  24. package/dist/cjs/config/properties/iconTagPropertyConfig.js +9 -0
  25. package/dist/cjs/config/properties/iconTagPropertyConfig.js.map +1 -0
  26. package/dist/cjs/config/properties/tagPropertyConfig.js +8 -0
  27. package/dist/cjs/config/properties/tagPropertyConfig.js.map +1 -0
  28. package/dist/cjs/config/properties/targetPropertyConfig.js +8 -0
  29. package/dist/cjs/config/properties/targetPropertyConfig.js.map +1 -0
  30. package/dist/cjs/generated/build-info.js +1 -1
  31. package/dist/cjs/generated/parser/bitmark/bitmark-peggy-parser.js +161 -213
  32. package/dist/cjs/generated/parser/bitmark/bitmark-peggy-parser.js.map +1 -1
  33. package/dist/cjs/generator/bitmark/BitmarkGenerator.js +55 -12
  34. package/dist/cjs/generator/bitmark/BitmarkGenerator.js.map +1 -1
  35. package/dist/cjs/generator/json/JsonGenerator.js +52 -4
  36. package/dist/cjs/generator/json/JsonGenerator.js.map +1 -1
  37. package/dist/cjs/model/ast/NodeType.js +20 -0
  38. package/dist/cjs/model/ast/NodeType.js.map +1 -1
  39. package/dist/cjs/model/enum/BitType.js +21 -1
  40. package/dist/cjs/model/enum/BitType.js.map +1 -1
  41. package/dist/cjs/model/enum/CardSetType.js +1 -0
  42. package/dist/cjs/model/enum/CardSetType.js.map +1 -1
  43. package/dist/cjs/model/enum/PropertyKey.js +6 -0
  44. package/dist/cjs/model/enum/PropertyKey.js.map +1 -1
  45. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserHelper.js +21 -2
  46. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserHelper.js.map +1 -1
  47. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserProcessor.js +12 -0
  48. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserProcessor.js.map +1 -1
  49. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserTypes.js +1 -1
  50. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserTypes.js.map +1 -1
  51. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserValidator.js +10 -3
  52. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserValidator.js.map +1 -1
  53. package/dist/cjs/parser/bitmark/peg/contentProcessors/CardContentProcessor.js +172 -46
  54. package/dist/cjs/parser/bitmark/peg/contentProcessors/CardContentProcessor.js.map +1 -1
  55. package/dist/cjs/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.js +3 -1
  56. package/dist/cjs/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.js.map +1 -1
  57. package/dist/cjs/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.js +79 -9
  58. package/dist/cjs/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.js.map +1 -1
  59. package/dist/cjs/parser/json/JsonParser.js +25 -2
  60. package/dist/cjs/parser/json/JsonParser.js.map +1 -1
  61. package/dist/cjs/utils/BitUtils.js +62 -0
  62. package/dist/cjs/utils/BitUtils.js.map +1 -1
  63. package/dist/esm/ast/BaseBuilder.js +22 -22
  64. package/dist/esm/ast/BaseBuilder.js.map +1 -1
  65. package/dist/esm/ast/Builder.js +120 -80
  66. package/dist/esm/ast/Builder.js.map +1 -1
  67. package/dist/esm/config/bits/appFlashcardsBitConfig.js +18 -0
  68. package/dist/esm/config/bits/appFlashcardsBitConfig.js.map +1 -0
  69. package/dist/esm/config/bits/flashcardBitConfig.js +6 -2
  70. package/dist/esm/config/bits/flashcardBitConfig.js.map +1 -1
  71. package/dist/esm/config/bits/generic/cardSetBitConfigs.js +15 -2
  72. package/dist/esm/config/bits/generic/cardSetBitConfigs.js.map +1 -1
  73. package/dist/esm/config/bits/generic/standardBitConfigs.js +18 -0
  74. package/dist/esm/config/bits/generic/standardBitConfigs.js.map +1 -1
  75. package/dist/esm/config/config.js +7 -1
  76. package/dist/esm/config/config.js.map +1 -1
  77. package/dist/esm/config/properties/colorTagPropertyConfig.js +6 -0
  78. package/dist/esm/config/properties/colorTagPropertyConfig.js.map +1 -0
  79. package/dist/esm/config/properties/flashcardSetPropertyConfig.js +6 -0
  80. package/dist/esm/config/properties/flashcardSetPropertyConfig.js.map +1 -0
  81. package/dist/esm/config/properties/iconPropertyConfig.js +7 -0
  82. package/dist/esm/config/properties/iconPropertyConfig.js.map +1 -0
  83. package/dist/esm/config/properties/iconTagPropertyConfig.js +7 -0
  84. package/dist/esm/config/properties/iconTagPropertyConfig.js.map +1 -0
  85. package/dist/esm/config/properties/tagPropertyConfig.js +6 -0
  86. package/dist/esm/config/properties/tagPropertyConfig.js.map +1 -0
  87. package/dist/esm/config/properties/targetPropertyConfig.js +6 -0
  88. package/dist/esm/config/properties/targetPropertyConfig.js.map +1 -0
  89. package/dist/esm/generated/build-info.js +1 -1
  90. package/dist/esm/generated/parser/bitmark/bitmark-peggy-parser.js +161 -213
  91. package/dist/esm/generated/parser/bitmark/bitmark-peggy-parser.js.map +1 -1
  92. package/dist/esm/generator/bitmark/BitmarkGenerator.js +55 -12
  93. package/dist/esm/generator/bitmark/BitmarkGenerator.js.map +1 -1
  94. package/dist/esm/generator/json/JsonGenerator.js +52 -4
  95. package/dist/esm/generator/json/JsonGenerator.js.map +1 -1
  96. package/dist/esm/model/ast/NodeType.js +20 -0
  97. package/dist/esm/model/ast/NodeType.js.map +1 -1
  98. package/dist/esm/model/enum/BitType.js +21 -1
  99. package/dist/esm/model/enum/BitType.js.map +1 -1
  100. package/dist/esm/model/enum/CardSetType.js +1 -0
  101. package/dist/esm/model/enum/CardSetType.js.map +1 -1
  102. package/dist/esm/model/enum/PropertyKey.js +6 -0
  103. package/dist/esm/model/enum/PropertyKey.js.map +1 -1
  104. package/dist/esm/parser/bitmark/peg/BitmarkPegParserHelper.js +21 -2
  105. package/dist/esm/parser/bitmark/peg/BitmarkPegParserHelper.js.map +1 -1
  106. package/dist/esm/parser/bitmark/peg/BitmarkPegParserProcessor.js +12 -0
  107. package/dist/esm/parser/bitmark/peg/BitmarkPegParserProcessor.js.map +1 -1
  108. package/dist/esm/parser/bitmark/peg/BitmarkPegParserTypes.js +1 -1
  109. package/dist/esm/parser/bitmark/peg/BitmarkPegParserTypes.js.map +1 -1
  110. package/dist/esm/parser/bitmark/peg/BitmarkPegParserValidator.js +10 -3
  111. package/dist/esm/parser/bitmark/peg/BitmarkPegParserValidator.js.map +1 -1
  112. package/dist/esm/parser/bitmark/peg/contentProcessors/CardContentProcessor.js +173 -47
  113. package/dist/esm/parser/bitmark/peg/contentProcessors/CardContentProcessor.js.map +1 -1
  114. package/dist/esm/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.js +3 -1
  115. package/dist/esm/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.js.map +1 -1
  116. package/dist/esm/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.js +79 -9
  117. package/dist/esm/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.js.map +1 -1
  118. package/dist/esm/parser/json/JsonParser.js +25 -2
  119. package/dist/esm/parser/json/JsonParser.js.map +1 -1
  120. package/dist/esm/utils/BitUtils.js +62 -0
  121. package/dist/esm/utils/BitUtils.js.map +1 -1
  122. package/dist/types/ast/BaseBuilder.d.ts +8 -8
  123. package/dist/types/ast/Builder.d.ts +53 -6
  124. package/dist/types/ast/Builder.d.ts.map +1 -1
  125. package/dist/types/config/bits/appFlashcardsBitConfig.d.ts +2 -0
  126. package/dist/types/config/bits/appFlashcardsBitConfig.d.ts.map +1 -0
  127. package/dist/types/config/bits/generic/cardSetBitConfigs.d.ts +2 -1
  128. package/dist/types/config/bits/generic/cardSetBitConfigs.d.ts.map +1 -1
  129. package/dist/types/config/bits/generic/standardBitConfigs.d.ts.map +1 -1
  130. package/dist/types/config/config.d.ts +7 -1
  131. package/dist/types/config/config.d.ts.map +1 -1
  132. package/dist/types/config/properties/colorTagPropertyConfig.d.ts +2 -0
  133. package/dist/types/config/properties/colorTagPropertyConfig.d.ts.map +1 -0
  134. package/dist/types/config/properties/flashcardSetPropertyConfig.d.ts +2 -0
  135. package/dist/types/config/properties/flashcardSetPropertyConfig.d.ts.map +1 -0
  136. package/dist/types/config/properties/iconPropertyConfig.d.ts +2 -0
  137. package/dist/types/config/properties/iconPropertyConfig.d.ts.map +1 -0
  138. package/dist/types/config/properties/iconTagPropertyConfig.d.ts +2 -0
  139. package/dist/types/config/properties/iconTagPropertyConfig.d.ts.map +1 -0
  140. package/dist/types/config/properties/tagPropertyConfig.d.ts +2 -0
  141. package/dist/types/config/properties/tagPropertyConfig.d.ts.map +1 -0
  142. package/dist/types/config/properties/targetPropertyConfig.d.ts +2 -0
  143. package/dist/types/config/properties/targetPropertyConfig.d.ts.map +1 -0
  144. package/dist/types/generated/parser/bitmark/bitmark-peggy-parser.d.ts.map +1 -1
  145. package/dist/types/generator/bitmark/BitmarkGenerator.d.ts +7 -2
  146. package/dist/types/generator/bitmark/BitmarkGenerator.d.ts.map +1 -1
  147. package/dist/types/generator/json/JsonGenerator.d.ts +1 -0
  148. package/dist/types/generator/json/JsonGenerator.d.ts.map +1 -1
  149. package/dist/types/model/ast/NodeType.d.ts +36 -0
  150. package/dist/types/model/ast/NodeType.d.ts.map +1 -1
  151. package/dist/types/model/ast/Nodes.d.ts +23 -0
  152. package/dist/types/model/ast/Nodes.d.ts.map +1 -1
  153. package/dist/types/model/enum/BitType.d.ts +16 -2
  154. package/dist/types/model/enum/BitType.d.ts.map +1 -1
  155. package/dist/types/model/enum/CardSetType.d.ts +2 -0
  156. package/dist/types/model/enum/CardSetType.d.ts.map +1 -1
  157. package/dist/types/model/enum/PropertyKey.d.ts +12 -0
  158. package/dist/types/model/enum/PropertyKey.d.ts.map +1 -1
  159. package/dist/types/model/json/BitJson.d.ts +25 -7
  160. package/dist/types/model/json/BitJson.d.ts.map +1 -1
  161. package/dist/types/parser/bitmark/peg/BitmarkPegParserHelper.d.ts.map +1 -1
  162. package/dist/types/parser/bitmark/peg/BitmarkPegParserProcessor.d.ts +5 -0
  163. package/dist/types/parser/bitmark/peg/BitmarkPegParserProcessor.d.ts.map +1 -1
  164. package/dist/types/parser/bitmark/peg/BitmarkPegParserTypes.d.ts +8 -4
  165. package/dist/types/parser/bitmark/peg/BitmarkPegParserTypes.d.ts.map +1 -1
  166. package/dist/types/parser/bitmark/peg/BitmarkPegParserValidator.d.ts.map +1 -1
  167. package/dist/types/parser/bitmark/peg/contentProcessors/CardContentProcessor.d.ts.map +1 -1
  168. package/dist/types/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.d.ts +1 -1
  169. package/dist/types/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.d.ts.map +1 -1
  170. package/dist/types/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.d.ts.map +1 -1
  171. package/dist/types/parser/json/JsonParser.d.ts +1 -0
  172. package/dist/types/parser/json/JsonParser.d.ts.map +1 -1
  173. package/dist/types/utils/BitUtils.d.ts +24 -1
  174. package/dist/types/utils/BitUtils.d.ts.map +1 -1
  175. package/package.json +2 -2
  176. package/dist/cjs/config/bits/flashcard1BitConfig.js +0 -11
  177. package/dist/cjs/config/bits/flashcard1BitConfig.js.map +0 -1
  178. package/dist/esm/config/bits/flashcard1BitConfig.js +0 -9
  179. package/dist/esm/config/bits/flashcard1BitConfig.js.map +0 -1
  180. package/dist/types/config/bits/flashcard1BitConfig.d.ts +0 -2
  181. package/dist/types/config/bits/flashcard1BitConfig.d.ts.map +0 -1
@@ -10,7 +10,7 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import { Builder } from '../../../../ast/Builder';
13
- import { RootBitType } from '../../../../model/enum/BitType';
13
+ import { AliasBitType, RootBitType } from '../../../../model/enum/BitType';
14
14
  import { CardSetType } from '../../../../model/enum/CardSetType';
15
15
  import { ResourceType } from '../../../../model/enum/ResourceType';
16
16
  import { BitmarkPegParserValidator } from '../BitmarkPegParserValidator';
@@ -28,6 +28,9 @@ function buildCards(context, bitType, parsedCardSet, statementV1, statementsV1,
28
28
  const meta = RootBitType.getMetadata(bitType.root);
29
29
  const cardSetType = meta && ((_a = meta.cardSet) === null || _a === void 0 ? void 0 : _a.type);
30
30
  switch (cardSetType) {
31
+ case CardSetType.flashcards:
32
+ result = parseFlashcards(context, bitType, processedCardSet);
33
+ break;
31
34
  case CardSetType.elements:
32
35
  result = parseElements(context, bitType, processedCardSet);
33
36
  break;
@@ -82,14 +85,16 @@ function processCardSet(context, bitType, parsedCardSet) {
82
85
  variants: [],
83
86
  };
84
87
  processedCard.sides.push(processedSide);
85
- for (const content of side.variants) {
88
+ for (const variant of side.variants) {
89
+ const { parser, content } = variant;
86
90
  const processedVariant = {
91
+ parser,
87
92
  no: variantNo++,
88
93
  };
89
94
  processedSide.variants.push(processedVariant);
90
95
  const tags = context.bitContentProcessor(BitContentLevel.Card, bitType, content);
91
96
  if (context.DEBUG_CARD_TAGS)
92
- context.debugPrint('card tags (elements)', tags);
97
+ context.debugPrint('card tags', tags);
93
98
  // Validate the cardBody
94
99
  tags.cardBody = BitmarkPegParserValidator.checkCardBody(context, BitContentLevel.Card, bitType, tags.cardBody, processedCard.no, processedSide.no, processedVariant.no);
95
100
  processedVariant.data = tags;
@@ -103,6 +108,60 @@ function processCardSet(context, bitType, parsedCardSet) {
103
108
  }
104
109
  return processedCardSet;
105
110
  }
111
+ function parseFlashcards(context, bitType, cardSet) {
112
+ const flashcards = [];
113
+ let question = '';
114
+ let answer;
115
+ let alternativeAnswers = [];
116
+ let cardIndex = 0;
117
+ let variantIndex = 0;
118
+ let extraTags = {};
119
+ let questionVariant;
120
+ const onlyOneCardAllowed = bitType.alias === AliasBitType.flashcard1;
121
+ for (const card of cardSet.cards) {
122
+ // Reset the question and answers
123
+ question = '';
124
+ answer = undefined;
125
+ alternativeAnswers = [];
126
+ variantIndex = 0;
127
+ extraTags = {};
128
+ for (const side of card.sides) {
129
+ for (const content of side.variants) {
130
+ const _a = content.data, { cardBody } = _a, tags = __rest(_a, ["cardBody"]);
131
+ extraTags = Object.assign(Object.assign({}, extraTags), tags);
132
+ if (variantIndex === 0) {
133
+ questionVariant = content;
134
+ question = cardBody !== null && cardBody !== void 0 ? cardBody : '';
135
+ }
136
+ else if (variantIndex === 1) {
137
+ answer = cardBody !== null && cardBody !== void 0 ? cardBody : '';
138
+ }
139
+ else {
140
+ alternativeAnswers.push(cardBody !== null && cardBody !== void 0 ? cardBody : '');
141
+ }
142
+ variantIndex++;
143
+ }
144
+ }
145
+ // Add the flashcard
146
+ if (cardIndex === 0 || !onlyOneCardAllowed) {
147
+ // if (question) {
148
+ flashcards.push(builder.flashcard(Object.assign({ question,
149
+ answer, alternativeAnswers: alternativeAnswers.length > 0 ? alternativeAnswers : undefined }, extraTags)));
150
+ // } else {
151
+ // context.addWarning('Ignoring card with empty question', questionVariant);
152
+ // }
153
+ }
154
+ else {
155
+ // Only one card allowed, add a warning and ignore the card
156
+ context.addWarning(`Bit '${bitType.alias}' should only contain one card. Ignore subsequent card: '${question}'`, questionVariant);
157
+ break;
158
+ }
159
+ cardIndex++;
160
+ }
161
+ return {
162
+ flashcards: flashcards.length > 0 ? flashcards : undefined,
163
+ };
164
+ }
106
165
  function parseElements(_context, _bitType, cardSet) {
107
166
  var _a;
108
167
  const elements = [];
@@ -110,7 +169,11 @@ function parseElements(_context, _bitType, cardSet) {
110
169
  for (const side of card.sides) {
111
170
  for (const content of side.variants) {
112
171
  const tags = content.data;
172
+ // if (tags.cardBody) {
113
173
  elements.push((_a = tags.cardBody) !== null && _a !== void 0 ? _a : '');
174
+ // } else {
175
+ // context.addWarning('Ignoring card with empty element', content);
176
+ // }
114
177
  }
115
178
  }
116
179
  }
@@ -129,8 +192,12 @@ function parseStatements(_context, _bitType, cardSet, statementV1, statementsV1)
129
192
  // As .true-false only has one statement per card, we can just add the extra tags to the statement.
130
193
  if (Array.isArray(chainedStatements)) {
131
194
  for (const s of chainedStatements) {
195
+ // if (s.text) {
132
196
  const statement = builder.statement(Object.assign(Object.assign(Object.assign({}, s), s.itemLead), tags));
133
197
  statements.push(statement);
198
+ // } else {
199
+ // context.addWarning('Ignoring card with empty statement', content);
200
+ // }
134
201
  }
135
202
  }
136
203
  }
@@ -154,31 +221,40 @@ function parseQuiz(_context, bitType, cardSet, choicesV1, responsesV1) {
154
221
  const insertResponses = bitType.root === RootBitType.multipleResponse;
155
222
  if (!insertChoices && !insertResponses)
156
223
  return {};
224
+ let isDefaultExampleCard = false;
225
+ let exampleCard;
157
226
  for (const card of cardSet.cards) {
227
+ isDefaultExampleCard = false;
228
+ exampleCard = '';
158
229
  for (const side of card.sides) {
159
230
  for (const content of side.variants) {
160
- const tags = content.data;
161
- const isDefaultExample = tags.isDefaultExample || tags.example != undefined;
162
- if (insertResponses) {
163
- if (tags.trueFalse && tags.trueFalse.length > 0) {
164
- tags.responses = [];
165
- for (const tf of tags.trueFalse) {
166
- const response = builder.response(tf);
167
- tags.responses.push(response);
168
- }
169
- }
170
- }
171
- if (insertChoices) {
172
- if (tags.trueFalse && tags.trueFalse.length > 0) {
173
- tags.choices = [];
174
- for (const tf of tags.trueFalse) {
175
- const response = builder.choice(tf);
176
- tags.choices.push(response);
177
- }
231
+ const _a = content.data, { isDefaultExample, example } = _a, tags = __rest(_a, ["isDefaultExample", "example"]);
232
+ // Example
233
+ isDefaultExampleCard = isDefaultExample === true ? true : isDefaultExampleCard;
234
+ exampleCard = example ? example : exampleCard;
235
+ // Insert choices / responses
236
+ if (tags.trueFalse && tags.trueFalse.length > 0) {
237
+ const responsesOrChoices = [];
238
+ const builderFunc = insertResponses ? builder.response : builder.choice;
239
+ for (const tf of tags.trueFalse) {
240
+ const { isDefaultExample: isDefaultExampleTf, example: exampleTf } = tf, tfTags = __rest(tf, ["isDefaultExample", "example"]);
241
+ const isDefaultExample = isDefaultExampleTf || isDefaultExampleCard;
242
+ const example = exampleTf || exampleCard;
243
+ const response = builderFunc(Object.assign(Object.assign({}, tfTags), { isDefaultExample,
244
+ example }));
245
+ responsesOrChoices.push(response);
178
246
  }
247
+ if (insertResponses)
248
+ tags.responses = responsesOrChoices;
249
+ else
250
+ tags.choices = responsesOrChoices;
179
251
  }
180
- const quiz = builder.quiz(Object.assign(Object.assign({}, tags), { isDefaultExample }));
252
+ // if (tags.choices || tags.responses) {
253
+ const quiz = builder.quiz(Object.assign(Object.assign({}, tags), { isDefaultExample: isDefaultExampleCard, example: exampleCard }));
181
254
  quizzes.push(quiz);
255
+ // } else {
256
+ // context.addWarning('Ignoring card with empty quiz', content);
257
+ // }
182
258
  }
183
259
  }
184
260
  }
@@ -206,8 +282,13 @@ function parseQuestions(_context, _bitType, cardSet) {
206
282
  for (const side of card.sides) {
207
283
  for (const content of side.variants) {
208
284
  const tags = content.data;
285
+ // if (tags.cardBody) {
209
286
  const q = builder.question(Object.assign({ question: (_a = tags.cardBody) !== null && _a !== void 0 ? _a : '' }, tags));
210
287
  questions.push(q);
288
+ // }
289
+ // else {
290
+ // context.addWarning('Ignoring card with empty body text', content);
291
+ // }
211
292
  }
212
293
  }
213
294
  }
@@ -226,6 +307,11 @@ function parseMatchPairs(_context, _bitType, cardSet) {
226
307
  let keyAudio = undefined;
227
308
  let keyImage = undefined;
228
309
  let extraTags = {};
310
+ let isDefaultExampleCardSet = false;
311
+ let exampleCardSet;
312
+ let isDefaultExampleCard = false;
313
+ let exampleCard;
314
+ // let variant: ProcessedCardVariant | undefined;
229
315
  for (const card of cardSet.cards) {
230
316
  forKeys = undefined;
231
317
  pairKey = undefined;
@@ -234,16 +320,23 @@ function parseMatchPairs(_context, _bitType, cardSet) {
234
320
  keyImage = undefined;
235
321
  sideIdx = 0;
236
322
  extraTags = {};
323
+ isDefaultExampleCard = false;
324
+ exampleCard = '';
237
325
  for (const side of card.sides) {
238
326
  for (const content of side.variants) {
327
+ // variant = content;
239
328
  const _a = content.data, { cardBody, title, resources, isDefaultExample, example } = _a, tags = __rest(_a, ["cardBody", "title", "resources", "isDefaultExample", "example"]);
240
- const isExample = isDefaultExample || example != undefined;
329
+ // Example
330
+ isDefaultExampleCard = isDefaultExample === true ? true : isDefaultExampleCard;
331
+ exampleCard = example ? example : exampleCard;
241
332
  // Get the 'heading' which is the [#title] at level 1
242
333
  const heading = title && title[1];
243
334
  if (sideIdx === 0) {
244
335
  // First side
245
336
  if (heading != null) {
246
337
  forKeys = heading;
338
+ isDefaultExampleCardSet = isDefaultExample === true ? true : isDefaultExampleCardSet;
339
+ exampleCardSet = example ? example : exampleCardSet;
247
340
  }
248
341
  else if (Array.isArray(resources) && resources.length > 0) {
249
342
  // TODO - should search the correct resource type based on the bit type
@@ -265,18 +358,19 @@ function parseMatchPairs(_context, _bitType, cardSet) {
265
358
  // Subsequent sides
266
359
  if (heading != null) {
267
360
  forValues.push(heading);
361
+ isDefaultExampleCardSet = isDefaultExample === true ? true : isDefaultExampleCardSet;
362
+ exampleCardSet = example ? example : exampleCardSet;
268
363
  }
269
364
  else if (title == null) {
270
365
  // If not a heading, it is a pair
271
- pairValues.push(cardBody !== null && cardBody !== void 0 ? cardBody : '');
366
+ const value = cardBody !== null && cardBody !== void 0 ? cardBody : '';
367
+ pairValues.push(value);
368
+ if ((isDefaultExampleCardSet || isDefaultExampleCard) && !exampleCard)
369
+ exampleCard = value;
272
370
  }
273
371
  }
274
372
  // Extra tags
275
373
  extraTags = Object.assign(Object.assign(Object.assign({}, extraTags), tags), { isCaseSensitive: true });
276
- // Allow example from any card side
277
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
278
- if (isExample)
279
- extraTags.isDefaultExample = true;
280
374
  }
281
375
  sideIdx++;
282
376
  }
@@ -287,9 +381,19 @@ function parseMatchPairs(_context, _bitType, cardSet) {
287
381
  });
288
382
  }
289
383
  else {
290
- const pair = builder.pair(Object.assign({ key: pairKey !== null && pairKey !== void 0 ? pairKey : '', keyAudio,
291
- keyImage, values: pairValues, isShortAnswer: true }, extraTags));
384
+ // if (pairKey || keyAudio || keyImage) {
385
+ // Calculate final example and isDefaultExample
386
+ if (isDefaultExampleCard)
387
+ exampleCardSet = undefined;
388
+ const isDefaultExample = isDefaultExampleCard || isDefaultExampleCardSet;
389
+ const example = exampleCard || exampleCardSet;
390
+ const pair = builder.pair(Object.assign(Object.assign({ key: pairKey !== null && pairKey !== void 0 ? pairKey : '', keyAudio,
391
+ keyImage, values: pairValues, isShortAnswer: true }, extraTags), { isDefaultExample,
392
+ example }));
292
393
  pairs.push(pair);
394
+ // } else {
395
+ // context.addWarning('Ignoring card with empty body text', variant);
396
+ // }
293
397
  }
294
398
  }
295
399
  return {
@@ -307,11 +411,15 @@ function parseMatchMatrix(_context, _bitType, cardSet) {
307
411
  let matrixCells = [];
308
412
  let matrixCellValues = [];
309
413
  let matrixCellTags = {};
310
- let extraTagsSideLevel = {};
311
- let isDefaultExampleAllLevel = false;
312
- let isDefaultExampleMartixLevel = false;
414
+ let isDefaultExampleCardSet = false;
415
+ let exampleCardSet;
416
+ let isDefaultExampleCard = false;
417
+ let exampleCard;
418
+ let isDefaultExampleSide = false;
419
+ let exampleSide;
313
420
  // let keyAudio: AudioResource | undefined = undefined;
314
421
  // let keyImage: ImageResource | undefined = undefined;
422
+ // let variant: ProcessedCardVariant | undefined;
315
423
  for (const card of cardSet.cards) {
316
424
  forKeys = undefined;
317
425
  matrixKey = undefined;
@@ -320,15 +428,20 @@ function parseMatchMatrix(_context, _bitType, cardSet) {
320
428
  matrixCells = [];
321
429
  matrixCellValues = [];
322
430
  sideIdx = 0;
323
- isDefaultExampleMartixLevel = false;
431
+ isDefaultExampleCard = false;
432
+ exampleCard = '';
324
433
  for (const side of card.sides) {
325
434
  matrixCellValues = [];
326
435
  matrixCellTags = {};
327
- extraTagsSideLevel = {};
436
+ isDefaultExampleSide = false;
437
+ exampleSide = '';
328
438
  for (const content of side.variants) {
439
+ // variant = content;
329
440
  const tags = content.data;
330
441
  const { title, cardBody, isDefaultExample, example } = tags, restTags = __rest(tags, ["title", "cardBody", "isDefaultExample", "example"]);
331
- const isExample = isDefaultExample || example != undefined;
442
+ // Example
443
+ isDefaultExampleSide = isDefaultExample === true ? true : isDefaultExampleSide;
444
+ exampleSide = example ? example : exampleSide;
332
445
  // Merge the tags into the matrix cell tags
333
446
  Object.assign(matrixCellTags, restTags);
334
447
  // Get the 'heading' which is the [#title] at level 1
@@ -344,33 +457,43 @@ function parseMatchMatrix(_context, _bitType, cardSet) {
344
457
  // } else if (tags.resource.type === ResourceType.image) {
345
458
  // keyImage = tags.resource as ImageResource;
346
459
  // }
347
- isDefaultExampleAllLevel = isExample ? true : isDefaultExampleAllLevel;
460
+ isDefaultExampleCardSet = isDefaultExample === true ? true : isDefaultExampleCardSet;
461
+ exampleCardSet = example ? example : exampleCardSet;
348
462
  }
349
463
  else {
350
464
  // If not a heading or resource, it is a matrix
351
465
  matrixKey = cardBody;
352
- isDefaultExampleMartixLevel = isExample ? true : isDefaultExampleMartixLevel;
466
+ isDefaultExampleCard = isDefaultExample === true ? true : isDefaultExampleCard;
467
+ exampleCard = example ? example : exampleCard;
353
468
  }
354
469
  }
355
470
  else {
356
471
  // Subsequent sides
357
472
  if (heading != null) {
358
473
  forValues.push(heading);
359
- // isDefaultExampleMartixLevel = isExample ? true : isDefaultExampleAllLevel;
474
+ isDefaultExampleCardSet = isDefaultExample === true ? true : isDefaultExampleCardSet;
475
+ exampleCardSet = example ? example : exampleCardSet;
360
476
  }
361
477
  else if (tags.title == null) {
362
- // If not a heading, it is a matrix
363
- matrixCellValues.push(cardBody !== null && cardBody !== void 0 ? cardBody : '');
478
+ // If not a heading, it is a matrix cell value
479
+ const value = cardBody !== null && cardBody !== void 0 ? cardBody : '';
480
+ matrixCellValues.push(value);
481
+ if ((isDefaultExampleCardSet || isDefaultExampleSide) && !exampleSide)
482
+ exampleSide = value;
364
483
  }
365
484
  }
366
- // Allow example from any card side
367
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
368
- if (isExample)
369
- extraTagsSideLevel.isDefaultExample = true;
370
485
  }
371
486
  // Finished looping variants, create matrix cell
372
487
  if (sideIdx > 0) {
373
- const matrixCell = builder.matrixCell(Object.assign(Object.assign({ values: matrixCellValues }, matrixCellTags), extraTagsSideLevel));
488
+ // Calculate final example and isDefaultExample
489
+ if (isDefaultExampleSide)
490
+ exampleCard = exampleCardSet = undefined;
491
+ if (isDefaultExampleCard)
492
+ exampleCardSet = undefined;
493
+ const isDefaultExample = isDefaultExampleSide || isDefaultExampleCard || isDefaultExampleCardSet;
494
+ const example = exampleSide || exampleCard || exampleCardSet;
495
+ const matrixCell = builder.matrixCell(Object.assign(Object.assign({ values: matrixCellValues }, matrixCellTags), { isDefaultExample,
496
+ example }));
374
497
  matrixCells.push(matrixCell);
375
498
  }
376
499
  sideIdx++;
@@ -382,6 +505,7 @@ function parseMatchMatrix(_context, _bitType, cardSet) {
382
505
  });
383
506
  }
384
507
  else {
508
+ // if (matrixKey) {
385
509
  const m = builder.matrix({
386
510
  key: matrixKey !== null && matrixKey !== void 0 ? matrixKey : '',
387
511
  // keyAudio,
@@ -389,9 +513,11 @@ function parseMatchMatrix(_context, _bitType, cardSet) {
389
513
  cells: matrixCells,
390
514
  isShortAnswer: true,
391
515
  isCaseSensitive: true,
392
- isDefaultExample: isDefaultExampleAllLevel || isDefaultExampleMartixLevel,
393
516
  });
394
517
  matrix.push(m);
518
+ // } else {
519
+ // context.addWarning('Ignoring card with empty body text', variant);
520
+ // }
395
521
  }
396
522
  }
397
523
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"CardContentProcessor.js","sourceRoot":"","sources":["../../../../../../src/parser/bitmark/peg/contentProcessors/CardContentProcessor.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAW,WAAW,EAAuB,MAAM,gCAAgC,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAgBzE,OAAO,EACL,eAAe,GAQhB,MAAM,0BAA0B,CAAC;AAElC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,SAAS,UAAU,CACjB,OAAgC,EAChC,OAAgB,EAChB,aAAwC,EACxC,WAAkC,EAClC,YAAqC,EACrC,SAA+B,EAC/B,WAAmC;;IAEnC,IAAI,OAAO,CAAC,cAAc;QAAE,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAE1E,IAAI,MAAM,GAAqB,EAAE,CAAC;IAElC,4BAA4B;IAC5B,MAAM,gBAAgB,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;IAEzE,yDAAyD;IAEzD,0DAA0D;IAC1D,MAAM,IAAI,GAAG,WAAW,CAAC,WAAW,CAAsB,OAAO,CAAC,IAAI,CAAC,CAAC;IACxE,MAAM,WAAW,GAAG,IAAI,KAAI,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,CAAA,CAAC;IAE/C,QAAQ,WAAW,EAAE;QACnB,KAAK,WAAW,CAAC,QAAQ;YACvB,MAAM,GAAG,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAC3D,MAAM;QAER,KAAK,WAAW,CAAC,UAAU;YACzB,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;YACxF,MAAM;QAER,KAAK,WAAW,CAAC,IAAI;YACnB,MAAM,GAAG,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;YAC/E,MAAM;QAER,KAAK,WAAW,CAAC,SAAS;YACxB,MAAM,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAC5D,MAAM;QAER,KAAK,WAAW,CAAC,UAAU;YACzB,sBAAsB;YACtB,MAAM,GAAG,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAC7D,MAAM;QAER,KAAK,WAAW,CAAC,WAAW;YAC1B,uBAAuB;YACvB,MAAM,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAC9D,MAAM;QAER,KAAK,WAAW,CAAC,kBAAkB;YACjC,MAAM,GAAG,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACrE,MAAM;QAER,QAAQ;QACR,8BAA8B;KAC/B;IAED,mBAAmB;IACnB,MAAM,CAAC,QAAQ,GAAG,gBAAgB,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;IAE/F,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,cAAc,CACrB,OAAgC,EAChC,OAAgB,EAChB,aAAwC;IAExC,MAAM,gBAAgB,GAAqB;QACzC,KAAK,EAAE,EAAE;QACT,QAAQ,EAAE,EAAE;KACb,CAAC;IAEF,8BAA8B;IAC9B,IAAI,CAAC,aAAa;QAAE,OAAO,gBAAgB,CAAC;IAE5C,4BAA4B;IAC5B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,KAAK,EAAE;QACtC,MAAM,aAAa,GAAkB;YACnC,EAAE,EAAE,MAAM,EAAE;YACZ,KAAK,EAAE,EAAE;SACV,CAAC;QACF,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC3C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,MAAM,aAAa,GAAsB;gBACvC,EAAE,EAAE,MAAM,EAAE;gBACZ,QAAQ,EAAE,EAAE;aACb,CAAC;YACF,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACxC,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACnC,MAAM,gBAAgB,GAAyB;oBAC7C,EAAE,EAAE,SAAS,EAAE;iBACQ,CAAC;gBAC1B,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;gBAC9C,MAAM,IAAI,GAAG,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;gBAEjF,IAAI,OAAO,CAAC,eAAe;oBAAE,OAAO,CAAC,UAAU,CAAC,sBAAsB,EAAE,IAAI,CAAC,CAAC;gBAE9E,wBAAwB;gBACxB,IAAI,CAAC,QAAQ,GAAG,yBAAyB,CAAC,aAAa,CACrD,OAAO,EACP,eAAe,CAAC,IAAI,EACpB,OAAO,EACP,IAAI,CAAC,QAAQ,EACb,aAAa,CAAC,EAAE,EAChB,aAAa,CAAC,EAAE,EAChB,gBAAgB,CAAC,EAAE,CACpB,CAAC;gBAEF,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC;gBAE7B,mBAAmB;gBACnB,IAAI,IAAI,CAAC,QAAQ;oBAAE,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;aACrE;YACD,SAAS,GAAG,CAAC,CAAC;SACf;QACD,MAAM,GAAG,CAAC,CAAC;KACZ;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,aAAa,CACpB,QAAiC,EACjC,QAAiB,EACjB,OAAyB;;IAEzB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;QAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAE1B,QAAQ,CAAC,IAAI,CAAC,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,CAAC,CAAC;aACpC;SACF;KACF;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;KACrD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,QAAiC,EACjC,QAAiB,EACjB,OAAyB,EACzB,WAAkC,EAClC,YAAqC;IAErC,MAAM,UAAU,GAAgB,EAAE,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;QAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACnC,MAAM,KAA6C,OAAO,CAAC,IAAI,EAAzD,EAAE,UAAU,EAAE,iBAAiB,OAA0B,EAArB,IAAI,cAAxC,cAA0C,CAAe,CAAC;gBAEhE,gFAAgF;gBAChF,sGAAsG;gBACtG,mGAAmG;gBACnG,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE;oBACpC,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE;wBACjC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,+CAC9B,CAAC,GACD,CAAC,CAAC,QAAQ,GACV,IAAI,EACP,CAAC;wBACH,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;qBAC5B;iBACF;aACF;SACF;KACF;IAED,6FAA6F;IAC7F,IAAI,WAAW,EAAE;QACf,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KAC9B;IAED,8FAA8F;IAC9F,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE;QAC1D,UAAU,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,CAAC;KAClC;IAED,OAAO;QACL,UAAU,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KAC3D,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAChB,QAAiC,EACjC,OAAgB,EAChB,OAAyB,EACzB,SAA+B,EAC/B,WAAmC;IAEnC,MAAM,OAAO,GAAW,EAAE,CAAC;IAC3B,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,cAAc,CAAC;IAClE,MAAM,eAAe,GAAG,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC,gBAAgB,CAAC;IACtE,IAAI,CAAC,aAAa,IAAI,CAAC,eAAe;QAAE,OAAO,EAAE,CAAC;IAElD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;QAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAC1B,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,IAAI,IAAI,CAAC,OAAO,IAAI,SAAS,CAAC;gBAE5E,IAAI,eAAe,EAAE;oBACnB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC/C,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;wBACpB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;4BAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;4BACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBAC/B;qBACF;iBACF;gBACD,IAAI,aAAa,EAAE;oBACjB,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC/C,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;wBAClB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE;4BAC/B,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;4BACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;yBAC7B;qBACF;iBACF;gBAED,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,iCACpB,IAAI,KACP,gBAAgB,IAChB,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACpB;SACF;KACF;IAED,4CAA4C;IAC5C,IAAI,aAAa,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QACrE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACxB,OAAO,EAAE,SAAS;SACnB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpB;IACD,IAAI,eAAe,IAAI,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3E,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;YACxB,SAAS,EAAE,WAAW;SACvB,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACpB;IAED,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KAClD,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CACrB,QAAiC,EACjC,QAAiB,EACjB,OAAyB;;IAEzB,MAAM,SAAS,GAAe,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;QAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAE1B,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,iBACxB,QAAQ,EAAE,MAAA,IAAI,CAAC,QAAQ,mCAAI,EAAE,IAC1B,IAAI,EACP,CAAC;gBAEH,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;aACnB;SACF;KACF;IAED,OAAO;QACL,SAAS,EAAE,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;KACxD,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,QAAiC,EACjC,QAAiB,EACjB,OAAyB;IAEzB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAA4B,CAAC;IACjC,MAAM,KAAK,GAAW,EAAE,CAAC;IACzB,IAAI,OAAO,GAAuB,SAAS,CAAC;IAC5C,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,OAAO,GAAuB,SAAS,CAAC;IAC5C,IAAI,UAAU,GAAa,EAAE,CAAC;IAC9B,IAAI,QAAQ,GAA8B,SAAS,CAAC;IACpD,IAAI,QAAQ,GAA8B,SAAS,CAAC;IACpD,IAAI,SAAS,GAAG,EAAE,CAAC;IAEnB,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;QAChC,OAAO,GAAG,SAAS,CAAC;QACpB,OAAO,GAAG,SAAS,CAAC;QACpB,UAAU,GAAG,EAAE,CAAC;QAChB,QAAQ,GAAG,SAAS,CAAC;QACrB,QAAQ,GAAG,SAAS,CAAC;QACrB,OAAO,GAAG,CAAC,CAAC;QACZ,SAAS,GAAG,EAAE,CAAC;QAEf,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACnC,MAAM,KAAqE,OAAO,CAAC,IAAI,EAAjF,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,OAAO,OAA0B,EAArB,IAAI,cAAhE,iEAAkE,CAAe,CAAC;gBACxF,MAAM,SAAS,GAAG,gBAAgB,IAAI,OAAO,IAAI,SAAS,CAAC;gBAE3D,qDAAqD;gBACrD,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;gBAElC,IAAI,OAAO,KAAK,CAAC,EAAE;oBACjB,aAAa;oBACb,IAAI,OAAO,IAAI,IAAI,EAAE;wBACnB,OAAO,GAAG,OAAO,CAAC;qBACnB;yBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;wBAC3D,uEAAuE;wBACvE,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;wBAC9B,gFAAgF;wBAChF,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,EAAE;4BACxC,QAAQ,GAAG,QAAyB,CAAC;yBACtC;6BAAM,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,CAAC,KAAK,EAAE;4BAC/C,QAAQ,GAAG,QAAyB,CAAC;yBACtC;qBACF;yBAAM;wBACL,6CAA6C;wBAC7C,OAAO,GAAG,QAAQ,CAAC;qBACpB;iBACF;qBAAM;oBACL,mBAAmB;oBACnB,IAAI,OAAO,IAAI,IAAI,EAAE;wBACnB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACzB;yBAAM,IAAI,KAAK,IAAI,IAAI,EAAE;wBACxB,iCAAiC;wBACjC,UAAU,CAAC,IAAI,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,CAAC;qBACjC;iBACF;gBAED,aAAa;gBACb,SAAS,iDACJ,SAAS,GACT,IAAI,KACP,eAAe,EAAE,IAAI,GACtB,CAAC;gBACF,mCAAmC;gBACnC,8DAA8D;gBAC9D,IAAI,SAAS;oBAAG,SAAiB,CAAC,gBAAgB,GAAG,IAAI,CAAC;aAC3D;YACD,OAAO,EAAE,CAAC;SACX;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBACxB,OAAO;gBACP,SAAS;aACV,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,iBACvB,GAAG,EAAE,OAAO,aAAP,OAAO,cAAP,OAAO,GAAI,EAAE,EAClB,QAAQ;gBACR,QAAQ,EACR,MAAM,EAAE,UAAU,EAClB,aAAa,EAAE,IAAI,IAChB,SAAS,EACZ,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAClB;KACF;IAED,OAAO;QACL,OAAO;QACP,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KAC5C,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAiC,EACjC,QAAiB,EACjB,OAAyB;IAEzB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAA4B,CAAC;IACjC,IAAI,OAAO,GAAuB,SAAS,CAAC;IAC5C,MAAM,SAAS,GAAa,EAAE,CAAC;IAC/B,IAAI,SAAS,GAAuB,SAAS,CAAC;IAC9C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,IAAI,WAAW,GAAiB,EAAE,CAAC;IACnC,IAAI,gBAAgB,GAAa,EAAE,CAAC;IACpC,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,kBAAkB,GAAG,EAAE,CAAC;IAC5B,IAAI,wBAAwB,GAAG,KAAK,CAAC;IACrC,IAAI,2BAA2B,GAAG,KAAK,CAAC;IACxC,uDAAuD;IACvD,uDAAuD;IAEvD,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;QAChC,OAAO,GAAG,SAAS,CAAC;QACpB,SAAS,GAAG,SAAS,CAAC;QACtB,wBAAwB;QACxB,wBAAwB;QACxB,WAAW,GAAG,EAAE,CAAC;QACjB,gBAAgB,GAAG,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC,CAAC;QACZ,2BAA2B,GAAG,KAAK,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,gBAAgB,GAAG,EAAE,CAAC;YACtB,cAAc,GAAG,EAAE,CAAC;YACpB,kBAAkB,GAAG,EAAE,CAAC;YAExB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACnC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;gBAE1B,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,OAAO,KAAkB,IAAI,EAAjB,QAAQ,UAAK,IAAI,EAAlE,oDAA2D,CAAO,CAAC;gBACzE,MAAM,SAAS,GAAG,gBAAgB,IAAI,OAAO,IAAI,SAAS,CAAC;gBAE3D,2CAA2C;gBAC3C,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAExC,qDAAqD;gBACrD,MAAM,OAAO,GAAG,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;gBAElC,IAAI,OAAO,KAAK,CAAC,EAAE;oBACjB,aAAa;oBACb,IAAI,OAAO,IAAI,IAAI,EAAE;wBACnB,OAAO,GAAG,OAAO,CAAC;wBAClB,8BAA8B;wBAC9B,kFAAkF;wBAClF,qDAAqD;wBACrD,iDAAiD;wBACjD,4DAA4D;wBAC5D,iDAAiD;wBACjD,MAAM;wBACN,wBAAwB,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,wBAAwB,CAAC;qBACxE;yBAAM;wBACL,+CAA+C;wBAC/C,SAAS,GAAG,QAAQ,CAAC;wBACrB,2BAA2B,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,2BAA2B,CAAC;qBAC9E;iBACF;qBAAM;oBACL,mBAAmB;oBACnB,IAAI,OAAO,IAAI,IAAI,EAAE;wBACnB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBACxB,6EAA6E;qBAC9E;yBAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,EAAE;wBAC7B,oCAAoC;wBACpC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,CAAC,CAAC;qBACvC;iBACF;gBAED,mCAAmC;gBACnC,8DAA8D;gBAC9D,IAAI,SAAS;oBAAG,kBAA0B,CAAC,gBAAgB,GAAG,IAAI,CAAC;aACpE;YAED,gDAAgD;YAChD,IAAI,OAAO,GAAG,CAAC,EAAE;gBACf,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,+BACnC,MAAM,EAAE,gBAAgB,IACrB,cAAc,GACd,kBAAkB,EACrB,CAAC;gBACH,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC9B;YAED,OAAO,EAAE,CAAC;SACX;QAED,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;gBACxB,OAAO;gBACP,SAAS;aACV,CAAC,CAAC;SACJ;aAAM;YACL,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;gBACvB,GAAG,EAAE,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE;gBACpB,YAAY;gBACZ,YAAY;gBACZ,KAAK,EAAE,WAAW;gBAClB,aAAa,EAAE,IAAI;gBACnB,eAAe,EAAE,IAAI;gBACrB,gBAAgB,EAAE,wBAAwB,IAAI,2BAA2B;aAC1E,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAChB;KACF;IAED,OAAO;QACL,OAAO;QACP,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC/C,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAC9B,QAAiC,EACjC,QAAiB,EACjB,OAAyB;IAEzB,MAAM,YAAY,GAAkB,EAAE,CAAC;IAEvC,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,EAAE;QAChC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC7B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACnC,MAAM,KAAyD,OAAO,CAAC,IAAI,EAArE,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,OAA0B,EAArB,IAAI,cAApD,uCAAsD,CAAe,CAAC;gBAE5E,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,iBACrC,QAAQ,EAAE,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,EAAE,EAC3B,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,EACxB,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE,IACrB,IAAI,EACP,CAAC;gBACH,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;aAChC;SACF;KACF;IAED,OAAO;QACL,YAAY,EAAE,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS;KACjE,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"CardContentProcessor.js","sourceRoot":"","sources":["../../../../../../src/parser/bitmark/peg/contentProcessors/CardContentProcessor.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { StringUtils } from '../../../../utils/StringUtils';
2
2
  import { TypeKey, } from '../BitmarkPegParserTypes';
3
- function defaultTagContentProcessor(_context, _bitLevel, _bitType, content, target) {
3
+ function defaultTagContentProcessor(context, _bitLevel, _bitType, content, target) {
4
4
  const { type, value } = content;
5
5
  const trimmedStringValue = StringUtils.trimmedString(value);
6
6
  switch (type) {
@@ -20,8 +20,10 @@ function defaultTagContentProcessor(_context, _bitLevel, _bitType, content, targ
20
20
  target.reference = trimmedStringValue;
21
21
  break;
22
22
  }
23
+ // 16.08.2023 Deprecated, but currently still supported
23
24
  case TypeKey.SampleSolution: {
24
25
  target.sampleSolution = trimmedStringValue;
26
+ context.addWarning('[$...] tag is deprecated, use [@sampleSolution:...] instead', content);
25
27
  break;
26
28
  }
27
29
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultTagContentProcessor.js","sourceRoot":"","sources":["../../../../../../src/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAKL,OAAO,GAER,MAAM,0BAA0B,CAAC;AAElC,SAAS,0BAA0B,CACjC,QAAiC,EACjC,SAA8B,EAC9B,QAAiB,EACjB,OAAmB,EACnB,MAAiC;IAEjC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAoB,CAAC;IAE7C,MAAM,kBAAkB,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE5D,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;YACxB,MAAM,CAAC,WAAW,GAAG,kBAAkB,CAAC;YACxC,MAAM;SACP;QAED,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC;YACjC,MAAM;SACP;QAED,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC;YACnC,MAAM;SACP;QAED,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM,CAAC,SAAS,GAAG,kBAAkB,CAAC;YACtC,MAAM;SACP;QAED,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;YAC3B,MAAM,CAAC,cAAc,GAAG,kBAAkB,CAAC;YAC3C,MAAM;SACP;QAED,QAAQ;QACR,cAAc;KACf;AACH,CAAC;AACD,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
1
+ {"version":3,"file":"DefaultTagContentProcessor.js","sourceRoot":"","sources":["../../../../../../src/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAE5D,OAAO,EAKL,OAAO,GAER,MAAM,0BAA0B,CAAC;AAElC,SAAS,0BAA0B,CACjC,OAAgC,EAChC,SAA8B,EAC9B,QAAiB,EACjB,OAAmB,EACnB,MAAiC;IAEjC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAoB,CAAC;IAE7C,MAAM,kBAAkB,GAAG,WAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE5D,QAAQ,IAAI,EAAE;QACZ,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;YACxB,MAAM,CAAC,WAAW,GAAG,kBAAkB,CAAC;YACxC,MAAM;SACP;QAED,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC;YACjC,MAAM;SACP;QAED,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC;YACnC,MAAM;SACP;QAED,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM,CAAC,SAAS,GAAG,kBAAkB,CAAC;YACtC,MAAM;SACP;QAED,uDAAuD;QACvD,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;YAC3B,MAAM,CAAC,cAAc,GAAG,kBAAkB,CAAC;YAC3C,OAAO,CAAC,UAAU,CAAC,6DAA6D,EAAE,OAAO,CAAC,CAAC;YAC3F,MAAM;SACP;QAED,QAAQ;QACR,cAAc;KACf;AACH,CAAC;AACD,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { RootBitType } from '../../../../model/enum/BitType';
2
+ import { BooleanUtils } from '../../../../utils/BooleanUtils';
2
3
  // const builder = new Builder();
3
4
  function exampleTagContentProcessor(context, _bitLevel, bitType, content, target) {
4
5
  const { value } = content;
@@ -9,33 +10,49 @@ function exampleTagContentProcessor(context, _bitLevel, bitType, content, target
9
10
  case RootBitType.clozeAndMultipleChoiceText:
10
11
  case RootBitType.multipleChoiceText:
11
12
  case RootBitType.highlightText:
12
- handleGapOrSelectExample(context, bitType, example, target);
13
+ case RootBitType.trueFalse:
14
+ case RootBitType.trueFalse1:
15
+ case RootBitType.multipleResponse:
16
+ case RootBitType.multipleResponse1:
17
+ case RootBitType.multipleChoice:
18
+ case RootBitType.multipleChoice1:
19
+ handleGapOrSelectOrTrueFalseExample(context, bitType, content, example, target);
13
20
  break;
14
21
  case RootBitType.mark:
15
22
  // Default only example handling
16
- handleDefaultOnlyExample(context, bitType, example, target);
23
+ handleDefaultOnlyExample(context, bitType, content, example, target);
17
24
  break;
18
25
  default:
19
26
  // Standard example handling
20
- handleStandardExample(context, bitType, example, target);
27
+ handleStandardStringExample(context, bitType, content, example, target);
21
28
  }
22
29
  }
23
- function handleGapOrSelectExample(context, bitType, example, target) {
30
+ function handleGapOrSelectOrTrueFalseExample(context, bitType, content, example, target) {
24
31
  var _a, _b;
25
32
  let trueFalse;
26
33
  if (Array.isArray(target.trueFalse) && target.trueFalse.length > 0) {
27
34
  trueFalse = (_a = target.trueFalse[target.trueFalse.length - 1]) !== null && _a !== void 0 ? _a : undefined;
28
35
  }
29
36
  if (trueFalse) {
37
+ // Example is set on the true/false tag [+...] / [-...]
30
38
  if (example === true) {
31
39
  trueFalse.isDefaultExample = true;
40
+ trueFalse.example = undefined;
32
41
  }
33
42
  else {
34
- // TODO: This should raise a warning, because a value on the example tag is not allowed for select
35
- trueFalse.isDefaultExample = true;
43
+ if (BooleanUtils.isBooleanString(example)) {
44
+ trueFalse.example = example;
45
+ }
46
+ else {
47
+ // Example is set to a value other than true / false which is not valid in the case of select
48
+ trueFalse.isDefaultExample = true;
49
+ trueFalse.example = undefined;
50
+ context.addWarning(`Only 'true' / 'false' / default are allowed here, using default`, content);
51
+ }
36
52
  }
37
53
  }
38
54
  else if (Array.isArray(target.solutions) && target.solutions.length > 0) {
55
+ // Example is set on the gap solution tag [_...]
39
56
  if (example === true) {
40
57
  // Extract the solution nearest [@example] tag as the example value
41
58
  target.example = (_b = target.solutions[target.solutions.length - 1]) !== null && _b !== void 0 ? _b : undefined;
@@ -45,15 +62,68 @@ function handleGapOrSelectExample(context, bitType, example, target) {
45
62
  }
46
63
  }
47
64
  else {
48
- handleStandardExample(context, bitType, example, target);
65
+ // Example is higher up the chain, so how it is handled depends on the bit type
66
+ switch (bitType.root) {
67
+ default:
68
+ case RootBitType.cloze:
69
+ // Treat as a standard string
70
+ handleStandardStringExample(context, bitType, content, example, target);
71
+ break;
72
+ case RootBitType.multipleChoiceText:
73
+ case RootBitType.highlightText:
74
+ case RootBitType.trueFalse:
75
+ case RootBitType.trueFalse1:
76
+ case RootBitType.multipleResponse:
77
+ case RootBitType.multipleResponse1:
78
+ // Treat as a standard boolean
79
+ handleStandardBooleanExample(context, bitType, content, example, target);
80
+ break;
81
+ case RootBitType.clozeAndMultipleChoiceText:
82
+ case RootBitType.multipleChoice:
83
+ case RootBitType.multipleChoice1: {
84
+ // For these bits, a specific example value higher up the chain makes no sense
85
+ // Set example to default, and raise a warning if any value is set.
86
+ target.isDefaultExample = true;
87
+ target.example = undefined;
88
+ if (example !== true) {
89
+ // Example is set to a value other than true / false which is not valid in the case of select
90
+ context.addWarning(`At this level, only default [@example] is allowed, using default`, content);
91
+ }
92
+ break;
93
+ }
94
+ }
49
95
  }
50
96
  }
51
- function handleDefaultOnlyExample(_context, _bitType, _example, target) {
97
+ function handleDefaultOnlyExample(context, _bitType, content, example, target) {
98
+ // This bit can have only default examples - nothing else makes sense
52
99
  target.isDefaultExample = true;
100
+ target.example = undefined;
101
+ if (example !== true) {
102
+ // Example is set to a value other than true / false which is not valid in the case of select
103
+ context.addWarning(`Only default [@example] is allowed, using default`, content);
104
+ }
105
+ }
106
+ function handleStandardBooleanExample(context, _bitType, content, example, target) {
107
+ if (example === true) {
108
+ target.isDefaultExample = true;
109
+ target.example = undefined;
110
+ }
111
+ else {
112
+ if (BooleanUtils.isBooleanString(example)) {
113
+ target.example = example;
114
+ }
115
+ else {
116
+ // Example is set to a value other than true / false which is not valid in the case of select
117
+ target.isDefaultExample = true;
118
+ target.example = undefined;
119
+ context.addWarning(`Only 'true' / 'false' / default are allowed here, using default`, content);
120
+ }
121
+ }
53
122
  }
54
- function handleStandardExample(_context, _bitType, example, target) {
123
+ function handleStandardStringExample(_context, _bitType, _content, example, target) {
55
124
  if (example === true) {
56
125
  target.isDefaultExample = true;
126
+ target.example = undefined;
57
127
  }
58
128
  else {
59
129
  target.example = example;
@@ -1 +1 @@
1
- {"version":3,"file":"ExampleTagContentProcessor.js","sourceRoot":"","sources":["../../../../../../src/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAW,MAAM,gCAAgC,CAAC;AAWtE,iCAAiC;AAEjC,SAAS,0BAA0B,CACjC,OAAgC,EAChC,SAA8B,EAC9B,OAAgB,EAChB,OAAmB,EACnB,MAAiC;IAEjC,MAAM,EAAE,KAAK,EAAE,GAAG,OAAoB,CAAC;IACvC,MAAM,OAAO,GAAG,KAAyB,CAAC;IAE1C,iDAAiD;IAEjD,QAAQ,OAAO,CAAC,IAAI,EAAE;QACpB,KAAK,WAAW,CAAC,KAAK,CAAC;QACvB,KAAK,WAAW,CAAC,0BAA0B,CAAC;QAC5C,KAAK,WAAW,CAAC,kBAAkB,CAAC;QACpC,KAAK,WAAW,CAAC,aAAa;YAC5B,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5D,MAAM;QACR,KAAK,WAAW,CAAC,IAAI;YACnB,gCAAgC;YAChC,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5D,MAAM;QACR;YACE,4BAA4B;YAC5B,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KAC5D;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,OAAgC,EAChC,OAAgB,EAChB,OAAyB,EACzB,MAAiC;;IAEjC,IAAI,SAAqC,CAAC;IAE1C,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QAClE,SAAS,GAAG,MAAA,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAI,SAAS,CAAC;KACxE;IAED,IAAI,SAAS,EAAE;QACb,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC;SACnC;aAAM;YACL,kGAAkG;YAClG,SAAS,CAAC,gBAAgB,GAAG,IAAI,CAAC;SACnC;KACF;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QACzE,IAAI,OAAO,KAAK,IAAI,EAAE;YACpB,mEAAmE;YACnE,MAAM,CAAC,OAAO,GAAG,MAAA,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,mCAAI,SAAS,CAAC;SAC7E;aAAM;YACL,MAAM,CAAC,OAAO,GAAG,OAAiB,CAAC;SACpC;KACF;SAAM;QACL,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;KAC1D;AACH,CAAC;AAED,SAAS,wBAAwB,CAC/B,QAAiC,EACjC,QAAiB,EACjB,QAA0B,EAC1B,MAAiC;IAEjC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;AACjC,CAAC;AAED,SAAS,qBAAqB,CAC5B,QAAiC,EACjC,QAAiB,EACjB,OAAyB,EACzB,MAAiC;IAEjC,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAChC;SAAM;QACL,MAAM,CAAC,OAAO,GAAG,OAAiB,CAAC;KACpC;AACH,CAAC;AAED,OAAO,EAAE,0BAA0B,EAAE,CAAC"}
1
+ {"version":3,"file":"ExampleTagContentProcessor.js","sourceRoot":"","sources":["../../../../../../src/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.ts"],"names":[],"mappings":"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"}