@gmb/bitmark-parser-generator 3.26.0 → 3.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/README.md +4 -4
  2. package/dist/browser/bitmark-parser-generator.min.js +1 -1
  3. package/dist/browser/bundle-report.html +2 -2
  4. package/dist/cjs/BitmarkParserGenerator.js +19 -16
  5. package/dist/cjs/BitmarkParserGenerator.js.map +1 -1
  6. package/dist/cjs/ast/BaseBuilder.js +8 -8
  7. package/dist/cjs/ast/BaseBuilder.js.map +1 -1
  8. package/dist/cjs/ast/Builder.js +52 -50
  9. package/dist/cjs/ast/Builder.js.map +1 -1
  10. package/dist/cjs/ast/ResourceBuilder.js +19 -18
  11. package/dist/cjs/ast/ResourceBuilder.js.map +1 -1
  12. package/dist/cjs/breakscaping/Breakscape.js +59 -72
  13. package/dist/cjs/breakscaping/Breakscape.js.map +1 -1
  14. package/dist/cjs/config/Config.js +1 -1
  15. package/dist/cjs/config/Config.js.map +1 -1
  16. package/dist/cjs/config/raw/bits.js +26 -9
  17. package/dist/cjs/config/raw/bits.js.map +1 -1
  18. package/dist/cjs/config/raw/groups.js +5 -0
  19. package/dist/cjs/config/raw/groups.js.map +1 -1
  20. package/dist/cjs/config/raw/properties.js +145 -141
  21. package/dist/cjs/config/raw/properties.js.map +1 -1
  22. package/dist/cjs/generated/build-info.js +1 -1
  23. package/dist/cjs/generator/bitmark/BitmarkGenerator.js +116 -128
  24. package/dist/cjs/generator/bitmark/BitmarkGenerator.js.map +1 -1
  25. package/dist/cjs/generator/json/JsonGenerator.js +10 -10
  26. package/dist/cjs/generator/json/JsonGenerator.js.map +1 -1
  27. package/dist/cjs/generator/text/TextGenerator.js +15 -15
  28. package/dist/cjs/generator/text/TextGenerator.js.map +1 -1
  29. package/dist/cjs/index.js +3 -3
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/model/ast/NodeType.js +2 -0
  32. package/dist/cjs/model/ast/NodeType.js.map +1 -1
  33. package/dist/cjs/model/config/enum/PropertyConfigKey.js +1 -0
  34. package/dist/cjs/model/config/enum/PropertyConfigKey.js.map +1 -1
  35. package/dist/cjs/model/enum/BitType.js +3 -0
  36. package/dist/cjs/model/enum/BitType.js.map +1 -1
  37. package/dist/cjs/model/enum/BodyTextFormat.js +14 -0
  38. package/dist/cjs/model/enum/BodyTextFormat.js.map +1 -0
  39. package/dist/cjs/model/enum/DeprecatedTextFormat.js +9 -0
  40. package/dist/cjs/model/enum/DeprecatedTextFormat.js.map +1 -0
  41. package/dist/cjs/model/enum/PropertyFormat.js +2 -4
  42. package/dist/cjs/model/enum/PropertyFormat.js.map +1 -1
  43. package/dist/cjs/model/enum/TextFormat.js +4 -15
  44. package/dist/cjs/model/enum/TextFormat.js.map +1 -1
  45. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserHelper.js +2 -2
  46. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserHelper.js.map +1 -1
  47. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserProcessor.js +14 -10
  48. package/dist/cjs/parser/bitmark/peg/BitmarkPegParserProcessor.js.map +1 -1
  49. package/dist/cjs/parser/bitmark/peg/contentProcessors/BodyContentProcessor.js +4 -4
  50. package/dist/cjs/parser/bitmark/peg/contentProcessors/BodyContentProcessor.js.map +1 -1
  51. package/dist/cjs/parser/bitmark/peg/contentProcessors/BookChainContentProcessor.js +1 -1
  52. package/dist/cjs/parser/bitmark/peg/contentProcessors/BookChainContentProcessor.js.map +1 -1
  53. package/dist/cjs/parser/bitmark/peg/contentProcessors/ClozeTagContentProcessor.js +2 -2
  54. package/dist/cjs/parser/bitmark/peg/contentProcessors/ClozeTagContentProcessor.js.map +1 -1
  55. package/dist/cjs/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.js +8 -8
  56. package/dist/cjs/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.js.map +1 -1
  57. package/dist/cjs/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.js +3 -3
  58. package/dist/cjs/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.js.map +1 -1
  59. package/dist/cjs/parser/bitmark/peg/contentProcessors/FooterContentProcessor.js +4 -4
  60. package/dist/cjs/parser/bitmark/peg/contentProcessors/FooterContentProcessor.js.map +1 -1
  61. package/dist/cjs/parser/bitmark/peg/contentProcessors/ImageSourceChainContentProcessor.js +1 -1
  62. package/dist/cjs/parser/bitmark/peg/contentProcessors/ImageSourceChainContentProcessor.js.map +1 -1
  63. package/dist/cjs/parser/bitmark/peg/contentProcessors/ItemLeadTagContentProcessor.js +2 -1
  64. package/dist/cjs/parser/bitmark/peg/contentProcessors/ItemLeadTagContentProcessor.js.map +1 -1
  65. package/dist/cjs/parser/bitmark/peg/contentProcessors/MarkConfigChainContentProcessor.js +1 -1
  66. package/dist/cjs/parser/bitmark/peg/contentProcessors/MarkConfigChainContentProcessor.js.map +1 -1
  67. package/dist/cjs/parser/bitmark/peg/contentProcessors/PersonChainContentProcessor.js +1 -1
  68. package/dist/cjs/parser/bitmark/peg/contentProcessors/PersonChainContentProcessor.js.map +1 -1
  69. package/dist/cjs/parser/bitmark/peg/contentProcessors/PropertyContentProcessor.js +10 -16
  70. package/dist/cjs/parser/bitmark/peg/contentProcessors/PropertyContentProcessor.js.map +1 -1
  71. package/dist/cjs/parser/bitmark/peg/contentProcessors/RatingLevelChainContentProcessor.js +2 -1
  72. package/dist/cjs/parser/bitmark/peg/contentProcessors/RatingLevelChainContentProcessor.js.map +1 -1
  73. package/dist/cjs/parser/bitmark/peg/contentProcessors/ReferenceTagContentProcessor.js +2 -2
  74. package/dist/cjs/parser/bitmark/peg/contentProcessors/ReferenceTagContentProcessor.js.map +1 -1
  75. package/dist/cjs/parser/bitmark/peg/contentProcessors/ResourceContentProcessor.js +2 -2
  76. package/dist/cjs/parser/bitmark/peg/contentProcessors/ResourceContentProcessor.js.map +1 -1
  77. package/dist/cjs/parser/bitmark/peg/contentProcessors/TechnicalTermChainContentProcessor.js +1 -1
  78. package/dist/cjs/parser/bitmark/peg/contentProcessors/TechnicalTermChainContentProcessor.js.map +1 -1
  79. package/dist/cjs/parser/bitmark/peg/contentProcessors/TitleTagContentProcessor.js +2 -1
  80. package/dist/cjs/parser/bitmark/peg/contentProcessors/TitleTagContentProcessor.js.map +1 -1
  81. package/dist/cjs/parser/bitmark/peg/contentProcessors/TrueFalseTagContentProcessor.js +1 -1
  82. package/dist/cjs/parser/bitmark/peg/contentProcessors/TrueFalseTagContentProcessor.js.map +1 -1
  83. package/dist/cjs/parser/json/JsonParser.js +4 -3
  84. package/dist/cjs/parser/json/JsonParser.js.map +1 -1
  85. package/dist/cjs/parser/text/TextParser.js +4 -4
  86. package/dist/cjs/parser/text/TextParser.js.map +1 -1
  87. package/dist/cjs/utils/BitUtils.js +2 -1
  88. package/dist/cjs/utils/BitUtils.js.map +1 -1
  89. package/dist/esm/BitmarkParserGenerator.js +19 -16
  90. package/dist/esm/BitmarkParserGenerator.js.map +1 -1
  91. package/dist/esm/ast/BaseBuilder.js +8 -8
  92. package/dist/esm/ast/BaseBuilder.js.map +1 -1
  93. package/dist/esm/ast/Builder.js +52 -50
  94. package/dist/esm/ast/Builder.js.map +1 -1
  95. package/dist/esm/ast/ResourceBuilder.js +19 -18
  96. package/dist/esm/ast/ResourceBuilder.js.map +1 -1
  97. package/dist/esm/breakscaping/Breakscape.js +59 -72
  98. package/dist/esm/breakscaping/Breakscape.js.map +1 -1
  99. package/dist/esm/config/Config.js +1 -1
  100. package/dist/esm/config/Config.js.map +1 -1
  101. package/dist/esm/config/raw/bits.js +26 -9
  102. package/dist/esm/config/raw/bits.js.map +1 -1
  103. package/dist/esm/config/raw/groups.js +5 -0
  104. package/dist/esm/config/raw/groups.js.map +1 -1
  105. package/dist/esm/config/raw/properties.js +145 -141
  106. package/dist/esm/config/raw/properties.js.map +1 -1
  107. package/dist/esm/generated/build-info.js +1 -1
  108. package/dist/esm/generator/bitmark/BitmarkGenerator.js +116 -128
  109. package/dist/esm/generator/bitmark/BitmarkGenerator.js.map +1 -1
  110. package/dist/esm/generator/json/JsonGenerator.js +10 -10
  111. package/dist/esm/generator/json/JsonGenerator.js.map +1 -1
  112. package/dist/esm/generator/text/TextGenerator.js +15 -15
  113. package/dist/esm/generator/text/TextGenerator.js.map +1 -1
  114. package/dist/esm/index.js +1 -1
  115. package/dist/esm/index.js.map +1 -1
  116. package/dist/esm/model/ast/NodeType.js +2 -0
  117. package/dist/esm/model/ast/NodeType.js.map +1 -1
  118. package/dist/esm/model/config/enum/PropertyConfigKey.js +1 -0
  119. package/dist/esm/model/config/enum/PropertyConfigKey.js.map +1 -1
  120. package/dist/esm/model/enum/BitType.js +3 -0
  121. package/dist/esm/model/enum/BitType.js.map +1 -1
  122. package/dist/esm/model/enum/BodyTextFormat.js +11 -0
  123. package/dist/esm/model/enum/BodyTextFormat.js.map +1 -0
  124. package/dist/esm/model/enum/DeprecatedTextFormat.js +6 -0
  125. package/dist/esm/model/enum/DeprecatedTextFormat.js.map +1 -0
  126. package/dist/esm/model/enum/PropertyFormat.js +2 -4
  127. package/dist/esm/model/enum/PropertyFormat.js.map +1 -1
  128. package/dist/esm/model/enum/TextFormat.js +4 -15
  129. package/dist/esm/model/enum/TextFormat.js.map +1 -1
  130. package/dist/esm/parser/bitmark/peg/BitmarkPegParserHelper.js +2 -2
  131. package/dist/esm/parser/bitmark/peg/BitmarkPegParserHelper.js.map +1 -1
  132. package/dist/esm/parser/bitmark/peg/BitmarkPegParserProcessor.js +14 -10
  133. package/dist/esm/parser/bitmark/peg/BitmarkPegParserProcessor.js.map +1 -1
  134. package/dist/esm/parser/bitmark/peg/contentProcessors/BodyContentProcessor.js +4 -4
  135. package/dist/esm/parser/bitmark/peg/contentProcessors/BodyContentProcessor.js.map +1 -1
  136. package/dist/esm/parser/bitmark/peg/contentProcessors/BookChainContentProcessor.js +1 -1
  137. package/dist/esm/parser/bitmark/peg/contentProcessors/BookChainContentProcessor.js.map +1 -1
  138. package/dist/esm/parser/bitmark/peg/contentProcessors/ClozeTagContentProcessor.js +2 -2
  139. package/dist/esm/parser/bitmark/peg/contentProcessors/ClozeTagContentProcessor.js.map +1 -1
  140. package/dist/esm/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.js +8 -8
  141. package/dist/esm/parser/bitmark/peg/contentProcessors/DefaultTagContentProcessor.js.map +1 -1
  142. package/dist/esm/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.js +3 -3
  143. package/dist/esm/parser/bitmark/peg/contentProcessors/ExampleTagContentProcessor.js.map +1 -1
  144. package/dist/esm/parser/bitmark/peg/contentProcessors/FooterContentProcessor.js +4 -4
  145. package/dist/esm/parser/bitmark/peg/contentProcessors/FooterContentProcessor.js.map +1 -1
  146. package/dist/esm/parser/bitmark/peg/contentProcessors/ImageSourceChainContentProcessor.js +1 -1
  147. package/dist/esm/parser/bitmark/peg/contentProcessors/ImageSourceChainContentProcessor.js.map +1 -1
  148. package/dist/esm/parser/bitmark/peg/contentProcessors/ItemLeadTagContentProcessor.js +2 -1
  149. package/dist/esm/parser/bitmark/peg/contentProcessors/ItemLeadTagContentProcessor.js.map +1 -1
  150. package/dist/esm/parser/bitmark/peg/contentProcessors/MarkConfigChainContentProcessor.js +1 -1
  151. package/dist/esm/parser/bitmark/peg/contentProcessors/MarkConfigChainContentProcessor.js.map +1 -1
  152. package/dist/esm/parser/bitmark/peg/contentProcessors/PersonChainContentProcessor.js +1 -1
  153. package/dist/esm/parser/bitmark/peg/contentProcessors/PersonChainContentProcessor.js.map +1 -1
  154. package/dist/esm/parser/bitmark/peg/contentProcessors/PropertyContentProcessor.js +10 -16
  155. package/dist/esm/parser/bitmark/peg/contentProcessors/PropertyContentProcessor.js.map +1 -1
  156. package/dist/esm/parser/bitmark/peg/contentProcessors/RatingLevelChainContentProcessor.js +2 -1
  157. package/dist/esm/parser/bitmark/peg/contentProcessors/RatingLevelChainContentProcessor.js.map +1 -1
  158. package/dist/esm/parser/bitmark/peg/contentProcessors/ReferenceTagContentProcessor.js +2 -2
  159. package/dist/esm/parser/bitmark/peg/contentProcessors/ReferenceTagContentProcessor.js.map +1 -1
  160. package/dist/esm/parser/bitmark/peg/contentProcessors/ResourceContentProcessor.js +2 -2
  161. package/dist/esm/parser/bitmark/peg/contentProcessors/ResourceContentProcessor.js.map +1 -1
  162. package/dist/esm/parser/bitmark/peg/contentProcessors/TechnicalTermChainContentProcessor.js +1 -1
  163. package/dist/esm/parser/bitmark/peg/contentProcessors/TechnicalTermChainContentProcessor.js.map +1 -1
  164. package/dist/esm/parser/bitmark/peg/contentProcessors/TitleTagContentProcessor.js +2 -1
  165. package/dist/esm/parser/bitmark/peg/contentProcessors/TitleTagContentProcessor.js.map +1 -1
  166. package/dist/esm/parser/bitmark/peg/contentProcessors/TrueFalseTagContentProcessor.js +1 -1
  167. package/dist/esm/parser/bitmark/peg/contentProcessors/TrueFalseTagContentProcessor.js.map +1 -1
  168. package/dist/esm/parser/json/JsonParser.js +4 -3
  169. package/dist/esm/parser/json/JsonParser.js.map +1 -1
  170. package/dist/esm/parser/text/TextParser.js +4 -4
  171. package/dist/esm/parser/text/TextParser.js.map +1 -1
  172. package/dist/esm/utils/BitUtils.js +2 -1
  173. package/dist/esm/utils/BitUtils.js.map +1 -1
  174. package/dist/types/BitmarkParserGenerator.d.ts +12 -8
  175. package/dist/types/BitmarkParserGenerator.d.ts.map +1 -1
  176. package/dist/types/ast/BaseBuilder.d.ts +5 -3
  177. package/dist/types/ast/BaseBuilder.d.ts.map +1 -1
  178. package/dist/types/ast/Builder.d.ts +1 -0
  179. package/dist/types/ast/Builder.d.ts.map +1 -1
  180. package/dist/types/ast/ResourceBuilder.d.ts.map +1 -1
  181. package/dist/types/breakscaping/Breakscape.d.ts +2 -2
  182. package/dist/types/breakscaping/Breakscape.d.ts.map +1 -1
  183. package/dist/types/config/raw/bits.d.ts.map +1 -1
  184. package/dist/types/config/raw/groups.d.ts.map +1 -1
  185. package/dist/types/config/raw/properties.d.ts.map +1 -1
  186. package/dist/types/generator/bitmark/BitmarkGenerator.d.ts +0 -1
  187. package/dist/types/generator/bitmark/BitmarkGenerator.d.ts.map +1 -1
  188. package/dist/types/generator/json/JsonGenerator.d.ts +2 -2
  189. package/dist/types/generator/json/JsonGenerator.d.ts.map +1 -1
  190. package/dist/types/generator/text/TextGenerator.d.ts.map +1 -1
  191. package/dist/types/index.d.ts +2 -2
  192. package/dist/types/index.d.ts.map +1 -1
  193. package/dist/types/model/ast/NodeType.d.ts +4 -0
  194. package/dist/types/model/ast/NodeType.d.ts.map +1 -1
  195. package/dist/types/model/ast/Nodes.d.ts +1 -0
  196. package/dist/types/model/ast/Nodes.d.ts.map +1 -1
  197. package/dist/types/model/config/enum/ConfigKey.d.ts +2 -0
  198. package/dist/types/model/config/enum/ConfigKey.d.ts.map +1 -1
  199. package/dist/types/model/config/enum/PropertyConfigKey.d.ts +3 -0
  200. package/dist/types/model/config/enum/PropertyConfigKey.d.ts.map +1 -1
  201. package/dist/types/model/enum/BitType.d.ts +6 -0
  202. package/dist/types/model/enum/BitType.d.ts.map +1 -1
  203. package/dist/types/model/enum/BodyTextFormat.d.ts +17 -0
  204. package/dist/types/model/enum/BodyTextFormat.d.ts.map +1 -0
  205. package/dist/types/model/enum/DeprecatedTextFormat.d.ts +7 -0
  206. package/dist/types/model/enum/DeprecatedTextFormat.d.ts.map +1 -0
  207. package/dist/types/model/enum/PropertyFormat.d.ts +4 -6
  208. package/dist/types/model/enum/PropertyFormat.d.ts.map +1 -1
  209. package/dist/types/model/enum/PropertyTag.d.ts +2 -0
  210. package/dist/types/model/enum/PropertyTag.d.ts.map +1 -1
  211. package/dist/types/model/enum/TextFormat.d.ts +4 -6
  212. package/dist/types/model/enum/TextFormat.d.ts.map +1 -1
  213. package/dist/types/model/json/BitJson.d.ts +1 -0
  214. package/dist/types/model/json/BitJson.d.ts.map +1 -1
  215. package/dist/types/parser/bitmark/peg/BitmarkPegParserProcessor.d.ts +1 -1
  216. package/dist/types/parser/bitmark/peg/BitmarkPegParserProcessor.d.ts.map +1 -1
  217. package/dist/types/parser/bitmark/peg/contentProcessors/ItemLeadTagContentProcessor.d.ts.map +1 -1
  218. package/dist/types/parser/bitmark/peg/contentProcessors/PropertyContentProcessor.d.ts.map +1 -1
  219. package/dist/types/parser/bitmark/peg/contentProcessors/RatingLevelChainContentProcessor.d.ts.map +1 -1
  220. package/dist/types/parser/bitmark/peg/contentProcessors/TitleTagContentProcessor.d.ts.map +1 -1
  221. package/dist/types/parser/json/JsonParser.d.ts.map +1 -1
  222. package/dist/types/parser/text/TextParser.d.ts +2 -1
  223. package/dist/types/parser/text/TextParser.d.ts.map +1 -1
  224. package/dist/types/utils/BitUtils.d.ts.map +1 -1
  225. package/package.json +25 -21
