jspsych 6.2.0 → 7.1.0

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 (360) hide show
  1. package/README.md +43 -29
  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 -661
  59. package/docs/core_library/jspsych-data.md +0 -589
  60. package/docs/core_library/jspsych-pluginAPI.md +0 -510
  61. package/docs/core_library/jspsych-randomization.md +0 -397
  62. package/docs/core_library/jspsych-turk.md +0 -102
  63. package/docs/img/blue.png +0 -0
  64. package/docs/img/folder-setup.png +0 -0
  65. package/docs/img/folder-with-html.png +0 -0
  66. package/docs/img/githubreleases.jpg +0 -0
  67. package/docs/img/jspsych-favicon.png +0 -0
  68. package/docs/img/jspsych-logo-no-text-mono.svg +0 -493
  69. package/docs/img/jspsych-logo.jpg +0 -0
  70. package/docs/img/orange.png +0 -0
  71. package/docs/img/palmer_stim.png +0 -0
  72. package/docs/img/progress_bar.png +0 -0
  73. package/docs/img/visual_search_example.jpg +0 -0
  74. package/docs/index.md +0 -9
  75. package/docs/overview/browser-device-support.md +0 -35
  76. package/docs/overview/callbacks.md +0 -140
  77. package/docs/overview/data.md +0 -281
  78. package/docs/overview/exclude-browser.md +0 -32
  79. package/docs/overview/experiment-options.md +0 -121
  80. package/docs/overview/fullscreen.md +0 -36
  81. package/docs/overview/media-preloading.md +0 -91
  82. package/docs/overview/mturk.md +0 -77
  83. package/docs/overview/progress-bar.md +0 -110
  84. package/docs/overview/record-browser-interactions.md +0 -23
  85. package/docs/overview/running-experiments.md +0 -95
  86. package/docs/overview/timeline.md +0 -387
  87. package/docs/overview/trial.md +0 -142
  88. package/docs/plugins/creating-a-plugin.md +0 -79
  89. package/docs/plugins/jspsych-animation.md +0 -40
  90. package/docs/plugins/jspsych-audio-button-response.md +0 -60
  91. package/docs/plugins/jspsych-audio-keyboard-response.md +0 -58
  92. package/docs/plugins/jspsych-audio-slider-response.md +0 -53
  93. package/docs/plugins/jspsych-call-function.md +0 -81
  94. package/docs/plugins/jspsych-canvas-button-response.md +0 -66
  95. package/docs/plugins/jspsych-canvas-keyboard-response.md +0 -68
  96. package/docs/plugins/jspsych-canvas-slider-response.md +0 -89
  97. package/docs/plugins/jspsych-categorize-animation.md +0 -60
  98. package/docs/plugins/jspsych-categorize-html.md +0 -52
  99. package/docs/plugins/jspsych-categorize-image.md +0 -53
  100. package/docs/plugins/jspsych-cloze.md +0 -45
  101. package/docs/plugins/jspsych-external-html.md +0 -70
  102. package/docs/plugins/jspsych-free-sort.md +0 -55
  103. package/docs/plugins/jspsych-fullscreen.md +0 -57
  104. package/docs/plugins/jspsych-html-button-response.md +0 -42
  105. package/docs/plugins/jspsych-html-keyboard-response.md +0 -51
  106. package/docs/plugins/jspsych-html-slider-response.md +0 -45
  107. package/docs/plugins/jspsych-iat-html.md +0 -64
  108. package/docs/plugins/jspsych-iat-image.md +0 -64
  109. package/docs/plugins/jspsych-image-button-response.md +0 -46
  110. package/docs/plugins/jspsych-image-keyboard-response.md +0 -57
  111. package/docs/plugins/jspsych-image-slider-response.md +0 -52
  112. package/docs/plugins/jspsych-instructions.md +0 -58
  113. package/docs/plugins/jspsych-maxdiff.md +0 -42
  114. package/docs/plugins/jspsych-rdk.md +0 -119
  115. package/docs/plugins/jspsych-reconstruction.md +0 -48
  116. package/docs/plugins/jspsych-resize.md +0 -39
  117. package/docs/plugins/jspsych-same-different-html.md +0 -53
  118. package/docs/plugins/jspsych-same-different-image.md +0 -66
  119. package/docs/plugins/jspsych-serial-reaction-time-mouse.md +0 -50
  120. package/docs/plugins/jspsych-serial-reaction-time.md +0 -57
  121. package/docs/plugins/jspsych-survey-html-form.md +0 -50
  122. package/docs/plugins/jspsych-survey-likert.md +0 -70
  123. package/docs/plugins/jspsych-survey-multi-choice.md +0 -48
  124. package/docs/plugins/jspsych-survey-multi-select.md +0 -53
  125. package/docs/plugins/jspsych-survey-text.md +0 -63
  126. package/docs/plugins/jspsych-video-button-response.md +0 -52
  127. package/docs/plugins/jspsych-video-keyboard-response.md +0 -48
  128. package/docs/plugins/jspsych-video-slider-response.md +0 -58
  129. package/docs/plugins/jspsych-visual-search-circle.md +0 -52
  130. package/docs/plugins/jspsych-vsl-animate-occlusion.md +0 -55
  131. package/docs/plugins/jspsych-vsl-grid-scene.md +0 -62
  132. package/docs/plugins/overview.md +0 -111
  133. package/docs/tutorials/hello-world.md +0 -144
  134. package/docs/tutorials/rt-task.md +0 -1107
  135. package/examples/add-to-end-of-timeline.html +0 -32
  136. package/examples/conditional-and-loop-functions.html +0 -63
  137. package/examples/css/jquery-ui.css +0 -1225
  138. package/examples/data-add-properties.html +0 -40
  139. package/examples/data-as-function.html +0 -36
  140. package/examples/data-from-timeline.html +0 -45
  141. package/examples/data-from-url.html +0 -21
  142. package/examples/demo-flanker.html +0 -108
  143. package/examples/demo-simple-rt-task.html +0 -104
  144. package/examples/demos/demo_1.html +0 -29
  145. package/examples/demos/demo_2.html +0 -43
  146. package/examples/demos/demo_3.html +0 -58
  147. package/examples/display-element-to-embed-experiment.html +0 -73
  148. package/examples/end-active-node.html +0 -52
  149. package/examples/end-experiment.html +0 -43
  150. package/examples/exclusions.html +0 -32
  151. package/examples/external_html/simple_consent.html +0 -4
  152. package/examples/img/1.gif +0 -0
  153. package/examples/img/10.gif +0 -0
  154. package/examples/img/11.gif +0 -0
  155. package/examples/img/12.gif +0 -0
  156. package/examples/img/2.gif +0 -0
  157. package/examples/img/3.gif +0 -0
  158. package/examples/img/4.gif +0 -0
  159. package/examples/img/5.gif +0 -0
  160. package/examples/img/6.gif +0 -0
  161. package/examples/img/7.gif +0 -0
  162. package/examples/img/8.gif +0 -0
  163. package/examples/img/9.gif +0 -0
  164. package/examples/img/age/of1.jpg +0 -0
  165. package/examples/img/age/of2.jpg +0 -0
  166. package/examples/img/age/of3.jpg +0 -0
  167. package/examples/img/age/om1.jpg +0 -0
  168. package/examples/img/age/om2.jpg +0 -0
  169. package/examples/img/age/om3.jpg +0 -0
  170. package/examples/img/age/yf1.jpg +0 -0
  171. package/examples/img/age/yf4.jpg +0 -0
  172. package/examples/img/age/yf5.jpg +0 -0
  173. package/examples/img/age/ym2.jpg +0 -0
  174. package/examples/img/age/ym3.jpg +0 -0
  175. package/examples/img/age/ym5.jpg +0 -0
  176. package/examples/img/backwardN.gif +0 -0
  177. package/examples/img/blue.png +0 -0
  178. package/examples/img/con1.png +0 -0
  179. package/examples/img/con2.png +0 -0
  180. package/examples/img/fixation.gif +0 -0
  181. package/examples/img/happy_face_1.jpg +0 -0
  182. package/examples/img/happy_face_2.jpg +0 -0
  183. package/examples/img/happy_face_3.jpg +0 -0
  184. package/examples/img/happy_face_4.jpg +0 -0
  185. package/examples/img/inc1.png +0 -0
  186. package/examples/img/inc2.png +0 -0
  187. package/examples/img/normalN.gif +0 -0
  188. package/examples/img/orange.png +0 -0
  189. package/examples/img/redX.png +0 -0
  190. package/examples/img/ribbon.jpg +0 -0
  191. package/examples/img/sad_face_1.jpg +0 -0
  192. package/examples/img/sad_face_2.jpg +0 -0
  193. package/examples/img/sad_face_3.jpg +0 -0
  194. package/examples/img/sad_face_4.jpg +0 -0
  195. package/examples/js/snap.svg-min.js +0 -21
  196. package/examples/jspsych-RDK.html +0 -58
  197. package/examples/jspsych-animation.html +0 -33
  198. package/examples/jspsych-audio-button-response.html +0 -52
  199. package/examples/jspsych-audio-keyboard-response.html +0 -62
  200. package/examples/jspsych-audio-slider-response.html +0 -55
  201. package/examples/jspsych-call-function.html +0 -32
  202. package/examples/jspsych-canvas-button-response.html +0 -95
  203. package/examples/jspsych-canvas-keyboard-response.html +0 -78
  204. package/examples/jspsych-canvas-slider-response.html +0 -67
  205. package/examples/jspsych-categorize-animation.html +0 -46
  206. package/examples/jspsych-categorize-html.html +0 -38
  207. package/examples/jspsych-categorize-image.html +0 -38
  208. package/examples/jspsych-cloze.html +0 -42
  209. package/examples/jspsych-free-sort.html +0 -97
  210. package/examples/jspsych-fullscreen.html +0 -44
  211. package/examples/jspsych-html-button-response.html +0 -46
  212. package/examples/jspsych-html-keyboard-response.html +0 -42
  213. package/examples/jspsych-html-slider-response.html +0 -53
  214. package/examples/jspsych-iat.html +0 -510
  215. package/examples/jspsych-image-button-response.html +0 -84
  216. package/examples/jspsych-image-keyboard-response.html +0 -78
  217. package/examples/jspsych-image-slider-response.html +0 -76
  218. package/examples/jspsych-instructions.html +0 -37
  219. package/examples/jspsych-maxdiff.html +0 -33
  220. package/examples/jspsych-reconstruction.html +0 -43
  221. package/examples/jspsych-resize.html +0 -34
  222. package/examples/jspsych-same-different-html.html +0 -28
  223. package/examples/jspsych-same-different-image.html +0 -33
  224. package/examples/jspsych-serial-reaction-time-mouse.html +0 -98
  225. package/examples/jspsych-serial-reaction-time.html +0 -54
  226. package/examples/jspsych-survey-html-form.html +0 -33
  227. package/examples/jspsych-survey-likert.html +0 -42
  228. package/examples/jspsych-survey-multi-choice.html +0 -40
  229. package/examples/jspsych-survey-multi-select.html +0 -42
  230. package/examples/jspsych-survey-text.html +0 -34
  231. package/examples/jspsych-video-button-response.html +0 -57
  232. package/examples/jspsych-video-keyboard-response.html +0 -53
  233. package/examples/jspsych-video-slider-response.html +0 -55
  234. package/examples/jspsych-visual-search-circle.html +0 -58
  235. package/examples/jspsych-vsl-animate-occlusion.html +0 -29
  236. package/examples/jspsych-vsl-grid-scene.html +0 -41
  237. package/examples/lexical-decision.html +0 -132
  238. package/examples/manual-preloading.html +0 -53
  239. package/examples/pause-unpause.html +0 -33
  240. package/examples/progress-bar.html +0 -62
  241. package/examples/sound/hammer.mp3 +0 -0
  242. package/examples/sound/sound.mp3 +0 -0
  243. package/examples/sound/speech_blue.mp3 +0 -0
  244. package/examples/sound/speech_green.mp3 +0 -0
  245. package/examples/sound/speech_joke.mp3 +0 -0
  246. package/examples/sound/speech_red.mp3 +0 -0
  247. package/examples/sound/tone.mp3 +0 -0
  248. package/examples/timeline-variables-sampling.html +0 -50
  249. package/examples/timeline-variables.html +0 -55
  250. package/examples/video/sample_video.mp4 +0 -0
  251. package/jspsych.js +0 -2796
  252. package/license.txt +0 -21
  253. package/mkdocs.yml +0 -104
  254. package/plugins/jspsych-animation.js +0 -189
  255. package/plugins/jspsych-audio-button-response.js +0 -247
  256. package/plugins/jspsych-audio-keyboard-response.js +0 -204
  257. package/plugins/jspsych-audio-slider-response.js +0 -262
  258. package/plugins/jspsych-call-function.js +0 -58
  259. package/plugins/jspsych-canvas-button-response.js +0 -199
  260. package/plugins/jspsych-canvas-keyboard-response.js +0 -155
  261. package/plugins/jspsych-canvas-slider-response.js +0 -207
  262. package/plugins/jspsych-categorize-animation.js +0 -266
  263. package/plugins/jspsych-categorize-html.js +0 -220
  264. package/plugins/jspsych-categorize-image.js +0 -222
  265. package/plugins/jspsych-cloze.js +0 -112
  266. package/plugins/jspsych-external-html.js +0 -112
  267. package/plugins/jspsych-free-sort.js +0 -444
  268. package/plugins/jspsych-fullscreen.js +0 -104
  269. package/plugins/jspsych-html-button-response.js +0 -188
  270. package/plugins/jspsych-html-keyboard-response.js +0 -149
  271. package/plugins/jspsych-html-slider-response.js +0 -202
  272. package/plugins/jspsych-iat-html.js +0 -284
  273. package/plugins/jspsych-iat-image.js +0 -286
  274. package/plugins/jspsych-image-button-response.js +0 -311
  275. package/plugins/jspsych-image-keyboard-response.js +0 -247
  276. package/plugins/jspsych-image-slider-response.js +0 -353
  277. package/plugins/jspsych-instructions.js +0 -237
  278. package/plugins/jspsych-maxdiff.js +0 -174
  279. package/plugins/jspsych-rdk.js +0 -1373
  280. package/plugins/jspsych-reconstruction.js +0 -134
  281. package/plugins/jspsych-resize.js +0 -166
  282. package/plugins/jspsych-same-different-html.js +0 -168
  283. package/plugins/jspsych-same-different-image.js +0 -169
  284. package/plugins/jspsych-serial-reaction-time-mouse.js +0 -213
  285. package/plugins/jspsych-serial-reaction-time.js +0 -247
  286. package/plugins/jspsych-survey-html-form.js +0 -171
  287. package/plugins/jspsych-survey-likert.js +0 -195
  288. package/plugins/jspsych-survey-multi-choice.js +0 -208
  289. package/plugins/jspsych-survey-multi-select.js +0 -232
  290. package/plugins/jspsych-survey-text.js +0 -185
  291. package/plugins/jspsych-video-button-response.js +0 -320
  292. package/plugins/jspsych-video-keyboard-response.js +0 -279
  293. package/plugins/jspsych-video-slider-response.js +0 -351
  294. package/plugins/jspsych-visual-search-circle.js +0 -259
  295. package/plugins/jspsych-vsl-animate-occlusion.js +0 -196
  296. package/plugins/jspsych-vsl-grid-scene.js +0 -103
  297. package/plugins/template/jspsych-plugin-template.js +0 -35
  298. package/tests/README.md +0 -7
  299. package/tests/jsPsych/default-iti.test.js +0 -51
  300. package/tests/jsPsych/default-parameters.test.js +0 -58
  301. package/tests/jsPsych/endexperiment.test.js +0 -49
  302. package/tests/jsPsych/events.test.js +0 -369
  303. package/tests/jsPsych/init.test.js +0 -48
  304. package/tests/jsPsych/loads.test.js +0 -7
  305. package/tests/jsPsych/min-rt.test.js +0 -58
  306. package/tests/jsPsych/progressbar.test.js +0 -202
  307. package/tests/jsPsych/timeline-variables.test.js +0 -254
  308. package/tests/jsPsych/timelines.test.js +0 -498
  309. package/tests/jsPsych.data/datacollection.test.js +0 -116
  310. package/tests/jsPsych.data/datacolumn.test.js +0 -50
  311. package/tests/jsPsych.data/datamodule.test.js +0 -152
  312. package/tests/jsPsych.data/dataparameter.test.js +0 -251
  313. package/tests/jsPsych.data/interactions.test.js +0 -109
  314. package/tests/jsPsych.pluginAPI/pluginapi.test.js +0 -144
  315. package/tests/jsPsych.randomization/randomziation.test.js +0 -27
  316. package/tests/jsPsych.utils/utils.test.js +0 -58
  317. package/tests/media/blue.png +0 -0
  318. package/tests/media/orange.png +0 -0
  319. package/tests/media/sample_video.mp4 +0 -0
  320. package/tests/media/sound.mp3 +0 -0
  321. package/tests/plugins/plugin-animation.test.js +0 -35
  322. package/tests/plugins/plugin-audio-button-response.test.js +0 -15
  323. package/tests/plugins/plugin-audio-keyboard-response.test.js +0 -15
  324. package/tests/plugins/plugin-audio-slider-response.test.js +0 -15
  325. package/tests/plugins/plugin-call-function.test.js +0 -49
  326. package/tests/plugins/plugin-categorize-animation.test.js +0 -274
  327. package/tests/plugins/plugin-categorize-html.test.js +0 -17
  328. package/tests/plugins/plugin-categorize-image.test.js +0 -17
  329. package/tests/plugins/plugin-cloze.test.js +0 -140
  330. package/tests/plugins/plugin-free-sort.test.js +0 -112
  331. package/tests/plugins/plugin-fullscreen.test.js +0 -41
  332. package/tests/plugins/plugin-html-button-response.test.js +0 -161
  333. package/tests/plugins/plugin-html-keyboard-response.test.js +0 -139
  334. package/tests/plugins/plugin-html-slider-response.test.js +0 -155
  335. package/tests/plugins/plugin-iat-html.test.js +0 -328
  336. package/tests/plugins/plugin-iat-image.test.js +0 -308
  337. package/tests/plugins/plugin-image-button-response.test.js +0 -183
  338. package/tests/plugins/plugin-image-keyboard-response.test.js +0 -154
  339. package/tests/plugins/plugin-image-slider-response.test.js +0 -183
  340. package/tests/plugins/plugin-instructions.test.js +0 -66
  341. package/tests/plugins/plugin-maxdiff.test.js +0 -39
  342. package/tests/plugins/plugin-rdk.test.js +0 -17
  343. package/tests/plugins/plugin-reconstruction.test.js +0 -16
  344. package/tests/plugins/plugin-resize.test.js +0 -16
  345. package/tests/plugins/plugin-same-different-html.test.js +0 -17
  346. package/tests/plugins/plugin-same-different-image.test.js +0 -17
  347. package/tests/plugins/plugin-serial-reaction-time-mouse.test.js +0 -42
  348. package/tests/plugins/plugin-serial-reaction-time.test.js +0 -69
  349. package/tests/plugins/plugin-survey-html-form.test.js +0 -44
  350. package/tests/plugins/plugin-survey-likert.test.js +0 -48
  351. package/tests/plugins/plugin-survey-multi-choice.test.js +0 -48
  352. package/tests/plugins/plugin-survey-multi-select.test.js +0 -72
  353. package/tests/plugins/plugin-survey-text.test.js +0 -115
  354. package/tests/plugins/plugin-video-button-response.test.js +0 -35
  355. package/tests/plugins/plugin-video-keyboard-response.test.js +0 -35
  356. package/tests/plugins/plugin-video-slider-response.test.js +0 -34
  357. package/tests/plugins/plugin-visual-search-circle.test.js +0 -16
  358. package/tests/plugins/plugin-vsl-animate-occlusion.test.js +0 -16
  359. package/tests/plugins/plugin-vsl-grid-scene.test.js +0 -16
  360. package/tests/testing-utils.js +0 -13
