jspsych 6.3.1 → 7.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/README.md +36 -37
  2. package/css/jspsych.css +39 -39
  3. package/dist/JsPsych.d.ts +112 -0
  4. package/dist/TimelineNode.d.ts +34 -0
  5. package/dist/index.browser.js +3171 -0
  6. package/dist/index.browser.js.map +1 -0
  7. package/dist/index.browser.min.js +2 -0
  8. package/dist/index.browser.min.js.map +1 -0
  9. package/dist/index.cjs +3165 -0
  10. package/dist/index.cjs.map +1 -0
  11. package/dist/index.d.ts +11 -0
  12. package/dist/index.js +3159 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/migration.d.ts +3 -0
  15. package/dist/modules/data/DataCollection.d.ts +45 -0
  16. package/dist/modules/data/DataColumn.d.ts +15 -0
  17. package/dist/modules/data/index.d.ts +25 -0
  18. package/dist/modules/data/utils.d.ts +3 -0
  19. package/dist/modules/extensions.d.ts +22 -0
  20. package/dist/modules/plugin-api/HardwareAPI.d.ts +15 -0
  21. package/dist/modules/plugin-api/KeyboardListenerAPI.d.ts +34 -0
  22. package/dist/modules/plugin-api/MediaAPI.d.ts +27 -0
  23. package/dist/modules/plugin-api/SimulationAPI.d.ts +41 -0
  24. package/dist/modules/plugin-api/TimeoutAPI.d.ts +5 -0
  25. package/dist/modules/plugin-api/index.d.ts +8 -0
  26. package/dist/modules/plugins.d.ts +136 -0
  27. package/dist/modules/randomization.d.ts +35 -0
  28. package/dist/modules/turk.d.ts +40 -0
  29. package/dist/modules/utils.d.ts +7 -0
  30. package/package.json +32 -15
  31. package/src/JsPsych.ts +884 -0
  32. package/src/TimelineNode.ts +536 -0
  33. package/src/index.ts +71 -0
  34. package/src/migration.ts +37 -0
  35. package/src/modules/data/DataCollection.ts +198 -0
  36. package/src/modules/data/DataColumn.ts +86 -0
  37. package/src/modules/data/index.ts +174 -0
  38. package/src/modules/data/utils.ts +75 -0
  39. package/src/modules/extensions.ts +23 -0
  40. package/src/modules/plugin-api/HardwareAPI.ts +32 -0
  41. package/src/modules/plugin-api/KeyboardListenerAPI.ts +165 -0
  42. package/src/modules/plugin-api/MediaAPI.ts +337 -0
  43. package/src/modules/plugin-api/SimulationAPI.ts +181 -0
  44. package/src/modules/plugin-api/TimeoutAPI.ts +16 -0
  45. package/src/modules/plugin-api/index.ts +28 -0
  46. package/src/modules/plugins.ts +165 -0
  47. package/src/modules/randomization.ts +327 -0
  48. package/src/modules/turk.ts +99 -0
  49. package/src/modules/utils.ts +30 -0
  50. package/.github/workflows/jest.yml +0 -20
  51. package/code-of-conduct.md +0 -56
  52. package/contributors.md +0 -61
  53. package/docs/CNAME +0 -1
  54. package/docs/about/about.md +0 -18
  55. package/docs/about/contributing.md +0 -43
  56. package/docs/about/license.md +0 -25
  57. package/docs/about/support.md +0 -7
  58. package/docs/core_library/jspsych-core.md +0 -719
  59. package/docs/core_library/jspsych-data.md +0 -587
  60. package/docs/core_library/jspsych-pluginAPI.md +0 -624
  61. package/docs/core_library/jspsych-randomization.md +0 -389
  62. package/docs/core_library/jspsych-turk.md +0 -98
  63. package/docs/extensions/extensions.md +0 -83
  64. package/docs/extensions/jspsych-ext-webgazer.md +0 -137
  65. package/docs/img/blue.png +0 -0
  66. package/docs/img/devtools-change-css.png +0 -0
  67. package/docs/img/devtools-css-errors.png +0 -0
  68. package/docs/img/devtools-inspect-element.png +0 -0
  69. package/docs/img/folder-setup.png +0 -0
  70. package/docs/img/folder-with-html.png +0 -0
  71. package/docs/img/githubreleases.jpg +0 -0
  72. package/docs/img/jspsych-favicon.png +0 -0
  73. package/docs/img/jspsych-logo-no-text-mono.svg +0 -493
  74. package/docs/img/jspsych-logo.jpg +0 -0
  75. package/docs/img/orange.png +0 -0
  76. package/docs/img/palmer_stim.png +0 -0
  77. package/docs/img/progress_bar.png +0 -0
  78. package/docs/img/prolific-study-completion.png +0 -0
  79. package/docs/img/prolific-study-link.png +0 -0
  80. package/docs/img/visual_search_example.jpg +0 -0
  81. package/docs/index.md +0 -9
  82. package/docs/overview/browser-device-support.md +0 -35
  83. package/docs/overview/callbacks.md +0 -180
  84. package/docs/overview/data.md +0 -281
  85. package/docs/overview/dynamic-parameters.md +0 -147
  86. package/docs/overview/exclude-browser.md +0 -32
  87. package/docs/overview/experiment-options.md +0 -149
  88. package/docs/overview/eye-tracking.md +0 -271
  89. package/docs/overview/fullscreen.md +0 -36
  90. package/docs/overview/media-preloading.md +0 -369
  91. package/docs/overview/mturk.md +0 -77
  92. package/docs/overview/plugins.md +0 -320
  93. package/docs/overview/progress-bar.md +0 -110
  94. package/docs/overview/prolific.md +0 -78
  95. package/docs/overview/record-browser-interactions.md +0 -23
  96. package/docs/overview/running-experiments.md +0 -95
  97. package/docs/overview/style.md +0 -293
  98. package/docs/overview/timeline.md +0 -457
  99. package/docs/plugins/jspsych-animation.md +0 -40
  100. package/docs/plugins/jspsych-audio-button-response.md +0 -60
  101. package/docs/plugins/jspsych-audio-keyboard-response.md +0 -58
  102. package/docs/plugins/jspsych-audio-slider-response.md +0 -53
  103. package/docs/plugins/jspsych-call-function.md +0 -81
  104. package/docs/plugins/jspsych-canvas-button-response.md +0 -66
  105. package/docs/plugins/jspsych-canvas-keyboard-response.md +0 -68
  106. package/docs/plugins/jspsych-canvas-slider-response.md +0 -89
  107. package/docs/plugins/jspsych-categorize-animation.md +0 -60
  108. package/docs/plugins/jspsych-categorize-html.md +0 -53
  109. package/docs/plugins/jspsych-categorize-image.md +0 -53
  110. package/docs/plugins/jspsych-cloze.md +0 -45
  111. package/docs/plugins/jspsych-external-html.md +0 -70
  112. package/docs/plugins/jspsych-free-sort.md +0 -56
  113. package/docs/plugins/jspsych-fullscreen.md +0 -57
  114. package/docs/plugins/jspsych-html-button-response.md +0 -42
  115. package/docs/plugins/jspsych-html-keyboard-response.md +0 -51
  116. package/docs/plugins/jspsych-html-slider-response.md +0 -45
  117. package/docs/plugins/jspsych-iat-html.md +0 -64
  118. package/docs/plugins/jspsych-iat-image.md +0 -64
  119. package/docs/plugins/jspsych-image-button-response.md +0 -48
  120. package/docs/plugins/jspsych-image-keyboard-response.md +0 -58
  121. package/docs/plugins/jspsych-image-slider-response.md +0 -54
  122. package/docs/plugins/jspsych-instructions.md +0 -58
  123. package/docs/plugins/jspsych-maxdiff.md +0 -41
  124. package/docs/plugins/jspsych-preload.md +0 -128
  125. package/docs/plugins/jspsych-rdk.md +0 -119
  126. package/docs/plugins/jspsych-reconstruction.md +0 -48
  127. package/docs/plugins/jspsych-resize.md +0 -39
  128. package/docs/plugins/jspsych-same-different-html.md +0 -53
  129. package/docs/plugins/jspsych-same-different-image.md +0 -66
  130. package/docs/plugins/jspsych-serial-reaction-time-mouse.md +0 -52
  131. package/docs/plugins/jspsych-serial-reaction-time.md +0 -57
  132. package/docs/plugins/jspsych-survey-html-form.md +0 -50
  133. package/docs/plugins/jspsych-survey-likert.md +0 -70
  134. package/docs/plugins/jspsych-survey-multi-choice.md +0 -48
  135. package/docs/plugins/jspsych-survey-multi-select.md +0 -53
  136. package/docs/plugins/jspsych-survey-text.md +0 -63
  137. package/docs/plugins/jspsych-video-button-response.md +0 -54
  138. package/docs/plugins/jspsych-video-keyboard-response.md +0 -50
  139. package/docs/plugins/jspsych-video-slider-response.md +0 -60
  140. package/docs/plugins/jspsych-virtual-chinrest.md +0 -105
  141. package/docs/plugins/jspsych-visual-search-circle.md +0 -52
  142. package/docs/plugins/jspsych-vsl-animate-occlusion.md +0 -55
  143. package/docs/plugins/jspsych-vsl-grid-scene.md +0 -62
  144. package/docs/plugins/jspsych-webgazer-calibrate.md +0 -61
  145. package/docs/plugins/jspsych-webgazer-init-camera.md +0 -30
  146. package/docs/plugins/jspsych-webgazer-validate.md +0 -44
  147. package/docs/plugins/list-of-plugins.md +0 -54
  148. package/docs/tutorials/hello-world.md +0 -162
  149. package/docs/tutorials/rt-task.md +0 -1334
  150. package/docs/tutorials/video-tutorials.md +0 -11
  151. package/examples/add-to-end-of-timeline.html +0 -38
  152. package/examples/case-sensitive-responses.html +0 -45
  153. package/examples/conditional-and-loop-functions.html +0 -64
  154. package/examples/css/jquery-ui.css +0 -1225
  155. package/examples/css-classes-parameter.html +0 -145
  156. package/examples/data-add-properties.html +0 -44
  157. package/examples/data-as-function.html +0 -39
  158. package/examples/data-from-timeline.html +0 -52
  159. package/examples/data-from-url.html +0 -21
  160. package/examples/demo-flanker.html +0 -117
  161. package/examples/demo-simple-rt-task.html +0 -120
  162. package/examples/demos/demo_1.html +0 -35
  163. package/examples/demos/demo_2.html +0 -50
  164. package/examples/demos/demo_3.html +0 -63
  165. package/examples/display-element-to-embed-experiment.html +0 -79
  166. package/examples/end-active-node.html +0 -52
  167. package/examples/end-experiment.html +0 -45
  168. package/examples/exclusions.html +0 -32
  169. package/examples/external_html/simple_consent.html +0 -4
  170. package/examples/img/1.gif +0 -0
  171. package/examples/img/10.gif +0 -0
  172. package/examples/img/11.gif +0 -0
  173. package/examples/img/12.gif +0 -0
  174. package/examples/img/2.gif +0 -0
  175. package/examples/img/3.gif +0 -0
  176. package/examples/img/4.gif +0 -0
  177. package/examples/img/5.gif +0 -0
  178. package/examples/img/6.gif +0 -0
  179. package/examples/img/7.gif +0 -0
  180. package/examples/img/8.gif +0 -0
  181. package/examples/img/9.gif +0 -0
  182. package/examples/img/age/of1.jpg +0 -0
  183. package/examples/img/age/of2.jpg +0 -0
  184. package/examples/img/age/of3.jpg +0 -0
  185. package/examples/img/age/om1.jpg +0 -0
  186. package/examples/img/age/om2.jpg +0 -0
  187. package/examples/img/age/om3.jpg +0 -0
  188. package/examples/img/age/yf1.jpg +0 -0
  189. package/examples/img/age/yf4.jpg +0 -0
  190. package/examples/img/age/yf5.jpg +0 -0
  191. package/examples/img/age/ym2.jpg +0 -0
  192. package/examples/img/age/ym3.jpg +0 -0
  193. package/examples/img/age/ym5.jpg +0 -0
  194. package/examples/img/backwardN.gif +0 -0
  195. package/examples/img/blue.png +0 -0
  196. package/examples/img/card.png +0 -0
  197. package/examples/img/con1.png +0 -0
  198. package/examples/img/con2.png +0 -0
  199. package/examples/img/fixation.gif +0 -0
  200. package/examples/img/happy_face_1.jpg +0 -0
  201. package/examples/img/happy_face_2.jpg +0 -0
  202. package/examples/img/happy_face_3.jpg +0 -0
  203. package/examples/img/happy_face_4.jpg +0 -0
  204. package/examples/img/inc1.png +0 -0
  205. package/examples/img/inc2.png +0 -0
  206. package/examples/img/normalN.gif +0 -0
  207. package/examples/img/orange.png +0 -0
  208. package/examples/img/redX.png +0 -0
  209. package/examples/img/ribbon.jpg +0 -0
  210. package/examples/img/sad_face_1.jpg +0 -0
  211. package/examples/img/sad_face_2.jpg +0 -0
  212. package/examples/img/sad_face_3.jpg +0 -0
  213. package/examples/img/sad_face_4.jpg +0 -0
  214. package/examples/js/snap.svg-min.js +0 -21
  215. package/examples/js/webgazer/ridgeWorker.mjs +0 -135
  216. package/examples/js/webgazer/webgazer.js +0 -88909
  217. package/examples/js/webgazer/worker_scripts/mat.js +0 -306
  218. package/examples/js/webgazer/worker_scripts/util.js +0 -398
  219. package/examples/jspsych-RDK.html +0 -58
  220. package/examples/jspsych-animation.html +0 -39
  221. package/examples/jspsych-audio-button-response.html +0 -58
  222. package/examples/jspsych-audio-keyboard-response.html +0 -68
  223. package/examples/jspsych-audio-slider-response.html +0 -61
  224. package/examples/jspsych-call-function.html +0 -32
  225. package/examples/jspsych-canvas-button-response.html +0 -95
  226. package/examples/jspsych-canvas-keyboard-response.html +0 -78
  227. package/examples/jspsych-canvas-slider-response.html +0 -67
  228. package/examples/jspsych-categorize-animation.html +0 -49
  229. package/examples/jspsych-categorize-html.html +0 -33
  230. package/examples/jspsych-categorize-image.html +0 -44
  231. package/examples/jspsych-cloze.html +0 -37
  232. package/examples/jspsych-free-sort.html +0 -109
  233. package/examples/jspsych-fullscreen.html +0 -45
  234. package/examples/jspsych-html-button-response.html +0 -43
  235. package/examples/jspsych-html-keyboard-response.html +0 -42
  236. package/examples/jspsych-html-slider-response.html +0 -53
  237. package/examples/jspsych-iat.html +0 -520
  238. package/examples/jspsych-image-button-response.html +0 -91
  239. package/examples/jspsych-image-keyboard-response.html +0 -85
  240. package/examples/jspsych-image-slider-response.html +0 -85
  241. package/examples/jspsych-instructions.html +0 -37
  242. package/examples/jspsych-maxdiff.html +0 -33
  243. package/examples/jspsych-preload.html +0 -140
  244. package/examples/jspsych-reconstruction.html +0 -43
  245. package/examples/jspsych-resize.html +0 -34
  246. package/examples/jspsych-same-different-html.html +0 -28
  247. package/examples/jspsych-same-different-image.html +0 -39
  248. package/examples/jspsych-serial-reaction-time-mouse.html +0 -98
  249. package/examples/jspsych-serial-reaction-time.html +0 -54
  250. package/examples/jspsych-survey-html-form.html +0 -33
  251. package/examples/jspsych-survey-likert.html +0 -42
  252. package/examples/jspsych-survey-multi-choice.html +0 -40
  253. package/examples/jspsych-survey-multi-select.html +0 -42
  254. package/examples/jspsych-survey-text.html +0 -34
  255. package/examples/jspsych-video-button-response.html +0 -65
  256. package/examples/jspsych-video-keyboard-response.html +0 -61
  257. package/examples/jspsych-video-slider-response.html +0 -63
  258. package/examples/jspsych-virtual-chinrest.html +0 -69
  259. package/examples/jspsych-visual-search-circle.html +0 -64
  260. package/examples/jspsych-vsl-animate-occlusion.html +0 -35
  261. package/examples/jspsych-vsl-grid-scene.html +0 -47
  262. package/examples/lexical-decision.html +0 -134
  263. package/examples/manual-preloading.html +0 -59
  264. package/examples/pause-unpause.html +0 -33
  265. package/examples/progress-bar.html +0 -68
  266. package/examples/save-trial-parameters.html +0 -98
  267. package/examples/sound/hammer.mp3 +0 -0
  268. package/examples/sound/sound.mp3 +0 -0
  269. package/examples/sound/speech_blue.mp3 +0 -0
  270. package/examples/sound/speech_green.mp3 +0 -0
  271. package/examples/sound/speech_joke.mp3 +0 -0
  272. package/examples/sound/speech_red.mp3 +0 -0
  273. package/examples/sound/tone.mp3 +0 -0
  274. package/examples/timeline-variables-sampling.html +0 -50
  275. package/examples/timeline-variables.html +0 -64
  276. package/examples/video/sample_video.mp4 +0 -0
  277. package/examples/webgazer.html +0 -174
  278. package/examples/webgazer_audio.html +0 -90
  279. package/examples/webgazer_image.html +0 -60
  280. package/extensions/jspsych-ext-webgazer.js +0 -265
  281. package/jspsych.js +0 -3023
  282. package/license.txt +0 -21
  283. package/mkdocs.yml +0 -118
  284. package/plugins/jspsych-animation.js +0 -189
  285. package/plugins/jspsych-audio-button-response.js +0 -269
  286. package/plugins/jspsych-audio-keyboard-response.js +0 -209
  287. package/plugins/jspsych-audio-slider-response.js +0 -278
  288. package/plugins/jspsych-call-function.js +0 -58
  289. package/plugins/jspsych-canvas-button-response.js +0 -199
  290. package/plugins/jspsych-canvas-keyboard-response.js +0 -155
  291. package/plugins/jspsych-canvas-slider-response.js +0 -207
  292. package/plugins/jspsych-categorize-animation.js +0 -266
  293. package/plugins/jspsych-categorize-html.js +0 -220
  294. package/plugins/jspsych-categorize-image.js +0 -222
  295. package/plugins/jspsych-cloze.js +0 -112
  296. package/plugins/jspsych-external-html.js +0 -112
  297. package/plugins/jspsych-free-sort.js +0 -478
  298. package/plugins/jspsych-fullscreen.js +0 -106
  299. package/plugins/jspsych-html-button-response.js +0 -188
  300. package/plugins/jspsych-html-keyboard-response.js +0 -149
  301. package/plugins/jspsych-html-slider-response.js +0 -202
  302. package/plugins/jspsych-iat-html.js +0 -284
  303. package/plugins/jspsych-iat-image.js +0 -286
  304. package/plugins/jspsych-image-button-response.js +0 -327
  305. package/plugins/jspsych-image-keyboard-response.js +0 -263
  306. package/plugins/jspsych-image-slider-response.js +0 -369
  307. package/plugins/jspsych-instructions.js +0 -237
  308. package/plugins/jspsych-maxdiff.js +0 -173
  309. package/plugins/jspsych-preload.js +0 -345
  310. package/plugins/jspsych-rdk.js +0 -1373
  311. package/plugins/jspsych-reconstruction.js +0 -134
  312. package/plugins/jspsych-resize.js +0 -166
  313. package/plugins/jspsych-same-different-html.js +0 -168
  314. package/plugins/jspsych-same-different-image.js +0 -169
  315. package/plugins/jspsych-serial-reaction-time-mouse.js +0 -212
  316. package/plugins/jspsych-serial-reaction-time.js +0 -247
  317. package/plugins/jspsych-survey-html-form.js +0 -171
  318. package/plugins/jspsych-survey-likert.js +0 -195
  319. package/plugins/jspsych-survey-multi-choice.js +0 -208
  320. package/plugins/jspsych-survey-multi-select.js +0 -232
  321. package/plugins/jspsych-survey-text.js +0 -185
  322. package/plugins/jspsych-video-button-response.js +0 -335
  323. package/plugins/jspsych-video-keyboard-response.js +0 -279
  324. package/plugins/jspsych-video-slider-response.js +0 -351
  325. package/plugins/jspsych-virtual-chinrest.js +0 -471
  326. package/plugins/jspsych-visual-search-circle.js +0 -259
  327. package/plugins/jspsych-vsl-animate-occlusion.js +0 -196
  328. package/plugins/jspsych-vsl-grid-scene.js +0 -103
  329. package/plugins/jspsych-webgazer-calibrate.js +0 -161
  330. package/plugins/jspsych-webgazer-init-camera.js +0 -139
  331. package/plugins/jspsych-webgazer-validate.js +0 -314
  332. package/plugins/template/jspsych-plugin-template.js +0 -35
  333. package/tests/README.md +0 -7
  334. package/tests/jsPsych/case-sensitive-responses.test.js +0 -53
  335. package/tests/jsPsych/css-classes-parameter.test.js +0 -107
  336. package/tests/jsPsych/default-iti.test.js +0 -51
  337. package/tests/jsPsych/default-parameters.test.js +0 -58
  338. package/tests/jsPsych/endexperiment.test.js +0 -49
  339. package/tests/jsPsych/events.test.js +0 -606
  340. package/tests/jsPsych/functions-as-parameters.test.js +0 -210
  341. package/tests/jsPsych/init.test.js +0 -48
  342. package/tests/jsPsych/loads.test.js +0 -7
  343. package/tests/jsPsych/min-rt.test.js +0 -58
  344. package/tests/jsPsych/progressbar.test.js +0 -202
  345. package/tests/jsPsych/timeline-variables.test.js +0 -531
  346. package/tests/jsPsych/timelines.test.js +0 -569
  347. package/tests/jsPsych.data/data-csv-conversion.test.js +0 -85
  348. package/tests/jsPsych.data/data-json-conversion.test.js +0 -120
  349. package/tests/jsPsych.data/datacollection.test.js +0 -117
  350. package/tests/jsPsych.data/datacolumn.test.js +0 -50
  351. package/tests/jsPsych.data/datamodule.test.js +0 -152
  352. package/tests/jsPsych.data/dataparameter.test.js +0 -251
  353. package/tests/jsPsych.data/interactions.test.js +0 -109
  354. package/tests/jsPsych.data/trialparameters.test.js +0 -175
  355. package/tests/jsPsych.extensions/extensions.test.js +0 -207
  356. package/tests/jsPsych.extensions/test-extension.js +0 -42
  357. package/tests/jsPsych.pluginAPI/pluginapi.test.js +0 -365
  358. package/tests/jsPsych.pluginAPI/preloads.test.js +0 -43
  359. package/tests/jsPsych.randomization/randomziation.test.js +0 -27
  360. package/tests/jsPsych.utils/utils.test.js +0 -58
  361. package/tests/plugins/plugin-animation.test.js +0 -34
  362. package/tests/plugins/plugin-audio-button-response.test.js +0 -15
  363. package/tests/plugins/plugin-audio-keyboard-response.test.js +0 -15
  364. package/tests/plugins/plugin-audio-slider-response.test.js +0 -15
  365. package/tests/plugins/plugin-call-function.test.js +0 -49
  366. package/tests/plugins/plugin-categorize-animation.test.js +0 -263
  367. package/tests/plugins/plugin-categorize-html.test.js +0 -17
  368. package/tests/plugins/plugin-categorize-image.test.js +0 -17
  369. package/tests/plugins/plugin-cloze.test.js +0 -157
  370. package/tests/plugins/plugin-free-sort.test.js +0 -106
  371. package/tests/plugins/plugin-fullscreen.test.js +0 -41
  372. package/tests/plugins/plugin-html-button-response.test.js +0 -161
  373. package/tests/plugins/plugin-html-keyboard-response.test.js +0 -139
  374. package/tests/plugins/plugin-html-slider-response.test.js +0 -155
  375. package/tests/plugins/plugin-iat-html.test.js +0 -299
  376. package/tests/plugins/plugin-iat-image.test.js +0 -298
  377. package/tests/plugins/plugin-image-button-response.test.js +0 -174
  378. package/tests/plugins/plugin-image-keyboard-response.test.js +0 -147
  379. package/tests/plugins/plugin-image-slider-response.test.js +0 -174
  380. package/tests/plugins/plugin-instructions.test.js +0 -85
  381. package/tests/plugins/plugin-maxdiff.test.js +0 -39
  382. package/tests/plugins/plugin-preload.test.js +0 -916
  383. package/tests/plugins/plugin-rdk.test.js +0 -61
  384. package/tests/plugins/plugin-reconstruction.test.js +0 -16
  385. package/tests/plugins/plugin-resize.test.js +0 -16
  386. package/tests/plugins/plugin-same-different-html.test.js +0 -17
  387. package/tests/plugins/plugin-same-different-image.test.js +0 -17
  388. package/tests/plugins/plugin-serial-reaction-time-mouse.test.js +0 -42
  389. package/tests/plugins/plugin-serial-reaction-time.test.js +0 -109
  390. package/tests/plugins/plugin-survey-html-form.test.js +0 -44
  391. package/tests/plugins/plugin-survey-likert.test.js +0 -48
  392. package/tests/plugins/plugin-survey-multi-choice.test.js +0 -47
  393. package/tests/plugins/plugin-survey-multi-select.test.js +0 -71
  394. package/tests/plugins/plugin-survey-text.test.js +0 -115
  395. package/tests/plugins/plugin-video-button-response.test.js +0 -32
  396. package/tests/plugins/plugin-video-keyboard-response.test.js +0 -32
  397. package/tests/plugins/plugin-video-slider-response.test.js +0 -31
  398. package/tests/plugins/plugin-visual-search-circle.test.js +0 -16
  399. package/tests/plugins/plugin-vsl-animate-occlusion.test.js +0 -16
  400. package/tests/plugins/plugin-vsl-grid-scene.test.js +0 -16
  401. package/tests/testing-utils.js +0 -13
