survey-core 1.9.114 → 1.9.115

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 (247) hide show
  1. package/defaultV2.css +113 -24
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +113 -24
  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 +3 -1
  24. package/i18n/english.js.map +1 -1
  25. package/i18n/english.min.js +2 -2
  26. package/i18n/estonian.js +1 -1
  27. package/i18n/estonian.min.js +1 -1
  28. package/i18n/finnish.js +1 -1
  29. package/i18n/finnish.min.js +1 -1
  30. package/i18n/french.js +1 -1
  31. package/i18n/french.min.js +1 -1
  32. package/i18n/georgian.js +1 -1
  33. package/i18n/georgian.min.js +1 -1
  34. package/i18n/german.js +1 -1
  35. package/i18n/german.min.js +1 -1
  36. package/i18n/greek.js +1 -1
  37. package/i18n/greek.min.js +1 -1
  38. package/i18n/hebrew.js +1 -1
  39. package/i18n/hebrew.min.js +1 -1
  40. package/i18n/hindi.js +1 -1
  41. package/i18n/hindi.min.js +1 -1
  42. package/i18n/hungarian.js +1 -1
  43. package/i18n/hungarian.min.js +1 -1
  44. package/i18n/icelandic.js +1 -1
  45. package/i18n/icelandic.min.js +1 -1
  46. package/i18n/index.js +1 -1
  47. package/i18n/index.min.js +1 -1
  48. package/i18n/indonesian.js +1 -1
  49. package/i18n/indonesian.min.js +1 -1
  50. package/i18n/italian.js +1 -1
  51. package/i18n/italian.min.js +1 -1
  52. package/i18n/japanese.js +1 -1
  53. package/i18n/japanese.min.js +1 -1
  54. package/i18n/kazakh.js +1 -1
  55. package/i18n/kazakh.min.js +1 -1
  56. package/i18n/korean.js +1 -1
  57. package/i18n/korean.min.js +1 -1
  58. package/i18n/latvian.js +1 -1
  59. package/i18n/latvian.min.js +1 -1
  60. package/i18n/lithuanian.js +1 -1
  61. package/i18n/lithuanian.min.js +1 -1
  62. package/i18n/macedonian.js +1 -1
  63. package/i18n/macedonian.min.js +1 -1
  64. package/i18n/malay.js +1 -1
  65. package/i18n/malay.min.js +1 -1
  66. package/i18n/nl-BE.js +1 -1
  67. package/i18n/nl-BE.min.js +1 -1
  68. package/i18n/norwegian.js +1 -1
  69. package/i18n/norwegian.min.js +1 -1
  70. package/i18n/persian.js +1 -1
  71. package/i18n/persian.min.js +1 -1
  72. package/i18n/polish.js +1 -1
  73. package/i18n/polish.min.js +1 -1
  74. package/i18n/portuguese-br.js +1 -1
  75. package/i18n/portuguese-br.min.js +1 -1
  76. package/i18n/portuguese.js +1 -1
  77. package/i18n/portuguese.min.js +1 -1
  78. package/i18n/romanian.js +1 -1
  79. package/i18n/romanian.min.js +1 -1
  80. package/i18n/russian.js +1 -1
  81. package/i18n/russian.min.js +1 -1
  82. package/i18n/serbian.js +1 -1
  83. package/i18n/serbian.min.js +1 -1
  84. package/i18n/simplified-chinese.js +1 -1
  85. package/i18n/simplified-chinese.min.js +1 -1
  86. package/i18n/slovak.js +1 -1
  87. package/i18n/slovak.min.js +1 -1
  88. package/i18n/spanish.js +1 -1
  89. package/i18n/spanish.min.js +1 -1
  90. package/i18n/swahili.js +1 -1
  91. package/i18n/swahili.min.js +1 -1
  92. package/i18n/swedish.js +1 -1
  93. package/i18n/swedish.min.js +1 -1
  94. package/i18n/tajik.js +1 -1
  95. package/i18n/tajik.min.js +1 -1
  96. package/i18n/telugu.js +1 -1
  97. package/i18n/telugu.min.js +1 -1
  98. package/i18n/thai.js +1 -1
  99. package/i18n/thai.min.js +1 -1
  100. package/i18n/traditional-chinese.js +1 -1
  101. package/i18n/traditional-chinese.min.js +1 -1
  102. package/i18n/turkish.js +1 -1
  103. package/i18n/turkish.min.js +1 -1
  104. package/i18n/ukrainian.js +1 -1
  105. package/i18n/ukrainian.min.js +1 -1
  106. package/i18n/urdu.js +1 -1
  107. package/i18n/urdu.min.js +1 -1
  108. package/i18n/vietnamese.js +1 -1
  109. package/i18n/vietnamese.min.js +1 -1
  110. package/i18n/welsh.js +1 -1
  111. package/i18n/welsh.min.js +1 -1
  112. package/modern.css +1 -1
  113. package/modern.fontless.css +1 -1
  114. package/modern.fontless.min.css +1 -1
  115. package/modern.min.css +1 -1
  116. package/package.json +1 -1
  117. package/plugins/bootstrap-integration.js +1 -1
  118. package/plugins/bootstrap-integration.min.js +1 -1
  119. package/plugins/bootstrap-material-integration.js +1 -1
  120. package/plugins/bootstrap-material-integration.min.js +1 -1
  121. package/survey.core.js +321 -109
  122. package/survey.core.js.map +1 -1
  123. package/survey.core.min.js +3 -3
  124. package/survey.css +1 -1
  125. package/survey.i18n.js +1 -1
  126. package/survey.i18n.min.js +1 -1
  127. package/survey.min.css +1 -1
  128. package/themes/borderless-dark-panelless.js +1 -1
  129. package/themes/borderless-dark-panelless.min.js +1 -1
  130. package/themes/borderless-dark.js +1 -1
  131. package/themes/borderless-dark.min.js +1 -1
  132. package/themes/borderless-light-panelless..js +1 -1
  133. package/themes/borderless-light-panelless..min.js +1 -1
  134. package/themes/borderless-light.js +1 -1
  135. package/themes/borderless-light.min.js +1 -1
  136. package/themes/contrast-dark-panelless.js +1 -1
  137. package/themes/contrast-dark-panelless.min.js +1 -1
  138. package/themes/contrast-dark.js +1 -1
  139. package/themes/contrast-dark.min.js +1 -1
  140. package/themes/contrast-light-panelless.js +1 -1
  141. package/themes/contrast-light-panelless.min.js +1 -1
  142. package/themes/contrast-light.js +1 -1
  143. package/themes/contrast-light.min.js +1 -1
  144. package/themes/default-dark-panelless.js +1 -1
  145. package/themes/default-dark-panelless.min.js +1 -1
  146. package/themes/default-dark.js +1 -1
  147. package/themes/default-dark.min.js +1 -1
  148. package/themes/default-light-panelless.js +1 -1
  149. package/themes/default-light-panelless.min.js +1 -1
  150. package/themes/default-light.js +1 -1
  151. package/themes/default-light.min.js +1 -1
  152. package/themes/doubleborder-dark-panelless.js +1 -1
  153. package/themes/doubleborder-dark-panelless.min.js +1 -1
  154. package/themes/doubleborder-dark.js +1 -1
  155. package/themes/doubleborder-dark.min.js +1 -1
  156. package/themes/doubleborder-light-panelles.js +1 -1
  157. package/themes/doubleborder-light-panelles.min.js +1 -1
  158. package/themes/doubleborder-light.js +1 -1
  159. package/themes/doubleborder-light.min.js +1 -1
  160. package/themes/flat-dark-panelless.js +1 -1
  161. package/themes/flat-dark-panelless.min.js +1 -1
  162. package/themes/flat-dark.js +1 -1
  163. package/themes/flat-dark.min.js +1 -1
  164. package/themes/flat-light-panelless.js +1 -1
  165. package/themes/flat-light-panelless.min.js +1 -1
  166. package/themes/flat-light.js +1 -1
  167. package/themes/flat-light.min.js +1 -1
  168. package/themes/index.js +1 -1
  169. package/themes/index.min.js +1 -1
  170. package/themes/layered-dark-panelless.js +1 -1
  171. package/themes/layered-dark-panelless.min.js +1 -1
  172. package/themes/layered-dark.js +1 -1
  173. package/themes/layered-dark.min.js +1 -1
  174. package/themes/layered-light-panelless.js +1 -1
  175. package/themes/layered-light-panelless.min.js +1 -1
  176. package/themes/layered-light.js +1 -1
  177. package/themes/layered-light.min.js +1 -1
  178. package/themes/plain-dark-panelless.js +1 -1
  179. package/themes/plain-dark-panelless.min.js +1 -1
  180. package/themes/plain-dark.js +1 -1
  181. package/themes/plain-dark.min.js +1 -1
  182. package/themes/plain-light-panelless.js +1 -1
  183. package/themes/plain-light-panelless.min.js +1 -1
  184. package/themes/plain-light.js +1 -1
  185. package/themes/plain-light.min.js +1 -1
  186. package/themes/sharp-dark-panelless.js +1 -1
  187. package/themes/sharp-dark-panelless.min.js +1 -1
  188. package/themes/sharp-dark.js +1 -1
  189. package/themes/sharp-dark.min.js +1 -1
  190. package/themes/sharp-light-panelless.js +1 -1
  191. package/themes/sharp-light-panelless.min.js +1 -1
  192. package/themes/sharp-light.js +1 -1
  193. package/themes/sharp-light.min.js +1 -1
  194. package/themes/solid-dark-panelless.js +1 -1
  195. package/themes/solid-dark-panelless.min.js +1 -1
  196. package/themes/solid-dark.js +1 -1
  197. package/themes/solid-dark.min.js +1 -1
  198. package/themes/solid-light-panelless.js +1 -1
  199. package/themes/solid-light-panelless.min.js +1 -1
  200. package/themes/solid-light.js +1 -1
  201. package/themes/solid-light.min.js +1 -1
  202. package/themes/three-dimensional-dark-panelless.js +1 -1
  203. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  204. package/themes/three-dimensional-dark.js +1 -1
  205. package/themes/three-dimensional-dark.min.js +1 -1
  206. package/themes/three-dimensional-light-panelless.js +1 -1
  207. package/themes/three-dimensional-light-panelless.min.js +1 -1
  208. package/themes/three-dimensional-light.js +1 -1
  209. package/themes/three-dimensional-light.min.js +1 -1
  210. package/ts3.4/typings/actions/action.d.ts +2 -0
  211. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +15 -0
  212. package/ts3.4/typings/dragdrop/dom-adapter.d.ts +3 -0
  213. package/ts3.4/typings/expressions/expressions.d.ts +3 -0
  214. package/ts3.4/typings/jsonobject.d.ts +6 -1
  215. package/ts3.4/typings/localization/english.d.ts +2 -0
  216. package/ts3.4/typings/question.d.ts +4 -1
  217. package/ts3.4/typings/question_comment.d.ts +1 -0
  218. package/ts3.4/typings/question_custom.d.ts +2 -0
  219. package/ts3.4/typings/question_file.d.ts +2 -1
  220. package/ts3.4/typings/question_matrixdropdownrendered.d.ts +2 -0
  221. package/ts3.4/typings/question_multipletext.d.ts +4 -0
  222. package/ts3.4/typings/question_ranking.d.ts +2 -0
  223. package/ts3.4/typings/question_signaturepad.d.ts +1 -0
  224. package/ts3.4/typings/question_text.d.ts +2 -0
  225. package/ts3.4/typings/question_textbase.d.ts +2 -0
  226. package/ts3.4/typings/questionnonvalue.d.ts +2 -0
  227. package/ts3.4/typings/surveyStrings.d.ts +2 -0
  228. package/ts3.4/typings/utils/camera.d.ts +9 -2
  229. package/typings/actions/action.d.ts +2 -0
  230. package/typings/defaultCss/defaultV2Css.d.ts +15 -0
  231. package/typings/dragdrop/dom-adapter.d.ts +3 -0
  232. package/typings/expressions/expressions.d.ts +3 -0
  233. package/typings/jsonobject.d.ts +6 -1
  234. package/typings/localization/english.d.ts +2 -0
  235. package/typings/question.d.ts +4 -1
  236. package/typings/question_comment.d.ts +1 -0
  237. package/typings/question_custom.d.ts +2 -0
  238. package/typings/question_file.d.ts +2 -1
  239. package/typings/question_matrixdropdownrendered.d.ts +2 -0
  240. package/typings/question_multipletext.d.ts +5 -0
  241. package/typings/question_ranking.d.ts +2 -0
  242. package/typings/question_signaturepad.d.ts +1 -0
  243. package/typings/question_text.d.ts +2 -0
  244. package/typings/question_textbase.d.ts +2 -0
  245. package/typings/questionnonvalue.d.ts +2 -0
  246. package/typings/surveyStrings.d.ts +2 -0
  247. package/typings/utils/camera.d.ts +9 -2
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.114
2
+ * surveyjs - Survey JavaScript library v1.9.115
3
3
  * Copyright (c) 2015-2023 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1062,6 +1062,8 @@ var Action = /** @class */ (function (_super) {
1062
1062
  this._enabled = val;
1063
1063
  };
1064
1064
  Action.prototype.getEnabled = function () {
1065
+ if (this.enabledIf)
1066
+ return this.enabledIf();
1065
1067
  return this._enabled;
1066
1068
  };
1067
1069
  Action.prototype.setComponent = function (val) {
@@ -5592,6 +5594,7 @@ var defaultV2Css = {
5592
5594
  root: "sd-input sd-text",
5593
5595
  small: "sd-row__question--small",
5594
5596
  controlDisabled: "sd-input--disabled",
5597
+ constrolWithCharacterCounter: "sd-text__character-counter",
5595
5598
  content: "sd-text__content sd-question__content",
5596
5599
  remainingCharacterCounter: "sd-remaining-character-counter",
5597
5600
  onError: "sd-input--error"
@@ -5603,6 +5606,7 @@ var defaultV2Css = {
5603
5606
  itemLabelOnError: "sd-multipletext__item-container--error",
5604
5607
  itemLabelAllowFocus: "sd-multipletext__item-container--allow-focus",
5605
5608
  itemLabelAnswered: "sd-multipletext__item-container--answered",
5609
+ itemWithCharacterCounter: "sd-multipletext-item__character-counter",
5606
5610
  item: "sd-multipletext__item",
5607
5611
  itemTitle: "sd-multipletext__item-title",
5608
5612
  content: "sd-multipletext__content sd-question__content",
@@ -5700,6 +5704,7 @@ var defaultV2Css = {
5700
5704
  rootScroll: "sd-question--scroll",
5701
5705
  root: "sd-table sd-matrixdropdown",
5702
5706
  noHeader: "sd-table--no-header",
5707
+ hasFooter: "sd-table--has-footer",
5703
5708
  rootVerticalAlignTop: "sd-table--align-top",
5704
5709
  rootVerticalAlignMiddle: "sd-table--align-middle",
5705
5710
  tableWrapper: "sd-table-wrapper",
@@ -5710,6 +5715,9 @@ var defaultV2Css = {
5710
5715
  errorsCellBottom: "sd-table__cell--error-bottom",
5711
5716
  itemCell: "sd-table__cell--item",
5712
5717
  row: "sd-table__row",
5718
+ expandedRow: "sd-table__row--expanded",
5719
+ rowHasPanel: "sd-table__row--has-panel",
5720
+ rowHasEndActions: "sd-table__row--has-end-actions",
5713
5721
  headerCell: "sd-table__cell sd-table__cell--header",
5714
5722
  rowTextCell: "sd-table__cell sd-table__cell--row-text",
5715
5723
  columnTitleCell: "sd-table__cell--column-title",
@@ -5721,6 +5729,8 @@ var defaultV2Css = {
5721
5729
  detailIconId: "icon-expanddetail",
5722
5730
  detailIconExpandedId: "icon-collapsedetail",
5723
5731
  detailPanelCell: "sd-table__cell--detail-panel",
5732
+ detailRowCell: "sd-table__cell--detail",
5733
+ actionsCellPrefix: "sd-table__cell-action",
5724
5734
  actionsCell: "sd-table__cell sd-table__cell--actions",
5725
5735
  actionsCellDrag: "sd-table__cell--drag",
5726
5736
  emptyCell: "sd-table__cell--empty",
@@ -5734,10 +5744,14 @@ var defaultV2Css = {
5734
5744
  empty: "sd-question--empty",
5735
5745
  root: "sd-table sd-matrixdynamic",
5736
5746
  noHeader: "sd-table--no-header",
5747
+ hasFooter: "sd-table--has-footer",
5737
5748
  tableWrapper: "sd-table-wrapper",
5738
5749
  content: "sd-matrixdynamic__content sd-question__content",
5739
5750
  cell: "sd-table__cell",
5740
5751
  row: "sd-table__row",
5752
+ rowHasPanel: "sd-table__row--has-panel",
5753
+ rowHasEndActions: "sd-table__row--has-end-actions",
5754
+ expandedRow: "sd-table__row--expanded",
5741
5755
  itemCell: "sd-table__cell--item",
5742
5756
  headerCell: "sd-table__cell sd-table__cell--header",
5743
5757
  rowTextCell: "sd-table__cell sd-table__cell--row-text",
@@ -5752,6 +5766,8 @@ var defaultV2Css = {
5752
5766
  detailIconId: "icon-expanddetail",
5753
5767
  detailIconExpandedId: "icon-collapsedetail",
5754
5768
  detailPanelCell: "sd-table__cell--detail-panel",
5769
+ detailRowCell: "sd-table__cell--detail",
5770
+ actionsCellPrefix: "sd-table__cell-action",
5755
5771
  actionsCell: "sd-table__cell sd-table__cell--actions",
5756
5772
  actionsCellDrag: "sd-table__cell--drag",
5757
5773
  buttonAdd: "sd-matrixdynamic__add-btn",
@@ -5863,6 +5879,7 @@ var defaultV2Css = {
5863
5879
  removeFileButton: "sd-context-btn--negative sd-file__remove-file-button",
5864
5880
  dragAreaPlaceholder: "sd-file__drag-area-placeholder",
5865
5881
  imageWrapper: "sd-file__image-wrapper",
5882
+ imageWrapperDefaultImage: "sd-file__image-wrapper--default-image",
5866
5883
  single: "sd-file--single",
5867
5884
  singleImage: "sd-file--single-image",
5868
5885
  mobile: "sd-file--mobile",
@@ -6871,6 +6888,11 @@ __webpack_require__.r(__webpack_exports__);
6871
6888
  /* harmony import */ var _utils_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../utils/utils */ "./src/utils/utils.ts");
6872
6889
  /* harmony import */ var _utils_devices__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../utils/devices */ "./src/utils/devices.ts");
6873
6890
  /* harmony import */ var _settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../settings */ "./src/settings.ts");
6891
+ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {
6892
+ for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)
6893
+ to[j] = from[i];
6894
+ return to;
6895
+ };
6874
6896
 
6875
6897
 
6876
6898
 
@@ -6941,11 +6963,12 @@ var DragDropDOMAdapter = /** @class */ (function () {
6941
6963
  if (_utils_devices__WEBPACK_IMPORTED_MODULE_1__["IsTouch"]) {
6942
6964
  _this.savedTargetNode.style.cssText = null;
6943
6965
  _this.savedTargetNode && _this.savedTargetNode.parentElement.removeChild(_this.savedTargetNode);
6944
- _this.savedTargetNodeParent.appendChild(_this.savedTargetNode);
6966
+ _this.insertNodeToParentAtIndex(_this.savedTargetNodeParent, _this.savedTargetNode, _this.savedTargetNodeIndex);
6945
6967
  DragDropDOMAdapter.PreventScrolling = false;
6946
6968
  }
6947
6969
  _this.savedTargetNode = null;
6948
6970
  _this.savedTargetNodeParent = null;
6971
+ _this.savedTargetNodeIndex = null;
6949
6972
  _this.returnUserSelectBack();
6950
6973
  };
6951
6974
  this.drop = function () {
@@ -6991,6 +7014,7 @@ var DragDropDOMAdapter = /** @class */ (function () {
6991
7014
  _this.savedTargetNode.style.cssText =
6992
7015
  "\n position: absolute;\n height: 1px!important;\n width: 1px!important;\n overflow: hidden;\n clip: rect(1px 1px 1px 1px);\n clip: rect(1px, 1px, 1px, 1px);\n ";
6993
7016
  _this.savedTargetNodeParent = _this.savedTargetNode.parentElement;
7017
+ _this.savedTargetNodeIndex = _this.getNodeIndexInParent(_this.savedTargetNode);
6994
7018
  _this.rootElement.appendChild(_this.savedTargetNode);
6995
7019
  }
6996
7020
  _this.stopLongTap();
@@ -7148,6 +7172,12 @@ var DragDropDOMAdapter = /** @class */ (function () {
7148
7172
  }
7149
7173
  this.doStartDrag(event, draggedElement, parentElement, draggedElementNode);
7150
7174
  };
7175
+ DragDropDOMAdapter.prototype.getNodeIndexInParent = function (node) {
7176
+ return __spreadArray([], node.parentElement.childNodes).indexOf(node);
7177
+ };
7178
+ DragDropDOMAdapter.prototype.insertNodeToParentAtIndex = function (parent, node, index) {
7179
+ parent.insertBefore(node, parent.childNodes[index]);
7180
+ };
7151
7181
  DragDropDOMAdapter.PreventScrolling = false;
7152
7182
  return DragDropDOMAdapter;
7153
7183
  }());
@@ -8124,7 +8154,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8124
8154
  var _a;
8125
8155
  var focusedItem = this.listModel.focusedItem;
8126
8156
  if (!focusedItem && this.question.selectedItem) {
8127
- if (_itemvalue__WEBPACK_IMPORTED_MODULE_1__["ItemValue"].getItemByValue(this.question.choices, this.question.value)) {
8157
+ if (_itemvalue__WEBPACK_IMPORTED_MODULE_1__["ItemValue"].getItemByValue(this.question.visibleChoices, this.question.value)) {
8128
8158
  this.listModel.focusedItem = this.question.selectedItem;
8129
8159
  }
8130
8160
  }
@@ -9229,8 +9259,8 @@ __webpack_require__.r(__webpack_exports__);
9229
9259
  //import "../../modern.scss";
9230
9260
  var Version;
9231
9261
  var ReleaseDate;
9232
- Version = "" + "1.9.114";
9233
- ReleaseDate = "" + "2023-10-25";
9262
+ Version = "" + "1.9.115";
9263
+ ReleaseDate = "" + "2023-11-01";
9234
9264
  function checkLibraryVersion(ver, libraryName) {
9235
9265
  if (Version != ver) {
9236
9266
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -13984,6 +14014,15 @@ var UnaryOperand = /** @class */ (function (_super) {
13984
14014
  var uOp = op;
13985
14015
  return uOp.operator == this.operator && this.areOperatorsEquals(this.expression, uOp.expression);
13986
14016
  };
14017
+ UnaryOperand.prototype.hasFunction = function () {
14018
+ return this.expression.hasFunction();
14019
+ };
14020
+ UnaryOperand.prototype.hasAsyncFunction = function () {
14021
+ return this.expression.hasAsyncFunction();
14022
+ };
14023
+ UnaryOperand.prototype.addToAsyncList = function (list) {
14024
+ this.expression.addToAsyncList(list);
14025
+ };
13987
14026
  UnaryOperand.prototype.evaluate = function (processValue) {
13988
14027
  var value = this.expression.evaluate(processValue);
13989
14028
  return this.consumer.call(this, value);
@@ -17214,7 +17253,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("itemvalue", [
17214
17253
  /*!***************************!*\
17215
17254
  !*** ./src/jsonobject.ts ***!
17216
17255
  \***************************/
17217
- /*! exports provided: property, propertyArray, JsonObjectProperty, CustomPropertiesCollection, JsonMetadataClass, JsonMetadata, JsonError, JsonUnknownPropertyError, JsonMissingTypeErrorBase, JsonMissingTypeError, JsonIncorrectTypeError, JsonRequiredPropertyError, JsonObject, Serializer */
17256
+ /*! exports provided: property, propertyArray, JsonObjectProperty, CustomPropertiesCollection, JsonMetadataClass, JsonMetadata, JsonError, JsonUnknownPropertyError, JsonMissingTypeErrorBase, JsonMissingTypeError, JsonIncorrectTypeError, JsonRequiredPropertyError, JsonRequiredArrayPropertyError, JsonObject, Serializer */
17218
17257
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
17219
17258
 
17220
17259
  "use strict";
@@ -17231,6 +17270,7 @@ __webpack_require__.r(__webpack_exports__);
17231
17270
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JsonMissingTypeError", function() { return JsonMissingTypeError; });
17232
17271
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JsonIncorrectTypeError", function() { return JsonIncorrectTypeError; });
17233
17272
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JsonRequiredPropertyError", function() { return JsonRequiredPropertyError; });
17273
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JsonRequiredArrayPropertyError", function() { return JsonRequiredArrayPropertyError; });
17234
17274
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "JsonObject", function() { return JsonObject; });
17235
17275
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Serializer", function() { return Serializer; });
17236
17276
  /* harmony import */ var _surveyStrings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./surveyStrings */ "./src/surveyStrings.ts");
@@ -18130,6 +18170,10 @@ var JsonMetadataClass = /** @class */ (function () {
18130
18170
  }
18131
18171
  if (propInfo.baseClassName) {
18132
18172
  prop.baseClassName = propInfo.baseClassName;
18173
+ prop.isArray = true;
18174
+ }
18175
+ if (prop.isArray === true) {
18176
+ prop.isArray = true;
18133
18177
  }
18134
18178
  if (propInfo.classNamePart) {
18135
18179
  prop.classNamePart = propInfo.classNamePart;
@@ -18773,6 +18817,17 @@ var JsonRequiredPropertyError = /** @class */ (function (_super) {
18773
18817
  return JsonRequiredPropertyError;
18774
18818
  }(JsonError));
18775
18819
 
18820
+ var JsonRequiredArrayPropertyError = /** @class */ (function (_super) {
18821
+ __extends(JsonRequiredArrayPropertyError, _super);
18822
+ function JsonRequiredArrayPropertyError(propertyName, className) {
18823
+ var _this = _super.call(this, "arrayproperty", "The property '" + propertyName + "' should be an array in '" + className + "'.") || this;
18824
+ _this.propertyName = propertyName;
18825
+ _this.className = className;
18826
+ return _this;
18827
+ }
18828
+ return JsonRequiredArrayPropertyError;
18829
+ }(JsonError));
18830
+
18776
18831
  var JsonObject = /** @class */ (function () {
18777
18832
  function JsonObject() {
18778
18833
  this.errors = new Array();
@@ -18828,7 +18883,7 @@ var JsonObject = /** @class */ (function () {
18828
18883
  }
18829
18884
  continue;
18830
18885
  }
18831
- this.valueToObj(jsonObj[key], obj, property);
18886
+ this.valueToObj(jsonObj[key], obj, property, jsonObj);
18832
18887
  }
18833
18888
  if (obj.endLoadingFromJson) {
18834
18889
  obj.endLoadingFromJson();
@@ -18902,7 +18957,7 @@ var JsonObject = /** @class */ (function () {
18902
18957
  }
18903
18958
  }
18904
18959
  };
18905
- JsonObject.prototype.valueToObj = function (value, obj, property) {
18960
+ JsonObject.prototype.valueToObj = function (value, obj, property, jsonObj) {
18906
18961
  if (value === null || value === undefined)
18907
18962
  return;
18908
18963
  this.removePos(property, value);
@@ -18910,6 +18965,11 @@ var JsonObject = /** @class */ (function () {
18910
18965
  property.setValue(obj, value, this);
18911
18966
  return;
18912
18967
  }
18968
+ if (property.isArray && !Array.isArray(value) && !!value) {
18969
+ value = [value];
18970
+ var propName = !!jsonObj && property.alternativeName && !!jsonObj[property.alternativeName] ? property.alternativeName : property.name;
18971
+ this.addNewError(new JsonRequiredArrayPropertyError(propName, obj.getType()), !!jsonObj ? jsonObj : value, obj);
18972
+ }
18913
18973
  if (this.isValueArray(value)) {
18914
18974
  this.valueToArray(value, obj, property.name, property);
18915
18975
  return;
@@ -20150,6 +20210,8 @@ var englishStrings = {
20150
20210
  emptyRowsText: "There are no rows.",
20151
20211
  addPanel: "Add new",
20152
20212
  removePanel: "Remove",
20213
+ showDetails: "Show Details",
20214
+ hideDetails: "Hide Details",
20153
20215
  choices_Item: "item",
20154
20216
  matrix_column: "Column",
20155
20217
  matrix_row: "Row",
@@ -20540,9 +20602,11 @@ var QuestionMatrixBaseModel = /** @class */ (function (_super) {
20540
20602
  return true;
20541
20603
  };
20542
20604
  QuestionMatrixBaseModel.prototype.getTableCss = function () {
20605
+ var _a;
20543
20606
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
20544
20607
  .append(this.cssClasses.root)
20545
20608
  .append(this.cssClasses.noHeader, !this.showHeader)
20609
+ .append(this.cssClasses.hasFooter, !!((_a = this.renderedTable) === null || _a === void 0 ? void 0 : _a.showAddRowOnBottom))
20546
20610
  .append(this.cssClasses.rootAlternateRows, this.alternateRows)
20547
20611
  .append(this.cssClasses.rootVerticalAlignTop, (this.verticalAlign === "top"))
20548
20612
  .append(this.cssClasses.rootVerticalAlignMiddle, (this.verticalAlign === "middle")).toString();
@@ -20554,7 +20618,7 @@ var QuestionMatrixBaseModel = /** @class */ (function (_super) {
20554
20618
  * @see width
20555
20619
  */
20556
20620
  get: function () {
20557
- return this.getPropertyValue("columnMinWidth", "");
20621
+ return this.getPropertyValue("columnMinWidth") || "";
20558
20622
  },
20559
20623
  set: function (val) {
20560
20624
  this.setPropertyValue("columnMinWidth", val);
@@ -20567,7 +20631,7 @@ var QuestionMatrixBaseModel = /** @class */ (function (_super) {
20567
20631
  * A width for the column that displays row titles (first column). Accepts CSS values.
20568
20632
  */
20569
20633
  get: function () {
20570
- return this.getPropertyValue("rowTitleWidth", "");
20634
+ return this.getPropertyValue("rowTitleWidth") || "";
20571
20635
  },
20572
20636
  set: function (val) {
20573
20637
  this.setPropertyValue("rowTitleWidth", val);
@@ -26595,7 +26659,7 @@ var Question = /** @class */ (function (_super) {
26595
26659
  if (!!this.comment) {
26596
26660
  this.comment = undefined;
26597
26661
  }
26598
- this.isValueChangedDirectly = false;
26662
+ this.setValueChangedDirectly(false);
26599
26663
  };
26600
26664
  Question.prototype.unbindValue = function () {
26601
26665
  this.clearValue();
@@ -26659,7 +26723,7 @@ var Question = /** @class */ (function (_super) {
26659
26723
  Question.prototype.clearValueIfInvisibleCore = function (reason) {
26660
26724
  if (this.canClearValueAsInvisible(reason)) {
26661
26725
  this.clearValue();
26662
- this.isValueChangedDirectly = undefined;
26726
+ this.setValueChangedDirectly(undefined);
26663
26727
  }
26664
26728
  };
26665
26729
  Object.defineProperty(Question.prototype, "clearIfInvisible", {
@@ -27011,13 +27075,16 @@ var Question = /** @class */ (function (_super) {
27011
27075
  };
27012
27076
  Question.prototype.setDefaultValue = function () {
27013
27077
  var _this = this;
27014
- this.defaultValueRunner = this.getDefaultRunner(this.defaultValueRunner, this.defaultValueExpression);
27015
- this.setValueAndRunExpression(this.defaultValueRunner, this.getUnbindValue(this.defaultValue), function (val) {
27078
+ this.setDefaultValueCore(function (val) {
27016
27079
  if (!_this.isTwoValueEquals(_this.value, val)) {
27017
27080
  _this.value = val;
27018
27081
  }
27019
27082
  });
27020
27083
  };
27084
+ Question.prototype.setDefaultValueCore = function (func) {
27085
+ this.defaultValueRunner = this.getDefaultRunner(this.defaultValueRunner, this.defaultValueExpression);
27086
+ this.setValueAndRunExpression(this.defaultValueRunner, this.getUnbindValue(this.defaultValue), function (val) { return func(val); });
27087
+ };
27021
27088
  Question.prototype.isValueExpression = function (val) {
27022
27089
  return !!val && typeof val == "string" && val.length > 0 && val[0] == "=";
27023
27090
  };
@@ -27458,31 +27525,46 @@ var Question = /** @class */ (function (_super) {
27458
27525
  };
27459
27526
  //IQuestion
27460
27527
  Question.prototype.updateValueFromSurvey = function (newValue) {
27528
+ var _this = this;
27461
27529
  newValue = this.getUnbindValue(newValue);
27462
27530
  if (!!this.valueFromDataCallback) {
27463
27531
  newValue = this.valueFromDataCallback(newValue);
27464
27532
  }
27465
27533
  if (!this.checkIsValueCorrect(newValue))
27466
27534
  return;
27467
- this.isChangingViaDefaultValue = this.isValueEmpty(newValue);
27468
- this.setQuestionValue(this.valueFromData(newValue));
27469
- this.isChangingViaDefaultValue = false;
27535
+ var isEmpty = this.isValueEmpty(newValue);
27536
+ if (!isEmpty && this.defaultValueExpression) {
27537
+ this.setDefaultValueCore(function (val) {
27538
+ _this.updateValueFromSurveyCore(newValue, _this.isTwoValueEquals(newValue, val));
27539
+ });
27540
+ }
27541
+ else {
27542
+ this.updateValueFromSurveyCore(newValue, isEmpty);
27543
+ }
27470
27544
  this.updateDependedQuestions();
27471
27545
  this.updateIsAnswered();
27472
27546
  };
27547
+ Question.prototype.updateValueFromSurveyCore = function (newValue, viaDefaultVal) {
27548
+ this.isChangingViaDefaultValue = viaDefaultVal;
27549
+ this.setQuestionValue(this.valueFromData(newValue));
27550
+ this.isChangingViaDefaultValue = false;
27551
+ };
27473
27552
  Question.prototype.updateCommentFromSurvey = function (newValue) {
27474
27553
  this.questionComment = newValue;
27475
27554
  };
27476
27555
  Question.prototype.onChangeQuestionValue = function (newValue) { };
27477
- Question.prototype.setValueChangedDirectly = function () {
27478
- this.isValueChangedDirectly = true;
27556
+ Question.prototype.setValueChangedDirectly = function (val) {
27557
+ this.isValueChangedDirectly = val;
27558
+ if (!!this.setValueChangedDirectlyCallback) {
27559
+ this.setValueChangedDirectlyCallback(val);
27560
+ }
27479
27561
  };
27480
27562
  Question.prototype.setQuestionValue = function (newValue, updateIsAnswered) {
27481
27563
  if (updateIsAnswered === void 0) { updateIsAnswered = true; }
27482
27564
  newValue = this.convertToCorrectValue(newValue);
27483
27565
  var isEqual = this.isTwoValueEquals(this.questionValue, newValue);
27484
27566
  if (!isEqual && !this.isChangingViaDefaultValue) {
27485
- this.setValueChangedDirectly();
27567
+ this.setValueChangedDirectly(true);
27486
27568
  }
27487
27569
  this.questionValue = newValue;
27488
27570
  if (!isEqual) {
@@ -31814,7 +31896,7 @@ var QuestionCommentModel = /** @class */ (function (_super) {
31814
31896
  * @see autoGrow
31815
31897
  */
31816
31898
  get: function () {
31817
- return this.getPropertyValue("allowResize") && (this.survey && this.survey.allowResizeComment);
31899
+ return this.getPropertyValue("allowResize");
31818
31900
  },
31819
31901
  set: function (val) {
31820
31902
  this.setPropertyValue("allowResize", val);
@@ -31822,9 +31904,16 @@ var QuestionCommentModel = /** @class */ (function (_super) {
31822
31904
  enumerable: false,
31823
31905
  configurable: true
31824
31906
  });
31907
+ Object.defineProperty(QuestionCommentModel.prototype, "renderedAllowResize", {
31908
+ get: function () {
31909
+ return this.allowResize && (this.survey && this.survey.allowResizeComment);
31910
+ },
31911
+ enumerable: false,
31912
+ configurable: true
31913
+ });
31825
31914
  Object.defineProperty(QuestionCommentModel.prototype, "resizeStyle", {
31826
31915
  get: function () {
31827
- return this.allowResize ? "both" : "none";
31916
+ return this.renderedAllowResize ? "both" : "none";
31828
31917
  },
31829
31918
  enumerable: false,
31830
31919
  configurable: true
@@ -32425,6 +32514,7 @@ var QuestionCustomModel = /** @class */ (function (_super) {
32425
32514
  _this.onUpdateQuestionCssClasses(res, css);
32426
32515
  };
32427
32516
  res.hasCssErrorCallback = function () { return _this.errors.length > 0; };
32517
+ res.setValueChangedDirectlyCallback = function (val) { _this.setValueChangedDirectly(val); };
32428
32518
  }
32429
32519
  return res;
32430
32520
  };
@@ -32492,6 +32582,16 @@ var QuestionCustomModel = /** @class */ (function (_super) {
32492
32582
  return this.getContentQuestionValue();
32493
32583
  return _super.prototype.getValueCore.call(this);
32494
32584
  };
32585
+ QuestionCustomModel.prototype.setValueChangedDirectly = function (val) {
32586
+ if (this.isSettingValueChanged)
32587
+ return;
32588
+ this.isSettingValueChanged = true;
32589
+ _super.prototype.setValueChangedDirectly.call(this, val);
32590
+ if (!!this.contentQuestion) {
32591
+ this.contentQuestion.setValueChangedDirectly(val);
32592
+ }
32593
+ this.isSettingValueChanged = false;
32594
+ };
32495
32595
  QuestionCustomModel.prototype.initElement = function (el) {
32496
32596
  var _this = this;
32497
32597
  _super.prototype.initElement.call(this, el);
@@ -33932,6 +34032,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
33932
34032
 
33933
34033
 
33934
34034
 
34035
+
33935
34036
  /**
33936
34037
  * A class that describes the File Upload question type.
33937
34038
  *
@@ -34079,6 +34180,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
34079
34180
  iconSize: "auto",
34080
34181
  title: new _base__WEBPACK_IMPORTED_MODULE_3__["ComputedUpdater"](function () { return _this.takePhotoCaption; }),
34081
34182
  showTitle: new _base__WEBPACK_IMPORTED_MODULE_3__["ComputedUpdater"](function () { return !_this.isAnswered; }),
34183
+ enabledIf: function () { return !_this.isInputReadOnly; },
34082
34184
  action: function () {
34083
34185
  _this.startVideo();
34084
34186
  }
@@ -34089,6 +34191,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
34089
34191
  iconSize: "auto",
34090
34192
  title: new _base__WEBPACK_IMPORTED_MODULE_3__["ComputedUpdater"](function () { return _this.clearButtonCaption; }),
34091
34193
  showTitle: false,
34194
+ enabledIf: function () { return !_this.isInputReadOnly; },
34092
34195
  innerCss: new _base__WEBPACK_IMPORTED_MODULE_3__["ComputedUpdater"](function () { return _this.cssClasses.removeButton; }),
34093
34196
  action: function () {
34094
34197
  _this.doClean();
@@ -34097,10 +34200,9 @@ var QuestionFileModel = /** @class */ (function (_super) {
34097
34200
  [_this.closeCameraAction, _this.changeCameraAction, _this.takePictureAction].forEach(function (action) {
34098
34201
  action.cssClasses = {};
34099
34202
  });
34100
- _this.registerFunctionOnPropertiesValueChanged(["currentMode", "isAnswered"], function () {
34101
- _this.updateActions();
34203
+ _this.registerFunctionOnPropertiesValueChanged(["sourceType", "currentMode", "isAnswered"], function () {
34204
+ _this.updateActionsVisibility();
34102
34205
  });
34103
- _this.updateActions();
34104
34206
  _this.actionsContainer.actions = [_this.chooseFileAction, _this.startCameraAction, _this.cleanAction];
34105
34207
  _this.fileNavigator.actions = [_this.prevFileAction, _this.fileIndexAction, _this.nextFileAction];
34106
34208
  return _this;
@@ -34128,8 +34230,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
34128
34230
  var isUploading = this.isUploading;
34129
34231
  var isPlayingVideo = this.isPlayingVideo;
34130
34232
  var isDefaultV2Theme = this.isDefaultV2Theme;
34131
- var isReadOnly = this.isInputReadOnly;
34132
- return !isUploading && !isPlayingVideo && !isReadOnly && isDefaultV2Theme;
34233
+ return !isUploading && !isPlayingVideo && isDefaultV2Theme;
34133
34234
  },
34134
34235
  enumerable: false,
34135
34236
  configurable: true
@@ -34165,7 +34266,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
34165
34266
  if (!stream) {
34166
34267
  _this.stopVideo();
34167
34268
  }
34168
- }, this.imageWidth, this.imageHeight);
34269
+ }, Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["getRenderedSize"])(this.imageWidth), Object(_utils_utils__WEBPACK_IMPORTED_MODULE_6__["getRenderedSize"])(this.imageHeight));
34169
34270
  };
34170
34271
  QuestionFileModel.prototype.stopVideo = function () {
34171
34272
  this.setIsPlayingVideo(false);
@@ -34471,9 +34572,10 @@ var QuestionFileModel = /** @class */ (function (_super) {
34471
34572
  }
34472
34573
  }
34473
34574
  };
34474
- QuestionFileModel.prototype.updateActions = function () {
34475
- this.chooseFileAction.visible = this.hasFileUI;
34476
- this.startCameraAction.visible = this.hasVideoUI;
34575
+ QuestionFileModel.prototype.updateActionsVisibility = function () {
34576
+ var isDesignMode = this.isDesignMode;
34577
+ this.chooseFileAction.visible = (!isDesignMode && this.hasFileUI) || (isDesignMode && this.sourceType !== "camera");
34578
+ this.startCameraAction.visible = (!isDesignMode && this.hasVideoUI) || (isDesignMode && this.sourceType !== "file");
34477
34579
  this.cleanAction.visible = !!this.isAnswered;
34478
34580
  };
34479
34581
  Object.defineProperty(QuestionFileModel.prototype, "inputTitle", {
@@ -34803,6 +34905,9 @@ var QuestionFileModel = /** @class */ (function (_super) {
34803
34905
  }
34804
34906
  return questionPlainData;
34805
34907
  };
34908
+ QuestionFileModel.prototype.getImageWrapperCss = function (data) {
34909
+ return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]().append(this.cssClasses.imageWrapper).append(this.cssClasses.imageWrapperDefaultImage, this.defaultImage(data)).toString();
34910
+ };
34806
34911
  QuestionFileModel.prototype.getActionsContainerCss = function (css) {
34807
34912
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
34808
34913
  .append(css.actionsContainer)
@@ -34890,7 +34995,7 @@ var QuestionFileModel = /** @class */ (function (_super) {
34890
34995
  QuestionFileModel.prototype.endLoadingFromJson = function () {
34891
34996
  _super.prototype.endLoadingFromJson.call(this);
34892
34997
  this.updateCurrentMode();
34893
- this.updateActions();
34998
+ this.updateActionsVisibility();
34894
34999
  this.loadPreview(this.value);
34895
35000
  };
34896
35001
  QuestionFileModel.prototype.needResponsiveness = function () {
@@ -35647,6 +35752,8 @@ var ImageItemValue = /** @class */ (function (_super) {
35647
35752
  },
35648
35753
  set: function (val) {
35649
35754
  this.setLocalizableStringText("imageLink", val);
35755
+ this.imageNotLoaded = false;
35756
+ this.videoNotLoaded = false;
35650
35757
  },
35651
35758
  enumerable: false,
35652
35759
  configurable: true
@@ -38311,7 +38418,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
38311
38418
  };
38312
38419
  QuestionMatrixDropdownModelBase.prototype.onStartRowAddingRemoving = function () {
38313
38420
  this.lockResetRenderedTable = true;
38314
- this.setValueChangedDirectly();
38421
+ this.setValueChangedDirectly(true);
38315
38422
  };
38316
38423
  QuestionMatrixDropdownModelBase.prototype.onEndRowAdding = function () {
38317
38424
  this.lockResetRenderedTable = false;
@@ -39720,7 +39827,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
39720
39827
  _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("matrixdropdownbase", [
39721
39828
  {
39722
39829
  name: "columns:matrixdropdowncolumns",
39723
- className: "matrixdropdowncolumn",
39830
+ className: "matrixdropdowncolumn", isArray: true
39724
39831
  },
39725
39832
  {
39726
39833
  name: "columnLayout",
@@ -40776,6 +40883,7 @@ var QuestionMatrixDropdownRenderedCell = /** @class */ (function () {
40776
40883
  this.isActionsCell = false;
40777
40884
  this.isErrorsCell = false;
40778
40885
  this.isDragHandlerCell = false;
40886
+ this.isDetailRowCell = false;
40779
40887
  this.classNameValue = "";
40780
40888
  this.idValue = QuestionMatrixDropdownRenderedCell.counter++;
40781
40889
  }
@@ -40936,6 +41044,7 @@ var QuestionMatrixDropdownRenderedRow = /** @class */ (function (_super) {
40936
41044
  var _this = _super.call(this) || this;
40937
41045
  _this.cssClasses = cssClasses;
40938
41046
  _this.isDetailRow = isDetailRow;
41047
+ _this.hasEndActions = false;
40939
41048
  _this.isErrorsRow = false;
40940
41049
  _this.cells = [];
40941
41050
  _this.idValue = QuestionMatrixDropdownRenderedRow.counter++;
@@ -40959,9 +41068,13 @@ var QuestionMatrixDropdownRenderedRow = /** @class */ (function (_super) {
40959
41068
  });
40960
41069
  Object.defineProperty(QuestionMatrixDropdownRenderedRow.prototype, "className", {
40961
41070
  get: function () {
41071
+ var _a, _b;
40962
41072
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
40963
41073
  .append(this.cssClasses.row)
40964
41074
  .append(this.cssClasses.detailRow, this.isDetailRow)
41075
+ .append(this.cssClasses.rowHasPanel, (_a = this.row) === null || _a === void 0 ? void 0 : _a.hasPanel)
41076
+ .append(this.cssClasses.expandedRow, ((_b = this.row) === null || _b === void 0 ? void 0 : _b.isDetailPanelShowing) && !this.isDetailRow)
41077
+ .append(this.cssClasses.rowHasEndActions, this.hasEndActions)
40965
41078
  .append(this.cssClasses.ghostRow, this.isGhostRow)
40966
41079
  .append(this.cssClasses.rowAdditional, this.isAdditionalClasses)
40967
41080
  .toString();
@@ -41314,7 +41427,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
41314
41427
  this.footerRow.cells.push(this.createHeaderCell(null));
41315
41428
  }
41316
41429
  if (this.hasActionCellInRows("start")) {
41317
- this.footerRow.cells.push(this.createHeaderCell(null));
41430
+ this.footerRow.cells.push(this.createHeaderCell(null, "action"));
41318
41431
  }
41319
41432
  if (this.matrix.hasRowText) {
41320
41433
  this.footerRow.cells.push(this.createTextCell(this.matrix.getFooterText()));
@@ -41336,7 +41449,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
41336
41449
  }
41337
41450
  }
41338
41451
  if (this.hasActionCellInRows("end")) {
41339
- this.footerRow.cells.push(this.createHeaderCell(null));
41452
+ this.footerRow.cells.push(this.createHeaderCell(null, "action"));
41340
41453
  }
41341
41454
  };
41342
41455
  QuestionMatrixDropdownRenderedTable.prototype.buildRows = function () {
@@ -41406,10 +41519,25 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
41406
41519
  return cell;
41407
41520
  };
41408
41521
  QuestionMatrixDropdownRenderedTable.prototype.getActionsCellClassName = function (cell) {
41522
+ var _this = this;
41409
41523
  if (cell === void 0) { cell = null; }
41410
- return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]().append(this.cssClasses.actionsCell).append(this.cssClasses.actionsCellDrag, cell === null || cell === void 0 ? void 0 : cell.isDragHandlerCell).append(this.cssClasses.verticalCell, !this.matrix.isColumnLayoutHorizontal).toString();
41524
+ var classBuilder = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
41525
+ .append(this.cssClasses.actionsCell)
41526
+ .append(this.cssClasses.actionsCellDrag, cell === null || cell === void 0 ? void 0 : cell.isDragHandlerCell)
41527
+ .append(this.cssClasses.detailRowCell, cell === null || cell === void 0 ? void 0 : cell.isDetailRowCell)
41528
+ .append(this.cssClasses.verticalCell, !this.matrix.isColumnLayoutHorizontal);
41529
+ if (cell.isActionsCell) {
41530
+ var actions = cell.item.value.actions;
41531
+ if (this.cssClasses.actionsCellPrefix) {
41532
+ actions.forEach(function (action) {
41533
+ classBuilder.append(_this.cssClasses.actionsCellPrefix + "--" + action.id);
41534
+ });
41535
+ }
41536
+ }
41537
+ return classBuilder.toString();
41411
41538
  };
41412
- QuestionMatrixDropdownRenderedTable.prototype.getRowActionsCell = function (rowIndex, location) {
41539
+ QuestionMatrixDropdownRenderedTable.prototype.getRowActionsCell = function (rowIndex, location, isDetailRow) {
41540
+ if (isDetailRow === void 0) { isDetailRow = false; }
41413
41541
  var rowActions = this.getRowActions(rowIndex, location);
41414
41542
  if (!this.isValueEmpty(rowActions)) {
41415
41543
  var cell = new QuestionMatrixDropdownRenderedCell();
@@ -41422,6 +41550,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
41422
41550
  cell.item = itemValue;
41423
41551
  cell.isActionsCell = true;
41424
41552
  cell.isDragHandlerCell = false;
41553
+ cell.isDetailRowCell = isDetailRow;
41425
41554
  cell.className = this.getActionsCellClassName(cell);
41426
41555
  cell.row = this.matrix.visibleRows[rowIndex];
41427
41556
  return cell;
@@ -41455,6 +41584,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
41455
41584
  configurable: true
41456
41585
  });
41457
41586
  QuestionMatrixDropdownRenderedTable.prototype.setDefaultRowActions = function (row, actions) {
41587
+ var _this = this;
41458
41588
  var matrix = this.matrix;
41459
41589
  if (this.hasRemoveRows && this.canRemoveRow(row)) {
41460
41590
  if (!this.showRemoveButtonAsIcon) {
@@ -41485,14 +41615,28 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
41485
41615
  }
41486
41616
  }
41487
41617
  if (row.hasPanel) {
41488
- actions.push(new _actions_action__WEBPACK_IMPORTED_MODULE_3__["Action"]({
41489
- id: "show-detail",
41490
- title: this.matrix.getLocalizationString("editText"),
41491
- showTitle: false,
41492
- location: "start",
41493
- component: "sv-matrix-detail-button",
41494
- data: { row: row, question: this.matrix },
41495
- }));
41618
+ if (this.matrix.isMobile) {
41619
+ actions.unshift(new _actions_action__WEBPACK_IMPORTED_MODULE_3__["Action"]({
41620
+ id: "show-detail-mobile",
41621
+ title: "Show Details",
41622
+ showTitle: true,
41623
+ location: "end",
41624
+ action: function (context) {
41625
+ context.title = row.isDetailPanelShowing ? _this.matrix.getLocalizationString("showDetails") : _this.matrix.getLocalizationString("hideDetails");
41626
+ row.showHideDetailPanelClick();
41627
+ },
41628
+ }));
41629
+ }
41630
+ else {
41631
+ actions.push(new _actions_action__WEBPACK_IMPORTED_MODULE_3__["Action"]({
41632
+ id: "show-detail",
41633
+ title: this.matrix.getLocalizationString("editText"),
41634
+ showTitle: false,
41635
+ location: "start",
41636
+ component: "sv-matrix-detail-button",
41637
+ data: { row: row, question: this.matrix },
41638
+ }));
41639
+ }
41496
41640
  }
41497
41641
  };
41498
41642
  QuestionMatrixDropdownRenderedTable.prototype.createErrorRow = function (row) {
@@ -41560,13 +41704,15 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
41560
41704
  QuestionMatrixDropdownRenderedTable.prototype.addRowActionsCell = function (row, renderedRow, location) {
41561
41705
  var rowIndex = this.matrix.visibleRows.indexOf(row);
41562
41706
  if (this.hasActionCellInRows(location)) {
41563
- var actions = this.getRowActionsCell(rowIndex, location);
41707
+ var actions = this.getRowActionsCell(rowIndex, location, renderedRow.isDetailRow);
41564
41708
  if (!!actions) {
41565
41709
  renderedRow.cells.push(actions);
41710
+ renderedRow.hasEndActions = true;
41566
41711
  }
41567
41712
  else {
41568
41713
  var cell = new QuestionMatrixDropdownRenderedCell();
41569
41714
  cell.isEmpty = true;
41715
+ cell.isDetailRowCell = renderedRow.isDetailRow;
41570
41716
  renderedRow.cells.push(cell);
41571
41717
  }
41572
41718
  }
@@ -41596,7 +41742,12 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
41596
41742
  cell.className = this.cssClasses.detailPanelCell;
41597
41743
  res.cells.push(cell);
41598
41744
  if (!!actionsCell) {
41599
- res.cells.push(actionsCell);
41745
+ if (this.matrix.isMobile) {
41746
+ this.addRowActionsCell(row, res, "end");
41747
+ }
41748
+ else {
41749
+ res.cells.push(actionsCell);
41750
+ }
41600
41751
  }
41601
41752
  if (typeof this.matrix.onCreateDetailPanelRenderedRowCallback === "function") {
41602
41753
  this.matrix.onCreateDetailPanelRenderedRowCallback(res);
@@ -43267,6 +43418,19 @@ var MultipleTextItemModel = /** @class */ (function (_super) {
43267
43418
  enumerable: false,
43268
43419
  configurable: true
43269
43420
  });
43421
+ Object.defineProperty(MultipleTextItemModel.prototype, "defaultValueExpression", {
43422
+ /**
43423
+ * An expression used to calculate the [defaultValue](https://surveyjs.io/form-library/documentation/question#defaultValue).
43424
+ */
43425
+ get: function () {
43426
+ return this.editor.defaultValueExpression;
43427
+ },
43428
+ set: function (val) {
43429
+ this.editor.defaultValueExpression = val;
43430
+ },
43431
+ enumerable: false,
43432
+ configurable: true
43433
+ });
43270
43434
  Object.defineProperty(MultipleTextItemModel.prototype, "minValueExpression", {
43271
43435
  /**
43272
43436
  * The minimum value specified as an expression. For example, `"minValueExpression": "today(-1)"` sets the minimum value to yesterday.
@@ -43880,6 +44044,7 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
43880
44044
  .append(this.cssClasses.itemLabelAnswered, item.editor.isAnswered)
43881
44045
  .append(this.cssClasses.itemLabelAllowFocus, !this.isDesignMode)
43882
44046
  .append(this.cssClasses.itemLabelOnError, item.editor.errors.length > 0)
44047
+ .append(this.cssClasses.itemWithCharacterCounter, !!item.getMaxLength())
43883
44048
  .toString();
43884
44049
  };
43885
44050
  QuestionMultipleTextModel.prototype.getItemCss = function () {
@@ -43985,6 +44150,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("multipletextite
43985
44150
  name: "requiredErrorText:text",
43986
44151
  serializationProperty: "locRequiredErrorText",
43987
44152
  },
44153
+ { name: "defaultValueExpression:expression", visible: false },
43988
44154
  {
43989
44155
  name: "minValueExpression:expression",
43990
44156
  category: "logic",
@@ -44010,7 +44176,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("multipletextite
44010
44176
  return new MultipleTextItemModel("");
44011
44177
  });
44012
44178
  _jsonobject__WEBPACK_IMPORTED_MODULE_4__["Serializer"].addClass("multipletext", [
44013
- { name: "!items:textitems", className: "multipletextitem" },
44179
+ { name: "!items:textitems", className: "multipletextitem", isArray: true },
44014
44180
  { name: "itemSize:number", minValue: 0 },
44015
44181
  { name: "colCount:number", default: 1, choices: [1, 2, 3, 4, 5] },
44016
44182
  { name: "itemErrorLocation", default: "default", choices: ["default", "top", "bottom"], visible: false }
@@ -47046,14 +47212,14 @@ var QuestionRankingModel = /** @class */ (function (_super) {
47046
47212
  get: function () {
47047
47213
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
47048
47214
  .append(this.cssClasses.root)
47049
- .append(this.cssClasses.rootMobileMod, _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsMobile"])
47215
+ .append(this.cssClasses.rootMobileMod, this.isMobileMode())
47050
47216
  .append(this.cssClasses.rootDisabled, this.isReadOnly)
47051
47217
  .append(this.cssClasses.rootDesignMode, !!this.isDesignMode)
47052
47218
  .append(this.cssClasses.itemOnError, this.hasCssError())
47053
47219
  .append(this.cssClasses.rootDragHandleAreaIcon, _src_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].rankingDragHandleArea === "icon")
47054
47220
  .append(this.cssClasses.rootSelectToRankMod, this.selectToRankEnabled)
47055
- .append(this.cssClasses.rootSelectToRankAlignHorizontal, this.selectToRankEnabled && this.selectToRankAreasLayout === "horizontal")
47056
- .append(this.cssClasses.rootSelectToRankAlignVertical, this.selectToRankEnabled && this.selectToRankAreasLayout === "vertical")
47221
+ .append(this.cssClasses.rootSelectToRankAlignHorizontal, this.selectToRankEnabled && this.renderedSelectToRankAreasLayout === "horizontal")
47222
+ .append(this.cssClasses.rootSelectToRankAlignVertical, this.selectToRankEnabled && this.renderedSelectToRankAreasLayout === "vertical")
47057
47223
  .toString();
47058
47224
  },
47059
47225
  enumerable: false,
@@ -47386,9 +47552,7 @@ var QuestionRankingModel = /** @class */ (function (_super) {
47386
47552
  * @see selectToRankAreasLayout
47387
47553
  */
47388
47554
  get: function () {
47389
- if (_utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsMobile"])
47390
- return "vertical";
47391
- return this.getPropertyValue("selectToRankAreasLayout", "horizontal");
47555
+ return this.getPropertyValue("selectToRankAreasLayout");
47392
47556
  },
47393
47557
  set: function (val) {
47394
47558
  this.setPropertyValue("selectToRankAreasLayout", val);
@@ -47396,6 +47560,18 @@ var QuestionRankingModel = /** @class */ (function (_super) {
47396
47560
  enumerable: false,
47397
47561
  configurable: true
47398
47562
  });
47563
+ Object.defineProperty(QuestionRankingModel.prototype, "renderedSelectToRankAreasLayout", {
47564
+ get: function () {
47565
+ if (this.isMobileMode())
47566
+ return "vertical";
47567
+ return this.selectToRankAreasLayout;
47568
+ },
47569
+ enumerable: false,
47570
+ configurable: true
47571
+ });
47572
+ QuestionRankingModel.prototype.isMobileMode = function () {
47573
+ return _utils_devices__WEBPACK_IMPORTED_MODULE_7__["IsMobile"];
47574
+ };
47399
47575
  Object.defineProperty(QuestionRankingModel.prototype, "useFullItemSizeForShortcut", {
47400
47576
  get: function () {
47401
47577
  return this.getPropertyValue("useFullItemSizeForShortcut");
@@ -48609,11 +48785,12 @@ _questionfactory__WEBPACK_IMPORTED_MODULE_3__["QuestionFactory"].Instance.regist
48609
48785
  /*!**************************************!*\
48610
48786
  !*** ./src/question_signaturepad.ts ***!
48611
48787
  \**************************************/
48612
- /*! exports provided: QuestionSignaturePadModel */
48788
+ /*! exports provided: getCanvasRatio, QuestionSignaturePadModel */
48613
48789
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
48614
48790
 
48615
48791
  "use strict";
48616
48792
  __webpack_require__.r(__webpack_exports__);
48793
+ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getCanvasRatio", function() { return getCanvasRatio; });
48617
48794
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QuestionSignaturePadModel", function() { return QuestionSignaturePadModel; });
48618
48795
  /* harmony import */ var _jsonobject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./jsonobject */ "./src/jsonobject.ts");
48619
48796
  /* harmony import */ var _questionfactory__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./questionfactory */ "./src/questionfactory.ts");
@@ -48650,7 +48827,7 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
48650
48827
 
48651
48828
  var defaultWidth = 300;
48652
48829
  var defaultHeight = 200;
48653
- function resizeCanvas(canvas) {
48830
+ function getCanvasRatio(canvas) {
48654
48831
  var context = canvas.getContext("2d");
48655
48832
  var devicePixelRatio = window.devicePixelRatio || 1;
48656
48833
  var backingStoreRatio = context.webkitBackingStorePixelRatio ||
@@ -48659,7 +48836,11 @@ function resizeCanvas(canvas) {
48659
48836
  context.oBackingStorePixelRatio ||
48660
48837
  context.backingStorePixelRatio ||
48661
48838
  1;
48662
- var ratio = devicePixelRatio / backingStoreRatio;
48839
+ return devicePixelRatio / backingStoreRatio;
48840
+ }
48841
+ function resizeCanvas(canvas) {
48842
+ var context = canvas.getContext("2d");
48843
+ var ratio = getCanvasRatio(canvas);
48663
48844
  var oldWidth = canvas.width;
48664
48845
  var oldHeight = canvas.height;
48665
48846
  canvas.width = oldWidth * ratio;
@@ -48984,10 +49165,13 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("signaturepad",
48984
49165
  default: true,
48985
49166
  },
48986
49167
  { name: "showPlaceholder:boolean", category: "general", default: true },
48987
- { name: "placeholder:text",
49168
+ {
49169
+ name: "placeholder:text",
48988
49170
  serializationProperty: "locPlaceholder",
48989
49171
  category: "general",
48990
- dependsOn: "showPlaceholder", visibleIf: function (obj) { return obj.showPlaceholder; } },
49172
+ dependsOn: "showPlaceholder",
49173
+ visibleIf: function (obj) { return obj.showPlaceholder; }
49174
+ },
48991
49175
  {
48992
49176
  name: "backgroundImage:file",
48993
49177
  category: "general",
@@ -49248,8 +49432,9 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
49248
49432
  }
49249
49433
  };
49250
49434
  QuestionTagboxModel.prototype.clearValue = function () {
49435
+ var _a;
49251
49436
  _super.prototype.clearValue.call(this);
49252
- this.dropdownListModel.clear();
49437
+ (_a = this.dropdownListModel) === null || _a === void 0 ? void 0 : _a.clear();
49253
49438
  };
49254
49439
  Object.defineProperty(QuestionTagboxModel.prototype, "showClearButton", {
49255
49440
  get: function () {
@@ -49862,6 +50047,10 @@ var QuestionTextModel = /** @class */ (function (_super) {
49862
50047
  QuestionTextModel.prototype.hasPlaceholder = function () {
49863
50048
  return !this.isReadOnly && this.inputType !== "range";
49864
50049
  };
50050
+ QuestionTextModel.prototype.getControlCssClassBuilder = function () {
50051
+ return _super.prototype.getControlCssClassBuilder.call(this)
50052
+ .append(this.cssClasses.constrolWithCharacterCounter, !!this.getMaxLength());
50053
+ };
49865
50054
  QuestionTextModel.prototype.isReadOnlyRenderDiv = function () {
49866
50055
  return this.isReadOnly && _settings__WEBPACK_IMPORTED_MODULE_6__["settings"].readOnly.textRenderMode === "div";
49867
50056
  };
@@ -50290,12 +50479,14 @@ var QuestionTextBase = /** @class */ (function (_super) {
50290
50479
  }
50291
50480
  }
50292
50481
  };
50293
- QuestionTextBase.prototype.getControlClass = function () {
50482
+ QuestionTextBase.prototype.getControlCssClassBuilder = function () {
50294
50483
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
50295
50484
  .append(this.cssClasses.root)
50296
50485
  .append(this.cssClasses.onError, this.hasCssError())
50297
- .append(this.cssClasses.controlDisabled, this.isReadOnly)
50298
- .toString();
50486
+ .append(this.cssClasses.controlDisabled, this.isReadOnly);
50487
+ };
50488
+ QuestionTextBase.prototype.getControlClass = function () {
50489
+ return this.getControlCssClassBuilder().toString();
50299
50490
  };
50300
50491
  Object.defineProperty(QuestionTextBase.prototype, "isNewA11yStructure", {
50301
50492
  //a11y
@@ -50525,6 +50716,20 @@ var QuestionNonValue = /** @class */ (function (_super) {
50525
50716
  if (path === void 0) { path = null; }
50526
50717
  return null;
50527
50718
  };
50719
+ Object.defineProperty(QuestionNonValue.prototype, "ariaRole", {
50720
+ get: function () {
50721
+ return null;
50722
+ },
50723
+ enumerable: false,
50724
+ configurable: true
50725
+ });
50726
+ Object.defineProperty(QuestionNonValue.prototype, "ariaRequired", {
50727
+ get: function () {
50728
+ return null;
50729
+ },
50730
+ enumerable: false,
50731
+ configurable: true
50732
+ });
50528
50733
  return QuestionNonValue;
50529
50734
  }(_question__WEBPACK_IMPORTED_MODULE_0__["Question"]));
50530
50735
 
@@ -60955,6 +61160,11 @@ var SurveyModel = /** @class */ (function (_super) {
60955
61160
  }
60956
61161
  }
60957
61162
  }
61163
+ else if (isStrCiEqual(layoutElement.id, "advanced-header")) {
61164
+ if (this.state === "running" && layoutElement.container === container) {
61165
+ containerLayoutElements.push(layoutElement);
61166
+ }
61167
+ }
60958
61168
  else {
60959
61169
  if (Array.isArray(layoutElement.container) && layoutElement.container.indexOf(container) !== -1 || layoutElement.container === container) {
60960
61170
  containerLayoutElements.push(layoutElement);
@@ -60978,15 +61188,15 @@ var SurveyModel = /** @class */ (function (_super) {
60978
61188
  return;
60979
61189
  Object.keys(theme).forEach(function (key) {
60980
61190
  if (key === "header") {
60981
- _this.removeLayoutElement("cover");
60982
- var newCoverModel_1 = new _header__WEBPACK_IMPORTED_MODULE_20__["Cover"]();
60983
- newCoverModel_1.fromTheme(theme);
61191
+ _this.removeLayoutElement("advanced-header");
61192
+ var advHeader_1 = new _header__WEBPACK_IMPORTED_MODULE_20__["Cover"]();
61193
+ advHeader_1.fromTheme(theme);
60984
61194
  _this.layoutElements.push({
60985
- id: "cover",
61195
+ id: "advanced-header",
60986
61196
  container: "header",
60987
61197
  component: "sv-header",
60988
- data: newCoverModel_1,
60989
- processResponsiveness: function (width) { return newCoverModel_1.processResponsiveness(width); }
61198
+ data: advHeader_1,
61199
+ processResponsiveness: function (width) { return advHeader_1.processResponsiveness(width); }
60990
61200
  });
60991
61201
  }
60992
61202
  if (key === "isPanelless") {
@@ -61075,27 +61285,27 @@ var SurveyModel = /** @class */ (function (_super) {
61075
61285
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_1__["property"])({
61076
61286
  onSet: function (newValue, target) {
61077
61287
  if (newValue === "advanced") {
61078
- var layoutElement = target.layoutElements.filter(function (a) { return a.id === "cover"; })[0];
61288
+ var layoutElement = target.layoutElements.filter(function (a) { return a.id === "advanced-header"; })[0];
61079
61289
  if (!layoutElement) {
61080
- var cover = new _header__WEBPACK_IMPORTED_MODULE_20__["Cover"]();
61081
- cover.logoPositionX = target.logoPosition === "right" ? "right" : "left";
61082
- cover.logoPositionY = "middle";
61083
- cover.titlePositionX = target.logoPosition === "right" ? "left" : "right";
61084
- cover.titlePositionY = "middle";
61085
- cover.descriptionPositionX = target.logoPosition === "right" ? "left" : "right";
61086
- cover.descriptionPositionY = "middle";
61087
- cover.survey = target;
61290
+ var advHeader = new _header__WEBPACK_IMPORTED_MODULE_20__["Cover"]();
61291
+ advHeader.logoPositionX = target.logoPosition === "right" ? "right" : "left";
61292
+ advHeader.logoPositionY = "middle";
61293
+ advHeader.titlePositionX = target.logoPosition === "right" ? "left" : "right";
61294
+ advHeader.titlePositionY = "middle";
61295
+ advHeader.descriptionPositionX = target.logoPosition === "right" ? "left" : "right";
61296
+ advHeader.descriptionPositionY = "middle";
61297
+ advHeader.survey = target;
61088
61298
  target.layoutElements.unshift({
61089
- id: "cover",
61299
+ id: "advanced-header",
61090
61300
  container: "header",
61091
61301
  component: "sv-header",
61092
- data: cover,
61093
- processResponsiveness: function (width) { return cover.processResponsiveness(width); }
61302
+ data: advHeader,
61303
+ processResponsiveness: function (width) { return advHeader.processResponsiveness(width); }
61094
61304
  });
61095
61305
  }
61096
61306
  }
61097
61307
  else {
61098
- target.removeLayoutElement("cover");
61308
+ target.removeLayoutElement("advanced-header");
61099
61309
  }
61100
61310
  }
61101
61311
  })
@@ -61194,13 +61404,13 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
61194
61404
  },
61195
61405
  {
61196
61406
  name: "completedHtmlOnCondition:htmlconditions",
61197
- className: "htmlconditionitem",
61407
+ className: "htmlconditionitem", isArray: true
61198
61408
  },
61199
61409
  { name: "loadingHtml:html", serializationProperty: "locLoadingHtml" },
61200
- { name: "pages:surveypages", className: "page" },
61410
+ { name: "pages:surveypages", className: "page", isArray: true },
61201
61411
  {
61202
- name: "questions",
61203
- alternativeName: "elements",
61412
+ name: "elements",
61413
+ alternativeName: "questions",
61204
61414
  baseClassName: "question",
61205
61415
  visible: false,
61206
61416
  isLightSerializable: false,
@@ -61220,7 +61430,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
61220
61430
  },
61221
61431
  {
61222
61432
  name: "calculatedValues:calculatedvalues",
61223
- className: "calculatedvalue",
61433
+ className: "calculatedvalue", isArray: true
61224
61434
  },
61225
61435
  { name: "surveyId", visible: false },
61226
61436
  { name: "surveyPostId", visible: false },
@@ -61239,7 +61449,7 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].addClass("survey", [
61239
61449
  "navigateToUrl",
61240
61450
  {
61241
61451
  name: "navigateToUrlOnCondition:urlconditions",
61242
- className: "urlconditionitem",
61452
+ className: "urlconditionitem", isArray: true
61243
61453
  },
61244
61454
  {
61245
61455
  name: "questionsOrder",
@@ -63102,7 +63312,7 @@ var Camera = /** @class */ (function () {
63102
63312
  this.hasCameraCallback(callback);
63103
63313
  }
63104
63314
  };
63105
- Camera.prototype.getMediaConstraints = function (videoEl) {
63315
+ Camera.prototype.getMediaConstraints = function (videoSize) {
63106
63316
  var devices = Camera.cameraList;
63107
63317
  if (!Array.isArray(devices) || devices.length < 1)
63108
63318
  return undefined;
@@ -63116,9 +63326,13 @@ var Camera = /** @class */ (function () {
63116
63326
  else {
63117
63327
  videoConstraints.facingMode = Camera.cameraFacingMode;
63118
63328
  }
63119
- if (videoEl) {
63120
- videoConstraints.width = { exact: videoEl.width ? videoEl.width : videoEl.scrollWidth };
63121
- videoConstraints.height = { exact: videoEl.height ? videoEl.height : videoEl.scrollHeight };
63329
+ if (videoSize) {
63330
+ if (videoSize === null || videoSize === void 0 ? void 0 : videoSize.height) {
63331
+ videoConstraints.height = { ideal: videoSize.height };
63332
+ }
63333
+ if (videoSize === null || videoSize === void 0 ? void 0 : videoSize.width) {
63334
+ videoConstraints.width = { ideal: videoSize.width };
63335
+ }
63122
63336
  }
63123
63337
  return {
63124
63338
  video: videoConstraints,
@@ -63133,19 +63347,11 @@ var Camera = /** @class */ (function () {
63133
63347
  callback(undefined);
63134
63348
  return;
63135
63349
  }
63136
- if (imageWidth) {
63137
- videoEl.width = imageWidth;
63138
- }
63139
- else {
63140
- videoEl.style.width = "100%";
63141
- }
63142
- if (imageHeight) {
63143
- videoEl.height = imageHeight;
63144
- }
63145
- else {
63146
- videoEl.style.height = "100%";
63147
- }
63148
- var mediaConstraints = this.getMediaConstraints(videoEl);
63350
+ videoEl.style.width = "100%";
63351
+ videoEl.style.height = "auto";
63352
+ videoEl.style.height = "100%";
63353
+ videoEl.style.objectFit = "contain";
63354
+ var mediaConstraints = this.getMediaConstraints({ width: imageWidth, height: imageHeight });
63149
63355
  navigator.mediaDevices.getUserMedia(mediaConstraints).then(function (stream) {
63150
63356
  var _a;
63151
63357
  videoEl.srcObject = stream;
@@ -63160,6 +63366,9 @@ var Camera = /** @class */ (function () {
63160
63366
  callback(undefined);
63161
63367
  });
63162
63368
  };
63369
+ Camera.prototype.getImageSize = function (videoEl) {
63370
+ return { width: videoEl.videoWidth, height: videoEl.videoHeight };
63371
+ };
63163
63372
  Camera.prototype.snap = function (videoElementId, callback) {
63164
63373
  if ("undefined" === typeof document)
63165
63374
  return false;
@@ -63168,8 +63377,9 @@ var Camera = /** @class */ (function () {
63168
63377
  if (!videoEl)
63169
63378
  return false;
63170
63379
  var canvasEl = root.createElement("canvas");
63171
- canvasEl.height = videoEl.scrollHeight;
63172
- canvasEl.width = videoEl.scrollWidth;
63380
+ var imageSize = this.getImageSize(videoEl);
63381
+ canvasEl.height = imageSize.height;
63382
+ canvasEl.width = imageSize.width;
63173
63383
  var context = canvasEl.getContext("2d");
63174
63384
  /*
63175
63385
  if(this._facingMode == 'user'){
@@ -64029,7 +64239,9 @@ function increaseHeightByContent(element, getComputedStyle) {
64029
64239
  getComputedStyle = function (elt) { return window.getComputedStyle(elt); };
64030
64240
  var style = getComputedStyle(element);
64031
64241
  element.style.height = "auto";
64032
- element.style.height = (element.scrollHeight + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth)) + "px";
64242
+ if (!!element.scrollHeight) {
64243
+ element.style.height = (element.scrollHeight + parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth)) + "px";
64244
+ }
64033
64245
  }
64034
64246
  function getOriginalEvent(event) {
64035
64247
  return event.originalEvent || event;