survey-core 1.9.139 → 1.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/defaultV2.css +372 -53
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +372 -53
  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 +5 -2
  8. package/i18n/arabic.js.map +1 -1
  9. package/i18n/arabic.min.js +2 -2
  10. package/i18n/basque.js +5 -2
  11. package/i18n/basque.js.map +1 -1
  12. package/i18n/basque.min.js +2 -2
  13. package/i18n/bulgarian.js +5 -2
  14. package/i18n/bulgarian.js.map +1 -1
  15. package/i18n/bulgarian.min.js +2 -2
  16. package/i18n/catalan.js +5 -2
  17. package/i18n/catalan.js.map +1 -1
  18. package/i18n/catalan.min.js +2 -2
  19. package/i18n/croatian.js +5 -2
  20. package/i18n/croatian.js.map +1 -1
  21. package/i18n/croatian.min.js +2 -2
  22. package/i18n/czech.js +5 -2
  23. package/i18n/czech.js.map +1 -1
  24. package/i18n/czech.min.js +2 -2
  25. package/i18n/danish.js +5 -2
  26. package/i18n/danish.js.map +1 -1
  27. package/i18n/danish.min.js +2 -2
  28. package/i18n/dutch.js +5 -2
  29. package/i18n/dutch.js.map +1 -1
  30. package/i18n/dutch.min.js +2 -2
  31. package/i18n/english.js +2 -1
  32. package/i18n/english.js.map +1 -1
  33. package/i18n/english.min.js +2 -2
  34. package/i18n/estonian.js +5 -2
  35. package/i18n/estonian.js.map +1 -1
  36. package/i18n/estonian.min.js +2 -2
  37. package/i18n/finnish.js +5 -2
  38. package/i18n/finnish.js.map +1 -1
  39. package/i18n/finnish.min.js +2 -2
  40. package/i18n/french.js +5 -2
  41. package/i18n/french.js.map +1 -1
  42. package/i18n/french.min.js +2 -2
  43. package/i18n/georgian.js +5 -2
  44. package/i18n/georgian.js.map +1 -1
  45. package/i18n/georgian.min.js +2 -2
  46. package/i18n/german.js +9 -22
  47. package/i18n/german.js.map +1 -1
  48. package/i18n/german.min.js +2 -2
  49. package/i18n/greek.js +5 -2
  50. package/i18n/greek.js.map +1 -1
  51. package/i18n/greek.min.js +2 -2
  52. package/i18n/hebrew.js +5 -1
  53. package/i18n/hebrew.js.map +1 -1
  54. package/i18n/hebrew.min.js +2 -2
  55. package/i18n/hindi.js +5 -2
  56. package/i18n/hindi.js.map +1 -1
  57. package/i18n/hindi.min.js +2 -2
  58. package/i18n/hungarian.js +5 -2
  59. package/i18n/hungarian.js.map +1 -1
  60. package/i18n/hungarian.min.js +2 -2
  61. package/i18n/icelandic.js +5 -2
  62. package/i18n/icelandic.js.map +1 -1
  63. package/i18n/icelandic.min.js +2 -2
  64. package/i18n/index.js +193 -67
  65. package/i18n/index.js.map +1 -1
  66. package/i18n/index.min.js +2 -2
  67. package/i18n/indonesian.js +5 -2
  68. package/i18n/indonesian.js.map +1 -1
  69. package/i18n/indonesian.min.js +2 -2
  70. package/i18n/italian.js +5 -2
  71. package/i18n/italian.js.map +1 -1
  72. package/i18n/italian.min.js +2 -2
  73. package/i18n/japanese.js +5 -2
  74. package/i18n/japanese.js.map +1 -1
  75. package/i18n/japanese.min.js +2 -2
  76. package/i18n/kazakh.js +5 -2
  77. package/i18n/kazakh.js.map +1 -1
  78. package/i18n/kazakh.min.js +2 -2
  79. package/i18n/korean.js +5 -2
  80. package/i18n/korean.js.map +1 -1
  81. package/i18n/korean.min.js +2 -2
  82. package/i18n/latvian.js +5 -2
  83. package/i18n/latvian.js.map +1 -1
  84. package/i18n/latvian.min.js +2 -2
  85. package/i18n/lithuanian.js +5 -2
  86. package/i18n/lithuanian.js.map +1 -1
  87. package/i18n/lithuanian.min.js +2 -2
  88. package/i18n/macedonian.js +5 -2
  89. package/i18n/macedonian.js.map +1 -1
  90. package/i18n/macedonian.min.js +2 -2
  91. package/i18n/malay.js +5 -2
  92. package/i18n/malay.js.map +1 -1
  93. package/i18n/malay.min.js +2 -2
  94. package/i18n/nl-BE.js +5 -2
  95. package/i18n/nl-BE.js.map +1 -1
  96. package/i18n/nl-BE.min.js +2 -2
  97. package/i18n/norwegian.js +5 -2
  98. package/i18n/norwegian.js.map +1 -1
  99. package/i18n/norwegian.min.js +2 -2
  100. package/i18n/persian.js +5 -2
  101. package/i18n/persian.js.map +1 -1
  102. package/i18n/persian.min.js +2 -2
  103. package/i18n/polish.js +5 -2
  104. package/i18n/polish.js.map +1 -1
  105. package/i18n/polish.min.js +2 -2
  106. package/i18n/portuguese-br.js +5 -2
  107. package/i18n/portuguese-br.js.map +1 -1
  108. package/i18n/portuguese-br.min.js +2 -2
  109. package/i18n/portuguese.js +5 -2
  110. package/i18n/portuguese.js.map +1 -1
  111. package/i18n/portuguese.min.js +2 -2
  112. package/i18n/romanian.js +5 -2
  113. package/i18n/romanian.js.map +1 -1
  114. package/i18n/romanian.min.js +2 -2
  115. package/i18n/russian.js +5 -2
  116. package/i18n/russian.js.map +1 -1
  117. package/i18n/russian.min.js +2 -2
  118. package/i18n/serbian.js +5 -2
  119. package/i18n/serbian.js.map +1 -1
  120. package/i18n/serbian.min.js +2 -2
  121. package/i18n/simplified-chinese.js +5 -2
  122. package/i18n/simplified-chinese.js.map +1 -1
  123. package/i18n/simplified-chinese.min.js +2 -2
  124. package/i18n/slovak.js +5 -2
  125. package/i18n/slovak.js.map +1 -1
  126. package/i18n/slovak.min.js +2 -2
  127. package/i18n/spanish.js +5 -2
  128. package/i18n/spanish.js.map +1 -1
  129. package/i18n/spanish.min.js +2 -2
  130. package/i18n/swahili.js +5 -2
  131. package/i18n/swahili.js.map +1 -1
  132. package/i18n/swahili.min.js +2 -2
  133. package/i18n/swedish.js +5 -2
  134. package/i18n/swedish.js.map +1 -1
  135. package/i18n/swedish.min.js +2 -2
  136. package/i18n/tajik.js +1 -1
  137. package/i18n/tajik.min.js +1 -1
  138. package/i18n/telugu.js +5 -2
  139. package/i18n/telugu.js.map +1 -1
  140. package/i18n/telugu.min.js +2 -2
  141. package/i18n/thai.js +5 -2
  142. package/i18n/thai.js.map +1 -1
  143. package/i18n/thai.min.js +2 -2
  144. package/i18n/traditional-chinese.js +5 -2
  145. package/i18n/traditional-chinese.js.map +1 -1
  146. package/i18n/traditional-chinese.min.js +2 -2
  147. package/i18n/turkish.js +5 -2
  148. package/i18n/turkish.js.map +1 -1
  149. package/i18n/turkish.min.js +2 -2
  150. package/i18n/ukrainian.js +5 -2
  151. package/i18n/ukrainian.js.map +1 -1
  152. package/i18n/ukrainian.min.js +2 -2
  153. package/i18n/urdu.js +5 -2
  154. package/i18n/urdu.js.map +1 -1
  155. package/i18n/urdu.min.js +2 -2
  156. package/i18n/vietnamese.js +5 -2
  157. package/i18n/vietnamese.js.map +1 -1
  158. package/i18n/vietnamese.min.js +2 -2
  159. package/i18n/welsh.js +5 -2
  160. package/i18n/welsh.js.map +1 -1
  161. package/i18n/welsh.min.js +2 -2
  162. package/modern.css +2 -1
  163. package/modern.css.map +1 -1
  164. package/modern.fontless.css +2 -1
  165. package/modern.fontless.css.map +1 -1
  166. package/modern.fontless.min.css +2 -2
  167. package/modern.min.css +2 -2
  168. package/package.json +1 -1
  169. package/plugins/bootstrap-integration.js +1 -1
  170. package/plugins/bootstrap-integration.min.js +1 -1
  171. package/plugins/bootstrap-material-integration.js +1 -1
  172. package/plugins/bootstrap-material-integration.min.js +1 -1
  173. package/survey.core.js +713 -267
  174. package/survey.core.js.map +1 -1
  175. package/survey.core.min.js +3 -3
  176. package/survey.css +1 -1
  177. package/survey.css.map +1 -1
  178. package/survey.i18n.js +193 -67
  179. package/survey.i18n.js.map +1 -1
  180. package/survey.i18n.min.js +2 -2
  181. package/survey.min.css +1 -1
  182. package/themes/borderless-dark-panelless.js +1 -1
  183. package/themes/borderless-dark-panelless.min.js +1 -1
  184. package/themes/borderless-dark.js +1 -1
  185. package/themes/borderless-dark.min.js +1 -1
  186. package/themes/borderless-light-panelless..js +1 -1
  187. package/themes/borderless-light-panelless..min.js +1 -1
  188. package/themes/borderless-light.js +1 -1
  189. package/themes/borderless-light.min.js +1 -1
  190. package/themes/contrast-dark-panelless.js +1 -1
  191. package/themes/contrast-dark-panelless.min.js +1 -1
  192. package/themes/contrast-dark.js +1 -1
  193. package/themes/contrast-dark.min.js +1 -1
  194. package/themes/contrast-light-panelless.js +1 -1
  195. package/themes/contrast-light-panelless.min.js +1 -1
  196. package/themes/contrast-light.js +1 -1
  197. package/themes/contrast-light.min.js +1 -1
  198. package/themes/default-dark-panelless.js +1 -1
  199. package/themes/default-dark-panelless.min.js +1 -1
  200. package/themes/default-dark.js +1 -1
  201. package/themes/default-dark.min.js +1 -1
  202. package/themes/default-light-panelless.js +1 -1
  203. package/themes/default-light-panelless.min.js +1 -1
  204. package/themes/default-light.js +1 -1
  205. package/themes/default-light.min.js +1 -1
  206. package/themes/doubleborder-dark-panelless.js +1 -1
  207. package/themes/doubleborder-dark-panelless.min.js +1 -1
  208. package/themes/doubleborder-dark.js +1 -1
  209. package/themes/doubleborder-dark.min.js +1 -1
  210. package/themes/doubleborder-light-panelles.js +1 -1
  211. package/themes/doubleborder-light-panelles.min.js +1 -1
  212. package/themes/doubleborder-light.js +1 -1
  213. package/themes/doubleborder-light.min.js +1 -1
  214. package/themes/flat-dark-panelless.js +1 -1
  215. package/themes/flat-dark-panelless.min.js +1 -1
  216. package/themes/flat-dark.js +1 -1
  217. package/themes/flat-dark.min.js +1 -1
  218. package/themes/flat-light-panelless.js +1 -1
  219. package/themes/flat-light-panelless.min.js +1 -1
  220. package/themes/flat-light.js +1 -1
  221. package/themes/flat-light.min.js +1 -1
  222. package/themes/index.js +1 -1
  223. package/themes/index.min.js +1 -1
  224. package/themes/layered-dark-panelless.js +1 -1
  225. package/themes/layered-dark-panelless.min.js +1 -1
  226. package/themes/layered-dark.js +1 -1
  227. package/themes/layered-dark.min.js +1 -1
  228. package/themes/layered-light-panelless.js +1 -1
  229. package/themes/layered-light-panelless.min.js +1 -1
  230. package/themes/layered-light.js +1 -1
  231. package/themes/layered-light.min.js +1 -1
  232. package/themes/plain-dark-panelless.js +1 -1
  233. package/themes/plain-dark-panelless.min.js +1 -1
  234. package/themes/plain-dark.js +1 -1
  235. package/themes/plain-dark.min.js +1 -1
  236. package/themes/plain-light-panelless.js +1 -1
  237. package/themes/plain-light-panelless.min.js +1 -1
  238. package/themes/plain-light.js +1 -1
  239. package/themes/plain-light.min.js +1 -1
  240. package/themes/sharp-dark-panelless.js +1 -1
  241. package/themes/sharp-dark-panelless.min.js +1 -1
  242. package/themes/sharp-dark.js +1 -1
  243. package/themes/sharp-dark.min.js +1 -1
  244. package/themes/sharp-light-panelless.js +1 -1
  245. package/themes/sharp-light-panelless.min.js +1 -1
  246. package/themes/sharp-light.js +1 -1
  247. package/themes/sharp-light.min.js +1 -1
  248. package/themes/solid-dark-panelless.js +1 -1
  249. package/themes/solid-dark-panelless.min.js +1 -1
  250. package/themes/solid-dark.js +1 -1
  251. package/themes/solid-dark.min.js +1 -1
  252. package/themes/solid-light-panelless.js +1 -1
  253. package/themes/solid-light-panelless.min.js +1 -1
  254. package/themes/solid-light.js +1 -1
  255. package/themes/solid-light.min.js +1 -1
  256. package/themes/three-dimensional-dark-panelless.js +1 -1
  257. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  258. package/themes/three-dimensional-dark.js +1 -1
  259. package/themes/three-dimensional-dark.min.js +1 -1
  260. package/themes/three-dimensional-light-panelless.js +1 -1
  261. package/themes/three-dimensional-light-panelless.min.js +1 -1
  262. package/themes/three-dimensional-light.js +1 -1
  263. package/themes/three-dimensional-light.min.js +1 -1
  264. package/ts3.4/typings/base.d.ts +5 -0
  265. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +8 -0
  266. package/ts3.4/typings/dropdownListModel.d.ts +1 -0
  267. package/ts3.4/typings/dxSurveyService.d.ts +5 -1
  268. package/ts3.4/typings/list.d.ts +2 -2
  269. package/ts3.4/typings/localization/english.d.ts +1 -0
  270. package/ts3.4/typings/mask/mask_base.d.ts +1 -0
  271. package/ts3.4/typings/mask/mask_numeric.d.ts +3 -2
  272. package/ts3.4/typings/mask/mask_utils.d.ts +1 -0
  273. package/ts3.4/typings/multiSelectListModel.d.ts +1 -1
  274. package/ts3.4/typings/page.d.ts +0 -2
  275. package/ts3.4/typings/panel.d.ts +3 -0
  276. package/ts3.4/typings/popup-view-model.d.ts +2 -0
  277. package/ts3.4/typings/question.d.ts +1 -0
  278. package/ts3.4/typings/question_checkbox.d.ts +1 -0
  279. package/ts3.4/typings/question_file.d.ts +2 -1
  280. package/ts3.4/typings/question_imagepicker.d.ts +1 -0
  281. package/ts3.4/typings/question_matrix.d.ts +3 -3
  282. package/ts3.4/typings/question_matrixdropdownrendered.d.ts +10 -0
  283. package/ts3.4/typings/question_paneldynamic.d.ts +17 -0
  284. package/ts3.4/typings/question_ranking.d.ts +6 -1
  285. package/ts3.4/typings/question_rating.d.ts +1 -0
  286. package/ts3.4/typings/survey-element.d.ts +4 -3
  287. package/ts3.4/typings/survey.d.ts +1 -0
  288. package/ts3.4/typings/surveyStrings.d.ts +1 -0
  289. package/ts3.4/typings/trigger.d.ts +2 -1
  290. package/ts3.4/typings/utils/animation.d.ts +26 -10
  291. package/typings/base.d.ts +5 -0
  292. package/typings/defaultCss/defaultV2Css.d.ts +8 -0
  293. package/typings/dropdownListModel.d.ts +1 -0
  294. package/typings/dxSurveyService.d.ts +5 -1
  295. package/typings/list.d.ts +2 -2
  296. package/typings/localization/english.d.ts +1 -0
  297. package/typings/mask/mask_base.d.ts +1 -0
  298. package/typings/mask/mask_numeric.d.ts +3 -2
  299. package/typings/mask/mask_utils.d.ts +1 -0
  300. package/typings/multiSelectListModel.d.ts +1 -1
  301. package/typings/page.d.ts +0 -2
  302. package/typings/panel.d.ts +3 -0
  303. package/typings/popup-view-model.d.ts +2 -0
  304. package/typings/question.d.ts +1 -0
  305. package/typings/question_checkbox.d.ts +1 -0
  306. package/typings/question_file.d.ts +3 -1
  307. package/typings/question_imagepicker.d.ts +1 -0
  308. package/typings/question_matrix.d.ts +4 -3
  309. package/typings/question_matrixdropdownrendered.d.ts +11 -0
  310. package/typings/question_paneldynamic.d.ts +16 -0
  311. package/typings/question_ranking.d.ts +6 -1
  312. package/typings/question_rating.d.ts +1 -0
  313. package/typings/survey-element.d.ts +4 -4
  314. package/typings/survey.d.ts +1 -0
  315. package/typings/surveyStrings.d.ts +1 -0
  316. package/typings/trigger.d.ts +2 -1
  317. package/typings/utils/animation.d.ts +18 -10
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.139
2
+ * surveyjs - Survey JavaScript library v1.10.2
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
  */
