survey-core 1.12.21 → 1.12.23

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 (463) hide show
  1. package/default.css +8715 -0
  2. package/default.css.map +1 -0
  3. package/default.fontless.css +8495 -0
  4. package/default.fontless.css.map +1 -0
  5. package/default.fontless.min.css +6 -0
  6. package/default.min.css +6 -0
  7. package/defaultV2.css +51 -5
  8. package/defaultV2.css.map +1 -1
  9. package/defaultV2.fontless.css +51 -5
  10. package/defaultV2.fontless.css.map +1 -1
  11. package/defaultV2.fontless.min.css +2 -2
  12. package/defaultV2.min.css +2 -2
  13. package/i18n/arabic.js +1 -1
  14. package/i18n/arabic.min.js +1 -1
  15. package/i18n/arabic.min.js.LICENSE.txt +5 -0
  16. package/i18n/basque.js +1 -1
  17. package/i18n/basque.min.js +1 -1
  18. package/i18n/basque.min.js.LICENSE.txt +5 -0
  19. package/i18n/bulgarian.js +1 -1
  20. package/i18n/bulgarian.min.js +1 -1
  21. package/i18n/bulgarian.min.js.LICENSE.txt +5 -0
  22. package/i18n/burmese.js +1 -1
  23. package/i18n/burmese.min.js +1 -1
  24. package/i18n/burmese.min.js.LICENSE.txt +5 -0
  25. package/i18n/catalan.js +1 -1
  26. package/i18n/catalan.min.js +1 -1
  27. package/i18n/catalan.min.js.LICENSE.txt +5 -0
  28. package/i18n/croatian.js +1 -1
  29. package/i18n/croatian.min.js +1 -1
  30. package/i18n/croatian.min.js.LICENSE.txt +5 -0
  31. package/i18n/czech.js +1 -1
  32. package/i18n/czech.min.js +1 -1
  33. package/i18n/czech.min.js.LICENSE.txt +5 -0
  34. package/i18n/danish.js +1 -1
  35. package/i18n/danish.min.js +1 -1
  36. package/i18n/danish.min.js.LICENSE.txt +5 -0
  37. package/i18n/dutch.js +1 -1
  38. package/i18n/dutch.min.js +1 -1
  39. package/i18n/dutch.min.js.LICENSE.txt +5 -0
  40. package/i18n/english.js +1 -1
  41. package/i18n/english.min.js +1 -1
  42. package/i18n/english.min.js.LICENSE.txt +5 -0
  43. package/i18n/estonian.js +1 -1
  44. package/i18n/estonian.min.js +1 -1
  45. package/i18n/estonian.min.js.LICENSE.txt +5 -0
  46. package/i18n/finnish.js +1 -1
  47. package/i18n/finnish.min.js +1 -1
  48. package/i18n/finnish.min.js.LICENSE.txt +5 -0
  49. package/i18n/french.js +1 -1
  50. package/i18n/french.min.js +1 -1
  51. package/i18n/french.min.js.LICENSE.txt +5 -0
  52. package/i18n/georgian.js +1 -1
  53. package/i18n/georgian.min.js +1 -1
  54. package/i18n/georgian.min.js.LICENSE.txt +5 -0
  55. package/i18n/german.js +1 -1
  56. package/i18n/german.min.js +1 -1
  57. package/i18n/german.min.js.LICENSE.txt +5 -0
  58. package/i18n/greek.js +1 -1
  59. package/i18n/greek.min.js +1 -1
  60. package/i18n/greek.min.js.LICENSE.txt +5 -0
  61. package/i18n/hebrew.js +1 -1
  62. package/i18n/hebrew.min.js +1 -1
  63. package/i18n/hebrew.min.js.LICENSE.txt +5 -0
  64. package/i18n/hindi.js +1 -1
  65. package/i18n/hindi.min.js +1 -1
  66. package/i18n/hindi.min.js.LICENSE.txt +5 -0
  67. package/i18n/hungarian.js +1 -1
  68. package/i18n/hungarian.min.js +1 -1
  69. package/i18n/hungarian.min.js.LICENSE.txt +5 -0
  70. package/i18n/icelandic.js +1 -1
  71. package/i18n/icelandic.min.js +1 -1
  72. package/i18n/icelandic.min.js.LICENSE.txt +5 -0
  73. package/i18n/index.js +1 -1
  74. package/i18n/index.min.js +1 -1
  75. package/i18n/index.min.js.LICENSE.txt +5 -0
  76. package/i18n/indonesian.js +1 -1
  77. package/i18n/indonesian.min.js +1 -1
  78. package/i18n/indonesian.min.js.LICENSE.txt +5 -0
  79. package/i18n/italian.js +1 -1
  80. package/i18n/italian.min.js +1 -1
  81. package/i18n/italian.min.js.LICENSE.txt +5 -0
  82. package/i18n/japanese.js +1 -1
  83. package/i18n/japanese.min.js +1 -1
  84. package/i18n/japanese.min.js.LICENSE.txt +5 -0
  85. package/i18n/kazakh.js +1 -1
  86. package/i18n/kazakh.min.js +1 -1
  87. package/i18n/kazakh.min.js.LICENSE.txt +5 -0
  88. package/i18n/korean.js +1 -1
  89. package/i18n/korean.min.js +1 -1
  90. package/i18n/korean.min.js.LICENSE.txt +5 -0
  91. package/i18n/latvian.js +1 -1
  92. package/i18n/latvian.min.js +1 -1
  93. package/i18n/latvian.min.js.LICENSE.txt +5 -0
  94. package/i18n/lithuanian.js +1 -1
  95. package/i18n/lithuanian.min.js +1 -1
  96. package/i18n/lithuanian.min.js.LICENSE.txt +5 -0
  97. package/i18n/macedonian.js +1 -1
  98. package/i18n/macedonian.min.js +1 -1
  99. package/i18n/macedonian.min.js.LICENSE.txt +5 -0
  100. package/i18n/malay.js +1 -1
  101. package/i18n/malay.min.js +1 -1
  102. package/i18n/malay.min.js.LICENSE.txt +5 -0
  103. package/i18n/nl-BE.js +1 -1
  104. package/i18n/nl-BE.min.js +1 -1
  105. package/i18n/nl-BE.min.js.LICENSE.txt +5 -0
  106. package/i18n/norwegian.js +1 -1
  107. package/i18n/norwegian.min.js +1 -1
  108. package/i18n/norwegian.min.js.LICENSE.txt +5 -0
  109. package/i18n/persian.js +1 -1
  110. package/i18n/persian.min.js +1 -1
  111. package/i18n/persian.min.js.LICENSE.txt +5 -0
  112. package/i18n/philippines.js +1 -1
  113. package/i18n/philippines.min.js +1 -1
  114. package/i18n/philippines.min.js.LICENSE.txt +5 -0
  115. package/i18n/polish.js +1 -1
  116. package/i18n/polish.min.js +1 -1
  117. package/i18n/polish.min.js.LICENSE.txt +5 -0
  118. package/i18n/portuguese-br.js +1 -1
  119. package/i18n/portuguese-br.min.js +1 -1
  120. package/i18n/portuguese-br.min.js.LICENSE.txt +5 -0
  121. package/i18n/portuguese.js +1 -1
  122. package/i18n/portuguese.min.js +1 -1
  123. package/i18n/portuguese.min.js.LICENSE.txt +5 -0
  124. package/i18n/romanian.js +1 -1
  125. package/i18n/romanian.min.js +1 -1
  126. package/i18n/romanian.min.js.LICENSE.txt +5 -0
  127. package/i18n/russian.js +1 -1
  128. package/i18n/russian.min.js +1 -1
  129. package/i18n/russian.min.js.LICENSE.txt +5 -0
  130. package/i18n/serbian.js +1 -1
  131. package/i18n/serbian.min.js +1 -1
  132. package/i18n/serbian.min.js.LICENSE.txt +5 -0
  133. package/i18n/simplified-chinese.js +1 -1
  134. package/i18n/simplified-chinese.min.js +1 -1
  135. package/i18n/simplified-chinese.min.js.LICENSE.txt +5 -0
  136. package/i18n/slovak.js +1 -1
  137. package/i18n/slovak.min.js +1 -1
  138. package/i18n/slovak.min.js.LICENSE.txt +5 -0
  139. package/i18n/spanish.js +1 -1
  140. package/i18n/spanish.min.js +1 -1
  141. package/i18n/spanish.min.js.LICENSE.txt +5 -0
  142. package/i18n/swahili.js +1 -1
  143. package/i18n/swahili.min.js +1 -1
  144. package/i18n/swahili.min.js.LICENSE.txt +5 -0
  145. package/i18n/swedish.js +1 -1
  146. package/i18n/swedish.min.js +1 -1
  147. package/i18n/swedish.min.js.LICENSE.txt +5 -0
  148. package/i18n/tajik.js +1 -1
  149. package/i18n/tajik.min.js +1 -1
  150. package/i18n/tajik.min.js.LICENSE.txt +5 -0
  151. package/i18n/telugu.js +1 -1
  152. package/i18n/telugu.min.js +1 -1
  153. package/i18n/telugu.min.js.LICENSE.txt +5 -0
  154. package/i18n/thai.js +1 -1
  155. package/i18n/thai.min.js +1 -1
  156. package/i18n/thai.min.js.LICENSE.txt +5 -0
  157. package/i18n/traditional-chinese.js +1 -1
  158. package/i18n/traditional-chinese.min.js +1 -1
  159. package/i18n/traditional-chinese.min.js.LICENSE.txt +5 -0
  160. package/i18n/turkish.js +1 -1
  161. package/i18n/turkish.min.js +1 -1
  162. package/i18n/turkish.min.js.LICENSE.txt +5 -0
  163. package/i18n/ukrainian.js +1 -1
  164. package/i18n/ukrainian.min.js +1 -1
  165. package/i18n/ukrainian.min.js.LICENSE.txt +5 -0
  166. package/i18n/urdu.js +1 -1
  167. package/i18n/urdu.min.js +1 -1
  168. package/i18n/urdu.min.js.LICENSE.txt +5 -0
  169. package/i18n/vietnamese.js +1 -1
  170. package/i18n/vietnamese.min.js +1 -1
  171. package/i18n/vietnamese.min.js.LICENSE.txt +5 -0
  172. package/i18n/welsh.js +1 -1
  173. package/i18n/welsh.min.js +1 -1
  174. package/i18n/welsh.min.js.LICENSE.txt +5 -0
  175. package/icons/iconsV1.js +1 -1
  176. package/icons/iconsV1.min.js +1 -1
  177. package/icons/iconsV1.min.js.LICENSE.txt +5 -0
  178. package/icons/iconsV2.js +1 -1
  179. package/icons/iconsV2.min.js +1 -1
  180. package/icons/iconsV2.min.js.LICENSE.txt +5 -0
  181. package/modern.css +1 -1
  182. package/modern.fontless.css +1 -1
  183. package/modern.fontless.min.css +1 -1
  184. package/modern.min.css +1 -1
  185. package/package.json +1 -1
  186. package/plugins/bootstrap-integration/index.js +1 -1
  187. package/plugins/bootstrap-integration/index.min.js +1 -1
  188. package/plugins/bootstrap-material-integration/index.js +1 -1
  189. package/plugins/bootstrap-material-integration/index.min.js +1 -1
  190. package/survey.core.js +252 -151
  191. package/survey.core.js.map +1 -1
  192. package/survey.core.min.js +3 -3
  193. package/survey.core.min.js.LICENSE.txt +10 -0
  194. package/survey.css +1 -1
  195. package/survey.i18n.js +1 -1
  196. package/survey.i18n.min.js +1 -1
  197. package/survey.i18n.min.js.LICENSE.txt +5 -0
  198. package/survey.min.css +1 -1
  199. package/themes/borderless-dark-panelless.js +1 -1
  200. package/themes/borderless-dark-panelless.min.js +1 -1
  201. package/themes/borderless-dark-panelless.min.js.LICENSE.txt +5 -0
  202. package/themes/borderless-dark.js +1 -1
  203. package/themes/borderless-dark.min.js +1 -1
  204. package/themes/borderless-dark.min.js.LICENSE.txt +5 -0
  205. package/themes/borderless-light-panelless..js +1 -1
  206. package/themes/borderless-light-panelless..min.js +1 -1
  207. package/themes/borderless-light-panelless.js +156 -0
  208. package/themes/borderless-light-panelless.js.map +1 -0
  209. package/themes/borderless-light-panelless.min.js +2 -0
  210. package/themes/borderless-light-panelless.min.js.LICENSE.txt +5 -0
  211. package/themes/borderless-light.js +1 -1
  212. package/themes/borderless-light.min.js +1 -1
  213. package/themes/borderless-light.min.js.LICENSE.txt +5 -0
  214. package/themes/contrast-dark-panelless.js +1 -1
  215. package/themes/contrast-dark-panelless.min.js +1 -1
  216. package/themes/contrast-dark-panelless.min.js.LICENSE.txt +5 -0
  217. package/themes/contrast-dark.js +1 -1
  218. package/themes/contrast-dark.min.js +1 -1
  219. package/themes/contrast-dark.min.js.LICENSE.txt +5 -0
  220. package/themes/contrast-light-panelless.js +1 -1
  221. package/themes/contrast-light-panelless.min.js +1 -1
  222. package/themes/contrast-light-panelless.min.js.LICENSE.txt +5 -0
  223. package/themes/contrast-light.js +1 -1
  224. package/themes/contrast-light.min.js +1 -1
  225. package/themes/contrast-light.min.js.LICENSE.txt +5 -0
  226. package/themes/default-dark-panelless.js +1 -1
  227. package/themes/default-dark-panelless.min.js +1 -1
  228. package/themes/default-dark-panelless.min.js.LICENSE.txt +5 -0
  229. package/themes/default-dark.js +1 -1
  230. package/themes/default-dark.min.js +1 -1
  231. package/themes/default-dark.min.js.LICENSE.txt +5 -0
  232. package/themes/default-light-panelless.js +1 -1
  233. package/themes/default-light-panelless.min.js +1 -1
  234. package/themes/default-light-panelless.min.js.LICENSE.txt +5 -0
  235. package/themes/default-light.js +1 -1
  236. package/themes/default-light.min.js +1 -1
  237. package/themes/default-light.min.js.LICENSE.txt +5 -0
  238. package/themes/doubleborder-dark-panelless.js +1 -1
  239. package/themes/doubleborder-dark-panelless.min.js +1 -1
  240. package/themes/doubleborder-dark-panelless.min.js.LICENSE.txt +5 -0
  241. package/themes/doubleborder-dark.js +1 -1
  242. package/themes/doubleborder-dark.min.js +1 -1
  243. package/themes/doubleborder-dark.min.js.LICENSE.txt +5 -0
  244. package/themes/doubleborder-light-panelles.js +1 -1
  245. package/themes/doubleborder-light-panelles.min.js +1 -1
  246. package/themes/doubleborder-light-panelles.min.js.LICENSE.txt +5 -0
  247. package/themes/doubleborder-light.js +1 -1
  248. package/themes/doubleborder-light.min.js +1 -1
  249. package/themes/doubleborder-light.min.js.LICENSE.txt +5 -0
  250. package/themes/flat-dark-panelless.js +1 -1
  251. package/themes/flat-dark-panelless.min.js +1 -1
  252. package/themes/flat-dark-panelless.min.js.LICENSE.txt +5 -0
  253. package/themes/flat-dark.js +1 -1
  254. package/themes/flat-dark.min.js +1 -1
  255. package/themes/flat-dark.min.js.LICENSE.txt +5 -0
  256. package/themes/flat-light-panelless.js +1 -1
  257. package/themes/flat-light-panelless.min.js +1 -1
  258. package/themes/flat-light-panelless.min.js.LICENSE.txt +5 -0
  259. package/themes/flat-light.js +1 -1
  260. package/themes/flat-light.min.js +1 -1
  261. package/themes/flat-light.min.js.LICENSE.txt +5 -0
  262. package/themes/index.js +1 -1
  263. package/themes/index.min.js +1 -1
  264. package/themes/index.min.js.LICENSE.txt +5 -0
  265. package/themes/layered-dark-panelless.js +1 -1
  266. package/themes/layered-dark-panelless.min.js +1 -1
  267. package/themes/layered-dark-panelless.min.js.LICENSE.txt +5 -0
  268. package/themes/layered-dark.js +1 -1
  269. package/themes/layered-dark.min.js +1 -1
  270. package/themes/layered-dark.min.js.LICENSE.txt +5 -0
  271. package/themes/layered-light-panelless.js +1 -1
  272. package/themes/layered-light-panelless.min.js +1 -1
  273. package/themes/layered-light-panelless.min.js.LICENSE.txt +5 -0
  274. package/themes/layered-light.js +1 -1
  275. package/themes/layered-light.min.js +1 -1
  276. package/themes/layered-light.min.js.LICENSE.txt +5 -0
  277. package/themes/plain-dark-panelless.js +1 -1
  278. package/themes/plain-dark-panelless.min.js +1 -1
  279. package/themes/plain-dark-panelless.min.js.LICENSE.txt +5 -0
  280. package/themes/plain-dark.js +1 -1
  281. package/themes/plain-dark.min.js +1 -1
  282. package/themes/plain-dark.min.js.LICENSE.txt +5 -0
  283. package/themes/plain-light-panelless.js +1 -1
  284. package/themes/plain-light-panelless.min.js +1 -1
  285. package/themes/plain-light-panelless.min.js.LICENSE.txt +5 -0
  286. package/themes/plain-light.js +1 -1
  287. package/themes/plain-light.min.js +1 -1
  288. package/themes/plain-light.min.js.LICENSE.txt +5 -0
  289. package/themes/sharp-dark-panelless.js +1 -1
  290. package/themes/sharp-dark-panelless.min.js +1 -1
  291. package/themes/sharp-dark-panelless.min.js.LICENSE.txt +5 -0
  292. package/themes/sharp-dark.js +1 -1
  293. package/themes/sharp-dark.min.js +1 -1
  294. package/themes/sharp-dark.min.js.LICENSE.txt +5 -0
  295. package/themes/sharp-light-panelless.js +1 -1
  296. package/themes/sharp-light-panelless.min.js +1 -1
  297. package/themes/sharp-light-panelless.min.js.LICENSE.txt +5 -0
  298. package/themes/sharp-light.js +1 -1
  299. package/themes/sharp-light.min.js +1 -1
  300. package/themes/sharp-light.min.js.LICENSE.txt +5 -0
  301. package/themes/solid-dark-panelless.js +1 -1
  302. package/themes/solid-dark-panelless.min.js +1 -1
  303. package/themes/solid-dark-panelless.min.js.LICENSE.txt +5 -0
  304. package/themes/solid-dark.js +1 -1
  305. package/themes/solid-dark.min.js +1 -1
  306. package/themes/solid-dark.min.js.LICENSE.txt +5 -0
  307. package/themes/solid-light-panelless.js +1 -1
  308. package/themes/solid-light-panelless.min.js +1 -1
  309. package/themes/solid-light-panelless.min.js.LICENSE.txt +5 -0
  310. package/themes/solid-light.js +1 -1
  311. package/themes/solid-light.min.js +1 -1
  312. package/themes/solid-light.min.js.LICENSE.txt +5 -0
  313. package/themes/three-dimensional-dark-panelless.js +1 -1
  314. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  315. package/themes/three-dimensional-dark-panelless.min.js.LICENSE.txt +5 -0
  316. package/themes/three-dimensional-dark.js +1 -1
  317. package/themes/three-dimensional-dark.min.js +1 -1
  318. package/themes/three-dimensional-dark.min.js.LICENSE.txt +5 -0
  319. package/themes/three-dimensional-light-panelless.js +1 -1
  320. package/themes/three-dimensional-light-panelless.min.js +1 -1
  321. package/themes/three-dimensional-light-panelless.min.js.LICENSE.txt +5 -0
  322. package/themes/three-dimensional-light.js +1 -1
  323. package/themes/three-dimensional-light.min.js +1 -1
  324. package/themes/three-dimensional-light.min.js.LICENSE.txt +5 -0
  325. package/ts3.4/typings/packages/survey-core/src/base-interfaces.d.ts +1 -0
  326. package/ts3.4/typings/packages/survey-core/src/defaultCss/defaultV2Css.d.ts +2 -0
  327. package/ts3.4/typings/packages/survey-core/src/localizablestring.d.ts +1 -1
  328. package/ts3.4/typings/packages/survey-core/src/panel.d.ts +2 -1
  329. package/ts3.4/typings/packages/survey-core/src/question_custom.d.ts +3 -0
  330. package/ts3.4/typings/packages/survey-core/src/question_paneldynamic.d.ts +14 -6
  331. package/ts3.4/typings/packages/survey-core/src/survey-events-api.d.ts +17 -6
  332. package/ts3.4/typings/packages/survey-core/src/survey.d.ts +11 -6
  333. package/ts3.4/typings/packages/survey-core/src/textPreProcessor.d.ts +5 -2
  334. package/typings/entries/chunks/core-wo-model.d.ts +10 -0
  335. package/typings/entries/chunks/model.d.ts +95 -95
  336. package/typings/entries/index.d.ts +2 -0
  337. package/typings/packages/survey-core/src/base-interfaces.d.ts +1 -0
  338. package/typings/packages/survey-core/src/defaultCss/defaultV2Css.d.ts +2 -0
  339. package/typings/packages/survey-core/src/localizablestring.d.ts +1 -1
  340. package/typings/packages/survey-core/src/panel.d.ts +2 -1
  341. package/typings/packages/survey-core/src/question_custom.d.ts +3 -0
  342. package/typings/packages/survey-core/src/question_paneldynamic.d.ts +14 -6
  343. package/typings/packages/survey-core/src/survey-events-api.d.ts +17 -6
  344. package/typings/packages/survey-core/src/survey.d.ts +11 -6
  345. package/typings/packages/survey-core/src/textPreProcessor.d.ts +5 -2
  346. package/typings/src/actions/action.d.ts +300 -0
  347. package/typings/src/actions/adaptive-container.d.ts +29 -0
  348. package/typings/src/actions/container.d.ts +59 -0
  349. package/typings/src/base-interfaces.d.ts +366 -0
  350. package/typings/src/base.d.ts +333 -0
  351. package/typings/src/calculatedValue.d.ts +49 -0
  352. package/typings/src/choicesRestful.d.ts +177 -0
  353. package/typings/src/conditionProcessValue.d.ts +25 -0
  354. package/typings/src/conditions.d.ts +98 -0
  355. package/typings/src/conditionsParser.d.ts +14 -0
  356. package/typings/src/console-warnings.d.ts +6 -0
  357. package/typings/src/defaultCss/defaultCss.d.ts +873 -0
  358. package/typings/src/defaultTitle.d.ts +3 -0
  359. package/typings/src/dragdrop/choices.d.ts +21 -0
  360. package/typings/src/dragdrop/core.d.ts +55 -0
  361. package/typings/src/dragdrop/dom-adapter.d.ts +49 -0
  362. package/typings/src/dragdrop/engine.d.ts +6 -0
  363. package/typings/src/dragdrop/matrix-rows.d.ts +19 -0
  364. package/typings/src/dragdrop/ranking-choices.d.ts +26 -0
  365. package/typings/src/dragdrop/ranking-select-to-rank.d.ts +17 -0
  366. package/typings/src/dropdownListModel.d.ts +97 -0
  367. package/typings/src/dropdownMultiSelectListModel.d.ts +37 -0
  368. package/typings/src/dxSurveyService.d.ts +18 -0
  369. package/typings/src/element-helper.d.ts +8 -0
  370. package/typings/src/error.d.ts +81 -0
  371. package/typings/src/expressionItems.d.ts +57 -0
  372. package/typings/src/expressions/expressionParser.d.ts +54 -0
  373. package/typings/src/expressions/expressions.d.ts +135 -0
  374. package/typings/src/flowpanel.d.ts +34 -0
  375. package/typings/src/functionsfactory.d.ts +14 -0
  376. package/typings/src/global_variables_utils.d.ts +30 -0
  377. package/typings/src/header.d.ts +87 -0
  378. package/typings/src/helpers.d.ts +44 -0
  379. package/typings/src/itemvalue.d.ts +93 -0
  380. package/typings/src/jsonobject.d.ts +378 -0
  381. package/typings/src/list.d.ts +144 -0
  382. package/typings/src/localizablestring.d.ts +125 -0
  383. package/typings/src/localization/english.d.ts +109 -0
  384. package/typings/src/martixBase.d.ts +133 -0
  385. package/typings/src/mask/input_element_adapter.d.ts +16 -0
  386. package/typings/src/mask/mask_base.d.ts +29 -0
  387. package/typings/src/mask/mask_currency.d.ts +41 -0
  388. package/typings/src/mask/mask_datetime.d.ts +91 -0
  389. package/typings/src/mask/mask_numeric.d.ts +90 -0
  390. package/typings/src/mask/mask_pattern.d.ts +78 -0
  391. package/typings/src/mask/mask_utils.d.ts +20 -0
  392. package/typings/src/multiSelectListModel.d.ts +17 -0
  393. package/typings/src/notifier.d.ts +30 -0
  394. package/typings/src/page.d.ts +133 -0
  395. package/typings/src/panel-layout-column.d.ts +9 -0
  396. package/typings/src/panel.d.ts +633 -0
  397. package/typings/src/popup-dropdown-view-model.d.ts +35 -0
  398. package/typings/src/popup-modal-view-model.d.ts +16 -0
  399. package/typings/src/popup-survey.d.ts +132 -0
  400. package/typings/src/popup-utils.d.ts +4 -0
  401. package/typings/src/popup-view-model.d.ts +81 -0
  402. package/typings/src/popup.d.ts +66 -0
  403. package/typings/src/progress-buttons.d.ts +44 -0
  404. package/typings/src/question.d.ts +949 -0
  405. package/typings/src/questionCustomWidgets.d.ts +46 -0
  406. package/typings/src/question_baseselect.d.ts +547 -0
  407. package/typings/src/question_boolean.d.ts +116 -0
  408. package/typings/src/question_buttongroup.d.ts +51 -0
  409. package/typings/src/question_checkbox.d.ts +158 -0
  410. package/typings/src/question_comment.d.ts +59 -0
  411. package/typings/src/question_custom.d.ts +454 -0
  412. package/typings/src/question_dropdown.d.ts +156 -0
  413. package/typings/src/question_empty.d.ts +8 -0
  414. package/typings/src/question_expression.d.ts +110 -0
  415. package/typings/src/question_file.d.ts +303 -0
  416. package/typings/src/question_html.d.ts +26 -0
  417. package/typings/src/question_image.d.ts +86 -0
  418. package/typings/src/question_imagepicker.d.ts +168 -0
  419. package/typings/src/question_matrix.d.ts +198 -0
  420. package/typings/src/question_matrixdropdown.d.ts +56 -0
  421. package/typings/src/question_matrixdropdownbase.d.ts +572 -0
  422. package/typings/src/question_matrixdropdowncolumn.d.ts +344 -0
  423. package/typings/src/question_matrixdropdownrendered.d.ts +171 -0
  424. package/typings/src/question_matrixdynamic.d.ts +299 -0
  425. package/typings/src/question_multipletext.d.ts +361 -0
  426. package/typings/src/question_paneldynamic.d.ts +719 -0
  427. package/typings/src/question_radiogroup.d.ts +40 -0
  428. package/typings/src/question_ranking.d.ts +135 -0
  429. package/typings/src/question_rating.d.ts +300 -0
  430. package/typings/src/question_signaturepad.d.ts +149 -0
  431. package/typings/src/question_tagbox.d.ts +98 -0
  432. package/typings/src/question_text.d.ts +206 -0
  433. package/typings/src/question_textbase.d.ts +62 -0
  434. package/typings/src/questionfactory.d.ts +27 -0
  435. package/typings/src/questionnonvalue.d.ts +22 -0
  436. package/typings/src/rendererFactory.d.ts +11 -0
  437. package/typings/src/settings.d.ts +641 -0
  438. package/typings/src/survey-element.d.ts +471 -0
  439. package/typings/src/survey-error.d.ts +18 -0
  440. package/typings/src/survey-events-api.d.ts +1152 -0
  441. package/typings/src/survey.d.ts +3126 -0
  442. package/typings/src/surveyProgress.d.ts +4 -0
  443. package/typings/src/surveyStrings.d.ts +151 -0
  444. package/typings/src/surveyTaskManager.d.ts +16 -0
  445. package/typings/src/surveyTimerModel.d.ts +47 -0
  446. package/typings/src/surveyToc.d.ts +23 -0
  447. package/typings/src/surveytimer.d.ts +22 -0
  448. package/typings/src/svgbundle.d.ts +23 -0
  449. package/typings/src/template-renderer.d.ts +10 -0
  450. package/typings/src/textPreProcessor.d.ts +43 -0
  451. package/typings/src/themes.d.ts +222 -0
  452. package/typings/src/trigger.d.ts +155 -0
  453. package/typings/src/utils/animation.d.ts +91 -0
  454. package/typings/src/utils/camera.d.ts +27 -0
  455. package/typings/src/utils/cssClassBuilder.d.ts +6 -0
  456. package/typings/src/utils/devices.d.ts +12 -0
  457. package/typings/src/utils/dragOrClickHelper.d.ts +16 -0
  458. package/typings/src/utils/popup.d.ts +45 -0
  459. package/typings/src/utils/responsivity-manager.d.ts +31 -0
  460. package/typings/src/utils/taskmanager.d.ts +28 -0
  461. package/typings/src/utils/text-area.d.ts +58 -0
  462. package/typings/src/utils/utils.d.ts +86 -0
  463. package/typings/src/validator.d.ts +204 -0
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.21
2
+ * surveyjs - Survey JavaScript library v1.12.23
3
3
  * Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -2753,12 +2753,14 @@ var JsonMetadata = /** @class */ (function () {
2753
2753
  return;
2754
2754
  var schemaProperties = classSchema.properties;
2755
2755
  var requiredProps = [];
2756
- if (classInfo.name === "question" || classInfo.name === "panel") {
2756
+ if (classInfo.name === "question") {
2757
2757
  schemaProperties.type = { type: "string" };
2758
2758
  requiredProps.push("type");
2759
2759
  }
2760
2760
  for (var i = 0; i < classInfo.properties.length; i++) {
2761
2761
  var prop = classInfo.properties[i];
2762
+ if (prop.isSerializable === false)
2763
+ continue;
2762
2764
  if (!!classInfo.parentName && !!Serializer.findProperty(classInfo.parentName, prop.name))
2763
2765
  continue;
2764
2766
  schemaProperties[prop.name] = this.generateSchemaProperty(prop, schemaDef, isRoot);
@@ -8795,6 +8797,8 @@ var base_Base = /** @class */ (function () {
8795
8797
  * @param val A new value for the property.
8796
8798
  */
8797
8799
  Base.prototype.setPropertyValue = function (name, val) {
8800
+ if (this.isDisposedValue)
8801
+ return;
8798
8802
  if (!this.isLoadingFromJson) {
8799
8803
  var prop = this.getPropertyByName(name);
8800
8804
  if (!!prop) {
@@ -8811,9 +8815,11 @@ var base_Base = /** @class */ (function () {
8811
8815
  }
8812
8816
  }
8813
8817
  else {
8814
- this.setPropertyValueDirectly(name, val);
8815
- if (!this.isDisposedValue && !this.isTwoValueEquals(oldValue, val)) {
8816
- this.propertyValueChanged(name, oldValue, val);
8818
+ if (val !== oldValue) {
8819
+ this.setPropertyValueDirectly(name, val);
8820
+ if (!this.isTwoValueEquals(oldValue, val)) {
8821
+ this.propertyValueChanged(name, oldValue, val);
8822
+ }
8817
8823
  }
8818
8824
  }
8819
8825
  };
@@ -13717,15 +13723,13 @@ var localizablestring_LocalizableString = /** @class */ (function () {
13717
13723
  configurable: true
13718
13724
  });
13719
13725
  LocalizableString.prototype.calcText = function () {
13720
- var res = this.pureText;
13721
- if (res &&
13722
- this.owner &&
13723
- this.owner.getProcessedText &&
13724
- res.indexOf("{") > -1) {
13726
+ var pureText = this.pureText;
13727
+ var res = pureText;
13728
+ if (res && this.owner && this.owner.getProcessedText && res.indexOf("{") > -1) {
13725
13729
  res = this.owner.getProcessedText(res);
13726
13730
  }
13727
13731
  if (this.onGetTextCallback)
13728
- res = this.onGetTextCallback(res);
13732
+ res = this.onGetTextCallback(res, pureText);
13729
13733
  return res;
13730
13734
  };
13731
13735
  Object.defineProperty(LocalizableString.prototype, "pureText", {
@@ -17346,8 +17350,8 @@ var question_Question = /** @class */ (function (_super) {
17346
17350
  var _this = this;
17347
17351
  var locTitleValue = _super.prototype.createLocTitleProperty.call(this);
17348
17352
  locTitleValue.storeDefaultText = true;
17349
- locTitleValue.onGetTextCallback = function (text) {
17350
- if (!text) {
17353
+ locTitleValue.onGetTextCallback = function (text, nonProcessedText) {
17354
+ if (!text && !nonProcessedText) {
17351
17355
  text = _this.getDefaultTitle();
17352
17356
  }
17353
17357
  if (!_this.survey)
@@ -19718,8 +19722,10 @@ var question_Question = /** @class */ (function (_super) {
19718
19722
  }
19719
19723
  if (!values)
19720
19724
  values = this.defaultValueExpression ? this.data.getFilteredValues() : {};
19721
- if (!properties)
19725
+ if (!properties) {
19722
19726
  properties = this.defaultValueExpression ? this.data.getFilteredProperties() : {};
19727
+ properties["question"] = this;
19728
+ }
19723
19729
  if (!!runner && runner.canRun) {
19724
19730
  runner.onRunComplete = function (res) {
19725
19731
  if (res == undefined)
@@ -22282,9 +22288,12 @@ var choicesRestful_ChoicesRestful = /** @class */ (function (_super) {
22282
22288
  if (this.processedPath.indexOf(";") > -1) {
22283
22289
  pathes = this.path.split(";");
22284
22290
  }
22285
- else {
22291
+ else if (this.processedPath.indexOf(",") > -1) {
22286
22292
  pathes = this.processedPath.split(",");
22287
22293
  }
22294
+ else {
22295
+ pathes = this.processedPath.split(".");
22296
+ }
22288
22297
  if (pathes.length == 0)
22289
22298
  pathes.push(this.processedPath);
22290
22299
  return pathes;
@@ -22809,9 +22818,7 @@ var textPreProcessor_TextPreProcessor = /** @class */ (function () {
22809
22818
  enumerable: false,
22810
22819
  configurable: true
22811
22820
  });
22812
- TextPreProcessor.prototype.process = function (text, returnDisplayValue, doEncoding) {
22813
- if (returnDisplayValue === void 0) { returnDisplayValue = false; }
22814
- if (doEncoding === void 0) { doEncoding = false; }
22821
+ TextPreProcessor.prototype.process = function (text, returnDisplayValue, doEncoding, replaceUndefinedValues) {
22815
22822
  this.hasAllValuesOnLastRunValue = true;
22816
22823
  if (!text)
22817
22824
  return text;
@@ -22820,28 +22827,28 @@ var textPreProcessor_TextPreProcessor = /** @class */ (function () {
22820
22827
  var items = this.getItems(text);
22821
22828
  for (var i = items.length - 1; i >= 0; i--) {
22822
22829
  var item = items[i];
22823
- var name = this.getName(text.substring(item.start + 1, item.end));
22824
- if (!name)
22825
- continue;
22826
- var textValue = new TextPreProcessorValue(name, returnDisplayValue);
22827
- this.onProcess(textValue);
22828
- if (!textValue.isExists) {
22829
- if (textValue.canProcess) {
22830
- this.hasAllValuesOnLastRunValue = false;
22830
+ var name_1 = this.getName(text.substring(item.start + 1, item.end));
22831
+ if (!!name_1) {
22832
+ var textValue = new TextPreProcessorValue(name_1, returnDisplayValue === true);
22833
+ this.onProcess(textValue);
22834
+ if (!textValue.isExists) {
22835
+ if (textValue.canProcess) {
22836
+ this.hasAllValuesOnLastRunValue = false;
22837
+ }
22838
+ }
22839
+ if (textValue.isExists || replaceUndefinedValues) {
22840
+ if (helpers_Helpers.isValueEmpty(textValue.value)) {
22841
+ this.hasAllValuesOnLastRunValue = false;
22842
+ }
22843
+ var replacedValue = !helpers_Helpers.isValueEmpty(textValue.value)
22844
+ ? textValue.value
22845
+ : "";
22846
+ if (doEncoding) {
22847
+ replacedValue = encodeURIComponent(replacedValue);
22848
+ }
22849
+ text = text.substring(0, item.start) + replacedValue + text.substring(item.end + 1);
22831
22850
  }
22832
- continue;
22833
- }
22834
- if (helpers_Helpers.isValueEmpty(textValue.value)) {
22835
- this.hasAllValuesOnLastRunValue = false;
22836
- }
22837
- var replacedValue = !helpers_Helpers.isValueEmpty(textValue.value)
22838
- ? textValue.value
22839
- : "";
22840
- if (doEncoding) {
22841
- replacedValue = encodeURIComponent(replacedValue);
22842
22851
  }
22843
- text =
22844
- text.substring(0, item.start) + replacedValue + text.substring(item.end + 1);
22845
22852
  }
22846
22853
  return text;
22847
22854
  };
@@ -22853,12 +22860,19 @@ var textPreProcessor_TextPreProcessor = /** @class */ (function () {
22853
22860
  return textValue;
22854
22861
  };
22855
22862
  Object.defineProperty(TextPreProcessor.prototype, "hasAllValuesOnLastRun", {
22856
- get: function () {
22857
- return !!this.hasAllValuesOnLastRunValue;
22858
- },
22863
+ get: function () { return !!this.hasAllValuesOnLastRunValue; },
22859
22864
  enumerable: false,
22860
22865
  configurable: true
22861
22866
  });
22867
+ TextPreProcessor.prototype.processText = function (text, returnDisplayValue) {
22868
+ return this.process(text, returnDisplayValue);
22869
+ };
22870
+ TextPreProcessor.prototype.processTextEx = function (params) {
22871
+ var res = { hasAllValuesOnLastRun: true, text: params.text };
22872
+ res.text = this.process(params.text, params.returnDisplayValue, params.doEncoding, params.replaceUndefinedValues);
22873
+ res.hasAllValuesOnLastRun = this.hasAllValuesOnLastRun;
22874
+ return res;
22875
+ };
22862
22876
  TextPreProcessor.prototype.getItems = function (text) {
22863
22877
  var items = [];
22864
22878
  var length = text.length;
@@ -22873,13 +22887,18 @@ var textPreProcessor_TextPreProcessor = /** @class */ (function () {
22873
22887
  var item = new TextPreProcessorItem();
22874
22888
  item.start = start;
22875
22889
  item.end = i;
22876
- items.push(item);
22890
+ if (this.isValidItemName(text.substring(start + 1, i - 1))) {
22891
+ items.push(item);
22892
+ }
22877
22893
  }
22878
22894
  start = -1;
22879
22895
  }
22880
22896
  }
22881
22897
  return items;
22882
22898
  };
22899
+ TextPreProcessor.prototype.isValidItemName = function (name) {
22900
+ return !!name && name.indexOf(":") < 0;
22901
+ };
22883
22902
  TextPreProcessor.prototype.getName = function (name) {
22884
22903
  if (!name)
22885
22904
  return;
@@ -22959,27 +22978,31 @@ var textPreProcessor_QuestionTextProcessor = /** @class */ (function () {
22959
22978
  textValue.value = new conditionProcessValue_ProcessValue().getValue(textValue.name, values);
22960
22979
  };
22961
22980
  QuestionTextProcessor.prototype.processText = function (text, returnDisplayValue) {
22962
- if (this.survey && this.survey.isDesignMode)
22963
- return text;
22964
- text = this.textPreProcessor.process(text, returnDisplayValue);
22965
- text = this.processTextCore(this.getParentTextProcessor(), text, returnDisplayValue);
22966
- return this.processTextCore(this.survey, text, returnDisplayValue);
22981
+ var params = { text: text, returnDisplayValue: returnDisplayValue };
22982
+ return this.processTextEx(params).text;
22967
22983
  };
22968
22984
  QuestionTextProcessor.prototype.processTextEx = function (params) {
22969
- params.text = this.processText(params.text, params.returnDisplayValue);
22970
- var hasAllValuesOnLastRun = this.textPreProcessor.hasAllValuesOnLastRun;
22985
+ var _a;
22971
22986
  var res = { hasAllValuesOnLastRun: true, text: params.text };
22972
- if (this.survey) {
22973
- res = this.survey.processTextEx(params);
22987
+ if (!params.runAtDesign && ((_a = this.survey) === null || _a === void 0 ? void 0 : _a.isDesignMode))
22988
+ return res;
22989
+ var processors = new Array();
22990
+ this.addTextPreProcessor(processors, this.textPreProcessor);
22991
+ this.addTextPreProcessor(processors, this.getParentTextProcessor());
22992
+ this.addTextPreProcessor(processors, this.survey);
22993
+ for (var i = 0; i < processors.length; i++) {
22994
+ var processor = processors[i];
22995
+ params.text = res.text;
22996
+ var processorRes = processor.processTextEx(params);
22997
+ res.text = processorRes.text;
22998
+ res.hasAllValuesOnLastRun = res.hasAllValuesOnLastRun && processorRes.hasAllValuesOnLastRun;
22974
22999
  }
22975
- res.hasAllValuesOnLastRun =
22976
- res.hasAllValuesOnLastRun && hasAllValuesOnLastRun;
22977
23000
  return res;
22978
23001
  };
22979
- QuestionTextProcessor.prototype.processTextCore = function (textProcessor, text, returnDisplayValue) {
22980
- if (!textProcessor)
22981
- return text;
22982
- return textProcessor.processText(text, returnDisplayValue);
23002
+ QuestionTextProcessor.prototype.addTextPreProcessor = function (list, textProcessor) {
23003
+ if (!textProcessor || list.indexOf(textProcessor) > -1)
23004
+ return;
23005
+ list.push(textProcessor);
22983
23006
  };
22984
23007
  return QuestionTextProcessor;
22985
23008
  }());
@@ -23009,6 +23032,7 @@ var question_custom_extends = (undefined && undefined.__extends) || (function ()
23009
23032
 
23010
23033
 
23011
23034
 
23035
+
23012
23036
  var question_custom_ComponentQuestionJSON = /** @class */ (function () {
23013
23037
  function ComponentQuestionJSON(name, json) {
23014
23038
  this.name = name;
@@ -23912,9 +23936,10 @@ var question_custom_QuestionCompositeModel = /** @class */ (function (_super) {
23912
23936
  }
23913
23937
  this.initElement(res);
23914
23938
  res.readOnly = this.isReadOnly;
23915
- res.questions.forEach(function (q) { return q.onUpdateCssClassesCallback = function (css) {
23916
- _this.onUpdateQuestionCssClasses(q, css);
23917
- }; });
23939
+ res.questions.forEach(function (q) {
23940
+ q.setParentQuestion(_this);
23941
+ q.onUpdateCssClassesCallback = function (css) { _this.onUpdateQuestionCssClasses(q, css); };
23942
+ });
23918
23943
  this.setAfterRenderCallbacks(res);
23919
23944
  return res;
23920
23945
  };
@@ -24011,6 +24036,36 @@ var question_custom_QuestionCompositeModel = /** @class */ (function (_super) {
24011
24036
  this.settingNewValue = false;
24012
24037
  this.runPanelTriggers(QuestionCompositeModel.ItemVariableName + "." + name, newValue);
24013
24038
  };
24039
+ QuestionCompositeModel.prototype.setComment = function (name, newValue, locNotification) {
24040
+ var val = this.getUnbindValue(this.value);
24041
+ var commentName = this.getCommentName(name);
24042
+ if (!val && !newValue || !!newValue && !!val && val[commentName] === newValue)
24043
+ return;
24044
+ if (!!newValue) {
24045
+ if (!val) {
24046
+ val = {};
24047
+ }
24048
+ val[commentName] = newValue;
24049
+ }
24050
+ else {
24051
+ delete val[commentName];
24052
+ }
24053
+ var q = this.getQuestionByName(name);
24054
+ if (!!q && q.comment !== newValue) {
24055
+ q.comment = newValue;
24056
+ }
24057
+ this.value = val;
24058
+ };
24059
+ QuestionCompositeModel.prototype.getComment = function (name) {
24060
+ var q = this.getQuestionByName(name);
24061
+ if (!!q)
24062
+ return q.comment;
24063
+ var val = this.value;
24064
+ return !!val && val[this.getCommentName(name)] || "";
24065
+ };
24066
+ QuestionCompositeModel.prototype.getCommentName = function (name) {
24067
+ return name + settings.commentSuffix;
24068
+ };
24014
24069
  QuestionCompositeModel.prototype.runPanelTriggers = function (name, value) {
24015
24070
  if (!!this.contentPanel) {
24016
24071
  this.contentPanel.questions.forEach(function (q) {
@@ -24090,19 +24145,24 @@ var question_custom_QuestionCompositeModel = /** @class */ (function (_super) {
24090
24145
  _super.prototype.setQuestionValue.call(this, newValue, updateIsAnswered);
24091
24146
  };
24092
24147
  QuestionCompositeModel.prototype.setValuesIntoQuestions = function (newValue) {
24093
- if (!this.contentPanel)
24148
+ if (!this.contentPanel || this.settingNewValue)
24094
24149
  return;
24095
24150
  newValue = this.getValueForContentPanel(newValue);
24096
24151
  var oldSettingNewValue = this.settingNewValue;
24097
24152
  this.settingNewValue = true;
24098
24153
  var questions = this.contentPanel.questions;
24099
24154
  for (var i = 0; i < questions.length; i++) {
24100
- var key = questions[i].getValueName();
24101
- var val = !!newValue ? newValue[key] : undefined;
24102
24155
  var q = questions[i];
24156
+ var key = q.getValueName();
24157
+ var commentKey = this.getCommentName(key);
24158
+ var val = !!newValue ? newValue[key] : undefined;
24159
+ var commentVal = !!newValue && newValue[commentKey] || "";
24103
24160
  if (!this.isTwoValueEquals(q.value, val) && (val !== undefined || !q.isEmpty())) {
24104
24161
  q.value = val;
24105
24162
  }
24163
+ if (q.comment !== commentVal) {
24164
+ q.comment = commentVal;
24165
+ }
24106
24166
  }
24107
24167
  this.settingNewValue = oldSettingNewValue;
24108
24168
  };
@@ -26848,11 +26908,10 @@ var question_matrixdropdownrendered_QuestionMatrixDropdownRenderedTable = /** @c
26848
26908
  if (this.matrix.isMobile) {
26849
26909
  actions.unshift(new action_Action({
26850
26910
  id: "show-detail-mobile",
26851
- title: "Show Details",
26911
+ title: new ComputedUpdater(function () { return row.isDetailPanelShowing ? _this.matrix.getLocalizationString("hideDetails") : _this.matrix.getLocalizationString("showDetails"); }),
26852
26912
  showTitle: true,
26853
26913
  location: "end",
26854
26914
  action: function (context) {
26855
- context.title = row.isDetailPanelShowing ? _this.matrix.getLocalizationString("showDetails") : _this.matrix.getLocalizationString("hideDetails");
26856
26915
  row.showHideDetailPanelClick();
26857
26916
  },
26858
26917
  }));
@@ -32530,6 +32589,8 @@ var defaultV2Css = {
32530
32589
  progressBtnIcon: "icon-progressbuttonv2",
32531
32590
  noEntriesPlaceholder: "sd-paneldynamic__placeholder sd-question__placeholder",
32532
32591
  compact: "sd-element--with-frame sd-element--compact",
32592
+ tabsContainer: "sd-paneldynamic__tabs-container",
32593
+ tabsContainerWithHeader: "sd-paneldynamic__tabs-container--with-header",
32533
32594
  tabsRoot: "sd-tabs-toolbar",
32534
32595
  tabsLeft: "sd-tabs-toolbar--left",
32535
32596
  tabsRight: "sd-tabs-toolbar--right",
@@ -35158,7 +35219,7 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
35158
35219
  };
35159
35220
  PanelModelBase.prototype.randomizeElements = function (isRandom) {
35160
35221
  if (!this.canRandomize(isRandom) || this.isRandomizing)
35161
- return;
35222
+ return false;
35162
35223
  this.isRandomizing = true;
35163
35224
  var oldElements = [];
35164
35225
  var elements = this.elements;
@@ -35170,6 +35231,7 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
35170
35231
  this.updateRows();
35171
35232
  this.updateVisibleIndexes();
35172
35233
  this.isRandomizing = false;
35234
+ return true;
35173
35235
  };
35174
35236
  Object.defineProperty(PanelModelBase.prototype, "areQuestionsRandomized", {
35175
35237
  /**
@@ -35728,6 +35790,14 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
35728
35790
  }
35729
35791
  return null;
35730
35792
  };
35793
+ PanelModelBase.prototype.getFirstVisibleQuestion = function () {
35794
+ var qs = this.questions;
35795
+ for (var i = 0; i < qs.length; i++) {
35796
+ if (qs[i].isVisible)
35797
+ return qs[i];
35798
+ }
35799
+ return null;
35800
+ };
35731
35801
  /**
35732
35802
  * Focuses the first question in this panel/page.
35733
35803
  * @see focusFirstErrorQuestion
@@ -37940,6 +38010,7 @@ var page_PageModel = /** @class */ (function (_super) {
37940
38010
  configurable: true
37941
38011
  });
37942
38012
  PageModel.prototype.setWasShown = function (val) {
38013
+ var _a;
37943
38014
  if (val == this.hasShownValue)
37944
38015
  return;
37945
38016
  this.hasShownValue = val;
@@ -37951,7 +38022,12 @@ var page_PageModel = /** @class */ (function (_super) {
37951
38022
  els[i].randomizeElements(this.areQuestionsRandomized);
37952
38023
  }
37953
38024
  }
37954
- this.randomizeElements(this.areQuestionsRandomized);
38025
+ if (this.randomizeElements(this.areQuestionsRandomized)) {
38026
+ var singleQuestion = (_a = this.survey) === null || _a === void 0 ? void 0 : _a.currentSingleQuestion;
38027
+ if ((singleQuestion === null || singleQuestion === void 0 ? void 0 : singleQuestion.page) === this) {
38028
+ this.survey.currentSingleQuestion = this.getFirstVisibleQuestion();
38029
+ }
38030
+ }
37955
38031
  };
37956
38032
  /**
37957
38033
  * Scrolls this page to the top.
@@ -39171,12 +39247,15 @@ var survey_SurveyModel = /** @class */ (function (_super) {
39171
39247
  _this.onTimer = _this.onTimerTick;
39172
39248
  _this.onTimerPanelInfoText = _this.addEvent();
39173
39249
  /**
39174
- * An event that is raised after an item value is changed in a panel within a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
39250
+ * An event that is raised after a value is changed in a panel within a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
39175
39251
  */
39176
39252
  _this.onDynamicPanelValueChanged = _this.addEvent();
39253
+ /**
39254
+ * @deprecated Use the [`onDynamicPanelValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onDynamicPanelValueChanged) event instead.
39255
+ */
39177
39256
  _this.onDynamicPanelItemValueChanged = _this.onDynamicPanelValueChanged;
39178
39257
  /**
39179
- * An event that is raised after an item value is changing in a panel within a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
39258
+ * An event that is raised before a value is changed in a panel within a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
39180
39259
  */
39181
39260
  _this.onDynamicPanelValueChanging = _this.addEvent();
39182
39261
  /**
@@ -41606,6 +41685,10 @@ var survey_SurveyModel = /** @class */ (function (_super) {
41606
41685
  return this.getPropertyValue("showProgressBar");
41607
41686
  },
41608
41687
  set: function (newValue) {
41688
+ if (newValue === true)
41689
+ newValue = "auto";
41690
+ if (newValue === false)
41691
+ newValue = "off";
41609
41692
  this.setPropertyValue("showProgressBar", newValue.toLowerCase());
41610
41693
  },
41611
41694
  enumerable: false,
@@ -42277,7 +42360,7 @@ var survey_SurveyModel = /** @class */ (function (_super) {
42277
42360
  if (newPage == this.currentPage)
42278
42361
  return;
42279
42362
  var oldValue = this.currentPage;
42280
- if (!this.isShowingPreview && !this.currentPageChanging(newPage, oldValue))
42363
+ if (!this.isShowingPreview && !this.currentSingleQuestion && !this.currentPageChanging(newPage, oldValue))
42281
42364
  return;
42282
42365
  this.setPropertyValue("currentPage", newPage);
42283
42366
  if (!!newPage) {
@@ -42306,6 +42389,8 @@ var survey_SurveyModel = /** @class */ (function (_super) {
42306
42389
  SurveyModel.prototype.performValidationOnPageChanging = function (page) {
42307
42390
  if (this.isDesignMode)
42308
42391
  return false;
42392
+ if (this.canGoTroughValidation())
42393
+ return true;
42309
42394
  var index = this.visiblePages.indexOf(page);
42310
42395
  if (index < 0 || index >= this.visiblePageCount)
42311
42396
  return false;
@@ -42669,20 +42754,22 @@ var survey_SurveyModel = /** @class */ (function (_super) {
42669
42754
  return;
42670
42755
  page.updateCustomWidgets();
42671
42756
  };
42672
- SurveyModel.prototype.currentPageChanging = function (newValue, oldValue) {
42673
- var options = this.createPageChangeEventOptions(newValue, oldValue);
42757
+ SurveyModel.prototype.currentPageChanging = function (newValue, oldValue, newQuestion, oldQuestion) {
42758
+ var options = this.createPageChangeEventOptions(newValue, oldValue, newQuestion, oldQuestion);
42759
+ return this.currentPageChangingFromOptions(options);
42760
+ };
42761
+ SurveyModel.prototype.currentPageChangingFromOptions = function (options) {
42674
42762
  options.allow = true;
42675
42763
  options.allowChanging = true;
42676
42764
  this.onCurrentPageChanging.fire(this, options);
42677
42765
  var allow = options.allowChanging && options.allow;
42678
- if (allow) {
42766
+ if (allow && options.newCurrentPage !== options.oldCurrentPage) {
42679
42767
  this.isCurrentPageRendering = true;
42680
42768
  }
42681
42769
  return allow;
42682
42770
  };
42683
42771
  SurveyModel.prototype.currentPageChanged = function (newValue, oldValue) {
42684
42772
  this.notifyQuestionsOnHidingContent(oldValue);
42685
- var options = this.createPageChangeEventOptions(newValue, oldValue);
42686
42773
  if (oldValue && !oldValue.isDisposed && !oldValue.passed) {
42687
42774
  if (oldValue.validate(false)) {
42688
42775
  oldValue.passed = true;
@@ -42691,22 +42778,31 @@ var survey_SurveyModel = /** @class */ (function (_super) {
42691
42778
  if (this.isCurrentPageRendered === true) {
42692
42779
  this.isCurrentPageRendered = false;
42693
42780
  }
42694
- this.onCurrentPageChanged.fire(this, options);
42781
+ if (!this.currentSingleQuestion) {
42782
+ var options = this.createPageChangeEventOptions(newValue, oldValue);
42783
+ this.onCurrentPageChanged.fire(this, options);
42784
+ }
42695
42785
  };
42696
42786
  SurveyModel.prototype.notifyQuestionsOnHidingContent = function (page) {
42697
42787
  if (page && !page.isDisposed) {
42698
42788
  page.questions.forEach(function (q) { return q.onHidingContent(); });
42699
42789
  }
42700
42790
  };
42701
- SurveyModel.prototype.createPageChangeEventOptions = function (newValue, oldValue) {
42791
+ SurveyModel.prototype.createPageChangeEventOptions = function (newValue, oldValue, newQuestion, oldQuestion) {
42702
42792
  var diff = !!newValue && !!oldValue ? newValue.visibleIndex - oldValue.visibleIndex : 0;
42793
+ var qDiff = diff;
42794
+ if (qDiff === 0 && !!oldQuestion && !!newQuestion) {
42795
+ qDiff = newValue.elements.indexOf(newQuestion) - newValue.elements.indexOf(oldQuestion);
42796
+ }
42703
42797
  return {
42798
+ oldCurrentQuestion: oldQuestion,
42799
+ newCurrentQuestion: newQuestion,
42704
42800
  oldCurrentPage: oldValue,
42705
42801
  newCurrentPage: newValue,
42706
42802
  isNextPage: diff === 1,
42707
42803
  isPrevPage: diff === -1,
42708
- isGoingForward: diff > 0,
42709
- isGoingBackward: diff < 0,
42804
+ isGoingForward: qDiff > 0,
42805
+ isGoingBackward: qDiff < 0,
42710
42806
  isAfterPreview: this.changeCurrentPageFromPreview === true
42711
42807
  };
42712
42808
  };
@@ -42929,6 +43025,8 @@ var survey_SurveyModel = /** @class */ (function (_super) {
42929
43025
  * @see completeLastPage
42930
43026
  */
42931
43027
  SurveyModel.prototype.nextPage = function () {
43028
+ if (this.currentSingleQuestion)
43029
+ return this.performNext();
42932
43030
  if (this.isLastPage)
42933
43031
  return false;
42934
43032
  return this.doCurrentPageComplete(false);
@@ -42959,7 +43057,7 @@ var survey_SurveyModel = /** @class */ (function (_super) {
42959
43057
  };
42960
43058
  SurveyModel.prototype.hasErrorsOnNavigate = function (doComplete) {
42961
43059
  var _this = this;
42962
- if (!this.isEditMode || this.ignoreValidation)
43060
+ if (this.canGoTroughValidation())
42963
43061
  return false;
42964
43062
  var skipValidation = doComplete && this.validationAllowComplete || !doComplete && this.validationAllowSwitchPages;
42965
43063
  var func = function (hasErrors) {
@@ -42974,6 +43072,7 @@ var survey_SurveyModel = /** @class */ (function (_super) {
42974
43072
  }
42975
43073
  return this.validateCurrentPage(func) !== true && !skipValidation;
42976
43074
  };
43075
+ SurveyModel.prototype.canGoTroughValidation = function () { return !this.isEditMode || !this.validationEnabled; };
42977
43076
  SurveyModel.prototype.checkForAsyncQuestionValidation = function (questions, func) {
42978
43077
  var _this = this;
42979
43078
  this.clearAsyncValidationQuesitons();
@@ -43251,6 +43350,8 @@ var survey_SurveyModel = /** @class */ (function (_super) {
43251
43350
  */
43252
43351
  SurveyModel.prototype.prevPage = function () {
43253
43352
  var _this = this;
43353
+ if (this.currentSingleQuestion)
43354
+ return this.performPrevious();
43254
43355
  if (this.isFirstPage || this.state === "starting")
43255
43356
  return false;
43256
43357
  this.resetNavigationButton();
@@ -43392,7 +43493,7 @@ var survey_SurveyModel = /** @class */ (function (_super) {
43392
43493
  * Possible values:
43393
43494
  *
43394
43495
  * - `"singlePage"` - Combines all survey pages into a single page.
43395
- * - `"questionPerPage"` - Creates a separate page for every question.
43496
+ * - `"questionPerPage"` - Displays each question on a separate page.
43396
43497
  * - `"standard"` (default) - Retains the original structure specified in the JSON schema.
43397
43498
  */
43398
43499
  get: function () {
@@ -43532,7 +43633,11 @@ var survey_SurveyModel = /** @class */ (function (_super) {
43532
43633
  Object.defineProperty(SurveyModel.prototype, "currentSingleQuestion", {
43533
43634
  get: function () { return this.currentSingleQuestionValue; },
43534
43635
  set: function (val) {
43535
- if (val !== this.currentSingleQuestion) {
43636
+ var oldVal = this.currentSingleQuestion;
43637
+ if (val !== oldVal) {
43638
+ var options = !!val && !!oldVal ? this.createPageChangeEventOptions(val.page, oldVal.page, val, oldVal) : undefined;
43639
+ if (!!options && !this.currentPageChangingFromOptions(options))
43640
+ return;
43536
43641
  this.currentSingleQuestionValue = val;
43537
43642
  if (!!val) {
43538
43643
  var page = val.page;
@@ -43546,6 +43651,9 @@ var survey_SurveyModel = /** @class */ (function (_super) {
43546
43651
  }
43547
43652
  }
43548
43653
  this.updateButtonsVisibility();
43654
+ if (!!options) {
43655
+ this.onCurrentPageChanged.fire(this, options);
43656
+ }
43549
43657
  }
43550
43658
  else {
43551
43659
  this.visiblePages.forEach(function (page) { return page.updateRows(); });
@@ -44416,7 +44524,7 @@ var survey_SurveyModel = /** @class */ (function (_super) {
44416
44524
  return options.error ? new CustomError(options.error, this) : null;
44417
44525
  };
44418
44526
  SurveyModel.prototype.dynamicPanelAdded = function (question, panelIndex, panel) {
44419
- if (!this.isLoadingFromJson && this.hasQuestionVisibleIndeces(question, true)) {
44527
+ if (!this.isLoadingFromJson && this.hasQuestionVisibleIndeces(question)) {
44420
44528
  this.updateVisibleIndexes(question.page);
44421
44529
  }
44422
44530
  if (this.onDynamicPanelAdded.isEmpty)
@@ -44433,7 +44541,7 @@ var survey_SurveyModel = /** @class */ (function (_super) {
44433
44541
  for (var i = 0; i < questions.length; i++) {
44434
44542
  questions[i].clearOnDeletingContainer();
44435
44543
  }
44436
- if (this.hasQuestionVisibleIndeces(question, false)) {
44544
+ if (this.hasQuestionVisibleIndeces(question)) {
44437
44545
  this.updateVisibleIndexes(question.page);
44438
44546
  }
44439
44547
  this.onDynamicPanelRemoved.fire(this, {
@@ -44442,10 +44550,7 @@ var survey_SurveyModel = /** @class */ (function (_super) {
44442
44550
  panel: panel,
44443
44551
  });
44444
44552
  };
44445
- SurveyModel.prototype.hasQuestionVisibleIndeces = function (question, checkIndex) {
44446
- if (checkIndex) {
44447
- question.setVisibleIndex(this.getStartVisibleIndex());
44448
- }
44553
+ SurveyModel.prototype.hasQuestionVisibleIndeces = function (question) {
44449
44554
  var qList = question.getNestedQuestions(true);
44450
44555
  for (var i = 0; i < qList.length; i++) {
44451
44556
  if (qList[i].visibleIndex > -1)
@@ -46260,7 +46365,7 @@ var survey_SurveyModel = /** @class */ (function (_super) {
46260
46365
  var doEncoding = params.doEncoding === undefined ? settings.web.encodeUrlParams : params.doEncoding;
46261
46366
  var text = params.text;
46262
46367
  if (params.runAtDesign || !this.isDesignMode) {
46263
- text = this.textPreProcessor.process(text, params.returnDisplayValue === true, doEncoding);
46368
+ text = this.textPreProcessor.process(text, params.returnDisplayValue === true, doEncoding, params.replaceUndefinedValues);
46264
46369
  }
46265
46370
  var res = { text: text, hasAllValuesOnLastRun: true };
46266
46371
  res.hasAllValuesOnLastRun = this.textPreProcessor.hasAllValuesOnLastRun;
@@ -49372,6 +49477,7 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
49372
49477
  var chQuestion = this.choicesFromQuestion;
49373
49478
  if (!!name && chQuestion && (name === chQuestion || questionName === chQuestion)) {
49374
49479
  this.onVisibleChoicesChanged();
49480
+ this.clearIncorrectValues();
49375
49481
  }
49376
49482
  };
49377
49483
  QuestionSelectBase.prototype.updateValueFromSurvey = function (newValue, clearData) {
@@ -55186,6 +55292,9 @@ var question_multipletext_QuestionMultipleTextModel = /** @class */ (function (_
55186
55292
  QuestionMultipleTextModel.prototype.onSurveyLoad = function () {
55187
55293
  this.editorsOnSurveyLoad();
55188
55294
  _super.prototype.onSurveyLoad.call(this);
55295
+ if (!helpers_Helpers.isValueEmpty(this.rows)) {
55296
+ this.calcVisibleRows();
55297
+ }
55189
55298
  };
55190
55299
  QuestionMultipleTextModel.prototype.setQuestionValue = function (newValue, updateIsAnswered) {
55191
55300
  if (updateIsAnswered === void 0) { updateIsAnswered = true; }
@@ -65065,6 +65174,13 @@ var QuestionPanelDynamicItemTextProcessor = /** @class */ (function (_super) {
65065
65174
  };
65066
65175
  return QuestionPanelDynamicItemTextProcessor;
65067
65176
  }(textPreProcessor_QuestionTextProcessor));
65177
+ var PanelDynamicTabbedMenuItem = /** @class */ (function (_super) {
65178
+ question_paneldynamic_extends(PanelDynamicTabbedMenuItem, _super);
65179
+ function PanelDynamicTabbedMenuItem(innerItem) {
65180
+ return _super.call(this, innerItem) || this;
65181
+ }
65182
+ return PanelDynamicTabbedMenuItem;
65183
+ }(action_Action));
65068
65184
  var question_paneldynamic_QuestionPanelDynamicItem = /** @class */ (function () {
65069
65185
  function QuestionPanelDynamicItem(data, panel) {
65070
65186
  this.data = data;
@@ -66448,7 +66564,7 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
66448
66564
  set: function (val) {
66449
66565
  this.setPropertyValue("tabAlign", val);
66450
66566
  if (this.isRenderModeTab) {
66451
- this.additionalTitleToolbar.containerCss = this.getAdditionalTitleToolbarCss();
66567
+ this.tabbedMenu.containerCss = this.getTabbedMenuCss();
66452
66568
  }
66453
66569
  },
66454
66570
  enumerable: false,
@@ -66468,18 +66584,6 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
66468
66584
  enumerable: false,
66469
66585
  configurable: true
66470
66586
  });
66471
- Object.defineProperty(QuestionPanelDynamicModel.prototype, "hasTitleOnLeftTop", {
66472
- get: function () {
66473
- if (this.isRenderModeTab && this.visiblePanelCount > 0)
66474
- return true;
66475
- if (!this.hasTitle)
66476
- return false;
66477
- var location = this.getTitleLocation();
66478
- return location === "left" || location === "top";
66479
- },
66480
- enumerable: false,
66481
- configurable: true
66482
- });
66483
66587
  QuestionPanelDynamicModel.prototype.setVisibleIndex = function (value) {
66484
66588
  if (!this.isVisible)
66485
66589
  return 0;
@@ -66866,8 +66970,8 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
66866
66970
  for (var i = 0; i < panels.length; i++) {
66867
66971
  panels[i].locStrsChanged();
66868
66972
  }
66869
- if (this.additionalTitleToolbar) {
66870
- this.additionalTitleToolbar.locStrsChanged();
66973
+ if (this.tabbedMenu) {
66974
+ this.tabbedMenu.locStrsChanged();
66871
66975
  }
66872
66976
  };
66873
66977
  QuestionPanelDynamicModel.prototype.clearIncorrectValues = function () {
@@ -67603,14 +67707,16 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
67603
67707
  get: function () {
67604
67708
  var showTab = this.isRenderModeTab && !!this.visiblePanelCount;
67605
67709
  return new CssClassBuilder()
67606
- .append(this.cssClasses.header)
67607
- .append(this.cssClasses.headerTop, this.hasTitleOnTop || showTab)
67608
- .append(this.cssClasses.headerTab, showTab)
67710
+ .append(_super.prototype.getCssHeader.call(this, this.cssClasses))
67711
+ .append(this.cssClasses.headerTab, this.hasTitleOnTop && showTab)
67609
67712
  .toString();
67610
67713
  },
67611
67714
  enumerable: false,
67612
67715
  configurable: true
67613
67716
  });
67717
+ QuestionPanelDynamicModel.prototype.getTabsContainerCss = function () {
67718
+ return new CssClassBuilder().append(this.cssClasses.tabsContainer).append(this.cssClasses.tabsContainerWithHeader, this.hasTitleOnTop).toString();
67719
+ };
67614
67720
  QuestionPanelDynamicModel.prototype.getPanelWrapperCss = function (panel) {
67615
67721
  return new CssClassBuilder()
67616
67722
  .append(this.cssClasses.panelWrapper, !panel || panel.visible)
@@ -67673,25 +67779,29 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
67673
67779
  return true;
67674
67780
  return false;
67675
67781
  };
67676
- Object.defineProperty(QuestionPanelDynamicModel.prototype, "hasAdditionalTitleToolbar", {
67782
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "hasTabbedMenu", {
67677
67783
  get: function () {
67678
67784
  return this.isRenderModeTab && this.visiblePanels.length > 0;
67679
67785
  },
67680
67786
  enumerable: false,
67681
67787
  configurable: true
67682
67788
  });
67683
- QuestionPanelDynamicModel.prototype.getAdditionalTitleToolbar = function () {
67684
- if (!this.isRenderModeTab)
67685
- return null;
67686
- if (!this.additionalTitleToolbarValue) {
67687
- this.additionalTitleToolbarValue = new adaptive_container_AdaptiveActionContainer();
67688
- this.additionalTitleToolbarValue.dotsItem.popupModel.showPointer = false;
67689
- this.additionalTitleToolbarValue.dotsItem.popupModel.verticalPosition = "bottom";
67690
- this.additionalTitleToolbarValue.dotsItem.popupModel.horizontalPosition = "center";
67691
- this.updateElementCss(false);
67692
- }
67693
- return this.additionalTitleToolbarValue;
67694
- };
67789
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "tabbedMenu", {
67790
+ get: function () {
67791
+ if (!this.isRenderModeTab)
67792
+ return null;
67793
+ if (!this.tabbedMenuValue) {
67794
+ this.tabbedMenuValue = new adaptive_container_AdaptiveActionContainer();
67795
+ this.tabbedMenuValue.dotsItem.popupModel.showPointer = false;
67796
+ this.tabbedMenuValue.dotsItem.popupModel.verticalPosition = "bottom";
67797
+ this.tabbedMenuValue.dotsItem.popupModel.horizontalPosition = "center";
67798
+ this.updateElementCss(false);
67799
+ }
67800
+ return this.tabbedMenuValue;
67801
+ },
67802
+ enumerable: false,
67803
+ configurable: true
67804
+ });
67695
67805
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "footerToolbar", {
67696
67806
  get: function () {
67697
67807
  if (!this.footerToolbarValue) {
@@ -67786,19 +67896,21 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
67786
67896
  return options.title;
67787
67897
  };
67788
67898
  locTitle.sharedData = this.locTemplateTabTitle;
67789
- var isActive = this.getPanelVisibleIndexById(panel.id) === this.currentIndex;
67790
- var newItem = new action_Action({
67791
- id: panel.id,
67899
+ var panelId = panel.id;
67900
+ var isActive = this.getPanelVisibleIndexById(panelId) === this.currentIndex;
67901
+ var newItem = new PanelDynamicTabbedMenuItem({
67902
+ id: this.id + "_tab_" + panelId,
67903
+ panelId: panelId,
67792
67904
  pressed: isActive,
67793
67905
  locTitle: locTitle,
67794
67906
  disableHide: isActive,
67795
67907
  action: function () {
67796
- _this.currentIndex = _this.getPanelVisibleIndexById(newItem.id);
67908
+ _this.currentIndex = _this.getPanelVisibleIndexById(panelId);
67797
67909
  }
67798
67910
  });
67799
67911
  return newItem;
67800
67912
  };
67801
- QuestionPanelDynamicModel.prototype.getAdditionalTitleToolbarCss = function (cssClasses) {
67913
+ QuestionPanelDynamicModel.prototype.getTabbedMenuCss = function (cssClasses) {
67802
67914
  var css = cssClasses !== null && cssClasses !== void 0 ? cssClasses : this.cssClasses;
67803
67915
  return new CssClassBuilder()
67804
67916
  .append(css.tabsRoot)
@@ -67813,8 +67925,8 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
67813
67925
  if (this.currentIndex < 0 || this.currentIndex >= this.visiblePanelCount)
67814
67926
  return;
67815
67927
  var panel = this.visiblePanelsCore[this.currentIndex];
67816
- this.additionalTitleToolbar.renderedActions.forEach(function (action) {
67817
- var isActive = action.id === panel.id;
67928
+ this.tabbedMenu.renderedActions.forEach(function (action) {
67929
+ var isActive = action.panelId === panel.id;
67818
67930
  action.pressed = isActive;
67819
67931
  action.disableHide = isActive;
67820
67932
  //should raise update if dimensions are not changed but action is active now
@@ -67836,22 +67948,22 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
67836
67948
  for (var i = 0; i < visPanels.length; i++) {
67837
67949
  _loop_1(i);
67838
67950
  }
67839
- this.additionalTitleToolbar.setItems(items);
67951
+ this.tabbedMenu.setItems(items);
67840
67952
  };
67841
67953
  QuestionPanelDynamicModel.prototype.addTabFromToolbar = function (panel, index) {
67842
67954
  if (!this.isRenderModeTab)
67843
67955
  return;
67844
67956
  var newItem = this.createTabByPanel(panel, index);
67845
- this.additionalTitleToolbar.actions.splice(index, 0, newItem);
67957
+ this.tabbedMenu.actions.splice(index, 0, newItem);
67846
67958
  this.updateTabToolbarItemsPressedState();
67847
67959
  };
67848
67960
  QuestionPanelDynamicModel.prototype.removeTabFromToolbar = function (panel) {
67849
67961
  if (!this.isRenderModeTab)
67850
67962
  return;
67851
- var removedItem = this.additionalTitleToolbar.getActionById(panel.id);
67963
+ var removedItem = this.tabbedMenu.actions.find(function (a) { return a.panelId == panel.id; });
67852
67964
  if (!removedItem)
67853
67965
  return;
67854
- this.additionalTitleToolbar.actions.splice(this.additionalTitleToolbar.actions.indexOf(removedItem), 1);
67966
+ this.tabbedMenu.actions.splice(this.tabbedMenu.actions.indexOf(removedItem), 1);
67855
67967
  this.updateTabToolbarItemsPressedState();
67856
67968
  };
67857
67969
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "showLegacyNavigation", {
@@ -67875,12 +67987,12 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
67875
67987
  };
67876
67988
  QuestionPanelDynamicModel.prototype.calcCssClasses = function (css) {
67877
67989
  var classes = _super.prototype.calcCssClasses.call(this, css);
67878
- var additionalTitleToolbar = this.additionalTitleToolbar;
67879
- if (!!additionalTitleToolbar) {
67880
- additionalTitleToolbar.containerCss = this.getAdditionalTitleToolbarCss(classes);
67881
- additionalTitleToolbar.cssClasses = classes.tabs;
67882
- additionalTitleToolbar.dotsItem.cssClasses = classes.tabs;
67883
- additionalTitleToolbar.dotsItem.popupModel.contentComponentData.model.cssClasses = css.list;
67990
+ var tabbedMenu = this.tabbedMenu;
67991
+ if (!!tabbedMenu) {
67992
+ tabbedMenu.containerCss = this.getTabbedMenuCss(classes);
67993
+ tabbedMenu.cssClasses = classes.tabs;
67994
+ tabbedMenu.dotsItem.cssClasses = classes.tabs;
67995
+ tabbedMenu.dotsItem.popupModel.contentComponentData.model.cssClasses = css.list;
67884
67996
  }
67885
67997
  return classes;
67886
67998
  };
@@ -68002,21 +68114,10 @@ Serializer.addClass("paneldynamic", [
68002
68114
  default: "off",
68003
68115
  choices: ["off", "onPanel", "onSurvey"],
68004
68116
  },
68005
- {
68006
- name: "showRangeInProgress:boolean",
68007
- default: true,
68008
- visible: false
68009
- // visibleIf: (obj: any) => { return obj.displayMode !== "list"; }
68010
- },
68011
- {
68012
- name: "renderMode",
68013
- default: "list",
68014
- choices: ["list", "progressTop", "progressBottom", "progressTopBottom", "tab"],
68015
- visible: false,
68016
- },
68117
+ { name: "renderMode", visible: false, isSerializable: false },
68017
68118
  { name: "displayMode", default: "list", choices: ["list", "carousel", "tab"] },
68018
68119
  {
68019
- name: "showProgressBar:boolean",
68120
+ name: "showProgressBar:boolean", alternativeName: "showRangeInProgress",
68020
68121
  default: true,
68021
68122
  visibleIf: function (obj) { return obj.displayMode === "carousel"; }
68022
68123
  },
@@ -70919,9 +71020,9 @@ Serializer.addClass("currencymask", [
70919
71020
 
70920
71021
  var Version;
70921
71022
  var ReleaseDate;
70922
- Version = "" + "1.12.21";
71023
+ Version = "" + "1.12.23";
70923
71024
  settings.version = Version;
70924
- ReleaseDate = "" + "2025-01-28";
71025
+ ReleaseDate = "" + "2025-02-11";
70925
71026
  function checkLibraryVersion(ver, libraryName) {
70926
71027
  if (Version != ver) {
70927
71028
  var str = "survey-core has version '" + Version + "' and " + libraryName