jspsych 6.3.1 → 7.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/README.md +36 -37
  2. package/css/jspsych.css +39 -39
  3. package/dist/JsPsych.d.ts +112 -0
  4. package/dist/TimelineNode.d.ts +34 -0
  5. package/dist/index.browser.js +3171 -0
  6. package/dist/index.browser.js.map +1 -0
  7. package/dist/index.browser.min.js +2 -0
  8. package/dist/index.browser.min.js.map +1 -0
  9. package/dist/index.cjs +3165 -0
  10. package/dist/index.cjs.map +1 -0
  11. package/dist/index.d.ts +11 -0
  12. package/dist/index.js +3159 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/migration.d.ts +3 -0
  15. package/dist/modules/data/DataCollection.d.ts +45 -0
  16. package/dist/modules/data/DataColumn.d.ts +15 -0
  17. package/dist/modules/data/index.d.ts +25 -0
  18. package/dist/modules/data/utils.d.ts +3 -0
  19. package/dist/modules/extensions.d.ts +22 -0
  20. package/dist/modules/plugin-api/HardwareAPI.d.ts +15 -0
  21. package/dist/modules/plugin-api/KeyboardListenerAPI.d.ts +34 -0
  22. package/dist/modules/plugin-api/MediaAPI.d.ts +27 -0
  23. package/dist/modules/plugin-api/SimulationAPI.d.ts +41 -0
  24. package/dist/modules/plugin-api/TimeoutAPI.d.ts +5 -0
  25. package/dist/modules/plugin-api/index.d.ts +8 -0
  26. package/dist/modules/plugins.d.ts +136 -0
  27. package/dist/modules/randomization.d.ts +35 -0
  28. package/dist/modules/turk.d.ts +40 -0
  29. package/dist/modules/utils.d.ts +7 -0
  30. package/package.json +32 -15
  31. package/src/JsPsych.ts +884 -0
  32. package/src/TimelineNode.ts +536 -0
  33. package/src/index.ts +71 -0
  34. package/src/migration.ts +37 -0
  35. package/src/modules/data/DataCollection.ts +198 -0
  36. package/src/modules/data/DataColumn.ts +86 -0
  37. package/src/modules/data/index.ts +174 -0
  38. package/src/modules/data/utils.ts +75 -0
  39. package/src/modules/extensions.ts +23 -0
  40. package/src/modules/plugin-api/HardwareAPI.ts +32 -0
  41. package/src/modules/plugin-api/KeyboardListenerAPI.ts +165 -0
  42. package/src/modules/plugin-api/MediaAPI.ts +337 -0
  43. package/src/modules/plugin-api/SimulationAPI.ts +181 -0
  44. package/src/modules/plugin-api/TimeoutAPI.ts +16 -0
  45. package/src/modules/plugin-api/index.ts +28 -0
  46. package/src/modules/plugins.ts +165 -0
  47. package/src/modules/randomization.ts +327 -0
  48. package/src/modules/turk.ts +99 -0
  49. package/src/modules/utils.ts +30 -0
  50. package/.github/workflows/jest.yml +0 -20
  51. package/code-of-conduct.md +0 -56
  52. package/contributors.md +0 -61
  53. package/docs/CNAME +0 -1
  54. package/docs/about/about.md +0 -18
  55. package/docs/about/contributing.md +0 -43
  56. package/docs/about/license.md +0 -25
  57. package/docs/about/support.md +0 -7
  58. package/docs/core_library/jspsych-core.md +0 -719
  59. package/docs/core_library/jspsych-data.md +0 -587
  60. package/docs/core_library/jspsych-pluginAPI.md +0 -624
  61. package/docs/core_library/jspsych-randomization.md +0 -389
  62. package/docs/core_library/jspsych-turk.md +0 -98
  63. package/docs/extensions/extensions.md +0 -83
  64. package/docs/extensions/jspsych-ext-webgazer.md +0 -137
  65. package/docs/img/blue.png +0 -0
  66. package/docs/img/devtools-change-css.png +0 -0
  67. package/docs/img/devtools-css-errors.png +0 -0
  68. package/docs/img/devtools-inspect-element.png +0 -0
  69. package/docs/img/folder-setup.png +0 -0
  70. package/docs/img/folder-with-html.png +0 -0
  71. package/docs/img/githubreleases.jpg +0 -0
  72. package/docs/img/jspsych-favicon.png +0 -0
  73. package/docs/img/jspsych-logo-no-text-mono.svg +0 -493
  74. package/docs/img/jspsych-logo.jpg +0 -0
  75. package/docs/img/orange.png +0 -0
  76. package/docs/img/palmer_stim.png +0 -0
  77. package/docs/img/progress_bar.png +0 -0
  78. package/docs/img/prolific-study-completion.png +0 -0
  79. package/docs/img/prolific-study-link.png +0 -0
  80. package/docs/img/visual_search_example.jpg +0 -0
  81. package/docs/index.md +0 -9
  82. package/docs/overview/browser-device-support.md +0 -35
  83. package/docs/overview/callbacks.md +0 -180
  84. package/docs/overview/data.md +0 -281
  85. package/docs/overview/dynamic-parameters.md +0 -147
  86. package/docs/overview/exclude-browser.md +0 -32
  87. package/docs/overview/experiment-options.md +0 -149
  88. package/docs/overview/eye-tracking.md +0 -271
  89. package/docs/overview/fullscreen.md +0 -36
  90. package/docs/overview/media-preloading.md +0 -369
  91. package/docs/overview/mturk.md +0 -77
  92. package/docs/overview/plugins.md +0 -320
  93. package/docs/overview/progress-bar.md +0 -110
  94. package/docs/overview/prolific.md +0 -78
  95. package/docs/overview/record-browser-interactions.md +0 -23
  96. package/docs/overview/running-experiments.md +0 -95
  97. package/docs/overview/style.md +0 -293
  98. package/docs/overview/timeline.md +0 -457
  99. package/docs/plugins/jspsych-animation.md +0 -40
  100. package/docs/plugins/jspsych-audio-button-response.md +0 -60
  101. package/docs/plugins/jspsych-audio-keyboard-response.md +0 -58
  102. package/docs/plugins/jspsych-audio-slider-response.md +0 -53
  103. package/docs/plugins/jspsych-call-function.md +0 -81
  104. package/docs/plugins/jspsych-canvas-button-response.md +0 -66
  105. package/docs/plugins/jspsych-canvas-keyboard-response.md +0 -68
  106. package/docs/plugins/jspsych-canvas-slider-response.md +0 -89
  107. package/docs/plugins/jspsych-categorize-animation.md +0 -60
  108. package/docs/plugins/jspsych-categorize-html.md +0 -53
  109. package/docs/plugins/jspsych-categorize-image.md +0 -53
  110. package/docs/plugins/jspsych-cloze.md +0 -45
  111. package/docs/plugins/jspsych-external-html.md +0 -70
  112. package/docs/plugins/jspsych-free-sort.md +0 -56
  113. package/docs/plugins/jspsych-fullscreen.md +0 -57
  114. package/docs/plugins/jspsych-html-button-response.md +0 -42
  115. package/docs/plugins/jspsych-html-keyboard-response.md +0 -51
  116. package/docs/plugins/jspsych-html-slider-response.md +0 -45
  117. package/docs/plugins/jspsych-iat-html.md +0 -64
  118. package/docs/plugins/jspsych-iat-image.md +0 -64
  119. package/docs/plugins/jspsych-image-button-response.md +0 -48
  120. package/docs/plugins/jspsych-image-keyboard-response.md +0 -58
  121. package/docs/plugins/jspsych-image-slider-response.md +0 -54
  122. package/docs/plugins/jspsych-instructions.md +0 -58
  123. package/docs/plugins/jspsych-maxdiff.md +0 -41
  124. package/docs/plugins/jspsych-preload.md +0 -128
  125. package/docs/plugins/jspsych-rdk.md +0 -119
  126. package/docs/plugins/jspsych-reconstruction.md +0 -48
  127. package/docs/plugins/jspsych-resize.md +0 -39
  128. package/docs/plugins/jspsych-same-different-html.md +0 -53
  129. package/docs/plugins/jspsych-same-different-image.md +0 -66
  130. package/docs/plugins/jspsych-serial-reaction-time-mouse.md +0 -52
  131. package/docs/plugins/jspsych-serial-reaction-time.md +0 -57
  132. package/docs/plugins/jspsych-survey-html-form.md +0 -50
  133. package/docs/plugins/jspsych-survey-likert.md +0 -70
  134. package/docs/plugins/jspsych-survey-multi-choice.md +0 -48
  135. package/docs/plugins/jspsych-survey-multi-select.md +0 -53
  136. package/docs/plugins/jspsych-survey-text.md +0 -63
  137. package/docs/plugins/jspsych-video-button-response.md +0 -54
  138. package/docs/plugins/jspsych-video-keyboard-response.md +0 -50
  139. package/docs/plugins/jspsych-video-slider-response.md +0 -60
  140. package/docs/plugins/jspsych-virtual-chinrest.md +0 -105
  141. package/docs/plugins/jspsych-visual-search-circle.md +0 -52
  142. package/docs/plugins/jspsych-vsl-animate-occlusion.md +0 -55
  143. package/docs/plugins/jspsych-vsl-grid-scene.md +0 -62
  144. package/docs/plugins/jspsych-webgazer-calibrate.md +0 -61
  145. package/docs/plugins/jspsych-webgazer-init-camera.md +0 -30
  146. package/docs/plugins/jspsych-webgazer-validate.md +0 -44
  147. package/docs/plugins/list-of-plugins.md +0 -54
  148. package/docs/tutorials/hello-world.md +0 -162
  149. package/docs/tutorials/rt-task.md +0 -1334
  150. package/docs/tutorials/video-tutorials.md +0 -11
  151. package/examples/add-to-end-of-timeline.html +0 -38
  152. package/examples/case-sensitive-responses.html +0 -45
  153. package/examples/conditional-and-loop-functions.html +0 -64
  154. package/examples/css/jquery-ui.css +0 -1225
  155. package/examples/css-classes-parameter.html +0 -145
  156. package/examples/data-add-properties.html +0 -44
  157. package/examples/data-as-function.html +0 -39
  158. package/examples/data-from-timeline.html +0 -52
  159. package/examples/data-from-url.html +0 -21
  160. package/examples/demo-flanker.html +0 -117
  161. package/examples/demo-simple-rt-task.html +0 -120
  162. package/examples/demos/demo_1.html +0 -35
  163. package/examples/demos/demo_2.html +0 -50
  164. package/examples/demos/demo_3.html +0 -63
  165. package/examples/display-element-to-embed-experiment.html +0 -79
  166. package/examples/end-active-node.html +0 -52
  167. package/examples/end-experiment.html +0 -45
  168. package/examples/exclusions.html +0 -32
  169. package/examples/external_html/simple_consent.html +0 -4
  170. package/examples/img/1.gif +0 -0
  171. package/examples/img/10.gif +0 -0
  172. package/examples/img/11.gif +0 -0
  173. package/examples/img/12.gif +0 -0
  174. package/examples/img/2.gif +0 -0
  175. package/examples/img/3.gif +0 -0
  176. package/examples/img/4.gif +0 -0
  177. package/examples/img/5.gif +0 -0
  178. package/examples/img/6.gif +0 -0
  179. package/examples/img/7.gif +0 -0
  180. package/examples/img/8.gif +0 -0
  181. package/examples/img/9.gif +0 -0
  182. package/examples/img/age/of1.jpg +0 -0
  183. package/examples/img/age/of2.jpg +0 -0
  184. package/examples/img/age/of3.jpg +0 -0
  185. package/examples/img/age/om1.jpg +0 -0
  186. package/examples/img/age/om2.jpg +0 -0
  187. package/examples/img/age/om3.jpg +0 -0
  188. package/examples/img/age/yf1.jpg +0 -0
  189. package/examples/img/age/yf4.jpg +0 -0
  190. package/examples/img/age/yf5.jpg +0 -0
  191. package/examples/img/age/ym2.jpg +0 -0
  192. package/examples/img/age/ym3.jpg +0 -0
  193. package/examples/img/age/ym5.jpg +0 -0
  194. package/examples/img/backwardN.gif +0 -0
  195. package/examples/img/blue.png +0 -0
  196. package/examples/img/card.png +0 -0
  197. package/examples/img/con1.png +0 -0
  198. package/examples/img/con2.png +0 -0
  199. package/examples/img/fixation.gif +0 -0
  200. package/examples/img/happy_face_1.jpg +0 -0
  201. package/examples/img/happy_face_2.jpg +0 -0
  202. package/examples/img/happy_face_3.jpg +0 -0
  203. package/examples/img/happy_face_4.jpg +0 -0
  204. package/examples/img/inc1.png +0 -0
  205. package/examples/img/inc2.png +0 -0
  206. package/examples/img/normalN.gif +0 -0
  207. package/examples/img/orange.png +0 -0
  208. package/examples/img/redX.png +0 -0
  209. package/examples/img/ribbon.jpg +0 -0
  210. package/examples/img/sad_face_1.jpg +0 -0
  211. package/examples/img/sad_face_2.jpg +0 -0
  212. package/examples/img/sad_face_3.jpg +0 -0
  213. package/examples/img/sad_face_4.jpg +0 -0
  214. package/examples/js/snap.svg-min.js +0 -21
  215. package/examples/js/webgazer/ridgeWorker.mjs +0 -135
  216. package/examples/js/webgazer/webgazer.js +0 -88909
  217. package/examples/js/webgazer/worker_scripts/mat.js +0 -306
  218. package/examples/js/webgazer/worker_scripts/util.js +0 -398
  219. package/examples/jspsych-RDK.html +0 -58
  220. package/examples/jspsych-animation.html +0 -39
  221. package/examples/jspsych-audio-button-response.html +0 -58
  222. package/examples/jspsych-audio-keyboard-response.html +0 -68
  223. package/examples/jspsych-audio-slider-response.html +0 -61
  224. package/examples/jspsych-call-function.html +0 -32
  225. package/examples/jspsych-canvas-button-response.html +0 -95
  226. package/examples/jspsych-canvas-keyboard-response.html +0 -78
  227. package/examples/jspsych-canvas-slider-response.html +0 -67
  228. package/examples/jspsych-categorize-animation.html +0 -49
  229. package/examples/jspsych-categorize-html.html +0 -33
  230. package/examples/jspsych-categorize-image.html +0 -44
  231. package/examples/jspsych-cloze.html +0 -37
  232. package/examples/jspsych-free-sort.html +0 -109
  233. package/examples/jspsych-fullscreen.html +0 -45
  234. package/examples/jspsych-html-button-response.html +0 -43
  235. package/examples/jspsych-html-keyboard-response.html +0 -42
  236. package/examples/jspsych-html-slider-response.html +0 -53
  237. package/examples/jspsych-iat.html +0 -520
  238. package/examples/jspsych-image-button-response.html +0 -91
  239. package/examples/jspsych-image-keyboard-response.html +0 -85
  240. package/examples/jspsych-image-slider-response.html +0 -85
  241. package/examples/jspsych-instructions.html +0 -37
  242. package/examples/jspsych-maxdiff.html +0 -33
  243. package/examples/jspsych-preload.html +0 -140
  244. package/examples/jspsych-reconstruction.html +0 -43
  245. package/examples/jspsych-resize.html +0 -34
  246. package/examples/jspsych-same-different-html.html +0 -28
  247. package/examples/jspsych-same-different-image.html +0 -39
  248. package/examples/jspsych-serial-reaction-time-mouse.html +0 -98
  249. package/examples/jspsych-serial-reaction-time.html +0 -54
  250. package/examples/jspsych-survey-html-form.html +0 -33
  251. package/examples/jspsych-survey-likert.html +0 -42
  252. package/examples/jspsych-survey-multi-choice.html +0 -40
  253. package/examples/jspsych-survey-multi-select.html +0 -42
  254. package/examples/jspsych-survey-text.html +0 -34
  255. package/examples/jspsych-video-button-response.html +0 -65
  256. package/examples/jspsych-video-keyboard-response.html +0 -61
  257. package/examples/jspsych-video-slider-response.html +0 -63
  258. package/examples/jspsych-virtual-chinrest.html +0 -69
  259. package/examples/jspsych-visual-search-circle.html +0 -64
  260. package/examples/jspsych-vsl-animate-occlusion.html +0 -35
  261. package/examples/jspsych-vsl-grid-scene.html +0 -47
  262. package/examples/lexical-decision.html +0 -134
  263. package/examples/manual-preloading.html +0 -59
  264. package/examples/pause-unpause.html +0 -33
  265. package/examples/progress-bar.html +0 -68
  266. package/examples/save-trial-parameters.html +0 -98
  267. package/examples/sound/hammer.mp3 +0 -0
  268. package/examples/sound/sound.mp3 +0 -0
  269. package/examples/sound/speech_blue.mp3 +0 -0
  270. package/examples/sound/speech_green.mp3 +0 -0
  271. package/examples/sound/speech_joke.mp3 +0 -0
  272. package/examples/sound/speech_red.mp3 +0 -0
  273. package/examples/sound/tone.mp3 +0 -0
  274. package/examples/timeline-variables-sampling.html +0 -50
  275. package/examples/timeline-variables.html +0 -64
  276. package/examples/video/sample_video.mp4 +0 -0
  277. package/examples/webgazer.html +0 -174
  278. package/examples/webgazer_audio.html +0 -90
  279. package/examples/webgazer_image.html +0 -60
  280. package/extensions/jspsych-ext-webgazer.js +0 -265
  281. package/jspsych.js +0 -3023
  282. package/license.txt +0 -21
  283. package/mkdocs.yml +0 -118
  284. package/plugins/jspsych-animation.js +0 -189
  285. package/plugins/jspsych-audio-button-response.js +0 -269
  286. package/plugins/jspsych-audio-keyboard-response.js +0 -209
  287. package/plugins/jspsych-audio-slider-response.js +0 -278
  288. package/plugins/jspsych-call-function.js +0 -58
  289. package/plugins/jspsych-canvas-button-response.js +0 -199
  290. package/plugins/jspsych-canvas-keyboard-response.js +0 -155
  291. package/plugins/jspsych-canvas-slider-response.js +0 -207
  292. package/plugins/jspsych-categorize-animation.js +0 -266
  293. package/plugins/jspsych-categorize-html.js +0 -220
  294. package/plugins/jspsych-categorize-image.js +0 -222
  295. package/plugins/jspsych-cloze.js +0 -112
  296. package/plugins/jspsych-external-html.js +0 -112
  297. package/plugins/jspsych-free-sort.js +0 -478
  298. package/plugins/jspsych-fullscreen.js +0 -106
  299. package/plugins/jspsych-html-button-response.js +0 -188
  300. package/plugins/jspsych-html-keyboard-response.js +0 -149
  301. package/plugins/jspsych-html-slider-response.js +0 -202
  302. package/plugins/jspsych-iat-html.js +0 -284
  303. package/plugins/jspsych-iat-image.js +0 -286
  304. package/plugins/jspsych-image-button-response.js +0 -327
  305. package/plugins/jspsych-image-keyboard-response.js +0 -263
  306. package/plugins/jspsych-image-slider-response.js +0 -369
  307. package/plugins/jspsych-instructions.js +0 -237
  308. package/plugins/jspsych-maxdiff.js +0 -173
  309. package/plugins/jspsych-preload.js +0 -345
  310. package/plugins/jspsych-rdk.js +0 -1373
  311. package/plugins/jspsych-reconstruction.js +0 -134
  312. package/plugins/jspsych-resize.js +0 -166
  313. package/plugins/jspsych-same-different-html.js +0 -168
  314. package/plugins/jspsych-same-different-image.js +0 -169
  315. package/plugins/jspsych-serial-reaction-time-mouse.js +0 -212
  316. package/plugins/jspsych-serial-reaction-time.js +0 -247
  317. package/plugins/jspsych-survey-html-form.js +0 -171
  318. package/plugins/jspsych-survey-likert.js +0 -195
  319. package/plugins/jspsych-survey-multi-choice.js +0 -208
  320. package/plugins/jspsych-survey-multi-select.js +0 -232
  321. package/plugins/jspsych-survey-text.js +0 -185
  322. package/plugins/jspsych-video-button-response.js +0 -335
  323. package/plugins/jspsych-video-keyboard-response.js +0 -279
  324. package/plugins/jspsych-video-slider-response.js +0 -351
  325. package/plugins/jspsych-virtual-chinrest.js +0 -471
  326. package/plugins/jspsych-visual-search-circle.js +0 -259
  327. package/plugins/jspsych-vsl-animate-occlusion.js +0 -196
  328. package/plugins/jspsych-vsl-grid-scene.js +0 -103
  329. package/plugins/jspsych-webgazer-calibrate.js +0 -161
  330. package/plugins/jspsych-webgazer-init-camera.js +0 -139
  331. package/plugins/jspsych-webgazer-validate.js +0 -314
  332. package/plugins/template/jspsych-plugin-template.js +0 -35
  333. package/tests/README.md +0 -7
  334. package/tests/jsPsych/case-sensitive-responses.test.js +0 -53
  335. package/tests/jsPsych/css-classes-parameter.test.js +0 -107
  336. package/tests/jsPsych/default-iti.test.js +0 -51
  337. package/tests/jsPsych/default-parameters.test.js +0 -58
  338. package/tests/jsPsych/endexperiment.test.js +0 -49
  339. package/tests/jsPsych/events.test.js +0 -606
  340. package/tests/jsPsych/functions-as-parameters.test.js +0 -210
  341. package/tests/jsPsych/init.test.js +0 -48
  342. package/tests/jsPsych/loads.test.js +0 -7
  343. package/tests/jsPsych/min-rt.test.js +0 -58
  344. package/tests/jsPsych/progressbar.test.js +0 -202
  345. package/tests/jsPsych/timeline-variables.test.js +0 -531
  346. package/tests/jsPsych/timelines.test.js +0 -569
  347. package/tests/jsPsych.data/data-csv-conversion.test.js +0 -85
  348. package/tests/jsPsych.data/data-json-conversion.test.js +0 -120
  349. package/tests/jsPsych.data/datacollection.test.js +0 -117
  350. package/tests/jsPsych.data/datacolumn.test.js +0 -50
  351. package/tests/jsPsych.data/datamodule.test.js +0 -152
  352. package/tests/jsPsych.data/dataparameter.test.js +0 -251
  353. package/tests/jsPsych.data/interactions.test.js +0 -109
  354. package/tests/jsPsych.data/trialparameters.test.js +0 -175
  355. package/tests/jsPsych.extensions/extensions.test.js +0 -207
  356. package/tests/jsPsych.extensions/test-extension.js +0 -42
  357. package/tests/jsPsych.pluginAPI/pluginapi.test.js +0 -365
  358. package/tests/jsPsych.pluginAPI/preloads.test.js +0 -43
  359. package/tests/jsPsych.randomization/randomziation.test.js +0 -27
  360. package/tests/jsPsych.utils/utils.test.js +0 -58
  361. package/tests/plugins/plugin-animation.test.js +0 -34
  362. package/tests/plugins/plugin-audio-button-response.test.js +0 -15
  363. package/tests/plugins/plugin-audio-keyboard-response.test.js +0 -15
  364. package/tests/plugins/plugin-audio-slider-response.test.js +0 -15
  365. package/tests/plugins/plugin-call-function.test.js +0 -49
  366. package/tests/plugins/plugin-categorize-animation.test.js +0 -263
  367. package/tests/plugins/plugin-categorize-html.test.js +0 -17
  368. package/tests/plugins/plugin-categorize-image.test.js +0 -17
  369. package/tests/plugins/plugin-cloze.test.js +0 -157
  370. package/tests/plugins/plugin-free-sort.test.js +0 -106
  371. package/tests/plugins/plugin-fullscreen.test.js +0 -41
  372. package/tests/plugins/plugin-html-button-response.test.js +0 -161
  373. package/tests/plugins/plugin-html-keyboard-response.test.js +0 -139
  374. package/tests/plugins/plugin-html-slider-response.test.js +0 -155
  375. package/tests/plugins/plugin-iat-html.test.js +0 -299
  376. package/tests/plugins/plugin-iat-image.test.js +0 -298
  377. package/tests/plugins/plugin-image-button-response.test.js +0 -174
  378. package/tests/plugins/plugin-image-keyboard-response.test.js +0 -147
  379. package/tests/plugins/plugin-image-slider-response.test.js +0 -174
  380. package/tests/plugins/plugin-instructions.test.js +0 -85
  381. package/tests/plugins/plugin-maxdiff.test.js +0 -39
  382. package/tests/plugins/plugin-preload.test.js +0 -916
  383. package/tests/plugins/plugin-rdk.test.js +0 -61
  384. package/tests/plugins/plugin-reconstruction.test.js +0 -16
  385. package/tests/plugins/plugin-resize.test.js +0 -16
  386. package/tests/plugins/plugin-same-different-html.test.js +0 -17
  387. package/tests/plugins/plugin-same-different-image.test.js +0 -17
  388. package/tests/plugins/plugin-serial-reaction-time-mouse.test.js +0 -42
  389. package/tests/plugins/plugin-serial-reaction-time.test.js +0 -109
  390. package/tests/plugins/plugin-survey-html-form.test.js +0 -44
  391. package/tests/plugins/plugin-survey-likert.test.js +0 -48
  392. package/tests/plugins/plugin-survey-multi-choice.test.js +0 -47
  393. package/tests/plugins/plugin-survey-multi-select.test.js +0 -71
  394. package/tests/plugins/plugin-survey-text.test.js +0 -115
  395. package/tests/plugins/plugin-video-button-response.test.js +0 -32
  396. package/tests/plugins/plugin-video-keyboard-response.test.js +0 -32
  397. package/tests/plugins/plugin-video-slider-response.test.js +0 -31
  398. package/tests/plugins/plugin-visual-search-circle.test.js +0 -16
  399. package/tests/plugins/plugin-vsl-animate-occlusion.test.js +0 -16
  400. package/tests/plugins/plugin-vsl-grid-scene.test.js +0 -16
  401. package/tests/testing-utils.js +0 -13
