survey-core 1.11.14 → 1.12.1

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 (256) hide show
  1. package/defaultV2.css +157 -134
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +157 -134
  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/philippines.js +1 -1
  72. package/i18n/philippines.min.js +1 -1
  73. package/i18n/polish.js +1 -1
  74. package/i18n/polish.min.js +1 -1
  75. package/i18n/portuguese-br.js +1 -1
  76. package/i18n/portuguese-br.min.js +1 -1
  77. package/i18n/portuguese.js +1 -1
  78. package/i18n/portuguese.min.js +1 -1
  79. package/i18n/romanian.js +1 -1
  80. package/i18n/romanian.min.js +1 -1
  81. package/i18n/russian.js +1 -1
  82. package/i18n/russian.min.js +1 -1
  83. package/i18n/serbian.js +1 -1
  84. package/i18n/serbian.min.js +1 -1
  85. package/i18n/simplified-chinese.js +1 -1
  86. package/i18n/simplified-chinese.min.js +1 -1
  87. package/i18n/slovak.js +1 -1
  88. package/i18n/slovak.min.js +1 -1
  89. package/i18n/spanish.js +1 -1
  90. package/i18n/spanish.min.js +1 -1
  91. package/i18n/swahili.js +1 -1
  92. package/i18n/swahili.min.js +1 -1
  93. package/i18n/swedish.js +1 -1
  94. package/i18n/swedish.min.js +1 -1
  95. package/i18n/tajik.js +1 -1
  96. package/i18n/tajik.min.js +1 -1
  97. package/i18n/telugu.js +1 -1
  98. package/i18n/telugu.min.js +1 -1
  99. package/i18n/thai.js +1 -1
  100. package/i18n/thai.min.js +1 -1
  101. package/i18n/traditional-chinese.js +1 -1
  102. package/i18n/traditional-chinese.min.js +1 -1
  103. package/i18n/turkish.js +1 -1
  104. package/i18n/turkish.min.js +1 -1
  105. package/i18n/ukrainian.js +1 -1
  106. package/i18n/ukrainian.min.js +1 -1
  107. package/i18n/urdu.js +1 -1
  108. package/i18n/urdu.min.js +1 -1
  109. package/i18n/vietnamese.js +1 -1
  110. package/i18n/vietnamese.min.js +1 -1
  111. package/i18n/welsh.js +1 -1
  112. package/i18n/welsh.min.js +1 -1
  113. package/modern.css +27 -41
  114. package/modern.css.map +1 -1
  115. package/modern.fontless.css +27 -41
  116. package/modern.fontless.css.map +1 -1
  117. package/modern.fontless.min.css +2 -2
  118. package/modern.min.css +2 -2
  119. package/package.json +1 -1
  120. package/plugins/bootstrap-integration/index.js +1 -1
  121. package/plugins/bootstrap-integration/index.min.js +1 -1
  122. package/plugins/bootstrap-material-integration/index.js +1 -1
  123. package/plugins/bootstrap-material-integration/index.min.js +1 -1
  124. package/survey.core.js +413 -208
  125. package/survey.core.js.map +1 -1
  126. package/survey.core.min.js +3 -3
  127. package/survey.css +1 -1
  128. package/survey.i18n.js +1 -1
  129. package/survey.i18n.min.js +1 -1
  130. package/survey.min.css +1 -1
  131. package/themes/borderless-dark-panelless.js +1 -1
  132. package/themes/borderless-dark-panelless.min.js +1 -1
  133. package/themes/borderless-dark.js +1 -1
  134. package/themes/borderless-dark.min.js +1 -1
  135. package/themes/borderless-light-panelless..js +1 -1
  136. package/themes/borderless-light-panelless..min.js +1 -1
  137. package/themes/borderless-light.js +1 -1
  138. package/themes/borderless-light.min.js +1 -1
  139. package/themes/contrast-dark-panelless.js +1 -1
  140. package/themes/contrast-dark-panelless.min.js +1 -1
  141. package/themes/contrast-dark.js +1 -1
  142. package/themes/contrast-dark.min.js +1 -1
  143. package/themes/contrast-light-panelless.js +1 -1
  144. package/themes/contrast-light-panelless.min.js +1 -1
  145. package/themes/contrast-light.js +1 -1
  146. package/themes/contrast-light.min.js +1 -1
  147. package/themes/default-dark-panelless.js +1 -1
  148. package/themes/default-dark-panelless.min.js +1 -1
  149. package/themes/default-dark.js +1 -1
  150. package/themes/default-dark.min.js +1 -1
  151. package/themes/default-light-panelless.js +1 -1
  152. package/themes/default-light-panelless.min.js +1 -1
  153. package/themes/default-light.js +1 -1
  154. package/themes/default-light.min.js +1 -1
  155. package/themes/doubleborder-dark-panelless.js +1 -1
  156. package/themes/doubleborder-dark-panelless.min.js +1 -1
  157. package/themes/doubleborder-dark.js +1 -1
  158. package/themes/doubleborder-dark.min.js +1 -1
  159. package/themes/doubleborder-light-panelles.js +1 -1
  160. package/themes/doubleborder-light-panelles.min.js +1 -1
  161. package/themes/doubleborder-light.js +1 -1
  162. package/themes/doubleborder-light.min.js +1 -1
  163. package/themes/flat-dark-panelless.js +1 -1
  164. package/themes/flat-dark-panelless.min.js +1 -1
  165. package/themes/flat-dark.js +1 -1
  166. package/themes/flat-dark.min.js +1 -1
  167. package/themes/flat-light-panelless.js +1 -1
  168. package/themes/flat-light-panelless.min.js +1 -1
  169. package/themes/flat-light.js +1 -1
  170. package/themes/flat-light.min.js +1 -1
  171. package/themes/index.js +1 -1
  172. package/themes/index.min.js +1 -1
  173. package/themes/layered-dark-panelless.js +1 -1
  174. package/themes/layered-dark-panelless.min.js +1 -1
  175. package/themes/layered-dark.js +1 -1
  176. package/themes/layered-dark.min.js +1 -1
  177. package/themes/layered-light-panelless.js +1 -1
  178. package/themes/layered-light-panelless.min.js +1 -1
  179. package/themes/layered-light.js +1 -1
  180. package/themes/layered-light.min.js +1 -1
  181. package/themes/plain-dark-panelless.js +1 -1
  182. package/themes/plain-dark-panelless.min.js +1 -1
  183. package/themes/plain-dark.js +1 -1
  184. package/themes/plain-dark.min.js +1 -1
  185. package/themes/plain-light-panelless.js +1 -1
  186. package/themes/plain-light-panelless.min.js +1 -1
  187. package/themes/plain-light.js +1 -1
  188. package/themes/plain-light.min.js +1 -1
  189. package/themes/sharp-dark-panelless.js +1 -1
  190. package/themes/sharp-dark-panelless.min.js +1 -1
  191. package/themes/sharp-dark.js +1 -1
  192. package/themes/sharp-dark.min.js +1 -1
  193. package/themes/sharp-light-panelless.js +1 -1
  194. package/themes/sharp-light-panelless.min.js +1 -1
  195. package/themes/sharp-light.js +1 -1
  196. package/themes/sharp-light.min.js +1 -1
  197. package/themes/solid-dark-panelless.js +1 -1
  198. package/themes/solid-dark-panelless.min.js +1 -1
  199. package/themes/solid-dark.js +1 -1
  200. package/themes/solid-dark.min.js +1 -1
  201. package/themes/solid-light-panelless.js +1 -1
  202. package/themes/solid-light-panelless.min.js +1 -1
  203. package/themes/solid-light.js +1 -1
  204. package/themes/solid-light.min.js +1 -1
  205. package/themes/three-dimensional-dark-panelless.js +1 -1
  206. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  207. package/themes/three-dimensional-dark.js +1 -1
  208. package/themes/three-dimensional-dark.min.js +1 -1
  209. package/themes/three-dimensional-light-panelless.js +1 -1
  210. package/themes/three-dimensional-light-panelless.min.js +1 -1
  211. package/themes/three-dimensional-light.js +1 -1
  212. package/themes/three-dimensional-light.min.js +1 -1
  213. package/ts3.4/typings/packages/survey-core/src/choicesRestful.d.ts +1 -0
  214. package/ts3.4/typings/packages/survey-core/src/defaultCss/defaultV2Css.d.ts +28 -17
  215. package/ts3.4/typings/packages/survey-core/src/header.d.ts +2 -2
  216. package/ts3.4/typings/packages/survey-core/src/helpers.d.ts +1 -0
  217. package/ts3.4/typings/packages/survey-core/src/itemvalue.d.ts +3 -0
  218. package/ts3.4/typings/packages/survey-core/src/mask/mask_base.d.ts +1 -0
  219. package/ts3.4/typings/packages/survey-core/src/mask/mask_datetime.d.ts +1 -0
  220. package/ts3.4/typings/packages/survey-core/src/panel.d.ts +3 -0
  221. package/ts3.4/typings/packages/survey-core/src/question.d.ts +1 -1
  222. package/ts3.4/typings/packages/survey-core/src/question_baseselect.d.ts +9 -1
  223. package/ts3.4/typings/packages/survey-core/src/question_checkbox.d.ts +1 -1
  224. package/ts3.4/typings/packages/survey-core/src/question_custom.d.ts +1 -1
  225. package/ts3.4/typings/packages/survey-core/src/question_file.d.ts +1 -1
  226. package/ts3.4/typings/packages/survey-core/src/question_matrix.d.ts +1 -1
  227. package/ts3.4/typings/packages/survey-core/src/question_matrixdropdowncolumn.d.ts +2 -2
  228. package/ts3.4/typings/packages/survey-core/src/question_matrixdynamic.d.ts +1 -1
  229. package/ts3.4/typings/packages/survey-core/src/question_paneldynamic.d.ts +3 -0
  230. package/ts3.4/typings/packages/survey-core/src/question_text.d.ts +1 -1
  231. package/ts3.4/typings/packages/survey-core/src/survey.d.ts +1 -0
  232. package/ts3.4/typings/packages/survey-core/src/utils/animation.d.ts +1 -0
  233. package/ts3.4/typings/packages/survey-core/src/utils/responsivity-manager.d.ts +1 -2
  234. package/ts3.4/typings/packages/survey-core/src/utils/utils.d.ts +14 -0
  235. package/typings/packages/survey-core/src/choicesRestful.d.ts +1 -0
  236. package/typings/packages/survey-core/src/defaultCss/defaultV2Css.d.ts +28 -17
  237. package/typings/packages/survey-core/src/header.d.ts +2 -2
  238. package/typings/packages/survey-core/src/helpers.d.ts +1 -0
  239. package/typings/packages/survey-core/src/itemvalue.d.ts +3 -0
  240. package/typings/packages/survey-core/src/mask/mask_base.d.ts +1 -0
  241. package/typings/packages/survey-core/src/mask/mask_datetime.d.ts +1 -0
  242. package/typings/packages/survey-core/src/panel.d.ts +3 -0
  243. package/typings/packages/survey-core/src/question.d.ts +1 -1
  244. package/typings/packages/survey-core/src/question_baseselect.d.ts +10 -1
  245. package/typings/packages/survey-core/src/question_checkbox.d.ts +1 -1
  246. package/typings/packages/survey-core/src/question_custom.d.ts +1 -1
  247. package/typings/packages/survey-core/src/question_file.d.ts +1 -1
  248. package/typings/packages/survey-core/src/question_matrix.d.ts +1 -1
  249. package/typings/packages/survey-core/src/question_matrixdropdowncolumn.d.ts +2 -2
  250. package/typings/packages/survey-core/src/question_matrixdynamic.d.ts +1 -1
  251. package/typings/packages/survey-core/src/question_paneldynamic.d.ts +3 -0
  252. package/typings/packages/survey-core/src/question_text.d.ts +1 -1
  253. package/typings/packages/survey-core/src/survey.d.ts +1 -0
  254. package/typings/packages/survey-core/src/utils/animation.d.ts +1 -0
  255. package/typings/packages/survey-core/src/utils/responsivity-manager.d.ts +1 -2
  256. package/typings/packages/survey-core/src/utils/utils.d.ts +14 -0
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.11.14
2
+ * surveyjs - Survey JavaScript library v1.12.1
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
  */
