survey-core 1.11.2 → 1.11.4

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 (306) hide show
  1. package/defaultV2.css +66 -27
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +66 -27
  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 +3 -2
  8. package/i18n/arabic.js.map +1 -1
  9. package/i18n/arabic.min.js +2 -2
  10. package/i18n/basque.js +3 -2
  11. package/i18n/basque.js.map +1 -1
  12. package/i18n/basque.min.js +2 -2
  13. package/i18n/bulgarian.js +3 -2
  14. package/i18n/bulgarian.js.map +1 -1
  15. package/i18n/bulgarian.min.js +2 -2
  16. package/i18n/catalan.js +3 -2
  17. package/i18n/catalan.js.map +1 -1
  18. package/i18n/catalan.min.js +2 -2
  19. package/i18n/croatian.js +3 -2
  20. package/i18n/croatian.js.map +1 -1
  21. package/i18n/croatian.min.js +2 -2
  22. package/i18n/czech.js +3 -2
  23. package/i18n/czech.js.map +1 -1
  24. package/i18n/czech.min.js +2 -2
  25. package/i18n/danish.js +3 -2
  26. package/i18n/danish.js.map +1 -1
  27. package/i18n/danish.min.js +2 -2
  28. package/i18n/dutch.js +3 -2
  29. package/i18n/dutch.js.map +1 -1
  30. package/i18n/dutch.min.js +2 -2
  31. package/i18n/english.js +2 -1
  32. package/i18n/english.js.map +1 -1
  33. package/i18n/english.min.js +2 -2
  34. package/i18n/estonian.js +3 -2
  35. package/i18n/estonian.js.map +1 -1
  36. package/i18n/estonian.min.js +2 -2
  37. package/i18n/finnish.js +3 -2
  38. package/i18n/finnish.js.map +1 -1
  39. package/i18n/finnish.min.js +2 -2
  40. package/i18n/french.js +3 -2
  41. package/i18n/french.js.map +1 -1
  42. package/i18n/french.min.js +2 -2
  43. package/i18n/georgian.js +3 -2
  44. package/i18n/georgian.js.map +1 -1
  45. package/i18n/georgian.min.js +2 -2
  46. package/i18n/german.js +3 -1
  47. package/i18n/german.js.map +1 -1
  48. package/i18n/german.min.js +2 -2
  49. package/i18n/greek.js +3 -2
  50. package/i18n/greek.js.map +1 -1
  51. package/i18n/greek.min.js +2 -2
  52. package/i18n/hebrew.js +4 -3
  53. package/i18n/hebrew.js.map +1 -1
  54. package/i18n/hebrew.min.js +2 -2
  55. package/i18n/hindi.js +3 -2
  56. package/i18n/hindi.js.map +1 -1
  57. package/i18n/hindi.min.js +2 -2
  58. package/i18n/hungarian.js +3 -2
  59. package/i18n/hungarian.js.map +1 -1
  60. package/i18n/hungarian.min.js +2 -2
  61. package/i18n/icelandic.js +3 -2
  62. package/i18n/icelandic.js.map +1 -1
  63. package/i18n/icelandic.min.js +2 -2
  64. package/i18n/index.js +101 -50
  65. package/i18n/index.js.map +1 -1
  66. package/i18n/index.min.js +2 -2
  67. package/i18n/indonesian.js +3 -2
  68. package/i18n/indonesian.js.map +1 -1
  69. package/i18n/indonesian.min.js +2 -2
  70. package/i18n/italian.js +3 -2
  71. package/i18n/italian.js.map +1 -1
  72. package/i18n/italian.min.js +2 -2
  73. package/i18n/japanese.js +3 -2
  74. package/i18n/japanese.js.map +1 -1
  75. package/i18n/japanese.min.js +2 -2
  76. package/i18n/kazakh.js +3 -2
  77. package/i18n/kazakh.js.map +1 -1
  78. package/i18n/kazakh.min.js +2 -2
  79. package/i18n/korean.js +3 -2
  80. package/i18n/korean.js.map +1 -1
  81. package/i18n/korean.min.js +2 -2
  82. package/i18n/latvian.js +3 -2
  83. package/i18n/latvian.js.map +1 -1
  84. package/i18n/latvian.min.js +2 -2
  85. package/i18n/lithuanian.js +3 -2
  86. package/i18n/lithuanian.js.map +1 -1
  87. package/i18n/lithuanian.min.js +2 -2
  88. package/i18n/macedonian.js +3 -2
  89. package/i18n/macedonian.js.map +1 -1
  90. package/i18n/macedonian.min.js +2 -2
  91. package/i18n/malay.js +3 -2
  92. package/i18n/malay.js.map +1 -1
  93. package/i18n/malay.min.js +2 -2
  94. package/i18n/nl-BE.js +3 -2
  95. package/i18n/nl-BE.js.map +1 -1
  96. package/i18n/nl-BE.min.js +2 -2
  97. package/i18n/norwegian.js +3 -2
  98. package/i18n/norwegian.js.map +1 -1
  99. package/i18n/norwegian.min.js +2 -2
  100. package/i18n/persian.js +3 -2
  101. package/i18n/persian.js.map +1 -1
  102. package/i18n/persian.min.js +2 -2
  103. package/i18n/philippines.js +6 -3
  104. package/i18n/philippines.js.map +1 -1
  105. package/i18n/philippines.min.js +2 -2
  106. package/i18n/polish.js +3 -2
  107. package/i18n/polish.js.map +1 -1
  108. package/i18n/polish.min.js +2 -2
  109. package/i18n/portuguese-br.js +3 -2
  110. package/i18n/portuguese-br.js.map +1 -1
  111. package/i18n/portuguese-br.min.js +2 -2
  112. package/i18n/portuguese.js +3 -2
  113. package/i18n/portuguese.js.map +1 -1
  114. package/i18n/portuguese.min.js +2 -2
  115. package/i18n/romanian.js +3 -2
  116. package/i18n/romanian.js.map +1 -1
  117. package/i18n/romanian.min.js +2 -2
  118. package/i18n/russian.js +3 -2
  119. package/i18n/russian.js.map +1 -1
  120. package/i18n/russian.min.js +2 -2
  121. package/i18n/serbian.js +3 -2
  122. package/i18n/serbian.js.map +1 -1
  123. package/i18n/serbian.min.js +2 -2
  124. package/i18n/simplified-chinese.js +3 -2
  125. package/i18n/simplified-chinese.js.map +1 -1
  126. package/i18n/simplified-chinese.min.js +2 -2
  127. package/i18n/slovak.js +3 -2
  128. package/i18n/slovak.js.map +1 -1
  129. package/i18n/slovak.min.js +2 -2
  130. package/i18n/spanish.js +3 -2
  131. package/i18n/spanish.js.map +1 -1
  132. package/i18n/spanish.min.js +2 -2
  133. package/i18n/swahili.js +3 -2
  134. package/i18n/swahili.js.map +1 -1
  135. package/i18n/swahili.min.js +2 -2
  136. package/i18n/swedish.js +3 -2
  137. package/i18n/swedish.js.map +1 -1
  138. package/i18n/swedish.min.js +2 -2
  139. package/i18n/tajik.js +1 -1
  140. package/i18n/tajik.min.js +1 -1
  141. package/i18n/telugu.js +3 -2
  142. package/i18n/telugu.js.map +1 -1
  143. package/i18n/telugu.min.js +2 -2
  144. package/i18n/thai.js +3 -2
  145. package/i18n/thai.js.map +1 -1
  146. package/i18n/thai.min.js +2 -2
  147. package/i18n/traditional-chinese.js +3 -2
  148. package/i18n/traditional-chinese.js.map +1 -1
  149. package/i18n/traditional-chinese.min.js +2 -2
  150. package/i18n/turkish.js +3 -2
  151. package/i18n/turkish.js.map +1 -1
  152. package/i18n/turkish.min.js +2 -2
  153. package/i18n/ukrainian.js +3 -2
  154. package/i18n/ukrainian.js.map +1 -1
  155. package/i18n/ukrainian.min.js +2 -2
  156. package/i18n/urdu.js +3 -2
  157. package/i18n/urdu.js.map +1 -1
  158. package/i18n/urdu.min.js +2 -2
  159. package/i18n/vietnamese.js +3 -2
  160. package/i18n/vietnamese.js.map +1 -1
  161. package/i18n/vietnamese.min.js +2 -2
  162. package/i18n/welsh.js +3 -2
  163. package/i18n/welsh.js.map +1 -1
  164. package/i18n/welsh.min.js +2 -2
  165. package/modern.css +11 -23
  166. package/modern.css.map +1 -1
  167. package/modern.fontless.css +11 -23
  168. package/modern.fontless.css.map +1 -1
  169. package/modern.fontless.min.css +2 -2
  170. package/modern.min.css +2 -2
  171. package/package.json +1 -1
  172. package/plugins/bootstrap-integration.js +1 -1
  173. package/plugins/bootstrap-integration.min.js +1 -1
  174. package/plugins/bootstrap-material-integration.js +1 -1
  175. package/plugins/bootstrap-material-integration.min.js +1 -1
  176. package/survey.core.js +228 -93
  177. package/survey.core.js.map +1 -1
  178. package/survey.core.min.js +3 -3
  179. package/survey.css +11 -23
  180. package/survey.css.map +1 -1
  181. package/survey.i18n.js +101 -50
  182. package/survey.i18n.js.map +1 -1
  183. package/survey.i18n.min.js +2 -2
  184. package/survey.min.css +2 -2
  185. package/themes/borderless-dark-panelless.js +1 -1
  186. package/themes/borderless-dark-panelless.min.js +1 -1
  187. package/themes/borderless-dark.js +1 -1
  188. package/themes/borderless-dark.min.js +1 -1
  189. package/themes/borderless-light-panelless..js +1 -1
  190. package/themes/borderless-light-panelless..min.js +1 -1
  191. package/themes/borderless-light.js +1 -1
  192. package/themes/borderless-light.min.js +1 -1
  193. package/themes/contrast-dark-panelless.js +1 -1
  194. package/themes/contrast-dark-panelless.min.js +1 -1
  195. package/themes/contrast-dark.js +1 -1
  196. package/themes/contrast-dark.min.js +1 -1
  197. package/themes/contrast-light-panelless.js +1 -1
  198. package/themes/contrast-light-panelless.min.js +1 -1
  199. package/themes/contrast-light.js +1 -1
  200. package/themes/contrast-light.min.js +1 -1
  201. package/themes/default-dark-panelless.js +1 -1
  202. package/themes/default-dark-panelless.min.js +1 -1
  203. package/themes/default-dark.js +1 -1
  204. package/themes/default-dark.min.js +1 -1
  205. package/themes/default-light-panelless.js +1 -1
  206. package/themes/default-light-panelless.min.js +1 -1
  207. package/themes/default-light.js +1 -1
  208. package/themes/default-light.min.js +1 -1
  209. package/themes/doubleborder-dark-panelless.js +1 -1
  210. package/themes/doubleborder-dark-panelless.min.js +1 -1
  211. package/themes/doubleborder-dark.js +1 -1
  212. package/themes/doubleborder-dark.min.js +1 -1
  213. package/themes/doubleborder-light-panelles.js +1 -1
  214. package/themes/doubleborder-light-panelles.min.js +1 -1
  215. package/themes/doubleborder-light.js +1 -1
  216. package/themes/doubleborder-light.min.js +1 -1
  217. package/themes/flat-dark-panelless.js +1 -1
  218. package/themes/flat-dark-panelless.min.js +1 -1
  219. package/themes/flat-dark.js +1 -1
  220. package/themes/flat-dark.min.js +1 -1
  221. package/themes/flat-light-panelless.js +1 -1
  222. package/themes/flat-light-panelless.min.js +1 -1
  223. package/themes/flat-light.js +1 -1
  224. package/themes/flat-light.min.js +1 -1
  225. package/themes/index.js +1 -1
  226. package/themes/index.min.js +1 -1
  227. package/themes/layered-dark-panelless.js +1 -1
  228. package/themes/layered-dark-panelless.min.js +1 -1
  229. package/themes/layered-dark.js +1 -1
  230. package/themes/layered-dark.min.js +1 -1
  231. package/themes/layered-light-panelless.js +1 -1
  232. package/themes/layered-light-panelless.min.js +1 -1
  233. package/themes/layered-light.js +1 -1
  234. package/themes/layered-light.min.js +1 -1
  235. package/themes/plain-dark-panelless.js +1 -1
  236. package/themes/plain-dark-panelless.min.js +1 -1
  237. package/themes/plain-dark.js +1 -1
  238. package/themes/plain-dark.min.js +1 -1
  239. package/themes/plain-light-panelless.js +1 -1
  240. package/themes/plain-light-panelless.min.js +1 -1
  241. package/themes/plain-light.js +1 -1
  242. package/themes/plain-light.min.js +1 -1
  243. package/themes/sharp-dark-panelless.js +1 -1
  244. package/themes/sharp-dark-panelless.min.js +1 -1
  245. package/themes/sharp-dark.js +1 -1
  246. package/themes/sharp-dark.min.js +1 -1
  247. package/themes/sharp-light-panelless.js +1 -1
  248. package/themes/sharp-light-panelless.min.js +1 -1
  249. package/themes/sharp-light.js +1 -1
  250. package/themes/sharp-light.min.js +1 -1
  251. package/themes/solid-dark-panelless.js +1 -1
  252. package/themes/solid-dark-panelless.min.js +1 -1
  253. package/themes/solid-dark.js +1 -1
  254. package/themes/solid-dark.min.js +1 -1
  255. package/themes/solid-light-panelless.js +1 -1
  256. package/themes/solid-light-panelless.min.js +1 -1
  257. package/themes/solid-light.js +1 -1
  258. package/themes/solid-light.min.js +1 -1
  259. package/themes/three-dimensional-dark-panelless.js +1 -1
  260. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  261. package/themes/three-dimensional-dark.js +1 -1
  262. package/themes/three-dimensional-dark.min.js +1 -1
  263. package/themes/three-dimensional-light-panelless.js +1 -1
  264. package/themes/three-dimensional-light-panelless.min.js +1 -1
  265. package/themes/three-dimensional-light.js +1 -1
  266. package/themes/three-dimensional-light.min.js +1 -1
  267. package/ts3.4/typings/base-interfaces.d.ts +1 -0
  268. package/ts3.4/typings/defaultCss/cssmodern.d.ts +3 -0
  269. package/ts3.4/typings/defaultCss/cssstandard.d.ts +3 -0
  270. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +3 -0
  271. package/ts3.4/typings/dropdownListModel.d.ts +2 -0
  272. package/ts3.4/typings/global_variables_utils.d.ts +3 -0
  273. package/ts3.4/typings/localization/english.d.ts +1 -0
  274. package/ts3.4/typings/mask/mask_base.d.ts +3 -0
  275. package/ts3.4/typings/panel.d.ts +9 -0
  276. package/ts3.4/typings/question.d.ts +1 -0
  277. package/ts3.4/typings/question_boolean.d.ts +0 -4
  278. package/ts3.4/typings/question_custom.d.ts +1 -0
  279. package/ts3.4/typings/question_matrixdropdownrendered.d.ts +3 -0
  280. package/ts3.4/typings/question_multipletext.d.ts +1 -0
  281. package/ts3.4/typings/question_paneldynamic.d.ts +8 -0
  282. package/ts3.4/typings/question_ranking.d.ts +4 -5
  283. package/ts3.4/typings/settings.d.ts +1 -0
  284. package/ts3.4/typings/survey.d.ts +5 -3
  285. package/ts3.4/typings/surveyStrings.d.ts +1 -0
  286. package/ts3.4/typings/utils/devices.d.ts +4 -0
  287. package/typings/base-interfaces.d.ts +1 -0
  288. package/typings/defaultCss/cssmodern.d.ts +3 -0
  289. package/typings/defaultCss/cssstandard.d.ts +3 -0
  290. package/typings/defaultCss/defaultV2Css.d.ts +3 -0
  291. package/typings/dropdownListModel.d.ts +2 -0
  292. package/typings/global_variables_utils.d.ts +3 -0
  293. package/typings/localization/english.d.ts +1 -0
  294. package/typings/mask/mask_base.d.ts +3 -0
  295. package/typings/panel.d.ts +9 -0
  296. package/typings/question.d.ts +1 -0
  297. package/typings/question_boolean.d.ts +0 -4
  298. package/typings/question_custom.d.ts +1 -0
  299. package/typings/question_matrixdropdownrendered.d.ts +3 -0
  300. package/typings/question_multipletext.d.ts +1 -0
  301. package/typings/question_paneldynamic.d.ts +9 -0
  302. package/typings/question_ranking.d.ts +1 -3
  303. package/typings/settings.d.ts +1 -0
  304. package/typings/survey.d.ts +5 -3
  305. package/typings/surveyStrings.d.ts +1 -0
  306. package/typings/utils/devices.d.ts +4 -0
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.11.2
2
+ * surveyjs - Survey JavaScript library v1.11.4
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
  */