@@ -1,587 +0,0 @@
1
- # jsPsych.data
2
-
3
- The jsPsych.data module contains functions for interacting with the data generated by jsPsych plugins.
4
-
5
- ---
6
-
7
- ## jsPsych.data.addProperties
8
-
9
- ```javascript
10
- jsPsych.data.addProperties(properties)
11
- ```
12
-
13
- ### Parameters
14
-
15
- Parameter | Type | Description
16
- ----------|------|------------
17
- properties | object | Object of key: value pairs to add to the data.
18
-
19
- ### Return value
20
-
21
- Returns nothing.
22
-
23
- ### Description
24
-
25
- This method appends a set of properties to every trial in the data object, including trials that have already occurred and trials that have yet to occur. You can use this to record things like the subject ID or condition assignment.
26
-
27
- ### Examples
28
-
29
- #### Assigning a subject ID and condition code
30
-
31
- ```javascript
32
- jsPsych.data.addProperties({subject: 1, condition: 'control'});
33
- ```
34
-
35
- ---
36
-
37
- ## jsPsych.data.displayData
38
-
39
- ```javascript
40
- jsPsych.data.displayData(format)
41
- ```
42
-
43
- ### Parameters
44
-
45
- Parameter | Type | Description
46
- ----------|------|------------
47
- format | string | Specifies whether to display the data in `'csv'` or `'json'` format.
48
-
49
- ### Return value
50
-
51
- Returns nothing.
52
-
53
- ### Description
54
-
55
- Outputs all of the data collected in the experiment to the screen in either JSON or CSV format. This is a useful method for quick debugging when developing an experiment.
56
-
57
- ### Examples
58
-
59
- #### Using the on_finish callback function to show data at the end of the experiment
60
-
61
- ```javascript
62
- jsPsych.init({
63
- experiment_structure: exp,
64
- on_finish: function() {
65
- jsPsych.data.displayData('csv');
66
- }
67
- })
68
- ```
69
-
70
- ---
71
-
72
- ## jsPsych.data.get
73
-
74
- ```
75
- jsPsych.data.get()
76
- ```
77
-
78
- ### Parameters
79
-
80
- None.
81
-
82
- ### Return value
83
-
84
- Returns the data collection of all data generated by the experiment.
85
-
86
- ### Description
87
-
88
- This function is the standard starting point for accessing the data generated by the experiment. It returns a DataCollection object, which has
89
- several methods that can be used to further filter, aggregate, and view the data. These methods are described under the DataCollection section
90
- on this page.
91
-
92
- ### Example
93
-
94
- ```javascript
95
- // select all trials
96
- var all_data = jsPsych.data.get();
97
-
98
- // get csv representation of data and log to console
99
- console.log(all_data.csv());
100
- ```
101
-
102
- ---
103
-
104
- ## jsPsych.data.getDataByTimelineNode
105
-
106
- ```javascript
107
- jsPsych.data.getDataByTimelineNode(node_id)
108
- ```
109
-
110
- ### Parameters
111
-
112
- Parameter | Type | Description
113
- ----------|------|------------
114
- node_id | string | The id of the TimelineNodes to get data from.
115
-
116
- ### Return value
117
-
118
- Returns a DataCollection of all of the data generated in a specified TimelineNode.
119
-
120
- ### Description
121
-
122
- Get all the data generated by a specified Timeline.
123
-
124
- ### Example
125
-
126
- ```javascript
127
- var current_node_id = jsPsych.currentTimelineNodeID();
128
- var data_from_current_node = jsPsych.data.getDataByTimelineNode(current_node_id);
129
- ```
130
-
131
- ---
132
-
133
- ## jsPsych.data.getInteractionData
134
-
135
- ```javascript
136
- jsPsych.data.getInteractionData()
137
- ```
138
-
139
- ### Parameters
140
-
141
- None.
142
-
143
- ### Return value
144
-
145
- Returns a DataCollection object with all of the interaction events.
146
-
147
- ### Description
148
-
149
- jsPsych automatically records a few different kinds of user interaction events. `blur` events occur when the user clicks on another window or tab during the experiment, indicating that they are no longer interacting with the experiment. `focus` events occur when the user clicks on the experiment window after having clicked somewhere else first (i.e., generated a `blur` event). `fullscreenenter` and `fullscreenexit` events are triggered by the browser entering and exiting fullscreen mode. However, `fullscreenenter` events only occur when the script switches the browser to fullscreen mode, e.g., with the jspsych-fullscreen plugin. Manually entering fullscreen mode does not trigger this event. `fullscreenexit` events occur whether the user manually exits fullscreen mode or the script exits fullscreen mode. This method returns the DataCollection containing all interaction events. This is useful for tracking whether the participant completed the task without diverting attention to other windows. Events are in the form:
150
-
151
- ```javascript
152
- {
153
- type: 'focus' or 'blur' or 'fullscreenenter' or 'fullscreenexit',
154
- trial: 10, // the trial number when the event happened
155
- time: 13042 // total time elapsed since the start of the experiment
156
- }
157
- ```
158
-
159
- ### Example
160
-
161
- ```javascript
162
- var interaction_data = jsPsych.data.getInteractionData();
163
- // log data to console in json format
164
- console.log(interaction_data.json());
165
- ```
166
-
167
- ---
168
-
169
- ## jsPsych.data.getLastTimelineData
170
-
171
- ```javascript
172
- jsPsych.data.getLastTimelineData()
173
- ```
174
-
175
- ### Return value
176
-
177
- Returns a DataCollection.
178
-
179
- ### Description
180
-
181
- Gets all of the data generated in the same timeline as the last trial.
182
-
183
- ### Example
184
-
185
- ```javascript
186
- var lasttimelinedata = jsPsych.data.getLastTimelineData();
187
- ```
188
-
189
- ---
190
-
191
- ## jsPsych.data.getLastTrialData
192
-
193
- ```javascript
194
- jsPsych.data.getLastTrialData()
195
- ```
196
-
197
- ### Return value
198
-
199
- Returns a DataCollection.
200
-
201
- ### Description
202
-
203
- Gets the data collection containing all data generated by the last trial.
204
-
205
- ### Example
206
-
207
- ```javascript
208
- var lasttrialdata = jsPsych.data.getLastTrialData();
209
- ```
210
-
211
- ---
212
-
213
- ## jsPsych.data.getURLVariable
214
-
215
- ```javascript
216
- jsPsych.data.getURLVariable(var_name)
217
- ```
218
-
219
- ### Parameters
220
-
221
- Parameter | Type | Description
222
- ----------|------|------------
223
- var_name | string | Which variable to get the value of.
224
-
225
- ### Return value
226
-
227
- Returns the value of a variable passed in through the query string.
228
-
229
- ### Description
230
-
231
- For extracting a particular variable passed in through a URL query string.
232
-
233
- ### Example
234
-
235
- ```javascript
236
- // if the URL of the page is: experiment.html?subject=1234&condition=test
237
- console.log(jsPsych.data.getURLVariable('subject')) // logs "1234"
238
- console.log(jsPsych.data.getURLVariable('condition')) // logs "test"
239
- ```
240
-
241
- ---
242
-
243
- ## jsPsych.data.urlVariables
244
-
245
- ```javascript
246
- jsPsych.data.urlVariables()
247
- ```
248
-
249
- ### Return value
250
-
251
- Returns an object (associative array) of the variables in the URL query string.
252
-
253
- ### Description
254
-
255
- For extracting variables passed in through a URL query string.
256
-
257
- ### Example
258
-
259
- ```javascript
260
- // if the URL of the page is: experiment.html?subject=1234&condition=test
261
- var urlvar = jsPsych.data.urlVariables();
262
- console.log(urlvar.subject) // logs "1234"
263
- console.log(urlvar.condition) // logs "test"
264
- ```
265
-
266
- ---
267
-
268
- ## jsPsych.data.write
269
-
270
- ```javascript
271
- jsPsych.data.write(data_object)
272
- ```
273
-
274
- ### Parameters
275
-
276
- Parameter | Type | Description
277
- ----------|------|------------
278
- data_object | object | Object of `key: value` pairs to store in jsPsych's data storage as a trial.
279
-
280
- ### Return value
281
-
282
- Returns nothing.
283
-
284
- ### Description
285
-
286
- This method is used by `jsPsych.finishTrial` for writing data. You should probably not use it to add data. Instead use [jsPsych.data.addProperties](#addProperties).
287
-
288
- ### Example
289
-
290
- ```javascript
291
- // don't use this! data should only be written once per trial. use jsPsych.finishTrial to save data.
292
-
293
- var trial_data = {
294
- correct: true,
295
- rt: 487
296
- }
297
-
298
- jsPsych.data.write(trial_data);
299
- ```
300
-
301
- ---
302
-
303
- ## DataCollection
304
-
305
- All data is stored in the DataCollection object. Using methods like `jsPsych.data.get()` and `jsPsych.data.getLastTrialData()` return DataCollections containing the experiment data. This is a list of all of the methods that are available to call on a DataCollection object.
306
-
307
- #### .addToAll()
308
-
309
- Adds a set of properties to all items in the DataCollection. Similar to `jsPsych.data.addProperties()`, except that it can be applied to a subset of the whole DataCollection by filtering down to a smaller DataCollection first.
310
-
311
- ```javascript
312
- jsPsych.data.get().addToAll({subject_id: 123, condition: 'control'});
313
- ```
314
-
315
- #### .addToLast()
316
-
317
- Adds a set of properties to the last trial in the DataCollection.
318
-
319
- ```javascript
320
- jsPsych.data.get().addToLast({success: true});
321
- ```
322
-
323
- #### .count()
324
-
325
- Counts the number of trials in the DataCollection.
326
-
327
- ```javascript
328
- jsPsych.data.get().count()
329
- ```
330
-
331
- #### .csv()
332
-
333
- Generates a CSV string representing all of the data in the DataCollection.
334
-
335
- ```javascript
336
- console.log(jsPsych.data.get().csv());
337
- ```
338
-
339
- #### .filter()
340
-
341
- Returns a subset of the DataCollection based on the filter. The filter is an object, and trials are only kept in the returned DataCollection if they contain the key: value pair(s) in the filter object. For example, the code below selects all of the trials with a correct response.
342
-
343
- ```javascript
344
- var correct_trials = jsPsych.data.get().filter({correct: true});
345
- ```
346
-
347
- The object can have multiple key: value pairs, and the trials must match all of them in order to be included in the returned collection.
348
-
349
- ```javascript
350
- // keep only correct trials from the practice phase
351
- var correct_practice_trials = jsPsych.data.get().filter({correct:true, phase: 'practice'});
352
- ```
353
-
354
- The filter can also be an array of objects. In this case each object in the array acts as an OR filter. As long as the trial has all the key: value pairs of one of the objects in the array, it will appear in the returned collection.
355
-
356
- ```javascript
357
- // select trials from block 1 and block 5.
358
- var trials = jsPsych.data.get().filter([{block: 1}, {block:5}]);
359
- ```
360
-
361
- The filter method returns a DataCollection object, so methods can be chained onto a single statement.
362
-
363
- ```javascript
364
- // count the number of correct trials in block 1
365
- var block_1_correct = jsPsych.data.get().filter({block:1, correct:true}).count();
366
- ```
367
-
368
- #### .filterCustom()
369
-
370
- This method is similar to the `.filter()` method, except that it accepts a function as the filter. The function is passed a single argument, containing the data for a trial. If the function returns `true` the trial is included in the returned DataCollection.
371
-
372
- ```javascript
373
- // count the number of trials with a response time greater than 2000ms.
374
- var too_long = jsPsych.data.get().filterCustom(function(trial){
375
- return trial.rt > 2000;
376
- }).count()
377
- ```
378
-
379
- #### .first() / .last()
380
-
381
- Returns a DataCollection containing the first/last *n* trials. If *n* is greater than the number of trials in the DataCollection, then these functions will return an array of length equal to the number of trials. If there are no trials in the DataCollection, then these functions will return an empty array. If the *n* argument is omitted, then the functions will use the default value of 1. If *n* is zero or a negative number, then these functions will throw an error.
382
-
383
- ```javascript
384
- var first_trial = jsPsych.data.get().first(1);
385
- var last_trial_with_correct_response = jsPsych.data.get().filter({correct: true}).last(1);
386
- var last_10_trials = jsPsych.data.get().last(10);
387
- ```
388
-
389
- #### .ignore()
390
-
391
- Returns a DataCollection with all instances of a particular key removed from the dataset.
392
-
393
- ```javascript
394
- // log a csv file that does not contain the internal_node_id values for each trial
395
- console.log(jsPsych.data.get().ignore('internal_node_id').csv());
396
- ```
397
-
398
- #### .join()
399
-
400
- Appends one DataCollection onto another and returns the combined collection.
401
-
402
- ```javascript
403
- // get a DataCollection with all trials that are either correct or
404
- // have a response time greater than 200ms.
405
- var dc1 = jsPsych.data.get().filter({correct: true});
406
- var dc2 = jsPsych.data.get().filterCustom(function(trial){ return trial.rt > 200});
407
- var data = dc1.join(dc2);
408
- ```
409
-
410
- #### .json()
411
-
412
- Generates a JSON string representing all of the data in the DataCollection.
413
-
414
- ```javascript
415
- console.log(jsPsych.data.get().json());
416
- ```
417
-
418
- #### .localSave()
419
-
420
- Saves a CSV or JSON file on the computer running the experiment. If conducting an online experiment, this will download the file onto the subject's computer, and is therefore not a recommended data storage solution for online data collection.
421
-
422
- **Warning:** This function may not behave correctly in older browsers. Upgrading to the latest version of any major web browser should solve the problem.
423
-
424
- ```javascript
425
- // first argument is the format, second is the filename.
426
- // the format can be either 'csv' or 'json'.
427
- jsPsych.data.get().localSave('csv','mydata.csv');
428
- ```
429
-
430
- #### .push()
431
-
432
- Add a new entry to the DataCollection. This method is mostly used internally, and you shouldn't need to call it under normal circumstances.
433
-
434
- ```javascript
435
- var data = {correct: true, rt: 500}
436
- jsPsych.data.get().push(data);
437
- ```
438
-
439
- #### .readOnly()
440
-
441
- Creates a copy of the DataCollection so that any modification of the values in the DataCollection will not affect the original.
442
-
443
- ```javascript
444
- // this line edits the rt property of the first trial
445
- jsPsych.data.get().first(1).values()[0].rt = 100;
446
-
447
- // readOnly creates a copy that can be modified without affecting the original
448
-
449
- jsPsych.data.get().first(1).values()[0].rt
450
- // outputs 100
451
-
452
- jsPsych.data.get().readOnly().first(1).values()[0].rt = 200
453
- jsPsych.data.get().first(1).values()[0].rt
454
- // still outputs 100
455
- ```
456
-
457
- #### .select()
458
-
459
- Returns a DataColumn object (see documentation below) of a single property from a DataCollection object.
460
-
461
- ```javascript
462
- var rt_data = jsPsych.data.get().select('rt');
463
- rt_data.mean()
464
- ```
465
-
466
- #### .uniqueNames()
467
-
468
- Generates an array of all the unique key names in the set of trials contained in the DataCollection. This is especially useful when setting up a relational database (e.g., MySQL) where the column names need to be specified in advance.
469
-
470
- ```javascript
471
- console.log(jsPsych.data.get().uniqueNames());
472
- ```
473
-
474
- #### .values()
475
-
476
- Returns the raw data array associated with the DataCollection. This array is modifiable, so changes to the array and values of objects in the array will change the DataCollection.
477
-
478
- ```javascript
479
- var raw_data = jsPsych.data.get().values();
480
-
481
- // was response in first trial correct?
482
- if(raw_data[0].correct){
483
- console.log('correct!');
484
- } else {
485
- console.log('incorrect.');
486
- }
487
- ```
488
-
489
- ---
490
-
491
- ## DataColumn
492
-
493
- DataColumn objects represent all the values of a single property in a DataCollection. They are generated by using the `.select()` method on a DataCollection. Once a DataColumn is generated, the following methods can be used.
494
-
495
- #### .all()
496
-
497
- Checks if all values in the DataColumn return `true` when passed to a function. The function takes a single argument, which represents one value from the DataColumn.
498
-
499
- ```javascript
500
- // check if all the response times in the practice phase were under 1000ms
501
- jsPsych.data.get().filter({phase: 'practice'}).select('correct').all(function(x) { return x < 1000; });
502
- ```
503
-
504
- #### .count()
505
-
506
- Counts the number of values in the DataColumn.
507
-
508
- ```javascript
509
- // count how many response times there are
510
- jsPsych.data.get().select('rt').count();
511
- ```
512
-
513
- #### .frequencies()
514
-
515
- Counts the number of occurrences of each unique value in the DataColumn. Returns this value as an object, where each key is a unique value and the value of each key is the number of occurrences of that key.
516
-
517
- ```javascript
518
- // get frequencies of correct and incorrect responses
519
- jsPsych.data.get().select('correct').frequencies();
520
- ```
521
-
522
- #### .max() / .min()
523
-
524
- Returns the maximum or minimum value in a DataColumn.
525
-
526
- ```javascript
527
- jsPsych.data.get().select('rt').max();
528
- jsPsych.data.get().select('rt').min();
529
- ```
530
-
531
- #### .mean()
532
-
533
- Returns the average of all the values in a DataColumn.
534
-
535
- ```javascript
536
- jsPsych.data.get().select('rt').mean();
537
- ```
538
-
539
- #### .median()
540
-
541
- Returns the median of all the values in a DataColumn.
542
-
543
- ```javascript
544
- jsPsych.data.get().select('rt').median();
545
- ```
546
-
547
- #### .sd()
548
-
549
- Returns the standard deviation of the values in a DataColumn.
550
-
551
- ```javascript
552
- jsPsych.data.get().select('rt').sd();
553
- ```
554
-
555
- #### .subset()
556
-
557
- Filters the DataColumn to include only values that return `true` when passed through the specified function.
558
-
559
- ```javascript
560
- // below results will be less than 200.
561
- jsPsych.data.get().select('rt').subset(function(x){ return x < 200; }).max();
562
- ```
563
-
564
- #### .sum()
565
-
566
- Returns the sum of the values in a DataColumn.
567
-
568
- ```javascript
569
- jsPsych.data.get().select('rt').sum();
570
- ```
571
-
572
- #### .values
573
-
574
- The raw array of values in the DataColumn.
575
-
576
- ```javascript
577
- // note that this is not a function call.
578
- jsPsych.data.get().select('rt').values;
579
- ```
580
-
581
- #### .variance()
582
-
583
- Returns the variance of the values in a DataColumn.
584
-
585
- ```javascript
586
- jsPsych.data.get().select('rt').variance();
587
- ```