jspsych 6.3.0 → 7.1.1

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 (397) 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 +3164 -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 +3158 -0
  10. package/dist/index.cjs.map +1 -0
  11. package/dist/index.d.ts +11 -0
  12. package/dist/index.js +3152 -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 +129 -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 +158 -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 -734
  59. package/docs/core_library/jspsych-data.md +0 -589
  60. package/docs/core_library/jspsych-pluginAPI.md +0 -610
  61. package/docs/core_library/jspsych-randomization.md +0 -397
  62. package/docs/core_library/jspsych-turk.md +0 -102
  63. package/docs/extensions/extensions.md +0 -83
  64. package/docs/extensions/jspsych-ext-webgazer.md +0 -106
  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 -184
  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 -237
  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 -60
  145. package/docs/plugins/jspsych-webgazer-init-camera.md +0 -31
  146. package/docs/plugins/jspsych-webgazer-validate.md +0 -43
  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.js +0 -88886
  216. package/examples/jspsych-RDK.html +0 -58
  217. package/examples/jspsych-animation.html +0 -39
  218. package/examples/jspsych-audio-button-response.html +0 -58
  219. package/examples/jspsych-audio-keyboard-response.html +0 -68
  220. package/examples/jspsych-audio-slider-response.html +0 -61
  221. package/examples/jspsych-call-function.html +0 -32
  222. package/examples/jspsych-canvas-button-response.html +0 -95
  223. package/examples/jspsych-canvas-keyboard-response.html +0 -78
  224. package/examples/jspsych-canvas-slider-response.html +0 -67
  225. package/examples/jspsych-categorize-animation.html +0 -49
  226. package/examples/jspsych-categorize-html.html +0 -33
  227. package/examples/jspsych-categorize-image.html +0 -44
  228. package/examples/jspsych-cloze.html +0 -37
  229. package/examples/jspsych-free-sort.html +0 -109
  230. package/examples/jspsych-fullscreen.html +0 -45
  231. package/examples/jspsych-html-button-response.html +0 -43
  232. package/examples/jspsych-html-keyboard-response.html +0 -42
  233. package/examples/jspsych-html-slider-response.html +0 -53
  234. package/examples/jspsych-iat.html +0 -520
  235. package/examples/jspsych-image-button-response.html +0 -91
  236. package/examples/jspsych-image-keyboard-response.html +0 -85
  237. package/examples/jspsych-image-slider-response.html +0 -85
  238. package/examples/jspsych-instructions.html +0 -37
  239. package/examples/jspsych-maxdiff.html +0 -33
  240. package/examples/jspsych-preload.html +0 -140
  241. package/examples/jspsych-reconstruction.html +0 -43
  242. package/examples/jspsych-resize.html +0 -34
  243. package/examples/jspsych-same-different-html.html +0 -28
  244. package/examples/jspsych-same-different-image.html +0 -39
  245. package/examples/jspsych-serial-reaction-time-mouse.html +0 -98
  246. package/examples/jspsych-serial-reaction-time.html +0 -54
  247. package/examples/jspsych-survey-html-form.html +0 -33
  248. package/examples/jspsych-survey-likert.html +0 -42
  249. package/examples/jspsych-survey-multi-choice.html +0 -40
  250. package/examples/jspsych-survey-multi-select.html +0 -42
  251. package/examples/jspsych-survey-text.html +0 -34
  252. package/examples/jspsych-video-button-response.html +0 -65
  253. package/examples/jspsych-video-keyboard-response.html +0 -61
  254. package/examples/jspsych-video-slider-response.html +0 -63
  255. package/examples/jspsych-virtual-chinrest.html +0 -69
  256. package/examples/jspsych-visual-search-circle.html +0 -64
  257. package/examples/jspsych-vsl-animate-occlusion.html +0 -35
  258. package/examples/jspsych-vsl-grid-scene.html +0 -47
  259. package/examples/lexical-decision.html +0 -134
  260. package/examples/manual-preloading.html +0 -59
  261. package/examples/pause-unpause.html +0 -33
  262. package/examples/progress-bar.html +0 -68
  263. package/examples/save-trial-parameters.html +0 -98
  264. package/examples/sound/hammer.mp3 +0 -0
  265. package/examples/sound/sound.mp3 +0 -0
  266. package/examples/sound/speech_blue.mp3 +0 -0
  267. package/examples/sound/speech_green.mp3 +0 -0
  268. package/examples/sound/speech_joke.mp3 +0 -0
  269. package/examples/sound/speech_red.mp3 +0 -0
  270. package/examples/sound/tone.mp3 +0 -0
  271. package/examples/timeline-variables-sampling.html +0 -50
  272. package/examples/timeline-variables.html +0 -64
  273. package/examples/video/sample_video.mp4 +0 -0
  274. package/examples/webgazer.html +0 -162
  275. package/examples/webgazer_image.html +0 -60
  276. package/extensions/jspsych-ext-webgazer.js +0 -185
  277. package/jspsych.js +0 -3015
  278. package/license.txt +0 -21
  279. package/mkdocs.yml +0 -118
  280. package/plugins/jspsych-animation.js +0 -189
  281. package/plugins/jspsych-audio-button-response.js +0 -269
  282. package/plugins/jspsych-audio-keyboard-response.js +0 -212
  283. package/plugins/jspsych-audio-slider-response.js +0 -278
  284. package/plugins/jspsych-call-function.js +0 -58
  285. package/plugins/jspsych-canvas-button-response.js +0 -199
  286. package/plugins/jspsych-canvas-keyboard-response.js +0 -155
  287. package/plugins/jspsych-canvas-slider-response.js +0 -207
  288. package/plugins/jspsych-categorize-animation.js +0 -266
  289. package/plugins/jspsych-categorize-html.js +0 -220
  290. package/plugins/jspsych-categorize-image.js +0 -222
  291. package/plugins/jspsych-cloze.js +0 -112
  292. package/plugins/jspsych-external-html.js +0 -112
  293. package/plugins/jspsych-free-sort.js +0 -478
  294. package/plugins/jspsych-fullscreen.js +0 -106
  295. package/plugins/jspsych-html-button-response.js +0 -188
  296. package/plugins/jspsych-html-keyboard-response.js +0 -149
  297. package/plugins/jspsych-html-slider-response.js +0 -202
  298. package/plugins/jspsych-iat-html.js +0 -284
  299. package/plugins/jspsych-iat-image.js +0 -286
  300. package/plugins/jspsych-image-button-response.js +0 -327
  301. package/plugins/jspsych-image-keyboard-response.js +0 -263
  302. package/plugins/jspsych-image-slider-response.js +0 -369
  303. package/plugins/jspsych-instructions.js +0 -237
  304. package/plugins/jspsych-maxdiff.js +0 -173
  305. package/plugins/jspsych-preload.js +0 -345
  306. package/plugins/jspsych-rdk.js +0 -1373
  307. package/plugins/jspsych-reconstruction.js +0 -134
  308. package/plugins/jspsych-resize.js +0 -166
  309. package/plugins/jspsych-same-different-html.js +0 -168
  310. package/plugins/jspsych-same-different-image.js +0 -169
  311. package/plugins/jspsych-serial-reaction-time-mouse.js +0 -212
  312. package/plugins/jspsych-serial-reaction-time.js +0 -247
  313. package/plugins/jspsych-survey-html-form.js +0 -171
  314. package/plugins/jspsych-survey-likert.js +0 -195
  315. package/plugins/jspsych-survey-multi-choice.js +0 -208
  316. package/plugins/jspsych-survey-multi-select.js +0 -232
  317. package/plugins/jspsych-survey-text.js +0 -185
  318. package/plugins/jspsych-video-button-response.js +0 -335
  319. package/plugins/jspsych-video-keyboard-response.js +0 -279
  320. package/plugins/jspsych-video-slider-response.js +0 -351
  321. package/plugins/jspsych-virtual-chinrest.js +0 -471
  322. package/plugins/jspsych-visual-search-circle.js +0 -259
  323. package/plugins/jspsych-vsl-animate-occlusion.js +0 -196
  324. package/plugins/jspsych-vsl-grid-scene.js +0 -103
  325. package/plugins/jspsych-webgazer-calibrate.js +0 -166
  326. package/plugins/jspsych-webgazer-init-camera.js +0 -95
  327. package/plugins/jspsych-webgazer-validate.js +0 -304
  328. package/plugins/template/jspsych-plugin-template.js +0 -35
  329. package/tests/README.md +0 -7
  330. package/tests/jsPsych/case-sensitive-responses.test.js +0 -53
  331. package/tests/jsPsych/css-classes-parameter.test.js +0 -107
  332. package/tests/jsPsych/default-iti.test.js +0 -51
  333. package/tests/jsPsych/default-parameters.test.js +0 -58
  334. package/tests/jsPsych/endexperiment.test.js +0 -49
  335. package/tests/jsPsych/events.test.js +0 -606
  336. package/tests/jsPsych/functions-as-parameters.test.js +0 -210
  337. package/tests/jsPsych/init.test.js +0 -48
  338. package/tests/jsPsych/loads.test.js +0 -7
  339. package/tests/jsPsych/min-rt.test.js +0 -58
  340. package/tests/jsPsych/progressbar.test.js +0 -202
  341. package/tests/jsPsych/timeline-variables.test.js +0 -531
  342. package/tests/jsPsych/timelines.test.js +0 -569
  343. package/tests/jsPsych.data/data-csv-conversion.test.js +0 -85
  344. package/tests/jsPsych.data/data-json-conversion.test.js +0 -120
  345. package/tests/jsPsych.data/datacollection.test.js +0 -117
  346. package/tests/jsPsych.data/datacolumn.test.js +0 -50
  347. package/tests/jsPsych.data/datamodule.test.js +0 -152
  348. package/tests/jsPsych.data/dataparameter.test.js +0 -251
  349. package/tests/jsPsych.data/interactions.test.js +0 -109
  350. package/tests/jsPsych.data/trialparameters.test.js +0 -175
  351. package/tests/jsPsych.extensions/extensions.test.js +0 -207
  352. package/tests/jsPsych.extensions/test-extension.js +0 -42
  353. package/tests/jsPsych.pluginAPI/pluginapi.test.js +0 -341
  354. package/tests/jsPsych.pluginAPI/preloads.test.js +0 -43
  355. package/tests/jsPsych.randomization/randomziation.test.js +0 -27
  356. package/tests/jsPsych.utils/utils.test.js +0 -58
  357. package/tests/plugins/plugin-animation.test.js +0 -34
  358. package/tests/plugins/plugin-audio-button-response.test.js +0 -15
  359. package/tests/plugins/plugin-audio-keyboard-response.test.js +0 -15
  360. package/tests/plugins/plugin-audio-slider-response.test.js +0 -15
  361. package/tests/plugins/plugin-call-function.test.js +0 -49
  362. package/tests/plugins/plugin-categorize-animation.test.js +0 -263
  363. package/tests/plugins/plugin-categorize-html.test.js +0 -17
  364. package/tests/plugins/plugin-categorize-image.test.js +0 -17
  365. package/tests/plugins/plugin-cloze.test.js +0 -157
  366. package/tests/plugins/plugin-free-sort.test.js +0 -106
  367. package/tests/plugins/plugin-fullscreen.test.js +0 -41
  368. package/tests/plugins/plugin-html-button-response.test.js +0 -161
  369. package/tests/plugins/plugin-html-keyboard-response.test.js +0 -139
  370. package/tests/plugins/plugin-html-slider-response.test.js +0 -155
  371. package/tests/plugins/plugin-iat-html.test.js +0 -299
  372. package/tests/plugins/plugin-iat-image.test.js +0 -298
  373. package/tests/plugins/plugin-image-button-response.test.js +0 -174
  374. package/tests/plugins/plugin-image-keyboard-response.test.js +0 -147
  375. package/tests/plugins/plugin-image-slider-response.test.js +0 -174
  376. package/tests/plugins/plugin-instructions.test.js +0 -85
  377. package/tests/plugins/plugin-maxdiff.test.js +0 -39
  378. package/tests/plugins/plugin-preload.test.js +0 -916
  379. package/tests/plugins/plugin-rdk.test.js +0 -61
  380. package/tests/plugins/plugin-reconstruction.test.js +0 -16
  381. package/tests/plugins/plugin-resize.test.js +0 -16
  382. package/tests/plugins/plugin-same-different-html.test.js +0 -17
  383. package/tests/plugins/plugin-same-different-image.test.js +0 -17
  384. package/tests/plugins/plugin-serial-reaction-time-mouse.test.js +0 -42
  385. package/tests/plugins/plugin-serial-reaction-time.test.js +0 -109
  386. package/tests/plugins/plugin-survey-html-form.test.js +0 -44
  387. package/tests/plugins/plugin-survey-likert.test.js +0 -48
  388. package/tests/plugins/plugin-survey-multi-choice.test.js +0 -47
  389. package/tests/plugins/plugin-survey-multi-select.test.js +0 -71
  390. package/tests/plugins/plugin-survey-text.test.js +0 -115
  391. package/tests/plugins/plugin-video-button-response.test.js +0 -32
  392. package/tests/plugins/plugin-video-keyboard-response.test.js +0 -32
  393. package/tests/plugins/plugin-video-slider-response.test.js +0 -31
  394. package/tests/plugins/plugin-visual-search-circle.test.js +0 -16
  395. package/tests/plugins/plugin-vsl-animate-occlusion.test.js +0 -16
  396. package/tests/plugins/plugin-vsl-grid-scene.test.js +0 -16
  397. package/tests/testing-utils.js +0 -13
