survey-core 1.11.7 → 1.11.8

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 (240) hide show
  1. package/defaultV2.css +3 -2
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +3 -2
  4. package/defaultV2.fontless.css.map +1 -1
  5. package/defaultV2.fontless.min.css +2 -2
  6. package/defaultV2.min.css +2 -2
  7. package/i18n/arabic.js +1 -1
  8. package/i18n/arabic.min.js +1 -1
  9. package/i18n/basque.js +1 -1
  10. package/i18n/basque.min.js +1 -1
  11. package/i18n/bulgarian.js +1 -1
  12. package/i18n/bulgarian.min.js +1 -1
  13. package/i18n/catalan.js +1 -1
  14. package/i18n/catalan.min.js +1 -1
  15. package/i18n/croatian.js +1 -1
  16. package/i18n/croatian.min.js +1 -1
  17. package/i18n/czech.js +1 -1
  18. package/i18n/czech.min.js +1 -1
  19. package/i18n/danish.js +1 -1
  20. package/i18n/danish.min.js +1 -1
  21. package/i18n/dutch.js +1 -1
  22. package/i18n/dutch.min.js +1 -1
  23. package/i18n/english.js +1 -1
  24. package/i18n/english.min.js +1 -1
  25. package/i18n/estonian.js +1 -1
  26. package/i18n/estonian.min.js +1 -1
  27. package/i18n/finnish.js +1 -1
  28. package/i18n/finnish.min.js +1 -1
  29. package/i18n/french.js +1 -1
  30. package/i18n/french.min.js +1 -1
  31. package/i18n/georgian.js +1 -1
  32. package/i18n/georgian.min.js +1 -1
  33. package/i18n/german.js +1 -1
  34. package/i18n/german.min.js +1 -1
  35. package/i18n/greek.js +1 -1
  36. package/i18n/greek.min.js +1 -1
  37. package/i18n/hebrew.js +1 -1
  38. package/i18n/hebrew.min.js +1 -1
  39. package/i18n/hindi.js +1 -1
  40. package/i18n/hindi.min.js +1 -1
  41. package/i18n/hungarian.js +1 -1
  42. package/i18n/hungarian.min.js +1 -1
  43. package/i18n/icelandic.js +1 -1
  44. package/i18n/icelandic.min.js +1 -1
  45. package/i18n/index.js +1 -1
  46. package/i18n/index.min.js +1 -1
  47. package/i18n/indonesian.js +1 -1
  48. package/i18n/indonesian.min.js +1 -1
  49. package/i18n/italian.js +1 -1
  50. package/i18n/italian.min.js +1 -1
  51. package/i18n/japanese.js +1 -1
  52. package/i18n/japanese.min.js +1 -1
  53. package/i18n/kazakh.js +1 -1
  54. package/i18n/kazakh.min.js +1 -1
  55. package/i18n/korean.js +1 -1
  56. package/i18n/korean.min.js +1 -1
  57. package/i18n/latvian.js +1 -1
  58. package/i18n/latvian.min.js +1 -1
  59. package/i18n/lithuanian.js +1 -1
  60. package/i18n/lithuanian.min.js +1 -1
  61. package/i18n/macedonian.js +1 -1
  62. package/i18n/macedonian.min.js +1 -1
  63. package/i18n/malay.js +1 -1
  64. package/i18n/malay.min.js +1 -1
  65. package/i18n/nl-BE.js +1 -1
  66. package/i18n/nl-BE.min.js +1 -1
  67. package/i18n/norwegian.js +1 -1
  68. package/i18n/norwegian.min.js +1 -1
  69. package/i18n/persian.js +1 -1
  70. package/i18n/persian.min.js +1 -1
  71. package/i18n/philippines.js +1 -1
  72. package/i18n/philippines.min.js +1 -1
  73. package/i18n/polish.js +1 -1
  74. package/i18n/polish.min.js +1 -1
  75. package/i18n/portuguese-br.js +1 -1
  76. package/i18n/portuguese-br.min.js +1 -1
  77. package/i18n/portuguese.js +1 -1
  78. package/i18n/portuguese.min.js +1 -1
  79. package/i18n/romanian.js +1 -1
  80. package/i18n/romanian.min.js +1 -1
  81. package/i18n/russian.js +1 -1
  82. package/i18n/russian.min.js +1 -1
  83. package/i18n/serbian.js +1 -1
  84. package/i18n/serbian.min.js +1 -1
  85. package/i18n/simplified-chinese.js +1 -1
  86. package/i18n/simplified-chinese.min.js +1 -1
  87. package/i18n/slovak.js +1 -1
  88. package/i18n/slovak.min.js +1 -1
  89. package/i18n/spanish.js +1 -1
  90. package/i18n/spanish.min.js +1 -1
  91. package/i18n/swahili.js +1 -1
  92. package/i18n/swahili.min.js +1 -1
  93. package/i18n/swedish.js +1 -1
  94. package/i18n/swedish.min.js +1 -1
  95. package/i18n/tajik.js +1 -1
  96. package/i18n/tajik.min.js +1 -1
  97. package/i18n/telugu.js +1 -1
  98. package/i18n/telugu.min.js +1 -1
  99. package/i18n/thai.js +1 -1
  100. package/i18n/thai.min.js +1 -1
  101. package/i18n/traditional-chinese.js +1 -1
  102. package/i18n/traditional-chinese.min.js +1 -1
  103. package/i18n/turkish.js +1 -1
  104. package/i18n/turkish.min.js +1 -1
  105. package/i18n/ukrainian.js +1 -1
  106. package/i18n/ukrainian.min.js +1 -1
  107. package/i18n/urdu.js +1 -1
  108. package/i18n/urdu.min.js +1 -1
  109. package/i18n/vietnamese.js +1 -1
  110. package/i18n/vietnamese.min.js +1 -1
  111. package/i18n/welsh.js +1 -1
  112. package/i18n/welsh.min.js +1 -1
  113. package/modern.css +1 -1
  114. package/modern.fontless.css +1 -1
  115. package/modern.fontless.min.css +1 -1
  116. package/modern.min.css +1 -1
  117. package/package.json +1 -1
  118. package/plugins/bootstrap-integration.js +1 -1
  119. package/plugins/bootstrap-integration.min.js +1 -1
  120. package/plugins/bootstrap-material-integration.js +1 -1
  121. package/plugins/bootstrap-material-integration.min.js +1 -1
  122. package/survey.core.js +392 -64
  123. package/survey.core.js.map +1 -1
  124. package/survey.core.min.js +3 -3
  125. package/survey.css +1 -1
  126. package/survey.i18n.js +1 -1
  127. package/survey.i18n.min.js +1 -1
  128. package/survey.min.css +1 -1
  129. package/themes/borderless-dark-panelless.js +1 -1
  130. package/themes/borderless-dark-panelless.min.js +1 -1
  131. package/themes/borderless-dark.js +1 -1
  132. package/themes/borderless-dark.min.js +1 -1
  133. package/themes/borderless-light-panelless..js +1 -1
  134. package/themes/borderless-light-panelless..min.js +1 -1
  135. package/themes/borderless-light.js +1 -1
  136. package/themes/borderless-light.min.js +1 -1
  137. package/themes/contrast-dark-panelless.js +1 -1
  138. package/themes/contrast-dark-panelless.min.js +1 -1
  139. package/themes/contrast-dark.js +1 -1
  140. package/themes/contrast-dark.min.js +1 -1
  141. package/themes/contrast-light-panelless.js +1 -1
  142. package/themes/contrast-light-panelless.min.js +1 -1
  143. package/themes/contrast-light.js +1 -1
  144. package/themes/contrast-light.min.js +1 -1
  145. package/themes/default-dark-panelless.js +1 -1
  146. package/themes/default-dark-panelless.min.js +1 -1
  147. package/themes/default-dark.js +1 -1
  148. package/themes/default-dark.min.js +1 -1
  149. package/themes/default-light-panelless.js +1 -1
  150. package/themes/default-light-panelless.min.js +1 -1
  151. package/themes/default-light.js +1 -1
  152. package/themes/default-light.min.js +1 -1
  153. package/themes/doubleborder-dark-panelless.js +1 -1
  154. package/themes/doubleborder-dark-panelless.min.js +1 -1
  155. package/themes/doubleborder-dark.js +1 -1
  156. package/themes/doubleborder-dark.min.js +1 -1
  157. package/themes/doubleborder-light-panelles.js +1 -1
  158. package/themes/doubleborder-light-panelles.min.js +1 -1
  159. package/themes/doubleborder-light.js +1 -1
  160. package/themes/doubleborder-light.min.js +1 -1
  161. package/themes/flat-dark-panelless.js +1 -1
  162. package/themes/flat-dark-panelless.min.js +1 -1
  163. package/themes/flat-dark.js +1 -1
  164. package/themes/flat-dark.min.js +1 -1
  165. package/themes/flat-light-panelless.js +1 -1
  166. package/themes/flat-light-panelless.min.js +1 -1
  167. package/themes/flat-light.js +1 -1
  168. package/themes/flat-light.min.js +1 -1
  169. package/themes/index.js +1 -1
  170. package/themes/index.min.js +1 -1
  171. package/themes/layered-dark-panelless.js +1 -1
  172. package/themes/layered-dark-panelless.min.js +1 -1
  173. package/themes/layered-dark.js +1 -1
  174. package/themes/layered-dark.min.js +1 -1
  175. package/themes/layered-light-panelless.js +1 -1
  176. package/themes/layered-light-panelless.min.js +1 -1
  177. package/themes/layered-light.js +1 -1
  178. package/themes/layered-light.min.js +1 -1
  179. package/themes/plain-dark-panelless.js +1 -1
  180. package/themes/plain-dark-panelless.min.js +1 -1
  181. package/themes/plain-dark.js +1 -1
  182. package/themes/plain-dark.min.js +1 -1
  183. package/themes/plain-light-panelless.js +1 -1
  184. package/themes/plain-light-panelless.min.js +1 -1
  185. package/themes/plain-light.js +1 -1
  186. package/themes/plain-light.min.js +1 -1
  187. package/themes/sharp-dark-panelless.js +1 -1
  188. package/themes/sharp-dark-panelless.min.js +1 -1
  189. package/themes/sharp-dark.js +1 -1
  190. package/themes/sharp-dark.min.js +1 -1
  191. package/themes/sharp-light-panelless.js +1 -1
  192. package/themes/sharp-light-panelless.min.js +1 -1
  193. package/themes/sharp-light.js +1 -1
  194. package/themes/sharp-light.min.js +1 -1
  195. package/themes/solid-dark-panelless.js +1 -1
  196. package/themes/solid-dark-panelless.min.js +1 -1
  197. package/themes/solid-dark.js +1 -1
  198. package/themes/solid-dark.min.js +1 -1
  199. package/themes/solid-light-panelless.js +1 -1
  200. package/themes/solid-light-panelless.min.js +1 -1
  201. package/themes/solid-light.js +1 -1
  202. package/themes/solid-light.min.js +1 -1
  203. package/themes/three-dimensional-dark-panelless.js +1 -1
  204. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  205. package/themes/three-dimensional-dark.js +1 -1
  206. package/themes/three-dimensional-dark.min.js +1 -1
  207. package/themes/three-dimensional-light-panelless.js +1 -1
  208. package/themes/three-dimensional-light-panelless.min.js +1 -1
  209. package/themes/three-dimensional-light.js +1 -1
  210. package/themes/three-dimensional-light.min.js +1 -1
  211. package/ts3.4/typings/base-interfaces.d.ts +6 -0
  212. package/ts3.4/typings/dropdownListModel.d.ts +1 -1
  213. package/ts3.4/typings/jsonobject.d.ts +1 -1
  214. package/ts3.4/typings/panel-layout-column.d.ts +9 -0
  215. package/ts3.4/typings/panel.d.ts +15 -0
  216. package/ts3.4/typings/question.d.ts +3 -1
  217. package/ts3.4/typings/question_custom.d.ts +3 -0
  218. package/ts3.4/typings/question_dropdown.d.ts +1 -1
  219. package/ts3.4/typings/question_multipletext.d.ts +3 -0
  220. package/ts3.4/typings/question_rating.d.ts +0 -1
  221. package/ts3.4/typings/question_tagbox.d.ts +0 -1
  222. package/ts3.4/typings/settings.d.ts +29 -0
  223. package/ts3.4/typings/survey-element.d.ts +4 -3
  224. package/ts3.4/typings/survey.d.ts +1 -0
  225. package/ts3.4/typings/utils/utils.d.ts +1 -0
  226. package/typings/base-interfaces.d.ts +6 -0
  227. package/typings/dropdownListModel.d.ts +1 -1
  228. package/typings/jsonobject.d.ts +1 -1
  229. package/typings/panel-layout-column.d.ts +9 -0
  230. package/typings/panel.d.ts +15 -0
  231. package/typings/question.d.ts +3 -1
  232. package/typings/question_custom.d.ts +3 -0
  233. package/typings/question_dropdown.d.ts +1 -1
  234. package/typings/question_multipletext.d.ts +3 -0
  235. package/typings/question_rating.d.ts +0 -1
  236. package/typings/question_tagbox.d.ts +0 -1
  237. package/typings/settings.d.ts +29 -0
  238. package/typings/survey-element.d.ts +5 -3
  239. package/typings/survey.d.ts +1 -0
  240. package/typings/utils/utils.d.ts +1 -0
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.11.7
2
+ * surveyjs - Survey JavaScript library v1.11.8
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
  */