@@ -10,6 +10,7 @@ const Config_1 = require("../config/Config");
10
10
  const PropertyConfigKey_1 = require("../model/config/enum/PropertyConfigKey");
11
11
  const BitType_1 = require("../model/enum/BitType");
12
12
  const BodyBitType_1 = require("../model/enum/BodyBitType");
13
+ const DeprecatedTextFormat_1 = require("../model/enum/DeprecatedTextFormat");
13
14
  const ResourceTag_1 = require("../model/enum/ResourceTag");
14
15
  const TextFormat_1 = require("../model/enum/TextFormat");
15
16
  const TextLocation_1 = require("../model/enum/TextLocation");
@@ -57,10 +58,11 @@ class Builder extends BaseBuilder_1.BaseBuilder {
57
58
  var _a, _b, _c, _d, _e, _f, _g, _h;
58
59
  const bitConfig = Config_1.Config.getBitConfig(data.bitType);
59
60
  const bitType = data.bitType;
61
+ // Text Format (accepts deprecated values, and converts them to the new format)
62
+ const deprecatedTextFormat = DeprecatedTextFormat_1.DeprecatedTextFormat.fromValue(data.textFormat);
60
63
  let textFormat = (_a = TextFormat_1.TextFormat.fromValue(data.textFormat)) !== null && _a !== void 0 ? _a : bitConfig.textFormatDefault;
61
- // bitmark-- deprecated
62
- if (textFormat === TextFormat_1.TextFormat.bitmarkMinusMinus) {
63
- textFormat = TextFormat_1.TextFormat.bitmarkPlusPlus;
64
+ if (deprecatedTextFormat === DeprecatedTextFormat_1.DeprecatedTextFormat.bitmarkMinusMinus) {
65
+ textFormat = TextFormat_1.TextFormat.bitmarkText;
64
66
  }
65
67
  const context = {
66
68
  bitConfig,
@@ -79,11 +81,11 @@ class Builder extends BaseBuilder_1.BaseBuilder {
79
81
  // NOTE: Node order is important and is defined here
80
82
  const node = Object.assign(Object.assign({ bitType, bitLevel: data.bitLevel, textFormat, resourceType: ResourceTag_1.ResourceTag.fromValue(data.resourceType), isCommented: data.isCommented,
81
83
  // Properties
82
- id: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.id, data.id), internalComment: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.internalComment, data.internalComment), customerId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.customerId, data.customerId), customerExternalId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.customerExternalId, data.customerExternalId), externalId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.externalId, data.externalId), spaceId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.spaceId, data.spaceId), padletId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.padletId, data.padletId), jupyterId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.jupyterId, data.jupyterId), jupyterExecutionCount: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.jupyterExecutionCount, data.jupyterExecutionCount), isPublic: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.isPublic, data.isPublic), aiGenerated: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.aiGenerated, data.aiGenerated), machineTranslated: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.machineTranslated, data.machineTranslated), searchIndex: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.searchIndex, data.searchIndex), analyticsTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.analyticsTag, data.analyticsTag), categoryTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.categoryTag, data.categoryTag), topicTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.topicTag, data.topicTag), altLangTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.altLangTag, data.altLangTag), feedbackEngine: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.feedbackEngine, data.feedbackEngine), feedbackType: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.feedbackType, data.feedbackType), disableFeedback: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.disableFeedback, data.disableFeedback), diffTo: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.diffTo, data.diffTo), diffOp: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.diffOp, data.diffOp), diffRef: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.diffRef, data.diffRef), diffContext: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.diffContext, data.diffContext), diffTime: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.diffTime, data.diffTime), path: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.path, data.path), releaseVersion: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.releaseVersion, data.releaseVersion), releaseKind: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.releaseKind, data.releaseKind), releaseDate: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.releaseDate, data.releaseDate), book: this.buildBooks(context, data.book), ageRange: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.ageRange, data.ageRange), lang: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.lang, data.lang), language: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.language, data.language), publisher: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.publisher, data.publisher), publisherName: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.publisherName, data.publisherName), theme: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.theme, data.theme), computerLanguage: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.computerLanguage, data.computerLanguage), target: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.target, data.target), slug: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.slug, data.slug), tag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tag, data.tag), reductionTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.reductionTag, data.reductionTag), bubbleTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.bubbleTag, data.bubbleTag), levelCEFRp: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.levelCEFRp, data.levelCEFRp), levelCEFR: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.levelCEFR, data.levelCEFR), levelILR: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.levelILR, data.levelILR), levelACTFL: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.levelACTFL, data.levelACTFL), icon: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.icon, data.icon), iconTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.iconTag, data.iconTag), colorTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.colorTag, data.colorTag), flashcardSet: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.flashcardSet, data.flashcardSet), subtype: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.subtype, data.subtype), bookAlias: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.bookAlias, data.bookAlias), bookDiff: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.bookDiff, data.bookDiff), coverImage: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.coverImage, data.coverImage), coverColor: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.coverColor, data.coverColor), publications: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.publications, data.publications), author: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.author, data.author), subject: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.subject, data.subject), date: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.date, data.date), dateEnd: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.dateEnd, data.dateEnd), location: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.location, data.location), kind: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.kind, data.kind), hasMarkAsDone: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.hasMarkAsDone, data.hasMarkAsDone), processHandIn: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.processHandIn, data.processHandIn), chatWithBook: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.chatWithBook, data.chatWithBook), chatWithBookBrainKey: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.chatWithBookBrainKey, data.chatWithBookBrainKey), action: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.action, data.action), showInIndex: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.showInIndex, data.showInIndex), refAuthor: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.refAuthor, data.refAuthor), refBookTitle: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.refBookTitle, data.refBookTitle), refPublisher: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.refPublisher, data.refPublisher), refPublicationYear: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.refPublicationYear, data.refPublicationYear), citationStyle: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.citationStyle, data.citationStyle), blockId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.blockId, data.blockId), pageNo: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.pageNo, data.pageNo), x: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.x, data.x), y: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.y, data.y), width: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.width, data.width), height: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.height, data.height), index: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.index, data.index), classification: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.classification, data.classification), availableClassifications: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.availableClassifications, data.availableClassifications), allowedBit: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.allowedBit, data.allowedBit), tableFixedHeader: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableFixedHeader, data.tableFixedHeader), tableSearch: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableSearch, data.tableSearch), tableSort: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableSort, data.tableSort), tablePagination: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tablePagination, data.tablePagination), tablePaginationLimit: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tablePaginationLimit, data.tablePaginationLimit), tableHeight: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableHeight, data.tableHeight), tableWhitespaceNoWrap: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableWhitespaceNoWrap, data.tableWhitespaceNoWrap), tableAutoWidth: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableAutoWidth, data.tableAutoWidth), tableResizableColumns: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableResizableColumns, data.tableResizableColumns), tableColumnMinWidth: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableColumnMinWidth, data.tableColumnMinWidth), quizCountItems: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.quizCountItems, data.quizCountItems), quizStrikethroughSolutions: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.quizStrikethroughSolutions, data.quizStrikethroughSolutions), codeLineNumbers: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.codeLineNumbers, data.codeLineNumbers), codeMinimap: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.codeMinimap, data.codeMinimap), stripePricingTableId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.stripePricingTableId, data.stripePricingTableId), stripePublishableKey: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.stripePublishableKey, data.stripePublishableKey), thumbImage: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.thumbImage, data.thumbImage), scormSource: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.scormSource, data.scormSource), posterImage: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.posterImage, data.posterImage), focusX: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.focusX, data.focusX), focusY: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.focusY, data.focusY), pointerLeft: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.pointerLeft, data.pointerLeft), pointerTop: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.pointerTop, data.pointerTop), listItemIndent: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.listItemIndent, data.listItemIndent), backgroundWallpaper: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.backgroundWallpaper, data.backgroundWallpaper), hasBookNavigation: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.hasBookNavigation, data.hasBookNavigation), duration: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.duration, data.duration), deeplink: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.deeplink, data.deeplink), externalLink: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.externalLink, data.externalLink), externalLinkText: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.externalLinkText, data.externalLinkText), videoCallLink: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.videoCallLink, data.videoCallLink), vendorDashboardId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.vendorDashboardId, data.vendorDashboardId), vendorSurveyId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.vendorSurveyId, data.vendorSurveyId), vendorUrl: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.vendorUrl, data.vendorUrl), search: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.search, data.search), list: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.list, data.list), layer: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.layer, data.layer), textReference: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.textReference, data.textReference), isTracked: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.isTracked, data.isTracked), isInfoOnly: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.isInfoOnly, data.isInfoOnly), imageFirst: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.imageFirst, data.imageFirst), activityType: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.activityType, data.activityType), labelTrue: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.labelTrue, data.labelTrue), labelFalse: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.labelFalse, data.labelFalse), content2Buy: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.content2Buy, data.content2Buy), mailingList: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.mailingList, data.mailingList), buttonCaption: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.buttonCaption, data.buttonCaption), callToActionUrl: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.callToActionUrl, data.callToActionUrl), caption: this.handleJsonText(context, true, data.caption), quotedPerson: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.quotedPerson, data.quotedPerson), reasonableNumOfChars: reasonableNumOfCharsProperty, resolved: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.resolved, data.resolved), resolvedDate: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.resolvedDate, data.resolvedDate), resolvedBy: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.resolvedBy, data.resolvedBy), handInAcceptFileType: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.handInAcceptFileType, data.handInAcceptFileType), handInRequirement: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.handInRequirement, data.handInRequirement), handInInstruction: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.handInInstruction, data.handInInstruction), maxCreatedBits: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.maxCreatedBits, data.maxCreatedBits), maxDisplayLevel: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.maxDisplayLevel, data.maxDisplayLevel), maxTocChapterLevel: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.maxTocChapterLevel, data.maxTocChapterLevel), page: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.page, data.page), productId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.productId, data.productId), product: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.product, data.product), productList: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.productList, data.productList), productVideo: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.productVideo, data.productVideo), productVideoList: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.productVideoList, data.productVideoList), productFolder: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.productFolder, data.productFolder), technicalTerm: this.buildTechnicalTerm(context, data.technicalTerm), servings: this.buildServings(context, data.servings), ratingLevelStart: this.buildRatingLevelStartEnd(context, data.ratingLevelStart), ratingLevelEnd: this.buildRatingLevelStartEnd(context, data.ratingLevelEnd), ratingLevelSelected: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.ratingLevelSelected, data.ratingLevelSelected), markConfig: this.buildMarkConfigs(context, data.markConfig), imageSource: this.buildImageSource(context, data.imageSource), person: this.buildPerson(context, data.person), bot: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.bot, data.bot), referenceProperty: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.property_reference, data.referenceProperty),
84
+ id: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.id, data.id), internalComment: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.internalComment, data.internalComment), customerId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.customerId, data.customerId), customerExternalId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.customerExternalId, data.customerExternalId), externalId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.externalId, data.externalId), spaceId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.spaceId, data.spaceId), padletId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.padletId, data.padletId), jupyterId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.jupyterId, data.jupyterId), jupyterExecutionCount: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.jupyterExecutionCount, data.jupyterExecutionCount), isPublic: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.isPublic, data.isPublic), aiGenerated: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.aiGenerated, data.aiGenerated), machineTranslated: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.machineTranslated, data.machineTranslated), searchIndex: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.searchIndex, data.searchIndex), analyticsTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.analyticsTag, data.analyticsTag), categoryTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.categoryTag, data.categoryTag), topicTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.topicTag, data.topicTag), altLangTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.altLangTag, data.altLangTag), feedbackEngine: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.feedbackEngine, data.feedbackEngine), feedbackType: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.feedbackType, data.feedbackType), disableFeedback: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.disableFeedback, data.disableFeedback), diffTo: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.diffTo, data.diffTo), diffOp: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.diffOp, data.diffOp), diffRef: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.diffRef, data.diffRef), diffContext: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.diffContext, data.diffContext), diffTime: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.diffTime, data.diffTime), path: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.path, data.path), releaseVersion: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.releaseVersion, data.releaseVersion), releaseKind: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.releaseKind, data.releaseKind), releaseDate: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.releaseDate, data.releaseDate), book: this.buildBooks(context, data.book), ageRange: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.ageRange, data.ageRange), lang: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.lang, data.lang), language: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.language, data.language), publisher: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.publisher, data.publisher), publisherName: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.publisherName, data.publisherName), theme: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.theme, data.theme), computerLanguage: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.computerLanguage, data.computerLanguage), target: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.target, data.target), slug: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.slug, data.slug), tag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tag, data.tag), reductionTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.reductionTag, data.reductionTag), bubbleTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.bubbleTag, data.bubbleTag), levelCEFRp: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.levelCEFRp, data.levelCEFRp), levelCEFR: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.levelCEFR, data.levelCEFR), levelILR: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.levelILR, data.levelILR), levelACTFL: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.levelACTFL, data.levelACTFL), icon: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.icon, data.icon), iconTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.iconTag, data.iconTag), colorTag: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.colorTag, data.colorTag), flashcardSet: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.flashcardSet, data.flashcardSet), subtype: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.subtype, data.subtype), bookAlias: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.bookAlias, data.bookAlias), bookDiff: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.bookDiff, data.bookDiff), coverImage: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.coverImage, data.coverImage), coverColor: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.coverColor, data.coverColor), publications: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.publications, data.publications), author: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.author, data.author), subject: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.subject, data.subject), date: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.date, data.date), dateEnd: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.dateEnd, data.dateEnd), location: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.location, data.location), kind: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.kind, data.kind), hasMarkAsDone: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.hasMarkAsDone, data.hasMarkAsDone), processHandIn: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.processHandIn, data.processHandIn), chatWithBook: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.chatWithBook, data.chatWithBook), chatWithBookBrainKey: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.chatWithBookBrainKey, data.chatWithBookBrainKey), action: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.action, data.action), showInIndex: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.showInIndex, data.showInIndex), refAuthor: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.refAuthor, data.refAuthor), refBookTitle: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.refBookTitle, data.refBookTitle), refPublisher: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.refPublisher, data.refPublisher), refPublicationYear: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.refPublicationYear, data.refPublicationYear), citationStyle: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.citationStyle, data.citationStyle), blockId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.blockId, data.blockId), pageNo: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.pageNo, data.pageNo), x: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.x, data.x), y: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.y, data.y), width: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.width, data.width), height: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.height, data.height), index: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.index, data.index), classification: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.classification, data.classification), availableClassifications: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.availableClassifications, data.availableClassifications), allowedBit: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.allowedBit, data.allowedBit), tableFixedHeader: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableFixedHeader, data.tableFixedHeader), tableSearch: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableSearch, data.tableSearch), tableSort: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableSort, data.tableSort), tablePagination: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tablePagination, data.tablePagination), tablePaginationLimit: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tablePaginationLimit, data.tablePaginationLimit), tableHeight: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableHeight, data.tableHeight), tableWhitespaceNoWrap: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableWhitespaceNoWrap, data.tableWhitespaceNoWrap), tableAutoWidth: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableAutoWidth, data.tableAutoWidth), tableResizableColumns: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableResizableColumns, data.tableResizableColumns), tableColumnMinWidth: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.tableColumnMinWidth, data.tableColumnMinWidth), quizCountItems: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.quizCountItems, data.quizCountItems), quizStrikethroughSolutions: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.quizStrikethroughSolutions, data.quizStrikethroughSolutions), codeLineNumbers: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.codeLineNumbers, data.codeLineNumbers), codeMinimap: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.codeMinimap, data.codeMinimap), stripePricingTableId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.stripePricingTableId, data.stripePricingTableId), stripePublishableKey: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.stripePublishableKey, data.stripePublishableKey), thumbImage: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.thumbImage, data.thumbImage), scormSource: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.scormSource, data.scormSource), posterImage: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.posterImage, data.posterImage), focusX: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.focusX, data.focusX), focusY: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.focusY, data.focusY), pointerLeft: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.pointerLeft, data.pointerLeft), pointerTop: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.pointerTop, data.pointerTop), listItemIndent: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.listItemIndent, data.listItemIndent), backgroundWallpaper: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.backgroundWallpaper, data.backgroundWallpaper), hasBookNavigation: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.hasBookNavigation, data.hasBookNavigation), duration: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.duration, data.duration), deeplink: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.deeplink, data.deeplink), externalLink: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.externalLink, data.externalLink), externalLinkText: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.externalLinkText, data.externalLinkText), videoCallLink: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.videoCallLink, data.videoCallLink), vendorDashboardId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.vendorDashboardId, data.vendorDashboardId), vendorSurveyId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.vendorSurveyId, data.vendorSurveyId), vendorUrl: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.vendorUrl, data.vendorUrl), search: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.search, data.search), list: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.list, data.list), layer: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.layer, data.layer), layerRole: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.layerRole, data.layerRole), textReference: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.textReference, data.textReference), isTracked: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.isTracked, data.isTracked), isInfoOnly: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.isInfoOnly, data.isInfoOnly), imageFirst: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.imageFirst, data.imageFirst), activityType: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.activityType, data.activityType), labelTrue: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.labelTrue, data.labelTrue), labelFalse: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.labelFalse, data.labelFalse), content2Buy: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.content2Buy, data.content2Buy), mailingList: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.mailingList, data.mailingList), buttonCaption: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.buttonCaption, data.buttonCaption), callToActionUrl: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.callToActionUrl, data.callToActionUrl), caption: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.caption), quotedPerson: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.quotedPerson, data.quotedPerson), reasonableNumOfChars: reasonableNumOfCharsProperty, resolved: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.resolved, data.resolved), resolvedDate: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.resolvedDate, data.resolvedDate), resolvedBy: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.resolvedBy, data.resolvedBy), handInAcceptFileType: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.handInAcceptFileType, data.handInAcceptFileType), handInRequirement: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.handInRequirement, data.handInRequirement), handInInstruction: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.handInInstruction, data.handInInstruction), maxCreatedBits: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.maxCreatedBits, data.maxCreatedBits), maxDisplayLevel: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.maxDisplayLevel, data.maxDisplayLevel), maxTocChapterLevel: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.maxTocChapterLevel, data.maxTocChapterLevel), page: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.page, data.page), productId: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.productId, data.productId), product: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.product, data.product), productList: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.productList, data.productList), productVideo: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.productVideo, data.productVideo), productVideoList: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.productVideoList, data.productVideoList), productFolder: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.productFolder, data.productFolder), technicalTerm: this.buildTechnicalTerm(context, data.technicalTerm), servings: this.buildServings(context, data.servings), ratingLevelStart: this.buildRatingLevelStartEnd(context, data.ratingLevelStart), ratingLevelEnd: this.buildRatingLevelStartEnd(context, data.ratingLevelEnd), ratingLevelSelected: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.ratingLevelSelected, data.ratingLevelSelected), markConfig: this.buildMarkConfigs(context, data.markConfig), imageSource: this.buildImageSource(context, data.imageSource), person: this.buildPerson(context, data.person), bot: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.bot, data.bot), referenceProperty: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.property_reference, data.referenceProperty),
83
85
  // Book data
