survey-core 1.9.120 → 1.9.121

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 (234) hide show
  1. package/defaultV2.css +2 -1
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +2 -1
  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 +1 -1
  8. package/i18n/arabic.min.js +1 -1
  9. package/i18n/basque.js +1 -1
  10. package/i18n/basque.min.js +1 -1
  11. package/i18n/bulgarian.js +1 -1
  12. package/i18n/bulgarian.min.js +1 -1
  13. package/i18n/catalan.js +1 -1
  14. package/i18n/catalan.min.js +1 -1
  15. package/i18n/croatian.js +1 -1
  16. package/i18n/croatian.min.js +1 -1
  17. package/i18n/czech.js +1 -1
  18. package/i18n/czech.min.js +1 -1
  19. package/i18n/danish.js +1 -1
  20. package/i18n/danish.min.js +1 -1
  21. package/i18n/dutch.js +1 -1
  22. package/i18n/dutch.min.js +1 -1
  23. package/i18n/english.js +1 -1
  24. package/i18n/english.min.js +1 -1
  25. package/i18n/estonian.js +1 -1
  26. package/i18n/estonian.min.js +1 -1
  27. package/i18n/finnish.js +1 -1
  28. package/i18n/finnish.min.js +1 -1
  29. package/i18n/french.js +1 -1
  30. package/i18n/french.min.js +1 -1
  31. package/i18n/georgian.js +1 -1
  32. package/i18n/georgian.min.js +1 -1
  33. package/i18n/german.js +1 -1
  34. package/i18n/german.min.js +1 -1
  35. package/i18n/greek.js +1 -1
  36. package/i18n/greek.min.js +1 -1
  37. package/i18n/hebrew.js +1 -1
  38. package/i18n/hebrew.min.js +1 -1
  39. package/i18n/hindi.js +1 -1
  40. package/i18n/hindi.min.js +1 -1
  41. package/i18n/hungarian.js +1 -1
  42. package/i18n/hungarian.min.js +1 -1
  43. package/i18n/icelandic.js +1 -1
  44. package/i18n/icelandic.min.js +1 -1
  45. package/i18n/index.js +1 -1
  46. package/i18n/index.min.js +1 -1
  47. package/i18n/indonesian.js +1 -1
  48. package/i18n/indonesian.min.js +1 -1
  49. package/i18n/italian.js +1 -1
  50. package/i18n/italian.min.js +1 -1
  51. package/i18n/japanese.js +1 -1
  52. package/i18n/japanese.min.js +1 -1
  53. package/i18n/kazakh.js +1 -1
  54. package/i18n/kazakh.min.js +1 -1
  55. package/i18n/korean.js +1 -1
  56. package/i18n/korean.min.js +1 -1
  57. package/i18n/latvian.js +1 -1
  58. package/i18n/latvian.min.js +1 -1
  59. package/i18n/lithuanian.js +1 -1
  60. package/i18n/lithuanian.min.js +1 -1
  61. package/i18n/macedonian.js +1 -1
  62. package/i18n/macedonian.min.js +1 -1
  63. package/i18n/malay.js +1 -1
  64. package/i18n/malay.min.js +1 -1
  65. package/i18n/nl-BE.js +1 -1
  66. package/i18n/nl-BE.min.js +1 -1
  67. package/i18n/norwegian.js +1 -1
  68. package/i18n/norwegian.min.js +1 -1
  69. package/i18n/persian.js +1 -1
  70. package/i18n/persian.min.js +1 -1
  71. package/i18n/polish.js +1 -1
  72. package/i18n/polish.min.js +1 -1
  73. package/i18n/portuguese-br.js +1 -1
  74. package/i18n/portuguese-br.min.js +1 -1
  75. package/i18n/portuguese.js +1 -1
  76. package/i18n/portuguese.min.js +1 -1
  77. package/i18n/romanian.js +1 -1
  78. package/i18n/romanian.min.js +1 -1
  79. package/i18n/russian.js +1 -1
  80. package/i18n/russian.min.js +1 -1
  81. package/i18n/serbian.js +1 -1
  82. package/i18n/serbian.min.js +1 -1
  83. package/i18n/simplified-chinese.js +1 -1
  84. package/i18n/simplified-chinese.min.js +1 -1
  85. package/i18n/slovak.js +1 -1
  86. package/i18n/slovak.min.js +1 -1
  87. package/i18n/spanish.js +1 -1
  88. package/i18n/spanish.min.js +1 -1
  89. package/i18n/swahili.js +1 -1
  90. package/i18n/swahili.min.js +1 -1
  91. package/i18n/swedish.js +1 -1
  92. package/i18n/swedish.min.js +1 -1
  93. package/i18n/tajik.js +1 -1
  94. package/i18n/tajik.min.js +1 -1
  95. package/i18n/telugu.js +1 -1
  96. package/i18n/telugu.min.js +1 -1
  97. package/i18n/thai.js +1 -1
  98. package/i18n/thai.min.js +1 -1
  99. package/i18n/traditional-chinese.js +1 -1
  100. package/i18n/traditional-chinese.min.js +1 -1
  101. package/i18n/turkish.js +1 -1
  102. package/i18n/turkish.min.js +1 -1
  103. package/i18n/ukrainian.js +1 -1
  104. package/i18n/ukrainian.min.js +1 -1
  105. package/i18n/urdu.js +1 -1
  106. package/i18n/urdu.min.js +1 -1
  107. package/i18n/vietnamese.js +1 -1
  108. package/i18n/vietnamese.min.js +1 -1
  109. package/i18n/welsh.js +1 -1
  110. package/i18n/welsh.min.js +1 -1
  111. package/modern.css +3 -1
  112. package/modern.css.map +1 -1
  113. package/modern.fontless.css +3 -1
  114. package/modern.fontless.css.map +1 -1
  115. package/modern.fontless.min.css +2 -2
  116. package/modern.min.css +2 -2
  117. package/package.json +1 -1
  118. package/plugins/bootstrap-integration.js +1 -1
  119. package/plugins/bootstrap-integration.min.js +1 -1
  120. package/plugins/bootstrap-material-integration.js +1 -1
  121. package/plugins/bootstrap-material-integration.min.js +1 -1
  122. package/survey.core.js +152 -78
  123. package/survey.core.js.map +1 -1
  124. package/survey.core.min.js +3 -3
  125. package/survey.css +1 -1
  126. package/survey.i18n.js +1 -1
  127. package/survey.i18n.min.js +1 -1
  128. package/survey.min.css +1 -1
  129. package/themes/borderless-dark-panelless.js +1 -1
  130. package/themes/borderless-dark-panelless.min.js +1 -1
  131. package/themes/borderless-dark.js +1 -1
  132. package/themes/borderless-dark.min.js +1 -1
  133. package/themes/borderless-light-panelless..js +1 -1
  134. package/themes/borderless-light-panelless..min.js +1 -1
  135. package/themes/borderless-light.js +1 -1
  136. package/themes/borderless-light.min.js +1 -1
  137. package/themes/contrast-dark-panelless.js +1 -1
  138. package/themes/contrast-dark-panelless.min.js +1 -1
  139. package/themes/contrast-dark.js +1 -1
  140. package/themes/contrast-dark.min.js +1 -1
  141. package/themes/contrast-light-panelless.js +1 -1
  142. package/themes/contrast-light-panelless.min.js +1 -1
  143. package/themes/contrast-light.js +1 -1
  144. package/themes/contrast-light.min.js +1 -1
  145. package/themes/default-dark-panelless.js +1 -1
  146. package/themes/default-dark-panelless.min.js +1 -1
  147. package/themes/default-dark.js +1 -1
  148. package/themes/default-dark.min.js +1 -1
  149. package/themes/default-light-panelless.js +1 -1
  150. package/themes/default-light-panelless.min.js +1 -1
  151. package/themes/default-light.js +1 -1
  152. package/themes/default-light.min.js +1 -1
  153. package/themes/doubleborder-dark-panelless.js +1 -1
  154. package/themes/doubleborder-dark-panelless.min.js +1 -1
  155. package/themes/doubleborder-dark.js +1 -1
  156. package/themes/doubleborder-dark.min.js +1 -1
  157. package/themes/doubleborder-light-panelles.js +1 -1
  158. package/themes/doubleborder-light-panelles.min.js +1 -1
  159. package/themes/doubleborder-light.js +1 -1
  160. package/themes/doubleborder-light.min.js +1 -1
  161. package/themes/flat-dark-panelless.js +1 -1
  162. package/themes/flat-dark-panelless.min.js +1 -1
  163. package/themes/flat-dark.js +1 -1
  164. package/themes/flat-dark.min.js +1 -1
  165. package/themes/flat-light-panelless.js +1 -1
  166. package/themes/flat-light-panelless.min.js +1 -1
  167. package/themes/flat-light.js +1 -1
  168. package/themes/flat-light.min.js +1 -1
  169. package/themes/index.js +1 -1
  170. package/themes/index.min.js +1 -1
  171. package/themes/layered-dark-panelless.js +1 -1
  172. package/themes/layered-dark-panelless.min.js +1 -1
  173. package/themes/layered-dark.js +1 -1
  174. package/themes/layered-dark.min.js +1 -1
  175. package/themes/layered-light-panelless.js +1 -1
  176. package/themes/layered-light-panelless.min.js +1 -1
  177. package/themes/layered-light.js +1 -1
  178. package/themes/layered-light.min.js +1 -1
  179. package/themes/plain-dark-panelless.js +1 -1
  180. package/themes/plain-dark-panelless.min.js +1 -1
  181. package/themes/plain-dark.js +1 -1
  182. package/themes/plain-dark.min.js +1 -1
  183. package/themes/plain-light-panelless.js +1 -1
  184. package/themes/plain-light-panelless.min.js +1 -1
  185. package/themes/plain-light.js +1 -1
  186. package/themes/plain-light.min.js +1 -1
  187. package/themes/sharp-dark-panelless.js +1 -1
  188. package/themes/sharp-dark-panelless.min.js +1 -1
  189. package/themes/sharp-dark.js +1 -1
  190. package/themes/sharp-dark.min.js +1 -1
  191. package/themes/sharp-light-panelless.js +1 -1
  192. package/themes/sharp-light-panelless.min.js +1 -1
  193. package/themes/sharp-light.js +1 -1
  194. package/themes/sharp-light.min.js +1 -1
  195. package/themes/solid-dark-panelless.js +1 -1
  196. package/themes/solid-dark-panelless.min.js +1 -1
  197. package/themes/solid-dark.js +1 -1
  198. package/themes/solid-dark.min.js +1 -1
  199. package/themes/solid-light-panelless.js +1 -1
  200. package/themes/solid-light-panelless.min.js +1 -1
  201. package/themes/solid-light.js +1 -1
  202. package/themes/solid-light.min.js +1 -1
  203. package/themes/three-dimensional-dark-panelless.js +1 -1
  204. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  205. package/themes/three-dimensional-dark.js +1 -1
  206. package/themes/three-dimensional-dark.min.js +1 -1
  207. package/themes/three-dimensional-light-panelless.js +1 -1
  208. package/themes/three-dimensional-light-panelless.min.js +1 -1
  209. package/themes/three-dimensional-light.js +1 -1
  210. package/themes/three-dimensional-light.min.js +1 -1
  211. package/ts3.4/typings/actions/adaptive-container.d.ts +1 -1
  212. package/ts3.4/typings/actions/container.d.ts +1 -1
  213. package/ts3.4/typings/panel.d.ts +2 -2
  214. package/ts3.4/typings/question.d.ts +1 -1
  215. package/ts3.4/typings/question_checkbox.d.ts +4 -0
  216. package/ts3.4/typings/question_custom.d.ts +1 -0
  217. package/ts3.4/typings/question_multipletext.d.ts +12 -3
  218. package/ts3.4/typings/settings.d.ts +3 -0
  219. package/ts3.4/typings/survey-element.d.ts +1 -1
  220. package/ts3.4/typings/survey.d.ts +1 -1
  221. package/ts3.4/typings/svgbundle.d.ts +0 -1
  222. package/ts3.4/typings/utils/responsivity-manager.d.ts +4 -2
  223. package/typings/actions/adaptive-container.d.ts +1 -1
  224. package/typings/actions/container.d.ts +1 -1
  225. package/typings/panel.d.ts +2 -2
  226. package/typings/question.d.ts +1 -1
  227. package/typings/question_checkbox.d.ts +4 -0
  228. package/typings/question_custom.d.ts +1 -0
  229. package/typings/question_multipletext.d.ts +13 -3
  230. package/typings/settings.d.ts +3 -0
  231. package/typings/survey-element.d.ts +1 -1
  232. package/typings/survey.d.ts +1 -1
  233. package/typings/svgbundle.d.ts +0 -1
  234. package/typings/utils/responsivity-manager.d.ts +4 -2
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.120
2
+ * surveyjs - Survey JavaScript library v1.9.121
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1326,8 +1326,8 @@ var AdaptiveActionContainer = /** @class */ (function (_super) {
1326
1326
  this.updateItemMode(dimension, maxSize);
1327
1327
  }
1328
1328
  };
