survey-core 1.9.127 → 1.9.129

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 (445) hide show
  1. package/defaultV2.css +457 -122
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +457 -122
  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 +190 -14
  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 +6 -2
  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 +122 -17
  163. package/modern.css.map +1 -1
  164. package/modern.fontless.css +122 -17
  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 +1046 -235
  174. package/survey.core.js.map +1 -1
  175. package/survey.core.min.js +3 -3
  176. package/survey.css +91 -17
  177. package/survey.css.map +1 -1
  178. package/survey.i18n.js +190 -14
  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/base-interfaces.d.ts +4 -0
  388. package/ts3.4/typings/defaultCss/cssmodern.d.ts +2 -0
  389. package/ts3.4/typings/defaultCss/cssstandard.d.ts +2 -0
  390. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +9 -0
  391. package/ts3.4/typings/dropdownListModel.d.ts +3 -0
  392. package/ts3.4/typings/entries/chunks/model.d.ts +2 -2
  393. package/ts3.4/typings/header.d.ts +3 -0
  394. package/ts3.4/typings/jsonobject.d.ts +3 -0
  395. package/ts3.4/typings/list.d.ts +3 -0
  396. package/ts3.4/typings/localization/english.d.ts +2 -0
  397. package/ts3.4/typings/page.d.ts +2 -2
  398. package/ts3.4/typings/popup-survey.d.ts +11 -0
  399. package/ts3.4/typings/progress-buttons.d.ts +42 -0
  400. package/ts3.4/typings/question_baseselect.d.ts +55 -2
  401. package/ts3.4/typings/question_checkbox.d.ts +3 -2
  402. package/ts3.4/typings/question_custom.d.ts +13 -0
  403. package/ts3.4/typings/question_dropdown.d.ts +14 -0
  404. package/ts3.4/typings/question_file.d.ts +1 -0
  405. package/ts3.4/typings/question_imagepicker.d.ts +4 -2
  406. package/ts3.4/typings/question_matrixdropdownbase.d.ts +2 -0
  407. package/ts3.4/typings/question_matrixdropdowncolumn.d.ts +17 -0
  408. package/ts3.4/typings/question_matrixdropdownrendered.d.ts +1 -0
  409. package/ts3.4/typings/question_ranking.d.ts +2 -0
  410. package/ts3.4/typings/settings.d.ts +25 -4
  411. package/ts3.4/typings/survey-events-api.d.ts +33 -0
  412. package/ts3.4/typings/survey.d.ts +57 -16
  413. package/ts3.4/typings/surveyStrings.d.ts +2 -0
  414. package/ts3.4/typings/themes.d.ts +2 -2
  415. package/ts3.4/typings/utils/utils.d.ts +4 -3
  416. package/typings/base-interfaces.d.ts +4 -0
  417. package/typings/defaultCss/cssmodern.d.ts +2 -0
  418. package/typings/defaultCss/cssstandard.d.ts +2 -0
  419. package/typings/defaultCss/defaultV2Css.d.ts +9 -0
  420. package/typings/dropdownListModel.d.ts +3 -0
  421. package/typings/entries/chunks/model.d.ts +2 -2
  422. package/typings/header.d.ts +3 -0
  423. package/typings/jsonobject.d.ts +3 -0
  424. package/typings/list.d.ts +3 -0
  425. package/typings/localization/english.d.ts +2 -0
  426. package/typings/page.d.ts +2 -2
  427. package/typings/popup-survey.d.ts +13 -0
  428. package/typings/progress-buttons.d.ts +42 -0
  429. package/typings/question_baseselect.d.ts +60 -2
  430. package/typings/question_checkbox.d.ts +3 -2
  431. package/typings/question_custom.d.ts +13 -0
  432. package/typings/question_dropdown.d.ts +14 -0
  433. package/typings/question_file.d.ts +1 -0
  434. package/typings/question_imagepicker.d.ts +4 -2
  435. package/typings/question_matrixdropdownbase.d.ts +2 -0
  436. package/typings/question_matrixdropdowncolumn.d.ts +18 -0
  437. package/typings/question_matrixdropdownrendered.d.ts +1 -0
  438. package/typings/question_ranking.d.ts +2 -0
  439. package/typings/settings.d.ts +25 -4
  440. package/typings/survey-events-api.d.ts +33 -0
  441. package/typings/survey.d.ts +57 -16
  442. package/typings/surveyProgressButtons.d.ts +9 -9
  443. package/typings/surveyStrings.d.ts +2 -0
  444. package/typings/themes.d.ts +2 -2
  445. package/typings/utils/utils.d.ts +4 -3
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.129
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
  */
@@ -2297,18 +2297,23 @@ var Base = /** @class */ (function () {
2297
2297
  configurable: true
2298
2298
  });
