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,58 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-rdk.js"></script>
6
- <link rel="stylesheet" href="../css/jspsych.css">
7
- </head>
8
- <body></body>
9
- <script>
10
-
11
- /*
12
- We would appreciate it if you cited this paper when you use the RDK:
13
- Rajananda, S., Lau, H. & Odegaard, B., (2018). A Random-Dot Kinematogram for Web-Based Vision Research. Journal of Open Research Software. 6(1), p.6. DOI: [http://doi.org/10.5334/jors.194]
14
- */
15
-
16
-
17
- //---------Create trials---------
18
-
19
- //Create an array of 2 different trials (different conditions)
20
- var RDK_trials = [
21
- {//Condition 1
22
- correct_choice: 'a', //The correct answer for Condition 1
23
- coherent_direction: 180 //The coherent direction for Condition 1 (dots move left)
24
- },
25
- {//Condition 2
26
- correct_choice: 'l', //The correct answer for Condition 2
27
- coherent_direction: 0 //The coherent direction for Condition 2 (dots move right)
28
- },
29
- ];
30
-
31
- //The test block where all the trials are nested. The properties here will trickle down to all trials in the timeline unless they have their own properties defined
32
- var test_block = {
33
- type: "rdk",
34
- post_trial_gap: 500, //The Inter Trial Interval. You can either have no ITI, or have an ITI but change the display element to be the same color as the stimuli background to prevent flashing between trials
35
- number_of_dots: 200, //Total number of dots in each aperture
36
- RDK_type: 3, //The type of RDK used
37
- choices: ['a', 'l'], //Choices available to be keyed in by participant
38
- trial_duration: 1000, //Duration of each trial in ms
39
- timeline: RDK_trials, //The timeline of all the trials
40
- background_color: "white",
41
- dot_color: "black"
42
-
43
- }
44
-
45
-
46
-
47
- //---------Run the experiment---------
48
-
49
- //Initiate the experiment
50
- jsPsych.init({
51
- timeline: [test_block],
52
- on_finish: function(){ //Execute this when the experiment finishes
53
- jsPsych.data.displayData(); //Display the data onto the browser screen
54
- }
55
- });
56
-
57
- </script>
58
- </html>
@@ -1,39 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-animation.js"></script>
6
- <script src="../plugins/jspsych-preload.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
- <body></body>
10
- <script>
11
-
12
- var preload_trial = {
13
- type: 'preload',
14
- auto_preload: true
15
- }
16
-
17
- // If render_on_canvas is false, the images will be shown via an <img> rather than <canvas> element.
18
- // In some browsers, the first time the images are shown, the <img> method (render_on_canvas: false) will produce a brief
19
- // blank screen (white flash) between images when frame_isi is 0.
20
- var animation_trial = {
21
- type: 'animation',
22
- stimuli: ['img/happy_face_1.jpg', 'img/happy_face_2.jpg', 'img/happy_face_3.jpg', 'img/happy_face_4.jpg'],
23
- sequence_reps: 3,
24
- frame_time: 300,
25
- prompt: '<p>Watch the faces.</p>',
26
- //render_on_canvas: false
27
- };
28
-
29
-
30
- jsPsych.init({
31
- timeline: [preload_trial, animation_trial],
32
- on_finish: function() {
33
- jsPsych.data.displayData();
34
- }
35
- });
36
-
37
- </script>
38
-
39
- </html>
@@ -1,58 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-audio-button-response.js"></script>
6
- <script src="../plugins/jspsych-html-button-response.js"></script>
7
- <script src="../plugins/jspsych-preload.js"></script>
8
- <link rel="stylesheet" href="../css/jspsych.css">
9
- </head>
10
- <body></body>
11
- <script>
12
-
13
- var timeline = [];
14
-
15
- timeline.push({
16
- type: 'preload',
17
- auto_preload: true
18
- });
19
-
20
- timeline.push({
21
- type: 'html-button-response',
22
- stimulus: '<div style="max-width:600px;"><p>Some browsers now require the user to interact with a page before it can play audio. '+
23
- 'Clicking the button below counts as an interaction.</p><p>Be aware of this when planning audio experiments if '+
24
- 'you want the first trial to include audio.</p></div>',
25
- choices: ['Continue']
26
- });
27
-
28
- timeline.push({
29
- type: 'audio-button-response',
30
- stimulus: 'sound/speech_green.mp3',
31
- choices: ['Green', 'Blue', 'Red'],
32
- prompt: "<p>What word was said?</p>"
33
- });
34
-
35
- timeline.push({
36
- type: 'audio-button-response',
37
- stimulus: 'sound/speech_red.mp3',
38
- choices: ['#00ff00', '#0000ff', '#ff0000'],
39
- response_allowed_while_playing: false,
40
- button_html: '<div style="background-color: %choice%; width:100px; height:100px;"></div>',
41
- prompt: "<p>Which color was said?</p>"
42
- });
43
-
44
- timeline.push({
45
- type: 'audio-button-response',
46
- stimulus: 'sound/speech_joke.mp3',
47
- choices: ['Not funny', 'Funny'],
48
- prompt: '<p>Is the joke funny?</p><p>When the audio stops, click a button to end the trial.</p><p>Response buttons are disabled while the audio is playing.</p>',
49
- response_allowed_while_playing: false
50
- })
51
-
52
- jsPsych.init({
53
- timeline: timeline,
54
- on_finish: function(){jsPsych.data.displayData();}
55
- });
56
-
57
- </script>
58
- </html>
@@ -1,68 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-audio-keyboard-response.js"></script>
6
- <script src="../plugins/jspsych-html-button-response.js"></script>
7
- <script src="../plugins/jspsych-preload.js"></script>
8
- <link rel="stylesheet" href="../css/jspsych.css">
9
- </head>
10
- <body></body>
11
- <script>
12
-
13
- var preload = {
14
- type: 'preload',
15
- auto_preload: true
16
- }
17
-
18
- var pre_audio = {
19
- type: 'html-button-response',
20
- stimulus: '<div style="max-width:600px;"><p>Some browsers now require the user to interact with a page before it can play audio. '+
21
- 'Clicking the button below counts as an interaction.</p><p>Be aware of this when planning audio experiments if '+
22
- 'you want the first trial to include audio.</p></div>',
23
- choices: ['Continue']
24
- }
25
-
26
- var trial_1 = {
27
- type: 'audio-keyboard-response',
28
- stimulus: 'sound/speech_blue.mp3',
29
- choices: ['y', 'n'],
30
- prompt: '<div style="width: 300px; height: 300px; background-color: #0000ff; display: inline-block;"></div>'+
31
- '<p>Does the color match the word? (y or n)</p>'
32
- }
33
-
34
- var trial_2 = {
35
- type: 'audio-keyboard-response',
36
- stimulus: 'sound/speech_green.mp3',
37
- choices: ['y', 'n'],
38
- trial_duration: 5000,
39
- prompt: '<div style="width: 300px; height: 300px; background-color: #ff0000; display: inline-block;"></div>'+
40
- '<p>Does the color match the word? (y or n; 5s time limit)</p>'
41
- }
42
-
43
- var trial_3 = {
44
- type: 'audio-keyboard-response',
45
- stimulus: 'sound/speech_red.mp3',
46
- choices: jsPsych.NO_KEYS,
47
- trial_duration: 2000,
48
- prompt: '<p>No response allowed. 2s wait.</p>'
49
- }
50
-
51
- trial_4 = {
52
- type: 'audio-keyboard-response',
53
- stimulus: 'sound/speech_joke.mp3',
54
- choices: jsPsych.ALL_KEYS,
55
- prompt: '<p>When the audio stops, press any key to end the trial.</p><p>Responses made while the audio is still playing will be ignored.</p>',
56
- response_allowed_while_playing: false
57
- }
58
-
59
- jsPsych.init({
60
- timeline: [preload, pre_audio, trial_1, trial_2, trial_3, trial_4],
61
- on_finish: function() {
62
- jsPsych.data.displayData();
63
- },
64
- default_iti: 250
65
- });
66
- </script>
67
-
68
- </html>
@@ -1,61 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-audio-slider-response.js"></script>
6
- <script src="../plugins/jspsych-html-button-response.js"></script>
7
- <script src="../plugins/jspsych-preload.js"></script>
8
- <link rel="stylesheet" href="../css/jspsych.css">
9
- </head>
10
- <body></body>
11
- <script>
12
-
13
- var preload = {
14
- type: 'preload',
15
- auto_preload: true
16
- }
17
-
18
- var pre_audio = {
19
- type: 'html-button-response',
20
- stimulus: '<div style="max-width:600px;"><p>Some browsers now require the user to interact with a page before it can play audio. '+
21
- 'Clicking the button below counts as an interaction.</p><p>Be aware of this when planning audio experiments if '+
22
- 'you want the first trial to include audio.</p></div>',
23
- choices: ['Continue']
24
- }
25
-
26
- var trial_1 = {
27
- type: 'audio-slider-response',
28
- stimulus: 'sound/speech_joke.mp3',
29
- labels: ['Not Funny', 'Funny'],
30
- slider_width: 500,
31
- prompt: '<p>How funny is the joke?</p>'
32
- }
33
-
34
- var trial_2 = {
35
- type: 'audio-slider-response',
36
- stimulus: 'sound/speech_red.mp3',
37
- labels: ['Hate it', 'It&quot;s OK', 'Love it'],
38
- slider_width: 500,
39
- prompt: '<p>How much do you like this color?</p><p>Slider movement is required, so you must interact with (click) the slider before you can continue.</p>',
40
- require_movement: true
41
- }
42
-
43
- var trial_3 = {
44
- type: 'audio-slider-response',
45
- stimulus: 'sound/hammer.mp3',
46
- labels: ['Unpleasant', 'OK', 'Very pleasant'],
47
- slider_width: 500,
48
- prompt: '<p>How pleasant was this sound?</p><p>The slider will be enabled after the audio ends.</p>',
49
- response_allowed_while_playing: false
50
- }
51
-
52
- jsPsych.init({
53
- timeline: [preload, pre_audio, trial_1, trial_2, trial_3],
54
- on_finish: function() {
55
- jsPsych.data.displayData();
56
- },
57
- default_iti: 250
58
- });
59
- </script>
60
-
61
- </html>
@@ -1,32 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-call-function.js"></script>
6
- <link rel="stylesheet" href="../css/jspsych.css">
7
- </head>
8
- <body></body>
9
- <script>
10
-
11
- var trial = {
12
- type: 'call-function',
13
- func: function(){ return Date.now(); }
14
- };
15
-
16
- // this is to check if the plugin specific default for post_trial_gap works.
17
- // if it does, then the return values should be nearly identical.
18
- var next_trial = {
19
- type: 'call-function',
20
- func: function(){ return Date.now(); }
21
- };
22
-
23
-
24
- jsPsych.init({
25
- timeline: [trial, next_trial],
26
- on_finish: function(){ jsPsych.data.displayData(); },
27
- default_iti: 1000
28
- });
29
-
30
-
31
- </script>
32
- </html>
@@ -1,95 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-canvas-button-response.js"></script>
6
- <link rel="stylesheet" href="../css/jspsych.css">
7
- </head>
8
- <body></body>
9
- <script>
10
-
11
- // stimulus function that takes the canvas and additional parameters (radius, color)
12
- // this can be called inside of an anonymous stimulus function, which takes the canvas (c) as its only argument
13
- function filledCirc(canvas, radius, color) {
14
- var ctx = canvas.getContext("2d");
15
- ctx.beginPath();
16
- ctx.arc(250, 250, radius, 0, 2 * Math.PI);
17
- ctx.fillStyle = color;
18
- ctx.fill();
19
- }
20
-
21
- var circle_1 = {
22
- type: 'canvas-button-response',
23
- stimulus: function(c) {
24
- filledCirc(c, 100, 'blue');
25
- },
26
- choices: ['Red', 'Green', 'Blue'],
27
- prompt: '<p>What color is the circle?</p>',
28
- data: {color: 'blue', radius: 100}
29
- };
30
-
31
- var circle_2 = {
32
- type: 'canvas-button-response',
33
- stimulus: function(c) {
34
- filledCirc(c, 150, 'green');
35
- },
36
- choices: ['Larger', 'Smaller'],
37
- stimulus_duration: 1000,
38
- prompt: '<p>Is this circle larger or smaller than the last one?</p>'+
39
- '<p>Stimulus will be hidden after 1 second.</p>',
40
- data: {color: 'green', radius: 150}
41
- };
42
-
43
- // write the canvas stimulus drawing function without using a named function
44
- // the anonymous function must take the canvas as an argument
45
- var lines = {
46
- type: 'canvas-button-response',
47
- stimulus: function(c) {
48
- var ctx = c.getContext("2d");
49
- // first line
50
- ctx.beginPath();
51
- ctx.moveTo(300, 10);
52
- ctx.lineTo(300, 300);
53
- ctx.lineWidth = 10;
54
- ctx.strokeStyle = 'MediumBlue';
55
- ctx.stroke();
56
- // second line
57
- ctx.beginPath();
58
- ctx.moveTo(20, 200);
59
- ctx.lineTo(100, 350);
60
- ctx.lineWidth = 10;
61
- ctx.strokeStyle = 'MediumPurple';
62
- ctx.stroke();
63
- },
64
- choices: ['Blue line', 'Purple line'],
65
- prompt: '<p>Which line is longer?</p>',
66
- data: {line1_color: 'blue', line1_length: 290, line2_color: "purple", line2_length: 170}
67
- };
68
-
69
- // to use the canvas stimulus function with timeline variables,
70
- // the jsPsych.timelineVariable() function can be used inside your stimulus function
71
- var circle_procedure = {
72
- timeline: [{
73
- type: 'canvas-button-response',
74
- stimulus: function(c) {
75
- filledCirc(c, jsPsych.timelineVariable('radius'), jsPsych.timelineVariable('color'));
76
- },
77
- choices: ['Red', 'Green', 'Blue'],
78
- prompt: '<p>What color is the circle?</p>',
79
- data: {radius: jsPsych.timelineVariable('radius'), color: jsPsych.timelineVariable('color')}
80
- }],
81
- timeline_variables: [
82
- {radius: 100, color: 'red'},
83
- {radius: 200, color: 'green'},
84
- {radius: 50, color: 'blue'}
85
- ]
86
- };
87
-
88
- jsPsych.init({
89
- timeline: [circle_1, circle_2, lines, circle_procedure],
90
- on_finish: function () {
91
- jsPsych.data.displayData();
92
- }
93
- });
94
- </script>
95
- </html>
@@ -1,78 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-canvas-keyboard-response.js"></script>
6
- <link rel="stylesheet" href="../css/jspsych.css">
7
- </head>
8
- <body></body>
9
- <script>
10
-
11
- // stimulus functions that take the canvas as its only argument
12
- // these function names can be used as the value for the stimulus parameter
13
- function drawRect(c){
14
- var ctx = c.getContext('2d');
15
- ctx.beginPath();
16
- ctx.rect(150, 225, 200, 50);
17
- ctx.stroke();
18
- }
19
-
20
- function drawCirc(c) {
21
- var ctx = c.getContext('2d');
22
- ctx.beginPath();
23
- ctx.arc(250, 250, 200, 0, 2 * Math.PI);
24
- ctx.stroke();
25
- }
26
-
27
- var trial_1 = {
28
- type: 'canvas-keyboard-response',
29
- stimulus: drawRect,
30
- choices: ['e','i'],
31
- prompt: '<p>Is this a circle or a rectangle? Press "e" for circle and "i" for rectangle.</p>',
32
- data: {shape: 'rectangle'}
33
- };
34
-
35
- var trial_2 = {
36
- type: 'canvas-keyboard-response',
37
- stimulus: drawCirc,
38
- choices: ['e','i'],
39
- prompt: '<p>Is this a circle or a rectangle? Press "e" for circle and "i" for rectangle.</p>',
40
- data: {shape: 'circle'}
41
- }
42
-
43
- // to use the canvas stimulus function with timeline variables,
44
- // the jsPsych.timelineVariable() function can be used inside your stimulus function
45
- var trial_procedure = {
46
- timeline: [{
47
- type: 'canvas-keyboard-response',
48
- stimulus: function(c) {
49
- var ctx = c.getContext('2d');
50
- ctx.beginPath();
51
- ctx.fillStyle = jsPsych.timelineVariable('color');
52
- ctx.fillRect(
53
- jsPsych.timelineVariable('upper_left_x'),
54
- jsPsych.timelineVariable('upper_left_y'),
55
- jsPsych.timelineVariable('width'),
56
- jsPsych.timelineVariable('height')
57
- );
58
- ctx.stroke();
59
- },
60
- choices: ['r','b'],
61
- prompt: '<p>What color is the rectangle? Press "r" for red and "b" for blue.</p>',
62
- data: {color: jsPsych.timelineVariable('color')}
63
- }],
64
- timeline_variables: [
65
- {upper_left_x: 150, upper_left_y: 100, height: 100, width: 150, color: 'red'},
66
- {upper_left_x: 270, upper_left_y: 200, height: 300, width: 200, color: 'blue'},
67
- {upper_left_x: 150, upper_left_y: 130, height: 200, width: 50, color: 'blue'}
68
- ]
69
- };
70
-
71
- jsPsych.init({
72
- timeline: [trial_1, trial_2, trial_procedure],
73
- on_finish: function () {
74
- jsPsych.data.displayData();
75
- }
76
- });
77
- </script>
78
- </html>
@@ -1,67 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-canvas-slider-response.js"></script>
6
- <link rel="stylesheet" href="../css/jspsych.css">
7
- </head>
8
- <body></body>
9
- <script>
10
-
11
- var colors;
12
-
13
- // stimulus function that takes the canvas as its only argument
14
- // this function name can be used as the value for the stimulus parameter
15
- function twoSquares(c) {
16
- var ctx = c.getContext('2d');
17
- ctx.fillStyle = '#FF3333';
18
- ctx.fillRect(200, 70, 40, 40);
19
- ctx.fillStyle = '#FF6A33';
20
- ctx.fillRect(260, 70, 40, 40);
21
- }
22
-
23
- var trial_1 = {
24
- type: 'canvas-slider-response',
25
- stimulus: twoSquares,
26
- labels: ['0','10'],
27
- canvas_size: [200, 500],
28
- prompt: '<p>How different would you say the colors of these two squares are on a scale from 0 (the same) to 10 (completely different)?</p>',
29
- data: {color1: '#FF3333', color2: '#FF6A33'}
30
- }
31
-
32
- // stimulus function that takes the canvas and additional parameters
33
- // this can be called inside of an anonymous stimulus function, which takes the canvas as its only argument
34
- function twoSquaresColors(c, colors) {
35
- var ctx = c.getContext('2d');
36
- ctx.fillStyle = colors[0];
37
- ctx.fillRect(200, 70, 40, 40);
38
- ctx.fillStyle = colors[1];
39
- ctx.fillRect(260, 70, 40, 40);
40
- }
41
-
42
- var trial_2 = {
43
- type: 'canvas-slider-response',
44
- stimulus: function(c) {
45
- colors = ['darkred', 'cyan'];
46
- twoSquaresColors(c, colors);
47
- },
48
- labels: ['Exactly<br>the same','Totally<br>different'],
49
- canvas_size: [200, 500],
50
- require_movement: true,
51
- stimulus_duration: 1000,
52
- prompt: '<p>How different would you say the colors of these two squares are on a scale from 0 (the same) to 10 (completely different)?</p>'+
53
- '<p>Interaction with the slider is required to continue. Stimulus will be hidden after 1 second.</p>',
54
- on_finish: function(data) {
55
- data.color1 = colors[0];
56
- data.color2 = colors[1];
57
- }
58
- };
59
-
60
- jsPsych.init({
61
- timeline: [trial_1, trial_2],
62
- on_finish: function () {
63
- jsPsych.data.displayData();
64
- }
65
- });
66
- </script>
67
- </html>
@@ -1,49 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
-
4
- <head>
5
- <script src="../jspsych.js"></script>
6
- <script src="../plugins/jspsych-categorize-animation.js"></script>
7
- <script src="../plugins/jspsych-preload.js"></script>
8
- <link rel="stylesheet" href="../css/jspsych.css">
9
- <style>
10
- #jspsych-categorize-animation-stimulus {
11
- width: 300px;
12
- height: 225px;
13
- }
14
- </style>
15
- </head>
16
- <body></body>
17
- <script>
18
-
19
- var preload = {
20
- type: 'preload',
21
- auto_preload: true
22
- }
23
-
24
- // If render_on_canvas is false, the images will be shown via an <img> rather than <canvas> element.
25
- // In some browsers, the first time the images are shown, the <img> method (render_on_canvas: false) will produce a brief
26
- // blank screen (white flash) between images.
27
- var trials = {
28
- type: 'categorize-animation',
29
- stimuli: ['img/happy_face_1.jpg', 'img/sad_face_3.jpg'],
30
- key_answer: 'd',
31
- choices: ['d', 's'],
32
- text_answer: 'different',
33
- feedback_duration: 1000,
34
- correct_text: "<p>Correct. The faces had %ANS% expressions.</p>",
35
- incorrect_text: "<p>Incorrect. The faces had %ANS% expressions.</p>",
36
- prompt: "<p>Press &quot;d&quot; if the faces had different emotional expressions. Press &quot;s&quot; if the faces had the same emotional expression.</p>",
37
- //render_on_canvas: false
38
- };
39
-
40
- jsPsych.init({
41
- timeline: [preload, trials],
42
- on_finish: function() {
43
- jsPsych.data.displayData();
44
- }
45
- });
46
-
47
- </script>
48
-
49
- </html>
@@ -1,33 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
-
4
- <head>
5
- <script src="../jspsych.js"></script>
6
- <script src="../plugins/jspsych-categorize-html.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
- <body></body>
10
- <script>
11
- var trial = {
12
- type: 'categorize-html',
13
- stimulus: '<div style="margin: auto; width: 200px; height: 200px; background-color: blue;"></div>',
14
- key_answer: 'b',
15
- choices: ['b', 'p'],
16
- text_answer: 'blue',
17
- correct_text: "<p>Correct. This color is %ANS%.</p>",
18
- incorrect_text: "<p>Incorrect. This color is %ANS%. Please press the correct key to continue.</p>",
19
- prompt: "<p>Press &quot;b&quot; if the square is blue. Press &quot;p&quot; if the square is purple.</p>",
20
- trial_duration: 1500,
21
- show_feedback_on_timeout: false,
22
- force_correct_button_press: true
23
- };
24
-
25
- jsPsych.init({
26
- timeline: [trial],
27
- on_finish: function() {
28
- jsPsych.data.displayData();
29
- }
30
- });
31
- </script>
32
-
33
- </html>