@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
@@ -31,6 +31,9 @@ function buildCards(context, bitType, parsedCardSet, statementV1, statementsV1,
31
31
  const meta = BitType_1.RootBitType.getMetadata(bitType.root);
32
32
  const cardSetType = meta && ((_a = meta.cardSet) === null || _a === void 0 ? void 0 : _a.type);
33
33
  switch (cardSetType) {
34
+ case CardSetType_1.CardSetType.flashcards:
35
+ result = parseFlashcards(context, bitType, processedCardSet);
36
+ break;
34
37
  case CardSetType_1.CardSetType.elements:
35
38
  result = parseElements(context, bitType, processedCardSet);
36
39
  break;
@@ -86,14 +89,16 @@ function processCardSet(context, bitType, parsedCardSet) {
86
89
  variants: [],
87
90
  };
88
91
  processedCard.sides.push(processedSide);
89
- for (const content of side.variants) {
92
+ for (const variant of side.variants) {
93
+ const { parser, content } = variant;
90
94
  const processedVariant = {
95
+ parser,
91
96
  no: variantNo++,
92
97
  };
93
98
  processedSide.variants.push(processedVariant);
94
99
  const tags = context.bitContentProcessor(BitmarkPegParserTypes_1.BitContentLevel.Card, bitType, content);
95
100
  if (context.DEBUG_CARD_TAGS)
96
- context.debugPrint('card tags (elements)', tags);
101
+ context.debugPrint('card tags', tags);
97
102
  // Validate the cardBody
98
103
  tags.cardBody = BitmarkPegParserValidator_1.BitmarkPegParserValidator.checkCardBody(context, BitmarkPegParserTypes_1.BitContentLevel.Card, bitType, tags.cardBody, processedCard.no, processedSide.no, processedVariant.no);
99
104
  processedVariant.data = tags;
@@ -107,6 +112,60 @@ function processCardSet(context, bitType, parsedCardSet) {
107
112
  }
108
113
  return processedCardSet;
109
114
  }
115
+ function parseFlashcards(context, bitType, cardSet) {
116
+ const flashcards = [];
117
+ let question = '';
118
+ let answer;
119
+ let alternativeAnswers = [];
120
+ let cardIndex = 0;
121
+ let variantIndex = 0;
122
+ let extraTags = {};
123
+ let questionVariant;
124
+ const onlyOneCardAllowed = bitType.alias === BitType_1.AliasBitType.flashcard1;
125
+ for (const card of cardSet.cards) {
126
+ // Reset the question and answers
127
+ question = '';
128
+ answer = undefined;
129
+ alternativeAnswers = [];
130
+ variantIndex = 0;
131
+ extraTags = {};
132
+ for (const side of card.sides) {
133
+ for (const content of side.variants) {
134
+ const _a = content.data, { cardBody } = _a, tags = __rest(_a, ["cardBody"]);
135
+ extraTags = Object.assign(Object.assign({}, extraTags), tags);
136
+ if (variantIndex === 0) {
137
+ questionVariant = content;
138
+ question = cardBody !== null && cardBody !== void 0 ? cardBody : '';
139
+ }
140
+ else if (variantIndex === 1) {
141
+ answer = cardBody !== null && cardBody !== void 0 ? cardBody : '';
142
+ }
143
+ else {
144
+ alternativeAnswers.push(cardBody !== null && cardBody !== void 0 ? cardBody : '');
145
+ }
146
+ variantIndex++;
147
+ }
148
+ }
149
+ // Add the flashcard
150
+ if (cardIndex === 0 || !onlyOneCardAllowed) {
151
+ // if (question) {
152
+ flashcards.push(builder.flashcard(Object.assign({ question,
153
+ answer, alternativeAnswers: alternativeAnswers.length > 0 ? alternativeAnswers : undefined }, extraTags)));
154
+ // } else {
155
+ // context.addWarning('Ignoring card with empty question', questionVariant);
156
+ // }
157
+ }
158
+ else {
159
+ // Only one card allowed, add a warning and ignore the card
160
+ context.addWarning(`Bit '${bitType.alias}' should only contain one card. Ignore subsequent card: '${question}'`, questionVariant);
161
+ break;
162
+ }
163
+ cardIndex++;
164
+ }
165
+ return {
166
+ flashcards: flashcards.length > 0 ? flashcards : undefined,
167
+ };
168
+ }
110
169
  function parseElements(_context, _bitType, cardSet) {
111
170
  var _a;
112
171
  const elements = [];
@@ -114,7 +173,11 @@ function parseElements(_context, _bitType, cardSet) {
114
173
  for (const side of card.sides) {
115
174
  for (const content of side.variants) {
116
175
  const tags = content.data;
176
+ // if (tags.cardBody) {
117
177
  elements.push((_a = tags.cardBody) !== null && _a !== void 0 ? _a : '');
178
+ // } else {
179
+ // context.addWarning('Ignoring card with empty element', content);
180
+ // }
118
181
  }
119
182
  }
120
183
  }
@@ -133,8 +196,12 @@ function parseStatements(_context, _bitType, cardSet, statementV1, statementsV1)
133
196
  // As .true-false only has one statement per card, we can just add the extra tags to the statement.
134
197
  if (Array.isArray(chainedStatements)) {
135
198
  for (const s of chainedStatements) {
199
+ // if (s.text) {
136
200
  const statement = builder.statement(Object.assign(Object.assign(Object.assign({}, s), s.itemLead), tags));
137
201
  statements.push(statement);
202
+ // } else {
203
+ // context.addWarning('Ignoring card with empty statement', content);
204
+ // }
138
205
  }
139
206
  }
140
207
  }
@@ -158,31 +225,40 @@ function parseQuiz(_context, bitType, cardSet, choicesV1, responsesV1) {
158
225
  const insertResponses = bitType.root === BitType_1.RootBitType.multipleResponse;
159
226
  if (!insertChoices && !insertResponses)
160
227
  return {};
228
+ let isDefaultExampleCard = false;
229
+ let exampleCard;
161
230
  for (const card of cardSet.cards) {
231
+ isDefaultExampleCard = false;
232
+ exampleCard = '';
162
233
  for (const side of card.sides) {
163
234
  for (const content of side.variants) {
164
- const tags = content.data;
165
- const isDefaultExample = tags.isDefaultExample || tags.example != undefined;
166
- if (insertResponses) {
167
- if (tags.trueFalse && tags.trueFalse.length > 0) {
168
- tags.responses = [];
169
- for (const tf of tags.trueFalse) {
170
- const response = builder.response(tf);
171
- tags.responses.push(response);
172
- }
173
- }
174
- }
175
- if (insertChoices) {
176
- if (tags.trueFalse && tags.trueFalse.length > 0) {
177
- tags.choices = [];
178
- for (const tf of tags.trueFalse) {
179
- const response = builder.choice(tf);
180
- tags.choices.push(response);
181
- }
235
+ const _a = content.data, { isDefaultExample, example } = _a, tags = __rest(_a, ["isDefaultExample", "example"]);
236
+ // Example
237
+ isDefaultExampleCard = isDefaultExample === true ? true : isDefaultExampleCard;
238
+ exampleCard = example ? example : exampleCard;
239
+ // Insert choices / responses
240
+ if (tags.trueFalse && tags.trueFalse.length > 0) {
241
+ const responsesOrChoices = [];
242
+ const builderFunc = insertResponses ? builder.response : builder.choice;
243
+ for (const tf of tags.trueFalse) {
244
+ const { isDefaultExample: isDefaultExampleTf, example: exampleTf } = tf, tfTags = __rest(tf, ["isDefaultExample", "example"]);
245
+ const isDefaultExample = isDefaultExampleTf || isDefaultExampleCard;
246
+ const example = exampleTf || exampleCard;
247
+ const response = builderFunc(Object.assign(Object.assign({}, tfTags), { isDefaultExample,
248
+ example }));
249
+ responsesOrChoices.push(response);
182
250
  }
251
+ if (insertResponses)
252
+ tags.responses = responsesOrChoices;
253
+ else
254
+ tags.choices = responsesOrChoices;
183
255
  }
184
- const quiz = builder.quiz(Object.assign(Object.assign({}, tags), { isDefaultExample }));
256
+ // if (tags.choices || tags.responses) {
257
+ const quiz = builder.quiz(Object.assign(Object.assign({}, tags), { isDefaultExample: isDefaultExampleCard, example: exampleCard }));
185
258
  quizzes.push(quiz);
259
+ // } else {
260
+ // context.addWarning('Ignoring card with empty quiz', content);
261
+ // }
186
262
  }
187
263
  }
188
264
  }
@@ -210,8 +286,13 @@ function parseQuestions(_context, _bitType, cardSet) {
210
286
  for (const side of card.sides) {
211
287
  for (const content of side.variants) {
212
288
  const tags = content.data;
289
+ // if (tags.cardBody) {
213
290
  const q = builder.question(Object.assign({ question: (_a = tags.cardBody) !== null && _a !== void 0 ? _a : '' }, tags));
214
291
  questions.push(q);
292
+ // }
293
+ // else {
294
+ // context.addWarning('Ignoring card with empty body text', content);
295
+ // }
215
296
  }
216
297
  }
217
298
  }
@@ -230,6 +311,11 @@ function parseMatchPairs(_context, _bitType, cardSet) {
230
311
  let keyAudio = undefined;
231
312
  let keyImage = undefined;
232
313
  let extraTags = {};
314
+ let isDefaultExampleCardSet = false;
315
+ let exampleCardSet;
316
+ let isDefaultExampleCard = false;
317
+ let exampleCard;
318
+ // let variant: ProcessedCardVariant | undefined;
233
319
  for (const card of cardSet.cards) {
234
320
  forKeys = undefined;
235
321
  pairKey = undefined;
@@ -238,16 +324,23 @@ function parseMatchPairs(_context, _bitType, cardSet) {
238
324
  keyImage = undefined;
239
325
  sideIdx = 0;
240
326
  extraTags = {};
327
+ isDefaultExampleCard = false;
328
+ exampleCard = '';
241
329
  for (const side of card.sides) {
242
330
  for (const content of side.variants) {
331
+ // variant = content;
243
332
  const _a = content.data, { cardBody, title, resources, isDefaultExample, example } = _a, tags = __rest(_a, ["cardBody", "title", "resources", "isDefaultExample", "example"]);
244
- const isExample = isDefaultExample || example != undefined;
333
+ // Example
334
+ isDefaultExampleCard = isDefaultExample === true ? true : isDefaultExampleCard;
335
+ exampleCard = example ? example : exampleCard;
245
336
  // Get the 'heading' which is the [#title] at level 1
246
337
  const heading = title && title[1];
247
338
  if (sideIdx === 0) {
248
339
  // First side
249
340
  if (heading != null) {
250
341
  forKeys = heading;
342
+ isDefaultExampleCardSet = isDefaultExample === true ? true : isDefaultExampleCardSet;
343
+ exampleCardSet = example ? example : exampleCardSet;
251
344
  }
252
345
  else if (Array.isArray(resources) && resources.length > 0) {
253
346
  // TODO - should search the correct resource type based on the bit type
@@ -269,18 +362,19 @@ function parseMatchPairs(_context, _bitType, cardSet) {
269
362
  // Subsequent sides
270
363
  if (heading != null) {
271
364
  forValues.push(heading);
365
+ isDefaultExampleCardSet = isDefaultExample === true ? true : isDefaultExampleCardSet;
366
+ exampleCardSet = example ? example : exampleCardSet;
272
367
  }
273
368
  else if (title == null) {
274
369
  // If not a heading, it is a pair
275
- pairValues.push(cardBody !== null && cardBody !== void 0 ? cardBody : '');
370
+ const value = cardBody !== null && cardBody !== void 0 ? cardBody : '';
371
+ pairValues.push(value);
372
+ if ((isDefaultExampleCardSet || isDefaultExampleCard) && !exampleCard)
373
+ exampleCard = value;
276
374
  }
277
375
  }
278
376
  // Extra tags
279
377
  extraTags = Object.assign(Object.assign(Object.assign({}, extraTags), tags), { isCaseSensitive: true });
280
- // Allow example from any card side
281
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
282
- if (isExample)
283
- extraTags.isDefaultExample = true;
284
378
  }
285
379
  sideIdx++;
286
380
  }
@@ -291,9 +385,19 @@ function parseMatchPairs(_context, _bitType, cardSet) {
291
385
  });
292
386
  }
293
387
  else {
294
- const pair = builder.pair(Object.assign({ key: pairKey !== null && pairKey !== void 0 ? pairKey : '', keyAudio,
295
- keyImage, values: pairValues, isShortAnswer: true }, extraTags));
388
+ // if (pairKey || keyAudio || keyImage) {
389
+ // Calculate final example and isDefaultExample
390
+ if (isDefaultExampleCard)
391
+ exampleCardSet = undefined;
392
+ const isDefaultExample = isDefaultExampleCard || isDefaultExampleCardSet;
393
+ const example = exampleCard || exampleCardSet;
394
+ const pair = builder.pair(Object.assign(Object.assign({ key: pairKey !== null && pairKey !== void 0 ? pairKey : '', keyAudio,
395
+ keyImage, values: pairValues, isShortAnswer: true }, extraTags), { isDefaultExample,
396
+ example }));
296
397
  pairs.push(pair);
398
+ // } else {
399
+ // context.addWarning('Ignoring card with empty body text', variant);
400
+ // }
297
401
  }
298
402
  }
299
403
  return {
@@ -311,11 +415,15 @@ function parseMatchMatrix(_context, _bitType, cardSet) {
311
415
  let matrixCells = [];
312
416
  let matrixCellValues = [];
313
417
  let matrixCellTags = {};
314
- let extraTagsSideLevel = {};
315
- let isDefaultExampleAllLevel = false;
316
- let isDefaultExampleMartixLevel = false;
418
+ let isDefaultExampleCardSet = false;
419
+ let exampleCardSet;
420
+ let isDefaultExampleCard = false;
421
+ let exampleCard;
422
+ let isDefaultExampleSide = false;
423
+ let exampleSide;
317
424
  // let keyAudio: AudioResource | undefined = undefined;
318
425
  // let keyImage: ImageResource | undefined = undefined;
426
+ // let variant: ProcessedCardVariant | undefined;
319
427
  for (const card of cardSet.cards) {
320
428
  forKeys = undefined;
321
429
  matrixKey = undefined;
@@ -324,15 +432,20 @@ function parseMatchMatrix(_context, _bitType, cardSet) {
324
432
  matrixCells = [];
325
433
  matrixCellValues = [];
326
434
  sideIdx = 0;
327
- isDefaultExampleMartixLevel = false;
435
+ isDefaultExampleCard = false;
436
+ exampleCard = '';
328
437
  for (const side of card.sides) {
329
438
  matrixCellValues = [];
330
439
  matrixCellTags = {};
331
- extraTagsSideLevel = {};
440
+ isDefaultExampleSide = false;
441
+ exampleSide = '';
332
442
  for (const content of side.variants) {
443
+ // variant = content;
333
444
  const tags = content.data;
334
445
  const { title, cardBody, isDefaultExample, example } = tags, restTags = __rest(tags, ["title", "cardBody", "isDefaultExample", "example"]);
335
- const isExample = isDefaultExample || example != undefined;
446
+ // Example
447
+ isDefaultExampleSide = isDefaultExample === true ? true : isDefaultExampleSide;
448
+ exampleSide = example ? example : exampleSide;
336
449
  // Merge the tags into the matrix cell tags
337
450
  Object.assign(matrixCellTags, restTags);
338
451
  // Get the 'heading' which is the [#title] at level 1
@@ -348,33 +461,43 @@ function parseMatchMatrix(_context, _bitType, cardSet) {
348
461
  // } else if (tags.resource.type === ResourceType.image) {
349
462
  // keyImage = tags.resource as ImageResource;
350
463
  // }
351
- isDefaultExampleAllLevel = isExample ? true : isDefaultExampleAllLevel;
464
+ isDefaultExampleCardSet = isDefaultExample === true ? true : isDefaultExampleCardSet;
465
+ exampleCardSet = example ? example : exampleCardSet;
352
466
  }
353
467
  else {
354
468
  // If not a heading or resource, it is a matrix
355
469
  matrixKey = cardBody;
356
- isDefaultExampleMartixLevel = isExample ? true : isDefaultExampleMartixLevel;
470
+ isDefaultExampleCard = isDefaultExample === true ? true : isDefaultExampleCard;
471
+ exampleCard = example ? example : exampleCard;
357
472
  }
358
473
  }
359
474
  else {
360
475
  // Subsequent sides
361
476
  if (heading != null) {
362
477
  forValues.push(heading);
363
- // isDefaultExampleMartixLevel = isExample ? true : isDefaultExampleAllLevel;
478
+ isDefaultExampleCardSet = isDefaultExample === true ? true : isDefaultExampleCardSet;
479
+ exampleCardSet = example ? example : exampleCardSet;
364
480
  }
365
481
  else if (tags.title == null) {
366
- // If not a heading, it is a matrix
367
- matrixCellValues.push(cardBody !== null && cardBody !== void 0 ? cardBody : '');
482
+ // If not a heading, it is a matrix cell value
483
+ const value = cardBody !== null && cardBody !== void 0 ? cardBody : '';
484
+ matrixCellValues.push(value);
485
+ if ((isDefaultExampleCardSet || isDefaultExampleSide) && !exampleSide)
486
+ exampleSide = value;
368
487
  }
369
488
  }
370
- // Allow example from any card side
371
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
372
- if (isExample)
373
- extraTagsSideLevel.isDefaultExample = true;
374
489
  }
375
490
  // Finished looping variants, create matrix cell
376
491
  if (sideIdx > 0) {
377
- const matrixCell = builder.matrixCell(Object.assign(Object.assign({ values: matrixCellValues }, matrixCellTags), extraTagsSideLevel));
492
+ // Calculate final example and isDefaultExample
493
+ if (isDefaultExampleSide)
494
+ exampleCard = exampleCardSet = undefined;
495
+ if (isDefaultExampleCard)
496
+ exampleCardSet = undefined;
497
+ const isDefaultExample = isDefaultExampleSide || isDefaultExampleCard || isDefaultExampleCardSet;
498
+ const example = exampleSide || exampleCard || exampleCardSet;
499
+ const matrixCell = builder.matrixCell(Object.assign(Object.assign({ values: matrixCellValues }, matrixCellTags), { isDefaultExample,
500
+ example }));
378
501
  matrixCells.push(matrixCell);
379
502
  }
380
503
  sideIdx++;
@@ -386,6 +509,7 @@ function parseMatchMatrix(_context, _bitType, cardSet) {
386
509
  });
387
510
  }
388
511
  else {
512
+ // if (matrixKey) {
389
513
  const m = builder.matrix({
390
514
  key: matrixKey !== null && matrixKey !== void 0 ? matrixKey : '',
391
515
  // keyAudio,
@@ -393,9 +517,11 @@ function parseMatchMatrix(_context, _bitType, cardSet) {
393
517
  cells: matrixCells,
394
518
  isShortAnswer: true,
395
519
  isCaseSensitive: true,
396
- isDefaultExample: isDefaultExampleAllLevel || isDefaultExampleMartixLevel,
397
520
  });
398
521
  matrix.push(m);
522
+ // } else {
523
+ // context.addWarning('Ignoring card with empty body text', variant);
524
+ // }
399
525
  }
400
526
  }
401
527
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"CardContentProcessor.js","sourceRoot":"","sources":["../../../../../../src/parser/bitmark/peg/contentProcessors/CardContentProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CardContentProcessor.js","sourceRoot":"","sources":["../../../../../../src/parser/bitmark/peg/contentProcessors/CardContentProcessor.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.defaultTagContentProcessor = void 0;
4
4
  const StringUtils_1 = require("../../../../utils/StringUtils");
5
5
  const BitmarkPegParserTypes_1 = require("../BitmarkPegParserTypes");
6
- function defaultTagContentProcessor(_context, _bitLevel, _bitType, content, target) {
6
+ function defaultTagContentProcessor(context, _bitLevel, _bitType, content, target) {
7
7
  const { type, value } = content;
8
8
  const trimmedStringValue = StringUtils_1.StringUtils.trimmedString(value);
9
9
  switch (type) {
@@ -23,8 +23,10 @@ function defaultTagContentProcessor(_context, _bitLevel, _bitType, content, targ
23
23
  target.reference = trimmedStringValue;
24
24
  break;
25
25
  }
26
+ // 16.08.2023 Deprecated, but currently still supported
26
27
  case BitmarkPegParserTypes_1.TypeKey.SampleSolution: {
27
28
  target.sampleSolution = trimmedStringValue;
29
+ context.addWarning('[$...] tag is deprecated, use [@sampleSolution:...] instead', content);
28
30
  break;
29
31
  }
30
32
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultTagContentProcessor.js","sourceRoot":"","sources":["../../../../../../src/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.ts"],"names":[],"mappings":";;;AACA,+DAA4D;AAE5D,oEAOkC;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,yBAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE5D,QAAQ,IAAI,EAAE;QACZ,KAAK,+BAAO,CAAC,WAAW,CAAC,CAAC;YACxB,MAAM,CAAC,WAAW,GAAG,kBAAkB,CAAC;YACxC,MAAM;SACP;QAED,KAAK,+BAAO,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC;YACjC,MAAM;SACP;QAED,KAAK,+BAAO,CAAC,MAAM,CAAC,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC;YACnC,MAAM;SACP;QAED,KAAK,+BAAO,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM,CAAC,SAAS,GAAG,kBAAkB,CAAC;YACtC,MAAM;SACP;QAED,KAAK,+BAAO,CAAC,cAAc,CAAC,CAAC;YAC3B,MAAM,CAAC,cAAc,GAAG,kBAAkB,CAAC;YAC3C,MAAM;SACP;QAED,QAAQ;QACR,cAAc;KACf;AACH,CAAC;AACQ,gEAA0B"}
1
+ {"version":3,"file":"DefaultTagContentProcessor.js","sourceRoot":"","sources":["../../../../../../src/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.ts"],"names":[],"mappings":";;;AACA,+DAA4D;AAE5D,oEAOkC;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,yBAAW,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAE5D,QAAQ,IAAI,EAAE;QACZ,KAAK,+BAAO,CAAC,WAAW,CAAC,CAAC;YACxB,MAAM,CAAC,WAAW,GAAG,kBAAkB,CAAC;YACxC,MAAM;SACP;QAED,KAAK,+BAAO,CAAC,IAAI,CAAC,CAAC;YACjB,MAAM,CAAC,IAAI,GAAG,kBAAkB,CAAC;YACjC,MAAM;SACP;QAED,KAAK,+BAAO,CAAC,MAAM,CAAC,CAAC;YACnB,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC;YACnC,MAAM;SACP;QAED,KAAK,+BAAO,CAAC,SAAS,CAAC,CAAC;YACtB,MAAM,CAAC,SAAS,GAAG,kBAAkB,CAAC;YACtC,MAAM;SACP;QAED,uDAAuD;QACvD,KAAK,+BAAO,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;AACQ,gEAA0B"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.exampleTagContentProcessor = void 0;
4
4
  const BitType_1 = require("../../../../model/enum/BitType");
5
+ const BooleanUtils_1 = require("../../../../utils/BooleanUtils");
5
6
  // const builder = new Builder();
6
7
  function exampleTagContentProcessor(context, _bitLevel, bitType, content, target) {
7
8
  const { value } = content;
@@ -12,34 +13,50 @@ function exampleTagContentProcessor(context, _bitLevel, bitType, content, target
12
13
  case BitType_1.RootBitType.clozeAndMultipleChoiceText:
13
14
  case BitType_1.RootBitType.multipleChoiceText:
14
15
  case BitType_1.RootBitType.highlightText:
15
- handleGapOrSelectExample(context, bitType, example, target);
16
+ case BitType_1.RootBitType.trueFalse:
17
+ case BitType_1.RootBitType.trueFalse1:
18
+ case BitType_1.RootBitType.multipleResponse:
19
+ case BitType_1.RootBitType.multipleResponse1:
20
+ case BitType_1.RootBitType.multipleChoice:
21
+ case BitType_1.RootBitType.multipleChoice1:
22
+ handleGapOrSelectOrTrueFalseExample(context, bitType, content, example, target);
16
23
  break;
17
24
  case BitType_1.RootBitType.mark:
18
25
  // Default only example handling
19
- handleDefaultOnlyExample(context, bitType, example, target);
26
+ handleDefaultOnlyExample(context, bitType, content, example, target);
20
27
  break;
21
28
  default:
22
29
  // Standard example handling
23
- handleStandardExample(context, bitType, example, target);
30
+ handleStandardStringExample(context, bitType, content, example, target);
24
31
  }
25
32
  }
26
33
  exports.exampleTagContentProcessor = exampleTagContentProcessor;
27
- function handleGapOrSelectExample(context, bitType, example, target) {
34
+ function handleGapOrSelectOrTrueFalseExample(context, bitType, content, example, target) {
28
35
  var _a, _b;
29
36
  let trueFalse;
30
37
  if (Array.isArray(target.trueFalse) && target.trueFalse.length > 0) {
31
38
  trueFalse = (_a = target.trueFalse[target.trueFalse.length - 1]) !== null && _a !== void 0 ? _a : undefined;
32
39
  }
33
40
  if (trueFalse) {
41
+ // Example is set on the true/false tag [+...] / [-...]
34
42
  if (example === true) {
35
43
  trueFalse.isDefaultExample = true;
44
+ trueFalse.example = undefined;
36
45
  }
37
46
  else {
38
- // TODO: This should raise a warning, because a value on the example tag is not allowed for select
39
- trueFalse.isDefaultExample = true;
47
+ if (BooleanUtils_1.BooleanUtils.isBooleanString(example)) {
48
+ trueFalse.example = example;
49
+ }
50
+ else {
51
+ // Example is set to a value other than true / false which is not valid in the case of select
52
+ trueFalse.isDefaultExample = true;
53
+ trueFalse.example = undefined;
54
+ context.addWarning(`Only 'true' / 'false' / default are allowed here, using default`, content);
55
+ }
40
56
  }
41
57
  }
42
58
  else if (Array.isArray(target.solutions) && target.solutions.length > 0) {
59
+ // Example is set on the gap solution tag [_...]
43
60
  if (example === true) {
44
61
  // Extract the solution nearest [@example] tag as the example value
45
62
  target.example = (_b = target.solutions[target.solutions.length - 1]) !== null && _b !== void 0 ? _b : undefined;
@@ -49,15 +66,68 @@ function handleGapOrSelectExample(context, bitType, example, target) {
49
66
  }
50
67
  }
51
68
  else {
52
- handleStandardExample(context, bitType, example, target);
69
+ // Example is higher up the chain, so how it is handled depends on the bit type
70
+ switch (bitType.root) {
71
+ default:
72
+ case BitType_1.RootBitType.cloze:
73
+ // Treat as a standard string
74
+ handleStandardStringExample(context, bitType, content, example, target);
75
+ break;
76
+ case BitType_1.RootBitType.multipleChoiceText:
77
+ case BitType_1.RootBitType.highlightText:
78
+ case BitType_1.RootBitType.trueFalse:
79
+ case BitType_1.RootBitType.trueFalse1:
80
+ case BitType_1.RootBitType.multipleResponse:
81
+ case BitType_1.RootBitType.multipleResponse1:
82
+ // Treat as a standard boolean
83
+ handleStandardBooleanExample(context, bitType, content, example, target);
84
+ break;
85
+ case BitType_1.RootBitType.clozeAndMultipleChoiceText:
86
+ case BitType_1.RootBitType.multipleChoice:
87
+ case BitType_1.RootBitType.multipleChoice1: {
88
+ // For these bits, a specific example value higher up the chain makes no sense
89
+ // Set example to default, and raise a warning if any value is set.
90
+ target.isDefaultExample = true;
91
+ target.example = undefined;
92
+ if (example !== true) {
93
+ // Example is set to a value other than true / false which is not valid in the case of select
94
+ context.addWarning(`At this level, only default [@example] is allowed, using default`, content);
95
+ }
96
+ break;
97
+ }
98
+ }
53
99
  }
54
100
  }
55
- function handleDefaultOnlyExample(_context, _bitType, _example, target) {
101
+ function handleDefaultOnlyExample(context, _bitType, content, example, target) {
102
+ // This bit can have only default examples - nothing else makes sense
56
103
  target.isDefaultExample = true;
104
+ target.example = undefined;
105
+ if (example !== true) {
106
+ // Example is set to a value other than true / false which is not valid in the case of select
107
+ context.addWarning(`Only default [@example] is allowed, using default`, content);
108
+ }
109
+ }
110
+ function handleStandardBooleanExample(context, _bitType, content, example, target) {
111
+ if (example === true) {
112
+ target.isDefaultExample = true;
113
+ target.example = undefined;
114
+ }
115
+ else {
116
+ if (BooleanUtils_1.BooleanUtils.isBooleanString(example)) {
117
+ target.example = example;
118
+ }
119
+ else {
120
+ // Example is set to a value other than true / false which is not valid in the case of select
121
+ target.isDefaultExample = true;
122
+ target.example = undefined;
123
+ context.addWarning(`Only 'true' / 'false' / default are allowed here, using default`, content);
124
+ }
125
+ }
57
126
  }
58
- function handleStandardExample(_context, _bitType, example, target) {
127
+ function handleStandardStringExample(_context, _bitType, _content, example, target) {
59
128
  if (example === true) {
60
129
  target.isDefaultExample = true;
130
+ target.example = undefined;
61
131
  }
62
132
  else {
63
133
  target.example = example;
@@ -1 +1 @@
1
- {"version":3,"file":"ExampleTagContentProcessor.js","sourceRoot":"","sources":["../../../../../../src/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.ts"],"names":[],"mappings":";;;AAAA,4DAAsE;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,qBAAW,CAAC,KAAK,CAAC;QACvB,KAAK,qBAAW,CAAC,0BAA0B,CAAC;QAC5C,KAAK,qBAAW,CAAC,kBAAkB,CAAC;QACpC,KAAK,qBAAW,CAAC,aAAa;YAC5B,wBAAwB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAC5D,MAAM;QACR,KAAK,qBAAW,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;AAuDQ,gEAA0B;AArDnC,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"}
1
+ {"version":3,"file":"ExampleTagContentProcessor.js","sourceRoot":"","sources":["../../../../../../src/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.ts"],"names":[],"mappings":"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"}