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,734 +0,0 @@
1
- # The jsPsych core library
2
-
3
- ---
4
- ## jsPsych.addNodeToEndOfTimeline
5
- ```
6
- jsPsych.addNodeToEndOfTimeline(node_parameters)
7
- ```
8
-
9
- ### Parameters
10
-
11
- | Parameter | Type | Description |
12
- | --------------- | -------- | ---------------------------------------- |
13
- | node_parameters | object | An object defining a timeline. It must have, at a minimum, a `timeline` parameter with a valid timeline array as the value for that parameter. |
14
-
15
- ### Return value
16
-
17
- None.
18
-
19
- ### Description
20
-
21
- Adds the timeline to the end of the experiment.
22
-
23
- ### Examples
24
-
25
- #### Without callback
26
-
27
- ```javascript
28
- var trial = {
29
- type: 'html-keyboard-response',
30
- stimulus: 'This is a new trial.'
31
- }
32
-
33
- var new_timeline = {
34
- timeline: [trial]
35
- }
36
-
37
- jsPsych.addNodeToEndOfTimeline(new_timeline)
38
- ```
39
-
40
- ### With callback
41
-
42
- ```javascript
43
- var first = {
44
- type: 'html-keyboard-response',
45
- stimulus: 'first trial; new trial added when on_finish is called',
46
- on_finish: function(){
47
- jsPsych.pauseExperiment();
48
- jsPsych.addNodeToEndOfTimeline({
49
- timeline: [{
50
- type: 'image-keyboard-response',
51
- stimulus: 'img/happy_face_4.jpg'
52
- }]
53
- }, jsPsych.resumeExperiment)
54
- }
55
- }
56
- ```
57
-
58
- ---
59
- ## jsPsych.allTimelineVariables
60
-
61
- ```
62
- jsPsych.allTimelineVariables()
63
- ```
64
-
65
- ### Parameters
66
-
67
- None.
68
-
69
- ### Return value
70
-
71
- Returns an object with all available timeline variables at this moment in the experiment, represented as `key: value` pairs.
72
-
73
- ### Description
74
-
75
- This function can be used to get all the timeline variables at a particular moment in the experiment. Can be useful for annotating
76
- data, such as in the example below.
77
-
78
- ### Example
79
-
80
- ```javascript
81
- var trial = {
82
- type: 'html-keyboard-response',
83
- stimulus: 'Just a demo',
84
- on_finish: function(data){
85
- // merge all timeline variables available at this trial into the data for this trial
86
- Object.assign(data, jsPsych.allTimelineVariables())
87
- }
88
- }
89
- ```
90
-
91
- ---
92
- ## jsPsych.currentTimelineNodeID
93
-
94
- ```
95
- jsPsych.currentTimelineNodeID()
96
- ```
97
-
98
- ### Parameters
99
-
100
- None.
101
-
102
- ### Return value
103
-
104
- Returns the ID of the TimelineNode that is currently active.
105
-
106
- ### Description
107
-
108
- Gets the ID of the active TimelineNode. The ID is a string that follows a specific format:
109
-
110
- * `"0.0"` is the ID of the first top-level TimelineNode
111
- * `"1.0"` is the ID of the second top-level TimelineNode
112
- * `"2.0"` is the ID of the third top-level TimelineNode, and so on...
113
-
114
- If a TimelineNode iterates multiple times (using the loop function, for example), then the iterations are indicated in the second number:
115
-
116
- * `"0.0"` is the ID of the first top-level TimelineNode during the first iteration
117
- * `"0.1"` is the ID of the first top-level TimelineNode during the second iteration
118
- * `"0.2"` is the ID of the first top-level TimelineNode during the third iteration, and so on...
119
-
120
- If TimelineNodes are nested in other TimelineNodes, then the hierarchical structure is shown with `"."`:
121
-
122
- * `"0.0-1.0"` is the ID of the second TimelineNode on the timeline of the first top-level TimelineNode.
123
- * `"0.0-2.0"` is the ID of the third TimelineNode on the timeline of the first top-level TimelineNode, and so on...
124
-
125
- The rules about iterations apply throughout the hierarchical ID:
126
-
127
- * `"0.2-1.3"` is the ID of the second TimelineNode, executing for the fourth time, on the timeline of the first top-level TimelineNode, executing for the third time.
128
-
129
-
130
- ### Example
131
-
132
- ```javascript
133
- var id = jsPsych.currentTimelineNodeID();
134
-
135
- console.log('The current TimelineNode ID is '+id);
136
- ```
137
-
138
- ---
139
- ## jsPsych.currentTrial
140
-
141
- ```
142
- jsPsych.currentTrial()
143
- ```
144
-
145
- ### Parameters
146
-
147
- None.
148
-
149
- ### Return value
150
-
151
- Returns the object describing the current trial. The object will contain all of the parameters associated with the current trial.
152
-
153
- ### Description
154
-
155
- Get a description of the current trial
156
-
157
- ### Example
158
-
159
- ```javascript
160
-
161
- var trial = jsPsych.currentTrial();
162
-
163
- console.log('The current trial is using the '+trial.type+' plugin');
164
- ```
165
- ---
166
- ## jsPsych.endCurrentTimeline
167
-
168
- ```
169
- jsPsych.endCurrentTimeline
170
- ```
171
-
172
- ### Parameters
173
-
174
- None.
175
-
176
- ### Return value
177
-
178
- None.
179
-
180
- ### Description
181
-
182
- Ends the current timeline. If timelines are nested, then only the timeline that contains the current trial is ended.
183
-
184
- ### Example
185
-
186
- #### End timeline if a particular key is pressed
187
-
188
- ```javascript
189
-
190
- var images = [
191
- "img/1.gif", "img/2.gif", "img/3.gif", "img/4.gif",
192
- "img/5.gif", "img/6.gif", "img/7.gif", "img/8.gif",
193
- "img/9.gif", "img/10.gif"
194
- ];
195
-
196
- var trials = [];
197
- for (var i = 0; i < images.length; i++) {
198
- trials.push({
199
- stimulus: images[i]
200
- });
201
- }
202
-
203
- var block = {
204
- type: 'image-keyboard-response',
205
- choices: ['y', 'n'],
206
- prompt: '<p>Press "y" to Continue. Press "n" to end this node of the experiment.</p>',
207
- on_finish: function(data) {
208
- if (jsPsych.pluginAPI.compareKeys(data.response, 'n')) {
209
- jsPsych.endCurrentTimeline();
210
- }
211
- },
212
- timeline: trials
213
- }
214
-
215
- var after_block = {
216
- type: 'html-keyboard-response',
217
- stimulus: '<p>The next node</p>'
218
- }
219
-
220
- jsPsych.init({
221
- timeline: [block, after_block],
222
- on_finish: function() {
223
- jsPsych.data.displayData();
224
- }
225
- });
226
-
227
- ```
228
-
229
- ---
230
- ## jsPsych.endExperiment
231
-
232
- ```
233
- jsPsych.endExperiment(end_message)
234
- ```
235
-
236
- ### Parameters
237
-
238
- | Parameter | Type | Description |
239
- | ----------- | ------ | ---------------------------------------- |
240
- | end_message | string | A message to display on the screen after the experiment is over. |
241
-
242
- ### Return value
243
-
244
- None.
245
-
246
- ### Description
247
-
248
- Ends the experiment, skipping all remaining trials.
249
-
250
- ### Example
251
-
252
- #### End the experiment if a particular response is given
253
-
254
- ```javascript
255
- var trial = {
256
- type: 'image-keyboard-response',
257
- stimulus: 'image1.jpg',
258
- choices: ['y', 'n']
259
- prompt: '<p>Press "y" to Continue. Press "n" to end the experiment</p>',
260
- on_finish: function(data){
261
- if(jsPsych.pluginAPI.compareKeys(data.response, "n")){
262
- jsPsych.endExperiment('The experiment was ended by pressing "n".');
263
- }
264
- }
265
- }
266
- ```
267
-
268
- ---
269
- ## jsPsych.finishTrial
270
-
271
- ```
272
- jsPsych.finishTrial(data)
273
- ```
274
-
275
- ### Parameters
276
-
277
- | Parameter | Type | Description |
278
- | --------- | ------ | -------------------------------- |
279
- | data | object | The data to store for the trial. |
280
-
281
-
282
- ### Return value
283
-
284
- Returns nothing.
285
-
286
- ### Description
287
-
288
- This method tells jsPsych that the current trial is over. It is used in all of the plugins to end the current trial. When the trial ends a few things happen:
289
-
290
- * The data is stored using `jsPsych.data.write()`
291
- * The on_finish callback function is executed for the trial
292
- * The on_trial_finish callback function is executed
293
- * The progress bar is updated if it is being displayed
294
- * The experiment ends if the trial is the last one (and the on_finish callback function is executed).
295
- * The next trial, if one exists, is started.
296
-
297
- ### Example
298
-
299
- ```javascript
300
-
301
- // this code would be in a plugin
302
- jsPsych.finishTrial({correct_response: true});
303
-
304
- ```
305
- ---
306
- ## jsPsych.getDisplayElement
307
-
308
- ```
309
- jsPsych.getDisplayElement()
310
- ```
311
-
312
- ### Parameters
313
-
314
- None.
315
-
316
- ### Return value
317
-
318
- Returns the HTML DOM element used for displaying the experiment.
319
-
320
- ### Description
321
-
322
- Get the DOM element that displays the experiment.
323
-
324
- ### Example
325
-
326
- ```javascript
327
- var el = jsPsych.getDisplayElement();
328
-
329
- // hide the jsPsych display
330
- el.style.visibility = 'hidden';
331
- ```
332
-
333
- ---
334
- ## jsPsych.getProgressBarCompleted
335
-
336
- ```
337
- jsPsych.getProgressBarCompleted()
338
- ```
339
-
340
- ### Parameters
341
-
342
- None.
343
-
344
- ### Return value
345
-
346
- Returns a value between 0 and 1 representing how full the progress bar currently is.
347
-
348
- ### Description
349
-
350
- Used to get the current value of the progress bar. Works for automated and manual control.
351
-
352
- ### Example
353
-
354
- ```javascript
355
- var progress_bar_amount = jsPsych.getProgressBarCompleted();
356
- ```
357
-
358
- ---
359
- ## jsPsych.init
360
-
361
- ```
362
- jsPsych.init(settings)
363
- ```
364
-
365
- ### Parameters
366
-
367
- | Parameter | Type | Description |
368
- | --------- | ------ | ---------------------------------------- |
369
- | settings | object | The settings object for initializing jsPsych. See table below. |
370
-
371
- The settings object can contain several parameters. The only *required* parameter is `timeline`.
372
-
373
- | Parameter | Type | Description |
374
- | -------------------------- | -------- | ---------------------------------------- |
375
- | timeline | array | An array containing the objects that describe the experiment timeline. See [Creating an Experiment: The Timeline](../overview/timeline.md). |
376
- | display_element | string | The ID of an HTML element to display the experiment in. If left blank, jsPsych will use the `<body>` element to display content. All keyboard event listeners are bound to this element. In order for a keyboard event to be detected, this element must have focus (be the last thing that the subject clicked on). |
377
- | on_finish | function | Function to execute when the experiment ends. |
378
- | on_trial_start | function | Function to execute when a new trial begins. |
379
- | on_trial_finish | function | Function to execute when a trial ends. |
380
- | on_data_update | function | Function to execute every time data is stored using the `jsPsych.data.write` method. All plugins use this method to save data (via a call to `jsPsych.finishTrial`, so this function runs every time a plugin stores new data. |
381
- | on_interaction_data_update | function | Function to execute every time a new interaction event occurs. Interaction events include clicking on a different window (blur), returning to the experiment window (focus), entering full screen mode (fullscreenenter), and exiting full screen mode (fullscreenexit). |
382
- | on_close | function | Function to execute when the user leaves the page. Can be used, for example, to save data before the page is closed. |
383
- | exclusions | object | Specifies restrictions on the browser the subject can use to complete the experiment. See list of options below. |
384
- | show_progress_bar | boolean | If true, then [a progress bar](../overview/progress-bar.md) is shown at the top of the page. |
385
- | message_progress_bar | string | Message to display next to the progress bar. The default is 'Completion Progress'. |
386
- | auto_update_progress_bar | boolean | If true, then the progress bar at the top of the page will automatically update as every top-level timeline or trial is completed. |
387
- | use_webaudio | boolean | If false, then jsPsych will not attempt to use the WebAudio API for audio playback. Instead, HTML5 Audio objects will be used. The WebAudio API offers more precise control over the timing of audio events, and should be used when possible. The default value is true. |
388
- | default_iti | numeric | The default inter-trial interval in ms. The default value if none is specified is 0ms. |
389
- | experiment_width | numeric | The desired width of the jsPsych container in pixels. If left undefined, the width will be 100% of the display element. Usually this is the `<body>` element, and the width will be 100% of the screen size. |
390
- | minimum_valid_rt | numeric | The minimum valid response time for key presses during the experiment. Any key press response time that is less than this value will be treated as invalid and ignored. Note that this parameter only applies to _keyboard responses_, and not to other response types such as buttons and sliders. The default value is 0. |
391
- | override_safe_mode | boolean | Running a jsPsych experiment directly in a web browser (e.g., by double clicking on a local HTML file) will load the page using the `file://` protocol. Some features of jsPsych don't work with this protocol. By default, when jsPsych detects that it's running on a page loaded via the `file://` protocol, it runs in _safe mode_, which automatically disables features that don't work in this context. Specifically, the use of Web Audio is disabled (audio will be played using HTML5 audio instead, even if `use_webaudio` is `true`) and video preloading is disabled. The `override_safe_mode` parameter defaults to `false`, but you can set it to `true` to force these features to operate under the `file://` protocol. In order for this to work, you will need to disable web security (CORS) features in your browser - this is safe to do if you know what you are doing. Note that this parameter has no effect when you are running the experiment on a web server, because the page will be loaded via the `http://` or `https://` protocol. |
392
- | case_sensitive_responses | boolean | If true, then jsPsych will make a distinction between uppercase and lowercase keys when evaluating keyboard responses, e.g. "A" (uppercase) will not be recognized as a valid response if the trial only accepts "a" (lowercase). If false, then jsPsych will not make a distinction between uppercase and lowercase keyboard responses, e.g. both "a" and "A" responses will be valid when the trial's key choice parameter is "a". Setting this parameter to false is useful if you want key responses to be treated the same way when CapsLock is turned on or the Shift key is held down. The default value is false. |
393
- extensions | array | Array containing information about one or more jsPsych extensions that are used during the experiment. Each extension should be specified as an object with `type` (required), which is the name of the extension, and `params` (optional), which is an object containing any parameter-value pairs to be passed to the extension's `initialize` function. Default value is an empty array. |
394
-
395
- Possible values for the exclusions parameter above.
396
-
397
- | Parameter | Type | Description |
398
- | ---------- | ------- | ---------------------------------------- |
399
- | min_width | numeric | The minimum width of the browser window. If the width is below this value, a message will be displayed to the subject asking them to maximize their browser window. The experiment will sit on this page until the browser window is large enough. |
400
- | min_height | numeric | Same as above, but with height. |
401
- | audio | boolean | Set to true to require support for the WebAudio API (used by plugins that play audio files). |
402
-
403
- ### Return value
404
-
405
- Returns nothing.
406
-
407
- ### Description
408
-
409
- This method configures and starts the experiment.
410
-
411
- ### Example
412
-
413
- See any of the plugin examples in the [examples folder](https://github.com/jodeleeuw/jsPsych/tree/master/examples) in the GitHub repository.
414
-
415
- ---
416
- ## jsPsych.initSettings
417
-
418
- ```
419
- jsPsych.initSettings()
420
- ```
421
-
422
- ### Parameters
423
-
424
- None
425
-
426
- ### Return value
427
-
428
- Returns the settings object used to initialize the experiment.
429
-
430
- ### Description
431
-
432
- Gets the object containing the settings for the current experiment.
433
-
434
- ### Example
435
-
436
- ```javascript
437
- var settings = jsPsych.initSettings();
438
-
439
- // check the experiment structure
440
- console.log(JSON.stringify(settings.timeline));
441
- ```
442
-
443
- ---
444
- ## jsPsych.pauseExperiment
445
- ```
446
- jsPsych.pauseExperiment()
447
- ```
448
-
449
- ### Parameters
450
-
451
- None.
452
-
453
- ### Return value
454
-
455
- None.
456
-
457
- ### Description
458
-
459
- Pauses the experiment. The experiment will finish the current trial, but will not execute any additional trials until `jsPsych.resumeExperiment()` is called.
460
-
461
- ### Example
462
-
463
- ```javascript
464
- var trial = {
465
- type: 'html-keyboard-response',
466
- stimulus: 'Press p to take a 30 second break. Otherwise, press c to continue immediately.',
467
- choices: ['p','c'],
468
- on_finish: function(data){
469
- if(jsPsych.pluginAPI.compareKeys(data.response, "p")) {
470
- jsPsych.pauseExperiment();
471
- setTimeout(jsPsych.resumeExperiment, 30000);
472
- }
473
- }
474
- }
475
- ```
476
-
477
- ---
478
- ## jsPsych.progress
479
-
480
- ```
481
- jsPsych.progress()
482
- ```
483
-
484
- ### Parameters
485
-
486
- None.
487
-
488
- ### Return value
489
-
490
- Returns an object with the following properties:
491
-
492
- | Property | Type | Description |
493
- | -------------------- | ------- | ---------------------------------------- |
494
- | total_trials | numeric | Indicates the number of trials in the experiment. Note that this does not count possible loops or skipped trials due to conditional statements. |
495
- | current_trial_global | numeric | Returns the trial index of the current trial in a global scope. Every trial will increase this count by 1. |
496
- | percent_complete | numeric | Estimates the percent of the experiment that is complete. Works as expected for experiments without conditional or looping timelines. For complex timelines, the percent is an approximation. |
497
-
498
-
499
- ### Description
500
-
501
- This method returns information about the length of the experiment and the subject's current location in the experiment timeline.
502
-
503
- ### Example
504
-
505
- ```javascript
506
-
507
- var progress = jsPsych.progress();
508
-
509
- alert('You have completed approximately '+progress.percent_complete+'% of the experiment');
510
-
511
- ```
512
- ---
513
- ## jsPsych.resumeExperiment
514
- ```
515
- jsPsych.resumeExperiment()
516
- ```
517
-
518
- ### Parameters
519
-
520
- None.
521
-
522
- ### Return value
523
-
524
- None.
525
-
526
- ### Description
527
-
528
- Resumes the experiment after a call to `jsPsych.pauseExperiment()`. If the post trial delay (`post_trial_gap`) has not yet been reached, then the experiment will not continue until the delay is finished. For example, if `post_trial_gap` was 10,000ms and `jsPsych.resumeExperiment()` was called 6,000ms after the previous trial finished, then the experiment would not continue for another 4,000ms.
529
-
530
- ### Example
531
-
532
- ```javascript
533
- var trial = {
534
- type: 'html-keyboard-response',
535
- stimulus: 'Press p to take a 30 second break. Otherwise, press c to continue immediately.',
536
- choices: ['p','c'],
537
- on_finish: function(data){
538
- if(jsPsych.pluginAPI.compareKeys(data.response, "p")) {
539
- jsPsych.pauseExperiment();
540
- setTimeout(jsPsych.resumeExperiment, 30000);
541
- }
542
- }
543
- }
544
- ```
545
-
546
- ---
547
- ## jsPsych.setProgressBar
548
-
549
- ```
550
- jsPsych.setProgressBar(value)
551
- ```
552
-
553
- ### Parameters
554
-
555
- | Parameter | Type | Description |
556
- | --------- | ------- | ---------------------------------------- |
557
- | value | numeric | Proprotion (between 0 and 1) to fill the progress bar. |
558
-
559
-
560
- ### Return value
561
-
562
- None.
563
-
564
- ### Description
565
-
566
- Set the progress bar to a custom amount. Proportion must be between 0 and 1. Values larger than 1 are treated as 1.
567
-
568
- ### Example
569
-
570
- ```javascript
571
- jsPsych.setProgressBar(0.85);
572
- ```
573
-
574
- ---
575
- ## jsPsych.startTime
576
-
577
- ```
578
- jsPsych.startTime()
579
- ```
580
-
581
- ### Parameters
582
-
583
- None.
584
-
585
- ### Return value
586
-
587
- Returns a `Date` object indicating when the experiment began.
588
-
589
- ### Description
590
-
591
- Get the time that the experiment began.
592
-
593
- ### Example
594
-
595
- ```javascript
596
- var start_time = jsPsych.startTime();
597
- ```
598
-
599
- ---
600
- ## jsPsych.timelineVariable
601
-
602
- ```
603
- jsPsych.timelineVariable(variable, call_immediate)
604
- ```
605
-
606
- ### Parameters
607
-
608
-
609
- Parameter | Type | Description
610
- ----------|------|------------
611
- variable | string | Name of the timeline variable
612
- call_immediate | bool | This parameter is optional and can usually be omitted. It determines the return value of `jsPsych.timelineVariable`. If `true`, the function returns the _value_ of the current timeline variable. If `false`, the function returns _a function that returns the value_ of the current timeline variable. When `call_immediate` is omitted, the appropriate option is determined automatically based on the context in which this function is called. When `jsPsych.timelineVariable` is used as a parameter value, `call_immediate` will be `false`. This allows it to be used as a [dynamic trial parameter](/overview/dynamic-parameters). When `jsPsych.timelineVariable` is used inside of a function, `call_immediate` will be `true`. It is possible to explicitly set this option to `true` to force the function to immediately return the current value of the timeline variable.
613
-
614
-
615
- ### Return value
616
-
617
- Either a function that returns the value of the timeline variable, or the value of the timeline variable, depending on the context in which it is used. See `call_immediate` description above.
618
-
619
- ### Description
620
-
621
- [Timeline variables](/overview/timeline/#timeline-variables) are a powerful technique for generating experiments with repetitive procedures but different parameter values. This function fetches the current value of a particular timeline variable. It must be used in conjunction with a timeline that has timeline variables. See the [timeline variable section](/overview/timeline/#timeline-variables) for details.
622
-
623
- ### Examples
624
-
625
- #### Standard use as a parameter for a trial
626
- ```javascript
627
- var trial = {
628
- type: 'image-keyboard-response',
629
- stimulus: jsPsych.timelineVariable('image')
630
- }
631
-
632
- var procedure = {
633
- timeline: [trial],
634
- timeline_variables: [
635
- {image: 'face1.png'},
636
- {image: 'face2.png'},
637
- {image: 'face3.png'},
638
- {image: 'face4.png'}
639
- ]
640
- }
641
- ```
642
-
643
- #### Invoking immediately in a function
644
- ```javascript
645
- var trial = {
646
- type: 'html-keyboard-response',
647
- stimulus: function(){
648
- return "<img style='width:100px; height:100px;' src='"+jsPsych.timelineVariable('image')+"'></img>";
649
- }
650
- }
651
-
652
- var procedure = {
653
- timeline: [trial],
654
- timeline_variables: [
655
- {image: 'face1.png'},
656
- {image: 'face2.png'},
657
- {image: 'face3.png'},
658
- {image: 'face4.png'}
659
- ]
660
- }
661
- ```
662
- Prior to jsPsych v6.3.0, the `call_immediate` parameter must be set to `true` when `jsPsych.timelineVariable` is called from within a function, such as a [dynamic parameter](/overview/dynamic-parameters):
663
- ```javascript
664
- var trial = {
665
- type: 'html-keyboard-response',
666
- stimulus: function(){
667
- return "<img style='width:100px; height:100px;' src='"+jsPsych.timelineVariable('image', true)+"'></img>";
668
- }
669
- }
670
-
671
- var procedure = {
672
- timeline: [trial],
673
- timeline_variables: [
674
- {image: 'face1.png'},
675
- {image: 'face2.png'},
676
- {image: 'face3.png'},
677
- {image: 'face4.png'}
678
- ]
679
- }
680
- ```
681
-
682
- ---
683
- ## jsPsych.totalTime
684
-
685
- ```
686
- jsPsych.totalTime()
687
- ```
688
-
689
- ### Parameters
690
-
691
- None.
692
-
693
- ### Return value
694
-
695
- Returns a numeric value indicating the number of milliseconds since `jsPsych.init` was called.
696
-
697
- ### Description
698
-
699
- Gets the total time the subject has been in the experiment.
700
-
701
- ### Example
702
-
703
- ```javascript
704
-
705
- var time = jsPsych.totalTime();
706
- console.log(time);
707
-
708
- ```
709
-
710
- ---
711
- ## jsPsych.version
712
-
713
- ```
714
- jsPsych.version
715
- ```
716
-
717
- ### Parameters
718
-
719
- None.
720
-
721
- ### Return value
722
-
723
- Returns the version number as a string.
724
-
725
- ### Description
726
-
727
- Gets the version of jsPsych.
728
-
729
- ### Example
730
-
731
- ```javascript
732
- var version = jsPsych.version();
733
- console.log(version);
734
- ```