survey-core 1.9.121 → 1.9.123

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 (382) hide show
  1. package/README.md +4 -0
  2. package/defaultV2.css +126 -26
  3. package/defaultV2.css.map +1 -1
  4. package/defaultV2.fontless.css +126 -26
  5. package/defaultV2.fontless.css.map +1 -1
  6. package/defaultV2.fontless.min.css +2 -2
  7. package/defaultV2.min.css +2 -2
  8. package/i18n/arabic.js +1 -1
  9. package/i18n/arabic.min.js +1 -1
  10. package/i18n/basque.js +1 -1
  11. package/i18n/basque.min.js +1 -1
  12. package/i18n/bulgarian.js +1 -1
  13. package/i18n/bulgarian.min.js +1 -1
  14. package/i18n/catalan.js +1 -1
  15. package/i18n/catalan.min.js +1 -1
  16. package/i18n/croatian.js +1 -1
  17. package/i18n/croatian.min.js +1 -1
  18. package/i18n/czech.js +1 -1
  19. package/i18n/czech.min.js +1 -1
  20. package/i18n/danish.js +1 -1
  21. package/i18n/danish.min.js +1 -1
  22. package/i18n/dutch.js +1 -1
  23. package/i18n/dutch.min.js +1 -1
  24. package/i18n/english.js +1 -1
  25. package/i18n/english.min.js +1 -1
  26. package/i18n/estonian.js +1 -1
  27. package/i18n/estonian.min.js +1 -1
  28. package/i18n/finnish.js +1 -1
  29. package/i18n/finnish.min.js +1 -1
  30. package/i18n/french.js +1 -1
  31. package/i18n/french.min.js +1 -1
  32. package/i18n/georgian.js +1 -1
  33. package/i18n/georgian.min.js +1 -1
  34. package/i18n/german.js +1 -1
  35. package/i18n/german.min.js +1 -1
  36. package/i18n/greek.js +1 -1
  37. package/i18n/greek.min.js +1 -1
  38. package/i18n/hebrew.js +1 -1
  39. package/i18n/hebrew.min.js +1 -1
  40. package/i18n/hindi.js +1 -1
  41. package/i18n/hindi.min.js +1 -1
  42. package/i18n/hungarian.js +1 -1
  43. package/i18n/hungarian.min.js +1 -1
  44. package/i18n/icelandic.js +1 -1
  45. package/i18n/icelandic.min.js +1 -1
  46. package/i18n/index.js +1 -1
  47. package/i18n/index.min.js +1 -1
  48. package/i18n/indonesian.js +1 -1
  49. package/i18n/indonesian.min.js +1 -1
  50. package/i18n/italian.js +1 -1
  51. package/i18n/italian.min.js +1 -1
  52. package/i18n/japanese.js +1 -1
  53. package/i18n/japanese.min.js +1 -1
  54. package/i18n/kazakh.js +1 -1
  55. package/i18n/kazakh.min.js +1 -1
  56. package/i18n/korean.js +1 -1
  57. package/i18n/korean.min.js +1 -1
  58. package/i18n/latvian.js +1 -1
  59. package/i18n/latvian.min.js +1 -1
  60. package/i18n/lithuanian.js +1 -1
  61. package/i18n/lithuanian.min.js +1 -1
  62. package/i18n/macedonian.js +1 -1
  63. package/i18n/macedonian.min.js +1 -1
  64. package/i18n/malay.js +1 -1
  65. package/i18n/malay.min.js +1 -1
  66. package/i18n/nl-BE.js +1 -1
  67. package/i18n/nl-BE.min.js +1 -1
  68. package/i18n/norwegian.js +1 -1
  69. package/i18n/norwegian.min.js +1 -1
  70. package/i18n/persian.js +1 -1
  71. package/i18n/persian.min.js +1 -1
  72. package/i18n/polish.js +1 -1
  73. package/i18n/polish.min.js +1 -1
  74. package/i18n/portuguese-br.js +1 -1
  75. package/i18n/portuguese-br.min.js +1 -1
  76. package/i18n/portuguese.js +1 -1
  77. package/i18n/portuguese.min.js +1 -1
  78. package/i18n/romanian.js +1 -1
  79. package/i18n/romanian.min.js +1 -1
  80. package/i18n/russian.js +1 -1
  81. package/i18n/russian.min.js +1 -1
  82. package/i18n/serbian.js +1 -1
  83. package/i18n/serbian.min.js +1 -1
  84. package/i18n/simplified-chinese.js +1 -1
  85. package/i18n/simplified-chinese.min.js +1 -1
  86. package/i18n/slovak.js +1 -1
  87. package/i18n/slovak.min.js +1 -1
  88. package/i18n/spanish.js +1 -1
  89. package/i18n/spanish.min.js +1 -1
  90. package/i18n/swahili.js +1 -1
  91. package/i18n/swahili.min.js +1 -1
  92. package/i18n/swedish.js +1 -1
  93. package/i18n/swedish.min.js +1 -1
  94. package/i18n/tajik.js +1 -1
  95. package/i18n/tajik.min.js +1 -1
  96. package/i18n/telugu.js +1 -1
  97. package/i18n/telugu.min.js +1 -1
  98. package/i18n/thai.js +1 -1
  99. package/i18n/thai.min.js +1 -1
  100. package/i18n/traditional-chinese.js +1 -1
  101. package/i18n/traditional-chinese.min.js +1 -1
  102. package/i18n/turkish.js +1 -1
  103. package/i18n/turkish.min.js +1 -1
  104. package/i18n/ukrainian.js +1 -1
  105. package/i18n/ukrainian.min.js +1 -1
  106. package/i18n/urdu.js +1 -1
  107. package/i18n/urdu.min.js +1 -1
  108. package/i18n/vietnamese.js +1 -1
  109. package/i18n/vietnamese.min.js +1 -1
  110. package/i18n/welsh.js +1 -1
  111. package/i18n/welsh.min.js +1 -1
  112. package/modern.css +1 -8
  113. package/modern.css.map +1 -1
  114. package/modern.fontless.css +1 -8
  115. package/modern.fontless.css.map +1 -1
  116. package/modern.fontless.min.css +2 -2
  117. package/modern.min.css +2 -2
  118. package/package.json +1 -1
  119. package/plugins/bootstrap-integration.js +1 -1
  120. package/plugins/bootstrap-integration.min.js +1 -1
  121. package/plugins/bootstrap-material-integration.js +1 -1
  122. package/plugins/bootstrap-material-integration.min.js +1 -1
  123. package/survey.core.js +382 -233
  124. package/survey.core.js.map +1 -1
  125. package/survey.core.min.js +3 -3
  126. package/survey.css +1 -1
  127. package/survey.css.map +1 -1
  128. package/survey.i18n.js +1 -1
  129. package/survey.i18n.min.js +1 -1
  130. package/survey.min.css +1 -1
  131. package/themes/borderless-dark-panelless.js +2 -1
  132. package/themes/borderless-dark-panelless.js.map +1 -1
  133. package/themes/borderless-dark-panelless.min.js +2 -2
  134. package/themes/borderless-dark.js +2 -1
  135. package/themes/borderless-dark.js.map +1 -1
  136. package/themes/borderless-dark.min.js +2 -2
  137. package/themes/borderless-light-panelless..js +2 -1
  138. package/themes/borderless-light-panelless..js.map +1 -1
  139. package/themes/borderless-light-panelless..min.js +2 -2
  140. package/themes/borderless-light.js +2 -1
  141. package/themes/borderless-light.js.map +1 -1
  142. package/themes/borderless-light.min.js +2 -2
  143. package/themes/contrast-dark-panelless.js +2 -1
  144. package/themes/contrast-dark-panelless.js.map +1 -1
  145. package/themes/contrast-dark-panelless.min.js +2 -2
  146. package/themes/contrast-dark.js +2 -1
  147. package/themes/contrast-dark.js.map +1 -1
  148. package/themes/contrast-dark.min.js +2 -2
  149. package/themes/contrast-light-panelless.js +2 -1
  150. package/themes/contrast-light-panelless.js.map +1 -1
  151. package/themes/contrast-light-panelless.min.js +2 -2
  152. package/themes/contrast-light.js +2 -1
  153. package/themes/contrast-light.js.map +1 -1
  154. package/themes/contrast-light.min.js +2 -2
  155. package/themes/default-dark-panelless.js +2 -1
  156. package/themes/default-dark-panelless.js.map +1 -1
  157. package/themes/default-dark-panelless.min.js +2 -2
  158. package/themes/default-dark.js +2 -1
  159. package/themes/default-dark.js.map +1 -1
  160. package/themes/default-dark.min.js +2 -2
  161. package/themes/default-light-panelless.js +2 -1
  162. package/themes/default-light-panelless.js.map +1 -1
  163. package/themes/default-light-panelless.min.js +2 -2
  164. package/themes/default-light.js +2 -1
  165. package/themes/default-light.js.map +1 -1
  166. package/themes/default-light.min.js +2 -2
  167. package/themes/doubleborder-dark-panelless.js +2 -1
  168. package/themes/doubleborder-dark-panelless.js.map +1 -1
  169. package/themes/doubleborder-dark-panelless.min.js +2 -2
  170. package/themes/doubleborder-dark.js +2 -1
  171. package/themes/doubleborder-dark.js.map +1 -1
  172. package/themes/doubleborder-dark.min.js +2 -2
  173. package/themes/doubleborder-light-panelles.js +2 -1
  174. package/themes/doubleborder-light-panelles.js.map +1 -1
  175. package/themes/doubleborder-light-panelles.min.js +2 -2
  176. package/themes/doubleborder-light.js +2 -1
  177. package/themes/doubleborder-light.js.map +1 -1
  178. package/themes/doubleborder-light.min.js +2 -2
  179. package/themes/flat-dark-panelless.js +2 -1
  180. package/themes/flat-dark-panelless.js.map +1 -1
  181. package/themes/flat-dark-panelless.min.js +2 -2
  182. package/themes/flat-dark.js +2 -1
  183. package/themes/flat-dark.js.map +1 -1
  184. package/themes/flat-dark.min.js +2 -2
  185. package/themes/flat-light-panelless.js +2 -1
  186. package/themes/flat-light-panelless.js.map +1 -1
  187. package/themes/flat-light-panelless.min.js +2 -2
  188. package/themes/flat-light.js +2 -1
  189. package/themes/flat-light.js.map +1 -1
  190. package/themes/flat-light.min.js +2 -2
  191. package/themes/index.js +41 -1
  192. package/themes/index.js.map +1 -1
  193. package/themes/index.min.js +2 -2
  194. package/themes/layered-dark-panelless.js +2 -1
  195. package/themes/layered-dark-panelless.js.map +1 -1
  196. package/themes/layered-dark-panelless.min.js +2 -2
  197. package/themes/layered-dark.js +2 -1
  198. package/themes/layered-dark.js.map +1 -1
  199. package/themes/layered-dark.min.js +2 -2
  200. package/themes/layered-light-panelless.js +2 -1
  201. package/themes/layered-light-panelless.js.map +1 -1
  202. package/themes/layered-light-panelless.min.js +2 -2
  203. package/themes/layered-light.js +2 -1
  204. package/themes/layered-light.js.map +1 -1
  205. package/themes/layered-light.min.js +2 -2
  206. package/themes/plain-dark-panelless.js +2 -1
  207. package/themes/plain-dark-panelless.js.map +1 -1
  208. package/themes/plain-dark-panelless.min.js +2 -2
  209. package/themes/plain-dark.js +2 -1
  210. package/themes/plain-dark.js.map +1 -1
  211. package/themes/plain-dark.min.js +2 -2
  212. package/themes/plain-light-panelless.js +2 -1
  213. package/themes/plain-light-panelless.js.map +1 -1
  214. package/themes/plain-light-panelless.min.js +2 -2
  215. package/themes/plain-light.js +2 -1
  216. package/themes/plain-light.js.map +1 -1
  217. package/themes/plain-light.min.js +2 -2
  218. package/themes/sharp-dark-panelless.js +2 -1
  219. package/themes/sharp-dark-panelless.js.map +1 -1
  220. package/themes/sharp-dark-panelless.min.js +2 -2
  221. package/themes/sharp-dark.js +2 -1
  222. package/themes/sharp-dark.js.map +1 -1
  223. package/themes/sharp-dark.min.js +2 -2
  224. package/themes/sharp-light-panelless.js +2 -1
  225. package/themes/sharp-light-panelless.js.map +1 -1
  226. package/themes/sharp-light-panelless.min.js +2 -2
  227. package/themes/sharp-light.js +2 -1
  228. package/themes/sharp-light.js.map +1 -1
  229. package/themes/sharp-light.min.js +2 -2
  230. package/themes/solid-dark-panelless.js +2 -1
  231. package/themes/solid-dark-panelless.js.map +1 -1
  232. package/themes/solid-dark-panelless.min.js +2 -2
  233. package/themes/solid-dark.js +2 -1
  234. package/themes/solid-dark.js.map +1 -1
  235. package/themes/solid-dark.min.js +2 -2
  236. package/themes/solid-light-panelless.js +2 -1
  237. package/themes/solid-light-panelless.js.map +1 -1
  238. package/themes/solid-light-panelless.min.js +2 -2
  239. package/themes/solid-light.js +2 -1
  240. package/themes/solid-light.js.map +1 -1
  241. package/themes/solid-light.min.js +2 -2
  242. package/themes/three-dimensional-dark-panelless.js +2 -1
  243. package/themes/three-dimensional-dark-panelless.js.map +1 -1
  244. package/themes/three-dimensional-dark-panelless.min.js +2 -2
  245. package/themes/three-dimensional-dark.js +2 -1
  246. package/themes/three-dimensional-dark.js.map +1 -1
  247. package/themes/three-dimensional-dark.min.js +2 -2
  248. package/themes/three-dimensional-light-panelless.js +2 -1
  249. package/themes/three-dimensional-light-panelless.js.map +1 -1
  250. package/themes/three-dimensional-light-panelless.min.js +2 -2
  251. package/themes/three-dimensional-light.js +2 -1
  252. package/themes/three-dimensional-light.js.map +1 -1
  253. package/themes/three-dimensional-light.min.js +2 -2
  254. package/themes/typings/borderless-dark-panelless.d.ts +2 -0
  255. package/themes/typings/borderless-dark.d.ts +2 -0
  256. package/themes/typings/borderless-light-panelless.d.ts +2 -0
  257. package/themes/typings/borderless-light.d.ts +2 -0
  258. package/themes/typings/contrast-dark-panelless.d.ts +2 -0
  259. package/themes/typings/contrast-dark.d.ts +2 -0
  260. package/themes/typings/contrast-light-panelless.d.ts +2 -0
  261. package/themes/typings/contrast-light.d.ts +2 -0
  262. package/themes/typings/default-dark-panelless.d.ts +2 -0
  263. package/themes/typings/default-dark.d.ts +2 -0
  264. package/themes/typings/default-light-panelless.d.ts +2 -0
  265. package/themes/typings/default-light.d.ts +2 -0
  266. package/themes/typings/doubleborder-dark-panelless.d.ts +2 -0
  267. package/themes/typings/doubleborder-dark.d.ts +2 -0
  268. package/themes/typings/doubleborder-light-panelless.d.ts +2 -0
  269. package/themes/typings/doubleborder-light.d.ts +2 -0
  270. package/themes/typings/flat-dark-panelless.d.ts +2 -0
  271. package/themes/typings/flat-dark.d.ts +2 -0
  272. package/themes/typings/flat-light-panelless.d.ts +2 -0
  273. package/themes/typings/flat-light.d.ts +2 -0
  274. package/themes/typings/index.d.ts +40 -0
  275. package/themes/typings/layered-dark-panelless.d.ts +2 -0
  276. package/themes/typings/layered-dark.d.ts +2 -0
  277. package/themes/typings/layered-light-panelless.d.ts +2 -0
  278. package/themes/typings/layered-light.d.ts +2 -0
  279. package/themes/typings/plain-dark-panelless.d.ts +2 -0
  280. package/themes/typings/plain-dark.d.ts +2 -0
  281. package/themes/typings/plain-light-panelless.d.ts +2 -0
  282. package/themes/typings/plain-light.d.ts +2 -0
  283. package/themes/typings/sharp-dark-panelless.d.ts +2 -0
  284. package/themes/typings/sharp-dark.d.ts +2 -0
  285. package/themes/typings/sharp-light-panelless.d.ts +2 -0
  286. package/themes/typings/sharp-light.d.ts +2 -0
  287. package/themes/typings/solid-dark-panelless.d.ts +2 -0
  288. package/themes/typings/solid-dark.d.ts +2 -0
  289. package/themes/typings/solid-light-panelless.d.ts +2 -0
  290. package/themes/typings/solid-light.d.ts +2 -0
  291. package/themes/typings/threedimensional-dark-panelless.d.ts +2 -0
  292. package/themes/typings/threedimensional-dark.d.ts +2 -0
  293. package/themes/typings/threedimensional-light-panelless.d.ts +2 -0
  294. package/themes/typings/threedimensional-light.d.ts +2 -0
  295. package/ts3.4/themes/typings/borderless-dark-panelless.d.ts +2 -0
  296. package/ts3.4/themes/typings/borderless-dark.d.ts +2 -0
  297. package/ts3.4/themes/typings/borderless-light-panelless.d.ts +2 -0
  298. package/ts3.4/themes/typings/borderless-light.d.ts +2 -0
  299. package/ts3.4/themes/typings/contrast-dark-panelless.d.ts +2 -0
  300. package/ts3.4/themes/typings/contrast-dark.d.ts +2 -0
  301. package/ts3.4/themes/typings/contrast-light-panelless.d.ts +2 -0
  302. package/ts3.4/themes/typings/contrast-light.d.ts +2 -0
  303. package/ts3.4/themes/typings/default-dark-panelless.d.ts +2 -0
  304. package/ts3.4/themes/typings/default-dark.d.ts +2 -0
  305. package/ts3.4/themes/typings/default-light-panelless.d.ts +2 -0
  306. package/ts3.4/themes/typings/default-light.d.ts +2 -0
  307. package/ts3.4/themes/typings/doubleborder-dark-panelless.d.ts +2 -0
  308. package/ts3.4/themes/typings/doubleborder-dark.d.ts +2 -0
  309. package/ts3.4/themes/typings/doubleborder-light-panelless.d.ts +2 -0
  310. package/ts3.4/themes/typings/doubleborder-light.d.ts +2 -0
  311. package/ts3.4/themes/typings/flat-dark-panelless.d.ts +2 -0
  312. package/ts3.4/themes/typings/flat-dark.d.ts +2 -0
  313. package/ts3.4/themes/typings/flat-light-panelless.d.ts +2 -0
  314. package/ts3.4/themes/typings/flat-light.d.ts +2 -0
  315. package/ts3.4/themes/typings/index.d.ts +40 -0
  316. package/ts3.4/themes/typings/layered-dark-panelless.d.ts +2 -0
  317. package/ts3.4/themes/typings/layered-dark.d.ts +2 -0
  318. package/ts3.4/themes/typings/layered-light-panelless.d.ts +2 -0
  319. package/ts3.4/themes/typings/layered-light.d.ts +2 -0
  320. package/ts3.4/themes/typings/plain-dark-panelless.d.ts +2 -0
  321. package/ts3.4/themes/typings/plain-dark.d.ts +2 -0
  322. package/ts3.4/themes/typings/plain-light-panelless.d.ts +2 -0
  323. package/ts3.4/themes/typings/plain-light.d.ts +2 -0
  324. package/ts3.4/themes/typings/sharp-dark-panelless.d.ts +2 -0
  325. package/ts3.4/themes/typings/sharp-dark.d.ts +2 -0
  326. package/ts3.4/themes/typings/sharp-light-panelless.d.ts +2 -0
  327. package/ts3.4/themes/typings/sharp-light.d.ts +2 -0
  328. package/ts3.4/themes/typings/solid-dark-panelless.d.ts +2 -0
  329. package/ts3.4/themes/typings/solid-dark.d.ts +2 -0
  330. package/ts3.4/themes/typings/solid-light-panelless.d.ts +2 -0
  331. package/ts3.4/themes/typings/solid-light.d.ts +2 -0
  332. package/ts3.4/themes/typings/threedimensional-dark-panelless.d.ts +2 -0
  333. package/ts3.4/themes/typings/threedimensional-dark.d.ts +2 -0
  334. package/ts3.4/themes/typings/threedimensional-light-panelless.d.ts +2 -0
  335. package/ts3.4/themes/typings/threedimensional-light.d.ts +2 -0
  336. package/ts3.4/typings/base-interfaces.d.ts +4 -0
  337. package/ts3.4/typings/base.d.ts +8 -6
  338. package/ts3.4/typings/choicesRestful.d.ts +6 -1
  339. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +3 -0
  340. package/ts3.4/typings/entries/chunks/model.d.ts +1 -1
  341. package/ts3.4/typings/header.d.ts +1 -0
  342. package/ts3.4/typings/itemvalue.d.ts +2 -2
  343. package/ts3.4/typings/jsonobject.d.ts +11 -3
  344. package/ts3.4/typings/localizablestring.d.ts +1 -0
  345. package/ts3.4/typings/question.d.ts +1 -0
  346. package/ts3.4/typings/question_baseselect.d.ts +5 -4
  347. package/ts3.4/typings/question_checkbox.d.ts +1 -0
  348. package/ts3.4/typings/question_custom.d.ts +2 -0
  349. package/ts3.4/typings/question_file.d.ts +3 -0
  350. package/ts3.4/typings/question_imagepicker.d.ts +1 -3
  351. package/ts3.4/typings/question_matrixdropdownbase.d.ts +1 -1
  352. package/ts3.4/typings/question_multipletext.d.ts +1 -1
  353. package/ts3.4/typings/question_paneldynamic.d.ts +20 -4
  354. package/ts3.4/typings/question_rating.d.ts +18 -5
  355. package/ts3.4/typings/question_tagbox.d.ts +2 -1
  356. package/ts3.4/typings/settings.d.ts +15 -85
  357. package/ts3.4/typings/survey-events-api.d.ts +4 -2
  358. package/ts3.4/typings/survey.d.ts +17 -16
  359. package/typings/base-interfaces.d.ts +4 -0
  360. package/typings/base.d.ts +8 -6
  361. package/typings/choicesRestful.d.ts +10 -2
  362. package/typings/defaultCss/defaultV2Css.d.ts +3 -0
  363. package/typings/entries/chunks/model.d.ts +1 -1
  364. package/typings/header.d.ts +1 -0
  365. package/typings/itemvalue.d.ts +2 -2
  366. package/typings/jsonobject.d.ts +11 -3
  367. package/typings/localizablestring.d.ts +1 -0
  368. package/typings/question.d.ts +1 -0
  369. package/typings/question_baseselect.d.ts +5 -4
  370. package/typings/question_checkbox.d.ts +1 -0
  371. package/typings/question_custom.d.ts +2 -0
  372. package/typings/question_file.d.ts +3 -0
  373. package/typings/question_imagepicker.d.ts +1 -3
  374. package/typings/question_matrixdropdownbase.d.ts +1 -1
  375. package/typings/question_multipletext.d.ts +1 -1
  376. package/typings/question_paneldynamic.d.ts +21 -4
  377. package/typings/question_rating.d.ts +18 -5
  378. package/typings/question_tagbox.d.ts +3 -1
  379. package/typings/settings.d.ts +15 -85
  380. package/typings/survey-element.d.ts +2 -1
  381. package/typings/survey-events-api.d.ts +4 -2
  382. package/typings/survey.d.ts +17 -16