84
- title: this.handleJsonText(context, true, data.title), subtitle: this.handleJsonText(context, true, data.subtitle), level: NumberUtils_1.NumberUtils.asNumber(data.level), toc: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.toc, data.toc), progress: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.progress, data.progress), anchor: data.anchor, reference: data.reference, referenceEnd: data.referenceEnd, revealSolutions: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.revealSolutions, data.revealSolutions),
86
+ title: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.title), subtitle: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.subtitle), level: NumberUtils_1.NumberUtils.asNumber(data.level), toc: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.toc, data.toc), progress: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.progress, data.progress), anchor: data.anchor, reference: data.reference, referenceEnd: data.referenceEnd, revealSolutions: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.revealSolutions, data.revealSolutions),
85
87
  // Item, Lead, Hint, Instruction
86
- item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), pageNumber: this.handleJsonText(context, true, data.pageNumber), marginNumber: this.handleJsonText(context, true, data.marginNumber), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction), partialAnswer: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.partialAnswer, data.partialAnswer), sampleSolution: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.property_sampleSolution, data.sampleSolution), additionalSolutions: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.additionalSolutions, data.additionalSolutions) }, this.toExample(data.__isDefaultExample, data.example)), {
88
+ item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), pageNumber: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.pageNumber), marginNumber: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.marginNumber), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction), partialAnswer: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.partialAnswer, data.partialAnswer), sampleSolution: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.property_sampleSolution, data.sampleSolution), additionalSolutions: this.toAstProperty(PropertyConfigKey_1.PropertyConfigKey.additionalSolutions, data.additionalSolutions) }, this.toExample(data.__isDefaultExample, data.example)), {
87
89
  // Person
88
90
  imagePlaceholder: ArrayUtils_1.ArrayUtils.asSingle(this.resourceBuilder.resourceFromResourceDataJson(context, ResourceTag_1.ResourceTag.image, (_b = data.imagePlaceholder) === null || _b === void 0 ? void 0 : _b.image)), resources: ArrayUtils_1.ArrayUtils.asArray(this.resourceBuilder.resourceFromResourceJson(context, data.resources)),
89
91
  // Body, Card, Footer, must be after all other properties except the extraProperties and markup / parser
@@ -182,7 +184,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
182
184
  if (!data)
183
185
  return undefined;
184
186
  // NOTE: Node order is important and is defined here
185
- const node = Object.assign({ choice: (_a = data.choice) !== null && _a !== void 0 ? _a : '', requireReason: !!data.requireReason, item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, true));
187
+ const node = Object.assign({ choice: (_a = data.choice) !== null && _a !== void 0 ? _a : '', requireReason: !!data.requireReason, item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, true));
186
188
  // Remove Unset Optionals
187
189
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
188
190
  ignoreAllFalse: true,
@@ -203,9 +205,9 @@ class Builder extends BaseBuilder_1.BaseBuilder {
203
205
  return undefined;
204
206
  // Set default example
205
207
  // Not __testAst - there is no default example
206
- const defaultExample = this.handleJsonText(context, true, 'true');
208
+ const defaultExample = this.handleJsonText(context, TextLocation_1.TextLocation.tag, 'true');
207
209
  // NOTE: Node order is important and is defined here
208
- const node = Object.assign(Object.assign({ text: (_a = data.text) !== null && _a !== void 0 ? _a : '', reasonableNumOfChars: ((_b = data.reasonableNumOfChars) !== null && _b !== void 0 ? _b : undefined), item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, defaultExample)), { __textAst: data.__textAst });
210
+ const node = Object.assign(Object.assign({ text: (_a = data.text) !== null && _a !== void 0 ? _a : '', reasonableNumOfChars: ((_b = data.reasonableNumOfChars) !== null && _b !== void 0 ? _b : undefined), item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, defaultExample)), { __textAst: data.__textAst });
209
211
  // Remove Unset Optionals
210
212
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
211
213
  ignoreAllFalse: true,
@@ -237,7 +239,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
237
239
  if (!data)
238
240
  return undefined;
239
241
  // NOTE: Node order is important and is defined here
240
- const node = Object.assign({ choice: (_a = data.choice) !== null && _a !== void 0 ? _a : '', isCorrect: !!data.isCorrect, item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, !!data.isCorrect));
242
+ const node = Object.assign({ choice: (_a = data.choice) !== null && _a !== void 0 ? _a : '', isCorrect: !!data.isCorrect, item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, !!data.isCorrect));
241
243
  // Remove Unset Optionals
242
244
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
243
245
  ignoreAllFalse: true,
@@ -269,7 +271,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
269
271
  if (!data)
270
272
  return undefined;
271
273
  // NOTE: Node order is important and is defined here
272
- const node = Object.assign({ response: (_a = data.response) !== null && _a !== void 0 ? _a : '', isCorrect: !!data.isCorrect, item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, !!data.isCorrect));
274
+ const node = Object.assign({ response: (_a = data.response) !== null && _a !== void 0 ? _a : '', isCorrect: !!data.isCorrect, item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, !!data.isCorrect));
273
275
  // Remove Unset Optionals
274
276
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
275
277
  ignoreAllFalse: true,
@@ -305,9 +307,9 @@ class Builder extends BaseBuilder_1.BaseBuilder {
305
307
  response: (_a = data.response) !== null && _a !== void 0 ? _a : '',
306
308
  reaction: (_b = data.reaction) !== null && _b !== void 0 ? _b : '',
307
309
  feedback: (_c = data.feedback) !== null && _c !== void 0 ? _c : '',
308
- item: this.handleJsonText(context, true, data.item),
309
- lead: this.handleJsonText(context, true, data.lead),
310
- hint: this.handleJsonText(context, true, data.hint),
310
+ item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item),
311
+ lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead),
312
+ hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint),
311
313
  };
