survey-core 1.9.127 → 1.9.128

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 (423) hide show
  1. package/defaultV2.css +304 -75
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +304 -75
  4. package/defaultV2.fontless.css.map +1 -1
  5. package/defaultV2.fontless.min.css +2 -2
  6. package/defaultV2.min.css +2 -2
  7. package/i18n/arabic.js +5 -1
  8. package/i18n/arabic.js.map +1 -1
  9. package/i18n/arabic.min.js +2 -2
  10. package/i18n/basque.js +5 -1
  11. package/i18n/basque.js.map +1 -1
  12. package/i18n/basque.min.js +2 -2
  13. package/i18n/bulgarian.js +5 -1
  14. package/i18n/bulgarian.js.map +1 -1
  15. package/i18n/bulgarian.min.js +2 -2
  16. package/i18n/catalan.js +5 -1
  17. package/i18n/catalan.js.map +1 -1
  18. package/i18n/catalan.min.js +2 -2
  19. package/i18n/croatian.js +5 -1
  20. package/i18n/croatian.js.map +1 -1
  21. package/i18n/croatian.min.js +2 -2
  22. package/i18n/czech.js +5 -1
  23. package/i18n/czech.js.map +1 -1
  24. package/i18n/czech.min.js +2 -2
  25. package/i18n/danish.js +5 -1
  26. package/i18n/danish.js.map +1 -1
  27. package/i18n/danish.min.js +2 -2
  28. package/i18n/dutch.js +5 -1
  29. package/i18n/dutch.js.map +1 -1
  30. package/i18n/dutch.min.js +2 -2
  31. package/i18n/english.js +3 -1
  32. package/i18n/english.js.map +1 -1
  33. package/i18n/english.min.js +2 -2
  34. package/i18n/estonian.js +5 -1
  35. package/i18n/estonian.js.map +1 -1
  36. package/i18n/estonian.min.js +2 -2
  37. package/i18n/finnish.js +5 -1
  38. package/i18n/finnish.js.map +1 -1
  39. package/i18n/finnish.min.js +2 -2
  40. package/i18n/french.js +5 -1
  41. package/i18n/french.js.map +1 -1
  42. package/i18n/french.min.js +2 -2
  43. package/i18n/georgian.js +5 -1
  44. package/i18n/georgian.js.map +1 -1
  45. package/i18n/georgian.min.js +2 -2
  46. package/i18n/german.js +5 -1
  47. package/i18n/german.js.map +1 -1
  48. package/i18n/german.min.js +2 -2
  49. package/i18n/greek.js +5 -1
  50. package/i18n/greek.js.map +1 -1
  51. package/i18n/greek.min.js +2 -2
  52. package/i18n/hebrew.js +5 -1
  53. package/i18n/hebrew.js.map +1 -1
  54. package/i18n/hebrew.min.js +2 -2
  55. package/i18n/hindi.js +5 -2
  56. package/i18n/hindi.js.map +1 -1
  57. package/i18n/hindi.min.js +2 -2
  58. package/i18n/hungarian.js +5 -1
  59. package/i18n/hungarian.js.map +1 -1
  60. package/i18n/hungarian.min.js +2 -2
  61. package/i18n/icelandic.js +5 -1
  62. package/i18n/icelandic.js.map +1 -1
  63. package/i18n/icelandic.min.js +2 -2
  64. package/i18n/index.js +189 -13
  65. package/i18n/index.js.map +1 -1
  66. package/i18n/index.min.js +2 -2
  67. package/i18n/indonesian.js +5 -1
  68. package/i18n/indonesian.js.map +1 -1
  69. package/i18n/indonesian.min.js +2 -2
  70. package/i18n/italian.js +5 -1
  71. package/i18n/italian.js.map +1 -1
  72. package/i18n/italian.min.js +2 -2
  73. package/i18n/japanese.js +5 -1
  74. package/i18n/japanese.js.map +1 -1
  75. package/i18n/japanese.min.js +2 -2
  76. package/i18n/kazakh.js +5 -1
  77. package/i18n/kazakh.js.map +1 -1
  78. package/i18n/kazakh.min.js +2 -2
  79. package/i18n/korean.js +5 -1
  80. package/i18n/korean.js.map +1 -1
  81. package/i18n/korean.min.js +2 -2
  82. package/i18n/latvian.js +5 -1
  83. package/i18n/latvian.js.map +1 -1
  84. package/i18n/latvian.min.js +2 -2
  85. package/i18n/lithuanian.js +5 -1
  86. package/i18n/lithuanian.js.map +1 -1
  87. package/i18n/lithuanian.min.js +2 -2
  88. package/i18n/macedonian.js +5 -1
  89. package/i18n/macedonian.js.map +1 -1
  90. package/i18n/macedonian.min.js +2 -2
  91. package/i18n/malay.js +5 -1
  92. package/i18n/malay.js.map +1 -1
  93. package/i18n/malay.min.js +2 -2
  94. package/i18n/nl-BE.js +5 -1
  95. package/i18n/nl-BE.js.map +1 -1
  96. package/i18n/nl-BE.min.js +2 -2
  97. package/i18n/norwegian.js +5 -1
  98. package/i18n/norwegian.js.map +1 -1
  99. package/i18n/norwegian.min.js +2 -2
  100. package/i18n/persian.js +5 -1
  101. package/i18n/persian.js.map +1 -1
  102. package/i18n/persian.min.js +2 -2
  103. package/i18n/polish.js +5 -1
  104. package/i18n/polish.js.map +1 -1
  105. package/i18n/polish.min.js +2 -2
  106. package/i18n/portuguese-br.js +5 -1
  107. package/i18n/portuguese-br.js.map +1 -1
  108. package/i18n/portuguese-br.min.js +2 -2
  109. package/i18n/portuguese.js +5 -1
  110. package/i18n/portuguese.js.map +1 -1
  111. package/i18n/portuguese.min.js +2 -2
  112. package/i18n/romanian.js +5 -1
  113. package/i18n/romanian.js.map +1 -1
  114. package/i18n/romanian.min.js +2 -2
  115. package/i18n/russian.js +5 -5
  116. package/i18n/russian.js.map +1 -1
  117. package/i18n/russian.min.js +2 -2
  118. package/i18n/serbian.js +5 -1
  119. package/i18n/serbian.js.map +1 -1
  120. package/i18n/serbian.min.js +2 -2
  121. package/i18n/simplified-chinese.js +5 -1
  122. package/i18n/simplified-chinese.js.map +1 -1
  123. package/i18n/simplified-chinese.min.js +2 -2
  124. package/i18n/slovak.js +5 -1
  125. package/i18n/slovak.js.map +1 -1
  126. package/i18n/slovak.min.js +2 -2
  127. package/i18n/spanish.js +5 -1
  128. package/i18n/spanish.js.map +1 -1
  129. package/i18n/spanish.min.js +2 -2
  130. package/i18n/swahili.js +5 -1
  131. package/i18n/swahili.js.map +1 -1
  132. package/i18n/swahili.min.js +2 -2
  133. package/i18n/swedish.js +5 -1
  134. package/i18n/swedish.js.map +1 -1
  135. package/i18n/swedish.min.js +2 -2
  136. package/i18n/tajik.js +1 -1
  137. package/i18n/tajik.min.js +1 -1
  138. package/i18n/telugu.js +5 -2
  139. package/i18n/telugu.js.map +1 -1
  140. package/i18n/telugu.min.js +2 -2
  141. package/i18n/thai.js +5 -2
  142. package/i18n/thai.js.map +1 -1
  143. package/i18n/thai.min.js +2 -2
  144. package/i18n/traditional-chinese.js +5 -2
  145. package/i18n/traditional-chinese.js.map +1 -1
  146. package/i18n/traditional-chinese.min.js +2 -2
  147. package/i18n/turkish.js +5 -2
  148. package/i18n/turkish.js.map +1 -1
  149. package/i18n/turkish.min.js +2 -2
  150. package/i18n/ukrainian.js +5 -2
  151. package/i18n/ukrainian.js.map +1 -1
  152. package/i18n/ukrainian.min.js +2 -2
  153. package/i18n/urdu.js +5 -2
  154. package/i18n/urdu.js.map +1 -1
  155. package/i18n/urdu.min.js +2 -2
  156. package/i18n/vietnamese.js +5 -2
  157. package/i18n/vietnamese.js.map +1 -1
  158. package/i18n/vietnamese.min.js +2 -2
  159. package/i18n/welsh.js +5 -2
  160. package/i18n/welsh.js.map +1 -1
  161. package/i18n/welsh.min.js +2 -2
  162. package/modern.css +62 -4
  163. package/modern.css.map +1 -1
  164. package/modern.fontless.css +62 -4
  165. package/modern.fontless.css.map +1 -1
  166. package/modern.fontless.min.css +2 -2
  167. package/modern.min.css +2 -2
  168. package/package.json +1 -1
  169. package/plugins/bootstrap-integration.js +1 -1
  170. package/plugins/bootstrap-integration.min.js +1 -1
  171. package/plugins/bootstrap-material-integration.js +1 -1
  172. package/plugins/bootstrap-material-integration.min.js +1 -1
  173. package/survey.core.js +711 -193
  174. package/survey.core.js.map +1 -1
  175. package/survey.core.min.js +3 -3
  176. package/survey.css +31 -4
  177. package/survey.css.map +1 -1
  178. package/survey.i18n.js +189 -13
  179. package/survey.i18n.js.map +1 -1
  180. package/survey.i18n.min.js +2 -2
  181. package/survey.min.css +2 -2
  182. package/themes/borderless-dark-panelless.js +2 -1
  183. package/themes/borderless-dark-panelless.js.map +1 -1
  184. package/themes/borderless-dark-panelless.min.js +2 -2
  185. package/themes/borderless-dark.js +2 -1
  186. package/themes/borderless-dark.js.map +1 -1
  187. package/themes/borderless-dark.min.js +2 -2
  188. package/themes/borderless-light-panelless..js +2 -1
  189. package/themes/borderless-light-panelless..js.map +1 -1
  190. package/themes/borderless-light-panelless..min.js +2 -2
  191. package/themes/borderless-light.js +2 -1
  192. package/themes/borderless-light.js.map +1 -1
  193. package/themes/borderless-light.min.js +2 -2
  194. package/themes/contrast-dark-panelless.js +2 -1
  195. package/themes/contrast-dark-panelless.js.map +1 -1
  196. package/themes/contrast-dark-panelless.min.js +2 -2
  197. package/themes/contrast-dark.js +2 -1
  198. package/themes/contrast-dark.js.map +1 -1
  199. package/themes/contrast-dark.min.js +2 -2
  200. package/themes/contrast-light-panelless.js +2 -1
  201. package/themes/contrast-light-panelless.js.map +1 -1
  202. package/themes/contrast-light-panelless.min.js +2 -2
  203. package/themes/contrast-light.js +2 -1
  204. package/themes/contrast-light.js.map +1 -1
  205. package/themes/contrast-light.min.js +2 -2
  206. package/themes/default-dark-panelless.js +2 -1
  207. package/themes/default-dark-panelless.js.map +1 -1
  208. package/themes/default-dark-panelless.min.js +2 -2
  209. package/themes/default-dark.js +2 -1
  210. package/themes/default-dark.js.map +1 -1
  211. package/themes/default-dark.min.js +2 -2
  212. package/themes/default-light-panelless.js +2 -1
  213. package/themes/default-light-panelless.js.map +1 -1
  214. package/themes/default-light-panelless.min.js +2 -2
  215. package/themes/default-light.js +2 -1
  216. package/themes/default-light.js.map +1 -1
  217. package/themes/default-light.min.js +2 -2
  218. package/themes/doubleborder-dark-panelless.js +2 -1
  219. package/themes/doubleborder-dark-panelless.js.map +1 -1
  220. package/themes/doubleborder-dark-panelless.min.js +2 -2
  221. package/themes/doubleborder-dark.js +2 -1
  222. package/themes/doubleborder-dark.js.map +1 -1
  223. package/themes/doubleborder-dark.min.js +2 -2
  224. package/themes/doubleborder-light-panelles.js +2 -1
  225. package/themes/doubleborder-light-panelles.js.map +1 -1
  226. package/themes/doubleborder-light-panelles.min.js +2 -2
  227. package/themes/doubleborder-light.js +2 -1
  228. package/themes/doubleborder-light.js.map +1 -1
  229. package/themes/doubleborder-light.min.js +2 -2
  230. package/themes/flat-dark-panelless.js +2 -1
  231. package/themes/flat-dark-panelless.js.map +1 -1
  232. package/themes/flat-dark-panelless.min.js +2 -2
  233. package/themes/flat-dark.js +2 -1
  234. package/themes/flat-dark.js.map +1 -1
  235. package/themes/flat-dark.min.js +2 -2
  236. package/themes/flat-light-panelless.js +2 -1
  237. package/themes/flat-light-panelless.js.map +1 -1
  238. package/themes/flat-light-panelless.min.js +2 -2
  239. package/themes/flat-light.js +2 -1
  240. package/themes/flat-light.js.map +1 -1
  241. package/themes/flat-light.min.js +2 -2
  242. package/themes/index.js +41 -1
  243. package/themes/index.js.map +1 -1
  244. package/themes/index.min.js +2 -2
  245. package/themes/layered-dark-panelless.js +2 -1
  246. package/themes/layered-dark-panelless.js.map +1 -1
  247. package/themes/layered-dark-panelless.min.js +2 -2
  248. package/themes/layered-dark.js +2 -1
  249. package/themes/layered-dark.js.map +1 -1
  250. package/themes/layered-dark.min.js +2 -2
  251. package/themes/layered-light-panelless.js +2 -1
  252. package/themes/layered-light-panelless.js.map +1 -1
  253. package/themes/layered-light-panelless.min.js +2 -2
  254. package/themes/layered-light.js +2 -1
  255. package/themes/layered-light.js.map +1 -1
  256. package/themes/layered-light.min.js +2 -2
  257. package/themes/plain-dark-panelless.js +2 -1
  258. package/themes/plain-dark-panelless.js.map +1 -1
  259. package/themes/plain-dark-panelless.min.js +2 -2
  260. package/themes/plain-dark.js +2 -1
  261. package/themes/plain-dark.js.map +1 -1
  262. package/themes/plain-dark.min.js +2 -2
  263. package/themes/plain-light-panelless.js +2 -1
  264. package/themes/plain-light-panelless.js.map +1 -1
  265. package/themes/plain-light-panelless.min.js +2 -2
  266. package/themes/plain-light.js +2 -1
  267. package/themes/plain-light.js.map +1 -1
  268. package/themes/plain-light.min.js +2 -2
  269. package/themes/sharp-dark-panelless.js +2 -1
  270. package/themes/sharp-dark-panelless.js.map +1 -1
  271. package/themes/sharp-dark-panelless.min.js +2 -2
  272. package/themes/sharp-dark.js +2 -1
  273. package/themes/sharp-dark.js.map +1 -1
  274. package/themes/sharp-dark.min.js +2 -2
  275. package/themes/sharp-light-panelless.js +2 -1
  276. package/themes/sharp-light-panelless.js.map +1 -1
  277. package/themes/sharp-light-panelless.min.js +2 -2
  278. package/themes/sharp-light.js +2 -1
  279. package/themes/sharp-light.js.map +1 -1
  280. package/themes/sharp-light.min.js +2 -2
  281. package/themes/solid-dark-panelless.js +2 -1
  282. package/themes/solid-dark-panelless.js.map +1 -1
  283. package/themes/solid-dark-panelless.min.js +2 -2
  284. package/themes/solid-dark.js +2 -1
  285. package/themes/solid-dark.js.map +1 -1
  286. package/themes/solid-dark.min.js +2 -2
  287. package/themes/solid-light-panelless.js +2 -1
  288. package/themes/solid-light-panelless.js.map +1 -1
  289. package/themes/solid-light-panelless.min.js +2 -2
  290. package/themes/solid-light.js +2 -1
  291. package/themes/solid-light.js.map +1 -1
  292. package/themes/solid-light.min.js +2 -2
  293. package/themes/three-dimensional-dark-panelless.js +2 -1
  294. package/themes/three-dimensional-dark-panelless.js.map +1 -1
  295. package/themes/three-dimensional-dark-panelless.min.js +2 -2
  296. package/themes/three-dimensional-dark.js +2 -1
  297. package/themes/three-dimensional-dark.js.map +1 -1
  298. package/themes/three-dimensional-dark.min.js +2 -2
  299. package/themes/three-dimensional-light-panelless.js +2 -1
  300. package/themes/three-dimensional-light-panelless.js.map +1 -1
  301. package/themes/three-dimensional-light-panelless.min.js +2 -2
  302. package/themes/three-dimensional-light.js +2 -1
  303. package/themes/three-dimensional-light.js.map +1 -1
  304. package/themes/three-dimensional-light.min.js +2 -2
  305. package/themes/typings/borderless-dark-panelless.d.ts +2 -0
  306. package/themes/typings/borderless-dark.d.ts +2 -0
  307. package/themes/typings/borderless-light-panelless.d.ts +2 -0
  308. package/themes/typings/borderless-light.d.ts +2 -0
  309. package/themes/typings/contrast-dark-panelless.d.ts +2 -0
  310. package/themes/typings/contrast-dark.d.ts +2 -0
  311. package/themes/typings/contrast-light-panelless.d.ts +2 -0
  312. package/themes/typings/contrast-light.d.ts +2 -0
  313. package/themes/typings/default-dark-panelless.d.ts +2 -0
  314. package/themes/typings/default-dark.d.ts +2 -0
  315. package/themes/typings/default-light-panelless.d.ts +2 -0
  316. package/themes/typings/default-light.d.ts +2 -0
  317. package/themes/typings/doubleborder-dark-panelless.d.ts +2 -0
  318. package/themes/typings/doubleborder-dark.d.ts +2 -0
  319. package/themes/typings/doubleborder-light-panelless.d.ts +2 -0
  320. package/themes/typings/doubleborder-light.d.ts +2 -0
  321. package/themes/typings/flat-dark-panelless.d.ts +2 -0
  322. package/themes/typings/flat-dark.d.ts +2 -0
  323. package/themes/typings/flat-light-panelless.d.ts +2 -0
  324. package/themes/typings/flat-light.d.ts +2 -0
  325. package/themes/typings/index.d.ts +40 -0
  326. package/themes/typings/layered-dark-panelless.d.ts +2 -0
  327. package/themes/typings/layered-dark.d.ts +2 -0
  328. package/themes/typings/layered-light-panelless.d.ts +2 -0
  329. package/themes/typings/layered-light.d.ts +2 -0
  330. package/themes/typings/plain-dark-panelless.d.ts +2 -0
  331. package/themes/typings/plain-dark.d.ts +2 -0
  332. package/themes/typings/plain-light-panelless.d.ts +2 -0
  333. package/themes/typings/plain-light.d.ts +2 -0
  334. package/themes/typings/sharp-dark-panelless.d.ts +2 -0
  335. package/themes/typings/sharp-dark.d.ts +2 -0
  336. package/themes/typings/sharp-light-panelless.d.ts +2 -0
  337. package/themes/typings/sharp-light.d.ts +2 -0
  338. package/themes/typings/solid-dark-panelless.d.ts +2 -0
  339. package/themes/typings/solid-dark.d.ts +2 -0
  340. package/themes/typings/solid-light-panelless.d.ts +2 -0
  341. package/themes/typings/solid-light.d.ts +2 -0
  342. package/themes/typings/threedimensional-dark-panelless.d.ts +2 -0
  343. package/themes/typings/threedimensional-dark.d.ts +2 -0
  344. package/themes/typings/threedimensional-light-panelless.d.ts +2 -0
  345. package/themes/typings/threedimensional-light.d.ts +2 -0
  346. package/ts3.4/themes/typings/borderless-dark-panelless.d.ts +2 -0
  347. package/ts3.4/themes/typings/borderless-dark.d.ts +2 -0
  348. package/ts3.4/themes/typings/borderless-light-panelless.d.ts +2 -0
  349. package/ts3.4/themes/typings/borderless-light.d.ts +2 -0
  350. package/ts3.4/themes/typings/contrast-dark-panelless.d.ts +2 -0
  351. package/ts3.4/themes/typings/contrast-dark.d.ts +2 -0
  352. package/ts3.4/themes/typings/contrast-light-panelless.d.ts +2 -0
  353. package/ts3.4/themes/typings/contrast-light.d.ts +2 -0
  354. package/ts3.4/themes/typings/default-dark-panelless.d.ts +2 -0
  355. package/ts3.4/themes/typings/default-dark.d.ts +2 -0
  356. package/ts3.4/themes/typings/default-light-panelless.d.ts +2 -0
  357. package/ts3.4/themes/typings/default-light.d.ts +2 -0
  358. package/ts3.4/themes/typings/doubleborder-dark-panelless.d.ts +2 -0
  359. package/ts3.4/themes/typings/doubleborder-dark.d.ts +2 -0
  360. package/ts3.4/themes/typings/doubleborder-light-panelless.d.ts +2 -0
  361. package/ts3.4/themes/typings/doubleborder-light.d.ts +2 -0
  362. package/ts3.4/themes/typings/flat-dark-panelless.d.ts +2 -0
  363. package/ts3.4/themes/typings/flat-dark.d.ts +2 -0
  364. package/ts3.4/themes/typings/flat-light-panelless.d.ts +2 -0
  365. package/ts3.4/themes/typings/flat-light.d.ts +2 -0
  366. package/ts3.4/themes/typings/index.d.ts +40 -0
  367. package/ts3.4/themes/typings/layered-dark-panelless.d.ts +2 -0
  368. package/ts3.4/themes/typings/layered-dark.d.ts +2 -0
  369. package/ts3.4/themes/typings/layered-light-panelless.d.ts +2 -0
  370. package/ts3.4/themes/typings/layered-light.d.ts +2 -0
  371. package/ts3.4/themes/typings/plain-dark-panelless.d.ts +2 -0
  372. package/ts3.4/themes/typings/plain-dark.d.ts +2 -0
  373. package/ts3.4/themes/typings/plain-light-panelless.d.ts +2 -0
  374. package/ts3.4/themes/typings/plain-light.d.ts +2 -0
  375. package/ts3.4/themes/typings/sharp-dark-panelless.d.ts +2 -0
  376. package/ts3.4/themes/typings/sharp-dark.d.ts +2 -0
  377. package/ts3.4/themes/typings/sharp-light-panelless.d.ts +2 -0
  378. package/ts3.4/themes/typings/sharp-light.d.ts +2 -0
  379. package/ts3.4/themes/typings/solid-dark-panelless.d.ts +2 -0
  380. package/ts3.4/themes/typings/solid-dark.d.ts +2 -0
  381. package/ts3.4/themes/typings/solid-light-panelless.d.ts +2 -0
  382. package/ts3.4/themes/typings/solid-light.d.ts +2 -0
  383. package/ts3.4/themes/typings/threedimensional-dark-panelless.d.ts +2 -0
  384. package/ts3.4/themes/typings/threedimensional-dark.d.ts +2 -0
  385. package/ts3.4/themes/typings/threedimensional-light-panelless.d.ts +2 -0
  386. package/ts3.4/themes/typings/threedimensional-light.d.ts +2 -0
  387. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +7 -0
  388. package/ts3.4/typings/dropdownListModel.d.ts +1 -0
  389. package/ts3.4/typings/entries/chunks/model.d.ts +1 -1
  390. package/ts3.4/typings/list.d.ts +3 -0
  391. package/ts3.4/typings/localization/english.d.ts +2 -0
  392. package/ts3.4/typings/page.d.ts +2 -2
  393. package/ts3.4/typings/progress-buttons.d.ts +42 -0
  394. package/ts3.4/typings/question_baseselect.d.ts +55 -2
  395. package/ts3.4/typings/question_checkbox.d.ts +3 -2
  396. package/ts3.4/typings/question_custom.d.ts +11 -0
  397. package/ts3.4/typings/question_dropdown.d.ts +14 -0
  398. package/ts3.4/typings/question_imagepicker.d.ts +4 -2
  399. package/ts3.4/typings/question_ranking.d.ts +2 -0
  400. package/ts3.4/typings/settings.d.ts +24 -3
  401. package/ts3.4/typings/survey-events-api.d.ts +14 -0
  402. package/ts3.4/typings/survey.d.ts +40 -16
  403. package/ts3.4/typings/surveyStrings.d.ts +2 -0
  404. package/ts3.4/typings/themes.d.ts +2 -2
  405. package/typings/defaultCss/defaultV2Css.d.ts +7 -0
  406. package/typings/dropdownListModel.d.ts +1 -0
  407. package/typings/entries/chunks/model.d.ts +1 -1
  408. package/typings/list.d.ts +3 -0
  409. package/typings/localization/english.d.ts +2 -0
  410. package/typings/page.d.ts +2 -2
  411. package/typings/progress-buttons.d.ts +42 -0
  412. package/typings/question_baseselect.d.ts +60 -2
  413. package/typings/question_checkbox.d.ts +3 -2
  414. package/typings/question_custom.d.ts +11 -0
  415. package/typings/question_dropdown.d.ts +14 -0
  416. package/typings/question_imagepicker.d.ts +4 -2
  417. package/typings/question_ranking.d.ts +2 -0
  418. package/typings/settings.d.ts +24 -3
  419. package/typings/survey-events-api.d.ts +14 -0
  420. package/typings/survey.d.ts +40 -16
  421. package/typings/surveyProgressButtons.d.ts +9 -9
  422. package/typings/surveyStrings.d.ts +2 -0
  423. package/typings/themes.d.ts +2 -2