@@ -894,7 +894,7 @@ var BaseAction = /** @class */ (function (_super) {
894
894
  });
895
895
  Object.defineProperty(BaseAction.prototype, "canShrink", {
896
896
  get: function () {
897
- return !!this.iconName;
897
+ return !this.disableShrink && !!this.iconName;
898
898
  },
899
899
  enumerable: false,
900
900
  configurable: true
@@ -2688,6 +2688,9 @@ var Base = /** @class */ (function () {
2688
2688
  }
2689
2689
  if (!!this.arraysInfo) {
2690
2690
  for (var key in this.arraysInfo) {
2691
+ var prop = this.getPropertyByName(key);
2692
+ if (!prop || !prop.isSerializable)
2693
+ continue;
2691
2694
  var items = this.getPropertyValue(key);
2692
2695
  if (!items || !items.length)
2693
2696
  continue;
@@ -8213,11 +8216,12 @@ var DropdownListModel = /** @class */ (function (_super) {
8213
8216
  _this.filterString = newValue;
8214
8217
  }
8215
8218
  };
8216
- _this.qustionPropertyChangedHandler = function (sender, options) {
8219
+ _this.questionPropertyChangedHandler = function (sender, options) {
8217
8220
  _this.onPropertyChangedHandler(sender, options);
8218
8221
  };
8219
8222
  _this.htmlCleanerElement = _global_variables_utils__WEBPACK_IMPORTED_MODULE_1__["DomDocumentHelper"].createElement("div");
8220
- question.onPropertyChanged.add(_this.qustionPropertyChangedHandler);
8223
+ _this.question.ariaExpanded = "false";
8224
+ question.onPropertyChanged.add(_this.questionPropertyChangedHandler);
8221
8225
  _this.showInputFieldComponent = _this.question.showInputFieldComponent;
8222
8226
  _this.listModel = _this.createListModel();
8223
8227
  _this.updateAfterListModelCreated(_this.listModel);
@@ -8327,6 +8331,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8327
8331
  _this.resetItemsSettings();
8328
8332
  }
8329
8333
  }
8334
+ _this.question.ariaExpanded = option.isVisible ? "true" : "false";
8330
8335
  _this.question.processPopupVisiblilityChanged(_this.popupModel, option.isVisible);
8331
8336
  });
8332
8337
  };
@@ -8634,7 +8639,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8634
8639
  return;
8635
8640
  this._popupModel.toggleVisibility();
8636
8641
  this.focusItemOnClickAndPopup();
8637
- this.question.focus();
8642
+ this.question.focusInputElement(false);
8638
8643
  };
