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
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.127
2
+ * surveyjs - Survey JavaScript library v1.9.128
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -5366,6 +5366,7 @@ var surveyCss = {
5366
5366
  var defaultV2Css = {
5367
5367
  root: "sd-root-modern",
5368
5368
  rootMobile: "sd-root-modern--mobile",
5369
+ rootAnimationDisabled: "sd-root-modern--animation-disabled",
5369
5370
  rootReadOnly: "sd-root--readonly",
5370
5371
  rootCompact: "sd-root--compact",
5371
5372
  rootFitToContainer: "sd-root-modern--full-container",
@@ -5483,8 +5484,13 @@ var defaultV2Css = {
5483
5484
  progressBottom: "sd-body__progress--bottom",
5484
5485
  progressBar: "sd-progress__bar",
5485
5486
  progressText: "sd-progress__text",
5487
+ progressButtonsRoot: "sd-progress-buttons",
5488
+ progressButtonsNumbered: "sd-progress-buttons--numbered",
5486
5489
  progressButtonsContainerCenter: "sd-progress-buttons__container-center",
5487
5490
  progressButtonsContainer: "sd-progress-buttons__container",
5491
+ progressButtonsConnector: "sd-progress-buttons__connector",
5492
+ progressButtonsHeader: "sd-progress-buttons__header",
5493
+ progressButtonsFooter: "sd-progress-buttons__footer",
5488
5494
  progressButtonsImageButtonLeft: "sd-progress-buttons__image-button-left",
5489
5495
  progressButtonsImageButtonRight: "sd-progress-buttons__image-button-right",
5490
5496
  progressButtonsImageButtonHidden: "sd-progress-buttons__image-button--hidden",
@@ -5829,6 +5835,7 @@ var defaultV2Css = {
5829
5835
  noHeader: "sd-table--no-header",
5830
5836
  hasFooter: "sd-table--has-footer",
5831
5837
  tableWrapper: "sd-table-wrapper",
5838
+ rootAlternateRows: "sd-table--alternate-rows",
5832
5839
  content: "sd-matrixdynamic__content sd-question__content",
5833
5840
  cell: "sd-table__cell",
5834
5841
  row: "sd-table__row",
@@ -5875,7 +5882,7 @@ var defaultV2Css = {
5875
5882
  rating: {
5876
5883
  rootDropdown: "sd-scrollable-container sd-scrollable-container--compact sd-selectbase",
5877
5884
  root: "sd-scrollable-container sd-rating",
5878
- rootWrappable: "sd-scrollable-container sd-rating sd-rating--wrappable",
5885
+ rootWrappable: "sd-rating--wrappable",
5879
5886
  rootLabelsTop: "sd-rating--labels-top",
5880
5887
  rootLabelsBottom: "sd-rating--labels-bottom",
5881
5888
  rootLabelsDiagonal: "sd-rating--labels-diagonal",
@@ -7807,9 +7814,10 @@ __webpack_require__.r(__webpack_exports__);
7807
7814
  /* harmony import */ var _list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./list */ "./src/list.ts");
7808
7815
  /* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./popup */ "./src/popup.ts");
7809
7816
  /* harmony import */ var _question_dropdown__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./question_dropdown */ "./src/question_dropdown.ts");
7810
- /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
7811
- /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
7812
- /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
7817
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
7818
+ /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
7819
+ /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
7820
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
7813
7821
  var __extends = (undefined && undefined.__extends) || (function () {
7814
7822
  var extendStatics = function (d, b) {
7815
7823
  extendStatics = Object.setPrototypeOf ||
@@ -7840,6 +7848,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
7840
7848
 
7841
7849
 
7842
7850
 
7851
+
7843
7852
  var DropdownListModel = /** @class */ (function (_super) {
7844
7853
  __extends(DropdownListModel, _super);
7845
7854
  function DropdownListModel(question, onSelectionChanged) {
@@ -7849,6 +7858,7 @@ var DropdownListModel = /** @class */ (function (_super) {
7849
7858
  _this.minPageSize = 25;
7850
7859
  _this.loadingItemHeight = 40;
7851
7860
  _this._markdownMode = false;
7861
+ _this.filteredItems = undefined;
7852
7862
  _this.selectedItemSelector = ".sv-list__item--selected";
7853
7863
  _this.itemSelector = ".sv-list__item";
7854
7864
  _this.itemsSettings = { skip: 0, take: 0, totalCount: 0, items: [] };
@@ -7879,7 +7889,7 @@ var DropdownListModel = /** @class */ (function (_super) {
7879
7889
  configurable: true
7880
7890
  });
7881
7891
  DropdownListModel.prototype.getFocusFirstInputSelector = function () {
7882
- if (_utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"]) {
7892
+ if (_utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"]) {
7883
7893
  return this.isValueEmpty(this.question.value) ? this.itemSelector : this.selectedItemSelector;
7884
7894
  }
7885
7895
  else {
@@ -7928,11 +7938,11 @@ var DropdownListModel = /** @class */ (function (_super) {
7928
7938
  DropdownListModel.prototype.createPopup = function () {
7929
7939
  var _this = this;
7930
7940
  this._popupModel = new _popup__WEBPACK_IMPORTED_MODULE_4__["PopupModel"]("sv-list", { model: this.listModel }, "bottom", "center", false);
7931
- this._popupModel.displayMode = _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"] ? "overlay" : "popup";
7941
+ this._popupModel.displayMode = _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"] ? "overlay" : "popup";
7932
7942
  this._popupModel.positionMode = "fixed";
7933
7943
  this._popupModel.isFocusedContainer = false;
7934
- this._popupModel.isFocusedContent = _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"];
7935
- this._popupModel.setWidthByTarget = !_utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"];
7944
+ this._popupModel.isFocusedContent = _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"];
7945
+ this._popupModel.setWidthByTarget = !_utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"];
7936
7946
  this.updatePopupFocusFirstInputSelector();
7937
7947
  this.listModel.registerPropertyChangedHandlers(["showFilter"], function () {
7938
7948
  _this.updatePopupFocusFirstInputSelector();
@@ -8001,6 +8011,14 @@ var DropdownListModel = /** @class */ (function (_super) {
8001
8011
  };
8002
8012
  }
8003
8013
  var res = new _list__WEBPACK_IMPORTED_MODULE_3__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8014
+ res.setOnTextSearchCallback(function (item, textToSearch) {
8015
+ if (_this.filteredItems)
8016
+ return _this.filteredItems.indexOf(item) >= 0;
8017
+ var textInLow = item.text.toLocaleLowerCase();
8018
+ textInLow = _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].comparator.normalizeTextCallback(textInLow, "filter");
8019
+ var index = textInLow.indexOf(textToSearch.toLocaleLowerCase());
8020
+ return _this.question.searchMode == "startsWith" ? index == 0 : index > -1;
8021
+ });
8004
8022
  res.renderElements = false;
8005
8023
  res.forceShowFilter = true;
8006
8024
  res.areSameItemsCallback = function (item1, item2) {
@@ -8020,7 +8038,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8020
8038
  model.isAllDataLoaded = !this.question.choicesLazyLoadEnabled;
8021
8039
  };
8022
8040
  DropdownListModel.prototype.updateCssClasses = function (popupCssClass, listCssClasses) {
8023
- this.popupModel.cssClass = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]().append(popupCssClass).append(this.popupCssClasses).toString();
8041
+ this.popupModel.cssClass = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__["CssClassBuilder"]().append(popupCssClass).append(this.popupCssClasses).toString();
8024
8042
  this.listModel.cssClasses = listCssClasses;
8025
8043
  };
8026
8044
  DropdownListModel.prototype.resetFilterString = function () {
@@ -8035,8 +8053,12 @@ var DropdownListModel = /** @class */ (function (_super) {
8035
8053
  };
8036
8054
  DropdownListModel.prototype.onSetFilterString = function () {
8037
8055
  var _this = this;
8056
+ this.filteredItems = undefined;
8038
8057
  if (!this.filterString && !this.popupModel.isVisible)
8039
8058
  return;
8059
+ var options = { question: this.question, choices: this.getAvailableItems(), filter: this.filterString, filteredChoices: undefined };
8060
+ this.question.survey.onChoicesSearch.fire(this.question.survey, options);
8061
+ this.filteredItems = options.filteredChoices;
8040
8062
  if (!!this.filterString && !this.popupModel.isVisible) {
8041
8063
  this.popupModel.isVisible = true;
8042
8064
  }
@@ -8211,14 +8233,14 @@ var DropdownListModel = /** @class */ (function (_super) {
8211
8233
  });
8212
8234
  Object.defineProperty(DropdownListModel.prototype, "inputMode", {
8213
8235
  get: function () {
8214
- return _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"] ? "none" : "text";
8236
+ return _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"] ? "none" : "text";
8215
8237
  },
8216
8238
  enumerable: false,
8217
8239
  configurable: true
8218
8240
  });
8219
8241
  DropdownListModel.prototype.setSearchEnabled = function (newValue) {
8220
- this.listModel.searchEnabled = _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"];
8221
- this.listModel.showSearchClearButton = _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"];
8242
+ this.listModel.searchEnabled = _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"];
8243
+ this.listModel.showSearchClearButton = _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"];
8222
8244
  this.searchEnabled = newValue;
8223
8245
  };
8224
8246
  DropdownListModel.prototype.updateItems = function () {
@@ -8357,7 +8379,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8357
8379
  if (event.keyCode === 32 && this.question.searchEnabled) {
8358
8380
  return;
8359
8381
  }
8360
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["doKey2ClickUp"])(event, { processEsc: false, disableTabStop: this.question.isInputReadOnly });
8382
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["doKey2ClickUp"])(event, { processEsc: false, disableTabStop: this.question.isInputReadOnly });
8361
8383
  }
8362
8384
  };
8363
8385
  DropdownListModel.prototype.onEscape = function () {
@@ -8372,11 +8394,11 @@ var DropdownListModel = /** @class */ (function (_super) {
8372
8394
  };
8373
8395
  DropdownListModel.prototype.onBlur = function (event) {
8374
8396
  this.focused = false;
8375
- if (this.popupModel.isVisible && _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"]) {
8397
+ if (this.popupModel.isVisible && _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"]) {
8376
8398
  this._popupModel.isVisible = true;
8377
8399
  return;
8378
8400
  }
8379
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["doKey2ClickBlur"])(event);
8401
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["doKey2ClickBlur"])(event);
8380
8402
  this._popupModel.isVisible = false;
8381
8403
  this.resetFilterString();
8382
8404
  this.inputString = null;
@@ -8897,7 +8919,7 @@ var ElementHelper = /** @class */ (function () {
8897
8919
  /*!*************************************!*\
8898
8920
  !*** ./src/entries/chunks/model.ts ***!
8899
8921
  \*************************************/
8900
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8922
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8901
8923
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8902
8924
 
8903
8925
  "use strict";
@@ -9213,8 +9235,10 @@ __webpack_require__.r(__webpack_exports__);
9213
9235
  /* harmony import */ var _surveyProgress__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../../surveyProgress */ "./src/surveyProgress.ts");
9214
9236
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _surveyProgress__WEBPACK_IMPORTED_MODULE_56__["SurveyProgressModel"]; });
9215
9237
 
9216
- /* harmony import */ var _surveyProgressButtons__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../../surveyProgressButtons */ "./src/surveyProgressButtons.ts");
9217
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _surveyProgressButtons__WEBPACK_IMPORTED_MODULE_57__["SurveyProgressButtonsModel"]; });
9238
+ /* harmony import */ var _progress_buttons__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../../progress-buttons */ "./src/progress-buttons.ts");
9239
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return _progress_buttons__WEBPACK_IMPORTED_MODULE_57__["ProgressButtons"]; });
9240
+
9241
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return _progress_buttons__WEBPACK_IMPORTED_MODULE_57__["ProgressButtonsResponsivityManager"]; });
9218
9242
 
9219
9243
  /* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../../themes */ "./src/themes.ts");
9220
9244
  /* empty/unused harmony star reexport *//* harmony import */ var _survey__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../../survey */ "./src/survey.ts");
@@ -9372,8 +9396,8 @@ __webpack_require__.r(__webpack_exports__);
9372
9396
  //import "../../modern.scss";
9373
9397
  var Version;
9374
9398
  var ReleaseDate;
9375
- Version = "" + "1.9.127";
9376
- ReleaseDate = "" + "2024-01-23";
9399
+ Version = "" + "1.9.128";
9400
+ ReleaseDate = "" + "2024-01-30";
9377
9401
  function checkLibraryVersion(ver, libraryName) {
9378
9402
  if (Version != ver) {
9379
9403
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9548,7 +9572,7 @@ function checkPrefix(prefix) {
9548
9572
  /*!**************************************!*\
9549
9573
  !*** ./src/entries/core-wo-model.ts ***!
9550
9574
  \**************************************/
9551
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper */
9575
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper */
9552
9576
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9553
9577
 
9554
9578
  "use strict";
@@ -9814,7 +9838,9 @@ __webpack_require__.r(__webpack_exports__);
9814
9838
 
9815
9839
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressModel"]; });
9816
9840
 
9817
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressButtonsModel"]; });
9841
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["ProgressButtons"]; });
9842
+
9843
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["ProgressButtonsResponsivityManager"]; });
9818
9844
 
9819
9845
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["SurveyModel"]; });
9820
9846
 
@@ -10011,7 +10037,7 @@ __webpack_require__.r(__webpack_exports__);
10011
10037
  /*!*****************************!*\
10012
10038
  !*** ./src/entries/core.ts ***!
10013
10039
  \*****************************/
10014
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, SurveyProgressButtonsModel, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
10040
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
10015
10041
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10016
10042
 
10017
10043
  "use strict";
@@ -10277,7 +10303,9 @@ __webpack_require__.r(__webpack_exports__);
10277
10303
 
10278
10304
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressModel"]; });
10279
10305
 
10280
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressButtonsModel"]; });
10306
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["ProgressButtons"]; });
10307
+
10308
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["ProgressButtonsResponsivityManager"]; });
10281
10309
 
10282
10310
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["SurveyModel"]; });
10283
10311
 