@@ -77,8 +77,22 @@ export declare class QuestionDropdownModel extends QuestionSelectBase {
77
77
  allowClear: boolean;
78
78
  /**
79
79
  * Specifies whether users can enter a value into the input field to filter the drop-down list.
80
+ *
81
+ * [View Demo](https://surveyjs.io/form-library/examples/create-dropdown-menu-in-javascript/ (linkStyle))
82
+ * @see searchMode
83
+ * @see [SurveyModel.onChoicesSearch](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onChoicesSearch)
80
84
  */
81
85
  searchEnabled: boolean;
86
+ /**
87
+ * Specifies a comparison operation used to filter the drop-down list. Applies only if [`searchEnabled`](#searchEnabled) is `true`.
88
+ *
89
+ * Possible values:
90
+ *
91
+ * - `"contains"` (default)
92
+ * - `"startsWith"`
93
+ * @see [SurveyModel.onChoicesSearch](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onChoicesSearch)
94
+ */
95
+ searchMode: "contains" | "startsWith";
82
96
  inputHasValue: boolean;
83
97
  readOnlyText: string;
84
98
  /**
@@ -1,4 +1,4 @@
1
- import { QuestionCheckboxBase, QuestionSelectBase } from "./question_baseselect";
1
+ import { QuestionCheckboxBase } from "./question_baseselect";
2
2
  import { ItemValue } from "./itemvalue";
3
3
  import { ILocalizableOwner, LocalizableString } from "./localizablestring";
4
4
  export declare class ImageItemValue extends ItemValue implements ILocalizableOwner {
@@ -35,6 +35,8 @@ export declare class QuestionImagePickerModel extends QuestionCheckboxBase {
35
35
  readonly isCompositeQuestion: boolean;
36
36
  supportOther(): boolean;
37
37
  supportNone(): boolean;
38
+ supportRefuse(): boolean;
39
+ supportDontKnow(): boolean;
38
40
  isAnswerCorrect(): boolean;
39
41
  /*
40
42
  * Specifies whether users can select multiple images or videos.
@@ -99,7 +101,7 @@ export declare class QuestionImagePickerModel extends QuestionCheckboxBase {
99
101
  contentMode: string;
100
102
  protected convertDefaultValue(val: any): any;
101
103
  readonly inputType: "checkbox" | "radio";
102
- protected isBuiltInChoice(item: ItemValue, question: QuestionSelectBase): boolean;
104
+ protected isBuiltInChoice(item: ItemValue): boolean;
103
105
  protected addToVisibleChoices(items: Array<ItemValue>, isAddAll: boolean): void;
104
106
  getSelectBaseRootCss(): string;
105
107
  private isResponsiveValue;
@@ -51,6 +51,8 @@ export declare class QuestionRankingModel extends QuestionCheckboxModel {
51
51
  protected supportSelectAll(): boolean;
52
52
  supportOther(): boolean;
53
53
  supportNone(): boolean;
54
+ supportRefuse(): boolean;
55
+ supportDontKnow(): boolean;
54
56
  private handleArrowKeys;
55
57
  handleKeydownSelectToRank(event: KeyboardEvent, movedElement: ItemValue): void;
56
58
  private setValueAfterKeydown;
@@ -413,15 +413,27 @@ export declare var settings: {
413
413
  */
414
414
  showItemsInOrder: string;
415
415
  /**
416
- * A value to save in survey results when respondents select the None choice item.
416
+ * A value to save in survey results when respondents select the "None" choice item.
417
417
  *
418
418
  * Default value: `"none"`
419
419
  */
420
420
  noneItemValue: string;
421
421
  /**
422
- * An object whose properties specify the order of the special choice items (None, Other, Select All) in select-based questions.
422
+ * A value to save in survey results when respondents select the "Refuse to answer" choice item.
423
423
  *
424
- * Default value: `{ selectAllItem: [-1], noneItem: [1], otherItem: [2] }`
424
+ * Default value: `"refused"`
425
+ */
426
+ refuseItemValue: string;
427
+ /**
428
+ * A value to save in survey results when respondents select the "Don't know" choice item.
429
+ *
430
+ * Default value: `"dontknow"`
431
+ */
432
+ dontKnowItemValue: string;
433
+ /**
434
+ * An object whose properties specify the order of the special choice items ("None", "Other", "Select All", "Refuse to answer", "Don't know") in select-based questions.
435
+ *
436
+ * Default value: `{ selectAllItem: [-1], noneItem: [1], otherItem: [2], dontKnowItem: [3], otherItem: [4] }`
425
437
  *
426
438
  * Use this object to reorder special choices. Each property accepts an array of integer numbers. Negative numbers place a special choice item above regular choice items, positive numbers place it below them. For instance, the code below specifies the following order of choices: None, Select All, regular choices, Other.
427
439
  *
@@ -442,6 +454,8 @@ export declare var settings: {
442
454
  specialChoicesOrder: {
443
455
  selectAllItem: number[];
444
456
  noneItem: number[];
457
+ refuseItem: number[];
458
+ dontKnowItem: number[];
445
459
  otherItem: number[];
446
460
  };
447
461
  /**
@@ -496,6 +510,12 @@ export declare var settings: {
496
510
  * Default value: `true`
497
511
  */
498
512
  showMaxLengthIndicator: boolean;
513
+ /**
514
+ * Set to `false` to disable animations
515
+ *
516
+ * Default value: `true`
517
+ */
518
+ animationEnabled: boolean;
499
519
  /**
500
520
  * An object that specifies heading levels (`<h1>`, `<h2>`, etc.) to use when rendering survey, page, panel, and question titles.
501
521
  *
@@ -513,4 +533,5 @@ export declare var settings: {
513
533
  inputTypes: string[];
514
534
  dataList: string[];
515
535
  };
536
+ legacyProgressBarView: boolean;
516
537
  };
@@ -628,6 +628,20 @@ export interface ChoicesLazyLoadEvent extends QuestionEventMixin {
628
628
  */
629
629
  skip: number;
630
630
  }