1329
- AdaptiveActionContainer.prototype.initResponsivityManager = function (container) {
1330
- this.responsivityManager = new _utils_responsivity_manager__WEBPACK_IMPORTED_MODULE_0__["ResponsivityManager"](container, this, ":scope > .sv-action:not(.sv-dots) > .sv-action__content");
1329
+ AdaptiveActionContainer.prototype.initResponsivityManager = function (container, delayedUpdateFunction) {
1330
+ this.responsivityManager = new _utils_responsivity_manager__WEBPACK_IMPORTED_MODULE_0__["ResponsivityManager"](container, this, ":scope > .sv-action:not(.sv-dots) > .sv-action__content", null, delayedUpdateFunction);
1331
1331
  };
1332
1332
  AdaptiveActionContainer.prototype.resetResponsivityManager = function () {
1333
1333
  if (!!this.responsivityManager) {
@@ -1539,7 +1539,7 @@ var ActionContainer = /** @class */ (function (_super) {
1539
1539
  this.sortItems();
1540
1540
  }
1541
1541
  };
1542
- ActionContainer.prototype.initResponsivityManager = function (container) {
1542
+ ActionContainer.prototype.initResponsivityManager = function (container, delayedUpdateFunction) {
1543
1543
  return;
1544
1544
  };
1545
1545
  ActionContainer.prototype.resetResponsivityManager = function () { };
@@ -9312,8 +9312,8 @@ __webpack_require__.r(__webpack_exports__);
9312
9312
  //import "../../modern.scss";
9313
9313
  var Version;
9314
9314
  var ReleaseDate;
9315
- Version = "" + "1.9.120";
9316
- ReleaseDate = "" + "2023-12-04";
9315
+ Version = "" + "1.9.121";
9316
+ ReleaseDate = "" + "2023-12-12";
9317
9317
  function checkLibraryVersion(ver, libraryName) {
9318
9318
  if (Version != ver) {
9319
9319
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -22758,11 +22758,22 @@ var PanelModelBase = /** @class */ (function (_super) {
22758
22758
  }
22759
22759
  }
22760
22760
  };
22761
- PanelModelBase.prototype.notifyStateChanged = function () {
22762
- _super.prototype.notifyStateChanged.call(this);
22761
+ PanelModelBase.prototype.notifyStateChanged = function (prevState) {
22762
+ var _this = this;
22763
+ _super.prototype.notifyStateChanged.call(this, prevState);
22763
22764
  if (this.isCollapsed) {
22764
22765
  this.questions.forEach(function (q) { return q.onHidingContent(); });
22765
22766
  }
22767
+ if (this.survey != null && !this.isLoadingFromJson && this.isExpanded && prevState === "collapsed") {
22768
+ var q_1 = this.getFirstQuestionToFocus(false);
22769
+ if (!!q_1) {
22770
+ setTimeout(function () {
22771
+ if (!_this.isDisposed && !!_this.survey) {
22772
+ _this.survey.scrollElementToTop(q_1, q_1, null, q_1.inputId, false);
22773
+ }
22774
+ }, 15);
22775
+ }
22776
+ }
22766
22777
  };
22767
22778
  Object.defineProperty(PanelModelBase.prototype, "isVisible", {
22768
22779
  /**
@@ -23276,11 +23287,11 @@ var PanelModel = /** @class */ (function (_super) {
23276
23287
  PanelModel.prototype.setNo = function (visibleIndex) {
23277
23288
  this.setPropertyValue("no", _helpers__WEBPACK_IMPORTED_MODULE_1__["Helpers"].getNumberByIndex(this.visibleIndex, this.getStartIndex()));
23278
23289
  };
23279
- PanelModel.prototype.notifyStateChanged = function () {
23290
+ PanelModel.prototype.notifyStateChanged = function (prevState) {
23280
23291
  if (!this.isLoadingFromJson) {
23281
23292
  this.locTitle.strChanged();
23282
23293
  }
23283
- _super.prototype.notifyStateChanged.call(this);
23294
+ _super.prototype.notifyStateChanged.call(this, prevState);
23284
23295
  };
23285
23296
  PanelModel.prototype.createLocTitleProperty = function () {
23286
23297
  var _this = this;
@@ -23659,7 +23670,7 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
23659
23670
  };
23660
23671
  _this.resizeWindowCallback = function () {
23661
23672
  if (!_this.isOverlay) {
23662
- _this.updatePosition(true, _survey__WEBPACK_IMPORTED_MODULE_5__["SurveyModel"].platform === "vue" || _survey__WEBPACK_IMPORTED_MODULE_5__["SurveyModel"].platform === "vue3");
23673
+ _this.updatePosition(true, _survey__WEBPACK_IMPORTED_MODULE_5__["SurveyModel"].platform === "vue" || _survey__WEBPACK_IMPORTED_MODULE_5__["SurveyModel"].platform === "vue3" || _survey__WEBPACK_IMPORTED_MODULE_5__["SurveyModel"].platform == "react");
23663
23674
  }
23664
23675
  };
23665
23676
  _this.clientY = 0;
@@ -25310,8 +25321,8 @@ var Question = /** @class */ (function (_super) {
25310
25321
  this.errors = [];
25311
25322
  }
25312
25323
  };
25313
- Question.prototype.notifyStateChanged = function () {
25314
- _super.prototype.notifyStateChanged.call(this);
25324
+ Question.prototype.notifyStateChanged = function (prevState) {
25325
+ _super.prototype.notifyStateChanged.call(this, prevState);
25315
25326
  if (this.isCollapsed) {
25316
25327
  this.onHidingContent();
25317
25328
  }
@@ -31397,23 +31408,25 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
31397
31408
  * @see showSelectAllItem
31398
31409
  */
31399
31410
  get: function () {
31411
+ if (this.isItemSelected(this.noneItem))
31412
+ return false;
31413
+ var items = this.getVisibleEnableItems();
31414
+ if (items.length === 0)
31415
+ return false;
31400
31416
  var val = this.value;
31401
- if (!val || !Array.isArray(val))
31417
+ if (!val || !Array.isArray(val) || val.length === 0)
31402
31418
  return false;
31403
- if (this.isItemSelected(this.noneItem))
31419
+ if (val.length < items.length)
31404
31420
  return false;
31405
- var allItemCount = this.visibleChoices.length;
31406
- var order = _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].specialChoicesOrder;
31407
- if (this.hasOther)
31408
- allItemCount -= order.otherItem.length;
31409
- if (this.hasNone)
31410
- allItemCount -= order.noneItem.length;
31411
- if (this.hasSelectAll)
31412
- allItemCount -= order.selectAllItem.length;
31413
- var selectedCount = val.length;
31414
- if (this.isOtherSelected)
31415
- selectedCount--;
31416
- return selectedCount === allItemCount;
31421
+ var rVal = [];
31422
+ for (var i = 0; i < val.length; i++) {
31423
+ rVal.push(this.getRealValue(val[i]));
31424
+ }
31425
+ for (var i = 0; i < items.length; i++) {
31426
+ if (rVal.indexOf(items[i].value) < 0)
31427
+ return false;
31428
+ }
31429
+ return true;
31417
31430
  },
31418
31431
  set: function (val) {
31419
31432
  if (val) {
@@ -31437,13 +31450,9 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
31437
31450
  */
31438
31451
  QuestionCheckboxModel.prototype.selectAll = function () {
31439
31452
  var val = [];
31440
- for (var i = 0; i < this.visibleChoices.length; i++) {
31441
- var item = this.visibleChoices[i];
31442
- if (item === this.noneItem ||
31443
- item === this.otherItem ||
31444
- item === this.selectAllItem)
31445
- continue;
31446
- val.push(item.value);
31453
+ var items = this.getVisibleEnableItems();
31454
+ for (var i = 0; i < items.length; i++) {
31455
+ val.push(items[i].value);
31447
31456
  }
31448
31457
  this.renderedValue = val;
31449
31458
  };
@@ -31572,24 +31581,51 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
31572
31581
  errors.push(minError);
31573
31582
  }
31574
31583
  };
31584
+ QuestionCheckboxModel.prototype.onVisibleChoicesChanged = function () {
31585
+ _super.prototype.onVisibleChoicesChanged.call(this);
31586
+ this.updateSelectAllItemProps();
31587
+ };
31575
31588
  QuestionCheckboxModel.prototype.onEnableItemCallBack = function (item) {
31576
31589
  if (!this.shouldCheckMaxSelectedChoices())
31577
31590
  return true;
31578
31591
  return this.isItemSelected(item);
31579
31592
  };
31580
31593
  QuestionCheckboxModel.prototype.onAfterRunItemsEnableCondition = function () {
31594
+ this.updateSelectAllItemProps();
31581
31595
  if (this.maxSelectedChoices < 1) {
31582
- this.selectAllItem.setIsEnabled(true);
31583
31596
  this.otherItem.setIsEnabled(true);
31584
31597
  return;
31585
31598
  }
31586
- if (this.hasSelectAll) {
31587
- this.selectAllItem.setIsEnabled(this.maxSelectedChoices >= this.activeChoices.length);
31588
- }
31589
31599
  if (this.hasOther) {
31590
31600
  this.otherItem.setIsEnabled(!this.shouldCheckMaxSelectedChoices() || this.isOtherSelected);
31591
31601
  }
31592
31602
  };
31603
+ QuestionCheckboxModel.prototype.updateSelectAllItemProps = function () {
31604
+ if (!this.hasSelectAll)
31605
+ return;
31606
+ this.selectAllItem.setIsEnabled(this.getSelectAllEnabled());
31607
+ };
31608
+ QuestionCheckboxModel.prototype.getSelectAllEnabled = function () {
31609
+ if (!this.hasSelectAll)
31610
+ return true;
31611
+ var items = this.activeChoices;
31612
+ var visCount = this.getVisibleEnableItems().length;
31613
+ var max = this.maxSelectedChoices;
31614
+ if (max > 0 && max < visCount)
31615
+ return false;
31616
+ return visCount > 0;
31617
+ };
31618
+ QuestionCheckboxModel.prototype.getVisibleEnableItems = function () {
31619
+ var res = new Array();
31620
+ var items = this.activeChoices;
31621
+ for (var i = 0; i < items.length; i++) {
31622
+ var item = items[i];
31623
+ if (item.isEnabled && item.isVisible) {
31624
+ res.push(item);
31625
+ }
31626
+ }
31627
+ return res;
31628
+ };
31593
31629
  QuestionCheckboxModel.prototype.shouldCheckMaxSelectedChoices = function () {
31594
31630
  if (this.maxSelectedChoices < 1)
31595
31631
  return false;
@@ -32414,6 +32450,12 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
32414
32450
  this.getElement().locStrsChanged();
32415
32451
  }
32416
32452
  };
32453
+ QuestionCustomModelBase.prototype.localeChanged = function () {
32454
+ _super.prototype.locStrsChanged.call(this);
32455
+ if (!!this.getElement()) {
32456
+ this.getElement().localeChanged();
32457
+ }
32458
+ };
32417
32459
  QuestionCustomModelBase.prototype.createWrapper = function () { };
32418
32460
  QuestionCustomModelBase.prototype.onPropertyValueChanged = function (name, oldValue, newValue) {
32419
32461
  _super.prototype.onPropertyValueChanged.call(this, name, oldValue, newValue);
@@ -33498,7 +33540,7 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
33498
33540
  };
33499
33541
  QuestionDropdownModel.prototype.onVisibleChoicesChanged = function () {
33500
33542
  _super.prototype.onVisibleChoicesChanged.call(this);
33501
- if (this.popupModel) {
33543
+ if (!this.isLoadingFromJson && this.popupModel) {
33502
33544
  this.dropdownListModel.updateItems();
33503
33545
  }
33504
33546
  };
@@ -43993,7 +44035,8 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
43993
44035
  * }
43994
44036
  * ```
43995
44037
  *
43996
- * To enable Markdown support for the `title` property, implement Markdown-to-HTML conversion in the [onTextMarkdown](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with Showdown](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).
44038
+ * To enable Markdown support for the `title` property, implement Markdown-to-HTML conversion in the [`onTextMarkdown`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onTextMarkdown) event handler. For an example, refer to the following demo: [Convert Markdown to HTML with Showdown](https://surveyjs.io/form-library/examples/edit-survey-questions-markdown/).
44039
+ * @see itemTitleWidth
43997
44040
  * @see addItem
43998
44041
  */
43999
44042
  get: function () {
@@ -44007,8 +44050,8 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
44007
44050
  });
44008
44051
  /**
44009
44052
  * Adds a new input item.
44010
- * @param name An item name
44011
- * @param title (Optional) An item title
44053
+ * @param name An item name.
44054
+ * @param title (Optional) An item title.
44012
44055
  * @see items
44013
44056
  */
44014
44057
  QuestionMultipleTextModel.prototype.addItem = function (name, title) {
@@ -44142,6 +44185,23 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
44142
44185
  enumerable: false,
44143
44186
  configurable: true
44144
44187
  });
44188
+ Object.defineProperty(QuestionMultipleTextModel.prototype, "itemTitleWidth", {
44189
+ /**
44190
+ * Specifies a uniform width for all text box titles. Accepts CSS values.
44191
+ *
44192
+ * Default value: `""` (the width of each title depends on the title length)
44193
+ * @see items
44194
+ * @see itemErrorLocation
44195
+ */
44196
+ get: function () {
44197
+ return this.getPropertyValue("itemTitleWidth") || "";
44198
+ },
44199
+ set: function (val) {
44200
+ this.setPropertyValue("itemTitleWidth", val);
44201
+ },
44202
+ enumerable: false,
44203
+ configurable: true
44204
+ });
44145
44205
  QuestionMultipleTextModel.prototype.onRowCreated = function (row) {
44146
44206
  return row;
44147
44207
  };
@@ -44496,7 +44556,8 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("multipletext",
44496
44556
  { name: "!items:textitems", className: "multipletextitem", isArray: true },
44497
44557
  { name: "itemSize:number", minValue: 0 },
44498
44558
  { name: "colCount:number", default: 1, choices: [1, 2, 3, 4, 5] },
44499
- { name: "itemErrorLocation", default: "default", choices: ["default", "top", "bottom"], visible: false }
44559
+ { name: "itemErrorLocation", default: "default", choices: ["default", "top", "bottom"], visible: false },
44560
+ { name: "itemTitleWidth", category: "layout" }
44500
44561
  ], function () {
44501
44562
  return new QuestionMultipleTextModel("");
44502
44563
  }, "question");
@@ -49294,6 +49355,8 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
49294
49355
  };
49295
49356
  };
49296
49357
  QuestionSignaturePadModel.prototype.refreshCanvas = function () {
49358
+ if (!this.canvas)
49359
+ return;
49297
49360
  if (!this.value) {
49298
49361
  this.canvas.getContext("2d").clearRect(0, 0, this.canvas.width * this.scale, this.canvas.height * this.scale);
49299
49362
  this.signaturePad.clear();
@@ -52657,9 +52720,15 @@ var SurveyElement = /** @class */ (function (_super) {
52657
52720
  if (!el || !el.scrollIntoView)
52658
52721
  return false;
52659
52722
  var elemTop = scrollIfVisible ? -1 : el.getBoundingClientRect().top;
52660
- if (elemTop < 0)
52723
+ var needScroll = elemTop < 0;
52724
+ if (!needScroll && !!window) {
52725
+ var height = window.innerHeight;
52726
+ needScroll = height > 0 && height < elemTop;
52727
+ }
52728
+ if (needScroll) {
52661
52729
  el.scrollIntoView();
52662
- return elemTop < 0;
52730
+ }
52731
+ return needScroll;
52663
52732
  };
52664
52733
  SurveyElement.GetFirstNonTextElement = function (elements, removeSpaces) {
52665
52734
  if (removeSpaces === void 0) { removeSpaces = false; }
@@ -52706,6 +52775,7 @@ var SurveyElement = /** @class */ (function (_super) {
52706
52775
  _super.prototype.onPropertyValueChanged.call(this, name, oldValue, newValue);
52707
52776
  if (name === "state") {
52708
52777
  this.updateElementCss(false);
52778
+ this.notifyStateChanged(oldValue);
52709
52779
  if (this.stateChangedCallback)
52710
52780
  this.stateChangedCallback();
52711
52781
  }
@@ -52761,12 +52831,11 @@ var SurveyElement = /** @class */ (function (_super) {
52761
52831
  },
52762
52832
  set: function (val) {
52763
52833
  this.setPropertyValue("state", val);
52764
- this.notifyStateChanged();
52765
52834
  },
52766
52835
  enumerable: false,
52767
52836
  configurable: true
52768
52837
  });
52769
- SurveyElement.prototype.notifyStateChanged = function () {
52838
+ SurveyElement.prototype.notifyStateChanged = function (prevState) {
52770
52839
  if (this.survey) {
52771
52840
  this.survey.elementContentVisibilityChanged(this);
52772
52841
  }
@@ -62884,10 +62953,6 @@ __webpack_require__.r(__webpack_exports__);
62884
62953
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SvgIconRegistry", function() { return SvgIconRegistry; });
62885
62954
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SvgRegistry", function() { return SvgRegistry; });
62886
62955
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SvgBundleViewModel", function() { return SvgBundleViewModel; });
62887
- /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
62888
- /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./utils/utils */ "./src/utils/utils.ts");
62889
-
62890
-
62891
62956
  var SvgIconData = /** @class */ (function () {
62892
62957
  function SvgIconData() {
62893
62958
  }
@@ -62949,16 +63014,6 @@ var SvgIconRegistry = /** @class */ (function () {
62949
63014
  var _this = this;
62950
63015
  return Object.keys(this.icons).map(function (icon) { return _this.icons[icon]; }).join("");
62951
63016
  };
62952
- SvgIconRegistry.prototype.renderIcons = function () {
62953
- var containerId = "sv-icon-holder-global-container";
62954
- if (!!_settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment && !_settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment.root.getElementById(containerId)) {
62955
- var iconsDiv = document.createElement("div");
62956
- iconsDiv.id = containerId;
62957
- iconsDiv.innerHTML = "<svg>" + this.iconsRenderedHtml() + "</svg>";
62958
- iconsDiv.style.display = "none";
62959
- Object(_utils_utils__WEBPACK_IMPORTED_MODULE_1__["getElement"])(_settings__WEBPACK_IMPORTED_MODULE_0__["settings"].environment.svgMountContainer).appendChild(iconsDiv);
62960
- }
62961
- };
62962
63017
  return SvgIconRegistry;
62963
63018
  }());
62964
63019
 
@@ -64411,13 +64466,14 @@ var __extends = (undefined && undefined.__extends) || (function () {
64411
64466
  })();
64412
64467
 
64413
64468
  var ResponsivityManager = /** @class */ (function () {
64414
- function ResponsivityManager(container, model, itemsSelector, dotsItemSize) {
64469
+ function ResponsivityManager(container, model, itemsSelector, dotsItemSize, delayedUpdateFunction) {
64415
64470
  var _this = this;
64416
64471
  if (dotsItemSize === void 0) { dotsItemSize = null; }
64417
64472
  this.container = container;
64418
64473
  this.model = model;
64419
64474
  this.itemsSelector = itemsSelector;
64420
64475
  this.dotsItemSize = dotsItemSize;
64476
+ this.delayedUpdateFunction = delayedUpdateFunction;
64421
64477
  this.resizeObserver = undefined;
64422
64478
  this.isInitialized = false;
64423
64479
  this.minDimensionConst = 56;
@@ -64468,6 +64524,16 @@ var ResponsivityManager = /** @class */ (function () {
64468
64524
  (currentAction.needSeparator ? this.separatorSize : 0)
64469
64525
  : currentAction.maxDimension;
64470
64526
  };
64527
+ ResponsivityManager.prototype.getRenderedVisibleActionsCount = function () {
64528
+ var _this = this;
64529
+ var count = 0;
64530
+ this.container.querySelectorAll(this.itemsSelector).forEach(function (item) {
64531
+ if (_this.calcItemSize(item) > 0) {
64532
+ count++;
64533
+ }
64534
+ });
64535
+ return count;
64536
+ };
64471
64537
  ResponsivityManager.prototype.calcItemsSizes = function () {
64472
64538
  var _this = this;
64473
64539
  var actions = this.model.actions;
@@ -64493,18 +64559,8 @@ var ResponsivityManager = /** @class */ (function () {
64493
64559
  if (this.isContainerVisible && !this.model.isResponsivenessDisabled) {
64494
64560
  if (!this.isInitialized) {
64495
64561
  this.model.setActionsMode("large");
64496
- var recalcItemSizes = function () {
64497
- _this.calcItemsSizes();
64498
- _this.isInitialized = true;
64499
- };
64500
- if (queueMicrotask) {
64501
- queueMicrotask(recalcItemSizes);
64502
- }
64503
- else {
64504
- recalcItemSizes();
64505
- }
64506
64562
  }
64507
- var processResponsiveness = function () {
64563
+ var processResponsiveness_1 = function () {
64508
64564
  var _a;
64509
64565
  var dotsItemSize = _this.dotsItemSize;
64510
64566
  if (!_this.dotsItemSize) {
@@ -64513,11 +64569,29 @@ var ResponsivityManager = /** @class */ (function () {
64513
64569
  }
64514
64570
  _this.model.fit(_this.getAvailableSpace(), dotsItemSize);
64515
64571
  };
64516
- if (queueMicrotask) {
64517
- queueMicrotask(processResponsiveness);
64572
+ if (!this.isInitialized) {
64573
+ var callback = function () {
64574
+ _this.calcItemsSizes();
64575
+ _this.isInitialized = true;
64576
+ processResponsiveness_1();
64577
+ };
64578
+ if (this.getRenderedVisibleActionsCount() < this.model.visibleActions.length) {
64579
+ if (this.delayedUpdateFunction) {
64580
+ this.delayedUpdateFunction(callback);
64581
+ }
64582
+ else if (queueMicrotask) {
64583
+ queueMicrotask(callback);
64584
+ }
64585
+ else {
64586
+ callback();
64587
+ }
64588
+ }
64589
+ else {
64590
+ callback();
64591
+ }
64518
64592
  }
64519
64593
  else {
64520
- processResponsiveness();
64594
+ processResponsiveness_1();
64521
64595
  }
64522
64596
  }
64523
64597
  };
@@ -64532,9 +64606,9 @@ var ResponsivityManager = /** @class */ (function () {
64532
64606
 
64533
64607
  var VerticalResponsivityManager = /** @class */ (function (_super) {
64534
64608
  __extends(VerticalResponsivityManager, _super);
64535
- function VerticalResponsivityManager(container, model, itemsSelector, dotsItemSize, minDimension) {
64609
+ function VerticalResponsivityManager(container, model, itemsSelector, dotsItemSize, minDimension, delayedUpdateFunction) {
64536
64610
  if (minDimension === void 0) { minDimension = 40; }
64537
- var _this = _super.call(this, container, model, itemsSelector, dotsItemSize) || this;
64611
+ var _this = _super.call(this, container, model, itemsSelector, dotsItemSize, delayedUpdateFunction) || this;
64538
64612
  _this.minDimensionConst = minDimension;
64539
64613
  _this.recalcMinDimensionConst = false;
64540
64614
  return _this;