8639
8644
  DropdownListModel.prototype.chevronPointerDown = function (event) {
8640
8645
  if (this._popupModel.isVisible) {
@@ -8802,8 +8807,8 @@ var DropdownListModel = /** @class */ (function (_super) {
8802
8807
  };
8803
8808
  DropdownListModel.prototype.dispose = function () {
8804
8809
  _super.prototype.dispose.call(this);
8805
- this.question && this.question.onPropertyChanged.remove(this.qustionPropertyChangedHandler);
8806
- this.qustionPropertyChangedHandler = undefined;
8810
+ this.question && this.question.onPropertyChanged.remove(this.questionPropertyChangedHandler);
8811
+ this.questionPropertyChangedHandler = undefined;
8807
8812
  if (!!this.listModel) {
8808
8813
  this.listModel.dispose();
8809
8814
  }
@@ -9842,8 +9847,8 @@ __webpack_require__.r(__webpack_exports__);
9842
9847
 
9843
9848
  var Version;
9844
9849
  var ReleaseDate;
9845
- Version = "" + "1.11.7";
9846
- ReleaseDate = "" + "2024-07-16";
9850
+ Version = "" + "1.11.8";
9851
+ ReleaseDate = "" + "2024-07-22";
9847
9852
  function checkLibraryVersion(ver, libraryName) {
9848
9853
  if (Version != ver) {
9849
9854
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -15843,7 +15848,11 @@ function getQuestionValueByContext(context, name) {
15843
15848
  }
15844
15849
  function displayValue(params) {
15845
15850
  var q = getQuestionValueByContext(this, params[0]);
15846
- return q ? q.displayValue : "";
15851
+ if (!q)
15852
+ return "";
15853
+ if (params.length > 1 && !!params[1])
15854
+ return q.getDisplayValue(true, params[1]);
15855
+ return q.displayValue;
15847
15856
  }
15848
15857
  FunctionFactory.Instance.register("displayValue", displayValue);
15849
15858
  function propertyValue(params) {
@@ -18353,9 +18362,10 @@ function property(options) {
18353
18362
  },
18354
18363
  set: function (val) {
18355
18364
  var newValue = processComputedUpdater(this, val);
18365
+ var prevValue = this.getPropertyValue(key);
18356
18366
  this.setPropertyValue(key, newValue);
18357
18367
  if (!!options && options.onSet) {
18358
- options.onSet(newValue, this);
18368
+ options.onSet(newValue, this, prevValue);
18359
18369
  }
18360
18370
  },
18361
18371
  });
@@ -21973,7 +21983,6 @@ var InputElementAdapter = /** @class */ (function () {
21973
21983
  this.clickHandler = function (event) {
21974
21984
  if (_this.inputElement.value == _this.inputMaskInstance.getMaskedValue("")) {
21975
21985
  _this.inputElement.setSelectionRange(0, 0);
21976
- event.preventDefault();
21977
21986
  }
21978
21987
  };
21979
21988
  this.beforeInputHandler = function (event) {
@@ -24191,6 +24200,82 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("page", [
24191
24200
  }, "panelbase");
24192
24201
 
24193
24202
 
24203
+ /***/ }),
24204
+
24205
+ /***/ "./src/panel-layout-column.ts":
24206
+ /*!************************************!*\
24207
+ !*** ./src/panel-layout-column.ts ***!
24208
+ \************************************/
24209
+ /*! exports provided: PanelLayoutColumnModel */
24210
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
24211
+
24212
+ "use strict";
24213
+ __webpack_require__.r(__webpack_exports__);
24214
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "PanelLayoutColumnModel", function() { return PanelLayoutColumnModel; });
24215
+ /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
24216
+ /* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./base */ "./src/base.ts");
24217
+ var __extends = (undefined && undefined.__extends) || (function () {
24218
+ var extendStatics = function (d, b) {
24219
+ extendStatics = Object.setPrototypeOf ||
24220
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
24221
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
24222
+ return extendStatics(d, b);
24223
+ };
24224
+ return function (d, b) {
24225
+ if (typeof b !== "function" && b !== null)
24226
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
24227
+ extendStatics(d, b);
24228
+ function __() { this.constructor = d; }
24229
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
24230
+ };
24231
+ })();
24232
+ var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
24233
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
24234
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
24235
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
24236
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
24237
+ };
24238
+
24239
+
24240
+ var PanelLayoutColumnModel = /** @class */ (function (_super) {
24241
+ __extends(PanelLayoutColumnModel, _super);
24242
+ function PanelLayoutColumnModel(width, questionTitleWidth) {
24243
+ var _this = _super.call(this) || this;
24244
+ _this.effectiveWidth = width;
24245
+ _this.questionTitleWidth = questionTitleWidth;
24246
+ return _this;
24247
+ }
24248
+ PanelLayoutColumnModel.prototype.getType = function () {
24249
+ return "panellayoutcolumn";
24250
+ };
24251
+ PanelLayoutColumnModel.prototype.isEmpty = function () {
24252
+ return !this.width && !this.questionTitleWidth;
24253
+ };
24254
+ __decorate([
24255
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
24256
+ ], PanelLayoutColumnModel.prototype, "width", void 0);
24257
+ __decorate([
24258
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({
24259
+ onSet: function (newValue, target, prevVal) {
24260
+ if (newValue !== prevVal) {
24261
+ target.width = newValue;
24262
+ }
24263
+ }
24264
+ })
24265
+ ], PanelLayoutColumnModel.prototype, "effectiveWidth", void 0);
24266
+ __decorate([
24267
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
24268
+ ], PanelLayoutColumnModel.prototype, "questionTitleWidth", void 0);
24269
+ return PanelLayoutColumnModel;
24270
+ }(_base__WEBPACK_IMPORTED_MODULE_1__["Base"]));
24271
+
24272
+ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("panellayoutcolumn", [
24273
+ { name: "effectiveWidth:number", isSerializable: false, minValue: 0 },
24274
+ { name: "width:number", visible: false },
24275
+ "questionTitleWidth",
24276
+ ], function (value) { return new PanelLayoutColumnModel(); });
24277
+
24278
+
24194
24279
  /***/ }),
24195
24280
 
24196
24281
  /***/ "./src/panel.ts":
@@ -24219,6 +24304,7 @@ __webpack_require__.r(__webpack_exports__);
24219
24304
  /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
24220
24305
  /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
24221
24306
  /* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./page */ "./src/page.ts");