@@ -17885,8 +17913,15 @@ var JsonObjectProperty = /** @class */ (function () {
17885
17913
  var isLayout = !this.layout || this.layout == layout;
17886
17914
  if (!this.visible || !isLayout)
17887
17915
  return false;
17888
- if (!!this.visibleIf && !!obj)
17916
+ if (!!this.visibleIf && !!obj) {
17917
+ if (obj.getOriginalObj) {
17918
+ var orjObj = obj.getOriginalObj();
17919
+ if (orjObj && Serializer.findProperty(orjObj.getType(), this.name)) {
17920
+ obj = orjObj;
17921
+ }
17922
+ }
17889
17923
  return this.visibleIf(obj);
17924
+ }
17890
17925
  return true;
17891
17926
  };
17892
17927
  Object.defineProperty(JsonObjectProperty.prototype, "visible", {
@@ -19583,7 +19618,10 @@ var ListModel = /** @class */ (function (_super) {
19583
19618
  ListModel.prototype.hasText = function (item, filterStringInLow) {
19584
19619
  if (!filterStringInLow)
19585
19620
  return true;
19586
- var textInLow = (item.title || "").toLocaleLowerCase();
19621
+ var text = item.title || "";
19622
+ if (this.onTextSearchCallback)
19623
+ return this.onTextSearchCallback(item, filterStringInLow);
19624
+ var textInLow = text.toLocaleLowerCase();
19587
19625
  textInLow = _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].comparator.normalizeTextCallback(textInLow, "filter");
19588
19626
  return textInLow.indexOf(filterStringInLow.toLocaleLowerCase()) > -1;
19589
19627
  };
@@ -19629,6 +19667,9 @@ var ListModel = /** @class */ (function (_super) {
19629
19667
  ListModel.prototype.setOnFilterStringChangedCallback = function (callback) {
19630
19668
  this.onFilterStringChangedCallback = callback;
19631
19669
  };
19670
+ ListModel.prototype.setOnTextSearchCallback = function (callback) {
19671
+ this.onTextSearchCallback = callback;
19672
+ };
19632
19673
  ListModel.prototype.setItems = function (items, sortByVisibleIndex) {
19633
19674
  var _this = this;
19634
19675
  if (sortByVisibleIndex === void 0) { sortByVisibleIndex = true; }
@@ -20493,6 +20534,8 @@ var englishStrings = {
20493
20534
  startSurveyText: "Start",
20494
20535
  otherItemText: "Other (describe)",
20495
20536
  noneItemText: "None",
20537
+ refuseItemText: "Refuse to answer",
20538
+ dontKnowItemText: "Don't know",
20496
20539
  selectAllItemText: "Select All",
20497
20540
  progressText: "Page {0} of {1}",
20498
20541
  indexText: "{0} of {1}",
@@ -21312,7 +21355,7 @@ var PageModel = /** @class */ (function (_super) {
21312
21355
  };
21313
21356
  Object.defineProperty(PageModel.prototype, "navigationTitle", {
21314
21357
  /**
21315
- * 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"`.
21358
+ * 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`.
21316
21359
  *
21317
21360
  * 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).
21318
21361
  */
@@ -21334,7 +21377,7 @@ var PageModel = /** @class */ (function (_super) {
21334
21377
  });
21335
21378
  Object.defineProperty(PageModel.prototype, "navigationDescription", {
21336
21379
  /**
21337
- * 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"`.
21380
+ * 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`.
21338
21381
  */
21339
21382
  get: function () {
21340
21383
  return this.getLocalizableStringText("navigationDescription");
@@ -25241,6 +25284,231 @@ function createDialogOptions(componentName, data, onApply, onCancel, onHide, onS
25241
25284
  }
25242
25285
 
25243
25286
 
25287
+ /***/ }),
25288
+
25289
+ /***/ "./src/progress-buttons.ts":
25290
+ /*!*********************************!*\
25291
+ !*** ./src/progress-buttons.ts ***!
25292
+ \*********************************/
25293
+ /*! exports provided: ProgressButtons, ProgressButtonsResponsivityManager */
25294
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
25295
+
25296
+ "use strict";
25297
+ __webpack_require__.r(__webpack_exports__);
25298
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return ProgressButtons; });
25299
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return ProgressButtonsResponsivityManager; });
25300
+ /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ "./src/base.ts");
25301
+ /* harmony import */ var _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultCss/defaultV2Css */ "./src/defaultCss/defaultV2Css.ts");
25302
+ /* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./page */ "./src/page.ts");
25303
+ /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
25304
+ var __extends = (undefined && undefined.__extends) || (function () {
25305
+ var extendStatics = function (d, b) {
25306
+ extendStatics = Object.setPrototypeOf ||
25307
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
25308
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
25309
+ return extendStatics(d, b);
25310
+ };
25311
+ return function (d, b) {
25312
+ if (typeof b !== "function" && b !== null)
25313
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
25314
+ extendStatics(d, b);
25315
+ function __() { this.constructor = d; }
25316
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
25317
+ };
25318
+ })();
25319
+
25320
+
25321
+
25322
+
25323
+ var ProgressButtons = /** @class */ (function (_super) {
25324
+ __extends(ProgressButtons, _super);
25325
+ function ProgressButtons(survey) {
25326
+ var _this = _super.call(this) || this;
25327
+ _this.survey = survey;
25328
+ _this.onResize = _this.addEvent();
25329
+ return _this;
25330
+ }
25331
+ ProgressButtons.prototype.isListElementClickable = function (index) {
25332
+ if (!this.survey.onServerValidateQuestions ||
25333
+ this.survey.onServerValidateQuestions.isEmpty ||
25334
+ this.survey.checkErrorsMode === "onComplete") {
25335
+ return true;
25336
+ }
25337
+ return index <= this.survey.currentPageNo + 1;
25338
+ };
25339
+ ProgressButtons.prototype.getRootCss = function (container) {
25340
+ if (container === void 0) { container = "center"; }
25341
+ var result = this.survey.css.progressButtonsContainerCenter;
25342
+ if (this.survey.css.progressButtonsRoot) {
25343
+ result += " " + this.survey.css.progressButtonsRoot + " " + this.survey.css.progressButtonsRoot + "--" + (["footer", "contentBottom"].indexOf(container) !== -1 ? "bottom" : "top");
25344
+ result += " " + this.survey.css.progressButtonsRoot + "--" + (this.showItemTitles ? "with-titles" : "no-titles");
25345
+ }
25346
+ if (this.showItemNumbers && this.survey.css.progressButtonsNumbered) {
25347
+ result += " " + this.survey.css.progressButtonsNumbered;
25348
+ }
25349
+ return result;
25350
+ };
25351
+ ProgressButtons.prototype.getListElementCss = function (index) {
25352
+ if (index >= this.survey.visiblePages.length)
25353
+ return;
25354
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
25355
+ .append(this.survey.css.progressButtonsListElementPassed, this.survey.visiblePages[index].passed)
25356
+ .append(this.survey.css.progressButtonsListElementCurrent, this.survey.currentPageNo === index)
25357
+ .append(this.survey.css.progressButtonsListElementNonClickable, !this.isListElementClickable(index))
25358
+ .toString();
25359
+ };
25360
+ ProgressButtons.prototype.getScrollButtonCss = function (hasScroller, isLeftScroll) {
25361
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
25362
+ .append(this.survey.css.progressButtonsImageButtonLeft, isLeftScroll)
25363
+ .append(this.survey.css.progressButtonsImageButtonRight, !isLeftScroll)
25364
+ .append(this.survey.css.progressButtonsImageButtonHidden, !hasScroller)
25365
+ .toString();
25366
+ };
25367
+ ProgressButtons.prototype.clickListElement = function (element) {
25368
+ if (!(element instanceof _page__WEBPACK_IMPORTED_MODULE_2__["PageModel"])) {
25369
+ element = this.survey.visiblePages[element];
25370
+ }
25371
+ this.survey.tryNavigateToPage(element);
25372
+ };
25373
+ ProgressButtons.prototype.isListContainerHasScroller = function (element) {
25374
+ var listContainerElement = element.querySelector("." + this.survey.css.progressButtonsListContainer);
25375
+ if (!!listContainerElement) {
25376
+ return listContainerElement.scrollWidth > listContainerElement.offsetWidth;
25377
+ }
25378
+ return false;
25379
+ };
25380
+ ProgressButtons.prototype.isCanShowItemTitles = function (element) {
25381
+ var listContainerElement = element.querySelector("ul");
25382
+ if (!listContainerElement || listContainerElement.children.length < 2)
25383
+ return true;
25384
+ if (listContainerElement.clientWidth > listContainerElement.parentElement.clientWidth) {
25385
+ return false;
25386
+ }
25387
+ var expectedElementWidth = listContainerElement.children[0].clientWidth;
25388
+ for (var i = 0; i < listContainerElement.children.length; i++) {
25389
+ if (Math.abs(listContainerElement.children[i].clientWidth - expectedElementWidth) > 5) {
25390
+ return false;
25391
+ }
25392
+ }
25393
+ return true;
25394
+ };
25395
+ ProgressButtons.prototype.clearConnectorsWidth = function (element) {
25396
+ var listContainerElements = element.querySelectorAll(".sd-progress-buttons__connector");
25397
+ for (var i = 0; i < listContainerElements.length; i++) {
25398
+ listContainerElements[i].style.width = "";
25399
+ }
25400
+ };
25401
+ ProgressButtons.prototype.adjustConnectors = function (element) {
25402
+ var listContainerElement = element.querySelector("ul");
25403
+ if (!listContainerElement)
25404
+ return;
25405
+ var listContainerElements = element.querySelectorAll(".sd-progress-buttons__connector");
25406
+ var connectorWidth = listContainerElement.clientWidth / (listContainerElement.children.length - 1) - 4;
25407
+ for (var i = 0; i < listContainerElements.length; i++) {
25408
+ listContainerElements[i].style.width = connectorWidth + "px";
25409
+ }
25410
+ };
25411
+ Object.defineProperty(ProgressButtons.prototype, "showItemNumbers", {
25412
+ get: function () {
25413
+ if (_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__["surveyCss"].currentType !== "defaultV2") {
25414
+ return false;
25415
+ }
25416
+ return this.survey.progressBarShowPageNumbers;
25417
+ },
25418
+ enumerable: false,
25419
+ configurable: true
25420
+ });
25421
+ Object.defineProperty(ProgressButtons.prototype, "showItemTitles", {
25422
+ get: function () {
25423
+ if (_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__["surveyCss"].currentType !== "defaultV2") {
25424
+ return true;
25425
+ }
25426
+ return this.survey.progressBarShowPageTitles;
25427
+ },
25428
+ enumerable: false,
25429
+ configurable: true
25430
+ });
25431
+ ProgressButtons.prototype.getItemNumber = function (page) {
25432
+ var result = "";
25433
+ if (this.showItemNumbers) {
25434
+ result += this.survey.visiblePages.indexOf(page) + 1;
25435
+ }
25436
+ return result;
25437
+ };
25438
+ Object.defineProperty(ProgressButtons.prototype, "headerText", {
25439
+ get: function () {
25440
+ return this.survey.currentPage ? this.survey.currentPage.renderedNavigationTitle : "";
25441
+ },
25442
+ enumerable: false,
25443
+ configurable: true
25444
+ });
25445
+ Object.defineProperty(ProgressButtons.prototype, "footerText", {
25446
+ get: function () {
25447
+ return this.survey.progressText;
25448
+ },
25449
+ enumerable: false,
25450
+ configurable: true
25451
+ });
25452
+ ProgressButtons.prototype.processResponsiveness = function (width) {
25453
+ this.onResize.fire(this, { width: width });
25454
+ };
25455
+ return ProgressButtons;
25456
+ }(_base__WEBPACK_IMPORTED_MODULE_0__["Base"]));
25457
+
25458
+ var ProgressButtonsResponsivityManager = /** @class */ (function () {
25459
+ function ProgressButtonsResponsivityManager(model, element, viewModel) {
25460
+ var _this = this;
25461
+ this.model = model;
25462
+ this.element = element;
25463
+ this.viewModel = viewModel;
25464
+ this.criticalProperties = ["progressBarType", "progressBarShowPageTitles"];
25465
+ this.canShowItemTitles = true;
25466
+ this.processResponsiveness = function (model, options) {
25467
+ _this.viewModel.onUpdateScroller(model.isListContainerHasScroller(_this.element));
25468
+ if (!model.showItemTitles) {
25469
+ _this.model.adjustConnectors(_this.element);
25470
+ return;
25471
+ }
25472
+ if (model.survey.isMobile) {
25473
+ _this.prevWidth = options.width;
25474
+ _this.canShowItemTitles = false;
25475
+ _this.model.adjustConnectors(_this.element);
25476
+ _this.viewModel.onResize(_this.canShowItemTitles);
25477
+ return;
25478
+ }
25479
+ _this.model.clearConnectorsWidth(_this.element);
25480
+ if (_this.timer !== undefined) {
25481
+ clearTimeout(_this.timer);
25482
+ }
25483
+ _this.timer = setTimeout(function () {
25484
+ if (_this.prevWidth === undefined || _this.prevWidth < options.width && !_this.canShowItemTitles || _this.prevWidth > options.width && _this.canShowItemTitles) {
25485
+ _this.prevWidth = options.width;
25486
+ _this.canShowItemTitles = model.isCanShowItemTitles(_this.element);
25487
+ _this.viewModel.onResize(_this.canShowItemTitles);
25488
+ _this.timer = undefined;
25489
+ }
25490
+ }, 10);
25491
+ };
25492
+ this.model.survey.registerFunctionOnPropertiesValueChanged(this.criticalProperties, function () { return _this.forceUpdate(); }, "ProgressButtonsResponsivityManager" + this.viewModel.container);
25493
+ this.model.onResize.add(this.processResponsiveness);
25494
+ this.forceUpdate();
25495
+ }
25496
+ ProgressButtonsResponsivityManager.prototype.forceUpdate = function () {
25497
+ this.viewModel.onUpdateSettings();
25498
+ this.processResponsiveness(this.model, {});
25499
+ };
25500
+ ProgressButtonsResponsivityManager.prototype.dispose = function () {
25501
+ clearTimeout(this.timer);
25502
+ this.model.onResize.remove(this.processResponsiveness);
25503
+ this.model.survey.unRegisterFunctionOnPropertiesValueChanged(this.criticalProperties, "ProgressButtonsResponsivityManager" + this.viewModel.container);
25504
+ this.element = undefined;
25505
+ this.model = undefined;
25506
+ };
25507
+ return ProgressButtonsResponsivityManager;
25508
+ }());
25509
+
25510
+
25511
+
25244
25512
  /***/ }),
25245
25513
 
25246
25514
  /***/ "./src/question.ts":
@@ -28805,7 +29073,6 @@ var QuestionSelectBase = /** @class */ (function (_super) {
28805
29073
  function QuestionSelectBase(name) {
28806
29074
  var _this = _super.call(this, name) || this;
28807
29075
  _this.otherItemValue = new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"]("other");
28808
- _this.noneItemValue = new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"](_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].noneItemValue);
28809
29076
  _this.isSettingDefaultValue = false;
28810
29077
  _this.isSettingComment = false;
28811
29078
  _this.isRunningChoices = false;
@@ -28814,9 +29081,9 @@ var QuestionSelectBase = /** @class */ (function (_super) {
28814
29081
  _this.headItemsCount = 0;
28815
29082
  _this.footItemsCount = 0;
28816
29083
  _this.prevIsOtherSelected = false;
28817
- var noneItemText = _this.createLocalizableString("noneText", _this.noneItemValue, true, "noneItemText");
28818
- _this.noneItemValue.locOwner = _this;
28819
- _this.noneItemValue.setLocText(noneItemText);
29084
+ _this.noneItemValue = _this.createDefaultItem(_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].noneItemValue, "noneText", "noneItemText");
29085
+ _this.refuseItemValue = _this.createDefaultItem(_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].refuseItemValue, "refuseText", "refuseItemText");
29086
+ _this.dontKnowItemValue = _this.createDefaultItem(_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].dontKnowItemValue, "dontKnowText", "dontKnowItemText");
28820
29087
  _this.createItemValues("choices");
28821
29088
  _this.registerPropertyChangedHandlers(["choices"], function () {
28822
29089
  if (!_this.filterItems()) {
@@ -28824,7 +29091,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
28824
29091
  }
28825
29092
  });
28826
29093
  _this.registerPropertyChangedHandlers(["choicesFromQuestion", "choicesFromQuestionMode", "choiceValuesFromQuestion",
28827
- "choiceTextsFromQuestion", "showNoneItem", "isUsingRestful"], function () {
29094
+ "choiceTextsFromQuestion", "showNoneItem", "showRefuseItem", "showDontKnowItem", "isUsingRestful", "isMessagePanelVisible"], function () {
28828
29095
  _this.onVisibleChoicesChanged();
28829
29096
  });
28830
29097
  _this.registerPropertyChangedHandlers(["hideIfChoicesEmpty"], function () {
@@ -28992,7 +29259,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
28992
29259
  });
28993
29260
  Object.defineProperty(QuestionSelectBase.prototype, "isNoneSelected", {
28994
29261
  get: function () {
28995
- return this.hasNone && this.getIsItemValue(this.renderedValue, this.noneItem);
29262
+ return this.showNoneItem && this.getIsItemValue(this.renderedValue, this.noneItem);
28996
29263
  },
28997
29264
  enumerable: false,
28998
29265
  configurable: true
@@ -29004,6 +29271,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29004
29271
  * When users select the "None" item in multi-select questions, all other items become unselected.
29005
29272
  * @see noneItem
29006
29273
  * @see noneText
29274
+ * @see [settings.noneItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#noneItemValue)
29007
29275
  * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
29008
29276
  */
29009
29277
  get: function () {
@@ -29057,6 +29325,115 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29057
29325
  enumerable: false,
29058
29326
  configurable: true
29059
29327
  });
29328
+ Object.defineProperty(QuestionSelectBase.prototype, "showRefuseItem", {
29329
+ /**
29330
+ * Specifies whether to display the "Refuse to answer" choice item.
29331
+ *
29332
+ * When users select the "Refuse to answer" item in multi-select questions, all other items become unselected.
29333
+ * @see refuseItem
29334
+ * @see refuseItemText
29335
+ * @see [settings.refuseItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#refuseItemValue)
29336
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
29337
+ */
29338
+ get: function () {
29339
+ return this.getPropertyValue("showRefuseItem");
29340
+ },
29341
+ set: function (val) {
29342
+ this.setPropertyValue("showRefuseItem", val);
29343
+ },
29344
+ enumerable: false,
29345
+ configurable: true
29346
+ });
29347
+ Object.defineProperty(QuestionSelectBase.prototype, "refuseItem", {
29348
+ /**
29349
+ * Returns the "Refuse to answer" choice item. Use this property to change the item's `value` or `text`.
29350
+ * @see showRefuseItem
29351
+ */
29352
+ get: function () {
29353
+ return this.refuseItemValue;
29354
+ },
29355
+ enumerable: false,
29356
+ configurable: true
29357
+ });
29358
+ Object.defineProperty(QuestionSelectBase.prototype, "refuseText", {
29359
+ /**
29360
+ * Gets or sets a caption for the "Refuse to answer" choice item.
29361
+ * @see showRefuseItem
29362
+ */
29363
+ get: function () {
29364
+ return this.getLocalizableStringText("refuseText");
29365
+ },
29366
+ set: function (val) {
29367
+ this.setLocalizableStringText("refuseText", val);
29368
+ },
29369
+ enumerable: false,
29370
+ configurable: true
29371
+ });
29372
+ Object.defineProperty(QuestionSelectBase.prototype, "locRefuseText", {
29373
+ get: function () {
29374
+ return this.getLocalizableString("refuseText");
29375
+ },
29376
+ enumerable: false,
29377
+ configurable: true
29378
+ });
29379
+ Object.defineProperty(QuestionSelectBase.prototype, "showDontKnowItem", {
29380
+ /**
29381
+ * Specifies whether to display the "Don't know" choice item.
29382
+ *
29383
+ * When users select the "Don't know" item in multi-select questions, all other items become unselected.
29384
+ * @see dontKnowItem
29385
+ * @see dontKnowItemText
29386
+ * @see [settings.dontKnowItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#dontKnowItemValue)
29387
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
29388
+ */
29389
+ get: function () {
29390
+ return this.getPropertyValue("showDontKnowItem");
29391
+ },
29392
+ set: function (val) {
29393
+ this.setPropertyValue("showDontKnowItem", val);
29394
+ },
29395
+ enumerable: false,
29396
+ configurable: true
29397
+ });
29398
+ Object.defineProperty(QuestionSelectBase.prototype, "dontKnowItem", {
29399
+ /**
29400
+ * Returns the "Don't know" choice item. Use this property to change the item's `value` or `text`.
29401
+ * @see showDontKnowItem
29402
+ */
29403
+ get: function () {
29404
+ return this.dontKnowItemValue;
29405
+ },
29406
+ enumerable: false,
29407
+ configurable: true
29408
+ });
29409
+ Object.defineProperty(QuestionSelectBase.prototype, "dontKnowText", {
29410
+ /**
29411
+ * Gets or sets a caption for the "Don't know" choice item.
29412
+ * @see showDontKnowItem
29413
+ */
29414
+ get: function () {
29415
+ return this.getLocalizableStringText("dontKnowText");
29416
+ },
29417
+ set: function (val) {
29418
+ this.setLocalizableStringText("dontKnowText", val);
29419
+ },
29420
+ enumerable: false,
29421
+ configurable: true
29422
+ });
29423
+ Object.defineProperty(QuestionSelectBase.prototype, "locDontKnowText", {
29424
+ get: function () {
29425
+ return this.getLocalizableString("dontKnowText");
29426
+ },
29427
+ enumerable: false,
29428
+ configurable: true
29429
+ });
29430
+ QuestionSelectBase.prototype.createDefaultItem = function (defaultValue, name, locName) {
29431
+ var item = new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"](defaultValue);
29432
+ var locStr = this.createLocalizableString(name, item, true, locName);
29433
+ item.locOwner = this;
29434
+ item.setLocText(locStr);
29435
+ return item;
29436
+ };
29060
29437
  Object.defineProperty(QuestionSelectBase.prototype, "choicesVisibleIf", {
29061
29438
  /**
29062
29439
  * A Boolean expression that is evaluated against each choice item. If the expression evaluates to `false`, the choice item becomes hidden.
@@ -29478,7 +29855,11 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29478
29855
  return false;
29479
29856
  if (includeOther && val == this.otherItem.value)
29480
29857
  return false;
29481
- if (this.hasNone && val == this.noneItem.value)
29858
+ if (this.showNoneItem && val == this.noneItem.value)
29859
+ return false;
29860
+ if (this.showRefuseItem && val == this.refuseItem.value)
29861
+ return false;
29862
+ if (this.showDontKnowItem && val == this.dontKnowItem.value)
29482
29863
  return false;
29483
29864
  var choices = isFilteredChoices
29484
29865
  ? this.getFilteredChoices()
@@ -29800,7 +30181,9 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29800
30181
  };
29801
30182
  QuestionSelectBase.prototype.canUseFilteredChoices = function () {
29802
30183
  return (!this.isAddDefaultItems &&
29803
- !this.hasNone &&
30184
+ !this.showNoneItem &&
30185
+ !this.showRefuseItem &&
30186
+ !this.showDontKnowItem &&
29804
30187
  !this.hasOther &&
29805
30188
  this.choicesOrder == "none");
29806
30189
  };
@@ -29818,7 +30201,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29818
30201
  QuestionSelectBase.prototype.addToVisibleChoices = function (items, isAddAll) {
29819
30202
  this.headItemsCount = 0;
29820
30203
  this.footItemsCount = 0;
29821
- if (!this.hasChoicesUrl) {
30204
+ if (!this.isEmptyActiveChoicesInDesign) {
29822
30205
  this.addNewItemToVisibleChoices(items, isAddAll);
29823
30206
  }
29824
30207
  var dict = new Array();
@@ -29853,15 +30236,23 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29853
30236
  }
29854
30237
  };
29855
30238
  QuestionSelectBase.prototype.addNonChoicesItems = function (dict, isAddAll) {
29856
- if (this.supportNone() && this.canShowOptionItem(this.noneItem, isAddAll, this.hasNone)) {
29857
- this.addNonChoiceItem(dict, this.noneItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.noneItem);
30239
+ if (this.supportNone()) {
30240
+ this.addNonChoiceItem(dict, this.noneItem, isAddAll, this.showNoneItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.noneItem);
30241
+ }
30242
+ if (this.supportRefuse()) {
30243
+ this.addNonChoiceItem(dict, this.refuseItem, isAddAll, this.showRefuseItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.refuseItem);
30244
+ }
30245
+ if (this.supportDontKnow()) {
30246
+ this.addNonChoiceItem(dict, this.dontKnowItem, isAddAll, this.showDontKnowItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.dontKnowItem);
29858
30247
  }
29859
- if (this.supportOther() && this.canShowOptionItem(this.otherItem, isAddAll, this.hasOther)) {
29860
- this.addNonChoiceItem(dict, this.otherItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.otherItem);
30248
+ if (this.supportOther()) {
30249
+ this.addNonChoiceItem(dict, this.otherItem, isAddAll, this.hasOther, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.otherItem);
29861
30250
  }
29862
30251
  };
29863
- QuestionSelectBase.prototype.addNonChoiceItem = function (dict, item, order) {
29864
- order.forEach(function (val) { return dict.push({ index: val, item: item }); });
30252
+ QuestionSelectBase.prototype.addNonChoiceItem = function (dict, item, isAddAll, showItem, order) {
30253
+ if (this.canShowOptionItem(item, isAddAll, showItem)) {
30254
+ order.forEach(function (val) { return dict.push({ index: val, item: item }); });
30255
+ }
29865
30256
  };
29866
30257
  QuestionSelectBase.prototype.canShowOptionItem = function (item, isAddAll, hasItem) {
29867
30258
  var res = (isAddAll && (!!this.canShowOptionItemCallback ? this.canShowOptionItemCallback(item) : true)) || hasItem;
@@ -29875,7 +30266,11 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29875
30266
  if (item === this.otherItem)
29876
30267
  return this.hasOther;
29877
30268
  if (item === this.noneItem)
29878
- return this.hasNone;
30269
+ return this.showNoneItem;
30270
+ if (item === this.refuseItem)
30271
+ return this.showRefuseItem;
30272
+ if (item === this.dontKnowItem)
30273
+ return this.showDontKnowItem;
29879
30274
  if (item === this.newItemValue)
29880
30275
  return false;
29881
30276
  return true;
@@ -29982,13 +30377,30 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29982
30377
  question.addDependedQuestion(this);
29983
30378
  return this.getChoicesFromArrayQuestion(question);
29984
30379
  }
29985
- if (this.isDesignModeV2 && this.hasChoicesUrl)
30380
+ if (this.isEmptyActiveChoicesInDesign)
29986
30381
  return [];
29987
30382
  return this.choicesFromUrl ? this.choicesFromUrl : this.getChoices();
29988
30383
  },
29989
30384
  enumerable: false,
29990
30385
  configurable: true
29991
30386
  });
30387
+ Object.defineProperty(QuestionSelectBase.prototype, "isMessagePanelVisible", {
30388
+ get: function () {
30389
+ return this.getPropertyValue("isMessagePanelVisible", false);
30390
+ },
30391
+ set: function (val) {
30392
+ this.setPropertyValue("isMessagePanelVisible", val);
30393
+ },
30394
+ enumerable: false,
30395
+ configurable: true
30396
+ });
30397
+ Object.defineProperty(QuestionSelectBase.prototype, "isEmptyActiveChoicesInDesign", {
30398
+ get: function () {
30399
+ return this.isDesignModeV2 && (this.hasChoicesUrl || this.isMessagePanelVisible);
30400
+ },
30401
+ enumerable: false,
30402
+ configurable: true
30403
+ });
29992
30404
  QuestionSelectBase.prototype.getCarryForwardQuestion = function (data) {
29993
30405
  var question = this.findCarryForwardQuestion(data);
29994
30406
  var selBaseQuestion = this.getQuestionWithChoicesCore(question);
@@ -30059,7 +30471,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30059
30471
  : undefined;
30060
30472
  var choices = question.visibleChoices;
30061
30473
  for (var i = 0; i < choices.length; i++) {
30062
- if (this.isBuiltInChoice(choices[i], question))
30474
+ if (question.isBuiltInChoice(choices[i]))
30063
30475
  continue;
30064
30476
  if (isSelected === undefined) {
30065
30477
  res.push(this.copyChoiceItem(choices[i]));
@@ -30088,7 +30500,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30088
30500
  choices = this.visibleChoices;
30089
30501
  }
30090
30502
  for (var i = 0; i < choices.length; i++) {
30091
- if (!this.isBuiltInChoice(choices[i], this))
30503
+ if (!this.isBuiltInChoice(choices[i]))
30092
30504
  return true;
30093
30505
  }
30094
30506
  return false;
@@ -30096,10 +30508,16 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30096
30508
  enumerable: false,
30097
30509
  configurable: true
30098
30510
  });
30099
- QuestionSelectBase.prototype.isBuiltInChoice = function (item, question) {
30100
- return (item === question.noneItem ||
30101
- item === question.otherItem ||
30102
- item === question.newItemValue);
30511
+ QuestionSelectBase.prototype.isBuiltInChoice = function (item) {
30512
+ return this.isNoneItem(item) ||
30513
+ item === this.otherItem ||
30514
+ item === this.newItemValue;
30515
+ };
30516
+ QuestionSelectBase.prototype.isNoneItem = function (item) {
30517
+ return this.getNoneItems().indexOf(item) > -1;
30518
+ };
30519
+ QuestionSelectBase.prototype.getNoneItems = function () {
30520
+ return [this.noneItem, this.refuseItem, this.dontKnowItem];
30103
30521
  };
30104
30522
  QuestionSelectBase.prototype.getChoices = function () {
30105
30523
  return this.choices;
@@ -30110,6 +30528,12 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30110
30528
  QuestionSelectBase.prototype.supportNone = function () {
30111
30529
  return this.isSupportProperty("showNoneItem");
30112
30530
  };
30531
+ QuestionSelectBase.prototype.supportRefuse = function () {
30532
+ return this.isSupportProperty("showRefuseItem");
30533
+ };
30534
+ QuestionSelectBase.prototype.supportDontKnow = function () {
30535
+ return this.isSupportProperty("showDontKnowItem");
30536
+ };
30113
30537
  QuestionSelectBase.prototype.isSupportProperty = function (propName) {
30114
30538
  return (!this.isDesignMode ||
30115
30539
  this.getPropertyByName(propName).visible);
@@ -30404,15 +30828,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30404
30828
  configurable: true
30405
30829
  });
30406
30830
  QuestionSelectBase.prototype.clearIncorrectValues = function () {
30407
- if (!this.hasValueToClearIncorrectValues())
30408
- return;
30409
- if (this.carryForwardQuestion && !this.carryForwardQuestion.isReady)
30410
- return;
30411
- if (!!this.survey &&
30412
- this.survey.questionsByValueName(this.getValueName()).length > 1)
30413
- return;
30414
- if (this.hasChoicesUrl &&
30415
- (!this.choicesFromUrl || this.choicesFromUrl.length == 0))
30831
+ if (!this.hasValueToClearIncorrectValues() || !this.canClearIncorrectValues())
30416
30832
  return;
30417
30833
  if (this.clearIncorrectValuesCallback) {
30418
30834
  this.clearIncorrectValuesCallback();
@@ -30421,6 +30837,15 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30421
30837
  this.clearIncorrectValuesCore();
30422
30838
  }
30423
30839
  };
30840
+ QuestionSelectBase.prototype.canClearIncorrectValues = function () {
30841
+ if (this.carryForwardQuestion && !this.carryForwardQuestion.isReady)
30842
+ return false;
30843
+ if (!!this.survey && this.survey.questionsByValueName(this.getValueName()).length > 1)
30844
+ return false;
30845
+ if (this.hasChoicesUrl && (!this.choicesFromUrl || this.choicesFromUrl.length == 0))
30846
+ return false;
30847
+ return true;
30848
+ };
30424
30849
  QuestionSelectBase.prototype.hasValueToClearIncorrectValues = function () {
30425
30850
  if (!!this.survey && this.survey.keepIncorrectValues)
30426
30851
  return false;
@@ -30556,7 +30981,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30556
30981
  Object.defineProperty(QuestionSelectBase.prototype, "dataChoices", {
30557
30982
  get: function () {
30558
30983
  var _this = this;
30559
- return this.visibleChoices.filter(function (item) { return !_this.isBuiltInChoice(item, _this); });
30984
+ return this.visibleChoices.filter(function (item) { return !_this.isBuiltInChoice(item); });
30560
30985
  },
30561
30986
  enumerable: false,
30562
30987
  configurable: true
@@ -30898,6 +31323,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
30898
31323
  { name: "separateSpecialChoices:boolean", visible: false },
30899
31324
  { name: "showOtherItem:boolean", alternativeName: "hasOther" },
30900
31325
  { name: "showNoneItem:boolean", alternativeName: "hasNone" },
31326
+ { name: "showRefuseItem:boolean", visible: false },
31327
+ { name: "showDontKnowItem:boolean", visible: false },
30901
31328
  {
30902
31329
  name: "otherPlaceholder",
30903
31330
  alternativeName: "otherPlaceHolder",
@@ -30912,7 +31339,23 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
30912
31339
  serializationProperty: "locNoneText",
30913
31340
  dependsOn: "showNoneItem",
30914
31341
  visibleIf: function (obj) {
30915
- return obj.hasNone;
31342
+ return obj.showNoneItem;
31343
+ },
31344
+ },
31345
+ {
31346
+ name: "refuseText",
31347
+ serializationProperty: "locRefuseText",
31348
+ dependsOn: "showRefuseItem",
31349
+ visibleIf: function (obj) {
31350
+ return obj.showRefuseItem;
31351
+ },
31352
+ },
31353
+ {
31354
+ name: "dontKnowText",
31355
+ serializationProperty: "locDontKnowText",
31356
+ dependsOn: "showDontKnowItem",
31357
+ visibleIf: function (obj) {
31358
+ return obj.showDontKnowItem;
30916
31359
  },
30917
31360
  },
30918
31361
  {
@@ -31765,8 +32208,11 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
31765
32208
  * @see showSelectAllItem
31766
32209
  */
31767
32210
  get: function () {
31768
- if (this.isItemSelected(this.noneItem))
31769
- return false;
32211
+ var noneItems = this.getNoneItems();
32212
+ for (var i = 0; i < noneItems.length; i++) {
32213
+ if (this.isItemSelected(noneItems[i]))
32214
+ return false;
32215
+ }
31770
32216
  var items = this.getVisibleEnableItems();
31771
32217
  if (items.length === 0)
31772
32218
  return false;
@@ -31823,19 +32269,24 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
31823
32269
  }
31824
32270
  }
31825
32271
  else {
31826
- var newValue = [].concat(this.renderedValue || []);
31827
- var index = newValue.indexOf(item.value);
31828
- if (checked) {
31829
- if (index < 0) {
31830
- newValue.push(item.value);
31831
- }
32272
+ if (this.isNoneItem(item)) {
32273
+ this.renderedValue = [item.value];
31832
32274
  }
31833
32275
  else {
31834
- if (index > -1) {
31835
- newValue.splice(index, 1);
32276
+ var newValue = [].concat(this.renderedValue || []);
32277
+ var index = newValue.indexOf(item.value);
32278
+ if (checked) {
32279
+ if (index < 0) {
32280
+ newValue.push(item.value);
32281
+ }
32282
+ }
32283
+ else {
32284
+ if (index > -1) {
32285
+ newValue.splice(index, 1);
32286
+ }
31836
32287
  }
32288
+ this.renderedValue = newValue;
31837
32289
  }
31838
- this.renderedValue = newValue;
31839
32290
  }
31840
32291
  };
31841
32292
  QuestionCheckboxModel.prototype.isItemSelectedCore = function (item) {
@@ -32064,21 +32515,7 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
32064
32515
  value = [];
32065
32516
  if (this.isTwoValueEquals(value, newValue))
32066
32517
  return;
32067
- if (this.hasNone) {
32068
- var prevNoneIndex = this.noneIndexInArray(value);
32069
- var newNoneIndex = this.noneIndexInArray(newValue);
32070
- if (prevNoneIndex > -1) {
32071
- if (newNoneIndex > -1 && newValue.length > 1) {
32072
- newValue.splice(newNoneIndex, 1);
32073
- }
32074
- }
32075
- else {
32076
- if (newNoneIndex > -1) {
32077
- newValue.splice(0, newValue.length);
32078
- newValue.push(this.noneItem.value);
32079
- }
32080
- }
32081
- }
32518
+ this.removeNoneItemsValues(value, newValue);
32082
32519
  _super.prototype.setNewValue.call(this, newValue);
32083
32520
  };
32084
32521
  QuestionCheckboxModel.prototype.getIsMultipleValue = function () {
@@ -32106,15 +32543,47 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
32106
32543
  }
32107
32544
  return -1;
32108
32545
  };
32109
- QuestionCheckboxModel.prototype.noneIndexInArray = function (val) {
32110
- if (!val || !Array.isArray(val))
32111
- return -1;
32112
- var noneValue = this.noneItem.value;
32113
- for (var i = 0; i < val.length; i++) {
32114
- if (val[i] == noneValue)
32115
- return i;
32546
+ QuestionCheckboxModel.prototype.removeNoneItemsValues = function (value, newValue) {
32547
+ var noneValues = [];
32548
+ if (this.showNoneItem)
32549
+ noneValues.push(this.noneItem.value);
32550
+ if (this.showRefuseItem)
32551
+ noneValues.push(this.refuseItem.value);
32552
+ if (this.showDontKnowItem)
32553
+ noneValues.push(this.dontKnowItem.value);
32554
+ if (noneValues.length > 0) {
32555
+ var prevNone = this.noneIndexInArray(value, noneValues);
32556
+ var newNone = this.noneIndexInArray(newValue, noneValues);
32557
+ if (prevNone.index > -1) {
32558
+ if (prevNone.val === newNone.val) {
32559
+ if (newValue.length > 0) {
32560
+ newValue.splice(newNone.index, 1);
32561
+ }
32562
+ }
32563
+ else {
32564
+ var prevNewNone = this.noneIndexInArray(newValue, [prevNone.val]);
32565
+ if (prevNewNone.index > -1 && prevNewNone.index < newValue.length - 1) {
32566
+ newValue.splice(prevNewNone.index, 1);
32567
+ }
32568
+ }
32569
+ }
32570
+ else {
32571
+ if (newNone.index > -1 && newValue.length > 1) {
32572
+ var itemVal = this.convertValueToObject([newNone.val])[0];
32573
+ newValue.splice(0, newValue.length, itemVal);
32574
+ }
32575
+ }
32116
32576
  }
32117
- return -1;
32577
+ };
32578
+ QuestionCheckboxModel.prototype.noneIndexInArray = function (val, noneValues) {
32579
+ if (!Array.isArray(val))
32580
+ return { index: -1, val: undefined };
32581
+ for (var i = val.length - 1; i >= 0; i--) {
32582
+ var index = noneValues.indexOf(this.getRealValue(val[i]));
32583
+ if (index > -1)
32584
+ return { index: i, val: noneValues[index] };
32585
+ }
32586
+ return { index: -1, val: undefined };
32118
32587
  };
32119
32588
  QuestionCheckboxModel.prototype.canUseFilteredChoices = function () {
32120
32589
  return !this.hasSelectAll && _super.prototype.canUseFilteredChoices.call(this);
@@ -32124,12 +32593,12 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
32124
32593
  };
32125
32594
  QuestionCheckboxModel.prototype.addNonChoicesItems = function (dict, isAddAll) {
32126
32595
  _super.prototype.addNonChoicesItems.call(this, dict, isAddAll);
32127
- if (this.supportSelectAll() && this.canShowOptionItem(this.selectAllItem, isAddAll, this.hasSelectAll)) {
32128
- this.addNonChoiceItem(dict, this.selectAllItem, _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].specialChoicesOrder.selectAllItem);
32596
+ if (this.supportSelectAll()) {
32597
+ this.addNonChoiceItem(dict, this.selectAllItem, isAddAll, this.hasSelectAll, _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].specialChoicesOrder.selectAllItem);
32129
32598
  }
32130
32599
  };
32131
- QuestionCheckboxModel.prototype.isBuiltInChoice = function (item, question) {
32132
- return item === question.selectAllItem || _super.prototype.isBuiltInChoice.call(this, item, question);
32600
+ QuestionCheckboxModel.prototype.isBuiltInChoice = function (item) {
32601
+ return item === this.selectAllItem || _super.prototype.isBuiltInChoice.call(this, item);
32133
32602
  };
32134
32603
  QuestionCheckboxModel.prototype.isItemInList = function (item) {
32135
32604
  if (item == this.selectAllItem)
@@ -33122,6 +33591,9 @@ var QuestionCustomModel = /** @class */ (function (_super) {
33122
33591
  QuestionCustomModel.prototype.getDynamicType = function () {
33123
33592
  return this.questionWrapper ? this.questionWrapper.getType() : "question";
33124
33593
  };
33594
+ QuestionCustomModel.prototype.getOriginalObj = function () {
33595
+ return this.questionWrapper;
33596
+ };
33125
33597
  QuestionCustomModel.prototype.createWrapper = function () {
33126
33598
  this.questionWrapper = this.createQuestion();
33127
33599
  this.createDynamicProperties(this.questionWrapper);
@@ -34052,6 +34524,9 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
34052
34524
  }
34053
34525
  })
34054
34526
  ], QuestionDropdownModel.prototype, "searchEnabled", void 0);
34527
+ __decorate([
34528
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
34529
+ ], QuestionDropdownModel.prototype, "searchMode", void 0);
34055
34530
  __decorate([
34056
34531
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
34057
34532
  ], QuestionDropdownModel.prototype, "inputHasValue", void 0);
@@ -34079,6 +34554,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("dropdown", [
34079
34554
  { name: "autocomplete", alternativeName: "autoComplete", choices: _settings__WEBPACK_IMPORTED_MODULE_5__["settings"].questions.dataList, },
34080
34555
  { name: "renderAs", default: "default", visible: false },
34081
34556
  { name: "searchEnabled:boolean", default: true, visible: false },
34557
+ { name: "searchMode", default: "contains", choices: ["contains", "startsWith"], },
34082
34558
  { name: "choicesLazyLoadEnabled:boolean", default: false, visible: false },
34083
34559
  { name: "choicesLazyLoadPageSize:number", default: 25, visible: false },
34084
34560
  { name: "inputFieldComponent", visible: false },
@@ -36642,12 +37118,10 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
36642
37118
  enumerable: false,
36643
37119
  configurable: true
36644
37120
  });
36645
- QuestionImagePickerModel.prototype.supportOther = function () {
36646
- return false;
36647
- };
36648
- QuestionImagePickerModel.prototype.supportNone = function () {
36649
- return false;
36650
- };
37121
+ QuestionImagePickerModel.prototype.supportOther = function () { return false; };
37122
+ QuestionImagePickerModel.prototype.supportNone = function () { return false; };
37123
+ QuestionImagePickerModel.prototype.supportRefuse = function () { return false; };
37124
+ QuestionImagePickerModel.prototype.supportDontKnow = function () { return false; };
36651
37125
  QuestionImagePickerModel.prototype.isAnswerCorrect = function () {
36652
37126
  if (!this.multiSelect)
36653
37127
  return _super.prototype.isAnswerCorrect.call(this);
@@ -36871,7 +37345,7 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
36871
37345
  enumerable: false,
36872
37346
  configurable: true
36873
37347
  });
36874
- QuestionImagePickerModel.prototype.isBuiltInChoice = function (item, question) {
37348
+ QuestionImagePickerModel.prototype.isBuiltInChoice = function (item) {
36875
37349
  return false;
36876
37350
  };
36877
37351
  QuestionImagePickerModel.prototype.addToVisibleChoices = function (items, isAddAll) {
@@ -37022,6 +37496,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("imagepicker", [
37022
37496
  { name: "showOtherItem", visible: false },
37023
37497
  { name: "otherText", visible: false },
37024
37498
  { name: "showNoneItem", visible: false },
37499
+ { name: "showRefuseItem", visible: false },
37500
+ { name: "showDontKnowItem", visible: false },
37025
37501
  { name: "noneText", visible: false },
37026
37502
  { name: "optionsCaption", visible: false },
37027
37503
  { name: "otherErrorText", visible: false },
@@ -37128,7 +37604,7 @@ var MatrixRowModel = /** @class */ (function (_super) {
37128
37604
  _this.item = item;
37129
37605
  _this.fullName = fullName;
37130
37606
  _this.data = data;
37131
- _this.value = value;
37607
+ _this.setValueDirectly(value);
37132
37608
  _this.cellClick = function (column) {
37133
37609
  _this.value = column.value;
37134
37610
  };
@@ -47344,10 +47820,13 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
47344
47820
  };
47345
47821
  QuestionPanelDynamicModel.prototype.clearValueInPanelsIfInvisible = function (reason) {
47346
47822
  for (var i = 0; i < this.panelsCore.length; i++) {
47347
- var questions = this.panelsCore[i].questions;
47823
+ var panel = this.panelsCore[i];
47824
+ var questions = panel.questions;
47348
47825
  this.isSetPanelItemData = {};
47349
47826
  for (var j = 0; j < questions.length; j++) {
47350
47827
  var q = questions[j];
47828
+ if (q.visible && !panel.isVisible)
47829
+ continue;
47351
47830
  q.clearValueIfInvisible(reason);
47352
47831
  this.isSetPanelItemData[q.getValueName()] = this.maxCheckCount + 1;
47353
47832
  }
@@ -48664,15 +49143,11 @@ var QuestionRankingModel = /** @class */ (function (_super) {
48664
49143
  QuestionRankingModel.prototype.beforeDestroyQuestionElement = function (el) {
48665
49144
  _super.prototype.beforeDestroyQuestionElement.call(this, el);
48666
49145
  };
48667
- QuestionRankingModel.prototype.supportSelectAll = function () {
48668
- return false;
48669
- };
48670
- QuestionRankingModel.prototype.supportOther = function () {
48671
- return false;
48672
- };
48673
- QuestionRankingModel.prototype.supportNone = function () {
48674
- return false;
48675
- };
49146
+ QuestionRankingModel.prototype.supportSelectAll = function () { return false; };
49147
+ QuestionRankingModel.prototype.supportOther = function () { return false; };
49148
+ QuestionRankingModel.prototype.supportNone = function () { return false; };
49149
+ QuestionRankingModel.prototype.supportRefuse = function () { return false; };
49150
+ QuestionRankingModel.prototype.supportDontKnow = function () { return false; };
48676
49151
  QuestionRankingModel.prototype.handleKeydownSelectToRank = function (event, movedElement) {
48677
49152
  if (this.isDesignMode)
48678
49153
  return;
@@ -48859,6 +49334,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_3__["Serializer"].addClass("ranking", [
48859
49334
  { name: "otherErrorText", visible: false, isSerializable: false },
48860
49335
  { name: "storeOthersAsComment", visible: false, isSerializable: false },
48861
49336
  { name: "showNoneItem", visible: false, isSerializable: false },
49337
+ { name: "showRefuseItem", visible: false, isSerializable: false },
49338
+ { name: "showDontKnowItem", visible: false, isSerializable: false },
48862
49339
  { name: "noneText", visible: false, isSerializable: false },
48863
49340
  { name: "showSelectAllItem", visible: false, isSerializable: false },
48864
49341
  { name: "selectAllText", visible: false, isSerializable: false },
@@ -49562,8 +50039,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
49562
50039
  });
49563
50040
  Object.defineProperty(QuestionRatingModel.prototype, "ratingRootCss", {
49564
50041
  get: function () {
49565
- var baseClass = ((this.displayMode == "buttons" || (!!this.survey && this.survey.isDesignMode)) && this.cssClasses.rootWrappable) ?
49566
- this.cssClasses.rootWrappable : this.cssClasses.root;
50042
+ var baseClassModifier = ((this.displayMode == "buttons" || (!!this.survey && this.survey.isDesignMode)) && this.cssClasses.rootWrappable) ?
50043
+ this.cssClasses.rootWrappable : "";
49567
50044
  var rootClassModifier = "";
49568
50045
  if (this.hasMaxLabel || this.hasMinLabel) {
49569
50046
  if (this.rateDescriptionLocation == "top")
@@ -49574,7 +50051,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
49574
50051
  rootClassModifier = this.cssClasses.rootLabelsDiagonal;
49575
50052
  }
49576
50053
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
49577
- .append(baseClass)
50054
+ .append(this.cssClasses.root)
50055
+ .append(baseClassModifier)
49578
50056
  .append(rootClassModifier)
49579
50057
  .append(this.cssClasses.itemSmall, this.itemSmallMode && this.rateType != "labels")
49580
50058
  .toString();
@@ -51074,7 +51552,7 @@ var QuestionTextModel = /** @class */ (function (_super) {
51074
51552
  configurable: true
51075
51553
  });
51076
51554
  QuestionTextModel.prototype.getMaxLength = function () {
51077
- if (this.inputType !== "text")
51555
+ if (!this.isTextInput)
51078
51556
  return null;
51079
51557
  return _super.prototype.getMaxLength.call(this);
51080
51558
  };
@@ -52704,15 +53182,27 @@ var settings = {
52704
53182
  */
52705
53183
  showItemsInOrder: "default",
52706
53184
  /**
52707
- * A value to save in survey results when respondents select the None choice item.
53185
+ * A value to save in survey results when respondents select the "None" choice item.
52708
53186
  *
52709
53187
  * Default value: `"none"`
52710
53188
  */
52711
53189
  noneItemValue: "none",
52712
53190
  /**
52713
- * An object whose properties specify the order of the special choice items (None, Other, Select All) in select-based questions.
53191
+ * A value to save in survey results when respondents select the "Refuse to answer" choice item.
52714
53192
  *
52715
- * Default value: `{ selectAllItem: [-1], noneItem: [1], otherItem: [2] }`
53193
+ * Default value: `"refused"`
53194
+ */
53195
+ refuseItemValue: "refused",
53196
+ /**
53197
+ * A value to save in survey results when respondents select the "Don't know" choice item.
53198
+ *
53199
+ * Default value: `"dontknow"`
53200
+ */
53201
+ dontKnowItemValue: "dontknow",
53202
+ /**
53203
+ * 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.
53204
+ *
53205
+ * Default value: `{ selectAllItem: [-1], noneItem: [1], otherItem: [2], dontKnowItem: [3], otherItem: [4] }`
52716
53206
  *
52717
53207
  * 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.
52718
53208
  *
@@ -52733,7 +53223,9 @@ var settings = {
52733
53223
  specialChoicesOrder: {
52734
53224
  selectAllItem: [-1],
52735
53225
  noneItem: [1],
52736
- otherItem: [2]
53226
+ refuseItem: [2],
53227
+ dontKnowItem: [3],
53228
+ otherItem: [4]
52737
53229
  },
52738
53230
  /**
52739
53231
  * A list of supported validators by question type.
@@ -52787,6 +53279,12 @@ var settings = {
52787
53279
  * Default value: `true`
52788
53280
  */
52789
53281
  showMaxLengthIndicator: true,
53282
+ /**
53283
+ * Set to `false` to disable animations
53284
+ *
53285
+ * Default value: `true`
53286
+ */
53287
+ animationEnabled: true,
52790
53288
  /**
52791
53289
  * An object that specifies heading levels (`<h1>`, `<h2>`, etc.) to use when rendering survey, page, panel, and question titles.
52792
53290
  *
@@ -52872,7 +53370,8 @@ var settings = {
52872
53370
  "email",
52873
53371
  "impp",
52874
53372
  ]
52875
- }
53373
+ },
53374
+ legacyProgressBarView: false
52876
53375
  };
52877
53376
 
52878
53377
 
@@ -54697,7 +55196,8 @@ __webpack_require__.r(__webpack_exports__);
54697
55196
  /* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./header */ "./src/header.ts");
54698
55197
  /* harmony import */ var _surveytimer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./surveytimer */ "./src/surveytimer.ts");
54699
55198
  /* harmony import */ var _surveyTaskManager__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! ./surveyTaskManager */ "./src/surveyTaskManager.ts");
54700
- /* harmony import */ var _surveyToc__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./surveyToc */ "./src/surveyToc.ts");
55199
+ /* harmony import */ var _progress_buttons__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./progress-buttons */ "./src/progress-buttons.ts");
55200
+ /* harmony import */ var _surveyToc__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./surveyToc */ "./src/surveyToc.ts");
54701
55201
  var __extends = (undefined && undefined.__extends) || (function () {
54702
55202
  var extendStatics = function (d, b) {
54703
55203
  extendStatics = Object.setPrototypeOf ||
@@ -54741,6 +55241,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
54741
55241
 
54742
55242
 
54743
55243
 
55244
+
54744
55245
 
54745
55246
 
54746
55247
  /**
@@ -55210,6 +55711,12 @@ var SurveyModel = /** @class */ (function (_super) {
55210
55711
  * [View Demo](https://surveyjs.io/form-library/examples/lazy-loading-dropdown/ (linkStyle))
55211
55712
  */
55212
55713
  _this.onChoicesLazyLoad = _this.addEvent();
55714
+ /**
55715
+ * 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.
55716
+ * @see [QuestionDropdownModel.searchEnabled](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model#searchEnabled)
55717
+ * @see [QuestionDropdownModel.searchMode](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model#searchMode)
55718
+ */
55719
+ _this.onChoicesSearch = _this.addEvent();
55213
55720
  /**
55214
55721
  * 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.
55215
55722
  *
@@ -55581,6 +56088,7 @@ var SurveyModel = /** @class */ (function (_super) {
55581
56088
  _this.onScrollCallback = undefined;
55582
56089
  }
55583
56090
  });
56091
+ _this.progressBarValue = new _progress_buttons__WEBPACK_IMPORTED_MODULE_23__["ProgressButtons"](_this);
55584
56092
  _this.layoutElements.push({
55585
56093
  id: "timerpanel",
55586
56094
  template: "survey-timerpanel",
@@ -55590,7 +56098,8 @@ var SurveyModel = /** @class */ (function (_super) {
55590
56098
  _this.layoutElements.push({
55591
56099
  id: "progress-buttons",
55592
56100
  component: "sv-progress-buttons",
55593
- data: _this
56101
+ data: _this.progressBar,
56102
+ processResponsiveness: function (width) { return _this.progressBar.processResponsiveness && _this.progressBar.processResponsiveness(width); }
55594
56103
  });
55595
56104
  _this.layoutElements.push({
55596
56105
  id: "progress-questions",
@@ -55615,10 +56124,10 @@ var SurveyModel = /** @class */ (function (_super) {
55615
56124
  _this.addLayoutElement({
55616
56125
  id: "toc-navigation",
55617
56126
  component: "sv-navigation-toc",
55618
- data: new _surveyToc__WEBPACK_IMPORTED_MODULE_23__["TOCModel"](_this)
56127
+ data: new _surveyToc__WEBPACK_IMPORTED_MODULE_24__["TOCModel"](_this)
55619
56128
  });
55620
56129
  _this.layoutElements.push({
55621
- id: "navigationbuttons",
56130
+ id: "buttons-navigation",
55622
56131
  component: "sv-action-bar",
55623
56132
  data: _this.navigationBar
55624
56133
  });
@@ -57560,6 +58069,13 @@ var SurveyModel = /** @class */ (function (_super) {
57560
58069
  enumerable: false,
57561
58070
  configurable: true
57562
58071
  });
58072
+ Object.defineProperty(SurveyModel.prototype, "progressBar", {
58073
+ get: function () {
58074
+ return this.progressBarValue;
58075
+ },
58076
+ enumerable: false,
58077
+ configurable: true
58078
+ });
57563
58079
  Object.defineProperty(SurveyModel.prototype, "showProgressBar", {
57564
58080
  /**
57565
58081
  * Controls the visibility of the progress bar and specifies its position.
@@ -57567,9 +58083,13 @@ var SurveyModel = /** @class */ (function (_super) {
57567
58083
  * Possible values:
57568
58084
  *
57569
58085
  * - `"off"` (default) - Hides the progress bar.
57570
- * - `"top"` - Displays the progress bar above survey content.
58086
+ * - `"aboveHeader"` - Displays the progress bar above the survey header.
58087
+ * - `"belowHeader"` - Displays the progress bar below the survey header.
57571
58088
  * - `"bottom"` - Displays the progress bar below survey content.
57572
- * - `"both"` - Displays the progress bar above and below survey content.
58089
+ * - `"topBottom"` - Displays the progress bar above and below survey content.
58090
+ * - `"auto"` - Automatically selects between `"aboveHeader"` and `"belowHeader"`.
58091
+ * - `"top"` - *(Obsolete)* Use the `"aboveHeader"` or `"belowHeader"` property value instead.
58092
+ * - `"both"` - *(Obsolete)* Use the `"topBottom"` property value instead.
57573
58093
  *
57574
58094
  * [View Demo](https://surveyjs.io/form-library/examples/navigation-default/ (linkStyle))
57575
58095
  * @see progressBarType
@@ -57594,7 +58114,9 @@ var SurveyModel = /** @class */ (function (_super) {
57594
58114
  * - `"questions"` - The number of answered questions.
57595
58115
  * - `"requiredQuestions"` - The number of answered [required questions](https://surveyjs.io/form-library/documentation/api-reference/question#isRequired).
57596
58116
  * - `"correctQuestions"` - The number of correct questions in a [quiz](https://surveyjs.io/form-library/documentation/design-survey/create-a-quiz).
57597
- * - `"buttons"` - Adds jump links to the progress bar.
58117
+ * - `"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.
58118
+ *
58119
+ * > 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.
57598
58120
  *
57599
58121
  * [View Demo](https://surveyjs.io/form-library/examples/navigation-buttons/ (linkStyle))
57600
58122
  * @see progressValue
@@ -57607,16 +58129,33 @@ var SurveyModel = /** @class */ (function (_super) {
57607
58129
  newValue = "correctQuestion";
57608
58130
  if (newValue === "requiredquestion")
57609
58131
  newValue = "requiredQuestion";
58132
+ // if (newValue === "buttons") {
58133
+ // newValue = "pages";
58134
+ // this.progressBarShowPageTitles = true;
58135
+ // }
57610
58136
  this.setPropertyValue("progressBarType", newValue);
57611
58137
  },
57612
58138
  enumerable: false,
57613
58139
  configurable: true
57614
58140
  });
58141
+ Object.defineProperty(SurveyModel.prototype, "progressBarComponentName", {
58142
+ get: function () {
58143
+ var actualProgressBarType = this.progressBarType;
58144
+ if (!_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].legacyProgressBarView && _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_4__["surveyCss"].currentType === "defaultV2") {
58145
+ if (isStrCiEqual(actualProgressBarType, "pages")) {
58146
+ actualProgressBarType = "buttons";
58147
+ }
58148
+ }
58149
+ return "progress-" + actualProgressBarType;
58150
+ },
58151
+ enumerable: false,
58152
+ configurable: true
58153
+ });
57615
58154
  Object.defineProperty(SurveyModel.prototype, "isShowProgressBarOnTop", {
57616
58155
  get: function () {
57617
58156
  if (!this.canShowProresBar())
57618
58157
  return false;
57619
- return this.showProgressBar === "top" || this.showProgressBar === "both";
58158
+ return ["auto", "aboveheader", "belowheader", "topbottom", "top", "both"].indexOf(this.showProgressBar) !== -1;
57620
58159
  },
57621
58160
  enumerable: false,
57622
58161
  configurable: true
@@ -57625,7 +58164,7 @@ var SurveyModel = /** @class */ (function (_super) {
57625
58164
  get: function () {
57626
58165
  if (!this.canShowProresBar())
57627
58166
  return false;
57628
- return this.showProgressBar === "bottom" || this.showProgressBar === "both";
58167
+ return this.showProgressBar === "bottom" || this.showProgressBar === "both" || this.showProgressBar === "topbottom";
57629
58168
  },
57630
58169
  enumerable: false,
57631
58170
  configurable: true
@@ -59956,6 +60495,7 @@ var SurveyModel = /** @class */ (function (_super) {
59956
60495
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_18__["CssClassBuilder"]()
59957
60496
  .append(this.css.root)
59958
60497
  .append(this.css.rootMobile, this.isMobile)
60498
+ .append(this.css.rootAnimationDisabled, !_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].animationEnabled)
59959
60499
  .append(this.css.rootReadOnly, this.mode === "display")
59960
60500
  .append(this.css.rootCompact, this.isCompact)
59961
60501
  .append(this.css.rootFitToContainer, this.fitToContainer)
@@ -60985,6 +61525,12 @@ var SurveyModel = /** @class */ (function (_super) {
60985
61525
  enumerable: false,
60986
61526
  configurable: true
60987
61527
  });
61528
+ /**
61529
+ * Recalculates all [expressions](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) in the survey.
61530
+ */
61531
+ SurveyModel.prototype.runExpressions = function () {
61532
+ this.runConditions();
61533
+ };
60988
61534
  SurveyModel.prototype.runConditions = function () {
60989
61535
  if (this.isCompleted ||
60990
61536
  this.isEndLoadingFromJson === "processing" ||
@@ -61221,6 +61767,12 @@ var SurveyModel = /** @class */ (function (_super) {
61221
61767
  this.onStateAndCurrentPageChanged();
61222
61768
  this.updateState();
61223
61769
  };
61770
+ SurveyModel.prototype.startLoadingFromJson = function (json) {
61771
+ _super.prototype.startLoadingFromJson.call(this, json);
61772
+ if (json && json.locale) {
61773
+ this.locale = json.locale;
61774
+ }
61775
+ };
61224
61776
  SurveyModel.prototype.setJsonObject = function (jsonObj) {
61225
61777
  this.fromJSON(jsonObj);
61226
61778
  };
@@ -62332,7 +62884,9 @@ var SurveyModel = /** @class */ (function (_super) {
62332
62884
  * @see onTimer
62333
62885
  */
62334
62886
  SurveyModel.prototype.startTimer = function () {
62335
- this.timerModel.start();
62887
+ if (this.isEditMode) {
62888
+ this.timerModel.start();
62889
+ }
62336
62890
  };
62337
62891
  SurveyModel.prototype.startTimerFromUI = function () {
62338
62892
  if (this.showTimerPanel != "none" && this.state === "running") {
@@ -62606,7 +63160,7 @@ var SurveyModel = /** @class */ (function (_super) {
62606
63160
  *
62607
63161
  * This method accepts an object with the following layout element properties:
62608
63162
  *
62609
- * - `id`: `string` | `"timerpanel"` | `"progress-buttons"` | `"progress-questions"` | `"progress-pages"` | `"progress-correctquestions"` | `"progress-requiredquestions"` | `"toc-navigation"` | `"navigationbuttons"`\
63163
+ * - `id`: `string` | `"timerpanel"` | `"progress-buttons"` | `"progress-questions"` | `"progress-pages"` | `"progress-correctquestions"` | `"progress-requiredquestions"` | `"toc-navigation"` | `"buttons-navigation"`\
62610
63164
  * A layout element identifier. You can use possible values to access and relocate or customize predefined layout elements.
62611
63165
  *
62612
63166
  * - `container`: `"header"` | `"footer"` | `"left"` | `"right"` | `"contentTop"` | `"contentBottom"`\
@@ -62655,10 +63209,13 @@ var SurveyModel = /** @class */ (function (_super) {
62655
63209
  }
62656
63210
  }
62657
63211
  }
62658
- else if (this.state === "running" && isStrCiEqual(layoutElement.id, "progress-" + this.progressBarType)) {
63212
+ else if (this.state === "running" && isStrCiEqual(layoutElement.id, this.progressBarComponentName)) {
62659
63213
  var headerLayoutElement = this.findLayoutElement("advanced-header");
62660
63214
  var advHeader = headerLayoutElement && headerLayoutElement.data;
62661
63215
  var isBelowHeader = !advHeader || advHeader.hasBackground;
63216
+ if (isStrCiEqual(this.showProgressBar, "aboveHeader")) {
63217
+ isBelowHeader = false;
63218
+ }
62662
63219
  if (container === "header" && !isBelowHeader) {
62663
63220
  layoutElement.index = -150;
62664
63221
  if (this.isShowProgressBarOnTop && !this.isShowStartingPage) {
@@ -62679,7 +63236,7 @@ var SurveyModel = /** @class */ (function (_super) {
62679
63236
  }
62680
63237
  }
62681
63238
  }
62682
- else if (isStrCiEqual(layoutElement.id, "navigationbuttons")) {
63239
+ else if (isStrCiEqual(layoutElement.id, "buttons-navigation")) {
62683
63240
  if (container === "contentTop") {
62684
63241
  if (["top", "both"].indexOf(this.isNavigationButtonsShowing) !== -1) {
62685
63242
  containerLayoutElements.push(layoutElement);
@@ -62889,6 +63446,16 @@ var SurveyModel = /** @class */ (function (_super) {
62889
63446
  __decorate([
62890
63447
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
62891
63448
  ], SurveyModel.prototype, "wrapperFormCss", void 0);
63449
+ __decorate([
63450
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
63451
+ getDefaultValue: function (self) {
63452
+ return self.progressBarType === "buttons";
63453
+ },
63454
+ })
63455
+ ], SurveyModel.prototype, "progressBarShowPageTitles", void 0);
63456
+ __decorate([
63457
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
63458
+ ], SurveyModel.prototype, "progressBarShowPageNumbers", void 0);
62892
63459
  __decorate([
62893
63460
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
62894
63461
  ], SurveyModel.prototype, "rootCss", void 0);
@@ -63024,7 +63591,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63024
63591
  {
63025
63592
  name: "showProgressBar",
63026
63593
  default: "off",
63027
- choices: ["off", "top", "bottom", "both"],
63594
+ choices: ["off", "auto", "aboveHeader", "belowHeader", "bottom", "topBottom"],
63028
63595
  },
63029
63596
  {
63030
63597
  name: "progressBarType",
@@ -63034,9 +63601,10 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63034
63601
  "questions",
63035
63602
  "requiredQuestions",
63036
63603
  "correctQuestions",
63037
- "buttons",
63038
63604
  ],
63039
63605
  },
63606
+ { name: "progressBarShowPageTitles:switch", category: "navigation" },
63607
+ { name: "progressBarShowPageNumbers:switch", default: false, category: "navigation" },
63040
63608
  {
63041
63609
  name: "showTOC:switch",
63042
63610
  default: false
@@ -63183,56 +63751,6 @@ var SurveyProgressModel = /** @class */ (function () {
63183
63751
 
63184
63752
 
63185
63753
 
63186
- /***/ }),
63187
-
63188
- /***/ "./src/surveyProgressButtons.ts":
63189
- /*!**************************************!*\
63190
- !*** ./src/surveyProgressButtons.ts ***!
63191
- \**************************************/
63192
- /*! exports provided: SurveyProgressButtonsModel */
63193
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
63194
-
63195
- "use strict";
63196
- __webpack_require__.r(__webpack_exports__);
63197
- /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return SurveyProgressButtonsModel; });
63198
- /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
63199
-
63200
- var SurveyProgressButtonsModel = /** @class */ (function () {
63201
- function SurveyProgressButtonsModel(survey) {
63202
- this.survey = survey;
63203
- }
63204
- SurveyProgressButtonsModel.prototype.isListElementClickable = function (index) {
63205
- if (!this.survey.onServerValidateQuestions ||
63206
- this.survey.onServerValidateQuestions.isEmpty ||
63207
- this.survey.checkErrorsMode === "onComplete") {
63208
- return true;
63209
- }
63210
- return index <= this.survey.currentPageNo + 1;
63211
- };
63212
- SurveyProgressButtonsModel.prototype.getListElementCss = function (index) {
63213
- if (index >= this.survey.visiblePages.length)
63214
- return;
63215
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]()
63216
- .append(this.survey.css.progressButtonsListElementPassed, this.survey.visiblePages[index].passed)
63217
- .append(this.survey.css.progressButtonsListElementCurrent, this.survey.currentPageNo === index)
63218
- .append(this.survey.css.progressButtonsListElementNonClickable, !this.isListElementClickable(index))
63219
- .toString();
63220
- };
63221
- SurveyProgressButtonsModel.prototype.getScrollButtonCss = function (hasScroller, isLeftScroll) {
63222
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]()
63223
- .append(this.survey.css.progressButtonsImageButtonLeft, isLeftScroll)
63224
- .append(this.survey.css.progressButtonsImageButtonRight, !isLeftScroll)
63225
- .append(this.survey.css.progressButtonsImageButtonHidden, !hasScroller)
63226
- .toString();
63227
- };
63228
- SurveyProgressButtonsModel.prototype.clickListElement = function (index) {
63229
- this.survey.tryNavigateToPage(this.survey.visiblePages[index]);
63230
- };
63231
- return SurveyProgressButtonsModel;
63232
- }());
63233
-
63234
-
63235
-
63236
63754
  /***/ }),
63237
63755
 
63238
63756
  /***/ "./src/surveyStrings.ts":