@@ -2925,7 +2925,8 @@ var Base = /** @class */ (function () {
2925
2925
  configurable: true
2926
2926
  });
2927
2927
  Base.prototype.afterRerender = function () {
2928
- this.onElementRerendered.fire(this, undefined);
2928
+ var _a;
2929
+ (_a = this.onElementRerendered) === null || _a === void 0 ? void 0 : _a.fire(this, undefined);
2929
2930
  };
2930
2931
  Base.currentDependencis = undefined;
2931
2932
  return Base;
@@ -4639,6 +4640,7 @@ __webpack_require__.r(__webpack_exports__);
4639
4640
 
4640
4641
  var modernCss = {
4641
4642
  root: "sv-root-modern",
4643
+ rootProgress: "sv-progress",
4642
4644
  timerRoot: "sv-body__timer",
4643
4645
  container: "sv-container-modern",
4644
4646
  header: "sv-title sv-container-modern__title",
@@ -4958,6 +4960,7 @@ var modernCss = {
4958
4960
  matrixdropdown: {
4959
4961
  root: "sv-table sv-matrixdropdown",
4960
4962
  cell: "sv-table__cell",
4963
+ cellResponsiveTitle: "sv-table__responsive-title",
4961
4964
  headerCell: "sv-table__cell sv-table__cell--header",
4962
4965
  row: "sv-table__row",
4963
4966
  rowTextCell: "sv-table__cell--row-text",
@@ -4976,6 +4979,7 @@ var modernCss = {
4976
4979
  matrixdynamic: {
4977
4980
  root: "sv-table sv-matrixdynamic",
4978
4981
  cell: "sv-table__cell",
4982
+ cellResponsiveTitle: "sv-table__responsive-title",
4979
4983
  headerCell: "sv-table__cell sv-table__cell--header",
4980
4984
  button: "sv-btn",
4981
4985
  buttonAdd: "sv-matrixdynamic__add-btn",
@@ -5104,6 +5108,7 @@ __webpack_require__.r(__webpack_exports__);
5104
5108
 
5105
5109
  var defaultStandardCss = {
5106
5110
  root: "sv_main sv_default_css",
5111
+ rootProgress: "sv_progress",
5107
5112
  container: "sv_container",
5108
5113
  header: "sv_header",
5109
5114
  bodyContainer: "sv-components-row",
@@ -5304,6 +5309,7 @@ var defaultStandardCss = {
5304
5309
  matrixdropdown: {
5305
5310
  root: "sv_q_matrix_dropdown",
5306
5311
  cell: "sv_matrix_cell",
5312
+ cellResponsiveTitle: "sv_matrix_cell_responsive_title",
5307
5313
  headerCell: "sv_matrix_cell_header",
5308
5314
  row: "sv_matrix_row",
5309
5315
  rowAdditional: "sv-matrix__row--additional",
@@ -5328,6 +5334,7 @@ var defaultStandardCss = {
5328
5334
  iconRemove: "",
5329
5335
  iconDrag: "sv-matrixdynamic__drag-icon",
5330
5336
  cell: "sv_matrix_cell",
5337
+ cellResponsiveTitle: "sv_matrix_cell_responsive_title",
5331
5338
  headerCell: "sv_matrix_cell_header",
5332
5339
  row: "sv_matrix_row",
5333
5340
  detailRow: "sv_matrix_detail_row",
@@ -5545,6 +5552,7 @@ var surveyCss = {
5545
5552
  };
5546
5553
  var defaultV2Css = {
5547
5554
  root: "sd-root-modern",
5555
+ rootProgress: "sd-progress",
5548
5556
  rootMobile: "sd-root-modern--mobile",
5549
5557
  rootAnimationDisabled: "sd-root-modern--animation-disabled",
5550
5558
  rootReadOnly: "sd-root--readonly",
@@ -6038,6 +6046,7 @@ var defaultV2Css = {
6038
6046
  tableWrapper: "sd-table-wrapper",
6039
6047
  rootAlternateRows: "sd-table--alternate-rows",
6040
6048
  cell: "sd-table__cell",
6049
+ cellResponsiveTitle: "sd-table__responsive-title",
6041
6050
  errorsCell: "sd-table__cell--error",
6042
6051
  errorsCellTop: "sd-table__cell--error-top",
6043
6052
  errorsCellBottom: "sd-table__cell--error-bottom",
@@ -6082,6 +6091,7 @@ var defaultV2Css = {
6082
6091
  rootAlternateRows: "sd-table--alternate-rows",
6083
6092
  content: "sd-matrixdynamic__content sd-question__content",
6084
6093
  cell: "sd-table__cell",
6094
+ cellResponsiveTitle: "sd-table__responsive-title",
6085
6095
  row: "sd-table__row",
6086
6096
  rowFadeIn: "sd-table__row--fade-in",
6087
6097
  rowFadeOut: "sd-table__row--fade-out",
@@ -8155,6 +8165,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8155
8165
  _this.onSelectionChanged = onSelectionChanged;
8156
8166
  _this.minPageSize = 25;
8157
8167
  _this.loadingItemHeight = 40;
8168
+ _this.timer = undefined;
8158
8169
  _this._markdownMode = false;
8159
8170
  _this.filteredItems = undefined;
8160
8171
  _this.selectedItemSelector = ".sv-list__item--selected";
@@ -8209,28 +8220,43 @@ var DropdownListModel = /** @class */ (function (_super) {
8209
8220
  this.listModel.isAllDataLoaded = this.question.choicesLazyLoadEnabled && this.itemsSettings.items.length == this.itemsSettings.totalCount;
8210
8221
  this.question.choices = this.itemsSettings.items;
8211
8222
  };
8223
+ DropdownListModel.prototype.loadQuestionChoices = function (callbackAfterItemsLoaded) {
8224
+ var _this = this;
8225
+ this.isRunningLoadQuestionChoices = true;
8226
+ this.question.survey.loadQuestionChoices({
8227
+ question: this.question,
8228
+ filter: this.filterString,
8229
+ skip: this.itemsSettings.skip,
8230
+ take: this.itemsSettings.take,
8231
+ setItems: function (items, totalCount) {
8232
+ _this.isRunningLoadQuestionChoices = false;
8233
+ _this.setItems(items || [], totalCount || 0);
8234
+ _this.popupRecalculatePosition(_this.itemsSettings.skip === _this.itemsSettings.take);
8235
+ if (!!callbackAfterItemsLoaded) {
8236
+ callbackAfterItemsLoaded();
8237
+ }
8238
+ }
8239
+ });
8240
+ this.itemsSettings.skip += this.itemsSettings.take;
8241
+ };
8212
8242
  DropdownListModel.prototype.updateQuestionChoices = function (callbackAfterItemsLoaded) {
8213
8243
  var _this = this;
8214
8244
  if (this.isRunningLoadQuestionChoices)
8215
8245
  return;
8216
8246
  var isUpdate = (this.itemsSettings.skip + 1) < this.itemsSettings.totalCount;
8217
8247
  if (!this.itemsSettings.skip || isUpdate) {
8218
- this.isRunningLoadQuestionChoices = true;
8219
- this.question.survey.loadQuestionChoices({
8220
- question: this.question,
8221
- filter: this.filterString,
8222
- skip: this.itemsSettings.skip,
8223
- take: this.itemsSettings.take,
8224
- setItems: function (items, totalCount) {
8225
- _this.isRunningLoadQuestionChoices = false;
8226
- _this.setItems(items || [], totalCount || 0);
8227
- _this.popupRecalculatePosition(_this.itemsSettings.skip === _this.itemsSettings.take);
8228
- if (!!callbackAfterItemsLoaded) {
8229
- callbackAfterItemsLoaded();
8230
- }
8248
+ if (!!this.filterString && _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].dropdownSearchDelay > 0) {
8249
+ if (!!this.timer) {
8250
+ clearTimeout(this.timer);
8251
+ this.timer = undefined;
8231
8252
  }
8232
- });
8233
- this.itemsSettings.skip += this.itemsSettings.take;
8253
+ this.timer = setTimeout(function () {
8254
+ _this.loadQuestionChoices(callbackAfterItemsLoaded);
8255
+ }, _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].dropdownSearchDelay);
8256
+ }
8257
+ else {
8258
+ this.loadQuestionChoices(callbackAfterItemsLoaded);
8259
+ }
8234
8260
  }
8235
8261
  };
8236
8262
  DropdownListModel.prototype.updatePopupFocusFirstInputSelector = function () {
@@ -8573,7 +8599,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8573
8599
  this.listModel.setItems(this.getAvailableItems());
8574
8600
  };
8575
8601
  DropdownListModel.prototype.onClick = function (event) {
8576
- if (this.question.readOnly || this.question.isDesignMode)
8602
+ if (this.question.readOnly || this.question.isDesignMode || this.question.isPreviewStyle)
8577
8603
  return;
8578
8604
  this._popupModel.toggleVisibility();
8579
8605
  this.focusItemOnClickAndPopup();
@@ -9036,7 +9062,7 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
9036
9062
  };
9037
9063
  DropdownMultiSelectListModel.prototype.onPropertyChangedHandler = function (sender, options) {
9038
9064
  _super.prototype.onPropertyChangedHandler.call(this, sender, options);
9039
- if (options.name === "value" || options.name === "renderedValue") {
9065
+ if (options.name === "value" || options.name === "renderedValue" || options.name === "placeholder") {
9040
9066
  this.syncFilterStringPlaceholder();
9041
9067
  }
9042
9068
  };
@@ -9785,8 +9811,8 @@ __webpack_require__.r(__webpack_exports__);
9785
9811
 
9786
9812
  var Version;
9787
9813
  var ReleaseDate;
9788
- Version = "" + "1.11.2";
9789
- ReleaseDate = "" + "2024-06-11";
9814
+ Version = "" + "1.11.4";
9815
+ ReleaseDate = "" + "2024-06-25";
9790
9816
  function checkLibraryVersion(ver, libraryName) {
9791
9817
  if (Version != ver) {
9792
9818
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -15888,6 +15914,11 @@ var DomWindowHelper = /** @class */ (function () {
15888
15914
  return;
15889
15915
  window.removeEventListener(type, listener);
15890
15916
  };
15917
+ DomWindowHelper.matchMedia = function (mediaQueryString) {
15918
+ if (!DomWindowHelper.isAvailable() || typeof window.matchMedia === "undefined")
15919
+ return null;
15920
+ return window.matchMedia(mediaQueryString);
15921
+ };
15891
15922
  return DomWindowHelper;
15892
15923
  }());
15893
15924
 
@@ -16136,7 +16167,7 @@ var Cover = /** @class */ (function (_super) {
16136
16167
  .toString();
16137
16168
  };
16138
16169
  Cover.prototype.fromTheme = function (theme) {
16139
- _super.prototype.fromJSON.call(this, theme.header);
16170
+ _super.prototype.fromJSON.call(this, theme.header || {});
16140
16171
  if (!!theme.cssVariables) {
16141
16172
  this.backgroundColor = theme.cssVariables["--sjs-header-backcolor"];
16142
16173
  this.titleColor = theme.cssVariables["--sjs-font-headertitle-color"];
@@ -20308,13 +20339,13 @@ var ListModel = /** @class */ (function (_super) {
20308
20339
  if (_this.allowSelection) {
20309
20340
  _this.selectedItem = itemValue;
20310
20341
  }
20342
+ if (!!_this.onSelectionChanged) {
20343
+ _this.onSelectionChanged(itemValue);
20344
+ }
20311
20345
  var action = itemValue.action;
20312
20346
  if (!!action) {
20313
20347
  action(itemValue);
20314
20348
  }
20315
- if (!!_this.onSelectionChanged) {
20316
- _this.onSelectionChanged(itemValue);
20317
- }
20318
20349
  };
20319
20350
  _this.onItemHover = function (itemValue) {
20320
20351
  _this.mouseOverHandler(itemValue);
@@ -21435,6 +21466,7 @@ var englishStrings = {
21435
21466
  emptyMessage: "No data to display",
21436
21467
  noEntriesText: "No entries yet.\nClick the button below to add a new entry.",
21437
21468
  noEntriesReadonlyText: "No entries",
21469
+ tabTitlePlaceholder: "New Panel",
21438
21470
  more: "More",
21439
21471
  tagboxDoneButtonCaption: "OK",
21440
21472
  selectToRankEmptyRankedAreaText: "All choices are selected for ranking",
@@ -22016,6 +22048,10 @@ var InputMaskBase = /** @class */ (function (_super) {
22016
22048
  function InputMaskBase() {
22017
22049
  return _super !== null && _super.apply(this, arguments) || this;
22018
22050
  }
22051
+ InputMaskBase.prototype.getSurvey = function (live) {
22052
+ if (live === void 0) { live = false; }
22053
+ return this.owner;
22054
+ };
22019
22055
  InputMaskBase.prototype.getType = function () {
22020
22056
  return "masksettings";
22021
22057
  };
@@ -23078,10 +23114,10 @@ var InputMaskNumeric = /** @class */ (function (_super) {
23078
23114
  if (value >= min && value <= max)
23079
23115
  return true;
23080
23116
  if (!matchWholeMask) {
23081
- if (!number.hasDecimalSeparator) {
23117
+ if (!number.hasDecimalSeparator && value != 0) {
23082
23118
  var test_high = value;
23083
23119
  var test_low = value;
23084
- if (value >= 0) {
23120
+ if (value > 0) {
23085
23121
  if (value + 1 > min && value <= max)
23086
23122
  return true;
23087
23123
  while (true) {
@@ -24551,11 +24587,22 @@ var PanelModelBase = /** @class */ (function (_super) {
24551
24587
  });
24552
24588
  PanelModelBase.prototype.delete = function (doDispose) {
24553
24589
  if (doDispose === void 0) { doDispose = true; }
24590
+ this.deletePanel();
24554
24591
  this.removeFromParent();
24555
24592
  if (doDispose) {
24556
24593
  this.dispose();
24557
24594
  }
24558
24595
  };
24596
+ PanelModelBase.prototype.deletePanel = function () {
24597
+ var els = this.elements;
24598
+ for (var i = 0; i < els.length; i++) {
24599
+ var el = els[i];
24600
+ if (el.isPanel) {
24601
+ el.deletePanel();
24602
+ }
24603
+ this.onRemoveElementNotifySurvey(el);
24604
+ }
24605
+ };
24559
24606
  PanelModelBase.prototype.removeFromParent = function () { };
24560
24607
  PanelModelBase.prototype.canShowTitle = function () { return true; };
24561
24608
  Object.defineProperty(PanelModelBase.prototype, "_showDescription", {
@@ -25334,6 +25381,9 @@ var PanelModelBase = /** @class */ (function (_super) {
25334
25381
  return this.parent.getQuestionTitleLocation();
25335
25382
  return this.survey ? this.survey.questionTitleLocation : "top";
25336
25383
  };
25384
+ PanelModelBase.prototype.getQuestionTitleWidth = function () {
25385
+ return this.questionTitleWidth || this.parent && this.parent.getQuestionTitleWidth();
25386
+ };
25337
25387
  PanelModelBase.prototype.getStartIndex = function () {
25338
25388
  if (!!this.parent)
25339
25389
  return this.parent.getQuestionStartIndex();
@@ -25537,17 +25587,20 @@ var PanelModelBase = /** @class */ (function (_super) {
25537
25587
  this.updateRowsOnElementRemoved(element);
25538
25588
  if (this.isRandomizing)
25539
25589
  return;
25590
+ this.onRemoveElementNotifySurvey(element);
25591
+ if (!!this.removeElementCallback)
25592
+ this.removeElementCallback(element);
25593
+ this.onElementVisibilityChanged(this);
25594
+ };
25595
+ PanelModelBase.prototype.onRemoveElementNotifySurvey = function (element) {
25596
+ if (!this.survey)
25597
+ return;
25540
25598
  if (!element.isPanel) {
25541
- if (this.survey)
25542
- this.survey.questionRemoved(element);
25599
+ this.survey.questionRemoved(element);
25543
25600
  }
25544
25601
  else {
25545
- if (this.survey)
25546
- this.survey.panelRemoved(element);
25602
+ this.survey.panelRemoved(element);
25547
25603
  }
25548
- if (!!this.removeElementCallback)
25549
- this.removeElementCallback(element);
25550
- this.onElementVisibilityChanged(this);
25551
25604
  };
25552
25605
  PanelModelBase.prototype.onElementVisibilityChanged = function (element) {
25553
25606
  if (this.isLoadingFromJson || this.isRandomizing)
@@ -26089,6 +26142,9 @@ var PanelModelBase = /** @class */ (function (_super) {
26089
26142
  __decorate([
26090
26143
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: true })
26091
26144
  ], PanelModelBase.prototype, "showDescription", void 0);
26145
+ __decorate([
26146
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
26147
+ ], PanelModelBase.prototype, "questionTitleWidth", void 0);
26092
26148
  return PanelModelBase;
26093
26149
  }(_survey_element__WEBPACK_IMPORTED_MODULE_3__["SurveyElement"]));
26094
26150
 
@@ -26532,6 +26588,12 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("panelbase", [
26532
26588
  "visibleIf:condition",
26533
26589
  "enableIf:condition",
26534
26590
  "requiredIf:condition",
26591
+ {
26592
+ name: "questionTitleWidth",
26593
+ visibleIf: function (obj) {
26594
+ return !!obj && obj["getQuestionTitleLocation"]() === "left";
26595
+ }
26596
+ },
26535
26597
  {
26536
26598
  name: "questionTitleLocation",
26537
26599
  default: "default",
@@ -28256,7 +28318,8 @@ var ProgressButtons = /** @class */ (function (_super) {
28256
28318
  return;
28257
28319
  var listContainerElements = element.querySelectorAll(".sd-progress-buttons__connector");
28258
28320
  var circleWidth = this.showItemNumbers ? 17 : 5;
28259
- var connectorWidth = listContainerElement.clientWidth / (listContainerElement.children.length - 1) - circleWidth;
28321
+ var sideCorrection = this.survey.isMobile ? 0 : listContainerElement.children[0].clientWidth;
28322
+ var connectorWidth = (listContainerElement.clientWidth - sideCorrection) / (listContainerElement.children.length - 1) - circleWidth;
28260
28323
  for (var i = 0; i < listContainerElements.length; i++) {
28261
28324
  listContainerElements[i].style.width = connectorWidth + "px";
28262
28325
  }
@@ -29127,6 +29190,17 @@ var Question = /** @class */ (function (_super) {
29127
29190
  this.clearValueIfInvisible();
29128
29191
  }
29129
29192
  };
29193
+ Object.defineProperty(Question.prototype, "titleWidth", {
29194
+ get: function () {
29195
+ if (this.getTitleLocation() === "left") {
29196
+ if (!!this.parent)
29197
+ return this.parent.getQuestionTitleWidth();
29198
+ }
29199
+ return undefined;
29200
+ },
29201
+ enumerable: false,
29202
+ configurable: true
29203
+ });
29130
29204
  /**
29131
29205
  * Returns title location calculated based on the question's `titleLocation` property and the `questionTitleLocation` property of the question's containers (survey, page, or panel).
29132
29206
  * @see titleLocation
@@ -34558,23 +34632,6 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
34558
34632
  enumerable: false,
34559
34633
  configurable: true
34560
34634
  });
34561
- QuestionBooleanModel.prototype.updateThumbMargin = function () {
34562
- var _this = this;
34563
- if (!this.isIndeterminate && this.leftAnswerElement) {
34564
- if (!this.swapOrder && this.value === this.getValueTrue() || this.swapOrder && this.value === this.getValueFalse()) {
34565
- var el_1 = this.leftAnswerElement;
34566
- setTimeout(function () {
34567
- _this.thumbMargin = el_1.clientWidth + (_this.swapOrder ? 4 : 2) + "px";
34568
- }, 50);
34569
- }
34570
- }
34571
- this.thumbMargin = undefined;
34572
- };
34573
- QuestionBooleanModel.prototype.afterRender = function (el) {
34574
- _super.prototype.afterRender.call(this, el);
34575
- this.leftAnswerElement = el.querySelectorAll("." + this.cssClasses.sliderGhost)[0];
34576
- this.updateThumbMargin();
34577
- };
34578
34635
  QuestionBooleanModel.prototype.beforeDestroyQuestionElement = function (el) {
34579
34636
  _super.prototype.beforeDestroyQuestionElement.call(this, el);
34580
34637
  this.leftAnswerElement = undefined;
@@ -34726,11 +34783,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
34726
34783
  QuestionBooleanModel.prototype.updateValueFromSurvey = function (newValue, clearData) {
34727
34784
  if (clearData === void 0) { clearData = false; }
34728
34785
  _super.prototype.updateValueFromSurvey.call(this, newValue, clearData);
34729
- this.updateThumbMargin();
34730
34786
  };
34731
34787
  QuestionBooleanModel.prototype.onValueChanged = function () {
34732
34788
  _super.prototype.onValueChanged.call(this);
34733
- this.updateThumbMargin();
34734
34789
  };
34735
34790
  Object.defineProperty(QuestionBooleanModel.prototype, "svgIcon", {
34736
34791
  get: function () {
@@ -34858,12 +34913,6 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
34858
34913
  __decorate([
34859
34914
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
34860
34915
  ], QuestionBooleanModel.prototype, "booleanValueRendered", void 0);
34861
- __decorate([
34862
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
34863
- ], QuestionBooleanModel.prototype, "leftAnswerElement", void 0);
34864
- __decorate([
34865
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
34866
- ], QuestionBooleanModel.prototype, "thumbMargin", void 0);
34867
34916
  __decorate([
34868
34917
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
34869
34918
  ], QuestionBooleanModel.prototype, "showTitle", void 0);
@@ -35363,7 +35412,7 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
35363
35412
  }
35364
35413
  else {
35365
35414
  if (this.isNoneItem(item)) {
35366
- this.renderedValue = [item.value];
35415
+ this.renderedValue = checked ? [item.value] : [];
35367
35416
  }
35368
35417
  else {
35369
35418
  var newValue = [].concat(this.renderedValue || []);
@@ -36673,6 +36722,9 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
36673
36722
  QuestionCustomModelBase.prototype.getQuestionTitleLocation = function () {
36674
36723
  return "left";
36675
36724
  };
36725
+ QuestionCustomModelBase.prototype.getQuestionTitleWidth = function () {
36726
+ return undefined;
36727
+ };
36676
36728
  QuestionCustomModelBase.prototype.getQuestionStartIndex = function () {
36677
36729
  return this.getStartIndex();
36678
36730
  };
@@ -46015,6 +46067,28 @@ var QuestionMatrixDropdownRenderedCell = /** @class */ (function () {
46015
46067
  enumerable: false,
46016
46068
  configurable: true
46017
46069
  });
46070
+ Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, "showResponsiveTitle", {
46071
+ get: function () {
46072
+ var _a;
46073
+ return this.hasQuestion && ((_a = this.matrix) === null || _a === void 0 ? void 0 : _a.isMobile);
46074
+ },
46075
+ enumerable: false,
46076
+ configurable: true
46077
+ });
46078
+ Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, "responsiveTitleCss", {
46079
+ get: function () {
46080
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]().append(this.matrix.cssClasses.cellResponsiveTitle).toString();
46081
+ },
46082
+ enumerable: false,
46083
+ configurable: true
46084
+ });
46085
+ Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, "responsiveLocTitle", {
46086
+ get: function () {
46087
+ return this.cell.column.locTitle;
46088
+ },
46089
+ enumerable: false,
46090
+ configurable: true
46091
+ });
46018
46092
  Object.defineProperty(QuestionMatrixDropdownRenderedCell.prototype, "headers", {
46019
46093
  get: function () {
46020
46094
  if (this.cell && this.cell.column) {
@@ -49239,6 +49313,9 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
49239
49313
  QuestionMultipleTextModel.prototype.getQuestionTitleLocation = function () {
49240
49314
  return "left";
49241
49315
  };
49316
+ QuestionMultipleTextModel.prototype.getQuestionTitleWidth = function () {
49317
+ return undefined;
49318
+ };
49242
49319
  QuestionMultipleTextModel.prototype.getQuestionStartIndex = function () {
49243
49320
  return this.getStartIndex();
49244
49321
  };
@@ -49760,6 +49837,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49760
49837
  _this.createLocalizableString("panelNextText", _this, false, "pageNextText");
49761
49838
  _this.createLocalizableString("noEntriesText", _this, false, "noEntriesText");
49762
49839
  _this.createLocalizableString("templateTabTitle", _this, true, "panelDynamicTabTextFormat");
49840
+ _this.createLocalizableString("tabTitlePlaceholder", _this, true, "tabTitlePlaceholder");
49763
49841
  _this.registerPropertyChangedHandlers(["panelsState"], function () {
49764
49842
  _this.setPanelsState();
49765
49843
  });
@@ -49930,6 +50008,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49930
50008
  *
49931
50009
  * [View Demo](https://surveyjs.io/form-library/examples/tabbed-interface-for-duplicate-group-option/ (linkStyle))
49932
50010
  * @see templateTitle
50011
+ * @see tabTitlePlaceholder
49933
50012
  * @see renderMode
49934
50013
  */
49935
50014
  get: function () {
@@ -49948,6 +50027,28 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49948
50027
  enumerable: false,
49949
50028
  configurable: true
49950
50029
  });
50030
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "tabTitlePlaceholder", {
50031
+ /**
50032
+ * A placeholder for tab titles that applies when the [`templateTabTitle`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#templateTabTitle) expression doesn't produce a meaningful value.
50033
+ *
50034
+ * Default value: `"New Panel"` (taken from a [localization dictionary](https://github.com/surveyjs/survey-library/tree/master/src/localization))
50035
+ */
50036
+ get: function () {
50037
+ return this.locTabTitlePlaceholder.text;
50038
+ },
50039
+ set: function (newValue) {
50040
+ this.locTabTitlePlaceholder.text = newValue;
50041
+ },
50042
+ enumerable: false,
50043
+ configurable: true
50044
+ });
50045
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "locTabTitlePlaceholder", {
50046
+ get: function () {
50047
+ return this.getLocalizableString("tabTitlePlaceholder");
50048
+ },
50049
+ enumerable: false,
50050
+ configurable: true
50051
+ });
49951
50052
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "templateDescription", {
49952
50053
  /**
49953
50054
  * A template for panel descriptions.
@@ -52198,6 +52299,9 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
52198
52299
  return;
52199
52300
  var locTitle = new _localizablestring__WEBPACK_IMPORTED_MODULE_2__["LocalizableString"](panel, true);
52200
52301
  locTitle.onGetTextCallback = function (str) {
52302
+ if (!str) {
52303
+ str = _this.locTabTitlePlaceholder.renderedHtml;
52304
+ }
52201
52305
  if (!_this.survey)
52202
52306
  return str;
52203
52307
  var options = {
@@ -52328,6 +52432,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_5__["Serializer"].addClass("paneldynamic",
52328
52432
  },
52329
52433
  { name: "templateTitle:text", serializationProperty: "locTemplateTitle" },
52330
52434
  { name: "templateTabTitle", serializationProperty: "locTemplateTabTitle", visibleIf: function (obj) { return obj.renderMode === "tab"; } },
52435
+ { name: "tabTitlePlaceholder", serializationProperty: "locTabTitlePlaceholder", visibleIf: function (obj) { return obj.renderMode === "tab"; } },
52331
52436
  {
52332
52437
  name: "templateDescription:text",
52333
52438
  serializationProperty: "locTemplateDescription",
@@ -52774,9 +52879,6 @@ var QuestionRankingModel = /** @class */ (function (_super) {
52774
52879
  _this.dragOrClickHelper = new _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_11__["DragOrClickHelper"](_this.startDrag);
52775
52880
  return _this;
52776
52881
  }
52777
- QuestionRankingModel.prototype.getDefaultItemComponent = function () {
52778
- return "";
52779
- };
52780
52882
  QuestionRankingModel.prototype.getType = function () {
52781
52883
  return "ranking";
52782
52884
  };
@@ -53199,19 +53301,12 @@ var QuestionRankingModel = /** @class */ (function (_super) {
53199
53301
  enumerable: false,
53200
53302
  configurable: true
53201
53303
  });
53202
- Object.defineProperty(QuestionRankingModel.prototype, "itemContentComponent", {
53203
- /**
53204
- * The name of a component used to render items.
53205
- */
53206
- get: function () {
53207
- return this.getPropertyValue("itemContentComponent", "sv-ranking-item-content");
53208
- },
53209
- set: function (value) {
53210
- this.setPropertyValue("itemContentComponent", value);
53211
- },
53212
- enumerable: false,
53213
- configurable: true
53214
- });
53304
+ /**
53305
+ * The name of a component used to render items.
53306
+ */
53307
+ QuestionRankingModel.prototype.getDefaultItemComponent = function () {
53308
+ return "sv-ranking-item";
53309
+ };
53215
53310
  Object.defineProperty(QuestionRankingModel.prototype, "selectToRankEnabled", {
53216
53311
  /**
53217
53312
  * Specifies whether users can select choices they want to rank.
@@ -53404,8 +53499,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_3__["Serializer"].addClass("ranking", [
53404
53499
  dependsOn: "selectToRankEnabled", visibleIf: function (obj) {
53405
53500
  return !!obj.selectToRankEnabled;
53406
53501
  }, isSerializable: true },
53407
- { name: "itemComponent", visible: false, default: "" },
53408
- { name: "itemContentComponent", visible: false, default: "sv-ranking-item-content" },
53502
+ { name: "itemComponent", visible: false, default: "sv-ranking-item" },
53409
53503
  ], function () {
53410
53504
  return new QuestionRankingModel("");
53411
53505
  }, "checkbox");
@@ -55655,7 +55749,11 @@ var QuestionTextModel = /** @class */ (function (_super) {
55655
55749
  };
55656
55750
  Object.defineProperty(QuestionTextModel.prototype, "maskTypeIsEmpty", {
55657
55751
  get: function () {
55658
- return this.maskType === "none";
55752
+ switch (this.inputType) {
55753
+ case "tel":
55754
+ case "text": return this.maskType === "none";
55755
+ default: return true;
55756
+ }
55659
55757
  },
55660
55758
  enumerable: false,
55661
55759
  configurable: true
@@ -55697,6 +55795,7 @@ var QuestionTextModel = /** @class */ (function (_super) {
55697
55795
  maskClassName = "masksettings";
55698
55796
  }
55699
55797
  var inputMask = _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].createClass(maskClassName);
55798
+ inputMask.owner = this.survey;
55700
55799
  return inputMask;
55701
55800
  };
55702
55801
  QuestionTextModel.prototype.isTextValue = function () {
@@ -55729,6 +55828,7 @@ var QuestionTextModel = /** @class */ (function (_super) {
55729
55828
  this.max = undefined;
55730
55829
  this.step = undefined;
55731
55830
  }
55831
+ this.updateMaskAdapter();
55732
55832
  },
55733
55833
  enumerable: false,
55734
55834
  configurable: true
@@ -56392,7 +56492,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("text", [
56392
56492
  visibleIndex: 0,
56393
56493
  dependsOn: "inputType",
56394
56494
  visibleIf: function (obj) {
56395
- return obj.inputType === "text";
56495
+ return obj.inputType === "text" || obj.inputType === "tel";
56396
56496
  }
56397
56497
  },
56398
56498
  {
@@ -56401,7 +56501,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("text", [
56401
56501
  visibleIndex: 1,
56402
56502
  dependsOn: "inputType",
56403
56503
  visibleIf: function (obj) {
56404
- return obj.inputType === "text";
56504
+ return obj.inputType === "text" || obj.inputType === "tel";
56405
56505
  },
56406
56506
  onGetValue: function (obj) {
56407
56507
  return obj.maskSettings.getData();
@@ -57411,6 +57511,7 @@ var settings = {
57411
57511
  * This setting applies to all TagBox questions on a page. You can use the [closeOnSelect](https://surveyjs.io/form-library/documentation/api-reference/dropdown-tag-box-model#closeOnSelect) property to specify the same setting for an individual TagBox question.
57412
57512
  */
57413
57513
  tagboxCloseOnSelect: false,
57514
+ dropdownSearchDelay: 500,
57414
57515
  /**
57415
57516
  * A function that activates a browser confirm dialog.
57416
57517
  *
@@ -60170,7 +60271,7 @@ var SurveyModel = /** @class */ (function (_super) {
60170
60271
  */
60171
60272
  _this.onUpdatePageCssClasses = _this.addEvent();
60172
60273
  /**
60173
- * An event that is raised before rendering a choice item in Radio Button Group, Checkboxes, and Dropdown questions. Use it to override default CSS classes applied to choice items.
60274
+ * An event that is raised before rendering a choice item in Radio Button Group and Checkboxes questions. Use it to override default CSS classes applied to choice items.
60174
60275
  *
60175
60276
  * For information on event handler parameters, refer to descriptions within the interface.
60176
60277
  *
@@ -61498,6 +61599,8 @@ var SurveyModel = /** @class */ (function (_super) {
61498
61599
  * - `"onValueChanged"` - Triggers validation each time a question value is changed.
61499
61600
  * - `"onComplete"` - Triggers validation when a user clicks the Complete button. If previous pages contain errors, the survey switches to the page with the first error.
61500
61601
  *
61602
+ * > The `"onValueChanged"` doesn't work with date input fields because of the way browsers process date values. In most browsers, the value is considered changed as soon as a user starts entering the date in a text input field. This means that a user may only enter the day without having the chance to enter the month and year before validation is triggered. For this reason, date input fields are validated before the survey is switched to the next page or completed.
61603
+ *
61501
61604
  * Refer to the following help topic for more information: [Data Validation](https://surveyjs.io/form-library/documentation/data-validation).
61502
61605
  * @see validationEnabled
61503
61606
  * @see validationAllowSwitchPages
@@ -61748,12 +61851,13 @@ var SurveyModel = /** @class */ (function (_super) {
61748
61851
  };
61749
61852
  SurveyModel.prototype.getRendererForString = function (element, name) {
61750
61853
  var renderAs = this.getBuiltInRendererForString(element, name);
61854
+ renderAs = this.elementWrapperComponentNameCore(renderAs, element, "string", name);
61751
61855
  var options = { element: element, name: name, renderAs: renderAs };
61752
61856
  this.onTextRenderAs.fire(this, options);
61753
61857
  return options.renderAs;
61754
61858
  };
61755
61859
  SurveyModel.prototype.getRendererContextForString = function (element, locStr) {
61756
- return locStr;
61860
+ return this.elementWrapperDataCore(locStr, element, "string");
61757
61861
  };
61758
61862
  SurveyModel.prototype.getExpressionDisplayValue = function (question, value, displayValue) {
61759
61863
  var options = {
@@ -65047,6 +65151,7 @@ var SurveyModel = /** @class */ (function (_super) {
65047
65151
  SurveyModel.prototype.getRootCss = function () {
65048
65152
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_18__["CssClassBuilder"]()
65049
65153
  .append(this.css.root)
65154
+ .append(this.css.rootProgress + "--" + this.progressBarType)
65050
65155
  .append(this.css.rootMobile, this.isMobile)
65051
65156
  .append(this.css.rootAnimationDisabled, !_settings__WEBPACK_IMPORTED_MODULE_14__["settings"].animationEnabled)
65052
65157
  .append(this.css.rootReadOnly, this.mode === "display" && !this.isDesignMode)
@@ -67897,10 +68002,7 @@ var SurveyModel = /** @class */ (function (_super) {
67897
68002
  return;
67898
68003
  Object.keys(theme).forEach(function (key) {
67899
68004
  if (key === "header") {
67900
- _this.removeLayoutElement("advanced-header");
67901
- var advHeader = new _header__WEBPACK_IMPORTED_MODULE_20__["Cover"]();
67902
- advHeader.fromTheme(theme);
67903
- _this.insertAdvancedHeader(advHeader);
68005
+ return;
67904
68006
  }
67905
68007
  if (key === "isPanelless") {
67906
68008
  _this.isCompact = theme[key];
@@ -67909,6 +68011,12 @@ var SurveyModel = /** @class */ (function (_super) {
67909
68011
  _this[key] = theme[key];
67910
68012
  }
67911
68013
  });
68014
+ if (this.headerView === "advanced" || "header" in theme) {
68015
+ this.removeLayoutElement("advanced-header");
68016
+ var advHeader = new _header__WEBPACK_IMPORTED_MODULE_20__["Cover"]();
68017
+ advHeader.fromTheme(theme);
68018
+ this.insertAdvancedHeader(advHeader);
68019
+ }
67912
68020
  this.themeChanged(theme);
67913
68021
  };
67914
68022
  SurveyModel.prototype.themeChanged = function (theme) {
@@ -67946,6 +68054,15 @@ var SurveyModel = /** @class */ (function (_super) {
67946
68054
  }
67947
68055
  };
67948
68056
  SurveyModel.prototype.onScroll = function () {
68057
+ if (!!this.rootElement) {
68058
+ var topStickyContainer = this.rootElement.querySelector(".sv-components-container-center");
68059
+ if (!!topStickyContainer && topStickyContainer.getBoundingClientRect().y <= this.rootElement.getBoundingClientRect().y) {
68060
+ this.rootElement.classList && this.rootElement.classList.add("sv-root--sticky-top");
68061
+ }
68062
+ else {
68063
+ this.rootElement.classList && this.rootElement.classList.remove("sv-root--sticky-top");
68064
+ }
68065
+ }
67949
68066
  if (this.onScrollCallback) {
67950
68067
  this.onScrollCallback();
67951
68068
  }
@@ -68937,7 +69054,7 @@ var TOCModel = /** @class */ (function () {
68937
69054
  var titleElement = rootElement.querySelector(titleSelector);
68938
69055
  var titleElementHeight = titleElement ? titleElement.getBoundingClientRect().height : 0;
68939
69056
  var scrollCompensationHeight = rootElement.scrollTop > titleElementHeight ? 0 : titleElementHeight - rootElement.scrollTop;
68940
- tocRootElement.style.height = (rootHeight - scrollCompensationHeight - 2) + "px";
69057
+ tocRootElement.style.height = (rootHeight - scrollCompensationHeight - 1) + "px";
68941
69058
  }
68942
69059
  }
68943
69060
  };
@@ -69669,7 +69786,17 @@ var Trigger = /** @class */ (function (_super) {
69669
69786
  Trigger.prototype.getUsedVariables = function () {
69670
69787
  if (!this.conditionRunner)
69671
69788
  return [];
69672
- return this.conditionRunner.getVariables();
69789
+ var res = this.conditionRunner.getVariables();
69790
+ if (Array.isArray(res)) {
69791
+ var unw = "-unwrapped";
69792
+ for (var i = res.length - 1; i >= 0; i--) {
69793
+ var s = res[i];
69794
+ if (s.endsWith(unw)) {
69795
+ res.push(s.substring(0, s.length - unw.length));
69796
+ }
69797
+ }
69798
+ }
69799
+ return res;
69673
69800
  };
69674
69801
  Trigger.prototype.createConditionRunner = function () {
69675
69802
  if (!!this.conditionRunner)
@@ -70734,7 +70861,7 @@ var CssClassBuilder = /** @class */ (function () {
70734
70861
  /*!******************************!*\
70735
70862
  !*** ./src/utils/devices.ts ***!
70736
70863
  \******************************/
70737
- /*! exports provided: IsMobile, mouseInfo, IsTouch, _setIsTouch */
70864
+ /*! exports provided: IsMobile, mouseInfo, IsTouch, _setIsTouch, detectMouseSupport */
70738
70865
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
70739
70866
 
70740
70867
  "use strict";
@@ -70743,6 +70870,7 @@ __webpack_require__.r(__webpack_exports__);
70743
70870
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mouseInfo", function() { return mouseInfo; });
70744
70871
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "IsTouch", function() { return IsTouch; });
70745
70872
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "_setIsTouch", function() { return _setIsTouch; });
70873
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "detectMouseSupport", function() { return detectMouseSupport; });
70746
70874
  /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../global_variables_utils */ "./src/global_variables_utils.ts");
70747
70875
 
70748
70876
  // isMobile
@@ -70772,13 +70900,20 @@ var mouseInfo = {
70772
70900
  },
70773
70901
  hasMouse: true
70774
70902
  };
70775
- var pointerMatches = (typeof matchMedia !== "undefined" && !!matchMedia && matchMedia("(pointer:fine)")) || undefined;
70776
- mouseInfo.hasMouse = !!pointerMatches && !!pointerMatches.matches;
70903
+ var matchMediaMethod = _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].matchMedia;
70904
+ mouseInfo.hasMouse = detectMouseSupport(matchMediaMethod);
70777
70905
  var IsTouch = mouseInfo.isTouch;
70778
70906
  //for tests
70779
70907
  function _setIsTouch(val) {
70780
70908
  IsTouch = val;
70781
70909
  }
70910
+ function detectMouseSupport(matchMedia) {
70911
+ if (!matchMedia)
70912
+ return false;
70913
+ var pointerQuery = matchMedia("(pointer:fine)");
70914
+ var hoverQuery = matchMedia("(any-hover:hover)");
70915
+ return !!pointerQuery && pointerQuery.matches || !!hoverQuery && hoverQuery.matches;
70916
+ }
70782
70917
 
70783
70918
 
70784
70919
  /***/ }),