631
+ export interface ChoicesSearchEvent extends QuestionEventMixin {
632
+ /**
633
+ * A search string used to filter choice options.
634
+ */
635
+ filter: string;
636
+ /**
637
+ * An array of all choice options.
638
+ */
639
+ choices: Array<ItemValue>;
640
+ /**
641
+ * A filtered array of choice options. Apply `options.filter` to the `options.choices` array and assign the result to this parameter.
642
+ */
643
+ filteredChoices: Array<ItemValue>;
644
+ }
631
645
  export interface GetChoiceDisplayValueEvent extends QuestionEventMixin {
632
646
  /**
633
647
  * A method that you should call to assign display texts to the question.
@@ -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, DynamicPanelCurrentIndexChangedEvent, 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, ChoicesSearchEvent } 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";
@@ -511,6 +511,12 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
511
511
  * [View Demo](https://surveyjs.io/form-library/examples/lazy-loading-dropdown/ (linkStyle))
512
512
  */
513
513
  onChoicesLazyLoad: EventBase<SurveyModel, ChoicesLazyLoadEvent>;
514
+ /**
515
+ * An event that is raised each time a search string in a [Dropdown](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model) or [Tag Box](https://surveyjs.io/form-library/documentation/api-reference/dropdown-tag-box-model) question changes. Use this event to implement custom filtering of choice options.
516
+ * @see [QuestionDropdownModel.searchEnabled](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model#searchEnabled)
517
+ * @see [QuestionDropdownModel.searchMode](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model#searchMode)
518
+ */
519
+ onChoicesSearch: EventBase<SurveyModel, ChoicesSearchEvent>;
514
520
  /**
515
521
  * Use this event to load a display text for the [default choice item](https://surveyjs.io/form-library/documentation/questiondropdownmodel#defaultValue) in [Dropdown](https://surveyjs.io/form-library/documentation/questiondropdownmodel) and [Tag Box](https://surveyjs.io/form-library/documentation/questiontagboxmodel) questions.
516
522
  *
@@ -745,17 +751,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
745
751
  containerCss: string;
746
752
  fitToContainer: boolean;
747
753
  /**
748
- * Specifies whether the survey header uses only basic appearance settings or applies advanced settings from the survey theme.
749
- *
750
- * Possible values:
751
- *
752
- * - `"basic"` (default)\
753
- * A basic header view applies only the [`title`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title), [`description`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#description), and logo-related properties ([`logo`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#logo), [`logoPosition`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#logoPosition), etc.).
754
- *
755
- * - `"advanced"`\
756
- * An advanced header view applies the same properties as the basic view, plus [header settings](https://surveyjs.io/form-library/documentation/api-reference/iheader) from the [survey theme](https://surveyjs.io/form-library/documentation/api-reference/itheme#header). The advanced view features a more flexible header layout, a capability to specify a background image, and other settings that give a more professional look to the survey header.
757
- *
758
- * [View Demo](https://surveyjs.io/form-library/examples/brand-your-survey-header/ (linkStyle))
754
+ * This property is obsolete. Use the [`headerView`](https://surveyjs.io/form-library/documentation/api-reference/itheme#headerView) property within a theme instead.
759
755
  */
760
756
  headerView: "advanced" | "basic";
761
757
  protected insertAdvancedHeader(advHeader: Cover): void;
@@ -1358,15 +1354,21 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1358
1354
  * If you want to hide the number of an individual question, enable its [`hideNumber`](https://surveyjs.io/form-library/documentation/api-reference/question#hideNumber) property.
1359
1355
  */
1360
1356
  showQuestionNumbers: string | boolean;
1357
+ private progressBarValue;
1358
+ readonly progressBar: any;
1361
1359
  /*
1362
1360
  * Controls the visibility of the progress bar and specifies its position.
1363
1361
  *
1364
1362
  * Possible values:
1365
1363
  *
1366
1364
  * - `"off"` (default) - Hides the progress bar.
1367
- * - `"top"` - Displays the progress bar above survey content.
1365
+ * - `"aboveHeader"` - Displays the progress bar above the survey header.
1366
+ * - `"belowHeader"` - Displays the progress bar below the survey header.
1368
1367
  * - `"bottom"` - Displays the progress bar below survey content.
1369
- * - `"both"` - Displays the progress bar above and below survey content.
1368
+ * - `"topBottom"` - Displays the progress bar above and below survey content.
1369
+ * - `"auto"` - Automatically selects between `"aboveHeader"` and `"belowHeader"`.
1370
+ * - `"top"` - *(Obsolete)* Use the `"aboveHeader"` or `"belowHeader"` property value instead.
1371
+ * - `"both"` - *(Obsolete)* Use the `"topBottom"` property value instead.
1370
1372
  *
1371
1373
  * [View Demo](https://surveyjs.io/form-library/examples/navigation-default/ (linkStyle))
1372
1374
  * @see progressBarType
@@ -1382,12 +1384,29 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1382
1384
  * - `"questions"` - The number of answered questions.
1383
1385
  * - `"requiredQuestions"` - The number of answered [required questions](https://surveyjs.io/form-library/documentation/api-reference/question#isRequired).
1384
1386
  * - `"correctQuestions"` - The number of correct questions in a [quiz](https://surveyjs.io/form-library/documentation/design-survey/create-a-quiz).
1385
- * - `"buttons"` - Adds jump links to the progress bar.
1387
+ * - `"buttons"` - *(Obsolete)* Use the `"pages"` property value with the [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#progressBarShowPageTitles) property set to `true` instead.
1388
+ *
1389
+ * > When `progressBarType` is set to `"pages"`, you can also enable the [`progressBarShowPageNumbers`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#progressBarShowPageNumbers) and [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#progressBarShowPageTitles) properties if you want to display page numbers and titles in the progress bar.
1386
1390
  *
1387
1391
  * [View Demo](https://surveyjs.io/form-library/examples/navigation-buttons/ (linkStyle))
1388
1392
  * @see progressValue
1389
1393
  */
1390
1394
  progressBarType: string;
1395
+ private readonly progressBarComponentName: any;
1396
+ /**
1397
+ * Specifies whether the progress bar displays page titles. Applies only when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar) and [`progressBarType`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#progressBarType) is `"pages"`.
1398
+ *
1399
+ * Default value: `false`
1400
+ * @see progressBarShowPageNumbers
1401
+ */
1402
+ progressBarShowPageTitles: boolean;
1403
+ /**
1404
+ * Specifies whether the progress bar displays page numbers. Applies only when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar) and [`progressBarType`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#progressBarType) is `"pages"`.
1405
+ *
1406
+ * Default value: `false`
1407
+ * @see progressBarShowPageTitles
1408
+ */
1409
+ progressBarShowPageNumbers: boolean;
1391
1410
  readonly isShowProgressBarOnTop: boolean;
1392
1411
  readonly isShowProgressBarOnBottom: boolean;
1393
1412
  getProgressTypeComponent(): string;
@@ -2270,6 +2289,10 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2270
2289
  private conditionRunnerCounter;
2271
2290
  private conditionUpdateVisibleIndexes;
2272
2291
  private conditionNotifyElementsOnAnyValueOrVariableChanged;
2292
+ /**
2293
+ * Recalculates all [expressions](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) in the survey.
2294
+ */
2295
+ runExpressions(): void;
2273
2296
  private runConditions;
2274
2297
  private runConditionOnValueChanged;
2275
2298
  private runConditionsCore;
@@ -2301,6 +2324,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2301
2324
  private updateVisibleIndexes;
2302
2325
  private updatePageVisibleIndexes;
2303
2326
  fromJSON(json: any, options?: ILoadFromJSONOptions): void;
2327
+ startLoadingFromJson(json?: any): void;
2304
2328
  setJsonObject(jsonObj: any): void;
2305
2329
  private isEndLoadingFromJson;
2306
2330
  endLoadingFromJson(): void;
@@ -2637,7 +2661,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2637
2661
  *
2638
2662
  * This method accepts an object with the following layout element properties:
2639
2663
  *
2640
- * - `id`: `string` | `"timerpanel"` | `"progress-buttons"` | `"progress-questions"` | `"progress-pages"` | `"progress-correctquestions"` | `"progress-requiredquestions"` | `"toc-navigation"` | `"navigationbuttons"`\
2664
+ * - `id`: `string` | `"timerpanel"` | `"progress-buttons"` | `"progress-questions"` | `"progress-pages"` | `"progress-correctquestions"` | `"progress-requiredquestions"` | `"toc-navigation"` | `"buttons-navigation"`\
2641
2665
  * A layout element identifier. You can use possible values to access and relocate or customize predefined layout elements.
2642
2666
  *
2643
2667
  * - `container`: `"header"` | `"footer"` | `"left"` | `"right"` | `"contentTop"` | `"contentBottom"`\
@@ -24,6 +24,8 @@ export declare var surveyStrings: {
24
24
  startSurveyText: string;
25
25
  otherItemText: string;
26
26
  noneItemText: string;
27
+ refuseItemText: string;
28
+ dontKnowItemText: string;
27
29
  selectAllItemText: string;
28
30
  progressText: string;
29
31
  indexText: string;
@@ -56,7 +56,7 @@ export interface ITheme {
56
56
  */
57
57
  backgroundOpacity?: number;
58
58
  /**
59
- * An object with [advanced survey header settings](https://surveyjs.io/form-library/documentation/api-reference/iheader). Applies when `SurveyModel`'s [`headerView`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#headerView) property is set to `"advanced"`.
59
+ * An object with [advanced survey header settings](https://surveyjs.io/form-library/documentation/api-reference/iheader). Applies when the [`headerView`](https://surveyjs.io/form-library/documentation/api-reference/itheme#headerView) property is set to `"advanced"`.
60
60
  */
61
61
  header?: IHeader;
62
62
  /**
@@ -83,7 +83,7 @@ export interface ITheme {
83
83
  /**
84
84
  * A survey header configuration interface.
85
85
  *
86
- * An `IHeader` object configures advanced survey header appearance settings. To apply them, you need to assign the object to the [`header`](https://surveyjs.io/form-library/documentation/api-reference/itheme#header) property of your theme configuration and set `SurveyModel`'s [`headerView`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#headerView) property to `"advanced"`.
86
+ * An `IHeader` object configures advanced survey header appearance settings. To apply them, you need to assign the object to the [`header`](https://surveyjs.io/form-library/documentation/api-reference/itheme#header) property of your theme configuration and set the [`headerView`](https://surveyjs.io/form-library/documentation/api-reference/itheme#headerView) property to `"advanced"`.
87
87
  */
88
88
  export interface IHeader {
89
89
  /**
@@ -2,6 +2,7 @@ export declare var surveyCss: any;
2
2
  export declare var defaultV2Css: {
3
3
  root: string;
4
4
  rootMobile: string;
5
+ rootAnimationDisabled: string;
5
6
  rootReadOnly: string;
6
7
  rootCompact: string;
7
8
  rootFitToContainer: string;
@@ -119,8 +120,13 @@ export declare var defaultV2Css: {
119
120
  progressBottom: string;
120
121
  progressBar: string;
121
122
  progressText: string;
123
+ progressButtonsRoot: string;
124
+ progressButtonsNumbered: string;
122
125
  progressButtonsContainerCenter: string;
123
126
  progressButtonsContainer: string;
127
+ progressButtonsConnector: string;
128
+ progressButtonsHeader: string;
129
+ progressButtonsFooter: string;
124
130
  progressButtonsImageButtonLeft: string;
125
131
  progressButtonsImageButtonRight: string;
126
132
  progressButtonsImageButtonHidden: string;
@@ -462,6 +468,7 @@ export declare var defaultV2Css: {
462
468
  noHeader: string;
463
469
  hasFooter: string;
464
470
  tableWrapper: string;
471
+ rootAlternateRows: string;
465
472
  content: string;
466
473
  cell: string;
467
474
  row: string;
@@ -11,6 +11,7 @@ export declare class DropdownListModel extends Base {
11
11
  readonly loadingItemHeight = 40;
12
12
  private _markdownMode;
13
13
  private _popupModel;
14
+ private filteredItems;
14
15
  focused: boolean;
15
16
  private get focusFirstInputSelector();
16
17
  protected readonly selectedItemSelector = ".sv-list__item--selected";
@@ -62,7 +62,7 @@ export { SurveyTimer } from "../../surveytimer";
62
62
  export { SurveyTimerModel } from "../../surveyTimerModel";
63
63
  export * from "../../surveyToc";
64
64
  export { SurveyProgressModel } from "../../surveyProgress";
65
- export { SurveyProgressButtonsModel } from "../../surveyProgressButtons";
65
+ export { ProgressButtons, ProgressButtonsResponsivityManager, IProgressButtonsViewModel } from "../../progress-buttons";
66
66
  export * from "../../themes";
67
67
  export { SurveyModel } from "../../survey";
68
68
  export * from "../../survey-events-api";
package/typings/list.d.ts CHANGED
@@ -26,6 +26,7 @@ export interface IListModel {
26
26
  allowSelection?: boolean;
27
27
  selectedItem?: IAction;
28
28
  onFilterStringChangedCallback?: (text: string) => void;
29
+ onTextSearchCallback?: (text: string, textToSearch: string) => boolean;
29
30
  }
30
31
  export declare class ListModel<T extends BaseAction = Action> extends ActionContainer<T> {
31
32
  onSelectionChanged: (item: T, ...params: any[]) => void;
@@ -56,7 +57,9 @@ export declare class ListModel<T extends BaseAction = Action> extends ActionCont
56
57
  private onFilterStringChanged;
57
58
  private scrollToItem;
58
59
  constructor(items: Array<IAction>, onSelectionChanged: (item: T, ...params: any[]) => void, allowSelection: boolean, selectedItem?: IAction, onFilterStringChangedCallback?: (text: string) => void, elementId?: string);
60
+ private onTextSearchCallback;
59
61
  setOnFilterStringChangedCallback(callback: (text: string) => void): void;
62
+ setOnTextSearchCallback(callback: (item: T, textToSearch: string) => boolean): void;
60
63
  setItems(items: Array<IAction>, sortByVisibleIndex?: boolean): void;
61
64
  protected onSet(): void;
62
65
  protected getDefaultCssClasses(): {
@@ -7,6 +7,8 @@ export declare var englishStrings: {
7
7
  startSurveyText: string;
8
8
  otherItemText: string;
9
9
  noneItemText: string;
10
+ refuseItemText: string;
11
+ dontKnowItemText: string;
10
12
  selectAllItemText: string;
11
13
  progressText: string;
12
14
  indexText: string;
package/typings/page.d.ts CHANGED
@@ -16,7 +16,7 @@ export declare class PageModel extends PanelModelBase implements IPage {
16
16
  protected canShowPageNumber(): boolean;
17
17
  protected canShowTitle(): boolean;
18
18
  /**
19
- * A caption displayed on a navigation button in the TOC or progress bar. Applies when [`showTOC`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTOC) is `true` or when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar) and [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) is set to `"buttons"`.
19
+ * A caption displayed on a navigation button in the TOC or progress bar. Applies when [`showTOC`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showTOC) is `true` or when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar), [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) is set to `"pages"`, and [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarShowPageTitles) is `true`.
20
20
  *
21
21
  * If navigation titles are unspecified, the navigation buttons display page [titles](https://surveyjs.io/form-library/documentation/api-reference/page-model#title) or [names](https://surveyjs.io/form-library/documentation/pagemodel#name).
22
22
  */
@@ -24,7 +24,7 @@ export declare class PageModel extends PanelModelBase implements IPage {
24
24
  set navigationTitle(val: string);
25
25
  get locNavigationTitle(): LocalizableString;
26
26
  /**
27
- * Explanatory text displayed under a navigation button in the progress bar. Applies when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar) and `SurveyModel`'s [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) property is set to `"buttons"`.
27
+ * Explanatory text displayed under a navigation button in the progress bar. Applies when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar), `SurveyModel`'s [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) is set to `"pages"`, and [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarShowPageTitles) is `true`.
28
28
  */
29
29
  get navigationDescription(): string;
30
30
  set navigationDescription(val: string);
@@ -0,0 +1,42 @@
1
+ import { Base, EventBase } from "./base";
2
+ import { PageModel } from "./page";
3
+ import { SurveyModel } from "./survey";
4
+ export declare class ProgressButtons extends Base {
5
+ survey: SurveyModel;
6
+ constructor(survey: SurveyModel);
7
+ isListElementClickable(index: number | any): boolean;
8
+ getRootCss(container?: string): string;
9
+ getListElementCss(index: number | any): string;
10
+ getScrollButtonCss(hasScroller: boolean, isLeftScroll: boolean): string;
11
+ clickListElement(element: number | PageModel): void;
12
+ isListContainerHasScroller(element: HTMLElement): boolean;
13
+ isCanShowItemTitles(element: HTMLElement): boolean;
14
+ clearConnectorsWidth(element: HTMLElement): void;
15
+ adjustConnectors(element: HTMLElement): void;
16
+ get showItemNumbers(): boolean;
17
+ get showItemTitles(): boolean;
18
+ getItemNumber(page: PageModel): string;
19
+ get headerText(): string;
20
+ get footerText(): string;
21
+ onResize: EventBase<ProgressButtons, any>;
22
+ processResponsiveness(width: number): void;
23
+ }
24
+ export interface IProgressButtonsViewModel {
25
+ container: string;
26
+ onResize(canShowItemTitles: boolean): void;
27
+ onUpdateScroller(hasScroller: boolean): void;
28
+ onUpdateSettings(): void;
29
+ }
30
+ export declare class ProgressButtonsResponsivityManager {
31
+ private model;
32
+ private element;
33
+ private viewModel;
34
+ private criticalProperties;
35
+ private timer;
36
+ private prevWidth;
37
+ private canShowItemTitles;
38
+ constructor(model: ProgressButtons, element: HTMLElement, viewModel: IProgressButtonsViewModel);
39
+ private forceUpdate;
40
+ private processResponsiveness;
41
+ dispose(): void;
42
+ }
@@ -21,6 +21,8 @@ export declare class QuestionSelectBase extends Question {
21
21
  private isChoicesLoaded;
22
22
  private enableOnLoadingChoices;
23
23
  private noneItemValue;
24
+ private refuseItemValue;
25
+ private dontKnowItemValue;
24
26
  private newItemValue;
25
27
  private canShowOptionItemCallback;
26
28
  private waitingGetChoiceDisplayValueResponse;
@@ -64,6 +66,7 @@ export declare class QuestionSelectBase extends Question {
64
66
  * When users select the "None" item in multi-select questions, all other items become unselected.
65
67
  * @see noneItem
66
68
  * @see noneText
69
+ * @see [settings.noneItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#noneItemValue)
67
70
  * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
68
71
  */
69
72
  get showNoneItem(): boolean;
@@ -82,6 +85,53 @@ export declare class QuestionSelectBase extends Question {
82
85
  get noneText(): string;
83
86
  set noneText(val: string);
84
87
  get locNoneText(): LocalizableString;
88
+ /**
89
+ * Specifies whether to display the "Refuse to answer" choice item.
90
+ *
91
+ * When users select the "Refuse to answer" item in multi-select questions, all other items become unselected.
92
+ * @see refuseItem
93
+ * @see refuseItemText
94
+ * @see [settings.refuseItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#refuseItemValue)
95
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
96
+ */
97
+ get showRefuseItem(): boolean;
98
+ set showRefuseItem(val: boolean);
99
+ /**
100
+ * Returns the "Refuse to answer" choice item. Use this property to change the item's `value` or `text`.
101
+ * @see showRefuseItem
102
+ */
103
+ get refuseItem(): ItemValue;
104
+ /**
105
+ * Gets or sets a caption for the "Refuse to answer" choice item.
106
+ * @see showRefuseItem
107
+ */
108
+ get refuseText(): string;
109
+ set refuseText(val: string);
110
+ get locRefuseText(): LocalizableString;
111
+ /**
112
+ * Specifies whether to display the "Don't know" choice item.
113
+ *
114
+ * When users select the "Don't know" item in multi-select questions, all other items become unselected.
115
+ * @see dontKnowItem
116
+ * @see dontKnowItemText
117
+ * @see [settings.dontKnowItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#dontKnowItemValue)
118
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
119
+ */
120
+ get showDontKnowItem(): boolean;
121
+ set showDontKnowItem(val: boolean);
122
+ /**
123
+ * Returns the "Don't know" choice item. Use this property to change the item's `value` or `text`.
124
+ * @see showDontKnowItem
125
+ */
126
+ get dontKnowItem(): ItemValue;
127
+ /**
128
+ * Gets or sets a caption for the "Don't know" choice item.
129
+ * @see showDontKnowItem
130
+ */
131
+ get dontKnowText(): string;
132
+ set dontKnowText(val: string);
133
+ get locDontKnowText(): LocalizableString;
134
+ private createDefaultItem;
85
135
  /**
86
136
  * A Boolean expression that is evaluated against each choice item. If the expression evaluates to `false`, the choice item becomes hidden.
87
137
  *
@@ -331,7 +381,7 @@ export declare class QuestionSelectBase extends Question {
331
381
  protected addNonChoiceItem(dict: Array<{
332
382
  index: number;
333
383
  item: ItemValue;
334
- }>, item: ItemValue, order: Array<number>): void;
384
+ }>, item: ItemValue, isAddAll: boolean, showItem: boolean, order: Array<number>): void;
335
385
  protected canShowOptionItem(item: ItemValue, isAddAll: boolean, hasItem: boolean): boolean;
336
386
  isItemInList(item: ItemValue): boolean;
337
387
  protected get isAddDefaultItems(): boolean;
@@ -343,6 +393,9 @@ export declare class QuestionSelectBase extends Question {
343
393
  private getItemDisplayValue;
344
394
  private getFilteredChoices;
345
395
  protected get activeChoices(): Array<ItemValue>;
396
+ get isMessagePanelVisible(): boolean;
397
+ set isMessagePanelVisible(val: boolean);
398
+ private get isEmptyActiveChoicesInDesign();
346
399
  getCarryForwardQuestion(data?: ISurveyData): Question;
347
400
  protected getIsReadyDependsOn(): Array<Question>;
348
401
  private getQuestionWithChoices;
@@ -355,10 +408,14 @@ export declare class QuestionSelectBase extends Question {
355
408
  private getChoicesFromSelectQuestion;
356
409
  private copyChoiceItem;
357
410
  protected get hasActiveChoices(): boolean;
358
- protected isBuiltInChoice(item: ItemValue, question: QuestionSelectBase): boolean;
411
+ protected isBuiltInChoice(item: ItemValue): boolean;
412
+ isNoneItem(item: ItemValue): boolean;
413
+ protected getNoneItems(): Array<ItemValue>;
359
414
  protected getChoices(): Array<ItemValue>;
360
415
  supportOther(): boolean;
361
416
  supportNone(): boolean;
417
+ supportRefuse(): boolean;
418
+ supportDontKnow(): boolean;
362
419
  protected isSupportProperty(propName: string): boolean;
363
420
  protected onCheckForErrors(errors: Array<SurveyError>, isOnValueChanged: boolean): void;
364
421
  setSurveyImpl(value: ISurveyImpl, isLight?: boolean): void;
@@ -391,6 +448,7 @@ export declare class QuestionSelectBase extends Question {
391
448
  private randomizeArray;
392
449
  private get hasChoicesUrl();
393
450
  clearIncorrectValues(): void;
451
+ private canClearIncorrectValues;
394
452
  protected hasValueToClearIncorrectValues(): boolean;
395
453
  protected clearValueIfInvisibleCore(reason: string): void;
396
454
  /**
@@ -1,4 +1,4 @@
1
- import { QuestionCheckboxBase, QuestionSelectBase } from "./question_baseselect";
1
+ import { QuestionCheckboxBase } from "./question_baseselect";
2
2
  import { ItemValue } from "./itemvalue";
3
3
  import { LocalizableString } from "./localizablestring";
4
4
  import { IQuestion } from "./base-interfaces";
@@ -116,6 +116,7 @@ export declare class QuestionCheckboxModel extends QuestionCheckboxBase {
116
116
  protected getCommentFromValue(newValue: any): string;
117
117
  protected setOtherValueIntoValue(newValue: any): any;
118
118
  private getFirstUnknownIndex;
119
+ protected removeNoneItemsValues(value: Array<any>, newValue: Array<any>): void;
119
120
  private noneIndexInArray;
120
121
  protected canUseFilteredChoices(): boolean;
121
122
  protected supportSelectAll(): boolean;
@@ -123,7 +124,7 @@ export declare class QuestionCheckboxModel extends QuestionCheckboxBase {
123
124
  index: number;
124
125
  item: ItemValue;
125
126
  }>, isAddAll: boolean): void;
126
- protected isBuiltInChoice(item: ItemValue, question: QuestionSelectBase): boolean;
127
+ protected isBuiltInChoice(item: ItemValue): boolean;
127
128
  isItemInList(item: ItemValue): boolean;
128
129
  protected getDisplayValueCore(keysAsText: boolean, value: any): any;
129
130
  protected clearIncorrectValuesCore(): void;
@@ -1,5 +1,6 @@
1
1
  import { Question, IConditionObject } from "./question";
2
2
  import { JsonObjectProperty } from "./jsonobject";
3
+ import { Base } from "./base";
3
4
  import { ISurveyImpl, ISurveyData, ITextProcessor, IPanel, IElement, IQuestion, IProgressInfo } from "./base-interfaces";
4
5
  import { SurveyElement } from "./survey-element";
5
6
  import { PanelModel } from "./panel";
@@ -69,6 +70,15 @@ export interface ICustomQuestionTypeConfiguration {
69
70
  * ```
70
71
  */
71
72
  defaultQuestionTitle?: any;
73
+ /**
74
+ * An array of property names to inherit from a base question or a Boolean value that specifies whether or not to inherit all properties.
75
+ *
76
+ * Default value: `false`
77
+ *
78
+ * When you create a [custom specialized question type](https://surveyjs.io/form-library/documentation/customize-question-types/create-specialized-question-types), you base it on another question type configured within the [`questionJSON`](#questionJSON) object. If the custom question type should inherit all properties from the base type, set the `inheritBaseProps` property to `true`. If you want to inherit only certain properties, set the `inheritBaseProps` property to an array of their names.
79
+ *
80
+ * [Create Specialized Question Types](https://surveyjs.io/form-library/documentation/customize-question-types/create-specialized-question-types (linkStyle))
81
+ */
72
82
  inheritBaseProps?: false | true | Array<string>;
73
83
  /**
74
84
  * A function that is called when the custom question is created. Use it to access questions nested within a [composite question type](https://surveyjs.io/form-library/documentation/customize-question-types/create-composite-question-types).
@@ -320,6 +330,7 @@ export declare class QuestionCustomModel extends QuestionCustomModelBase {
320
330
  getTemplate(): string;
321
331
  getDynamicProperties(): Array<JsonObjectProperty>;
322
332
  getDynamicType(): string;
333
+ getOriginalObj(): Base;
323
334
  protected createWrapper(): void;
324
335
  protected getElement(): SurveyElement;
325
336
  onAnyValueChanged(name: string, questionName: string): void;
@@ -85,8 +85,22 @@ export declare class QuestionDropdownModel extends QuestionSelectBase {
85
85
  allowClear: boolean;
86
86
  /**
87
87
  * Specifies whether users can enter a value into the input field to filter the drop-down list.
88
+ *
89
+ * [View Demo](https://surveyjs.io/form-library/examples/create-dropdown-menu-in-javascript/ (linkStyle))
90
+ * @see searchMode
91
+ * @see [SurveyModel.onChoicesSearch](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onChoicesSearch)
88
92
  */
89
93
  searchEnabled: boolean;
94
+ /**
95
+ * Specifies a comparison operation used to filter the drop-down list. Applies only if [`searchEnabled`](#searchEnabled) is `true`.
96
+ *
97
+ * Possible values:
98
+ *
99
+ * - `"contains"` (default)
100
+ * - `"startsWith"`
101
+ * @see [SurveyModel.onChoicesSearch](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onChoicesSearch)
102
+ */
103
+ searchMode: "contains" | "startsWith";
90
104
  inputHasValue: boolean;
91
105
  readOnlyText: string;
92
106
  /**