survey-core 1.9.138 → 1.9.139

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 (257) hide show
  1. package/defaultV2.css +352 -15
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +352 -15
  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 +4 -3
  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 +19 -3
  113. package/modern.css.map +1 -1
  114. package/modern.fontless.css +19 -3
  115. package/modern.fontless.css.map +1 -1
  116. package/modern.fontless.min.css +2 -2
  117. package/modern.min.css +2 -2
  118. package/package.json +1 -1
  119. package/plugins/bootstrap-integration.js +1 -1
  120. package/plugins/bootstrap-integration.min.js +1 -1
  121. package/plugins/bootstrap-material-integration.js +1 -1
  122. package/plugins/bootstrap-material-integration.min.js +1 -1
  123. package/survey.core.js +549 -89
  124. package/survey.core.js.map +1 -1
  125. package/survey.core.min.js +3 -3
  126. package/survey.css +1 -1
  127. package/survey.i18n.js +1 -1
  128. package/survey.i18n.min.js +1 -1
  129. package/survey.min.css +1 -1
  130. package/themes/borderless-dark-panelless.js +1 -1
  131. package/themes/borderless-dark-panelless.min.js +1 -1
  132. package/themes/borderless-dark.js +1 -1
  133. package/themes/borderless-dark.min.js +1 -1
  134. package/themes/borderless-light-panelless..js +1 -1
  135. package/themes/borderless-light-panelless..min.js +1 -1
  136. package/themes/borderless-light.js +1 -1
  137. package/themes/borderless-light.min.js +1 -1
  138. package/themes/contrast-dark-panelless.js +1 -1
  139. package/themes/contrast-dark-panelless.min.js +1 -1
  140. package/themes/contrast-dark.js +1 -1
  141. package/themes/contrast-dark.min.js +1 -1
  142. package/themes/contrast-light-panelless.js +1 -1
  143. package/themes/contrast-light-panelless.min.js +1 -1
  144. package/themes/contrast-light.js +1 -1
  145. package/themes/contrast-light.min.js +1 -1
  146. package/themes/default-dark-panelless.js +1 -1
  147. package/themes/default-dark-panelless.min.js +1 -1
  148. package/themes/default-dark.js +1 -1
  149. package/themes/default-dark.min.js +1 -1
  150. package/themes/default-light-panelless.js +1 -1
  151. package/themes/default-light-panelless.min.js +1 -1
  152. package/themes/default-light.js +1 -1
  153. package/themes/default-light.min.js +1 -1
  154. package/themes/doubleborder-dark-panelless.js +1 -1
  155. package/themes/doubleborder-dark-panelless.min.js +1 -1
  156. package/themes/doubleborder-dark.js +1 -1
  157. package/themes/doubleborder-dark.min.js +1 -1
  158. package/themes/doubleborder-light-panelles.js +1 -1
  159. package/themes/doubleborder-light-panelles.min.js +1 -1
  160. package/themes/doubleborder-light.js +1 -1
  161. package/themes/doubleborder-light.min.js +1 -1
  162. package/themes/flat-dark-panelless.js +1 -1
  163. package/themes/flat-dark-panelless.min.js +1 -1
  164. package/themes/flat-dark.js +1 -1
  165. package/themes/flat-dark.min.js +1 -1
  166. package/themes/flat-light-panelless.js +1 -1
  167. package/themes/flat-light-panelless.min.js +1 -1
  168. package/themes/flat-light.js +1 -1
  169. package/themes/flat-light.min.js +1 -1
  170. package/themes/index.js +1 -1
  171. package/themes/index.min.js +1 -1
  172. package/themes/layered-dark-panelless.js +1 -1
  173. package/themes/layered-dark-panelless.min.js +1 -1
  174. package/themes/layered-dark.js +1 -1
  175. package/themes/layered-dark.min.js +1 -1
  176. package/themes/layered-light-panelless.js +1 -1
  177. package/themes/layered-light-panelless.min.js +1 -1
  178. package/themes/layered-light.js +1 -1
  179. package/themes/layered-light.min.js +1 -1
  180. package/themes/plain-dark-panelless.js +1 -1
  181. package/themes/plain-dark-panelless.min.js +1 -1
  182. package/themes/plain-dark.js +1 -1
  183. package/themes/plain-dark.min.js +1 -1
  184. package/themes/plain-light-panelless.js +1 -1
  185. package/themes/plain-light-panelless.min.js +1 -1
  186. package/themes/plain-light.js +1 -1
  187. package/themes/plain-light.min.js +1 -1
  188. package/themes/sharp-dark-panelless.js +1 -1
  189. package/themes/sharp-dark-panelless.min.js +1 -1
  190. package/themes/sharp-dark.js +1 -1
  191. package/themes/sharp-dark.min.js +1 -1
  192. package/themes/sharp-light-panelless.js +1 -1
  193. package/themes/sharp-light-panelless.min.js +1 -1
  194. package/themes/sharp-light.js +1 -1
  195. package/themes/sharp-light.min.js +1 -1
  196. package/themes/solid-dark-panelless.js +1 -1
  197. package/themes/solid-dark-panelless.min.js +1 -1
  198. package/themes/solid-dark.js +1 -1
  199. package/themes/solid-dark.min.js +1 -1
  200. package/themes/solid-light-panelless.js +1 -1
  201. package/themes/solid-light-panelless.min.js +1 -1
  202. package/themes/solid-light.js +1 -1
  203. package/themes/solid-light.min.js +1 -1
  204. package/themes/three-dimensional-dark-panelless.js +1 -1
  205. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  206. package/themes/three-dimensional-dark.js +1 -1
  207. package/themes/three-dimensional-dark.min.js +1 -1
  208. package/themes/three-dimensional-light-panelless.js +1 -1
  209. package/themes/three-dimensional-light-panelless.min.js +1 -1
  210. package/themes/three-dimensional-light.js +1 -1
  211. package/themes/three-dimensional-light.min.js +1 -1
  212. package/ts3.4/typings/actions/action.d.ts +6 -1
  213. package/ts3.4/typings/base-interfaces.d.ts +1 -1
  214. package/ts3.4/typings/defaultCss/cssmodern.d.ts +1 -1
  215. package/ts3.4/typings/defaultCss/cssstandard.d.ts +1 -1
  216. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +52 -1
  217. package/ts3.4/typings/knockout/kobase.d.ts +8 -0
  218. package/ts3.4/typings/knockout/kopage.d.ts +37 -0
  219. package/ts3.4/typings/localization/english.d.ts +1 -0
  220. package/ts3.4/typings/mask/input_element_adapter.d.ts +1 -1
  221. package/ts3.4/typings/mask/mask_datetime.d.ts +16 -1
  222. package/ts3.4/typings/mask/mask_pattern.d.ts +9 -1
  223. package/ts3.4/typings/panel.d.ts +1 -1
  224. package/ts3.4/typings/popup.d.ts +1 -0
  225. package/ts3.4/typings/question.d.ts +1 -0
  226. package/ts3.4/typings/question_boolean.d.ts +8 -0
  227. package/ts3.4/typings/question_custom.d.ts +1 -0
  228. package/ts3.4/typings/question_matrix.d.ts +1 -0
  229. package/ts3.4/typings/question_paneldynamic.d.ts +1 -0
  230. package/ts3.4/typings/question_ranking.d.ts +1 -0
  231. package/ts3.4/typings/question_signaturepad.d.ts +9 -2
  232. package/ts3.4/typings/survey-element.d.ts +4 -0
  233. package/ts3.4/typings/survey.d.ts +1 -1
  234. package/ts3.4/typings/surveyStrings.d.ts +1 -0
  235. package/typings/actions/action.d.ts +7 -1
  236. package/typings/base-interfaces.d.ts +1 -1
  237. package/typings/defaultCss/cssmodern.d.ts +1 -1
  238. package/typings/defaultCss/cssstandard.d.ts +1 -1
  239. package/typings/defaultCss/defaultV2Css.d.ts +52 -1
  240. package/typings/knockout/kobase.d.ts +8 -0
  241. package/typings/knockout/kopage.d.ts +37 -0
  242. package/typings/localization/english.d.ts +1 -0
  243. package/typings/mask/input_element_adapter.d.ts +1 -1
  244. package/typings/mask/mask_datetime.d.ts +16 -1
  245. package/typings/mask/mask_pattern.d.ts +9 -1
  246. package/typings/panel.d.ts +1 -1
  247. package/typings/popup.d.ts +1 -0
  248. package/typings/question.d.ts +1 -0
  249. package/typings/question_boolean.d.ts +8 -0
  250. package/typings/question_custom.d.ts +1 -0
  251. package/typings/question_matrix.d.ts +1 -0
  252. package/typings/question_paneldynamic.d.ts +1 -0
  253. package/typings/question_ranking.d.ts +1 -0
  254. package/typings/question_signaturepad.d.ts +9 -2
  255. package/typings/survey-element.d.ts +4 -0
  256. package/typings/survey.d.ts +1 -1
  257. package/typings/surveyStrings.d.ts +1 -0
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.9.138
2
+ * surveyjs - Survey JavaScript library v1.9.139
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
  */
