survey-core 2.3.1 → 2.3.2

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 (279) hide show
  1. package/fesm/i18n/arabic.mjs +1 -1
  2. package/fesm/i18n/basque.mjs +1 -1
  3. package/fesm/i18n/bulgarian.mjs +1 -1
  4. package/fesm/i18n/burmese.mjs +1 -1
  5. package/fesm/i18n/catalan.mjs +1 -1
  6. package/fesm/i18n/croatian.mjs +1 -1
  7. package/fesm/i18n/czech.mjs +1 -1
  8. package/fesm/i18n/danish.mjs +1 -1
  9. package/fesm/i18n/dutch.mjs +1 -1
  10. package/fesm/i18n/english.mjs +1 -1
  11. package/fesm/i18n/estonian.mjs +1 -1
  12. package/fesm/i18n/finnish.mjs +1 -1
  13. package/fesm/i18n/french.mjs +1 -1
  14. package/fesm/i18n/georgian.mjs +1 -1
  15. package/fesm/i18n/german.mjs +1 -1
  16. package/fesm/i18n/greek.mjs +1 -1
  17. package/fesm/i18n/haitian-creole.mjs +1 -1
  18. package/fesm/i18n/hebrew.mjs +1 -1
  19. package/fesm/i18n/hindi.mjs +1 -1
  20. package/fesm/i18n/hungarian.mjs +1 -1
  21. package/fesm/i18n/icelandic.mjs +1 -1
  22. package/fesm/i18n/index.mjs +1 -1
  23. package/fesm/i18n/indonesian.mjs +1 -1
  24. package/fesm/i18n/italian.mjs +1 -1
  25. package/fesm/i18n/japanese.mjs +1 -1
  26. package/fesm/i18n/kazakh.mjs +1 -1
  27. package/fesm/i18n/korean.mjs +1 -1
  28. package/fesm/i18n/latvian.mjs +1 -1
  29. package/fesm/i18n/lithuanian.mjs +1 -1
  30. package/fesm/i18n/macedonian.mjs +1 -1
  31. package/fesm/i18n/malay.mjs +1 -1
  32. package/fesm/i18n/nl-BE.mjs +1 -1
  33. package/fesm/i18n/norwegian.mjs +1 -1
  34. package/fesm/i18n/persian.mjs +1 -1
  35. package/fesm/i18n/philippines.mjs +1 -1
  36. package/fesm/i18n/polish.mjs +1 -1
  37. package/fesm/i18n/portuguese-br.mjs +1 -1
  38. package/fesm/i18n/portuguese.mjs +1 -1
  39. package/fesm/i18n/romanian.mjs +1 -1
  40. package/fesm/i18n/russian.mjs +1 -1
  41. package/fesm/i18n/serbian.mjs +1 -1
  42. package/fesm/i18n/simplified-chinese.mjs +1 -1
  43. package/fesm/i18n/slovak.mjs +1 -1
  44. package/fesm/i18n/slovenian.mjs +1 -1
  45. package/fesm/i18n/spanish.mjs +1 -1
  46. package/fesm/i18n/swahili.mjs +1 -1
  47. package/fesm/i18n/swedish.mjs +1 -1
  48. package/fesm/i18n/tajik.mjs +1 -1
  49. package/fesm/i18n/telugu.mjs +1 -1
  50. package/fesm/i18n/thai.mjs +1 -1
  51. package/fesm/i18n/traditional-chinese.mjs +1 -1
  52. package/fesm/i18n/turkish.mjs +1 -1
  53. package/fesm/i18n/ukrainian.mjs +1 -1
  54. package/fesm/i18n/urdu.mjs +1 -1
  55. package/fesm/i18n/vietnamese.mjs +1 -1
  56. package/fesm/i18n/welsh.mjs +1 -1
  57. package/fesm/icons/iconsV1.mjs +1 -1
  58. package/fesm/icons/iconsV2.mjs +1 -1
  59. package/fesm/survey-core.mjs +104 -49
  60. package/fesm/survey-core.mjs.map +1 -1
  61. package/fesm/survey.i18n.mjs +1 -1
  62. package/fesm/themes/index.mjs +1 -1
  63. package/i18n/arabic.js +1 -1
  64. package/i18n/arabic.min.js.LICENSE.txt +1 -1
  65. package/i18n/basque.js +1 -1
  66. package/i18n/basque.min.js.LICENSE.txt +1 -1
  67. package/i18n/bulgarian.js +1 -1
  68. package/i18n/bulgarian.min.js.LICENSE.txt +1 -1
  69. package/i18n/burmese.js +1 -1
  70. package/i18n/burmese.min.js.LICENSE.txt +1 -1
  71. package/i18n/catalan.js +1 -1
  72. package/i18n/catalan.min.js.LICENSE.txt +1 -1
  73. package/i18n/croatian.js +1 -1
  74. package/i18n/croatian.min.js.LICENSE.txt +1 -1
  75. package/i18n/czech.js +1 -1
  76. package/i18n/czech.min.js.LICENSE.txt +1 -1
  77. package/i18n/danish.js +1 -1
  78. package/i18n/danish.min.js.LICENSE.txt +1 -1
  79. package/i18n/dutch.js +1 -1
  80. package/i18n/dutch.min.js.LICENSE.txt +1 -1
  81. package/i18n/english.js +1 -1
  82. package/i18n/english.min.js.LICENSE.txt +1 -1
  83. package/i18n/estonian.js +1 -1
  84. package/i18n/estonian.min.js.LICENSE.txt +1 -1
  85. package/i18n/finnish.js +1 -1
  86. package/i18n/finnish.min.js.LICENSE.txt +1 -1
  87. package/i18n/french.js +1 -1
  88. package/i18n/french.min.js.LICENSE.txt +1 -1
  89. package/i18n/georgian.js +1 -1
  90. package/i18n/georgian.min.js.LICENSE.txt +1 -1
  91. package/i18n/german.js +1 -1
  92. package/i18n/german.min.js.LICENSE.txt +1 -1
  93. package/i18n/greek.js +1 -1
  94. package/i18n/greek.min.js.LICENSE.txt +1 -1
  95. package/i18n/haitian-creole.js +1 -1
  96. package/i18n/haitian-creole.min.js.LICENSE.txt +1 -1
  97. package/i18n/hebrew.js +1 -1
  98. package/i18n/hebrew.min.js.LICENSE.txt +1 -1
  99. package/i18n/hindi.js +1 -1
  100. package/i18n/hindi.min.js.LICENSE.txt +1 -1
  101. package/i18n/hungarian.js +1 -1
  102. package/i18n/hungarian.min.js.LICENSE.txt +1 -1
  103. package/i18n/icelandic.js +1 -1
  104. package/i18n/icelandic.min.js.LICENSE.txt +1 -1
  105. package/i18n/index.js +1 -1
  106. package/i18n/index.min.js.LICENSE.txt +1 -1
  107. package/i18n/indonesian.js +1 -1
  108. package/i18n/indonesian.min.js.LICENSE.txt +1 -1
  109. package/i18n/italian.js +1 -1
  110. package/i18n/italian.min.js.LICENSE.txt +1 -1
  111. package/i18n/japanese.js +1 -1
  112. package/i18n/japanese.min.js.LICENSE.txt +1 -1
  113. package/i18n/kazakh.js +1 -1
  114. package/i18n/kazakh.min.js.LICENSE.txt +1 -1
  115. package/i18n/korean.js +1 -1
  116. package/i18n/korean.min.js.LICENSE.txt +1 -1
  117. package/i18n/latvian.js +1 -1
  118. package/i18n/latvian.min.js.LICENSE.txt +1 -1
  119. package/i18n/lithuanian.js +1 -1
  120. package/i18n/lithuanian.min.js.LICENSE.txt +1 -1
  121. package/i18n/macedonian.js +1 -1
  122. package/i18n/macedonian.min.js.LICENSE.txt +1 -1
  123. package/i18n/malay.js +1 -1
  124. package/i18n/malay.min.js.LICENSE.txt +1 -1
  125. package/i18n/nl-BE.js +1 -1
  126. package/i18n/nl-BE.min.js.LICENSE.txt +1 -1
  127. package/i18n/norwegian.js +1 -1
  128. package/i18n/norwegian.min.js.LICENSE.txt +1 -1
  129. package/i18n/persian.js +1 -1
  130. package/i18n/persian.min.js.LICENSE.txt +1 -1
  131. package/i18n/philippines.js +1 -1
  132. package/i18n/philippines.min.js.LICENSE.txt +1 -1
  133. package/i18n/polish.js +1 -1
  134. package/i18n/polish.min.js.LICENSE.txt +1 -1
  135. package/i18n/portuguese-br.js +1 -1
  136. package/i18n/portuguese-br.min.js.LICENSE.txt +1 -1
  137. package/i18n/portuguese.js +1 -1
  138. package/i18n/portuguese.min.js.LICENSE.txt +1 -1
  139. package/i18n/romanian.js +1 -1
  140. package/i18n/romanian.min.js.LICENSE.txt +1 -1
  141. package/i18n/russian.js +1 -1
  142. package/i18n/russian.min.js.LICENSE.txt +1 -1
  143. package/i18n/serbian.js +1 -1
  144. package/i18n/serbian.min.js.LICENSE.txt +1 -1
  145. package/i18n/simplified-chinese.js +1 -1
  146. package/i18n/simplified-chinese.min.js.LICENSE.txt +1 -1
  147. package/i18n/slovak.js +1 -1
  148. package/i18n/slovak.min.js.LICENSE.txt +1 -1
  149. package/i18n/slovenian.js +1 -1
  150. package/i18n/slovenian.min.js.LICENSE.txt +1 -1
  151. package/i18n/spanish.js +1 -1
  152. package/i18n/spanish.min.js.LICENSE.txt +1 -1
  153. package/i18n/swahili.js +1 -1
  154. package/i18n/swahili.min.js.LICENSE.txt +1 -1
  155. package/i18n/swedish.js +1 -1
  156. package/i18n/swedish.min.js.LICENSE.txt +1 -1
  157. package/i18n/tajik.js +1 -1
  158. package/i18n/tajik.min.js.LICENSE.txt +1 -1
  159. package/i18n/telugu.js +1 -1
  160. package/i18n/telugu.min.js.LICENSE.txt +1 -1
  161. package/i18n/thai.js +1 -1
  162. package/i18n/thai.min.js.LICENSE.txt +1 -1
  163. package/i18n/traditional-chinese.js +1 -1
  164. package/i18n/traditional-chinese.min.js.LICENSE.txt +1 -1
  165. package/i18n/turkish.js +1 -1
  166. package/i18n/turkish.min.js.LICENSE.txt +1 -1
  167. package/i18n/ukrainian.js +1 -1
  168. package/i18n/ukrainian.min.js.LICENSE.txt +1 -1
  169. package/i18n/urdu.js +1 -1
  170. package/i18n/urdu.min.js.LICENSE.txt +1 -1
  171. package/i18n/vietnamese.js +1 -1
  172. package/i18n/vietnamese.min.js.LICENSE.txt +1 -1
  173. package/i18n/welsh.js +1 -1
  174. package/i18n/welsh.min.js.LICENSE.txt +1 -1
  175. package/icons/iconsV1.js +1 -1
  176. package/icons/iconsV1.min.js.LICENSE.txt +1 -1
  177. package/icons/iconsV2.js +1 -1
  178. package/icons/iconsV2.min.js.LICENSE.txt +1 -1
  179. package/package.json +1 -1
  180. package/survey-core.css +1 -1
  181. package/survey-core.fontless.css +1 -1
  182. package/survey-core.fontless.min.css +1 -1
  183. package/survey-core.min.css +1 -1
  184. package/survey.core.js +106 -54
  185. package/survey.core.js.map +1 -1
  186. package/survey.core.min.js +1 -1
  187. package/survey.core.min.js.LICENSE.txt +1 -1
  188. package/survey.i18n.js +1 -1
  189. package/survey.i18n.min.js.LICENSE.txt +1 -1
  190. package/themes/borderless-dark-panelless.js +1 -1
  191. package/themes/borderless-dark-panelless.min.js.LICENSE.txt +1 -1
  192. package/themes/borderless-dark.js +1 -1
  193. package/themes/borderless-dark.min.js.LICENSE.txt +1 -1
  194. package/themes/borderless-light-panelless.js +1 -1
  195. package/themes/borderless-light-panelless.min.js.LICENSE.txt +1 -1
  196. package/themes/borderless-light.js +1 -1
  197. package/themes/borderless-light.min.js.LICENSE.txt +1 -1
  198. package/themes/contrast-dark-panelless.js +1 -1
  199. package/themes/contrast-dark-panelless.min.js.LICENSE.txt +1 -1
  200. package/themes/contrast-dark.js +1 -1
  201. package/themes/contrast-dark.min.js.LICENSE.txt +1 -1
  202. package/themes/contrast-light-panelless.js +1 -1
  203. package/themes/contrast-light-panelless.min.js.LICENSE.txt +1 -1
  204. package/themes/contrast-light.js +1 -1
  205. package/themes/contrast-light.min.js.LICENSE.txt +1 -1
  206. package/themes/default-dark-panelless.js +1 -1
  207. package/themes/default-dark-panelless.min.js.LICENSE.txt +1 -1
  208. package/themes/default-dark.js +1 -1
  209. package/themes/default-dark.min.js.LICENSE.txt +1 -1
  210. package/themes/default-light-panelless.js +1 -1
  211. package/themes/default-light-panelless.min.js.LICENSE.txt +1 -1
  212. package/themes/default-light.js +1 -1
  213. package/themes/default-light.min.js.LICENSE.txt +1 -1
  214. package/themes/doubleborder-dark-panelless.js +1 -1
  215. package/themes/doubleborder-dark-panelless.min.js.LICENSE.txt +1 -1
  216. package/themes/doubleborder-dark.js +1 -1
  217. package/themes/doubleborder-dark.min.js.LICENSE.txt +1 -1
  218. package/themes/doubleborder-light-panelles.js +1 -1
  219. package/themes/doubleborder-light-panelles.min.js.LICENSE.txt +1 -1
  220. package/themes/doubleborder-light.js +1 -1
  221. package/themes/doubleborder-light.min.js.LICENSE.txt +1 -1
  222. package/themes/flat-dark-panelless.js +1 -1
  223. package/themes/flat-dark-panelless.min.js.LICENSE.txt +1 -1
  224. package/themes/flat-dark.js +1 -1
  225. package/themes/flat-dark.min.js.LICENSE.txt +1 -1
  226. package/themes/flat-light-panelless.js +1 -1
  227. package/themes/flat-light-panelless.min.js.LICENSE.txt +1 -1
  228. package/themes/flat-light.js +1 -1
  229. package/themes/flat-light.min.js.LICENSE.txt +1 -1
  230. package/themes/index.js +1 -1
  231. package/themes/index.min.js.LICENSE.txt +1 -1
  232. package/themes/layered-dark-panelless.js +1 -1
  233. package/themes/layered-dark-panelless.min.js.LICENSE.txt +1 -1
  234. package/themes/layered-dark.js +1 -1
  235. package/themes/layered-dark.min.js.LICENSE.txt +1 -1
  236. package/themes/layered-light-panelless.js +1 -1
  237. package/themes/layered-light-panelless.min.js.LICENSE.txt +1 -1
  238. package/themes/layered-light.js +1 -1
  239. package/themes/layered-light.min.js.LICENSE.txt +1 -1
  240. package/themes/plain-dark-panelless.js +1 -1
  241. package/themes/plain-dark-panelless.min.js.LICENSE.txt +1 -1
  242. package/themes/plain-dark.js +1 -1
  243. package/themes/plain-dark.min.js.LICENSE.txt +1 -1
  244. package/themes/plain-light-panelless.js +1 -1
  245. package/themes/plain-light-panelless.min.js.LICENSE.txt +1 -1
  246. package/themes/plain-light.js +1 -1
  247. package/themes/plain-light.min.js.LICENSE.txt +1 -1
  248. package/themes/sharp-dark-panelless.js +1 -1
  249. package/themes/sharp-dark-panelless.min.js.LICENSE.txt +1 -1
  250. package/themes/sharp-dark.js +1 -1
  251. package/themes/sharp-dark.min.js.LICENSE.txt +1 -1
  252. package/themes/sharp-light-panelless.js +1 -1
  253. package/themes/sharp-light-panelless.min.js.LICENSE.txt +1 -1
  254. package/themes/sharp-light.js +1 -1
  255. package/themes/sharp-light.min.js.LICENSE.txt +1 -1
  256. package/themes/solid-dark-panelless.js +1 -1
  257. package/themes/solid-dark-panelless.min.js.LICENSE.txt +1 -1
  258. package/themes/solid-dark.js +1 -1
  259. package/themes/solid-dark.min.js.LICENSE.txt +1 -1
  260. package/themes/solid-light-panelless.js +1 -1
  261. package/themes/solid-light-panelless.min.js.LICENSE.txt +1 -1
  262. package/themes/solid-light.js +1 -1
  263. package/themes/solid-light.min.js.LICENSE.txt +1 -1
  264. package/themes/three-dimensional-dark-panelless.js +1 -1
  265. package/themes/three-dimensional-dark-panelless.min.js.LICENSE.txt +1 -1
  266. package/themes/three-dimensional-dark.js +1 -1
  267. package/themes/three-dimensional-dark.min.js.LICENSE.txt +1 -1
  268. package/themes/three-dimensional-light-panelless.js +1 -1
  269. package/themes/three-dimensional-light-panelless.min.js.LICENSE.txt +1 -1
  270. package/themes/three-dimensional-light.js +1 -1
  271. package/themes/three-dimensional-light.min.js.LICENSE.txt +1 -1
  272. package/typings/src/dropdownMultiSelectListModel.d.ts +0 -1
  273. package/typings/src/list.d.ts +2 -0
  274. package/typings/src/panel.d.ts +2 -0
  275. package/typings/src/question.d.ts +1 -0
  276. package/typings/src/question_baseselect.d.ts +1 -0
  277. package/typings/src/question_boolean.d.ts +0 -3
  278. package/typings/src/question_paneldynamic.d.ts +1 -0
  279. package/typings/src/survey.d.ts +1 -0
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v2.3.1
2
+ * surveyjs - Survey JavaScript library v2.3.2
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
  */