@@ -1,85 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-image-keyboard-response.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
- // all images are used in standard trials that can be automatically preloaded (as well as being used in trials
13
- // that use timeline variables), so we can preload all image files with the auto_preload option
14
- var preload = {
15
- type: 'preload',
16
- auto_preload: true
17
- };
18
-
19
- // If render_on_canvas is false, the images will be shown via an <img> rather than <canvas> element.
20
- // In some browsers, the first time the images are shown, the <img> method (render_on_canvas: false) will produce a brief
21
- // blank screen (white flash) between images that are presented consecutively with no post_trial_gap between them.
22
- var trial = {
23
- type: 'image-keyboard-response',
24
- stimulus: jsPsych.timelineVariable('stim'),
25
- trial_duration: 300,
26
- choices: jsPsych.NO_KEYS,
27
- prompt: '<p>Watch the faces.</p>',
28
- stimulus_width: 400,
29
- maintain_aspect_ratio: true,
30
- post_trial_gap: 0,
31
- //render_on_canvas: false
32
- }
33
-
34
- var trial_proc = {
35
- timeline: [trial],
36
- timeline_variables: [
37
- {stim: 'img/happy_face_1.jpg'},
38
- {stim: 'img/happy_face_2.jpg'},
39
- {stim: 'img/happy_face_3.jpg'},
40
- {stim: 'img/happy_face_4.jpg'}
41
- ],
42
- repetitions: 3
43
- }
44
-
45
- var trial_1 = {
46
- type: 'image-keyboard-response',
47
- stimulus: 'img/happy_face_1.jpg',
48
- choices: ['y','n'],
49
- prompt: '<p>Have you seen this face before? Press y or n.</p>'
50
- }
51
-
52
- var trial_2 = {
53
- type: 'image-keyboard-response',
54
- stimulus: 'img/happy_face_2.jpg',
55
- choices: ['y','n'],
56
- trial_duration: 5000,
57
- prompt: '<p>Have you seen this face before? Press y or n. (5s time limit).</p>'
58
- }
59
-
60
- var trial_3 = {
61
- type: 'image-keyboard-response',
62
- stimulus: 'img/happy_face_3.jpg',
63
- choices: jsPsych.NO_KEYS,
64
- trial_duration: 2000,
65
- prompt: '<p>No response allowed. 2s wait.</p>'
66
- }
67
-
68
- var trial_4 = {
69
- type: 'image-keyboard-response',
70
- stimulus: 'img/happy_face_4.jpg',
71
- choices: ['y','n'],
72
- stimulus_width: 400,
73
- maintain_aspect_ratio: false,
74
- prompt: '<p>Have you seen this face before? Press y or n.</p><p>(Stimulus_width set to a smaller value and maintain_aspect_ratio set to false.)</p>'
75
- }
76
-
77
- jsPsych.init({
78
- timeline: [preload, trial_proc, trial_1, trial_2, trial_3, trial_4],
79
- on_finish: function() {
80
- jsPsych.data.displayData();
81
- }
82
- });
83
- </script>
84
-
85
- </html>
@@ -1,85 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-image-slider-response.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
- // three images are used in a standard way in image-* plugins and can therefore be automatically preloaded.
13
- // there's one additional image ('img/happy_face_4.jpg') that is only used in timeline variables
14
- // and will not be automatically preloaded, so this file must be preloaded manually.
15
- var preload = {
16
- type: 'preload',
17
- auto_preload: true,
18
- images: ['img/happy_face_4.jpg']
19
- }
20
-
21
- // If render_on_canvas is false, the images will be shown via an <img> rather than <canvas> element.
22
- // In some browsers, the first time the images are shown, the <img> method (render_on_canvas: false) will produce a brief
23
- // blank screen (white flash) between images that are presented consecutively with no post_trial_gap between them.
24
- var trial = {
25
- type: 'image-slider-response',
26
- stimulus: jsPsych.timelineVariable('stim'),
27
- trial_duration: 1000,
28
- labels: ['1 (least happy)', '100 (most happy)'],
29
- prompt: '<p>How happy is this person on a scale of 1-100?</p><p>(Consecutive images with no post_trial_gap)</p>',
30
- response_ends_trial: false,
31
- slider_width: 500,
32
- stimulus_width: 400,
33
- maintain_aspect_ratio: true,
34
- post_trial_gap: 0,
35
- //render_on_canvas: false
36
- }
37
-
38
- var trial_proc = {
39
- timeline: [trial],
40
- timeline_variables: [
41
- {stim: 'img/happy_face_1.jpg'},
42
- {stim: 'img/happy_face_2.jpg'},
43
- {stim: 'img/happy_face_3.jpg'},
44
- {stim: 'img/happy_face_4.jpg'}
45
- ]
46
- }
47
-
48
- var trial_1 = {
49
- type: 'image-slider-response',
50
- stimulus: 'img/happy_face_1.jpg',
51
- labels: ['1 (least happy)', '100 (most happy)'],
52
- slider_width: 500,
53
- require_movement: true,
54
- prompt: '<p>How happy is this person on a scale of 1-100? (Interaction with slider is required)</p>'
55
- }
56
-
57
- var trial_2 = {
58
- type: 'image-slider-response',
59
- stimulus: 'img/happy_face_2.jpg',
60
- labels: ['1 (least happy)', '100 (most happy)'],
61
- slider_start: 80,
62
- slider_width: 500,
63
- prompt: '<p>How happy is this person on a scale of 1-100? (5s time limit; set start value)</p>',
64
- trial_duration: 5000
65
- }
66
-
67
- var trial_3 = {
68
- type: 'image-slider-response',
69
- stimulus: 'img/happy_face_3.jpg',
70
- labels: ['1 (least happy)', '100 (most happy)'],
71
- slider_width: 500,
72
- prompt: '<p>How happy is this person on a scale of 1-100? (1s stimulus duration)</p>',
73
- stimulus_duration: 1000
74
- }
75
-
76
- jsPsych.init({
77
- timeline: [preload, trial_proc, trial_1, trial_2, trial_3],
78
- on_finish: function() {
79
- jsPsych.data.displayData();
80
- },
81
- default_iti: 250
82
- });
83
- </script>
84
-
85
- </html>
@@ -1,37 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-instructions.js"></script>
6
- <link rel="stylesheet" href="../css/jspsych.css">
7
- </head>
8
- <body></body>
9
- <script>
10
-
11
- var trial_1 = {
12
- type: 'instructions',
13
- pages: ['<p>Welcome to the experiment.</p><p>This is the first set of instructions.</p><p>Click next to begin.</p>',
14
- '<p>This is the second page of instructions.</p>',
15
- '<p>This is the final page.</p>'],
16
- show_clickable_nav: true
17
- }
18
-
19
- var trial_2 = {
20
- type: 'instructions',
21
- pages: ['<p>This is a new set of instructions.</p><p>Custom "Page X/Y" and next/previous button labels provide support for different languages.</p>',
22
- '<p>This is the second page of instructions.</p>',
23
- '<p>This is the final page.</p>'],
24
- show_clickable_nav: true,
25
- show_page_number: true,
26
- button_label_previous: 'Anterior',
27
- button_label_next: 'Próxima',
28
- page_label: 'Página',
29
- }
30
-
31
- jsPsych.init({
32
- timeline: [trial_1, trial_2],
33
- on_finish: function(){ jsPsych.data.displayData(); }
34
- });
35
-
36
- </script>
37
- </html>
@@ -1,33 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-maxdiff.js"></script>
6
- <link rel="stylesheet" href="../css/jspsych.css">
7
- </head>
8
- <body></body>
9
- <script>
10
-
11
- var maxdiff_trial = {
12
- type: 'maxdiff',
13
- alternatives: ['apple', 'orange', 'pear', 'banana'],
14
- labels: ['Most Preferred', 'Least Preferred'],
15
- preamble: '<p> Please select your <b>most preferred</b> and <b>least preferred</b> fruits. </p>'
16
- };
17
-
18
- var maxdiff_trial_random_required = {
19
- type: 'maxdiff',
20
- alternatives: ['strawberry', 'watermelon', 'kiwi', 'grapefruit'],
21
- labels: ['Most Preferred', 'Least Preferred'],
22
- preamble: '<p> Please select your <b>most preferred</b> and <b>least preferred</b> fruits. </p>',
23
- randomize_alternative_order: true,
24
- required: true
25
- }
26
-
27
- jsPsych.init({
28
- timeline: [maxdiff_trial, maxdiff_trial_random_required],
29
- on_finish: function() { jsPsych.data.displayData(); }
30
- });
31
-
32
- </script>
33
- </html>
@@ -1,140 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-preload.js"></script>
6
- <script src="../plugins/jspsych-html-button-response.js"></script>
7
- <script src="../plugins/jspsych-image-button-response.js"></script>
8
- <script src="../plugins/jspsych-audio-button-response.js"></script>
9
- <link rel="stylesheet" href="../css/jspsych.css">
10
- </head>
11
- <body></body>
12
- <script>
13
-
14
- // all preload files will print information to the console about file loading success/failure
15
- // through the on_error and on_success trial parameters
16
-
17
- // automatically preload all stimuli files based on the timeline
18
- var auto_preload_trial = {
19
- type: 'preload',
20
- auto_preload: true,
21
- on_error: function(file) {
22
- console.log('Error: ',file);
23
- },
24
- on_success: function(file) {
25
- console.log('Loaded: ',file);
26
- }
27
- };
28
-
29
- var start = {
30
- type: 'html-button-response',
31
- stimulus: '<p>The previous trial was an automatic preload trial.</p>'+
32
- '<p>This trial loaded all stimuli files that can be automatically preloaded<br>based on the main jsPsych experiment timeline.</p>'+
33
- '<p>In this example experiment, there are two trials in which the stimuli can be automatically preloaded.</p>'+
34
- '<p>The stimuli for these trials have finished loading.</p>',
35
- choices: ['Next']
36
- };
37
-
38
- var image_trial = {
39
- type: 'image-button-response',
40
- stimulus: 'img/happy_face_1.jpg',
41
- choices: ['Happy', 'Sad'],
42
- stimulus_width: 400
43
- };
44
-
45
- var audio_trial = {
46
- type: 'audio-button-response',
47
- stimulus: ['sound/speech_green.mp3'],
48
- choices: ['Continue']
49
- };
50
-
51
- var start_fail_example_1 = {
52
- type: 'html-button-response',
53
- stimulus: '<p>The next trial is a manual preload trial.</p>'+
54
- '<p>Manual preloading allows you to load specific files, for instance if you want to load files in batches,<br>'+
55
- 'or if the stimuli cannot be automatically preloaded (because you are using timeline variables or dynamic parameters).</p>'+
56
- '<p>In the next preload example, the files in the <i>images</i> array do not exist, so the preload will fail.</p>'+
57
- '<p>The <i>continue_after_error</i> parameter is set to <i>true</i>, so the experiment will continue despite the preload failure.</p>',
58
- choices: ['Next']
59
- };
60
-
61
- // manually preload specific files
62
- // continue with the experiment even if one or more files fails to load
63
- var preload_fail_example_1 = {
64
- type: 'preload',
65
- images: ['BAD_IMAGE_NAME_1','BAD_IMAGE_NAME_2','BAD_IMAGE_NAME_3'],
66
- audio: ['sound/speech_green.mp3','sound/speech_red.mp3'],
67
- message: '<p>Please wait while the files load.</p>',
68
- continue_after_error: true,
69
- max_load_time: 4000,
70
- on_error: function(file) {
71
- console.log('Error: ',file);
72
- },
73
- on_success: function(file) {
74
- console.log('Loaded: ',file);
75
- }
76
- };
77
-
78
- var after_fail_example_1 = {
79
- type: 'html-button-response',
80
- stimulus: function() {
81
- var message;
82
- // if continue_after_error is true in your preload trial, then you can check the trial
83
- // data to see if preloading was successful
84
- var preload_trial_data = jsPsych.data.getLastTrialData().values()[0];
85
- if (preload_trial_data.success) {
86
- message = '<p>All files loaded successfully!</p>';
87
- } else {
88
- message = '<p>There was a problem loading one or more files.</p>'+
89
- '<p>The files that failed to load are listed in the data for the previous trial.</p>';
90
- }
91
- return message;
92
- },
93
- choices: ['Next']
94
- };
95
-
96
- var start_fail_example_2 = {
97
- type: 'html-button-response',
98
- stimulus: '<p>The next trial is another manual preload trial.</p>'+
99
- '<p>It has been set up with bad file names, so it will also fail.</p>'+
100
- '<p>This time the <i>continue_after_error</i> parameter is set to <i>false</i>, so the experiment will stop with an error message.</p>'+
101
- '<p>The next trial will also show details about the errors (<i>show_detailed_errors: true</i>).</p>',
102
- choices: ['Next']
103
- };
104
-
105
- // manually preload specific files
106
- // if loading fails, then stop with a detailed error message
107
- var preload_fail_example_2 = {
108
- type: 'preload',
109
- images: ['img/happy_face_2.jpg','img/happy_face_3.jpg','img/sad_face_1.jpg','img/sad_face_2.jpg','img/sad_face_3.jpg','img/sad_face_4.jpg',
110
- 'img/1.gif','img/2.gif','img/3.gif','img/4.gif','img/5.gif','img/6.gif','img/7.gif','img/8.gif','img/9.gif','img/10.gif','img/11.gif','img/12.gif',
111
- 'BAD_IMAGE_NAME'],
112
- audio: ['BAD_AUDIO_NAME'],
113
- video: ['video/sample_video.mp4', 'BAD_VIDEO_NAME'], // videos will not be preloaded if HTML file is running locally (i.e. safe mode)
114
- message: '<p>Please wait...</p>',
115
- show_detailed_errors: true,
116
- max_load_time: null,
117
- post_trial_gap: 1000,
118
- on_error: function(file) {
119
- console.log('Error: ',file);
120
- },
121
- on_success: function(file) {
122
- console.log('Loaded: ',file);
123
- }
124
- };
125
-
126
- var after_fail_example_2 = {
127
- type: 'html-button-response',
128
- stimulus: '<p>All files loaded successfully!</p>',
129
- choices: ['End']
130
- };
131
-
132
- jsPsych.init({
133
- timeline: [auto_preload_trial, start, image_trial, audio_trial,
134
- start_fail_example_1, preload_fail_example_1, after_fail_example_1,
135
- start_fail_example_2, preload_fail_example_2, after_fail_example_2],
136
- on_finish: function(){jsPsych.data.displayData();}
137
- });
138
-
139
- </script>
140
- </html>
@@ -1,43 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-html-keyboard-response.js"></script>
6
- <script src="../plugins/jspsych-reconstruction.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
- <body></body>
10
- <script>
11
-
12
- var sample_function = function(param){
13
- var size = 50 + Math.floor(param*250);
14
- var html = '<div style="display: block; margin: auto; height: 300px; width: 300px; position: relative;">'+
15
- '<div style="display: block; position: absolute; top: '+(150 - size/2)+'px; left:'+(150 - size/2)+'px; background-color: #000000; '+
16
- 'width: '+size+'px; height: '+size+'px;"></div></div><p>Press "h" to make the square larger. Press "g" to make the square smaller.</p>'+
17
- '<p>When the square is the same size as the previous one, click Next.</p>';
18
- return html;
19
- }
20
-
21
- var pre_test = {
22
- type: 'html-keyboard-response',
23
- stimulus: '<div style="display: block; margin: auto; height: 300px; width: 300px; position: relative;">'+
24
- '<div style="display: block; position: absolute; top: '+(150 - 210/2)+'px; left:'+(150 - 210/2)+'px; background-color: #000000; '+
25
- 'width: 210px; height: 210px;"></div></div>',
26
- choices: ['c'],
27
- post_trial_gap: 1250,
28
- prompt: '<p>Study the size of this square carefully. On the next screen you will have to recreate it. When you are ready, press "c".</p>'
29
- }
30
-
31
- var test = {
32
- type: 'reconstruction',
33
- stim_function: sample_function,
34
- starting_value: 0.5,
35
- }
36
-
37
- jsPsych.init({
38
- timeline: [pre_test, test],
39
- on_finish: function() { jsPsych.data.displayData(); }
40
- });
41
-
42
- </script>
43
- </html>
@@ -1,34 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-resize.js"></script>
6
- <script src="../plugins/jspsych-image-keyboard-response.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
- <body>
10
- </body>
11
- <script>
12
-
13
- var inputs = {
14
- type: 'resize',
15
- item_width: 3 + 3/8,
16
- item_height: 2 + 1/8,
17
- prompt: "<p>Click and drag the lower right corner of the box until the box is the same size as a credit card held up to the screen.</p>",
18
- pixels_per_unit: 642/4
19
- };
20
-
21
- var image_display = {
22
- type: 'image-keyboard-response',
23
- stimulus: 'img/happy_face_4.jpg',
24
- prompt: '<p>If scaling worked, then the image above should be 4 inches wide.</p>',
25
- }
26
-
27
- jsPsych.init({
28
- timeline: [inputs, image_display],
29
- on_finish: function() {
30
- jsPsych.data.displayData();
31
- }
32
- });
33
- </script>
34
- </html>
@@ -1,28 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
-
4
- <head>
5
- <script src="../jspsych.js"></script>
6
- <script src="../plugins/jspsych-same-different-html.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
- <body></body>
10
- <script>
11
- var trial = {
12
- type: 'same-different-html',
13
- stimuli: ['<p>Talkative</p>', '<p>Loquacious</p>'],
14
- prompt: "<p>Press 's' if the words mean the same thing. Press 'd' if they mean different things.</p>",
15
- same_key: 's',
16
- different_key: 'd',
17
- answer: 'same'
18
- }
19
-
20
- jsPsych.init({
21
- timeline: [trial],
22
- on_finish: function() {
23
- jsPsych.data.displayData();
24
- }
25
- });
26
- </script>
27
-
28
- </html>
@@ -1,39 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
-
4
- <head>
5
- <script src="../jspsych.js"></script>
6
- <script src="../plugins/jspsych-same-different-image.js"></script>
7
- <script src="../plugins/jspsych-preload.js"></script>
8
- <link rel="stylesheet" href="../css/jspsych.css">
9
- <style>
10
- img {
11
- width: 300px;
12
- }
13
- </style>
14
- </head>
15
- <body></body>
16
- <script>
17
- var preload = {
18
- type: 'preload',
19
- auto_preload: true
20
- }
21
-
22
- var trial = {
23
- type: 'same-different-image',
24
- stimuli: ['img/happy_face_1.jpg', 'img/sad_face_3.jpg'],
25
- prompt: "<p>Press 's' if the faces had the same emotional expression. Press 'd' if the faces had different emotional expressions.</p>",
26
- same_key: 's',
27
- different_key: 'd',
28
- answer: 'different'
29
- }
30
-
31
- jsPsych.init({
32
- timeline: [preload, trial],
33
- on_finish: function() {
34
- jsPsych.data.displayData();
35
- }
36
- });
37
- </script>
38
-
39
- </html>
@@ -1,98 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
-
4
- <head>
5
- <script src="../jspsych.js"></script>
6
- <script src="../plugins/jspsych-serial-reaction-time-mouse.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
-
10
- <body></body>
11
-
12
- <script>
13
-
14
- var grid_rows = 8;
15
- var grid_cols = 8;
16
- var square_size = 50;
17
-
18
- var grid = [];
19
- var locations = [];
20
-
21
- for(var i=0; i<grid_rows; i++){
22
- grid.push([]);
23
- for(var j=0; j<grid_cols; j++){
24
- grid[i].push(1);
25
- if(i>0 && i < grid_rows-1 && j > 0 && j < grid_cols - 1){
26
- locations.push([i,j]);
27
- }
28
- }
29
- }
30
-
31
- var last_predictor = null;
32
- var last_target = null;
33
- var colors = ["#f3c300", "#875692", "#f38400", "#a1caf1", "#be0032", "#c2b280", "#848482", "#008856"];
34
- var deltas = [[-1,-1], [-1, 0], [-1, 1], [0, -1], [0, 1], [1, -1], [1,0], [1,1]];
35
- var order = [0,1,2,3,4,5,6,7];
36
- order = jsPsych.randomization.shuffle(order);
37
- var current_idx = -1;
38
-
39
- function getNextPredictor(){
40
- current_idx++;
41
- if(current_idx >= order.length){
42
- order = jsPsych.randomization.shuffle(order);
43
- current_idx = 0;
44
- }
45
- var predictor = jsPsych.randomization.sampleWithoutReplacement(locations, 1)[0];
46
- if(last_target !== null){
47
- while(predictor[0] == last_target[0] && predictor[1] == last_target[1]){
48
- predictor = jsPsych.randomization.sampleWithoutReplacement(locations, 1)[0];
49
- }
50
- }
51
- last_predictor = predictor;
52
- return predictor;
53
- }
54
-
55
- function getNextTarget(){
56
- var target = last_predictor.slice();
57
- var d = deltas[order[current_idx]];
58
- target[0] = target[0] + d[0];
59
- target[1] = target[1] + d[1];
60
- last_target = target;
61
- return target;
62
- }
63
-
64
- function getColor(){
65
- return colors[order[current_idx]];
66
- }
67
-
68
- var timeline_2 = {
69
- timeline: [
70
- {
71
- type: 'serial-reaction-time-mouse',
72
- grid: grid,
73
- target: getNextPredictor,
74
- target_color: getColor,
75
- grid_square_size: square_size,
76
- allow_nontarget_responses: true
77
- },
78
- {
79
- type: 'serial-reaction-time-mouse',
80
- grid: grid,
81
- target: getNextTarget,
82
- target_color: getColor,
83
- grid_square_size: square_size
84
- }
85
- ],
86
- repetitions: 6,
87
- }
88
-
89
- jsPsych.init({
90
- timeline: [timeline_2],
91
- on_finish: function() {
92
- jsPsych.data.displayData();
93
- },
94
- default_iti: 0
95
- });
96
- </script>
97
-
98
- </html>
@@ -1,54 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
-
4
- <head>
5
-
6
- <script src="../jspsych.js"></script>
7
- <script src="../plugins/jspsych-serial-reaction-time.js"></script>
8
- <link rel="stylesheet" href="../css/jspsych.css">
9
- </head>
10
-
11
- <script>
12
-
13
- var locations = [
14
- [0,0],
15
- [0,1],
16
- [0,2],
17
- [0,3]
18
- ];
19
-
20
- locations = jsPsych.randomization.shuffle(locations);
21
-
22
- var timeline = {
23
- timeline: [
24
- {
25
- type: 'serial-reaction-time',
26
- target: jsPsych.timelineVariable('target1'),
27
- grid_square_size: 80,
28
- prompt: "<p>Press the key that corresponds to the dark box (use 3, 5, 7, 9)</p>"
29
- },
30
- {
31
- type: 'serial-reaction-time',
32
- target: jsPsych.timelineVariable('target2'),
33
- grid_square_size: 80,
34
- prompt: "<p>Press the key that corresponds to the dark box (use 3, 5, 7, 9)</p>"
35
- }
36
- ],
37
- timeline_variables: [
38
- {target1: locations[0], target2: locations[1]},
39
- {target1: locations[2], target2: locations[3]}
40
- ],
41
- randomize_order: true,
42
- repetitions: 10
43
- }
44
-
45
- jsPsych.init({
46
- timeline: [timeline],
47
- on_finish: function() {
48
- jsPsych.data.displayData();
49
- },
50
- default_iti: 0
51
- });
52
- </script>
53
-
54
- </html>