@examind/block-sdk 0.1.27 → 0.1.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +165 -123
- package/dist/index.mjs +160 -118
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -346,9 +346,9 @@ var NodeHandlerChainBuilder = class {
|
|
|
346
346
|
}
|
|
347
347
|
};
|
|
348
348
|
|
|
349
|
-
// src/typeGuards/
|
|
350
|
-
function
|
|
351
|
-
return node?.type === "
|
|
349
|
+
// src/typeGuards/isSerializedCustomQuestionNode.ts
|
|
350
|
+
function isSerializedCustomQuestionNode(node) {
|
|
351
|
+
return node?.type === "custom-question" && "id" in node && typeof node.id === "string" && "points" in node && typeof node.points === "number" && "name" in node && typeof node.name === "string" && "data" in node && typeof node.data === "string";
|
|
352
352
|
}
|
|
353
353
|
|
|
354
354
|
// src/exportToHtml/types.ts
|
|
@@ -371,6 +371,19 @@ var NodeHandler = class {
|
|
|
371
371
|
}
|
|
372
372
|
};
|
|
373
373
|
|
|
374
|
+
// src/exportToHtml/CustomQuestionNodeHandler.ts
|
|
375
|
+
var CustomQuestionNodeHandler = class extends NodeHandler {
|
|
376
|
+
processNode(node) {
|
|
377
|
+
if (!isSerializedCustomQuestionNode(node)) return null;
|
|
378
|
+
return `<x-custom id="${node.id}" data-x-prompt data-x-points="${node.points}" data-x-name="${node.name}"></x-custom>`;
|
|
379
|
+
}
|
|
380
|
+
};
|
|
381
|
+
|
|
382
|
+
// src/typeGuards/isSerializedEssayQuestionNode.ts
|
|
383
|
+
function isSerializedEssayQuestionNode(node) {
|
|
384
|
+
return node?.type === "essay-question" && "id" in node && typeof node.id === "string" && "points" in node && typeof node.points === "number" && "maxWords" in node && typeof node.maxWords === "number" && "hideChat" in node && typeof node.hideChat === "boolean";
|
|
385
|
+
}
|
|
386
|
+
|
|
374
387
|
// src/exportToHtml/EssayQuestionNodeHandler.ts
|
|
375
388
|
var EssayQuestionNodeHandler = class extends NodeHandler {
|
|
376
389
|
processNode(node) {
|
|
@@ -434,6 +447,11 @@ function isSerializedFillInTheBlankSpaceNode(node) {
|
|
|
434
447
|
return node?.type === "space" && "id" in node && typeof node.id === "string" && "spaceName" in node && typeof node.spaceName === "string" && "matches" in node && typeof node.matches === "string" && "spaceType" in node;
|
|
435
448
|
}
|
|
436
449
|
|
|
450
|
+
// src/exportToHtml/serializeErrorToleranceAttribute.ts
|
|
451
|
+
function serializeErrorToleranceAttribute(errorTolerance) {
|
|
452
|
+
return (errorTolerance ?? 0) / 100;
|
|
453
|
+
}
|
|
454
|
+
|
|
437
455
|
// src/exportToHtml/FillInTheBlankSpaceNodeHandler.ts
|
|
438
456
|
var FillInTheBlankSpaceNodeHandler = class extends NodeHandler {
|
|
439
457
|
processNode(node) {
|
|
@@ -451,7 +469,7 @@ var FillInTheBlankSpaceNodeHandler = class extends NodeHandler {
|
|
|
451
469
|
`data-x-case-sensitive="${!!node.caseSensitive}"`,
|
|
452
470
|
`data-x-errors-allowed="${node.errorsAllowed ?? 0}"`,
|
|
453
471
|
`data-x-min-decimals="${node.minDecimals ?? ""}"`,
|
|
454
|
-
`data-x-error-tolerance="${(node.errorTolerance
|
|
472
|
+
`data-x-error-tolerance="${serializeErrorToleranceAttribute(node.errorTolerance)}"`,
|
|
455
473
|
// Divide by 100 to convert percentage to rate
|
|
456
474
|
`data-x-distractors="${node.distractors ?? ""}"`
|
|
457
475
|
];
|
|
@@ -660,7 +678,7 @@ var JournalEntryQuestionNodeHandler = class extends NodeHandler {
|
|
|
660
678
|
];
|
|
661
679
|
if (journalNode.errorTolerance !== void 0) {
|
|
662
680
|
attributes.push(
|
|
663
|
-
`data-x-error-tolerance="${journalNode.errorTolerance}"`
|
|
681
|
+
`data-x-error-tolerance="${serializeErrorToleranceAttribute(journalNode.errorTolerance)}"`
|
|
664
682
|
);
|
|
665
683
|
}
|
|
666
684
|
attributes.push(
|
|
@@ -1208,7 +1226,7 @@ var VariableNodeHandler = class extends NodeHandler {
|
|
|
1208
1226
|
|
|
1209
1227
|
// src/exportToHtml/traverse.ts
|
|
1210
1228
|
var builder = new NodeHandlerChainBuilder();
|
|
1211
|
-
var nodeHandlerChain = builder.addHandler(EssayQuestionNodeHandler).addHandler(FillInTheBlankQuestionNodeHandler).addHandler(FillInTheBlankSpaceNodeHandler).addHandler(FinancialStatementQuestionNodeHandler).addHandler(HorizontalRuleNodeHandler).addHandler(ImageNodeHandler).addHandler(JournalEntryQuestionNodeHandler).addHandler(LineBreakNodeHandler).addHandler(LinkNodeHandler).addHandler(ListNodeHandler).addHandler(ListItemNodeHandler).addHandler(MatchingQuestionNodeHandler).addHandler(MultipleOptionQuestionNodeHandler).addHandler(ParagraphNodeHandler).addHandler(ShortAnswerQuestionNodeHandler).addHandler(SimulationQuestionNodeHandler).addHandler(TableCellNodeHandler).addHandler(TableNodeHandler).addHandler(TableRowNodeHandler).addHandler(TextNodeHandler).addHandler(VariableNodeHandler).build();
|
|
1229
|
+
var nodeHandlerChain = builder.addHandler(CustomQuestionNodeHandler).addHandler(EssayQuestionNodeHandler).addHandler(FillInTheBlankQuestionNodeHandler).addHandler(FillInTheBlankSpaceNodeHandler).addHandler(FinancialStatementQuestionNodeHandler).addHandler(HorizontalRuleNodeHandler).addHandler(ImageNodeHandler).addHandler(JournalEntryQuestionNodeHandler).addHandler(LineBreakNodeHandler).addHandler(LinkNodeHandler).addHandler(ListNodeHandler).addHandler(ListItemNodeHandler).addHandler(MatchingQuestionNodeHandler).addHandler(MultipleOptionQuestionNodeHandler).addHandler(ParagraphNodeHandler).addHandler(ShortAnswerQuestionNodeHandler).addHandler(SimulationQuestionNodeHandler).addHandler(TableCellNodeHandler).addHandler(TableNodeHandler).addHandler(TableRowNodeHandler).addHandler(TextNodeHandler).addHandler(VariableNodeHandler).build();
|
|
1212
1230
|
var traverse = (node, metadata) => {
|
|
1213
1231
|
return nodeHandlerChain.handle(node, metadata);
|
|
1214
1232
|
};
|
|
@@ -1227,7 +1245,7 @@ function exportToHtml(editorState) {
|
|
|
1227
1245
|
}
|
|
1228
1246
|
|
|
1229
1247
|
// src/importFromHtml/index.ts
|
|
1230
|
-
var
|
|
1248
|
+
var import_node_html_parser28 = require("node-html-parser");
|
|
1231
1249
|
|
|
1232
1250
|
// src/importFromHtml/createEmptyParagraphNode.ts
|
|
1233
1251
|
function createEmptyParagraphNode(format = "") {
|
|
@@ -1243,11 +1261,59 @@ function createEmptyParagraphNode(format = "") {
|
|
|
1243
1261
|
};
|
|
1244
1262
|
}
|
|
1245
1263
|
|
|
1264
|
+
// src/importFromHtml/CustomQuestionNodeHandler.ts
|
|
1265
|
+
var import_node_html_parser = require("node-html-parser");
|
|
1266
|
+
|
|
1267
|
+
// src/importFromHtml/types.ts
|
|
1268
|
+
var NodeHandler2 = class {
|
|
1269
|
+
constructor() {
|
|
1270
|
+
this.nextHandler = null;
|
|
1271
|
+
}
|
|
1272
|
+
getChildNodesTextContent(childNodes) {
|
|
1273
|
+
return childNodes.reduce((acc, item) => {
|
|
1274
|
+
const text = item.textContent || "";
|
|
1275
|
+
return acc + text.trim() + " ";
|
|
1276
|
+
}, "").trimEnd();
|
|
1277
|
+
}
|
|
1278
|
+
setNext(handler) {
|
|
1279
|
+
this.nextHandler = handler;
|
|
1280
|
+
return handler;
|
|
1281
|
+
}
|
|
1282
|
+
handle(node) {
|
|
1283
|
+
const result = this.processNode(node);
|
|
1284
|
+
if (result) {
|
|
1285
|
+
return result;
|
|
1286
|
+
} else if (this.nextHandler) {
|
|
1287
|
+
return this.nextHandler.handle(node);
|
|
1288
|
+
}
|
|
1289
|
+
return null;
|
|
1290
|
+
}
|
|
1291
|
+
};
|
|
1292
|
+
|
|
1293
|
+
// src/importFromHtml/CustomQuestionNodeHandler.ts
|
|
1294
|
+
var TAG_X_CUSTOM = "x-custom";
|
|
1295
|
+
var CustomQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
1296
|
+
processNode(node) {
|
|
1297
|
+
if (!(node instanceof import_node_html_parser.HTMLElement) || node.tagName !== TAG_X_CUSTOM.toUpperCase()) {
|
|
1298
|
+
return null;
|
|
1299
|
+
}
|
|
1300
|
+
const jsonNode = {
|
|
1301
|
+
id: node.getAttribute("id") || "",
|
|
1302
|
+
points: Number(node.getAttribute("data-x-points") || 1),
|
|
1303
|
+
name: node.getAttribute("data-x-name") || "",
|
|
1304
|
+
data: "",
|
|
1305
|
+
type: "custom-question",
|
|
1306
|
+
version: 1
|
|
1307
|
+
};
|
|
1308
|
+
return jsonNode;
|
|
1309
|
+
}
|
|
1310
|
+
};
|
|
1311
|
+
|
|
1246
1312
|
// src/importFromHtml/DivNodeHandler.ts
|
|
1247
|
-
var
|
|
1313
|
+
var import_node_html_parser3 = require("node-html-parser");
|
|
1248
1314
|
|
|
1249
1315
|
// src/importFromHtml/createNestedNodesFromHtml.ts
|
|
1250
|
-
var
|
|
1316
|
+
var import_node_html_parser2 = require("node-html-parser");
|
|
1251
1317
|
var wrapInlinesInParagraph = (inlineNodes, format = "") => {
|
|
1252
1318
|
const paragraph = createEmptyParagraphNode(format);
|
|
1253
1319
|
paragraph.children = inlineNodes;
|
|
@@ -1273,9 +1339,9 @@ var extractFormatFromStyle = (styleAttribute) => {
|
|
|
1273
1339
|
return "";
|
|
1274
1340
|
};
|
|
1275
1341
|
var createNestedNodesFromHtml = (node) => {
|
|
1276
|
-
const parentStyleAttribute = node instanceof
|
|
1342
|
+
const parentStyleAttribute = node instanceof import_node_html_parser2.HTMLElement ? node.getAttribute("style") : null;
|
|
1277
1343
|
const format = extractFormatFromStyle(parentStyleAttribute);
|
|
1278
|
-
if (node.childNodes.length === 1 && node.childNodes[0] instanceof
|
|
1344
|
+
if (node.childNodes.length === 1 && node.childNodes[0] instanceof import_node_html_parser2.HTMLElement && node.childNodes[0].tagName === "BR") {
|
|
1279
1345
|
return [createEmptyParagraphNode(format)];
|
|
1280
1346
|
}
|
|
1281
1347
|
const results = [];
|
|
@@ -1411,36 +1477,10 @@ function processImageNodeContainer(node) {
|
|
|
1411
1477
|
];
|
|
1412
1478
|
}
|
|
1413
1479
|
|
|
1414
|
-
// src/importFromHtml/types.ts
|
|
1415
|
-
var NodeHandler2 = class {
|
|
1416
|
-
constructor() {
|
|
1417
|
-
this.nextHandler = null;
|
|
1418
|
-
}
|
|
1419
|
-
getChildNodesTextContent(childNodes) {
|
|
1420
|
-
return childNodes.reduce((acc, item) => {
|
|
1421
|
-
const text = item.textContent || "";
|
|
1422
|
-
return acc + text.trim() + " ";
|
|
1423
|
-
}, "").trimEnd();
|
|
1424
|
-
}
|
|
1425
|
-
setNext(handler) {
|
|
1426
|
-
this.nextHandler = handler;
|
|
1427
|
-
return handler;
|
|
1428
|
-
}
|
|
1429
|
-
handle(node) {
|
|
1430
|
-
const result = this.processNode(node);
|
|
1431
|
-
if (result) {
|
|
1432
|
-
return result;
|
|
1433
|
-
} else if (this.nextHandler) {
|
|
1434
|
-
return this.nextHandler.handle(node);
|
|
1435
|
-
}
|
|
1436
|
-
return null;
|
|
1437
|
-
}
|
|
1438
|
-
};
|
|
1439
|
-
|
|
1440
1480
|
// src/importFromHtml/DivNodeHandler.ts
|
|
1441
1481
|
var DivNodeHandler = class extends NodeHandler2 {
|
|
1442
1482
|
isHtmlDivElement(node) {
|
|
1443
|
-
return node instanceof
|
|
1483
|
+
return node instanceof import_node_html_parser3.HTMLElement && node.tagName === "DIV";
|
|
1444
1484
|
}
|
|
1445
1485
|
processNode(node) {
|
|
1446
1486
|
if (!this.isHtmlDivElement(node)) {
|
|
@@ -1455,12 +1495,12 @@ var DivNodeHandler = class extends NodeHandler2 {
|
|
|
1455
1495
|
|
|
1456
1496
|
// src/importFromHtml/EssayQuestionNodeHandler.ts
|
|
1457
1497
|
var import_nanoid = require("nanoid");
|
|
1458
|
-
var
|
|
1498
|
+
var import_node_html_parser4 = require("node-html-parser");
|
|
1459
1499
|
var TAG_X_ESSAY = "x-essay";
|
|
1460
1500
|
var TAG_X_SYSTEM_MESSAGE = "x-ai-system-message";
|
|
1461
1501
|
var EssayQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
1462
1502
|
processNode(node) {
|
|
1463
|
-
if (!(node instanceof
|
|
1503
|
+
if (!(node instanceof import_node_html_parser4.HTMLElement) || node.tagName !== TAG_X_ESSAY.toUpperCase()) {
|
|
1464
1504
|
return null;
|
|
1465
1505
|
}
|
|
1466
1506
|
const jsonNode = {
|
|
@@ -1486,7 +1526,7 @@ var EssayQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
1486
1526
|
|
|
1487
1527
|
// src/importFromHtml/FillInTheBlankQuestionNodeHandler.ts
|
|
1488
1528
|
var import_nanoid2 = require("nanoid");
|
|
1489
|
-
var
|
|
1529
|
+
var import_node_html_parser5 = require("node-html-parser");
|
|
1490
1530
|
|
|
1491
1531
|
// src/importFromHtml/createNestedEditorFromHtml.ts
|
|
1492
1532
|
function createNestedEditorFromHtml(node) {
|
|
@@ -1507,7 +1547,7 @@ function createNestedEditorFromHtml(node) {
|
|
|
1507
1547
|
// src/importFromHtml/FillInTheBlankQuestionNodeHandler.ts
|
|
1508
1548
|
var FillInTheBlankQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
1509
1549
|
processNode(node) {
|
|
1510
|
-
if (!(node instanceof
|
|
1550
|
+
if (!(node instanceof import_node_html_parser5.HTMLElement) || node.tagName !== "x-fill-in-the-blank".toUpperCase())
|
|
1511
1551
|
return null;
|
|
1512
1552
|
const jsonNode = {
|
|
1513
1553
|
id: node.getAttribute("id") ?? (0, import_nanoid2.nanoid)(),
|
|
@@ -1524,10 +1564,19 @@ var FillInTheBlankQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
1524
1564
|
|
|
1525
1565
|
// src/importFromHtml/FillInTheBlankSpaceNodeHandler.ts
|
|
1526
1566
|
var import_nanoid3 = require("nanoid");
|
|
1527
|
-
var
|
|
1567
|
+
var import_node_html_parser6 = require("node-html-parser");
|
|
1568
|
+
|
|
1569
|
+
// src/importFromHtml/parseErrorToleranceAttribute.ts
|
|
1570
|
+
function parseErrorToleranceAttribute(attr) {
|
|
1571
|
+
const value = Number(attr);
|
|
1572
|
+
if (isNaN(value)) return 0;
|
|
1573
|
+
else return value * 100;
|
|
1574
|
+
}
|
|
1575
|
+
|
|
1576
|
+
// src/importFromHtml/FillInTheBlankSpaceNodeHandler.ts
|
|
1528
1577
|
var FillInTheBlankSpaceNodeHandler2 = class extends NodeHandler2 {
|
|
1529
1578
|
processNode(node) {
|
|
1530
|
-
if (!(node instanceof
|
|
1579
|
+
if (!(node instanceof import_node_html_parser6.HTMLElement) || node.tagName !== "x-space".toUpperCase())
|
|
1531
1580
|
return null;
|
|
1532
1581
|
const spaceTypeAttr = node.getAttribute("data-x-type");
|
|
1533
1582
|
const spaceType = spaceTypeAttr === "Text" || spaceTypeAttr === "Number" || spaceTypeAttr === "Dropdown" ? spaceTypeAttr : "Text";
|
|
@@ -1558,16 +1607,11 @@ var FillInTheBlankSpaceNodeHandler2 = class extends NodeHandler2 {
|
|
|
1558
1607
|
errorsAllowed: node.getAttribute("data-x-errors-allowed") ? Number(node.getAttribute("data-x-errors-allowed")) : void 0
|
|
1559
1608
|
};
|
|
1560
1609
|
}
|
|
1561
|
-
parseErrorToleranceAttr(attr) {
|
|
1562
|
-
const value = Number(attr);
|
|
1563
|
-
if (isNaN(value)) return 0;
|
|
1564
|
-
else return value * 100;
|
|
1565
|
-
}
|
|
1566
1610
|
processNumberSpace(node, baseNode) {
|
|
1567
1611
|
return {
|
|
1568
1612
|
...baseNode,
|
|
1569
1613
|
minDecimals: node.getAttribute("data-x-min-decimals") ? Number(node.getAttribute("data-x-min-decimals")) : void 0,
|
|
1570
|
-
errorTolerance:
|
|
1614
|
+
errorTolerance: parseErrorToleranceAttribute(
|
|
1571
1615
|
node.getAttribute("data-x-error-tolerance")
|
|
1572
1616
|
)
|
|
1573
1617
|
};
|
|
@@ -1582,7 +1626,7 @@ var FillInTheBlankSpaceNodeHandler2 = class extends NodeHandler2 {
|
|
|
1582
1626
|
|
|
1583
1627
|
// src/importFromHtml/FinancialStatementQuestionNodeHandler.ts
|
|
1584
1628
|
var import_nanoid4 = require("nanoid");
|
|
1585
|
-
var
|
|
1629
|
+
var import_node_html_parser7 = require("node-html-parser");
|
|
1586
1630
|
var TAG_X_FINANCIAL_STATEMENT = "x-financial-statement";
|
|
1587
1631
|
var TAG_X_HEADER = "x-header";
|
|
1588
1632
|
var TAG_X_ROWS = "x-rows";
|
|
@@ -1594,7 +1638,7 @@ var TAG_X_ENTRY = "x-entry";
|
|
|
1594
1638
|
var TAG_X_AMOUNT = "x-amount";
|
|
1595
1639
|
var FinancialStatementQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
1596
1640
|
processNode(node) {
|
|
1597
|
-
if (!(node instanceof
|
|
1641
|
+
if (!(node instanceof import_node_html_parser7.HTMLElement) || node.tagName !== TAG_X_FINANCIAL_STATEMENT.toUpperCase()) {
|
|
1598
1642
|
return null;
|
|
1599
1643
|
}
|
|
1600
1644
|
const headerElement = node.querySelector(TAG_X_HEADER);
|
|
@@ -1609,7 +1653,7 @@ var FinancialStatementQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
1609
1653
|
version: 1
|
|
1610
1654
|
};
|
|
1611
1655
|
node.childNodes.forEach((child) => {
|
|
1612
|
-
if (!(child instanceof
|
|
1656
|
+
if (!(child instanceof import_node_html_parser7.HTMLElement)) return;
|
|
1613
1657
|
if (child.tagName === TAG_X_DISTRACTORS.toUpperCase()) {
|
|
1614
1658
|
this.processDistractorsNode(child, jsonNode);
|
|
1615
1659
|
} else if (child.tagName === TAG_X_ROWS.toUpperCase()) {
|
|
@@ -1620,7 +1664,7 @@ var FinancialStatementQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
1620
1664
|
}
|
|
1621
1665
|
processDistractorsNode(distractorsNode, jsonNode) {
|
|
1622
1666
|
for (const distractorsChild of distractorsNode.childNodes) {
|
|
1623
|
-
if (!(distractorsChild instanceof
|
|
1667
|
+
if (!(distractorsChild instanceof import_node_html_parser7.HTMLElement)) continue;
|
|
1624
1668
|
if (distractorsChild.tagName !== TAG_X_DISTRACTOR.toUpperCase())
|
|
1625
1669
|
continue;
|
|
1626
1670
|
jsonNode.distractors.push({
|
|
@@ -1641,7 +1685,7 @@ var FinancialStatementQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
1641
1685
|
const contentDiv = headerElement.querySelector(
|
|
1642
1686
|
'div > div:not([style*="display:flex"])'
|
|
1643
1687
|
);
|
|
1644
|
-
if (contentDiv && contentDiv instanceof
|
|
1688
|
+
if (contentDiv && contentDiv instanceof import_node_html_parser7.HTMLElement) {
|
|
1645
1689
|
const contentDivClone = contentDiv.clone();
|
|
1646
1690
|
contentDivClone.setAttribute("style", "text-align: left;");
|
|
1647
1691
|
return createNestedEditorFromHtml(contentDivClone);
|
|
@@ -1661,7 +1705,7 @@ var FinancialStatementQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
1661
1705
|
}
|
|
1662
1706
|
processRowsNode(rowsNode, jsonNode) {
|
|
1663
1707
|
for (const rowsChild of rowsNode.childNodes) {
|
|
1664
|
-
if (!(rowsChild instanceof
|
|
1708
|
+
if (!(rowsChild instanceof import_node_html_parser7.HTMLElement)) continue;
|
|
1665
1709
|
if (rowsChild.tagName === TAG_X_HEADING.toUpperCase()) {
|
|
1666
1710
|
this.processHeadingRow(rowsChild, jsonNode);
|
|
1667
1711
|
} else if (rowsChild.tagName === TAG_X_LINE.toUpperCase()) {
|
|
@@ -1695,7 +1739,7 @@ var FinancialStatementQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
1695
1739
|
};
|
|
1696
1740
|
|
|
1697
1741
|
// src/importFromHtml/FormattedNodeHandler.ts
|
|
1698
|
-
var
|
|
1742
|
+
var import_node_html_parser8 = require("node-html-parser");
|
|
1699
1743
|
var IS_BOLD2 = 1;
|
|
1700
1744
|
var IS_ITALIC2 = 1 << 1;
|
|
1701
1745
|
var IS_STRIKETHROUGH2 = 1 << 2;
|
|
@@ -1735,7 +1779,7 @@ function formatToProps(format) {
|
|
|
1735
1779
|
}
|
|
1736
1780
|
var FormattedNodeHandler = class extends NodeHandler2 {
|
|
1737
1781
|
processNode(node) {
|
|
1738
|
-
if (!(node instanceof
|
|
1782
|
+
if (!(node instanceof import_node_html_parser8.HTMLElement)) return null;
|
|
1739
1783
|
const tagName = node.tagName;
|
|
1740
1784
|
if (!tagName || !(tagName in TAG_TO_FORMAT)) return null;
|
|
1741
1785
|
const formatFlag = TAG_TO_FORMAT[tagName];
|
|
@@ -1770,11 +1814,11 @@ var FormattedNodeHandler = class extends NodeHandler2 {
|
|
|
1770
1814
|
};
|
|
1771
1815
|
|
|
1772
1816
|
// src/importFromHtml/HorizontalRuleNodeHandler.ts
|
|
1773
|
-
var
|
|
1817
|
+
var import_node_html_parser9 = require("node-html-parser");
|
|
1774
1818
|
var TAG_HR = "hr";
|
|
1775
1819
|
var HorizontalRuleNodeHandler2 = class extends NodeHandler2 {
|
|
1776
1820
|
processNode(node) {
|
|
1777
|
-
if (!(node instanceof
|
|
1821
|
+
if (!(node instanceof import_node_html_parser9.HTMLElement) || node.tagName !== TAG_HR.toUpperCase()) {
|
|
1778
1822
|
return null;
|
|
1779
1823
|
}
|
|
1780
1824
|
const horizontalRuleNode = {
|
|
@@ -1786,11 +1830,11 @@ var HorizontalRuleNodeHandler2 = class extends NodeHandler2 {
|
|
|
1786
1830
|
};
|
|
1787
1831
|
|
|
1788
1832
|
// src/importFromHtml/ImageNodeHandler.ts
|
|
1789
|
-
var
|
|
1833
|
+
var import_node_html_parser10 = require("node-html-parser");
|
|
1790
1834
|
var TAG_IMG = "img";
|
|
1791
1835
|
var ImageNodeHandler2 = class extends NodeHandler2 {
|
|
1792
1836
|
processNode(node) {
|
|
1793
|
-
if (!(node instanceof
|
|
1837
|
+
if (!(node instanceof import_node_html_parser10.HTMLElement) || node.tagName !== TAG_IMG.toUpperCase()) {
|
|
1794
1838
|
return null;
|
|
1795
1839
|
}
|
|
1796
1840
|
return createImageNode(
|
|
@@ -1806,11 +1850,11 @@ var ImageNodeHandler2 = class extends NodeHandler2 {
|
|
|
1806
1850
|
|
|
1807
1851
|
// src/importFromHtml/JournalEntryQuestionNodeHandler.ts
|
|
1808
1852
|
var import_nanoid6 = require("nanoid");
|
|
1809
|
-
var
|
|
1853
|
+
var import_node_html_parser12 = require("node-html-parser");
|
|
1810
1854
|
|
|
1811
1855
|
// src/importFromHtml/createOnePerLineDistractorNode.ts
|
|
1812
1856
|
var import_nanoid5 = require("nanoid");
|
|
1813
|
-
var
|
|
1857
|
+
var import_node_html_parser11 = require("node-html-parser");
|
|
1814
1858
|
function extractDistractorId(id) {
|
|
1815
1859
|
if (!id) return null;
|
|
1816
1860
|
const parts = id.split("|");
|
|
@@ -1823,7 +1867,7 @@ var createOnePerLineDistractorNode = (node) => {
|
|
|
1823
1867
|
distractorEditor.editorState.root.children = [];
|
|
1824
1868
|
let distractorId = null;
|
|
1825
1869
|
distractors.forEach((distractor) => {
|
|
1826
|
-
if (!(distractor instanceof
|
|
1870
|
+
if (!(distractor instanceof import_node_html_parser11.HTMLElement)) return;
|
|
1827
1871
|
distractorId = distractorId ?? extractDistractorId(distractor.getAttribute("id"));
|
|
1828
1872
|
distractorEditor.editorState.root.children.push(
|
|
1829
1873
|
...createNestedNodesFromHtml(distractor)
|
|
@@ -1841,20 +1885,22 @@ var createOnePerLineDistractorNode = (node) => {
|
|
|
1841
1885
|
// src/importFromHtml/JournalEntryQuestionNodeHandler.ts
|
|
1842
1886
|
var JournalEntryQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
1843
1887
|
processNode(node) {
|
|
1844
|
-
if (!(node instanceof
|
|
1888
|
+
if (!(node instanceof import_node_html_parser12.HTMLElement) || node.tagName !== "x-journal-entry".toUpperCase())
|
|
1845
1889
|
return null;
|
|
1846
1890
|
const jsonNode = {
|
|
1847
1891
|
id: node.getAttribute("id") ?? (0, import_nanoid6.nanoid)(),
|
|
1848
1892
|
points: Number(node.getAttribute("data-x-points") ?? 1),
|
|
1849
1893
|
noEntryRequired: node.getAttribute("data-x-no-entry-required-correct") === "true",
|
|
1850
|
-
errorTolerance:
|
|
1894
|
+
errorTolerance: parseErrorToleranceAttribute(
|
|
1895
|
+
node.getAttribute("data-x-error-tolerance")
|
|
1896
|
+
),
|
|
1851
1897
|
lineItems: [],
|
|
1852
1898
|
type: "journal-entry-question",
|
|
1853
1899
|
version: 1
|
|
1854
1900
|
};
|
|
1855
1901
|
const lineItems = node.querySelectorAll("x-line-item");
|
|
1856
1902
|
lineItems.forEach((lineItem) => {
|
|
1857
|
-
if (!(lineItem instanceof
|
|
1903
|
+
if (!(lineItem instanceof import_node_html_parser12.HTMLElement)) return;
|
|
1858
1904
|
const accountElement = lineItem.querySelector("x-account");
|
|
1859
1905
|
const debitElement = lineItem.querySelector("x-debit");
|
|
1860
1906
|
const creditElement = lineItem.querySelector("x-credit");
|
|
@@ -1883,10 +1929,10 @@ var JournalEntryQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
1883
1929
|
};
|
|
1884
1930
|
|
|
1885
1931
|
// src/importFromHtml/LineBreakNodeHandler.ts
|
|
1886
|
-
var
|
|
1932
|
+
var import_node_html_parser13 = require("node-html-parser");
|
|
1887
1933
|
var LineBreakNodeHandler2 = class extends NodeHandler2 {
|
|
1888
1934
|
processNode(node) {
|
|
1889
|
-
if (!(node instanceof
|
|
1935
|
+
if (!(node instanceof import_node_html_parser13.HTMLElement)) return null;
|
|
1890
1936
|
if (node.tagName !== "BR") return null;
|
|
1891
1937
|
return {
|
|
1892
1938
|
type: "linebreak",
|
|
@@ -1896,11 +1942,11 @@ var LineBreakNodeHandler2 = class extends NodeHandler2 {
|
|
|
1896
1942
|
};
|
|
1897
1943
|
|
|
1898
1944
|
// src/importFromHtml/LinkNodeHandler.ts
|
|
1899
|
-
var
|
|
1945
|
+
var import_node_html_parser14 = require("node-html-parser");
|
|
1900
1946
|
var TAG_A = "a";
|
|
1901
1947
|
var LinkNodeHandler2 = class extends NodeHandler2 {
|
|
1902
1948
|
processNode(node) {
|
|
1903
|
-
if (!(node instanceof
|
|
1949
|
+
if (!(node instanceof import_node_html_parser14.HTMLElement) || node.tagName !== TAG_A.toUpperCase()) {
|
|
1904
1950
|
return null;
|
|
1905
1951
|
}
|
|
1906
1952
|
const url = node.getAttribute("href") || "";
|
|
@@ -1929,10 +1975,10 @@ var LinkNodeHandler2 = class extends NodeHandler2 {
|
|
|
1929
1975
|
};
|
|
1930
1976
|
|
|
1931
1977
|
// src/importFromHtml/ListItemNodeHandler.ts
|
|
1932
|
-
var
|
|
1978
|
+
var import_node_html_parser15 = require("node-html-parser");
|
|
1933
1979
|
var ListItemNodeHandler2 = class extends NodeHandler2 {
|
|
1934
1980
|
processNode(node) {
|
|
1935
|
-
if (!(node instanceof
|
|
1981
|
+
if (!(node instanceof import_node_html_parser15.HTMLElement)) return null;
|
|
1936
1982
|
if (node.tagName !== "LI") return null;
|
|
1937
1983
|
const jsonNode = {
|
|
1938
1984
|
type: "listitem",
|
|
@@ -1953,10 +1999,10 @@ var ListItemNodeHandler2 = class extends NodeHandler2 {
|
|
|
1953
1999
|
};
|
|
1954
2000
|
|
|
1955
2001
|
// src/importFromHtml/ListNodeHandler.ts
|
|
1956
|
-
var
|
|
2002
|
+
var import_node_html_parser16 = require("node-html-parser");
|
|
1957
2003
|
var ListNodeHandler2 = class extends NodeHandler2 {
|
|
1958
2004
|
processNode(node) {
|
|
1959
|
-
if (!(node instanceof
|
|
2005
|
+
if (!(node instanceof import_node_html_parser16.HTMLElement)) return null;
|
|
1960
2006
|
if (node.tagName !== "UL" && node.tagName !== "OL") return null;
|
|
1961
2007
|
const tag = node.tagName.toLowerCase();
|
|
1962
2008
|
const listType = tag === "ol" ? "number" : "bullet";
|
|
@@ -1974,7 +2020,7 @@ var ListNodeHandler2 = class extends NodeHandler2 {
|
|
|
1974
2020
|
};
|
|
1975
2021
|
let itemIndex = 1;
|
|
1976
2022
|
node.childNodes.forEach((child) => {
|
|
1977
|
-
if (child instanceof
|
|
2023
|
+
if (child instanceof import_node_html_parser16.HTMLElement && child.tagName === "LI") {
|
|
1978
2024
|
const listItemNode = {
|
|
1979
2025
|
type: "listitem",
|
|
1980
2026
|
version: 1,
|
|
@@ -1999,10 +2045,10 @@ var ListNodeHandler2 = class extends NodeHandler2 {
|
|
|
1999
2045
|
|
|
2000
2046
|
// src/importFromHtml/MatchingQuestionNodeHandler.ts
|
|
2001
2047
|
var import_nanoid7 = require("nanoid");
|
|
2002
|
-
var
|
|
2048
|
+
var import_node_html_parser17 = require("node-html-parser");
|
|
2003
2049
|
var MatchingQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
2004
2050
|
processNode(node) {
|
|
2005
|
-
if (!(node instanceof
|
|
2051
|
+
if (!(node instanceof import_node_html_parser17.HTMLElement) || node.tagName !== "x-matching".toUpperCase())
|
|
2006
2052
|
return null;
|
|
2007
2053
|
const jsonNode = {
|
|
2008
2054
|
id: node.getAttribute("id") ?? (0, import_nanoid7.nanoid)(),
|
|
@@ -2015,7 +2061,7 @@ var MatchingQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
2015
2061
|
};
|
|
2016
2062
|
const matches = node.querySelectorAll("x-match");
|
|
2017
2063
|
matches.forEach((match) => {
|
|
2018
|
-
if (!(match instanceof
|
|
2064
|
+
if (!(match instanceof import_node_html_parser17.HTMLElement)) return;
|
|
2019
2065
|
const premise = match.querySelector("x-premise");
|
|
2020
2066
|
const option = match.querySelector("x-option");
|
|
2021
2067
|
if (!premise || !option) return;
|
|
@@ -2038,10 +2084,10 @@ var MatchingQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
2038
2084
|
|
|
2039
2085
|
// src/importFromHtml/MultipleOptionQuestionNodeHandler.ts
|
|
2040
2086
|
var import_nanoid8 = require("nanoid");
|
|
2041
|
-
var
|
|
2087
|
+
var import_node_html_parser18 = require("node-html-parser");
|
|
2042
2088
|
var MultipleOptionQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
2043
2089
|
processNode(node) {
|
|
2044
|
-
if (!(node instanceof
|
|
2090
|
+
if (!(node instanceof import_node_html_parser18.HTMLElement)) return null;
|
|
2045
2091
|
if (node.tagName === "x-multiple-choice".toUpperCase())
|
|
2046
2092
|
return this.processMultipleChoiceNode(node);
|
|
2047
2093
|
else if (node.tagName === "x-multiple-answers".toUpperCase())
|
|
@@ -2081,7 +2127,7 @@ var MultipleOptionQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
2081
2127
|
processOptions(node, jsonNode) {
|
|
2082
2128
|
const childNodes = node.childNodes;
|
|
2083
2129
|
childNodes.forEach((child) => {
|
|
2084
|
-
if (!(child instanceof
|
|
2130
|
+
if (!(child instanceof import_node_html_parser18.HTMLElement)) return;
|
|
2085
2131
|
if (child.tagName !== "x-option".toUpperCase()) return;
|
|
2086
2132
|
jsonNode.options.push({
|
|
2087
2133
|
id: child.getAttribute("id") ?? (0, import_nanoid8.nanoid)(),
|
|
@@ -2093,7 +2139,7 @@ var MultipleOptionQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
2093
2139
|
};
|
|
2094
2140
|
|
|
2095
2141
|
// src/importFromHtml/ParagraphNodeHandler.ts
|
|
2096
|
-
var
|
|
2142
|
+
var import_node_html_parser19 = require("node-html-parser");
|
|
2097
2143
|
var TEXT_ALIGN_TO_FORMAT = {
|
|
2098
2144
|
center: "center",
|
|
2099
2145
|
end: "end",
|
|
@@ -2116,25 +2162,25 @@ var ParagraphNodeHandler2 = class extends NodeHandler2 {
|
|
|
2116
2162
|
return "";
|
|
2117
2163
|
}
|
|
2118
2164
|
processImageNode(node) {
|
|
2119
|
-
if (node.childNodes.length === 1 && node.childNodes[0] instanceof
|
|
2165
|
+
if (node.childNodes.length === 1 && node.childNodes[0] instanceof import_node_html_parser19.HTMLElement && node.childNodes[0].tagName === "IMG") {
|
|
2120
2166
|
return traverse2(node.childNodes[0]);
|
|
2121
2167
|
}
|
|
2122
2168
|
return null;
|
|
2123
2169
|
}
|
|
2124
2170
|
processSpanImageNode(node) {
|
|
2125
|
-
if (node.childNodes.length === 1 && node.childNodes[0] instanceof
|
|
2171
|
+
if (node.childNodes.length === 1 && node.childNodes[0] instanceof import_node_html_parser19.HTMLElement && node.childNodes[0].tagName === "SPAN" && node.childNodes[0].childNodes.length === 1 && node.childNodes[0].childNodes[0] instanceof import_node_html_parser19.HTMLElement && node.childNodes[0].childNodes[0].tagName === "IMG") {
|
|
2126
2172
|
return traverse2(node.childNodes[0].childNodes[0]);
|
|
2127
2173
|
}
|
|
2128
2174
|
return null;
|
|
2129
2175
|
}
|
|
2130
2176
|
processNode(node) {
|
|
2131
|
-
if (!(node instanceof
|
|
2177
|
+
if (!(node instanceof import_node_html_parser19.HTMLElement)) return null;
|
|
2132
2178
|
if (node.tagName !== "P") return null;
|
|
2133
2179
|
const imageNode = this.processImageNode(node) ?? this.processSpanImageNode(node);
|
|
2134
2180
|
if (imageNode) return imageNode;
|
|
2135
2181
|
const jsonNode = createEmptyParagraphNode();
|
|
2136
2182
|
jsonNode.format = this.extractTextAlignment(node);
|
|
2137
|
-
if (node.childNodes.length === 1 && node.childNodes[0] instanceof
|
|
2183
|
+
if (node.childNodes.length === 1 && node.childNodes[0] instanceof import_node_html_parser19.HTMLElement && node.childNodes[0].tagName === "BR")
|
|
2138
2184
|
return jsonNode;
|
|
2139
2185
|
node.childNodes.forEach((child) => {
|
|
2140
2186
|
const processedChildren = traverse2(child);
|
|
@@ -2146,10 +2192,10 @@ var ParagraphNodeHandler2 = class extends NodeHandler2 {
|
|
|
2146
2192
|
|
|
2147
2193
|
// src/importFromHtml/ShortAnswerQuestionNodeHandler.ts
|
|
2148
2194
|
var import_nanoid9 = require("nanoid");
|
|
2149
|
-
var
|
|
2195
|
+
var import_node_html_parser20 = require("node-html-parser");
|
|
2150
2196
|
var ShortAnswerQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
2151
2197
|
processNode(node) {
|
|
2152
|
-
if (!(node instanceof
|
|
2198
|
+
if (!(node instanceof import_node_html_parser20.HTMLElement) || node.tagName !== "x-short-answer".toUpperCase())
|
|
2153
2199
|
return null;
|
|
2154
2200
|
return {
|
|
2155
2201
|
id: node.getAttribute("id") ?? (0, import_nanoid9.nanoid)(),
|
|
@@ -2165,13 +2211,13 @@ var ShortAnswerQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
2165
2211
|
};
|
|
2166
2212
|
|
|
2167
2213
|
// src/importFromHtml/SimulationQuestionNodeHandler.ts
|
|
2168
|
-
var
|
|
2214
|
+
var import_node_html_parser21 = require("node-html-parser");
|
|
2169
2215
|
var TAG_X_SIMULATION = "x-simulation";
|
|
2170
2216
|
var TAG_X_SYSTEM_MESSAGE2 = "x-ai-system-message";
|
|
2171
2217
|
var TAG_X_STEP2_INSTRUCTIONS = "x-step2-instructions";
|
|
2172
2218
|
var SimulationQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
2173
2219
|
processNode(node) {
|
|
2174
|
-
if (!(node instanceof
|
|
2220
|
+
if (!(node instanceof import_node_html_parser21.HTMLElement) || node.tagName !== TAG_X_SIMULATION.toUpperCase()) {
|
|
2175
2221
|
return null;
|
|
2176
2222
|
}
|
|
2177
2223
|
const jsonNode = {
|
|
@@ -2198,11 +2244,11 @@ var SimulationQuestionNodeHandler2 = class extends NodeHandler2 {
|
|
|
2198
2244
|
};
|
|
2199
2245
|
|
|
2200
2246
|
// src/importFromHtml/SpanNodeHandler.ts
|
|
2201
|
-
var
|
|
2202
|
-
var TextNode =
|
|
2247
|
+
var import_node_html_parser22 = require("node-html-parser");
|
|
2248
|
+
var TextNode = import_node_html_parser22.parse.TextNode;
|
|
2203
2249
|
var SpanNodeHandler = class extends NodeHandler2 {
|
|
2204
2250
|
processNode(node) {
|
|
2205
|
-
if (!(node instanceof
|
|
2251
|
+
if (!(node instanceof import_node_html_parser22.HTMLElement) || node.tagName !== "SPAN")
|
|
2206
2252
|
return null;
|
|
2207
2253
|
const styleAttr = node.getAttribute("style") || "";
|
|
2208
2254
|
if (node.childNodes.length === 1 && node.childNodes[0] instanceof TextNode) {
|
|
@@ -2264,7 +2310,7 @@ var SpanNodeHandler = class extends NodeHandler2 {
|
|
|
2264
2310
|
};
|
|
2265
2311
|
|
|
2266
2312
|
// src/importFromHtml/TableCellNodeHandler.ts
|
|
2267
|
-
var
|
|
2313
|
+
var import_node_html_parser23 = require("node-html-parser");
|
|
2268
2314
|
|
|
2269
2315
|
// src/utils/styleUtils.ts
|
|
2270
2316
|
var extractStyleValue = (styleAttr, property, isNumeric = false, unit = "") => {
|
|
@@ -2313,7 +2359,7 @@ function createEmptyTableCellNode(isHeader = false) {
|
|
|
2313
2359
|
|
|
2314
2360
|
// src/importFromHtml/TableCellNodeHandler.ts
|
|
2315
2361
|
var isHtmlTableCellElement = (node) => {
|
|
2316
|
-
return node instanceof
|
|
2362
|
+
return node instanceof import_node_html_parser23.HTMLElement && (node.tagName === "TD" || node.tagName === "TH");
|
|
2317
2363
|
};
|
|
2318
2364
|
var TableCellNodeHandler2 = class extends NodeHandler2 {
|
|
2319
2365
|
processNode(node) {
|
|
@@ -2355,10 +2401,10 @@ var TableCellNodeHandler2 = class extends NodeHandler2 {
|
|
|
2355
2401
|
};
|
|
2356
2402
|
|
|
2357
2403
|
// src/importFromHtml/TableNodeHandler.ts
|
|
2358
|
-
var
|
|
2404
|
+
var import_node_html_parser24 = require("node-html-parser");
|
|
2359
2405
|
var REFERENCE_TABLE_WIDTH = 720;
|
|
2360
2406
|
var MINIMUM_REFERENCE_TABLE_WIDTH = 500;
|
|
2361
|
-
var isHtmlTableElement = (node) => node instanceof
|
|
2407
|
+
var isHtmlTableElement = (node) => node instanceof import_node_html_parser24.HTMLElement && node.tagName === "TABLE";
|
|
2362
2408
|
var TableNodeHandler2 = class extends NodeHandler2 {
|
|
2363
2409
|
processNode(node) {
|
|
2364
2410
|
if (!isHtmlTableElement(node)) return null;
|
|
@@ -2513,9 +2559,9 @@ var TableNodeHandler2 = class extends NodeHandler2 {
|
|
|
2513
2559
|
};
|
|
2514
2560
|
|
|
2515
2561
|
// src/importFromHtml/TableRowNodeHandler.ts
|
|
2516
|
-
var
|
|
2562
|
+
var import_node_html_parser25 = require("node-html-parser");
|
|
2517
2563
|
var isHtmlTableRowElement = (node) => {
|
|
2518
|
-
return node instanceof
|
|
2564
|
+
return node instanceof import_node_html_parser25.HTMLElement && node.tagName === "TR";
|
|
2519
2565
|
};
|
|
2520
2566
|
var TableRowNodeHandler2 = class extends NodeHandler2 {
|
|
2521
2567
|
processNode(node) {
|
|
@@ -2538,34 +2584,30 @@ var TableRowNodeHandler2 = class extends NodeHandler2 {
|
|
|
2538
2584
|
};
|
|
2539
2585
|
|
|
2540
2586
|
// src/importFromHtml/TextNodeHandler.ts
|
|
2541
|
-
var
|
|
2542
|
-
var TextNode2 =
|
|
2587
|
+
var import_node_html_parser26 = require("node-html-parser");
|
|
2588
|
+
var TextNode2 = import_node_html_parser26.parse.TextNode;
|
|
2543
2589
|
var TextNodeHandler2 = class extends NodeHandler2 {
|
|
2544
2590
|
processNode(node) {
|
|
2545
|
-
if (node instanceof TextNode2
|
|
2546
|
-
|
|
2547
|
-
|
|
2548
|
-
|
|
2549
|
-
|
|
2550
|
-
|
|
2551
|
-
|
|
2552
|
-
|
|
2553
|
-
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
|
|
2557
|
-
};
|
|
2558
|
-
return jsonNode;
|
|
2559
|
-
}
|
|
2560
|
-
return null;
|
|
2591
|
+
if (!(node instanceof TextNode2)) return null;
|
|
2592
|
+
if (!node.parentNode.tagName) return null;
|
|
2593
|
+
const jsonNode = {
|
|
2594
|
+
detail: 0,
|
|
2595
|
+
format: 0,
|
|
2596
|
+
mode: "normal",
|
|
2597
|
+
style: "",
|
|
2598
|
+
text: node.text,
|
|
2599
|
+
type: "text",
|
|
2600
|
+
version: 1
|
|
2601
|
+
};
|
|
2602
|
+
return jsonNode;
|
|
2561
2603
|
}
|
|
2562
2604
|
};
|
|
2563
2605
|
|
|
2564
2606
|
// src/importFromHtml/VariableNodeHandler.ts
|
|
2565
|
-
var
|
|
2607
|
+
var import_node_html_parser27 = require("node-html-parser");
|
|
2566
2608
|
var VariableNodeHandler2 = class extends NodeHandler2 {
|
|
2567
2609
|
processNode(node) {
|
|
2568
|
-
if (!(node instanceof
|
|
2610
|
+
if (!(node instanceof import_node_html_parser27.HTMLElement) || !node.tagName) return null;
|
|
2569
2611
|
if (node.tagName !== "x-param".toUpperCase()) return null;
|
|
2570
2612
|
return {
|
|
2571
2613
|
variableName: node.getAttribute("data-x-name") || "undefined",
|
|
@@ -2578,7 +2620,7 @@ var VariableNodeHandler2 = class extends NodeHandler2 {
|
|
|
2578
2620
|
|
|
2579
2621
|
// src/importFromHtml/traverse.ts
|
|
2580
2622
|
var builder2 = new NodeHandlerChainBuilder();
|
|
2581
|
-
var nodeHandlerChain2 = builder2.addHandler(DivNodeHandler).addHandler(EssayQuestionNodeHandler2).addHandler(FillInTheBlankQuestionNodeHandler2).addHandler(FillInTheBlankSpaceNodeHandler2).addHandler(FinancialStatementQuestionNodeHandler2).addHandler(FormattedNodeHandler).addHandler(ImageNodeHandler2).addHandler(HorizontalRuleNodeHandler2).addHandler(JournalEntryQuestionNodeHandler2).addHandler(LineBreakNodeHandler2).addHandler(LinkNodeHandler2).addHandler(ListNodeHandler2).addHandler(ListItemNodeHandler2).addHandler(MatchingQuestionNodeHandler2).addHandler(MultipleOptionQuestionNodeHandler2).addHandler(ParagraphNodeHandler2).addHandler(ShortAnswerQuestionNodeHandler2).addHandler(SimulationQuestionNodeHandler2).addHandler(SpanNodeHandler).addHandler(TableCellNodeHandler2).addHandler(TableNodeHandler2).addHandler(TableRowNodeHandler2).addHandler(TextNodeHandler2).addHandler(VariableNodeHandler2).build();
|
|
2623
|
+
var nodeHandlerChain2 = builder2.addHandler(CustomQuestionNodeHandler2).addHandler(DivNodeHandler).addHandler(EssayQuestionNodeHandler2).addHandler(FillInTheBlankQuestionNodeHandler2).addHandler(FillInTheBlankSpaceNodeHandler2).addHandler(FinancialStatementQuestionNodeHandler2).addHandler(FormattedNodeHandler).addHandler(ImageNodeHandler2).addHandler(HorizontalRuleNodeHandler2).addHandler(JournalEntryQuestionNodeHandler2).addHandler(LineBreakNodeHandler2).addHandler(LinkNodeHandler2).addHandler(ListNodeHandler2).addHandler(ListItemNodeHandler2).addHandler(MatchingQuestionNodeHandler2).addHandler(MultipleOptionQuestionNodeHandler2).addHandler(ParagraphNodeHandler2).addHandler(ShortAnswerQuestionNodeHandler2).addHandler(SimulationQuestionNodeHandler2).addHandler(SpanNodeHandler).addHandler(TableCellNodeHandler2).addHandler(TableNodeHandler2).addHandler(TableRowNodeHandler2).addHandler(TextNodeHandler2).addHandler(VariableNodeHandler2).build();
|
|
2582
2624
|
function traverse2(node) {
|
|
2583
2625
|
const result = nodeHandlerChain2.handle(node);
|
|
2584
2626
|
if (result === null) return [];
|
|
@@ -2596,7 +2638,7 @@ function processChildren(node) {
|
|
|
2596
2638
|
return result;
|
|
2597
2639
|
}
|
|
2598
2640
|
function processHtml(html) {
|
|
2599
|
-
const root = (0,
|
|
2641
|
+
const root = (0, import_node_html_parser28.parse)(html);
|
|
2600
2642
|
return processChildren(root);
|
|
2601
2643
|
}
|
|
2602
2644
|
function importFromHtml(html) {
|