312
314
  // Remove Unset Optionals
313
315
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
@@ -355,10 +357,10 @@ class Builder extends BaseBuilder_1.BaseBuilder {
355
357
  }
356
358
  // NOTE: Node order is important and is defined here
357
359
  const node = {
358
- item: this.handleJsonText(context, true, data.item),
359
- lead: this.handleJsonText(context, true, data.lead),
360
- hint: this.handleJsonText(context, true, data.hint),
361
- instruction: this.handleJsonText(context, true, data.instruction),
360
+ item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item),
361
+ lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead),
362
+ hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint),
363
+ instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction),
362
364
  // isExample: !!data.__defaultExample,
363
365
  choices: choices,
364
366
  reason: reason, // Might be undefined
@@ -410,10 +412,10 @@ class Builder extends BaseBuilder_1.BaseBuilder {
410
412
  }
411
413
  // NOTE: Node order is important and is defined here
412
414
  const node = {
413
- item: this.handleJsonText(context, true, data.item),
414
- lead: this.handleJsonText(context, true, data.lead),
415
- hint: this.handleJsonText(context, true, data.hint),
416
- instruction: this.handleJsonText(context, true, data.instruction),
415
+ item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item),
416
+ lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead),
417
+ hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint),
418
+ instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction),
417
419
  isExample: !!data.__defaultExample,