24307
+ /* harmony import */ var _panel_layout_column__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ./panel-layout-column */ "./src/panel-layout-column.ts");
24222
24308
  var __extends = (undefined && undefined.__extends) || (function () {
24223
24309
  var extendStatics = function (d, b) {
24224
24310
  extendStatics = Object.setPrototypeOf ||
@@ -24259,6 +24345,7 @@ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from
24259
24345
 
24260
24346
 
24261
24347
 
24348
+
24262
24349
  var QuestionRowModel = /** @class */ (function (_super) {
24263
24350
  __extends(QuestionRowModel, _super);
24264
24351
  function QuestionRowModel(panel) {
@@ -24535,10 +24622,18 @@ var PanelModelBase = /** @class */ (function (_super) {
24535
24622
  var _this = _super.call(this, name) || this;
24536
24623
  _this.isQuestionsReady = false;
24537
24624
  _this.questionsValue = new Array();
24625
+ _this._columns = undefined;
24626
+ _this._columnsReady = false;
24538
24627
  _this.rowsAnimation = new _utils_animation__WEBPACK_IMPORTED_MODULE_11__["AnimationGroup"](_this.getRowsAnimationOptions(), function (value) {
24539
24628
  _this.setPropertyValue("visibleRows", value);
24540
24629
  }, function () { return _this.visibleRows; });
24541
24630
  _this.isRandomizing = false;
24631
+ _this.onColumnPropertyValueChangedCallback = function (name, oldValue, newValue, sender, arrayChanges) {
24632
+ if (_this._columnsReady) {
24633
+ _this.updateColumnWidth(_this.layoutColumns);
24634
+ _this.updateRootStyle();
24635
+ }
24636
+ };
24542
24637
  _this.locCountRowUpdates = 0;
24543
24638
  _this.createNewArray("rows", function (el, index) { _this.onAddRow(el); }, function (el) { _this.onRemoveRow(el); });
24544
24639
  _this.createNewArray("visibleRows");
@@ -24579,7 +24674,8 @@ var PanelModelBase = /** @class */ (function (_super) {
24579
24674
  isAnimationEnabled: function () { return _this.animationAllowed; },
24580
24675
  getAnimatedElement: function (row) { return row.getRootElement(); },
24581
24676
  getLeaveOptions: function (_) {
24582
- return { cssClass: _this.cssClasses.rowFadeOut,
24677
+ return {
24678
+ cssClass: _this.cssClasses.rowFadeOut,
24583
24679
  onBeforeRunAnimation: beforeRunAnimation
24584
24680
  };
24585
24681
  },
@@ -24624,10 +24720,14 @@ var PanelModelBase = /** @class */ (function (_super) {
24624
24720
  this.releaseAnimations();
24625
24721
  };
24626
24722
  PanelModelBase.prototype.endLoadingFromJson = function () {
24723
+ var _this = this;
24627
24724
  _super.prototype.endLoadingFromJson.call(this);
24628
24725
  this.updateDescriptionVisibility(this.description);
24629
24726
  this.markQuestionListDirty();
24630
24727
  this.onRowsChanged();
24728
+ this.layoutColumns.forEach(function (col) {
24729
+ col.onPropertyValueChangedCallback = _this.onColumnPropertyValueChangedCallback;
24730
+ });
24631
24731
  };
24632
24732
  Object.defineProperty(PanelModelBase.prototype, "hasTitle", {
24633
24733
  get: function () {
@@ -25410,6 +25510,51 @@ var PanelModelBase = /** @class */ (function (_super) {
25410
25510
  }
25411
25511
  }
25412
25512
  };
25513
+ PanelModelBase.prototype.calcMaxRowColSpan = function () {
25514
+ var maxRowColSpan = 0;
25515
+ this.rows.forEach(function (row) {
25516
+ var curRowSpan = 0;
25517
+ var userDefinedRow = false;
25518
+ row.elements.forEach(function (el) {
25519
+ if (!!el.width) {
25520
+ userDefinedRow = true;
25521
+ }
25522
+ curRowSpan += (el.colSpan || 1);
25523
+ });
25524
+ if (!userDefinedRow && curRowSpan > maxRowColSpan)
25525
+ maxRowColSpan = curRowSpan;
25526
+ });
25527
+ return maxRowColSpan;
25528
+ };
25529
+ PanelModelBase.prototype.updateColumnWidth = function (columns) {
25530
+ var remainingSpace = 0, remainingColCount = 0;
25531
+ columns.forEach(function (col) {
25532
+ if (!col.width) {
25533
+ remainingColCount++;
25534
+ }
25535
+ else {
25536
+ remainingSpace += col.width;
25537
+ col.setPropertyValue("effectiveWidth", col.width);
25538
+ }
25539
+ });
25540
+ if (!!remainingColCount) {
25541
+ var oneColumnWidth = Object(_utils_utils__WEBPACK_IMPORTED_MODULE_8__["roundTo2Decimals"])((100 - remainingSpace) / remainingColCount);
25542
+ for (var index = 0; index < columns.length; index++) {
25543
+ if (!columns[index].width) {
25544
+ columns[index].setPropertyValue("effectiveWidth", oneColumnWidth);
25545
+ }
25546
+ }
25547
+ }
25548
+ };
25549
+ PanelModelBase.prototype.updateColumns = function () {
25550
+ this._columns = undefined;
25551
+ this.updateRootStyle();
25552
+ };
25553
+ PanelModelBase.prototype.updateRootStyle = function () {
25554
+ var _a;
25555
+ _super.prototype.updateRootStyle.call(this);
25556
+ (_a = this.elements) === null || _a === void 0 ? void 0 : _a.forEach(function (el) { return el.updateRootStyle(); });
25557
+ };
25413
25558
  PanelModelBase.prototype.updateCustomWidgets = function () {
25414
25559
  for (var i = 0; i < this.elements.length; i++) {
25415
25560
  this.elements[i].updateCustomWidgets();
@@ -25470,6 +25615,69 @@ var PanelModelBase = /** @class */ (function (_super) {
25470
25615
  PanelModelBase.prototype.getQuestionTitleWidth = function () {
25471
25616
  return this.questionTitleWidth || this.parent && this.parent.getQuestionTitleWidth();
25472
25617
  };
25618
+ Object.defineProperty(PanelModelBase.prototype, "columns", {
25619
+ get: function () {
25620
+ if (!this._columns) {
25621
+ this.generateColumns();
25622
+ }
25623
+ return this._columns || [];
25624
+ },
25625
+ enumerable: false,
25626
+ configurable: true
25627
+ });
25628
+ PanelModelBase.prototype.generateColumns = function () {
25629
+ var maxRowColSpan = this.calcMaxRowColSpan();
25630
+ var columns = [].concat(this.layoutColumns);
25631
+ if (maxRowColSpan <= this.layoutColumns.length) {
25632
+ columns = this.layoutColumns.slice(0, maxRowColSpan);
25633
+ }
25634
+ else {
25635
+ for (var index = this.layoutColumns.length; index < maxRowColSpan; index++) {
25636
+ var newCol = new _panel_layout_column__WEBPACK_IMPORTED_MODULE_14__["PanelLayoutColumnModel"]();
25637
+ newCol.onPropertyValueChangedCallback = this.onColumnPropertyValueChangedCallback;
25638
+ columns.push(newCol);
25639
+ }
25640
+ }
25641
+ this._columns = columns;
25642
+ try {
25643
+ this._columnsReady = false;
25644
+ this.updateColumnWidth(columns);
25645
+ }
25646
+ finally {
25647
+ this._columnsReady = true;
25648
+ }
25649
+ this.layoutColumns = columns;
25650
+ };
25651
+ PanelModelBase.prototype.getColumsForElement = function (el) {
25652
+ var row = this.findRowByElement(el);
25653
+ if (!row || !this.survey || !this.survey.gridLayoutEnabled)
25654
+ return [];
25655
+ var lastExpandableElementIndex = row.elements.length - 1;
25656
+ while (lastExpandableElementIndex >= 0) {
25657
+ if (!row.elements[lastExpandableElementIndex].getPropertyValueWithoutDefault("colSpan")) {
25658
+ break;
25659
+ }
25660
+ lastExpandableElementIndex--;
25661
+ }
25662
+ var elementIndex = row.elements.indexOf(el);
25663
+ var startIndex = 0;
25664
+ for (var index = 0; index < elementIndex; index++) {
25665
+ startIndex += row.elements[index].colSpan;
25666
+ }
25667
+ var currentColSpan = el.getPropertyValueWithoutDefault("colSpan");
25668
+ if (!currentColSpan && elementIndex === lastExpandableElementIndex) {
25669
+ var usedSpans = 0;
25670
+ for (var index = 0; index < row.elements.length; index++) {
25671
+ if (index !== lastExpandableElementIndex) {
25672
+ usedSpans += row.elements[index].colSpan;
25673
+ }
25674
+ }
25675
+ currentColSpan = this.columns.length - usedSpans;
25676
+ }
25677
+ var result = this.columns.slice(startIndex, startIndex + (currentColSpan || 1));
25678
+ el.setPropertyValue("effectiveColSpan", result.length);
25679
+ return result;
25680
+ };
25473
25681
  PanelModelBase.prototype.getStartIndex = function () {
25474
25682
  if (!!this.parent)
25475
25683
  return this.parent.getQuestionStartIndex();
@@ -25554,6 +25762,7 @@ var PanelModelBase = /** @class */ (function (_super) {
25554
25762
  return;
25555
25763
  this.blockAnimations();
25556
25764
  this.setArrayPropertyDirectly("rows", this.buildRows());
25765
+ this.updateColumns();
25557
25766
  this.releaseAnimations();
25558
25767
  };
25559
25768
  PanelModelBase.prototype.blockRowsUpdates = function () {
@@ -25753,6 +25962,7 @@ var PanelModelBase = /** @class */ (function (_super) {
25753
25962
  if (!this.canBuildRows())
25754
25963
  return;
25755
25964
  this.updateRowsRemoveElementFromRow(element, this.findRowByElement(element));
25965
+ this.updateColumns();
25756
25966
  };
25757
25967
  PanelModelBase.prototype.updateRowsRemoveElementFromRow = function (element, row) {
25758
25968
  if (!row || !row.panel)
@@ -25980,6 +26190,7 @@ var PanelModelBase = /** @class */ (function (_super) {
25980
26190
  if (this.wasRendered) {
25981
26191
  element.onFirstRendering();
25982
26192
  }
26193
+ this.updateColumns();
25983
26194
  return true;
25984
26195
  };
25985
26196
  PanelModelBase.prototype.insertElement = function (element, dest, location) {
@@ -26096,6 +26307,7 @@ var PanelModelBase = /** @class */ (function (_super) {
26096
26307
  return false;
26097
26308
  }
26098
26309
  this.elements.splice(index, 1);
26310
+ this.updateColumns();
26099
26311
  return true;
26100
26312
  };
26101
26313
  PanelModelBase.prototype.removeQuestion = function (question) {
@@ -26208,6 +26420,16 @@ var PanelModelBase = /** @class */ (function (_super) {
26208
26420
  PanelModelBase.prototype.getCssError = function (cssClasses) {
26209
26421
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__["CssClassBuilder"]().append(cssClasses.error.root).toString();
26210
26422
  };
26423
+ PanelModelBase.prototype.getSerializableColumnsValue = function () {
26424
+ var tailIndex = -1;
26425
+ for (var index = this.layoutColumns.length - 1; index >= 0; index--) {
26426
+ if (!this.layoutColumns[index].isEmpty()) {
26427
+ tailIndex = index;
26428
+ break;
26429
+ }
26430
+ }
26431
+ return this.layoutColumns.slice(0, tailIndex + 1);
26432
+ };
26211
26433
  PanelModelBase.prototype.dispose = function () {
26212
26434
  _super.prototype.dispose.call(this);
26213
26435
  if (this.rows) {
@@ -26222,6 +26444,9 @@ var PanelModelBase = /** @class */ (function (_super) {
26222
26444
  this.elements.splice(0, this.elements.length);
26223
26445
  };
26224
26446
  PanelModelBase.panelCounter = 100;
26447
+ __decorate([
26448
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["propertyArray"])()
26449
+ ], PanelModelBase.prototype, "layoutColumns", void 0);
26225
26450
  __decorate([
26226
26451
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: true })
26227
26452
  ], PanelModelBase.prototype, "showTitle", void 0);
@@ -26253,6 +26478,10 @@ var PanelModel = /** @class */ (function (_super) {
26253
26478
  }
26254
26479
  });
26255
26480
  _this.registerPropertyChangedHandlers(["indent", "innerIndent", "rightIndent"], function () { _this.onIndentChanged(); });
26481
+ _this.registerPropertyChangedHandlers(["colSpan"], function () { var _a; (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.updateColumns(); });
26482
+ _this.registerPropertyChangedHandlers(["title"], function () {
26483
+ _this.calcHasTextInTitle();
26484
+ });
26256
26485
  return _this;
26257
26486
  }
26258
26487
  PanelModel.prototype.getType = function () {
@@ -26272,13 +26501,25 @@ var PanelModel = /** @class */ (function (_super) {
26272
26501
  }
26273
26502
  return _super.prototype.getSurvey.call(this, live);
26274
26503
  };
26504
+ Object.defineProperty(PanelModel.prototype, "hasTextInTitle", {
26505
+ get: function () {
26506
+ return this.getPropertyValue("hasTextInTitle");
26507
+ },
26508
+ enumerable: false,
26509
+ configurable: true
26510
+ });
26511
+ PanelModel.prototype.calcHasTextInTitle = function () {
26512
+ this.setPropertyValue("hasTextInTitle", !!this.title);
26513
+ };
26275
26514
  PanelModel.prototype.onSurveyLoad = function () {
26276
26515
  _super.prototype.onSurveyLoad.call(this);
26277
26516
  this.onIndentChanged();
26517
+ this.calcHasTextInTitle();
26278
26518
  };
26279
26519
  PanelModel.prototype.onSetData = function () {
26280
26520
  _super.prototype.onSetData.call(this);
26281
26521
  this.onIndentChanged();
26522
+ this.calcHasTextInTitle();
26282
26523
  };
26283
26524
  Object.defineProperty(PanelModel.prototype, "isPanel", {
26284
26525
  get: function () {
@@ -26584,7 +26825,7 @@ var PanelModel = /** @class */ (function (_super) {
26584
26825
  get: function () {
26585
26826
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_9__["CssClassBuilder"]()
26586
26827
  .append(this.getCssTitle(this.cssClasses.panel))
26587
- .append(this.cssClasses.panel.titleHidden, !this.title && this.isDesignMode)
26828
+ .append(this.cssClasses.panel.titleHidden, !this.hasTextInTitle && this.isDesignMode)
26588
26829
  .toString();
26589
26830
  },
26590
26831
  enumerable: false,
@@ -26688,6 +26929,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("panelbase", [
26688
26929
  default: "default",
26689
26930
  choices: ["default", "top", "bottom", "left", "hidden"],
26690
26931
  },
26932
+ {
26933
+ name: "layoutColumns:panellayoutcolumns",
26934
+ className: "panellayoutcolumn", isArray: true,
26935
+ onSerializeValue: function (obj) { return obj.getSerializableColumnsValue(); }
26936
+ },
26691
26937
  { name: "title:text", serializationProperty: "locTitle" },
26692
26938
  { name: "description:text", serializationProperty: "locDescription" },
26693
26939
  {
@@ -26714,6 +26960,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("panel", [
26714
26960
  "width",
26715
26961
  { name: "minWidth", defaultFunc: function () { return "auto"; } },
26716
26962
  { name: "maxWidth", defaultFunc: function () { return _settings__WEBPACK_IMPORTED_MODULE_7__["settings"].maxWidth; } },
26963
+ {
26964
+ name: "colSpan:number", visible: false,
26965
+ onSerializeValue: function (obj) { return obj.getPropertyValue("colSpan"); },
26966
+ },
26967
+ { name: "effectiveColSpan:number", minValue: 1, isSerializable: false },
26717
26968
  { name: "innerIndent:number", default: 0, choices: [0, 1, 2, 3] },
26718
26969
  { name: "indent:number", default: 0, choices: [0, 1, 2, 3], visible: false },
26719
26970
  {
@@ -28676,6 +28927,7 @@ var Question = /** @class */ (function (_super) {
28676
28927
  _this.updateQuestionCss();
28677
28928
  });
28678
28929
  _this.registerPropertyChangedHandlers(["isMobile"], function () { _this.onMobileChanged(); });
28930
+ _this.registerPropertyChangedHandlers(["colSpan"], function () { var _a; (_a = _this.parent) === null || _a === void 0 ? void 0 : _a.updateColumns(); });
28679
28931
  return _this;
28680
28932
  }
28681
28933
  Question.getQuestionId = function () {
@@ -29283,18 +29535,31 @@ var Question = /** @class */ (function (_super) {
29283
29535
  Object.defineProperty(Question.prototype, "titleWidth", {
29284
29536
  get: function () {
29285
29537
  if (this.getTitleLocation() === "left") {
29286
- if (!!this.parent) {
29538
+ var columns = this.parent.getColumsForElement(this);
29539
+ var columnCount = columns.length;
29540
+ if (columnCount !== 0 && !!columns[0].questionTitleWidth)
29541
+ return columns[0].questionTitleWidth;
29542
+ var percentWidth = this.getPercentQuestionTitleWidth();
29543
+ if (!percentWidth && !!this.parent) {
29287
29544
  var width = this.parent.getQuestionTitleWidth();
29288
29545
  if (width && !isNaN(width))
29289
29546
  width = width + "px";
29290
29547
  return width;
29291
29548
  }
29549
+ return (percentWidth / (columnCount || 1)) + "%";
29292
29550
  }
29293
29551
  return undefined;
29294
29552
  },
29295
29553
  enumerable: false,
29296
29554
  configurable: true
29297
29555
  });
29556
+ Question.prototype.getPercentQuestionTitleWidth = function () {
29557
+ var width = !!this.parent && this.parent.getQuestionTitleWidth();
29558
+ if (!!width && width[width.length - 1] === "%") {
29559
+ return parseInt(width);
29560
+ }
29561
+ return undefined;
29562
+ };
29298
29563
  /**
29299
29564
  * Returns title location calculated based on the question's `titleLocation` property and the `questionTitleLocation` property of the question's containers (survey, page, or panel).
29300
29565
  * @see titleLocation
@@ -29978,9 +30243,10 @@ var Question = /** @class */ (function (_super) {
29978
30243
  this.expandAllParents();
29979
30244
  this.survey.scrollElementToTop(this, this, null, this.id, scrollIfVisible);
29980
30245
  }
29981
- var id = !onError
29982
- ? this.getFirstInputElementId()
29983
- : this.getFirstErrorInputElementId();
30246
+ this.focusInputElement(onError);
30247
+ };
30248
+ Question.prototype.focusInputElement = function (onError) {
30249
+ var id = !onError ? this.getFirstInputElementId() : this.getFirstErrorInputElementId();
29984
30250
  if (_survey_element__WEBPACK_IMPORTED_MODULE_2__["SurveyElement"].FocusElement(id)) {
29985
30251
  this.fireCallback(this.focusCallback);
29986
30252
  }
@@ -31712,13 +31978,6 @@ var Question = /** @class */ (function (_super) {
31712
31978
  enumerable: false,
31713
31979
  configurable: true
31714
31980
  });
31715
- Object.defineProperty(Question.prototype, "ariaExpanded", {
31716
- get: function () {
31717
- return null;
31718
- },
31719
- enumerable: false,
31720
- configurable: true
31721
- });
31722
31981
  Object.defineProperty(Question.prototype, "ariaErrormessage", {
31723
31982
  get: function () {
31724
31983
  if (this.isNewA11yStructure)
@@ -31805,6 +32064,9 @@ var Question = /** @class */ (function (_super) {
31805
32064
  __decorate([
31806
32065
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
31807
32066
  ], Question.prototype, "forceIsInputReadOnly", void 0);
32067
+ __decorate([
32068
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
32069
+ ], Question.prototype, "ariaExpanded", void 0);
31808
32070
  __decorate([
31809
32071
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({ localizable: true, onSet: function (val, target) { return target.calcRenderedCommentPlaceholder(); } })
31810
32072
  ], Question.prototype, "commentPlaceholder", void 0);
@@ -31839,6 +32101,11 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("question", [
31839
32101
  { name: "width" },
31840
32102
  { name: "minWidth", defaultFunc: function () { return _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].minWidth; } },
31841
32103
  { name: "maxWidth", defaultFunc: function () { return _settings__WEBPACK_IMPORTED_MODULE_8__["settings"].maxWidth; } },
32104
+ {
32105
+ name: "colSpan:number", visible: false,
32106
+ onSerializeValue: function (obj) { return obj.getPropertyValue("colSpan"); },
32107
+ },
32108
+ { name: "effectiveColSpan:number", minValue: 1, isSerializable: false },
31842
32109
  { name: "startWithNewLine:boolean", default: true, layout: "row" },
31843
32110
  { name: "indent:number", default: 0, choices: [0, 1, 2, 3], layout: "row" },
31844
32111
  {
@@ -36886,6 +37153,10 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
36886
37153
  QuestionCustomModelBase.prototype.getQuestionTitleWidth = function () {
36887
37154
  return undefined;
36888
37155
  };
37156
+ QuestionCustomModelBase.prototype.getColumsForElement = function (el) {
37157
+ return [];
37158
+ };
37159
+ QuestionCustomModelBase.prototype.updateColumns = function () { };
36889
37160
  QuestionCustomModelBase.prototype.getQuestionStartIndex = function () {
36890
37161
  return this.getStartIndex();
36891
37162
  };
@@ -37848,14 +38119,6 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
37848
38119
  enumerable: false,
37849
38120
  configurable: true
37850
38121
  });
37851
- Object.defineProperty(QuestionDropdownModel.prototype, "ariaExpanded", {
37852
- get: function () {
37853
- var popupModel = this.popupModel;
37854
- return !!popupModel && popupModel.isVisible ? "true" : "false";
37855
- },
37856
- enumerable: false,
37857
- configurable: true
37858
- });
37859
38122
  QuestionDropdownModel.prototype.onOpenedCallBack = function () {
37860
38123
  this.onOpened.fire(this, { question: this, choices: this.choices });
37861
38124
  };
@@ -37903,6 +38166,12 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
37903
38166
  this.lastSelectedItemValue = null;
37904
38167
  (_a = this.dropdownListModel) === null || _a === void 0 ? void 0 : _a.clear();
37905
38168
  };
38169
+ QuestionDropdownModel.prototype.afterRenderCore = function (el) {
38170
+ _super.prototype.afterRenderCore.call(this, el);
38171
+ if (!!this.dropdownListModelValue) {
38172
+ this.dropdownListModelValue.clear();
38173
+ }
38174
+ };
37906
38175
  QuestionDropdownModel.prototype.onClick = function (e) {
37907
38176
  !!this.onOpenedCallBack && this.onOpenedCallBack();
37908
38177
  };
@@ -49515,6 +49784,10 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
49515
49784
  QuestionMultipleTextModel.prototype.getQuestionTitleWidth = function () {
49516
49785
  return undefined;
49517
49786
  };
49787
+ QuestionMultipleTextModel.prototype.getColumsForElement = function (el) {
49788
+ return [];
49789
+ };
49790
+ QuestionMultipleTextModel.prototype.updateColumns = function () { };
49518
49791
  QuestionMultipleTextModel.prototype.getQuestionStartIndex = function () {
49519
49792
  return this.getStartIndex();
49520
49793
  };
@@ -54649,17 +54922,6 @@ var QuestionRatingModel = /** @class */ (function (_super) {
54649
54922
  QuestionRatingModel.prototype.getDesktopRenderAs = function () {
54650
54923
  return (this.displayMode == "dropdown") ? "dropdown" : "default";
54651
54924
  };
54652
- Object.defineProperty(QuestionRatingModel.prototype, "ariaExpanded", {
54653
- get: function () {
54654
- var _a;
54655
- var popupModel = (_a = this.dropdownListModel) === null || _a === void 0 ? void 0 : _a.popupModel;
54656
- if (!popupModel)
54657
- return null;
54658
- return popupModel.isVisible ? "true" : "false";
54659
- },
54660
- enumerable: false,
54661
- configurable: true
54662
- });
54663
54925
  Object.defineProperty(QuestionRatingModel.prototype, "dropdownListModel", {
54664
54926
  get: function () {
54665
54927
  if (this.renderAs === "dropdown") {
@@ -55618,14 +55880,6 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
55618
55880
  enumerable: false,
55619
55881
  configurable: true
55620
55882
  });
55621
- Object.defineProperty(QuestionTagboxModel.prototype, "ariaExpanded", {
55622
- get: function () {
55623
- var popupModel = this.popupModel;
55624
- return !!popupModel && popupModel.isVisible ? "true" : "false";
55625
- },
55626
- enumerable: false,
55627
- configurable: true
55628
- });
55629
55883
  QuestionTagboxModel.prototype.getControlClass = function () {
55630
55884
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_2__["CssClassBuilder"]()
55631
55885
  .append(this.cssClasses.control)
@@ -58050,6 +58304,35 @@ var settings = {
58050
58304
  "#": /[a-zA-Z0-9]/
58051
58305
  }
58052
58306
  },
58307
+ /**
58308
+ * Specifies whether to store date-time values in the following format: `"YYYY-MM-DDThh:mm:ss.sssZ"`. Applies only to form fields with [`inputType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#inputType) set to `"datetime-local"`.
58309
+ *
58310
+ * Default value: `false`
58311
+ *
58312
+ * If you enable this setting, date-time values are converted from local time to UTC when they are saved to the survey's [`data`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#data) object, while the question values remain in local time. Therefore, when you specify default values using a question's [`defaultValue`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#defaultValue) property, you need to use local time, but if you specify them using the `data` object, use a UTC date-time value in the following format: `"YYYY-MM-DDThh:mm:ss.sssZ"`.
58313
+ *
58314
+ * ```js
58315
+ * const surveyJson = {
58316
+ * "elements": [{
58317
+ * "name": "datetime",
58318
+ * "type": "text",
58319
+ * "title": "Select a date and time",
58320
+ * "inputType": "datetime-local",
58321
+ * "defaultValue": "2024-07-16T12:15:00" // Local date-time value
58322
+ * }]
58323
+ * }
58324
+ * ```
58325
+ *
58326
+ * ```js
58327
+ * import { Model } from "survey-core";
58328
+ * const surveyJson = { ... }
58329
+ * const survey = new Model(surveyJson);
58330
+ *
58331
+ * survey.data = {
58332
+ * datetime: "2024-07-16T12:15:00.000Z" // UTC date-time value
58333
+ * }
58334
+ * ```
58335
+ */
58053
58336
  storeUtcDates: false
58054
58337
  };
58055
58338
 
@@ -58743,6 +59026,7 @@ var SurveyElement = /** @class */ (function (_super) {
58743
59026
  _this.registerPropertyChangedHandlers(["isReadOnly"], function () { _this.onReadOnlyChanged(); });
58744
59027
  _this.registerPropertyChangedHandlers(["errors"], function () { _this.updateVisibleErrors(); });
58745
59028
  _this.registerPropertyChangedHandlers(["isSingleInRow"], function () { _this.updateElementCss(false); });
59029
+ _this.registerPropertyChangedHandlers(["minWidth", "maxWidth", "renderWidth", "allowRootStyle", "parent"], function () { _this.updateRootStyle(); });
58746
59030
  return _this;
58747
59031
  }
58748
59032
  SurveyElement.getProgressInfoByElements = function (children, isRequired) {
@@ -58837,6 +59121,16 @@ var SurveyElement = /** @class */ (function (_super) {
58837
59121
  }
58838
59122
  return false;
58839
59123
  };
59124
+ Object.defineProperty(SurveyElement.prototype, "colSpan", {
59125
+ get: function () {
59126
+ return this.getPropertyValue("colSpan", 1);
59127
+ },
59128
+ set: function (val) {
59129
+ this.setPropertyValue("colSpan", val);
59130
+ },
59131
+ enumerable: false,
59132
+ configurable: true
59133
+ });
58840
59134
  SurveyElement.prototype.onPropertyValueChanged = function (name, oldValue, newValue) {
58841
59135
  _super.prototype.onPropertyValueChanged.call(this, name, oldValue, newValue);
58842
59136
  if (name === "state") {
@@ -59682,12 +59976,24 @@ var SurveyElement = /** @class */ (function (_super) {
59682
59976
  enumerable: false,
59683
59977
  configurable: true
59684
59978
  });
59685
- Object.defineProperty(SurveyElement.prototype, "rootStyle", {
59686
- get: function () {
59687
- var style = {};
59979
+ SurveyElement.prototype.updateRootStyle = function () {
59980
+ var style = {};
59981
+ var _width;
59982
+ if (!!this.parent) {
59983
+ var columns = this.parent.getColumsForElement(this);
59984
+ _width = columns.reduce(function (sum, col) { return col.effectiveWidth + sum; }, 0);
59985
+ if (!!_width && _width !== 100) {
59986
+ style["flexGrow"] = 0;
59987
+ style["flexShrink"] = 0;
59988
+ style["flexBasis"] = _width + "%";
59989
+ style["minWidth"] = undefined;
59990
+ style["maxWidth"] = undefined;
59991
+ }
59992
+ }
59993
+ if (Object.keys(style).length == 0) {
59688
59994
  var minWidth = this.minWidth;
59689
59995
  if (minWidth != "auto")
59690
- minWidth = "min(100%, " + this.minWidth + ")";
59996
+ minWidth = "min(100%, " + minWidth + ")";
59691
59997
  if (this.allowRootStyle && this.renderWidth) {
59692
59998
  // style["width"] = this.renderWidth;
59693
59999
  style["flexGrow"] = 1;
@@ -59696,11 +60002,9 @@ var SurveyElement = /** @class */ (function (_super) {
59696
60002
  style["minWidth"] = minWidth;
59697
60003
  style["maxWidth"] = this.maxWidth;
59698
60004
  }
59699
- return style;
59700
- },
59701
- enumerable: false,
59702
- configurable: true
59703
- });
60005
+ }
60006
+ this.rootStyle = style;
60007
+ };
59704
60008
  SurveyElement.prototype.isContainsSelection = function (el) {
59705
60009
  var elementWithSelection = undefined;
59706
60010
  var _document = _global_variables_utils__WEBPACK_IMPORTED_MODULE_9__["DomDocumentHelper"].getDocument();
@@ -59854,7 +60158,8 @@ var SurveyElement = /** @class */ (function (_super) {
59854
60158
  },
59855
60159
  getLeaveOptions: function () {
59856
60160
  var cssClasses = _this.isPanel ? _this.cssClasses.panel : _this.cssClasses;
59857
- return { cssClass: cssClasses.contentFadeOut,
60161
+ return {
60162
+ cssClass: cssClasses.contentFadeOut,
59858
60163
  onBeforeRunAnimation: beforeRunAnimation,
59859
60164
  onAfterRunAnimation: afterRunAnimation
59860
60165
  };
@@ -59910,6 +60215,13 @@ var SurveyElement = /** @class */ (function (_super) {
59910
60215
  __decorate([
59911
60216
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
59912
60217
  ], SurveyElement.prototype, "isDragMe", void 0);
60218
+ __decorate([
60219
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({
60220
+ onSet: function (newValue, target) {
60221
+ target.colSpan = newValue;
60222
+ }
60223
+ })
60224
+ ], SurveyElement.prototype, "effectiveColSpan", void 0);
59913
60225
  __decorate([
59914
60226
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: false })
59915
60227
  ], SurveyElement.prototype, "hasVisibleErrors", void 0);
@@ -59919,6 +60231,9 @@ var SurveyElement = /** @class */ (function (_super) {
59919
60231
  __decorate([
59920
60232
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ defaultValue: true })
59921
60233
  ], SurveyElement.prototype, "allowRootStyle", void 0);
60234
+ __decorate([
60235
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
60236
+ ], SurveyElement.prototype, "rootStyle", void 0);
59922
60237
  __decorate([
59923
60238
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])()
59924
60239
  ], SurveyElement.prototype, "_renderedIsExpanded", void 0);
@@ -63260,7 +63575,8 @@ var SurveyModel = /** @class */ (function (_super) {
63260
63575
  }
63261
63576
  if (data) {
63262
63577
  for (var key in data) {
63263
- this.setDataValueCore(this.valuesHash, key, data[key]);
63578
+ var dataKey = typeof key === "string" ? key.trim() : key;
63579
+ this.setDataValueCore(this.valuesHash, dataKey, data[key]);
63264
63580
  }
63265
63581
  }
63266
63582
  this.updateAllQuestionsValue(clearData);
@@ -64849,7 +65165,11 @@ var SurveyModel = /** @class */ (function (_super) {
64849
65165
  return this.firstPageIsStarted && this.pages.length > 0 ? 1 : 0;
64850
65166
  };
64851
65167
  SurveyModel.prototype.setupPagesForPageModes = function (isSinglePage, isFirstLoad) {
65168
+ var _this = this;
64852
65169
  this.questionHashesClear();
65170
+ if (this.firstPageIsStarted && this.pages.length > 0) {
65171
+ this.pages[0].questions.forEach(function (q) { return _this.questionHashesAdded(q); });
65172
+ }
64853
65173
  this.isLockingUpdateOnPageModes = !isFirstLoad;
64854
65174
  var startIndex = this.getPageStartIndex();
64855
65175
  _super.prototype.startLoadingFromJson.call(this);
@@ -68480,6 +68800,9 @@ var SurveyModel = /** @class */ (function (_super) {
68480
68800
  __decorate([
68481
68801
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
68482
68802
  ], SurveyModel.prototype, "rootCss", void 0);
68803
+ __decorate([
68804
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
68805
+ ], SurveyModel.prototype, "gridLayoutEnabled", void 0);
68483
68806
  __decorate([
68484
68807
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])()
68485
68808
  ], SurveyModel.prototype, "calculatedWidthMode", void 0);
@@ -68777,6 +69100,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
68777
69100
  default: "auto",
68778
69101
  choices: ["auto", "static", "responsive"],
68779
69102
  },
69103
+ { name: "gridLayoutEnabled:boolean", default: false, visible: false },
68780
69104
  { name: "width", visibleIf: function (obj) { return obj.widthMode === "static"; } },
68781
69105
  { name: "fitToContainer:boolean", default: true, visible: false },
68782
69106
  { name: "headerView", default: "basic", choices: ["basic", "advanced"], visible: false },
@@ -71819,7 +72143,7 @@ function debounce(func) {
71819
72143
  /*!****************************!*\
71820
72144
  !*** ./src/utils/utils.ts ***!
71821
72145
  \****************************/
71822
- /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, showConfirmDialog, configConfirmDialog, compareArrays, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles */
72146
+ /*! exports provided: unwrap, getRenderedSize, getRenderedStyleSize, doKey2ClickBlur, doKey2ClickUp, doKey2ClickDown, sanitizeEditableContent, Logger, showConfirmDialog, configConfirmDialog, compareArrays, roundTo2Decimals, mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles */
71823
72147
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
71824
72148
 
71825
72149
  "use strict";
@@ -71835,6 +72159,7 @@ __webpack_require__.r(__webpack_exports__);
71835
72159
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "showConfirmDialog", function() { return showConfirmDialog; });
71836
72160
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "configConfirmDialog", function() { return configConfirmDialog; });
71837
72161
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "compareArrays", function() { return compareArrays; });
72162
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "roundTo2Decimals", function() { return roundTo2Decimals; });
71838
72163
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeValues", function() { return mergeValues; });
71839
72164
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getElementWidth", function() { return getElementWidth; });
71840
72165
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isContainerVisible", function() { return isContainerVisible; });
@@ -72399,6 +72724,9 @@ function compareArrays(oldValue, newValue, getKey) {
72399
72724
  });
72400
72725
  return { reorderedItems: reorderedItems, deletedItems: deletedItems, addedItems: addedItems, mergedItems: mergedItems };
72401
72726
  }
72727
+ function roundTo2Decimals(number) {
72728
+ return Math.round(number * 100) / 100;
72729
+ }
72402
72730
 
72403
72731
 
72404
72732