@@ -1,40 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-survey-multi-choice.js"></script>
6
- <link rel="stylesheet" href="../css/jspsych.css">
7
- </head>
8
- <body></body>
9
- <script>
10
-
11
- // definiting two different response scales that can be used.
12
- var page_1_options = ["Strongly Disagree", "Disagree", "Neutral", "Agree", "Strongly Agree"];
13
- var page_2_options = ["Strongly Disagree", "Disagree", "Somewhat Disagree", "Neural", "Somewhat Agree", "Agree", "Strongly Agree"];
14
-
15
- var multi_choice_block = {
16
- type: 'survey-multi-choice',
17
- questions: [
18
- {prompt: "I like vegetables", name: 'Vegetables', options: page_1_options, required:true},
19
- {prompt: "I like fruit", name: 'Fruit', options: page_2_options, required: false}
20
- ],
21
- };
22
-
23
- var multi_choice_block_horizontal = {
24
- type: 'survey-multi-choice',
25
- questions: [
26
- {prompt: "I like vegetables", options: page_1_options, required: true, horizontal: true,},
27
- {prompt: "I like fruit", options: page_2_options, required: false, horizontal: true}
28
- ],
29
- };
30
-
31
- jsPsych.init({
32
- timeline: [multi_choice_block, multi_choice_block_horizontal],
33
- on_finish: function() {
34
- jsPsych.data.displayData();
35
- }
36
- });
37
-
38
-
39
- </script>
40
- </html>
@@ -1,42 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8">
6
- <title>Document</title>
7
- <script src="../jspsych.js" ></script>
8
- <script src="../plugins/jspsych-survey-multi-select.js" ></script>
9
- <link rel="stylesheet" href="../css/jspsych.css">
10
- </head>
11
-
12
- <body>
13
- </body>
14
- <script>
15
- var multi_select_block = {
16
- type: 'survey-multi-select',
17
- questions: [
18
- {
19
- prompt: "Which of these colors do you like?",
20
- options: ["Red", "Yellow", "Green", "Blue", "Black"],
21
- horizontal: true,
22
- required: true,
23
- name: 'Colors'
24
- },
25
- {
26
- prompt: "Which of these foods do you like?",
27
- options: ["Apples", "Bananas", "Carrots", "Donuts", "Eggplant"],
28
- horizontal: true,
29
- required: true,
30
- name: 'Foods'
31
- }
32
- ],
33
- randomize_question_order: true
34
- };
35
- jsPsych.init({
36
- timeline: [multi_select_block],
37
- on_finish: function(data) {
38
- jsPsych.data.displayData();
39
- },
40
- });
41
- </script>
42
- </html>
@@ -1,34 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
-
5
- <script src="../jspsych.js"></script>
6
- <script src="../plugins/jspsych-survey-text.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
- <body></body>
10
- <script>
11
-
12
- var survey_page1 = {
13
- type: 'survey-text',
14
- questions: [
15
- {prompt: 'How old are you?', columns: 3, required: true, name: 'Age'},
16
- {prompt: 'Where were you born?', placeholder: 'City, State/Province, Country', columns: 50, name: 'BirthLocation'}
17
- ],
18
- randomize_question_order: true
19
- };
20
-
21
- var survey_page2 = {
22
- type: 'survey-text',
23
- questions: [
24
- {prompt: 'Tell me about your day', placeholder: 'How did it start?', rows:10, columns: 50}
25
- ]
26
- }
27
-
28
- jsPsych.init({
29
- timeline: [survey_page1, survey_page2],
30
- on_finish: function() { jsPsych.data.displayData(); }
31
- });
32
-
33
- </script>
34
- </html>
@@ -1,57 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-video-button-response.js"></script>
6
- <script src="../plugins/jspsych-html-button-response.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
- <body></body>
10
- <script>
11
-
12
- var pre_trial = {
13
- type: 'html-button-response',
14
- stimulus: '<div style="max-width:600px;"><p>Some browsers now require that a user interacts with a web page before video or audio content will autoplay. Clicking the button below satisfies that requirement.</p><p>Without this trial, the video will load but not play.</p></div>',
15
- choices: ['Continue']
16
- }
17
-
18
- var trial_1 = {
19
- type: 'video-button-response',
20
- stimulus: ['video/sample_video.mp4'],
21
- choices: ['y','n'],
22
- button_html: '<button class="jspsych-btn">%choice%!</button>',
23
- margin_vertical: '10px',
24
- margin_horizontal: '8px',
25
- prompt: 'Press Y or N',
26
- width: 600,
27
- //height: 600,
28
- autoplay: true,
29
- //controls: true,
30
- //start: 8,
31
- //stop: 9,
32
- rate: 1.5,
33
- //trial_duration: 2000,
34
- response_ends_trial: true
35
- }
36
-
37
- var trial_2 = {
38
- type: 'video-button-response',
39
- stimulus: ['video/sample_video.mp4'],
40
- choices: ['Great','Not great'],
41
- margin_vertical: '10px',
42
- margin_horizontal: '8px',
43
- prompt: '<p>How great was the video?</p><p>When the video stops, click a button to end the trial.</p><p>Response buttons are disabled while the video is playing.</p>',
44
- width: 600,
45
- autoplay: true,
46
- response_ends_trial: true,
47
- response_allowed_while_playing: false
48
- }
49
-
50
- jsPsych.init({
51
- show_preload_progress_bar: true,
52
- timeline: [pre_trial, trial_1, trial_2],
53
- on_finish: function() { jsPsych.data.displayData(); }
54
- });
55
-
56
- </script>
57
- </html>
@@ -1,53 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-video-keyboard-response.js"></script>
6
- <script src="../plugins/jspsych-html-button-response.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
- <body></body>
10
- <script>
11
-
12
- var pre_trial = {
13
- type: 'html-button-response',
14
- stimulus: '<div style="max-width:600px;"><p>Some browsers now require that a user interacts with a web page before video or audio content will autoplay. Clicking the button below satisfies that requirement.</p><p>Without this trial, the video will load but not play.</p></div>',
15
- choices: ['continue']
16
- }
17
-
18
- var trial_1 = {
19
- type: 'video-keyboard-response',
20
- stimulus: ['video/sample_video.mp4'],
21
- choices: ['y','n'],
22
- prompt: 'Press Y or N',
23
- width: 600,
24
- //height: 600,
25
- autoplay: true,
26
- //controls: true,
27
- //start: 8,
28
- //stop: 9,
29
- rate: 1.5,
30
- //trial_duration: 2000,
31
- //trial_ends_after_video: true,
32
- response_ends_trial: true
33
- }
34
-
35
- var trial_2 = {
36
- type: 'video-keyboard-response',
37
- stimulus: ['video/sample_video.mp4'],
38
- choices: jsPsych.ALL_KEYS,
39
- prompt: '<p>When the video stops, press any key to end the trial.</p><p>Responses that are made before the video ends will be ignored.</p>',
40
- width: 600,
41
- autoplay: true,
42
- response_ends_trial: true,
43
- response_allowed_while_playing: false
44
- }
45
-
46
- jsPsych.init({
47
- show_preload_progress_bar: true,
48
- timeline: [pre_trial, trial_1, trial_2],
49
- on_finish: function() { jsPsych.data.displayData(); }
50
- });
51
-
52
- </script>
53
- </html>
@@ -1,55 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-video-slider-response.js"></script>
6
- <script src="../plugins/jspsych-html-button-response.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
- <body></body>
10
- <script>
11
-
12
- var pre_trial = {
13
- type: 'html-button-response',
14
- stimulus: '<div style="max-width:600px;"><p>Some browsers now require that a user interacts with a web page before video or audio content will autoplay. Clicking the button below satisfies that requirement.</p><p>Without this trial, the video will load but not play.</p></div>',
15
- choices: ['Continue']
16
- }
17
-
18
- var trial_1 = {
19
- type: 'video-slider-response',
20
- stimulus: ['video/sample_video.mp4'],
21
- labels: ['1 Star', '2 Stars', '3 Stars', '4 Stars', '5 Stars'],
22
- min: 1,
23
- max: 5,
24
- step: 1,
25
- slider_start: 1,
26
- prompt: '<p>Rate this video clip.</p><p>Slider movement is required, so you must interact with (click) the slider cursor to continue.</p>',
27
- require_movement: true,
28
- width: 600,
29
- autoplay: true,
30
- rate: 1.5,
31
- response_ends_trial: true
32
- }
33
-
34
- var trial_2 = {
35
- type: 'video-slider-response',
36
- stimulus: ['video/sample_video.mp4'],
37
- labels: ['1 Star', '2 Stars', '3 Stars', '4 Stars', '5 Stars'],
38
- min: 1,
39
- max: 5,
40
- step: 1,
41
- slider_start: 3,
42
- prompt: '<p>Rate this video clip after the video finishes playing.</p><p>The slider will be enabled after the video ends.</p>',
43
- width: 600,
44
- autoplay: true,
45
- response_allowed_while_playing: false
46
- }
47
-
48
- jsPsych.init({
49
- show_preload_progress_bar: true,
50
- timeline: [pre_trial, trial_1, trial_2],
51
- on_finish: function() { jsPsych.data.displayData(); }
52
- });
53
-
54
- </script>
55
- </html>
@@ -1,58 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
-
4
- <head>
5
-
6
- <script src="js/snap.svg-min.js"></script>
7
- <script src="../jspsych.js"></script>
8
- <script src="../plugins/jspsych-html-keyboard-response.js"></script>
9
- <script src="../plugins/jspsych-visual-search-circle.js"></script>
10
- <link rel="stylesheet" href="../css/jspsych.css">
11
- </head>
12
- <body></body>
13
- <script>
14
-
15
- var intro = {
16
- type: 'html-keyboard-response',
17
- stimulus: '<p>You will see a set of Ns on the following screens. Press J if there is a backwards N. If there is no backwards N press F.</p><p>Press any key to begin.</p>'
18
- }
19
-
20
- var trial_1 = {
21
- target_present: true,
22
- set_size: 4
23
- }
24
-
25
- var trial_2 = {
26
- target_present: true,
27
- set_size: 3
28
- }
29
-
30
- var trial_3 = {
31
- target_present: false,
32
- set_size: 6
33
- }
34
-
35
- var trial_4 = {
36
- target_present: false,
37
- foil: ['img/1.gif', 'img/2.gif', 'img/3.gif'], // example of using multiple foils.
38
- set_size: 3
39
- }
40
-
41
-
42
- var trials = {
43
- type: 'visual-search-circle',
44
- target: 'img/backwardN.gif',
45
- foil: 'img/normalN.gif',
46
- fixation_image: 'img/fixation.gif',
47
- timeline: [trial_1, trial_2, trial_3, trial_4]
48
- };
49
-
50
- jsPsych.init({
51
- timeline: [intro, trials],
52
- on_finish: function() {
53
- jsPsych.data.displayData();
54
- }
55
- });
56
- </script>
57
-
58
- </html>
@@ -1,29 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
-
4
- <head>
5
-
6
- <script src="js/snap.svg-min.js"></script>
7
- <script src="../jspsych.js"></script>
8
- <script src="../plugins/jspsych-vsl-animate-occlusion.js"></script>
9
- <link rel="stylesheet" href="../css/jspsych.css">
10
- </head>
11
- <body></body>
12
- <script>
13
- var images = ["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"];
14
-
15
- // create vsl block for jspsych
16
- var block = {
17
- type: 'vsl-animate-occlusion',
18
- stimuli: images
19
- };
20
-
21
- jsPsych.init({
22
- timeline: [block],
23
- on_finish: function() {
24
- jsPsych.data.displayData();
25
- }
26
- });
27
- </script>
28
-
29
- </html>
@@ -1,41 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-vsl-grid-scene.js"></script>
6
- <script src="../plugins/jspsych-html-keyboard-response.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
-
10
- <script>
11
-
12
- var images = ["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"];
13
-
14
- var scene =
15
- [
16
- [0,"img/8.gif","img/9.gif",0,0],
17
- ["img/1.gif", "img/2.gif", 0, 0,0],
18
- [ 0, "img/3.gif", 0, 0, 0],
19
- ["img/5.gif", "img/4.gif", 0, 0, 0],
20
- [0,0,0,0,0]
21
- ]
22
- ;
23
-
24
- var trial = {
25
- type: 'vsl-grid-scene',
26
- stimuli: scene,
27
- image_size: [50,50]
28
- };
29
-
30
- var trial_2 = {
31
- type: 'html-keyboard-response',
32
- stimulus: jsPsych.plugins['vsl-grid-scene'].generate_stimulus(scene, [100,100])
33
- }
34
-
35
- jsPsych.init({
36
- timeline: [trial, trial_2],
37
- on_finish: function() { jsPsych.data.displayData(); }
38
- });
39
-
40
- </script>
41
- </html>
@@ -1,132 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
-
4
- <head>
5
-
6
- <script src="../jspsych.js"></script>
7
- <script src="../plugins/jspsych-html-keyboard-response.js"></script>
8
- <script src="../plugins/jspsych-html-button-response.js"></script>
9
- <link rel="stylesheet" href="../css/jspsych.css">
10
- <style>
11
- .stimulus { font-size: 32px; }
12
- </style>
13
- </head>
14
-
15
- <script>
16
- var timeline = [];
17
-
18
- var instructions = {
19
- type: 'html-button-response',
20
- stimulus: '<p>Each screen will show either an English word or letters that do not form a word.</p>'+
21
- '<p>Press Y if the letters form a valid word.</p><p>Press N if the letters do not form a valid word.</p>',
22
- choices: ['Ready to start']
23
- }
24
- timeline.push(instructions);
25
-
26
- var stimuli = [
27
- {word: 'woman', word_validity: 'valid', word_frequency: 'high'},
28
- {word: 'title', word_validity: 'valid', word_frequency: 'high'},
29
- {word: 'speed', word_validity: 'valid', word_frequency: 'high'},
30
- {word: 'movie', word_validity: 'valid', word_frequency: 'high'},
31
- {word: 'night', word_validity: 'valid', word_frequency: 'high'},
32
- {word: 'house', word_validity: 'valid', word_frequency: 'high'},
33
- {word: 'child', word_validity: 'valid', word_frequency: 'high'},
34
- {word: 'apple', word_validity: 'valid', word_frequency: 'high'},
35
- {word: 'books', word_validity: 'valid', word_frequency: 'high'},
36
- {word: 'color', word_validity: 'valid', word_frequency: 'high'},
37
- {word: 'whigs', word_validity: 'valid', word_frequency: 'low'},
38
- {word: 'pecan', word_validity: 'valid', word_frequency: 'low'},
39
- {word: 'hanky', word_validity: 'valid', word_frequency: 'low'},
40
- {word: 'femur', word_validity: 'valid', word_frequency: 'low'},
41
- {word: 'tusks', word_validity: 'valid', word_frequency: 'low'},
42
- {word: 'tongs', word_validity: 'valid', word_frequency: 'low'},
43
- {word: 'petal', word_validity: 'valid', word_frequency: 'low'},
44
- {word: 'dunce', word_validity: 'valid', word_frequency: 'low'},
45
- {word: 'friar', word_validity: 'valid', word_frequency: 'low'},
46
- {word: 'gable', word_validity: 'valid', word_frequency: 'low'},
47
- {word: 'womfn', word_validity: 'invalid', word_frequency: undefined},
48
- {word: 'tgtle', word_validity: 'invalid', word_frequency: undefined},
49
- {word: 'speqd', word_validity: 'invalid', word_frequency: undefined},
50
- {word: 'movje', word_validity: 'invalid', word_frequency: undefined},
51
- {word: 'npght', word_validity: 'invalid', word_frequency: undefined},
52
- {word: 'hoxse', word_validity: 'invalid', word_frequency: undefined},
53
- {word: 'chrld', word_validity: 'invalid', word_frequency: undefined},
54
- {word: 'wpple', word_validity: 'invalid', word_frequency: undefined},
55
- {word: 'boxks', word_validity: 'invalid', word_frequency: undefined},
56
- {word: 'colwr', word_validity: 'invalid', word_frequency: undefined},
57
- {word: 'whzgs', word_validity: 'invalid', word_frequency: undefined},
58
- {word: 'pecjn', word_validity: 'invalid', word_frequency: undefined},
59
- {word: 'hankk', word_validity: 'invalid', word_frequency: undefined},
60
- {word: 'fembr', word_validity: 'invalid', word_frequency: undefined},
61
- {word: 'tmsks', word_validity: 'invalid', word_frequency: undefined},
62
- {word: 'tvngs', word_validity: 'invalid', word_frequency: undefined},
63
- {word: 'pettl', word_validity: 'invalid', word_frequency: undefined},
64
- {word: 'duncr', word_validity: 'invalid', word_frequency: undefined},
65
- {word: 'friwr', word_validity: 'invalid', word_frequency: undefined},
66
- {word: 'gabls', word_validity: 'invalid', word_frequency: undefined}
67
- ];
68
-
69
- var trials = {
70
- timeline_variables: stimuli,
71
- randomize_order: true,
72
- timeline: [
73
- {
74
- type: 'html-keyboard-response',
75
- stimulus: '<p class="stimulus">+</p>',
76
- choices: jsPsych.NO_KEYS,
77
- trial_duration: 500,
78
- post_trial_gap: 0
79
- },
80
- {
81
- type: 'html-keyboard-response',
82
- stimulus: function(){ return "<p class='stimulus'>"+jsPsych.timelineVariable('word', true)+"</p>"; },
83
- choices: ['y','n'],
84
- post_trial_gap: 0,
85
- data: {
86
- word_validity: jsPsych.timelineVariable('word_validity'),
87
- word_frequency: jsPsych.timelineVariable('word_frequency')
88
- },
89
- on_finish: function(data){
90
- if(data.word_validity == 'valid'){
91
- var correct = data.key_press == jsPsych.pluginAPI.convertKeyCharacterToKeyCode('y');
92
- } else {
93
- var correct = data.key_press == jsPsych.pluginAPI.convertKeyCharacterToKeyCode('n');
94
- }
95
- data.correct = correct;
96
- }
97
- }
98
- ]
99
- }
100
- timeline.push(trials);
101
-
102
- var debrief = {
103
- type: 'html-keyboard-response',
104
- choices: ['c'],
105
- stimulus: function(){
106
- var high_rt = jsPsych.data.get().filter({word_frequency: 'high', correct: true}).select('rt').mean();
107
- var low_rt = jsPsych.data.get().filter({word_frequency: 'low', correct: true}).select('rt').mean();
108
-
109
- var message = "<p>All done!</p>"+
110
- "<p>Your average correct response time for high frequency English words was "+Math.round(high_rt)+"ms.</p>"+
111
- "<p>Your average correct response time for low frequency English words was "+Math.round(low_rt)+"ms.</p>"+
112
- "<p>The typical pattern of results is that people are faster to respond to high frequency (common) "+
113
- "word than low frequency (uncommon) words.</p>"+
114
- "<p>Press C to see the entire set of data generated by this experiment.</p>";
115
-
116
- return message;
117
-
118
- }
119
- }
120
- timeline.push(debrief);
121
-
122
-
123
- jsPsych.init({
124
- timeline: timeline,
125
- on_finish: function() {
126
- jsPsych.data.displayData();
127
- },
128
- default_iti: 250
129
- });
130
- </script>
131
-
132
- </html>
@@ -1,53 +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-image-keyboard-response.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </style>
9
- </head>
10
- <body></body>
11
- <script>
12
-
13
- var images_to_preload = [
14
- 'img/happy_face_1.jpg',
15
- 'img/happy_face_2.jpg',
16
- 'img/happy_face_3.jpg',
17
- 'img/happy_face_4.jpg',
18
- 'img/sad_face_1.jpg',
19
- 'img/sad_face_2.jpg',
20
- 'img/sad_face_3.jpg',
21
- 'img/sad_face_4.jpg'
22
- ];
23
-
24
- var pre_trial = {
25
- type: 'html-keyboard-response',
26
- stimulus: '<p>If you check the Network tab in your browser&rsquo;s developer tools,<br>you should see that 8 images have been loaded into memory.</p>'+
27
- '<p>The next trial uses the image-keyboard-response plugin.<br>This plugin automatically preloads the image when an image file name is used for the stimulus parameter.</p>'+
28
- '<p>However, in this case the stimulus parameter is a <em>function</em> that randomly selects an image to display,<br>'+
29
- 'We therefore need to manually preload the images.</p>'+
30
- '<p>The image that is selected should not load again in the Network tab when the trial starts.</p>'+
31
- '<p>Press any key to continue.</p>'
32
- }
33
-
34
- var trial = {
35
- type: 'image-keyboard-response',
36
- stimulus: function(){
37
- return jsPsych.randomization.sampleWithoutReplacement(images_to_preload, 1)[0];
38
- },
39
- choices: ['y','n'],
40
- prompt: '<p>Have you seen this face before? Y or N.</p>',
41
- stimulus_width: 300
42
- }
43
-
44
- jsPsych.init({
45
- timeline: [pre_trial, trial],
46
- on_finish: function() {
47
- jsPsych.data.displayData();
48
- },
49
- preload_images: images_to_preload
50
- });
51
- </script>
52
-
53
- </html>
@@ -1,33 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
-
5
- <script src="../jspsych.js"></script>
6
- <script src="../plugins/jspsych-html-keyboard-response.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
- <body></body>
10
- <script>
11
-
12
- var first = {
13
- type: 'html-keyboard-response',
14
- stimulus: 'first trial! experiment will pause for 2s in between trials. press any key.',
15
- post_trial_gap: 0,
16
- on_finish: function(){
17
- jsPsych.pauseExperiment();
18
- setTimeout(jsPsych.resumeExperiment, 2000);
19
- }
20
- }
21
-
22
- var second = {
23
- type: 'html-keyboard-response',
24
- stimulus: 'second trial!'
25
- }
26
-
27
- jsPsych.init({
28
- timeline: [first, second],
29
- on_finish: function(){jsPsych.data.displayData(); }
30
- });
31
-
32
- </script>
33
- </html>