@@ -1802,6 +1802,18 @@ var helpers_Helpers = /** @class */ (function () {
1802
1802
  }
1803
1803
  return len1 === len2 ? 0 : (len1 < len2 ? -1 : 1);
1804
1804
  };
1805
+ Helpers.isUrlYoutubeVideo = function (url) {
1806
+ if (!url)
1807
+ return false;
1808
+ var youtubeDomains = ["www.youtube.com", "m.youtube.com", "youtube.com", "youtu.be"];
1809
+ url = url.toLowerCase();
1810
+ url = url.replace(/^https?:\/\//, "");
1811
+ for (var i = 0; i < youtubeDomains.length; i++) {
1812
+ if (url.indexOf(youtubeDomains[i] + "/") === 0)
1813
+ return true;
1814
+ }
1815
+ return false;
1816
+ };
1805
1817
  return Helpers;
1806
1818
  }());
1807
1819
 
@@ -9553,6 +9565,8 @@ var base_Base = /** @class */ (function () {
9553
9565
  name: name,
9554
9566
  oldValue: oldValue,
9555
9567
  newValue: newValue,
9568
+ arrayChanges: arrayChanges,
9569
+ target: target
9556
9570
  });
9557
9571
  this.doPropertyValueChangedCallback(name, oldValue, newValue, arrayChanges, this);
9558
9572
  this.checkConditionPropertyChanged(name);