418
420
  choices: choices,
419
421
  responses: responses,
@@ -479,7 +481,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
479
481
  const keyImage = this.resourceBuilder.resourceFromResourceJson(context, data.keyImage);
480
482
  // NOTE: Node order is important and is defined here
481
483
  const node = Object.assign(Object.assign({ key: (_a = data.key) !== null && _a !== void 0 ? _a : '', keyAudio,
482
- keyImage, item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction), isCaseSensitive: data.isCaseSensitive }, this.toExample(data.__isDefaultExample, data.example, defaultExample)), { values: (_b = data.values) !== null && _b !== void 0 ? _b : [], __valuesAst: data.__valuesAst });
484
+ keyImage, item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction), isCaseSensitive: data.isCaseSensitive }, this.toExample(data.__isDefaultExample, data.example, defaultExample)), { values: (_b = data.values) !== null && _b !== void 0 ? _b : [], __valuesAst: data.__valuesAst });
483
485
  // Remove Unset Optionals
484
486
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
485
487
  ignoreAllFalse: true,
@@ -539,10 +541,10 @@ class Builder extends BaseBuilder_1.BaseBuilder {
539
541
  // NOTE: Node order is important and is defined here
540
542
  const node = {
541
543
  key: (_b = data.key) !== null && _b !== void 0 ? _b : '',
542
- item: this.handleJsonText(context, true, data.item),
543
- lead: this.handleJsonText(context, true, data.lead),
544
- hint: this.handleJsonText(context, true, data.hint),
545
- instruction: this.handleJsonText(context, true, data.instruction),
544
+ item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item),
545
+ lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead),
546
+ hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint),
547
+ instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction),
546
548
  isExample,