@@ -619,11 +619,11 @@ var Version;
619
619
  var ReleaseDate;
620
620
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
621
621
  //@ts-ignore
622
- Version = "".concat("2.3.1");
622
+ Version = "".concat("2.3.2");
623
623
  _src_settings__WEBPACK_IMPORTED_MODULE_1__.settings.version = Version;
624
624
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
625
625
  //@ts-ignore
626
- ReleaseDate = "".concat("2025-08-06");
626
+ ReleaseDate = "".concat("2025-08-13");
627
627
  function checkLibraryVersion(ver, libraryName) {
628
628
  if (Version != ver) {
629
629
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -1503,6 +1503,11 @@ function createPopupModelWithListModel(listOptions, popupOptions) {
1503
1503
  _popupOptions.onShow();
1504
1504
  listModel.scrollToSelectedItem();
1505
1505
  };
1506
+ popupModel.onHide = function () {
1507
+ if (!!_popupOptions.onHide)
1508
+ _popupOptions.onHide();
1509
+ listModel.filterString = "";
1510
+ };
1506
1511
  return popupModel;
1507
1512
  }
1508
1513
  function getActionDropdownButtonTarget(container) {
@@ -4261,8 +4266,10 @@ var CalculatedValue = /** @class */ (function (_super) {
4261
4266
  };
4262
4267
  CalculatedValue.prototype.ensureExpression = function () {
4263
4268
  var _this = this;
4264
- if (!!this.expressionRunner)
4269
+ if (!!this.expressionRunner) {
4270
+ this.expressionRunner.expression = this.expression;
4265
4271
  return;
4272
+ }
4266
4273
  this.expressionRunner = new _conditions__WEBPACK_IMPORTED_MODULE_2__.ExpressionRunner(this.expression);
4267
4274
  this.expressionRunner.onRunComplete = function (newValue) {
4268
4275
  if (!_helpers__WEBPACK_IMPORTED_MODULE_0__.Helpers.isTwoValueEquals(newValue, _this.value, false, true, false)) {
@@ -8496,7 +8503,6 @@ var DropdownListModel = /** @class */ (function (_super) {
8496
8503
  }, 1);
8497
8504
  };
8498
8505
  DropdownListModel.prototype.onHidePopup = function () {
8499
- this.resetFilterString();
8500
8506
  this.question.suggestedItem = null;
8501
8507
  if (this.choicesLazyLoadEnabled) {
8502
8508
  this.resetItemsSettings();
@@ -8550,17 +8556,17 @@ var DropdownListModel = /** @class */ (function (_super) {
8550
8556
  return res;
8551
8557
  };
8552
8558
  DropdownListModel.prototype.setQuestionValue = function (item) {
8559
+ var selectedItem = item;
8553
8560
  if (this.allowCustomChoices && item.id === this.customItemValue.id) {
8554
8561
  var newChoice = this.createCustomItem();
8555
- if (!!newChoice) {
8556
- this.question.selectItem(newChoice);
8557
- this.hintString = "";
8558
- }
8562
+ selectedItem = newChoice;
8559
8563
  }
8560
- else {
8561
- this.question.selectItem(item);
8562
- if (this.searchEnabled)
8563
- this.applyInputString(item);
8564
+ if (!!selectedItem) {
8565
+ this.resetFilterString();
8566
+ this.question.selectItem(selectedItem);
8567
+ if (this.searchEnabled) {
8568
+ this.applyInputString(selectedItem);
8569
+ }
8564
8570
  }
8565
8571
  };
8566
8572
  DropdownListModel.prototype.createCustomItem = function () {
@@ -8589,6 +8595,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8589
8595
  }
8590
8596
  });
8591
8597
  model.isAllDataLoaded = !this.choicesLazyLoadEnabled;
8598
+ model.disableSearch = this.choicesLazyLoadEnabled;
8592
8599
  model.actions.forEach(function (a) { return a.disableTabStop = true; });
8593
8600
  model.setOnFilterStringChangedCallback(this.listModelFilterStringChanged);
8594
8601
  };
@@ -8600,12 +8607,13 @@ var DropdownListModel = /** @class */ (function (_super) {
8600
8607
  DropdownListModel.prototype.resetFilterString = function () {
8601
8608
  if (!!this.filterString) {
8602
8609
  this.filterString = undefined;
8610
+ this.listModel.filterString = "";
8603
8611
  }
8612
+ this.inputString = null;
8613
+ this.hintString = "";
8604
8614
  };
8605
8615
  DropdownListModel.prototype.clear = function () {
8606
8616
  this.customValue = undefined;
8607
- this.inputString = null;
8608
- this.hintString = "";
8609
8617
  this.resetFilterString();
8610
8618
  };
8611
8619
  DropdownListModel.prototype.onSetFilterString = function () {
@@ -9004,6 +9012,8 @@ var DropdownListModel = /** @class */ (function (_super) {
9004
9012
  };
9005
9013
  DropdownListModel.prototype.setChoicesLazyLoadEnabled = function (newValue) {
9006
9014
  this.choicesLazyLoadEnabled = newValue;
9015
+ this.listModel.disableSearch = newValue;
9016
+ this.listModel.isAllDataLoaded = !newValue;
9007
9017
  };
9008
9018
  DropdownListModel.prototype.setInputPlaceholder = function (newValue) {
9009
9019
  this.inputPlaceholder = newValue;
@@ -9161,8 +9171,6 @@ var DropdownListModel = /** @class */ (function (_super) {
9161
9171
  (0,_utils_utils__WEBPACK_IMPORTED_MODULE_13__.doKey2ClickBlur)(event);
9162
9172
  this._popupModel.hide();
9163
9173
  this.resetFilterString();
9164
- this.inputString = null;
9165
- this.hintString = "";
9166
9174
  event.stopPropagation();
9167
9175
  };
9168
9176
  DropdownListModel.prototype.onFocus = function (event) {
@@ -9175,9 +9183,6 @@ var DropdownListModel = /** @class */ (function (_super) {
9175
9183
  if (this.searchEnabled && !!newValue) {
9176
9184
  this.applyInputString(newValue);
9177
9185
  }
9178
- else {
9179
- this.inputString = null;
9180
- }
9181
9186
  };
9182
9187
  DropdownListModel.prototype.dispose = function () {
9183
9188
  _super.prototype.dispose.call(this);
@@ -9390,11 +9395,6 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
9390
9395
  res.forceShowFilter = this.question.choicesLazyLoadEnabled;
9391
9396
  return res;
9392
9397
  };
9393
- DropdownMultiSelectListModel.prototype.resetFilterString = function () {
9394
- _super.prototype.resetFilterString.call(this);
9395
- this.inputString = null;
9396
- this.hintString = "";
9397
- };
9398
9398
  Object.defineProperty(DropdownMultiSelectListModel.prototype, "shouldResetAfterCancel", {
9399
9399
  get: function () {
9400
9400
  return _utils_devices__WEBPACK_IMPORTED_MODULE_5__.IsTouch && !this.closeOnSelect;
@@ -18781,6 +18781,8 @@ var ListModel = /** @class */ (function (_super) {
18781
18781
  ListModel.prototype.isItemVisible = function (item) {
18782
18782
  if (item.id === this.loadingIndicator.id)
18783
18783
  return item.visible;
18784
+ if (this.disableSearch)
18785
+ return item.visible;
18784
18786
  return item.visible && this.hasText(item, this.filterString);
18785
18787
  };
18786
18788
  ListModel.prototype.getRenderedActions = function () {
@@ -18949,10 +18951,7 @@ var ListModel = /** @class */ (function (_super) {
18949
18951
  };
18950
18952
  ListModel.prototype.onPointerDown = function (event, item) { };
18951
18953
  ListModel.prototype.refresh = function () {
18952
- if (this.filterString !== "") {
18953
- this.filterString = "";
18954
- }
18955
- else {
18954
+ if (this.filterString == "") {
18956
18955
  this.raiseUpdate({ needUpdateIsEmpty: true });
18957
18956
  }
18958
18957
  this.resetFocusedItem();
@@ -19115,6 +19114,9 @@ var ListModel = /** @class */ (function (_super) {
19115
19114
  __decorate([
19116
19115
  (0,_jsonobject__WEBPACK_IMPORTED_MODULE_0__.property)()
19117
19116
  ], ListModel.prototype, "listAriaLabel", void 0);
19117
+ __decorate([
19118
+ (0,_jsonobject__WEBPACK_IMPORTED_MODULE_0__.property)({ defaultValue: false })
19119
+ ], ListModel.prototype, "disableSearch", void 0);
19118
19120
  return ListModel;
19119
19121
  }(_actions_container__WEBPACK_IMPORTED_MODULE_1__.ActionContainer));
19120
19122
 
@@ -19990,7 +19992,6 @@ var QuestionMatrixBaseModel = /** @class */ (function (_super) {
19990
19992
  var _this = _super.call(this, name) || this;
19991
19993
  _this.generatedVisibleRows = null;
19992
19994
  _this.generatedTotalRow = null;
19993
- _this.filteredRows = null;
19994
19995
  _this.columns = _this.createColumnValues();
19995
19996
  _this.rows = _this.createItemValues("rows");
19996
19997
  return _this;
@@ -20206,6 +20207,9 @@ var QuestionMatrixBaseModel = /** @class */ (function (_super) {
20206
20207
  _itemvalue__WEBPACK_IMPORTED_MODULE_0__.ItemValue.runEnabledConditionsForItems(this.rows, undefined, properties);
20207
20208
  if (this.filteredRows.length === this.rows.length) {
20208
20209
  this.filteredRows = null;
20210
+ if (!!this.generatedVisibleRows && this.generatedVisibleRows.length !== this.rows.length) {
20211
+ this.generatedVisibleRows = null;
20212
+ }
20209
20213
  }
20210
20214
  return hasChanged;
20211
20215
  };
@@ -23821,7 +23825,7 @@ var PanelModelBase = /** @class */ (function (_super) {
23821
23825
  var q = el;
23822
23826
  if (!q.isEmpty()) {
23823
23827
  var valueName = q.getValueName();
23824
- data[valueName] = q.value;
23828
+ data[valueName] = q.getStructuredValue(level - 1);
23825
23829
  if (!!this.data) {
23826
23830
  var comment = this.data.getComment(valueName);
23827
23831
  if (!!comment) {
@@ -24421,6 +24425,8 @@ var PanelModelBase = /** @class */ (function (_super) {
24421
24425
  configurable: true
24422
24426
  });
24423
24427
  PanelModelBase.prototype.childVisibilityChanged = function () {
24428
+ if (this.isRunningConditions)
24429
+ return;
24424
24430
  var newIsVisibleValue = this.getIsPageVisible(null);
24425
24431
  var oldIsVisibleValue = this.getPropertyValue("isVisible", true);
24426
24432
  if (newIsVisibleValue !== oldIsVisibleValue) {
@@ -25131,10 +25137,17 @@ var PanelModelBase = /** @class */ (function (_super) {
25131
25137
  if (this.isDesignMode || this.isLoadingFromJson)
25132
25138
  return;
25133
25139
  var elements = this.elements.slice();
25140
+ var prevContentVisibility = this.getIsPageVisible();
25141
+ this.isRunningConditions = true;
25134
25142
  for (var i = 0; i < elements.length; i++) {
25135
25143
  elements[i].runCondition(properties);
25136
25144
  }
25137
25145
  this.runConditionCore(properties);
25146
+ var newContentVisibility = this.getIsPageVisible();
25147
+ this.isRunningConditions = false;
25148
+ if (prevContentVisibility !== newContentVisibility) {
25149
+ this.childVisibilityChanged();
25150
+ }
25138
25151
  };
25139
25152
  PanelModelBase.prototype.onAnyValueChanged = function (name, questionName) {
25140
25153
  var els = this.elements;
@@ -25459,6 +25472,9 @@ var PanelModel = /** @class */ (function (_super) {
25459
25472
  });
25460
25473
  PanelModel.prototype.calcNo = function () {
25461
25474
  var no = _helpers__WEBPACK_IMPORTED_MODULE_1__.Helpers.getNumberByIndex(this.visibleIndex, this.getStartIndex());
25475
+ if (this.onGetNoCallback) {
25476
+ no = this.onGetNoCallback(no);
25477
+ }
25462
25478
  if (!!this.parent) {
25463
25479
  no = this.parent.addNoFromChild(no);
25464
25480
  }
@@ -30445,6 +30461,10 @@ var Question = /** @class */ (function (_super) {
30445
30461
  enumerable: false,
30446
30462
  configurable: true
30447
30463
  });
30464
+ Question.prototype.getStructuredValue = function (level) {
30465
+ if (level === void 0) { level = -1; }
30466
+ return this.value;
30467
+ };
30448
30468
  Object.defineProperty(Question.prototype, "hasFilteredValue", {
30449
30469
  get: function () { return false; },
30450
30470
  enumerable: false,
@@ -33358,15 +33378,24 @@ var QuestionSelectBase = /** @class */ (function (_super) {
33358
33378
  _super.prototype.setNewValue.call(this, newValue);
33359
33379
  };
33360
33380
  QuestionSelectBase.prototype.valueFromData = function (val) {
33361
- var _a;
33362
33381
  var item = this.getItemByValue(val, this.activeChoices);
33363
33382
  if (!!item) {
33364
- if (typeof val === "object" && item.showCommentArea && !_helpers__WEBPACK_IMPORTED_MODULE_9__.Helpers.isValueEmpty(val[this.commentPropertyValue]))
33365
- return _a = { value: item.value }, _a[this.commentPropertyValue] = val[this.commentPropertyValue], _a;
33366
- return item.value;
33383
+ return this.getChoiceValue(item, val, false);
33367
33384
  }
33368
33385
  return _super.prototype.valueFromData.call(this, val);
33369
33386
  };
33387
+ QuestionSelectBase.prototype.getChoiceValue = function (choice, val, objOnComment) {
33388
+ var isObj = typeof val === "object";
33389
+ var comment = isObj ? val[this.commentPropertyValue] : "";
33390
+ var hasComment = !_helpers__WEBPACK_IMPORTED_MODULE_9__.Helpers.isValueEmpty(comment);
33391
+ if (isObj && choice.showCommentArea && (objOnComment || hasComment)) {
33392
+ var res = { value: choice.value };
33393
+ if (hasComment)
33394
+ res[this.commentPropertyValue] = comment;
33395
+ return res;
33396
+ }
33397
+ return choice.value;
33398
+ };
33370
33399
  QuestionSelectBase.prototype.getItemByValue = function (val, choices) {
33371
33400
  var chs = choices || this.visibleChoices;
33372
33401
  if (!!val && typeof val === "object" && !_helpers__WEBPACK_IMPORTED_MODULE_9__.Helpers.isValueEmpty(val.value)) {
@@ -35332,20 +35361,12 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
35332
35361
  enumerable: false,
35333
35362
  configurable: true
35334
35363
  });
35335
- Object.defineProperty(QuestionBooleanModel.prototype, "checkedValue", {
35336
- get: function () { return this.booleanValue; },
35337
- set: function (val) { this.booleanValue = val; },
35338
- enumerable: false,
35339
- configurable: true
35340
- });
35341
35364
  QuestionBooleanModel.prototype.setBooleanValue = function (val) {
35342
35365
  if (this.isValueEmpty(val)) {
35343
35366
  this.value = undefined;
35344
- this.booleanValueRendered = undefined;
35345
35367
  }
35346
35368
  else {
35347
35369
  this.value = val == true ? this.getValueTrue() : this.getValueFalse();
35348
- this.booleanValueRendered = val;
35349
35370
  }
35350
35371
  };
35351
35372
  Object.defineProperty(QuestionBooleanModel.prototype, "defaultValue", {
@@ -35630,7 +35651,7 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
35630
35651
  if (css.radioItem) {
35631
35652
  className = css.radioItem;
35632
35653
  }
35633
- if (css.radioItemChecked && value === this.booleanValue) {
35654
+ if (css.radioItemChecked && value === this.value) {
35634
35655
  className = (className ? className + " " : "") + css.radioItemChecked;
35635
35656
  }
35636
35657
  if (this.isDisabledStyle) {
@@ -35668,9 +35689,6 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
35668
35689
  enumerable: false,
35669
35690
  configurable: true
35670
35691
  });
35671
- __decorate([
35672
- (0,_jsonobject__WEBPACK_IMPORTED_MODULE_1__.property)()
35673
- ], QuestionBooleanModel.prototype, "booleanValueRendered", void 0);
35674
35692
  __decorate([
35675
35693
  (0,_jsonobject__WEBPACK_IMPORTED_MODULE_1__.property)({ localizable: true })
35676
35694
  ], QuestionBooleanModel.prototype, "label", void 0);
@@ -36453,7 +36471,13 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
36453
36471
  var index = this.getItemValIndexByItemValue(item.value);
36454
36472
  if (index > -1) {
36455
36473
  var val = this.createValueCopy();
36456
- val[index][this.commentPropertyValue] = newValue;
36474
+ var itemVal = val[index];
36475
+ if (newValue) {
36476
+ itemVal[this.commentPropertyValue] = newValue;
36477
+ }
36478
+ else {
36479
+ delete itemVal[this.commentPropertyValue];
36480
+ }
36457
36481
  this.value = val;
36458
36482
  }
36459
36483
  }
@@ -36785,6 +36809,9 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
36785
36809
  return -1;
36786
36810
  };
36787
36811
  QuestionCheckboxModel.prototype.removeNoneItemsValues = function (value, newValue) {
36812
+ if (value.length === 1 && newValue.length === 1
36813
+ && this.getRealValue(value[0]) === this.getRealValue(newValue[0]))
36814
+ return;
36788
36815
  var noneValues = this.getNoneItems().map(function (item) { return item.value; });
36789
36816
  if (noneValues.length > 0) {
36790
36817
  var prevNone = this.noneIndexInArray(value, noneValues);
@@ -36956,9 +36983,9 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
36956
36983
  return [_super.prototype.valueFromData.call(this, val)];
36957
36984
  var value = [];
36958
36985
  for (var i = 0; i < val.length; i++) {
36959
- var choiceitem = _itemvalue__WEBPACK_IMPORTED_MODULE_4__.ItemValue.getItemByValue(this.visibleChoices, val[i]);
36986
+ var choiceitem = this.getItemByValue(val[i], this.visibleChoices);
36960
36987
  if (!!choiceitem) {
36961
- value.push(choiceitem.value);
36988
+ value.push(this.getChoiceValue(choiceitem, val[i], true));
36962
36989
  }
36963
36990
  else {
36964
36991
  value.push(val[i]);
@@ -36972,9 +36999,13 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
36972
36999
  };
36973
37000
  QuestionCheckboxModel.prototype.convertValueFromObject = function (val) {
36974
37001
  var valProp = this.getValuePropertyName();
36975
- if (!valProp)
37002
+ if (!valProp || !Array.isArray(val))
36976
37003
  return val;
36977
- return _helpers__WEBPACK_IMPORTED_MODULE_3__.Helpers.convertArrayObjectToValue(val, valProp);
37004
+ var res = [];
37005
+ for (var i = 0; i < val.length; i++) {
37006
+ res.push(this.getRealValue(val[i]));
37007
+ }
37008
+ return res;
36978
37009
  };
36979
37010
  QuestionCheckboxModel.prototype.renderedValueFromDataCore = function (val) {
36980
37011
  if (!val || !Array.isArray(val))
@@ -38372,7 +38403,9 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
38372
38403
  json.createElements(res, this);
38373
38404
  }
38374
38405
  this.initElement(res);
38406
+ this.setIsContentElement(res);
38375
38407
  res.readOnly = this.isReadOnly;
38408
+ res.onGetNoCallback = function (no) { return _this.no; };
38376
38409
  res.questions.forEach(function (q) {
38377
38410
  q.setParentQuestion(_this);
38378
38411
  q.onUpdateCssClassesCallback = function (css) { _this.onUpdateQuestionCssClasses(q, css); };
@@ -52722,7 +52755,7 @@ var PanelDynamicItemGetterContext = /** @class */ (function (_super) {
52722
52755
  }
52723
52756
  var expVar = _settings__WEBPACK_IMPORTED_MODULE_8__.settings.expressionVariables;
52724
52757
  var panelPrefix = expVar.panel;
52725
- if (path.length > 1 && path[0].name === expVar.parentPanel.toLocaleLowerCase()) {
52758
+ if (path.length > 1 && path[0].name.toLocaleLowerCase() === expVar.parentPanel.toLocaleLowerCase()) {
52726
52759
  var q = this.item.data;
52727
52760
  if (!!q && !!q.parentQuestion && !!q.parent && !!q.parent.data) {
52728
52761
  path[0].name = panelPrefix;
@@ -53951,6 +53984,20 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
53951
53984
  enumerable: false,
53952
53985
  configurable: true
53953
53986
  });
53987
+ QuestionPanelDynamicModel.prototype.getStructuredValue = function (level) {
53988
+ if (level === void 0) { level = -1; }
53989
+ if (level < 0 || this.isEmpty() || !Array.isArray(this.value))
53990
+ return this.value;
53991
+ var data = new Array();
53992
+ var valCount = Math.min(this.visiblePanelCount, this.value.length);
53993
+ for (var i = 0; i < valCount; i++) {
53994
+ var panel = this.visiblePanels[i];
53995
+ var panelData = {};
53996
+ panel.collectValues(panelData, level);
53997
+ data.push(panelData);
53998
+ }
53999
+ return data;
54000
+ };
53954
54001
  QuestionPanelDynamicModel.prototype.setTemplatePanelSurveyImpl = function () {
53955
54002
  this.template.setSurveyImpl(this.useTemplatePanel
53956
54003
  ? this.surveyImpl
@@ -68492,7 +68539,7 @@ var SurveyModel = /** @class */ (function (_super) {
68492
68539
  var opt = options || { includePages: false, includePanels: false };
68493
68540
  if (!opt.includePages && !opt.includePanels)
68494
68541
  return this.data;
68495
- return this.getStructuredData(!!opt.includePages, !opt.includePanels ? (opt.includePages ? 1 : 0) : -1);
68542
+ return this.getStructuredData(!!opt.includePages, !opt.includePanels ? (opt.includePages ? 1 : 0) : 100);
68496
68543
  };
68497
68544
  SurveyModel.prototype.getStructuredData = function (includePages, level) {
68498
68545
  if (includePages === void 0) { includePages = true; }
@@ -71955,6 +72002,9 @@ var SurveyModel = /** @class */ (function (_super) {
71955
72002
  this.onValueChanging.fire(this, options);
71956
72003
  return options.value;
71957
72004
  };
72005
+ SurveyModel.prototype.getLocNotification = function (loc, value, oldValue) {
72006
+ return loc || _helpers__WEBPACK_IMPORTED_MODULE_0__.Helpers.isTwoValueEquals(value, oldValue, false, true, false);
72007
+ };
71958
72008
  SurveyModel.prototype.updateQuestionValue = function (valueName, newValue) {
71959
72009
  if (this.isLoadingFromJson)
71960
72010
  return;
@@ -72653,6 +72703,7 @@ var SurveyModel = /** @class */ (function (_super) {
72653
72703
  newValue = this.getUnbindValue(newValue);
72654
72704
  this.setDataValueCore(this.valuesHash, name, newValue);
72655
72705
  }
72706
+ locNotification = this.getLocNotification(locNotification, newValue, oldValue);
72656
72707
  this.updateOnSetValue(name, newValue, oldValue, locNotification, allowNotifyValueChanged, questionName);
72657
72708
  };
72658
72709
  SurveyModel.prototype.isValueEmpyOnSetValue = function (name, val) {
@@ -72813,6 +72864,7 @@ var SurveyModel = /** @class */ (function (_super) {
72813
72864
  return;
72814
72865
  var commentName = name + this.commentSuffix;
72815
72866
  newValue = this.questionOnValueChanging(commentName, newValue, name);
72867
+ locNotification = this.getLocNotification(locNotification, newValue, this.getComment(name));
72816
72868
  if (this.isValueEmpty(newValue)) {
72817
72869
  this.deleteDataValueCore(this.valuesHash, commentName);
72818
72870
  }