@doenet/v06-to-v07 0.7.0-beta6 → 0.7.0-beta7
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/index.js +603 -444
- package/index.js.map +1 -1
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -67460,10 +67460,467 @@ class MathList extends CompositeComponent {
|
|
|
67460
67460
|
return { replacementChanges, nComponents };
|
|
67461
67461
|
}
|
|
67462
67462
|
}
|
|
67463
|
+
function returnScoredSectionAttributes() {
|
|
67464
|
+
return {
|
|
67465
|
+
aggregateScores: {
|
|
67466
|
+
createComponentOfType: "boolean",
|
|
67467
|
+
createStateVariable: "aggregateScoresPreliminary",
|
|
67468
|
+
defaultValue: false
|
|
67469
|
+
},
|
|
67470
|
+
weight: {
|
|
67471
|
+
createComponentOfType: "number",
|
|
67472
|
+
createStateVariable: "weight",
|
|
67473
|
+
defaultValue: 1,
|
|
67474
|
+
public: true
|
|
67475
|
+
},
|
|
67476
|
+
sectionWideCheckWork: {
|
|
67477
|
+
createComponentOfType: "boolean",
|
|
67478
|
+
createStateVariable: "sectionWideCheckWork",
|
|
67479
|
+
defaultValue: false,
|
|
67480
|
+
public: true
|
|
67481
|
+
},
|
|
67482
|
+
showCorrectness: {
|
|
67483
|
+
createComponentOfType: "boolean",
|
|
67484
|
+
createStateVariable: "showCorrectnessPreliminary",
|
|
67485
|
+
defaultValue: null
|
|
67486
|
+
},
|
|
67487
|
+
submitLabel: {
|
|
67488
|
+
createComponentOfType: "text",
|
|
67489
|
+
createStateVariable: "submitLabel",
|
|
67490
|
+
defaultValue: "Check Work",
|
|
67491
|
+
public: true,
|
|
67492
|
+
forRenderer: true
|
|
67493
|
+
},
|
|
67494
|
+
submitLabelNoCorrectness: {
|
|
67495
|
+
createComponentOfType: "text",
|
|
67496
|
+
createStateVariable: "submitLabelNoCorrectness",
|
|
67497
|
+
defaultValue: "Submit Response",
|
|
67498
|
+
public: true,
|
|
67499
|
+
forRenderer: true
|
|
67500
|
+
},
|
|
67501
|
+
displayDigitsForCreditAchieved: {
|
|
67502
|
+
createComponentOfType: "integer",
|
|
67503
|
+
createStateVariable: "displayDigitsForCreditAchieved",
|
|
67504
|
+
defaultValue: 3,
|
|
67505
|
+
public: true
|
|
67506
|
+
}
|
|
67507
|
+
};
|
|
67508
|
+
}
|
|
67509
|
+
function returnScoredSectionStateVariableDefinition() {
|
|
67510
|
+
const stateVariableDefinitions = {};
|
|
67511
|
+
stateVariableDefinitions.scoredDescendants = {
|
|
67512
|
+
returnDependencies: () => ({
|
|
67513
|
+
scoredDescendants: {
|
|
67514
|
+
dependencyType: "descendant",
|
|
67515
|
+
componentTypes: [
|
|
67516
|
+
"_sectioningComponent",
|
|
67517
|
+
"answer",
|
|
67518
|
+
"setup",
|
|
67519
|
+
"_blockScoredComponent",
|
|
67520
|
+
"p",
|
|
67521
|
+
"li",
|
|
67522
|
+
"div",
|
|
67523
|
+
"span"
|
|
67524
|
+
],
|
|
67525
|
+
variableNames: [
|
|
67526
|
+
"scoredDescendants",
|
|
67527
|
+
"aggregateScores",
|
|
67528
|
+
"weight"
|
|
67529
|
+
],
|
|
67530
|
+
recurseToMatchedChildren: false,
|
|
67531
|
+
variablesOptional: true
|
|
67532
|
+
}
|
|
67533
|
+
}),
|
|
67534
|
+
definition({ dependencyValues }) {
|
|
67535
|
+
let scoredDescendants = [];
|
|
67536
|
+
for (let descendant of dependencyValues.scoredDescendants) {
|
|
67537
|
+
if (descendant.componentType === "setup") {
|
|
67538
|
+
continue;
|
|
67539
|
+
}
|
|
67540
|
+
if (descendant.stateValues.aggregateScores || descendant.stateValues.scoredDescendants === void 0) {
|
|
67541
|
+
scoredDescendants.push(descendant);
|
|
67542
|
+
} else {
|
|
67543
|
+
scoredDescendants.push(
|
|
67544
|
+
...descendant.stateValues.scoredDescendants
|
|
67545
|
+
);
|
|
67546
|
+
}
|
|
67547
|
+
}
|
|
67548
|
+
return { setValue: { scoredDescendants } };
|
|
67549
|
+
}
|
|
67550
|
+
};
|
|
67551
|
+
stateVariableDefinitions.answerDescendants = {
|
|
67552
|
+
returnDependencies: () => ({
|
|
67553
|
+
answerDescendants: {
|
|
67554
|
+
dependencyType: "descendant",
|
|
67555
|
+
componentTypes: ["answer", "_blockScoredComponent"],
|
|
67556
|
+
variableNames: ["justSubmitted"],
|
|
67557
|
+
recurseToMatchedChildren: false
|
|
67558
|
+
}
|
|
67559
|
+
}),
|
|
67560
|
+
definition({ dependencyValues }) {
|
|
67561
|
+
return {
|
|
67562
|
+
setValue: {
|
|
67563
|
+
answerDescendants: dependencyValues.answerDescendants
|
|
67564
|
+
}
|
|
67565
|
+
};
|
|
67566
|
+
}
|
|
67567
|
+
};
|
|
67568
|
+
stateVariableDefinitions.justSubmitted = {
|
|
67569
|
+
forRenderer: true,
|
|
67570
|
+
returnDependencies: () => ({
|
|
67571
|
+
answerDescendants: {
|
|
67572
|
+
dependencyType: "stateVariable",
|
|
67573
|
+
variableName: "answerDescendants"
|
|
67574
|
+
}
|
|
67575
|
+
}),
|
|
67576
|
+
definition({ dependencyValues }) {
|
|
67577
|
+
return {
|
|
67578
|
+
setValue: {
|
|
67579
|
+
justSubmitted: dependencyValues.answerDescendants.every(
|
|
67580
|
+
(x2) => x2.stateValues.justSubmitted
|
|
67581
|
+
)
|
|
67582
|
+
}
|
|
67583
|
+
};
|
|
67584
|
+
}
|
|
67585
|
+
};
|
|
67586
|
+
stateVariableDefinitions.showCorrectness = {
|
|
67587
|
+
forRenderer: true,
|
|
67588
|
+
returnDependencies: () => ({
|
|
67589
|
+
showCorrectnessPreliminary: {
|
|
67590
|
+
dependencyType: "stateVariable",
|
|
67591
|
+
variableName: "showCorrectnessPreliminary"
|
|
67592
|
+
},
|
|
67593
|
+
showCorrectnessFlag: {
|
|
67594
|
+
dependencyType: "flag",
|
|
67595
|
+
flagName: "showCorrectness"
|
|
67596
|
+
}
|
|
67597
|
+
}),
|
|
67598
|
+
definition({ dependencyValues, usedDefault }) {
|
|
67599
|
+
let showCorrectness;
|
|
67600
|
+
if (!usedDefault.showCorrectnessPreliminary) {
|
|
67601
|
+
showCorrectness = dependencyValues.showCorrectnessPreliminary;
|
|
67602
|
+
} else {
|
|
67603
|
+
showCorrectness = dependencyValues.showCorrectnessFlag !== false;
|
|
67604
|
+
}
|
|
67605
|
+
return { setValue: { showCorrectness } };
|
|
67606
|
+
}
|
|
67607
|
+
};
|
|
67608
|
+
stateVariableDefinitions.displayDecimalsForCreditAchieved = {
|
|
67609
|
+
returnDependencies: () => ({}),
|
|
67610
|
+
definition: () => ({
|
|
67611
|
+
setValue: { displayDecimalsForCreditAchieved: -Infinity }
|
|
67612
|
+
})
|
|
67613
|
+
};
|
|
67614
|
+
stateVariableDefinitions.aggregateScores = {
|
|
67615
|
+
public: true,
|
|
67616
|
+
shadowingInstructions: {
|
|
67617
|
+
createComponentOfType: "boolean"
|
|
67618
|
+
},
|
|
67619
|
+
returnDependencies: () => ({
|
|
67620
|
+
aggregateScoresPreliminary: {
|
|
67621
|
+
dependencyType: "stateVariable",
|
|
67622
|
+
variableName: "aggregateScoresPreliminary"
|
|
67623
|
+
},
|
|
67624
|
+
sectionWideCheckWork: {
|
|
67625
|
+
dependencyType: "stateVariable",
|
|
67626
|
+
variableName: "sectionWideCheckWork"
|
|
67627
|
+
}
|
|
67628
|
+
}),
|
|
67629
|
+
definition({ dependencyValues }) {
|
|
67630
|
+
return {
|
|
67631
|
+
setValue: {
|
|
67632
|
+
aggregateScores: dependencyValues.aggregateScoresPreliminary || dependencyValues.sectionWideCheckWork
|
|
67633
|
+
}
|
|
67634
|
+
};
|
|
67635
|
+
}
|
|
67636
|
+
};
|
|
67637
|
+
stateVariableDefinitions.creditAchieved = {
|
|
67638
|
+
public: true,
|
|
67639
|
+
shadowingInstructions: {
|
|
67640
|
+
createComponentOfType: "number",
|
|
67641
|
+
addAttributeComponentsShadowingStateVariables: {
|
|
67642
|
+
displayDigits: {
|
|
67643
|
+
stateVariableToShadow: "displayDigitsForCreditAchieved"
|
|
67644
|
+
},
|
|
67645
|
+
displayDecimals: {
|
|
67646
|
+
stateVariableToShadow: "displayDecimalsForCreditAchieved"
|
|
67647
|
+
}
|
|
67648
|
+
}
|
|
67649
|
+
},
|
|
67650
|
+
forRenderer: true,
|
|
67651
|
+
defaultValue: 0,
|
|
67652
|
+
hasEssential: true,
|
|
67653
|
+
additionalStateVariablesDefined: [
|
|
67654
|
+
{
|
|
67655
|
+
variableName: "percentCreditAchieved",
|
|
67656
|
+
public: true,
|
|
67657
|
+
shadowingInstructions: {
|
|
67658
|
+
createComponentOfType: "number",
|
|
67659
|
+
addAttributeComponentsShadowingStateVariables: {
|
|
67660
|
+
displayDigits: {
|
|
67661
|
+
stateVariableToShadow: "displayDigitsForCreditAchieved"
|
|
67662
|
+
},
|
|
67663
|
+
displayDecimals: {
|
|
67664
|
+
stateVariableToShadow: "displayDecimalsForCreditAchieved"
|
|
67665
|
+
}
|
|
67666
|
+
}
|
|
67667
|
+
},
|
|
67668
|
+
defaultValue: 0,
|
|
67669
|
+
hasEssential: true
|
|
67670
|
+
}
|
|
67671
|
+
],
|
|
67672
|
+
stateVariablesDeterminingDependencies: [
|
|
67673
|
+
"aggregateScores",
|
|
67674
|
+
"scoredDescendants"
|
|
67675
|
+
],
|
|
67676
|
+
returnDependencies({ stateValues }) {
|
|
67677
|
+
let dependencies2 = {
|
|
67678
|
+
aggregateScores: {
|
|
67679
|
+
dependencyType: "stateVariable",
|
|
67680
|
+
variableName: "aggregateScores"
|
|
67681
|
+
}
|
|
67682
|
+
};
|
|
67683
|
+
if (stateValues.aggregateScores) {
|
|
67684
|
+
dependencies2.scoredDescendants = {
|
|
67685
|
+
dependencyType: "stateVariable",
|
|
67686
|
+
variableName: "scoredDescendants"
|
|
67687
|
+
};
|
|
67688
|
+
for (let [
|
|
67689
|
+
ind,
|
|
67690
|
+
descendant
|
|
67691
|
+
] of stateValues.scoredDescendants.entries()) {
|
|
67692
|
+
dependencies2["creditAchieved" + ind] = {
|
|
67693
|
+
dependencyType: "stateVariable",
|
|
67694
|
+
componentIdx: descendant.componentIdx,
|
|
67695
|
+
variableName: "creditAchieved"
|
|
67696
|
+
};
|
|
67697
|
+
}
|
|
67698
|
+
}
|
|
67699
|
+
return dependencies2;
|
|
67700
|
+
},
|
|
67701
|
+
definition({ dependencyValues }) {
|
|
67702
|
+
if (!dependencyValues.aggregateScores) {
|
|
67703
|
+
return {
|
|
67704
|
+
setValue: {
|
|
67705
|
+
creditAchieved: 0,
|
|
67706
|
+
percentCreditAchieved: 0
|
|
67707
|
+
}
|
|
67708
|
+
};
|
|
67709
|
+
}
|
|
67710
|
+
let creditSum = 0;
|
|
67711
|
+
let totalWeight = 0;
|
|
67712
|
+
for (let [
|
|
67713
|
+
ind,
|
|
67714
|
+
component
|
|
67715
|
+
] of dependencyValues.scoredDescendants.entries()) {
|
|
67716
|
+
let weight = component.stateValues.weight;
|
|
67717
|
+
creditSum += dependencyValues["creditAchieved" + ind] * weight;
|
|
67718
|
+
totalWeight += weight;
|
|
67719
|
+
}
|
|
67720
|
+
let creditAchieved;
|
|
67721
|
+
if (totalWeight > 0) {
|
|
67722
|
+
creditAchieved = creditSum / totalWeight;
|
|
67723
|
+
} else {
|
|
67724
|
+
creditAchieved = 1;
|
|
67725
|
+
}
|
|
67726
|
+
let percentCreditAchieved = creditAchieved * 100;
|
|
67727
|
+
return { setValue: { creditAchieved, percentCreditAchieved } };
|
|
67728
|
+
}
|
|
67729
|
+
};
|
|
67730
|
+
stateVariableDefinitions.creditAchievedIfSubmit = {
|
|
67731
|
+
defaultValue: 0,
|
|
67732
|
+
stateVariablesDeterminingDependencies: [
|
|
67733
|
+
"aggregateScores",
|
|
67734
|
+
"scoredDescendants"
|
|
67735
|
+
],
|
|
67736
|
+
returnDependencies({ stateValues }) {
|
|
67737
|
+
let dependencies2 = {
|
|
67738
|
+
aggregateScores: {
|
|
67739
|
+
dependencyType: "stateVariable",
|
|
67740
|
+
variableName: "aggregateScores"
|
|
67741
|
+
}
|
|
67742
|
+
};
|
|
67743
|
+
if (stateValues.aggregateScores) {
|
|
67744
|
+
dependencies2.scoredDescendants = {
|
|
67745
|
+
dependencyType: "stateVariable",
|
|
67746
|
+
variableName: "scoredDescendants"
|
|
67747
|
+
};
|
|
67748
|
+
for (let [
|
|
67749
|
+
ind,
|
|
67750
|
+
descendant
|
|
67751
|
+
] of stateValues.scoredDescendants.entries()) {
|
|
67752
|
+
dependencies2["creditAchievedIfSubmit" + ind] = {
|
|
67753
|
+
dependencyType: "stateVariable",
|
|
67754
|
+
componentIdx: descendant.componentIdx,
|
|
67755
|
+
variableName: "creditAchievedIfSubmit"
|
|
67756
|
+
};
|
|
67757
|
+
}
|
|
67758
|
+
}
|
|
67759
|
+
return dependencies2;
|
|
67760
|
+
},
|
|
67761
|
+
definition({ dependencyValues }) {
|
|
67762
|
+
if (!dependencyValues.aggregateScores) {
|
|
67763
|
+
return {
|
|
67764
|
+
setValue: {
|
|
67765
|
+
creditAchievedIfSubmit: 0
|
|
67766
|
+
}
|
|
67767
|
+
};
|
|
67768
|
+
}
|
|
67769
|
+
let creditSum = 0;
|
|
67770
|
+
let totalWeight = 0;
|
|
67771
|
+
for (let [
|
|
67772
|
+
ind,
|
|
67773
|
+
component
|
|
67774
|
+
] of dependencyValues.scoredDescendants.entries()) {
|
|
67775
|
+
let weight = component.stateValues.weight;
|
|
67776
|
+
creditSum += dependencyValues["creditAchievedIfSubmit" + ind] * weight;
|
|
67777
|
+
totalWeight += weight;
|
|
67778
|
+
}
|
|
67779
|
+
let creditAchievedIfSubmit = creditSum / totalWeight;
|
|
67780
|
+
return { setValue: { creditAchievedIfSubmit } };
|
|
67781
|
+
}
|
|
67782
|
+
};
|
|
67783
|
+
stateVariableDefinitions.createSubmitAllButton = {
|
|
67784
|
+
forRenderer: true,
|
|
67785
|
+
additionalStateVariablesDefined: [
|
|
67786
|
+
{
|
|
67787
|
+
variableName: "suppressAnswerSubmitButtons",
|
|
67788
|
+
forRenderer: true
|
|
67789
|
+
}
|
|
67790
|
+
],
|
|
67791
|
+
returnDependencies: () => ({
|
|
67792
|
+
sectionWideCheckWork: {
|
|
67793
|
+
dependencyType: "stateVariable",
|
|
67794
|
+
variableName: "sectionWideCheckWork"
|
|
67795
|
+
},
|
|
67796
|
+
sectionAncestor: {
|
|
67797
|
+
dependencyType: "ancestor",
|
|
67798
|
+
componentType: "_sectioningComponent",
|
|
67799
|
+
variableNames: ["suppressAnswerSubmitButtons"]
|
|
67800
|
+
},
|
|
67801
|
+
documentAncestor: {
|
|
67802
|
+
dependencyType: "ancestor",
|
|
67803
|
+
componentType: "document",
|
|
67804
|
+
variableNames: ["suppressAnswerSubmitButtons"]
|
|
67805
|
+
},
|
|
67806
|
+
pAncestor: {
|
|
67807
|
+
dependencyType: "ancestor",
|
|
67808
|
+
componentType: "p",
|
|
67809
|
+
variableNames: ["suppressAnswerSubmitButtons"]
|
|
67810
|
+
},
|
|
67811
|
+
liAncestor: {
|
|
67812
|
+
dependencyType: "ancestor",
|
|
67813
|
+
componentType: "li",
|
|
67814
|
+
variableNames: ["suppressAnswerSubmitButtons"]
|
|
67815
|
+
},
|
|
67816
|
+
divAncestor: {
|
|
67817
|
+
dependencyType: "ancestor",
|
|
67818
|
+
componentType: "div",
|
|
67819
|
+
variableNames: ["suppressAnswerSubmitButtons"]
|
|
67820
|
+
},
|
|
67821
|
+
spanAncestor: {
|
|
67822
|
+
dependencyType: "ancestor",
|
|
67823
|
+
componentType: "span",
|
|
67824
|
+
variableNames: ["suppressAnswerSubmitButtons"]
|
|
67825
|
+
}
|
|
67826
|
+
}),
|
|
67827
|
+
definition({ dependencyValues }) {
|
|
67828
|
+
let warnings = [];
|
|
67829
|
+
let createSubmitAllButton = false;
|
|
67830
|
+
let suppressAnswerSubmitButtons = false;
|
|
67831
|
+
if (dependencyValues.documentAncestor.stateValues.suppressAnswerSubmitButtons || dependencyValues.sectionAncestor?.stateValues.suppressAnswerSubmitButtons || dependencyValues.pAncestor?.stateValues.suppressAnswerSubmitButtons || dependencyValues.liAncestor?.stateValues.suppressAnswerSubmitButtons || dependencyValues.divAncestor?.stateValues.suppressAnswerSubmitButtons || dependencyValues.spanAncestor?.stateValues.suppressAnswerSubmitButtons) {
|
|
67832
|
+
suppressAnswerSubmitButtons = true;
|
|
67833
|
+
} else if (dependencyValues.sectionWideCheckWork) {
|
|
67834
|
+
createSubmitAllButton = true;
|
|
67835
|
+
suppressAnswerSubmitButtons = true;
|
|
67836
|
+
}
|
|
67837
|
+
return {
|
|
67838
|
+
setValue: {
|
|
67839
|
+
createSubmitAllButton,
|
|
67840
|
+
suppressAnswerSubmitButtons
|
|
67841
|
+
},
|
|
67842
|
+
sendWarnings: warnings
|
|
67843
|
+
};
|
|
67844
|
+
}
|
|
67845
|
+
};
|
|
67846
|
+
stateVariableDefinitions.suppressCheckWork = {
|
|
67847
|
+
forRenderer: true,
|
|
67848
|
+
returnDependencies: () => ({
|
|
67849
|
+
autoSubmit: {
|
|
67850
|
+
dependencyType: "flag",
|
|
67851
|
+
flagName: "autoSubmit"
|
|
67852
|
+
}
|
|
67853
|
+
}),
|
|
67854
|
+
definition({ dependencyValues }) {
|
|
67855
|
+
return {
|
|
67856
|
+
setValue: {
|
|
67857
|
+
suppressCheckWork: dependencyValues.autoSubmit
|
|
67858
|
+
}
|
|
67859
|
+
};
|
|
67860
|
+
}
|
|
67861
|
+
};
|
|
67862
|
+
stateVariableDefinitions.showCheckWork = {
|
|
67863
|
+
forRenderer: true,
|
|
67864
|
+
returnDependencies: () => ({
|
|
67865
|
+
createSubmitAllButton: {
|
|
67866
|
+
dependencyType: "stateVariable",
|
|
67867
|
+
variableName: "createSubmitAllButton"
|
|
67868
|
+
},
|
|
67869
|
+
suppressCheckWork: {
|
|
67870
|
+
dependencyType: "stateVariable",
|
|
67871
|
+
variableName: "suppressCheckWork"
|
|
67872
|
+
}
|
|
67873
|
+
}),
|
|
67874
|
+
definition({ dependencyValues }) {
|
|
67875
|
+
return {
|
|
67876
|
+
setValue: {
|
|
67877
|
+
showCheckWork: dependencyValues.createSubmitAllButton && !dependencyValues.suppressCheckWork
|
|
67878
|
+
}
|
|
67879
|
+
};
|
|
67880
|
+
}
|
|
67881
|
+
};
|
|
67882
|
+
return stateVariableDefinitions;
|
|
67883
|
+
}
|
|
67884
|
+
async function submitAllAnswers({
|
|
67885
|
+
component,
|
|
67886
|
+
actionId,
|
|
67887
|
+
sourceInformation = {},
|
|
67888
|
+
skipRendererUpdate = false
|
|
67889
|
+
}) {
|
|
67890
|
+
component.coreFunctions.requestRecordEvent({
|
|
67891
|
+
verb: "submitted",
|
|
67892
|
+
object: {
|
|
67893
|
+
componentIdx: component.componentIdx,
|
|
67894
|
+
componentType: component.componentType
|
|
67895
|
+
},
|
|
67896
|
+
result: {
|
|
67897
|
+
creditAchieved: await component.stateValues.creditAchievedIfSubmit
|
|
67898
|
+
}
|
|
67899
|
+
});
|
|
67900
|
+
let answersToSubmit = [];
|
|
67901
|
+
for (let answer of await component.stateValues.answerDescendants) {
|
|
67902
|
+
if (!await answer.stateValues.justSubmitted) {
|
|
67903
|
+
answersToSubmit.push(answer);
|
|
67904
|
+
}
|
|
67905
|
+
}
|
|
67906
|
+
let numAnswers = answersToSubmit.length;
|
|
67907
|
+
for (let [ind, answer] of answersToSubmit.entries()) {
|
|
67908
|
+
await component.coreFunctions.performAction({
|
|
67909
|
+
componentIdx: answer.componentIdx,
|
|
67910
|
+
actionName: "submitAnswer",
|
|
67911
|
+
args: {
|
|
67912
|
+
actionId,
|
|
67913
|
+
sourceInformation,
|
|
67914
|
+
skipRendererUpdate: skipRendererUpdate || ind < numAnswers - 1
|
|
67915
|
+
}
|
|
67916
|
+
});
|
|
67917
|
+
}
|
|
67918
|
+
}
|
|
67463
67919
|
class Div extends BlockComponent {
|
|
67464
67920
|
constructor(args) {
|
|
67465
67921
|
super(args);
|
|
67466
67922
|
Object.assign(this.actions, {
|
|
67923
|
+
submitAllAnswers: this.submitAllAnswers.bind(this),
|
|
67467
67924
|
recordVisibilityChange: this.recordVisibilityChange.bind(this)
|
|
67468
67925
|
});
|
|
67469
67926
|
}
|
|
@@ -67472,6 +67929,12 @@ class Div extends BlockComponent {
|
|
|
67472
67929
|
static renderChildren = true;
|
|
67473
67930
|
static canDisplayChildErrors = true;
|
|
67474
67931
|
static includeBlankStringChildren = true;
|
|
67932
|
+
static createAttributesObject() {
|
|
67933
|
+
let attributes = super.createAttributesObject();
|
|
67934
|
+
let scoredSectionAttributes = returnScoredSectionAttributes();
|
|
67935
|
+
Object.assign(attributes, scoredSectionAttributes);
|
|
67936
|
+
return attributes;
|
|
67937
|
+
}
|
|
67475
67938
|
static returnChildGroups() {
|
|
67476
67939
|
return [
|
|
67477
67940
|
{
|
|
@@ -67480,6 +67943,26 @@ class Div extends BlockComponent {
|
|
|
67480
67943
|
}
|
|
67481
67944
|
];
|
|
67482
67945
|
}
|
|
67946
|
+
static returnStateVariableDefinitions() {
|
|
67947
|
+
let stateVariableDefinitions = super.returnStateVariableDefinitions();
|
|
67948
|
+
Object.assign(
|
|
67949
|
+
stateVariableDefinitions,
|
|
67950
|
+
returnScoredSectionStateVariableDefinition()
|
|
67951
|
+
);
|
|
67952
|
+
return stateVariableDefinitions;
|
|
67953
|
+
}
|
|
67954
|
+
async submitAllAnswers({
|
|
67955
|
+
actionId,
|
|
67956
|
+
sourceInformation = {},
|
|
67957
|
+
skipRendererUpdate = false
|
|
67958
|
+
}) {
|
|
67959
|
+
return submitAllAnswers({
|
|
67960
|
+
component: this,
|
|
67961
|
+
actionId,
|
|
67962
|
+
sourceInformation,
|
|
67963
|
+
skipRendererUpdate
|
|
67964
|
+
});
|
|
67965
|
+
}
|
|
67483
67966
|
recordVisibilityChange({ isVisible }) {
|
|
67484
67967
|
this.coreFunctions.requestRecordEvent({
|
|
67485
67968
|
verb: "visibilityChanged",
|
|
@@ -67492,11 +67975,23 @@ class Div extends BlockComponent {
|
|
|
67492
67975
|
}
|
|
67493
67976
|
}
|
|
67494
67977
|
class Span extends InlineComponent {
|
|
67978
|
+
constructor(args) {
|
|
67979
|
+
super(args);
|
|
67980
|
+
Object.assign(this.actions, {
|
|
67981
|
+
submitAllAnswers: this.submitAllAnswers.bind(this)
|
|
67982
|
+
});
|
|
67983
|
+
}
|
|
67495
67984
|
static componentType = "span";
|
|
67496
67985
|
static rendererType = "containerInline";
|
|
67497
67986
|
static renderChildren = true;
|
|
67498
67987
|
static canDisplayChildErrors = true;
|
|
67499
67988
|
static includeBlankStringChildren = true;
|
|
67989
|
+
static createAttributesObject() {
|
|
67990
|
+
let attributes = super.createAttributesObject();
|
|
67991
|
+
let scoredSectionAttributes = returnScoredSectionAttributes();
|
|
67992
|
+
Object.assign(attributes, scoredSectionAttributes);
|
|
67993
|
+
return attributes;
|
|
67994
|
+
}
|
|
67500
67995
|
static returnChildGroups() {
|
|
67501
67996
|
return [
|
|
67502
67997
|
{
|
|
@@ -67505,6 +68000,26 @@ class Span extends InlineComponent {
|
|
|
67505
68000
|
}
|
|
67506
68001
|
];
|
|
67507
68002
|
}
|
|
68003
|
+
static returnStateVariableDefinitions() {
|
|
68004
|
+
let stateVariableDefinitions = super.returnStateVariableDefinitions();
|
|
68005
|
+
Object.assign(
|
|
68006
|
+
stateVariableDefinitions,
|
|
68007
|
+
returnScoredSectionStateVariableDefinition()
|
|
68008
|
+
);
|
|
68009
|
+
return stateVariableDefinitions;
|
|
68010
|
+
}
|
|
68011
|
+
async submitAllAnswers({
|
|
68012
|
+
actionId,
|
|
68013
|
+
sourceInformation = {},
|
|
68014
|
+
skipRendererUpdate = false
|
|
68015
|
+
}) {
|
|
68016
|
+
return submitAllAnswers({
|
|
68017
|
+
component: this,
|
|
68018
|
+
actionId,
|
|
68019
|
+
sourceInformation,
|
|
68020
|
+
skipRendererUpdate
|
|
68021
|
+
});
|
|
68022
|
+
}
|
|
67508
68023
|
}
|
|
67509
68024
|
const Divisions = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
67510
68025
|
__proto__: null,
|
|
@@ -80506,109 +81021,6 @@ function returnFeedbackDefinitionStateVariables() {
|
|
|
80506
81021
|
};
|
|
80507
81022
|
return stateVariableDefinitions;
|
|
80508
81023
|
}
|
|
80509
|
-
function returnScoredSectionStateVariableDefinition() {
|
|
80510
|
-
const stateVariableDefinitions = {};
|
|
80511
|
-
stateVariableDefinitions.scoredDescendants = {
|
|
80512
|
-
returnDependencies: () => ({
|
|
80513
|
-
scoredDescendants: {
|
|
80514
|
-
dependencyType: "descendant",
|
|
80515
|
-
componentTypes: [
|
|
80516
|
-
"_sectioningComponent",
|
|
80517
|
-
"answer",
|
|
80518
|
-
"setup",
|
|
80519
|
-
"_blockScoredComponent"
|
|
80520
|
-
],
|
|
80521
|
-
variableNames: [
|
|
80522
|
-
"scoredDescendants",
|
|
80523
|
-
"aggregateScores",
|
|
80524
|
-
"weight"
|
|
80525
|
-
],
|
|
80526
|
-
recurseToMatchedChildren: false,
|
|
80527
|
-
variablesOptional: true
|
|
80528
|
-
}
|
|
80529
|
-
}),
|
|
80530
|
-
definition({ dependencyValues }) {
|
|
80531
|
-
let scoredDescendants = [];
|
|
80532
|
-
for (let descendant of dependencyValues.scoredDescendants) {
|
|
80533
|
-
if (descendant.componentType === "setup") {
|
|
80534
|
-
continue;
|
|
80535
|
-
}
|
|
80536
|
-
if (descendant.stateValues.aggregateScores || descendant.stateValues.scoredDescendants === void 0) {
|
|
80537
|
-
scoredDescendants.push(descendant);
|
|
80538
|
-
} else {
|
|
80539
|
-
scoredDescendants.push(
|
|
80540
|
-
...descendant.stateValues.scoredDescendants
|
|
80541
|
-
);
|
|
80542
|
-
}
|
|
80543
|
-
}
|
|
80544
|
-
return { setValue: { scoredDescendants } };
|
|
80545
|
-
}
|
|
80546
|
-
};
|
|
80547
|
-
stateVariableDefinitions.answerDescendants = {
|
|
80548
|
-
returnDependencies: () => ({
|
|
80549
|
-
answerDescendants: {
|
|
80550
|
-
dependencyType: "descendant",
|
|
80551
|
-
componentTypes: ["answer", "_blockScoredComponent"],
|
|
80552
|
-
variableNames: ["justSubmitted"],
|
|
80553
|
-
recurseToMatchedChildren: false
|
|
80554
|
-
}
|
|
80555
|
-
}),
|
|
80556
|
-
definition({ dependencyValues }) {
|
|
80557
|
-
return {
|
|
80558
|
-
setValue: {
|
|
80559
|
-
answerDescendants: dependencyValues.answerDescendants
|
|
80560
|
-
}
|
|
80561
|
-
};
|
|
80562
|
-
}
|
|
80563
|
-
};
|
|
80564
|
-
stateVariableDefinitions.justSubmitted = {
|
|
80565
|
-
forRenderer: true,
|
|
80566
|
-
returnDependencies: () => ({
|
|
80567
|
-
answerDescendants: {
|
|
80568
|
-
dependencyType: "stateVariable",
|
|
80569
|
-
variableName: "answerDescendants"
|
|
80570
|
-
}
|
|
80571
|
-
}),
|
|
80572
|
-
definition({ dependencyValues }) {
|
|
80573
|
-
return {
|
|
80574
|
-
setValue: {
|
|
80575
|
-
justSubmitted: dependencyValues.answerDescendants.every(
|
|
80576
|
-
(x2) => x2.stateValues.justSubmitted
|
|
80577
|
-
)
|
|
80578
|
-
}
|
|
80579
|
-
};
|
|
80580
|
-
}
|
|
80581
|
-
};
|
|
80582
|
-
stateVariableDefinitions.showCorrectness = {
|
|
80583
|
-
forRenderer: true,
|
|
80584
|
-
returnDependencies: () => ({
|
|
80585
|
-
showCorrectnessPreliminary: {
|
|
80586
|
-
dependencyType: "stateVariable",
|
|
80587
|
-
variableName: "showCorrectnessPreliminary"
|
|
80588
|
-
},
|
|
80589
|
-
showCorrectnessFlag: {
|
|
80590
|
-
dependencyType: "flag",
|
|
80591
|
-
flagName: "showCorrectness"
|
|
80592
|
-
}
|
|
80593
|
-
}),
|
|
80594
|
-
definition({ dependencyValues, usedDefault }) {
|
|
80595
|
-
let showCorrectness;
|
|
80596
|
-
if (!usedDefault.showCorrectnessPreliminary) {
|
|
80597
|
-
showCorrectness = dependencyValues.showCorrectnessPreliminary;
|
|
80598
|
-
} else {
|
|
80599
|
-
showCorrectness = dependencyValues.showCorrectnessFlag !== false;
|
|
80600
|
-
}
|
|
80601
|
-
return { setValue: { showCorrectness } };
|
|
80602
|
-
}
|
|
80603
|
-
};
|
|
80604
|
-
stateVariableDefinitions.displayDecimalsForCreditAchieved = {
|
|
80605
|
-
returnDependencies: () => ({}),
|
|
80606
|
-
definition: () => ({
|
|
80607
|
-
setValue: { displayDecimalsForCreditAchieved: -Infinity }
|
|
80608
|
-
})
|
|
80609
|
-
};
|
|
80610
|
-
return stateVariableDefinitions;
|
|
80611
|
-
}
|
|
80612
81024
|
class SectioningComponent extends BlockComponent {
|
|
80613
81025
|
constructor(args) {
|
|
80614
81026
|
super(args);
|
|
@@ -80626,48 +81038,8 @@ class SectioningComponent extends BlockComponent {
|
|
|
80626
81038
|
static createsVariants = true;
|
|
80627
81039
|
static createAttributesObject() {
|
|
80628
81040
|
let attributes = super.createAttributesObject();
|
|
80629
|
-
|
|
80630
|
-
|
|
80631
|
-
createStateVariable: "aggregateScoresPreliminary",
|
|
80632
|
-
defaultValue: false
|
|
80633
|
-
};
|
|
80634
|
-
attributes.weight = {
|
|
80635
|
-
createComponentOfType: "number",
|
|
80636
|
-
createStateVariable: "weight",
|
|
80637
|
-
defaultValue: 1,
|
|
80638
|
-
public: true
|
|
80639
|
-
};
|
|
80640
|
-
attributes.sectionWideCheckWork = {
|
|
80641
|
-
createComponentOfType: "boolean",
|
|
80642
|
-
createStateVariable: "sectionWideCheckWork",
|
|
80643
|
-
defaultValue: false,
|
|
80644
|
-
public: true
|
|
80645
|
-
};
|
|
80646
|
-
attributes.showCorrectness = {
|
|
80647
|
-
createComponentOfType: "boolean",
|
|
80648
|
-
createStateVariable: "showCorrectnessPreliminary",
|
|
80649
|
-
defaultValue: null
|
|
80650
|
-
};
|
|
80651
|
-
attributes.submitLabel = {
|
|
80652
|
-
createComponentOfType: "text",
|
|
80653
|
-
createStateVariable: "submitLabel",
|
|
80654
|
-
defaultValue: "Check Work",
|
|
80655
|
-
public: true,
|
|
80656
|
-
forRenderer: true
|
|
80657
|
-
};
|
|
80658
|
-
attributes.submitLabelNoCorrectness = {
|
|
80659
|
-
createComponentOfType: "text",
|
|
80660
|
-
createStateVariable: "submitLabelNoCorrectness",
|
|
80661
|
-
defaultValue: "Submit Response",
|
|
80662
|
-
public: true,
|
|
80663
|
-
forRenderer: true
|
|
80664
|
-
};
|
|
80665
|
-
attributes.displayDigitsForCreditAchieved = {
|
|
80666
|
-
createComponentOfType: "integer",
|
|
80667
|
-
createStateVariable: "displayDigitsForCreditAchieved",
|
|
80668
|
-
defaultValue: 3,
|
|
80669
|
-
public: true
|
|
80670
|
-
};
|
|
81041
|
+
let scoredSectionAttributes = returnScoredSectionAttributes();
|
|
81042
|
+
Object.assign(attributes, scoredSectionAttributes);
|
|
80671
81043
|
attributes.boxed = {
|
|
80672
81044
|
createComponentOfType: "boolean",
|
|
80673
81045
|
createStateVariable: "boxed",
|
|
@@ -81087,175 +81459,6 @@ class SectioningComponent extends BlockComponent {
|
|
|
81087
81459
|
return { setValue: { level } };
|
|
81088
81460
|
}
|
|
81089
81461
|
};
|
|
81090
|
-
stateVariableDefinitions.aggregateScores = {
|
|
81091
|
-
public: true,
|
|
81092
|
-
shadowingInstructions: {
|
|
81093
|
-
createComponentOfType: "boolean"
|
|
81094
|
-
},
|
|
81095
|
-
returnDependencies: () => ({
|
|
81096
|
-
aggregateScoresPreliminary: {
|
|
81097
|
-
dependencyType: "stateVariable",
|
|
81098
|
-
variableName: "aggregateScoresPreliminary"
|
|
81099
|
-
},
|
|
81100
|
-
sectionWideCheckWork: {
|
|
81101
|
-
dependencyType: "stateVariable",
|
|
81102
|
-
variableName: "sectionWideCheckWork"
|
|
81103
|
-
}
|
|
81104
|
-
}),
|
|
81105
|
-
definition({ dependencyValues }) {
|
|
81106
|
-
return {
|
|
81107
|
-
setValue: {
|
|
81108
|
-
aggregateScores: dependencyValues.aggregateScoresPreliminary || dependencyValues.sectionWideCheckWork
|
|
81109
|
-
}
|
|
81110
|
-
};
|
|
81111
|
-
}
|
|
81112
|
-
};
|
|
81113
|
-
stateVariableDefinitions.creditAchieved = {
|
|
81114
|
-
public: true,
|
|
81115
|
-
shadowingInstructions: {
|
|
81116
|
-
createComponentOfType: "number",
|
|
81117
|
-
addAttributeComponentsShadowingStateVariables: {
|
|
81118
|
-
displayDigits: {
|
|
81119
|
-
stateVariableToShadow: "displayDigitsForCreditAchieved"
|
|
81120
|
-
},
|
|
81121
|
-
displayDecimals: {
|
|
81122
|
-
stateVariableToShadow: "displayDecimalsForCreditAchieved"
|
|
81123
|
-
}
|
|
81124
|
-
}
|
|
81125
|
-
},
|
|
81126
|
-
forRenderer: true,
|
|
81127
|
-
defaultValue: 0,
|
|
81128
|
-
hasEssential: true,
|
|
81129
|
-
additionalStateVariablesDefined: [
|
|
81130
|
-
{
|
|
81131
|
-
variableName: "percentCreditAchieved",
|
|
81132
|
-
public: true,
|
|
81133
|
-
shadowingInstructions: {
|
|
81134
|
-
createComponentOfType: "number",
|
|
81135
|
-
addAttributeComponentsShadowingStateVariables: {
|
|
81136
|
-
displayDigits: {
|
|
81137
|
-
stateVariableToShadow: "displayDigitsForCreditAchieved"
|
|
81138
|
-
},
|
|
81139
|
-
displayDecimals: {
|
|
81140
|
-
stateVariableToShadow: "displayDecimalsForCreditAchieved"
|
|
81141
|
-
}
|
|
81142
|
-
}
|
|
81143
|
-
},
|
|
81144
|
-
defaultValue: 0,
|
|
81145
|
-
hasEssential: true
|
|
81146
|
-
}
|
|
81147
|
-
],
|
|
81148
|
-
stateVariablesDeterminingDependencies: [
|
|
81149
|
-
"aggregateScores",
|
|
81150
|
-
"scoredDescendants"
|
|
81151
|
-
],
|
|
81152
|
-
returnDependencies({ stateValues }) {
|
|
81153
|
-
let dependencies2 = {
|
|
81154
|
-
aggregateScores: {
|
|
81155
|
-
dependencyType: "stateVariable",
|
|
81156
|
-
variableName: "aggregateScores"
|
|
81157
|
-
}
|
|
81158
|
-
};
|
|
81159
|
-
if (stateValues.aggregateScores) {
|
|
81160
|
-
dependencies2.scoredDescendants = {
|
|
81161
|
-
dependencyType: "stateVariable",
|
|
81162
|
-
variableName: "scoredDescendants"
|
|
81163
|
-
};
|
|
81164
|
-
for (let [
|
|
81165
|
-
ind,
|
|
81166
|
-
descendant
|
|
81167
|
-
] of stateValues.scoredDescendants.entries()) {
|
|
81168
|
-
dependencies2["creditAchieved" + ind] = {
|
|
81169
|
-
dependencyType: "stateVariable",
|
|
81170
|
-
componentIdx: descendant.componentIdx,
|
|
81171
|
-
variableName: "creditAchieved"
|
|
81172
|
-
};
|
|
81173
|
-
}
|
|
81174
|
-
}
|
|
81175
|
-
return dependencies2;
|
|
81176
|
-
},
|
|
81177
|
-
definition({ dependencyValues }) {
|
|
81178
|
-
if (!dependencyValues.aggregateScores) {
|
|
81179
|
-
return {
|
|
81180
|
-
setValue: {
|
|
81181
|
-
creditAchieved: 0,
|
|
81182
|
-
percentCreditAchieved: 0
|
|
81183
|
-
}
|
|
81184
|
-
};
|
|
81185
|
-
}
|
|
81186
|
-
let creditSum = 0;
|
|
81187
|
-
let totalWeight = 0;
|
|
81188
|
-
for (let [
|
|
81189
|
-
ind,
|
|
81190
|
-
component
|
|
81191
|
-
] of dependencyValues.scoredDescendants.entries()) {
|
|
81192
|
-
let weight = component.stateValues.weight;
|
|
81193
|
-
creditSum += dependencyValues["creditAchieved" + ind] * weight;
|
|
81194
|
-
totalWeight += weight;
|
|
81195
|
-
}
|
|
81196
|
-
let creditAchieved;
|
|
81197
|
-
if (totalWeight > 0) {
|
|
81198
|
-
creditAchieved = creditSum / totalWeight;
|
|
81199
|
-
} else {
|
|
81200
|
-
creditAchieved = 1;
|
|
81201
|
-
}
|
|
81202
|
-
let percentCreditAchieved = creditAchieved * 100;
|
|
81203
|
-
return { setValue: { creditAchieved, percentCreditAchieved } };
|
|
81204
|
-
}
|
|
81205
|
-
};
|
|
81206
|
-
stateVariableDefinitions.creditAchievedIfSubmit = {
|
|
81207
|
-
defaultValue: 0,
|
|
81208
|
-
stateVariablesDeterminingDependencies: [
|
|
81209
|
-
"aggregateScores",
|
|
81210
|
-
"scoredDescendants"
|
|
81211
|
-
],
|
|
81212
|
-
returnDependencies({ stateValues }) {
|
|
81213
|
-
let dependencies2 = {
|
|
81214
|
-
aggregateScores: {
|
|
81215
|
-
dependencyType: "stateVariable",
|
|
81216
|
-
variableName: "aggregateScores"
|
|
81217
|
-
}
|
|
81218
|
-
};
|
|
81219
|
-
if (stateValues.aggregateScores) {
|
|
81220
|
-
dependencies2.scoredDescendants = {
|
|
81221
|
-
dependencyType: "stateVariable",
|
|
81222
|
-
variableName: "scoredDescendants"
|
|
81223
|
-
};
|
|
81224
|
-
for (let [
|
|
81225
|
-
ind,
|
|
81226
|
-
descendant
|
|
81227
|
-
] of stateValues.scoredDescendants.entries()) {
|
|
81228
|
-
dependencies2["creditAchievedIfSubmit" + ind] = {
|
|
81229
|
-
dependencyType: "stateVariable",
|
|
81230
|
-
componentIdx: descendant.componentIdx,
|
|
81231
|
-
variableName: "creditAchievedIfSubmit"
|
|
81232
|
-
};
|
|
81233
|
-
}
|
|
81234
|
-
}
|
|
81235
|
-
return dependencies2;
|
|
81236
|
-
},
|
|
81237
|
-
definition({ dependencyValues }) {
|
|
81238
|
-
if (!dependencyValues.aggregateScores) {
|
|
81239
|
-
return {
|
|
81240
|
-
setValue: {
|
|
81241
|
-
creditAchievedIfSubmit: 0
|
|
81242
|
-
}
|
|
81243
|
-
};
|
|
81244
|
-
}
|
|
81245
|
-
let creditSum = 0;
|
|
81246
|
-
let totalWeight = 0;
|
|
81247
|
-
for (let [
|
|
81248
|
-
ind,
|
|
81249
|
-
component
|
|
81250
|
-
] of dependencyValues.scoredDescendants.entries()) {
|
|
81251
|
-
let weight = component.stateValues.weight;
|
|
81252
|
-
creditSum += dependencyValues["creditAchievedIfSubmit" + ind] * weight;
|
|
81253
|
-
totalWeight += weight;
|
|
81254
|
-
}
|
|
81255
|
-
let creditAchievedIfSubmit = creditSum / totalWeight;
|
|
81256
|
-
return { setValue: { creditAchievedIfSubmit } };
|
|
81257
|
-
}
|
|
81258
|
-
};
|
|
81259
81462
|
stateVariableDefinitions.generatedVariantInfo = {
|
|
81260
81463
|
shadowVariable: true,
|
|
81261
81464
|
additionalStateVariablesDefined: ["isVariantComponent"],
|
|
@@ -81380,65 +81583,6 @@ class SectioningComponent extends BlockComponent {
|
|
|
81380
81583
|
};
|
|
81381
81584
|
}
|
|
81382
81585
|
};
|
|
81383
|
-
stateVariableDefinitions.createSubmitAllButton = {
|
|
81384
|
-
forRenderer: true,
|
|
81385
|
-
additionalStateVariablesDefined: [
|
|
81386
|
-
{
|
|
81387
|
-
variableName: "suppressAnswerSubmitButtons",
|
|
81388
|
-
forRenderer: true
|
|
81389
|
-
}
|
|
81390
|
-
],
|
|
81391
|
-
returnDependencies: () => ({
|
|
81392
|
-
sectionWideCheckWork: {
|
|
81393
|
-
dependencyType: "stateVariable",
|
|
81394
|
-
variableName: "sectionWideCheckWork"
|
|
81395
|
-
},
|
|
81396
|
-
sectionAncestor: {
|
|
81397
|
-
dependencyType: "ancestor",
|
|
81398
|
-
componentType: "_sectioningComponent",
|
|
81399
|
-
variableNames: ["suppressAnswerSubmitButtons"]
|
|
81400
|
-
},
|
|
81401
|
-
documentAncestor: {
|
|
81402
|
-
dependencyType: "ancestor",
|
|
81403
|
-
componentType: "document",
|
|
81404
|
-
variableNames: ["suppressAnswerSubmitButtons"]
|
|
81405
|
-
}
|
|
81406
|
-
}),
|
|
81407
|
-
definition({ dependencyValues }) {
|
|
81408
|
-
let warnings = [];
|
|
81409
|
-
let createSubmitAllButton = false;
|
|
81410
|
-
let suppressAnswerSubmitButtons = false;
|
|
81411
|
-
if (dependencyValues.documentAncestor.stateValues.suppressAnswerSubmitButtons || dependencyValues.sectionAncestor && dependencyValues.sectionAncestor.stateValues.suppressAnswerSubmitButtons) {
|
|
81412
|
-
suppressAnswerSubmitButtons = true;
|
|
81413
|
-
} else if (dependencyValues.sectionWideCheckWork) {
|
|
81414
|
-
createSubmitAllButton = true;
|
|
81415
|
-
suppressAnswerSubmitButtons = true;
|
|
81416
|
-
}
|
|
81417
|
-
return {
|
|
81418
|
-
setValue: {
|
|
81419
|
-
createSubmitAllButton,
|
|
81420
|
-
suppressAnswerSubmitButtons
|
|
81421
|
-
},
|
|
81422
|
-
sendWarnings: warnings
|
|
81423
|
-
};
|
|
81424
|
-
}
|
|
81425
|
-
};
|
|
81426
|
-
stateVariableDefinitions.suppressCheckWork = {
|
|
81427
|
-
forRenderer: true,
|
|
81428
|
-
returnDependencies: () => ({
|
|
81429
|
-
autoSubmit: {
|
|
81430
|
-
dependencyType: "flag",
|
|
81431
|
-
flagName: "autoSubmit"
|
|
81432
|
-
}
|
|
81433
|
-
}),
|
|
81434
|
-
definition({ dependencyValues }) {
|
|
81435
|
-
return {
|
|
81436
|
-
setValue: {
|
|
81437
|
-
suppressCheckWork: dependencyValues.autoSubmit
|
|
81438
|
-
}
|
|
81439
|
-
};
|
|
81440
|
-
}
|
|
81441
|
-
};
|
|
81442
81586
|
return stateVariableDefinitions;
|
|
81443
81587
|
}
|
|
81444
81588
|
async submitAllAnswers({
|
|
@@ -81446,33 +81590,12 @@ class SectioningComponent extends BlockComponent {
|
|
|
81446
81590
|
sourceInformation = {},
|
|
81447
81591
|
skipRendererUpdate = false
|
|
81448
81592
|
}) {
|
|
81449
|
-
|
|
81450
|
-
|
|
81451
|
-
|
|
81452
|
-
|
|
81453
|
-
|
|
81454
|
-
},
|
|
81455
|
-
result: {
|
|
81456
|
-
creditAchieved: await this.stateValues.creditAchievedIfSubmit
|
|
81457
|
-
}
|
|
81593
|
+
return submitAllAnswers({
|
|
81594
|
+
component: this,
|
|
81595
|
+
actionId,
|
|
81596
|
+
sourceInformation,
|
|
81597
|
+
skipRendererUpdate
|
|
81458
81598
|
});
|
|
81459
|
-
let numAnswers = await this.stateValues.answerDescendants;
|
|
81460
|
-
for (let [
|
|
81461
|
-
ind,
|
|
81462
|
-
answer
|
|
81463
|
-
] of await this.stateValues.answerDescendants.entries()) {
|
|
81464
|
-
if (!await answer.stateValues.justSubmitted) {
|
|
81465
|
-
await this.coreFunctions.performAction({
|
|
81466
|
-
componentIdx: answer.componentIdx,
|
|
81467
|
-
actionName: "submitAnswer",
|
|
81468
|
-
args: {
|
|
81469
|
-
actionId,
|
|
81470
|
-
sourceInformation,
|
|
81471
|
-
skipRendererUpdate: skipRendererUpdate || ind < numAnswers - 1
|
|
81472
|
-
}
|
|
81473
|
-
});
|
|
81474
|
-
}
|
|
81475
|
-
}
|
|
81476
81599
|
}
|
|
81477
81600
|
async revealSection({
|
|
81478
81601
|
actionId,
|
|
@@ -82204,6 +82327,7 @@ let Li$1 = class Li extends BaseComponent {
|
|
|
82204
82327
|
constructor(args) {
|
|
82205
82328
|
super(args);
|
|
82206
82329
|
Object.assign(this.actions, {
|
|
82330
|
+
submitAllAnswers: this.submitAllAnswers.bind(this),
|
|
82207
82331
|
recordVisibilityChange: this.recordVisibilityChange.bind(this)
|
|
82208
82332
|
});
|
|
82209
82333
|
}
|
|
@@ -82213,6 +82337,12 @@ let Li$1 = class Li extends BaseComponent {
|
|
|
82213
82337
|
static canDisplayChildErrors = true;
|
|
82214
82338
|
static inSchemaOnlyInheritAs = [];
|
|
82215
82339
|
static includeBlankStringChildren = true;
|
|
82340
|
+
static createAttributesObject() {
|
|
82341
|
+
let attributes = super.createAttributesObject();
|
|
82342
|
+
let scoredSectionAttributes = returnScoredSectionAttributes();
|
|
82343
|
+
Object.assign(attributes, scoredSectionAttributes);
|
|
82344
|
+
return attributes;
|
|
82345
|
+
}
|
|
82216
82346
|
static returnChildGroups() {
|
|
82217
82347
|
return [
|
|
82218
82348
|
{
|
|
@@ -82223,6 +82353,10 @@ let Li$1 = class Li extends BaseComponent {
|
|
|
82223
82353
|
}
|
|
82224
82354
|
static returnStateVariableDefinitions() {
|
|
82225
82355
|
let stateVariableDefinitions = super.returnStateVariableDefinitions();
|
|
82356
|
+
Object.assign(
|
|
82357
|
+
stateVariableDefinitions,
|
|
82358
|
+
returnScoredSectionStateVariableDefinition()
|
|
82359
|
+
);
|
|
82226
82360
|
stateVariableDefinitions.item = {
|
|
82227
82361
|
forRenderer: true,
|
|
82228
82362
|
returnDependencies: () => ({}),
|
|
@@ -82248,6 +82382,18 @@ let Li$1 = class Li extends BaseComponent {
|
|
|
82248
82382
|
};
|
|
82249
82383
|
return stateVariableDefinitions;
|
|
82250
82384
|
}
|
|
82385
|
+
async submitAllAnswers({
|
|
82386
|
+
actionId,
|
|
82387
|
+
sourceInformation = {},
|
|
82388
|
+
skipRendererUpdate = false
|
|
82389
|
+
}) {
|
|
82390
|
+
return submitAllAnswers({
|
|
82391
|
+
component: this,
|
|
82392
|
+
actionId,
|
|
82393
|
+
sourceInformation,
|
|
82394
|
+
skipRendererUpdate
|
|
82395
|
+
});
|
|
82396
|
+
}
|
|
82251
82397
|
recordVisibilityChange({ isVisible }) {
|
|
82252
82398
|
this.coreFunctions.requestRecordEvent({
|
|
82253
82399
|
verb: "visibilityChanged",
|
|
@@ -104035,6 +104181,7 @@ class Document extends BaseComponent {
|
|
|
104035
104181
|
stateVariableDefinitions,
|
|
104036
104182
|
returnScoredSectionStateVariableDefinition()
|
|
104037
104183
|
);
|
|
104184
|
+
delete stateVariableDefinitions.aggregateScores;
|
|
104038
104185
|
stateVariableDefinitions.titleChildName = {
|
|
104039
104186
|
forRenderer: true,
|
|
104040
104187
|
returnDependencies: () => ({
|
|
@@ -104479,22 +104626,6 @@ class Document extends BaseComponent {
|
|
|
104479
104626
|
};
|
|
104480
104627
|
}
|
|
104481
104628
|
};
|
|
104482
|
-
stateVariableDefinitions.suppressCheckWork = {
|
|
104483
|
-
forRenderer: true,
|
|
104484
|
-
returnDependencies: () => ({
|
|
104485
|
-
autoSubmit: {
|
|
104486
|
-
dependencyType: "flag",
|
|
104487
|
-
flagName: "autoSubmit"
|
|
104488
|
-
}
|
|
104489
|
-
}),
|
|
104490
|
-
definition({ dependencyValues }) {
|
|
104491
|
-
return {
|
|
104492
|
-
setValue: {
|
|
104493
|
-
suppressCheckWork: dependencyValues.autoSubmit
|
|
104494
|
-
}
|
|
104495
|
-
};
|
|
104496
|
-
}
|
|
104497
|
-
};
|
|
104498
104629
|
stateVariableDefinitions.containerTag = {
|
|
104499
104630
|
forRenderer: true,
|
|
104500
104631
|
returnDependencies: () => ({}),
|
|
@@ -104507,31 +104638,12 @@ class Document extends BaseComponent {
|
|
|
104507
104638
|
sourceInformation = {},
|
|
104508
104639
|
skipRendererUpdate = false
|
|
104509
104640
|
}) {
|
|
104510
|
-
|
|
104511
|
-
|
|
104512
|
-
|
|
104513
|
-
|
|
104514
|
-
|
|
104515
|
-
}
|
|
104641
|
+
return submitAllAnswers({
|
|
104642
|
+
component: this,
|
|
104643
|
+
actionId,
|
|
104644
|
+
sourceInformation,
|
|
104645
|
+
skipRendererUpdate
|
|
104516
104646
|
});
|
|
104517
|
-
let answersToSubmit = [];
|
|
104518
|
-
for (let answer of await this.stateValues.answerDescendants) {
|
|
104519
|
-
if (!await answer.stateValues.justSubmitted) {
|
|
104520
|
-
answersToSubmit.push(answer);
|
|
104521
|
-
}
|
|
104522
|
-
}
|
|
104523
|
-
let numAnswers = answersToSubmit.length;
|
|
104524
|
-
for (let [ind, answer] of answersToSubmit.entries()) {
|
|
104525
|
-
await this.coreFunctions.performAction({
|
|
104526
|
-
componentIdx: answer.componentIdx,
|
|
104527
|
-
actionName: "submitAnswer",
|
|
104528
|
-
args: {
|
|
104529
|
-
actionId,
|
|
104530
|
-
sourceInformation,
|
|
104531
|
-
skipRendererUpdate: skipRendererUpdate || ind < numAnswers - 1
|
|
104532
|
-
}
|
|
104533
|
-
});
|
|
104534
|
-
}
|
|
104535
104647
|
}
|
|
104536
104648
|
recordVisibilityChange({ isVisible }) {
|
|
104537
104649
|
this.coreFunctions.requestRecordEvent({
|
|
@@ -105817,6 +105929,7 @@ let P$2 = class P3 extends BlockComponent {
|
|
|
105817
105929
|
constructor(args) {
|
|
105818
105930
|
super(args);
|
|
105819
105931
|
Object.assign(this.actions, {
|
|
105932
|
+
submitAllAnswers: this.submitAllAnswers.bind(this),
|
|
105820
105933
|
recordVisibilityChange: this.recordVisibilityChange.bind(this)
|
|
105821
105934
|
});
|
|
105822
105935
|
}
|
|
@@ -105824,6 +105937,12 @@ let P$2 = class P3 extends BlockComponent {
|
|
|
105824
105937
|
static renderChildren = true;
|
|
105825
105938
|
static canDisplayChildErrors = true;
|
|
105826
105939
|
static includeBlankStringChildren = true;
|
|
105940
|
+
static createAttributesObject() {
|
|
105941
|
+
let attributes = super.createAttributesObject();
|
|
105942
|
+
let scoredSectionAttributes = returnScoredSectionAttributes();
|
|
105943
|
+
Object.assign(attributes, scoredSectionAttributes);
|
|
105944
|
+
return attributes;
|
|
105945
|
+
}
|
|
105827
105946
|
static returnChildGroups() {
|
|
105828
105947
|
return [
|
|
105829
105948
|
{
|
|
@@ -105838,6 +105957,10 @@ let P$2 = class P3 extends BlockComponent {
|
|
|
105838
105957
|
}
|
|
105839
105958
|
static returnStateVariableDefinitions() {
|
|
105840
105959
|
let stateVariableDefinitions = super.returnStateVariableDefinitions();
|
|
105960
|
+
Object.assign(
|
|
105961
|
+
stateVariableDefinitions,
|
|
105962
|
+
returnScoredSectionStateVariableDefinition()
|
|
105963
|
+
);
|
|
105841
105964
|
stateVariableDefinitions.text = {
|
|
105842
105965
|
public: true,
|
|
105843
105966
|
shadowingInstructions: {
|
|
@@ -105858,6 +105981,18 @@ let P$2 = class P3 extends BlockComponent {
|
|
|
105858
105981
|
};
|
|
105859
105982
|
return stateVariableDefinitions;
|
|
105860
105983
|
}
|
|
105984
|
+
async submitAllAnswers({
|
|
105985
|
+
actionId,
|
|
105986
|
+
sourceInformation = {},
|
|
105987
|
+
skipRendererUpdate = false
|
|
105988
|
+
}) {
|
|
105989
|
+
return submitAllAnswers({
|
|
105990
|
+
component: this,
|
|
105991
|
+
actionId,
|
|
105992
|
+
sourceInformation,
|
|
105993
|
+
skipRendererUpdate
|
|
105994
|
+
});
|
|
105995
|
+
}
|
|
105861
105996
|
recordVisibilityChange({ isVisible }) {
|
|
105862
105997
|
this.coreFunctions.requestRecordEvent({
|
|
105863
105998
|
verb: "visibilityChanged",
|
|
@@ -123270,7 +123405,7 @@ function returnStandardAnswerAttributes() {
|
|
|
123270
123405
|
disableAfterCorrect: {
|
|
123271
123406
|
createComponentOfType: "boolean",
|
|
123272
123407
|
createStateVariable: "disableAfterCorrect",
|
|
123273
|
-
defaultValue:
|
|
123408
|
+
defaultValue: false,
|
|
123274
123409
|
public: true
|
|
123275
123410
|
},
|
|
123276
123411
|
submitLabel: {
|
|
@@ -123622,10 +123757,16 @@ function returnStandardAnswerStateVariableDefinition() {
|
|
|
123622
123757
|
creditAchieved: {
|
|
123623
123758
|
dependencyType: "stateVariable",
|
|
123624
123759
|
variableName: "creditAchieved"
|
|
123760
|
+
},
|
|
123761
|
+
nextCreditFactor: {
|
|
123762
|
+
dependencyType: "stateVariable",
|
|
123763
|
+
variableName: "nextCreditFactor",
|
|
123764
|
+
variablesOptional: true
|
|
123625
123765
|
}
|
|
123626
123766
|
}),
|
|
123627
123767
|
definition({ dependencyValues }) {
|
|
123628
|
-
|
|
123768
|
+
const creditAchieved = dependencyValues.creditAchieved;
|
|
123769
|
+
if (creditAchieved === 1 || creditAchieved > 0 && creditAchieved === dependencyValues.nextCreditFactor) {
|
|
123629
123770
|
return {
|
|
123630
123771
|
setValue: { hasBeenCorrect: true },
|
|
123631
123772
|
setEssentialValue: { hasBeenCorrect: true }
|
|
@@ -124835,15 +124976,33 @@ class Answer extends InlineComponent {
|
|
|
124835
124976
|
dependencyType: "ancestor",
|
|
124836
124977
|
componentType: "document",
|
|
124837
124978
|
variableNames: ["suppressAnswerSubmitButtons"]
|
|
124979
|
+
},
|
|
124980
|
+
pAncestor: {
|
|
124981
|
+
dependencyType: "ancestor",
|
|
124982
|
+
componentType: "p",
|
|
124983
|
+
variableNames: ["suppressAnswerSubmitButtons"]
|
|
124984
|
+
},
|
|
124985
|
+
liAncestor: {
|
|
124986
|
+
dependencyType: "ancestor",
|
|
124987
|
+
componentType: "li",
|
|
124988
|
+
variableNames: ["suppressAnswerSubmitButtons"]
|
|
124989
|
+
},
|
|
124990
|
+
divAncestor: {
|
|
124991
|
+
dependencyType: "ancestor",
|
|
124992
|
+
componentType: "div",
|
|
124993
|
+
variableNames: ["suppressAnswerSubmitButtons"]
|
|
124994
|
+
},
|
|
124995
|
+
spanAncestor: {
|
|
124996
|
+
dependencyType: "ancestor",
|
|
124997
|
+
componentType: "span",
|
|
124998
|
+
variableNames: ["suppressAnswerSubmitButtons"]
|
|
124838
124999
|
}
|
|
124839
125000
|
}),
|
|
124840
125001
|
definition: function({ dependencyValues }) {
|
|
124841
125002
|
let delegateCheckWorkToAncestor = false;
|
|
124842
125003
|
let delegateCheckWorkToInput = false;
|
|
124843
125004
|
let delegateCheckWork = false;
|
|
124844
|
-
if (dependencyValues.documentAncestor.stateValues.suppressAnswerSubmitButtons) {
|
|
124845
|
-
delegateCheckWorkToAncestor = delegateCheckWork = true;
|
|
124846
|
-
} else if (dependencyValues.sectionAncestor?.stateValues.suppressAnswerSubmitButtons) {
|
|
125005
|
+
if (dependencyValues.documentAncestor.stateValues.suppressAnswerSubmitButtons || dependencyValues.sectionAncestor?.stateValues.suppressAnswerSubmitButtons || dependencyValues.pAncestor?.stateValues.suppressAnswerSubmitButtons || dependencyValues.liAncestor?.stateValues.suppressAnswerSubmitButtons || dependencyValues.divAncestor?.stateValues.suppressAnswerSubmitButtons || dependencyValues.spanAncestor?.stateValues.suppressAnswerSubmitButtons) {
|
|
124847
125006
|
delegateCheckWorkToAncestor = delegateCheckWork = true;
|
|
124848
125007
|
} else if (dependencyValues.inputChildren.length === 1 && !dependencyValues.forceFullCheckworkButton) {
|
|
124849
125008
|
delegateCheckWorkToInput = delegateCheckWork = true;
|