547
549
  cells: ((_c = data.cells) !== null && _c !== void 0 ? _c : []).map((c) => this.buildMatrixCell(context, c)).filter((c) => c != null),
548
550
  };
@@ -567,7 +569,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
567
569
  // Set default example
568
570
  const defaultExample = Array.isArray(data.__valuesAst) && data.__valuesAst.length > 0 ? data.__valuesAst[0] : null;
569
571
  // NOTE: Node order is important and is defined here
570
- const node = Object.assign(Object.assign({ values: (_a = data.values) !== null && _a !== void 0 ? _a : [], item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction), isCaseSensitive: data.isCaseSensitive }, this.toExample(data.__isDefaultExample, data.example, defaultExample)), { __valuesAst: data.__valuesAst });
572
+ const node = Object.assign(Object.assign({ values: (_a = data.values) !== null && _a !== void 0 ? _a : [], item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction), isCaseSensitive: data.isCaseSensitive }, this.toExample(data.__isDefaultExample, data.example, defaultExample)), { __valuesAst: data.__valuesAst });
571
573
  // Remove Unset Optionals
572
574
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
573
575
  ignoreAllFalse: true,
@@ -592,8 +594,8 @@ class Builder extends BaseBuilder_1.BaseBuilder {
592
594
  // Process the audio resource
593
595
  const audio = this.resourceBuilder.resourceFromResourceJson(context, cell.audio);
594
596
  return {
595
- title: this.handleJsonText(context, true, cell.title),
596
- body: this.handleJsonText(context, true, cell.body),
597
+ title: this.handleJsonText(context, TextLocation_1.TextLocation.tag, cell.title),
598
+ body: this.handleJsonText(context, TextLocation_1.TextLocation.tag, cell.body),
597
599
  audio,
598
600
  };
599
601
  })),