@@ -742,8 +742,9 @@ function createDropdownActionModelAdvanced(actionOptions, listOptions, popupOpti
742
742
  }
743
743
  listOptions.onSelectionChanged(item);
744
744
  innerPopupModel.toggleVisibility();
745
- }, listOptions.allowSelection, listOptions.selectedItem, listOptions.onFilterStringChangedCallback);
745
+ }, listOptions.allowSelection, listOptions.selectedItem);
746
746
  listModel.locOwner = locOwner;
747
+ listModel.setOnFilterStringChangedCallback(listOptions.onFilterStringChangedCallback);
747
748
  var innerPopupModel = new _popup__WEBPACK_IMPORTED_MODULE_4__["PopupModel"]("sv-list", { model: listModel }, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.verticalPosition, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.horizontalPosition, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.showPointer, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.isModal, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.onCancel, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.onApply, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.onHide, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.onShow, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.cssClass, popupOptions === null || popupOptions === void 0 ? void 0 : popupOptions.title, function () {
748
749
  listModel.dispose();
749
750
  });
@@ -994,9 +995,9 @@ var Action = /** @class */ (function (_super) {
994
995
  //Object.assign(this, item) to support IE11
995
996
  if (!!innerItem) {
996
997
  for (var key in innerItem) {
997
- if (key !== "locTitle") {
998
- _this[key] = innerItem[key];
999
- }
998
+ if (key === "locTitle" || key === "title" && !!_this.locTitle && !!_this.title)
999
+ continue;
1000
+ _this[key] = innerItem[key];
1000
1001
  }
1001
1002
  }
1002
1003
  if (!!_this.locTitleName) {
@@ -1867,6 +1868,7 @@ var Base = /** @class */ (function () {
1867
1868
  */
1868
1869
  this.onItemValuePropertyChanged = this.addEvent();
1869
1870
  this.isCreating = true;
1871
+ this.animationAllowedLock = 0;
1870
1872
  this.bindingsValue = new Bindings(this);
1871
1873
  _jsonobject__WEBPACK_IMPORTED_MODULE_2__["CustomPropertiesCollection"].createProperties(this);
1872
1874
  this.onBaseCreating();
@@ -2241,8 +2243,6 @@ var Base = /** @class */ (function () {
2241
2243
  * @param val A new value for the property.
2242
2244
  */
2243
2245
  Base.prototype.setPropertyValue = function (name, val) {
2244
- if (name) {
2245
- }
2246
2246
  if (!this.isLoadingFromJson) {
2247
2247
  var prop = this.getPropertyByName(name);
2248
2248
  if (!!prop) {
@@ -2787,6 +2787,22 @@ var Base = /** @class */ (function () {
2787
2787
  if (includeHidden === void 0) { includeHidden = false; }
2788
2788
  return [];
2789
2789
  };
2790
+ Object.defineProperty(Base.prototype, "animationAllowed", {
2791
+ get: function () {
2792
+ return this.getIsAnimationAllowed();
2793
+ },
2794
+ enumerable: false,
2795
+ configurable: true
2796
+ });
2797
+ Base.prototype.getIsAnimationAllowed = function () {
2798
+ return _settings__WEBPACK_IMPORTED_MODULE_3__["settings"].animationEnabled && this.animationAllowedLock >= 0 && !this.isLoadingFromJson && !this.isDisposed;
2799
+ };
2800
+ Base.prototype.blockAnimations = function () {
2801
+ this.animationAllowedLock--;
2802
+ };
2803
+ Base.prototype.releaseAnimations = function () {
2804
+ this.animationAllowedLock++;
2805
+ };
2790
2806
  Base.currentDependencis = undefined;
2791
2807
  return Base;
2792
2808
  }());
@@ -5503,7 +5519,11 @@ var defaultV2Css = {
5503
5519
  footer: "sd-paneldynamic__footer",
5504
5520
  panelFooter: "sd-paneldynamic__panel-footer",
5505
5521
  footerButtonsContainer: "sd-paneldynamic__buttons-container",
5522
+ panelsContainer: "sd-paneldynamic__panels-container",
5506
5523
  panelWrapperInRow: "sd-paneldynamic__panel-wrapper--in-row",
5524
+ panelWrapperFadeIn: "sd-paneldynamic__panel-wrapper--fade-in",
5525
+ panelWrapperFadeOut: "sd-paneldynamic__panel-wrapper--fade-out",
5526
+ panelWrapperList: "sd-paneldynamic__panel-wrapper--list",
5507
5527
  progressBtnIcon: "icon-progressbuttonv2",
5508
5528
  noEntriesPlaceholder: "sd-paneldynamic__placeholder sd-question__placeholder",
5509
5529
  compact: "sd-element--with-frame sd-element--compact",
@@ -5890,6 +5910,8 @@ var defaultV2Css = {
5890
5910
  errorsCellBottom: "sd-table__cell--error-bottom",
5891
5911
  itemCell: "sd-table__cell--item",
5892
5912
  row: "sd-table__row",
5913
+ rowFadeIn: "sd-table__row--fade-in",
5914
+ rowFadeOut: "sd-table__row--fade-out",
5893
5915
  expandedRow: "sd-table__row--expanded",
5894
5916
  rowHasPanel: "sd-table__row--has-panel",
5895
5917
  rowHasEndActions: "sd-table__row--has-end-actions",
@@ -5928,6 +5950,8 @@ var defaultV2Css = {
5928
5950
  content: "sd-matrixdynamic__content sd-question__content",
5929
5951
  cell: "sd-table__cell",
5930
5952
  row: "sd-table__row",
5953
+ rowFadeIn: "sd-table__row--fade-in",
5954
+ rowFadeOut: "sd-table__row--fade-out",
5931
5955
  rowHasPanel: "sd-table__row--has-panel",
5932
5956
  rowHasEndActions: "sd-table__row--has-end-actions",
5933
5957
  expandedRow: "sd-table__row--expanded",
@@ -8072,6 +8096,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8072
8096
  _this.showInputFieldComponent = _this.question.showInputFieldComponent;
8073
8097
  _this.listModel = _this.createListModel();
8074
8098
  _this.updateAfterListModelCreated(_this.listModel);
8099
+ _this.setChoicesLazyLoadEnabled(_this.question.choicesLazyLoadEnabled);
8075
8100
  _this.setSearchEnabled(_this.question.searchEnabled);
8076
8101
  _this.setTextWrapEnabled(_this.question.textWrapEnabled);
8077
8102
  _this.createPopup();
@@ -8152,6 +8177,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8152
8177
  }
8153
8178
  if (option.isVisible && _this.question.choicesLazyLoadEnabled) {
8154
8179
  _this.listModel.actions = [];
8180
+ _this.resetItemsSettings();
8155
8181
  _this.updateQuestionChoices();
8156
8182
  }
8157
8183
  if (option.isVisible && !!_this.question.onOpenedCallBack) {
@@ -8222,7 +8248,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8222
8248
  _this.popupModel.isVisible = false;
8223
8249
  };
8224
8250
  }
8225
- var res = new _list__WEBPACK_IMPORTED_MODULE_4__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8251
+ var res = new _list__WEBPACK_IMPORTED_MODULE_4__["ListModel"](visibleItems, _onSelectionChanged, false, undefined, this.listElementId);
8226
8252
  this.setOnTextSearchCallbackForListModel(res);
8227
8253
  res.renderElements = false;
8228
8254
  res.forceShowFilter = true;
@@ -8455,6 +8481,9 @@ var DropdownListModel = /** @class */ (function (_super) {
8455
8481
  this.listModel.showSearchClearButton = _utils_devices__WEBPACK_IMPORTED_MODULE_9__["IsTouch"];
8456
8482
  this.searchEnabled = newValue;
8457
8483
  };
8484
+ DropdownListModel.prototype.setChoicesLazyLoadEnabled = function (newValue) {
8485
+ this.listModel.setOnFilterStringChangedCallback(newValue ? this.listModelFilterStringChanged : undefined);
8486
+ };
8458
8487
  DropdownListModel.prototype.updateItems = function () {
8459
8488
  this.listModel.setItems(this.getAvailableItems());
8460
8489
  };
@@ -8474,9 +8503,6 @@ var DropdownListModel = /** @class */ (function (_super) {
8474
8503
  if (options.name == "value") {
8475
8504
  this.showInputFieldComponent = this.question.showInputFieldComponent;
8476
8505
  }
8477
- if (options.name == "choicesLazyLoadEnabled" && options.newValue) {
8478
- this.listModel.setOnFilterStringChangedCallback(this.listModelFilterStringChanged);
8479
- }
8480
8506
  if (options.name == "textWrapEnabled") {
8481
8507
  this.setTextWrapEnabled(options.newValue);
8482
8508
  }
@@ -8805,7 +8831,7 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8805
8831
  }
8806
8832
  };
8807
8833
  }
8808
- var res = new _multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__["MultiSelectListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8834
+ var res = new _multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__["MultiSelectListModel"](visibleItems, _onSelectionChanged, false, undefined, this.listElementId);
8809
8835
  res.actions.forEach(function (a) { return a.disableTabStop = true; });
8810
8836
  this.setOnTextSearchCallbackForListModel(res);
8811
8837
  res.forceShowFilter = true;
@@ -8954,7 +8980,11 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8954
8980
  __webpack_require__.r(__webpack_exports__);
8955
8981
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dxSurveyService", function() { return dxSurveyService; });
8956
8982
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
8983
+ /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./surveyStrings */ "./src/surveyStrings.ts");
8984
+
8957
8985
 
8986
+ var surveyIOSite = "surveyjs.io";
8987
+ var surveyIOMaxPostSize = 65536;
8958
8988
  /**
8959
8989
  * The class contains methods to work with api.surveyjs.io service.
8960
8990
  */
@@ -8973,7 +9003,7 @@ var dxSurveyService = /** @class */ (function () {
8973
9003
  });
8974
9004
  dxSurveyService.prototype.loadSurvey = function (surveyId, onLoad) {
8975
9005
  var xhr = new XMLHttpRequest();
8976
- xhr.open("GET", dxSurveyService.serviceUrl + "/getSurvey?surveyId=" + surveyId);
9006
+ xhr.open("GET", this.serviceUrl + "/getSurvey?surveyId=" + surveyId);
8977
9007
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
8978
9008
  xhr.onload = function () {
8979
9009
  var result = JSON.parse(xhr.response);
@@ -8983,7 +9013,7 @@ var dxSurveyService = /** @class */ (function () {
8983
9013
  };
8984
9014
  dxSurveyService.prototype.getSurveyJsonAndIsCompleted = function (surveyId, clientId, onLoad) {
8985
9015
  var xhr = new XMLHttpRequest();
8986
- xhr.open("GET", dxSurveyService.serviceUrl +
9016
+ xhr.open("GET", this.serviceUrl +
8987
9017
  "/getSurveyAndIsCompleted?surveyId=" +
8988
9018
  surveyId +
8989
9019
  "&clientId=" +
@@ -8997,11 +9027,34 @@ var dxSurveyService = /** @class */ (function () {
8997
9027
  };
8998
9028
  xhr.send();
8999
9029
  };
9030
+ dxSurveyService.prototype.canSendResult = function (result) {
9031
+ if (!this.isSurveJSIOService)
9032
+ return true;
9033
+ var str = JSON.stringify(result);
9034
+ return str.length < surveyIOMaxPostSize;
9035
+ };
9036
+ Object.defineProperty(dxSurveyService.prototype, "isSurveJSIOService", {
9037
+ get: function () {
9038
+ return this.serviceUrl.indexOf(surveyIOSite) >= 0;
9039
+ },
9040
+ enumerable: false,
9041
+ configurable: true
9042
+ });
9000
9043
  dxSurveyService.prototype.sendResult = function (postId, result, onSendResult, clientId, isPartialCompleted) {
9044
+ if (clientId === void 0) { clientId = null; }
9045
+ if (isPartialCompleted === void 0) { isPartialCompleted = false; }
9046
+ if (!this.canSendResult(result)) {
9047
+ onSendResult(false, _surveyStrings__WEBPACK_IMPORTED_MODULE_1__["surveyLocalization"].getString("savingExceedSize", this.locale), undefined);
9048
+ }
9049
+ else {
9050
+ this.sendResultCore(postId, result, onSendResult, clientId, isPartialCompleted);
9051
+ }
9052
+ };
9053
+ dxSurveyService.prototype.sendResultCore = function (postId, result, onSendResult, clientId, isPartialCompleted) {
9001
9054
  if (clientId === void 0) { clientId = null; }
9002
9055
  if (isPartialCompleted === void 0) { isPartialCompleted = false; }
9003
9056
  var xhr = new XMLHttpRequest();
9004
- xhr.open("POST", dxSurveyService.serviceUrl + "/post/");
9057
+ xhr.open("POST", this.serviceUrl + "/post/");
9005
9058
  xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
9006
9059
  var data = { postId: postId, surveyResult: JSON.stringify(result) };
9007
9060
  if (clientId)
@@ -9009,7 +9062,6 @@ var dxSurveyService = /** @class */ (function () {
9009
9062
  if (isPartialCompleted)
9010
9063
  data["isPartialCompleted"] = true;
9011
9064
  var dataStringify = JSON.stringify(data);
9012
- var self = this;
9013
9065
  xhr.onload = xhr.onerror = function () {
9014
9066
  if (!onSendResult)
9015
9067
  return;
@@ -9024,7 +9076,7 @@ var dxSurveyService = /** @class */ (function () {
9024
9076
  return;
9025
9077
  onSendFile(xhr.status == 200, JSON.parse(xhr.response));
9026
9078
  };
9027
- xhr.open("POST", dxSurveyService.serviceUrl + "/upload/", true);
9079
+ xhr.open("POST", this.serviceUrl + "/upload/", true);
9028
9080
  var formData = new FormData();
9029
9081
  formData.append("file", file);
9030
9082
  formData.append("postId", postId);
@@ -9033,7 +9085,7 @@ var dxSurveyService = /** @class */ (function () {
9033
9085
  dxSurveyService.prototype.getResult = function (resultId, name, onGetResult) {
9034
9086
  var xhr = new XMLHttpRequest();
9035
9087
  var data = "resultId=" + resultId + "&name=" + name;
9036
- xhr.open("GET", dxSurveyService.serviceUrl + "/getResult?" + data);
9088
+ xhr.open("GET", this.serviceUrl + "/getResult?" + data);
9037
9089
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
9038
9090
  var self = this;
9039
9091
  xhr.onload = function () {
@@ -9054,7 +9106,7 @@ var dxSurveyService = /** @class */ (function () {
9054
9106
  dxSurveyService.prototype.isCompleted = function (resultId, clientId, onIsCompleted) {
9055
9107
  var xhr = new XMLHttpRequest();
9056
9108
  var data = "resultId=" + resultId + "&clientId=" + clientId;
9057
- xhr.open("GET", dxSurveyService.serviceUrl + "/isCompleted?" + data);
9109
+ xhr.open("GET", this.serviceUrl + "/isCompleted?" + data);
9058
9110
  xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
9059
9111
  var self = this;
9060
9112
  xhr.onload = function () {
@@ -9066,6 +9118,13 @@ var dxSurveyService = /** @class */ (function () {
9066
9118
  };
9067
9119
  xhr.send();
9068
9120
  };
9121
+ Object.defineProperty(dxSurveyService.prototype, "serviceUrl", {
9122
+ get: function () {
9123
+ return dxSurveyService.serviceUrl || "";
9124
+ },
9125
+ enumerable: false,
9126
+ configurable: true
9127
+ });
9069
9128
  return dxSurveyService;
9070
9129
  }());
9071
9130
 
@@ -9636,8 +9695,8 @@ __webpack_require__.r(__webpack_exports__);
9636
9695
 
9637
9696
  var Version;
9638
9697
  var ReleaseDate;
9639
- Version = "" + "1.9.139";
9640
- ReleaseDate = "" + "2024-04-16";
9698
+ Version = "" + "1.10.2";
9699
+ ReleaseDate = "" + "2024-04-30";
9641
9700
  function checkLibraryVersion(ver, libraryName) {
9642
9701
  if (Version != ver) {
9643
9702
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -9818,7 +9877,7 @@ function checkPrefix(prefix) {
9818
9877
  /*!**************************************!*\
9819
9878
  !*** ./src/entries/core-wo-model.ts ***!
9820
9879
  \**************************************/
9821
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationBoolean, AnimationGroup, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper */
9880
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationProperty, AnimationBoolean, AnimationGroup, AnimationTab, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper */
9822
9881
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9823
9882
 
9824
9883
  "use strict";
@@ -10270,10 +10329,14 @@ __webpack_require__.r(__webpack_exports__);
10270
10329
 
10271
10330
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupUtils", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationGroupUtils"]; });
10272
10331
 
10332
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationProperty", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationProperty"]; });
10333
+
10273
10334
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationBoolean"]; });
10274
10335
 
10275
10336
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationGroup"]; });
10276
10337
 
10338
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationTab", function() { return _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationTab"]; });
10339
+
10277
10340
  /* harmony import */ var _actions_adaptive_container__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../actions/adaptive-container */ "./src/actions/adaptive-container.ts");
10278
10341
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AdaptiveActionContainer", function() { return _actions_adaptive_container__WEBPACK_IMPORTED_MODULE_9__["AdaptiveActionContainer"]; });
10279
10342
 
@@ -10309,7 +10372,7 @@ __webpack_require__.r(__webpack_exports__);
10309
10372
  /*!*****************************!*\
10310
10373
  !*** ./src/entries/core.ts ***!
10311
10374
  \*****************************/
10312
- /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationBoolean, AnimationGroup, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
10375
+ /*! exports provided: Version, ReleaseDate, checkLibraryVersion, setLicenseKey, slk, hasLicense, settings, Helpers, AnswerCountValidator, EmailValidator, NumericValidator, RegexValidator, SurveyValidator, TextValidator, ValidatorResult, ExpressionValidator, ValidatorRunner, ItemValue, Base, Event, EventBase, ArrayChanges, ComputedUpdater, SurveyError, SurveyElementCore, SurveyElement, DragTypeOverMeEnum, CalculatedValue, CustomError, AnswerRequiredError, OneAnswerRequiredError, RequreNumericError, ExceedSizeError, LocalizableString, LocalizableStrings, HtmlConditionItem, UrlConditionItem, ChoicesRestful, ChoicesRestfull, FunctionFactory, registerFunction, ConditionRunner, ExpressionRunner, ExpressionExecutor, Operand, Const, BinaryOperand, Variable, FunctionOperand, ArrayOperand, UnaryOperand, ConditionsParser, ProcessValue, JsonError, JsonIncorrectTypeError, JsonMetadata, JsonMetadataClass, JsonMissingTypeError, JsonMissingTypeErrorBase, JsonObject, JsonObjectProperty, JsonRequiredPropertyError, JsonUnknownPropertyError, Serializer, property, propertyArray, MatrixDropdownCell, MatrixDropdownRowModelBase, QuestionMatrixDropdownModelBase, MatrixDropdownColumn, matrixDropdownColumnTypes, QuestionMatrixDropdownRenderedCell, QuestionMatrixDropdownRenderedRow, QuestionMatrixDropdownRenderedErrorRow, QuestionMatrixDropdownRenderedTable, MatrixDropdownRowModel, QuestionMatrixDropdownModel, MatrixDynamicRowModel, QuestionMatrixDynamicModel, MatrixRowModel, MatrixCells, QuestionMatrixModel, QuestionMatrixBaseModel, MultipleTextItemModel, MultipleTextCell, MultipleTextErrorCell, MutlipleTextErrorRow, MutlipleTextRow, QuestionMultipleTextModel, MultipleTextEditorModel, PanelModel, PanelModelBase, QuestionRowModel, FlowPanelModel, PageModel, DefaultTitleModel, Question, QuestionNonValue, QuestionEmptyModel, QuestionCheckboxBase, QuestionSelectBase, QuestionCheckboxModel, QuestionTagboxModel, QuestionRankingModel, QuestionCommentModel, QuestionDropdownModel, QuestionFactory, ElementFactory, QuestionFileModel, QuestionHtmlModel, QuestionRadiogroupModel, QuestionRatingModel, RenderedRatingItem, QuestionExpressionModel, QuestionTextBase, CharacterCounter, QuestionTextModel, QuestionBooleanModel, QuestionImagePickerModel, ImageItemValue, QuestionImageModel, QuestionSignaturePadModel, QuestionPanelDynamicModel, QuestionPanelDynamicItem, SurveyTimer, SurveyTimerModel, tryFocusPage, createTOCListModel, getTocRootCss, TOCModel, SurveyProgressModel, ProgressButtons, ProgressButtonsResponsivityManager, SurveyModel, SurveyTrigger, SurveyTriggerComplete, SurveyTriggerSetValue, SurveyTriggerVisible, SurveyTriggerCopyValue, SurveyTriggerRunExpression, SurveyTriggerSkip, Trigger, PopupSurveyModel, SurveyWindowModel, TextPreProcessor, Notifier, Cover, CoverCell, dxSurveyService, englishStrings, surveyLocalization, surveyStrings, QuestionCustomWidget, CustomWidgetCollection, QuestionCustomModel, QuestionCompositeModel, ComponentQuestionJSON, ComponentCollection, StylesManager, ListModel, MultiSelectListModel, PopupModel, createDialogOptions, PopupBaseViewModel, PopupDropdownViewModel, PopupModalViewModel, createPopupViewModel, createPopupModalViewModel, DropdownListModel, DropdownMultiSelectListModel, QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue, IsMobile, IsTouch, _setIsTouch, confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, InputMaskBase, InputMaskPattern, InputMaskNumeric, InputMaskDateTime, InputMaskCurrency, CssClassBuilder, surveyCss, defaultV2Css, defaultV2ThemeName, DragDropCore, DragDropChoices, DragDropRankingSelectToRank, defaultStandardCss, modernCss, SvgIconRegistry, SvgRegistry, SvgBundleViewModel, RendererFactory, ResponsivityManager, VerticalResponsivityManager, unwrap, getOriginalEvent, getElement, createDropdownActionModel, createDropdownActionModelAdvanced, getActionDropdownButtonTarget, BaseAction, Action, ActionDropdownViewModel, AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationProperty, AnimationBoolean, AnimationGroup, AnimationTab, AdaptiveActionContainer, defaultActionBarCss, ActionContainer, DragOrClickHelper, Model */
10313
10376
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
10314
10377
 
10315
10378
  "use strict";
@@ -10753,10 +10816,14 @@ __webpack_require__.r(__webpack_exports__);
10753
10816
 
10754
10817
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupUtils", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationGroupUtils"]; });
10755
10818
 
10819
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationProperty", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationProperty"]; });
10820
+
10756
10821
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationBoolean"]; });
10757
10822
 
10758
10823
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationGroup"]; });
10759
10824
 
10825
+ /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AnimationTab", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AnimationTab"]; });
10826
+
10760
10827
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AdaptiveActionContainer", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["AdaptiveActionContainer"]; });
10761
10828
 
10762
10829
  /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultActionBarCss", function() { return _core_wo_model__WEBPACK_IMPORTED_MODULE_0__["defaultActionBarCss"]; });
@@ -20086,11 +20153,10 @@ var defaultListCss = {
20086
20153
  };
20087
20154
  var ListModel = /** @class */ (function (_super) {
20088
20155
  __extends(ListModel, _super);
20089
- function ListModel(items, onSelectionChanged, allowSelection, selectedItem, onFilterStringChangedCallback, elementId) {
20156
+ function ListModel(items, onSelectionChanged, allowSelection, selectedItem, elementId) {
20090
20157
  var _this = _super.call(this) || this;
20091
20158
  _this.onSelectionChanged = onSelectionChanged;
20092
20159
  _this.allowSelection = allowSelection;
20093
- _this.onFilterStringChangedCallback = onFilterStringChangedCallback;
20094
20160
  _this.elementId = elementId;
20095
20161
  _this.onItemClick = function (itemValue) {
20096
20162
  if (_this.isItemDisabled(itemValue)) {
@@ -21140,6 +21206,7 @@ var englishStrings = {
21140
21206
  savingData: "The results are being saved on the server...",
21141
21207
  savingDataError: "An error occurred and we could not save the results.",
21142
21208
  savingDataSuccess: "The results were saved successfully!",
21209
+ savingExceedSize: "Your response exceeds 64KB. Please reduce the size of your file(s) and try again or contact a survey owner.",
21143
21210
  saveAgainButton: "Try again",
21144
21211
  timerMin: "min",
21145
21212
  timerSec: "sec",
@@ -21773,17 +21840,12 @@ var InputMaskBase = /** @class */ (function (_super) {
21773
21840
  });
21774
21841
  return res;
21775
21842
  };
21776
- // public get maskedInputValue(): string {
21777
- // return this.input.value;
21778
- // }
21779
- // public get unmaskedInputValue(): string {
21780
- // return this.getUnmaskedValue(this.input.value, true);
21781
- // }
21782
21843
  InputMaskBase.prototype.processInput = function (args) {
21783
21844
  return { value: args.prevValue, caretPosition: args.selectionEnd, cancelPreventDefault: false };
21784
21845
  };
21785
21846
  InputMaskBase.prototype.getUnmaskedValue = function (src) { return src; };
21786
21847
  InputMaskBase.prototype.getMaskedValue = function (src) { return src; };
21848
+ InputMaskBase.prototype.getTextAlignment = function () { return "auto"; };
21787
21849
  __decorate([
21788
21850
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
21789
21851
  ], InputMaskBase.prototype, "saveMaskedValue", void 0);
@@ -22823,9 +22885,6 @@ var InputMaskNumeric = /** @class */ (function (_super) {
22823
22885
  InputMaskNumeric.prototype.parseNumber = function (src) {
22824
22886
  var result = { integralPart: "", fractionalPart: "", hasDecimalSeparator: false, isNegative: false };
22825
22887
  var input = (src === undefined || src === null) ? "" : src.toString();
22826
- if (typeof src === "number") {
22827
- input = src.toString().replace(".", this.decimalSeparator);
22828
- }
22829
22888
  var minusCharCount = 0;
22830
22889
  for (var inputIndex = 0; inputIndex < input.length; inputIndex++) {
22831
22890
  var currentChar = input[inputIndex];
@@ -22865,8 +22924,7 @@ var InputMaskNumeric = /** @class */ (function (_super) {
22865
22924
  };
22866
22925
  InputMaskNumeric.prototype.getNumberMaskedValue = function (src, matchWholeMask) {
22867
22926
  if (matchWholeMask === void 0) { matchWholeMask = false; }
22868
- var input = (src === undefined || src === null) ? "" : src;
22869
- var parsedNumber = this.parseNumber(input);
22927
+ var parsedNumber = this.parseNumber(src);
22870
22928
  if (!this.validateNumber(parsedNumber, matchWholeMask)) {
22871
22929
  return null;
22872
22930
  }
@@ -22877,8 +22935,13 @@ var InputMaskNumeric = /** @class */ (function (_super) {
22877
22935
  var parsedNumber = this.parseNumber(str);
22878
22936
  return this.convertNumber(parsedNumber);
22879
22937
  };
22938
+ InputMaskNumeric.prototype.getTextAlignment = function () {
22939
+ return "right";
22940
+ };
22880
22941
  InputMaskNumeric.prototype.getMaskedValue = function (src) {
22881
- return this.getNumberMaskedValue(src, true);
22942
+ var input = (src === undefined || src === null) ? "" : src.toString();
22943
+ input = input.replace(".", this.decimalSeparator);
22944
+ return this.getNumberMaskedValue(input, true);
22882
22945
  };
22883
22946
  InputMaskNumeric.prototype.getUnmaskedValue = function (src) {
22884
22947
  return this.getNumberUnmaskedValue(src);
@@ -23209,8 +23272,8 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
23209
23272
 
23210
23273
  var MultiSelectListModel = /** @class */ (function (_super) {
23211
23274
  __extends(MultiSelectListModel, _super);
23212
- function MultiSelectListModel(items, onSelectionChanged, allowSelection, selectedItems, onFilterStringChangedCallback, elementId) {
23213
- var _this = _super.call(this, items, onSelectionChanged, allowSelection, undefined, onFilterStringChangedCallback, elementId) || this;
23275
+ function MultiSelectListModel(items, onSelectionChanged, allowSelection, selectedItems, elementId) {
23276
+ var _this = _super.call(this, items, onSelectionChanged, allowSelection, undefined, elementId) || this;
23214
23277
  _this.onItemClick = function (item) {
23215
23278
  if (_this.isItemDisabled(item))
23216
23279
  return;
@@ -23444,7 +23507,6 @@ var PageModel = /** @class */ (function (_super) {
23444
23507
  return _this.num + ". " + text;
23445
23508
  return text;
23446
23509
  };
23447
- _this.createLocalizableString("navigationTitle", _this, true);
23448
23510
  _this.createLocalizableString("navigationDescription", _this, true);
23449
23511
  _this.dragDropPageHelper = new _drag_drop_page_helper_v1__WEBPACK_IMPORTED_MODULE_3__["DragDropPageHelperV1"](_this);
23450
23512
  return _this;
@@ -23483,13 +23545,6 @@ var PageModel = /** @class */ (function (_super) {
23483
23545
  enumerable: false,
23484
23546
  configurable: true
23485
23547
  });
23486
- Object.defineProperty(PageModel.prototype, "locNavigationTitle", {
23487
- get: function () {
23488
- return this.getLocalizableString("navigationTitle");
23489
- },
23490
- enumerable: false,
23491
- configurable: true
23492
- });
23493
23548
  Object.defineProperty(PageModel.prototype, "navigationDescription", {
23494
23549
  /**
23495
23550
  * Explanatory text displayed under a navigation button in the progress bar. Applies when the [progress bar is visible](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#showProgressBar), `SurveyModel`'s [`progressBarType`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarType) is set to `"pages"`, and [`progressBarShowPageTitles`](https://surveyjs.io/form-library/documentation/surveymodel#progressBarShowPageTitles) is `true`.
@@ -23511,16 +23566,12 @@ var PageModel = /** @class */ (function (_super) {
23511
23566
  configurable: true
23512
23567
  });
23513
23568
  PageModel.prototype.navigationLocStrChanged = function () {
23569
+ if (this.locNavigationTitle.isEmpty) {
23570
+ this.locTitle.strChanged();
23571
+ }
23514
23572
  this.locNavigationTitle.strChanged();
23515
23573
  this.locNavigationDescription.strChanged();
23516
23574
  };
23517
- Object.defineProperty(PageModel.prototype, "renderedNavigationTitle", {
23518
- get: function () {
23519
- return this.locNavigationTitle.renderedHtml || this.title || this.name;
23520
- },
23521
- enumerable: false,
23522
- configurable: true
23523
- });
23524
23575
  Object.defineProperty(PageModel.prototype, "passed", {
23525
23576
  get: function () {
23526
23577
  return this.getPropertyValue("passed", false);
@@ -23962,6 +24013,10 @@ var QuestionRowModel = /** @class */ (function (_super) {
23962
24013
  enumerable: false,
23963
24014
  configurable: true
23964
24015
  });
24016
+ QuestionRowModel.prototype.getIsAnimationAllowed = function () {
24017
+ var _a;
24018
+ return _super.prototype.getIsAnimationAllowed.call(this) && this.visible && ((_a = this.panel) === null || _a === void 0 ? void 0 : _a.animationAllowed);
24019
+ };
23965
24020
  QuestionRowModel.prototype.getVisibleElementsAnimationOptions = function () {
23966
24021
  var _this = this;
23967
24022
  var beforeRunAnimation = function (el) {
@@ -23969,7 +24024,7 @@ var QuestionRowModel = /** @class */ (function (_super) {
23969
24024
  el.style.setProperty("--animation-width", Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["getElementWidth"])(el) + "px");
23970
24025
  };
23971
24026
  return {
23972
- isAnimationEnabled: function () { var _a; return _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].animationEnabled && ((_a = _this.panel) === null || _a === void 0 ? void 0 : _a.animationAllowed) && _this.visible; },
24027
+ isAnimationEnabled: function () { return _this.animationAllowed; },
23973
24028
  getAnimatedElement: function (element) { return element.getWrapperElement(); },
23974
24029
  getLeaveOptions: function (element) {
23975
24030
  var surveyElement = element;
@@ -24118,7 +24173,7 @@ var QuestionRowModel = /** @class */ (function (_super) {
24118
24173
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__["CssClassBuilder"]()
24119
24174
  .append(this.panel.cssClasses.row)
24120
24175
  .append(this.panel.cssClasses.rowCompact, this.panel["isCompact"])
24121
- .append(this.panel.cssClasses.pageRow, this.panel.isPage || (!!this.panel.originalPage))
24176
+ .append(this.panel.cssClasses.pageRow, this.panel.isPage || this.panel.showPanelAsPage)
24122
24177
  .append(this.panel.cssClasses.rowMultiple, this.visibleElements.length > 1)
24123
24178
  .toString();
24124
24179
  };
@@ -24158,6 +24213,9 @@ var PanelModelBase = /** @class */ (function (_super) {
24158
24213
  _this.addExpressionProperty("enableIf", function (obj, res) { _this.readOnly = res === false; });
24159
24214
  _this.addExpressionProperty("requiredIf", function (obj, res) { _this.isRequired = res === true; });
24160
24215
  _this.createLocalizableString("requiredErrorText", _this);
24216
+ _this.createLocalizableString("navigationTitle", _this, true).onGetTextCallback = function (text) {
24217
+ return text || _this.title || _this.name;
24218
+ };
24161
24219
  _this.registerPropertyChangedHandlers(["questionTitleLocation"], function () {
24162
24220
  _this.onVisibleChanged.bind(_this);
24163
24221
  _this.updateElementCss(true);
@@ -24182,7 +24240,7 @@ var PanelModelBase = /** @class */ (function (_super) {
24182
24240
  el.style.setProperty("--animation-height", el.offsetHeight + "px");
24183
24241
  };
24184
24242
  return {
24185
- isAnimationEnabled: function () { return _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].animationEnabled && _this.animationAllowed; },
24243
+ isAnimationEnabled: function () { return _this.animationAllowed; },
24186
24244
  getAnimatedElement: function (row) { return row.getRootElement(); },
24187
24245
  getLeaveOptions: function (_) {
24188
24246
  return { cssClass: _this.cssClasses.rowFadeOut,
@@ -24219,14 +24277,14 @@ var PanelModelBase = /** @class */ (function (_super) {
24219
24277
  return "panelbase";
24220
24278
  };
24221
24279
  PanelModelBase.prototype.setSurveyImpl = function (value, isLight) {
24222
- this.animationAllowed = false;
24280
+ this.blockAnimations();
24223
24281
  _super.prototype.setSurveyImpl.call(this, value, isLight);
24224
24282
  if (this.isDesignMode)
24225
24283
  this.onVisibleChanged();
24226
24284
  for (var i = 0; i < this.elements.length; i++) {
24227
24285
  this.elements[i].setSurveyImpl(value, isLight);
24228
24286
  }
24229
- this.animationAllowed = true;
24287
+ this.releaseAnimations();
24230
24288
  };
24231
24289
  PanelModelBase.prototype.endLoadingFromJson = function () {
24232
24290
  _super.prototype.endLoadingFromJson.call(this);
@@ -24274,9 +24332,22 @@ var PanelModelBase = /** @class */ (function (_super) {
24274
24332
  this.elements[i].locStrsChanged();
24275
24333
  }
24276
24334
  };
24335
+ PanelModelBase.prototype.getMarkdownHtml = function (text, name) {
24336
+ if (name === "navigationTitle" && this.locNavigationTitle.isEmpty) {
24337
+ return this.locTitle.renderedHtml || this.name;
24338
+ }
24339
+ return _super.prototype.getMarkdownHtml.call(this, text, name);
24340
+ };
24341
+ Object.defineProperty(PanelModelBase.prototype, "locNavigationTitle", {
24342
+ get: function () {
24343
+ return this.getLocalizableString("navigationTitle");
24344
+ },
24345
+ enumerable: false,
24346
+ configurable: true
24347
+ });
24277
24348
  Object.defineProperty(PanelModelBase.prototype, "renderedNavigationTitle", {
24278
24349
  get: function () {
24279
- return this.title || this.name;
24350
+ return this.locNavigationTitle.renderedHtml;
24280
24351
  },
24281
24352
  enumerable: false,
24282
24353
  configurable: true
@@ -25041,13 +25112,13 @@ var PanelModelBase = /** @class */ (function (_super) {
25041
25112
  return new QuestionRowModel(this);
25042
25113
  };
25043
25114
  PanelModelBase.prototype.onSurveyLoad = function () {
25044
- this.animationAllowed = false;
25115
+ this.blockAnimations();
25045
25116
  _super.prototype.onSurveyLoad.call(this);
25046
25117
  for (var i = 0; i < this.elements.length; i++) {
25047
25118
  this.elements[i].onSurveyLoad();
25048
25119
  }
25049
25120
  this.onElementVisibilityChanged(this);
25050
- this.animationAllowed = true;
25121
+ this.releaseAnimations();
25051
25122
  };
25052
25123
  PanelModelBase.prototype.onFirstRendering = function () {
25053
25124
  _super.prototype.onFirstRendering.call(this);
@@ -25081,9 +25152,9 @@ var PanelModelBase = /** @class */ (function (_super) {
25081
25152
  PanelModelBase.prototype.onRowsChanged = function () {
25082
25153
  if (this.isLoadingFromJson)
25083
25154
  return;
25084
- this.animationAllowed = false;
25155
+ this.blockAnimations();
25085
25156
  this.setArrayPropertyDirectly("rows", this.buildRows());
25086
- this.animationAllowed = true;
25157
+ this.releaseAnimations();
25087
25158
  };
25088
25159
  PanelModelBase.prototype.blockRowsUpdates = function () {
25089
25160
  this.locCountRowUpdates++;
@@ -26471,6 +26542,7 @@ var PopupDropdownViewModel = /** @class */ (function (_super) {
26471
26542
  this.resizeEventCallback();
26472
26543
  }
26473
26544
  _global_variables_utils__WEBPACK_IMPORTED_MODULE_6__["DomWindowHelper"].addEventListener("scroll", this.scrollEventCallBack);
26545
+ this._isPositionSetValue = true;
26474
26546
  };
26475
26547
  Object.defineProperty(PopupDropdownViewModel.prototype, "shouldCreateResizeCallback", {
26476
26548
  get: function () {
@@ -27211,6 +27283,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
27211
27283
  if (!val) {
27212
27284
  _this.updateOnHiding();
27213
27285
  _this.updateIsVisible(val);
27286
+ _this._isPositionSetValue = false;
27214
27287
  }
27215
27288
  else {
27216
27289
  _this.updateIsVisible(val);
@@ -27221,6 +27294,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
27221
27294
  _this.onModelIsVisibleChangedCallback = function () {
27222
27295
  _this.isVisible = _this.model.isVisible;
27223
27296
  };
27297
+ _this._isPositionSetValue = false;
27224
27298
  _this.model = model;
27225
27299
  _this.locale = _this.model.locale;
27226
27300
  return _this;
@@ -27458,12 +27532,20 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
27458
27532
  this.focusContainer();
27459
27533
  }
27460
27534
  };
27535
+ Object.defineProperty(PopupBaseViewModel.prototype, "isPositionSet", {
27536
+ get: function () {
27537
+ return this._isPositionSetValue;
27538
+ },
27539
+ enumerable: false,
27540
+ configurable: true
27541
+ });
27461
27542
  PopupBaseViewModel.prototype.updateOnShowing = function () {
27462
27543
  this.prevActiveElement = _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].environment.root.activeElement;
27463
27544
  if (this.isOverlay) {
27464
27545
  this.resetDimensionsAndPositionStyleProperties();
27465
27546
  }
27466
27547
  this.switchFocus();
27548
+ this._isPositionSetValue = true;
27467
27549
  };
27468
27550
  PopupBaseViewModel.prototype.updateOnHiding = function () {
27469
27551
  if (this.isFocusedContent && this.prevActiveElement) {
@@ -28636,8 +28718,7 @@ var Question = /** @class */ (function (_super) {
28636
28718
  };
28637
28719
  Question.prototype.runTriggers = function (name, value) {
28638
28720
  var _this = this;
28639
- if (this.isReadOnly || this.isSettingQuestionValue ||
28640
- (this.parentQuestion && this.parentQuestion.getValueName() === name))
28721
+ if (this.isSettingQuestionValue || (this.parentQuestion && this.parentQuestion.getValueName() === name))
28641
28722
  return;
28642
28723
  this.triggersInfo.forEach(function (info) {
28643
28724
  _this.runTriggerInfo(info, name, value);
@@ -29855,6 +29936,7 @@ var Question = /** @class */ (function (_super) {
29855
29936
  configurable: true
29856
29937
  });
29857
29938
  Question.prototype.getFilteredValue = function () { return this.value; };
29939
+ Question.prototype.getFilteredName = function () { return this.getValueName(); };
29858
29940
  Object.defineProperty(Question.prototype, "valueForSurvey", {
29859
29941
  get: function () {
29860
29942
  if (!!this.valueToDataCallback) {
@@ -30457,7 +30539,7 @@ var Question = /** @class */ (function (_super) {
30457
30539
  };
30458
30540
  Question.prototype.addConditionObjectsByContext = function (objects, context) {
30459
30541
  objects.push({
30460
- name: this.getValueName(),
30542
+ name: this.getFilteredName(),
30461
30543
  text: this.processedTitle,
30462
30544
  question: this,
30463
30545
  });
@@ -33499,17 +33581,19 @@ var QuestionSelectBase = /** @class */ (function (_super) {
33499
33581
  .append(this.cssClasses.itemInline, !this.hasColumns && this.colCount === 0)
33500
33582
  .append("sv-q-col-" + this.getCurrentColCount(), !this.hasColumns && this.colCount !== 0)
33501
33583
  .append(this.cssClasses.itemOnError, this.hasCssError());
33502
- var isDisabled = this.isReadOnly || !item.isEnabled;
33584
+ var readOnlyStyles = this.getIsDisableAndReadOnlyStyles(!item.isEnabled);
33585
+ var isReadOnly = readOnlyStyles[0];
33586
+ var isDisabled = readOnlyStyles[1];
33503
33587
  var isChecked = this.isItemSelected(item) ||
33504
33588
  (this.isOtherSelected && this.otherItem.value === item.value);
33505
33589
  var allowHover = !isDisabled && !isChecked && !(!!this.survey && this.survey.isDesignMode);
33506
33590
  var isNone = item === this.noneItem;
33507
- options.isDisabled = isDisabled;
33591
+ options.isDisabled = isDisabled || isReadOnly;
33508
33592
  options.isChecked = isChecked;
33509
33593
  options.isNone = isNone;
33510
33594
  return builder
33511
- .append(this.cssClasses.itemDisabled, this.isDisabledStyle)
33512
- .append(this.cssClasses.itemReadOnly, this.isReadOnlyStyle)
33595
+ .append(this.cssClasses.itemDisabled, isDisabled)
33596
+ .append(this.cssClasses.itemReadOnly, isReadOnly)
33513
33597
  .append(this.cssClasses.itemPreview, this.isPreviewStyle)
33514
33598
  .append(this.cssClasses.itemChecked, isChecked)
33515
33599
  .append(this.cssClasses.itemHover, allowHover)
@@ -35006,6 +35090,13 @@ var QuestionCheckboxModel = /** @class */ (function (_super) {
35006
35090
  enumerable: false,
35007
35091
  configurable: true
35008
35092
  });
35093
+ QuestionCheckboxModel.prototype.getFilteredName = function () {
35094
+ var res = _super.prototype.getFilteredName.call(this);
35095
+ if (this.hasFilteredValue) {
35096
+ res += "-unwrapped";
35097
+ }
35098
+ return res;
35099
+ };
35009
35100
  QuestionCheckboxModel.prototype.getFilteredValue = function () {
35010
35101
  if (this.hasFilteredValue)
35011
35102
  return this.renderedValue;
@@ -37248,7 +37339,13 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
37248
37339
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: "" })
37249
37340
  ], QuestionDropdownModel.prototype, "readOnlyText", void 0);
37250
37341
  __decorate([
37251
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
37342
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({
37343
+ onSet: function (newValue, target) {
37344
+ if (!!target.dropdownListModel) {
37345
+ target.dropdownListModel.setChoicesLazyLoadEnabled(newValue);
37346
+ }
37347
+ }
37348
+ })
37252
37349
  ], QuestionDropdownModel.prototype, "choicesLazyLoadEnabled", void 0);
37253
37350
  __decorate([
37254
37351
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
@@ -38149,6 +38246,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
38149
38246
  }
38150
38247
  };
38151
38248
  _this.createLocalizableString("takePhotoCaption", _this, false, true);
38249
+ _this.createLocalizableString("clearCaption", _this, false, true);
38152
38250
  _this.actionsContainer = new _actions_container__WEBPACK_IMPORTED_MODULE_7__["ActionContainer"]();
38153
38251
  _this.actionsContainer.locOwner = _this;
38154
38252
  _this.fileIndexAction = new _actions_action__WEBPACK_IMPORTED_MODULE_8__["Action"]({
@@ -38225,7 +38323,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
38225
38323
  iconName: "icon-clear",
38226
38324
  id: "sv-file-clean",
38227
38325
  iconSize: "auto",
38228
- title: new _base__WEBPACK_IMPORTED_MODULE_3__["ComputedUpdater"](function () { return _this.clearButtonCaption; }),
38326
+ locTitle: _this.locClearButtonCaption,
38229
38327
  showTitle: false,
38230
38328
  enabledIf: function () { return !_this.isInputReadOnly; },
38231
38329
  innerCss: new _base__WEBPACK_IMPORTED_MODULE_3__["ComputedUpdater"](function () { return _this.cssClasses.removeButton; }),
@@ -38537,6 +38635,23 @@ var QuestionFileModel = /** @class */ (function (_super) {
38537
38635
  enumerable: false,
38538
38636
  configurable: true
38539
38637
  });
38638
+ Object.defineProperty(QuestionFileModel.prototype, "clearButtonCaption", {
38639
+ get: function () {
38640
+ return this.getLocalizableStringText("clearCaption");
38641
+ },
38642
+ set: function (value) {
38643
+ this.setLocalizableStringText("clearCaption", value);
38644
+ },
38645
+ enumerable: false,
38646
+ configurable: true
38647
+ });
38648
+ Object.defineProperty(QuestionFileModel.prototype, "locClearButtonCaption", {
38649
+ get: function () {
38650
+ return this.getLocalizableString("clearCaption");
38651
+ },
38652
+ enumerable: false,
38653
+ configurable: true
38654
+ });
38540
38655
  Object.defineProperty(QuestionFileModel.prototype, "locRenderedPlaceholder", {
38541
38656
  get: function () {
38542
38657
  var _this = this;
@@ -39112,9 +39227,6 @@ var QuestionFileModel = /** @class */ (function (_super) {
39112
39227
  __decorate([
39113
39228
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: { defaultStr: "replaceFileCaption" } })
39114
39229
  ], QuestionFileModel.prototype, "replaceButtonCaption", void 0);
39115
- __decorate([
39116
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: { defaultStr: "clearCaption" } })
39117
- ], QuestionFileModel.prototype, "clearButtonCaption", void 0);
39118
39230
  __decorate([
39119
39231
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: { defaultStr: "removeFileCaption" } })
39120
39232
  ], QuestionFileModel.prototype, "removeFileCaption", void 0);
@@ -40136,6 +40248,9 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
40136
40248
  QuestionImagePickerModel.prototype.needResponsiveness = function () {
40137
40249
  return this.supportResponsiveness() && this.isDefaultV2Theme;
40138
40250
  };
40251
+ QuestionImagePickerModel.prototype.needResponsiveWidth = function () {
40252
+ return this.colCount > 2;
40253
+ };
40139
40254
  QuestionImagePickerModel.prototype.getCurrentColCount = function () {
40140
40255
  if (this.responsiveColCount === undefined || this.colCount === 0) {
40141
40256
  return this.colCount;
@@ -40367,6 +40482,9 @@ var MatrixRowModel = /** @class */ (function (_super) {
40367
40482
  if (_this.data)
40368
40483
  _this.data.onMatrixRowChanged(_this);
40369
40484
  });
40485
+ if (_this.data && _this.data.hasErrorInRow(_this)) {
40486
+ _this.hasError = true;
40487
+ }
40370
40488
  return _this;
40371
40489
  }
40372
40490
  Object.defineProperty(MatrixRowModel.prototype, "name", {
@@ -40417,11 +40535,21 @@ var MatrixRowModel = /** @class */ (function (_super) {
40417
40535
  enumerable: false,
40418
40536
  configurable: true
40419
40537
  });
40538
+ Object.defineProperty(MatrixRowModel.prototype, "hasError", {
40539
+ get: function () {
40540
+ return this.getPropertyValue("hasError", false);
40541
+ },
40542
+ set: function (val) {
40543
+ this.setPropertyValue("hasError", val);
40544
+ },
40545
+ enumerable: false,
40546
+ configurable: true
40547
+ });
40420
40548
  Object.defineProperty(MatrixRowModel.prototype, "rowClasses", {
40421
40549
  get: function () {
40422
40550
  var cssClasses = this.data.cssClasses;
40423
40551
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_11__["CssClassBuilder"]().append(cssClasses.row)
40424
- .append(cssClasses.rowError, this.data.hasErrorInRow(this))
40552
+ .append(cssClasses.rowError, this.hasError)
40425
40553
  .append(cssClasses.rowReadOnly, this.isReadOnly)
40426
40554
  .append(cssClasses.rowDisabled, this.data.isDisabledStyle)
40427
40555
  .toString();
@@ -40747,7 +40875,7 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
40747
40875
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_11__["CssClassBuilder"]()
40748
40876
  .append(css.cell, hasCellText)
40749
40877
  .append(hasCellText ? css.cellText : css.label)
40750
- .append(css.itemOnError, !hasCellText && (this.isAllRowRequired ? this.hasErrorInRow(row) : this.hasCssError()))
40878
+ .append(css.itemOnError, !hasCellText && (this.isAllRowRequired || this.eachRowUnique ? row.hasError : this.hasCssError()))
40751
40879
  .append(hasCellText ? css.cellTextSelected : css.itemChecked, isChecked)
40752
40880
  .append(hasCellText ? css.cellTextDisabled : css.itemDisabled, this.isDisabledStyle)
40753
40881
  .append(hasCellText ? css.cellTextReadOnly : css.itemReadOnly, this.isReadOnlyStyle)
@@ -40877,72 +41005,76 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
40877
41005
  return loc ? loc : this.emptyLocalizableString;
40878
41006
  };
40879
41007
  QuestionMatrixModel.prototype.supportGoNextPageAutomatic = function () {
40880
- return this.isMouseDown === true && this.hasValuesInAllRows(false);
41008
+ return this.isMouseDown === true && this.hasValuesInAllRows();
40881
41009
  };
40882
41010
  QuestionMatrixModel.prototype.onCheckForErrors = function (errors, isOnValueChanged) {
40883
41011
  _super.prototype.onCheckForErrors.call(this, errors, isOnValueChanged);
40884
- this.errorsInRow = undefined;
40885
41012
  if (!isOnValueChanged || this.hasCssError()) {
40886
- if (this.hasErrorAllRowsRequired()) {
41013
+ var rowsErrors = { noValue: false, isNotUnique: false };
41014
+ this.checkErrorsAllRows(true, rowsErrors);
41015
+ if (rowsErrors.noValue) {
40887
41016
  errors.push(new _error__WEBPACK_IMPORTED_MODULE_6__["RequiredInAllRowsError"](null, this));
40888
41017
  }
40889
- if (this.hasErrorEachRowUnique()) {
41018
+ if (rowsErrors.isNotUnique) {
40890
41019
  errors.push(new _error__WEBPACK_IMPORTED_MODULE_6__["EachRowUniqueError"](null, this));
40891
41020
  }
40892
41021
  }
40893
41022
  };
40894
- QuestionMatrixModel.prototype.hasErrorAllRowsRequired = function () {
40895
- return this.isAllRowRequired && !this.hasValuesInAllRows(true);
41023
+ QuestionMatrixModel.prototype.hasValuesInAllRows = function () {
41024
+ var rowsErrors = { noValue: false, isNotUnique: false };
41025
+ this.checkErrorsAllRows(false, rowsErrors, true);
41026
+ return !rowsErrors.noValue;
40896
41027
  };
40897
- QuestionMatrixModel.prototype.hasErrorEachRowUnique = function () {
40898
- return this.eachRowUnique && this.hasNonUniqueValueInRow();
40899
- };
40900
- QuestionMatrixModel.prototype.hasValuesInAllRows = function (addError) {
41028
+ QuestionMatrixModel.prototype.checkErrorsAllRows = function (modifyErrors, res, allRowsRequired) {
41029
+ var _this = this;
40901
41030
  var rows = this.generatedVisibleRows;
40902
41031
  if (!rows)
40903
41032
  rows = this.visibleRows;
40904
41033
  if (!rows)
40905
- return true;
40906
- var res = true;
40907
- for (var i = 0; i < rows.length; i++) {
40908
- var row = rows[i];
40909
- var hasValue = !this.isValueEmpty(row.value);
40910
- if (addError && !hasValue) {
40911
- this.addErrorIntoRow(row);
40912
- }
40913
- res = res && hasValue;
41034
+ return;
41035
+ var rowsRequired = this.isAllRowRequired || allRowsRequired;
41036
+ var rowsUnique = this.eachRowUnique;
41037
+ res.noValue = false;
41038
+ res.isNotUnique = false;
41039
+ if (modifyErrors) {
41040
+ this.errorsInRow = undefined;
40914
41041
  }
40915
- return res;
40916
- };
40917
- QuestionMatrixModel.prototype.hasNonUniqueValueInRow = function () {
40918
- var rows = this.generatedVisibleRows;
40919
- if (!rows)
40920
- rows = this.visibleRows;
40921
- if (!rows)
40922
- return false;
41042
+ if (!rowsRequired && !rowsUnique)
41043
+ return;
40923
41044
  var hash = {};
40924
- var res = true;
40925
41045
  for (var i = 0; i < rows.length; i++) {
40926
41046
  var val = rows[i].value;
40927
41047
  var isEmpty = this.isValueEmpty(val);
40928
- var isUnique = isEmpty || hash[val] !== true;
40929
- if (!isUnique) {
41048
+ var isNotUnique = rowsUnique && (!isEmpty && hash[val] === true);
41049
+ isEmpty = isEmpty && rowsRequired;
41050
+ if (modifyErrors && (isEmpty || isNotUnique)) {
40930
41051
  this.addErrorIntoRow(rows[i]);
40931
41052
  }
40932
- res = res && isUnique;
40933
41053
  if (!isEmpty) {
40934
41054
  hash[val] = true;
40935
41055
  }
41056
+ res.noValue = res.noValue || isEmpty;
41057
+ res.isNotUnique = res.isNotUnique || isNotUnique;
41058
+ }
41059
+ if (modifyErrors) {
41060
+ rows.forEach(function (row) {
41061
+ row.hasError = _this.hasErrorInRow(row);
41062
+ });
40936
41063
  }
40937
- return !res;
40938
41064
  };
40939
41065
  QuestionMatrixModel.prototype.addErrorIntoRow = function (row) {
40940
41066
  if (!this.errorsInRow)
40941
41067
  this.errorsInRow = {};
40942
41068
  this.errorsInRow[row.name] = true;
41069
+ row.hasError = true;
41070
+ };
41071
+ QuestionMatrixModel.prototype.refreshRowsErrors = function () {
41072
+ if (!this.errorsInRow)
41073
+ return;
41074
+ this.checkErrorsAllRows(true, { noValue: false, isNotUnique: false });
40943
41075
  };
40944
41076
  QuestionMatrixModel.prototype.getIsAnswered = function () {
40945
- return _super.prototype.getIsAnswered.call(this) && this.hasValuesInAllRows(false);
41077
+ return _super.prototype.getIsAnswered.call(this) && this.hasValuesInAllRows();
40946
41078
  };
40947
41079
  QuestionMatrixModel.prototype.createMatrixRow = function (item, fullName, value) {
40948
41080
  var row = new MatrixRowModel(item, fullName, this, value);
@@ -40971,6 +41103,7 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
40971
41103
  this.generatedVisibleRows[i].setValueDirectly(rowVal);
40972
41104
  }
40973
41105
  }
41106
+ this.refreshRowsErrors();
40974
41107
  this.updateIsAnswered();
40975
41108
  this.isRowChanging = false;
40976
41109
  };
@@ -45225,6 +45358,7 @@ __webpack_require__.r(__webpack_exports__);
45225
45358
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
45226
45359
  /* harmony import */ var _actions_container__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./actions/container */ "./src/actions/container.ts");
45227
45360
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./settings */ "./src/settings.ts");
45361
+ /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
45228
45362
  var __extends = (undefined && undefined.__extends) || (function () {
45229
45363
  var extendStatics = function (d, b) {
45230
45364
  extendStatics = Object.setPrototypeOf ||
@@ -45259,6 +45393,7 @@ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from
45259
45393
 
45260
45394
 
45261
45395
 
45396
+
45262
45397
  var QuestionMatrixDropdownRenderedCell = /** @class */ (function () {
45263
45398
  function QuestionMatrixDropdownRenderedCell() {
45264
45399
  this.minWidth = "";
@@ -45483,6 +45618,12 @@ var QuestionMatrixDropdownRenderedRow = /** @class */ (function (_super) {
45483
45618
  enumerable: false,
45484
45619
  configurable: true
45485
45620
  });
45621
+ QuestionMatrixDropdownRenderedRow.prototype.setRootElement = function (val) {
45622
+ this.rootElement = val;
45623
+ };
45624
+ QuestionMatrixDropdownRenderedRow.prototype.getRootElement = function () {
45625
+ return this.rootElement;
45626
+ };
45486
45627
  QuestionMatrixDropdownRenderedRow.counter = 1;
45487
45628
  __decorate([
45488
45629
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
@@ -45541,10 +45682,53 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
45541
45682
  var _this = _super.call(this) || this;
45542
45683
  _this.matrix = matrix;
45543
45684
  _this.renderedRowsChangedCallback = function () { };
45685
+ _this._renderedRows = [];
45686
+ _this.renderedRowsAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_8__["AnimationGroup"](_this.getRenderedRowsAnimationOptions(), function (val) {
45687
+ _this._renderedRows = val;
45688
+ _this.renderedRowsChangedCallback();
45689
+ }, function () { return _this._renderedRows; });
45544
45690
  _this.hasActionCellInRowsValues = {};
45545
45691
  _this.build();
45546
45692
  return _this;
45547
45693
  }
45694
+ QuestionMatrixDropdownRenderedTable.prototype.getIsAnimationAllowed = function () {
45695
+ return _super.prototype.getIsAnimationAllowed.call(this) && this.matrix.animationAllowed;
45696
+ };
45697
+ QuestionMatrixDropdownRenderedTable.prototype.getRenderedRowsAnimationOptions = function () {
45698
+ var _this = this;
45699
+ var beforeAnimationRun = function (el) {
45700
+ el.querySelectorAll(":scope > td > *").forEach(function (el) {
45701
+ el.style.setProperty("--animation-height", el.offsetHeight + "px");
45702
+ });
45703
+ };
45704
+ return {
45705
+ isAnimationEnabled: function () {
45706
+ return _this.animationAllowed;
45707
+ },
45708
+ getAnimatedElement: function (el) {
45709
+ return el.getRootElement();
45710
+ },
45711
+ getLeaveOptions: function () {
45712
+ return { cssClass: _this.cssClasses.rowFadeOut, onBeforeRunAnimation: beforeAnimationRun };
45713
+ },
45714
+ getEnterOptions: function () {
45715
+ return { cssClass: _this.cssClasses.rowFadeIn, onBeforeRunAnimation: beforeAnimationRun };
45716
+ }
45717
+ };
45718
+ };
45719
+ QuestionMatrixDropdownRenderedTable.prototype.updateRenderedRows = function () {
45720
+ this.renderedRows = this.rows;
45721
+ };
45722
+ Object.defineProperty(QuestionMatrixDropdownRenderedTable.prototype, "renderedRows", {
45723
+ get: function () {
45724
+ return this._renderedRows;
45725
+ },
45726
+ set: function (val) {
45727
+ this.renderedRowsAnimation.sync(val);
45728
+ },
45729
+ enumerable: false,
45730
+ configurable: true
45731
+ });
45548
45732
  Object.defineProperty(QuestionMatrixDropdownRenderedTable.prototype, "showTable", {
45549
45733
  get: function () {
45550
45734
  return this.getPropertyValue("showTable", true);
@@ -45859,10 +46043,12 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
45859
46043
  }
45860
46044
  };
45861
46045
  QuestionMatrixDropdownRenderedTable.prototype.buildRows = function () {
46046
+ this.blockAnimations();
45862
46047
  var rows = this.matrix.isColumnLayoutHorizontal
45863
46048
  ? this.buildHorizontalRows()
45864
46049
  : this.buildVerticalRows();
45865
46050
  this.rows = rows;
46051
+ this.releaseAnimations();
45866
46052
  };
45867
46053
  QuestionMatrixDropdownRenderedTable.prototype.hasActionCellInRows = function (location) {
45868
46054
  if (this.hasActionCellInRowsValues[location] === undefined) {
@@ -46380,9 +46566,16 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
46380
46566
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["propertyArray"])({
46381
46567
  onPush: function (_, i, target) {
46382
46568
  target.renderedRowsChangedCallback();
46569
+ target.updateRenderedRows();
46383
46570
  },
46571
+ onRemove: function (_, i, target) {
46572
+ target.updateRenderedRows();
46573
+ }
46384
46574
  })
46385
46575
  ], QuestionMatrixDropdownRenderedTable.prototype, "rows", void 0);
46576
+ __decorate([
46577
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["propertyArray"])()
46578
+ ], QuestionMatrixDropdownRenderedTable.prototype, "_renderedRows", void 0);
46386
46579
  return QuestionMatrixDropdownRenderedTable;
46387
46580
  }(_base__WEBPACK_IMPORTED_MODULE_1__["Base"]));
46388
46581
 
@@ -48780,6 +48973,7 @@ __webpack_require__.r(__webpack_exports__);
48780
48973
  /* harmony import */ var _actions_action__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./actions/action */ "./src/actions/action.ts");
48781
48974
  /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./base */ "./src/base.ts");
48782
48975
  /* harmony import */ var _actions_adaptive_container__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./actions/adaptive-container */ "./src/actions/adaptive-container.ts");
48976
+ /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
48783
48977
  var __extends = (undefined && undefined.__extends) || (function () {
48784
48978
  var extendStatics = function (d, b) {
48785
48979
  extendStatics = Object.setPrototypeOf ||
@@ -48820,6 +49014,7 @@ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from
48820
49014
 
48821
49015
 
48822
49016
 
49017
+
48823
49018
  var QuestionPanelDynamicItemTextProcessor = /** @class */ (function (_super) {
48824
49019
  __extends(QuestionPanelDynamicItemTextProcessor, _super);
48825
49020
  function QuestionPanelDynamicItemTextProcessor(data, panelItem, variableName) {
@@ -49043,6 +49238,8 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49043
49238
  __extends(QuestionPanelDynamicModel, _super);
49044
49239
  function QuestionPanelDynamicModel(name) {
49045
49240
  var _this = _super.call(this, name) || this;
49241
+ _this._renderedPanels = [];
49242
+ _this.isPanelsAnimationRunning = false;
49046
49243
  _this.isAddingNewPanels = false;
49047
49244
  _this.isSetPanelItemData = {};
49048
49245
  _this.createNewArray("panels", function (panel) { _this.onPanelAdded(panel); }, function (panel) { _this.onPanelRemoved(panel); });
@@ -49368,6 +49565,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49368
49565
  if (!this.currentPanel) {
49369
49566
  this.currentPanel = panel;
49370
49567
  }
49568
+ this.updateRenderedPanels();
49371
49569
  };
49372
49570
  QuestionPanelDynamicModel.prototype.onPanelRemoved = function (panel) {
49373
49571
  var index = this.onPanelRemovedCore(panel);
@@ -49377,6 +49575,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49377
49575
  index = visPanels.length - 1;
49378
49576
  this.currentPanel = index >= 0 ? visPanels[index] : null;
49379
49577
  }
49578
+ this.updateRenderedPanels();
49380
49579
  };
49381
49580
  QuestionPanelDynamicModel.prototype.onPanelRemovedCore = function (panel) {
49382
49581
  var visPanels = this.visiblePanelsCore;
@@ -49447,6 +49646,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49447
49646
  curPanel.onHidingContent();
49448
49647
  }
49449
49648
  this.setPropertyValue("currentPanel", val);
49649
+ this.updateRenderedPanels();
49450
49650
  this.updateFooterActions();
49451
49651
  this.updateTabToolbarItemsPressedState();
49452
49652
  this.fireCallback(this.currentIndexChangedCallback);
@@ -49461,6 +49661,123 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49461
49661
  enumerable: false,
49462
49662
  configurable: true
49463
49663
  });
49664
+ QuestionPanelDynamicModel.prototype.updateRenderedPanels = function () {
49665
+ if (this.isRenderModeList) {
49666
+ this.renderedPanels = [].concat(this.visiblePanels);
49667
+ }
49668
+ else if (this.currentPanel) {
49669
+ this.renderedPanels = [this.currentPanel];
49670
+ }
49671
+ else {
49672
+ this.renderedPanels = [];
49673
+ }
49674
+ };
49675
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "renderedPanels", {
49676
+ get: function () {
49677
+ return this._renderedPanels;
49678
+ },
49679
+ set: function (val) {
49680
+ if (this.renderedPanels.length == 0 || val.length == 0) {
49681
+ this.blockAnimations();
49682
+ this.panelsAnimation.sync(val);
49683
+ this.releaseAnimations();
49684
+ }
49685
+ else {
49686
+ this.isPanelsAnimationRunning = true;
49687
+ this.panelsAnimation.sync(val);
49688
+ }
49689
+ },
49690
+ enumerable: false,
49691
+ configurable: true
49692
+ });
49693
+ QuestionPanelDynamicModel.prototype.getPanelsAnimationOptions = function () {
49694
+ var _this = this;
49695
+ var getDirection = function () {
49696
+ if (_this.isRenderModeList)
49697
+ return "";
49698
+ var leavingPanel = _this.renderedPanels.filter(function (el) { return el !== _this.currentPanel; })[0];
49699
+ var leavingPanelIndex = _this.visiblePanels.indexOf(leavingPanel);
49700
+ if (leavingPanelIndex < 0)
49701
+ leavingPanelIndex = _this.removedPanelIndex;
49702
+ return leavingPanelIndex > _this.currentIndex ? "-right" : "-left";
49703
+ };
49704
+ return {
49705
+ getAnimatedElement: function (panel) {
49706
+ var _a, _b;
49707
+ if (panel && _this.cssContent) {
49708
+ var contentSelector = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_9__["classesToSelector"])(_this.cssContent);
49709
+ return (_b = (_a = _this.getWrapperElement()) === null || _a === void 0 ? void 0 : _a.querySelector(":scope " + contentSelector + " #" + panel.id)) === null || _b === void 0 ? void 0 : _b.parentElement;
49710
+ }
49711
+ },
49712
+ getEnterOptions: function () {
49713
+ var cssClass = _this.cssClasses.panelWrapperFadeIn ? "" + _this.cssClasses.panelWrapperFadeIn + getDirection() : "";
49714
+ return {
49715
+ onBeforeRunAnimation: function (el) {
49716
+ var _a;
49717
+ if (_this.focusNewPanelCallback) {
49718
+ var scolledElement = _this.isRenderModeList ? el : el.parentElement;
49719
+ _survey_element__WEBPACK_IMPORTED_MODULE_1__["SurveyElement"].ScrollElementToViewCore(scolledElement, false, false, { behavior: "smooth" });
49720
+ }
49721
+ if (!_this.isRenderModeList) {
49722
+ (_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.style.setProperty("--animation-height-to", el.offsetHeight + "px");
49723
+ }
49724
+ else {
49725
+ el.style.setProperty("--animation-height", el.offsetHeight + "px");
49726
+ }
49727
+ },
49728
+ cssClass: cssClass
49729
+ };
49730
+ },
49731
+ getLeaveOptions: function () {
49732
+ var cssClass = _this.cssClasses.panelWrapperFadeOut ? "" + _this.cssClasses.panelWrapperFadeOut + getDirection() : "";
49733
+ return {
49734
+ onBeforeRunAnimation: function (el) {
49735
+ var _a;
49736
+ if (!_this.isRenderModeList) {
49737
+ (_a = el.parentElement) === null || _a === void 0 ? void 0 : _a.style.setProperty("--animation-height-from", el.offsetHeight + "px");
49738
+ }
49739
+ else {
49740
+ el.style.setProperty("--animation-height", el.offsetHeight + "px");
49741
+ }
49742
+ },
49743
+ cssClass: cssClass
49744
+ };
49745
+ },
49746
+ isAnimationEnabled: function () {
49747
+ return _this.animationAllowed && !!_this.getWrapperElement();
49748
+ },
49749
+ };
49750
+ };
49751
+ QuestionPanelDynamicModel.prototype.disablePanelsAnimations = function () {
49752
+ this.panelsCore.forEach(function (panel) {
49753
+ panel.blockAnimations();
49754
+ });
49755
+ };
49756
+ QuestionPanelDynamicModel.prototype.enablePanelsAnimations = function () {
49757
+ this.panelsCore.forEach(function (panel) {
49758
+ panel.releaseAnimations();
49759
+ });
49760
+ };
49761
+ QuestionPanelDynamicModel.prototype.updatePanelsAnimation = function () {
49762
+ var _this = this;
49763
+ this._panelsAnimations = new (this.isRenderModeList ? _utils_animation__WEBPACK_IMPORTED_MODULE_14__["AnimationGroup"] : _utils_animation__WEBPACK_IMPORTED_MODULE_14__["AnimationTab"])(this.getPanelsAnimationOptions(), function (val, isTempUpdate) {
49764
+ _this._renderedPanels = val;
49765
+ if (!isTempUpdate) {
49766
+ _this.isPanelsAnimationRunning = false;
49767
+ _this.focusNewPanel();
49768
+ }
49769
+ }, function () { return _this._renderedPanels; });
49770
+ };
49771
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "panelsAnimation", {
49772
+ get: function () {
49773
+ if (!this._panelsAnimations) {
49774
+ this.updatePanelsAnimation();
49775
+ }
49776
+ return this._panelsAnimations;
49777
+ },
49778
+ enumerable: false,
49779
+ configurable: true
49780
+ });
49464
49781
  QuestionPanelDynamicModel.prototype.onHidingContent = function () {
49465
49782
  _super.prototype.onHidingContent.call(this);
49466
49783
  if (this.currentPanel) {
@@ -49775,11 +50092,13 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49775
50092
  if (val < this.panelCount) {
49776
50093
  this.panelsCore.splice(val, this.panelCount - val);
49777
50094
  }
50095
+ this.disablePanelsAnimations();
49778
50096
  this.setValueAfterPanelsCreating();
49779
50097
  this.setValueBasedOnPanelCount();
49780
50098
  this.reRunCondition();
49781
50099
  this.updateFooterActions();
49782
50100
  this.fireCallback(this.panelCountChangedCallback);
50101
+ this.enablePanelsAnimations();
49783
50102
  },
49784
50103
  enumerable: false,
49785
50104
  configurable: true
@@ -50074,6 +50393,10 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50074
50393
  set: function (val) {
50075
50394
  this.setPropertyValue("renderMode", val);
50076
50395
  this.fireCallback(this.renderModeChangedCallback);
50396
+ this.blockAnimations();
50397
+ this.updateRenderedPanels();
50398
+ this.releaseAnimations();
50399
+ this.updatePanelsAnimation();
50077
50400
  },
50078
50401
  enumerable: false,
50079
50402
  configurable: true
@@ -50307,9 +50630,20 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50307
50630
  if (this.renderMode === "list" && this.panelsState !== "default") {
50308
50631
  newPanel.expand();
50309
50632
  }
50310
- newPanel.focusFirstQuestion();
50633
+ this.focusNewPanelCallback = function () {
50634
+ newPanel.focusFirstQuestion();
50635
+ };
50636
+ if (!this.isPanelsAnimationRunning) {
50637
+ this.focusNewPanel();
50638
+ }
50311
50639
  return newPanel;
50312
50640
  };
50641
+ QuestionPanelDynamicModel.prototype.focusNewPanel = function () {
50642
+ if (this.focusNewPanelCallback) {
50643
+ this.focusNewPanelCallback();
50644
+ this.focusNewPanelCallback = undefined;
50645
+ }
50646
+ };
50313
50647
  /**
50314
50648
  * Adds a new panel based on the [template](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#template).
50315
50649
  * @param index *(Optional)* An index at which to insert the new panel. `undefined` adds the panel to the end or inserts it after the current panel if [`renderMode`](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#renderMode) is `"tab"`. A negative index (for instance, -1) adds the panel to the end in all cases, regardless of the `renderMode` value.
@@ -50418,16 +50752,11 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50418
50752
  return;
50419
50753
  this.currentIndex--;
50420
50754
  };
50421
- /**
50422
- * Removes a dynamic panel from the panels array.
50423
- * @param value a panel or panel index
50424
- * @see panels
50425
- * @see template
50426
- */
50427
50755
  QuestionPanelDynamicModel.prototype.removePanel = function (value) {
50428
50756
  var visIndex = this.getVisualPanelIndex(value);
50429
50757
  if (visIndex < 0 || visIndex >= this.visiblePanelCount)
50430
50758
  return;
50759
+ this.removedPanelIndex = visIndex;
50431
50760
  var panel = this.visiblePanelsCore[visIndex];
50432
50761
  var index = this.panelsCore.indexOf(panel);
50433
50762
  if (index < 0)
@@ -50540,11 +50869,16 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50540
50869
  var prefixName = this.getValueName() + indexStr;
50541
50870
  var prefixText = this.processedTitle + indexStr;
50542
50871
  for (var i = 0; i < panelObjs.length; i++) {
50543
- objects.push({
50544
- name: prefixName + panelObjs[i].name,
50545
- text: prefixText + panelObjs[i].text,
50546
- question: panelObjs[i].question,
50547
- });
50872
+ if (!!panelObjs[i].context) {
50873
+ objects.push(panelObjs[i]);
50874
+ }
50875
+ else {
50876
+ objects.push({
50877
+ name: prefixName + panelObjs[i].name,
50878
+ text: prefixText + panelObjs[i].text,
50879
+ question: panelObjs[i].question,
50880
+ });
50881
+ }
50548
50882
  }
50549
50883
  }
50550
50884
  if (hasContext) {
@@ -50558,9 +50892,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50558
50892
  text: prefixText + QuestionPanelDynamicItem.ItemVariableName + "." + panelObjs[i].text,
50559
50893
  question: panelObjs[i].question
50560
50894
  };
50561
- if (context === true) {
50562
- obj.context = this;
50563
- }
50895
+ obj.context = this;
50564
50896
  objects.push(obj);
50565
50897
  }
50566
50898
  }
@@ -50618,6 +50950,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50618
50950
  return;
50619
50951
  if (!force && this.wasNotRenderedInSurvey)
50620
50952
  return;
50953
+ this.blockAnimations();
50621
50954
  this.hasPanelBuildFirstTime = true;
50622
50955
  this.isBuildingPanelsFirstTime = true;
50623
50956
  if (this.getPropertyValue("panelCount") > 0) {
@@ -50640,6 +50973,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50640
50973
  }
50641
50974
  this.updateFooterActions();
50642
50975
  this.isBuildingPanelsFirstTime = false;
50976
+ this.releaseAnimations();
50643
50977
  };
50644
50978
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "wasNotRenderedInSurvey", {
50645
50979
  get: function () {
@@ -51185,7 +51519,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
51185
51519
  };
51186
51520
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "cssHeader", {
51187
51521
  get: function () {
51188
- var showTab = this.isRenderModeTab && !!this.panelCount;
51522
+ var showTab = this.isRenderModeTab && !!this.visiblePanelCount;
51189
51523
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__["CssClassBuilder"]()
51190
51524
  .append(this.cssClasses.header)
51191
51525
  .append(this.cssClasses.headerTop, this.hasTitleOnTop || showTab)
@@ -51198,6 +51532,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
51198
51532
  QuestionPanelDynamicModel.prototype.getPanelWrapperCss = function (panel) {
51199
51533
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__["CssClassBuilder"]()
51200
51534
  .append(this.cssClasses.panelWrapper, !panel || panel.visible)
51535
+ .append(this.cssClasses.panelWrapperList, this.isRenderModeList)
51201
51536
  .append(this.cssClasses.panelWrapperInRow, this.panelRemoveButtonLocation === "right")
51202
51537
  .toString();
51203
51538
  };
@@ -51256,6 +51591,13 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
51256
51591
  return true;
51257
51592
  return false;
51258
51593
  };
51594
+ Object.defineProperty(QuestionPanelDynamicModel.prototype, "hasAdditionalTitleToolbar", {
51595
+ get: function () {
51596
+ return this.isRenderModeTab && this.visiblePanels.length > 0;
51597
+ },
51598
+ enumerable: false,
51599
+ configurable: true
51600
+ });
51259
51601
  QuestionPanelDynamicModel.prototype.getAdditionalTitleToolbar = function () {
51260
51602
  if (!this.isRenderModeTab)
51261
51603
  return null;
@@ -51444,7 +51786,7 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
51444
51786
  configurable: true
51445
51787
  });
51446
51788
  QuestionPanelDynamicModel.prototype.showSeparator = function (index) {
51447
- return this.isRenderModeList && index < this.visiblePanelCount - 1;
51789
+ return this.isRenderModeList && index < this.renderedPanels.length - 1;
51448
51790
  };
51449
51791
  QuestionPanelDynamicModel.prototype.calcCssClasses = function (css) {
51450
51792
  var classes = _super.prototype.calcCssClasses.call(this, css);
@@ -51458,6 +51800,9 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
51458
51800
  return classes;
51459
51801
  };
51460
51802
  QuestionPanelDynamicModel.maxCheckCount = 3;
51803
+ __decorate([
51804
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_5__["propertyArray"])({})
51805
+ ], QuestionPanelDynamicModel.prototype, "_renderedPanels", void 0);
51461
51806
  __decorate([
51462
51807
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_5__["property"])({ defaultValue: false, onSet: function (_, target) { target.updateFooterActions(); } })
51463
51808
  ], QuestionPanelDynamicModel.prototype, "legacyNavigation", void 0);
@@ -51757,6 +52102,7 @@ __webpack_require__.r(__webpack_exports__);
51757
52102
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./helpers */ "./src/helpers.ts");
51758
52103
  /* harmony import */ var _src_settings__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../src/settings */ "./src/settings.ts");
51759
52104
  /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
52105
+ /* harmony import */ var _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utils/dragOrClickHelper */ "./src/utils/dragOrClickHelper.ts");
51760
52106
  var __extends = (undefined && undefined.__extends) || (function () {
51761
52107
  var extendStatics = function (d, b) {
51762
52108
  extendStatics = Object.setPrototypeOf ||
@@ -51789,6 +52135,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
51789
52135
 
51790
52136
 
51791
52137
 
52138
+
51792
52139
  /**
51793
52140
  * A class that describes the Ranking question type.
51794
52141
  *
@@ -51842,7 +52189,19 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51842
52189
  if (_this.allowStartDrag &&
51843
52190
  _this.canStartDragDueMaxSelectedChoices(target) &&
51844
52191
  _this.canStartDragDueItemEnabled(choice)) {
51845
- _this.dragDropRankingChoices.startDrag(event, choice, _this, node);
52192
+ _this.draggedChoise = choice;
52193
+ _this.draggedTargetNode = node;
52194
+ _this.dragOrClickHelper.onPointerDown(event);
52195
+ }
52196
+ };
52197
+ _this.startDrag = function (event) {
52198
+ _this.dragDropRankingChoices.startDrag(event, _this.draggedChoise, _this, _this.draggedTargetNode);
52199
+ };
52200
+ _this.handlePointerUp = function (event, choice, node) {
52201
+ if (!_this.selectToRankEnabled)
52202
+ return;
52203
+ if (_this.allowStartDrag) {
52204
+ _this.handleKeydownSelectToRank(event, choice, " ", false);
51846
52205
  }
51847
52206
  };
51848
52207
  _this.handleKeydown = function (event, choice) {
@@ -51902,6 +52261,7 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51902
52261
  _this.setDragDropRankingChoices();
51903
52262
  _this.updateRankingChoicesSync();
51904
52263
  });
52264
+ _this.dragOrClickHelper = new _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_11__["DragOrClickHelper"](_this.startDrag);
51905
52265
  return _this;
51906
52266
  }
51907
52267
  QuestionRankingModel.prototype.getDefaultItemComponent = function () {
@@ -51939,7 +52299,10 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51939
52299
  configurable: true
51940
52300
  });
51941
52301
  QuestionRankingModel.prototype.isItemSelectedCore = function (item) {
51942
- return false;
52302
+ if (this.selectToRankEnabled) {
52303
+ return _super.prototype.isItemSelectedCore.call(this, item);
52304
+ }
52305
+ return true;
51943
52306
  };
51944
52307
  QuestionRankingModel.prototype.getItemClassCore = function (item, options) {
51945
52308
  var itemIndex = this.rankingChoices.indexOf(item);
@@ -52001,9 +52364,9 @@ var QuestionRankingModel = /** @class */ (function (_super) {
52001
52364
  return this.isEmpty() ? "" : index + 1 + "";
52002
52365
  };
52003
52366
  QuestionRankingModel.prototype.updateRankingChoicesSync = function () {
52004
- this.animationAllowed = false;
52367
+ this.blockAnimations();
52005
52368
  this.updateRankingChoices();
52006
- this.animationAllowed = true;
52369
+ this.releaseAnimations();
52007
52370
  };
52008
52371
  QuestionRankingModel.prototype.setSurveyImpl = function (value, isLight) {
52009
52372
  _super.prototype.setSurveyImpl.call(this, value, isLight);
@@ -52046,7 +52409,7 @@ var QuestionRankingModel = /** @class */ (function (_super) {
52046
52409
  QuestionRankingModel.prototype.getChoicesAnimation = function (isRankingChoices) {
52047
52410
  var _this = this;
52048
52411
  return {
52049
- isAnimationEnabled: function () { return _src_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].animationEnabled && _this.animationAllowed; },
52412
+ isAnimationEnabled: function () { return _this.animationAllowed; },
52050
52413
  getLeaveOptions: function (item) {
52051
52414
  var choices = isRankingChoices ? _this.rankingChoices : _this.unRankingChoices;
52052
52415
  if (_this.renderedSelectToRankAreasLayout == "vertical" && choices.length == 1 && choices.indexOf(item) >= 0) {
@@ -52214,10 +52577,13 @@ var QuestionRankingModel = /** @class */ (function (_super) {
52214
52577
  QuestionRankingModel.prototype.supportNone = function () { return false; };
52215
52578
  QuestionRankingModel.prototype.supportRefuse = function () { return false; };
52216
52579
  QuestionRankingModel.prototype.supportDontKnow = function () { return false; };
52217
- QuestionRankingModel.prototype.handleKeydownSelectToRank = function (event, movedElement) {
52580
+ QuestionRankingModel.prototype.handleKeydownSelectToRank = function (event, movedElement, hardKey, isNeedFocus) {
52581
+ if (isNeedFocus === void 0) { isNeedFocus = true; }
52218
52582
  if (this.isDesignMode)
52219
52583
  return;
52220
52584
  var key = event.key;
52585
+ if (hardKey)
52586
+ key = hardKey;
52221
52587
  if (key !== " " && key !== "ArrowUp" && key !== "ArrowDown")
52222
52588
  return;
52223
52589
  var dnd = this.dragDropRankingChoices; //????
@@ -52229,21 +52595,23 @@ var QuestionRankingModel = /** @class */ (function (_super) {
52229
52595
  return;
52230
52596
  var toIndex;
52231
52597
  if (key === " " && !isMovedElementRanked) {
52232
- toIndex = 0;
52233
- this.animationAllowed = false;
52598
+ if (!this.checkMaxSelectedChoicesUnreached() || !this.canStartDragDueItemEnabled(movedElement))
52599
+ return;
52600
+ toIndex = this.value.length;
52601
+ this.blockAnimations();
52234
52602
  dnd.selectToRank(this, fromIndex, toIndex);
52235
- this.animationAllowed = true;
52236
- this.setValueAfterKeydown(toIndex, "to-container");
52603
+ this.releaseAnimations();
52604
+ this.setValueAfterKeydown(toIndex, "to-container", isNeedFocus);
52237
52605
  return;
52238
52606
  }
52239
52607
  if (!isMovedElementRanked)
52240
52608
  return;
52241
52609
  if (key === " ") {
52242
- this.animationAllowed = false;
52610
+ this.blockAnimations();
52243
52611
  dnd.unselectFromRank(this, fromIndex);
52244
- this.animationAllowed = true;
52612
+ this.releaseAnimations();
52245
52613
  toIndex = this.unRankingChoices.indexOf(movedElement); //'this.' leads to actual array after the 'unselectFromRank' method
52246
- this.setValueAfterKeydown(toIndex, "from-container");
52614
+ this.setValueAfterKeydown(toIndex, "from-container", isNeedFocus);
52247
52615
  return;
52248
52616
  }
52249
52617
  var delta = key === "ArrowUp" ? -1 : (key === "ArrowDown" ? 1 : 0);
@@ -52253,15 +52621,18 @@ var QuestionRankingModel = /** @class */ (function (_super) {
52253
52621
  if (toIndex < 0 || toIndex >= rankingChoices.length)
52254
52622
  return;
52255
52623
  dnd.reorderRankedItem(this, fromIndex, toIndex);
52256
- this.setValueAfterKeydown(toIndex, "to-container");
52624
+ this.setValueAfterKeydown(toIndex, "to-container", isNeedFocus);
52257
52625
  };
52258
- QuestionRankingModel.prototype.setValueAfterKeydown = function (index, container) {
52626
+ QuestionRankingModel.prototype.setValueAfterKeydown = function (index, container, isNeedFocus) {
52259
52627
  var _this = this;
52628
+ if (isNeedFocus === void 0) { isNeedFocus = true; }
52260
52629
  this.setValue();
52261
- setTimeout(function () {
52262
- _this.focusItem(index, container);
52263
- }, 1);
52264
- event.preventDefault();
52630
+ if (isNeedFocus) {
52631
+ setTimeout(function () {
52632
+ _this.focusItem(index, container);
52633
+ }, 1);
52634
+ }
52635
+ event && event.preventDefault();
52265
52636
  };
52266
52637
  QuestionRankingModel.prototype.getIconHoverCss = function () {
52267
52638
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
@@ -52605,19 +52976,23 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52605
52976
  _this.updateRateCount();
52606
52977
  });
52607
52978
  _this.registerFunctionOnPropertiesValueChanged(["rateValues"], function () {
52608
- _this.autoGenerate = false;
52979
+ _this.setIconsToRateValues();
52980
+ _this.createRenderedRateItems();
52981
+ });
52982
+ _this.registerSychProperties(["rateValues"], function () {
52983
+ _this.autoGenerate = _this.rateValues.length == 0;
52609
52984
  _this.setIconsToRateValues();
52610
52985
  _this.createRenderedRateItems();
52611
52986
  });
52612
52987
  _this.registerFunctionOnPropertiesValueChanged(["rateColorMode", "scaleColorMode"], function () {
52613
52988
  _this.updateColors(_this.survey.themeVariables);
52614
52989
  });
52615
- _this.registerFunctionOnPropertiesValueChanged(["autoGenerate"], function () {
52990
+ _this.registerSychProperties(["autoGenerate"], function () {
52616
52991
  if (!_this.autoGenerate && _this.rateValues.length === 0) {
52617
52992
  _this.setPropertyValue("rateValues", _this.visibleRateValues);
52618
52993
  }
52619
52994
  if (_this.autoGenerate) {
52620
- _this.rateValues.length = 0;
52995
+ _this.rateValues.splice(0, _this.rateValues.length);
52621
52996
  _this.updateRateMax();
52622
52997
  }
52623
52998
  _this.createRenderedRateItems();
@@ -52943,6 +53318,13 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52943
53318
  QuestionRatingModel.prototype.getInputId = function (index) {
52944
53319
  return this.inputId + "_" + index;
52945
53320
  };
53321
+ Object.defineProperty(QuestionRatingModel.prototype, "questionName", {
53322
+ get: function () {
53323
+ return this.name + "_" + this.id;
53324
+ },
53325
+ enumerable: false,
53326
+ configurable: true
53327
+ });
52946
53328
  QuestionRatingModel.prototype.supportGoNextPageAutomatic = function () {
52947
53329
  return this.isMouseDown === true || this.renderAs === "dropdown";
52948
53330
  };
@@ -54483,7 +54865,13 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
54483
54865
  })
54484
54866
  ], QuestionTagboxModel.prototype, "hideSelectedItems", void 0);
54485
54867
  __decorate([
54486
- Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
54868
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({
54869
+ onSet: function (newValue, target) {
54870
+ if (!!target.dropdownListModel) {
54871
+ target.dropdownListModel.setChoicesLazyLoadEnabled(newValue);
54872
+ }
54873
+ }
54874
+ })
54487
54875
  ], QuestionTagboxModel.prototype, "choicesLazyLoadEnabled", void 0);
54488
54876
  __decorate([
54489
54877
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
@@ -55199,8 +55587,8 @@ var QuestionTextModel = /** @class */ (function (_super) {
55199
55587
  if (this.inputTextAlignment !== "auto") {
55200
55588
  style.textAlign = this.inputTextAlignment;
55201
55589
  }
55202
- else if (this.maskType === "numeric" || this.maskType === "currency") {
55203
- style.textAlign = "right";
55590
+ else if (this.maskSettings.getTextAlignment() !== "auto") {
55591
+ style.textAlign = this.maskSettings.getTextAlignment();
55204
55592
  }
55205
55593
  };
55206
55594
  QuestionTextModel.prototype.updateValueOnEvent = function (event) {
@@ -57355,7 +57743,6 @@ var SurveyElement = /** @class */ (function (_super) {
57355
57743
  }
57356
57744
  }
57357
57745
  }, function () { return _this.renderedIsExpanded; });
57358
- _this.animationAllowedValue = true;
57359
57746
  _this.name = name;
57360
57747
  _this.createNewArray("errors");
57361
57748
  _this.createNewArray("titleActions");
@@ -57391,7 +57778,7 @@ var SurveyElement = /** @class */ (function (_super) {
57391
57778
  var el = root.getElementById(elementId);
57392
57779
  return SurveyElement.ScrollElementToViewCore(el, false, scrollIfVisible);
57393
57780
  };
57394
- SurveyElement.ScrollElementToViewCore = function (el, checkLeft, scrollIfVisible) {
57781
+ SurveyElement.ScrollElementToViewCore = function (el, checkLeft, scrollIfVisible, scrollIntoViewOptions) {
57395
57782
  if (!el || !el.scrollIntoView)
57396
57783
  return false;
57397
57784
  var elTop = scrollIfVisible ? -1 : el.getBoundingClientRect().top;
@@ -57410,7 +57797,7 @@ var SurveyElement = /** @class */ (function (_super) {
57410
57797
  }
57411
57798
  }
57412
57799
  if (needScroll) {
57413
- el.scrollIntoView();
57800
+ el.scrollIntoView(scrollIntoViewOptions);
57414
57801
  }
57415
57802
  return needScroll;
57416
57803
  };
@@ -58394,6 +58781,13 @@ var SurveyElement = /** @class */ (function (_super) {
58394
58781
  this.toggleState();
58395
58782
  }
58396
58783
  };
58784
+ Object.defineProperty(SurveyElement.prototype, "hasAdditionalTitleToolbar", {
58785
+ get: function () {
58786
+ return false;
58787
+ },
58788
+ enumerable: false,
58789
+ configurable: true
58790
+ });
58397
58791
  Object.defineProperty(SurveyElement.prototype, "additionalTitleToolbar", {
58398
58792
  get: function () {
58399
58793
  return this.getAdditionalTitleToolbar();
@@ -58419,18 +58813,25 @@ var SurveyElement = /** @class */ (function (_super) {
58419
58813
  };
58420
58814
  Object.defineProperty(SurveyElement.prototype, "isDisabledStyle", {
58421
58815
  get: function () {
58422
- return !this.isDefaultV2Theme && (this.isReadOnlyStyle || this.isPreviewStyle);
58816
+ return this.getIsDisableAndReadOnlyStyles(false)[1];
58423
58817
  },
58424
58818
  enumerable: false,
58425
58819
  configurable: true
58426
58820
  });
58427
58821
  Object.defineProperty(SurveyElement.prototype, "isReadOnlyStyle", {
58428
58822
  get: function () {
58429
- return this.isReadOnly && !this.isPreviewStyle;
58823
+ return this.getIsDisableAndReadOnlyStyles(false)[0];
58430
58824
  },
58431
58825
  enumerable: false,
58432
58826
  configurable: true
58433
58827
  });
58828
+ SurveyElement.prototype.getIsDisableAndReadOnlyStyles = function (itemReadOnly) {
58829
+ var isPreview = this.isPreviewStyle;
58830
+ var isReadOnly = itemReadOnly || this.isReadOnly;
58831
+ var isReadOnlyStyle = isReadOnly && !isPreview;
58832
+ var isDisableStyle = !this.isDefaultV2Theme && (isReadOnly || isPreview);
58833
+ return [isReadOnlyStyle, isDisableStyle];
58834
+ };
58434
58835
  Object.defineProperty(SurveyElement.prototype, "isPreviewStyle", {
58435
58836
  get: function () {
58436
58837
  return !!this.survey && this.survey.state === "preview";
@@ -58497,12 +58898,12 @@ var SurveyElement = /** @class */ (function (_super) {
58497
58898
  if (cssClasses.content) {
58498
58899
  var selector = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["classesToSelector"])(cssClasses.content);
58499
58900
  if (selector) {
58500
- return (_a = _this.getWrapperElement()) === null || _a === void 0 ? void 0 : _a.querySelector(selector);
58901
+ return (_a = _this.getWrapperElement()) === null || _a === void 0 ? void 0 : _a.querySelector(":scope " + selector);
58501
58902
  }
58502
58903
  }
58503
58904
  return undefined;
58504
58905
  },
58505
- isAnimationEnabled: function () { return _settings__WEBPACK_IMPORTED_MODULE_4__["settings"].animationEnabled && _this.animationAllowed && !_this.isDesignMode; }
58906
+ isAnimationEnabled: function () { return _this.animationAllowed && !_this.isDesignMode; }
58506
58907
  };
58507
58908
  };
58508
58909
  Object.defineProperty(SurveyElement.prototype, "renderedIsExpanded", {
@@ -58515,16 +58916,9 @@ var SurveyElement = /** @class */ (function (_super) {
58515
58916
  enumerable: false,
58516
58917
  configurable: true
58517
58918
  });
58518
- Object.defineProperty(SurveyElement.prototype, "animationAllowed", {
58519
- get: function () {
58520
- return !this.isLoadingFromJson && !this.isDisposed && !!this.survey && this.animationAllowedValue;
58521
- },
58522
- set: function (val) {
58523
- this.animationAllowedValue = val;
58524
- },
58525
- enumerable: false,
58526
- configurable: true
58527
- });
58919
+ SurveyElement.prototype.getIsAnimationAllowed = function () {
58920
+ return _super.prototype.getIsAnimationAllowed.call(this) && !!this.survey;
58921
+ };
58528
58922
  SurveyElement.prototype.dispose = function () {
58529
58923
  _super.prototype.dispose.call(this);
58530
58924
  if (this.titleToolbarValue) {
@@ -59464,6 +59858,7 @@ var SurveyModel = /** @class */ (function (_super) {
59464
59858
  _this.skippedPages = [];
59465
59859
  _this.skeletonComponentName = "sv-skeleton";
59466
59860
  _this.taskManager = new _surveyTaskManager__WEBPACK_IMPORTED_MODULE_22__["SurveyTaskManagerModel"]();
59861
+ _this.questionErrorComponent = "sv-question-error";
59467
59862
  if (_global_variables_utils__WEBPACK_IMPORTED_MODULE_25__["DomDocumentHelper"].isAvailable()) {
59468
59863
  SurveyModel.stylesManager = new _stylesmanager__WEBPACK_IMPORTED_MODULE_11__["StylesManager"]();
59469
59864
  }
@@ -62030,7 +62425,7 @@ var SurveyModel = /** @class */ (function (_super) {
62030
62425
  }
62031
62426
  this.getAllQuestions().forEach(function (q) {
62032
62427
  if (q.hasFilteredValue) {
62033
- values[q.getValueName()] = q.getFilteredValue();
62428
+ values[q.getFilteredName()] = q.getFilteredValue();
62034
62429
  }
62035
62430
  });
62036
62431
  return values;
@@ -65130,6 +65525,7 @@ var SurveyModel = /** @class */ (function (_super) {
65130
65525
  * @param isPartial Pass `true` to save partial survey results (see [Continue an Incomplete Survey](https://surveyjs.io/form-library/documentation/handle-survey-results-continue-incomplete)).
65131
65526
  */
65132
65527
  SurveyModel.prototype.sendResult = function (postId, clientId, isPartial) {
65528
+ var _this = this;
65133
65529
  if (postId === void 0) { postId = null; }
65134
65530
  if (clientId === void 0) { clientId = null; }
65135
65531
  if (isPartial === void 0) { isPartial = false; }
@@ -65148,24 +65544,23 @@ var SurveyModel = /** @class */ (function (_super) {
65148
65544
  }
65149
65545
  if (isPartial && !this.clientId)
65150
65546
  return;
65151
- var self = this;
65152
- if (this.surveyShowDataSaving) {
65547
+ var service = this.createSurveyService();
65548
+ service.locale = this.getLocale();
65549
+ var showSaving = this.surveyShowDataSaving || (!isPartial && service.isSurveJSIOService);
65550
+ if (showSaving) {
65153
65551
  this.setCompletedState("saving", "");
65154
65552
  }
65155
- this.createSurveyService().sendResult(postId, this.data, function (success, response, request) {
65156
- if (self.surveyShowDataSaving) {
65553
+ service.sendResult(postId, this.data, function (success, response, request) {
65554
+ if (showSaving || service.isSurveJSIOService) {
65157
65555
  if (success) {
65158
- self.setCompletedState("success", "");
65556
+ _this.setCompletedState("success", "");
65159
65557
  }
65160
65558
  else {
65161
- self.setCompletedState("error", response);
65559
+ _this.setCompletedState("error", response);
65162
65560
  }
65163
65561
  }
65164
- self.onSendResult.fire(self, {
65165
- success: success,
65166
- response: response,
65167
- request: request,
65168
- });
65562
+ var options = { success: success, response: response, request: request };
65563
+ _this.onSendResult.fire(_this, options);
65169
65564
  }, this.clientId, isPartial);
65170
65565
  };
65171
65566
  /**
@@ -65803,7 +66198,7 @@ var SurveyModel = /** @class */ (function (_super) {
65803
66198
  if (locNotification !== "text") {
65804
66199
  this.tryGoNextPageAutomatic(name);
65805
66200
  }
65806
- var question = this.getQuestionByName(name);
66201
+ var question = this.getQuestionByValueName(name);
65807
66202
  if (question) {
65808
66203
  this.onValueChanged.fire(this, {
65809
66204
  name: commentName,
@@ -67128,7 +67523,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
67128
67523
  {
67129
67524
  name: "showProgressBar",
67130
67525
  default: "off",
67131
- choices: ["off", "auto", "aboveHeader", "belowHeader", "bottom", "topBottom"],
67526
+ choices: ["off", "auto", "aboveheader", "belowheader", "bottom", "topbottom"],
67132
67527
  },
67133
67528
  {
67134
67529
  name: "progressBarType",
@@ -67767,11 +68162,9 @@ function createTOCListModel(survey, onAction) {
67767
68162
  var _a;
67768
68163
  var pagesSource = survey.questionsOnPageMode === "singlePage" ? (_a = survey.pages[0]) === null || _a === void 0 ? void 0 : _a.elements : survey.pages;
67769
68164
  var items = (pagesSource || []).map(function (page) {
67770
- var _a, _b;
67771
68165
  return new _actions_action__WEBPACK_IMPORTED_MODULE_0__["Action"]({
67772
68166
  id: page.name,
67773
- locTitle: ((_a = page.locNavigationTitle) === null || _a === void 0 ? void 0 : _a.text) ? page.locNavigationTitle : (((_b = page.locTitle) === null || _b === void 0 ? void 0 : _b.text) ? page.locTitle : undefined),
67774
- title: page.renderedNavigationTitle,
68167
+ locTitle: page.locNavigationTitle,
67775
68168
  action: function () {
67776
68169
  _global_variables_utils__WEBPACK_IMPORTED_MODULE_2__["DomDocumentHelper"].activeElementBlur();
67777
68170
  !!onAction && onAction();
@@ -68806,6 +69199,9 @@ var SurveyTriggerRunExpression = /** @class */ (function (_super) {
68806
69199
  enumerable: false,
68807
69200
  configurable: true
68808
69201
  });
69202
+ SurveyTriggerRunExpression.prototype.canBeExecuted = function (isOnNextPage) {
69203
+ return !isOnNextPage;
69204
+ };
68809
69205
  SurveyTriggerRunExpression.prototype.onSuccess = function (values, properties) {
68810
69206
  var _this = this;
68811
69207
  if (!this.owner || !this.runExpression)
@@ -68929,7 +69325,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_2__["Serializer"].addClass("runexpressiontr
68929
69325
  /*!********************************!*\
68930
69326
  !*** ./src/utils/animation.ts ***!
68931
69327
  \********************************/
68932
- /*! exports provided: AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationBoolean, AnimationGroup */
69328
+ /*! exports provided: AnimationUtils, AnimationPropertyUtils, AnimationGroupUtils, AnimationProperty, AnimationBoolean, AnimationGroup, AnimationTab */
68933
69329
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
68934
69330
 
68935
69331
  "use strict";
@@ -68937,8 +69333,10 @@ __webpack_require__.r(__webpack_exports__);
68937
69333
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationUtils", function() { return AnimationUtils; });
68938
69334
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationPropertyUtils", function() { return AnimationPropertyUtils; });
68939
69335
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupUtils", function() { return AnimationGroupUtils; });
69336
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationProperty", function() { return AnimationProperty; });
68940
69337
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return AnimationBoolean; });
68941
69338
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return AnimationGroup; });
69339
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationTab", function() { return AnimationTab; });
68942
69340
  /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../global_variables_utils */ "./src/global_variables_utils.ts");
68943
69341
  /* harmony import */ var _taskmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./taskmanager */ "./src/utils/taskmanager.ts");
68944
69342
  var __extends = (undefined && undefined.__extends) || (function () {
@@ -68967,6 +69365,9 @@ var AnimationUtils = /** @class */ (function () {
68967
69365
  return 0;
68968
69366
  return Number(value.slice(0, -1).replace(",", ".")) * 1000;
68969
69367
  };
69368
+ AnimationUtils.prototype.reflow = function (element) {
69369
+ return element.offsetHeight;
69370
+ };
68970
69371
  AnimationUtils.prototype.getAnimationsCount = function (element) {
68971
69372
  var animationName = "";
68972
69373
  if (getComputedStyle) {
@@ -68984,6 +69385,14 @@ var AnimationUtils = /** @class */ (function () {
68984
69385
  }
68985
69386
  return duration;
68986
69387
  };
69388
+ AnimationUtils.prototype.addCancelCallback = function (callback) {
69389
+ this.cancelQueue.push(callback);
69390
+ };
69391
+ AnimationUtils.prototype.removeCancelCallback = function (callback) {
69392
+ if (this.cancelQueue.indexOf(callback) >= 0) {
69393
+ this.cancelQueue.splice(this.cancelQueue.indexOf(callback), 1);
69394
+ }
69395
+ };
68987
69396
  AnimationUtils.prototype.onAnimationEnd = function (element, callback, options) {
68988
69397
  var _this = this;
68989
69398
  var cancelTimeout;
@@ -68993,7 +69402,7 @@ var AnimationUtils = /** @class */ (function () {
68993
69402
  options.onAfterRunAnimation && options.onAfterRunAnimation(element);
68994
69403
  callback(isCancel);
68995
69404
  clearTimeout(cancelTimeout);
68996
- _this.cancelQueue.splice(_this.cancelQueue.indexOf(onEndCallback), 1);
69405
+ _this.removeCancelCallback(onEndCallback);
68997
69406
  element.removeEventListener("animationend", onAnimationEndCallback);
68998
69407
  };
68999
69408
  var onAnimationEndCallback = function (event) {
@@ -69003,7 +69412,7 @@ var AnimationUtils = /** @class */ (function () {
69003
69412
  };
69004
69413
  if (animationsCount > 0) {
69005
69414
  element.addEventListener("animationend", onAnimationEndCallback);
69006
- this.cancelQueue.push(onEndCallback);
69415
+ this.addCancelCallback(onEndCallback);
69007
69416
  cancelTimeout = setTimeout(function () {
69008
69417
  onEndCallback(false);
69009
69418
  }, this.getAnimationDuration(element) + 10);
@@ -69013,40 +69422,51 @@ var AnimationUtils = /** @class */ (function () {
69013
69422
  }
69014
69423
  };
69015
69424
  AnimationUtils.prototype.beforeAnimationRun = function (element, options) {
69016
- if (element) {
69425
+ if (element && options) {
69017
69426
  options.onBeforeRunAnimation && options.onBeforeRunAnimation(element);
69018
69427
  }
69019
69428
  };
69020
- AnimationUtils.prototype.runLeaveAnimation = function (element, options, callback) {
69429
+ AnimationUtils.prototype.runAnimation = function (element, options, callback) {
69021
69430
  if (element && options.cssClass) {
69431
+ this.reflow(element);
69022
69432
  element.classList.add(options.cssClass);
69023
- var onAnimationEndCallback = function (isCancel) {
69433
+ this.onAnimationEnd(element, callback, options);
69434
+ }
69435
+ else {
69436
+ callback(true);
69437
+ }
69438
+ };
69439
+ AnimationUtils.prototype.clearHtmlElement = function (element, options) {
69440
+ if (element && options.cssClass) {
69441
+ element.classList.remove(options.cssClass);
69442
+ }
69443
+ };
69444
+ AnimationUtils.prototype.onNextRender = function (callback, runEarly, isCancel) {
69445
+ var _this = this;
69446
+ if (isCancel === void 0) { isCancel = false; }
69447
+ if (!isCancel && _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].isAvailable()) {
69448
+ var cancelCallback_1 = function () {
69024
69449
  callback();
69025
- if (isCancel) {
69026
- element.classList.remove(options.cssClass);
69450
+ cancelAnimationFrame(latestRAF_1);
69451
+ };
69452
+ var latestRAF_1 = _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
69453
+ if (runEarly && runEarly()) {
69454
+ callback();
69455
+ _this.removeCancelCallback(cancelCallback_1);
69027
69456
  }
69028
69457
  else {
69029
- _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
69030
- _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
69031
- element.classList.remove(options.cssClass);
69032
- });
69458
+ latestRAF_1 = _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
69459
+ callback();
69460
+ _this.removeCancelCallback(cancelCallback_1);
69033
69461
  });
69034
69462
  }
69035
- };
69036
- this.onAnimationEnd(element, onAnimationEndCallback, options);
69463
+ });
69464
+ this.addCancelCallback(cancelCallback_1);
69037
69465
  }
69038
69466
  else {
69039
69467
  callback();
69040
69468
  }
69041
69469
  };
69042
- AnimationUtils.prototype.runEnterAnimation = function (element, options) {
69043
- if (element && options.cssClass) {
69044
- element.classList.add(options.cssClass);
69045
- this.onAnimationEnd(element, function () {
69046
- element.classList.remove(options.cssClass);
69047
- }, options);
69048
- }
69049
- };
69050
69470
  AnimationUtils.prototype.cancel = function () {
69051
69471
  var cancelQueue = [].concat(this.cancelQueue);
69052
69472
  cancelQueue.forEach(function (callback) { return callback(); });
@@ -69060,26 +69480,28 @@ var AnimationPropertyUtils = /** @class */ (function (_super) {
69060
69480
  function AnimationPropertyUtils() {
69061
69481
  return _super !== null && _super.apply(this, arguments) || this;
69062
69482
  }
69063
- AnimationPropertyUtils.prototype.onEnter = function (getElement, options) {
69483
+ AnimationPropertyUtils.prototype.onEnter = function (options) {
69064
69484
  var _this = this;
69065
- var callback = function () {
69066
- var element = getElement();
69067
- _this.beforeAnimationRun(element, options);
69068
- _this.runEnterAnimation(element, options);
69069
- };
69070
- _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
69071
- if (getElement()) {
69072
- callback();
69073
- }
69074
- else {
69075
- _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(callback);
69076
- }
69077
- });
69485
+ this.onNextRender(function () {
69486
+ var htmlElement = options.getAnimatedElement();
69487
+ var enterOptions = options.getEnterOptions();
69488
+ _this.beforeAnimationRun(htmlElement, enterOptions);
69489
+ _this.runAnimation(htmlElement, enterOptions, function () {
69490
+ _this.clearHtmlElement(htmlElement, enterOptions);
69491
+ });
69492
+ }, function () { return !!options.getAnimatedElement(); });
69078
69493
  };
69079
- AnimationPropertyUtils.prototype.onLeave = function (getElement, callback, options) {
69080
- var element = getElement();
69081
- this.beforeAnimationRun(element, options);
69082
- this.runLeaveAnimation(element, options, callback);
69494
+ AnimationPropertyUtils.prototype.onLeave = function (options, callback) {
69495
+ var _this = this;
69496
+ var htmlElement = options.getAnimatedElement();
69497
+ var leaveOptions = options.getLeaveOptions();
69498
+ this.beforeAnimationRun(htmlElement, leaveOptions);
69499
+ this.runAnimation(htmlElement, leaveOptions, function (isCancel) {
69500
+ callback();
69501
+ _this.onNextRender(function () {
69502
+ _this.clearHtmlElement(htmlElement, leaveOptions);
69503
+ }, undefined, isCancel);
69504
+ });
69083
69505
  };
69084
69506
  return AnimationPropertyUtils;
69085
69507
  }(AnimationUtils));
@@ -69089,41 +69511,40 @@ var AnimationGroupUtils = /** @class */ (function (_super) {
69089
69511
  function AnimationGroupUtils() {
69090
69512
  return _super !== null && _super.apply(this, arguments) || this;
69091
69513
  }
69092
- AnimationGroupUtils.prototype.onEnter = function (getElement, getOptions, elements) {
69514
+ AnimationGroupUtils.prototype.runGroupAnimation = function (options, addedElements, removedElements, callback) {
69093
69515
  var _this = this;
69094
- if (elements.length == 0)
69095
- return;
69096
- _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
69097
- var callback = function () {
69098
- elements.forEach(function (el) {
69099
- _this.beforeAnimationRun(getElement(el), getOptions(el));
69100
- });
69101
- elements.forEach(function (el) {
69102
- _this.runEnterAnimation(getElement(el), getOptions(el));
69103
- });
69516
+ this.onNextRender(function () {
69517
+ var addedHtmlElements = addedElements.map(function (el) { return options.getAnimatedElement(el); });
69518
+ var enterOptions = addedElements.map(function (el) { return options.getEnterOptions(el); });
69519
+ var removedHtmlElements = removedElements.map(function (el) { return options.getAnimatedElement(el); });
69520
+ var leaveOptions = removedElements.map(function (el) { return options.getLeaveOptions(el); });
69521
+ addedElements.forEach(function (_, i) {
69522
+ _this.beforeAnimationRun(addedHtmlElements[i], enterOptions[i]);
69523
+ });
69524
+ removedElements.forEach(function (_, i) {
69525
+ _this.beforeAnimationRun(removedHtmlElements[i], leaveOptions[i]);
69526
+ });
69527
+ var counter = addedElements.length + removedElements.length;
69528
+ var onAnimationEndCallback = function (isCancel) {
69529
+ if (--counter <= 0) {
69530
+ callback && callback();
69531
+ _this.onNextRender(function () {
69532
+ addedElements.forEach(function (_, i) {
69533
+ _this.clearHtmlElement(addedHtmlElements[i], enterOptions[i]);
69534
+ });
69535
+ removedElements.forEach(function (_, i) {
69536
+ _this.clearHtmlElement(removedHtmlElements[i], leaveOptions[i]);
69537
+ });
69538
+ }, undefined, isCancel);
69539
+ }
69104
69540
  };
69105
- if (!getElement(elements[0])) {
69106
- _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(callback);
69107
- }
69108
- else {
69109
- callback();
69110
- }
69111
- });
69112
- };
69113
- AnimationGroupUtils.prototype.onLeave = function (getElement, callback, getOptions, elements) {
69114
- var _this = this;
69115
- elements.forEach(function (el) {
69116
- _this.beforeAnimationRun(getElement(el), getOptions(el));
69117
- });
69118
- var counter = elements.length;
69119
- var onEndCallback = function () {
69120
- if (--counter <= 0) {
69121
- callback();
69122
- }
69123
- };
69124
- elements.forEach(function (el) {
69125
- _this.runLeaveAnimation(getElement(el), getOptions(el), onEndCallback);
69126
- });
69541
+ addedElements.forEach(function (_, i) {
69542
+ _this.runAnimation(addedHtmlElements[i], enterOptions[i], onAnimationEndCallback);
69543
+ });
69544
+ removedElements.forEach(function (_, i) {
69545
+ _this.runAnimation(removedHtmlElements[i], leaveOptions[i], onAnimationEndCallback);
69546
+ });
69547
+ }, function () { return addedElements.length == 0 || addedElements.some(function (el) { return !!options.getAnimatedElement(el); }); });
69127
69548
  };
69128
69549
  return AnimationGroupUtils;
69129
69550
  }(AnimationUtils));
@@ -69144,6 +69565,7 @@ var AnimationProperty = /** @class */ (function () {
69144
69565
  this._debouncedSync.run(newValue);
69145
69566
  }
69146
69567
  else {
69568
+ this.cancel();
69147
69569
  this.update(newValue);
69148
69570
  }
69149
69571
  };
@@ -69153,6 +69575,7 @@ var AnimationProperty = /** @class */ (function () {
69153
69575
  };
69154
69576
  return AnimationProperty;
69155
69577
  }());
69578
+
69156
69579
  var AnimationBoolean = /** @class */ (function (_super) {
69157
69580
  __extends(AnimationBoolean, _super);
69158
69581
  function AnimationBoolean() {
@@ -69165,12 +69588,12 @@ var AnimationBoolean = /** @class */ (function (_super) {
69165
69588
  if (newValue !== this.getCurrentValue()) {
69166
69589
  if (newValue) {
69167
69590
  this.update(newValue);
69168
- this.animation.onEnter(function () { return _this.animationOptions.getAnimatedElement(); }, this.animationOptions.getEnterOptions());
69591
+ this.animation.onEnter(this.animationOptions);
69169
69592
  }
69170
69593
  else {
69171
- this.animation.onLeave(function () { return _this.animationOptions.getAnimatedElement(); }, function () {
69594
+ this.animation.onLeave(this.animationOptions, function () {
69172
69595
  _this.update(newValue);
69173
- }, this.animationOptions.getLeaveOptions());
69596
+ });
69174
69597
  }
69175
69598
  }
69176
69599
  else {
@@ -69192,19 +69615,42 @@ var AnimationGroup = /** @class */ (function (_super) {
69192
69615
  var oldValue = this.getCurrentValue();
69193
69616
  var itemsToAdd = newValue.filter(function (el) { return oldValue.indexOf(el) < 0; });
69194
69617
  var deletedItems = oldValue.filter(function (el) { return newValue.indexOf(el) < 0; });
69195
- this.animation.onEnter(function (el) { return _this.animationOptions.getAnimatedElement(el); }, function (el) { return _this.animationOptions.getEnterOptions(el); }, itemsToAdd);
69196
69618
  if (itemsToAdd.length == 0 && (deletedItems === null || deletedItems === void 0 ? void 0 : deletedItems.length) > 0) {
69197
- this.animation.onLeave(function (el) { return _this.animationOptions.getAnimatedElement(el); }, function () {
69198
- _this.update(newValue);
69199
- }, function (el) { return _this.animationOptions.getLeaveOptions(el); }, deletedItems);
69619
+ this.animation.runGroupAnimation(this.animationOptions, [], deletedItems, function () { return _this.update(newValue); });
69200
69620
  }
69201
69621
  else {
69202
69622
  this.update(newValue);
69623
+ this.animation.runGroupAnimation(this.animationOptions, itemsToAdd, []);
69203
69624
  }
69204
69625
  };
69205
69626
  return AnimationGroup;
69206
69627
  }(AnimationProperty));
69207
69628
 
69629
+ var AnimationTab = /** @class */ (function (_super) {
69630
+ __extends(AnimationTab, _super);
69631
+ function AnimationTab(animationOptions, update, getCurrentValue, mergeValues) {
69632
+ var _this = _super.call(this, animationOptions, update, getCurrentValue) || this;
69633
+ _this.mergeValues = mergeValues;
69634
+ _this.animation = new AnimationGroupUtils();
69635
+ return _this;
69636
+ }
69637
+ AnimationTab.prototype._sync = function (newValue) {
69638
+ var _this = this;
69639
+ var oldValue = [].concat(this.getCurrentValue());
69640
+ if (oldValue[0] !== newValue[0]) {
69641
+ var tempValue = !!this.mergeValues ? this.mergeValues(newValue, oldValue) : [].concat(oldValue, newValue);
69642
+ this.update(tempValue, true);
69643
+ this.animation.runGroupAnimation(this.animationOptions, newValue, oldValue, function () {
69644
+ _this.update(newValue);
69645
+ });
69646
+ }
69647
+ else {
69648
+ this.update(newValue);
69649
+ }
69650
+ };
69651
+ return AnimationTab;
69652
+ }(AnimationProperty));
69653
+
69208
69654
 
69209
69655
 
69210
69656
  /***/ }),