@@ -10068,6 +10082,8 @@ var base_Base = /** @class */ (function () {
10068
10082
  this.onElementRenderedEventEnabled = true;
10069
10083
  };
10070
10084
  Base.prototype.disableOnElementRenderedEvent = function () {
10085
+ var _a;
10086
+ (_a = this.onElementRerendered) === null || _a === void 0 ? void 0 : _a.fire(this, { isCancel: true });
10071
10087
  this.onElementRenderedEventEnabled = false;
10072
10088
  };
10073
10089
  Object.defineProperty(Base.prototype, "onElementRerendered", {
@@ -10079,7 +10095,7 @@ var base_Base = /** @class */ (function () {
10079
10095
  });
10080
10096
  Base.prototype.afterRerender = function () {
10081
10097
  var _a;
10082
- (_a = this.onElementRerendered) === null || _a === void 0 ? void 0 : _a.fire(this, undefined);
10098
+ (_a = this.onElementRerendered) === null || _a === void 0 ? void 0 : _a.fire(this, { isCancel: false });
10083
10099
  };
10084
10100
  Base.currentDependencis = undefined;
10085
10101
  return Base;
@@ -10194,6 +10210,10 @@ var responsivity_manager_ResponsivityManager = /** @class */ (function () {
10194
10210
  function ResponsivityManager(container, model, itemsSelector, dotsItemSize, delayedUpdateFunction) {
10195
10211
  var _this = this;
10196
10212
  if (dotsItemSize === void 0) { dotsItemSize = null; }
10213
+ if (delayedUpdateFunction === void 0) { delayedUpdateFunction = function (callback) { if (queueMicrotask)
10214
+ queueMicrotask(callback);
10215
+ else
10216
+ callback(); }; }
10197
10217
  this.container = container;
10198
10218
  this.model = model;
10199
10219
  this.itemsSelector = itemsSelector;
@@ -10211,8 +10231,9 @@ var responsivity_manager_ResponsivityManager = /** @class */ (function () {
10211
10231
  return DomDocumentHelper.getComputedStyle(elt);
10212
10232
  };
10213
10233
  this.model.updateCallback = function (isResetInitialized) {
10214
- if (isResetInitialized)
10234
+ if (isResetInitialized) {
10215
10235
  _this.isInitialized = false;
10236
+ }
10216
10237
  setTimeout(function () { _this.process(); }, 1);
10217
10238
  };
10218
10239
  if (typeof ResizeObserver !== "undefined") {
@@ -10251,16 +10272,6 @@ var responsivity_manager_ResponsivityManager = /** @class */ (function () {
10251
10272
  (currentAction.needSeparator ? this.separatorSize : 0)
10252
10273
  : currentAction.maxDimension;
10253
10274
  };
10254
- ResponsivityManager.prototype.getRenderedVisibleActionsCount = function () {
10255
- var _this = this;
10256
- var count = 0;
10257
- this.container.querySelectorAll(this.itemsSelector).forEach(function (item) {
10258
- if (_this.calcItemSize(item) > 0) {
10259
- count++;
10260
- }
10261
- });
10262
- return count;
10263
- };
10264
10275
  ResponsivityManager.prototype.calcItemsSizes = function () {
10265
10276
  var _this = this;
10266
10277
  if (this.isInitialized)
@@ -10304,16 +10315,8 @@ var responsivity_manager_ResponsivityManager = /** @class */ (function () {
10304
10315
  _this.isInitialized = true;
10305
10316
  processResponsiveness_1();
10306
10317
  };
10307
- if (this.getRenderedVisibleActionsCount() < this.model.visibleActions.length) {
10308
- if (this.delayedUpdateFunction) {
10309
- this.delayedUpdateFunction(callback);
10310
- }
10311
- else if (queueMicrotask) {
10312
- queueMicrotask(callback);
10313
- }
10314
- else {
10315
- callback();
10316
- }
10318
+ if (this.delayedUpdateFunction) {
10319
+ this.delayedUpdateFunction(callback);
10317
10320
  }
10318
10321
  else {
10319
10322
  callback();
@@ -12225,7 +12228,6 @@ var animation_AnimationUtils = /** @class */ (function () {
12225
12228
  var animationsCount = this.getAnimationsCount(element);
12226
12229
  var onEndCallback = function (isCancel) {
12227
12230
  if (isCancel === void 0) { isCancel = true; }
12228
- _this.afterAnimationRun(element, options);
12229
12231
  callback(isCancel);
12230
12232
  clearTimeout(cancelTimeout);
12231
12233
  _this.removeCancelCallback(onEndCallback);
@@ -12244,7 +12246,6 @@ var animation_AnimationUtils = /** @class */ (function () {
12244
12246
  }, this.getAnimationDuration(element) + 10);
12245
12247
  }
12246
12248
  else {
12247
- this.afterAnimationRun(element, options);
12248
12249
  callback(true);
12249
12250
  }
12250
12251
  };
@@ -12279,6 +12280,7 @@ var animation_AnimationUtils = /** @class */ (function () {
12279
12280
  element.classList.remove(cssClass);
12280
12281
  });
12281
12282
  }
12283
+ this.afterAnimationRun(element, options);
12282
12284
  };
12283
12285
  AnimationUtils.prototype.onNextRender = function (callback, isCancel) {
12284
12286
  var _this = this;
@@ -12401,7 +12403,7 @@ var animation_AnimationProperty = /** @class */ (function () {
12401
12403
  this.update = update;
12402
12404
  this.getCurrentValue = getCurrentValue;
12403
12405
  this._debouncedSync = debounce(function (newValue) {
12404
- _this.animation.cancel();
12406
+ _this.cancelAnimations();
12405
12407
  try {
12406
12408
  _this._sync(newValue);
12407
12409
  }
@@ -12434,8 +12436,13 @@ var animation_AnimationProperty = /** @class */ (function () {
12434
12436
  rerenderEvent.remove(nextRenderCallback_1);
12435
12437
  _this.cancelCallback = undefined;
12436
12438
  };
12437
- var nextRenderCallback_1 = function () {
12438
- callback();
12439
+ var nextRenderCallback_1 = function (_, options) {
12440
+ if (options.isCancel) {
12441
+ onCancel && onCancel();
12442
+ }
12443
+ else {
12444
+ callback();
12445
+ }
12439
12446
  clear_1();
12440
12447
  };
12441
12448
  this.cancelCallback = function () {
@@ -12456,6 +12463,9 @@ var animation_AnimationProperty = /** @class */ (function () {
12456
12463
  };
12457
12464
  AnimationProperty.prototype.cancel = function () {
12458
12465
  this._debouncedSync.cancel();
12466
+ this.cancelAnimations();
12467
+ };
12468
+ AnimationProperty.prototype.cancelAnimations = function () {
12459
12469
  this.cancelCallback && this.cancelCallback();
12460
12470
  this.animation.cancel();
12461
12471
  };
@@ -12501,7 +12511,8 @@ var animation_AnimationGroup = /** @class */ (function (_super) {
12501
12511
  AnimationGroup.prototype._sync = function (newValue) {
12502
12512
  var _this = this;
12503
12513
  var _a, _b;
12504
- var oldValue = this.getCurrentValue();
12514
+ newValue = [].concat(newValue);
12515
+ var oldValue = [].concat(this.getCurrentValue());
12505
12516
  var allowSyncRemovalAddition = (_a = this.animationOptions.allowSyncRemovalAddition) !== null && _a !== void 0 ? _a : true;
12506
12517
  var _c = compareArrays(oldValue, newValue, (_b = this.animationOptions.getKey) !== null && _b !== void 0 ? _b : (function (item) { return item; })), addedItems = _c.addedItems, deletedItems = _c.deletedItems, reorderedItems = _c.reorderedItems, mergedItems = _c.mergedItems;
12507
12518
  if (!allowSyncRemovalAddition && (reorderedItems.length > 0 || addedItems.length > 0)) {
@@ -12775,7 +12786,7 @@ var survey_element_SurveyElementCore = /** @class */ (function (_super) {
12775
12786
  });
12776
12787
  SurveyElementCore.prototype.getIsTitleRenderedAsString = function () { return !this.isTitleOwner; };
12777
12788
  survey_element_decorate([
12778
- jsonobject_property()
12789
+ jsonobject_property({})
12779
12790
  ], SurveyElementCore.prototype, "hasDescription", void 0);
12780
12791
  survey_element_decorate([
12781
12792
  jsonobject_property({
@@ -13944,17 +13955,18 @@ var survey_element_SurveyElement = /** @class */ (function (_super) {
13944
13955
  var _this = this;
13945
13956
  var beforeRunAnimation = function (el) {
13946
13957
  _this.isAnimatingCollapseExpand = true;
13947
- el.style.setProperty("--animation-height", el.offsetHeight + "px");
13958
+ prepareElementForVerticalAnimation(el);
13948
13959
  };
13949
13960
  var afterRunAnimation = function (el) {
13950
13961
  _this.isAnimatingCollapseExpand = false;
13962
+ cleanHtmlElementAfterAnimation(el);
13951
13963
  };
13952
13964
  return {
13953
13965
  getRerenderEvent: function () { return _this.onElementRerendered; },
13954
13966
  getEnterOptions: function () {
13955
13967
  var cssClasses = _this.isPanel ? _this.cssClasses.panel : _this.cssClasses;
13956
13968
  return {
13957
- cssClass: cssClasses.contentFadeIn,
13969
+ cssClass: cssClasses.contentEnter,
13958
13970
  onBeforeRunAnimation: beforeRunAnimation,
13959
13971
  onAfterRunAnimation: function (el) {
13960
13972
  afterRunAnimation(el);
@@ -13964,8 +13976,7 @@ var survey_element_SurveyElement = /** @class */ (function (_super) {
13964
13976
  },
13965
13977
  getLeaveOptions: function () {
13966
13978
  var cssClasses = _this.isPanel ? _this.cssClasses.panel : _this.cssClasses;
13967
- return {
13968
- cssClass: cssClasses.contentFadeOut,
13979
+ return { cssClass: cssClasses.contentLeave,
13969
13980
  onBeforeRunAnimation: beforeRunAnimation,
13970
13981
  onAfterRunAnimation: afterRunAnimation
13971
13982
  };
@@ -14797,10 +14808,20 @@ function navigateToUrl(url) {
14797
14808
  function wrapUrlForBackgroundImage(url) {
14798
14809
  return !!url ? ["url(", url, ")"].join("") : "";
14799
14810
  }
14811
+ //new-name: old-name
14812
+ var renamedIcons = {
14813
+ "folder": "chooseFile"
14814
+ };
14800
14815
  function getIconNameFromProxy(iconName) {
14801
14816
  if (!iconName)
14802
14817
  return iconName;
14803
14818
  var proxyName = settings.customIcons[iconName];
14819
+ if (!proxyName) {
14820
+ var oldName = renamedIcons[iconName];
14821
+ if (!!oldName) {
14822
+ proxyName = settings.customIcons[oldName];
14823
+ }
14824
+ }
14804
14825
  return !!proxyName ? proxyName : iconName;
14805
14826
  }
14806
14827
  function createSvg(size, width, height, iconName, svgElem, title) {
@@ -15195,6 +15216,53 @@ function compareArrays(oldValue, newValue, getKey) {
15195
15216
  });
15196
15217
  return { reorderedItems: reorderedItems, deletedItems: deletedItems, addedItems: addedItems, mergedItems: mergedItems };
15197
15218
  }
15219
+ function getVerticalDimensions(el) {
15220
+ if (DomDocumentHelper.isAvailable()) {
15221
+ var _a = DomDocumentHelper.getComputedStyle(el), paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom, borderTopWidth = _a.borderTopWidth, borderBottomWidth = _a.borderBottomWidth, marginTop = _a.marginTop, marginBottom = _a.marginBottom, boxSizing = _a.boxSizing;
15222
+ var heightTo = el.offsetHeight + "px";
15223
+ if (boxSizing == "content-box") {
15224
+ var heightPx_1 = el.offsetHeight;
15225
+ [borderBottomWidth, borderTopWidth, paddingBottom, paddingTop].forEach(function (style) {
15226
+ heightPx_1 -= parseFloat(style);
15227
+ });
15228
+ heightTo = heightPx_1 + "px";
15229
+ }
15230
+ return {
15231
+ paddingTop: paddingTop,
15232
+ paddingBottom: paddingBottom,
15233
+ borderTopWidth: borderTopWidth,
15234
+ borderBottomWidth: borderBottomWidth,
15235
+ marginTop: marginTop,
15236
+ marginBottom: marginBottom,
15237
+ heightFrom: "0px",
15238
+ heightTo: heightTo
15239
+ };
15240
+ }
15241
+ else {
15242
+ return undefined;
15243
+ }
15244
+ }
15245
+ function setPropertiesOnElementForAnimation(el, styles, prefix) {
15246
+ var _a;
15247
+ if (prefix === void 0) { prefix = "--animation-"; }
15248
+ el["__sv_created_properties"] = (_a = el["__sv_created_properties"]) !== null && _a !== void 0 ? _a : [];
15249
+ Object.keys(styles).forEach(function (key) {
15250
+ var propertyName = "" + prefix + key.split(/\.?(?=[A-Z])/).join("-").toLowerCase();
15251
+ el.style.setProperty(propertyName, styles[key]);
15252
+ el["__sv_created_properties"].push(propertyName);
15253
+ });
15254
+ }
15255
+ function prepareElementForVerticalAnimation(el) {
15256
+ setPropertiesOnElementForAnimation(el, getVerticalDimensions(el));
15257
+ }
15258
+ function cleanHtmlElementAfterAnimation(el) {
15259
+ if (Array.isArray(el["__sv_created_properties"])) {
15260
+ el["__sv_created_properties"].forEach(function (propertyName) {
15261
+ el.style.removeProperty(propertyName);
15262
+ });
15263
+ delete el["__sv_created_properties"];
15264
+ }
15265
+ }
15198
15266
  function roundTo2Decimals(number) {
15199
15267
  return Math.round(number * 100) / 100;
15200
15268
  }
@@ -19722,7 +19790,7 @@ var question_Question = /** @class */ (function (_super) {
19722
19790
  Question.prototype.hasErrors = function (fireCallback, rec) {
19723
19791
  if (fireCallback === void 0) { fireCallback = true; }
19724
19792
  if (rec === void 0) { rec = null; }
19725
- var errors = this.checkForErrors(!!rec && rec.isOnValueChanged === true);
19793
+ var errors = this.checkForErrors(!!rec && rec.isOnValueChanged === true, fireCallback);
19726
19794
  if (fireCallback) {
19727
19795
  if (!!this.survey) {
19728
19796
  this.survey.beforeSettingQuestionErrors(this, errors);
@@ -19797,18 +19865,18 @@ var question_Question = /** @class */ (function (_super) {
19797
19865
  if (index !== -1)
19798
19866
  errors.splice(index, 1);
19799
19867
  };
19800
- Question.prototype.checkForErrors = function (isOnValueChanged) {
19868
+ Question.prototype.checkForErrors = function (isOnValueChanged, fireCallback) {
19801
19869
  var qErrors = new Array();
19802
19870
  if (this.isVisible && this.canCollectErrors()) {
19803
- this.collectErrors(qErrors, isOnValueChanged);
19871
+ this.collectErrors(qErrors, isOnValueChanged, fireCallback);
19804
19872
  }
19805
19873
  return qErrors;
19806
19874
  };
19807
19875
  Question.prototype.canCollectErrors = function () {
19808
19876
  return !this.isReadOnly || settings.readOnly.enableValidation;
19809
19877
  };
19810
- Question.prototype.collectErrors = function (qErrors, isOnValueChanged) {
19811
- this.onCheckForErrors(qErrors, isOnValueChanged);
19878
+ Question.prototype.collectErrors = function (qErrors, isOnValueChanged, fireCallback) {
19879
+ this.onCheckForErrors(qErrors, isOnValueChanged, fireCallback);
19812
19880
  if (qErrors.length > 0 || !this.canRunValidators(isOnValueChanged))
19813
19881
  return;
19814
19882
  var errors = this.runValidators();
@@ -19834,7 +19902,7 @@ var question_Question = /** @class */ (function (_super) {
19834
19902
  return this.validateValueCallback();
19835
19903
  return this.survey ? this.survey.validateQuestion(this) : null;
19836
19904
  };
19837
- Question.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
19905
+ Question.prototype.onCheckForErrors = function (errors, isOnValueChanged, fireCallback) {
19838
19906
  var _this = this;
19839
19907
  if ((!isOnValueChanged || this.isOldAnswered) && this.hasRequiredError()) {
19840
19908
  var err = new AnswerRequiredError(this.requiredErrorText, this);
@@ -21060,6 +21128,12 @@ var itemvalue_ItemValue = /** @class */ (function (_super) {
21060
21128
  ItemValue.prototype.setComponent = function (val) {
21061
21129
  this.componentValue = val;
21062
21130
  };
21131
+ ItemValue.prototype.setRootElement = function (val) {
21132
+ this._htmlElement = val;
21133
+ };
21134
+ ItemValue.prototype.getRootElement = function () {
21135
+ return this._htmlElement;
21136
+ };
21063
21137
  ItemValue.prototype.getEnabled = function () {
21064
21138
  return this.isEnabled;
21065
21139
  };
@@ -21831,52 +21905,32 @@ var choicesRestful_ChoicesRestful = /** @class */ (function (_super) {
21831
21905
  }
21832
21906
  return res;
21833
21907
  };
21908
+ ChoicesRestful.prototype.getAllPropertiesNames = function () {
21909
+ var res = new Array();
21910
+ Serializer.getPropertiesByObj(this).forEach(function (prop) { return res.push(prop.name); });
21911
+ this.getCustomPropertiesNames().forEach(function (prop) { return res.push(prop); });
21912
+ return res;
21913
+ };
21834
21914
  ChoicesRestful.prototype.setData = function (json) {
21835
- this.clear();
21836
- if (json.url)
21837
- this.url = json.url;
21838
- if (json.path)
21839
- this.path = json.path;
21840
- if (json.valueName)
21841
- this.valueName = json.valueName;
21842
- if (json.titleName)
21843
- this.titleName = json.titleName;
21844
- if (json.imageLinkName)
21845
- this.imageLinkName = json.imageLinkName;
21846
- if (json.allowEmptyResponse !== undefined)
21847
- this.allowEmptyResponse = json.allowEmptyResponse;
21848
- if (json.attachOriginalItems !== undefined)
21849
- this.attachOriginalItems = json.attachOriginalItems;
21850
- var properties = this.getCustomPropertiesNames();
21851
- for (var i = 0; i < properties.length; i++) {
21852
- if (json[properties[i]])
21853
- this[properties[i]] = json[properties[i]];
21854
- }
21915
+ var _this = this;
21916
+ if (!json)
21917
+ json = {};
21918
+ this.getAllPropertiesNames().forEach(function (name) {
21919
+ _this[name] = json[name];
21920
+ });
21855
21921
  };
21856
21922
  ChoicesRestful.prototype.getData = function () {
21857
- if (this.isEmpty)
21858
- return null;
21923
+ var _this = this;
21859
21924
  var res = {};
21860
- if (this.url)
21861
- res["url"] = this.url;
21862
- if (this.path)
21863
- res["path"] = this.path;
21864
- if (this.valueName)
21865
- res["valueName"] = this.valueName;
21866
- if (this.titleName)
21867
- res["titleName"] = this.titleName;
21868
- if (this.imageLinkName)
21869
- res["imageLinkName"] = this.imageLinkName;
21870
- if (this.allowEmptyResponse)
21871
- res["allowEmptyResponse"] = this.allowEmptyResponse;
21872
- if (this.attachOriginalItems)
21873
- res["attachOriginalItems"] = this.attachOriginalItems;
21874
- var properties = this.getCustomPropertiesNames();
21875
- for (var i = 0; i < properties.length; i++) {
21876
- if (this[properties[i]])
21877
- res[properties[i]] = this[properties[i]];
21878
- }
21879
- return res;
21925
+ var hasValue = false;
21926
+ this.getAllPropertiesNames().forEach(function (name) {
21927
+ var val = _this[name];
21928
+ if (!_this.isValueEmpty(val) && val !== _this.getDefaultPropertyValue(name)) {
21929
+ res[name] = val;
21930
+ hasValue = true;
21931
+ }
21932
+ });
21933
+ return hasValue ? res : null;
21880
21934
  };
21881
21935
  Object.defineProperty(ChoicesRestful.prototype, "url", {
21882
21936
  /**
@@ -22033,16 +22087,7 @@ var choicesRestful_ChoicesRestful = /** @class */ (function (_super) {
22033
22087
  configurable: true
22034
22088
  });
22035
22089
  ChoicesRestful.prototype.clear = function () {
22036
- this.url = undefined;
22037
- this.path = undefined;
22038
- this.valueName = undefined;
22039
- this.titleName = undefined;
22040
- this.imageLinkName = undefined;
22041
- var properties = this.getCustomPropertiesNames();
22042
- for (var i = 0; i < properties.length; i++) {
22043
- if (this[properties[i]])
22044
- this[properties[i]] = "";
22045
- }
22090
+ this.setData(undefined);
22046
22091
  };
22047
22092
  ChoicesRestful.prototype.beforeSendRequest = function () {
22048
22093
  this.isRunningValue = true;
@@ -23290,8 +23335,8 @@ var question_custom_QuestionCustomModelBase = /** @class */ (function (_super) {
23290
23335
  _super.prototype.setNewValue.call(this, newValue);
23291
23336
  this.updateElementCss();
23292
23337
  };
23293
- QuestionCustomModelBase.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
23294
- _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
23338
+ QuestionCustomModelBase.prototype.onCheckForErrors = function (errors, isOnValueChanged, fireCallback) {
23339
+ _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged, fireCallback);
23295
23340
  if (!!this.customQuestion) {
23296
23341
  var text = this.customQuestion.onGetErrorText(this);
23297
23342
  if (!!text) {
@@ -25626,7 +25671,7 @@ var question_matrixdropdowncolumn_MatrixDropdownColumn = /** @class */ (function
25626
25671
  this.templateQuestion.locOwner = this;
25627
25672
  this.addProperties(curCellType);
25628
25673
  this.templateQuestion.onPropertyChanged.add(function (sender, options) {
25629
- _this.propertyValueChanged(options.name, options.oldValue, options.newValue);
25674
+ _this.propertyValueChanged(options.name, options.oldValue, options.newValue, options.arrayChanges, options.target);
25630
25675
  });
25631
25676
  this.templateQuestion.onItemValuePropertyChanged.add(function (sender, options) {
25632
25677
  _this.doItemValuePropertyChanged(options.propertyName, options.obj, options.name, options.newValue, options.oldValue);
@@ -25669,7 +25714,7 @@ var question_matrixdropdowncolumn_MatrixDropdownColumn = /** @class */ (function
25669
25714
  delete json["choices"];
25670
25715
  }
25671
25716
  delete json["itemComponent"];
25672
- if (this.jsonObj) {
25717
+ if (this.jsonObj && json.type === "rating") {
25673
25718
  Object.keys(this.jsonObj).forEach(function (prop) {
25674
25719
  json[prop] = _this.jsonObj[prop];
25675
25720
  });
@@ -25696,8 +25741,8 @@ var question_matrixdropdowncolumn_MatrixDropdownColumn = /** @class */ (function
25696
25741
  };
25697
25742
  }
25698
25743
  };
25699
- MatrixDropdownColumn.prototype.propertyValueChanged = function (name, oldValue, newValue) {
25700
- _super.prototype.propertyValueChanged.call(this, name, oldValue, newValue);
25744
+ MatrixDropdownColumn.prototype.propertyValueChanged = function (name, oldValue, newValue, arrayChanges, target) {
25745
+ _super.prototype.propertyValueChanged.call(this, name, oldValue, newValue, arrayChanges, target);
25701
25746
  if (name === "isRequired") {
25702
25747
  this.updateIsRenderedRequired(newValue);
25703
25748
  }
@@ -25881,6 +25926,7 @@ var question_matrixdropdownrendered_spreadArray = (undefined && undefined.__spre
25881
25926
 
25882
25927
 
25883
25928
 
25929
+
25884
25930
  var question_matrixdropdownrendered_QuestionMatrixDropdownRenderedCell = /** @class */ (function () {
25885
25931
  function QuestionMatrixDropdownRenderedCell() {
25886
25932
  this.minWidth = "";
@@ -26211,9 +26257,14 @@ var question_matrixdropdownrendered_QuestionMatrixDropdownRenderedTable = /** @c
26211
26257
  };
26212
26258
  QuestionMatrixDropdownRenderedTable.prototype.getRenderedRowsAnimationOptions = function () {
26213
26259
  var _this = this;
26214
- var beforeAnimationRun = function (el) {
26260
+ var onBeforeRunAnimation = function (el) {
26261
+ el.querySelectorAll(":scope > td > *").forEach(function (el) {
26262
+ prepareElementForVerticalAnimation(el);
26263
+ });
26264
+ };
26265
+ var onAfterRunAnimation = function (el) {
26215
26266
  el.querySelectorAll(":scope > td > *").forEach(function (el) {
26216
- el.style.setProperty("--animation-height", el.offsetHeight + "px");
26267
+ cleanHtmlElementAfterAnimation(el);
26217
26268
  });
26218
26269
  };
26219
26270
  return {
@@ -26225,10 +26276,10 @@ var question_matrixdropdownrendered_QuestionMatrixDropdownRenderedTable = /** @c
26225
26276
  return el.getRootElement();
26226
26277
  },
26227
26278
  getLeaveOptions: function () {
26228
- return { cssClass: _this.cssClasses.rowFadeOut, onBeforeRunAnimation: beforeAnimationRun };
26279
+ return { cssClass: _this.cssClasses.rowLeave, onBeforeRunAnimation: onBeforeRunAnimation, onAfterRunAnimation: onAfterRunAnimation };
26229
26280
  },
26230
- getEnterOptions: function () {
26231
- return { cssClass: _this.cssClasses.rowFadeIn, onBeforeRunAnimation: beforeAnimationRun };
26281
+ getEnterOptions: function (_, info) {
26282
+ return { cssClass: _this.cssClasses.rowEnter, onBeforeRunAnimation: onBeforeRunAnimation, onAfterRunAnimation: onAfterRunAnimation };
26232
26283
  }
26233
26284
  };
26234
26285
  };
@@ -30571,13 +30622,17 @@ var core_DragDropCore = /** @class */ (function () {
30571
30622
  DragDropCore.prototype.afterDragOver = function (dropTargetNode) { };
30572
30623
  DragDropCore.prototype.findDropTargetNodeFromPoint = function (clientX, clientY) {
30573
30624
  var displayProp = this.domAdapter.draggedElementShortcut.style.display;
30574
- //this.domAdapter.draggedElementShortcut.hidden = true;
30575
30625
  this.domAdapter.draggedElementShortcut.style.display = "none";
30576
30626
  if (!DomDocumentHelper.isAvailable())
30577
30627
  return null;
30578
- var dragOverNode = this.domAdapter.documentOrShadowRoot.elementFromPoint(clientX, clientY);
30579
- // this.domAdapter.draggedElementShortcut.hidden = false;
30628
+ var dragOverNodes = this.domAdapter.documentOrShadowRoot.elementsFromPoint(clientX, clientY);
30580
30629
  this.domAdapter.draggedElementShortcut.style.display = displayProp || "block";
30630
+ var index = 0;
30631
+ var dragOverNode = dragOverNodes[index];
30632
+ while (dragOverNode && dragOverNode.className && typeof dragOverNode.className.indexOf == "function" && dragOverNode.className.indexOf("sv-drag-target-skipped") != -1) {
30633
+ index++;
30634
+ dragOverNode = dragOverNodes[index];
30635
+ }
30581
30636
  if (!dragOverNode)
30582
30637
  return null;
30583
30638
  return this.findDropTargetNodeByDragOverNode(dragOverNode);
@@ -31753,8 +31808,8 @@ var question_matrixdynamic_QuestionMatrixDynamicModel = /** @class */ (function
31753
31808
  enumerable: false,
31754
31809
  configurable: true
31755
31810
  });
31756
- QuestionMatrixDynamicModel.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
31757
- _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
31811
+ QuestionMatrixDynamicModel.prototype.onCheckForErrors = function (errors, isOnValueChanged, fireCallback) {
31812
+ _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged, fireCallback);
31758
31813
  if (!isOnValueChanged && this.hasErrorInMinRows()) {
31759
31814
  errors.push(new error_MinRowCountError(this.minRowCount, this));
31760
31815
  }
@@ -32061,10 +32116,10 @@ var defaultV2Css = {
32061
32116
  edit: "sd-btn sd-btn--small",
32062
32117
  },
32063
32118
  panel: {
32064
- contentFadeIn: "sd-element__content--fade-in",
32065
- contentFadeOut: "sd-element__content--fade-out",
32066
- fadeIn: "sd-element-wrapper--fade-in",
32067
- fadeOut: "sd-element-wrapper--fade-out",
32119
+ contentEnter: "sd-element__content--enter",
32120
+ contentLeave: "sd-element__content--leave",
32121
+ enter: "sd-element-wrapper--enter",
32122
+ leave: "sd-element-wrapper--leave",
32068
32123
  asPage: "sd-panel--as-page",
32069
32124
  number: "sd-element__num",
32070
32125
  title: "sd-title sd-element__title sd-panel__title",
@@ -32125,8 +32180,8 @@ var defaultV2Css = {
32125
32180
  footerButtonsContainer: "sd-paneldynamic__buttons-container",
32126
32181
  panelsContainer: "sd-paneldynamic__panels-container",
32127
32182
  panelWrapperInRow: "sd-paneldynamic__panel-wrapper--in-row",
32128
- panelWrapperFadeIn: "sd-paneldynamic__panel-wrapper--fade-in",
32129
- panelWrapperFadeOut: "sd-paneldynamic__panel-wrapper--fade-out",
32183
+ panelWrapperEnter: "sd-paneldynamic__panel-wrapper--enter",
32184
+ panelWrapperLeave: "sd-paneldynamic__panel-wrapper--leave",
32130
32185
  panelWrapperList: "sd-paneldynamic__panel-wrapper--list",
32131
32186
  progressBtnIcon: "icon-progressbuttonv2",
32132
32187
  noEntriesPlaceholder: "sd-paneldynamic__placeholder sd-question__placeholder",
@@ -32182,16 +32237,17 @@ var defaultV2Css = {
32182
32237
  row: "sd-row sd-clearfix",
32183
32238
  rowMultiple: "sd-row--multiple",
32184
32239
  rowCompact: "sd-row--compact",
32185
- rowFadeIn: "sd-row--fade-in",
32186
- rowDelayedFadeIn: "sd-row--delayed-fade-in",
32187
- rowFadeOut: "sd-row--fade-out",
32240
+ rowEnter: "sd-row--enter",
32241
+ rowDelayedEnter: "sd-row--delayed-enter",
32242
+ rowLeave: "sd-row--leave",
32243
+ rowReplace: "sd-row--replace",
32188
32244
  pageRow: "sd-page__row",
32189
32245
  question: {
32190
- contentFadeIn: "sd-element__content--fade-in",
32191
- contentFadeOut: "sd-element__content--fade-out",
32246
+ contentEnter: "sd-element__content--enter",
32247
+ contentLeave: "sd-element__content--leave",
32248
+ enter: "sd-element-wrapper--enter",
32249
+ leave: "sd-element-wrapper--leave",
32192
32250
  mobile: "sd-question--mobile",
32193
- fadeIn: "sd-element-wrapper--fade-in",
32194
- fadeOut: "sd-element-wrapper--fade-out",
32195
32251
  mainRoot: "sd-element sd-question sd-row__question",
32196
32252
  flowRoot: "sd-element sd-question sd-row__question sd-row__question--flow",
32197
32253
  withFrame: "sd-element--with-frame",
@@ -32277,6 +32333,8 @@ var defaultV2Css = {
32277
32333
  rootRow: "sd-selectbase--row",
32278
32334
  rootMultiColumn: "sd-selectbase--multi-column",
32279
32335
  item: "sd-item sd-checkbox sd-selectbase__item",
32336
+ itemEnter: "sd-item--enter",
32337
+ itemLeave: "sd-item--leave",
32280
32338
  itemOnError: "sd-item--error",
32281
32339
  itemSelectAll: "sd-checkbox--selectall",
32282
32340
  itemNone: "sd-checkbox--none",
@@ -32307,6 +32365,8 @@ var defaultV2Css = {
32307
32365
  itemInline: "sd-selectbase__item--inline",
32308
32366
  label: "sd-selectbase__label",
32309
32367
  labelChecked: "",
32368
+ itemEnter: "sd-item--enter",
32369
+ itemLeave: "sd-item--leave",
32310
32370
  itemDisabled: "sd-item--disabled sd-radio--disabled",
32311
32371
  itemReadOnly: "sd-item--readonly sd-radio--readonly",
32312
32372
  itemPreview: "sd-item--preview sd-radio--preview",
@@ -32415,6 +32475,8 @@ var defaultV2Css = {
32415
32475
  other: "sd-input sd-comment sd-selectbase__other",
32416
32476
  onError: "sd-input--error",
32417
32477
  label: "sd-selectbase__label",
32478
+ itemEnter: "sd-item--enter",
32479
+ itemLeave: "sd-item--leave",
32418
32480
  item: "sd-item sd-radio sd-selectbase__item",
32419
32481
  itemDisabled: "sd-item--disabled sd-radio--disabled",
32420
32482
  itemChecked: "sd-item--checked sd-radio--checked",
@@ -32518,8 +32580,9 @@ var defaultV2Css = {
32518
32580
  errorsCellBottom: "sd-table__cell--error-bottom",
32519
32581
  itemCell: "sd-table__cell--item",
32520
32582
  row: "sd-table__row",
32521
- rowFadeIn: "sd-table__row--fade-in",
32522
- rowFadeOut: "sd-table__row--fade-out",
32583
+ rowDelayedEnter: "sd-table__row--delayed-enter",
32584
+ rowEnter: "sd-table__row--enter",
32585
+ rowLeave: "sd-table__row--leave",
32523
32586
  expandedRow: "sd-table__row--expanded",
32524
32587
  rowHasPanel: "sd-table__row--has-panel",
32525
32588
  rowHasEndActions: "sd-table__row--has-end-actions",
@@ -32559,8 +32622,9 @@ var defaultV2Css = {
32559
32622
  cell: "sd-table__cell",
32560
32623
  cellResponsiveTitle: "sd-table__responsive-title",
32561
32624
  row: "sd-table__row",
32562
- rowFadeIn: "sd-table__row--fade-in",
32563
- rowFadeOut: "sd-table__row--fade-out",
32625
+ rowDelayedEnter: "sd-table__row--delayed-enter",
32626
+ rowEnter: "sd-table__row--enter",
32627
+ rowLeave: "sd-table__row--leave",
32564
32628
  rowHasPanel: "sd-table__row--has-panel",
32565
32629
  rowHasEndActions: "sd-table__row--has-end-actions",
32566
32630
  expandedRow: "sd-table__row--expanded",
@@ -32846,6 +32910,8 @@ var defaultV2Css = {
32846
32910
  itemHover: "sd-item--allowhover sd-checkbox--allowhover",
32847
32911
  itemControl: "sd-visuallyhidden sd-item__control sd-checkbox__control",
32848
32912
  itemDecorator: "sd-item__svg sd-checkbox__svg",
32913
+ itemEnter: "sd-item--enter",
32914
+ itemLeave: "sd-item--leave",
32849
32915
  cleanButton: "sd-tagbox_clean-button sd-dropdown_clean-button",
32850
32916
  cleanButtonSvg: "sd-tagbox_clean-button-svg sd-dropdown_clean-button-svg",
32851
32917
  cleanButtonIconId: "icon-clear",
@@ -33634,7 +33700,7 @@ var header_Cover = /** @class */ (function (_super) {
33634
33700
  enumerable: false,
33635
33701
  configurable: true
33636
33702
  });
33637
- Cover.prototype.propertyValueChanged = function (name, oldValue, newValue) {
33703
+ Cover.prototype.propertyValueChanged = function (name, oldValue, newValue, arrayChanges, target) {
33638
33704
  _super.prototype.propertyValueChanged.call(this, name, oldValue, newValue);
33639
33705
  if (name === "backgroundColor" || name === "backgroundImage" || name === "overlapEnabled") {
33640
33706
  this.updateHeaderClasses();
@@ -34245,8 +34311,8 @@ var panel_QuestionRowModel = /** @class */ (function (_super) {
34245
34311
  QuestionRowModel.prototype.getVisibleElementsAnimationOptions = function () {
34246
34312
  var _this = this;
34247
34313
  var beforeRunAnimation = function (el) {
34248
- el.style.setProperty("--animation-height", el.offsetHeight + "px");
34249
- el.style.setProperty("--animation-width", getElementWidth(el) + "px");
34314
+ prepareElementForVerticalAnimation(el);
34315
+ setPropertiesOnElementForAnimation(el, { width: getElementWidth(el) + "px" });
34250
34316
  };
34251
34317
  return {
34252
34318
  getRerenderEvent: function () { return _this.onElementRerendered; },
@@ -34257,16 +34323,18 @@ var panel_QuestionRowModel = /** @class */ (function (_super) {
34257
34323
  var surveyElement = element;
34258
34324
  var cssClasses = element.isPanel ? surveyElement.cssClasses.panel : surveyElement.cssClasses;
34259
34325
  return {
34260
- cssClass: cssClasses.fadeOut,
34261
- onBeforeRunAnimation: beforeRunAnimation
34326
+ cssClass: cssClasses.leave,
34327
+ onBeforeRunAnimation: beforeRunAnimation,
34328
+ onAfterRunAnimation: cleanHtmlElementAfterAnimation
34262
34329
  };
34263
34330
  },
34264
34331
  getEnterOptions: function (element) {
34265
34332
  var surveyElement = element;
34266
34333
  var cssClasses = element.isPanel ? surveyElement.cssClasses.panel : surveyElement.cssClasses;
34267
34334
  return {
34268
- cssClass: cssClasses.fadeIn,
34269
- onBeforeRunAnimation: beforeRunAnimation
34335
+ cssClass: cssClasses.enter,
34336
+ onBeforeRunAnimation: beforeRunAnimation,
34337
+ onAfterRunAnimation: cleanHtmlElementAfterAnimation
34270
34338
  };
34271
34339
  }
34272
34340
  };
@@ -34471,24 +34539,22 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
34471
34539
  };
34472
34540
  PanelModelBase.prototype.getRowsAnimationOptions = function () {
34473
34541
  var _this = this;
34474
- var beforeRunAnimation = function (el) {
34475
- el.style.setProperty("--animation-height", el.offsetHeight + "px");
34476
- };
34477
34542
  return {
34478
34543
  getRerenderEvent: function () { return _this.onElementRerendered; },
34479
34544
  isAnimationEnabled: function () { return _this.animationAllowed; },
34480
34545
  getAnimatedElement: function (row) { return row.getRootElement(); },
34481
- getLeaveOptions: function (_) {
34482
- return {
34483
- cssClass: _this.cssClasses.rowFadeOut,
34484
- onBeforeRunAnimation: beforeRunAnimation
34546
+ getLeaveOptions: function (row, info) {
34547
+ return { cssClass: _this.cssClasses.rowLeave,
34548
+ onBeforeRunAnimation: prepareElementForVerticalAnimation,
34549
+ onAfterRunAnimation: cleanHtmlElementAfterAnimation,
34485
34550
  };
34486
34551
  },
34487
34552
  getEnterOptions: function (_, animationInfo) {
34488
34553
  var cssClasses = _this.cssClasses;
34489
34554
  return {
34490
- cssClass: new CssClassBuilder().append(cssClasses.rowFadeIn).append(cssClasses.rowDelayedFadeIn, animationInfo.isDeletingRunning).toString(),
34491
- onBeforeRunAnimation: beforeRunAnimation
34555
+ cssClass: new CssClassBuilder().append(cssClasses.rowEnter).append(cssClasses.rowDelayedEnter, animationInfo.isDeletingRunning).toString(),
34556
+ onBeforeRunAnimation: prepareElementForVerticalAnimation,
34557
+ onAfterRunAnimation: cleanHtmlElementAfterAnimation
34492
34558
  };
34493
34559
  }
34494
34560
  };
@@ -34766,7 +34832,7 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
34766
34832
  configurable: true
34767
34833
  });
34768
34834
  PanelModelBase.prototype.calcCssClasses = function (css) {
34769
- var classes = { panel: {}, error: {}, row: "", rowFadeIn: "", rowFadeOut: "", rowDelayedFadeIn: "", rowMultiple: "", pageRow: "", rowCompact: "" };
34835
+ var classes = { panel: {}, error: {}, row: "", rowEnter: "", rowLeave: "", rowDelayedEnter: "", rowMultiple: "", pageRow: "", rowCompact: "" };
34770
34836
  this.copyCssClasses(classes.panel, css.panel);
34771
34837
  this.copyCssClasses(classes.error, css.error);
34772
34838
  if (!!css.pageRow) {
@@ -34778,14 +34844,14 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
34778
34844
  if (!!css.row) {
34779
34845
  classes.row = css.row;
34780
34846
  }
34781
- if (!!css.rowFadeIn) {
34782
- classes.rowFadeIn = css.rowFadeIn;
34847
+ if (!!css.rowEnter) {
34848
+ classes.rowEnter = css.rowEnter;
34783
34849
  }
34784
- if (!!css.rowFadeOut) {
34785
- classes.rowFadeOut = css.rowFadeOut;
34850
+ if (!!css.rowLeave) {
34851
+ classes.rowLeave = css.rowLeave;
34786
34852
  }
34787
- if (!!css.rowDelayedFadeIn) {
34788
- classes.rowDelayedFadeIn = css.rowDelayedFadeIn;
34853
+ if (!!css.rowDelayedEnter) {
34854
+ classes.rowDelayedEnter = css.rowDelayedEnter;
34789
34855
  }
34790
34856
  if (!!css.rowMultiple) {
34791
34857
  classes.rowMultiple = css.rowMultiple;
@@ -35793,6 +35859,20 @@ var panel_PanelModelBase = /** @class */ (function (_super) {
35793
35859
  }
35794
35860
  }
35795
35861
  };
35862
+ PanelModelBase.prototype.disableLazyRenderingBeforeElement = function (el) {
35863
+ var row = el ? this.findRowByElement(el) : undefined;
35864
+ var index = el ? this.rows.indexOf(row) : this.rows.length - 1;
35865
+ for (var i = index; i >= 0; i--) {
35866
+ var currentRow = this.rows[i];
35867
+ if (currentRow.isNeedRender) {
35868
+ break;
35869
+ }
35870
+ else {
35871
+ currentRow.isNeedRender = true;
35872
+ currentRow.stopLazyRendering();
35873
+ }
35874
+ }
35875
+ };
35796
35876
  PanelModelBase.prototype.findRowByElement = function (el) {
35797
35877
  var rows = this.rows;
35798
35878
  for (var i = 0; i < rows.length; i++) {
@@ -36281,6 +36361,7 @@ var panel_PanelModel = /** @class */ (function (_super) {
36281
36361
  function PanelModel(name) {
36282
36362
  if (name === void 0) { name = ""; }
36283
36363
  var _this = _super.call(this, name) || this;
36364
+ _this.forcusFirstQuestionOnExpand = true;
36284
36365
  _this.createNewArray("footerActions");
36285
36366
  _this.registerPropertyChangedHandlers(["width"], function () {
36286
36367
  if (!!_this.parent) {
@@ -36698,8 +36779,16 @@ var panel_PanelModel = /** @class */ (function (_super) {
36698
36779
  enumerable: false,
36699
36780
  configurable: true
36700
36781
  });
36782
+ PanelModel.prototype.expand = function (focusFirstQuestion) {
36783
+ if (focusFirstQuestion === void 0) { focusFirstQuestion = true; }
36784
+ this.forcusFirstQuestionOnExpand = focusFirstQuestion;
36785
+ _super.prototype.expand.call(this);
36786
+ };
36701
36787
  PanelModel.prototype.onElementExpanded = function (elementIsRendered) {
36702
36788
  var _this = this;
36789
+ if (!this.forcusFirstQuestionOnExpand) {
36790
+ return;
36791
+ }
36703
36792
  if (this.survey != null && !this.isLoadingFromJson) {
36704
36793
  var q_1 = this.getFirstQuestionToFocus(false);
36705
36794
  if (!!q_1) {
@@ -37204,7 +37293,7 @@ var page_PageModel = /** @class */ (function (_super) {
37204
37293
  configurable: true
37205
37294
  });
37206
37295
  PageModel.prototype.calcCssClasses = function (css) {
37207
- var classes = { page: {}, error: {}, pageTitle: "", pageDescription: "", row: "", rowMultiple: "", pageRow: "", rowCompact: "", rowFadeIn: "", rowFadeOut: "", rowDelayedFadeIn: "" };
37296
+ var classes = { page: {}, error: {}, pageTitle: "", pageDescription: "", row: "", rowMultiple: "", pageRow: "", rowCompact: "", rowEnter: "", rowLeave: "", rowDelayedEnter: "", rowReplace: "" };
37208
37297
  this.copyCssClasses(classes.page, css.page);
37209
37298
  this.copyCssClasses(classes.error, css.error);
37210
37299
  if (!!css.pageTitle) {
@@ -37225,14 +37314,17 @@ var page_PageModel = /** @class */ (function (_super) {
37225
37314
  if (!!css.rowCompact) {
37226
37315
  classes.rowCompact = css.rowCompact;
37227
37316
  }
37228
- if (!!css.rowFadeIn) {
37229
- classes.rowFadeIn = css.rowFadeIn;
37317
+ if (!!css.rowEnter) {
37318
+ classes.rowEnter = css.rowEnter;
37319
+ }
37320
+ if (!!css.rowDelayedEnter) {
37321
+ classes.rowDelayedEnter = css.rowDelayedEnter;
37230
37322
  }
37231
- if (!!css.rowDelayedFadeIn) {
37232
- classes.rowDelayedFadeIn = css.rowDelayedFadeIn;
37323
+ if (!!css.rowLeave) {
37324
+ classes.rowLeave = css.rowLeave;
37233
37325
  }
37234
- if (!!css.rowFadeOut) {
37235
- classes.rowFadeOut = css.rowFadeOut;
37326
+ if (!!css.rowReplace) {
37327
+ classes.rowReplace = css.rowReplace;
37236
37328
  }
37237
37329
  if (this.survey) {
37238
37330
  this.survey.updatePageCssClasses(this, classes);
@@ -39058,6 +39150,16 @@ var survey_SurveyModel = /** @class */ (function (_super) {
39058
39150
  enumerable: false,
39059
39151
  configurable: true
39060
39152
  });
39153
+ SurveyModel.prototype.disableLazyRenderingBeforeElement = function (el) {
39154
+ if (this.isDesignMode) {
39155
+ var page = this.getPageByElement(el);
39156
+ var index = this.pages.indexOf(page);
39157
+ for (var i = index; i >= 0; i--) {
39158
+ var currentPage = this.pages[i];
39159
+ currentPage.disableLazyRenderingBeforeElement(currentPage == page ? el : undefined);
39160
+ }
39161
+ }
39162
+ };
39061
39163
  SurveyModel.prototype.updateLazyRenderingRowsOnRemovingElements = function () {
39062
39164
  if (!this.isLazyRendering)
39063
39165
  return;
@@ -46598,6 +46700,7 @@ var question_baseselect_decorate = (undefined && undefined.__decorate) || functi
46598
46700
 
46599
46701
 
46600
46702
 
46703
+
46601
46704
  /**
46602
46705
  * A base class for multiple-choice question types ([Checkboxes](https://surveyjs.io/form-library/documentation/questioncheckboxmodel), [Dropdown](https://surveyjs.io/form-library/documentation/questiondropdownmodel), [Radio Button Group](https://surveyjs.io/form-library/documentation/questionradiogroupmodel), etc.).
46603
46706
  */
@@ -46611,6 +46714,11 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
46611
46714
  _this.isRunningChoices = false;
46612
46715
  _this.isFirstLoadChoicesFromUrl = true;
46613
46716
  _this.isUpdatingChoicesDependedQuestions = false;
46717
+ _this._renderedChoices = [];
46718
+ _this.renderedChoicesAnimation = new animation_AnimationGroup(_this.getRenderedChoicesAnimationOptions(), function (val) {
46719
+ _this._renderedChoices = val;
46720
+ _this.renderedChoicesChangedCallback && _this.renderedChoicesChangedCallback();
46721
+ }, function () { return _this._renderedChoices; });
46614
46722
  _this.headItemsCount = 0;
46615
46723
  _this.footItemsCount = 0;
46616
46724
  _this.prevIsOtherSelected = false;
@@ -46630,7 +46738,7 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
46630
46738
  _this.registerPropertyChangedHandlers(["hideIfChoicesEmpty"], function () {
46631
46739
  _this.onVisibleChanged();
46632
46740
  });
46633
- _this.createNewArray("visibleChoices");
46741
+ _this.createNewArray("visibleChoices", function () { return _this.updateRenderedChoices(); }, function () { return _this.updateRenderedChoices(); });
46634
46742
  _this.setNewRestfulProperty();
46635
46743
  var locOtherText = _this.createLocalizableString("otherText", _this.otherItemValue, true, "otherItemText");
46636
46744
  _this.createLocalizableString("otherErrorText", _this, true, "otherRequiredError");
@@ -47437,6 +47545,10 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
47437
47545
  var itemValue = itemvalue_ItemValue.getItemByValue(this.getFilteredChoices(), val);
47438
47546
  return !!itemValue && !itemValue.isEnabled;
47439
47547
  };
47548
+ QuestionSelectBase.prototype.endLoadingFromJson = function () {
47549
+ _super.prototype.endLoadingFromJson.call(this);
47550
+ this.updateVisibleChoices();
47551
+ };
47440
47552
  Object.defineProperty(QuestionSelectBase.prototype, "choicesByUrl", {
47441
47553
  /**
47442
47554
  * Configures access to a RESTful service that returns choice items. Refer to the [`ChoicesRestful`](https://surveyjs.io/form-library/documentation/choicesrestful) class description for more information. You can also specify additional application-wide settings using the [`settings.web`](https://surveyjs.io/form-library/documentation/api-reference/settings#web) object.
@@ -47740,6 +47852,7 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
47740
47852
  var oldValue = this.visibleChoices;
47741
47853
  if (!this.isTwoValueEquals(oldValue, newValue) || this.choicesLazyLoadEnabled) {
47742
47854
  this.setArrayPropertyDirectly("visibleChoices", newValue);
47855
+ this.updateRenderedChoices();
47743
47856
  }
47744
47857
  };
47745
47858
  QuestionSelectBase.prototype.calcVisibleChoices = function () {
@@ -48121,9 +48234,9 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48121
48234
  return (!this.isDesignMode ||
48122
48235
  this.getPropertyByName(propName).visible);
48123
48236
  };
48124
- QuestionSelectBase.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
48237
+ QuestionSelectBase.prototype.onCheckForErrors = function (errors, isOnValueChanged, fireCallback) {
48125
48238
  var _this = this;
48126
- _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
48239
+ _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged, fireCallback);
48127
48240
  if (!this.hasOther || !this.isOtherSelected || this.otherValue
48128
48241
  || isOnValueChanged && !this.prevOtherErrorValue)
48129
48242
  return;
@@ -48546,12 +48659,76 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48546
48659
  .append(this.cssClasses.controlLabelChecked, this.isItemSelected(item))
48547
48660
  .toString() || undefined;
48548
48661
  };
48662
+ QuestionSelectBase.prototype.updateRenderedChoices = function () {
48663
+ this.renderedChoices = this.onGetRenderedChoicesCallback ? this.onGetRenderedChoicesCallback(this.visibleChoices) : this.visibleChoices;
48664
+ };
48665
+ QuestionSelectBase.prototype.getRenderedChoicesAnimationOptions = function () {
48666
+ var _this = this;
48667
+ return {
48668
+ isAnimationEnabled: function () {
48669
+ return _this.animationAllowed;
48670
+ },
48671
+ getRerenderEvent: function () {
48672
+ return _this.onElementRerendered;
48673
+ },
48674
+ getKey: function (item) { return item != _this.newItemValue ? item.value : _this.newItemValue; },
48675
+ getLeaveOptions: function (item) {
48676
+ var cssClass = _this.cssClasses.itemLeave;
48677
+ if (_this.hasColumns) {
48678
+ var index = _this.bodyItems.indexOf(item);
48679
+ if (index !== -1 && index !== _this.bodyItems.length - 1) {
48680
+ cssClass = "";
48681
+ }
48682
+ }
48683
+ return {
48684
+ cssClass: cssClass,
48685
+ onBeforeRunAnimation: prepareElementForVerticalAnimation,
48686
+ onAfterRunAnimation: cleanHtmlElementAfterAnimation
48687
+ };
48688
+ },
48689
+ getAnimatedElement: function (item) {
48690
+ return item.getRootElement();
48691
+ },
48692
+ getEnterOptions: function (item) {
48693
+ var cssClass = _this.cssClasses.itemEnter;
48694
+ if (_this.hasColumns) {
48695
+ var index = _this.bodyItems.indexOf(item);
48696
+ if (index !== -1 && index !== _this.bodyItems.length - 1) {
48697
+ cssClass = "";
48698
+ }
48699
+ }
48700
+ return {
48701
+ cssClass: cssClass,
48702
+ onBeforeRunAnimation: function (el) {
48703
+ if (_this.getCurrentColCount() == 0 && _this.bodyItems.indexOf(item) >= 0) {
48704
+ var leftPosition = el.parentElement.firstElementChild.offsetLeft;
48705
+ if (el.offsetLeft > leftPosition) {
48706
+ setPropertiesOnElementForAnimation(el, { moveAnimationDuration: "0s", fadeAnimationDelay: "0s" }, "--");
48707
+ }
48708
+ }
48709
+ prepareElementForVerticalAnimation(el);
48710
+ },
48711
+ onAfterRunAnimation: cleanHtmlElementAfterAnimation
48712
+ };
48713
+ }
48714
+ };
48715
+ };
48716
+ Object.defineProperty(QuestionSelectBase.prototype, "renderedChoices", {
48717
+ get: function () {
48718
+ return this._renderedChoices;
48719
+ },
48720
+ set: function (val) {
48721
+ this.renderedChoicesAnimation.sync(val);
48722
+ },
48723
+ enumerable: false,
48724
+ configurable: true
48725
+ });
48549
48726
  Object.defineProperty(QuestionSelectBase.prototype, "headItems", {
48550
48727
  get: function () {
48551
48728
  var count = (this.separateSpecialChoices || this.isDesignMode) ? this.headItemsCount : 0;
48552
48729
  var res = [];
48553
48730
  for (var i = 0; i < count; i++)
48554
- res.push(this.visibleChoices[i]);
48731
+ this.renderedChoices[i] && res.push(this.renderedChoices[i]);
48555
48732
  return res;
48556
48733
  },
48557
48734
  enumerable: false,
@@ -48561,9 +48738,9 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48561
48738
  get: function () {
48562
48739
  var count = (this.separateSpecialChoices || this.isDesignMode) ? this.footItemsCount : 0;
48563
48740
  var res = [];
48564
- var items = this.visibleChoices;
48741
+ var items = this.renderedChoices;
48565
48742
  for (var i = 0; i < count; i++)
48566
- res.push(items[items.length - count + i]);
48743
+ this.renderedChoices[items.length - count + i] && res.push(this.renderedChoices[items.length - count + i]);
48567
48744
  return res;
48568
48745
  },
48569
48746
  enumerable: false,
@@ -48572,14 +48749,14 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48572
48749
  Object.defineProperty(QuestionSelectBase.prototype, "dataChoices", {
48573
48750
  get: function () {
48574
48751
  var _this = this;
48575
- return this.visibleChoices.filter(function (item) { return !_this.isBuiltInChoice(item); });
48752
+ return this.renderedChoices.filter(function (item) { return !_this.isBuiltInChoice(item); });
48576
48753
  },
48577
48754
  enumerable: false,
48578
48755
  configurable: true
48579
48756
  });
48580
48757
  Object.defineProperty(QuestionSelectBase.prototype, "bodyItems", {
48581
48758
  get: function () {
48582
- return (this.hasHeadItems || this.hasFootItems) ? this.dataChoices : this.visibleChoices;
48759
+ return (this.hasHeadItems || this.hasFootItems) ? this.dataChoices : this.renderedChoices;
48583
48760
  },
48584
48761
  enumerable: false,
48585
48762
  configurable: true
@@ -48602,9 +48779,9 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48602
48779
  get: function () {
48603
48780
  var columns = [];
48604
48781
  var colCount = this.getCurrentColCount();
48605
- if (this.hasColumns && this.visibleChoices.length > 0) {
48782
+ if (this.hasColumns && this.renderedChoices.length > 0) {
48606
48783
  var choicesToBuildColumns = (!this.separateSpecialChoices && !this.isDesignMode) ?
48607
- this.visibleChoices : this.dataChoices;
48784
+ this.renderedChoices : this.dataChoices;
48608
48785
  if (settings.showItemsInOrder == "column") {
48609
48786
  var prevIndex = 0;
48610
48787
  var leftElementsCount = choicesToBuildColumns.length % colCount;
@@ -48800,6 +48977,9 @@ var question_baseselect_QuestionSelectBase = /** @class */ (function (_super) {
48800
48977
  question_baseselect_decorate([
48801
48978
  jsonobject_property({ localizable: true })
48802
48979
  ], QuestionSelectBase.prototype, "otherPlaceholder", void 0);
48980
+ question_baseselect_decorate([
48981
+ propertyArray()
48982
+ ], QuestionSelectBase.prototype, "_renderedChoices", void 0);
48803
48983
  return QuestionSelectBase;
48804
48984
  }(question_Question));
48805
48985
 
@@ -49263,14 +49443,14 @@ var popup_view_model_PopupBaseViewModel = /** @class */ (function (_super) {
49263
49443
  this.model.onHiding();
49264
49444
  };
49265
49445
  PopupBaseViewModel.prototype.getLeaveOptions = function () {
49266
- return { cssClass: "sv-popup--animate-leave", onBeforeRunAnimation: function (el) {
49446
+ return { cssClass: "sv-popup--leave", onBeforeRunAnimation: function (el) {
49267
49447
  el.setAttribute("inert", "");
49268
49448
  },
49269
49449
  onAfterRunAnimation: function (el) { return el.removeAttribute("inert"); }
49270
49450
  };
49271
49451
  };
49272
49452
  PopupBaseViewModel.prototype.getEnterOptions = function () {
49273
- return { cssClass: "sv-popup--animate-enter" };
49453
+ return { cssClass: "sv-popup--enter" };
49274
49454
  };
49275
49455
  PopupBaseViewModel.prototype.getAnimatedElement = function () {
49276
49456
  return this.getAnimationContainer();
@@ -49513,7 +49693,7 @@ var popup_view_model_PopupBaseViewModel = /** @class */ (function (_super) {
49513
49693
  };
49514
49694
  PopupBaseViewModel.prototype.updateOnHiding = function () {
49515
49695
  if (this.isFocusedContent && this.prevActiveElement) {
49516
- this.prevActiveElement.focus();
49696
+ this.prevActiveElement.focus({ preventScroll: true });
49517
49697
  }
49518
49698
  };
49519
49699
  PopupBaseViewModel.prototype.focusContainer = function () {
@@ -51680,11 +51860,11 @@ var question_matrix_QuestionMatrixModel = /** @class */ (function (_super) {
51680
51860
  QuestionMatrixModel.prototype.supportGoNextPageAutomatic = function () {
51681
51861
  return this.isMouseDown === true && this.hasValuesInAllRows();
51682
51862
  };
51683
- QuestionMatrixModel.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
51684
- _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
51863
+ QuestionMatrixModel.prototype.onCheckForErrors = function (errors, isOnValueChanged, fireCallback) {
51864
+ _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged, fireCallback);
51685
51865
  if (!isOnValueChanged || this.hasCssError()) {
51686
51866
  var rowsErrors = { noValue: false, isNotUnique: false };
51687
- this.checkErrorsAllRows(true, rowsErrors);
51867
+ this.checkErrorsAllRows(fireCallback, rowsErrors);
51688
51868
  if (rowsErrors.noValue) {
51689
51869
  errors.push(new RequiredInAllRowsError(null, this));
51690
51870
  }
@@ -52737,9 +52917,9 @@ var question_text_QuestionTextModel = /** @class */ (function (_super) {
52737
52917
  }
52738
52918
  return _super.prototype.valueFromDataCore.call(this, val);
52739
52919
  };
52740
- QuestionTextModel.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
52920
+ QuestionTextModel.prototype.onCheckForErrors = function (errors, isOnValueChanged, fireCallback) {
52741
52921
  var _this = this;
52742
- _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
52922
+ _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged, fireCallback);
52743
52923
  if (isOnValueChanged)
52744
52924
  return;
52745
52925
  if (this.isValueLessMin) {
@@ -52780,7 +52960,8 @@ var question_text_QuestionTextModel = /** @class */ (function (_super) {
52780
52960
  return isValid;
52781
52961
  };
52782
52962
  QuestionTextModel.prototype.convertFuncValuetoQuestionValue = function (val) {
52783
- return helpers_Helpers.convertValToQuestionVal(val, this.inputType);
52963
+ var type = this.maskTypeIsEmpty ? this.inputType : this.maskSettings.getTypeForExpressions();
52964
+ return helpers_Helpers.convertValToQuestionVal(val, type);
52784
52965
  };
52785
52966
  QuestionTextModel.prototype.getMinMaxErrorText = function (errorText, value) {
52786
52967
  if (helpers_Helpers.isValueEmpty(value))
@@ -55145,8 +55326,8 @@ var question_checkbox_QuestionCheckboxModel = /** @class */ (function (_super) {
55145
55326
  return val.map(function (item) { return _this.createItemValue(item); });
55146
55327
  };
55147
55328
  QuestionCheckboxModel.prototype.getAnswerCorrectIgnoreOrder = function () { return true; };
55148
- QuestionCheckboxModel.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
55149
- _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
55329
+ QuestionCheckboxModel.prototype.onCheckForErrors = function (errors, isOnValueChanged, fireCallback) {
55330
+ _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged, fireCallback);
55150
55331
  if (isOnValueChanged)
55151
55332
  return;
55152
55333
  if (this.minSelectedChoices > 0 && this.checkMinSelectedChoicesUnreached()) {
@@ -58066,8 +58247,8 @@ var question_file_QuestionFileModelBase = /** @class */ (function (_super) {
58066
58247
  return;
58067
58248
  this.survey.clearFiles(this, this.name, this.value, null, function () { });
58068
58249
  };
58069
- QuestionFileModelBase.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
58070
- _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
58250
+ QuestionFileModelBase.prototype.onCheckForErrors = function (errors, isOnValueChanged, fireCallback) {
58251
+ _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged, fireCallback);
58071
58252
  if (this.isUploading && this.waitForUpload) {
58072
58253
  errors.push(new UploadingFileError(this.getLocalizationString("uploadingFile"), this));
58073
58254
  }
@@ -61776,21 +61957,10 @@ var question_image_decorate = (undefined && undefined.__decorate) || function (d
61776
61957
 
61777
61958
 
61778
61959
 
61779
- var youtubeDomains = ["www.youtube.com", "m.youtube.com", "youtube.com", "youtu.be"];
61960
+
61780
61961
  var videoSuffics = [".mp4", ".mov", ".wmv", ".flv", ".avi", ".mkv"];
61781
61962
  var youtubeUrl = "https://www.youtube.com/";
61782
61963
  var youtubeEmbed = "embed";
61783
- function isUrlYoutubeVideo(url) {
61784
- if (!url)
61785
- return false;
61786
- url = url.toLowerCase();
61787
- url = url.replace(/^https?:\/\//, "");
61788
- for (var i = 0; i < youtubeDomains.length; i++) {
61789
- if (url.indexOf(youtubeDomains[i] + "/") === 0)
61790
- return true;
61791
- }
61792
- return false;
61793
- }
61794
61964
  /**
61795
61965
  * A class that describes the Image question type. Unlike other question types, Image cannot have a title or value.
61796
61966
  *
@@ -62015,7 +62185,7 @@ var question_image_QuestionImageModel = /** @class */ (function (_super) {
62015
62185
  }
62016
62186
  };
62017
62187
  QuestionImageModel.prototype.isYoutubeVideo = function () {
62018
- return isUrlYoutubeVideo(this.imageLink);
62188
+ return helpers_Helpers.isUrlYoutubeVideo(this.imageLink);
62019
62189
  };
62020
62190
  QuestionImageModel.prototype.isVideo = function () {
62021
62191
  var link = this.imageLink;
@@ -62035,9 +62205,8 @@ var question_image_QuestionImageModel = /** @class */ (function (_super) {
62035
62205
  }(QuestionNonValue));
62036
62206
 
62037
62207
  function getCorrectImageLink(val, isYouTube) {
62038
- if (!val || !isUrlYoutubeVideo(val))
62208
+ if (!val || !helpers_Helpers.isUrlYoutubeVideo(val))
62039
62209
  return isYouTube ? "" : val;
62040
- //if(!val || !isUrlYoutubeVideo(val)) return val;
62041
62210
  var res = val.toLocaleLowerCase();
62042
62211
  if (res.indexOf(youtubeEmbed) > -1)
62043
62212
  return val;
@@ -63530,8 +63699,15 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
63530
63699
  if (!!res)
63531
63700
  return res;
63532
63701
  }
63702
+ if (this.showAddPanelButton && (!withError || this.currentErrorCount > 0))
63703
+ return this;
63533
63704
  return null;
63534
63705
  };
63706
+ QuestionPanelDynamicModel.prototype.getFirstInputElementId = function () {
63707
+ if (this.showAddPanelButton)
63708
+ return this.addButtonId;
63709
+ return _super.prototype.getFirstInputElementId.call(this);
63710
+ };
63535
63711
  QuestionPanelDynamicModel.prototype.setSurveyImpl = function (value, isLight) {
63536
63712
  _super.prototype.setSurveyImpl.call(this, value, isLight);
63537
63713
  this.setTemplatePanelSurveyImpl();
@@ -63981,34 +64157,44 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
63981
64157
  }
63982
64158
  },
63983
64159
  getEnterOptions: function () {
63984
- var cssClass = new CssClassBuilder().append(_this.cssClasses.panelWrapperFadeIn).append(getDirectionCssClass()).toString();
64160
+ var cssClass = new CssClassBuilder().append(_this.cssClasses.panelWrapperEnter).append(getDirectionCssClass()).toString();
63985
64161
  return {
63986
64162
  onBeforeRunAnimation: function (el) {
63987
- var _a;
63988
64163
  if (_this.focusNewPanelCallback) {
63989
64164
  var scolledElement = _this.isRenderModeList ? el : el.parentElement;
63990
64165
  survey_element_SurveyElement.ScrollElementToViewCore(scolledElement, false, false, { behavior: "smooth" });
63991
64166
  }
63992
- if (!_this.isRenderModeList) {
63993
- (_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.style.setProperty("--animation-height-to", el.offsetHeight + "px");
64167
+ if (!_this.isRenderModeList && el.parentElement) {
64168
+ setPropertiesOnElementForAnimation(el.parentElement, { heightTo: el.offsetHeight + "px" });
63994
64169
  }
63995
64170
  else {
63996
- el.style.setProperty("--animation-height", el.offsetHeight + "px");
64171
+ prepareElementForVerticalAnimation(el);
64172
+ }
64173
+ },
64174
+ onAfterRunAnimation: function (el) {
64175
+ cleanHtmlElementAfterAnimation(el);
64176
+ if (el.parentElement) {
64177
+ cleanHtmlElementAfterAnimation(el.parentElement);
63997
64178
  }
63998
64179
  },
63999
64180
  cssClass: cssClass
64000
64181
  };
64001
64182
  },
64002
64183
  getLeaveOptions: function () {
64003
- var cssClass = new CssClassBuilder().append(_this.cssClasses.panelWrapperFadeOut).append(getDirectionCssClass()).toString();
64184
+ var cssClass = new CssClassBuilder().append(_this.cssClasses.panelWrapperLeave).append(getDirectionCssClass()).toString();
64004
64185
  return {
64005
64186
  onBeforeRunAnimation: function (el) {
64006
- var _a;
64007
- if (!_this.isRenderModeList) {
64008
- (_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.style.setProperty("--animation-height-from", el.offsetHeight + "px");
64187
+ if (!_this.isRenderModeList && el.parentElement) {
64188
+ setPropertiesOnElementForAnimation(el.parentElement, { heightFrom: el.offsetHeight + "px" });
64009
64189
  }
64010
64190
  else {
64011
- el.style.setProperty("--animation-height", el.offsetHeight + "px");
64191
+ prepareElementForVerticalAnimation(el);
64192
+ }
64193
+ },
64194
+ onAfterRunAnimation: function (el) {
64195
+ cleanHtmlElementAfterAnimation(el);
64196
+ if (el.parentElement) {
64197
+ cleanHtmlElementAfterAnimation(el.parentElement);
64012
64198
  }
64013
64199
  },
64014
64200
  cssClass: cssClass
@@ -64508,6 +64694,13 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
64508
64694
  enumerable: false,
64509
64695
  configurable: true
64510
64696
  });
64697
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "addButtonId", {
64698
+ get: function () {
64699
+ return this.id + "addPanel";
64700
+ },
64701
+ enumerable: false,
64702
+ configurable: true
64703
+ });
64511
64704
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "newPanelPosition", {
64512
64705
  /**
64513
64706
  * Specifies the position of newly added panels.
@@ -64729,8 +64922,9 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
64729
64922
  return 0;
64730
64923
  var onSurveyNumbering = this.showQuestionNumbers === "onSurvey";
64731
64924
  var startIndex = onSurveyNumbering ? value : 0;
64732
- for (var i = 0; i < this.visiblePanelsCore.length; i++) {
64733
- var counter = this.setPanelVisibleIndex(this.visiblePanelsCore[i], startIndex, this.showQuestionNumbers != "off");
64925
+ var panels = this.isDesignMode ? [this.template] : this.visiblePanelsCore;
64926
+ for (var i = 0; i < panels.length; i++) {
64927
+ var counter = this.setPanelVisibleIndex(panels[i], startIndex, this.showQuestionNumbers != "off");
64734
64928
  if (onSurveyNumbering) {
64735
64929
  startIndex += counter;
64736
64930
  }
@@ -65255,13 +65449,18 @@ var question_paneldynamic_QuestionPanelDynamicModel = /** @class */ (function (_
65255
65449
  }
65256
65450
  }
65257
65451
  this.updateIsReady();
65258
- if (this.isReadOnly || !this.allowAddPanel) {
65452
+ if (!this.showAddPanelButton) {
65259
65453
  this.updateNoEntriesTextDefaultLoc();
65260
65454
  }
65261
65455
  this.updateFooterActions();
65262
65456
  this.isBuildingPanelsFirstTime = false;
65263
65457
  this.releaseAnimations();
65264
65458
  };
65459
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "showAddPanelButton", {
65460
+ get: function () { return this.allowAddPanel && !this.isReadOnly; },
65461
+ enumerable: false,
65462
+ configurable: true
65463
+ });
65265
65464
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "wasNotRenderedInSurvey", {
65266
65465
  get: function () {
65267
65466
  return !this.hasPanelBuildFirstTime && !this.wasRendered && !!this.survey;
@@ -67764,6 +67963,9 @@ var mask_base_InputMaskBase = /** @class */ (function (_super) {
67764
67963
  InputMaskBase.prototype.getUnmaskedValue = function (src) { return src; };
67765
67964
  InputMaskBase.prototype.getMaskedValue = function (src) { return src; };
67766
67965
  InputMaskBase.prototype.getTextAlignment = function () { return "auto"; };
67966
+ InputMaskBase.prototype.getTypeForExpressions = function () {
67967
+ return "text";
67968
+ };
67767
67969
  mask_base_decorate([
67768
67970
  jsonobject_property()
67769
67971
  ], InputMaskBase.prototype, "saveMaskedValue", void 0);
@@ -68487,6 +68689,9 @@ var mask_datetime_InputMaskDateTime = /** @class */ (function (_super) {
68487
68689
  InputMaskDateTime.prototype.getType = function () {
68488
68690
  return "datetimemask";
68489
68691
  };
68692
+ InputMaskDateTime.prototype.getTypeForExpressions = function () {
68693
+ return this.hasTimePart ? "datetime-local" : "datetime";
68694
+ };
68490
68695
  InputMaskDateTime.prototype.updateLiterals = function () {
68491
68696
  this.lexems = getDateTimeLexems(this.pattern || "");
68492
68697
  };
@@ -69129,8 +69334,8 @@ Serializer.addClass("currencymask", [
69129
69334
 
69130
69335
  var Version;
69131
69336
  var ReleaseDate;
69132
- Version = "" + "1.11.14";
69133
- ReleaseDate = "" + "2024-09-04";
69337
+ Version = "" + "1.12.1";
69338
+ ReleaseDate = "" + "2024-09-10";
69134
69339
  function checkLibraryVersion(ver, libraryName) {
69135
69340
  if (Version != ver) {
69136
69341
  var str = "survey-core has version '" + Version + "' and " + libraryName