@@ -616,8 +618,8 @@ class Builder extends BaseBuilder_1.BaseBuilder {
616
618
  return undefined;
617
619
  // NOTE: Node order is important and is defined here
618
620
  const node = {
619
- columns: ((_a = dataIn.columns) !== null && _a !== void 0 ? _a : []).map((col) => this.handleJsonText(context, true, col)),
620
- data: ((_b = dataIn.data) !== null && _b !== void 0 ? _b : []).map((row) => (row !== null && row !== void 0 ? row : []).map((cell) => this.handleJsonText(context, true, cell))),
621
+ columns: ((_a = dataIn.columns) !== null && _a !== void 0 ? _a : []).map((col) => this.handleJsonText(context, TextLocation_1.TextLocation.tag, col)),
622
+ data: ((_b = dataIn.data) !== null && _b !== void 0 ? _b : []).map((row) => (row !== null && row !== void 0 ? row : []).map((cell) => this.handleJsonText(context, TextLocation_1.TextLocation.tag, cell))),
621
623
  };
622
624
  // Remove Unset Optionals
623
625
  // ObjectUtils.removeUnwantedProperties(node, {
@@ -650,7 +652,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
650
652
  // Set default example
651
653
  const defaultExample = data.__sampleSolutionAst;
652
654
  // NOTE: Node order is important and is defined here
653
- const node = Object.assign(Object.assign({ question: (_a = data.question) !== null && _a !== void 0 ? _a : '', partialAnswer: (_b = data.partialAnswer) !== null && _b !== void 0 ? _b : '', sampleSolution: (_c = data.sampleSolution) !== null && _c !== void 0 ? _c : '', additionalSolutions: ((_d = data.additionalSolutions) !== null && _d !== void 0 ? _d : undefined), reasonableNumOfChars: ((_e = data.reasonableNumOfChars) !== null && _e !== void 0 ? _e : undefined), item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, defaultExample)), { __sampleSolutionAst: data.__sampleSolutionAst });
655
+ const node = Object.assign(Object.assign({ question: (_a = data.question) !== null && _a !== void 0 ? _a : '', partialAnswer: (_b = data.partialAnswer) !== null && _b !== void 0 ? _b : '', sampleSolution: (_c = data.sampleSolution) !== null && _c !== void 0 ? _c : '', additionalSolutions: ((_d = data.additionalSolutions) !== null && _d !== void 0 ? _d : undefined), reasonableNumOfChars: ((_e = data.reasonableNumOfChars) !== null && _e !== void 0 ? _e : undefined), item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, defaultExample)), { __sampleSolutionAst: data.__sampleSolutionAst });
654
656
  // Remove Unset Optionals
655
657
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
656
658
  ignoreAllFalse: true,
@@ -745,7 +747,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
745
747
  const placeholderNodes = {};
746
748
  // TODO - process body bits through the correct builders.
747
749
  if (StringUtils_1.StringUtils.isString(data.body)) {
748
- // Body is a string (legacy bitmark v2, or not bitmark--/++)
750
+ // Body is a string (legacy bitmark v2, or not bitmarkText)
749
751
  bodyStr = ((_a = data.body) !== null && _a !== void 0 ? _a : '').trim();
750
752
  rawBody = [];
751
753
  }
@@ -765,7 +767,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
765
767
  }
766
768
  }
