jspsych-tangram 0.0.8 → 0.0.9
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/construct/index.browser.js +41 -2
- package/dist/construct/index.browser.js.map +1 -1
- package/dist/construct/index.browser.min.js +14 -11
- package/dist/construct/index.browser.min.js.map +1 -1
- package/dist/construct/index.cjs +41 -2
- package/dist/construct/index.cjs.map +1 -1
- package/dist/construct/index.js +41 -2
- package/dist/construct/index.js.map +1 -1
- package/dist/index.cjs +41 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +41 -2
- package/dist/index.js.map +1 -1
- package/dist/prep/index.browser.js +41 -2
- package/dist/prep/index.browser.js.map +1 -1
- package/dist/prep/index.browser.min.js +16 -13
- package/dist/prep/index.browser.min.js.map +1 -1
- package/dist/prep/index.cjs +41 -2
- package/dist/prep/index.cjs.map +1 -1
- package/dist/prep/index.js +41 -2
- package/dist/prep/index.js.map +1 -1
- package/package.json +1 -1
- package/src/assets/README.md +6 -0
- package/src/assets/images.d.ts +19 -0
- package/src/assets/locked.png +0 -0
- package/src/assets/unlocked.png +0 -0
- package/src/core/components/board/BoardView.tsx +72 -29
- package/src/core/io/InteractionTracker.ts +16 -8
- package/src/core/io/data-tracking.ts +3 -0
- package/tangram-construct.min.js +14 -11
- package/tangram-prep.min.js +16 -13
|
@@ -17478,6 +17478,10 @@ var TangramConstructPlugin = (function (jspsych) {
|
|
|
17478
17478
|
return CONFIG.game.showBorders;
|
|
17479
17479
|
}
|
|
17480
17480
|
|
|
17481
|
+
var lockedIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAYAAAA4qEECAAAACXBIWXMAAAsSAAALEgHS3X78AAAFY0lEQVR4nO2d7XXrNgyGH/r0f7zB9QbXnaDqBt6gvhM0I2SE3A2UDXwnqLKBPEHdDewJ0B+kYieWZEoiQfrjPQcnjqOI0GuYAAFQMiJCLjDGLIEFsHQyB/7w/Pd397MCamAnInVgFUfDpCTaGLMACmDlfj4FHuKAJX4DVCKyC3x+b6gTbYyZA2sn31UHhy1QAqWI7FVHFhEVwVpsCUgmUgKF2vUrEVxlQGyXVBqE3zPBqoTHIHhOXlPEUCmBedZEY6OHfQZkTZU9sMqO6Buw4ujWHYLkJXaBkJqUWFIDy6REYx3eLUwVl2TPREc5heR1BgRoy1qV6DsleRLZD5KVyH6QrET2UMeX+uJyE28H6UvykvuILobKHs/Qz4fkObcdJ0+VGo9FzcV8tDGmBP7qPSg+DtgLqrFWBLYSs8C/AhMTbyKy7j3igjWvSPu1LPH4ajo9y4S6ChdyI5emjFTz8isjcgxYC98kNIxOnfuUTmEhk5e6Tvd1IiMpBxFNmlDOy6kMIDtVpNRqKK3O0BhToetk/sPOxZ0FU1cxX2CNAGxFZCc9lW3XvlARvrreh3cRKc7ezcSaOx0e1tH1hZc1PY6INA79zKrbFKuUlXrpccZDdKnomHqwzlXzmqpeotG35l0PyWMWSa3zPGkiqKKP6FJZmXUH0VVIa0pk1WUr0e5T11REaLe+dYwPEOtIk13fqSLPykp0Wd4uwLm7piTtnM1zM/aMI9boovr6hgvHvgU49zdjTNHyvnZ36bp5MYOPGFW74bDtoouA52871y7g+X3w3XH7YdGFsgJwzMKdYh55zCry+dtQwJHoVQIF7gUrSGvR94ICYOYckGYu4N7wZIxZzLDx5QNxsZxh04kPxMUS9JNINfBChB7kS4KNal4JsygaIhtNooNUTwKS/oxeoqky7kVsbB3JujuhLkCzMKBF9O+S0ebKU7il+j+xx5ldPmQyfuZKMoCIVMCv2ONoEP2qMMZUlLEHiD11HEQkdv4iCIwxUafQ2Bad7ZShjd9SK+CLkz3kTQJsQ4o93RMQNX4MFPN2NcN4t816jBE1ltZwhpPgLLmiPdZ9Aip3TNbInmjsdNG3oHhCvww3GDOOd27JFT5FidwLF+8z2ktKD4TFfkb+Idgm0DEpUV8L0Yeevx94ED0dYttyC9rJPmCzgjtFlcagnjkl+ywmOVxSasHn5M8vYJFzwsrhICK7JryrUmriA7cCPCW1vpJVYQXHODr3Oe6asYEj0VU6PW4eFTii3Ty9TajMrWLbOOrTJXiZRJXbRtm8eBAdF2Xz4oNo58HfUmhzo3g7jYq+Zu9KXV0Go+54nSPKT7+1JMArwiW86wiNL2sm3ERKKfF/VvA42zkbus9BREyoc8WC68r/N+Ap/3RtDB84S/y7A4LlqI0xueeKIWx/+PtXkoHzqeOkRpdV3TCmELbpsbWG2Td4yA2QwefUgCS/BLzO185xehSYB/6ksyObsLeX2zHmxihOkdB3Biixqc3UBC8If6eaom9Mn5tXvQJ/9x40HFtsGKmd5pxjHV/oPZU/ReS57wCvp1YYY2r0N3xeC7YicnF7im9fx4rMqzCJcMCz1cGLaDnW7R74jEI865XenUpia3M/xmp0g/ghQ+qViUOia5XBoWoO8ee1yaj1QC7B/rXIKJK94ug+JLqvXAo0jTqjc+CT2nbdwEtuu7C7xSaKphUaAi1pm62/qb/aoWXUzWiDztEdhD8e4aRB9I1YdzArjkr0CeGNo0xNnK9UBNp4pEr0CeFF5oRXXPODIzsILzMgtpFSg+BGHg/3VcLjcdVKSEr0Vzjil4x/AHvTrF5jm3d2wZUcif8BqSLxz8FiAOgAAAAASUVORK5CYII=";
|
|
17482
|
+
|
|
17483
|
+
var unlockedIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFoAAABaCAYAAAA4qEECAAAACXBIWXMAAAsSAAALEgHS3X78AAAFYklEQVR4nO1d0ZGjOBB9ct3/+iJYMlg2giODcwjeDCYEbwbeDNgMvBloIjgmAyYDHEHfh4SHsQUIaLVk7FfVNTblkZpHq1u0GqGICKlAKZUDyADkVrYA/vH891f7VwOoANREVDGrOBsqJtFKqQxAAWBn/35h7uIMQ/wJgCaimrl9b4gTrZTaAthb+SbaOfAGoARQElEj2jMRiQiMxZYAKBEpARRi5y9EsE6A2D7REoQ/MsGihIcgeIu0XMRUKQFskyYaZvbQJEDWUmkA7JIjegVWHNy6OUjOYW4QYpMSSioAeVSiYQLeGlzFmDRYGCiXkLxPgABp2YsS/aAkLyL7SbIQ2U+ShcieGvhin1xq4h0gvbJ3Nk+swZ/G9MEZZooFmKlkDB36cIYhezzv7WHJW8jOkxsAR5i7TOfNAszoOgKoBfXqk6pPz0muA3J3fDXmBBkTN2ITXi4i2lqVhKJHH6sYGXXHyGQP5kbGlJe465tsxSPWHYvoZshYYrsMNpITIbvXhfQpWwgo9eJB2AmfR1Vjjw1eoMhkF1OI1oGV0SNxofZoo8aAX7QXJAbRznOLZc1ZDzlzAtqxp60sEtEEh1XHsGanHwNwWNCm0w0h3mLEjVUnYc1M/d4k55GQVUtbQBUwJpx62q4jEV06iYaZN4fu/MafgtfqXKMlFtGEzrx6gw/sER6u5MuOsf1D94tS6gXAV8b2p2J/+dS58hKJo9tovCwIukTbNrXA+YxJ9cl1QC5ouIiONd+VkqzrOgrEQzI1zIFQALgQzeknh5AJ9ZMSdgDELTpzHDsJ9R0LRfshR4TgkNAUTMRPbyA7nL/ZxymuoQV1iIF8A2PRknDFg7W7j3wD+RnHTX9EdIJZUV4r8r8idPqvUmpLtw/rHBH+oscqV9gCskGhgblrY6+o9xWYmHSAfBWsWEenmAQ7CN9C9q5UpJMyNrEDhGsJDlTLdkC8wyTlZR+g9IR9wLRGYN+9Gf/JYhxSJRkArG7H0P1IWPTfKRMNXIo4/wvaB8IS/U5EWcD22aCUCmpwoV1HHbj9u4GEj2aBUmqnlKqUUmSlUkpJpXdZEHJao5mmYEOFNc4Cmhl9BJ9H65SJhl/NR5E40XoDcyuaMnzcwz60EgvRbJD+mp1PGjcLrcRCVPdAtM+IS31U3gXRPosCqS8cVG0gCJUy5Jp1DBX3ONchEwqGDdFHXYdmuGohUQD44zj+B3FrUnyggY8blqSHHhE1RLQD8LNz+CcR7VLPo8Byey8Wfc/QgCWazA6HbxGVWSveLLefch1lFFXWjbL98CQ6LMr2w4VoG1R+x9BmpfjdDdTXadJSVpdVo+x++UQ0EWl87MP8xHy8Wi4vcCX+DyKqzENbOnZG2nP/w/UB5w40SikN/53Ih8C+ZmgXUkHMu50zrhm+ElFx034P0Zyrwo+2Cv7dZQTONUP7w19MHd/Duh6Xjr96R9pANqut4FmavaqRUM1dz3lyZC8Hz7N3FdwO95cJV7MPXyFQCbQAJ/CUg+0HXaTHFefaq6hEQpYN3mrS0ZV4X6W4nqqtYRZS11Qf7bXw4LvBYGbJ5qy4fId8JRN3xf8ZplK2Hvuh93tYJAoB7xDOqZwL3iVhtsEfs1VaH374kgzAz0df+bg9eHzbPct+Mm8zA8ojkz2Z5NlEPzDZs0j2nnX0IfJ2x5Lw3764B4vqo23HOda9sPsGM4Vbli1kuglIYbfbELJoF2AWH91D+PMVThJEr8S62aw4KNEdwttAGZs4X9FgeFWTONEdwovECde45xdH9hBeJkBsK6UEwa08X+4rhOfrqoUQlehrWOJzzH8BewOTN69gEvI1u5Iz8T+TOcUtjzRRXwAAAABJRU5ErkJggg==";
|
|
17484
|
+
|
|
17481
17485
|
function pathD(poly) {
|
|
17482
17486
|
return `M ${poly.map((pt) => `${pt.x} ${pt.y}`).join(" L ")} Z`;
|
|
17483
17487
|
}
|
|
@@ -17648,10 +17652,20 @@ var TangramConstructPlugin = (function (jspsych) {
|
|
|
17648
17652
|
}
|
|
17649
17653
|
)));
|
|
17650
17654
|
}),
|
|
17655
|
+
/* @__PURE__ */ React.createElement("defs", null, /* @__PURE__ */ React.createElement("filter", { id: "invert-to-white" }, /* @__PURE__ */ React.createElement(
|
|
17656
|
+
"feColorMatrix",
|
|
17657
|
+
{
|
|
17658
|
+
type: "matrix",
|
|
17659
|
+
values: "-1 0 0 0 1\n 0 -1 0 0 1\n 0 0 -1 0 1\n 0 0 0 1 0"
|
|
17660
|
+
}
|
|
17661
|
+
))),
|
|
17651
17662
|
(() => {
|
|
17652
17663
|
const isPrep = controller.state.cfg.mode === "prep";
|
|
17653
17664
|
const isSubmitEnabled = isPrep ? controller.isSubmitEnabled() : true;
|
|
17654
17665
|
const isClickable = !draggingId && (!isPrep || isSubmitEnabled);
|
|
17666
|
+
const [imageError, setImageError] = React.useState(false);
|
|
17667
|
+
const iconSize = badgeR * 1.6;
|
|
17668
|
+
const iconOffset = iconSize / 2;
|
|
17655
17669
|
return /* @__PURE__ */ React.createElement(
|
|
17656
17670
|
"g",
|
|
17657
17671
|
{
|
|
@@ -17667,7 +17681,7 @@ var TangramConstructPlugin = (function (jspsych) {
|
|
|
17667
17681
|
opacity: isSubmitEnabled ? 1 : 0.5
|
|
17668
17682
|
}
|
|
17669
17683
|
),
|
|
17670
|
-
/* @__PURE__ */ React.createElement(
|
|
17684
|
+
isPrep ? /* @__PURE__ */ React.createElement(
|
|
17671
17685
|
"text",
|
|
17672
17686
|
{
|
|
17673
17687
|
textAnchor: "middle",
|
|
@@ -17676,7 +17690,29 @@ var TangramConstructPlugin = (function (jspsych) {
|
|
|
17676
17690
|
fill: isSubmitEnabled ? CONFIG.color.blueprint.labelFill : "#888",
|
|
17677
17691
|
pointerEvents: "none"
|
|
17678
17692
|
},
|
|
17679
|
-
|
|
17693
|
+
"Submit"
|
|
17694
|
+
) : imageError ? /* @__PURE__ */ React.createElement(
|
|
17695
|
+
"text",
|
|
17696
|
+
{
|
|
17697
|
+
textAnchor: "middle",
|
|
17698
|
+
dominantBaseline: "middle",
|
|
17699
|
+
fontSize: CONFIG.size.badgeFontPx,
|
|
17700
|
+
fill: CONFIG.color.blueprint.labelFill,
|
|
17701
|
+
pointerEvents: "none"
|
|
17702
|
+
},
|
|
17703
|
+
"inventory"
|
|
17704
|
+
) : /* @__PURE__ */ React.createElement(
|
|
17705
|
+
"image",
|
|
17706
|
+
{
|
|
17707
|
+
href: controller.state.blueprintView === "quickstash" ? lockedIcon : unlockedIcon,
|
|
17708
|
+
x: -iconOffset,
|
|
17709
|
+
y: -iconOffset,
|
|
17710
|
+
width: iconSize,
|
|
17711
|
+
height: iconSize,
|
|
17712
|
+
pointerEvents: "none",
|
|
17713
|
+
onError: () => setImageError(true),
|
|
17714
|
+
filter: "url(#invert-to-white)"
|
|
17715
|
+
}
|
|
17680
17716
|
)
|
|
17681
17717
|
);
|
|
17682
17718
|
})(),
|
|
@@ -19320,6 +19356,7 @@ var TangramConstructPlugin = (function (jspsych) {
|
|
|
19320
19356
|
const trialEndTime = Date.now();
|
|
19321
19357
|
const totalDuration = trialEndTime - this.trialStartTime;
|
|
19322
19358
|
const finalSnapshot = this.buildStateSnapshot();
|
|
19359
|
+
const anchorToStimuliRatio = CONFIG.layout.grid.stepPx / CONFIG.layout.grid.unitPx;
|
|
19323
19360
|
const mode = this.controller.state.cfg.mode;
|
|
19324
19361
|
if (mode === "construction") {
|
|
19325
19362
|
const finalBlueprintState = this.buildFinalBlueprintState(finalSnapshot);
|
|
@@ -19334,6 +19371,7 @@ var TangramConstructPlugin = (function (jspsych) {
|
|
|
19334
19371
|
trialStartTime: this.trialStartTime,
|
|
19335
19372
|
trialEndTime,
|
|
19336
19373
|
totalDuration,
|
|
19374
|
+
anchorToStimuliRatio,
|
|
19337
19375
|
trialParams: this.trialParams,
|
|
19338
19376
|
endReason,
|
|
19339
19377
|
completionTimes: this.completionTimes,
|
|
@@ -19356,6 +19394,7 @@ var TangramConstructPlugin = (function (jspsych) {
|
|
|
19356
19394
|
trialStartTime: this.trialStartTime,
|
|
19357
19395
|
trialEndTime,
|
|
19358
19396
|
totalDuration,
|
|
19397
|
+
anchorToStimuliRatio,
|
|
19359
19398
|
trialParams: this.trialParams,
|
|
19360
19399
|
endReason: "submit",
|
|
19361
19400
|
createdMacros: finalMacros,
|