@@ -769,9 +769,27 @@ var BaseAction = /** @class */ (function (_super) {
769
769
  __extends(BaseAction, _super);
770
770
  function BaseAction() {
771
771
  var _this = _super !== null && _super.apply(this, arguments) || this;
772
+ _this.rendredIdValue = BaseAction.getNextRendredId();
772
773
  _this.iconSize = 24;
773
774
  return _this;
774
775
  }
776
+ BaseAction.getNextRendredId = function () { return BaseAction.renderedId++; };
777
+ Object.defineProperty(BaseAction.prototype, "renderedId", {
778
+ get: function () { return this.rendredIdValue; },
779
+ enumerable: false,
780
+ configurable: true
781
+ });
782
+ Object.defineProperty(BaseAction.prototype, "owner", {
783
+ get: function () { return this.ownerValue; },
784
+ set: function (val) {
785
+ if (val !== this.owner) {
786
+ this.ownerValue = val;
787
+ this.locStrsChanged();
788
+ }
789
+ },
790
+ enumerable: false,
791
+ configurable: true
792
+ });
775
793
  Object.defineProperty(BaseAction.prototype, "visible", {
776
794
  get: function () {
777
795
  return this.getVisible();
@@ -896,6 +914,7 @@ var BaseAction = /** @class */ (function (_super) {
896
914
  }
897
915
  return args.isTrusted;
898
916
  };
917
+ BaseAction.renderedId = 1;
899
918
  __decorate([
900
919
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_2__["property"])()
901
920
  ], BaseAction.prototype, "tooltip", void 0);
@@ -4863,7 +4882,7 @@ var modernCss = {
4863
4882
  root: "sv-file",
4864
4883
  other: "sv-comment sv-question__other",
4865
4884
  placeholderInput: "sv-visuallyhidden",
4866
- preview: "sv-file__preview",
4885
+ previewItem: "sd-file__preview-item",
4867
4886
  fileSignBottom: "sv-file__sign",
4868
4887
  fileDecorator: "sv-file__decorator",
4869
4888
  fileInput: "sv-visuallyhidden",
@@ -5270,7 +5289,7 @@ var defaultStandardCss = {
5270
5289
  file: {
5271
5290
  root: "sv_q_file",
5272
5291
  placeholderInput: "sv-visuallyhidden",
5273
- preview: "sv_q_file_preview",
5292
+ previewItem: "sv_q_file_preview",
5274
5293
  removeButton: "sv_q_file_remove_button",
5275
5294
  fileInput: "sv-visuallyhidden",
5276
5295
  removeFile: "sv_q_file_remove",
@@ -5572,6 +5591,7 @@ var defaultV2Css = {
5572
5591
  titleExpanded: "sd-element__title--expanded",
5573
5592
  titleCollapsed: "sd-element__title--collapsed",
5574
5593
  titleDisabled: "sd-element__title--disabled",
5594
+ titleReadOnly: "sd-element__title--readonly",
5575
5595
  titleBar: "sd-action-title-bar",
5576
5596
  requiredText: "sd-question__required-text",
5577
5597
  number: "sd-element__num",
@@ -5596,6 +5616,8 @@ var defaultV2Css = {
5596
5616
  invisible: "sd-element--invisible",
5597
5617
  composite: "sd-element--complex sd-composite",
5598
5618
  disabled: "sd-question--disabled",
5619
+ readOnly: "sd-question--readonly",
5620
+ preview: "sd-question--preview",
5599
5621
  errorsContainer: "sd-element__erbox sd-question__erbox",
5600
5622
  errorsContainerTop: "sd-element__erbox--above-element sd-question__erbox--above-question",
5601
5623
  errorsContainerBottom: "sd-question__erbox--below-question"
@@ -5632,6 +5654,9 @@ var defaultV2Css = {
5632
5654
  itemSelectAll: "sd-checkbox--selectall",
5633
5655
  itemNone: "sd-checkbox--none",
5634
5656
  itemDisabled: "sd-item--disabled sd-checkbox--disabled",
5657
+ itemReadOnly: "sd-item--readonly sd-checkbox--readonly",
5658
+ itemPreview: "sd-item--preview sd-checkbox--preview",
5659
+ itemPreviewSvgIconId: "#icon-v2check",
5635
5660
  itemChecked: "sd-item--checked sd-checkbox--checked",
5636
5661
  itemHover: "sd-item--allowhover sd-checkbox--allowhover",
5637
5662
  itemInline: "sd-selectbase__item--inline",
@@ -5656,6 +5681,9 @@ var defaultV2Css = {
5656
5681
  label: "sd-selectbase__label",
5657
5682
  labelChecked: "",
5658
5683
  itemDisabled: "sd-item--disabled sd-radio--disabled",
5684
+ itemReadOnly: "sd-item--readonly sd-radio--readonly",
5685
+ itemPreview: "sd-item--preview sd-radio--preview",
5686
+ itemPreviewSvgIconId: "#icon-v2check",
5659
5687
  itemChecked: "sd-item--checked sd-radio--checked",
5660
5688
  itemHover: "sd-item--allowhover sd-radio--allowhover",
5661
5689
  itemControl: "sd-visuallyhidden sd-item__control sd-radio__control",
@@ -5677,18 +5705,26 @@ var defaultV2Css = {
5677
5705
  itemExchanged: "sd-boolean--exchanged",
5678
5706
  itemIndeterminate: "sd-boolean--indeterminate",
5679
5707
  itemDisabled: "sd-boolean--disabled",
5708
+ itemReadOnly: "sd-boolean--readonly",
5709
+ itemPreview: "sd-boolean--preview",
5680
5710
  itemHover: "sd-boolean--allowhover",
5681
5711
  label: "sd-boolean__label",
5682
5712
  labelTrue: "sd-boolean__label--true",
5683
5713
  labelFalse: "sd-boolean__label--false",
5684
5714
  switch: "sd-boolean__switch",
5685
5715
  disabledLabel: "sd-checkbox__label--disabled",
5716
+ labelReadOnly: "sd-checkbox__label--readonly",
5717
+ labelPreview: "sd-checkbox__label--preview",
5686
5718
  sliderText: "sd-boolean__thumb-text",
5687
5719
  slider: "sd-boolean__thumb",
5688
5720
  sliderGhost: "sd-boolean__thumb-ghost",
5689
5721
  //radio
5690
5722
  radioItem: "sd-item",
5691
5723
  radioItemChecked: "sd-item--checked sd-radio--checked",
5724
+ radioItemDisabled: "sd-item--disabled sd-radio--disabled",
5725
+ radioItemReadOnly: "sd-item--readonly sd-radio--readonly",
5726
+ radioItemPreview: "sd-item--preview sd-radio--preview",
5727
+ itemPreviewSvgIconId: "#icon-v2check",
5692
5728
  radioLabel: "sd-selectbase__label",
5693
5729
  radioControlLabel: "sd-item__control-label",
5694
5730
  radioFieldset: "sd-selectbase",
@@ -5705,6 +5741,8 @@ var defaultV2Css = {
5705
5741
  checkboxItemChecked: "sd-item--checked sd-checkbox--checked",
5706
5742
  checkboxItemDecorator: "sd-item__svg sd-checkbox__svg",
5707
5743
  checkboxItemDisabled: "sd-item--disabled sd-checkbox--disabled",
5744
+ checkboxItemReadOnly: "sd-item--readonly sd-checkbox--readonly",
5745
+ checkboxItemPreview: "sd-item--preview sd-checkbox--preview",
5708
5746
  controlCheckbox: "sd-visuallyhidden sd-item__control sd-checkbox__control",
5709
5747
  checkboxMaterialDecorator: "sd-item__decorator sd-checkbox__decorator",
5710
5748
  checkboxControlLabel: "sd-item__control-label",
@@ -5714,6 +5752,8 @@ var defaultV2Css = {
5714
5752
  root: "sd-input sd-text",
5715
5753
  small: "sd-row__question--small",
5716
5754
  controlDisabled: "sd-input--disabled",
5755
+ controlReadOnly: "sd-input--readonly",
5756
+ controlPreview: "sd-input--preview",
5717
5757
  constrolWithCharacterCounter: "sd-text__character-counter",
5718
5758
  characterCounterBig: "sd-text__character-counter--big",
5719
5759
  content: "sd-text__content sd-question__content",
@@ -5724,6 +5764,9 @@ var defaultV2Css = {
5724
5764
  root: "sd-multipletext",
5725
5765
  rootMobile: "sd-multipletext--mobile",
5726
5766
  itemLabel: "sd-multipletext__item-container sd-input",
5767
+ itemLabelReadOnly: "sd-input--readonly",
5768
+ itemLabelDisabled: "sd-input--disabled",
5769
+ itemLabelPreview: "sd-input--preview",
5727
5770
  itemLabelOnError: "sd-multipletext__item-container--error",
5728
5771
  itemLabelAllowFocus: "sd-multipletext__item-container--allow-focus",
5729
5772
  itemLabelAnswered: "sd-multipletext__item-container--answered",
@@ -5761,6 +5804,8 @@ var defaultV2Css = {
5761
5804
  controlInputFieldComponent: "sd-dropdown__input-field-component",
5762
5805
  controlValue: "sd-dropdown__value",
5763
5806
  controlDisabled: "sd-input--disabled",
5807
+ controlReadOnly: "sd-input--readonly",
5808
+ controlPreview: "sd-input--preview",
5764
5809
  controlEmpty: "sd-dropdown--empty",
5765
5810
  controlLabel: "sd-item__control-label",
5766
5811
  filterStringInput: "sd-dropdown__filter-string-input",
@@ -5777,6 +5822,8 @@ var defaultV2Css = {
5777
5822
  itemInline: "sd-imagepicker__item--inline",
5778
5823
  itemChecked: "sd-imagepicker__item--checked",
5779
5824
  itemDisabled: "sd-imagepicker__item--disabled",
5825
+ itemReadOnly: "sd-imagepicker__item--readonly",
5826
+ itemPreview: "sd-imagepicker__item--preview",
5780
5827
  itemHover: "sd-imagepicker__item--allowhover",
5781
5828
  label: "sd-imagepicker__label",
5782
5829
  itemDecorator: "sd-imagepicker__item-decorator",
@@ -5806,6 +5853,7 @@ var defaultV2Css = {
5806
5853
  cell: "sd-table__cell sd-matrix__cell",
5807
5854
  row: "sd-table__row",
5808
5855
  rowDisabled: "sd-table__row-disabled",
5856
+ rowReadOnly: "sd-table__row-readonly",
5809
5857
  headerCell: "sd-table__cell sd-table__cell--header",
5810
5858
  rowTextCell: "sd-table__cell sd-matrix__cell sd-table__cell--row-text",
5811
5859
  label: "sd-item sd-radio sd-matrix__label",
@@ -5813,6 +5861,9 @@ var defaultV2Css = {
5813
5861
  itemValue: "sd-visuallyhidden sd-item__control sd-radio__control",
5814
5862
  itemChecked: "sd-item--checked sd-radio--checked",
5815
5863
  itemDisabled: "sd-item--disabled sd-radio--disabled",
5864
+ itemReadOnly: "sd-item--readonly sd-radio--readonly",
5865
+ itemPreview: "sd-item--preview sd-radio--preview",
5866
+ itemPreviewSvgIconId: "#icon-v2check",
5816
5867
  itemHover: "sd-radio--allowhover",
5817
5868
  materialDecorator: "sd-item__decorator sd-radio__decorator",
5818
5869
  itemDecorator: "sd-item__svg sd-radio__svg",
@@ -5933,6 +5984,8 @@ var defaultV2Css = {
5933
5984
  itemStarHover: "sd-rating__item-star--allowhover",
5934
5985
  itemStarSelected: "sd-rating__item-star--selected",
5935
5986
  itemStarDisabled: "sd-rating__item-star--disabled",
5987
+ itemStarReadOnly: "sd-rating__item-star--readonly",
5988
+ itemStarPreview: "sd-rating__item-star--preview",
5936
5989
  itemStarHighlighted: "sd-rating__item-star--highlighted",
5937
5990
  itemStarUnhighlighted: "sd-rating__item-star--unhighlighted",
5938
5991
  itemStarSmall: "sd-rating__item-star--small",
@@ -5941,6 +5994,8 @@ var defaultV2Css = {
5941
5994
  itemSmileyHover: "sd-rating__item-smiley--allowhover",
5942
5995
  itemSmileySelected: "sd-rating__item-smiley--selected",
5943
5996
  itemSmileyDisabled: "sd-rating__item-smiley--disabled",
5997
+ itemSmileyReadOnly: "sd-rating__item-smiley--readonly",
5998
+ itemSmileyPreview: "sd-rating__item-smiley--preview",
5944
5999
  itemSmileyHighlighted: "sd-rating__item-star--highlighted",
5945
6000
  itemSmileyScaleColored: "sd-rating__item-smiley--scale-colored",
5946
6001
  itemSmileyRateColored: "sd-rating__item-smiley--rate-colored",
@@ -5949,6 +6004,8 @@ var defaultV2Css = {
5949
6004
  itemText: "sd-rating__item-text",
5950
6005
  maxText: "sd-rating__item-text sd-rating__max-text",
5951
6006
  itemDisabled: "sd-rating__item--disabled",
6007
+ itemReadOnly: "sd-rating__item--readonly",
6008
+ itemPreview: "sd-rating__item--preview",
5952
6009
  itemFixedSize: "sd-rating__item--fixed-size",
5953
6010
  control: "sd-input sd-dropdown",
5954
6011
  itemSmall: "sd-rating--small",
@@ -5967,6 +6024,8 @@ var defaultV2Css = {
5967
6024
  root: "sd-input sd-comment",
5968
6025
  small: "sd-row__question--small",
5969
6026
  controlDisabled: "sd-input--disabled",
6027
+ controlReadOnly: "sd-input--readonly",
6028
+ controlPreview: "sd-input--preview",
5970
6029
  content: "sd-comment__content sd-question__content",
5971
6030
  remainingCharacterCounter: "sd-remaining-character-counter",
5972
6031
  onError: "sd-input--error"
@@ -5976,9 +6035,12 @@ var defaultV2Css = {
5976
6035
  root: "sd-file",
5977
6036
  rootDragging: "sd-file--dragging",
5978
6037
  rootAnswered: "sd-file--answered",
6038
+ rootDisabled: "sd-file--disabled",
6039
+ rootReadOnly: "sd-file--readonly",
6040
+ rootPreview: "sd-file--preview",
5979
6041
  other: "sd-input sd-comment",
5980
6042
  placeholderInput: "sd-visuallyhidden",
5981
- preview: "sd-file__preview",
6043
+ previewItem: "sd-file__preview-item",
5982
6044
  fileSign: "",
5983
6045
  fileList: "sd-file__list",
5984
6046
  fileSignBottom: "sd-file__sign",
@@ -6069,9 +6131,12 @@ var defaultV2Css = {
6069
6131
  rootMobileMod: "sv-ranking--mobile",
6070
6132
  rootDragMod: "sv-ranking--drag",
6071
6133
  rootDisabled: "sd-ranking--disabled",
6134
+ rootReadOnly: "sd-ranking--readonly",
6135
+ rootPreview: "sd-ranking--preview",
6072
6136
  rootDesignMode: "sv-ranking--design-mode",
6073
6137
  rootDragHandleAreaIcon: "sv-ranking--drag-handle-area-icon",
6074
6138
  rootSelectToRankMod: "sv-ranking--select-to-rank",
6139
+ rootSelectToRankEmptyValueMod: "sv-ranking--select-to-rank-empty-value",
6075
6140
  rootSelectToRankAlignVertical: "sv-ranking--select-to-rank-vertical",
6076
6141
  rootSelectToRankAlignHorizontal: "sv-ranking--select-to-rank-horizontal",
6077
6142
  item: "sv-ranking-item",
@@ -6080,6 +6145,8 @@ var defaultV2Css = {
6080
6145
  itemIndexEmptyMode: "sv-ranking-item__index--empty sd-ranking-item__index--empty",
6081
6146
  // itemText: "sv-ranking-item__text",
6082
6147
  itemDisabled: "sv-ranking-item--disabled",
6148
+ itemReadOnly: "sv-ranking-item--readonly",
6149
+ itemPreview: "sv-ranking-item--preview",
6083
6150
  controlLabel: "sv-ranking-item__text",
6084
6151
  itemGhostNode: "sv-ranking-item__ghost",
6085
6152
  itemIconContainer: "sv-ranking-item__icon-container",
@@ -6156,7 +6223,10 @@ var defaultV2Css = {
6156
6223
  controlValue: "sd-tagbox__value sd-dropdown__value",
6157
6224
  controlValueItems: "sd-tagbox__value-items",
6158
6225
  placeholderInput: "sd-tagbox__placeholder",
6226
+ controlEditable: "sd-input--editable",
6159
6227
  controlDisabled: "sd-input--disabled",
6228
+ controlReadOnly: "sd-input--readonly",
6229
+ controlPreview: "sd-input--preview",
6160
6230
  controlEmpty: "sd-dropdown--empty sd-tagbox--empty",
6161
6231
  controlLabel: "sd-item__control-label",
6162
6232
  filterStringInput: "sd-tagbox__filter-string-input sd-dropdown__filter-string-input",
@@ -8070,6 +8140,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8070
8140
  this._popupModel.isFocusedContainer = false;
8071
8141
  this._popupModel.isFocusedContent = _utils_devices__WEBPACK_IMPORTED_MODULE_9__["IsTouch"];
8072
8142
  this._popupModel.setWidthByTarget = !_utils_devices__WEBPACK_IMPORTED_MODULE_9__["IsTouch"];
8143
+ this._popupModel.locale = this.question.getLocale();
8073
8144
  this.updatePopupFocusFirstInputSelector();
8074
8145
  this.listModel.registerPropertyChangedHandlers(["showFilter"], function () {
8075
8146
  _this.updatePopupFocusFirstInputSelector();
@@ -8170,6 +8241,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8170
8241
  }
8171
8242
  });
8172
8243
  model.isAllDataLoaded = !this.question.choicesLazyLoadEnabled;
8244
+ model.actions.forEach(function (a) { return a.disableTabStop = true; });
8173
8245
  };
8174
8246
  DropdownListModel.prototype.updateCssClasses = function (popupCssClass, listCssClasses) {
8175
8247
  this.popupModel.cssClass = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_8__["CssClassBuilder"]().append(popupCssClass).append(this.popupCssClasses).toString();
@@ -8734,6 +8806,7 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8734
8806
  };
8735
8807
  }
8736
8808
  var res = new _multiSelectListModel__WEBPACK_IMPORTED_MODULE_3__["MultiSelectListModel"](visibleItems, _onSelectionChanged, false, undefined, this.question.choicesLazyLoadEnabled ? this.listModelFilterStringChanged : undefined, this.listElementId);
8809
+ res.actions.forEach(function (a) { return a.disableTabStop = true; });
8737
8810
  this.setOnTextSearchCallbackForListModel(res);
8738
8811
  res.forceShowFilter = true;
8739
8812
  return res;
@@ -9563,8 +9636,8 @@ __webpack_require__.r(__webpack_exports__);
9563
9636
 
9564
9637
  var Version;
9565
9638
  var ReleaseDate;
9566
- Version = "" + "1.9.138";
9567
- ReleaseDate = "" + "2024-04-09";
9639
+ Version = "" + "1.9.139";
9640
+ ReleaseDate = "" + "2024-04-16";
9568
9641
  function checkLibraryVersion(ver, libraryName) {
9569
9642
  if (Version != ver) {
9570
9643
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -17139,7 +17212,7 @@ module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\
17139
17212
  /*! no static exports found */
17140
17213
  /***/ (function(module, exports) {
17141
17214
 
17142
- module.exports = "<svg viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"M24 39.5057L11.7226 45.9839C10.4095 46.6739 8.87606 45.5622 9.12525 44.096L11.4734 30.373L1.54411 20.6556C0.480254 19.6207 1.06489 17.8095 2.53128 17.5986L16.2559 15.5957L22.3994 3.10891C23.0512 1.77685 24.9488 1.77685 25.6102 3.10891L31.7441 15.5957L45.4687 17.5986C46.9351 17.8095 47.5197 19.6207 46.4559 20.6556L36.5266 30.373L38.8748 44.096C39.1239 45.5622 37.5905 46.6835 36.2774 45.9839L24 39.5057Z\" fill=\"none\" stroke-width=\"2\"></path><path d=\"M24.4663 34.6154L24 34.3695L23.5336 34.6154L14.4788 39.389L16.2156 29.2691L16.3044 28.7517L15.9289 28.3848L8.57358 21.1966L18.7249 19.7094L19.245 19.6332L19.4772 19.1616L24 9.97413L28.5228 19.1616L28.755 19.6332L29.275 19.7094L39.4264 21.1966L32.0711 28.3848L31.6956 28.7517L31.7844 29.2691L33.5211 39.389L24.4663 34.6154Z\" stroke-width=\"2\"></path></g></svg>"
17215
+ module.exports = "<svg viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"M24 39.5057L11.7226 45.9839C10.4095 46.6739 8.87606 45.5622 9.12525 44.096L11.4734 30.373L1.54411 20.6556C0.480254 19.6207 1.06489 17.8095 2.53128 17.5986L16.2559 15.5957L22.3994 3.10891C23.0512 1.77685 24.9488 1.77685 25.6102 3.10891L31.7441 15.5957L45.4687 17.5986C46.9351 17.8095 47.5197 19.6207 46.4559 20.6556L36.5266 30.373L38.8748 44.096C39.1239 45.5622 37.5905 46.6835 36.2774 45.9839L24 39.5057Z\" fill=\"none\"></path><path d=\"M24.4663 34.6154L24 34.3695L23.5336 34.6154L14.4788 39.389L16.2156 29.2691L16.3044 28.7517L15.9289 28.3848L8.57358 21.1966L18.7249 19.7094L19.245 19.6332L19.4772 19.1616L24 9.97413L28.5228 19.1616L28.755 19.6332L29.275 19.7094L39.4264 21.1966L32.0711 28.3848L31.6956 28.7517L31.7844 29.2691L33.5211 39.389L24.4663 34.6154Z\"></path></g></svg>"
17143
17216
 
17144
17217
  /***/ }),
17145
17218
 
@@ -17161,7 +17234,7 @@ module.exports = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\
17161
17234
  /*! no static exports found */
17162
17235
  /***/ (function(module, exports) {
17163
17236
 
17164
- module.exports = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"M12 19.3373L6.13001 22.4373C5.50001 22.7673 4.77001 22.2373 4.89001 21.5373L6.01001 14.9773L1.26001 10.3273C0.750007 9.83728 1.03001 8.96728 1.73001 8.86728L8.29001 7.90728L11.23 1.93728C11.54 1.29728 12.45 1.29728 12.77 1.93728L15.7 7.90728L22.26 8.86728C22.96 8.96728 23.24 9.83728 22.73 10.3273L17.98 14.9773L19.1 21.5373C19.22 22.2373 18.49 22.7773 17.86 22.4373L11.99 19.3373H12Z\" stroke-width=\"2\"></path></g></svg>"
17237
+ module.exports = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"M12 19.3373L6.13001 22.4373C5.50001 22.7673 4.77001 22.2373 4.89001 21.5373L6.01001 14.9773L1.26001 10.3273C0.750007 9.83728 1.03001 8.96728 1.73001 8.86728L8.29001 7.90728L11.23 1.93728C11.54 1.29728 12.45 1.29728 12.77 1.93728L15.7 7.90728L22.26 8.86728C22.96 8.96728 23.24 9.83728 22.73 10.3273L17.98 14.9773L19.1 21.5373C19.22 22.2373 18.49 22.7773 17.86 22.4373L11.99 19.3373H12Z\"></path></g></svg>"
17165
17238
 
17166
17239
  /***/ }),
17167
17240
 
@@ -17172,7 +17245,7 @@ module.exports = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\
17172
17245
  /*! no static exports found */
17173
17246
  /***/ (function(module, exports) {
17174
17247
 
17175
- module.exports = "<svg viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"M24 39.5057L11.7226 45.9839C10.4095 46.6739 8.87606 45.5622 9.12525 44.096L11.4734 30.373L1.54411 20.6556C0.480254 19.6207 1.06489 17.8095 2.53128 17.5986L16.2559 15.5957L22.3994 3.10891C23.0512 1.77685 24.9488 1.77685 25.6102 3.10891L31.7441 15.5957L45.4687 17.5986C46.9351 17.8095 47.5197 19.6207 46.4559 20.6556L36.5266 30.373L38.8748 44.096C39.1239 45.5622 37.5905 46.6835 36.2774 45.9839L24 39.5057Z\" stroke-width=\"2\"></path></g></svg>"
17248
+ module.exports = "<svg viewBox=\"0 0 48 48\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"M24 39.5057L11.7226 45.9839C10.4095 46.6739 8.87606 45.5622 9.12525 44.096L11.4734 30.373L1.54411 20.6556C0.480254 19.6207 1.06489 17.8095 2.53128 17.5986L16.2559 15.5957L22.3994 3.10891C23.0512 1.77685 24.9488 1.77685 25.6102 3.10891L31.7441 15.5957L45.4687 17.5986C46.9351 17.8095 47.5197 19.6207 46.4559 20.6556L36.5266 30.373L38.8748 44.096C39.1239 45.5622 37.5905 46.6835 36.2774 45.9839L24 39.5057Z\"></path></g></svg>"
17176
17249
 
17177
17250
  /***/ }),
17178
17251
 
@@ -21048,7 +21121,7 @@ var englishStrings = {
21048
21121
  uploadingFile: "Your file is uploading. Please wait several seconds and try again.",
21049
21122
  loadingFile: "Loading...",
21050
21123
  chooseFile: "Choose file(s)...",
21051
- noFileChosen: "No file chosen",
21124
+ noFileChosen: "No file selected",
21052
21125
  filePlaceholder: "Drag and drop a file here or click the button below to select a file to upload.",
21053
21126
  confirmDelete: "Are you sure you want to delete this record?",
21054
21127
  keyDuplicationError: "This value should be unique.",
@@ -21078,6 +21151,7 @@ var englishStrings = {
21078
21151
  timerLimitSurvey: "You have spent {0} of {1} in total.",
21079
21152
  clearCaption: "Clear",
21080
21153
  signaturePlaceHolder: "Sign here",
21154
+ signaturePlaceHolderReadOnly: "No signature",
21081
21155
  chooseFileCaption: "Select File",
21082
21156
  takePhotoCaption: "Take Photo",
21083
21157
  photoPlaceholder: "Click the button below to take a photo using the camera.",
@@ -21094,7 +21168,7 @@ var englishStrings = {
21094
21168
  filterStringPlaceholder: "Type to search...",
21095
21169
  emptyMessage: "No data to display",
21096
21170
  noEntriesText: "No entries yet.\nClick the button below to add a new entry.",
21097
- noEntriesReadonlyText: "No entries.",
21171
+ noEntriesReadonlyText: "No entries",
21098
21172
  more: "More",
21099
21173
  tagboxDoneButtonCaption: "OK",
21100
21174
  selectToRankEmptyRankedAreaText: "All choices are selected for ranking",
@@ -21579,9 +21653,6 @@ var InputElementAdapter = /** @class */ (function () {
21579
21653
  if (_value === null || _value === undefined) {
21580
21654
  _value = "";
21581
21655
  }
21582
- else if (typeof _value !== "string") {
21583
- _value = _value.toString();
21584
- }
21585
21656
  this.inputElement.value = inputMaskInstance.getMaskedValue(_value);
21586
21657
  this.prevUnmaskedValue = _value;
21587
21658
  inputMaskInstance.onPropertyChanged.add(this.inputMaskInstancePropertyChangedHandler);
@@ -21889,6 +21960,17 @@ var __extends = (undefined && undefined.__extends) || (function () {
21889
21960
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
21890
21961
  };
21891
21962
  })();
21963
+ var __assign = (undefined && undefined.__assign) || function () {
21964
+ __assign = Object.assign || function(t) {
21965
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
21966
+ s = arguments[i];
21967
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
21968
+ t[p] = s[p];
21969
+ }
21970
+ return t;
21971
+ };
21972
+ return __assign.apply(this, arguments);
21973
+ };
21892
21974
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
21893
21975
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
21894
21976
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -21900,11 +21982,15 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
21900
21982
 
21901
21983
  function getMaxCountLexem(currentLexemType, count) {
21902
21984
  switch (currentLexemType) {
21903
- case ("day"):
21904
- case ("month"): {
21985
+ case "hour":
21986
+ case "minute":
21987
+ case "second":
21988
+ case "day":
21989
+ case "month": {
21905
21990
  return 2;
21906
21991
  }
21907
- case ("year"): {
21992
+ case "timeMarker":
21993
+ case "year": {
21908
21994
  return count;
21909
21995
  }
21910
21996
  default: {
@@ -21936,7 +22022,8 @@ function getDefaultYearForValidation(minYear, maxYear) {
21936
22022
  function getDateTimeLexems(pattern) {
21937
22023
  var result = [];
21938
22024
  var prevLexemType;
21939
- var createOrUpdateLexem = function (currentLexemType, currentChar) {
22025
+ var createOrUpdateLexem = function (currentLexemType, currentChar, upperCase) {
22026
+ if (upperCase === void 0) { upperCase = false; }
21940
22027
  if (!!prevLexemType && prevLexemType === currentLexemType) {
21941
22028
  result[result.length - 1].count++;
21942
22029
  var maxCount = getMaxCountLexem(currentLexemType, result[result.length - 1].count);
@@ -21945,23 +22032,41 @@ function getDateTimeLexems(pattern) {
21945
22032
  else {
21946
22033
  var maxCount = getMaxCountLexem(currentLexemType, 1);
21947
22034
  // result.push({ type: currentLexemType, value: currentChar, count: 1, data: { value: "", isCompleted: false, isCorrect: false }, maxCount: maxCount });
21948
- result.push({ type: currentLexemType, value: currentChar, count: 1, maxCount: maxCount });
22035
+ result.push({ type: currentLexemType, value: currentChar, count: 1, maxCount: maxCount, upperCase: upperCase });
21949
22036
  }
21950
22037
  };
21951
22038
  for (var index = 0; index < pattern.length; index++) {
21952
22039
  var currentChar = pattern[index];
21953
22040
  switch (currentChar) {
21954
22041
  case "m":
21955
- createOrUpdateLexem("month", "m");
22042
+ createOrUpdateLexem("month", currentChar);
21956
22043
  break;
21957
22044
  case "d":
21958
- createOrUpdateLexem("day", "d");
22045
+ createOrUpdateLexem("day", currentChar);
21959
22046
  break;
21960
22047
  case "y":
21961
- createOrUpdateLexem("year", "y");
22048
+ createOrUpdateLexem("year", currentChar);
22049
+ break;
22050
+ case "h":
22051
+ createOrUpdateLexem("hour", currentChar, false);
22052
+ break;
22053
+ case "H":
22054
+ createOrUpdateLexem("hour", currentChar, true);
22055
+ break;
22056
+ case "M":
22057
+ createOrUpdateLexem("minute", currentChar);
22058
+ break;
22059
+ case "s":
22060
+ createOrUpdateLexem("second", currentChar);
22061
+ break;
22062
+ case "t":
22063
+ createOrUpdateLexem("timeMarker", currentChar);
22064
+ break;
22065
+ case "T":
22066
+ createOrUpdateLexem("timeMarker", currentChar, true);
21962
22067
  break;
21963
22068
  default:
21964
- result.push({ type: "separator", value: currentChar, count: 1, maxCount: 1 });
22069
+ result.push({ type: "separator", value: currentChar, count: 1, maxCount: 1, upperCase: false });
21965
22070
  break;
21966
22071
  }
21967
22072
  prevLexemType = result[result.length - 1].type;
@@ -21992,11 +22097,42 @@ var InputMaskDateTime = /** @class */ (function (_super) {
21992
22097
  __extends(InputMaskDateTime, _super);
21993
22098
  function InputMaskDateTime() {
21994
22099
  var _this = _super !== null && _super.apply(this, arguments) || this;
22100
+ _this.defaultDate = "1970-01-01T";
21995
22101
  _this.turnOfTheCentury = 68;
22102
+ _this.twelve = 12;
21996
22103
  _this.lexems = [];
21997
22104
  _this.inputDateTimeData = [];
22105
+ _this.validBeginningOfNumbers = {
22106
+ hour: 1,
22107
+ hourU: 2,
22108
+ minute: 5,
22109
+ second: 5,
22110
+ day: 3,
22111
+ month: 1,
22112
+ };
21998
22113
  return _this;
21999
22114
  }
22115
+ Object.defineProperty(InputMaskDateTime.prototype, "hasDatePart", {
22116
+ get: function () {
22117
+ return this.lexems.some(function (l) { return l.type === "day" || l.type === "month" || l.type === "year"; });
22118
+ },
22119
+ enumerable: false,
22120
+ configurable: true
22121
+ });
22122
+ Object.defineProperty(InputMaskDateTime.prototype, "hasTimePart", {
22123
+ get: function () {
22124
+ return this.lexems.some(function (l) { return l.type === "hour" || l.type === "minute" || l.type === "second"; });
22125
+ },
22126
+ enumerable: false,
22127
+ configurable: true
22128
+ });
22129
+ Object.defineProperty(InputMaskDateTime.prototype, "is12Hours", {
22130
+ get: function () {
22131
+ return this.lexems.filter(function (l) { return l.type === "hour" && !l.upperCase; }).length > 0;
22132
+ },
22133
+ enumerable: false,
22134
+ configurable: true
22135
+ });
22000
22136
  InputMaskDateTime.prototype.getType = function () {
22001
22137
  return "datetimemask";
22002
22138
  };
@@ -22016,20 +22152,45 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22016
22152
  var _this = this;
22017
22153
  var date = new Date(str);
22018
22154
  this.initInputDateTimeData();
22155
+ if (!this.hasDatePart) {
22156
+ date = new Date(this.defaultDate + str);
22157
+ }
22019
22158
  if (!isNaN(date)) {
22020
22159
  this.lexems.forEach(function (lexem, index) {
22021
22160
  var inputData = _this.inputDateTimeData[index];
22022
22161
  inputData.isCompleted = true;
22023
22162
  switch (lexem.type) {
22024
- case ("day"): {
22163
+ case "hour": {
22164
+ if (!_this.is12Hours) {
22165
+ inputData.value = date.getHours().toString();
22166
+ }
22167
+ else {
22168
+ inputData.value = ((date.getHours() - 1) % _this.twelve + 1).toString();
22169
+ }
22170
+ break;
22171
+ }
22172
+ case "minute": {
22173
+ inputData.value = date.getMinutes().toString();
22174
+ break;
22175
+ }
22176
+ case "second": {
22177
+ inputData.value = date.getSeconds().toString();
22178
+ break;
22179
+ }
22180
+ case "timeMarker": {
22181
+ var marker = (date.getHours() >= _this.twelve) ? "pm" : "am";
22182
+ inputData.value = lexem.upperCase ? marker.toUpperCase() : marker;
22183
+ break;
22184
+ }
22185
+ case "day": {
22025
22186
  inputData.value = date.getDate().toString();
22026
22187
  break;
22027
22188
  }
22028
- case ("month"): {
22189
+ case "month": {
22029
22190
  inputData.value = (date.getMonth() + 1).toString();
22030
22191
  break;
22031
22192
  }
22032
- case ("year"): {
22193
+ case "year": {
22033
22194
  var year = date.getFullYear();
22034
22195
  if (lexem.count == 2)
22035
22196
  year = year % 100;
@@ -22053,6 +22214,7 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22053
22214
  };
22054
22215
  InputMaskDateTime.prototype.getISO_8601Format = function (dateTime) {
22055
22216
  var date = [];
22217
+ var time = [];
22056
22218
  if (dateTime.year !== undefined) {
22057
22219
  var year = this.getPlaceholder(4, dateTime.year.toString(), "0") + dateTime.year;
22058
22220
  date.push(year);
@@ -22065,7 +22227,26 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22065
22227
  var day = this.getPlaceholder(2, dateTime.day.toString(), "0") + dateTime.day;
22066
22228
  date.push(day);
22067
22229
  }
22068
- return date.join("-");
22230
+ if (dateTime.hour !== undefined) {
22231
+ var hour = this.getPlaceholder(2, dateTime.hour.toString(), "0") + dateTime.hour;
22232
+ time.push(hour);
22233
+ }
22234
+ if (dateTime.minute !== undefined && dateTime.hour !== undefined) {
22235
+ var minute = this.getPlaceholder(2, dateTime.minute.toString(), "0") + dateTime.minute;
22236
+ time.push(minute);
22237
+ }
22238
+ if (dateTime.second !== undefined && dateTime.minute !== undefined && dateTime.hour !== undefined) {
22239
+ var second = this.getPlaceholder(2, dateTime.second.toString(), "0") + dateTime.second;
22240
+ time.push(second);
22241
+ }
22242
+ var result = [];
22243
+ if (date.length > 0) {
22244
+ result.push(date.join("-"));
22245
+ }
22246
+ if (time.length > 1) {
22247
+ result.push(time.join(":"));
22248
+ }
22249
+ return result.join("T");
22069
22250
  };
22070
22251
  InputMaskDateTime.prototype.isYearValid = function (dateTime) {
22071
22252
  if (dateTime.min === undefined && dateTime.max === undefined)
@@ -22075,74 +22256,153 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22075
22256
  var maxYearPart = dateTime.max.toISOString().slice(0, data.length);
22076
22257
  return dateTime.year >= parseInt(minYearPart) && dateTime.year <= parseInt(maxYearPart);
22077
22258
  };
22259
+ InputMaskDateTime.prototype.createIDateTimeCompositionWithDefaults = function (dateTime, isUpperLimit) {
22260
+ var min = dateTime.min;
22261
+ var max = dateTime.max;
22262
+ var year = dateTime.year !== undefined ? dateTime.year : getDefaultYearForValidation(min.getFullYear(), max.getFullYear());
22263
+ var month = dateTime.month !== undefined ? dateTime.month : (isUpperLimit && this.hasDatePart ? 12 : 1);
22264
+ var day = dateTime.day !== undefined ? dateTime.day : (isUpperLimit && this.hasDatePart ? this.getMaxDateForMonth(year, month) : 1);
22265
+ var hour = dateTime.hour !== undefined ? dateTime.hour : (isUpperLimit ? 23 : 0);
22266
+ var minute = dateTime.minute !== undefined ? dateTime.minute : (isUpperLimit ? 59 : 0);
22267
+ var second = dateTime.second !== undefined ? dateTime.second : (isUpperLimit ? 59 : 0);
22268
+ return { year: year, month: month, day: day, hour: hour, minute: minute, second: second };
22269
+ };
22270
+ InputMaskDateTime.prototype.getMaxDateForMonth = function (year, month) {
22271
+ if (month == 2)
22272
+ return year % 4 == 0 && year % 100 != 0 || year % 400 ? 29 : 28;
22273
+ return [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month - 1];
22274
+ };
22078
22275
  InputMaskDateTime.prototype.isDateValid = function (dateTime) {
22079
22276
  var min = dateTime.min;
22080
22277
  var max = dateTime.max;
22081
22278
  var year = dateTime.year !== undefined ? dateTime.year : getDefaultYearForValidation(min.getFullYear(), max.getFullYear());
22082
22279
  var month = dateTime.month !== undefined ? dateTime.month : 1;
22083
22280
  var day = dateTime.day !== undefined ? dateTime.day : 1;
22084
- var date = new Date(this.getISO_8601Format({ year: year, month: month, day: day }));
22085
22281
  var monthIndex = month - 1;
22282
+ var date = new Date(this.getISO_8601Format(this.createIDateTimeCompositionWithDefaults(dateTime, false)));
22283
+ var dateH = new Date(this.getISO_8601Format(this.createIDateTimeCompositionWithDefaults(dateTime, true)));
22086
22284
  return !isNaN(date) &&
22087
22285
  date.getDate() === day &&
22088
22286
  date.getMonth() === monthIndex &&
22089
22287
  date.getFullYear() === year &&
22090
- date >= dateTime.min && date <= dateTime.max;
22288
+ dateH >= dateTime.min && date <= dateTime.max;
22091
22289
  };
22092
22290
  InputMaskDateTime.prototype.getPlaceholder = function (lexemLength, str, char) {
22093
22291
  var paddingsLength = lexemLength - (str || "").length;
22094
22292
  var paddings = paddingsLength > 0 ? char.repeat(paddingsLength) : "";
22095
22293
  return paddings;
22096
22294
  };
22295
+ InputMaskDateTime.prototype.isDateValid12 = function (dateTime12) {
22296
+ if (!this.is12Hours)
22297
+ return this.isDateValid(dateTime12);
22298
+ if (this.is12Hours && dateTime12.hour > this.twelve) {
22299
+ return false;
22300
+ }
22301
+ if (!dateTime12.timeMarker) {
22302
+ if (this.isDateValid(dateTime12))
22303
+ return true;
22304
+ dateTime12.hour += this.twelve;
22305
+ return this.isDateValid(dateTime12);
22306
+ }
22307
+ else if (dateTime12.timeMarker[0].toLowerCase() === "p") {
22308
+ if (dateTime12.hour !== this.twelve) {
22309
+ dateTime12.hour += this.twelve;
22310
+ }
22311
+ return this.isDateValid(dateTime12);
22312
+ }
22313
+ else {
22314
+ if (dateTime12.hour === this.twelve) {
22315
+ dateTime12.hour = 0;
22316
+ }
22317
+ return this.isDateValid(dateTime12);
22318
+ }
22319
+ };
22320
+ InputMaskDateTime.prototype.updateTimeMarkerInputDateTimeData = function (newItem, dateTime) {
22321
+ var data = newItem.value;
22322
+ if (!data)
22323
+ return;
22324
+ var propertyName = "timeMarker";
22325
+ var tempDateTime = __assign({}, dateTime);
22326
+ tempDateTime[propertyName] = data;
22327
+ if (this.isDateValid12(tempDateTime)) {
22328
+ newItem.isCompleted = true;
22329
+ }
22330
+ else {
22331
+ data = data.slice(0, data.length - 1);
22332
+ }
22333
+ newItem.value = data || undefined;
22334
+ dateTime[propertyName] = data || undefined;
22335
+ return;
22336
+ };
22097
22337
  InputMaskDateTime.prototype.updateInputDateTimeData = function (newItem, dateTime) {
22098
22338
  var data = newItem.value;
22099
22339
  if (!data)
22100
22340
  return;
22101
22341
  var propertyName = newItem.lexem.type;
22102
- dateTime[propertyName] = parseInt(data);
22342
+ var tempDateTime = __assign({}, dateTime);
22343
+ tempDateTime[propertyName] = parseInt(data);
22103
22344
  if (data.length === newItem.lexem.maxCount) {
22104
- if (this.isDateValid(dateTime)) {
22345
+ if (this.isDateValid12(tempDateTime)) {
22105
22346
  newItem.isCompleted = true;
22347
+ newItem.value = data || undefined;
22348
+ dateTime[propertyName] = parseInt(data) > 0 ? parseInt(data) : undefined;
22349
+ return;
22106
22350
  }
22107
22351
  else {
22108
22352
  data = data.slice(0, data.length - 1);
22109
22353
  }
22110
22354
  }
22111
- dateTime[propertyName] = parseInt(data);
22112
- if (propertyName === "year" && !this.isYearValid(dateTime)) {
22355
+ tempDateTime[propertyName] = parseInt(data);
22356
+ var firstDigit = parseInt(data[0]);
22357
+ var validBeginningOfNumber = this.validBeginningOfNumbers[propertyName + (newItem.lexem.upperCase ? "U" : "")];
22358
+ if ((propertyName === "year" && !this.isYearValid(tempDateTime))) {
22113
22359
  data = data.slice(0, data.length - 1);
22360
+ newItem.isCompleted = false;
22114
22361
  }
22115
- else if ((propertyName === "day" && parseInt(data[0]) > 3) || (propertyName === "month" && parseInt(data[0]) > 1)) {
22116
- if (this.isDateValid(dateTime)) {
22362
+ else if (validBeginningOfNumber !== undefined && firstDigit > validBeginningOfNumber) {
22363
+ if (this.isDateValid12(tempDateTime)) {
22117
22364
  newItem.isCompleted = true;
22118
22365
  }
22119
22366
  else {
22120
22367
  data = data.slice(0, data.length - 1);
22121
22368
  }
22122
22369
  }
22123
- else if ((propertyName === "day" && parseInt(data[0]) <= 3 && parseInt(data[0]) !== 0) || (propertyName === "month" && parseInt(data[0]) <= 1 && parseInt(data[0]) !== 0)) {
22124
- var prevValue = dateTime[propertyName];
22125
- var tempValue = prevValue * 10;
22126
- var maxValue = propertyName === "month" ? 3 : 10;
22127
- newItem.isCompleted = true;
22128
- for (var index = 0; index < maxValue; index++) {
22129
- dateTime[propertyName] = tempValue + index;
22130
- if (this.isDateValid(dateTime)) {
22131
- newItem.isCompleted = false;
22132
- break;
22133
- }
22134
- }
22135
- dateTime[propertyName] = prevValue;
22136
- if (newItem.isCompleted && !this.isDateValid(dateTime)) {
22370
+ else if (validBeginningOfNumber !== undefined && firstDigit !== 0 && firstDigit <= validBeginningOfNumber) {
22371
+ this.checkValidationDateTimePart(tempDateTime, propertyName, newItem);
22372
+ if (newItem.isCompleted && !this.isDateValid12(tempDateTime)) {
22137
22373
  data = data.slice(0, data.length - 1);
22138
22374
  }
22139
22375
  }
22140
22376
  newItem.value = data || undefined;
22141
22377
  dateTime[propertyName] = parseInt(data) > 0 ? parseInt(data) : undefined;
22142
22378
  };
22379
+ InputMaskDateTime.prototype.checkValidationDateTimePart = function (dateTime, propertyName, newItem) {
22380
+ var prevValue = dateTime[propertyName];
22381
+ var tempValue = prevValue * 10;
22382
+ var maxValue = 10;
22383
+ if (propertyName === "month")
22384
+ maxValue = 3;
22385
+ if (propertyName === "hour")
22386
+ maxValue = this.is12Hours ? 3 : 5;
22387
+ newItem.isCompleted = true;
22388
+ for (var index = 0; index < maxValue; index++) {
22389
+ dateTime[propertyName] = tempValue + index;
22390
+ if (this.isDateValid12(dateTime)) {
22391
+ newItem.isCompleted = false;
22392
+ break;
22393
+ }
22394
+ }
22395
+ dateTime[propertyName] = prevValue;
22396
+ };
22143
22397
  InputMaskDateTime.prototype.getCorrectDatePartFormat = function (inputData, matchWholeMask) {
22144
22398
  var lexem = inputData.lexem;
22145
22399
  var dataStr = inputData.value || "";
22400
+ if (!!dataStr && lexem.type === "timeMarker") {
22401
+ if (matchWholeMask) {
22402
+ dataStr = dataStr + this.getPlaceholder(lexem.count, dataStr, lexem.value);
22403
+ }
22404
+ return dataStr;
22405
+ }
22146
22406
  if (!!dataStr && inputData.isCompleted) {
22147
22407
  dataStr = parseInt(dataStr).toString();
22148
22408
  }
@@ -22160,12 +22420,24 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22160
22420
  return dataStr;
22161
22421
  };
22162
22422
  InputMaskDateTime.prototype.createIDateTimeComposition = function () {
22423
+ var isoMin, isoMax;
22424
+ if (this.hasDatePart) {
22425
+ isoMin = this.min || "0001-01-01";
22426
+ isoMax = this.max || "9999-12-31";
22427
+ }
22428
+ else {
22429
+ isoMin = this.defaultDate + (this.min || "00:00:00");
22430
+ isoMax = this.defaultDate + (this.max || "23:59:59");
22431
+ }
22163
22432
  var tempDateTime = {
22433
+ hour: undefined,
22434
+ minute: undefined,
22435
+ second: undefined,
22164
22436
  day: undefined,
22165
22437
  month: undefined,
22166
22438
  year: undefined,
22167
- min: new Date(this.min || "0001-01-01"),
22168
- max: new Date(this.max || "9999-12-31")
22439
+ min: new Date(isoMin),
22440
+ max: new Date(isoMax)
22169
22441
  };
22170
22442
  return tempDateTime;
22171
22443
  };
@@ -22192,6 +22464,10 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22192
22464
  for (var index = 0; index < this.inputDateTimeData.length; index++) {
22193
22465
  var inputData = this.inputDateTimeData[index];
22194
22466
  switch (inputData.lexem.type) {
22467
+ case "timeMarker":
22468
+ case "hour":
22469
+ case "minute":
22470
+ case "second":
22195
22471
  case "day":
22196
22472
  case "month":
22197
22473
  case "year":
@@ -22200,7 +22476,7 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22200
22476
  return result;
22201
22477
  }
22202
22478
  else {
22203
- var _matchWholeMask = matchWholeMask || lastItemWithDataIndex !== index;
22479
+ var _matchWholeMask = matchWholeMask || lastItemWithDataIndex > index;
22204
22480
  var data = this.getCorrectDatePartFormat(inputData, _matchWholeMask);
22205
22481
  result += (prevSeparator + data);
22206
22482
  prevIsCompleted = inputData.isCompleted;
@@ -22213,15 +22489,38 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22213
22489
  }
22214
22490
  return result;
22215
22491
  };
22492
+ InputMaskDateTime.prototype.cleanTimeMarker = function (str, upperCase) {
22493
+ var result = "";
22494
+ str = str.toUpperCase();
22495
+ for (var i = 0; i < str.length; i++) {
22496
+ if (!result && (str[i] == "P" || str[i] == "A") || result && str[i] == "M")
22497
+ result += str[i];
22498
+ }
22499
+ if (upperCase) {
22500
+ result = result.toUpperCase();
22501
+ }
22502
+ else {
22503
+ result = result.toLowerCase();
22504
+ }
22505
+ return result;
22506
+ };
22216
22507
  InputMaskDateTime.prototype.setInputDateTimeData = function (numberParts) {
22217
22508
  var _this = this;
22218
22509
  var numberPartsArrayIndex = 0;
22219
22510
  this.initInputDateTimeData();
22220
22511
  this.lexems.forEach(function (lexem, index) {
22221
- if (lexem.type !== "separator" && numberParts.length > 0 && numberPartsArrayIndex < numberParts.length) {
22512
+ if (numberParts.length > 0 && numberPartsArrayIndex < numberParts.length) {
22513
+ if (lexem.type === "separator")
22514
+ return;
22222
22515
  var inputData = _this.inputDateTimeData[index];
22223
22516
  var currentPart = numberParts[numberPartsArrayIndex];
22224
- var _data = _this.leaveOnlyNumbers(currentPart);
22517
+ var _data = void 0;
22518
+ if (lexem.type === "timeMarker") {
22519
+ _data = _this.cleanTimeMarker(currentPart, lexem.upperCase);
22520
+ }
22521
+ else {
22522
+ _data = _this.leaveOnlyNumbers(currentPart);
22523
+ }
22225
22524
  inputData.value = _data.slice(0, lexem.maxCount);
22226
22525
  numberPartsArrayIndex++;
22227
22526
  }
@@ -22234,7 +22533,14 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22234
22533
  var inputParts = this.getParts(input);
22235
22534
  this.setInputDateTimeData(inputParts);
22236
22535
  var tempDateTime = this.createIDateTimeComposition();
22237
- this.inputDateTimeData.forEach(function (itemData) { return _this.updateInputDateTimeData(itemData, tempDateTime); });
22536
+ this.inputDateTimeData.forEach(function (itemData) {
22537
+ if (itemData.lexem.type === "timeMarker") {
22538
+ _this.updateTimeMarkerInputDateTimeData(itemData, tempDateTime);
22539
+ }
22540
+ else {
22541
+ _this.updateInputDateTimeData(itemData, tempDateTime);
22542
+ }
22543
+ });
22238
22544
  var result = this.getFormatedString(matchWholeMask);
22239
22545
  return result;
22240
22546
  };
@@ -22252,6 +22558,11 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22252
22558
  foundPseudoSeparator = false;
22253
22559
  curPart += inputChar;
22254
22560
  }
22561
+ else if (lexemsWithValue[inputParts.length].type === "timeMarker") {
22562
+ foundSeparator = false;
22563
+ foundPseudoSeparator = false;
22564
+ curPart += inputChar;
22565
+ }
22255
22566
  else {
22256
22567
  if (separators.indexOf(inputChar) !== -1) {
22257
22568
  if (!foundPseudoSeparator) {
@@ -22280,17 +22591,27 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22280
22591
  };
22281
22592
  InputMaskDateTime.prototype.getUnmaskedValue = function (src) {
22282
22593
  var _this = this;
22594
+ var _a;
22283
22595
  var input = (src === undefined || src === null) ? "" : src.toString();
22284
22596
  var inputParts = this.getParts(input);
22285
22597
  this.setInputDateTimeData(inputParts);
22598
+ var timeMarker = (_a = this.inputDateTimeData.filter(function (idtd) { return idtd.lexem.type === "timeMarker"; })[0]) === null || _a === void 0 ? void 0 : _a.value.toLowerCase()[0];
22286
22599
  var tempDateTime = this.createIDateTimeComposition();
22600
+ var uncompleted = false;
22287
22601
  this.inputDateTimeData.forEach(function (inputData) {
22288
22602
  var str = inputData.value;
22289
- if (!str || str.length < inputData.lexem.count)
22290
- return undefined;
22291
- tempDateTime[inputData.lexem.type] = parseInt(_this.parseTwoDigitYear(inputData));
22603
+ if (inputData.lexem.type == "timeMarker" || inputData.lexem.type == "separator")
22604
+ return;
22605
+ if (!str || str.length < inputData.lexem.count) {
22606
+ uncompleted = true;
22607
+ return;
22608
+ }
22609
+ var value = parseInt(_this.parseTwoDigitYear(inputData));
22610
+ if (inputData.lexem.type == "hour" && timeMarker === "p" && value != _this.twelve)
22611
+ value += _this.twelve;
22612
+ tempDateTime[inputData.lexem.type] = value;
22292
22613
  });
22293
- return this.getISO_8601Format(tempDateTime);
22614
+ return uncompleted ? "" : this.getISO_8601Format(tempDateTime);
22294
22615
  };
22295
22616
  InputMaskDateTime.prototype.getMaskedValue = function (src) {
22296
22617
  return this.getMaskedStrFromISO(src);
@@ -25844,7 +26165,10 @@ var PanelModel = /** @class */ (function (_super) {
25844
26165
  };
25845
26166
  Object.defineProperty(PanelModel.prototype, "showPanelAsPage", {
25846
26167
  get: function () {
25847
- return !!this.originalPage;
26168
+ var panel = this;
26169
+ if (!!panel.originalPage)
26170
+ return true;
26171
+ return panel.survey.isShowingPreview && panel.survey.isSinglePage && !!panel.parent && !!panel.parent.originalPage;
25848
26172
  },
25849
26173
  enumerable: false,
25850
26174
  configurable: true
@@ -26898,6 +27222,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
26898
27222
  _this.isVisible = _this.model.isVisible;
26899
27223
  };
26900
27224
  _this.model = model;
27225
+ _this.locale = _this.model.locale;
26901
27226
  return _this;
26902
27227
  }
26903
27228
  PopupBaseViewModel.prototype.updateIsVisible = function (val) {
@@ -28406,10 +28731,11 @@ var Question = /** @class */ (function (_super) {
28406
28731
  });
28407
28732
  Question.prototype.getTitleOwner = function () { return this; };
28408
28733
  Question.prototype.getIsTitleRenderedAsString = function () { return this.titleLocation === "hidden"; };
28734
+ Question.prototype.notifySurveyOnChildrenVisibilityChanged = function () { return false; };
28409
28735
  Question.prototype.notifySurveyVisibilityChanged = function () {
28410
28736
  if (!this.survey || this.isLoadingFromJson)
28411
28737
  return;
28412
- this.survey.questionVisibilityChanged(this, this.isVisible);
28738
+ this.survey.questionVisibilityChanged(this, this.isVisible, !this.parentQuestion || this.parentQuestion.notifySurveyOnChildrenVisibilityChanged());
28413
28739
  var isClearOnHidden = this.isClearValueOnHidden;
28414
28740
  if (!this.visible) {
28415
28741
  this.clearValueOnHidding(isClearOnHidden);
@@ -29002,7 +29328,9 @@ var Question = /** @class */ (function (_super) {
29002
29328
  Question.prototype.getRootCss = function () {
29003
29329
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__["CssClassBuilder"]()
29004
29330
  .append(this.cssRoot)
29005
- .append(this.cssClasses.disabled, this.isReadOnly)
29331
+ .append(this.cssClasses.readOnly, this.isReadOnlyStyle)
29332
+ .append(this.cssClasses.disabled, this.isDisabledStyle)
29333
+ .append(this.cssClasses.preview, this.isPreviewStyle)
29006
29334
  .append(this.cssClasses.invisible, !this.isDesignMode && this.areInvisibleElementsShowing && !this.visible)
29007
29335
  .toString();
29008
29336
  };
@@ -33179,7 +33507,10 @@ var QuestionSelectBase = /** @class */ (function (_super) {
33179
33507
  options.isDisabled = isDisabled;
33180
33508
  options.isChecked = isChecked;
33181
33509
  options.isNone = isNone;
33182
- return builder.append(this.cssClasses.itemDisabled, isDisabled)
33510
+ return builder
33511
+ .append(this.cssClasses.itemDisabled, this.isDisabledStyle)
33512
+ .append(this.cssClasses.itemReadOnly, this.isReadOnlyStyle)
33513
+ .append(this.cssClasses.itemPreview, this.isPreviewStyle)
33183
33514
  .append(this.cssClasses.itemChecked, isChecked)
33184
33515
  .append(this.cssClasses.itemHover, allowHover)
33185
33516
  .append(this.cssClasses.itemNone, isNone)
@@ -33342,6 +33673,9 @@ var QuestionSelectBase = /** @class */ (function (_super) {
33342
33673
  };
33343
33674
  Object.defineProperty(QuestionSelectBase.prototype, "itemSvgIcon", {
33344
33675
  get: function () {
33676
+ if (this.isPreviewStyle && this.cssClasses.itemPreviewSvgIconId) {
33677
+ return this.cssClasses.itemPreviewSvgIconId;
33678
+ }
33345
33679
  return this.cssClasses.itemSvgIconId;
33346
33680
  },
33347
33681
  enumerable: false,
@@ -33901,7 +34235,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
33901
34235
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
33902
34236
  .append(css.item)
33903
34237
  .append(css.itemOnError, this.hasCssError())
33904
- .append(css.itemDisabled, this.isReadOnly)
34238
+ .append(css.itemDisabled, this.isDisabledStyle)
34239
+ .append(css.itemReadOnly, this.isReadOnlyStyle)
34240
+ .append(css.itemPreview, this.isPreviewStyle)
33905
34241
  .append(css.itemHover, !this.isDesignMode)
33906
34242
  .append(css.itemChecked, !!this.booleanValue)
33907
34243
  .append(css.itemExchanged, !!this.swapOrder)
@@ -33916,6 +34252,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
33916
34252
  item: this.cssClasses.checkboxItem,
33917
34253
  itemOnError: this.cssClasses.checkboxItemOnError,
33918
34254
  itemDisabled: this.cssClasses.checkboxItemDisabled,
34255
+ itemDisable: this.cssClasses.checkboxItemDisabled,
34256
+ itemReadOnly: this.cssClasses.checkboxItemReadOnly,
34257
+ itemPreview: this.cssClasses.checkboxItemPreview,
33919
34258
  itemChecked: this.cssClasses.checkboxItemChecked,
33920
34259
  itemIndeterminate: this.cssClasses.checkboxItemIndeterminate
33921
34260
  });
@@ -33923,7 +34262,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
33923
34262
  QuestionBooleanModel.prototype.getLabelCss = function (checked) {
33924
34263
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
33925
34264
  .append(this.cssClasses.label)
33926
- .append(this.cssClasses.disabledLabel, this.booleanValue === !checked || this.isReadOnly)
34265
+ .append(this.cssClasses.disabledLabel, this.booleanValue === !checked || this.isDisabledStyle)
34266
+ .append(this.cssClasses.labelReadOnly, this.isReadOnlyStyle)
34267
+ .append(this.cssClasses.labelPreview, this.isPreviewStyle)
33927
34268
  .append(this.cssClasses.labelTrue, !this.isIndeterminate && checked === !this.swapOrder)
33928
34269
  .append(this.cssClasses.labelFalse, !this.isIndeterminate && checked === this.swapOrder)
33929
34270
  .toString();
@@ -33941,6 +34282,16 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
33941
34282
  enumerable: false,
33942
34283
  configurable: true
33943
34284
  });
34285
+ Object.defineProperty(QuestionBooleanModel.prototype, "itemSvgIcon", {
34286
+ get: function () {
34287
+ if (this.isPreviewStyle && this.cssClasses.itemPreviewSvgIconId) {
34288
+ return this.cssClasses.itemPreviewSvgIconId;
34289
+ }
34290
+ return this.cssClasses.itemSvgIconId;
34291
+ },
34292
+ enumerable: false,
34293
+ configurable: true
34294
+ });
33944
34295
  Object.defineProperty(QuestionBooleanModel.prototype, "allowClick", {
33945
34296
  get: function () {
33946
34297
  return this.isIndeterminate && !this.isInputReadOnly;
@@ -34006,6 +34357,15 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
34006
34357
  if (css.radioItemChecked && value === this.booleanValue) {
34007
34358
  className = (className ? className + " " : "") + css.radioItemChecked;
34008
34359
  }
34360
+ if (this.isDisabledStyle) {
34361
+ className += " " + css.radioItemDisabled;
34362
+ }
34363
+ if (this.isReadOnlyStyle) {
34364
+ className += " " + css.radioItemReadOnly;
34365
+ }
34366
+ if (this.isPreviewStyle) {
34367
+ className += " " + css.radioItemPreview;
34368
+ }
34009
34369
  return className;
34010
34370
  };
34011
34371
  QuestionBooleanModel.prototype.supportResponsiveness = function () {
@@ -35251,7 +35611,7 @@ var QuestionCommentModel = /** @class */ (function (_super) {
35251
35611
  });
35252
35612
  Object.defineProperty(QuestionCommentModel.prototype, "renderedAllowResize", {
35253
35613
  get: function () {
35254
- return this.allowResize && (this.survey && this.survey.allowResizeComment);
35614
+ return this.allowResize && (this.survey && this.survey.allowResizeComment) && !this.isPreviewStyle && !this.isReadOnlyStyle;
35255
35615
  },
35256
35616
  enumerable: false,
35257
35617
  configurable: true
@@ -35369,6 +35729,7 @@ __webpack_require__.r(__webpack_exports__);
35369
35729
  /* harmony import */ var _textPreProcessor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./textPreProcessor */ "./src/textPreProcessor.ts");
35370
35730
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
35371
35731
  /* harmony import */ var _error__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./error */ "./src/error.ts");
35732
+ /* harmony import */ var _console_warnings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./console-warnings */ "./src/console-warnings.ts");
35372
35733
  var __extends = (undefined && undefined.__extends) || (function () {
35373
35734
  var extendStatics = function (d, b) {
35374
35735
  extendStatics = Object.setPrototypeOf ||
@@ -35391,6 +35752,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
35391
35752
 
35392
35753
 
35393
35754
 
35755
+
35394
35756
  var ComponentQuestionJSON = /** @class */ (function () {
35395
35757
  function ComponentQuestionJSON(name, json) {
35396
35758
  this.name = name;
@@ -35982,15 +36344,15 @@ var QuestionCustomModel = /** @class */ (function (_super) {
35982
36344
  if (!qType || !_jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].findClass(qType))
35983
36345
  throw "type attribute in questionJSON is empty or incorrect";
35984
36346
  res = _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].createClass(qType);
35985
- this.initElement(res);
35986
36347
  res.fromJSON(json.questionJSON);
36348
+ res = this.checkCreatedQuestion(res);
35987
36349
  }
35988
36350
  else {
35989
36351
  if (!!json.createQuestion) {
35990
- res = json.createQuestion();
35991
- this.initElement(res);
36352
+ res = this.checkCreatedQuestion(json.createQuestion());
35992
36353
  }
35993
36354
  }
36355
+ this.initElement(res);
35994
36356
  if (!!res) {
35995
36357
  res.isContentElement = true;
35996
36358
  if (!res.name) {
@@ -36004,6 +36366,20 @@ var QuestionCustomModel = /** @class */ (function (_super) {
36004
36366
  }
36005
36367
  return res;
36006
36368
  };
36369
+ QuestionCustomModel.prototype.checkCreatedQuestion = function (res) {
36370
+ if (!res)
36371
+ return res;
36372
+ if (!res.isQuestion) {
36373
+ if (Array.isArray(res.questions) && res.questions.length > 0) {
36374
+ res = res.questions[0];
36375
+ }
36376
+ else {
36377
+ res = _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].createClass("text");
36378
+ }
36379
+ _console_warnings__WEBPACK_IMPORTED_MODULE_7__["ConsoleWarnings"].error("Could not create component: '" + this.getType() + "'. questionJSON should be a question.");
36380
+ }
36381
+ return res;
36382
+ };
36007
36383
  QuestionCustomModel.prototype.onSurveyLoad = function () {
36008
36384
  _super.prototype.onSurveyLoad.call(this);
36009
36385
  if (!this.contentQuestion)
@@ -36711,7 +37087,9 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
36711
37087
  .append(this.cssClasses.control)
36712
37088
  .append(this.cssClasses.controlEmpty, this.isEmpty())
36713
37089
  .append(this.cssClasses.onError, this.hasCssError())
36714
- .append(this.cssClasses.controlDisabled, this.isReadOnly)
37090
+ .append(this.cssClasses.controlDisabled, this.isDisabledStyle)
37091
+ .append(this.cssClasses.controlReadOnly, this.isReadOnlyStyle)
37092
+ .append(this.cssClasses.controlPreview, this.isPreviewStyle)
36715
37093
  .append(this.cssClasses.controlInputFieldComponent, !!this.inputFieldComponentName)
36716
37094
  .toString();
36717
37095
  };
@@ -38551,6 +38929,9 @@ var QuestionFileModel = /** @class */ (function (_super) {
38551
38929
  get: function () {
38552
38930
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
38553
38931
  .append(this.cssClasses.root)
38932
+ .append(this.cssClasses.rootDisabled, this.isDisabledStyle)
38933
+ .append(this.cssClasses.rootReadOnly, this.isReadOnlyStyle)
38934
+ .append(this.cssClasses.rootPreview, this.isPreviewStyle)
38554
38935
  .append(this.cssClasses.rootDragging, this.isDragging)
38555
38936
  .append(this.cssClasses.rootAnswered, this.isAnswered)
38556
38937
  .append(this.cssClasses.single, !this.allowMultiple)
@@ -40041,7 +40422,8 @@ var MatrixRowModel = /** @class */ (function (_super) {
40041
40422
  var cssClasses = this.data.cssClasses;
40042
40423
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_11__["CssClassBuilder"]().append(cssClasses.row)
40043
40424
  .append(cssClasses.rowError, this.data.hasErrorInRow(this))
40044
- .append(cssClasses.rowDisabled, this.isReadOnly)
40425
+ .append(cssClasses.rowReadOnly, this.isReadOnly)
40426
+ .append(cssClasses.rowDisabled, this.data.isDisabledStyle)
40045
40427
  .toString();
40046
40428
  },
40047
40429
  enumerable: false,
@@ -40367,12 +40749,17 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
40367
40749
  .append(hasCellText ? css.cellText : css.label)
40368
40750
  .append(css.itemOnError, !hasCellText && (this.isAllRowRequired ? this.hasErrorInRow(row) : this.hasCssError()))
40369
40751
  .append(hasCellText ? css.cellTextSelected : css.itemChecked, isChecked)
40370
- .append(hasCellText ? css.cellTextDisabled : css.itemDisabled, isDisabled)
40752
+ .append(hasCellText ? css.cellTextDisabled : css.itemDisabled, this.isDisabledStyle)
40753
+ .append(hasCellText ? css.cellTextReadOnly : css.itemReadOnly, this.isReadOnlyStyle)
40754
+ .append(hasCellText ? css.cellTextPreview : css.itemPreview, this.isPreviewStyle)
40371
40755
  .append(css.itemHover, allowHover && !hasCellText)
40372
40756
  .toString();
40373
40757
  };
40374
40758
  Object.defineProperty(QuestionMatrixModel.prototype, "itemSvgIcon", {
40375
40759
  get: function () {
40760
+ if (this.isPreviewStyle && this.cssClasses.itemPreviewSvgIconId) {
40761
+ return this.cssClasses.itemPreviewSvgIconId;
40762
+ }
40376
40763
  return this.cssClasses.itemSvgIconId;
40377
40764
  },
40378
40765
  enumerable: false,
@@ -45534,6 +45921,7 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
45534
45921
  var cell = new QuestionMatrixDropdownRenderedCell();
45535
45922
  var lockedRows = this.matrix.lockedRowCount;
45536
45923
  cell.isDragHandlerCell = lockedRows < 1 || rowIndex >= lockedRows;
45924
+ cell.isEmpty = !cell.isDragHandlerCell;
45537
45925
  cell.className = this.getActionsCellClassName(cell);
45538
45926
  cell.row = this.matrix.visibleRows[rowIndex];
45539
45927
  return cell;
@@ -48186,6 +48574,9 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
48186
48574
  QuestionMultipleTextModel.prototype.getItemLabelCss = function (item) {
48187
48575
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__["CssClassBuilder"]()
48188
48576
  .append(this.cssClasses.itemLabel)
48577
+ .append(this.cssClasses.itemLabelDisabled, this.isDisabledStyle)
48578
+ .append(this.cssClasses.itemLabelReadOnly, this.isReadOnlyStyle)
48579
+ .append(this.cssClasses.itemLabelPreview, this.isPreviewStyle)
48189
48580
  .append(this.cssClasses.itemLabelAnswered, item.editor.isAnswered)
48190
48581
  .append(this.cssClasses.itemLabelAllowFocus, !this.isDesignMode)
48191
48582
  .append(this.cssClasses.itemLabelOnError, item.editor.errors.length > 0)
@@ -49623,12 +50014,13 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49623
50014
  set: function (val) {
49624
50015
  this.setPropertyValue("showQuestionNumbers", val);
49625
50016
  if (!this.isLoadingFromJson && this.survey) {
49626
- this.survey.questionVisibilityChanged(this, this.visible);
50017
+ this.survey.questionVisibilityChanged(this, this.visible, true);
49627
50018
  }
49628
50019
  },
49629
50020
  enumerable: false,
49630
50021
  configurable: true
49631
50022
  });
50023
+ QuestionPanelDynamicModel.prototype.notifySurveyOnChildrenVisibilityChanged = function () { return this.showQuestionNumbers === "onSurvey"; };
49632
50024
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "panelRemoveButtonLocation", {
49633
50025
  /**
49634
50026
  * Specifies the location of the Delete Panel button relative to panel content.
@@ -49728,15 +50120,16 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49728
50120
  QuestionPanelDynamicModel.prototype.setVisibleIndex = function (value) {
49729
50121
  if (!this.isVisible)
49730
50122
  return 0;
49731
- var startIndex = this.showQuestionNumbers == "onSurvey" ? value : 0;
50123
+ var onSurveyNumbering = this.showQuestionNumbers === "onSurvey";
50124
+ var startIndex = onSurveyNumbering ? value : 0;
49732
50125
  for (var i = 0; i < this.visiblePanelsCore.length; i++) {
49733
50126
  var counter = this.setPanelVisibleIndex(this.visiblePanelsCore[i], startIndex, this.showQuestionNumbers != "off");
49734
- if (this.showQuestionNumbers == "onSurvey") {
50127
+ if (onSurveyNumbering) {
49735
50128
  startIndex += counter;
49736
50129
  }
49737
50130
  }
49738
- _super.prototype.setVisibleIndex.call(this, this.showQuestionNumbers != "onSurvey" ? value : -1);
49739
- return this.showQuestionNumbers != "onSurvey" ? 1 : startIndex - value;
50131
+ _super.prototype.setVisibleIndex.call(this, !onSurveyNumbering ? value : -1);
50132
+ return !onSurveyNumbering ? 1 : startIndex - value;
49740
50133
  };
49741
50134
  QuestionPanelDynamicModel.prototype.setPanelVisibleIndex = function (panel, index, showIndex) {
49742
50135
  if (!showIndex) {
@@ -51043,6 +51436,8 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
51043
51436
  });
51044
51437
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "showNavigation", {
51045
51438
  get: function () {
51439
+ if (this.isReadOnly && this.visiblePanelCount == 1)
51440
+ return false;
51046
51441
  return this.visiblePanelCount > 0 && !this.showLegacyNavigation && !!this.cssClasses.footer;
51047
51442
  },
51048
51443
  enumerable: false,
@@ -51528,11 +51923,14 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51528
51923
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
51529
51924
  .append(this.cssClasses.root)
51530
51925
  .append(this.cssClasses.rootMobileMod, this.isMobileMode())
51531
- .append(this.cssClasses.rootDisabled, this.isReadOnly)
51926
+ .append(this.cssClasses.rootDisabled, this.isDisabledStyle)
51927
+ .append(this.cssClasses.rootReadOnly, this.isReadOnlyStyle)
51928
+ .append(this.cssClasses.rootPreview, this.isPreviewStyle)
51532
51929
  .append(this.cssClasses.rootDesignMode, !!this.isDesignMode)
51533
51930
  .append(this.cssClasses.itemOnError, this.hasCssError())
51534
51931
  .append(this.cssClasses.rootDragHandleAreaIcon, _src_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].rankingDragHandleArea === "icon")
51535
51932
  .append(this.cssClasses.rootSelectToRankMod, this.selectToRankEnabled)
51933
+ .append(this.cssClasses.rootSelectToRankEmptyValueMod, this.isEmpty())
51536
51934
  .append(this.cssClasses.rootSelectToRankAlignHorizontal, this.selectToRankEnabled && this.renderedSelectToRankAreasLayout === "horizontal")
51537
51935
  .append(this.cssClasses.rootSelectToRankAlignVertical, this.selectToRankEnabled && this.renderedSelectToRankAreasLayout === "vertical")
51538
51936
  .toString();
@@ -51540,6 +51938,9 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51540
51938
  enumerable: false,
51541
51939
  configurable: true
51542
51940
  });
51941
+ QuestionRankingModel.prototype.isItemSelectedCore = function (item) {
51942
+ return false;
51943
+ };
51543
51944
  QuestionRankingModel.prototype.getItemClassCore = function (item, options) {
51544
51945
  var itemIndex = this.rankingChoices.indexOf(item);
51545
51946
  var unrankedItemIndex = this.unRankingChoices.indexOf(item);
@@ -52794,7 +53195,9 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52794
53195
  };
52795
53196
  QuestionRatingModel.prototype.getItemStyle = function (item, highlight) {
52796
53197
  if (highlight === void 0) { highlight = "none"; }
52797
- if (this.scaleColorMode === "monochrome" && this.rateColorMode == "default")
53198
+ if (this.scaleColorMode === "monochrome" && this.rateColorMode == "default" ||
53199
+ this.isPreviewStyle ||
53200
+ this.isReadOnlyStyle)
52798
53201
  return { borderColor: null, fill: null, backgroundColor: null };
52799
53202
  var index = this.visibleRateValues.indexOf(item);
52800
53203
  var color = this.getRenderedItemColor(index, false);
@@ -52830,6 +53233,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52830
53233
  var itemClass = this.cssClasses.item;
52831
53234
  var itemSelectedClass = this.cssClasses.selected;
52832
53235
  var itemDisabledClass = this.cssClasses.itemDisabled;
53236
+ var itemReadOnlyClass = this.cssClasses.itemReadOnly;
53237
+ var itemPreviewClass = this.cssClasses.itemPreview;
52833
53238
  var itemHoverClass = this.cssClasses.itemHover;
52834
53239
  var itemitemOnErrorClass = this.cssClasses.itemOnError;
52835
53240
  var itemHighlightedClass = null;
@@ -52841,6 +53246,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52841
53246
  itemClass = this.cssClasses.itemStar;
52842
53247
  itemSelectedClass = this.cssClasses.itemStarSelected;
52843
53248
  itemDisabledClass = this.cssClasses.itemStarDisabled;
53249
+ itemReadOnlyClass = this.cssClasses.itemStarReadOnly;
53250
+ itemPreviewClass = this.cssClasses.itemStarPreview;
52844
53251
  itemHoverClass = this.cssClasses.itemStarHover;
52845
53252
  itemitemOnErrorClass = this.cssClasses.itemStarOnError;
52846
53253
  itemHighlightedClass = this.cssClasses.itemStarHighlighted;
@@ -52851,6 +53258,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52851
53258
  itemClass = this.cssClasses.itemSmiley;
52852
53259
  itemSelectedClass = this.cssClasses.itemSmileySelected;
52853
53260
  itemDisabledClass = this.cssClasses.itemSmileyDisabled;
53261
+ itemReadOnlyClass = this.cssClasses.itemSmileyReadOnly;
53262
+ itemPreviewClass = this.cssClasses.itemSmileyPreview;
52854
53263
  itemHoverClass = this.cssClasses.itemSmileyHover;
52855
53264
  itemitemOnErrorClass = this.cssClasses.itemSmileyOnError;
52856
53265
  itemHighlightedClass = this.cssClasses.itemSmileyHighlighted;
@@ -52868,7 +53277,9 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52868
53277
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
52869
53278
  .append(itemClass)
52870
53279
  .append(itemSelectedClass, isSelected)
52871
- .append(itemDisabledClass, this.isReadOnly)
53280
+ .append(itemDisabledClass, this.isDisabledStyle)
53281
+ .append(itemReadOnlyClass, this.isReadOnlyStyle)
53282
+ .append(itemPreviewClass, this.isPreviewStyle)
52872
53283
  .append(itemHoverClass, allowHover)
52873
53284
  .append(itemHighlightedClass, isHighlighted)
52874
53285
  .append(itemScaleColoredClass, this.scaleColorMode == "colored")
@@ -53611,6 +54022,13 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
53611
54022
  enumerable: false,
53612
54023
  configurable: true
53613
54024
  });
54025
+ Object.defineProperty(QuestionSignaturePadModel.prototype, "locRenderedPlaceholder", {
54026
+ get: function () {
54027
+ return this.isReadOnly ? this.locPlaceholderReadOnly : this.locPlaceholder;
54028
+ },
54029
+ enumerable: false,
54030
+ configurable: true
54031
+ });
53614
54032
  QuestionSignaturePadModel.prototype.nothingIsDrawn = function () {
53615
54033
  var isDrawing = this.isDrawingValue;
53616
54034
  var isEmpty = this.isEmpty();
@@ -53672,6 +54090,9 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
53672
54090
  __decorate([
53673
54091
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ localizable: { defaultStr: "signaturePlaceHolder" } })
53674
54092
  ], QuestionSignaturePadModel.prototype, "placeholder", void 0);
54093
+ __decorate([
54094
+ Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ localizable: { defaultStr: "signaturePlaceHolderReadOnly" } })
54095
+ ], QuestionSignaturePadModel.prototype, "placeholderReadOnly", void 0);
53675
54096
  return QuestionSignaturePadModel;
53676
54097
  }(_question_file__WEBPACK_IMPORTED_MODULE_5__["QuestionFileModelBase"]));
53677
54098
 
@@ -53728,6 +54149,13 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("signaturepad",
53728
54149
  dependsOn: "showPlaceholder",
53729
54150
  visibleIf: function (obj) { return obj.showPlaceholder; }
53730
54151
  },
54152
+ {
54153
+ name: "placeholderReadOnly:text",
54154
+ serializationProperty: "locPlaceholderReadOnly",
54155
+ category: "general",
54156
+ dependsOn: "showPlaceholder",
54157
+ visibleIf: function (obj) { return obj.showPlaceholder; }
54158
+ },
53731
54159
  {
53732
54160
  name: "backgroundImage:file",
53733
54161
  category: "general",
@@ -53933,7 +54361,10 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
53933
54361
  .append(this.cssClasses.control)
53934
54362
  .append(this.cssClasses.controlEmpty, this.isEmpty())
53935
54363
  .append(this.cssClasses.onError, this.hasCssError())
53936
- .append(this.cssClasses.controlDisabled, this.isReadOnly)
54364
+ .append(this.cssClasses.controlEditable, !this.isDisabledStyle && !this.isReadOnlyStyle && !this.isPreviewStyle)
54365
+ .append(this.cssClasses.controlDisabled, this.isDisabledStyle)
54366
+ .append(this.cssClasses.controlReadOnly, this.isReadOnlyStyle)
54367
+ .append(this.cssClasses.controlPreview, this.isPreviewStyle)
53937
54368
  .toString();
53938
54369
  };
53939
54370
  QuestionTagboxModel.prototype.onOpenedCallBack = function () {
@@ -55230,7 +55661,9 @@ var QuestionTextBase = /** @class */ (function (_super) {
55230
55661
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
55231
55662
  .append(this.cssClasses.root)
55232
55663
  .append(this.cssClasses.onError, this.hasCssError())
55233
- .append(this.cssClasses.controlDisabled, this.isReadOnly);
55664
+ .append(this.cssClasses.controlDisabled, this.isDisabledStyle)
55665
+ .append(this.cssClasses.controlReadOnly, this.isReadOnlyStyle)
55666
+ .append(this.cssClasses.controlPreview, this.isPreviewStyle);
55234
55667
  };
55235
55668
  QuestionTextBase.prototype.getControlClass = function () {
55236
55669
  return this.getControlCssClassBuilder().toString();
@@ -57753,11 +58186,14 @@ var SurveyElement = /** @class */ (function (_super) {
57753
58186
  enumerable: false,
57754
58187
  configurable: true
57755
58188
  });
58189
+ SurveyElement.prototype.canHaveFrameStyles = function () {
58190
+ return (this.parent !== undefined && (!this.hasParent || this.parent && this.parent.showPanelAsPage));
58191
+ };
57756
58192
  SurveyElement.prototype.getHasFrameV2 = function () {
57757
- return this.shouldAddRunnerStyles() && (!this.hasParent);
58193
+ return this.shouldAddRunnerStyles() && this.canHaveFrameStyles();
57758
58194
  };
57759
58195
  SurveyElement.prototype.getIsNested = function () {
57760
- return this.shouldAddRunnerStyles() && (this.hasParent);
58196
+ return this.shouldAddRunnerStyles() && !this.canHaveFrameStyles();
57761
58197
  };
57762
58198
  SurveyElement.prototype.getCssRoot = function (cssClasses) {
57763
58199
  var isExpanadable = !!this.isCollapsed || !!this.isExpanded;
@@ -57977,9 +58413,31 @@ var SurveyElement = /** @class */ (function (_super) {
57977
58413
  .append(cssClasses.titleExpandable, isExpandable)
57978
58414
  .append(cssClasses.titleExpanded, this.isExpanded)
57979
58415
  .append(cssClasses.titleCollapsed, this.isCollapsed)
57980
- .append(cssClasses.titleDisabled, this.isReadOnly)
58416
+ .append(cssClasses.titleDisabled, this.isDisabledStyle)
58417
+ .append(cssClasses.titleReadOnly, this.isReadOnly)
57981
58418
  .append(cssClasses.titleOnError, this.containsErrors).toString();
57982
58419
  };
58420
+ Object.defineProperty(SurveyElement.prototype, "isDisabledStyle", {
58421
+ get: function () {
58422
+ return !this.isDefaultV2Theme && (this.isReadOnlyStyle || this.isPreviewStyle);
58423
+ },
58424
+ enumerable: false,
58425
+ configurable: true
58426
+ });
58427
+ Object.defineProperty(SurveyElement.prototype, "isReadOnlyStyle", {
58428
+ get: function () {
58429
+ return this.isReadOnly && !this.isPreviewStyle;
58430
+ },
58431
+ enumerable: false,
58432
+ configurable: true
58433
+ });
58434
+ Object.defineProperty(SurveyElement.prototype, "isPreviewStyle", {
58435
+ get: function () {
58436
+ return !!this.survey && this.survey.state === "preview";
58437
+ },
58438
+ enumerable: false,
58439
+ configurable: true
58440
+ });
57983
58441
  SurveyElement.prototype.localeChanged = function () {
57984
58442
  _super.prototype.localeChanged.call(this);
57985
58443
  this.updateDescriptionVisibility(this.description);
@@ -63481,7 +63939,7 @@ var SurveyModel = /** @class */ (function (_super) {
63481
63939
  });
63482
63940
  SurveyModel.prototype.updateProgressText = function (onValueChanged) {
63483
63941
  if (onValueChanged === void 0) { onValueChanged = false; }
63484
- if (this.isCalculatingProgressText)
63942
+ if (this.isCalculatingProgressText || this.isShowingPreview || this.isLockingUpdateOnPageModes)
63485
63943
  return;
63486
63944
  if (onValueChanged &&
63487
63945
  this.progressBarType == "pages" &&
@@ -64779,7 +65237,7 @@ var SurveyModel = /** @class */ (function (_super) {
64779
65237
  this.updateVisibleIndexes();
64780
65238
  };
64781
65239
  SurveyModel.prototype.updateVisibleIndexes = function () {
64782
- if (this.isLoadingFromJson || !!this.isEndLoadingFromJson)
65240
+ if (this.isLoadingFromJson || !!this.isEndLoadingFromJson || this.isLockingUpdateOnPageModes)
64783
65241
  return;
64784
65242
  if (this.isRunningConditions &&
64785
65243
  this.onQuestionVisibleChanged.isEmpty &&
@@ -65386,8 +65844,10 @@ var SurveyModel = /** @class */ (function (_super) {
65386
65844
  return questionClearIf;
65387
65845
  return this.clearInvisibleValues;
65388
65846
  };
65389
- SurveyModel.prototype.questionVisibilityChanged = function (question, newValue) {
65390
- this.updateVisibleIndexes();
65847
+ SurveyModel.prototype.questionVisibilityChanged = function (question, newValue, resetIndexes) {
65848
+ if (resetIndexes) {
65849
+ this.updateVisibleIndexes();
65850
+ }
65391
65851
  this.onQuestionVisibleChanged.fire(this, {
65392
65852
  question: question,
65393
65853
  name: question.name,