2299
2299
  Base.prototype.doPropertyValueChangedCallback = function (name, oldValue, newValue, arrayChanges, target) {
2300
- if (this.isInternal)
2300
+ var fireCallback = function (obj) {
2301
+ if (!!obj && !!obj.onPropertyValueChangedCallback) {
2302
+ obj.onPropertyValueChangedCallback(name, oldValue, newValue, target, arrayChanges);
2303
+ }
2304
+ };
2305
+ if (this.isInternal) {
2306
+ fireCallback(this);
2301
2307
  return;
2308
+ }
2302
2309
  if (!target)
2303
2310
  target = this;
2304
2311
  var notifier = this.getSurvey();
2305
2312
  if (!notifier)
2306
2313
  notifier = this;
2307
- if (!!notifier.onPropertyValueChangedCallback) {
2308
- notifier.onPropertyValueChangedCallback(name, oldValue, newValue, target, arrayChanges);
2309
- }
2310
- if (notifier !== this && !!this.onPropertyValueChangedCallback) {
2311
- this.onPropertyValueChangedCallback(name, oldValue, newValue, target, arrayChanges);
2314
+ fireCallback(notifier);
2315
+ if (notifier !== this) {
2316
+ fireCallback(this);
2312
2317
  }
2313
2318
  };
2314
2319
  Base.prototype.addExpressionProperty = function (name, onExecute, canRun) {
@@ -4778,7 +4783,7 @@ var modernCss = {
4778
4783
  cellText: "sv-matrix__text",
4779
4784
  cellTextSelected: "sv-matrix__text--checked",
4780
4785
  cellTextDisabled: "sv-matrix__text--disabled",
4781
- cellResponsiveTitle: "sv-hidden",
4786
+ cellResponsiveTitle: "sv-matrix__cell-responsive-title",
4782
4787
  itemSvgIconId: "#icon-modernradio",
4783
4788
  },
4784
4789
  matrixdropdown: {
@@ -4890,6 +4895,7 @@ var modernCss = {
4890
4895
  window: {
4891
4896
  root: "sv_window",
4892
4897
  rootCollapsedMod: "sv_window--collapsed",
4898
+ rootFullScreenMode: "sv_window--full-screen",
4893
4899
  rootContent: "sv_window_root-content",
4894
4900
  body: "sv_window_content",
4895
4901
  header: {
@@ -4900,7 +4906,8 @@ var modernCss = {
4900
4906
  buttonExpanded: "",
4901
4907
  buttonCollapsed: "",
4902
4908
  collapseButton: "sv_window_button sv_window_button_collapse",
4903
- closeButton: "sv_window_button sv_window_button_close"
4909
+ closeButton: "sv_window_button sv_window_button_close",
4910
+ fullScreenButton: "sv_window_button sv_window_button_full_screen"
4904
4911
  }
4905
4912
  },
4906
4913
  variables: {
@@ -5122,7 +5129,7 @@ var defaultStandardCss = {
5122
5129
  cellText: "sv_q_m_cell_text",
5123
5130
  cellTextSelected: "sv_q_m_cell_selected",
5124
5131
  cellLabel: "sv_q_m_cell_label",
5125
- cellResponsiveTitle: "sv-hidden"
5132
+ cellResponsiveTitle: "sv_q_m_cell_responsive_title"
5126
5133
  },
5127
5134
  matrixdropdown: {
5128
5135
  root: "sv_q_matrix_dropdown",
@@ -5288,6 +5295,7 @@ var defaultStandardCss = {
5288
5295
  window: {
5289
5296
  root: "sv_window",
5290
5297
  rootCollapsedMod: "sv_window--collapsed",
5298
+ rootFullScreenMode: "sv_window--full-screen",
5291
5299
  rootContent: "sv_window_root-content",
5292
5300
  body: "sv_window_content",
5293
5301
  header: {
@@ -5298,7 +5306,8 @@ var defaultStandardCss = {
5298
5306
  buttonExpanded: "",
5299
5307
  buttonCollapsed: "",
5300
5308
  collapseButton: "sv_window_button sv_window_button_collapse",
5301
- closeButton: "sv_window_button sv_window_button_close"
5309
+ closeButton: "sv_window_button sv_window_button_close",
5310
+ fullScreenButton: "sv_window_button sv_window_button_full_screen"
5302
5311
  }
5303
5312
  },
5304
5313
  variables: {
@@ -5366,6 +5375,7 @@ var surveyCss = {
5366
5375
  var defaultV2Css = {
5367
5376
  root: "sd-root-modern",
5368
5377
  rootMobile: "sd-root-modern--mobile",
5378
+ rootAnimationDisabled: "sd-root-modern--animation-disabled",
5369
5379
  rootReadOnly: "sd-root--readonly",
5370
5380
  rootCompact: "sd-root--compact",
5371
5381
  rootFitToContainer: "sd-root-modern--full-container",
@@ -5483,8 +5493,13 @@ var defaultV2Css = {
5483
5493
  progressBottom: "sd-body__progress--bottom",
5484
5494
  progressBar: "sd-progress__bar",
5485
5495
  progressText: "sd-progress__text",
5496
+ progressButtonsRoot: "sd-progress-buttons",
5497
+ progressButtonsNumbered: "sd-progress-buttons--numbered",
5486
5498
  progressButtonsContainerCenter: "sd-progress-buttons__container-center",
5487
5499
  progressButtonsContainer: "sd-progress-buttons__container",
5500
+ progressButtonsConnector: "sd-progress-buttons__connector",
5501
+ progressButtonsHeader: "sd-progress-buttons__header",
5502
+ progressButtonsFooter: "sd-progress-buttons__footer",
5488
5503
  progressButtonsImageButtonLeft: "sd-progress-buttons__image-button-left",
5489
5504
  progressButtonsImageButtonRight: "sd-progress-buttons__image-button-right",
5490
5505
  progressButtonsImageButtonHidden: "sd-progress-buttons__image-button--hidden",
@@ -5829,6 +5844,7 @@ var defaultV2Css = {
5829
5844
  noHeader: "sd-table--no-header",
5830
5845
  hasFooter: "sd-table--has-footer",
5831
5846
  tableWrapper: "sd-table-wrapper",
5847
+ rootAlternateRows: "sd-table--alternate-rows",
5832
5848
  content: "sd-matrixdynamic__content sd-question__content",
5833
5849
  cell: "sd-table__cell",
5834
5850
  row: "sd-table__row",
@@ -5875,7 +5891,7 @@ var defaultV2Css = {
5875
5891
  rating: {
5876
5892
  rootDropdown: "sd-scrollable-container sd-scrollable-container--compact sd-selectbase",
5877
5893
  root: "sd-scrollable-container sd-rating",
5878
- rootWrappable: "sd-scrollable-container sd-rating sd-rating--wrappable",
5894
+ rootWrappable: "sd-rating--wrappable",
5879
5895
  rootLabelsTop: "sd-rating--labels-top",
5880
5896
  rootLabelsBottom: "sd-rating--labels-bottom",
5881
5897
  rootLabelsDiagonal: "sd-rating--labels-diagonal",
@@ -6003,6 +6019,7 @@ var defaultV2Css = {
6003
6019
  window: {
6004
6020
  root: "sv_window",
6005
6021
  rootCollapsedMod: "sv_window--collapsed",
6022
+ rootFullScreenMode: "sv_window--full-screen",
6006
6023
  rootContent: "sv_window_root-content",
6007
6024
  body: "sv_window_content",
6008
6025
  header: {
@@ -6013,7 +6030,8 @@ var defaultV2Css = {
6013
6030
  buttonExpanded: "",
6014
6031
  buttonCollapsed: "",
6015
6032
  collapseButton: "sv_window_button sv_window_button_collapse",
6016
- closeButton: "sv_window_button sv_window_button_close"
6033
+ closeButton: "sv_window_button sv_window_button_close",
6034
+ fullScreenButton: "sv_window_button sv_window_button_full_screen"
6017
6035
  }
6018
6036
  },
6019
6037
  ranking: {
@@ -7807,9 +7825,10 @@ __webpack_require__.r(__webpack_exports__);
7807
7825
  /* harmony import */ var _list__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./list */ "./src/list.ts");
7808
7826
  /* harmony import */ var _popup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./popup */ "./src/popup.ts");
7809
7827
  /* 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");
7828
+ /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
7829
+ /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
7830
+ /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/devices */ "./src/utils/devices.ts");
7831
+ /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
7813
7832
  var __extends = (undefined && undefined.__extends) || (function () {
7814
7833
  var extendStatics = function (d, b) {
7815
7834
  extendStatics = Object.setPrototypeOf ||
@@ -7840,6 +7859,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
7840
7859
 
7841
7860
 
7842
7861
 
7862
+
7843
7863
  var DropdownListModel = /** @class */ (function (_super) {
7844
7864
  __extends(DropdownListModel, _super);
7845
7865
  function DropdownListModel(question, onSelectionChanged) {
@@ -7849,6 +7869,7 @@ var DropdownListModel = /** @class */ (function (_super) {
7849
7869
  _this.minPageSize = 25;
7850
7870
  _this.loadingItemHeight = 40;
7851
7871
  _this._markdownMode = false;
7872
+ _this.filteredItems = undefined;
7852
7873
  _this.selectedItemSelector = ".sv-list__item--selected";
7853
7874
  _this.itemSelector = ".sv-list__item";
7854
7875
  _this.itemsSettings = { skip: 0, take: 0, totalCount: 0, items: [] };
@@ -7862,6 +7883,7 @@ var DropdownListModel = /** @class */ (function (_super) {
7862
7883
  _this.qustionPropertyChangedHandler = function (sender, options) {
7863
7884
  _this.onPropertyChangedHandler(sender, options);
7864
7885
  };
7886
+ _this.htmlCleanerElement = document.createElement("div");
7865
7887
  question.onPropertyChanged.add(_this.qustionPropertyChangedHandler);
7866
7888
  _this.showInputFieldComponent = _this.question.showInputFieldComponent;
7867
7889
  _this.listModel = _this.createListModel();
@@ -7879,7 +7901,7 @@ var DropdownListModel = /** @class */ (function (_super) {
7879
7901
  configurable: true
7880
7902
  });
7881
7903
  DropdownListModel.prototype.getFocusFirstInputSelector = function () {
7882
- if (_utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"]) {
7904
+ if (_utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"]) {
7883
7905
  return this.isValueEmpty(this.question.value) ? this.itemSelector : this.selectedItemSelector;
7884
7906
  }
7885
7907
  else {
@@ -7928,11 +7950,11 @@ var DropdownListModel = /** @class */ (function (_super) {
7928
7950
  DropdownListModel.prototype.createPopup = function () {
7929
7951
  var _this = this;
7930
7952
  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";
7953
+ this._popupModel.displayMode = _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"] ? "overlay" : "popup";
7932
7954
  this._popupModel.positionMode = "fixed";
7933
7955
  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"];
7956
+ this._popupModel.isFocusedContent = _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"];
7957
+ this._popupModel.setWidthByTarget = !_utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"];
7936
7958
  this.updatePopupFocusFirstInputSelector();
7937
7959
  this.listModel.registerPropertyChangedHandlers(["showFilter"], function () {
7938
7960
  _this.updatePopupFocusFirstInputSelector();
@@ -7997,10 +8019,18 @@ var DropdownListModel = /** @class */ (function (_super) {
7997
8019
  _this.question.value = item.id;
7998
8020
  if (_this.question.searchEnabled)
7999
8021
  _this.applyInputString(item);
8000
- _this._popupModel.toggleVisibility();
8022
+ _this.popupModel.isVisible = false;
8001
8023
  };
8002
8024
  }
8003
8025
  var res = new _list__WEBPACK_IMPORTED_MODULE_3__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8026
+ res.setOnTextSearchCallback(function (item, textToSearch) {
8027
+ if (_this.filteredItems)
8028
+ return _this.filteredItems.indexOf(item) >= 0;
8029
+ var textInLow = item.text.toLocaleLowerCase();
8030
+ textInLow = _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].comparator.normalizeTextCallback(textInLow, "filter");
8031
+ var index = textInLow.indexOf(textToSearch.toLocaleLowerCase());
8032
+ return _this.question.searchMode == "startsWith" ? index == 0 : index > -1;
8033
+ });
8004
8034
  res.renderElements = false;
8005
8035
  res.forceShowFilter = true;
8006
8036
  res.areSameItemsCallback = function (item1, item2) {
@@ -8020,7 +8050,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8020
8050
  model.isAllDataLoaded = !this.question.choicesLazyLoadEnabled;
8021
8051
  };
8022
8052
  DropdownListModel.prototype.updateCssClasses = function (popupCssClass, listCssClasses) {
8023
- this.popupModel.cssClass = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]().append(popupCssClass).append(this.popupCssClasses).toString();
8053
+ this.popupModel.cssClass = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__["CssClassBuilder"]().append(popupCssClass).append(this.popupCssClasses).toString();
8024
8054
  this.listModel.cssClasses = listCssClasses;
8025
8055
  };
8026
8056
  DropdownListModel.prototype.resetFilterString = function () {
@@ -8035,8 +8065,12 @@ var DropdownListModel = /** @class */ (function (_super) {
8035
8065
  };
8036
8066
  DropdownListModel.prototype.onSetFilterString = function () {
8037
8067
  var _this = this;
8068
+ this.filteredItems = undefined;
8038
8069
  if (!this.filterString && !this.popupModel.isVisible)
8039
8070
  return;
8071
+ var options = { question: this.question, choices: this.getAvailableItems(), filter: this.filterString, filteredChoices: undefined };
8072
+ this.question.survey.onChoicesSearch.fire(this.question.survey, options);
8073
+ this.filteredItems = options.filteredChoices;
8040
8074
  if (!!this.filterString && !this.popupModel.isVisible) {
8041
8075
  this.popupModel.isVisible = true;
8042
8076
  }
@@ -8070,7 +8104,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8070
8104
  var hasHtml = item === null || item === void 0 ? void 0 : item.locText.hasHtml;
8071
8105
  if (hasHtml || this.question.inputFieldComponentName) {
8072
8106
  this._markdownMode = true;
8073
- this.inputString = "";
8107
+ this.inputString = this.cleanHtml(item === null || item === void 0 ? void 0 : item.locText.getHtmlValue());
8074
8108
  this.hintString = "";
8075
8109
  }
8076
8110
  else {
@@ -8078,6 +8112,10 @@ var DropdownListModel = /** @class */ (function (_super) {
8078
8112
  this.hintString = item === null || item === void 0 ? void 0 : item.title;
8079
8113
  }
8080
8114
  };
8115
+ DropdownListModel.prototype.cleanHtml = function (html) {
8116
+ this.htmlCleanerElement.innerHTML = html;
8117
+ return this.htmlCleanerElement.textContent;
8118
+ };
8081
8119
  DropdownListModel.prototype.fixInputCase = function () {
8082
8120
  var hintStringMiddle = this.hintStringMiddle;
8083
8121
  if (hintStringMiddle && this.inputString != hintStringMiddle)
@@ -8211,14 +8249,14 @@ var DropdownListModel = /** @class */ (function (_super) {
8211
8249
  });
8212
8250
  Object.defineProperty(DropdownListModel.prototype, "inputMode", {
8213
8251
  get: function () {
8214
- return _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"] ? "none" : "text";
8252
+ return _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"] ? "none" : "text";
8215
8253
  },
8216
8254
  enumerable: false,
8217
8255
  configurable: true
8218
8256
  });
8219
8257
  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"];
8258
+ this.listModel.searchEnabled = _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"];
8259
+ this.listModel.showSearchClearButton = _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"];
8222
8260
  this.searchEnabled = newValue;
8223
8261
  };
8224
8262
  DropdownListModel.prototype.updateItems = function () {
@@ -8357,7 +8395,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8357
8395
  if (event.keyCode === 32 && this.question.searchEnabled) {
8358
8396
  return;
8359
8397
  }
8360
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["doKey2ClickUp"])(event, { processEsc: false, disableTabStop: this.question.isInputReadOnly });
8398
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["doKey2ClickUp"])(event, { processEsc: false, disableTabStop: this.question.isInputReadOnly });
8361
8399
  }
8362
8400
  };
8363
8401
  DropdownListModel.prototype.onEscape = function () {
@@ -8372,11 +8410,11 @@ var DropdownListModel = /** @class */ (function (_super) {
8372
8410
  };
8373
8411
  DropdownListModel.prototype.onBlur = function (event) {
8374
8412
  this.focused = false;
8375
- if (this.popupModel.isVisible && _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsTouch"]) {
8413
+ if (this.popupModel.isVisible && _utils_devices__WEBPACK_IMPORTED_MODULE_8__["IsTouch"]) {
8376
8414
  this._popupModel.isVisible = true;
8377
8415
  return;
8378
8416
  }
8379
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["doKey2ClickBlur"])(event);
8417
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["doKey2ClickBlur"])(event);
8380
8418
  this._popupModel.isVisible = false;
8381
8419
  this.resetFilterString();
8382
8420
  this.inputString = null;
@@ -8897,7 +8935,7 @@ var ElementHelper = /** @class */ (function () {
8897
8935
  /*!*************************************!*\
8898
8936
  !*** ./src/entries/chunks/model.ts ***!
8899
8937
  \*************************************/
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 */
8938
+ /*! 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, chooseFiles, sanitizeEditableContent, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank */
8901
8939
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8902
8940
 
8903
8941
  "use strict";
@@ -9213,8 +9251,10 @@ __webpack_require__.r(__webpack_exports__);
9213
9251
  /* harmony import */ var _surveyProgress__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(/*! ../../surveyProgress */ "./src/surveyProgress.ts");
9214
9252
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _surveyProgress__WEBPACK_IMPORTED_MODULE_56__["SurveyProgressModel"]; });
9215
9253
 
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"]; });
9254
+ /* harmony import */ var _progress_buttons__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(/*! ../../progress-buttons */ "./src/progress-buttons.ts");
9255
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return _progress_buttons__WEBPACK_IMPORTED_MODULE_57__["ProgressButtons"]; });
9256
+
9257
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return _progress_buttons__WEBPACK_IMPORTED_MODULE_57__["ProgressButtonsResponsivityManager"]; });
9218
9258
 
9219
9259
  /* harmony import */ var _themes__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(/*! ../../themes */ "./src/themes.ts");
9220
9260
  /* empty/unused harmony star reexport *//* harmony import */ var _survey__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(/*! ../../survey */ "./src/survey.ts");
@@ -9346,6 +9386,8 @@ __webpack_require__.r(__webpack_exports__);
9346
9386
 
9347
9387
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["createSvg"]; });
9348
9388
 
9389
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["chooseFiles"]; });
9390
+
9349
9391
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _utils_utils__WEBPACK_IMPORTED_MODULE_83__["sanitizeEditableContent"]; });
9350
9392
 
9351
9393
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(/*! ../../utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
@@ -9372,8 +9414,8 @@ __webpack_require__.r(__webpack_exports__);
9372
9414
  //import "../../modern.scss";
9373
9415
  var Version;
9374
9416
  var ReleaseDate;
9375
- Version = "" + "1.9.127";
9376
- ReleaseDate = "" + "2024-01-23";
9417
+ Version = "" + "1.9.129";
9418
+ ReleaseDate = "" + "2024-02-06";
9377
9419
  function checkLibraryVersion(ver, libraryName) {
9378
9420
  if (Version != ver) {
9379
9421
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9548,7 +9590,7 @@ function checkPrefix(prefix) {
9548
9590
  /*!**************************************!*\
9549
9591
  !*** ./src/entries/core-wo-model.ts ***!
9550
9592
  \**************************************/
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 */
9593
+ /*! 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, chooseFiles, 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
9594
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9553
9595
 
9554
9596
  "use strict";
@@ -9814,7 +9856,9 @@ __webpack_require__.r(__webpack_exports__);
9814
9856
 
9815
9857
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressModel"]; });
9816
9858
 
9817
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressButtonsModel"]; });
9859
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["ProgressButtons"]; });
9860
+
9861
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["ProgressButtonsResponsivityManager"]; });
9818
9862
 
9819
9863
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyModel", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["SurveyModel"]; });
9820
9864
 
@@ -9920,6 +9964,8 @@ __webpack_require__.r(__webpack_exports__);
9920
9964
 
9921
9965
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["createSvg"]; });
9922
9966
 
9967
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["chooseFiles"]; });
9968
+
9923
9969
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["sanitizeEditableContent"]; });
9924
9970
 
9925
9971
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _chunks_model__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]; });
@@ -10011,7 +10057,7 @@ __webpack_require__.r(__webpack_exports__);
10011
10057
  /*!*****************************!*\
10012
10058
  !*** ./src/entries/core.ts ***!
10013
10059
  \*****************************/
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 */
10060
+ /*! 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, chooseFiles, 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
10061
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10016
10062
 
10017
10063
  "use strict";
@@ -10277,7 +10323,9 @@ __webpack_require__.r(__webpack_exports__);
10277
10323
 
10278
10324
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressModel"]; });
10279
10325
 
10280
- /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyProgressButtonsModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["SurveyProgressButtonsModel"]; });
10326
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["ProgressButtons"]; });
10327
+
10328
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["ProgressButtonsResponsivityManager"]; });
10281
10329
 
10282
10330
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "SurveyModel", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["SurveyModel"]; });
10283
10331
 
@@ -10383,6 +10431,8 @@ __webpack_require__.r(__webpack_exports__);
10383
10431
 
10384
10432
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createSvg", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["createSvg"]; });
10385
10433
 
10434
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["chooseFiles"]; });
10435
+
10386
10436
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sanitizeEditableContent", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["sanitizeEditableContent"]; });
10387
10437
 
10388
10438
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "CssClassBuilder", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["CssClassBuilder"]; });
@@ -15282,6 +15332,21 @@ function propertyValue(params) {
15282
15332
  return q ? q[params[1]] : undefined;
15283
15333
  }
15284
15334
  FunctionFactory.Instance.register("propertyValue", propertyValue);
15335
+ function substring_(params) {
15336
+ if (params.length < 2)
15337
+ return "";
15338
+ var s = params[0];
15339
+ if (!s || typeof s !== "string")
15340
+ return "";
15341
+ var start = params[1];
15342
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isNumber(start))
15343
+ return "";
15344
+ var end = params.length > 2 ? params[2] : undefined;
15345
+ if (!_helpers__WEBPACK_IMPORTED_MODULE_0__["Helpers"].isNumber(end))
15346
+ return s.substring(start);
15347
+ return s.substring(start, end);
15348
+ }
15349
+ FunctionFactory.Instance.register("substring", substring_);
15285
15350
 
15286
15351
 
15287
15352
  /***/ }),
@@ -15423,13 +15488,10 @@ var Cover = /** @class */ (function (_super) {
15423
15488
  function Cover() {
15424
15489
  var _this = _super.call(this) || this;
15425
15490
  _this.cells = [];
15426
- _this.renderBackgroundImage = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_3__["wrapUrlForBackgroundImage"])(_this.backgroundImage);
15427
15491
  ["top", "middle", "bottom"].forEach(function (positionY) {
15428
15492
  return ["left", "center", "right"].forEach(function (positionX) { return _this.cells.push(new CoverCell(_this, positionX, positionY)); });
15429
15493
  });
15430
- _this.updateHeaderClasses();
15431
- _this.updateContentClasses();
15432
- _this.updateBackgroundImageClasses();
15494
+ _this.init();
15433
15495
  return _this;
15434
15496
  }
15435
15497
  Cover.prototype.calcBackgroundSize = function (backgroundImageFit) {
@@ -15445,6 +15507,9 @@ var Cover = /** @class */ (function (_super) {
15445
15507
  this.headerClasses = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__["CssClassBuilder"]()
15446
15508
  .append("sv-header")
15447
15509
  .append("sv-header__without-background", (this.backgroundColor === "transparent") && !this.backgroundImage)
15510
+ .append("sv-header__background-color--none", this.backgroundColor === "transparent" && !this.titleColor && !this.descriptionColor)
15511
+ .append("sv-header__background-color--accent", !this.backgroundColor && !this.titleColor && !this.descriptionColor)
15512
+ .append("sv-header__background-color--custom", !!this.backgroundColor && this.backgroundColor !== "transparent" && !this.titleColor && !this.descriptionColor)
15448
15513
  .append("sv-header__overlap", this.overlapEnabled)
15449
15514
  .toString();
15450
15515
  };
@@ -15468,7 +15533,16 @@ var Cover = /** @class */ (function (_super) {
15468
15533
  _super.prototype.fromJSON.call(this, theme.header);
15469
15534
  if (!!theme.cssVariables) {
15470
15535
  this.backgroundColor = theme.cssVariables["--sjs-header-backcolor"];
15536
+ this.titleColor = theme.cssVariables["--sjs-font-headertitle-color"];
15537
+ this.descriptionColor = theme.cssVariables["--sjs-font-headerdescription-color"];
15471
15538
  }
15539
+ this.init();
15540
+ };
15541
+ Cover.prototype.init = function () {
15542
+ this.renderBackgroundImage = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_3__["wrapUrlForBackgroundImage"])(this.backgroundImage);
15543
+ this.updateHeaderClasses();
15544
+ this.updateContentClasses();
15545
+ this.updateBackgroundImageClasses();
15472
15546
  };
15473
15547
  Cover.prototype.getType = function () {
15474
15548
  return "cover";
@@ -15591,6 +15665,12 @@ var Cover = /** @class */ (function (_super) {
15591
15665
  __decorate([
15592
15666
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
15593
15667
  ], Cover.prototype, "backgroundColor", void 0);
15668
+ __decorate([
15669
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
15670
+ ], Cover.prototype, "titleColor", void 0);
15671
+ __decorate([
15672
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
15673
+ ], Cover.prototype, "descriptionColor", void 0);
15594
15674
  __decorate([
15595
15675
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
15596
15676
  onSet: function (newVal, target) {
@@ -16179,12 +16259,14 @@ var map = {
16179
16259
  "./V2Check.svg": "./src/images/V2Check.svg",
16180
16260
  "./V2Check_24x24.svg": "./src/images/V2Check_24x24.svg",
16181
16261
  "./V2DragElement_16x16.svg": "./src/images/V2DragElement_16x16.svg",
16262
+ "./back-to-panel_16x16.svg": "./src/images/back-to-panel_16x16.svg",
16182
16263
  "./chevron.svg": "./src/images/chevron.svg",
16183
16264
  "./clear_16x16.svg": "./src/images/clear_16x16.svg",
16184
16265
  "./close_16x16.svg": "./src/images/close_16x16.svg",
16185
16266
  "./collapseDetail.svg": "./src/images/collapseDetail.svg",
16186
16267
  "./drag-n-drop.svg": "./src/images/drag-n-drop.svg",
16187
16268
  "./expandDetail.svg": "./src/images/expandDetail.svg",
16269
+ "./full-screen_16x16.svg": "./src/images/full-screen_16x16.svg",
16188
16270
  "./loading.svg": "./src/images/loading.svg",
16189
16271
  "./minimize_16x16.svg": "./src/images/minimize_16x16.svg",
16190
16272
  "./no-image.svg": "./src/images/no-image.svg",
@@ -16561,6 +16643,17 @@ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\
16561
16643
 
16562
16644
  /***/ }),
16563
16645
 
16646
+ /***/ "./src/images/back-to-panel_16x16.svg":
16647
+ /*!********************************************!*\
16648
+ !*** ./src/images/back-to-panel_16x16.svg ***!
16649
+ \********************************************/
16650
+ /*! no static exports found */
16651
+ /***/ (function(module, exports) {
16652
+
16653
+ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M15.0001 6C15.0001 6.55 14.5501 7 14.0001 7H10.0001C9.45006 7 9.00006 6.55 9.00006 6V2C9.00006 1.45 9.45006 1 10.0001 1C10.5501 1 11.0001 1.45 11.0001 2V3.59L13.2901 1.29C13.4901 1.09 13.7401 1 14.0001 1C14.2601 1 14.5101 1.1 14.7101 1.29C15.1001 1.68 15.1001 2.31 14.7101 2.7L12.4201 4.99H14.0101C14.5601 4.99 15.0101 5.44 15.0101 5.99L15.0001 6ZM6.00006 9H2.00006C1.45006 9 1.00006 9.45 1.00006 10C1.00006 10.55 1.45006 11 2.00006 11H3.59006L1.29006 13.29C0.900059 13.68 0.900059 14.31 1.29006 14.7C1.68006 15.09 2.31006 15.09 2.70006 14.7L4.99006 12.41V14C4.99006 14.55 5.44006 15 5.99006 15C6.54006 15 6.99006 14.55 6.99006 14V10C6.99006 9.45 6.54006 9 5.99006 9H6.00006Z\"></path></svg>"
16654
+
16655
+ /***/ }),
16656
+
16564
16657
  /***/ "./src/images/chevron.svg":
16565
16658
  /*!********************************!*\
16566
16659
  !*** ./src/images/chevron.svg ***!
@@ -16627,6 +16720,17 @@ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\
16627
16720
 
16628
16721
  /***/ }),
16629
16722
 
16723
+ /***/ "./src/images/full-screen_16x16.svg":
16724
+ /*!******************************************!*\
16725
+ !*** ./src/images/full-screen_16x16.svg ***!
16726
+ \******************************************/
16727
+ /*! no static exports found */
16728
+ /***/ (function(module, exports) {
16729
+
16730
+ module.exports = "<svg viewBox=\"0 0 16 16\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M6.71 10.71L4.42 13H6.01C6.56 13 7.01 13.45 7.01 14C7.01 14.55 6.56 15 6.01 15H2C1.45 15 1 14.55 1 14V10C1 9.45 1.45 9 2 9C2.55 9 3 9.45 3 10V11.59L5.29 9.3C5.68 8.91 6.31 8.91 6.7 9.3C7.09 9.69 7.09 10.32 6.7 10.71H6.71ZM14 1H10C9.45 1 9 1.45 9 2C9 2.55 9.45 3 10 3H11.59L9.3 5.29C8.91 5.68 8.91 6.31 9.3 6.7C9.5 6.9 9.75 6.99 10.01 6.99C10.27 6.99 10.52 6.89 10.72 6.7L13.01 4.41V6C13.01 6.55 13.46 7 14.01 7C14.56 7 15.01 6.55 15.01 6V2C15.01 1.45 14.56 1 14.01 1H14Z\"></path></svg>"
16731
+
16732
+ /***/ }),
16733
+
16630
16734
  /***/ "./src/images/loading.svg":
16631
16735
  /*!********************************!*\
16632
16736
  !*** ./src/images/loading.svg ***!
@@ -17880,15 +17984,32 @@ var JsonObjectProperty = /** @class */ (function () {
17880
17984
  enumerable: false,
17881
17985
  configurable: true
17882
17986
  });
17987
+ JsonObjectProperty.prototype.isEnable = function (obj) {
17988
+ if (this.readOnly)
17989
+ return false;
17990
+ if (!obj || !this.enableIf)
17991
+ return true;
17992
+ return this.enableIf(this.getOriginalObj(obj));
17993
+ };
17883
17994
  JsonObjectProperty.prototype.isVisible = function (layout, obj) {
17884
17995
  if (obj === void 0) { obj = null; }
17885
17996
  var isLayout = !this.layout || this.layout == layout;
17886
17997
  if (!this.visible || !isLayout)
17887
17998
  return false;
17888
- if (!!this.visibleIf && !!obj)
17889
- return this.visibleIf(obj);
17999
+ if (!!this.visibleIf && !!obj) {
18000
+ return this.visibleIf(this.getOriginalObj(obj));
18001
+ }
17890
18002
  return true;
17891
18003
  };
18004
+ JsonObjectProperty.prototype.getOriginalObj = function (obj) {
18005
+ if (obj && obj.getOriginalObj) {
18006
+ var orjObj = obj.getOriginalObj();
18007
+ if (orjObj && Serializer.findProperty(orjObj.getType(), this.name)) {
18008
+ return orjObj;
18009
+ }
18010
+ }
18011
+ return obj;
18012
+ };
17892
18013
  Object.defineProperty(JsonObjectProperty.prototype, "visible", {
17893
18014
  get: function () {
17894
18015
  return this.visibleValue != null ? this.visibleValue : true;
@@ -18012,6 +18133,7 @@ var JsonObjectProperty = /** @class */ (function () {
18012
18133
  "showMode",
18013
18134
  "dependedProperties",
18014
18135
  "visibleIf",
18136
+ "enableIf",
18015
18137
  "onExecuteExpression",
18016
18138
  "onPropertyEditorUpdate",
18017
18139
  "maxLength",
@@ -18330,7 +18452,7 @@ var JsonMetadataClass = /** @class */ (function () {
18330
18452
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.maxLength)) {
18331
18453
  prop.maxLength = propInfo.maxLength;
18332
18454
  }
18333
- if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.displayName)) {
18455
+ if (propInfo.displayName !== undefined) {
18334
18456
  prop.displayName = propInfo.displayName;
18335
18457
  }
18336
18458
  if (!_helpers__WEBPACK_IMPORTED_MODULE_2__["Helpers"].isValueEmpty(propInfo.category)) {
@@ -18381,6 +18503,9 @@ var JsonMetadataClass = /** @class */ (function () {
18381
18503
  if (!!propInfo.visibleIf) {
18382
18504
  prop.visibleIf = propInfo.visibleIf;
18383
18505
  }
18506
+ if (!!propInfo.enableIf) {
18507
+ prop.enableIf = propInfo.enableIf;
18508
+ }
18384
18509
  if (!!propInfo.onExecuteExpression) {
18385
18510
  prop.onExecuteExpression = propInfo.onExecuteExpression;
18386
18511
  }
@@ -19307,9 +19432,7 @@ var JsonObject = /** @class */ (function () {
19307
19432
  JsonObject.prototype.removePosOnValueToJson = function (property, value) {
19308
19433
  if (!property.isCustom || !value)
19309
19434
  return value;
19310
- if (!!value[JsonObject.positionPropertyName]) {
19311
- delete value[JsonObject.positionPropertyName];
19312
- }
19435
+ this.removePosFromObj(value);
19313
19436
  return value;
19314
19437
  };
19315
19438
  JsonObject.prototype.removePos = function (property, value) {
@@ -19325,9 +19448,14 @@ var JsonObject = /** @class */ (function () {
19325
19448
  this.removePosFromObj(obj[i]);
19326
19449
  }
19327
19450
  }
19451
+ if (typeof obj !== "object")
19452
+ return;
19328
19453
  if (!!obj[JsonObject.positionPropertyName]) {
19329
19454
  delete obj[JsonObject.positionPropertyName];
19330
19455
  }
19456
+ for (var key in obj) {
19457
+ this.removePosFromObj(obj[key]);
19458
+ }
19331
19459
  };
19332
19460
  JsonObject.prototype.isValueArray = function (value) {
19333
19461
  return value && Array.isArray(value);
@@ -19583,7 +19711,10 @@ var ListModel = /** @class */ (function (_super) {
19583
19711
  ListModel.prototype.hasText = function (item, filterStringInLow) {
19584
19712
  if (!filterStringInLow)
19585
19713
  return true;
19586
- var textInLow = (item.title || "").toLocaleLowerCase();
19714
+ var text = item.title || "";
19715
+ if (this.onTextSearchCallback)
19716
+ return this.onTextSearchCallback(item, filterStringInLow);
19717
+ var textInLow = text.toLocaleLowerCase();
19587
19718
  textInLow = _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].comparator.normalizeTextCallback(textInLow, "filter");
19588
19719
  return textInLow.indexOf(filterStringInLow.toLocaleLowerCase()) > -1;
19589
19720
  };
@@ -19629,6 +19760,9 @@ var ListModel = /** @class */ (function (_super) {
19629
19760
  ListModel.prototype.setOnFilterStringChangedCallback = function (callback) {
19630
19761
  this.onFilterStringChangedCallback = callback;
19631
19762
  };
19763
+ ListModel.prototype.setOnTextSearchCallback = function (callback) {
19764
+ this.onTextSearchCallback = callback;
19765
+ };
19632
19766
  ListModel.prototype.setItems = function (items, sortByVisibleIndex) {
19633
19767
  var _this = this;
19634
19768
  if (sortByVisibleIndex === void 0) { sortByVisibleIndex = true; }
@@ -20493,6 +20627,8 @@ var englishStrings = {
20493
20627
  startSurveyText: "Start",
20494
20628
  otherItemText: "Other (describe)",
20495
20629
  noneItemText: "None",
20630
+ refuseItemText: "Refuse to answer",
20631
+ dontKnowItemText: "Don't know",
20496
20632
  selectAllItemText: "Select All",
20497
20633
  progressText: "Page {0} of {1}",
20498
20634
  indexText: "{0} of {1}",
@@ -21312,7 +21448,7 @@ var PageModel = /** @class */ (function (_super) {
21312
21448
  };
21313
21449
  Object.defineProperty(PageModel.prototype, "navigationTitle", {
21314
21450
  /**
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"`.
21451
+ * 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
21452
  *
21317
21453
  * 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
21454
  */
@@ -21334,7 +21470,7 @@ var PageModel = /** @class */ (function (_super) {
21334
21470
  });
21335
21471
  Object.defineProperty(PageModel.prototype, "navigationDescription", {
21336
21472
  /**
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"`.
21473
+ * 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
21474
  */
21339
21475
  get: function () {
21340
21476
  return this.getLocalizableStringText("navigationDescription");
@@ -24294,7 +24430,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24294
24430
  else {
24295
24431
  _this.surveyValue = _this.createSurvey(jsonObj);
24296
24432
  }
24297
- //this.surveyValue.showTitle = false;
24433
+ _this.surveyValue.fitToContainer = true;
24298
24434
  if ("undefined" !== typeof document) {
24299
24435
  _this.windowElement = document.createElement("div");
24300
24436
  }
@@ -24343,6 +24479,20 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24343
24479
  enumerable: false,
24344
24480
  configurable: true
24345
24481
  });
24482
+ Object.defineProperty(PopupSurveyModel.prototype, "isFullScreen", {
24483
+ get: function () {
24484
+ return this.getPropertyValue("isFullScreen", false);
24485
+ },
24486
+ set: function (val) {
24487
+ if (!this.isExpanded && !!val) {
24488
+ this.isExpanded = true;
24489
+ }
24490
+ this.setPropertyValue("isFullScreen", val);
24491
+ this.setCssRoot();
24492
+ },
24493
+ enumerable: false,
24494
+ configurable: true
24495
+ });
24346
24496
  /**
24347
24497
  * Shows the pop-up survey. The survey may appear [expanded or collapsed](#isExpanded).
24348
24498
  *
@@ -24363,6 +24513,9 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24363
24513
  PopupSurveyModel.prototype.hide = function () {
24364
24514
  this.isShowing = false;
24365
24515
  };
24516
+ PopupSurveyModel.prototype.toggleFullScreen = function () {
24517
+ this.isFullScreen = !this.isFullScreen;
24518
+ };
24366
24519
  Object.defineProperty(PopupSurveyModel.prototype, "isExpanded", {
24367
24520
  /**
24368
24521
  * Indicates whether the pop-up window is expanded or collapsed.
@@ -24373,6 +24526,9 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24373
24526
  return this.getPropertyValue("isExpanded", false);
24374
24527
  },
24375
24528
  set: function (val) {
24529
+ if (!!this.isFullScreen && !val) {
24530
+ this.isFullScreen = false;
24531
+ }
24376
24532
  this.setPropertyValue("isExpanded", val);
24377
24533
  },
24378
24534
  enumerable: false,
@@ -24463,6 +24619,22 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24463
24619
  enumerable: false,
24464
24620
  configurable: true
24465
24621
  });
24622
+ Object.defineProperty(PopupSurveyModel.prototype, "allowFullScreen", {
24623
+ /**
24624
+ * Specifies whether to display a button that allow showing pop-up in full-screen mode.
24625
+ *
24626
+ * Default value: `false`
24627
+ *
24628
+ */
24629
+ get: function () {
24630
+ return this.getPropertyValue("allowFullScreen", false);
24631
+ },
24632
+ set: function (val) {
24633
+ this.setPropertyValue("allowFullScreen", val);
24634
+ },
24635
+ enumerable: false,
24636
+ configurable: true
24637
+ });
24466
24638
  Object.defineProperty(PopupSurveyModel.prototype, "css", {
24467
24639
  get: function () {
24468
24640
  return this.survey.css;
@@ -24543,6 +24715,13 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24543
24715
  enumerable: false,
24544
24716
  configurable: true
24545
24717
  });
24718
+ Object.defineProperty(PopupSurveyModel.prototype, "cssHeaderFullScreenButton", {
24719
+ get: function () {
24720
+ return this.getPropertyValue("cssHeaderFullScreenButton", "");
24721
+ },
24722
+ enumerable: false,
24723
+ configurable: true
24724
+ });
24546
24725
  Object.defineProperty(PopupSurveyModel.prototype, "renderedWidth", {
24547
24726
  get: function () {
24548
24727
  var width = this.getPropertyValue("width", "60%");
@@ -24557,7 +24736,7 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24557
24736
  if (!this.css || !this.css.window)
24558
24737
  return;
24559
24738
  var cssWindow = this.css.window;
24560
- this.setPropertyValue("cssRoot", cssWindow.root);
24739
+ this.setCssRoot();
24561
24740
  this.setPropertyValue("cssRootCollapsedMod", cssWindow.rootCollapsedMod);
24562
24741
  this.setPropertyValue("cssRootContent", cssWindow.rootContent);
24563
24742
  this.setPropertyValue("cssBody", cssWindow.body);
@@ -24569,8 +24748,18 @@ var PopupSurveyModel = /** @class */ (function (_super) {
24569
24748
  this.setPropertyValue("cssHeaderButtonsContainer", cssHeader.buttonsContainer);
24570
24749
  this.setPropertyValue("cssHeaderCollapseButton", cssHeader.collapseButton);
24571
24750
  this.setPropertyValue("cssHeaderCloseButton", cssHeader.closeButton);
24751
+ this.setPropertyValue("cssHeaderFullScreenButton", cssHeader.fullScreenButton);
24572
24752
  this.updateCssButton();
24573
24753
  };
24754
+ PopupSurveyModel.prototype.setCssRoot = function () {
24755
+ var cssWindow = this.css.window;
24756
+ if (this.isFullScreen) {
24757
+ this.setPropertyValue("cssRoot", cssWindow.root + " " + cssWindow.rootFullScreenMode);
24758
+ }
24759
+ else {
24760
+ this.setPropertyValue("cssRoot", cssWindow.root);
24761
+ }
24762
+ };
24574
24763
  PopupSurveyModel.prototype.updateCssButton = function () {
24575
24764
  var cssHeader = !!this.css.window ? this.css.window.header : null;
24576
24765
  if (!cssHeader)
@@ -25241,6 +25430,231 @@ function createDialogOptions(componentName, data, onApply, onCancel, onHide, onS
25241
25430
  }
25242
25431
 
25243
25432
 
25433
+ /***/ }),
25434
+
25435
+ /***/ "./src/progress-buttons.ts":
25436
+ /*!*********************************!*\
25437
+ !*** ./src/progress-buttons.ts ***!
25438
+ \*********************************/
25439
+ /*! exports provided: ProgressButtons, ProgressButtonsResponsivityManager */
25440
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
25441
+
25442
+ "use strict";
25443
+ __webpack_require__.r(__webpack_exports__);
25444
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProgressButtons", function() { return ProgressButtons; });
25445
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ProgressButtonsResponsivityManager", function() { return ProgressButtonsResponsivityManager; });
25446
+ /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./base */ "./src/base.ts");
25447
+ /* harmony import */ var _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./defaultCss/defaultV2Css */ "./src/defaultCss/defaultV2Css.ts");
25448
+ /* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./page */ "./src/page.ts");
25449
+ /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
25450
+ var __extends = (undefined && undefined.__extends) || (function () {
25451
+ var extendStatics = function (d, b) {
25452
+ extendStatics = Object.setPrototypeOf ||
25453
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
25454
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
25455
+ return extendStatics(d, b);
25456
+ };
25457
+ return function (d, b) {
25458
+ if (typeof b !== "function" && b !== null)
25459
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
25460
+ extendStatics(d, b);
25461
+ function __() { this.constructor = d; }
25462
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
25463
+ };
25464
+ })();
25465
+
25466
+
25467
+
25468
+
25469
+ var ProgressButtons = /** @class */ (function (_super) {
25470
+ __extends(ProgressButtons, _super);
25471
+ function ProgressButtons(survey) {
25472
+ var _this = _super.call(this) || this;
25473
+ _this.survey = survey;
25474
+ _this.onResize = _this.addEvent();
25475
+ return _this;
25476
+ }
25477
+ ProgressButtons.prototype.isListElementClickable = function (index) {
25478
+ if (!this.survey.onServerValidateQuestions ||
25479
+ this.survey.onServerValidateQuestions.isEmpty ||
25480
+ this.survey.checkErrorsMode === "onComplete") {
25481
+ return true;
25482
+ }
25483
+ return index <= this.survey.currentPageNo + 1;
25484
+ };
25485
+ ProgressButtons.prototype.getRootCss = function (container) {
25486
+ if (container === void 0) { container = "center"; }
25487
+ var result = this.survey.css.progressButtonsContainerCenter;
25488
+ if (this.survey.css.progressButtonsRoot) {
25489
+ result += " " + this.survey.css.progressButtonsRoot + " " + this.survey.css.progressButtonsRoot + "--" + (["footer", "contentBottom"].indexOf(container) !== -1 ? "bottom" : "top");
25490
+ result += " " + this.survey.css.progressButtonsRoot + "--" + (this.showItemTitles ? "with-titles" : "no-titles");
25491
+ }
25492
+ if (this.showItemNumbers && this.survey.css.progressButtonsNumbered) {
25493
+ result += " " + this.survey.css.progressButtonsNumbered;
25494
+ }
25495
+ return result;
25496
+ };
25497
+ ProgressButtons.prototype.getListElementCss = function (index) {
25498
+ if (index >= this.survey.visiblePages.length)
25499
+ return;
25500
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
25501
+ .append(this.survey.css.progressButtonsListElementPassed, this.survey.visiblePages[index].passed)
25502
+ .append(this.survey.css.progressButtonsListElementCurrent, this.survey.currentPageNo === index)
25503
+ .append(this.survey.css.progressButtonsListElementNonClickable, !this.isListElementClickable(index))
25504
+ .toString();
25505
+ };
25506
+ ProgressButtons.prototype.getScrollButtonCss = function (hasScroller, isLeftScroll) {
25507
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
25508
+ .append(this.survey.css.progressButtonsImageButtonLeft, isLeftScroll)
25509
+ .append(this.survey.css.progressButtonsImageButtonRight, !isLeftScroll)
25510
+ .append(this.survey.css.progressButtonsImageButtonHidden, !hasScroller)
25511
+ .toString();
25512
+ };
25513
+ ProgressButtons.prototype.clickListElement = function (element) {
25514
+ if (!(element instanceof _page__WEBPACK_IMPORTED_MODULE_2__["PageModel"])) {
25515
+ element = this.survey.visiblePages[element];
25516
+ }
25517
+ this.survey.tryNavigateToPage(element);
25518
+ };
25519
+ ProgressButtons.prototype.isListContainerHasScroller = function (element) {
25520
+ var listContainerElement = element.querySelector("." + this.survey.css.progressButtonsListContainer);
25521
+ if (!!listContainerElement) {
25522
+ return listContainerElement.scrollWidth > listContainerElement.offsetWidth;
25523
+ }
25524
+ return false;
25525
+ };
25526
+ ProgressButtons.prototype.isCanShowItemTitles = function (element) {
25527
+ var listContainerElement = element.querySelector("ul");
25528
+ if (!listContainerElement || listContainerElement.children.length < 2)
25529
+ return true;
25530
+ if (listContainerElement.clientWidth > listContainerElement.parentElement.clientWidth) {
25531
+ return false;
25532
+ }
25533
+ var expectedElementWidth = listContainerElement.children[0].clientWidth;
25534
+ for (var i = 0; i < listContainerElement.children.length; i++) {
25535
+ if (Math.abs(listContainerElement.children[i].clientWidth - expectedElementWidth) > 5) {
25536
+ return false;
25537
+ }
25538
+ }
25539
+ return true;
25540
+ };
25541
+ ProgressButtons.prototype.clearConnectorsWidth = function (element) {
25542
+ var listContainerElements = element.querySelectorAll(".sd-progress-buttons__connector");
25543
+ for (var i = 0; i < listContainerElements.length; i++) {
25544
+ listContainerElements[i].style.width = "";
25545
+ }
25546
+ };
25547
+ ProgressButtons.prototype.adjustConnectors = function (element) {
25548
+ var listContainerElement = element.querySelector("ul");
25549
+ if (!listContainerElement)
25550
+ return;
25551
+ var listContainerElements = element.querySelectorAll(".sd-progress-buttons__connector");
25552
+ var connectorWidth = listContainerElement.clientWidth / (listContainerElement.children.length - 1) - 4;
25553
+ for (var i = 0; i < listContainerElements.length; i++) {
25554
+ listContainerElements[i].style.width = connectorWidth + "px";
25555
+ }
25556
+ };
25557
+ Object.defineProperty(ProgressButtons.prototype, "showItemNumbers", {
25558
+ get: function () {
25559
+ if (_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__["surveyCss"].currentType !== "defaultV2") {
25560
+ return false;
25561
+ }
25562
+ return this.survey.progressBarShowPageNumbers;
25563
+ },
25564
+ enumerable: false,
25565
+ configurable: true
25566
+ });
25567
+ Object.defineProperty(ProgressButtons.prototype, "showItemTitles", {
25568
+ get: function () {
25569
+ if (_defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_1__["surveyCss"].currentType !== "defaultV2") {
25570
+ return true;
25571
+ }
25572
+ return this.survey.progressBarShowPageTitles;
25573
+ },
25574
+ enumerable: false,
25575
+ configurable: true
25576
+ });
25577
+ ProgressButtons.prototype.getItemNumber = function (page) {
25578
+ var result = "";
25579
+ if (this.showItemNumbers) {
25580
+ result += this.survey.visiblePages.indexOf(page) + 1;
25581
+ }
25582
+ return result;
25583
+ };
25584
+ Object.defineProperty(ProgressButtons.prototype, "headerText", {
25585
+ get: function () {
25586
+ return this.survey.currentPage ? this.survey.currentPage.renderedNavigationTitle : "";
25587
+ },
25588
+ enumerable: false,
25589
+ configurable: true
25590
+ });
25591
+ Object.defineProperty(ProgressButtons.prototype, "footerText", {
25592
+ get: function () {
25593
+ return this.survey.progressText;
25594
+ },
25595
+ enumerable: false,
25596
+ configurable: true
25597
+ });
25598
+ ProgressButtons.prototype.processResponsiveness = function (width) {
25599
+ this.onResize.fire(this, { width: width });
25600
+ };
25601
+ return ProgressButtons;
25602
+ }(_base__WEBPACK_IMPORTED_MODULE_0__["Base"]));
25603
+
25604
+ var ProgressButtonsResponsivityManager = /** @class */ (function () {
25605
+ function ProgressButtonsResponsivityManager(model, element, viewModel) {
25606
+ var _this = this;
25607
+ this.model = model;
25608
+ this.element = element;
25609
+ this.viewModel = viewModel;
25610
+ this.criticalProperties = ["progressBarType", "progressBarShowPageTitles"];
25611
+ this.canShowItemTitles = true;
25612
+ this.processResponsiveness = function (model, options) {
25613
+ _this.viewModel.onUpdateScroller(model.isListContainerHasScroller(_this.element));
25614
+ if (!model.showItemTitles) {
25615
+ _this.model.adjustConnectors(_this.element);
25616
+ return;
25617
+ }
25618
+ if (model.survey.isMobile) {
25619
+ _this.prevWidth = options.width;
25620
+ _this.canShowItemTitles = false;
25621
+ _this.model.adjustConnectors(_this.element);
25622
+ _this.viewModel.onResize(_this.canShowItemTitles);
25623
+ return;
25624
+ }
25625
+ _this.model.clearConnectorsWidth(_this.element);
25626
+ if (_this.timer !== undefined) {
25627
+ clearTimeout(_this.timer);
25628
+ }
25629
+ _this.timer = setTimeout(function () {
25630
+ if (_this.prevWidth === undefined || _this.prevWidth < options.width && !_this.canShowItemTitles || _this.prevWidth > options.width && _this.canShowItemTitles) {
25631
+ _this.prevWidth = options.width;
25632
+ _this.canShowItemTitles = model.isCanShowItemTitles(_this.element);
25633
+ _this.viewModel.onResize(_this.canShowItemTitles);
25634
+ _this.timer = undefined;
25635
+ }
25636
+ }, 10);
25637
+ };
25638
+ this.model.survey.registerFunctionOnPropertiesValueChanged(this.criticalProperties, function () { return _this.forceUpdate(); }, "ProgressButtonsResponsivityManager" + this.viewModel.container);
25639
+ this.model.onResize.add(this.processResponsiveness);
25640
+ this.forceUpdate();
25641
+ }
25642
+ ProgressButtonsResponsivityManager.prototype.forceUpdate = function () {
25643
+ this.viewModel.onUpdateSettings();
25644
+ this.processResponsiveness(this.model, {});
25645
+ };
25646
+ ProgressButtonsResponsivityManager.prototype.dispose = function () {
25647
+ clearTimeout(this.timer);
25648
+ this.model.onResize.remove(this.processResponsiveness);
25649
+ this.model.survey.unRegisterFunctionOnPropertiesValueChanged(this.criticalProperties, "ProgressButtonsResponsivityManager" + this.viewModel.container);
25650
+ this.element = undefined;
25651
+ this.model = undefined;
25652
+ };
25653
+ return ProgressButtonsResponsivityManager;
25654
+ }());
25655
+
25656
+
25657
+
25244
25658
  /***/ }),
25245
25659
 
25246
25660
  /***/ "./src/question.ts":
@@ -28805,7 +29219,6 @@ var QuestionSelectBase = /** @class */ (function (_super) {
28805
29219
  function QuestionSelectBase(name) {
28806
29220
  var _this = _super.call(this, name) || this;
28807
29221
  _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
29222
  _this.isSettingDefaultValue = false;
28810
29223
  _this.isSettingComment = false;
28811
29224
  _this.isRunningChoices = false;
@@ -28814,9 +29227,9 @@ var QuestionSelectBase = /** @class */ (function (_super) {
28814
29227
  _this.headItemsCount = 0;
28815
29228
  _this.footItemsCount = 0;
28816
29229
  _this.prevIsOtherSelected = false;
28817
- var noneItemText = _this.createLocalizableString("noneText", _this.noneItemValue, true, "noneItemText");
28818
- _this.noneItemValue.locOwner = _this;
28819
- _this.noneItemValue.setLocText(noneItemText);
29230
+ _this.noneItemValue = _this.createDefaultItem(_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].noneItemValue, "noneText", "noneItemText");
29231
+ _this.refuseItemValue = _this.createDefaultItem(_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].refuseItemValue, "refuseText", "refuseItemText");
29232
+ _this.dontKnowItemValue = _this.createDefaultItem(_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].dontKnowItemValue, "dontKnowText", "dontKnowItemText");
28820
29233
  _this.createItemValues("choices");
28821
29234
  _this.registerPropertyChangedHandlers(["choices"], function () {
28822
29235
  if (!_this.filterItems()) {
@@ -28824,7 +29237,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
28824
29237
  }
28825
29238
  });
28826
29239
  _this.registerPropertyChangedHandlers(["choicesFromQuestion", "choicesFromQuestionMode", "choiceValuesFromQuestion",
28827
- "choiceTextsFromQuestion", "showNoneItem", "isUsingRestful"], function () {
29240
+ "choiceTextsFromQuestion", "showNoneItem", "showRefuseItem", "showDontKnowItem", "isUsingRestful", "isMessagePanelVisible"], function () {
28828
29241
  _this.onVisibleChoicesChanged();
28829
29242
  });
28830
29243
  _this.registerPropertyChangedHandlers(["hideIfChoicesEmpty"], function () {
@@ -28992,7 +29405,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
28992
29405
  });
28993
29406
  Object.defineProperty(QuestionSelectBase.prototype, "isNoneSelected", {
28994
29407
  get: function () {
28995
- return this.hasNone && this.getIsItemValue(this.renderedValue, this.noneItem);
29408
+ return this.showNoneItem && this.getIsItemValue(this.renderedValue, this.noneItem);
28996
29409
  },
28997
29410
  enumerable: false,
28998
29411
  configurable: true
@@ -29004,6 +29417,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29004
29417
  * When users select the "None" item in multi-select questions, all other items become unselected.
29005
29418
  * @see noneItem
29006
29419
  * @see noneText
29420
+ * @see [settings.noneItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#noneItemValue)
29007
29421
  * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
29008
29422
  */
29009
29423
  get: function () {
@@ -29057,6 +29471,115 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29057
29471
  enumerable: false,
29058
29472
  configurable: true
29059
29473
  });
29474
+ Object.defineProperty(QuestionSelectBase.prototype, "showRefuseItem", {
29475
+ /**
29476
+ * Specifies whether to display the "Refuse to answer" choice item.
29477
+ *
29478
+ * When users select the "Refuse to answer" item in multi-select questions, all other items become unselected.
29479
+ * @see refuseItem
29480
+ * @see refuseItemText
29481
+ * @see [settings.refuseItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#refuseItemValue)
29482
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
29483
+ */
29484
+ get: function () {
29485
+ return this.getPropertyValue("showRefuseItem");
29486
+ },
29487
+ set: function (val) {
29488
+ this.setPropertyValue("showRefuseItem", val);
29489
+ },
29490
+ enumerable: false,
29491
+ configurable: true
29492
+ });
29493
+ Object.defineProperty(QuestionSelectBase.prototype, "refuseItem", {
29494
+ /**
29495
+ * Returns the "Refuse to answer" choice item. Use this property to change the item's `value` or `text`.
29496
+ * @see showRefuseItem
29497
+ */
29498
+ get: function () {
29499
+ return this.refuseItemValue;
29500
+ },
29501
+ enumerable: false,
29502
+ configurable: true
29503
+ });
29504
+ Object.defineProperty(QuestionSelectBase.prototype, "refuseText", {
29505
+ /**
29506
+ * Gets or sets a caption for the "Refuse to answer" choice item.
29507
+ * @see showRefuseItem
29508
+ */
29509
+ get: function () {
29510
+ return this.getLocalizableStringText("refuseText");
29511
+ },
29512
+ set: function (val) {
29513
+ this.setLocalizableStringText("refuseText", val);
29514
+ },
29515
+ enumerable: false,
29516
+ configurable: true
29517
+ });
29518
+ Object.defineProperty(QuestionSelectBase.prototype, "locRefuseText", {
29519
+ get: function () {
29520
+ return this.getLocalizableString("refuseText");
29521
+ },
29522
+ enumerable: false,
29523
+ configurable: true
29524
+ });
29525
+ Object.defineProperty(QuestionSelectBase.prototype, "showDontKnowItem", {
29526
+ /**
29527
+ * Specifies whether to display the "Don't know" choice item.
29528
+ *
29529
+ * When users select the "Don't know" item in multi-select questions, all other items become unselected.
29530
+ * @see dontKnowItem
29531
+ * @see dontKnowItemText
29532
+ * @see [settings.dontKnowItemValue](https://surveyjs.io/form-library/documentation/api-reference/settings#dontKnowItemValue)
29533
+ * @see [settings.specialChoicesOrder](https://surveyjs.io/form-library/documentation/api-reference/settings#specialChoicesOrder)
29534
+ */
29535
+ get: function () {
29536
+ return this.getPropertyValue("showDontKnowItem");
29537
+ },
29538
+ set: function (val) {
29539
+ this.setPropertyValue("showDontKnowItem", val);
29540
+ },
29541
+ enumerable: false,
29542
+ configurable: true
29543
+ });
29544
+ Object.defineProperty(QuestionSelectBase.prototype, "dontKnowItem", {
29545
+ /**
29546
+ * Returns the "Don't know" choice item. Use this property to change the item's `value` or `text`.
29547
+ * @see showDontKnowItem
29548
+ */
29549
+ get: function () {
29550
+ return this.dontKnowItemValue;
29551
+ },
29552
+ enumerable: false,
29553
+ configurable: true
29554
+ });
29555
+ Object.defineProperty(QuestionSelectBase.prototype, "dontKnowText", {
29556
+ /**
29557
+ * Gets or sets a caption for the "Don't know" choice item.
29558
+ * @see showDontKnowItem
29559
+ */
29560
+ get: function () {
29561
+ return this.getLocalizableStringText("dontKnowText");
29562
+ },
29563
+ set: function (val) {
29564
+ this.setLocalizableStringText("dontKnowText", val);
29565
+ },
29566
+ enumerable: false,
29567
+ configurable: true
29568
+ });
29569
+ Object.defineProperty(QuestionSelectBase.prototype, "locDontKnowText", {
29570
+ get: function () {
29571
+ return this.getLocalizableString("dontKnowText");
29572
+ },
29573
+ enumerable: false,
29574
+ configurable: true
29575
+ });
29576
+ QuestionSelectBase.prototype.createDefaultItem = function (defaultValue, name, locName) {
29577
+ var item = new _itemvalue__WEBPACK_IMPORTED_MODULE_3__["ItemValue"](defaultValue);
29578
+ var locStr = this.createLocalizableString(name, item, true, locName);
29579
+ item.locOwner = this;
29580
+ item.setLocText(locStr);
29581
+ return item;
29582
+ };
29060
29583
  Object.defineProperty(QuestionSelectBase.prototype, "choicesVisibleIf", {
29061
29584
  /**
29062
29585
  * A Boolean expression that is evaluated against each choice item. If the expression evaluates to `false`, the choice item becomes hidden.
@@ -29478,7 +30001,11 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29478
30001
  return false;
29479
30002
  if (includeOther && val == this.otherItem.value)
29480
30003
  return false;
29481
- if (this.hasNone && val == this.noneItem.value)
30004
+ if (this.showNoneItem && val == this.noneItem.value)
30005
+ return false;
30006
+ if (this.showRefuseItem && val == this.refuseItem.value)
30007
+ return false;
30008
+ if (this.showDontKnowItem && val == this.dontKnowItem.value)
29482
30009
  return false;
29483
30010
  var choices = isFilteredChoices
29484
30011
  ? this.getFilteredChoices()
@@ -29800,7 +30327,9 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29800
30327
  };
29801
30328
  QuestionSelectBase.prototype.canUseFilteredChoices = function () {
29802
30329
  return (!this.isAddDefaultItems &&
29803
- !this.hasNone &&
30330
+ !this.showNoneItem &&
30331
+ !this.showRefuseItem &&
30332
+ !this.showDontKnowItem &&
29804
30333
  !this.hasOther &&
29805
30334
  this.choicesOrder == "none");
29806
30335
  };
@@ -29818,7 +30347,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29818
30347
  QuestionSelectBase.prototype.addToVisibleChoices = function (items, isAddAll) {
29819
30348
  this.headItemsCount = 0;
29820
30349
  this.footItemsCount = 0;
29821
- if (!this.hasChoicesUrl) {
30350
+ if (!this.isEmptyActiveChoicesInDesign) {
29822
30351
  this.addNewItemToVisibleChoices(items, isAddAll);
29823
30352
  }
29824
30353
  var dict = new Array();
@@ -29853,15 +30382,23 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29853
30382
  }
29854
30383
  };
29855
30384
  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);
30385
+ if (this.supportNone()) {
30386
+ this.addNonChoiceItem(dict, this.noneItem, isAddAll, this.showNoneItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.noneItem);
30387
+ }
30388
+ if (this.supportRefuse()) {
30389
+ this.addNonChoiceItem(dict, this.refuseItem, isAddAll, this.showRefuseItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.refuseItem);
29858
30390
  }
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);
30391
+ if (this.supportDontKnow()) {
30392
+ this.addNonChoiceItem(dict, this.dontKnowItem, isAddAll, this.showDontKnowItem, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.dontKnowItem);
30393
+ }
30394
+ if (this.supportOther()) {
30395
+ this.addNonChoiceItem(dict, this.otherItem, isAddAll, this.hasOther, _settings__WEBPACK_IMPORTED_MODULE_9__["settings"].specialChoicesOrder.otherItem);
29861
30396
  }
29862
30397
  };
29863
- QuestionSelectBase.prototype.addNonChoiceItem = function (dict, item, order) {
29864
- order.forEach(function (val) { return dict.push({ index: val, item: item }); });
30398
+ QuestionSelectBase.prototype.addNonChoiceItem = function (dict, item, isAddAll, showItem, order) {
30399
+ if (this.canShowOptionItem(item, isAddAll, showItem)) {
30400
+ order.forEach(function (val) { return dict.push({ index: val, item: item }); });
30401
+ }
29865
30402
  };
29866
30403
  QuestionSelectBase.prototype.canShowOptionItem = function (item, isAddAll, hasItem) {
29867
30404
  var res = (isAddAll && (!!this.canShowOptionItemCallback ? this.canShowOptionItemCallback(item) : true)) || hasItem;
@@ -29875,7 +30412,11 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29875
30412
  if (item === this.otherItem)
29876
30413
  return this.hasOther;
29877
30414
  if (item === this.noneItem)
29878
- return this.hasNone;
30415
+ return this.showNoneItem;
30416
+ if (item === this.refuseItem)
30417
+ return this.showRefuseItem;
30418
+ if (item === this.dontKnowItem)
30419
+ return this.showDontKnowItem;
29879
30420
  if (item === this.newItemValue)
29880
30421
  return false;
29881
30422
  return true;
@@ -29982,13 +30523,30 @@ var QuestionSelectBase = /** @class */ (function (_super) {
29982
30523
  question.addDependedQuestion(this);
29983
30524
  return this.getChoicesFromArrayQuestion(question);
29984
30525
  }
29985
- if (this.isDesignModeV2 && this.hasChoicesUrl)
30526
+ if (this.isEmptyActiveChoicesInDesign)
29986
30527
  return [];
29987
30528
  return this.choicesFromUrl ? this.choicesFromUrl : this.getChoices();
29988
30529
  },
29989
30530
  enumerable: false,
29990
30531
  configurable: true
29991
30532
  });
30533
+ Object.defineProperty(QuestionSelectBase.prototype, "isMessagePanelVisible", {
30534
+ get: function () {
30535
+ return this.getPropertyValue("isMessagePanelVisible", false);
30536
+ },
30537
+ set: function (val) {
30538
+ this.setPropertyValue("isMessagePanelVisible", val);
30539
+ },
30540
+ enumerable: false,
30541
+ configurable: true
30542
+ });
30543
+ Object.defineProperty(QuestionSelectBase.prototype, "isEmptyActiveChoicesInDesign", {
30544
+ get: function () {
30545
+ return this.isDesignModeV2 && (this.hasChoicesUrl || this.isMessagePanelVisible);
30546
+ },
30547
+ enumerable: false,
30548
+ configurable: true
30549
+ });
29992
30550
  QuestionSelectBase.prototype.getCarryForwardQuestion = function (data) {
29993
30551
  var question = this.findCarryForwardQuestion(data);
29994
30552
  var selBaseQuestion = this.getQuestionWithChoicesCore(question);
@@ -30059,7 +30617,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30059
30617
  : undefined;
30060
30618
  var choices = question.visibleChoices;
30061
30619
  for (var i = 0; i < choices.length; i++) {
30062
- if (this.isBuiltInChoice(choices[i], question))
30620
+ if (question.isBuiltInChoice(choices[i]))
30063
30621
  continue;
30064
30622
  if (isSelected === undefined) {
30065
30623
  res.push(this.copyChoiceItem(choices[i]));
@@ -30088,7 +30646,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30088
30646
  choices = this.visibleChoices;
30089
30647
  }
30090
30648
  for (var i = 0; i < choices.length; i++) {
30091
- if (!this.isBuiltInChoice(choices[i], this))
30649
+ if (!this.isBuiltInChoice(choices[i]))
30092
30650
  return true;
30093
30651
  }
30094
30652
  return false;
@@ -30096,10 +30654,16 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30096
30654
  enumerable: false,
30097
30655
  configurable: true
30098
30656
  });
30099
- QuestionSelectBase.prototype.isBuiltInChoice = function (item, question) {
30100
- return (item === question.noneItem ||
30101
- item === question.otherItem ||
30102
- item === question.newItemValue);
30657
+ QuestionSelectBase.prototype.isBuiltInChoice = function (item) {
30658
+ return this.isNoneItem(item) ||
30659
+ item === this.otherItem ||
30660
+ item === this.newItemValue;
30661
+ };
30662
+ QuestionSelectBase.prototype.isNoneItem = function (item) {
30663
+ return this.getNoneItems().indexOf(item) > -1;
30664
+ };
30665
+ QuestionSelectBase.prototype.getNoneItems = function () {
30666
+ return [this.noneItem, this.refuseItem, this.dontKnowItem];
30103
30667
  };
30104
30668
  QuestionSelectBase.prototype.getChoices = function () {
30105
30669
  return this.choices;
@@ -30110,6 +30674,12 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30110
30674
  QuestionSelectBase.prototype.supportNone = function () {
30111
30675
  return this.isSupportProperty("showNoneItem");
30112
30676
  };
30677
+ QuestionSelectBase.prototype.supportRefuse = function () {
30678
+ return this.isSupportProperty("showRefuseItem");
30679
+ };
30680
+ QuestionSelectBase.prototype.supportDontKnow = function () {
30681
+ return this.isSupportProperty("showDontKnowItem");
30682
+ };
30113
30683
  QuestionSelectBase.prototype.isSupportProperty = function (propName) {
30114
30684
  return (!this.isDesignMode ||
30115
30685
  this.getPropertyByName(propName).visible);
@@ -30404,15 +30974,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30404
30974
  configurable: true
30405
30975
  });
30406
30976
  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))
30977
+ if (!this.hasValueToClearIncorrectValues() || !this.canClearIncorrectValues())
30416
30978
  return;
30417
30979
  if (this.clearIncorrectValuesCallback) {
30418
30980
  this.clearIncorrectValuesCallback();
@@ -30421,6 +30983,15 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30421
30983
  this.clearIncorrectValuesCore();
30422
30984
  }
30423
30985
  };
30986
+ QuestionSelectBase.prototype.canClearIncorrectValues = function () {
30987
+ if (this.carryForwardQuestion && !this.carryForwardQuestion.isReady)
30988
+ return false;
30989
+ if (!!this.survey && this.survey.questionsByValueName(this.getValueName()).length > 1)
30990
+ return false;
30991
+ if (this.hasChoicesUrl && (!this.choicesFromUrl || this.choicesFromUrl.length == 0))
30992
+ return false;
30993
+ return true;
30994
+ };
30424
30995
  QuestionSelectBase.prototype.hasValueToClearIncorrectValues = function () {
30425
30996
  if (!!this.survey && this.survey.keepIncorrectValues)
30426
30997
  return false;
@@ -30556,7 +31127,7 @@ var QuestionSelectBase = /** @class */ (function (_super) {
30556
31127
  Object.defineProperty(QuestionSelectBase.prototype, "dataChoices", {
30557
31128
  get: function () {
30558
31129
  var _this = this;
30559
- return this.visibleChoices.filter(function (item) { return !_this.isBuiltInChoice(item, _this); });
31130
+ return this.visibleChoices.filter(function (item) { return !_this.isBuiltInChoice(item); });
30560
31131
  },
30561
31132
  enumerable: false,
30562
31133
  configurable: true
@@ -30898,6 +31469,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
30898
31469
  { name: "separateSpecialChoices:boolean", visible: false },
30899
31470
  { name: "showOtherItem:boolean", alternativeName: "hasOther" },
30900
31471
  { name: "showNoneItem:boolean", alternativeName: "hasNone" },
31472
+ { name: "showRefuseItem:boolean", visible: false },
31473
+ { name: "showDontKnowItem:boolean", visible: false },
30901
31474
  {
30902
31475
  name: "otherPlaceholder",
30903
31476
  alternativeName: "otherPlaceHolder",
@@ -30912,7 +31485,23 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("selectbase", [
30912
31485
  serializationProperty: "locNoneText",
30913
31486
  dependsOn: "showNoneItem",
30914
31487
  visibleIf: function (obj) {
30915
- return obj.hasNone;
31488
+ return obj.showNoneItem;
31489
+ },
31490
+ },
31491
+ {
31492
+ name: "refuseText",
31493
+ serializationProperty: "locRefuseText",
31494
+ dependsOn: "showRefuseItem",
31495
+ visibleIf: function (obj) {
31496
+ return obj.showRefuseItem;
31497
+ },
31498
+ },
31499
+ {
31500
+ name: "dontKnowText",
31501
+ serializationProperty: "locDontKnowText",
31502
+ dependsOn: "showDontKnowItem",
31503
+ visibleIf: function (obj) {
31504
+ return obj.showDontKnowItem;
30916
31505
  },
30917
31506
  },
30918
31507
  {
@@ -31765,8 +32354,11 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
31765
32354
  * @see showSelectAllItem
31766
32355
  */
31767
32356
  get: function () {
31768
- if (this.isItemSelected(this.noneItem))
31769
- return false;
32357
+ var noneItems = this.getNoneItems();
32358
+ for (var i = 0; i < noneItems.length; i++) {
32359
+ if (this.isItemSelected(noneItems[i]))
32360
+ return false;
32361
+ }
31770
32362
  var items = this.getVisibleEnableItems();
31771
32363
  if (items.length === 0)
31772
32364
  return false;
@@ -31823,19 +32415,24 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
31823
32415
  }
31824
32416
  }
31825
32417
  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
- }
32418
+ if (this.isNoneItem(item)) {
32419
+ this.renderedValue = [item.value];
31832
32420
  }
31833
32421
  else {
31834
- if (index > -1) {
31835
- newValue.splice(index, 1);
32422
+ var newValue = [].concat(this.renderedValue || []);
32423
+ var index = newValue.indexOf(item.value);
32424
+ if (checked) {
32425
+ if (index < 0) {
32426
+ newValue.push(item.value);
32427
+ }
32428
+ }
32429
+ else {
32430
+ if (index > -1) {
32431
+ newValue.splice(index, 1);
32432
+ }
31836
32433
  }
32434
+ this.renderedValue = newValue;
31837
32435
  }
31838
- this.renderedValue = newValue;
31839
32436
  }
31840
32437
  };
31841
32438
  QuestionCheckboxModel.prototype.isItemSelectedCore = function (item) {
@@ -32064,21 +32661,7 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
32064
32661
  value = [];
32065
32662
  if (this.isTwoValueEquals(value, newValue))
32066
32663
  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
- }
32664
+ this.removeNoneItemsValues(value, newValue);
32082
32665
  _super.prototype.setNewValue.call(this, newValue);
32083
32666
  };
32084
32667
  QuestionCheckboxModel.prototype.getIsMultipleValue = function () {
@@ -32106,15 +32689,47 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
32106
32689
  }
32107
32690
  return -1;
32108
32691
  };
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;
32692
+ QuestionCheckboxModel.prototype.removeNoneItemsValues = function (value, newValue) {
32693
+ var noneValues = [];
32694
+ if (this.showNoneItem)
32695
+ noneValues.push(this.noneItem.value);
32696
+ if (this.showRefuseItem)
32697
+ noneValues.push(this.refuseItem.value);
32698
+ if (this.showDontKnowItem)
32699
+ noneValues.push(this.dontKnowItem.value);
32700
+ if (noneValues.length > 0) {
32701
+ var prevNone = this.noneIndexInArray(value, noneValues);
32702
+ var newNone = this.noneIndexInArray(newValue, noneValues);
32703
+ if (prevNone.index > -1) {
32704
+ if (prevNone.val === newNone.val) {
32705
+ if (newValue.length > 0) {
32706
+ newValue.splice(newNone.index, 1);
32707
+ }
32708
+ }
32709
+ else {
32710
+ var prevNewNone = this.noneIndexInArray(newValue, [prevNone.val]);
32711
+ if (prevNewNone.index > -1 && prevNewNone.index < newValue.length - 1) {
32712
+ newValue.splice(prevNewNone.index, 1);
32713
+ }
32714
+ }
32715
+ }
32716
+ else {
32717
+ if (newNone.index > -1 && newValue.length > 1) {
32718
+ var itemVal = this.convertValueToObject([newNone.val])[0];
32719
+ newValue.splice(0, newValue.length, itemVal);
32720
+ }
32721
+ }
32116
32722
  }
32117
- return -1;
32723
+ };
32724
+ QuestionCheckboxModel.prototype.noneIndexInArray = function (val, noneValues) {
32725
+ if (!Array.isArray(val))
32726
+ return { index: -1, val: undefined };
32727
+ for (var i = val.length - 1; i >= 0; i--) {
32728
+ var index = noneValues.indexOf(this.getRealValue(val[i]));
32729
+ if (index > -1)
32730
+ return { index: i, val: noneValues[index] };
32731
+ }
32732
+ return { index: -1, val: undefined };
32118
32733
  };
32119
32734
  QuestionCheckboxModel.prototype.canUseFilteredChoices = function () {
32120
32735
  return !this.hasSelectAll && _super.prototype.canUseFilteredChoices.call(this);
@@ -32124,12 +32739,12 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
32124
32739
  };
32125
32740
  QuestionCheckboxModel.prototype.addNonChoicesItems = function (dict, isAddAll) {
32126
32741
  _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);
32742
+ if (this.supportSelectAll()) {
32743
+ this.addNonChoiceItem(dict, this.selectAllItem, isAddAll, this.hasSelectAll, _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].specialChoicesOrder.selectAllItem);
32129
32744
  }
32130
32745
  };
32131
- QuestionCheckboxModel.prototype.isBuiltInChoice = function (item, question) {
32132
- return item === question.selectAllItem || _super.prototype.isBuiltInChoice.call(this, item, question);
32746
+ QuestionCheckboxModel.prototype.isBuiltInChoice = function (item) {
32747
+ return item === this.selectAllItem || _super.prototype.isBuiltInChoice.call(this, item);
32133
32748
  };
32134
32749
  QuestionCheckboxModel.prototype.isItemInList = function (item) {
32135
32750
  if (item == this.selectAllItem)
@@ -32748,8 +33363,8 @@ var ComponentQuestionJSON = /** @class */ (function () {
32748
33363
  });
32749
33364
  ComponentQuestionJSON.prototype.getDynamicProperties = function () {
32750
33365
  if (!Array.isArray(this.dynamicProperties)) {
33366
+ this.dynamicProperties = this.calcDynamicProperties();
32751
33367
  }
32752
- this.dynamicProperties = this.calcDynamicProperties();
32753
33368
  return this.dynamicProperties;
32754
33369
  };
32755
33370
  ComponentQuestionJSON.prototype.calcDynamicProperties = function () {
@@ -33122,9 +33737,29 @@ var QuestionCustomModel = /** @class */ (function (_super) {
33122
33737
  QuestionCustomModel.prototype.getDynamicType = function () {
33123
33738
  return this.questionWrapper ? this.questionWrapper.getType() : "question";
33124
33739
  };
33740
+ QuestionCustomModel.prototype.getOriginalObj = function () {
33741
+ return this.questionWrapper;
33742
+ };
33125
33743
  QuestionCustomModel.prototype.createWrapper = function () {
33744
+ var _this = this;
33126
33745
  this.questionWrapper = this.createQuestion();
33127
33746
  this.createDynamicProperties(this.questionWrapper);
33747
+ if (this.getDynamicProperties().length > 0) {
33748
+ this.questionWrapper.onPropertyValueChangedCallback = function (name, oldValue, newValue, sender, arrayChanges) {
33749
+ var prop = _this.getDynamicProperty(name);
33750
+ if (prop) {
33751
+ _this.propertyValueChanged(name, oldValue, newValue, arrayChanges);
33752
+ }
33753
+ };
33754
+ }
33755
+ };
33756
+ QuestionCustomModel.prototype.getDynamicProperty = function (name) {
33757
+ var props = this.getDynamicProperties();
33758
+ for (var i = 0; i < props.length; i++) {
33759
+ if (props[i].name === name)
33760
+ return props[i];
33761
+ }
33762
+ return null;
33128
33763
  };
33129
33764
  QuestionCustomModel.prototype.getElement = function () {
33130
33765
  return this.contentQuestion;
@@ -33534,6 +34169,13 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
33534
34169
  _super.prototype.setValue.call(this, name, newValue, locNotification, allowNotifyValueChanged);
33535
34170
  this.settingNewValue = false;
33536
34171
  };
34172
+ QuestionCompositeModel.prototype.getFilteredValues = function () {
34173
+ var values = !!this.data ? this.data.getFilteredValues() : {};
34174
+ if (!!this.contentPanel) {
34175
+ values[QuestionCompositeModel.ItemVariableName] = this.contentPanel.getValue();
34176
+ }
34177
+ return values;
34178
+ };
33537
34179
  QuestionCompositeModel.prototype.updateValueCoreWithPanelValue = function () {
33538
34180
  var panelValue = this.getContentPanelValue();
33539
34181
  if (this.isTwoValueEquals(this.getValueCore(), panelValue))
@@ -34052,6 +34694,9 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
34052
34694
  }
34053
34695
  })
34054
34696
  ], QuestionDropdownModel.prototype, "searchEnabled", void 0);
34697
+ __decorate([
34698
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
34699
+ ], QuestionDropdownModel.prototype, "searchMode", void 0);
34055
34700
  __decorate([
34056
34701
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
34057
34702
  ], QuestionDropdownModel.prototype, "inputHasValue", void 0);
@@ -34079,6 +34724,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("dropdown", [
34079
34724
  { name: "autocomplete", alternativeName: "autoComplete", choices: _settings__WEBPACK_IMPORTED_MODULE_5__["settings"].questions.dataList, },
34080
34725
  { name: "renderAs", default: "default", visible: false },
34081
34726
  { name: "searchEnabled:boolean", default: true, visible: false },
34727
+ { name: "searchMode", default: "contains", choices: ["contains", "startsWith"], },
34082
34728
  { name: "choicesLazyLoadEnabled:boolean", default: false, visible: false },
34083
34729
  { name: "choicesLazyLoadPageSize:number", default: 25, visible: false },
34084
34730
  { name: "inputFieldComponent", visible: false },
@@ -34944,7 +35590,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
34944
35590
  };
34945
35591
  _this.doClean = function () {
34946
35592
  if (_this.needConfirmRemoveFile) {
34947
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); }, undefined, _this.getLocale());
35593
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(_this.confirmRemoveAllMessage, function () { _this.clearFilesCore(); }, undefined, _this.getLocale(), _this.survey.rootElement);
34948
35594
  return;
34949
35595
  }
34950
35596
  _this.clearFilesCore();
@@ -35298,6 +35944,18 @@ var QuestionFileModel = /** @class */ (function (_super) {
35298
35944
  enumerable: false,
35299
35945
  configurable: true
35300
35946
  });
35947
+ QuestionFileModel.prototype.chooseFile = function () {
35948
+ var _this = this;
35949
+ var inputElement = document.getElementById(this.inputId);
35950
+ if (inputElement) {
35951
+ if (this.survey) {
35952
+ this.survey.chooseFiles(inputElement, function (files) { return _this.loadFiles(files); }, { element: this });
35953
+ }
35954
+ else {
35955
+ inputElement.click();
35956
+ }
35957
+ }
35958
+ };
35301
35959
  Object.defineProperty(QuestionFileModel.prototype, "needConfirmRemoveFile", {
35302
35960
  /**
35303
35961
  * Specifies whether users should confirm file deletion.
@@ -35834,7 +36492,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
35834
36492
  QuestionFileModel.prototype.doRemoveFile = function (data) {
35835
36493
  var _this = this;
35836
36494
  if (this.needConfirmRemoveFile) {
35837
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); }, undefined, this.getLocale());
36495
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["confirmActionAsync"])(this.getConfirmRemoveMessage(data.name), function () { _this.removeFileCore(data); }, undefined, this.getLocale(), this.survey.rootElement);
35838
36496
  return;
35839
36497
  }
35840
36498
  this.removeFileCore(data);
@@ -35859,9 +36517,12 @@ var QuestionFileModel = /** @class */ (function (_super) {
35859
36517
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: 0 })
35860
36518
  ], QuestionFileModel.prototype, "indexToShow", void 0);
35861
36519
  __decorate([
35862
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: 1, onSet: function (_, target) {
36520
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
36521
+ defaultValue: 1,
36522
+ onSet: function (_, target) {
35863
36523
  target.updateFileNavigator();
35864
- } })
36524
+ }
36525
+ })
35865
36526
  ], QuestionFileModel.prototype, "pageSize", void 0);
35866
36527
  __decorate([
35867
36528
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ defaultValue: false })
@@ -35870,11 +36531,13 @@ var QuestionFileModel = /** @class */ (function (_super) {
35870
36531
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
35871
36532
  ], QuestionFileModel.prototype, "allowCameraAccess", void 0);
35872
36533
  __decorate([
35873
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ onSet: function (val, obj) {
36534
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
36535
+ onSet: function (val, obj) {
35874
36536
  if (!obj.isLoadingFromJson) {
35875
36537
  obj.updateCurrentMode();
35876
36538
  }
35877
- } })
36539
+ }
36540
+ })
35878
36541
  ], QuestionFileModel.prototype, "sourceType", void 0);
35879
36542
  __decorate([
35880
36543
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
@@ -36642,12 +37305,10 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
36642
37305
  enumerable: false,
36643
37306
  configurable: true
36644
37307
  });
36645
- QuestionImagePickerModel.prototype.supportOther = function () {
36646
- return false;
36647
- };
36648
- QuestionImagePickerModel.prototype.supportNone = function () {
36649
- return false;
36650
- };
37308
+ QuestionImagePickerModel.prototype.supportOther = function () { return false; };
37309
+ QuestionImagePickerModel.prototype.supportNone = function () { return false; };
37310
+ QuestionImagePickerModel.prototype.supportRefuse = function () { return false; };
37311
+ QuestionImagePickerModel.prototype.supportDontKnow = function () { return false; };
36651
37312
  QuestionImagePickerModel.prototype.isAnswerCorrect = function () {
36652
37313
  if (!this.multiSelect)
36653
37314
  return _super.prototype.isAnswerCorrect.call(this);
@@ -36871,7 +37532,7 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
36871
37532
  enumerable: false,
36872
37533
  configurable: true
36873
37534
  });
36874
- QuestionImagePickerModel.prototype.isBuiltInChoice = function (item, question) {
37535
+ QuestionImagePickerModel.prototype.isBuiltInChoice = function (item) {
36875
37536
  return false;
36876
37537
  };
36877
37538
  QuestionImagePickerModel.prototype.addToVisibleChoices = function (items, isAddAll) {
@@ -37022,6 +37683,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("imagepicker", [
37022
37683
  { name: "showOtherItem", visible: false },
37023
37684
  { name: "otherText", visible: false },
37024
37685
  { name: "showNoneItem", visible: false },
37686
+ { name: "showRefuseItem", visible: false },
37687
+ { name: "showDontKnowItem", visible: false },
37025
37688
  { name: "noneText", visible: false },
37026
37689
  { name: "optionsCaption", visible: false },
37027
37690
  { name: "otherErrorText", visible: false },
@@ -37128,7 +37791,7 @@ var MatrixRowModel = /** @class */ (function (_super) {
37128
37791
  _this.item = item;
37129
37792
  _this.fullName = fullName;
37130
37793
  _this.data = data;
37131
- _this.value = value;
37794
+ _this.setValueDirectly(value);
37132
37795
  _this.cellClick = function (column) {
37133
37796
  _this.value = column.value;
37134
37797
  };
@@ -38286,6 +38949,9 @@ var MatrixDropdownCell = /** @class */ (function () {
38286
38949
  enumerable: false,
38287
38950
  configurable: true
38288
38951
  });
38952
+ MatrixDropdownCell.prototype.getQuestionWrapperClassName = function (className) {
38953
+ return className;
38954
+ };
38289
38955
  MatrixDropdownCell.prototype.runCondition = function (values, properties) {
38290
38956
  this.question.runCondition(values, properties);
38291
38957
  };
@@ -38325,6 +38991,22 @@ var MatrixDropdownTotalCell = /** @class */ (function (_super) {
38325
38991
  this.question.unlocCalculation();
38326
38992
  this.question.runIfReadOnly = true;
38327
38993
  };
38994
+ MatrixDropdownTotalCell.prototype.getQuestionWrapperClassName = function (className) {
38995
+ var result = _super.prototype.getQuestionWrapperClassName.call(this, className);
38996
+ if (!result) {
38997
+ return result;
38998
+ }
38999
+ if (this.question.expression && this.question.expression != "''") {
39000
+ result += " " + className + "--expression";
39001
+ }
39002
+ var alignment = this.column.totalAlignment;
39003
+ if (alignment === "auto") {
39004
+ if (this.column.cellType === "dropdown") {
39005
+ alignment = "left";
39006
+ }
39007
+ }
39008
+ return result + " " + className + "--" + alignment;
39009
+ };
38328
39010
  MatrixDropdownTotalCell.prototype.getTotalExpression = function () {
38329
39011
  if (!!this.column.totalExpression)
38330
39012
  return this.column.totalExpression;
@@ -40766,9 +41448,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownb
40766
41448
  default: "none",
40767
41449
  },
40768
41450
  { name: "cellErrorLocation", default: "default", choices: ["default", "top", "bottom"] },
40769
- { name: "detailErrorLocation", default: "default", choices: ["default", "top", "bottom"], visibleIf: function (obj) { return !!obj && obj.detailPanelMode != "none"; }
41451
+ {
41452
+ name: "detailErrorLocation", default: "default", choices: ["default", "top", "bottom"],
41453
+ visibleIf: function (obj) { return !!obj && obj.detailPanelMode != "none"; }
40770
41454
  },
40771
- "horizontalScroll:boolean",
41455
+ { name: "horizontalScroll:boolean", visible: false, },
40772
41456
  {
40773
41457
  name: "choices:itemvalue[]", uniqueProperty: "value",
40774
41458
  },
@@ -41565,6 +42249,32 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
41565
42249
  enumerable: false,
41566
42250
  configurable: true
41567
42251
  });
42252
+ Object.defineProperty(MatrixDropdownColumn.prototype, "totalAlignment", {
42253
+ /**
42254
+ * An alignment for calculated total values.
42255
+ *
42256
+ * Possible values:
42257
+ *
42258
+ * - `"left"`
42259
+ * - `"center"`
42260
+ * - `"right"`
42261
+ * - `"auto"` (default) - Applies one of the values above based on the column's [cell type](#cellType).
42262
+ *
42263
+ * [View Demo](https://surveyjs.io/form-library/examples/aggregate-data-within-form/ (linkStyle))
42264
+ * @see totalType
42265
+ * @see totalFormat
42266
+ * @see totalCurrency
42267
+ * @see totalDisplayStyle
42268
+ */
42269
+ get: function () {
42270
+ return this.getPropertyValue("totalAlignment");
42271
+ },
42272
+ set: function (val) {
42273
+ this.setPropertyValue("totalAlignment", val);
42274
+ },
42275
+ enumerable: false,
42276
+ configurable: true
42277
+ });
41568
42278
  Object.defineProperty(MatrixDropdownColumn.prototype, "totalCurrency", {
41569
42279
  /**
41570
42280
  * Specifies a currency used to display calculated total values. Applies only if [`totalDisplayStyle`](#totalDisplayStyle) is set to `"currency"`.
@@ -41883,6 +42593,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownc
41883
42593
  default: "none",
41884
42594
  choices: ["none", "decimal", "currency", "percent"],
41885
42595
  },
42596
+ {
42597
+ name: "totalAlignment",
42598
+ default: "auto",
42599
+ choices: ["auto", "left", "center", "right"],
42600
+ },
41886
42601
  {
41887
42602
  name: "totalCurrency",
41888
42603
  choices: function () {
@@ -42073,6 +42788,13 @@ var QuestionMatrixDropdownRenderedCell = /** @class */ (function () {
42073
42788
  enumerable: false,
42074
42789
  configurable: true
42075
42790
  });
42791
+ Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, "cellQuestionWrapperClassName", {
42792
+ get: function () {
42793
+ return this.cell.getQuestionWrapperClassName(this.matrix.cssClasses.cellQuestionWrapper);
42794
+ },
42795
+ enumerable: false,
42796
+ configurable: true
42797
+ });
42076
42798
  Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, "headers", {
42077
42799
  get: function () {
42078
42800
  if (this.cell && this.cell.column) {
@@ -43755,7 +44477,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
43755
44477
  confirmDelete = this.isRequireConfirmOnRowDelete(index);
43756
44478
  }
43757
44479
  if (confirmDelete) {
43758
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); }, undefined, this.getLocale());
44480
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_5__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removeRowAsync(index, row); }, undefined, this.getLocale(), this.survey.rootElement);
43759
44481
  return;
43760
44482
  }
43761
44483
  this.removeRowAsync(index, row);
@@ -46935,7 +47657,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
46935
47657
  if (!this.canRemovePanel)
46936
47658
  return;
46937
47659
  if (this.isRequireConfirmOnDelete(value)) {
46938
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); }, undefined, this.getLocale());
47660
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["confirmActionAsync"])(this.confirmDeleteText, function () { _this.removePanel(value); }, undefined, this.getLocale(), this.survey.rootElement);
46939
47661
  }
46940
47662
  else {
46941
47663
  this.removePanel(value);
@@ -47344,10 +48066,13 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
47344
48066
  };
47345
48067
  QuestionPanelDynamicModel.prototype.clearValueInPanelsIfInvisible = function (reason) {
47346
48068
  for (var i = 0; i < this.panelsCore.length; i++) {
47347
- var questions = this.panelsCore[i].questions;
48069
+ var panel = this.panelsCore[i];
48070
+ var questions = panel.questions;
47348
48071
  this.isSetPanelItemData = {};
47349
48072
  for (var j = 0; j < questions.length; j++) {
47350
48073
  var q = questions[j];
48074
+ if (q.visible && !panel.isVisible)
48075
+ continue;
47351
48076
  q.clearValueIfInvisible(reason);
47352
48077
  this.isSetPanelItemData[q.getValueName()] = this.maxCheckCount + 1;
47353
48078
  }
@@ -48664,15 +49389,11 @@ var QuestionRankingModel = /** @class */ (function (_super) {
48664
49389
  QuestionRankingModel.prototype.beforeDestroyQuestionElement = function (el) {
48665
49390
  _super.prototype.beforeDestroyQuestionElement.call(this, el);
48666
49391
  };
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
- };
49392
+ QuestionRankingModel.prototype.supportSelectAll = function () { return false; };
49393
+ QuestionRankingModel.prototype.supportOther = function () { return false; };
49394
+ QuestionRankingModel.prototype.supportNone = function () { return false; };
49395
+ QuestionRankingModel.prototype.supportRefuse = function () { return false; };
49396
+ QuestionRankingModel.prototype.supportDontKnow = function () { return false; };
48676
49397
  QuestionRankingModel.prototype.handleKeydownSelectToRank = function (event, movedElement) {
48677
49398
  if (this.isDesignMode)
48678
49399
  return;
@@ -48859,6 +49580,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_3__["Serializer"].addClass("ranking", [
48859
49580
  { name: "otherErrorText", visible: false, isSerializable: false },
48860
49581
  { name: "storeOthersAsComment", visible: false, isSerializable: false },
48861
49582
  { name: "showNoneItem", visible: false, isSerializable: false },
49583
+ { name: "showRefuseItem", visible: false, isSerializable: false },
49584
+ { name: "showDontKnowItem", visible: false, isSerializable: false },
48862
49585
  { name: "noneText", visible: false, isSerializable: false },
48863
49586
  { name: "showSelectAllItem", visible: false, isSerializable: false },
48864
49587
  { name: "selectAllText", visible: false, isSerializable: false },
@@ -49562,8 +50285,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
49562
50285
  });
49563
50286
  Object.defineProperty(QuestionRatingModel.prototype, "ratingRootCss", {
49564
50287
  get: function () {
49565
- var baseClass = ((this.displayMode == "buttons" || (!!this.survey && this.survey.isDesignMode)) && this.cssClasses.rootWrappable) ?
49566
- this.cssClasses.rootWrappable : this.cssClasses.root;
50288
+ var baseClassModifier = ((this.displayMode == "buttons" || (!!this.survey && this.survey.isDesignMode)) && this.cssClasses.rootWrappable) ?
50289
+ this.cssClasses.rootWrappable : "";
49567
50290
  var rootClassModifier = "";
49568
50291
  if (this.hasMaxLabel || this.hasMinLabel) {
49569
50292
  if (this.rateDescriptionLocation == "top")
@@ -49574,7 +50297,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
49574
50297
  rootClassModifier = this.cssClasses.rootLabelsDiagonal;
49575
50298
  }
49576
50299
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
49577
- .append(baseClass)
50300
+ .append(this.cssClasses.root)
50301
+ .append(baseClassModifier)
49578
50302
  .append(rootClassModifier)
49579
50303
  .append(this.cssClasses.itemSmall, this.itemSmallMode && this.rateType != "labels")
49580
50304
  .toString();
@@ -51074,7 +51798,7 @@ var QuestionTextModel = /** @class */ (function (_super) {
51074
51798
  configurable: true
51075
51799
  });
51076
51800
  QuestionTextModel.prototype.getMaxLength = function () {
51077
- if (this.inputType !== "text")
51801
+ if (!this.isTextInput)
51078
51802
  return null;
51079
51803
  return _super.prototype.getMaxLength.call(this);
51080
51804
  };
@@ -52652,8 +53376,8 @@ var settings = {
52652
53376
  * @param message A message to be displayed in the confirm dialog window.
52653
53377
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
52654
53378
  */
52655
- confirmActionAsync: function (message, callback, applyTitle, locale) {
52656
- return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle, locale);
53379
+ confirmActionAsync: function (message, callback, applyTitle, locale, rootElement) {
53380
+ return Object(_utils_utils__WEBPACK_IMPORTED_MODULE_0__["showConfirmDialog"])(message, callback, applyTitle, locale, rootElement);
52657
53381
  },
52658
53382
  /**
52659
53383
  * A minimum width value for all survey elements.
@@ -52704,15 +53428,27 @@ var settings = {
52704
53428
  */
52705
53429
  showItemsInOrder: "default",
52706
53430
  /**
52707
- * A value to save in survey results when respondents select the None choice item.
53431
+ * A value to save in survey results when respondents select the "None" choice item.
52708
53432
  *
52709
53433
  * Default value: `"none"`
52710
53434
  */
52711
53435
  noneItemValue: "none",
52712
53436
  /**
52713
- * An object whose properties specify the order of the special choice items (None, Other, Select All) in select-based questions.
53437
+ * A value to save in survey results when respondents select the "Refuse to answer" choice item.
53438
+ *
53439
+ * Default value: `"refused"`
53440
+ */
53441
+ refuseItemValue: "refused",
53442
+ /**
53443
+ * A value to save in survey results when respondents select the "Don't know" choice item.
52714
53444
  *
52715
- * Default value: `{ selectAllItem: [-1], noneItem: [1], otherItem: [2] }`
53445
+ * Default value: `"dontknow"`
53446
+ */
53447
+ dontKnowItemValue: "dontknow",
53448
+ /**
53449
+ * 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.
53450
+ *
53451
+ * Default value: `{ selectAllItem: [-1], noneItem: [1], otherItem: [2], dontKnowItem: [3], otherItem: [4] }`
52716
53452
  *
52717
53453
  * 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
53454
  *
@@ -52733,7 +53469,9 @@ var settings = {
52733
53469
  specialChoicesOrder: {
52734
53470
  selectAllItem: [-1],
52735
53471
  noneItem: [1],
52736
- otherItem: [2]
53472
+ refuseItem: [2],
53473
+ dontKnowItem: [3],
53474
+ otherItem: [4]
52737
53475
  },
52738
53476
  /**
52739
53477
  * A list of supported validators by question type.
@@ -52787,6 +53525,12 @@ var settings = {
52787
53525
  * Default value: `true`
52788
53526
  */
52789
53527
  showMaxLengthIndicator: true,
53528
+ /**
53529
+ * Set to `false` to disable animations
53530
+ *
53531
+ * Default value: `true`
53532
+ */
53533
+ animationEnabled: true,
52790
53534
  /**
52791
53535
  * An object that specifies heading levels (`<h1>`, `<h2>`, etc.) to use when rendering survey, page, panel, and question titles.
52792
53536
  *
@@ -52872,7 +53616,8 @@ var settings = {
52872
53616
  "email",
52873
53617
  "impp",
52874
53618
  ]
52875
- }
53619
+ },
53620
+ legacyProgressBarView: false
52876
53621
  };
52877
53622
 
52878
53623
 
@@ -54697,7 +55442,8 @@ __webpack_require__.r(__webpack_exports__);
54697
55442
  /* harmony import */ var _header__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! ./header */ "./src/header.ts");
54698
55443
  /* harmony import */ var _surveytimer__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! ./surveytimer */ "./src/surveytimer.ts");
54699
55444
  /* 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");
55445
+ /* harmony import */ var _progress_buttons__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! ./progress-buttons */ "./src/progress-buttons.ts");
55446
+ /* harmony import */ var _surveyToc__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./surveyToc */ "./src/surveyToc.ts");
54701
55447
  var __extends = (undefined && undefined.__extends) || (function () {
54702
55448
  var extendStatics = function (d, b) {
54703
55449
  extendStatics = Object.setPrototypeOf ||
@@ -54741,6 +55487,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
54741
55487
 
54742
55488
 
54743
55489
 
55490
+
54744
55491
 
54745
55492
 
54746
55493
  /**
@@ -55057,6 +55804,12 @@ var SurveyModel = /** @class */ (function (_super) {
55057
55804
  * @see getResult
55058
55805
  */
55059
55806
  _this.onGetResult = _this.addEvent();
55807
+ /**
55808
+ * An event that is raised when Survey Creator opens a dialog window for users to select files.
55809
+ * @see onUploadFile
55810
+ * @see uploadFiles
55811
+ */
55812
+ _this.onOpenFileChooser = _this.addEvent();
55060
55813
  /**
55061
55814
  * An event that is raised when a File Upload or Signature Pad question starts to upload a file. Applies only if [`storeDataAsText`](https://surveyjs.io/form-library/documentation/api-reference/file-model#storeDataAsText) is `false`. Use this event to upload files to your server.
55062
55815
  *
@@ -55210,6 +55963,12 @@ var SurveyModel = /** @class */ (function (_super) {
55210
55963
  * [View Demo](https://surveyjs.io/form-library/examples/lazy-loading-dropdown/ (linkStyle))
55211
55964
  */
55212
55965
  _this.onChoicesLazyLoad = _this.addEvent();
55966
+ /**
55967
+ * 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.
55968
+ * @see [QuestionDropdownModel.searchEnabled](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model#searchEnabled)
55969
+ * @see [QuestionDropdownModel.searchMode](https://surveyjs.io/form-library/documentation/api-reference/dropdown-menu-model#searchMode)
55970
+ */
55971
+ _this.onChoicesSearch = _this.addEvent();
55213
55972
  /**
55214
55973
  * 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
55974
  *
@@ -55581,6 +56340,7 @@ var SurveyModel = /** @class */ (function (_super) {
55581
56340
  _this.onScrollCallback = undefined;
55582
56341
  }
55583
56342
  });
56343
+ _this.progressBarValue = new _progress_buttons__WEBPACK_IMPORTED_MODULE_23__["ProgressButtons"](_this);
55584
56344
  _this.layoutElements.push({
55585
56345
  id: "timerpanel",
55586
56346
  template: "survey-timerpanel",
@@ -55590,7 +56350,8 @@ var SurveyModel = /** @class */ (function (_super) {
55590
56350
  _this.layoutElements.push({
55591
56351
  id: "progress-buttons",
55592
56352
  component: "sv-progress-buttons",
55593
- data: _this
56353
+ data: _this.progressBar,
56354
+ processResponsiveness: function (width) { return _this.progressBar.processResponsiveness && _this.progressBar.processResponsiveness(width); }
55594
56355
  });
55595
56356
  _this.layoutElements.push({
55596
56357
  id: "progress-questions",
@@ -55615,10 +56376,10 @@ var SurveyModel = /** @class */ (function (_super) {
55615
56376
  _this.addLayoutElement({
55616
56377
  id: "toc-navigation",
55617
56378
  component: "sv-navigation-toc",
55618
- data: new _surveyToc__WEBPACK_IMPORTED_MODULE_23__["TOCModel"](_this)
56379
+ data: new _surveyToc__WEBPACK_IMPORTED_MODULE_24__["TOCModel"](_this)
55619
56380
  });
55620
56381
  _this.layoutElements.push({
55621
- id: "navigationbuttons",
56382
+ id: "buttons-navigation",
55622
56383
  component: "sv-action-bar",
55623
56384
  data: _this.navigationBar
55624
56385
  });
@@ -57560,6 +58321,13 @@ var SurveyModel = /** @class */ (function (_super) {
57560
58321
  enumerable: false,
57561
58322
  configurable: true
57562
58323
  });
58324
+ Object.defineProperty(SurveyModel.prototype, "progressBar", {
58325
+ get: function () {
58326
+ return this.progressBarValue;
58327
+ },
58328
+ enumerable: false,
58329
+ configurable: true
58330
+ });
57563
58331
  Object.defineProperty(SurveyModel.prototype, "showProgressBar", {
57564
58332
  /**
57565
58333
  * Controls the visibility of the progress bar and specifies its position.
@@ -57567,9 +58335,13 @@ var SurveyModel = /** @class */ (function (_super) {
57567
58335
  * Possible values:
57568
58336
  *
57569
58337
  * - `"off"` (default) - Hides the progress bar.
57570
- * - `"top"` - Displays the progress bar above survey content.
58338
+ * - `"aboveHeader"` - Displays the progress bar above the survey header.
58339
+ * - `"belowHeader"` - Displays the progress bar below the survey header.
57571
58340
  * - `"bottom"` - Displays the progress bar below survey content.
57572
- * - `"both"` - Displays the progress bar above and below survey content.
58341
+ * - `"topBottom"` - Displays the progress bar above and below survey content.
58342
+ * - `"auto"` - Automatically selects between `"aboveHeader"` and `"belowHeader"`.
58343
+ * - `"top"` - *(Obsolete)* Use the `"aboveHeader"` or `"belowHeader"` property value instead.
58344
+ * - `"both"` - *(Obsolete)* Use the `"topBottom"` property value instead.
57573
58345
  *
57574
58346
  * [View Demo](https://surveyjs.io/form-library/examples/navigation-default/ (linkStyle))
57575
58347
  * @see progressBarType
@@ -57594,7 +58366,9 @@ var SurveyModel = /** @class */ (function (_super) {
57594
58366
  * - `"questions"` - The number of answered questions.
57595
58367
  * - `"requiredQuestions"` - The number of answered [required questions](https://surveyjs.io/form-library/documentation/api-reference/question#isRequired).
57596
58368
  * - `"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.
58369
+ * - `"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.
58370
+ *
58371
+ * > 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
58372
  *
57599
58373
  * [View Demo](https://surveyjs.io/form-library/examples/navigation-buttons/ (linkStyle))
57600
58374
  * @see progressValue
@@ -57607,16 +58381,33 @@ var SurveyModel = /** @class */ (function (_super) {
57607
58381
  newValue = "correctQuestion";
57608
58382
  if (newValue === "requiredquestion")
57609
58383
  newValue = "requiredQuestion";
58384
+ // if (newValue === "buttons") {
58385
+ // newValue = "pages";
58386
+ // this.progressBarShowPageTitles = true;
58387
+ // }
57610
58388
  this.setPropertyValue("progressBarType", newValue);
57611
58389
  },
57612
58390
  enumerable: false,
57613
58391
  configurable: true
57614
58392
  });
58393
+ Object.defineProperty(SurveyModel.prototype, "progressBarComponentName", {
58394
+ get: function () {
58395
+ var actualProgressBarType = this.progressBarType;
58396
+ if (!_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].legacyProgressBarView && _defaultCss_defaultV2Css__WEBPACK_IMPORTED_MODULE_4__["surveyCss"].currentType === "defaultV2") {
58397
+ if (isStrCiEqual(actualProgressBarType, "pages")) {
58398
+ actualProgressBarType = "buttons";
58399
+ }
58400
+ }
58401
+ return "progress-" + actualProgressBarType;
58402
+ },
58403
+ enumerable: false,
58404
+ configurable: true
58405
+ });
57615
58406
  Object.defineProperty(SurveyModel.prototype, "isShowProgressBarOnTop", {
57616
58407
  get: function () {
57617
58408
  if (!this.canShowProresBar())
57618
58409
  return false;
57619
- return this.showProgressBar === "top" || this.showProgressBar === "both";
58410
+ return ["auto", "aboveheader", "belowheader", "topbottom", "top", "both"].indexOf(this.showProgressBar) !== -1;
57620
58411
  },
57621
58412
  enumerable: false,
57622
58413
  configurable: true
@@ -57625,7 +58416,7 @@ var SurveyModel = /** @class */ (function (_super) {
57625
58416
  get: function () {
57626
58417
  if (!this.canShowProresBar())
57627
58418
  return false;
57628
- return this.showProgressBar === "bottom" || this.showProgressBar === "both";
58419
+ return this.showProgressBar === "bottom" || this.showProgressBar === "both" || this.showProgressBar === "topbottom";
57629
58420
  },
57630
58421
  enumerable: false,
57631
58422
  configurable: true
@@ -59956,6 +60747,7 @@ var SurveyModel = /** @class */ (function (_super) {
59956
60747
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_18__["CssClassBuilder"]()
59957
60748
  .append(this.css.root)
59958
60749
  .append(this.css.rootMobile, this.isMobile)
60750
+ .append(this.css.rootAnimationDisabled, !_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].animationEnabled)
59959
60751
  .append(this.css.rootReadOnly, this.mode === "display")
59960
60752
  .append(this.css.rootCompact, this.isCompact)
59961
60753
  .append(this.css.rootFitToContainer, this.fitToContainer)
@@ -60336,6 +61128,26 @@ var SurveyModel = /** @class */ (function (_super) {
60336
61128
  _survey_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElement"].ScrollElementToTop(options.elementId, scrollIfVisible);
60337
61129
  }
60338
61130
  };
61131
+ /**
61132
+ * Opens a dialog window for users to select files.
61133
+ * @param input A [file input HTML element](https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement).
61134
+ * @param callback A callback function that you can use to process selected files. Accepts an array of JavaScript <a href="https://developer.mozilla.org/en-US/docs/Web/API/File" target="_blank">File</a> objects.
61135
+ * @see onOpenFileChooser
61136
+ * @see onUploadFile
61137
+ */
61138
+ SurveyModel.prototype.chooseFiles = function (input, callback, context) {
61139
+ if (this.onOpenFileChooser.isEmpty) {
61140
+ Object(_utils_utils__WEBPACK_IMPORTED_MODULE_15__["chooseFiles"])(input, callback);
61141
+ }
61142
+ else {
61143
+ this.onOpenFileChooser.fire(this, {
61144
+ input: input,
61145
+ element: context && context.element || this.survey,
61146
+ item: context && context.item,
61147
+ callback: callback
61148
+ });
61149
+ }
61150
+ };
60339
61151
  /**
60340
61152
  * Uploads files to a server.
60341
61153
  *
@@ -60985,6 +61797,12 @@ var SurveyModel = /** @class */ (function (_super) {
60985
61797
  enumerable: false,
60986
61798
  configurable: true
60987
61799
  });
61800
+ /**
61801
+ * Recalculates all [expressions](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) in the survey.
61802
+ */
61803
+ SurveyModel.prototype.runExpressions = function () {
61804
+ this.runConditions();
61805
+ };
60988
61806
  SurveyModel.prototype.runConditions = function () {
60989
61807
  if (this.isCompleted ||
60990
61808
  this.isEndLoadingFromJson === "processing" ||
@@ -61221,6 +62039,12 @@ var SurveyModel = /** @class */ (function (_super) {
61221
62039
  this.onStateAndCurrentPageChanged();
61222
62040
  this.updateState();
61223
62041
  };
62042
+ SurveyModel.prototype.startLoadingFromJson = function (json) {
62043
+ _super.prototype.startLoadingFromJson.call(this, json);
62044
+ if (json && json.locale) {
62045
+ this.locale = json.locale;
62046
+ }
62047
+ };
61224
62048
  SurveyModel.prototype.setJsonObject = function (jsonObj) {
61225
62049
  this.fromJSON(jsonObj);
61226
62050
  };
@@ -62332,7 +63156,9 @@ var SurveyModel = /** @class */ (function (_super) {
62332
63156
  * @see onTimer
62333
63157
  */
62334
63158
  SurveyModel.prototype.startTimer = function () {
62335
- this.timerModel.start();
63159
+ if (this.isEditMode) {
63160
+ this.timerModel.start();
63161
+ }
62336
63162
  };
62337
63163
  SurveyModel.prototype.startTimerFromUI = function () {
62338
63164
  if (this.showTimerPanel != "none" && this.state === "running") {
@@ -62606,7 +63432,7 @@ var SurveyModel = /** @class */ (function (_super) {
62606
63432
  *
62607
63433
  * This method accepts an object with the following layout element properties:
62608
63434
  *
62609
- * - `id`: `string` | `"timerpanel"` | `"progress-buttons"` | `"progress-questions"` | `"progress-pages"` | `"progress-correctquestions"` | `"progress-requiredquestions"` | `"toc-navigation"` | `"navigationbuttons"`\
63435
+ * - `id`: `string` | `"timerpanel"` | `"progress-buttons"` | `"progress-questions"` | `"progress-pages"` | `"progress-correctquestions"` | `"progress-requiredquestions"` | `"toc-navigation"` | `"buttons-navigation"`\
62610
63436
  * A layout element identifier. You can use possible values to access and relocate or customize predefined layout elements.
62611
63437
  *
62612
63438
  * - `container`: `"header"` | `"footer"` | `"left"` | `"right"` | `"contentTop"` | `"contentBottom"`\
@@ -62655,10 +63481,16 @@ var SurveyModel = /** @class */ (function (_super) {
62655
63481
  }
62656
63482
  }
62657
63483
  }
62658
- else if (this.state === "running" && isStrCiEqual(layoutElement.id, "progress-" + this.progressBarType)) {
63484
+ else if (this.state === "running" && isStrCiEqual(layoutElement.id, this.progressBarComponentName)) {
62659
63485
  var headerLayoutElement = this.findLayoutElement("advanced-header");
62660
63486
  var advHeader = headerLayoutElement && headerLayoutElement.data;
62661
63487
  var isBelowHeader = !advHeader || advHeader.hasBackground;
63488
+ if (isStrCiEqual(this.showProgressBar, "aboveHeader")) {
63489
+ isBelowHeader = false;
63490
+ }
63491
+ if (isStrCiEqual(this.showProgressBar, "belowHeader")) {
63492
+ isBelowHeader = true;
63493
+ }
62662
63494
  if (container === "header" && !isBelowHeader) {
62663
63495
  layoutElement.index = -150;
62664
63496
  if (this.isShowProgressBarOnTop && !this.isShowStartingPage) {
@@ -62679,7 +63511,7 @@ var SurveyModel = /** @class */ (function (_super) {
62679
63511
  }
62680
63512
  }
62681
63513
  }
62682
- else if (isStrCiEqual(layoutElement.id, "navigationbuttons")) {
63514
+ else if (isStrCiEqual(layoutElement.id, "buttons-navigation")) {
62683
63515
  if (container === "contentTop") {
62684
63516
  if (["top", "both"].indexOf(this.isNavigationButtonsShowing) !== -1) {
62685
63517
  containerLayoutElements.push(layoutElement);
@@ -62889,6 +63721,16 @@ var SurveyModel = /** @class */ (function (_super) {
62889
63721
  __decorate([
62890
63722
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
62891
63723
  ], SurveyModel.prototype, "wrapperFormCss", void 0);
63724
+ __decorate([
63725
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
63726
+ getDefaultValue: function (self) {
63727
+ return self.progressBarType === "buttons";
63728
+ },
63729
+ })
63730
+ ], SurveyModel.prototype, "progressBarShowPageTitles", void 0);
63731
+ __decorate([
63732
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
63733
+ ], SurveyModel.prototype, "progressBarShowPageNumbers", void 0);
62892
63734
  __decorate([
62893
63735
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
62894
63736
  ], SurveyModel.prototype, "rootCss", void 0);
@@ -63024,7 +63866,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63024
63866
  {
63025
63867
  name: "showProgressBar",
63026
63868
  default: "off",
63027
- choices: ["off", "top", "bottom", "both"],
63869
+ choices: ["off", "auto", "aboveHeader", "belowHeader", "bottom", "topBottom"],
63028
63870
  },
63029
63871
  {
63030
63872
  name: "progressBarType",
@@ -63034,9 +63876,10 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
63034
63876
  "questions",
63035
63877
  "requiredQuestions",
63036
63878
  "correctQuestions",
63037
- "buttons",
63038
63879
  ],
63039
63880
  },
63881
+ { name: "progressBarShowPageTitles:switch", category: "navigation" },
63882
+ { name: "progressBarShowPageNumbers:switch", default: false, category: "navigation" },
63040
63883
  {
63041
63884
  name: "showTOC:switch",
63042
63885
  default: false
@@ -63183,56 +64026,6 @@ var SurveyProgressModel = /** @class */ (function () {
63183
64026
 
63184
64027
 
63185
64028
 
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
64029
  /***/ }),
63237
64030
 
63238
64031
  /***/ "./src/surveyStrings.ts":
@@ -65559,7 +66352,7 @@ var VerticalResponsivityManager = /** @class */ (function (_super) {
65559
66352
  /*!****************************!*\
65560
66353
  !*** ./src/utils/utils.ts ***!
65561
66354
  \****************************/
65562
- /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, showConfirmDialog, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild */
66355
+ /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, showConfirmDialog, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles */
65563
66356
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
65564
66357
 
65565
66358
  "use strict";
@@ -65598,6 +66391,7 @@ __webpack_require__.r(__webpack_exports__);
65598
66391
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "preventDefaults", function() { return preventDefaults; });
65599
66392
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findParentByClassNames", function() { return findParentByClassNames; });
65600
66393
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getFirstVisibleChild", function() { return getFirstVisibleChild; });
66394
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "chooseFiles", function() { return chooseFiles; });
65601
66395
  /* harmony import */ var _localizablestring__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../localizablestring */ "./src/localizablestring.ts");
65602
66396
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./../settings */ "./src/settings.ts");
65603
66397
  /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../surveyStrings */ "./src/surveyStrings.ts");
@@ -65622,7 +66416,7 @@ function confirmAction(message) {
65622
66416
  return _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionFunc(message);
65623
66417
  return confirm(message);
65624
66418
  }
65625
- function confirmActionAsync(message, funcOnYes, funcOnNo, locale) {
66419
+ function confirmActionAsync(message, funcOnYes, funcOnNo, locale, rootElement) {
65626
66420
  var callbackFunc = function (res) {
65627
66421
  if (res)
65628
66422
  funcOnYes();
@@ -65630,7 +66424,7 @@ function confirmActionAsync(message, funcOnYes, funcOnNo, locale) {
65630
66424
  funcOnNo();
65631
66425
  };
65632
66426
  if (!!_settings__WEBPACK_IMPORTED_MODULE_1__["settings"] && !!_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync) {
65633
- if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync(message, callbackFunc, undefined, locale))
66427
+ if (_settings__WEBPACK_IMPORTED_MODULE_1__["settings"].confirmActionAsync(message, callbackFunc, undefined, locale, rootElement))
65634
66428
  return;
65635
66429
  }
65636
66430
  callbackFunc(confirmAction(message));
@@ -65979,7 +66773,7 @@ var Logger = /** @class */ (function () {
65979
66773
  return Logger;
65980
66774
  }());
65981
66775
 
65982
- function showConfirmDialog(message, callback, applyTitle, locale) {
66776
+ function showConfirmDialog(message, callback, applyTitle, locale, rootElement) {
65983
66777
  var locStr = new _localizablestring__WEBPACK_IMPORTED_MODULE_0__["LocalizableString"](undefined);
65984
66778
  var popupViewModel = _settings__WEBPACK_IMPORTED_MODULE_1__["settings"].showDialog({
65985
66779
  componentName: "sv-string-viewer",
@@ -65996,7 +66790,7 @@ function showConfirmDialog(message, callback, applyTitle, locale) {
65996
66790
  displayMode: "popup",
65997
66791
  isFocusedContent: false,
65998
66792
  cssClass: "sv-popup--confirm-delete"
65999
- }, /*settings.rootElement*/ document.body); //TODO survey root
66793
+ }, rootElement);
66000
66794
  var toolbar = popupViewModel.footerToolbar;
66001
66795
  var applyBtn = toolbar.getActionById("apply");
66002
66796
  var cancelBtn = toolbar.getActionById("cancel");
@@ -66007,6 +66801,23 @@ function showConfirmDialog(message, callback, applyTitle, locale) {
66007
66801
  popupViewModel.width = "452px";
66008
66802
  return true;
66009
66803
  }
66804
+ function chooseFiles(input, callback) {
66805
+ if (!window || !window["FileReader"])
66806
+ return;
66807
+ input.value = "";
66808
+ input.onchange = function (event) {
66809
+ if (!window["FileReader"])
66810
+ return;
66811
+ if (!input || !input.files || input.files.length < 1)
66812
+ return;
66813
+ var files = [];
66814
+ for (var i = 0; i < input.files.length; i++) {
66815
+ files.push(input.files[i]);
66816
+ }
66817
+ callback(files);
66818
+ };
66819
+ input.click();
66820
+ }
66010
66821
 
66011
66822
 
66012
66823