@@ -1,589 +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
- ## jsPsych.data.addProperties
7
-
8
- ```
9
- jsPsych.data.addProperties(properties)
10
- ```
11
-
12
- ### Parameters
13
-
14
- Parameter | Type | Description
15
- ----------|------|------------
16
- properties | object | Object of key: value pairs to add to the data.
17
-
18
- ### Return value
19
-
20
- Returns nothing.
21
-
22
- ### Description
23
-
24
- 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.
25
-
26
-
27
- ### Examples
28
-
29
- #### Assigning a subject ID and condition code
30
- ```javascript
31
- jsPsych.data.addProperties({subject: 1, condition: 'control'});
32
- ```
33
-
34
-
35
- ---
36
- ## jsPsych.data.displayData
37
-
38
- ```
39
- jsPsych.data.displayData(format)
40
- ```
41
-
42
- ### Parameters
43
-
44
- Parameter | Type | Description
45
- ----------|------|------------
46
- format | string | Specifies whether to display the data in `'csv'` or `'json'` format.
47
-
48
- ### Return value
49
-
50
- Returns nothing.
51
-
52
- ### Description
53
-
54
- 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.
55
-
56
- ### Examples
57
-
58
- #### Using the on_finish callback function to show data at the end of the experiment
59
- ```javascript
60
- jsPsych.init({
61
- experiment_structure: exp,
62
- on_finish: function() {
63
- jsPsych.data.displayData('csv');
64
- }
65
- })
66
- ```
67
-
68
- ---
69
- ## jsPsych.data.get
70
-
71
- ```
72
- jsPsych.data.get()
73
- ```
74
-
75
- ### Parameters
76
-
77
- None.
78
-
79
- ### Return value
80
-
81
- Returns the data collection of all data generated by the experiment.
82
-
83
- ### Description
84
-
85
- This function is the standard starting point for accessing the data generated by the experiment. It returns a DataCollection object, which has
86
- several methods that can be used to further filter, aggregate, and view the data. These methods are described under the DataCollection section
87
- on this page.
88
-
89
- ### Example
90
-
91
- ```javascript
92
- // select all trials
93
- var all_data = jsPsych.data.get();
94
-
95
- // get csv representation of data and log to console
96
- console.log(all_data.csv());
97
- ```
98
-
99
- ---
100
- ## jsPsych.data.getDataByTimelineNode
101
-
102
- ```
103
- jsPsych.data.getDataByTimelineNode(node_id)
104
- ```
105
-
106
- ### Parameters
107
-
108
- Parameter | Type | Description
109
- ----------|------|------------
110
- node_id | string | The id of the TimelineNodes to get data from.
111
-
112
- ### Return value
113
-
114
- Returns a DataCollection of all of the data generated in a specified TimelineNode.
115
-
116
- ### Description
117
-
118
- Get all the data generated by a specified Timeline.
119
-
120
- ### Example
121
-
122
- ```javascript
123
-
124
- var current_node_id = jsPsych.currentTimelineNodeID();
125
-
126
- var data_from_current_node = jsPsych.data.getDataByTimelineNode(current_node_id);
127
-
128
- ```
129
-
130
- ---
131
- ## jsPsych.data.getInteractionData
132
-
133
- ```
134
- jsPsych.data.getInteractionData()
135
- ```
136
-
137
- ### Parameters
138
-
139
- None.
140
-
141
- ### Return value
142
-
143
- Returns a DataCollection object with all of the interaction events.
144
-
145
- ### Description
146
-
147
- 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:
148
-
149
- ```javascript
150
- {
151
- type: 'focus' or 'blur' or 'fullscreenenter' or 'fullscreenexit',
152
- trial: 10, // the trial number when the event happened
153
- time: 13042 // total time elapsed since the start of the experiment
154
- }
155
- ```
156
-
157
- ### Example
158
-
159
- ```javascript
160
- var interaction_data = jsPsych.data.getInteractionData();
161
- // log data to console in json format
162
- console.log(interaction_data.json());
163
- ```
164
-
165
-
166
- ---
167
- ## jsPsych.data.getLastTimelineData
168
-
169
- ```
170
- jsPsych.data.getLastTimelineData()
171
- ```
172
-
173
- ### Return value
174
-
175
- Returns a DataCollection.
176
-
177
- ### Description
178
-
179
- Gets all of the data generated in the same timeline as the last trial.
180
-
181
- ### Example
182
-
183
- ```js
184
- var lasttimelinedata = jsPsych.data.getLastTimelineData();
185
- ```
186
-
187
- ---
188
- ## jsPsych.data.getLastTrialData
189
-
190
- ```
191
- jsPsych.data.getLastTrialData()
192
- ```
193
-
194
- ### Return value
195
-
196
- Returns a DataCollection
197
-
198
- ### Description
199
-
200
- Gets the data collection containing all data generated by the last trial.
201
-
202
- ### Example
203
-
204
- ```
205
- var lasttrialdata = jsPsych.data.getLastTrialData();
206
- ```
207
-
208
- ---
209
- ## jsPsych.data.getURLVariable
210
-
211
- ```
212
- jsPsych.data.getURLVariable(var_name)
213
- ```
214
-
215
- ### Parameters
216
-
217
- Parameter | Type | Description
218
- ----------|------|------------
219
- var_name | string | Which variable to get the value of.
220
-
221
- ### Return value
222
-
223
- Returns the value of a variable passed in through the query string.
224
-
225
- ### Description
226
-
227
- For extracting a particular variable passed in through a URL query string.
228
-
229
- ### Examples
230
-
231
- ```javascript
232
-
233
- // if the URL of the page is: experiment.html?subject=1234&condition=test
234
-
235
- console.log(jsPsych.data.getURLVariable('subject')) // logs "1234"
236
- console.log(jsPsych.data.getURLVariable('condition')) // logs "test"
237
-
238
- ```
239
-
240
- ---
241
- ## jsPsych.data.urlVariables
242
-
243
- ```
244
- jsPsych.data.urlVariables()
245
- ```
246
-
247
- ### Return value
248
-
249
- Returns an object (associative array) of the variables in the URL query string.
250
-
251
- ### Description
252
-
253
- For extracting variables passed in through a URL query string.
254
-
255
- ### Examples
256
-
257
- ```javascript
258
-
259
- // if the URL of the page is: experiment.html?subject=1234&condition=test
260
-
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
- ---
269
- ## jsPsych.data.write
270
-
271
- ```
272
- jsPsych.data.write(data_object)
273
- ```
274
-
275
- ### Parameters
276
-
277
- Parameter | Type | Description
278
- ----------|------|------------
279
- data_object | object | Object of `key: value` pairs to store in jsPsych's data storage as a trial.
280
-
281
- ### Return value
282
-
283
- Returns nothing.
284
-
285
- ### Description
286
-
287
- 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).
288
-
289
- ### Examples
290
-
291
- ```javascript
292
-
293
- // don't use this! data should only be written once per trial. use jsPsych.finishTrial to save data.
294
-
295
- var trial_data = {
296
- correct: true,
297
- rt: 487
298
- }
299
-
300
- jsPsych.data.write(trial_data);
301
-
302
- ```
303
-
304
- ---
305
- ## DataCollection
306
-
307
- All data is stored in the DataCollection object. Using methods like `jsPsych.data.get()` and `jsPsych.data.getLastTrialData()` return DataCollections containing
308
- the experiment data. This is a list of all of the methods that are available to call on a DataCollection object.
309
-
310
- #### .addToAll()
311
-
312
- 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.
313
-
314
- ```js
315
- jsPsych.data.get().addToAll({subject_id: 123, condition: 'control'});
316
- ```
317
-
318
- #### .addToLast()
319
-
320
- Adds a set of properties to the last trial in the DataCollection.
321
-
322
- ```js
323
- jsPsych.data.get().addToLast({success: true});
324
- ```
325
-
326
- #### .count()
327
-
328
- Counts the number of trials in the DataCollection.
329
-
330
- ```js
331
- jsPsych.data.get().count()
332
- ```
333
-
334
- #### .csv()
335
-
336
- Generates a CSV string representing all of the data in the DataCollection.
337
-
338
- ```js
339
- console.log(jsPsych.data.get().csv());
340
- ```
341
-
342
- #### .filter()
343
-
344
- 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.
345
-
346
- ```js
347
- var correct_trials = jsPsych.data.get().filter({correct: true});
348
- ```
349
-
350
- 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.
351
-
352
- ```js
353
- // keep only correct trials from the practice phase
354
- var correct_practice_trials = jsPsych.data.get().filter({correct:true, phase: 'practice'});
355
- ```
356
-
357
- 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.
358
-
359
- ```js
360
- // select trials from block 1 and block 5.
361
- var trials = jsPsych.data.get().filter([{block: 1}, {block:5}]);
362
- ```
363
-
364
- The filter method returns a DataCollection object, so methods can be chained onto a single statement.
365
-
366
- ```js
367
- // count the number of correct trials in block 1
368
- var block_1_correct = jsPsych.data.get().filter({block:1, correct:true}).count();
369
- ```
370
-
371
- #### .filterCustom()
372
-
373
- 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.
374
-
375
- ```js
376
- // count the number of trials with a response time greater than 2000ms.
377
- var too_long = jsPsych.data.get().filterCustom(function(trial){
378
- return trial.rt > 2000;
379
- }).count()
380
- ```
381
-
382
- #### .first() / .last()
383
-
384
- 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.
385
-
386
- ```js
387
- var first_trial = jsPsych.data.get().first(1);
388
- var last_trial_with_correct_response = jsPsych.data.get().filter({correct: true}).last(1);
389
- var last_10_trials = jsPsych.data.get().last(10);
390
- ```
391
-
392
- #### .ignore()
393
-
394
- Returns a DataCollection with all instances of a particular key removed from the dataset.
395
-
396
- ```js
397
- // log a csv file that does not contain the internal_node_id values for each trial
398
- console.log(jsPsych.data.get().ignore('internal_node_id').csv());
399
- ```
400
-
401
- #### .join()
402
-
403
- Appends one DataCollection onto another and returns the combined collection.
404
-
405
- ```js
406
- // get a DataCollection with all trials that are either correct or
407
- // have a response time greater than 200ms.
408
- var dc1 = jsPsych.data.get().filter({correct: true});
409
- var dc2 = jsPsych.data.get().filterCustom(function(trial){ return trial.rt > 200});
410
- var data = dc1.join(dc2);
411
- ```
412
-
413
- #### .json()
414
-
415
- Generates a JSON string representing all of the data in the DataCollection.
416
-
417
- ```js
418
- console.log(jsPsych.data.get().json());
419
- ```
420
-
421
- #### .localSave()
422
-
423
- 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.
424
-
425
- **Warning:** This function may not behave correctly in older browsers. Upgrading to the latest version of any major web browser should solve the problem.
426
-
427
- ```javascript
428
- // first argument is the format, second is the filename.
429
- // the format can be either 'csv' or 'json'.
430
- jsPsych.data.get().localSave('csv','mydata.csv');
431
- ```
432
-
433
- #### .push()
434
-
435
- Add a new entry to the DataCollection. This method is mostly used internally, and you shouldn't need to call it under normal circumstances.
436
-
437
- ```js
438
- var data = {correct: true, rt: 500}
439
- jsPsych.data.get().push(data);
440
- ```
441
-
442
- #### .readOnly()
443
-
444
- Creates a copy of the DataCollection so that any modification of the values in the DataCollection will not affect the original.
445
-
446
- ```js
447
- // this line edits the rt property of the first trial
448
- jsPsych.data.get().first(1).values()[0].rt = 100;
449
-
450
- // readOnly creates a copy that can be modified without affecting the original
451
-
452
- jsPsych.data.get().first(1).values()[0].rt
453
- // outputs 100
454
-
455
- jsPsych.data.get().readOnly().first(1).values()[0].rt = 200
456
- jsPsych.data.get().first(1).values()[0].rt
457
- // still outputs 100
458
- ```
459
-
460
- #### .select()
461
-
462
- Returns a DataColumn object (see documentation below) of a single property from a DataCollection object.
463
-
464
- ```js
465
- var rt_data = jsPsych.data.get().select('rt');
466
- rt_data.mean()
467
- ```
468
-
469
- #### .uniqueNames()
470
-
471
- 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.
472
-
473
- ```js
474
- console.log(jsPsych.data.get().uniqueNames());
475
- ```
476
-
477
- #### .values()
478
-
479
- 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.
480
-
481
- ```js
482
- var raw_data = jsPsych.data.get().values();
483
-
484
- // was response in first trial correct?
485
- if(raw_data[0].correct){
486
- console.log('correct!');
487
- } else {
488
- console.log('incorrect.');
489
- }
490
- ```
491
-
492
- ---
493
- ## DataColumn
494
-
495
- 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.
496
-
497
- #### .all()
498
-
499
- 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.
500
-
501
- ```js
502
- // check if all the response times in the practice phase were under 1000ms
503
- jsPsych.data.get().filter({phase: 'practice'}).select('correct').all(function(x) { return x < 1000; });
504
- ```
505
-
506
- #### .count()
507
-
508
- Counts the number of values in the DataColumn.
509
-
510
- ```js
511
- // count how many response times there are
512
- jsPsych.data.get().select('rt').count();
513
- ```
514
-
515
- #### .frequencies()
516
-
517
- 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.
518
-
519
- ```js
520
- // get frequencies of correct and incorrect responses
521
- jsPsych.data.get().select('correct').frequencies();
522
- ```
523
-
524
- #### .max() / .min()
525
-
526
- Returns the maximum or minimum value in a DataColumn.
527
-
528
- ```js
529
- jsPsych.data.get().select('rt').max();
530
- jsPsych.data.get().select('rt').min();
531
- ```
532
-
533
- #### .mean()
534
-
535
- Returns the average of all the values in a DataColumn.
536
-
537
- ```js
538
- jsPsych.data.get().select('rt').mean();
539
- ```
540
-
541
- #### .median()
542
-
543
- Returns the median of all the values in a DataColumn.
544
-
545
- ```js
546
- jsPsych.data.get().select('rt').median();
547
- ```
548
-
549
- #### .sd()
550
-
551
- Returns the standard deviation of the values in a DataColumn.
552
-
553
- ```js
554
- jsPsych.data.get().select('rt').sd();
555
- ```
556
-
557
- #### .subset()
558
-
559
- Filters the DataColumn to include only values that return `true` when passed through the specified function.
560
-
561
- ```js
562
- // below results will be less than 200.
563
- jsPsych.data.get().select('rt').subset(function(x){ return x < 200; }).max();
564
- ```
565
-
566
- #### .sum()
567
-
568
- Returns the sum of the values in a DataColumn.
569
-
570
- ```js
571
- jsPsych.data.get().select('rt').sum();
572
- ```
573
-
574
- #### .values
575
-
576
- The raw array of values in the DataColumn.
577
-
578
- ```js
579
- // note that this is not a function call.
580
- jsPsych.data.get().select('rt').values;
581
- ```
582
-
583
- #### .variance()
584
-
585
- Returns the variance of the values in a DataColumn.
586
-
587
- ```js
588
- jsPsych.data.get().select('rt').variance();
589
- ```