jspsych 6.3.1 → 7.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (401) hide show
  1. package/README.md +36 -37
  2. package/css/jspsych.css +39 -39
  3. package/dist/JsPsych.d.ts +112 -0
  4. package/dist/TimelineNode.d.ts +34 -0
  5. package/dist/index.browser.js +3171 -0
  6. package/dist/index.browser.js.map +1 -0
  7. package/dist/index.browser.min.js +2 -0
  8. package/dist/index.browser.min.js.map +1 -0
  9. package/dist/index.cjs +3165 -0
  10. package/dist/index.cjs.map +1 -0
  11. package/dist/index.d.ts +11 -0
  12. package/dist/index.js +3159 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/migration.d.ts +3 -0
  15. package/dist/modules/data/DataCollection.d.ts +45 -0
  16. package/dist/modules/data/DataColumn.d.ts +15 -0
  17. package/dist/modules/data/index.d.ts +25 -0
  18. package/dist/modules/data/utils.d.ts +3 -0
  19. package/dist/modules/extensions.d.ts +22 -0
  20. package/dist/modules/plugin-api/HardwareAPI.d.ts +15 -0
  21. package/dist/modules/plugin-api/KeyboardListenerAPI.d.ts +34 -0
  22. package/dist/modules/plugin-api/MediaAPI.d.ts +27 -0
  23. package/dist/modules/plugin-api/SimulationAPI.d.ts +41 -0
  24. package/dist/modules/plugin-api/TimeoutAPI.d.ts +5 -0
  25. package/dist/modules/plugin-api/index.d.ts +8 -0
  26. package/dist/modules/plugins.d.ts +136 -0
  27. package/dist/modules/randomization.d.ts +35 -0
  28. package/dist/modules/turk.d.ts +40 -0
  29. package/dist/modules/utils.d.ts +7 -0
  30. package/package.json +32 -15
  31. package/src/JsPsych.ts +884 -0
  32. package/src/TimelineNode.ts +536 -0
  33. package/src/index.ts +71 -0
  34. package/src/migration.ts +37 -0
  35. package/src/modules/data/DataCollection.ts +198 -0
  36. package/src/modules/data/DataColumn.ts +86 -0
  37. package/src/modules/data/index.ts +174 -0
  38. package/src/modules/data/utils.ts +75 -0
  39. package/src/modules/extensions.ts +23 -0
  40. package/src/modules/plugin-api/HardwareAPI.ts +32 -0
  41. package/src/modules/plugin-api/KeyboardListenerAPI.ts +165 -0
  42. package/src/modules/plugin-api/MediaAPI.ts +337 -0
  43. package/src/modules/plugin-api/SimulationAPI.ts +181 -0
  44. package/src/modules/plugin-api/TimeoutAPI.ts +16 -0
  45. package/src/modules/plugin-api/index.ts +28 -0
  46. package/src/modules/plugins.ts +165 -0
  47. package/src/modules/randomization.ts +327 -0
  48. package/src/modules/turk.ts +99 -0
  49. package/src/modules/utils.ts +30 -0
  50. package/.github/workflows/jest.yml +0 -20
  51. package/code-of-conduct.md +0 -56
  52. package/contributors.md +0 -61
  53. package/docs/CNAME +0 -1
  54. package/docs/about/about.md +0 -18
  55. package/docs/about/contributing.md +0 -43
  56. package/docs/about/license.md +0 -25
  57. package/docs/about/support.md +0 -7
  58. package/docs/core_library/jspsych-core.md +0 -719
  59. package/docs/core_library/jspsych-data.md +0 -587
  60. package/docs/core_library/jspsych-pluginAPI.md +0 -624
  61. package/docs/core_library/jspsych-randomization.md +0 -389
  62. package/docs/core_library/jspsych-turk.md +0 -98
  63. package/docs/extensions/extensions.md +0 -83
  64. package/docs/extensions/jspsych-ext-webgazer.md +0 -137
  65. package/docs/img/blue.png +0 -0
  66. package/docs/img/devtools-change-css.png +0 -0
  67. package/docs/img/devtools-css-errors.png +0 -0
  68. package/docs/img/devtools-inspect-element.png +0 -0
  69. package/docs/img/folder-setup.png +0 -0
  70. package/docs/img/folder-with-html.png +0 -0
  71. package/docs/img/githubreleases.jpg +0 -0
  72. package/docs/img/jspsych-favicon.png +0 -0
  73. package/docs/img/jspsych-logo-no-text-mono.svg +0 -493
  74. package/docs/img/jspsych-logo.jpg +0 -0
  75. package/docs/img/orange.png +0 -0
  76. package/docs/img/palmer_stim.png +0 -0
  77. package/docs/img/progress_bar.png +0 -0
  78. package/docs/img/prolific-study-completion.png +0 -0
  79. package/docs/img/prolific-study-link.png +0 -0
  80. package/docs/img/visual_search_example.jpg +0 -0
  81. package/docs/index.md +0 -9
  82. package/docs/overview/browser-device-support.md +0 -35
  83. package/docs/overview/callbacks.md +0 -180
  84. package/docs/overview/data.md +0 -281
  85. package/docs/overview/dynamic-parameters.md +0 -147
  86. package/docs/overview/exclude-browser.md +0 -32
  87. package/docs/overview/experiment-options.md +0 -149
  88. package/docs/overview/eye-tracking.md +0 -271
  89. package/docs/overview/fullscreen.md +0 -36
  90. package/docs/overview/media-preloading.md +0 -369
  91. package/docs/overview/mturk.md +0 -77
  92. package/docs/overview/plugins.md +0 -320
  93. package/docs/overview/progress-bar.md +0 -110
  94. package/docs/overview/prolific.md +0 -78
  95. package/docs/overview/record-browser-interactions.md +0 -23
  96. package/docs/overview/running-experiments.md +0 -95
  97. package/docs/overview/style.md +0 -293
  98. package/docs/overview/timeline.md +0 -457
  99. package/docs/plugins/jspsych-animation.md +0 -40
  100. package/docs/plugins/jspsych-audio-button-response.md +0 -60
  101. package/docs/plugins/jspsych-audio-keyboard-response.md +0 -58
  102. package/docs/plugins/jspsych-audio-slider-response.md +0 -53
  103. package/docs/plugins/jspsych-call-function.md +0 -81
  104. package/docs/plugins/jspsych-canvas-button-response.md +0 -66
  105. package/docs/plugins/jspsych-canvas-keyboard-response.md +0 -68
  106. package/docs/plugins/jspsych-canvas-slider-response.md +0 -89
  107. package/docs/plugins/jspsych-categorize-animation.md +0 -60
  108. package/docs/plugins/jspsych-categorize-html.md +0 -53
  109. package/docs/plugins/jspsych-categorize-image.md +0 -53
  110. package/docs/plugins/jspsych-cloze.md +0 -45
  111. package/docs/plugins/jspsych-external-html.md +0 -70
  112. package/docs/plugins/jspsych-free-sort.md +0 -56
  113. package/docs/plugins/jspsych-fullscreen.md +0 -57
  114. package/docs/plugins/jspsych-html-button-response.md +0 -42
  115. package/docs/plugins/jspsych-html-keyboard-response.md +0 -51
  116. package/docs/plugins/jspsych-html-slider-response.md +0 -45
  117. package/docs/plugins/jspsych-iat-html.md +0 -64
  118. package/docs/plugins/jspsych-iat-image.md +0 -64
  119. package/docs/plugins/jspsych-image-button-response.md +0 -48
  120. package/docs/plugins/jspsych-image-keyboard-response.md +0 -58
  121. package/docs/plugins/jspsych-image-slider-response.md +0 -54
  122. package/docs/plugins/jspsych-instructions.md +0 -58
  123. package/docs/plugins/jspsych-maxdiff.md +0 -41
  124. package/docs/plugins/jspsych-preload.md +0 -128
  125. package/docs/plugins/jspsych-rdk.md +0 -119
  126. package/docs/plugins/jspsych-reconstruction.md +0 -48
  127. package/docs/plugins/jspsych-resize.md +0 -39
  128. package/docs/plugins/jspsych-same-different-html.md +0 -53
  129. package/docs/plugins/jspsych-same-different-image.md +0 -66
  130. package/docs/plugins/jspsych-serial-reaction-time-mouse.md +0 -52
  131. package/docs/plugins/jspsych-serial-reaction-time.md +0 -57
  132. package/docs/plugins/jspsych-survey-html-form.md +0 -50
  133. package/docs/plugins/jspsych-survey-likert.md +0 -70
  134. package/docs/plugins/jspsych-survey-multi-choice.md +0 -48
  135. package/docs/plugins/jspsych-survey-multi-select.md +0 -53
  136. package/docs/plugins/jspsych-survey-text.md +0 -63
  137. package/docs/plugins/jspsych-video-button-response.md +0 -54
  138. package/docs/plugins/jspsych-video-keyboard-response.md +0 -50
  139. package/docs/plugins/jspsych-video-slider-response.md +0 -60
  140. package/docs/plugins/jspsych-virtual-chinrest.md +0 -105
  141. package/docs/plugins/jspsych-visual-search-circle.md +0 -52
  142. package/docs/plugins/jspsych-vsl-animate-occlusion.md +0 -55
  143. package/docs/plugins/jspsych-vsl-grid-scene.md +0 -62
  144. package/docs/plugins/jspsych-webgazer-calibrate.md +0 -61
  145. package/docs/plugins/jspsych-webgazer-init-camera.md +0 -30
  146. package/docs/plugins/jspsych-webgazer-validate.md +0 -44
  147. package/docs/plugins/list-of-plugins.md +0 -54
  148. package/docs/tutorials/hello-world.md +0 -162
  149. package/docs/tutorials/rt-task.md +0 -1334
  150. package/docs/tutorials/video-tutorials.md +0 -11
  151. package/examples/add-to-end-of-timeline.html +0 -38
  152. package/examples/case-sensitive-responses.html +0 -45
  153. package/examples/conditional-and-loop-functions.html +0 -64
  154. package/examples/css/jquery-ui.css +0 -1225
  155. package/examples/css-classes-parameter.html +0 -145
  156. package/examples/data-add-properties.html +0 -44
  157. package/examples/data-as-function.html +0 -39
  158. package/examples/data-from-timeline.html +0 -52
  159. package/examples/data-from-url.html +0 -21
  160. package/examples/demo-flanker.html +0 -117
  161. package/examples/demo-simple-rt-task.html +0 -120
  162. package/examples/demos/demo_1.html +0 -35
  163. package/examples/demos/demo_2.html +0 -50
  164. package/examples/demos/demo_3.html +0 -63
  165. package/examples/display-element-to-embed-experiment.html +0 -79
  166. package/examples/end-active-node.html +0 -52
  167. package/examples/end-experiment.html +0 -45
  168. package/examples/exclusions.html +0 -32
  169. package/examples/external_html/simple_consent.html +0 -4
  170. package/examples/img/1.gif +0 -0
  171. package/examples/img/10.gif +0 -0
  172. package/examples/img/11.gif +0 -0
  173. package/examples/img/12.gif +0 -0
  174. package/examples/img/2.gif +0 -0
  175. package/examples/img/3.gif +0 -0
  176. package/examples/img/4.gif +0 -0
  177. package/examples/img/5.gif +0 -0
  178. package/examples/img/6.gif +0 -0
  179. package/examples/img/7.gif +0 -0
  180. package/examples/img/8.gif +0 -0
  181. package/examples/img/9.gif +0 -0
  182. package/examples/img/age/of1.jpg +0 -0
  183. package/examples/img/age/of2.jpg +0 -0
  184. package/examples/img/age/of3.jpg +0 -0
  185. package/examples/img/age/om1.jpg +0 -0
  186. package/examples/img/age/om2.jpg +0 -0
  187. package/examples/img/age/om3.jpg +0 -0
  188. package/examples/img/age/yf1.jpg +0 -0
  189. package/examples/img/age/yf4.jpg +0 -0
  190. package/examples/img/age/yf5.jpg +0 -0
  191. package/examples/img/age/ym2.jpg +0 -0
  192. package/examples/img/age/ym3.jpg +0 -0
  193. package/examples/img/age/ym5.jpg +0 -0
  194. package/examples/img/backwardN.gif +0 -0
  195. package/examples/img/blue.png +0 -0
  196. package/examples/img/card.png +0 -0
  197. package/examples/img/con1.png +0 -0
  198. package/examples/img/con2.png +0 -0
  199. package/examples/img/fixation.gif +0 -0
  200. package/examples/img/happy_face_1.jpg +0 -0
  201. package/examples/img/happy_face_2.jpg +0 -0
  202. package/examples/img/happy_face_3.jpg +0 -0
  203. package/examples/img/happy_face_4.jpg +0 -0
  204. package/examples/img/inc1.png +0 -0
  205. package/examples/img/inc2.png +0 -0
  206. package/examples/img/normalN.gif +0 -0
  207. package/examples/img/orange.png +0 -0
  208. package/examples/img/redX.png +0 -0
  209. package/examples/img/ribbon.jpg +0 -0
  210. package/examples/img/sad_face_1.jpg +0 -0
  211. package/examples/img/sad_face_2.jpg +0 -0
  212. package/examples/img/sad_face_3.jpg +0 -0
  213. package/examples/img/sad_face_4.jpg +0 -0
  214. package/examples/js/snap.svg-min.js +0 -21
  215. package/examples/js/webgazer/ridgeWorker.mjs +0 -135
  216. package/examples/js/webgazer/webgazer.js +0 -88909
  217. package/examples/js/webgazer/worker_scripts/mat.js +0 -306
  218. package/examples/js/webgazer/worker_scripts/util.js +0 -398
  219. package/examples/jspsych-RDK.html +0 -58
  220. package/examples/jspsych-animation.html +0 -39
  221. package/examples/jspsych-audio-button-response.html +0 -58
  222. package/examples/jspsych-audio-keyboard-response.html +0 -68
  223. package/examples/jspsych-audio-slider-response.html +0 -61
  224. package/examples/jspsych-call-function.html +0 -32
  225. package/examples/jspsych-canvas-button-response.html +0 -95
  226. package/examples/jspsych-canvas-keyboard-response.html +0 -78
  227. package/examples/jspsych-canvas-slider-response.html +0 -67
  228. package/examples/jspsych-categorize-animation.html +0 -49
  229. package/examples/jspsych-categorize-html.html +0 -33
  230. package/examples/jspsych-categorize-image.html +0 -44
  231. package/examples/jspsych-cloze.html +0 -37
  232. package/examples/jspsych-free-sort.html +0 -109
  233. package/examples/jspsych-fullscreen.html +0 -45
  234. package/examples/jspsych-html-button-response.html +0 -43
  235. package/examples/jspsych-html-keyboard-response.html +0 -42
  236. package/examples/jspsych-html-slider-response.html +0 -53
  237. package/examples/jspsych-iat.html +0 -520
  238. package/examples/jspsych-image-button-response.html +0 -91
  239. package/examples/jspsych-image-keyboard-response.html +0 -85
  240. package/examples/jspsych-image-slider-response.html +0 -85
  241. package/examples/jspsych-instructions.html +0 -37
  242. package/examples/jspsych-maxdiff.html +0 -33
  243. package/examples/jspsych-preload.html +0 -140
  244. package/examples/jspsych-reconstruction.html +0 -43
  245. package/examples/jspsych-resize.html +0 -34
  246. package/examples/jspsych-same-different-html.html +0 -28
  247. package/examples/jspsych-same-different-image.html +0 -39
  248. package/examples/jspsych-serial-reaction-time-mouse.html +0 -98
  249. package/examples/jspsych-serial-reaction-time.html +0 -54
  250. package/examples/jspsych-survey-html-form.html +0 -33
  251. package/examples/jspsych-survey-likert.html +0 -42
  252. package/examples/jspsych-survey-multi-choice.html +0 -40
  253. package/examples/jspsych-survey-multi-select.html +0 -42
  254. package/examples/jspsych-survey-text.html +0 -34
  255. package/examples/jspsych-video-button-response.html +0 -65
  256. package/examples/jspsych-video-keyboard-response.html +0 -61
  257. package/examples/jspsych-video-slider-response.html +0 -63
  258. package/examples/jspsych-virtual-chinrest.html +0 -69
  259. package/examples/jspsych-visual-search-circle.html +0 -64
  260. package/examples/jspsych-vsl-animate-occlusion.html +0 -35
  261. package/examples/jspsych-vsl-grid-scene.html +0 -47
  262. package/examples/lexical-decision.html +0 -134
  263. package/examples/manual-preloading.html +0 -59
  264. package/examples/pause-unpause.html +0 -33
  265. package/examples/progress-bar.html +0 -68
  266. package/examples/save-trial-parameters.html +0 -98
  267. package/examples/sound/hammer.mp3 +0 -0
  268. package/examples/sound/sound.mp3 +0 -0
  269. package/examples/sound/speech_blue.mp3 +0 -0
  270. package/examples/sound/speech_green.mp3 +0 -0
  271. package/examples/sound/speech_joke.mp3 +0 -0
  272. package/examples/sound/speech_red.mp3 +0 -0
  273. package/examples/sound/tone.mp3 +0 -0
  274. package/examples/timeline-variables-sampling.html +0 -50
  275. package/examples/timeline-variables.html +0 -64
  276. package/examples/video/sample_video.mp4 +0 -0
  277. package/examples/webgazer.html +0 -174
  278. package/examples/webgazer_audio.html +0 -90
  279. package/examples/webgazer_image.html +0 -60
  280. package/extensions/jspsych-ext-webgazer.js +0 -265
  281. package/jspsych.js +0 -3023
  282. package/license.txt +0 -21
  283. package/mkdocs.yml +0 -118
  284. package/plugins/jspsych-animation.js +0 -189
  285. package/plugins/jspsych-audio-button-response.js +0 -269
  286. package/plugins/jspsych-audio-keyboard-response.js +0 -209
  287. package/plugins/jspsych-audio-slider-response.js +0 -278
  288. package/plugins/jspsych-call-function.js +0 -58
  289. package/plugins/jspsych-canvas-button-response.js +0 -199
  290. package/plugins/jspsych-canvas-keyboard-response.js +0 -155
  291. package/plugins/jspsych-canvas-slider-response.js +0 -207
  292. package/plugins/jspsych-categorize-animation.js +0 -266
  293. package/plugins/jspsych-categorize-html.js +0 -220
  294. package/plugins/jspsych-categorize-image.js +0 -222
  295. package/plugins/jspsych-cloze.js +0 -112
  296. package/plugins/jspsych-external-html.js +0 -112
  297. package/plugins/jspsych-free-sort.js +0 -478
  298. package/plugins/jspsych-fullscreen.js +0 -106
  299. package/plugins/jspsych-html-button-response.js +0 -188
  300. package/plugins/jspsych-html-keyboard-response.js +0 -149
  301. package/plugins/jspsych-html-slider-response.js +0 -202
  302. package/plugins/jspsych-iat-html.js +0 -284
  303. package/plugins/jspsych-iat-image.js +0 -286
  304. package/plugins/jspsych-image-button-response.js +0 -327
  305. package/plugins/jspsych-image-keyboard-response.js +0 -263
  306. package/plugins/jspsych-image-slider-response.js +0 -369
  307. package/plugins/jspsych-instructions.js +0 -237
  308. package/plugins/jspsych-maxdiff.js +0 -173
  309. package/plugins/jspsych-preload.js +0 -345
  310. package/plugins/jspsych-rdk.js +0 -1373
  311. package/plugins/jspsych-reconstruction.js +0 -134
  312. package/plugins/jspsych-resize.js +0 -166
  313. package/plugins/jspsych-same-different-html.js +0 -168
  314. package/plugins/jspsych-same-different-image.js +0 -169
  315. package/plugins/jspsych-serial-reaction-time-mouse.js +0 -212
  316. package/plugins/jspsych-serial-reaction-time.js +0 -247
  317. package/plugins/jspsych-survey-html-form.js +0 -171
  318. package/plugins/jspsych-survey-likert.js +0 -195
  319. package/plugins/jspsych-survey-multi-choice.js +0 -208
  320. package/plugins/jspsych-survey-multi-select.js +0 -232
  321. package/plugins/jspsych-survey-text.js +0 -185
  322. package/plugins/jspsych-video-button-response.js +0 -335
  323. package/plugins/jspsych-video-keyboard-response.js +0 -279
  324. package/plugins/jspsych-video-slider-response.js +0 -351
  325. package/plugins/jspsych-virtual-chinrest.js +0 -471
  326. package/plugins/jspsych-visual-search-circle.js +0 -259
  327. package/plugins/jspsych-vsl-animate-occlusion.js +0 -196
  328. package/plugins/jspsych-vsl-grid-scene.js +0 -103
  329. package/plugins/jspsych-webgazer-calibrate.js +0 -161
  330. package/plugins/jspsych-webgazer-init-camera.js +0 -139
  331. package/plugins/jspsych-webgazer-validate.js +0 -314
  332. package/plugins/template/jspsych-plugin-template.js +0 -35
  333. package/tests/README.md +0 -7
  334. package/tests/jsPsych/case-sensitive-responses.test.js +0 -53
  335. package/tests/jsPsych/css-classes-parameter.test.js +0 -107
  336. package/tests/jsPsych/default-iti.test.js +0 -51
  337. package/tests/jsPsych/default-parameters.test.js +0 -58
  338. package/tests/jsPsych/endexperiment.test.js +0 -49
  339. package/tests/jsPsych/events.test.js +0 -606
  340. package/tests/jsPsych/functions-as-parameters.test.js +0 -210
  341. package/tests/jsPsych/init.test.js +0 -48
  342. package/tests/jsPsych/loads.test.js +0 -7
  343. package/tests/jsPsych/min-rt.test.js +0 -58
  344. package/tests/jsPsych/progressbar.test.js +0 -202
  345. package/tests/jsPsych/timeline-variables.test.js +0 -531
  346. package/tests/jsPsych/timelines.test.js +0 -569
  347. package/tests/jsPsych.data/data-csv-conversion.test.js +0 -85
  348. package/tests/jsPsych.data/data-json-conversion.test.js +0 -120
  349. package/tests/jsPsych.data/datacollection.test.js +0 -117
  350. package/tests/jsPsych.data/datacolumn.test.js +0 -50
  351. package/tests/jsPsych.data/datamodule.test.js +0 -152
  352. package/tests/jsPsych.data/dataparameter.test.js +0 -251
  353. package/tests/jsPsych.data/interactions.test.js +0 -109
  354. package/tests/jsPsych.data/trialparameters.test.js +0 -175
  355. package/tests/jsPsych.extensions/extensions.test.js +0 -207
  356. package/tests/jsPsych.extensions/test-extension.js +0 -42
  357. package/tests/jsPsych.pluginAPI/pluginapi.test.js +0 -365
  358. package/tests/jsPsych.pluginAPI/preloads.test.js +0 -43
  359. package/tests/jsPsych.randomization/randomziation.test.js +0 -27
  360. package/tests/jsPsych.utils/utils.test.js +0 -58
  361. package/tests/plugins/plugin-animation.test.js +0 -34
  362. package/tests/plugins/plugin-audio-button-response.test.js +0 -15
  363. package/tests/plugins/plugin-audio-keyboard-response.test.js +0 -15
  364. package/tests/plugins/plugin-audio-slider-response.test.js +0 -15
  365. package/tests/plugins/plugin-call-function.test.js +0 -49
  366. package/tests/plugins/plugin-categorize-animation.test.js +0 -263
  367. package/tests/plugins/plugin-categorize-html.test.js +0 -17
  368. package/tests/plugins/plugin-categorize-image.test.js +0 -17
  369. package/tests/plugins/plugin-cloze.test.js +0 -157
  370. package/tests/plugins/plugin-free-sort.test.js +0 -106
  371. package/tests/plugins/plugin-fullscreen.test.js +0 -41
  372. package/tests/plugins/plugin-html-button-response.test.js +0 -161
  373. package/tests/plugins/plugin-html-keyboard-response.test.js +0 -139
  374. package/tests/plugins/plugin-html-slider-response.test.js +0 -155
  375. package/tests/plugins/plugin-iat-html.test.js +0 -299
  376. package/tests/plugins/plugin-iat-image.test.js +0 -298
  377. package/tests/plugins/plugin-image-button-response.test.js +0 -174
  378. package/tests/plugins/plugin-image-keyboard-response.test.js +0 -147
  379. package/tests/plugins/plugin-image-slider-response.test.js +0 -174
  380. package/tests/plugins/plugin-instructions.test.js +0 -85
  381. package/tests/plugins/plugin-maxdiff.test.js +0 -39
  382. package/tests/plugins/plugin-preload.test.js +0 -916
  383. package/tests/plugins/plugin-rdk.test.js +0 -61
  384. package/tests/plugins/plugin-reconstruction.test.js +0 -16
  385. package/tests/plugins/plugin-resize.test.js +0 -16
  386. package/tests/plugins/plugin-same-different-html.test.js +0 -17
  387. package/tests/plugins/plugin-same-different-image.test.js +0 -17
  388. package/tests/plugins/plugin-serial-reaction-time-mouse.test.js +0 -42
  389. package/tests/plugins/plugin-serial-reaction-time.test.js +0 -109
  390. package/tests/plugins/plugin-survey-html-form.test.js +0 -44
  391. package/tests/plugins/plugin-survey-likert.test.js +0 -48
  392. package/tests/plugins/plugin-survey-multi-choice.test.js +0 -47
  393. package/tests/plugins/plugin-survey-multi-select.test.js +0 -71
  394. package/tests/plugins/plugin-survey-text.test.js +0 -115
  395. package/tests/plugins/plugin-video-button-response.test.js +0 -32
  396. package/tests/plugins/plugin-video-keyboard-response.test.js +0 -32
  397. package/tests/plugins/plugin-video-slider-response.test.js +0 -31
  398. package/tests/plugins/plugin-visual-search-circle.test.js +0 -16
  399. package/tests/plugins/plugin-vsl-animate-occlusion.test.js +0 -16
  400. package/tests/plugins/plugin-vsl-grid-scene.test.js +0 -16
  401. package/tests/testing-utils.js +0 -13