@@ -321,11 +321,24 @@ export declare class QuestionPanelDynamicModel extends Question implements IQues
321
321
  * Specifies whether users are allowed to add new panels.
322
322
  *
323
323
  * Default value: `true`
324
+ *
325
+ * By default, users add new panels to the end. If you want to let users insert a new panel after the current panel, set the [`newPanelPosition`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#newPanelPosition) property to `"next"`.
324
326
  * @see canAddPanel
325
327
  * @see allowRemovePanel
326
328
  */
327
329
  allowAddPanel: boolean;
328
330
  /*
331
+ * Specifies the position of newly added panels.
332
+ *
333
+ * Possible values:
334
+ *
335
+ * - `"last"` (default) - New panels are added to the end.
336
+ * - `"next"` - New panels are inserted after the current panel.
337
+ * @see allowAddPanel
338
+ * @see addPanel
339
+ */
340
+ newPanelPosition: string;
341
+ /*
329
342
  * Specifies whether users are allowed to delete panels.
330
343
  *
331
344
  * Default value: `true`
@@ -453,13 +466,15 @@ export declare class QuestionPanelDynamicModel extends Question implements IQues
453
466
  */
454
467
  addPanelUI(): PanelModel;
455
468
  /**
456
- * Add a new dynamic panel based on the template Panel.
457
- * @see template
469
+ * Adds a new panel based on the [template](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#template).
470
+ * @param index *(Optional)* An index at which to insert the new panel. `undefined` adds the panel to the end or inserts it after the current panel if [`renderMode`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#renderMode) is `"tab"`. A negative index (for instance, -1) adds the panel to the end in all cases, regardless of the `renderMode` value.
458
471
  * @see panelCount
459
472
  * @see panels
460
- * @see renderMode
473
+ * @see allowAddPanel
474
+ * @see newPanelPosition
461
475
  */
462
- addPanel(): PanelModel;
476
+ addPanel(index?: number): PanelModel;
477
+ private updateValueOnAddingPanel;
463
478
  private canLeaveCurrentPanel;
464
479
  private copyValue;
465
480
  /**
@@ -472,6 +487,7 @@ export declare class QuestionPanelDynamicModel extends Question implements IQues
472
487
  *
473
488
  */
474
489
  removePanelUI(value: any): void;
490
+ isRequireConfirmOnDelete(val: any): boolean;
475
491
  /**
476
492
  * Switches Dynamic Panel to the next panel. Returns `true` in case of success, or `false` if `renderMode` is `"list"` or the current panel contains validation errors.
477
493
  * @see renderMode
@@ -124,17 +124,19 @@ export declare class QuestionRatingModel extends Question {
124
124
  protected getPlainDataCalculatedValue(propName: string): any;
125
125
  /*
126
126
  * Specifies a description for the minimum (first) rate value.
127
+ * @see rateDescriptionLocation
128
+ * @see displayRateDescriptionsAsExtremeItems
127
129
  * @see rateValues
128
130
  * @see rateMin
129
- * @see displayRateDescriptionsAsExtremeItems
130
131
  */
131
132
  minRateDescription: string;
132
133
  readonly locMinRateDescription: LocalizableString;
133
134
  /*
134
135
  * Specifies a description for the maximum (last) rate value.
136
+ * @see rateDescriptionLocation
137
+ * @see displayRateDescriptionsAsExtremeItems
135
138
  * @see rateValues
136
139
  * @see rateMax
137
- * @see displayRateDescriptionsAsExtremeItems
138
140
  */
139
141
  maxRateDescription: string;
140
142
  readonly locMaxRateDescription: LocalizableString;
@@ -143,15 +145,14 @@ export declare class QuestionRatingModel extends Question {
143
145
  readonly hasMinLabel: boolean;
144
146
  readonly hasMaxLabel: boolean;
145
147
  /**
146
- * Specifies whether to display `minRateDescription` and `maxRateDescription` values as captions for buttons that correspond to the extreme (first and last) rate values.
148
+ * Specifies whether to display [`minRateDescription`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model#minRateDescription) and [`maxRateDescription`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model#maxRateDescription) values as captions for buttons that correspond to the extreme (first and last) rate values.
147
149
  *
148
150
  * Default value: `false`
149
151
  *
150
152
  * If this property is disabled, the `minRateDescription` and `maxRateDescription` values are displayed as plain non-clickable texts.
151
153
  *
152
154
  * If any of the `minRateDescription` and `maxRateDescription` properties is empty, the corresponding rate value's `value` or `text` is displayed as a button caption.
153
- * @see minRateDescription
154
- * @see maxRateDescription
155
+ * @see rateDescriptionLocation
155
156
  * @see rateMin
156
157
  * @see rateMax
157
158
  * @see rateValues
@@ -170,6 +171,18 @@ export declare class QuestionRatingModel extends Question {
170
171
  * @see rateType
171
172
  */
172
173
  displayMode: "dropdown" | "buttons" | "auto";
174
+ /**
175
+ * Specifies the alignment of [`minRateDescription`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model#minRateDescription) and [`maxRateDescription`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model#maxRateDescription) texts.
176
+ *
177
+ * Possible values:
178
+ *
179
+ * - `"leftRight"` (default) - Aligns `minRateDescription` to the left of rate values and `maxRateDescription` to their right.
180
+ * - `"top"` - Displays the descriptions above the minimum and maximum rate values.
181
+ * - `"bottom"` - Displays both descriptions below the minimum and maximum rate values.
182
+ * - `"topBottom"` - Displays `minRateDescription` above the minimum rate value and `maxRateDescription` below the maximum rate value.
183
+ * @see displayRateDescriptionsAsExtremeItems
184
+ */
185
+ rateDescriptionLocation: "leftRight" | "top" | "bottom" | "topBottom";
173
186
  /**
174
187
  * Specifies the visual representation of rate values.
175
188
  *
@@ -14,7 +14,6 @@ export declare class QuestionTagboxModel extends QuestionCheckboxModel {
14
14
  private itemDisplayNameMap;
15
15
  constructor(name: string);
16
16
  locStrsChanged(): void;
17
- readOnlyText: string;
18
17
  private updateReadOnlyText;
19
18
  protected getDefaultItemComponent(): string;
20
19
  onSurveyLoad(): void;
@@ -53,6 +52,8 @@ export declare class QuestionTagboxModel extends QuestionCheckboxModel {
53
52
  readonly locPlaceholder: LocalizableString;
54
53
  clearCaption: string;
55
54
  readonly locClearCaption: LocalizableString;
55
+ readOnlyText: string;
56
+ readonly locReadOnlyText: LocalizableString;
56
57
  getType(): string;
57
58
  readonly ariaRole: string;
58
59
  readonly popupModel: PopupModel;
@@ -34,13 +34,7 @@ export declare var settings: {
34
34
  showEmptyDescriptions: boolean;
35
35
  showEmptyTitles: boolean;
36
36
  };
37
- /**
38
- * This property is obsolete. Use the [`settings.designMode.showEmptyDescriptions`](https://surveyjs.io/form-library/documentation/api-reference/settings#designMode) property instead.
39
- */
40
37
  allowShowEmptyDescriptionInDesignMode: boolean;
41
- /**
42
- * This property is obsolete. Use the [`settings.designMode.showEmptyTitles`](https://surveyjs.io/form-library/documentation/api-reference/settings#designMode) property instead.
43
- */
44
38
  allowShowEmptyTitleInDesignMode: boolean;
45
39
  /**
46
40
  * An object that contains properties related to localization.
@@ -61,17 +55,8 @@ export declare var settings: {
61
55
  storeDuplicatedTranslations: boolean;
62
56
  defaultLocaleName: string;
63
57
  };
64
- /**
65
- * This property is obsolete. Use the [`settings.localization.useLocalTimeZone`](https://surveyjs.io/form-library/documentation/api-reference/settings#localization) property instead.
66
- */
67
58
  useLocalTimeZone: boolean;
68
- /**
69
- * This property is obsolete. Use the [`settings.localization.storeDuplicatedTranslations`](https://surveyjs.io/form-library/documentation/api-reference/settings#localization) property instead.
70
- */
71
59
  storeDuplicatedTranslations: boolean;
72
- /**
73
- * This property is obsolete. Use the [`settings.localization.defaultLocaleName`](https://surveyjs.io/form-library/documentation/api-reference/settings#localization) property instead.
74
- */
75
60
  defaultLocaleName: string;
76
61
  /**
77
62
  * An object with properties that configure surveys when they work with a web service.
@@ -82,36 +67,38 @@ export declare var settings: {
82
67
  * Specifies whether to encode URL parameters when you access a web service. Default value: `true`.
83
68
  *
84
69
  * - `cacheLoadedChoices`: `boolean`\
85
- * Specifies whether to cache [choices](https://surveyjs.io/form-library/documentation/api-reference/checkbox-question-model#choicesByUrl) loaded from a web service. Default value: `true`.
70
+ * Specifies whether to cache [choices loaded from a web service](https://surveyjs.io/form-library/documentation/api-reference/questionselectbase#choicesByUrl). Default value: `true`.
86
71
  *
87
72
  * - `disableQuestionWhileLoadingChoices`: `boolean`\
88
73
  * Disables a question while its choices are being loaded from a web service. Default value: `false`.
89
74
  *
90
75
  * - `surveyServiceUrl`: `string`\
91
76
  * The URL of the SurveyJS Service API endpoint.
77
+ *
78
+ * - `onBeforeRequestChoices`: `(sender: ChoicesRestful, options: { request: XMLHttpRequest })`\
79
+ * An event that is raised before a request for choices is send. Applies to questions with a specified [`choiceByUrl`](https://surveyjs.io/form-library/documentation/api-reference/questionselectbase#choicesByUrl) property. Use the `options.request` parameter to access and modify the `XMLHttpRequest` object. For instance, you can add authentication headers to it:
80
+ *
81
+ * ```js
82
+ * import { settings } from "survey-core";
83
+ *
84
+ * settings.web.onBeforeSendRequest = (sender, options) => {
85
+ * options.request.setRequestHeader('RequestVerificationToken', requestVerificationToken);
86
+ * };
87
+ * ```
92
88
  */
93
89
  web: {
90
+ onBeforeRequestChoices: (sender: any, options: {
91
+ request: XMLHttpRequest;
92
+ }) => void;
94
93
  encodeUrlParams: boolean;
95
94
  cacheLoadedChoices: boolean;
96
95
  disableQuestionWhileLoadingChoices: boolean;
97
96
  surveyServiceUrl: string;
98
97
  };
99
- /**
100
- * This property is obsolete. Use the [`settings.web.encodeUrlParams`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) property instead.
101
- */
102
98
  webserviceEncodeParameters: boolean;
103
- /**
104
- * This property is obsolete. Use the [`settings.web.cacheLoadedChoices`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) property instead.
105
- */
106
99
  useCachingForChoicesRestful: boolean;
107
100
  useCachingForChoicesRestfull: boolean;
108
- /**
109
- * This property is obsolete. Use the [`settings.web.disableQuestionWhileLoadingChoices`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) property instead.
110
- */
111
101
  disableOnGettingChoicesFromWeb: boolean;
112
- /**
113
- * This property is obsolete. Use the [`settings.web.surveyServiceUrl`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) property instead.
114
- */
115
102
  surveyServiceUrl: string;
116
103
  /**
117
104
  * An object that contains properties related to [triggers](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-survey-logic-triggers).
@@ -134,17 +121,8 @@ export declare var settings: {
134
121
  executeCompleteOnValueChanged: boolean;
135
122
  executeSkipOnValueChanged: boolean;
136
123
  };
137
- /**
138
- * This property is obsolete. Use the [`settings.triggers.executeCompleteOnValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/settings#triggers) property instead.
139
- */
140
124
  executeCompleteTriggerOnValueChanged: boolean;
141
- /**
142
- * This property is obsolete. Use the [`settings.triggers.changeNavigationButtonsOnComplete`](https://surveyjs.io/form-library/documentation/api-reference/settings#triggers) property instead.
143
- */
144
125
  changeNavigationButtonsOnCompleteTrigger: boolean;
145
- /**
146
- * This property is obsolete. Use the [`settings.triggers.executeSkipOnValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/settings#triggers) property instead.
147
- */
148
126
  executeSkipTriggerOnValueChanged: boolean;
149
127
  /**
150
128
  * An object that contains properties related to JSON serialization.
@@ -179,17 +157,8 @@ export declare var settings: {
179
157
  itemValueSerializeDisplayText: boolean;
180
158
  localizableStringSerializeAsObject: boolean;
181
159
  };
182
- /**
183
- * This property is obsolete. Use the [`settings.serialization.itemValueSerializeAsObject`](https://surveyjs.io/form-library/documentation/api-reference/settings#serialization) property instead.
184
- */
185
160
  itemValueAlwaysSerializeAsObject: boolean;
186
- /**
187
- * This property is obsolete. Use the [`settings.serialization.itemValueSerializeDisplayText`](https://surveyjs.io/form-library/documentation/api-reference/settings#serialization) property instead.
188
- */
189
161
  itemValueAlwaysSerializeText: boolean;
190
- /**
191
- * This property is obsolete. Use the [`settings.serialization.localizableStringSerializeAsObject`](https://surveyjs.io/form-library/documentation/api-reference/settings#serialization) property instead.
192
- */
193
162
  serializeLocalizableStringAsObject: boolean;
194
163
  /**
195
164
  * An object that configures lazy rendering.
@@ -205,9 +174,6 @@ export declare var settings: {
205
174
  enabled: boolean;
206
175
  firstBatchSize: number;
207
176
  };
208
- /**
209
- * This property is obsolete. Use the [`settings.lazyRender.enabled`](https://surveyjs.io/form-library/documentation/api-reference/settings#lazyRender) property instead.
210
- */
211
177
  lazyRowsRendering: boolean;
212
178
  lazyRowsRenderingStartRow: number;
213
179
  /**
@@ -258,29 +224,11 @@ export declare var settings: {
258
224
  };
259
225
  rateSize: "small" | "normal";
260
226
  };
261
- /**
262
- * This property is obsolete. Use the [`settings.matrix.defaultRowName`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
263
- */
264
227
  matrixDefaultRowName: string;
265
- /**
266
- * This property is obsolete. Use the [`settings.matrix.defaultCellType`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
267
- */
268
228
  matrixDefaultCellType: string;
269
- /**
270
- * This property is obsolete. Use the [`settings.matrix.totalsSuffix`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
271
- */
272
229
  matrixTotalValuePostFix: string;
273
- /**
274
- * This property is obsolete. Use the [`settings.matrix.maxRowCount`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
275
- */
276
230
  matrixMaximumRowCount: number;
277
- /**
278
- * This property is obsolete. Use the [`settings.matrix.maxRowCountInCondition`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
279
- */
280
231
  matrixMaxRowCountInCondition: number;
281
- /**
282
- * This property is obsolete. Use the [`settings.matrix.renderRemoveAsIcon`](https://surveyjs.io/form-library/documentation/api-reference/settings#matrix) property instead.
283
- */
284
232
  matrixRenderRemoveAsIcon: boolean;
285
233
  /**
286
234
  * An object with properties that apply to [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model) questions.
@@ -299,13 +247,7 @@ export declare var settings: {
299
247
  maxPanelCount: number;
300
248
  maxPanelCountInCondition: number;
301
249
  };
302
- /**
303
- * This property is obsolete. Use the [`settings.panel.maxPanelCountInCondition`](https://surveyjs.io/form-library/documentation/api-reference/settings#panel) property instead.
304
- */
305
250
  panelDynamicMaxPanelCountInCondition: number;
306
- /**
307
- * This property is obsolete. Use the [`settings.panel.maxPanelCount`](https://surveyjs.io/form-library/documentation/api-reference/settings#panel) property instead.
308
- */
309
251
  panelMaximumPanelCount: number;
310
252
  /**
311
253
  * An object with properties that configure questions in read-only mode.
@@ -323,13 +265,7 @@ export declare var settings: {
323
265
  commentRenderMode: string;
324
266
  textRenderMode: string;
325
267
  };
326
- /**
327
- * This property is obsolete. Use the [`settings.readOnly.commentRenderMode`](https://surveyjs.io/form-library/documentation/api-reference/settings#readOnly) property instead.
328
- */
329
268
  readOnlyCommentRenderMode: string;
330
- /**
331
- * This property is obsolete. Use the [`settings.readOnly.textRenderMode`](https://surveyjs.io/form-library/documentation/api-reference/settings#readOnly) property instead.
332
- */
333
269
  readOnlyTextRenderMode: string;
334
270
  /**
335
271
  * An object with properties that configure question numbering.
@@ -346,13 +282,7 @@ export declare var settings: {
346
282
  includeQuestionsWithHiddenNumber: boolean;
347
283
  includeQuestionsWithHiddenTitle: boolean;
348
284
  };
349
- /**
350
- * This property is obsolete. Use the [`settings.numbering.includeQuestionsWithHiddenTitle`](https://surveyjs.io/form-library/documentation/api-reference/settings#numbering) property instead.
351
- */
352
285
  setQuestionVisibleIndexForHiddenTitle: boolean;
353
- /**
354
- * This property is obsolete. Use the [`settings.numbering.includeQuestionsWithHiddenNumber`](https://surveyjs.io/form-library/documentation/api-reference/settings#numbering) property instead.
355
- */
356
286
  setQuestionVisibleIndexForHiddenNumber: boolean;
357
287
  /**
358
288
  * Specifies an action to perform when users press the Enter key within a survey.
@@ -827,15 +827,17 @@ export interface DynamicPanelItemValueChangedEvent extends PanelDynamicQuestionE
827
827
  */
828
828
  panel: PanelModel;
829
829
  }
830
- export interface DynamicPanelGetTabTitleEvent extends PanelDynamicQuestionEventMixin {
830
+ export interface DynamicPanelCurrentIndexChangedEvent extends PanelDynamicQuestionEventMixin {
831
831
  /**
832
- * A panel whose tab title is being rendered.
832
+ * A panel for which the event is raised.
833
833
  */
834
834
  panel: PanelModel;
835
835
  /**
836
836
  * The panel's index in the [`visiblePanels`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#visiblePanels) array of the Dynamic Panel.
837
837
  */
838
838
  visiblePanelIndex: number;
839
+ }
840
+ export interface DynamicPanelGetTabTitleEvent extends DynamicPanelCurrentIndexChangedEvent {
839
841
  /**
840
842
  * A tab title. You can change this parameter's value.
841
843
  */
@@ -1,6 +1,6 @@
1
1
  import { JsonError } from "./jsonobject";
2
2
  import { Base, EventBase } from "./base";
3
- import { ISurvey, ISurveyData, ISurveyImpl, ITextProcessor, IQuestion, IPanel, IElement, IPage, ISurveyErrorOwner, ISurveyElement, IProgressInfo, IFindElement, ISurveyLayoutElement, IPlainDataOptions, LayoutElementContainer, IValueItemCustomPropValues } from "./base-interfaces";
3
+ import { ISurvey, ISurveyData, ISurveyImpl, ITextProcessor, IQuestion, IPanel, IElement, IPage, ISurveyErrorOwner, ISurveyElement, IProgressInfo, IFindElement, ISurveyLayoutElement, IPlainDataOptions, LayoutElementContainer, IValueItemCustomPropValues, ILoadFromJSONOptions } from "./base-interfaces";
4
4
  import { SurveyElementCore } from "./survey-element";
5
5
  import { ISurveyTriggerOwner, SurveyTrigger, Trigger } from "./trigger";
6
6
  import { CalculatedValue } from "./calculatedValue";
@@ -18,7 +18,7 @@ import { IAction, Action } from "./actions/action";
18
18
  import { ActionContainer } from "./actions/container";
19
19
  import { QuestionPanelDynamicModel } from "./question_paneldynamic";
20
20
  import { Notifier } from "./notifier";
21
- import { TriggerExecutedEvent, CompletingEvent, CompleteEvent, ShowingPreviewEvent, NavigateToUrlEvent, CurrentPageChangingEvent, CurrentPageChangedEvent, ValueChangingEvent, ValueChangedEvent, VariableChangedEvent, QuestionVisibleChangedEvent, PageVisibleChangedEvent, PanelVisibleChangedEvent, QuestionCreatedEvent, QuestionAddedEvent, QuestionRemovedEvent, PanelAddedEvent, PanelRemovedEvent, PageAddedEvent, ValidateQuestionEvent, SettingQuestionErrorsEvent, ValidatePanelEvent, ErrorCustomTextEvent, ValidatedErrorsOnCurrentPageEvent, ProcessHtmlEvent, GetQuestionTitleEvent, GetTitleTagNameEvent, GetQuestionNoEvent, ProgressTextEvent, TextMarkdownEvent, TextRenderAsEvent, SendResultEvent, GetResultEvent, UploadFilesEvent, DownloadFileEvent, ClearFilesEvent, LoadChoicesFromServerEvent, ProcessTextValueEvent, UpdateQuestionCssClassesEvent, UpdatePanelCssClassesEvent, UpdatePageCssClassesEvent, UpdateChoiceItemCssEvent, AfterRenderSurveyEvent, AfterRenderHeaderEvent, AfterRenderPageEvent, AfterRenderQuestionEvent, AfterRenderQuestionInputEvent, AfterRenderPanelEvent, FocusInQuestionEvent, FocusInPanelEvent, ShowingChoiceItemEvent, ChoicesLazyLoadEvent, GetChoiceDisplayValueEvent, MatrixRowAddedEvent, MatrixBeforeRowAddedEvent, MatrixRowRemovingEvent, MatrixRowRemovedEvent, MatrixAllowRemoveRowEvent, MatrixCellCreatingEvent, MatrixCellCreatedEvent, MatrixAfterCellRenderEvent, MatrixCellValueChangedEvent, MatrixCellValueChangingEvent, MatrixCellValidateEvent, DynamicPanelModifiedEvent, DynamicPanelRemovingEvent, TimerPanelInfoTextEvent, DynamicPanelItemValueChangedEvent, DynamicPanelGetTabTitleEvent, IsAnswerCorrectEvent, DragDropAllowEvent, ScrollingElementToTopEvent, GetQuestionTitleActionsEvent, GetPanelTitleActionsEvent, GetPageTitleActionsEvent, GetPanelFooterActionsEvent, GetMatrixRowActionsEvent, ElementContentVisibilityChangedEvent, GetExpressionDisplayValueEvent, ServerValidateQuestionsEvent, MultipleTextItemAddedEvent, MatrixColumnAddedEvent, GetQuestionDisplayValueEvent, PopupVisibleChangedEvent } from "./survey-events-api";
21
+ import { TriggerExecutedEvent, CompletingEvent, CompleteEvent, ShowingPreviewEvent, NavigateToUrlEvent, CurrentPageChangingEvent, CurrentPageChangedEvent, ValueChangingEvent, ValueChangedEvent, VariableChangedEvent, QuestionVisibleChangedEvent, PageVisibleChangedEvent, PanelVisibleChangedEvent, QuestionCreatedEvent, QuestionAddedEvent, QuestionRemovedEvent, PanelAddedEvent, PanelRemovedEvent, PageAddedEvent, ValidateQuestionEvent, SettingQuestionErrorsEvent, ValidatePanelEvent, ErrorCustomTextEvent, ValidatedErrorsOnCurrentPageEvent, ProcessHtmlEvent, GetQuestionTitleEvent, GetTitleTagNameEvent, GetQuestionNoEvent, ProgressTextEvent, TextMarkdownEvent, TextRenderAsEvent, SendResultEvent, GetResultEvent, UploadFilesEvent, DownloadFileEvent, ClearFilesEvent, LoadChoicesFromServerEvent, ProcessTextValueEvent, UpdateQuestionCssClassesEvent, UpdatePanelCssClassesEvent, UpdatePageCssClassesEvent, UpdateChoiceItemCssEvent, AfterRenderSurveyEvent, AfterRenderHeaderEvent, AfterRenderPageEvent, AfterRenderQuestionEvent, AfterRenderQuestionInputEvent, AfterRenderPanelEvent, FocusInQuestionEvent, FocusInPanelEvent, ShowingChoiceItemEvent, ChoicesLazyLoadEvent, GetChoiceDisplayValueEvent, MatrixRowAddedEvent, MatrixBeforeRowAddedEvent, MatrixRowRemovingEvent, MatrixRowRemovedEvent, MatrixAllowRemoveRowEvent, MatrixCellCreatingEvent, MatrixCellCreatedEvent, MatrixAfterCellRenderEvent, MatrixCellValueChangedEvent, MatrixCellValueChangingEvent, MatrixCellValidateEvent, DynamicPanelModifiedEvent, DynamicPanelRemovingEvent, TimerPanelInfoTextEvent, DynamicPanelItemValueChangedEvent, DynamicPanelGetTabTitleEvent, DynamicPanelCurrentIndexChangedEvent, IsAnswerCorrectEvent, DragDropAllowEvent, ScrollingElementToTopEvent, GetQuestionTitleActionsEvent, GetPanelTitleActionsEvent, GetPageTitleActionsEvent, GetPanelFooterActionsEvent, GetMatrixRowActionsEvent, ElementContentVisibilityChangedEvent, GetExpressionDisplayValueEvent, ServerValidateQuestionsEvent, MultipleTextItemAddedEvent, MatrixColumnAddedEvent, GetQuestionDisplayValueEvent, PopupVisibleChangedEvent } from "./survey-events-api";
22
22
  import { QuestionMatrixDropdownModelBase } from "./question_matrixdropdownbase";
23
23
  import { QuestionMatrixDynamicModel } from "./question_matrixdynamic";
24
24
  import { QuestionFileModel } from "./question_file";
@@ -630,6 +630,10 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
630
630
  * [View Demo](https://surveyjs.io/form-library/examples/tabbed-interface-for-duplicate-group-option/ (linkStyle))
631
631
  */
632
632
  onGetDynamicPanelTabTitle: EventBase<SurveyModel, DynamicPanelGetTabTitleEvent>;
633
+ /**
634
+ * An event that is raised after the current panel is changed in a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
635
+ */
636
+ onDynamicPanelCurrentIndexChanged: EventBase<SurveyModel, DynamicPanelCurrentIndexChangedEvent>;
633
637
  /**
634
638
  * An event that is raised to define whether a question answer is correct. Applies only to [quiz surveys](https://surveyjs.io/form-library/documentation/design-survey/create-a-quiz).
635
639
  */
@@ -1445,7 +1449,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1445
1449
  /**
1446
1450
  * Merges a specified data object with the object from the [`data`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#data) property.
1447
1451
  *
1448
- * Refer to the following help topic for more information: [Merge Question Values](https://surveyjs.io/form-library/documentation/design-survey/merge-question-values).
1452
+ * Refer to the following help topic for more information: [Populate Form Fields | Multiple Question Values](https://surveyjs.io/form-library/documentation/design-survey/pre-populate-form-fields#multiple-question-values).
1449
1453
  *
1450
1454
  * @param data A data object to merge. It should have the following structure: `{ questionName: questionValue, ... }`
1451
1455
  * @see setValue
@@ -1866,6 +1870,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1866
1870
  protected onQuestionsOnPageModeChanged(oldValue: string): void;
1867
1871
  private restoreOriginalPages;
1868
1872
  private getPageStartIndex;
1873
+ private isCreatingPagesForPreview;
1869
1874
  private setupPagesForPageModes;
1870
1875
  private createPagesForQuestionOnPageMode;
1871
1876
  private createSinglePage;
@@ -2024,6 +2029,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2024
2029
  dynamicPanelRemoving(question: QuestionPanelDynamicModel, panelIndex: number, panel: PanelModel): boolean;
2025
2030
  dynamicPanelItemValueChanged(question: IQuestion, options: any): void;
2026
2031
  dynamicPanelGetTabTitle(question: IQuestion, options: any): void;
2032
+ dynamicPanelCurrentIndexChanged(question: IQuestion, options: any): void;
2027
2033
  dragAndDropAllow(options: DragDropAllowEvent): boolean;
2028
2034
  elementContentVisibilityChanged(element: ISurveyElement): void;
2029
2035
  getUpdatedPanelFooterActions(panel: PanelModel, actions: Array<IAction>, question?: QuestionPanelDynamicModel): Array<IAction>;
@@ -2044,13 +2050,8 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2044
2050
  * question,
2045
2051
  * question.name,
2046
2052
  * question.value,
2047
- * (status, data) => {
2048
- * if (status === "success") {
2049
- * // Handle success
2050
- * }
2051
- * if (status === "error") {
2052
- * // Handle error
2053
- * }
2053
+ * (data, errors) => {
2054
+ * // ...
2054
2055
  * }
2055
2056
  * );
2056
2057
  * ```
@@ -2135,7 +2136,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2135
2136
  /**
2136
2137
  * Returns a question with a specified [`name`](https://surveyjs.io/form-library/documentation/api-reference/question#name).
2137
2138
  * @param name A question name
2138
- * @param caseInsensitive (Optional) A Boolean value that specifies case sensitivity when searching for the question. Default value: `false` (uppercase and lowercase letters are treated as distinct).
2139
+ * @param caseInsensitive *(Optional)* A Boolean value that specifies case sensitivity when searching for the question. Default value: `false` (uppercase and lowercase letters are treated as distinct).
2139
2140
  * @returns A question with a specified name.
2140
2141
  * @see getAllQuestions
2141
2142
  * @see getQuestionByValueName
@@ -2147,7 +2148,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2147
2148
  *
2148
2149
  * > Since `valueName` does not have to be unique, multiple questions can have the same `valueName` value. In this case, the `getQuestionByValueName()` method returns the first such question. If you need to get all questions with the same `valueName`, call the `getQuestionsByValueName()` method.
2149
2150
  * @param valueName A question's `valueName` property value.
2150
- * @param caseInsensitive (Optional) A Boolean value that specifies case sensitivity when searching for the question. Default value: `false` (uppercase and lowercase letters are treated as distinct).
2151
+ * @param caseInsensitive *(Optional)* A Boolean value that specifies case sensitivity when searching for the question. Default value: `false` (uppercase and lowercase letters are treated as distinct).
2151
2152
  * @returns A question with a specified `valueName`.
2152
2153
  * @see getAllQuestions
2153
2154
  * @see getQuestionByName
@@ -2156,7 +2157,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2156
2157
  /**
2157
2158
  * Returns all questions with a specified [`valueName`](https://surveyjs.io/form-library/documentation/api-reference/question#valueName). If a question's `valueName` is undefined, its [`name`](https://surveyjs.io/form-library/documentation/api-reference/question#name) property is used.
2158
2159
  * @param valueName A question's `valueName` property value.
2159
- * @param caseInsensitive (Optional) A Boolean value that specifies case sensitivity when searching for the questions. Default value: `false` (uppercase and lowercase letters are treated as distinct).
2160
+ * @param caseInsensitive *(Optional)* A Boolean value that specifies case sensitivity when searching for the questions. Default value: `false` (uppercase and lowercase letters are treated as distinct).
2160
2161
  * @returns An array of questions with a specified `valueName`.
2161
2162
  * @see getAllQuestions
2162
2163
  * @see getQuestionByName
@@ -2166,7 +2167,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2166
2167
  /**
2167
2168
  * Returns an array of questions with specified [names](https://surveyjs.io/form-library/documentation/api-reference/question#name).
2168
2169
  * @param names An array of question names.
2169
- * @param caseInsensitive (Optional) A Boolean value that specifies case sensitivity when searching for the questions. Default value: `false` (uppercase and lowercase letters are treated as distinct).
2170
+ * @param caseInsensitive *(Optional)* A Boolean value that specifies case sensitivity when searching for the questions. Default value: `false` (uppercase and lowercase letters are treated as distinct).
2170
2171
  * @returns An array of questions with specified names
2171
2172
  * @see getAllQuestions
2172
2173
  */
@@ -2211,7 +2212,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2211
2212
  /**
2212
2213
  * Returns a [panel](https://surveyjs.io/form-library/documentation/api-reference/panel-model) with a specified [`name`](https://surveyjs.io/form-library/documentation/api-reference/panel-model#name).
2213
2214
  * @param name A panel name.
2214
- * @param caseInsensitive (Optional) A Boolean value that specifies case sensitivity when searching for the panel. Default value: `false` (uppercase and lowercase letters are treated as distinct).
2215
+ * @param caseInsensitive *(Optional)* A Boolean value that specifies case sensitivity when searching for the panel. Default value: `false` (uppercase and lowercase letters are treated as distinct).
2215
2216
  * @returns A panel with a specified name.
2216
2217
  * @see getAllPanels
2217
2218
  */
@@ -2288,7 +2289,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2288
2289
  private resetVisibleIndexes;
2289
2290
  private updateVisibleIndexes;
2290
2291
  private updatePageVisibleIndexes;
2291
- fromJSON(json: any): void;
2292
+ fromJSON(json: any, options?: ILoadFromJSONOptions): void;
2292
2293
  setJsonObject(jsonObj: any): void;
2293
2294
  private isEndLoadingFromJson;
2294
2295
  endLoadingFromJson(): void;
@@ -149,6 +149,7 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
149
149
  dynamicPanelRemoving(question: IQuestion, panelIndex: number, panel: IPanel): boolean;
150
150
  dynamicPanelItemValueChanged(question: IQuestion, options: any): any;
151
151
  dynamicPanelGetTabTitle(question: IQuestion, options: any): any;
152
+ dynamicPanelCurrentIndexChanged(question: IQuestion, options: any): void;
152
153
  dragAndDropAllow(options: DragDropAllowEvent): boolean;
153
154
  scrollElementToTop(element: ISurveyElement, question: IQuestion, page: IPage, id: string, scrollIfVisible?: boolean): any;
154
155
  runExpression(expression: string): any;
@@ -303,3 +304,6 @@ export interface IPlainDataOptions {
303
304
  propertyName: string;
304
305
  }>;
305
306
  }
307
+ export interface ILoadFromJSONOptions {
308
+ validatePropertyValues?: boolean;
309
+ }
package/typings/base.d.ts CHANGED
@@ -2,7 +2,7 @@ import { ILocalizableOwner, LocalizableString } from "./localizablestring";
2
2
  import { HashTable } from "./helpers";
3
3
  import { JsonObjectProperty } from "./jsonobject";
4
4
  import { ItemValue } from "./itemvalue";
5
- import { IElement, IFindElement, IProgressInfo, ISurvey } from "./base-interfaces";
5
+ import { IElement, IFindElement, IProgressInfo, ISurvey, ILoadFromJSONOptions } from "./base-interfaces";
6
6
  import { ExpressionRunner } from "./conditions";
7
7
  export declare class Bindings {
8
8
  private obj;
@@ -70,7 +70,7 @@ export declare class Base {
70
70
  * Returns `true` if a passed `value` is an empty string, array, or object or if it equals to `undefined` or `null`.
71
71
  *
72
72
  * @param value A value to be checked.
73
- * @param trimString (Optional) When this parameter is `true`, the method ignores whitespace characters at the beginning and end of a string value. Pass `false` to disable this functionality.
73
+ * @param trimString *(Optional)* When this parameter is `true`, the method ignores whitespace characters at the beginning and end of a string value. Pass `false` to disable this functionality.
74
74
  */
75
75
  isValueEmpty(value: any, trimString?: boolean): boolean;
76
76
  protected trimValue(value: any): any;
@@ -176,9 +176,11 @@ export declare class Base {
176
176
  * The JSON object should contain only serializable properties of this SurveyJS object. Event handlers and properties that do not belong to the SurveyJS object are ignored.
177
177
  *
178
178
  * @param json A JSON object with properties that you want to apply to the current SurveyJS object.
179
+ * @param options An object with configuration options.
180
+ * @param {boolean} options.validatePropertyValues Pass `true` if you want to validate property values. Use the [`jsonErrors`](#jsonErrors) array to access validation errors.
179
181
  * @see toJSON
180
182
  */
181
- fromJSON(json: any): void;
183
+ fromJSON(json: any, options?: ILoadFromJSONOptions): void;
182
184
  onSurveyLoad(): void;
183
185
  /**
184
186
  * Creates a new object that has the same type and properties as the current SurveyJS object.
@@ -202,7 +204,7 @@ export declare class Base {
202
204
  * If the property is not found or does not have a value, this method returns either `undefined`, `defaultValue` specified in the property configuration, or a value passed as the `defaultValue` parameter.
203
205
  *
204
206
  * @param name A property name.
205
- * @param defaultValue (Optional) A value to return if the property is not found or does not have a value.
207
+ * @param defaultValue *(Optional)* A value to return if the property is not found or does not have a value.
206
208
  */
207
209
  getPropertyValue(name: string, defaultValue?: any): any;
208
210
  getDefaultPropertyValue(name: string): any;
@@ -247,14 +249,14 @@ export declare class Base {
247
249
  * Registers a function to call when a property value changes.
248
250
  * @param propertyNames An array of one or multiple property names.
249
251
  * @param handler A function to call when one of the listed properties change.
250
- * @param key (Optional) A key that identifies the current registration. If a function for one of the properties is already registered with the same key, the function will be overwritten. You can also use the key to subsequently unregister handlers.
252
+ * @param key *(Optional)* A key that identifies the current registration. If a function for one of the properties is already registered with the same key, the function will be overwritten. You can also use the key to subsequently unregister handlers.
251
253
  * @see unregisterPropertyChangedHandlers
252
254
  */
253
255
  registerPropertyChangedHandlers(propertyNames: Array<string>, handler: any, key?: string): void;
254
256
  /**
255
257
  * Unregisters value change event handlers for the specified properties.
256
258
  * @param propertyNames An array of one or multiple property names.
257
- * @param key (Optional) A key of the registration that you want to cancel.
259
+ * @param key *(Optional)* A key of the registration that you want to cancel.
258
260
  * @see registerPropertyChangedHandlers
259
261
  */
260
262
  unregisterPropertyChangedHandlers(propertyNames: Array<string>, key?: string): void;
@@ -19,7 +19,7 @@ import { SurveyError } from "./survey-error";
19
19
  * }
20
20
  * ```
21
21
  *
22
- * Typically, you should assign this object to a question's [`choicesByUrl`](https://surveyjs.io/Documentation/Library?id=QuestionSelectBase#choicesByUrl) property.
22
+ * Typically, you should assign this object to a question's [`choicesByUrl`](https://surveyjs.io/Documentation/Library?id=QuestionSelectBase#choicesByUrl) property. You can also specify additional application-wide settings using the [`settings.web`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) object.
23
23
  */
24
24
  export declare class ChoicesRestful extends Base {
25
25
  private static cacheText;
@@ -31,9 +31,12 @@ export declare class ChoicesRestful extends Base {
31
31
  private static sendingSameRequests;
32
32
  private static addSameRequest;
33
33
  private static unregisterSameRequests;
34
- static onBeforeSendRequest: (sender: ChoicesRestful, options: {
34
+ static get onBeforeSendRequest(): (sender: ChoicesRestful, options: {
35
35
  request: XMLHttpRequest;
36
36
  }) => void;
37
+ static set onBeforeSendRequest(val: (sender: ChoicesRestful, options: {
38
+ request: XMLHttpRequest;
39
+ }) => void);
37
40
  private static getCachedItemsResult;
38
41
  private lastObjHash;
39
42
  private isRunningValue;
@@ -131,6 +134,11 @@ export declare class ChoicesRestful extends Base {
131
134
  */
132
135
  get imageLinkName(): string;
133
136
  set imageLinkName(val: string);
137
+ /**
138
+ * Specifies whether the service is allowed to return an empty response or an empty array in a response.
139
+ *
140
+ * Default value: `false`
141
+ */
134
142
  get allowEmptyResponse(): boolean;
135
143
  set allowEmptyResponse(val: boolean);
136
144
  get attachOriginalItems(): boolean;
@@ -506,6 +506,9 @@ export declare var defaultV2Css: {
506
506
  rootDropdown: string;
507
507
  root: string;
508
508
  rootWrappable: string;
509
+ rootLabelsTop: string;
510
+ rootLabelsBottom: string;
511
+ rootLabelsDiagonal: string;
509
512
  item: string;
510
513
  itemOnError: string;
511
514
  itemHover: string;
@@ -9,7 +9,7 @@ export { Helpers, HashTable } from "../../helpers";
9
9
  export { AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner } from "../../validator";
10
10
  export { ItemValue } from "../../itemvalue";
11
11
  export { Base, Event, EventBase, ArrayChanges, ComputedUpdater } from "../../base";
12
- export { ISurvey, ISurveyElement, IElement, IQuestion, IPage, IPanel, ISurveyData, ITitleOwner, ISurveyLayoutElement, IPlainDataOptions as IPlainData, IShortcutText } from "../../base-interfaces";
12
+ export { ISurvey, ISurveyElement, IElement, IQuestion, IPage, IPanel, ISurveyData, ITitleOwner, ISurveyLayoutElement, IPlainDataOptions as IPlainData, IShortcutText, ILoadFromJSONOptions } from "../../base-interfaces";
13
13
  export { SurveyError } from "../../survey-error";
14
14
  export { SurveyElementCore, SurveyElement, DragTypeOverMeEnum } from "../../survey-element";
15
15
  export { CalculatedValue } from "../../calculatedValue";
@@ -77,4 +77,5 @@ export declare class Cover extends Base {
77
77
  protected propertyValueChanged(name: string, oldValue: any, newValue: any): void;
78
78
  calculateActualHeight(logoHeight: number, titleHeight: number, descriptionHeight: number): number;
79
79
  processResponsiveness(width: number): void;
80
+ get hasBackground(): boolean;
80
81
  }
@@ -61,9 +61,9 @@ export declare class ItemValue extends BaseAction implements ILocalizableOwner,
61
61
  set visibleIf(val: string);
62
62
  get enableIf(): string;
63
63
  set enableIf(val: string);
64
- get isVisible(): any;
64
+ get isVisible(): boolean;
65
65
  setIsVisible(val: boolean): void;
66
- get isEnabled(): any;
66
+ get isEnabled(): boolean;
67
67
  setIsEnabled(val: boolean): void;
68
68
  addUsedLocales(locales: Array<string>): void;
69
69
  locStrsChanged(): void;