767
769
  if (bodyStr) {
768
- // Bug #7141: Use textFormat for textParser, not always bitmark-- if it is a v2 string body
770
+ // Bug #7141: Use textFormat for textParser, not always bitmarkText if it is a v2 string body
769
771
  // However, only use plain text breakscaping the text from the v2 JSON body
770
772
  // Special v2 Breakscaping
771
773
  bodyStr = Breakscape_1.Breakscape.breakscape(bodyStr, {
@@ -787,7 +789,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
787
789
  // Convert the body string to AST
788
790
  rawBody = this.textParser.toAst(bodyStr, {
789
791
  textFormat,
790
- isProperty: false,
792
+ textLocation: TextLocation_1.TextLocation.body,
791
793
  });
792
794
  const replaceBitsRecursive = (bodyText) => {
793
795
  for (let i = 0, len = bodyText.length; i < len; i++) {
@@ -844,7 +846,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
844
846
  const handlePlainTextBody = () => {
845
847
  body = data.body;
846
848
  };
847
- const isBitmarkText = textFormat === TextFormat_1.TextFormat.bitmarkMinusMinus || textFormat === TextFormat_1.TextFormat.bitmarkPlusPlus;
849
+ const isBitmarkText = textFormat === TextFormat_1.TextFormat.bitmarkText;
848
850
  if (textFormat === TextFormat_1.TextFormat.json) {
849
851
  // JSON
850
852
  handleJsonBody();
@@ -875,7 +877,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
875
877
  if (!data)
876
878
  return undefined;
877
879
  const node = {
878
- footer: this.handleJsonText(context, false, data.footer),
880
+ footer: this.handleJsonText(context, TextLocation_1.TextLocation.body, data.footer),
879
881
  };
880
882
  return node;
881
883
  }
@@ -894,7 +896,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
894
896
  // Copy any attributes from 'attrs' to the body bit (data is in 'attrs' when coming from JSON)
895
897
  data = this.bodyBitCopyFromAttrs(data);
896
898
  // NOTE: Node order is important and is defined here
897
- const node = Object.assign(Object.assign({ type: BodyBitType_1.BodyBitType.gap, solutions: (_a = data.solutions) !== null && _a !== void 0 ? _a : [], item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction), isCaseSensitive: data.isCaseSensitive }, this.toExample(data.__isDefaultExample, data.example, defaultExample)), { __solutionsAst: data.__solutionsAst, attrs: {} });
899
+ const node = Object.assign(Object.assign({ type: BodyBitType_1.BodyBitType.gap, solutions: (_a = data.solutions) !== null && _a !== void 0 ? _a : [], item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction), isCaseSensitive: data.isCaseSensitive }, this.toExample(data.__isDefaultExample, data.example, defaultExample)), { __solutionsAst: data.__solutionsAst, attrs: {} });
898
900
  // Remove Unset Optionals
899
901
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
900
902
  ignoreAllFalse: true,
@@ -950,7 +952,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
950
952
  // Copy any attributes from 'attrs' to the body bit (data is in 'attrs' when coming from JSON)
951
953
  data = this.bodyBitCopyFromAttrs(data);
952
954
  // NOTE: Node order is important and is defined here
953
- const node = Object.assign(Object.assign({ type: BodyBitType_1.BodyBitType.mark, solution: (_a = data.solution) !== null && _a !== void 0 ? _a : '', mark: (_b = data.mark) !== null && _b !== void 0 ? _b : '', item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, true)), { attrs: {} });
955
+ const node = Object.assign(Object.assign({ type: BodyBitType_1.BodyBitType.mark, solution: (_a = data.solution) !== null && _a !== void 0 ? _a : '', mark: (_b = data.mark) !== null && _b !== void 0 ? _b : '', item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, true)), { attrs: {} });
954
956
  // Remove Unset Optionals
955
957
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
956
958
  ignoreAllFalse: true,
@@ -973,7 +975,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
973
975
  // Copy any attributes from 'attrs' to the body bit (data is in 'attrs' when coming from JSON)
974
976
  data = this.bodyBitCopyFromAttrs(data);
975
977
  // NOTE: Node order is important and is defined here
976
- const node = Object.assign(Object.assign({ type: BodyBitType_1.BodyBitType.select, options: (_a = this.buildSelectOptions(context, data.options)) !== null && _a !== void 0 ? _a : [], prefix: (_b = data.prefix) !== null && _b !== void 0 ? _b : '', postfix: (_c = data.postfix) !== null && _c !== void 0 ? _c : '', item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(false, undefined, undefined)), { __hintString: data.__hintString, __instructionString: data.__instructionString, attrs: {} });
978
+ const node = Object.assign(Object.assign({ type: BodyBitType_1.BodyBitType.select, options: (_a = this.buildSelectOptions(context, data.options)) !== null && _a !== void 0 ? _a : [], prefix: (_b = data.prefix) !== null && _b !== void 0 ? _b : '', postfix: (_c = data.postfix) !== null && _c !== void 0 ? _c : '', item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(false, undefined, undefined)), { __hintString: data.__hintString, __instructionString: data.__instructionString, attrs: {} });
977
979
  // Remove Unset Optionals
978
980
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
979
981
  ignoreAllFalse: true,
@@ -1005,7 +1007,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
1005
1007
  if (!data)
1006
1008
  return undefined;
1007
1009
  // NOTE: Node order is important and is defined here
1008
- const node = Object.assign({ text: (_a = data.text) !== null && _a !== void 0 ? _a : '', isCorrect: !!data.isCorrect, item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, !!data.isCorrect));
1010
+ const node = Object.assign({ text: (_a = data.text) !== null && _a !== void 0 ? _a : '', isCorrect: !!data.isCorrect, item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, !!data.isCorrect));
1009
1011
  // Remove Unset Optionals
1010
1012
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
1011
1013
  ignoreAllFalse: true,
@@ -1027,7 +1029,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
1027
1029
  // Copy any attributes from 'attrs' to the body bit (data is in 'attrs' when coming from JSON)
1028
1030
  data = this.bodyBitCopyFromAttrs(data);
1029
1031
  // NOTE: Node order is important and is defined here
1030
- const node = Object.assign(Object.assign({ type: BodyBitType_1.BodyBitType.highlight, texts: (_a = this.buildHighlightTexts(context, data.texts)) !== null && _a !== void 0 ? _a : [], prefix: (_b = data.prefix) !== null && _b !== void 0 ? _b : '', postfix: (_c = data.postfix) !== null && _c !== void 0 ? _c : '', item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(false, undefined, undefined)), { attrs: {} });
1032
+ const node = Object.assign(Object.assign({ type: BodyBitType_1.BodyBitType.highlight, texts: (_a = this.buildHighlightTexts(context, data.texts)) !== null && _a !== void 0 ? _a : [], prefix: (_b = data.prefix) !== null && _b !== void 0 ? _b : '', postfix: (_c = data.postfix) !== null && _c !== void 0 ? _c : '', item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(false, undefined, undefined)), { attrs: {} });
1031
1033
  // Remove Unset Optionals
1032
1034
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
1033
1035
  ignoreAllFalse: true,
@@ -1059,7 +1061,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
1059
1061
  if (!data)
1060
1062
  return undefined;
1061
1063
  // NOTE: Node order is important and is defined here
1062
- const node = Object.assign({ text: (_a = data.text) !== null && _a !== void 0 ? _a : '', isCorrect: !!data.isCorrect, isHighlighted: !!data.isHighlighted, item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, !!data.isCorrect));
1064
+ const node = Object.assign({ text: (_a = data.text) !== null && _a !== void 0 ? _a : '', isCorrect: !!data.isCorrect, isHighlighted: !!data.isHighlighted, item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, !!data.isCorrect));
1063
1065
  // Remove Unset Optionals
1064
1066
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
1065
1067
  ignoreAllFalse: true,
@@ -1093,7 +1095,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
1093
1095
  // NOTE: Node order is important and is defined here
1094
1096
  const node = Object.assign({ question: this.buildTextAndIcon(context, data.question), answer: this.buildTextAndIcon(context, data.answer), alternativeAnswers: ((_a = data.alternativeAnswers) !== null && _a !== void 0 ? _a : [])
1095
1097
  .map((d) => this.buildTextAndIcon(context, d))
1096
- .filter((d) => d != null), item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, true));
1098
+ .filter((d) => d != null), item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, true));
1097
1099
  // Remove Unset Optionals
1098
1100
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
1099
1101
  ignoreAllFalse: true,
@@ -1129,7 +1131,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
1129
1131
  // NOTE: Node order is important and is defined here
1130
1132
  const node = Object.assign({ term: this.buildTextAndIcon(context, data.term, textAsStrings), definition: this.buildTextAndIcon(context, data.definition, textAsStrings), alternativeDefinitions: ((_a = data.alternativeDefinitions) !== null && _a !== void 0 ? _a : [])
1131
1133
  .map((d) => this.buildTextAndIcon(context, d, textAsStrings))
1132
- .filter((d) => d != null), item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, true));
1134
+ .filter((d) => d != null), item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, true));
1133
1135
  // Remove Unset Optionals
1134
1136
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
1135
1137
  ignoreAllFalse: true,
@@ -1141,11 +1143,11 @@ class Builder extends BaseBuilder_1.BaseBuilder {
1141
1143
  buildTextAndIcon(context, data, textAsStrings = false) {
1142
1144
  const icon = this.resourceBuilder.resourceFromResourceJson(context, data === null || data === void 0 ? void 0 : data.icon);
1143
1145
  // Ensure text is bitmark text
1144
- let text = this.handleJsonText(context, true, data === null || data === void 0 ? void 0 : data.text);
1146
+ let text = this.handleJsonText(context, TextLocation_1.TextLocation.tag, data === null || data === void 0 ? void 0 : data.text);
1145
1147
  if (textAsStrings) {
1146
1148
  // Convert the bitmark text to plain text (without breakscaping, as that will happen in the Bitmark Generator)
1147
1149
  text = this.textGenerator
1148
- .generateSync(text, TextFormat_1.TextFormat.text, TextLocation_1.TextLocation.body, {
1150
+ .generateSync(text, TextFormat_1.TextFormat.plainText, TextLocation_1.TextLocation.body, {
1149
1151
  noBreakscaping: true,
1150
1152
  })
1151
1153
  .trim();
@@ -1185,7 +1187,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
1185
1187
  if (!data)
1186
1188
  return undefined;
1187
1189
  // NOTE: Node order is important and is defined here
1188
- const node = Object.assign({ statement: (_a = data.statement) !== null && _a !== void 0 ? _a : '', isCorrect: !!data.isCorrect, item: this.handleJsonText(context, true, data.item), lead: this.handleJsonText(context, true, data.lead), hint: this.handleJsonText(context, true, data.hint), instruction: this.handleJsonText(context, true, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, !!data.isCorrect));
1190
+ const node = Object.assign({ statement: (_a = data.statement) !== null && _a !== void 0 ? _a : '', isCorrect: !!data.isCorrect, item: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.item), lead: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.lead), hint: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.hint), instruction: this.handleJsonText(context, TextLocation_1.TextLocation.tag, data.instruction) }, this.toExample(data.__isDefaultExample, data.example, !!data.isCorrect));
1189
1191
  // Remove Unset Optionals
1190
1192
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {
1191
1193
  ignoreAllFalse: true,
@@ -1305,7 +1307,7 @@ class Builder extends BaseBuilder_1.BaseBuilder {
1305
1307
  // NOTE: Node order is important and is defined here
1306
1308
  const node = {
1307
1309
  level: level !== null && level !== void 0 ? level : 0,
1308
- label: this.handleJsonText(context, true, label),
1310
+ label: this.handleJsonText(context, TextLocation_1.TextLocation.tag, label),
1309
1311
  };
1310
1312
  // Remove Unset Optionals
1311
1313
  ObjectUtils_1.ObjectUtils.removeUnwantedProperties(node, {