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,520 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <title>IAT Example</title>
5
- <script src="../jspsych.js"></script>
6
- <script src="../plugins/jspsych-iat-image.js"></script>
7
- <script src="../plugins/jspsych-iat-html.js"></script>
8
- <script src="../plugins/jspsych-html-keyboard-response.js"></script>
9
- <script src="../plugins/jspsych-preload.js"></script>
10
- <link href="../css/jspsych.css" rel="stylesheet">
11
- </head>
12
- <body>
13
- </body>
14
- <script>
15
-
16
- // manually preload images due to presenting them with timeline variables
17
- var images = ['img/age/of1.jpg','img/age/of2.jpg','img/age/of3.jpg','img/age/om1.jpg','img/age/om2.jpg','img/age/om3.jpg',
18
- 'img/age/yf1.jpg','img/age/yf4.jpg','img/age/yf5.jpg','img/age/ym2.jpg','img/age/ym3.jpg','img/age/ym5.jpg'];
19
- var preload = {
20
- type: 'preload',
21
- images: images
22
- }
23
-
24
- var welcome_block = {
25
- type: 'html-keyboard-response',
26
- stimulus: '<p>Welcome to the Age Task. In this study you will ' +
27
- 'complete an Implicit Association Test (IAT) in which you ' +
28
- 'will be asked to sort pictures and words into groups as ' +
29
- 'fast as you can.</p><p>Press any key to begin.</p>',
30
- post_trial_gap: 1500
31
- };
32
-
33
- var category_block = {
34
- type: 'html-keyboard-response',
35
- stimulus: '<p>Next, you will use the "e" and "i" computer keys ' + 'to categorize items into groups as fast as you can. ' +
36
- 'These are the four groups and the items that belong to each:<br><br>' +
37
- '<strong>Good</strong>:<br>' + 'Fabulous, Excitement, Glorious, Cheerful, Cherish, ' +
38
- 'Enjoy, Delightful, Joyous<br><br>' + '<strong>Bad</strong>:<br>' + 'Humiliate, ' +
39
- 'Evil, Grief, Yucky, Detest, Poison, Abuse, Despise<br><br>' +
40
- '<strong>Old</strong>:<br>' + "<img src='img/age/of1.jpg'></img> " +
41
- "<img src='img/age/of2.jpg'></img> " + "<img src='img/age/of3.jpg'></img> " +
42
- "<img src='img/age/om1.jpg'></img> " + "<img src='img/age/om2.jpg'></img> " +
43
- "<img src='img/age/om3.jpg'></img><br><br>" + '<strong>Young</strong>:<br>' +
44
- "<img src='img/age/yf1.jpg'></img> " + "<img src='img/age/yf4.jpg'></img> " +
45
- "<img src='img/age/yf5.jpg'></img> " + "<img src='img/age/ym2.jpg'></img> " +
46
- "<img src='img/age/ym3.jpg'></img> " + "<img src='img/age/ym5.jpg'></img><br><br>" +
47
- "Press any key to continue.</p>",
48
- post_trial_gap: 1500
49
- };
50
-
51
- var instructions_block = {
52
- type: 'html-keyboard-response',
53
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'><p>Press e for:<br><strong>OLD</strong></p></div>" +
54
- "<div style='position: absolute; top: 18%; right: 20%'><p>Press i for:<br><strong>YOUNG</strong></p></div>" +
55
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>Put a left finger on the <strong>e</strong> key for items that belong to the Old People category. Put a right finger on the " +
56
- "<strong>i</strong> key for items that belong to the Young People " +
57
- "category. Items will appear one at a time.<br><br>" + "If you " +
58
- "make a mistake, a red X will appear. Press the keys listed below " +
59
- "to continue. Go as fast as you can while being accurate.<br><br> " +
60
- "Press the any key when you are ready to start.</div>",
61
- };
62
-
63
-
64
- var trial_block = {
65
- timeline: [
66
- {
67
- type: 'iat-image',
68
- stimulus: jsPsych.timelineVariable('stimulus'),
69
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
70
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
71
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
72
- force_correct_key_press: true,
73
- display_feedback: true,
74
- trial_duration: 3000, //Only if display_feedback is false
75
- left_category_key: 'e',
76
- right_category_key: 'i',
77
- left_category_label: ['OLD'],
78
- right_category_label: ['YOUNG'],
79
- response_ends_trial: true,
80
- data: { iat_type: 'practice' }
81
- }
82
- ],
83
- timeline_variables: [
84
- {stimulus: "img/age/of1.jpg", stim_key_association: "left"},
85
- {stimulus: "img/age/of2.jpg", stim_key_association: "left"},
86
- {stimulus: "img/age/of3.jpg", stim_key_association: "left"},
87
- {stimulus: "img/age/om1.jpg", stim_key_association: "left"},
88
- {stimulus: "img/age/om2.jpg", stim_key_association: "left"},
89
- {stimulus: "img/age/om3.jpg", stim_key_association: "left"},
90
- {stimulus: "img/age/yf1.jpg", stim_key_association: "right"},
91
- {stimulus: "img/age/yf4.jpg", stim_key_association: "right"},
92
- {stimulus: "img/age/yf5.jpg", stim_key_association: "right"},
93
- {stimulus: "img/age/ym2.jpg", stim_key_association: "right"},
94
- {stimulus: "img/age/ym3.jpg", stim_key_association: "right"},
95
- {stimulus: "img/age/ym5.jpg", stim_key_association: "right"}
96
- ],
97
- randomize_order: true,
98
- repetitions: 2
99
- };
100
-
101
- var instructions_block2 = {
102
- type: 'html-keyboard-response',
103
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'>Press E for:<br><strong>BAD</strong></div>" +
104
- "<div style='position: absolute; top: 18%; right: 20%'>Press I for:<br><strong>GOOD</strong></div>" +
105
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>Put a left finger on the <strong>e</strong> key for items that " +
106
- "belong to the Bad category. Put a right finger on the " +
107
- "<strong>i</strong> key for items that belong to the Good " +
108
- "category. Items will appear one at a time.<br><br>" + "If you " +
109
- "make a mistake, a red X will appear. Press the keys listed below " +
110
- "to continue. Go as fast as you can while being accurate.<br><br> " +
111
- "Press the any key when you are ready to start.</div>",
112
- };
113
-
114
- var trial_block2 = {
115
- timeline: [
116
- {
117
- type: 'iat-html',
118
- stimulus: jsPsych.timelineVariable('stimulus'),
119
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
120
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
121
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
122
- force_correct_key_press: true,
123
- display_feedback: true,
124
- trial_duration: 3000, //Only if display_feedback is false
125
- left_category_key: 'e',
126
- right_category_key: 'i',
127
- left_category_label: ['BAD'],
128
- right_category_label: ['GOOD'],
129
- response_ends_trial: true,
130
- data: { iat_type: 'practice' }
131
- }
132
- ],
133
- timeline_variables: [
134
- {stimulus: "Humiliate", stim_key_association: "left"},
135
- {stimulus: "Evil", stim_key_association: "left"},
136
- {stimulus: "Grief", stim_key_association: "left"},
137
- {stimulus: "Yucky", stim_key_association: "left"},
138
- {stimulus: "Detest", stim_key_association: "left"},
139
- {stimulus: "Poison", stim_key_association: "left"},
140
- {stimulus: "Abuse", stim_key_association: "left"},
141
- {stimulus: "Despise", stim_key_association: "left"},
142
- {stimulus: "Fabulous", stim_key_association: "right"},
143
- {stimulus: "Excitement", stim_key_association: "right"},
144
- {stimulus: "Glorious", stim_key_association: "right"},
145
- {stimulus: "Cheerful", stim_key_association: "right"},
146
- {stimulus: "Cherish", stim_key_association: "right"},
147
- {stimulus: "Enjoy", stim_key_association: "right"},
148
- {stimulus: "Delightful", stim_key_association: "right"},
149
- {stimulus: "Joyous", stim_key_association: "right"}
150
- ],
151
- randomize_order: true,
152
- repetitions: 2
153
- };
154
-
155
- var instructions_block3 = {
156
- type: 'html-keyboard-response',
157
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'>Press e for:<br> " +
158
- "<strong>BAD</strong><br>" + "or<br>" + "<strong>OLD</strong></div>" + "<div style='position: absolute; top: 18%; right: 20%'>" +
159
- "Press i for:<br>" + "<strong>GOOD</strong><br>" + "or<br>" + "<strong>YOUNG</strong></div>" +
160
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>Use <strong>e</strong> for Bad and for " +
161
- "Old People<br>" + "Use <strong>i</strong> for Good and for Young People<br>" +
162
- "Each item belongs to only one category.<br><br>" + "If you " +
163
- "make a mistake, a red X will appear. Press the keys listed below " +
164
- "to continue. Go as fast as you can while being accurate.<br><br> " +
165
- "Press the any key when you are ready to start.</div>",
166
- };
167
-
168
- var trial_block3 = {
169
- timeline: [
170
- {
171
- type: jsPsych.timelineVariable('type'),
172
- stimulus: jsPsych.timelineVariable('stimulus'),
173
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
174
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
175
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
176
- force_correct_key_press: true,
177
- display_feedback: true,
178
- trial_duration: 3000, //Only if display_feedback is false
179
- left_category_key: 'e',
180
- right_category_key: 'i',
181
- left_category_label: ['BAD', 'OLD'],
182
- right_category_label: ['GOOD', 'YOUNG'],
183
- response_ends_trial: true,
184
- data: { iat_type: 'practice' }
185
- }
186
- ],
187
- timeline_variables: [
188
- {type: 'iat-image', stimulus: "img/age/of1.jpg", stim_key_association: "left"},
189
- {type: 'iat-image', stimulus: "img/age/of2.jpg", stim_key_association: "left"},
190
- {type: 'iat-image', stimulus: "img/age/of3.jpg", stim_key_association: "left"},
191
- {type: 'iat-image', stimulus: "img/age/om1.jpg", stim_key_association: "left"},
192
- {type: 'iat-image', stimulus: "img/age/om2.jpg", stim_key_association: "left"},
193
- {type: 'iat-image', stimulus: "img/age/om3.jpg", stim_key_association: "left"},
194
- {type: 'iat-image', stimulus: "img/age/yf1.jpg", stim_key_association: "right"},
195
- {type: 'iat-image', stimulus: "img/age/yf4.jpg", stim_key_association: "right"},
196
- {type: 'iat-image', stimulus: "img/age/yf5.jpg", stim_key_association: "right"},
197
- {type: 'iat-image', stimulus: "img/age/ym2.jpg", stim_key_association: "right"},
198
- {type: 'iat-image', stimulus: "img/age/ym3.jpg", stim_key_association: "right"},
199
- {type: 'iat-image', stimulus: "img/age/ym5.jpg", stim_key_association: "right"},
200
- {type: 'iat-html', stimulus: "Humiliate", stim_key_association: "left"},
201
- {type: 'iat-html', stimulus: "Evil", stim_key_association: "left"},
202
- {type: 'iat-html', stimulus: "Grief", stim_key_association: "left"},
203
- {type: 'iat-html', stimulus: "Yucky", stim_key_association: "left"},
204
- {type: 'iat-html', stimulus: "Detest", stim_key_association: "left"},
205
- {type: 'iat-html', stimulus: "Poison", stim_key_association: "left"},
206
- {type: 'iat-html', stimulus: "Abuse", stim_key_association: "left"},
207
- {type: 'iat-html', stimulus: "Despise", stim_key_association: "left"},
208
- {type: 'iat-html', stimulus: "Fabulous", stim_key_association: "right"},
209
- {type: 'iat-html', stimulus: "Excitement", stim_key_association: "right"},
210
- {type: 'iat-html', stimulus: "Glorious", stim_key_association: "right"},
211
- {type: 'iat-html', stimulus: "Cheerful", stim_key_association: "right"},
212
- {type: 'iat-html', stimulus: "Cherish", stim_key_association: "right"},
213
- {type: 'iat-html', stimulus: "Enjoy", stim_key_association: "right"},
214
- {type: 'iat-html', stimulus: "Delightful", stim_key_association: "right"},
215
- {type: 'iat-html', stimulus: "Joyous", stim_key_association: "right"}
216
- ],
217
- randomize_order: true,
218
- repetitions: 1
219
- };
220
-
221
- var instructions_block4 = {
222
- type: 'html-keyboard-response',
223
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'>Press e for:<br> " +
224
- "<strong>BAD</strong><br>" + "or<br>" + "<strong>OLD</strong></div>" + "<div style='position: absolute; top: 18%; right: 20%'>" +
225
- "Press i for:<br>" + "<strong>GOOD</strong><br>" + "or<br>" + "<strong>YOUNG</strong></div>" +
226
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>This is the same as the previous part.<br>" + "Use <strong>e</strong> for Bad and for " +
227
- "Old People<br>" + "Use <strong>i</strong> for Good and for Young People<br>" +
228
- "Each item belongs to only one category.<br><br>" + "If you " +
229
- "make a mistake, a red X will appear. Press the keys listed below " +
230
- "to continue. Go as fast as you can while being accurate.<br><br> " +
231
- "Press the any key when you are ready to start.</div>",
232
- };
233
-
234
- var trial_block4 = {
235
- timeline: [
236
- {
237
- type: jsPsych.timelineVariable('type'),
238
- is_html: jsPsych.timelineVariable('is_html'),
239
- stimulus: jsPsych.timelineVariable('stimulus'),
240
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
241
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
242
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
243
- force_correct_key_press: true,
244
- display_feedback: true,
245
- trial_duration: 3000, //Only if display_feedback is false
246
- left_category_key: 'e',
247
- right_category_key: 'i',
248
- left_category_label: ['BAD', 'OLD'],
249
- right_category_label: ['GOOD', 'YOUNG'],
250
- response_ends_trial: true,
251
- data: { iat_type: 'bad-old' }
252
- }
253
- ],
254
- timeline_variables: [
255
- {type: 'iat-image', stimulus: "img/age/of1.jpg", stim_key_association: "left"},
256
- {type: 'iat-image', stimulus: "img/age/of2.jpg", stim_key_association: "left"},
257
- {type: 'iat-image', stimulus: "img/age/of3.jpg", stim_key_association: "left"},
258
- {type: 'iat-image', stimulus: "img/age/om1.jpg", stim_key_association: "left"},
259
- {type: 'iat-image', stimulus: "img/age/om2.jpg", stim_key_association: "left"},
260
- {type: 'iat-image', stimulus: "img/age/om3.jpg", stim_key_association: "left"},
261
- {type: 'iat-image', stimulus: "img/age/yf1.jpg", stim_key_association: "right"},
262
- {type: 'iat-image', stimulus: "img/age/yf4.jpg", stim_key_association: "right"},
263
- {type: 'iat-image', stimulus: "img/age/yf5.jpg", stim_key_association: "right"},
264
- {type: 'iat-image', stimulus: "img/age/ym2.jpg", stim_key_association: "right"},
265
- {type: 'iat-image', stimulus: "img/age/ym3.jpg", stim_key_association: "right"},
266
- {type: 'iat-image', stimulus: "img/age/ym5.jpg", stim_key_association: "right"},
267
- {type: 'iat-html', stimulus: "Humiliate", stim_key_association: "left"},
268
- {type: 'iat-html', stimulus: "Evil", stim_key_association: "left"},
269
- {type: 'iat-html', stimulus: "Grief", stim_key_association: "left"},
270
- {type: 'iat-html', stimulus: "Yucky", stim_key_association: "left"},
271
- {type: 'iat-html', stimulus: "Detest", stim_key_association: "left"},
272
- {type: 'iat-html', stimulus: "Poison", stim_key_association: "left"},
273
- {type: 'iat-html', stimulus: "Abuse", stim_key_association: "left"},
274
- {type: 'iat-html', stimulus: "Despise", stim_key_association: "left"},
275
- {type: 'iat-html', stimulus: "Fabulous", stim_key_association: "right"},
276
- {type: 'iat-html', stimulus: "Excitement", stim_key_association: "right"},
277
- {type: 'iat-html', stimulus: "Glorious", stim_key_association: "right"},
278
- {type: 'iat-html', stimulus: "Cheerful", stim_key_association: "right"},
279
- {type: 'iat-html', stimulus: "Cherish", stim_key_association: "right"},
280
- {type: 'iat-html', stimulus: "Enjoy", stim_key_association: "right"},
281
- {type: 'iat-html', stimulus: "Delightful", stim_key_association: "right"},
282
- {type: 'iat-html', stimulus: "Joyous", stim_key_association: "right"}
283
- ],
284
- randomize_order: true,
285
- repetitions: 2
286
- };
287
-
288
- var instructions_block5 = {
289
- type: 'html-keyboard-response',
290
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'>Press e for:<br>" + "<strong>YOUNG</strong></div>" +
291
- "<div style='position: absolute; top: 18%; right: 20%'>Press i for:<br>" + "<strong>OLD</strong></div>" +
292
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>Watch out, the labels have changed positions!<br>" +
293
- "Use <strong>e</strong> for Young People<br>" + "Use <strong>i</strong> for Old People<br><br>" +
294
- "If you make a mistake, a red X will appear. Press the keys listed below " +
295
- "to continue. Go as fast as you can while being accurate.<br><br> " +
296
- "Press the any key when you are ready to start.</div>"
297
- };
298
-
299
- var trial_block5 = {
300
- timeline: [
301
- {
302
- type: 'iat-image',
303
- is_html: false,
304
- stimulus: jsPsych.timelineVariable('stimulus'),
305
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
306
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
307
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
308
- force_correct_key_press: true,
309
- display_feedback: true,
310
- trial_duration: 3000, //Only if display_feedback is false
311
- left_category_key: 'e',
312
- right_category_key: 'i',
313
- left_category_label: ['YOUNG'],
314
- right_category_label: ['OLD'],
315
- response_ends_trial: true,
316
- data: { iat_type: 'practice' }
317
- }
318
- ],
319
- timeline_variables: [
320
- {type: 'iat-image', stimulus: "img/age/of1.jpg", stim_key_association: "right"},
321
- {type: 'iat-image', stimulus: "img/age/of2.jpg", stim_key_association: "right"},
322
- {type: 'iat-image', stimulus: "img/age/of3.jpg", stim_key_association: "right"},
323
- {type: 'iat-image', stimulus: "img/age/om1.jpg", stim_key_association: "right"},
324
- {type: 'iat-image', stimulus: "img/age/om2.jpg", stim_key_association: "right"},
325
- {type: 'iat-image', stimulus: "img/age/om3.jpg", stim_key_association: "right"},
326
- {type: 'iat-image', stimulus: "img/age/yf1.jpg", stim_key_association: "left"},
327
- {type: 'iat-image', stimulus: "img/age/yf4.jpg", stim_key_association: "left"},
328
- {type: 'iat-image', stimulus: "img/age/yf5.jpg", stim_key_association: "left"},
329
- {type: 'iat-image', stimulus: "img/age/ym2.jpg", stim_key_association: "left"},
330
- {type: 'iat-image', stimulus: "img/age/ym3.jpg", stim_key_association: "left"},
331
- {type: 'iat-image', stimulus: "img/age/ym5.jpg", stim_key_association: "left"}
332
- ],
333
- randomize_order: true,
334
- repetitions: 2
335
- };
336
-
337
- var instructions_block6 = {
338
- type: 'html-keyboard-response',
339
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'>Press e for:<br>" + "<strong>BAD</strong><br>" + "or<br>" +
340
- "<strong>YOUNG</strong></div>" + "<div style='position: absolute; top: 18%; right: 20%'>Press i for:<br>" + "<strong>GOOD</strong><br>" + "or<br>" +
341
- "<strong>OLD</strong></div>" +
342
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>Use <strong>e</strong> for Bad and for Young People<br>" +
343
- "Use <strong>i</strong> for Good and for Old People<br><br>" +
344
- "If you make a mistake, a red X will appear. Press the keys listed below " +
345
- "to continue. Go as fast as you can while being accurate.<br><br> " +
346
- "Press the any key when you are ready to start.</div>"
347
- };
348
-
349
- var trial_block6 = {
350
- timeline: [
351
- {
352
- type: jsPsych.timelineVariable('type'),
353
- stimulus: jsPsych.timelineVariable('stimulus'),
354
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
355
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
356
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
357
- force_correct_key_press: true,
358
- display_feedback: true,
359
- trial_duration: 3000, //Only if display_feedback is false
360
- left_category_key: 'e',
361
- right_category_key: 'i',
362
- left_category_label: ['BAD', 'YOUNG'],
363
- right_category_label: ['GOOD', 'OLD'],
364
- response_ends_trial: true,
365
- data: {iat_type: 'practice'}
366
- }
367
- ],
368
- timeline_variables: [
369
- {type: 'iat-image', stimulus: "img/age/of1.jpg", stim_key_association: "right"},
370
- {type: 'iat-image', stimulus: "img/age/of2.jpg", stim_key_association: "right"},
371
- {type: 'iat-image', stimulus: "img/age/of3.jpg", stim_key_association: "right"},
372
- {type: 'iat-image', stimulus: "img/age/om1.jpg", stim_key_association: "right"},
373
- {type: 'iat-image', stimulus: "img/age/om2.jpg", stim_key_association: "right"},
374
- {type: 'iat-image', stimulus: "img/age/om3.jpg", stim_key_association: "right"},
375
- {type: 'iat-image', stimulus: "img/age/yf1.jpg", stim_key_association: "left"},
376
- {type: 'iat-image', stimulus: "img/age/yf4.jpg", stim_key_association: "left"},
377
- {type: 'iat-image', stimulus: "img/age/yf5.jpg", stim_key_association: "left"},
378
- {type: 'iat-image', stimulus: "img/age/ym2.jpg", stim_key_association: "left"},
379
- {type: 'iat-image', stimulus: "img/age/ym3.jpg", stim_key_association: "left"},
380
- {type: 'iat-image', stimulus: "img/age/ym5.jpg", stim_key_association: "left"},
381
- {type: 'iat-html', stimulus: "Humiliate", stim_key_association: "left"},
382
- {type: 'iat-html', stimulus: "Evil", stim_key_association: "left"},
383
- {type: 'iat-html', stimulus: "Grief", stim_key_association: "left"},
384
- {type: 'iat-html', stimulus: "Yucky", stim_key_association: "left"},
385
- {type: 'iat-html', stimulus: "Detest", stim_key_association: "left"},
386
- {type: 'iat-html', stimulus: "Poison", stim_key_association: "left"},
387
- {type: 'iat-html', stimulus: "Abuse", stim_key_association: "left"},
388
- {type: 'iat-html', stimulus: "Despise", stim_key_association: "left"},
389
- {type: 'iat-html', stimulus: "Fabulous", stim_key_association: "right"},
390
- {type: 'iat-html', stimulus: "Excitement", stim_key_association: "right"},
391
- {type: 'iat-html', stimulus: "Glorious", stim_key_association: "right"},
392
- {type: 'iat-html', stimulus: "Cheerful", stim_key_association: "right"},
393
- {type: 'iat-html', stimulus: "Cherish", stim_key_association: "right"},
394
- {type: 'iat-html', stimulus: "Enjoy", stim_key_association: "right"},
395
- {type: 'iat-html', stimulus: "Delightful", stim_key_association: "right"},
396
- {type: 'iat-html', stimulus: "Joyous", stim_key_association: "right"}
397
- ],
398
- randomize_order: true,
399
- repetitions: 1
400
- };
401
-
402
- var instructions_block7 = {
403
- type: 'html-keyboard-response',
404
- stimulus: "<div style='position: absolute; top: 18%; left: 20%'>Press e for:<br>" + "<strong>Bad</strong><br>" + "or<br>" +
405
- "<strong>Young People</strong></div>" + "<div style='position: absolute; top: 18%; right: 20%'>Press i for:<br>" + "<strong>Good</strong><br>" + "or<br>" +
406
- "<strong>Old People</strong></div>" +
407
- "<div style='position: relative; top: 42%; margin-left: auto; margin-right: auto'>This is the same as the previous part<br>" +
408
- "Use <strong>e</strong> for Bad and for Young People<br>" +
409
- "Use <strong>i</strong> for Good and for Old People<br>" +
410
- "Each item belongs to only one category<br><br>" +
411
- "If you make a mistake, a red X will appear. Press the keys listed below " +
412
- "to continue. Go as fast as you can while being accurate.<br><br> " +
413
- "Press the any key when you are ready to start.</div>"
414
- };
415
-
416
- var trial_block7 = {
417
- timeline: [
418
- {
419
- type: jsPsych.timelineVariable('type'),
420
- is_html: jsPsych.timelineVariable('is_html'),
421
- stimulus: jsPsych.timelineVariable('stimulus'),
422
- stim_key_association: jsPsych.timelineVariable('stim_key_association'),
423
- html_when_wrong: '<span style="color: red; font-size: 80px">X</span>',
424
- bottom_instructions: '<p>If you press the wrong key, a red X will appear. Press the other key to continue</p>',
425
- force_correct_key_press: true,
426
- display_feedback: true,
427
- trial_duration: 3000, //Only if display_feedback is false
428
- left_category_key: 'e',
429
- right_category_key: 'i',
430
- left_category_label: ['BAD', 'YOUNG'],
431
- right_category_label: ['GOOD', 'OLD'],
432
- response_ends_trial: true,
433
- data: {iat_type: 'bad-young'}
434
- }
435
- ],
436
- timeline_variables: [
437
- {type: 'iat-image', stimulus: "img/age/of1.jpg", stim_key_association: "right"},
438
- {type: 'iat-image', stimulus: "img/age/of2.jpg", stim_key_association: "right"},
439
- {type: 'iat-image', stimulus: "img/age/of3.jpg", stim_key_association: "right"},
440
- {type: 'iat-image', stimulus: "img/age/om1.jpg", stim_key_association: "right"},
441
- {type: 'iat-image', stimulus: "img/age/om2.jpg", stim_key_association: "right"},
442
- {type: 'iat-image', stimulus: "img/age/om3.jpg", stim_key_association: "right"},
443
- {type: 'iat-image', stimulus: "img/age/yf1.jpg", stim_key_association: "left"},
444
- {type: 'iat-image', stimulus: "img/age/yf4.jpg", stim_key_association: "left"},
445
- {type: 'iat-image', stimulus: "img/age/yf5.jpg", stim_key_association: "left"},
446
- {type: 'iat-image', stimulus: "img/age/ym2.jpg", stim_key_association: "left"},
447
- {type: 'iat-image', stimulus: "img/age/ym3.jpg", stim_key_association: "left"},
448
- {type: 'iat-image', stimulus: "img/age/ym5.jpg", stim_key_association: "left"},
449
- {type: 'iat-html', stimulus: "Humiliate", stim_key_association: "left"},
450
- {type: 'iat-html', stimulus: "Evil", stim_key_association: "left"},
451
- {type: 'iat-html', stimulus: "Grief", stim_key_association: "left"},
452
- {type: 'iat-html', stimulus: "Yucky", stim_key_association: "left"},
453
- {type: 'iat-html', stimulus: "Detest", stim_key_association: "left"},
454
- {type: 'iat-html', stimulus: "Poison", stim_key_association: "left"},
455
- {type: 'iat-html', stimulus: "Abuse", stim_key_association: "left"},
456
- {type: 'iat-html', stimulus: "Despise", stim_key_association: "left"},
457
- {type: 'iat-html', stimulus: "Fabulous", stim_key_association: "right"},
458
- {type: 'iat-html', stimulus: "Excitement", stim_key_association: "right"},
459
- {type: 'iat-html', stimulus: "Glorious", stim_key_association: "right"},
460
- {type: 'iat-html', stimulus: "Cheerful", stim_key_association: "right"},
461
- {type: 'iat-html', stimulus: "Cherish", stim_key_association: "right"},
462
- {type: 'iat-html', stimulus: "Enjoy", stim_key_association: "right"},
463
- {type: 'iat-html', stimulus: "Delightful", stim_key_association: "right"},
464
- {type: 'iat-html', stimulus: "Joyous", stim_key_association: "right"}
465
- ],
466
- randomize_order: true,
467
- repetitions: 2
468
- };
469
-
470
- var debrief_block = {
471
- type: "html-keyboard-response",
472
- stimulus: function() {
473
- // calculate D-score from https://faculty.washington.edu/agg/pdf/GB&N.JPSP.2003.pdf
474
- // first find mean RT
475
- var bad_old = jsPsych.data.get().filter({iat_type: 'bad-old'}).filterCustom(function(x) { return x.rt < 10000 });
476
- var mean_correct_responses_bad_old = bad_old.filter({correct: true}).select('rt').mean();
477
- var bad_young = jsPsych.data.get().filter({iat_type: 'bad-young'}).filterCustom(function(x) { return x.rt < 10000 });
478
- var mean_correct_responses_bad_young = bad_young.filter({correct: true}).select('rt').mean();
479
-
480
- // get overall sd
481
- var sd = bad_old.join(bad_young).filter({correct: true}).select('rt').sd();
482
-
483
- var d = (mean_correct_responses_bad_young - mean_correct_responses_bad_old) / sd;
484
-
485
- return "<p>You're done! Below is some information about how you performed.</p>"+
486
- "<p>When the pairs were BAD/YOUNG and GOOD/OLD, it took you an average of <strong>"+Math.floor(mean_correct_responses_bad_young)+"ms</strong> to respond.</p>"+
487
- "<p>When the pairs were BAD/OLD and GOOD/YOUNG, it took you an average of <strong>"+Math.floor(mean_correct_responses_bad_old)+"ms</strong> to respond.</p>"+
488
- "<p>Your D score, an index of performance that takes into account this difference and the overall level of variability in your responses, is <strong>"+d.toFixed(2)+"</strong></p>"+
489
- "<p>For reference, the Project Implicit IAT website labels D scores above 0.15 as a slight bias, scores above 0.35 as a moderate bias, and scores above 0.65 a strong bias.</p>"
490
- }
491
- };
492
-
493
- var timeline = [];
494
- timeline.push(preload);
495
- timeline.push(welcome_block);
496
- timeline.push(category_block);
497
- timeline.push(instructions_block);
498
- timeline.push(trial_block);
499
- timeline.push(instructions_block2);
500
- timeline.push(trial_block2);
501
- timeline.push(instructions_block3);
502
- timeline.push(trial_block3);
503
- timeline.push(instructions_block4);
504
- timeline.push(trial_block4);
505
- timeline.push(instructions_block5);
506
- timeline.push(trial_block5);
507
- timeline.push(instructions_block6);
508
- timeline.push(trial_block6);
509
- timeline.push(instructions_block7);
510
- timeline.push(trial_block7);
511
- timeline.push(debrief_block);
512
-
513
- jsPsych.init({
514
- timeline: timeline,
515
- on_finish: function() {
516
- jsPsych.data.displayData();
517
- }
518
- });
519
- </script>
520
- </html>
@@ -1,91 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-image-button-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
- var timeline = [];
13
-
14
- // all images are used in standard trials that can be automatically preloaded (as well as being used in trials
15
- // that use timeline variables), so we can preload all image files with the auto_preload option
16
- timeline.push({
17
- type: 'preload',
18
- auto_preload: true
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-button-response',
26
- stimulus: jsPsych.timelineVariable('stim'),
27
- trial_duration: 1000,
28
- choices: ['Happy', 'Sad'],
29
- prompt: '<p>What emotion is this person showing?</p><p>(1s duration, consecutive images with no post_trial_gap)</p>',
30
- stimulus_width: 400,
31
- maintain_aspect_ratio: true,
32
- post_trial_gap: 0,
33
- //render_on_canvas: false
34
- }
35
-
36
- timeline.push({
37
- timeline: [trial],
38
- timeline_variables: [
39
- {stim: 'img/happy_face_1.jpg'},
40
- {stim: 'img/happy_face_2.jpg'},
41
- {stim: 'img/happy_face_3.jpg'},
42
- {stim: 'img/happy_face_4.jpg'}
43
- ]
44
- });
45
-
46
- timeline.push({
47
- type: 'image-button-response',
48
- stimulus: 'img/happy_face_1.jpg',
49
- choices: ['Happy', 'Sad'],
50
- prompt: "<p>What emotion is this person showing?</p><p>(Wait for response)</p>",
51
- post_trial_gap: 500
52
- });
53
-
54
- timeline.push({
55
- type: 'image-button-response',
56
- stimulus: 'img/happy_face_2.jpg',
57
- stimulus_height: 400,
58
- choices: ['Happy', 'Sad'],
59
- stimulus_duration: 1000,
60
- prompt: "<p>What emotion is this person showing? (image disappears after 1s)</p>",
61
- post_trial_gap: 500
62
- });
63
-
64
- timeline.push({
65
- type: 'image-button-response',
66
- stimulus: 'img/happy_face_3.jpg',
67
- stimulus_width: 600,
68
- choices: ['Happy', 'Sad'],
69
- trial_duration: 2000,
70
- response_ends_trial: false,
71
- prompt: "<p>What emotion is this person showing? (trial ends after 2s)</p>",
72
- post_trial_gap: 500
73
- });
74
-
75
- timeline.push({
76
- type: 'image-button-response',
77
- stimulus: 'img/happy_face_4.jpg',
78
- choices: ['Happy', 'Sad'],
79
- stimulus_width: 400,
80
- maintain_aspect_ratio: false,
81
- prompt: '<p>What emotion is this person showing?</p><p>(Stimulus_width set to a smaller value and maintain_aspect_ratio set to false.)</p>',
82
- post_trial_gap: 500
83
- });
84
-
85
- jsPsych.init({
86
- timeline: timeline,
87
- on_finish: function(){jsPsych.data.displayData();}
88
- });
89
-
90
- </script>
91
- </html>