@@ -1,33 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <script src="../jspsych.js"></script>
5
- <script src="../plugins/jspsych-survey-html-form.js"></script>
6
- <link rel="stylesheet" href="../css/jspsych.css"></script>
7
- </head>
8
- <body>
9
-
10
- </body>
11
- <script type="text/javascript">
12
-
13
- var form_trial = {
14
- type: 'survey-html-form',
15
- preamble: '<p> How are you feeling <b>right now?</b> </p>',
16
- html: '<p> I am feeling <input name="first" type="text" />, <input name="second" type="text" />, and <input name="third" type="text" />.</p>'
17
- }
18
-
19
- var autofocus_trial = {
20
- type: 'survey-html-form',
21
- preamble: '<p> What is your favorite bird?</p>',
22
- html: '<p>My favorite bird is <input type="text" id="test-resp-box" name="response" size="10" /></p>',
23
- autofocus: 'test-resp-box'
24
- }
25
-
26
- jsPsych.init({
27
- timeline: [form_trial,autofocus_trial],
28
- on_finish: function(){ jsPsych.data.displayData(); }
29
- });
30
-
31
- </script>
32
-
33
- </html>
@@ -1,42 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
-
5
- <script src="../jspsych.js"></script>
6
- <script src="../plugins/jspsych-survey-likert.js"></script>
7
- <link rel="stylesheet" href="../css/jspsych.css">
8
- </head>
9
- <body></body>
10
- <script>
11
-
12
- var scale = ["Strongly Disagree", "Disagree", "Neutral", "Agree", "Strongly Agree"];
13
-
14
- var likert_trial = {
15
- type: 'survey-likert',
16
- questions: [
17
- {prompt: "I like vegetables.", name: 'Vegetables', labels: scale, required: true},
18
- {prompt: "I like fruit.", name: 'Fruit', labels: scale, required: true}
19
- ],
20
- };
21
-
22
- var likert_trial_random_order = {
23
- type: 'survey-likert',
24
- questions: [
25
- {prompt: "Question 1", labels: scale},
26
- {prompt: "Question 2", labels: scale},
27
- {prompt: "Question 3", labels: scale},
28
- {prompt: "Question 4", labels: scale},
29
- {prompt: "Question 5", labels: scale}
30
- ],
31
- randomize_question_order: true,
32
- scale_width: 500
33
- };
34
-
35
- jsPsych.init({
36
- timeline: [likert_trial, likert_trial_random_order],
37
- on_finish: function() { jsPsych.data.displayData(); }
38
- });
39
-
40
-
41
- </script>
42
- </html>
@@ -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,65 +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
- <script src="../plugins/jspsych-preload.js"></script>
8
- <link rel="stylesheet" href="../css/jspsych.css">
9
- </head>
10
- <body></body>
11
- <script>
12
-
13
- // preloading videos only works when the file is running on a server
14
- // if you run this experiment by opening the file directly in the browser,
15
- // then video preloading will be disabled to prevent CORS errors
16
- var preload = {
17
- type: 'preload',
18
- auto_preload: true
19
- }
20
-
21
- var pre_trial = {
22
- type: 'html-button-response',
23
- 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>',
24
- choices: ['Continue']
25
- }
26
-
27
- var trial_1 = {
28
- type: 'video-button-response',
29
- stimulus: ['video/sample_video.mp4'],
30
- choices: ['Y','N'],
31
- margin_vertical: '10px',
32
- margin_horizontal: '8px',
33
- prompt: 'Press Y or N',
34
- width: 600,
35
- //height: 600,
36
- autoplay: true,
37
- //controls: true,
38
- //start: 8,
39
- //stop: 9,
40
- rate: 1.5,
41
- //trial_duration: 2000,
42
- response_ends_trial: true
43
- }
44
-
45
- var trial_2 = {
46
- type: 'video-button-response',
47
- stimulus: ['video/sample_video.mp4'],
48
- choices: ['😄','😁','🥱','😣','🤯'],
49
- button_html: '<div style="font-size:40px;">%choice%</div>',
50
- margin_vertical: '10px',
51
- margin_horizontal: '8px',
52
- prompt: '<p>Click the emoji that best represents your reaction to 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>',
53
- width: 600,
54
- autoplay: true,
55
- response_ends_trial: true,
56
- response_allowed_while_playing: false
57
- }
58
-
59
- jsPsych.init({
60
- timeline: [preload, pre_trial, trial_1, trial_2],
61
- on_finish: function() { jsPsych.data.displayData(); }
62
- });
63
-
64
- </script>
65
- </html>
@@ -1,61 +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
- <script src="../plugins/jspsych-preload.js"></script>
8
- <link rel="stylesheet" href="../css/jspsych.css">
9
- </head>
10
- <body></body>
11
- <script>
12
-
13
- // preloading videos only works when the file is running on a server
14
- // if you run this experiment by opening the file directly in the browser,
15
- // then video preloading will be disabled to prevent CORS errors
16
- var preload = {
17
- type: 'preload',
18
- auto_preload: true
19
- }
20
-
21
- var pre_trial = {
22
- type: 'html-button-response',
23
- 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>',
24
- choices: ['continue']
25
- }
26
-
27
- var trial_1 = {
28
- type: 'video-keyboard-response',
29
- stimulus: ['video/sample_video.mp4'],
30
- choices: ['y','n'],
31
- prompt: 'Press y or n.',
32
- width: 600,
33
- //height: 600,
34
- autoplay: true,
35
- //controls: true,
36
- //start: 8,
37
- //stop: 9,
38
- rate: 1.5,
39
- //trial_duration: 2000,
40
- //trial_ends_after_video: true,
41
- response_ends_trial: true
42
- }
43
-
44
- var trial_2 = {
45
- type: 'video-keyboard-response',
46
- stimulus: ['video/sample_video.mp4'],
47
- choices: jsPsych.ALL_KEYS,
48
- 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>',
49
- width: 600,
50
- autoplay: true,
51
- response_ends_trial: true,
52
- response_allowed_while_playing: false
53
- }
54
-
55
- jsPsych.init({
56
- timeline: [preload, pre_trial, trial_1, trial_2],
57
- on_finish: function() { jsPsych.data.displayData(); }
58
- });
59
-
60
- </script>
61
- </html>
@@ -1,63 +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
- <script src="../plugins/jspsych-preload.js"></script>
8
- <link rel="stylesheet" href="../css/jspsych.css">
9
- </head>
10
- <body></body>
11
- <script>
12
-
13
- // preloading videos only works when the file is running on a server
14
- // if you run this experiment by opening the file directly in the browser,
15
- // then video preloading will be disabled to prevent CORS errors
16
- var preload = {
17
- type: 'preload',
18
- auto_preload: true
19
-
20
- }
21
- var pre_trial = {
22
- type: 'html-button-response',
23
- 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>',
24
- choices: ['Continue']
25
- }
26
-
27
- var trial_1 = {
28
- type: 'video-slider-response',
29
- stimulus: ['video/sample_video.mp4'],
30
- labels: ['1 Star', '2 Stars', '3 Stars', '4 Stars', '5 Stars'],
31
- min: 1,
32
- max: 5,
33
- step: 1,
34
- slider_start: 1,
35
- prompt: '<p>Rate this video clip.</p><p>Slider movement is required, so you must interact with (click) the slider cursor to continue.</p>',
36
- require_movement: true,
37
- width: 600,
38
- autoplay: true,
39
- rate: 1.5,
40
- response_ends_trial: true
41
- }
42
-
43
- var trial_2 = {
44
- type: 'video-slider-response',
45
- stimulus: ['video/sample_video.mp4'],
46
- labels: ['1 Star', '2 Stars', '3 Stars', '4 Stars', '5 Stars'],
47
- min: 1,
48
- max: 5,
49
- step: 1,
50
- slider_start: 3,
51
- prompt: '<p>Rate this video clip after the video finishes playing.</p><p>The slider will be enabled after the video ends.</p>',
52
- width: 600,
53
- autoplay: true,
54
- response_allowed_while_playing: false
55
- }
56
-
57
- jsPsych.init({
58
- timeline: [preload, pre_trial, trial_1, trial_2],
59
- on_finish: function() { jsPsych.data.displayData(); }
60
- });
61
-
62
- </script>
63
- </html>
@@ -1,69 +0,0 @@
1
- <!DOCTYPE html>
2
- <html>
3
- <head>
4
- <meta content="text/html;charset=utf-8" http-equiv="Content-Type">
5
- <meta content="utf-8" http-equiv="encoding">
6
- <script src="https://cdnjs.cloudflare.com/ajax/libs/svg.js/2.6.3/svg.min.js"></script>
7
- <script src="../jspsych.js"></script>
8
- <script src="../plugins/jspsych-virtual-chinrest.js"></script>
9
- <script src="../plugins/jspsych-html-keyboard-response.js"></script>
10
- <link rel="stylesheet" href="../css/jspsych.css"></link>
11
- </head>
12
-
13
- <script>
14
-
15
- // two blindspot estimates
16
- // measure px2mm, px2deg, viewing distance
17
- // resize to cm (50 pixels per unit)
18
- // note: you may still choose to estimate viewing distance even if resizing to cm or inches
19
- let cm_resize = {
20
- type: 'virtual-chinrest',
21
- blindspot_reps: 2,
22
- resize_units: "cm",
23
- pixels_per_unit: 50
24
- };
25
-
26
- // one blindspot estimate
27
- // measure px2mm, viewing distance and px2deg
28
- // resize to degrees of visual angle (50 pixels per unit)
29
- // don't report viewing distance to subject
30
- let deg_resize = {
31
- type: 'virtual-chinrest',
32
- blindspot_reps: 1,
33
- resize_units: "deg",
34
- pixels_per_unit: 50,
35
- viewing_distance_report: 'none'
36
- };
37
-
38
- // one blindspot estimate
39
- // estimate viewing distance but do not resize
40
- // note: pixels_per_unit will be ignored
41
- let no_resize = {
42
- type: 'virtual-chinrest',
43
- blindspot_reps: 1,
44
- resize_units: "none",
45
- pixels_per_unit: 50
46
- };
47
-
48
- // resizing to degrees with no blindspot measurment (blindspot_reps: 0) is not possible
49
- // this trial will throw an error
50
- let error_trial = {
51
- type: 'virtual-chinrest',
52
- blindspot_reps: 0,
53
- resize_units: "deg",
54
- pixels_per_unit: 50
55
- }
56
-
57
- let validation_trial = {
58
- type: 'html-keyboard-response',
59
- stimulus: '<div style="margin: auto; width: 200px; height: 200px; background-color: black;"></div>',
60
- prompt: '<p>The stimulus above should be 4cm x 4cm if resizing worked properly.</p>'
61
- }
62
-
63
- jsPsych.init({
64
- timeline: [ cm_resize, validation_trial ], // no_resize, deg_resize, error_trial
65
- on_finish: function() { jsPsych.data.displayData(); }
66
- });
67
-
68
- </script>
69
- </html>
@@ -1,64 +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
- <script src="../plugins/jspsych-preload.js"></script>
11
- <link rel="stylesheet" href="../css/jspsych.css">
12
- </head>
13
- <body></body>
14
- <script>
15
-
16
- var preload_images = {
17
- type: 'preload',
18
- images: ['img/1.gif', 'img/2.gif', 'img/3.gif', 'img/backwardN.gif', 'img/normalN.gif', 'img/fixation.gif']
19
- }
20
-
21
- var intro = {
22
- type: 'html-keyboard-response',
23
- 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>'
24
- }
25
-
26
- var trial_1 = {
27
- target_present: true,
28
- set_size: 4
29
- }
30
-
31
- var trial_2 = {
32
- target_present: true,
33
- set_size: 3
34
- }
35
-
36
- var trial_3 = {
37
- target_present: false,
38
- set_size: 6
39
- }
40
-
41
- var trial_4 = {
42
- target_present: false,
43
- foil: ['img/1.gif', 'img/2.gif', 'img/3.gif'], // example of using multiple foils.
44
- set_size: 3
45
- }
46
-
47
-
48
- var trials = {
49
- type: 'visual-search-circle',
50
- target: 'img/backwardN.gif',
51
- foil: 'img/normalN.gif',
52
- fixation_image: 'img/fixation.gif',
53
- timeline: [trial_1, trial_2, trial_3, trial_4]
54
- };
55
-
56
- jsPsych.init({
57
- timeline: [preload_images, intro, trials],
58
- on_finish: function() {
59
- jsPsych.data.displayData();
60
- }
61
- });
62
- </script>
63
-
64
- </html>
@@ -1,35 +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
- <script src="../plugins/jspsych-preload.js"></script>
10
- <link rel="stylesheet" href="../css/jspsych.css">
11
- </head>
12
- <body></body>
13
- <script>
14
- 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"];
15
-
16
- var preload = {
17
- type: 'preload',
18
- auto_preload: true
19
- }
20
-
21
- // create vsl block for jspsych
22
- var block = {
23
- type: 'vsl-animate-occlusion',
24
- stimuli: images
25
- };
26
-
27
- jsPsych.init({
28
- timeline: [preload, block],
29
- on_finish: function() {
30
- jsPsych.data.displayData();
31
- }
32
- });
33
- </script>
34
-
35
- </html>
@@ -1,47 +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
- <script src="../plugins/jspsych-preload.js"></script>
8
- <link rel="stylesheet" href="../css/jspsych.css">
9
- </head>
10
-
11
- <script>
12
-
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
- var preload = {
16
- type: 'preload',
17
- auto_preload: true
18
- }
19
-
20
- var scene =
21
- [
22
- [0,"img/8.gif","img/9.gif",0,0],
23
- ["img/1.gif", "img/2.gif", 0, 0,0],
24
- [ 0, "img/3.gif", 0, 0, 0],
25
- ["img/5.gif", "img/4.gif", 0, 0, 0],
26
- [0,0,0,0,0]
27
- ]
28
- ;
29
-
30
- var trial = {
31
- type: 'vsl-grid-scene',
32
- stimuli: scene,
33
- image_size: [50,50]
34
- };
35
-
36
- var trial_2 = {
37
- type: 'html-keyboard-response',
38
- stimulus: jsPsych.plugins['vsl-grid-scene'].generate_stimulus(scene, [100,100])
39
- }
40
-
41
- jsPsych.init({
42
- timeline: [preload, trial, trial_2],
43
- on_finish: function() { jsPsych.data.displayData(); }
44
- });
45
-
46
- </script>
47
- </html>