survey-core 1.9.137 → 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 (266) hide show
  1. package/defaultV2.css +394 -37
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +394 -37
  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 +661 -134
  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.css.map +1 -1
  128. package/survey.i18n.js +1 -1
  129. package/survey.i18n.min.js +1 -1
  130. package/survey.min.css +1 -1
  131. package/themes/borderless-dark-panelless.js +1 -1
  132. package/themes/borderless-dark-panelless.min.js +1 -1
  133. package/themes/borderless-dark.js +1 -1
  134. package/themes/borderless-dark.min.js +1 -1
  135. package/themes/borderless-light-panelless..js +1 -1
  136. package/themes/borderless-light-panelless..min.js +1 -1
  137. package/themes/borderless-light.js +1 -1
  138. package/themes/borderless-light.min.js +1 -1
  139. package/themes/contrast-dark-panelless.js +1 -1
  140. package/themes/contrast-dark-panelless.min.js +1 -1
  141. package/themes/contrast-dark.js +1 -1
  142. package/themes/contrast-dark.min.js +1 -1
  143. package/themes/contrast-light-panelless.js +1 -1
  144. package/themes/contrast-light-panelless.min.js +1 -1
  145. package/themes/contrast-light.js +1 -1
  146. package/themes/contrast-light.min.js +1 -1
  147. package/themes/default-dark-panelless.js +1 -1
  148. package/themes/default-dark-panelless.min.js +1 -1
  149. package/themes/default-dark.js +1 -1
  150. package/themes/default-dark.min.js +1 -1
  151. package/themes/default-light-panelless.js +1 -1
  152. package/themes/default-light-panelless.min.js +1 -1
  153. package/themes/default-light.js +1 -1
  154. package/themes/default-light.min.js +1 -1
  155. package/themes/doubleborder-dark-panelless.js +1 -1
  156. package/themes/doubleborder-dark-panelless.min.js +1 -1
  157. package/themes/doubleborder-dark.js +1 -1
  158. package/themes/doubleborder-dark.min.js +1 -1
  159. package/themes/doubleborder-light-panelles.js +1 -1
  160. package/themes/doubleborder-light-panelles.min.js +1 -1
  161. package/themes/doubleborder-light.js +1 -1
  162. package/themes/doubleborder-light.min.js +1 -1
  163. package/themes/flat-dark-panelless.js +1 -1
  164. package/themes/flat-dark-panelless.min.js +1 -1
  165. package/themes/flat-dark.js +1 -1
  166. package/themes/flat-dark.min.js +1 -1
  167. package/themes/flat-light-panelless.js +1 -1
  168. package/themes/flat-light-panelless.min.js +1 -1
  169. package/themes/flat-light.js +1 -1
  170. package/themes/flat-light.min.js +1 -1
  171. package/themes/index.js +1 -1
  172. package/themes/index.min.js +1 -1
  173. package/themes/layered-dark-panelless.js +1 -1
  174. package/themes/layered-dark-panelless.min.js +1 -1
  175. package/themes/layered-dark.js +1 -1
  176. package/themes/layered-dark.min.js +1 -1
  177. package/themes/layered-light-panelless.js +1 -1
  178. package/themes/layered-light-panelless.min.js +1 -1
  179. package/themes/layered-light.js +1 -1
  180. package/themes/layered-light.min.js +1 -1
  181. package/themes/plain-dark-panelless.js +1 -1
  182. package/themes/plain-dark-panelless.min.js +1 -1
  183. package/themes/plain-dark.js +1 -1
  184. package/themes/plain-dark.min.js +1 -1
  185. package/themes/plain-light-panelless.js +1 -1
  186. package/themes/plain-light-panelless.min.js +1 -1
  187. package/themes/plain-light.js +1 -1
  188. package/themes/plain-light.min.js +1 -1
  189. package/themes/sharp-dark-panelless.js +1 -1
  190. package/themes/sharp-dark-panelless.min.js +1 -1
  191. package/themes/sharp-dark.js +1 -1
  192. package/themes/sharp-dark.min.js +1 -1
  193. package/themes/sharp-light-panelless.js +1 -1
  194. package/themes/sharp-light-panelless.min.js +1 -1
  195. package/themes/sharp-light.js +1 -1
  196. package/themes/sharp-light.min.js +1 -1
  197. package/themes/solid-dark-panelless.js +1 -1
  198. package/themes/solid-dark-panelless.min.js +1 -1
  199. package/themes/solid-dark.js +1 -1
  200. package/themes/solid-dark.min.js +1 -1
  201. package/themes/solid-light-panelless.js +1 -1
  202. package/themes/solid-light-panelless.min.js +1 -1
  203. package/themes/solid-light.js +1 -1
  204. package/themes/solid-light.min.js +1 -1
  205. package/themes/three-dimensional-dark-panelless.js +1 -1
  206. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  207. package/themes/three-dimensional-dark.js +1 -1
  208. package/themes/three-dimensional-dark.min.js +1 -1
  209. package/themes/three-dimensional-light-panelless.js +1 -1
  210. package/themes/three-dimensional-light-panelless.min.js +1 -1
  211. package/themes/three-dimensional-light.js +1 -1
  212. package/themes/three-dimensional-light.min.js +1 -1
  213. package/ts3.4/typings/actions/action.d.ts +6 -1
  214. package/ts3.4/typings/base-interfaces.d.ts +1 -1
  215. package/ts3.4/typings/defaultCss/cssmodern.d.ts +1 -1
  216. package/ts3.4/typings/defaultCss/cssstandard.d.ts +1 -1
  217. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +52 -1
  218. package/ts3.4/typings/dragdrop/matrix-rows.d.ts +2 -1
  219. package/ts3.4/typings/knockout/kobase.d.ts +8 -0
  220. package/ts3.4/typings/knockout/kopage.d.ts +37 -0
  221. package/ts3.4/typings/localization/english.d.ts +1 -0
  222. package/ts3.4/typings/mask/input_element_adapter.d.ts +2 -1
  223. package/ts3.4/typings/mask/mask_datetime.d.ts +28 -3
  224. package/ts3.4/typings/mask/mask_numeric.d.ts +1 -1
  225. package/ts3.4/typings/mask/mask_pattern.d.ts +9 -1
  226. package/ts3.4/typings/panel.d.ts +1 -1
  227. package/ts3.4/typings/popup.d.ts +1 -0
  228. package/ts3.4/typings/question.d.ts +1 -0
  229. package/ts3.4/typings/question_boolean.d.ts +8 -0
  230. package/ts3.4/typings/question_custom.d.ts +3 -0
  231. package/ts3.4/typings/question_imagepicker.d.ts +36 -6
  232. package/ts3.4/typings/question_matrix.d.ts +1 -0
  233. package/ts3.4/typings/question_matrixdynamic.d.ts +1 -0
  234. package/ts3.4/typings/question_paneldynamic.d.ts +1 -0
  235. package/ts3.4/typings/question_ranking.d.ts +1 -0
  236. package/ts3.4/typings/question_signaturepad.d.ts +9 -2
  237. package/ts3.4/typings/survey-element.d.ts +4 -0
  238. package/ts3.4/typings/survey.d.ts +1 -1
  239. package/ts3.4/typings/surveyStrings.d.ts +1 -0
  240. package/typings/actions/action.d.ts +7 -1
  241. package/typings/base-interfaces.d.ts +1 -1
  242. package/typings/defaultCss/cssmodern.d.ts +1 -1
  243. package/typings/defaultCss/cssstandard.d.ts +1 -1
  244. package/typings/defaultCss/defaultV2Css.d.ts +52 -1
  245. package/typings/dragdrop/matrix-rows.d.ts +2 -1
  246. package/typings/knockout/kobase.d.ts +8 -0
  247. package/typings/knockout/kopage.d.ts +37 -0
  248. package/typings/localization/english.d.ts +1 -0
  249. package/typings/mask/input_element_adapter.d.ts +2 -1
  250. package/typings/mask/mask_datetime.d.ts +28 -3
  251. package/typings/mask/mask_numeric.d.ts +1 -1
  252. package/typings/mask/mask_pattern.d.ts +9 -1
  253. package/typings/panel.d.ts +1 -1
  254. package/typings/popup.d.ts +1 -0
  255. package/typings/question.d.ts +1 -0
  256. package/typings/question_boolean.d.ts +8 -0
  257. package/typings/question_custom.d.ts +3 -0
  258. package/typings/question_imagepicker.d.ts +36 -6
  259. package/typings/question_matrix.d.ts +1 -0
  260. package/typings/question_matrixdynamic.d.ts +2 -0
  261. package/typings/question_paneldynamic.d.ts +1 -0
  262. package/typings/question_ranking.d.ts +1 -0
  263. package/typings/question_signaturepad.d.ts +9 -2
  264. package/typings/survey-element.d.ts +4 -0
  265. package/typings/survey.d.ts +1 -1
  266. 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.137
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",
@@ -6933,7 +7003,7 @@ var DragDropCore = /** @class */ (function () {
6933
7003
  return (this.dropTarget === this.prevDropTarget && newIsBottom === this.isBottom);
6934
7004
  };
6935
7005
  DragDropCore.prototype.getShortcutText = function (draggedElement) {
6936
- return draggedElement.shortcutText;
7006
+ return draggedElement === null || draggedElement === void 0 ? void 0 : draggedElement.shortcutText;
6937
7007
  };
6938
7008
  DragDropCore.prototype.createDraggedElementShortcut = function (text, draggedElementNode, event) {
6939
7009
  var draggedElementShortcut = _global_variables_utils__WEBPACK_IMPORTED_MODULE_2__["DomDocumentHelper"].createElement("div");
@@ -7470,8 +7540,12 @@ var DragDropMatrixRows = /** @class */ (function (_super) {
7470
7540
  dropTargetRenderedRow = matrix.renderedTable.rows.filter(function (renderedRow) { return renderedRow.row && renderedRow.row.id === dataAttributeValue; })[0];
7471
7541
  return dropTargetRenderedRow.row;
7472
7542
  };
7543
+ DragDropMatrixRows.prototype.canInsertIntoThisRow = function (row) {
7544
+ var lockedRows = this.parentElement.lockedRowCount;
7545
+ return lockedRows <= 0 || row.rowIndex > lockedRows;
7546
+ };
7473
7547
  DragDropMatrixRows.prototype.isDropTargetValid = function (dropTarget, dropTargetNode) {
7474
- return true;
7548
+ return this.canInsertIntoThisRow(dropTarget);
7475
7549
  };
7476
7550
  DragDropMatrixRows.prototype.calculateIsBottom = function (clientY) {
7477
7551
  var rendreredRows = this.parentElement.renderedTable.rows;
@@ -8066,6 +8140,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8066
8140
  this._popupModel.isFocusedContainer = false;
8067
8141
  this._popupModel.isFocusedContent = _utils_devices__WEBPACK_IMPORTED_MODULE_9__["IsTouch"];
8068
8142
  this._popupModel.setWidthByTarget = !_utils_devices__WEBPACK_IMPORTED_MODULE_9__["IsTouch"];
8143
+ this._popupModel.locale = this.question.getLocale();
8069
8144
  this.updatePopupFocusFirstInputSelector();
8070
8145
  this.listModel.registerPropertyChangedHandlers(["showFilter"], function () {
8071
8146
  _this.updatePopupFocusFirstInputSelector();
@@ -8166,6 +8241,7 @@ var DropdownListModel = /** @class */ (function (_super) {
8166
8241
  }
8167
8242
  });
8168
8243
  model.isAllDataLoaded = !this.question.choicesLazyLoadEnabled;
8244
+ model.actions.forEach(function (a) { return a.disableTabStop = true; });
8169
8245
  };
8170
8246
  DropdownListModel.prototype.updateCssClasses = function (popupCssClass, listCssClasses) {
8171
8247
  this.popupModel.cssClass = new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_8__["CssClassBuilder"]().append(popupCssClass).append(this.popupCssClasses).toString();
@@ -8730,6 +8806,7 @@ var DropdownMultiSelectListModel = /** @class */ (function (_super) {
8730
8806
  };
8731
8807
  }
8732
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; });
8733
8810
  this.setOnTextSearchCallbackForListModel(res);
8734
8811
  res.forceShowFilter = true;
8735
8812
  return res;
@@ -9559,8 +9636,8 @@ __webpack_require__.r(__webpack_exports__);
9559
9636
 
9560
9637
  var Version;
9561
9638
  var ReleaseDate;
9562
- Version = "" + "1.9.137";
9563
- ReleaseDate = "" + "2024-04-02";
9639
+ Version = "" + "1.9.139";
9640
+ ReleaseDate = "" + "2024-04-16";
9564
9641
  function checkLibraryVersion(ver, libraryName) {
9565
9642
  if (Version != ver) {
9566
9643
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -17135,7 +17212,7 @@ module.exports = "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\
17135
17212
  /*! no static exports found */
17136
17213
  /***/ (function(module, exports) {
17137
17214
 
17138
- 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>"
17139
17216
 
17140
17217
  /***/ }),
17141
17218
 
@@ -17157,7 +17234,7 @@ module.exports = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\
17157
17234
  /*! no static exports found */
17158
17235
  /***/ (function(module, exports) {
17159
17236
 
17160
- 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>"
17161
17238
 
17162
17239
  /***/ }),
17163
17240
 
@@ -17168,7 +17245,7 @@ module.exports = "<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\
17168
17245
  /*! no static exports found */
17169
17246
  /***/ (function(module, exports) {
17170
17247
 
17171
- 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>"
17172
17249
 
17173
17250
  /***/ }),
17174
17251
 
@@ -21044,7 +21121,7 @@ var englishStrings = {
21044
21121
  uploadingFile: "Your file is uploading. Please wait several seconds and try again.",
21045
21122
  loadingFile: "Loading...",
21046
21123
  chooseFile: "Choose file(s)...",
21047
- noFileChosen: "No file chosen",
21124
+ noFileChosen: "No file selected",
21048
21125
  filePlaceholder: "Drag and drop a file here or click the button below to select a file to upload.",
21049
21126
  confirmDelete: "Are you sure you want to delete this record?",
21050
21127
  keyDuplicationError: "This value should be unique.",
@@ -21074,6 +21151,7 @@ var englishStrings = {
21074
21151
  timerLimitSurvey: "You have spent {0} of {1} in total.",
21075
21152
  clearCaption: "Clear",
21076
21153
  signaturePlaceHolder: "Sign here",
21154
+ signaturePlaceHolderReadOnly: "No signature",
21077
21155
  chooseFileCaption: "Select File",
21078
21156
  takePhotoCaption: "Take Photo",
21079
21157
  photoPlaceholder: "Click the button below to take a photo using the camera.",
@@ -21090,7 +21168,7 @@ var englishStrings = {
21090
21168
  filterStringPlaceholder: "Type to search...",
21091
21169
  emptyMessage: "No data to display",
21092
21170
  noEntriesText: "No entries yet.\nClick the button below to add a new entry.",
21093
- noEntriesReadonlyText: "No entries.",
21171
+ noEntriesReadonlyText: "No entries",
21094
21172
  more: "More",
21095
21173
  tagboxDoneButtonCaption: "OK",
21096
21174
  selectToRankEmptyRankedAreaText: "All choices are selected for ranking",
@@ -21556,6 +21634,12 @@ var InputElementAdapter = /** @class */ (function () {
21556
21634
  _this.inputElement.value = maskedValue;
21557
21635
  }
21558
21636
  };
21637
+ this.clickHandler = function (event) {
21638
+ if (_this.inputElement.value == _this.inputMaskInstance.getMaskedValue("")) {
21639
+ _this.inputElement.setSelectionRange(0, 0);
21640
+ event.preventDefault();
21641
+ }
21642
+ };
21559
21643
  this.beforeInputHandler = function (event) {
21560
21644
  var args = _this.createArgs(event);
21561
21645
  var result = _this.inputMaskInstance.processInput(args);
@@ -21569,9 +21653,6 @@ var InputElementAdapter = /** @class */ (function () {
21569
21653
  if (_value === null || _value === undefined) {
21570
21654
  _value = "";
21571
21655
  }
21572
- else if (typeof _value !== "string") {
21573
- _value = _value.toString();
21574
- }
21575
21656
  this.inputElement.value = inputMaskInstance.getMaskedValue(_value);
21576
21657
  this.prevUnmaskedValue = _value;
21577
21658
  inputMaskInstance.onPropertyChanged.add(this.inputMaskInstancePropertyChangedHandler);
@@ -21599,11 +21680,15 @@ var InputElementAdapter = /** @class */ (function () {
21599
21680
  InputElementAdapter.prototype.addInputEventListener = function () {
21600
21681
  if (!!this.inputElement) {
21601
21682
  this.inputElement.addEventListener("beforeinput", this.beforeInputHandler);
21683
+ this.inputElement.addEventListener("click", this.clickHandler);
21684
+ this.inputElement.addEventListener("focus", this.clickHandler);
21602
21685
  }
21603
21686
  };
21604
21687
  InputElementAdapter.prototype.removeInputEventListener = function () {
21605
21688
  if (!!this.inputElement) {
21606
21689
  this.inputElement.removeEventListener("beforeinput", this.beforeInputHandler);
21690
+ this.inputElement.removeEventListener("click", this.clickHandler);
21691
+ this.inputElement.removeEventListener("focus", this.clickHandler);
21607
21692
  }
21608
21693
  };
21609
21694
  InputElementAdapter.prototype.dispose = function () {
@@ -21875,6 +21960,17 @@ var __extends = (undefined && undefined.__extends) || (function () {
21875
21960
  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
21876
21961
  };
21877
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
+ };
21878
21974
  var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
21879
21975
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
21880
21976
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
@@ -21886,11 +21982,15 @@ var __decorate = (undefined && undefined.__decorate) || function (decorators, ta
21886
21982
 
21887
21983
  function getMaxCountLexem(currentLexemType, count) {
21888
21984
  switch (currentLexemType) {
21889
- case ("day"):
21890
- case ("month"): {
21985
+ case "hour":
21986
+ case "minute":
21987
+ case "second":
21988
+ case "day":
21989
+ case "month": {
21891
21990
  return 2;
21892
21991
  }
21893
- case ("year"): {
21992
+ case "timeMarker":
21993
+ case "year": {
21894
21994
  return count;
21895
21995
  }
21896
21996
  default: {
@@ -21922,7 +22022,8 @@ function getDefaultYearForValidation(minYear, maxYear) {
21922
22022
  function getDateTimeLexems(pattern) {
21923
22023
  var result = [];
21924
22024
  var prevLexemType;
21925
- var createOrUpdateLexem = function (currentLexemType, currentChar) {
22025
+ var createOrUpdateLexem = function (currentLexemType, currentChar, upperCase) {
22026
+ if (upperCase === void 0) { upperCase = false; }
21926
22027
  if (!!prevLexemType && prevLexemType === currentLexemType) {
21927
22028
  result[result.length - 1].count++;
21928
22029
  var maxCount = getMaxCountLexem(currentLexemType, result[result.length - 1].count);
@@ -21931,23 +22032,41 @@ function getDateTimeLexems(pattern) {
21931
22032
  else {
21932
22033
  var maxCount = getMaxCountLexem(currentLexemType, 1);
21933
22034
  // result.push({ type: currentLexemType, value: currentChar, count: 1, data: { value: "", isCompleted: false, isCorrect: false }, maxCount: maxCount });
21934
- result.push({ type: currentLexemType, value: currentChar, count: 1, maxCount: maxCount });
22035
+ result.push({ type: currentLexemType, value: currentChar, count: 1, maxCount: maxCount, upperCase: upperCase });
21935
22036
  }
21936
22037
  };
21937
22038
  for (var index = 0; index < pattern.length; index++) {
21938
22039
  var currentChar = pattern[index];
21939
22040
  switch (currentChar) {
21940
22041
  case "m":
21941
- createOrUpdateLexem("month", "m");
22042
+ createOrUpdateLexem("month", currentChar);
21942
22043
  break;
21943
22044
  case "d":
21944
- createOrUpdateLexem("day", "d");
22045
+ createOrUpdateLexem("day", currentChar);
21945
22046
  break;
21946
22047
  case "y":
21947
- 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);
21948
22067
  break;
21949
22068
  default:
21950
- result.push({ type: "separator", value: currentChar, count: 1, maxCount: 1 });
22069
+ result.push({ type: "separator", value: currentChar, count: 1, maxCount: 1, upperCase: false });
21951
22070
  break;
21952
22071
  }
21953
22072
  prevLexemType = result[result.length - 1].type;
@@ -21978,11 +22097,42 @@ var InputMaskDateTime = /** @class */ (function (_super) {
21978
22097
  __extends(InputMaskDateTime, _super);
21979
22098
  function InputMaskDateTime() {
21980
22099
  var _this = _super !== null && _super.apply(this, arguments) || this;
22100
+ _this.defaultDate = "1970-01-01T";
21981
22101
  _this.turnOfTheCentury = 68;
22102
+ _this.twelve = 12;
21982
22103
  _this.lexems = [];
21983
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
+ };
21984
22113
  return _this;
21985
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
+ });
21986
22136
  InputMaskDateTime.prototype.getType = function () {
21987
22137
  return "datetimemask";
21988
22138
  };
@@ -22002,20 +22152,45 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22002
22152
  var _this = this;
22003
22153
  var date = new Date(str);
22004
22154
  this.initInputDateTimeData();
22155
+ if (!this.hasDatePart) {
22156
+ date = new Date(this.defaultDate + str);
22157
+ }
22005
22158
  if (!isNaN(date)) {
22006
22159
  this.lexems.forEach(function (lexem, index) {
22007
22160
  var inputData = _this.inputDateTimeData[index];
22008
22161
  inputData.isCompleted = true;
22009
22162
  switch (lexem.type) {
22010
- 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": {
22011
22186
  inputData.value = date.getDate().toString();
22012
22187
  break;
22013
22188
  }
22014
- case ("month"): {
22189
+ case "month": {
22015
22190
  inputData.value = (date.getMonth() + 1).toString();
22016
22191
  break;
22017
22192
  }
22018
- case ("year"): {
22193
+ case "year": {
22019
22194
  var year = date.getFullYear();
22020
22195
  if (lexem.count == 2)
22021
22196
  year = year % 100;
@@ -22038,12 +22213,40 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22038
22213
  });
22039
22214
  };
22040
22215
  InputMaskDateTime.prototype.getISO_8601Format = function (dateTime) {
22041
- if (dateTime.year === undefined || dateTime.month === undefined || dateTime.day === undefined)
22042
- return "";
22043
- var year = this.getPlaceholder(4, dateTime.year.toString(), "0") + dateTime.year;
22044
- var month = this.getPlaceholder(2, dateTime.month.toString(), "0") + dateTime.month;
22045
- var day = this.getPlaceholder(2, dateTime.day.toString(), "0") + dateTime.day;
22046
- return [year, month, day].join("-");
22216
+ var date = [];
22217
+ var time = [];
22218
+ if (dateTime.year !== undefined) {
22219
+ var year = this.getPlaceholder(4, dateTime.year.toString(), "0") + dateTime.year;
22220
+ date.push(year);
22221
+ }
22222
+ if (dateTime.month !== undefined && dateTime.year !== undefined) {
22223
+ var month = this.getPlaceholder(2, dateTime.month.toString(), "0") + dateTime.month;
22224
+ date.push(month);
22225
+ }
22226
+ if (dateTime.day !== undefined && dateTime.month !== undefined && dateTime.year !== undefined) {
22227
+ var day = this.getPlaceholder(2, dateTime.day.toString(), "0") + dateTime.day;
22228
+ date.push(day);
22229
+ }
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");
22047
22250
  };
22048
22251
  InputMaskDateTime.prototype.isYearValid = function (dateTime) {
22049
22252
  if (dateTime.min === undefined && dateTime.max === undefined)
@@ -22053,51 +22256,153 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22053
22256
  var maxYearPart = dateTime.max.toISOString().slice(0, data.length);
22054
22257
  return dateTime.year >= parseInt(minYearPart) && dateTime.year <= parseInt(maxYearPart);
22055
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
+ };
22056
22275
  InputMaskDateTime.prototype.isDateValid = function (dateTime) {
22057
22276
  var min = dateTime.min;
22058
22277
  var max = dateTime.max;
22059
22278
  var year = dateTime.year !== undefined ? dateTime.year : getDefaultYearForValidation(min.getFullYear(), max.getFullYear());
22060
22279
  var month = dateTime.month !== undefined ? dateTime.month : 1;
22061
22280
  var day = dateTime.day !== undefined ? dateTime.day : 1;
22062
- var date = new Date(this.getISO_8601Format({ year: year, month: month, day: day }));
22063
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)));
22064
22284
  return !isNaN(date) &&
22065
22285
  date.getDate() === day &&
22066
22286
  date.getMonth() === monthIndex &&
22067
22287
  date.getFullYear() === year &&
22068
- date >= dateTime.min && date <= dateTime.max;
22288
+ dateH >= dateTime.min && date <= dateTime.max;
22069
22289
  };
22070
22290
  InputMaskDateTime.prototype.getPlaceholder = function (lexemLength, str, char) {
22071
22291
  var paddingsLength = lexemLength - (str || "").length;
22072
22292
  var paddings = paddingsLength > 0 ? char.repeat(paddingsLength) : "";
22073
22293
  return paddings;
22074
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
+ };
22075
22337
  InputMaskDateTime.prototype.updateInputDateTimeData = function (newItem, dateTime) {
22076
22338
  var data = newItem.value;
22077
22339
  if (!data)
22078
22340
  return;
22079
22341
  var propertyName = newItem.lexem.type;
22080
- dateTime[propertyName] = parseInt(data);
22342
+ var tempDateTime = __assign({}, dateTime);
22343
+ tempDateTime[propertyName] = parseInt(data);
22081
22344
  if (data.length === newItem.lexem.maxCount) {
22082
- if (this.isDateValid(dateTime)) {
22345
+ if (this.isDateValid12(tempDateTime)) {
22083
22346
  newItem.isCompleted = true;
22347
+ newItem.value = data || undefined;
22348
+ dateTime[propertyName] = parseInt(data) > 0 ? parseInt(data) : undefined;
22349
+ return;
22084
22350
  }
22085
22351
  else {
22086
22352
  data = data.slice(0, data.length - 1);
22087
22353
  }
22088
22354
  }
22089
- else 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))) {
22090
22359
  data = data.slice(0, data.length - 1);
22360
+ newItem.isCompleted = false;
22091
22361
  }
22092
- else if ((propertyName === "day" && parseInt(data[0]) > 3) || (propertyName === "month" && parseInt(data[0]) > 1)) {
22093
- newItem.isCompleted = true;
22362
+ else if (validBeginningOfNumber !== undefined && firstDigit > validBeginningOfNumber) {
22363
+ if (this.isDateValid12(tempDateTime)) {
22364
+ newItem.isCompleted = true;
22365
+ }
22366
+ else {
22367
+ data = data.slice(0, data.length - 1);
22368
+ }
22369
+ }
22370
+ else if (validBeginningOfNumber !== undefined && firstDigit !== 0 && firstDigit <= validBeginningOfNumber) {
22371
+ this.checkValidationDateTimePart(tempDateTime, propertyName, newItem);
22372
+ if (newItem.isCompleted && !this.isDateValid12(tempDateTime)) {
22373
+ data = data.slice(0, data.length - 1);
22374
+ }
22094
22375
  }
22095
- newItem.value = data;
22376
+ newItem.value = data || undefined;
22096
22377
  dateTime[propertyName] = parseInt(data) > 0 ? parseInt(data) : undefined;
22097
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
+ };
22098
22397
  InputMaskDateTime.prototype.getCorrectDatePartFormat = function (inputData, matchWholeMask) {
22099
22398
  var lexem = inputData.lexem;
22100
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
+ }
22101
22406
  if (!!dataStr && inputData.isCompleted) {
22102
22407
  dataStr = parseInt(dataStr).toString();
22103
22408
  }
@@ -22115,12 +22420,24 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22115
22420
  return dataStr;
22116
22421
  };
22117
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
+ }
22118
22432
  var tempDateTime = {
22433
+ hour: undefined,
22434
+ minute: undefined,
22435
+ second: undefined,
22119
22436
  day: undefined,
22120
22437
  month: undefined,
22121
22438
  year: undefined,
22122
- min: new Date(this.min || "0001-01-01"),
22123
- max: new Date(this.max || "9999-12-31")
22439
+ min: new Date(isoMin),
22440
+ max: new Date(isoMax)
22124
22441
  };
22125
22442
  return tempDateTime;
22126
22443
  };
@@ -22139,9 +22456,18 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22139
22456
  var result = "";
22140
22457
  var prevSeparator = "";
22141
22458
  var prevIsCompleted = false;
22459
+ var lastItemWithDataIndex = this.inputDateTimeData.length - 1;
22460
+ if (!matchWholeMask) {
22461
+ var arr = this.inputDateTimeData.filter(function (item) { return !!item.value; });
22462
+ lastItemWithDataIndex = this.inputDateTimeData.indexOf(arr[arr.length - 1]);
22463
+ }
22142
22464
  for (var index = 0; index < this.inputDateTimeData.length; index++) {
22143
22465
  var inputData = this.inputDateTimeData[index];
22144
22466
  switch (inputData.lexem.type) {
22467
+ case "timeMarker":
22468
+ case "hour":
22469
+ case "minute":
22470
+ case "second":
22145
22471
  case "day":
22146
22472
  case "month":
22147
22473
  case "year":
@@ -22150,7 +22476,8 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22150
22476
  return result;
22151
22477
  }
22152
22478
  else {
22153
- var data = this.getCorrectDatePartFormat(inputData, matchWholeMask);
22479
+ var _matchWholeMask = matchWholeMask || lastItemWithDataIndex > index;
22480
+ var data = this.getCorrectDatePartFormat(inputData, _matchWholeMask);
22154
22481
  result += (prevSeparator + data);
22155
22482
  prevIsCompleted = inputData.isCompleted;
22156
22483
  }
@@ -22162,15 +22489,38 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22162
22489
  }
22163
22490
  return result;
22164
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
+ };
22165
22507
  InputMaskDateTime.prototype.setInputDateTimeData = function (numberParts) {
22166
22508
  var _this = this;
22167
22509
  var numberPartsArrayIndex = 0;
22168
22510
  this.initInputDateTimeData();
22169
22511
  this.lexems.forEach(function (lexem, index) {
22170
- 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;
22171
22515
  var inputData = _this.inputDateTimeData[index];
22172
22516
  var currentPart = numberParts[numberPartsArrayIndex];
22173
- 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
+ }
22174
22524
  inputData.value = _data.slice(0, lexem.maxCount);
22175
22525
  numberPartsArrayIndex++;
22176
22526
  }
@@ -22183,35 +22533,16 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22183
22533
  var inputParts = this.getParts(input);
22184
22534
  this.setInputDateTimeData(inputParts);
22185
22535
  var tempDateTime = this.createIDateTimeComposition();
22186
- this.inputDateTimeData.forEach(function (itemData) { return _this.updateInputDateTimeData(itemData, tempDateTime); });
22187
- var result = this.getFormatedString(matchWholeMask);
22188
- return result;
22189
- };
22190
- InputMaskDateTime.prototype.getPartsOld = function (input) {
22191
- var inputParts = [];
22192
- var separatorLexems = this.lexems.filter(function (l) { return l.type === "separator"; });
22193
- var separatorLexemsIndex = 0;
22194
- do {
22195
- if (!separatorLexems[separatorLexemsIndex]) {
22196
- if (!!input) {
22197
- inputParts.push(input);
22198
- input = "";
22199
- }
22200
- break;
22201
- }
22202
- var separatorCharIndex = input.indexOf(separatorLexems[separatorLexemsIndex].value);
22203
- if (separatorCharIndex !== -1) {
22204
- var part = input.slice(0, separatorCharIndex);
22205
- if (!!part) {
22206
- inputParts.push(part);
22207
- }
22208
- input = input.slice(separatorCharIndex + 1);
22536
+ this.inputDateTimeData.forEach(function (itemData) {
22537
+ if (itemData.lexem.type === "timeMarker") {
22538
+ _this.updateTimeMarkerInputDateTimeData(itemData, tempDateTime);
22209
22539
  }
22210
22540
  else {
22541
+ _this.updateInputDateTimeData(itemData, tempDateTime);
22211
22542
  }
22212
- separatorLexemsIndex++;
22213
- } while (!!input);
22214
- return inputParts;
22543
+ });
22544
+ var result = this.getFormatedString(matchWholeMask);
22545
+ return result;
22215
22546
  };
22216
22547
  InputMaskDateTime.prototype.getParts = function (input) {
22217
22548
  var inputParts = [];
@@ -22227,6 +22558,11 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22227
22558
  foundPseudoSeparator = false;
22228
22559
  curPart += inputChar;
22229
22560
  }
22561
+ else if (lexemsWithValue[inputParts.length].type === "timeMarker") {
22562
+ foundSeparator = false;
22563
+ foundPseudoSeparator = false;
22564
+ curPart += inputChar;
22565
+ }
22230
22566
  else {
22231
22567
  if (separators.indexOf(inputChar) !== -1) {
22232
22568
  if (!foundPseudoSeparator) {
@@ -22255,17 +22591,27 @@ var InputMaskDateTime = /** @class */ (function (_super) {
22255
22591
  };
22256
22592
  InputMaskDateTime.prototype.getUnmaskedValue = function (src) {
22257
22593
  var _this = this;
22594
+ var _a;
22258
22595
  var input = (src === undefined || src === null) ? "" : src.toString();
22259
22596
  var inputParts = this.getParts(input);
22260
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];
22261
22599
  var tempDateTime = this.createIDateTimeComposition();
22600
+ var uncompleted = false;
22262
22601
  this.inputDateTimeData.forEach(function (inputData) {
22263
22602
  var str = inputData.value;
22264
- if (!str || str.length < inputData.lexem.count)
22265
- return undefined;
22266
- 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;
22267
22613
  });
22268
- return this.getISO_8601Format(tempDateTime);
22614
+ return uncompleted ? "" : this.getISO_8601Format(tempDateTime);
22269
22615
  };
22270
22616
  InputMaskDateTime.prototype.getMaskedValue = function (src) {
22271
22617
  return this.getMaskedStrFromISO(src);
@@ -22457,7 +22803,7 @@ var InputMaskNumeric = /** @class */ (function (_super) {
22457
22803
  }
22458
22804
  return value;
22459
22805
  };
22460
- InputMaskNumeric.prototype.validateNumber = function (number) {
22806
+ InputMaskNumeric.prototype.validateNumber = function (number, matchWholeMask) {
22461
22807
  var min = this.min || Number.MIN_SAFE_INTEGER;
22462
22808
  var max = this.max || Number.MAX_SAFE_INTEGER;
22463
22809
  if (this.min !== undefined || this.max !== undefined) {
@@ -22465,7 +22811,12 @@ var InputMaskNumeric = /** @class */ (function (_super) {
22465
22811
  if (Number.isNaN(value)) {
22466
22812
  return true;
22467
22813
  }
22468
- return value >= min && value <= max;
22814
+ if (!matchWholeMask) {
22815
+ return value >= 0 && value <= max || value < 0 && value >= min;
22816
+ }
22817
+ else {
22818
+ return value >= min && value <= max;
22819
+ }
22469
22820
  }
22470
22821
  return true;
22471
22822
  };
@@ -22480,7 +22831,7 @@ var InputMaskNumeric = /** @class */ (function (_super) {
22480
22831
  var currentChar = input[inputIndex];
22481
22832
  switch (currentChar) {
22482
22833
  case "-": {
22483
- if (this.allowNegativeValues) {
22834
+ if (this.allowNegativeValues && (this.min === undefined || this.min < 0)) {
22484
22835
  minusCharCount++;
22485
22836
  }
22486
22837
  break;
@@ -22516,6 +22867,9 @@ var InputMaskNumeric = /** @class */ (function (_super) {
22516
22867
  if (matchWholeMask === void 0) { matchWholeMask = false; }
22517
22868
  var input = (src === undefined || src === null) ? "" : src;
22518
22869
  var parsedNumber = this.parseNumber(input);
22870
+ if (!this.validateNumber(parsedNumber, matchWholeMask)) {
22871
+ return null;
22872
+ }
22519
22873
  var displayText = this.displayNumber(parsedNumber, true, matchWholeMask);
22520
22874
  return displayText;
22521
22875
  };
@@ -22535,7 +22889,7 @@ var InputMaskNumeric = /** @class */ (function (_super) {
22535
22889
  var rightPart = args.prevValue.slice(args.selectionEnd);
22536
22890
  var src = leftPart + rightPart;
22537
22891
  var parsedNumber = this.parseNumber(src);
22538
- if (!this.validateNumber(parsedNumber)) {
22892
+ if (!this.validateNumber(parsedNumber, false)) {
22539
22893
  return result;
22540
22894
  }
22541
22895
  var maskedValue = this.getNumberMaskedValue(src);
@@ -23480,6 +23834,7 @@ __webpack_require__.r(__webpack_exports__);
23480
23834
  /* harmony import */ var _drag_drop_panel_helper_v1__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./drag-drop-panel-helper-v1 */ "./src/drag-drop-panel-helper-v1.ts");
23481
23835
  /* harmony import */ var _utils_animation__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./utils/animation */ "./src/utils/animation.ts");
23482
23836
  /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./global_variables_utils */ "./src/global_variables_utils.ts");
23837
+ /* harmony import */ var _page__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./page */ "./src/page.ts");
23483
23838
  var __extends = (undefined && undefined.__extends) || (function () {
23484
23839
  var extendStatics = function (d, b) {
23485
23840
  extendStatics = Object.setPrototypeOf ||
@@ -23519,6 +23874,7 @@ var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from
23519
23874
 
23520
23875
 
23521
23876
 
23877
+
23522
23878
  var QuestionRowModel = /** @class */ (function (_super) {
23523
23879
  __extends(QuestionRowModel, _super);
23524
23880
  function QuestionRowModel(panel) {
@@ -25753,7 +26109,7 @@ var PanelModel = /** @class */ (function (_super) {
25753
26109
  Object.defineProperty(PanelModel.prototype, "hasEditButton", {
25754
26110
  get: function () {
25755
26111
  if (this.survey && this.survey.state === "preview")
25756
- return this.depth === 1;
26112
+ return (this.parent && this.parent instanceof _page__WEBPACK_IMPORTED_MODULE_13__["PageModel"]);
25757
26113
  return false;
25758
26114
  },
25759
26115
  enumerable: false,
@@ -25809,7 +26165,10 @@ var PanelModel = /** @class */ (function (_super) {
25809
26165
  };
25810
26166
  Object.defineProperty(PanelModel.prototype, "showPanelAsPage", {
25811
26167
  get: function () {
25812
- 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;
25813
26172
  },
25814
26173
  enumerable: false,
25815
26174
  configurable: true
@@ -26863,6 +27222,7 @@ var PopupBaseViewModel = /** @class */ (function (_super) {
26863
27222
  _this.isVisible = _this.model.isVisible;
26864
27223
  };
26865
27224
  _this.model = model;
27225
+ _this.locale = _this.model.locale;
26866
27226
  return _this;
26867
27227
  }
26868
27228
  PopupBaseViewModel.prototype.updateIsVisible = function (val) {
@@ -28371,10 +28731,11 @@ var Question = /** @class */ (function (_super) {
28371
28731
  });
28372
28732
  Question.prototype.getTitleOwner = function () { return this; };
28373
28733
  Question.prototype.getIsTitleRenderedAsString = function () { return this.titleLocation === "hidden"; };
28734
+ Question.prototype.notifySurveyOnChildrenVisibilityChanged = function () { return false; };
28374
28735
  Question.prototype.notifySurveyVisibilityChanged = function () {
28375
28736
  if (!this.survey || this.isLoadingFromJson)
28376
28737
  return;
28377
- this.survey.questionVisibilityChanged(this, this.isVisible);
28738
+ this.survey.questionVisibilityChanged(this, this.isVisible, !this.parentQuestion || this.parentQuestion.notifySurveyOnChildrenVisibilityChanged());
28378
28739
  var isClearOnHidden = this.isClearValueOnHidden;
28379
28740
  if (!this.visible) {
28380
28741
  this.clearValueOnHidding(isClearOnHidden);
@@ -28967,7 +29328,9 @@ var Question = /** @class */ (function (_super) {
28967
29328
  Question.prototype.getRootCss = function () {
28968
29329
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_10__["CssClassBuilder"]()
28969
29330
  .append(this.cssRoot)
28970
- .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)
28971
29334
  .append(this.cssClasses.invisible, !this.isDesignMode && this.areInvisibleElementsShowing && !this.visible)
28972
29335
  .toString();
28973
29336
  };
@@ -33144,7 +33507,10 @@ var QuestionSelectBase = /** @class */ (function (_super) {
33144
33507
  options.isDisabled = isDisabled;
33145
33508
  options.isChecked = isChecked;
33146
33509
  options.isNone = isNone;
33147
- 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)
33148
33514
  .append(this.cssClasses.itemChecked, isChecked)
33149
33515
  .append(this.cssClasses.itemHover, allowHover)
33150
33516
  .append(this.cssClasses.itemNone, isNone)
@@ -33307,6 +33673,9 @@ var QuestionSelectBase = /** @class */ (function (_super) {
33307
33673
  };
33308
33674
  Object.defineProperty(QuestionSelectBase.prototype, "itemSvgIcon", {
33309
33675
  get: function () {
33676
+ if (this.isPreviewStyle && this.cssClasses.itemPreviewSvgIconId) {
33677
+ return this.cssClasses.itemPreviewSvgIconId;
33678
+ }
33310
33679
  return this.cssClasses.itemSvgIconId;
33311
33680
  },
33312
33681
  enumerable: false,
@@ -33866,7 +34235,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
33866
34235
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
33867
34236
  .append(css.item)
33868
34237
  .append(css.itemOnError, this.hasCssError())
33869
- .append(css.itemDisabled, this.isReadOnly)
34238
+ .append(css.itemDisabled, this.isDisabledStyle)
34239
+ .append(css.itemReadOnly, this.isReadOnlyStyle)
34240
+ .append(css.itemPreview, this.isPreviewStyle)
33870
34241
  .append(css.itemHover, !this.isDesignMode)
33871
34242
  .append(css.itemChecked, !!this.booleanValue)
33872
34243
  .append(css.itemExchanged, !!this.swapOrder)
@@ -33881,6 +34252,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
33881
34252
  item: this.cssClasses.checkboxItem,
33882
34253
  itemOnError: this.cssClasses.checkboxItemOnError,
33883
34254
  itemDisabled: this.cssClasses.checkboxItemDisabled,
34255
+ itemDisable: this.cssClasses.checkboxItemDisabled,
34256
+ itemReadOnly: this.cssClasses.checkboxItemReadOnly,
34257
+ itemPreview: this.cssClasses.checkboxItemPreview,
33884
34258
  itemChecked: this.cssClasses.checkboxItemChecked,
33885
34259
  itemIndeterminate: this.cssClasses.checkboxItemIndeterminate
33886
34260
  });
@@ -33888,7 +34262,9 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
33888
34262
  QuestionBooleanModel.prototype.getLabelCss = function (checked) {
33889
34263
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
33890
34264
  .append(this.cssClasses.label)
33891
- .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)
33892
34268
  .append(this.cssClasses.labelTrue, !this.isIndeterminate && checked === !this.swapOrder)
33893
34269
  .append(this.cssClasses.labelFalse, !this.isIndeterminate && checked === this.swapOrder)
33894
34270
  .toString();
@@ -33906,6 +34282,16 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
33906
34282
  enumerable: false,
33907
34283
  configurable: true
33908
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
+ });
33909
34295
  Object.defineProperty(QuestionBooleanModel.prototype, "allowClick", {
33910
34296
  get: function () {
33911
34297
  return this.isIndeterminate && !this.isInputReadOnly;
@@ -33971,6 +34357,15 @@ var QuestionBooleanModel = /** @class */ (function (_super) {
33971
34357
  if (css.radioItemChecked && value === this.booleanValue) {
33972
34358
  className = (className ? className + " " : "") + css.radioItemChecked;
33973
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
+ }
33974
34369
  return className;
33975
34370
  };
33976
34371
  QuestionBooleanModel.prototype.supportResponsiveness = function () {
@@ -35216,7 +35611,7 @@ var QuestionCommentModel = /** @class */ (function (_super) {
35216
35611
  });
35217
35612
  Object.defineProperty(QuestionCommentModel.prototype, "renderedAllowResize", {
35218
35613
  get: function () {
35219
- return this.allowResize && (this.survey && this.survey.allowResizeComment);
35614
+ return this.allowResize && (this.survey && this.survey.allowResizeComment) && !this.isPreviewStyle && !this.isReadOnlyStyle;
35220
35615
  },
35221
35616
  enumerable: false,
35222
35617
  configurable: true
@@ -35334,6 +35729,7 @@ __webpack_require__.r(__webpack_exports__);
35334
35729
  /* harmony import */ var _textPreProcessor__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./textPreProcessor */ "./src/textPreProcessor.ts");
35335
35730
  /* harmony import */ var _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./utils/cssClassBuilder */ "./src/utils/cssClassBuilder.ts");
35336
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");
35337
35733
  var __extends = (undefined && undefined.__extends) || (function () {
35338
35734
  var extendStatics = function (d, b) {
35339
35735
  extendStatics = Object.setPrototypeOf ||
@@ -35356,6 +35752,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
35356
35752
 
35357
35753
 
35358
35754
 
35755
+
35359
35756
  var ComponentQuestionJSON = /** @class */ (function () {
35360
35757
  function ComponentQuestionJSON(name, json) {
35361
35758
  this.name = name;
@@ -35396,6 +35793,11 @@ var ComponentQuestionJSON = /** @class */ (function () {
35396
35793
  return;
35397
35794
  this.json.onUpdateQuestionCssClasses(question, element, css);
35398
35795
  };
35796
+ ComponentQuestionJSON.prototype.onSetQuestionValue = function (question, newValue) {
35797
+ if (!this.json.onSetQuestionValue)
35798
+ return;
35799
+ this.json.onSetQuestionValue(question, newValue);
35800
+ };
35399
35801
  ComponentQuestionJSON.prototype.onPropertyChanged = function (question, propertyName, newValue) {
35400
35802
  if (!this.json.onPropertyChanged)
35401
35803
  return;
@@ -35691,6 +36093,9 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
35691
36093
  if (updateIsAnswered === void 0) { updateIsAnswered = true; }
35692
36094
  _super.prototype.setQuestionValue.call(this, newValue, updateIsAnswered);
35693
36095
  this.updateElementCss();
36096
+ if (!!this.customQuestion) {
36097
+ this.customQuestion.onSetQuestionValue(this, newValue);
36098
+ }
35694
36099
  };
35695
36100
  QuestionCustomModelBase.prototype.setNewValue = function (newValue) {
35696
36101
  _super.prototype.setNewValue.call(this, newValue);
@@ -35719,6 +36124,9 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
35719
36124
  QuestionCustomModelBase.prototype.setValue = function (name, newValue, locNotification, allowNotifyValueChanged) {
35720
36125
  if (!this.data)
35721
36126
  return;
36127
+ if (!!this.customQuestion) {
36128
+ this.customQuestion.onValueChanged(this, name, newValue);
36129
+ }
35722
36130
  var newName = this.convertDataName(name);
35723
36131
  var valueForSurvey = this.convertDataValue(name, newValue);
35724
36132
  if (this.valueToDataCallback) {
@@ -35727,9 +36135,6 @@ var QuestionCustomModelBase = /** @class */ (function (_super) {
35727
36135
  this.data.setValue(newName, valueForSurvey, locNotification, allowNotifyValueChanged);
35728
36136
  this.updateIsAnswered();
35729
36137
  this.updateElementCss();
35730
- if (!!this.customQuestion) {
35731
- this.customQuestion.onValueChanged(this, name, newValue);
35732
- }
35733
36138
  };
35734
36139
  QuestionCustomModelBase.prototype.getQuestionByName = function (name) {
35735
36140
  return undefined;
@@ -35939,15 +36344,15 @@ var QuestionCustomModel = /** @class */ (function (_super) {
35939
36344
  if (!qType || !_jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].findClass(qType))
35940
36345
  throw "type attribute in questionJSON is empty or incorrect";
35941
36346
  res = _jsonobject__WEBPACK_IMPORTED_MODULE_1__["Serializer"].createClass(qType);
35942
- this.initElement(res);
35943
36347
  res.fromJSON(json.questionJSON);
36348
+ res = this.checkCreatedQuestion(res);
35944
36349
  }
35945
36350
  else {
35946
36351
  if (!!json.createQuestion) {
35947
- res = json.createQuestion();
35948
- this.initElement(res);
36352
+ res = this.checkCreatedQuestion(json.createQuestion());
35949
36353
  }
35950
36354
  }
36355
+ this.initElement(res);
35951
36356
  if (!!res) {
35952
36357
  res.isContentElement = true;
35953
36358
  if (!res.name) {
@@ -35961,6 +36366,20 @@ var QuestionCustomModel = /** @class */ (function (_super) {
35961
36366
  }
35962
36367
  return res;
35963
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
+ };
35964
36383
  QuestionCustomModel.prototype.onSurveyLoad = function () {
35965
36384
  _super.prototype.onSurveyLoad.call(this);
35966
36385
  if (!this.contentQuestion)
@@ -36336,7 +36755,8 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
36336
36755
  this.contentPanel.questions.forEach(function (q) { return q.collectNestedQuestions(questions, visibleOnly); });
36337
36756
  };
36338
36757
  QuestionCompositeModel.prototype.convertDataValue = function (name, newValue) {
36339
- var val = this.getValueForContentPanel(this.value);
36758
+ var val = !!this.contentPanel && !this.isEditingSurveyElement ?
36759
+ this.contentPanel.getValue() : this.getValueForContentPanel(this.value);
36340
36760
  if (!val)
36341
36761
  val = {};
36342
36762
  if (this.isValueEmpty(newValue) && !this.isEditingSurveyElement) {
@@ -36667,7 +37087,9 @@ var QuestionDropdownModel = /** @class */ (function (_super) {
36667
37087
  .append(this.cssClasses.control)
36668
37088
  .append(this.cssClasses.controlEmpty, this.isEmpty())
36669
37089
  .append(this.cssClasses.onError, this.hasCssError())
36670
- .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)
36671
37093
  .append(this.cssClasses.controlInputFieldComponent, !!this.inputFieldComponentName)
36672
37094
  .toString();
36673
37095
  };
@@ -38507,6 +38929,9 @@ var QuestionFileModel = /** @class */ (function (_super) {
38507
38929
  get: function () {
38508
38930
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_5__["CssClassBuilder"]()
38509
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)
38510
38935
  .append(this.cssClasses.rootDragging, this.isDragging)
38511
38936
  .append(this.cssClasses.rootAnswered, this.isAnswered)
38512
38937
  .append(this.cssClasses.single, !this.allowMultiple)
@@ -39575,11 +40000,12 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
39575
40000
  /**
39576
40001
  * Specifies the height of containers for images or videos. Accepts positive numbers and CSS values.
39577
40002
  *
39578
- * Default value: undefined
40003
+ * Default value: `auto`
40004
+ *
40005
+ * This property allows you to specify the exact image height. If you do not set it, the height will be calculated automatically based on the [`minImageHeight`](#minImageHeight) and [`maxImageHeight`](#maxImageHeight) values and available screen height.
39579
40006
  *
39580
- * Use the `imageFit` property to specify how to fit the images or videos into their containers.
40007
+ * Use the [`imageFit`](#imageFit) property to specify how to fit the images or videos into their containers.
39581
40008
  * @see imageWidth
39582
- * @see imageFit
39583
40009
  */
39584
40010
  get: function () {
39585
40011
  return this.getPropertyValue("imageHeight");
@@ -39602,11 +40028,12 @@ var QuestionImagePickerModel = /** @class */ (function (_super) {
39602
40028
  /**
39603
40029
  * Specifies the width of containers for images or videos. Accepts positive numbers and CSS values.
39604
40030
  *
39605
- * Default value: 200
40031
+ * Default value: `auto`
39606
40032
  *
39607
- * Use the `imageFit` property to specify how to fit the images or videos into their containers.
40033
+ * This property allows you to specify the exact image width. If you do not set it, the width will be calculated automatically based on the [`minImageWidth`](#minImageWidth) and [`maxImageWidth`](#maxImageWidth) values and available screen width.
40034
+ *
40035
+ * Use the [`imageFit`](#imageFit) property to specify how to fit the images or videos into their containers.
39608
40036
  * @see imageHeight
39609
- * @see imageFit
39610
40037
  */
39611
40038
  get: function () {
39612
40039
  return this.getPropertyValue("imageWidth");
@@ -39995,7 +40422,8 @@ var MatrixRowModel = /** @class */ (function (_super) {
39995
40422
  var cssClasses = this.data.cssClasses;
39996
40423
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_11__["CssClassBuilder"]().append(cssClasses.row)
39997
40424
  .append(cssClasses.rowError, this.data.hasErrorInRow(this))
39998
- .append(cssClasses.rowDisabled, this.isReadOnly)
40425
+ .append(cssClasses.rowReadOnly, this.isReadOnly)
40426
+ .append(cssClasses.rowDisabled, this.data.isDisabledStyle)
39999
40427
  .toString();
40000
40428
  },
40001
40429
  enumerable: false,
@@ -40321,12 +40749,17 @@ var QuestionMatrixModel = /** @class */ (function (_super) {
40321
40749
  .append(hasCellText ? css.cellText : css.label)
40322
40750
  .append(css.itemOnError, !hasCellText && (this.isAllRowRequired ? this.hasErrorInRow(row) : this.hasCssError()))
40323
40751
  .append(hasCellText ? css.cellTextSelected : css.itemChecked, isChecked)
40324
- .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)
40325
40755
  .append(css.itemHover, allowHover && !hasCellText)
40326
40756
  .toString();
40327
40757
  };
40328
40758
  Object.defineProperty(QuestionMatrixModel.prototype, "itemSvgIcon", {
40329
40759
  get: function () {
40760
+ if (this.isPreviewStyle && this.cssClasses.itemPreviewSvgIconId) {
40761
+ return this.cssClasses.itemPreviewSvgIconId;
40762
+ }
40330
40763
  return this.cssClasses.itemSvgIconId;
40331
40764
  },
40332
40765
  enumerable: false,
@@ -45486,7 +45919,9 @@ var QuestionMatrixDropdownRenderedTable = /** @class */ (function (_super) {
45486
45919
  };
45487
45920
  QuestionMatrixDropdownRenderedTable.prototype.getRowDragCell = function (rowIndex) {
45488
45921
  var cell = new QuestionMatrixDropdownRenderedCell();
45489
- cell.isDragHandlerCell = true;
45922
+ var lockedRows = this.matrix.lockedRowCount;
45923
+ cell.isDragHandlerCell = lockedRows < 1 || rowIndex >= lockedRows;
45924
+ cell.isEmpty = !cell.isDragHandlerCell;
45490
45925
  cell.className = this.getActionsCellClassName(cell);
45491
45926
  cell.row = this.matrix.visibleRows[rowIndex];
45492
45927
  return cell;
@@ -46076,7 +46511,7 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
46076
46511
  _this.registerPropertyChangedHandlers(["hideColumnsIfEmpty", "allowAddRows"], function () {
46077
46512
  _this.updateShowTableAndAddRow();
46078
46513
  });
46079
- _this.registerPropertyChangedHandlers(["allowRowsDragAndDrop", "isReadOnly"], function () { _this.clearRowsAndResetRenderedTable(); });
46514
+ _this.registerPropertyChangedHandlers(["allowRowsDragAndDrop", "isReadOnly", "lockedRowCount"], function () { _this.clearRowsAndResetRenderedTable(); });
46080
46515
  _this.dragOrClickHelper = new _utils_dragOrClickHelper__WEBPACK_IMPORTED_MODULE_9__["DragOrClickHelper"](_this.startDragMatrixRow);
46081
46516
  return _this;
46082
46517
  }
@@ -46307,6 +46742,16 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
46307
46742
  enumerable: false,
46308
46743
  configurable: true
46309
46744
  });
46745
+ Object.defineProperty(QuestionMatrixDynamicModel.prototype, "lockedRowCount", {
46746
+ get: function () {
46747
+ return this.getPropertyValue("lockedRowCount", 0);
46748
+ },
46749
+ set: function (val) {
46750
+ this.setPropertyValue("lockedRowCount", val);
46751
+ },
46752
+ enumerable: false,
46753
+ configurable: true
46754
+ });
46310
46755
  Object.defineProperty(QuestionMatrixDynamicModel.prototype, "iconDragElement", {
46311
46756
  get: function () {
46312
46757
  return this.cssClasses.iconDragElement;
@@ -46464,7 +46909,10 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
46464
46909
  QuestionMatrixDynamicModel.prototype.canRemoveRow = function (row) {
46465
46910
  if (!this.survey)
46466
46911
  return true;
46467
- return this.survey.matrixAllowRemoveRow(this, row.index, row);
46912
+ var index = row.rowIndex - 1;
46913
+ if (this.lockedRowCount > 0 && index < this.lockedRowCount)
46914
+ return false;
46915
+ return this.survey.matrixAllowRemoveRow(this, index, row);
46468
46916
  };
46469
46917
  QuestionMatrixDynamicModel.prototype.addRowUI = function () {
46470
46918
  this.addRow(true);
@@ -48126,6 +48574,9 @@ var QuestionMultipleTextModel = /** @class */ (function (_super) {
48126
48574
  QuestionMultipleTextModel.prototype.getItemLabelCss = function (item) {
48127
48575
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_7__["CssClassBuilder"]()
48128
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)
48129
48580
  .append(this.cssClasses.itemLabelAnswered, item.editor.isAnswered)
48130
48581
  .append(this.cssClasses.itemLabelAllowFocus, !this.isDesignMode)
48131
48582
  .append(this.cssClasses.itemLabelOnError, item.editor.errors.length > 0)
@@ -49563,12 +50014,13 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49563
50014
  set: function (val) {
49564
50015
  this.setPropertyValue("showQuestionNumbers", val);
49565
50016
  if (!this.isLoadingFromJson && this.survey) {
49566
- this.survey.questionVisibilityChanged(this, this.visible);
50017
+ this.survey.questionVisibilityChanged(this, this.visible, true);
49567
50018
  }
49568
50019
  },
49569
50020
  enumerable: false,
49570
50021
  configurable: true
49571
50022
  });
50023
+ QuestionPanelDynamicModel.prototype.notifySurveyOnChildrenVisibilityChanged = function () { return this.showQuestionNumbers === "onSurvey"; };
49572
50024
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "panelRemoveButtonLocation", {
49573
50025
  /**
49574
50026
  * Specifies the location of the Delete Panel button relative to panel content.
@@ -49668,15 +50120,16 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
49668
50120
  QuestionPanelDynamicModel.prototype.setVisibleIndex = function (value) {
49669
50121
  if (!this.isVisible)
49670
50122
  return 0;
49671
- var startIndex = this.showQuestionNumbers == "onSurvey" ? value : 0;
50123
+ var onSurveyNumbering = this.showQuestionNumbers === "onSurvey";
50124
+ var startIndex = onSurveyNumbering ? value : 0;
49672
50125
  for (var i = 0; i < this.visiblePanelsCore.length; i++) {
49673
50126
  var counter = this.setPanelVisibleIndex(this.visiblePanelsCore[i], startIndex, this.showQuestionNumbers != "off");
49674
- if (this.showQuestionNumbers == "onSurvey") {
50127
+ if (onSurveyNumbering) {
49675
50128
  startIndex += counter;
49676
50129
  }
49677
50130
  }
49678
- _super.prototype.setVisibleIndex.call(this, this.showQuestionNumbers != "onSurvey" ? value : -1);
49679
- return this.showQuestionNumbers != "onSurvey" ? 1 : startIndex - value;
50131
+ _super.prototype.setVisibleIndex.call(this, !onSurveyNumbering ? value : -1);
50132
+ return !onSurveyNumbering ? 1 : startIndex - value;
49680
50133
  };
49681
50134
  QuestionPanelDynamicModel.prototype.setPanelVisibleIndex = function (panel, index, showIndex) {
49682
50135
  if (!showIndex) {
@@ -50983,6 +51436,8 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
50983
51436
  });
50984
51437
  Object.defineProperty(QuestionPanelDynamicModel.prototype, "showNavigation", {
50985
51438
  get: function () {
51439
+ if (this.isReadOnly && this.visiblePanelCount == 1)
51440
+ return false;
50986
51441
  return this.visiblePanelCount > 0 && !this.showLegacyNavigation && !!this.cssClasses.footer;
50987
51442
  },
50988
51443
  enumerable: false,
@@ -51468,11 +51923,14 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51468
51923
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
51469
51924
  .append(this.cssClasses.root)
51470
51925
  .append(this.cssClasses.rootMobileMod, this.isMobileMode())
51471
- .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)
51472
51929
  .append(this.cssClasses.rootDesignMode, !!this.isDesignMode)
51473
51930
  .append(this.cssClasses.itemOnError, this.hasCssError())
51474
51931
  .append(this.cssClasses.rootDragHandleAreaIcon, _src_settings__WEBPACK_IMPORTED_MODULE_9__["settings"].rankingDragHandleArea === "icon")
51475
51932
  .append(this.cssClasses.rootSelectToRankMod, this.selectToRankEnabled)
51933
+ .append(this.cssClasses.rootSelectToRankEmptyValueMod, this.isEmpty())
51476
51934
  .append(this.cssClasses.rootSelectToRankAlignHorizontal, this.selectToRankEnabled && this.renderedSelectToRankAreasLayout === "horizontal")
51477
51935
  .append(this.cssClasses.rootSelectToRankAlignVertical, this.selectToRankEnabled && this.renderedSelectToRankAreasLayout === "vertical")
51478
51936
  .toString();
@@ -51480,6 +51938,9 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51480
51938
  enumerable: false,
51481
51939
  configurable: true
51482
51940
  });
51941
+ QuestionRankingModel.prototype.isItemSelectedCore = function (item) {
51942
+ return false;
51943
+ };
51483
51944
  QuestionRankingModel.prototype.getItemClassCore = function (item, options) {
51484
51945
  var itemIndex = this.rankingChoices.indexOf(item);
51485
51946
  var unrankedItemIndex = this.unRankingChoices.indexOf(item);
@@ -51769,14 +52230,18 @@ var QuestionRankingModel = /** @class */ (function (_super) {
51769
52230
  var toIndex;
51770
52231
  if (key === " " && !isMovedElementRanked) {
51771
52232
  toIndex = 0;
52233
+ this.animationAllowed = false;
51772
52234
  dnd.selectToRank(this, fromIndex, toIndex);
52235
+ this.animationAllowed = true;
51773
52236
  this.setValueAfterKeydown(toIndex, "to-container");
51774
52237
  return;
51775
52238
  }
51776
52239
  if (!isMovedElementRanked)
51777
52240
  return;
51778
52241
  if (key === " ") {
52242
+ this.animationAllowed = false;
51779
52243
  dnd.unselectFromRank(this, fromIndex);
52244
+ this.animationAllowed = true;
51780
52245
  toIndex = this.unRankingChoices.indexOf(movedElement); //'this.' leads to actual array after the 'unselectFromRank' method
51781
52246
  this.setValueAfterKeydown(toIndex, "from-container");
51782
52247
  return;
@@ -52730,7 +53195,9 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52730
53195
  };
52731
53196
  QuestionRatingModel.prototype.getItemStyle = function (item, highlight) {
52732
53197
  if (highlight === void 0) { highlight = "none"; }
52733
- if (this.scaleColorMode === "monochrome" && this.rateColorMode == "default")
53198
+ if (this.scaleColorMode === "monochrome" && this.rateColorMode == "default" ||
53199
+ this.isPreviewStyle ||
53200
+ this.isReadOnlyStyle)
52734
53201
  return { borderColor: null, fill: null, backgroundColor: null };
52735
53202
  var index = this.visibleRateValues.indexOf(item);
52736
53203
  var color = this.getRenderedItemColor(index, false);
@@ -52766,6 +53233,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52766
53233
  var itemClass = this.cssClasses.item;
52767
53234
  var itemSelectedClass = this.cssClasses.selected;
52768
53235
  var itemDisabledClass = this.cssClasses.itemDisabled;
53236
+ var itemReadOnlyClass = this.cssClasses.itemReadOnly;
53237
+ var itemPreviewClass = this.cssClasses.itemPreview;
52769
53238
  var itemHoverClass = this.cssClasses.itemHover;
52770
53239
  var itemitemOnErrorClass = this.cssClasses.itemOnError;
52771
53240
  var itemHighlightedClass = null;
@@ -52777,6 +53246,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52777
53246
  itemClass = this.cssClasses.itemStar;
52778
53247
  itemSelectedClass = this.cssClasses.itemStarSelected;
52779
53248
  itemDisabledClass = this.cssClasses.itemStarDisabled;
53249
+ itemReadOnlyClass = this.cssClasses.itemStarReadOnly;
53250
+ itemPreviewClass = this.cssClasses.itemStarPreview;
52780
53251
  itemHoverClass = this.cssClasses.itemStarHover;
52781
53252
  itemitemOnErrorClass = this.cssClasses.itemStarOnError;
52782
53253
  itemHighlightedClass = this.cssClasses.itemStarHighlighted;
@@ -52787,6 +53258,8 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52787
53258
  itemClass = this.cssClasses.itemSmiley;
52788
53259
  itemSelectedClass = this.cssClasses.itemSmileySelected;
52789
53260
  itemDisabledClass = this.cssClasses.itemSmileyDisabled;
53261
+ itemReadOnlyClass = this.cssClasses.itemSmileyReadOnly;
53262
+ itemPreviewClass = this.cssClasses.itemSmileyPreview;
52790
53263
  itemHoverClass = this.cssClasses.itemSmileyHover;
52791
53264
  itemitemOnErrorClass = this.cssClasses.itemSmileyOnError;
52792
53265
  itemHighlightedClass = this.cssClasses.itemSmileyHighlighted;
@@ -52804,7 +53277,9 @@ var QuestionRatingModel = /** @class */ (function (_super) {
52804
53277
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_6__["CssClassBuilder"]()
52805
53278
  .append(itemClass)
52806
53279
  .append(itemSelectedClass, isSelected)
52807
- .append(itemDisabledClass, this.isReadOnly)
53280
+ .append(itemDisabledClass, this.isDisabledStyle)
53281
+ .append(itemReadOnlyClass, this.isReadOnlyStyle)
53282
+ .append(itemPreviewClass, this.isPreviewStyle)
52808
53283
  .append(itemHoverClass, allowHover)
52809
53284
  .append(itemHighlightedClass, isHighlighted)
52810
53285
  .append(itemScaleColoredClass, this.scaleColorMode == "colored")
@@ -53547,6 +54022,13 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
53547
54022
  enumerable: false,
53548
54023
  configurable: true
53549
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
+ });
53550
54032
  QuestionSignaturePadModel.prototype.nothingIsDrawn = function () {
53551
54033
  var isDrawing = this.isDrawingValue;
53552
54034
  var isEmpty = this.isEmpty();
@@ -53608,6 +54090,9 @@ var QuestionSignaturePadModel = /** @class */ (function (_super) {
53608
54090
  __decorate([
53609
54091
  Object(_jsonobject__WEBPACK_IMPORTED_MODULE_0__["property"])({ localizable: { defaultStr: "signaturePlaceHolder" } })
53610
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);
53611
54096
  return QuestionSignaturePadModel;
53612
54097
  }(_question_file__WEBPACK_IMPORTED_MODULE_5__["QuestionFileModelBase"]));
53613
54098
 
@@ -53664,6 +54149,13 @@ _jsonobject__WEBPACK_IMPORTED_MODULE_0__["Serializer"].addClass("signaturepad",
53664
54149
  dependsOn: "showPlaceholder",
53665
54150
  visibleIf: function (obj) { return obj.showPlaceholder; }
53666
54151
  },
54152
+ {
54153
+ name: "placeholderReadOnly:text",
54154
+ serializationProperty: "locPlaceholderReadOnly",
54155
+ category: "general",
54156
+ dependsOn: "showPlaceholder",
54157
+ visibleIf: function (obj) { return obj.showPlaceholder; }
54158
+ },
53667
54159
  {
53668
54160
  name: "backgroundImage:file",
53669
54161
  category: "general",
@@ -53869,7 +54361,10 @@ var QuestionTagboxModel = /** @class */ (function (_super) {
53869
54361
  .append(this.cssClasses.control)
53870
54362
  .append(this.cssClasses.controlEmpty, this.isEmpty())
53871
54363
  .append(this.cssClasses.onError, this.hasCssError())
53872
- .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)
53873
54368
  .toString();
53874
54369
  };
53875
54370
  QuestionTagboxModel.prototype.onOpenedCallBack = function () {
@@ -55166,7 +55661,9 @@ var QuestionTextBase = /** @class */ (function (_super) {
55166
55661
  return new _utils_cssClassBuilder__WEBPACK_IMPORTED_MODULE_3__["CssClassBuilder"]()
55167
55662
  .append(this.cssClasses.root)
55168
55663
  .append(this.cssClasses.onError, this.hasCssError())
55169
- .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);
55170
55667
  };
55171
55668
  QuestionTextBase.prototype.getControlClass = function () {
55172
55669
  return this.getControlCssClassBuilder().toString();
@@ -57689,11 +58186,14 @@ var SurveyElement = /** @class */ (function (_super) {
57689
58186
  enumerable: false,
57690
58187
  configurable: true
57691
58188
  });
58189
+ SurveyElement.prototype.canHaveFrameStyles = function () {
58190
+ return (this.parent !== undefined && (!this.hasParent || this.parent && this.parent.showPanelAsPage));
58191
+ };
57692
58192
  SurveyElement.prototype.getHasFrameV2 = function () {
57693
- return this.shouldAddRunnerStyles() && (!this.hasParent);
58193
+ return this.shouldAddRunnerStyles() && this.canHaveFrameStyles();
57694
58194
  };
57695
58195
  SurveyElement.prototype.getIsNested = function () {
57696
- return this.shouldAddRunnerStyles() && (this.hasParent);
58196
+ return this.shouldAddRunnerStyles() && !this.canHaveFrameStyles();
57697
58197
  };
57698
58198
  SurveyElement.prototype.getCssRoot = function (cssClasses) {
57699
58199
  var isExpanadable = !!this.isCollapsed || !!this.isExpanded;
@@ -57913,9 +58413,31 @@ var SurveyElement = /** @class */ (function (_super) {
57913
58413
  .append(cssClasses.titleExpandable, isExpandable)
57914
58414
  .append(cssClasses.titleExpanded, this.isExpanded)
57915
58415
  .append(cssClasses.titleCollapsed, this.isCollapsed)
57916
- .append(cssClasses.titleDisabled, this.isReadOnly)
58416
+ .append(cssClasses.titleDisabled, this.isDisabledStyle)
58417
+ .append(cssClasses.titleReadOnly, this.isReadOnly)
57917
58418
  .append(cssClasses.titleOnError, this.containsErrors).toString();
57918
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
+ });
57919
58441
  SurveyElement.prototype.localeChanged = function () {
57920
58442
  _super.prototype.localeChanged.call(this);
57921
58443
  this.updateDescriptionVisibility(this.description);
@@ -63417,7 +63939,7 @@ var SurveyModel = /** @class */ (function (_super) {
63417
63939
  });
63418
63940
  SurveyModel.prototype.updateProgressText = function (onValueChanged) {
63419
63941
  if (onValueChanged === void 0) { onValueChanged = false; }
63420
- if (this.isCalculatingProgressText)
63942
+ if (this.isCalculatingProgressText || this.isShowingPreview || this.isLockingUpdateOnPageModes)
63421
63943
  return;
63422
63944
  if (onValueChanged &&
63423
63945
  this.progressBarType == "pages" &&
@@ -64715,7 +65237,7 @@ var SurveyModel = /** @class */ (function (_super) {
64715
65237
  this.updateVisibleIndexes();
64716
65238
  };
64717
65239
  SurveyModel.prototype.updateVisibleIndexes = function () {
64718
- if (this.isLoadingFromJson || !!this.isEndLoadingFromJson)
65240
+ if (this.isLoadingFromJson || !!this.isEndLoadingFromJson || this.isLockingUpdateOnPageModes)
64719
65241
  return;
64720
65242
  if (this.isRunningConditions &&
64721
65243
  this.onQuestionVisibleChanged.isEmpty &&
@@ -65322,8 +65844,10 @@ var SurveyModel = /** @class */ (function (_super) {
65322
65844
  return questionClearIf;
65323
65845
  return this.clearInvisibleValues;
65324
65846
  };
65325
- SurveyModel.prototype.questionVisibilityChanged = function (question, newValue) {
65326
- this.updateVisibleIndexes();
65847
+ SurveyModel.prototype.questionVisibilityChanged = function (question, newValue, resetIndexes) {
65848
+ if (resetIndexes) {
65849
+ this.updateVisibleIndexes();
65850
+ }
65327
65851
  this.onQuestionVisibleChanged.fire(this, {
65328
65852
  question: question,
65329
65853
  name: question.name,
@@ -68415,7 +68939,8 @@ __webpack_require__.r(__webpack_exports__);
68415
68939
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationGroupUtils", function() { return AnimationGroupUtils; });
68416
68940
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationBoolean", function() { return AnimationBoolean; });
68417
68941
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationGroup", function() { return AnimationGroup; });
68418
- /* harmony import */ var _taskmanager__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./taskmanager */ "./src/utils/taskmanager.ts");
68942
+ /* harmony import */ var _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../global_variables_utils */ "./src/global_variables_utils.ts");
68943
+ /* harmony import */ var _taskmanager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./taskmanager */ "./src/utils/taskmanager.ts");
68419
68944
  var __extends = (undefined && undefined.__extends) || (function () {
68420
68945
  var extendStatics = function (d, b) {
68421
68946
  extendStatics = Object.setPrototypeOf ||
@@ -68432,6 +68957,7 @@ var __extends = (undefined && undefined.__extends) || (function () {
68432
68957
  };
68433
68958
  })();
68434
68959
 
68960
+
68435
68961
  var AnimationUtils = /** @class */ (function () {
68436
68962
  function AnimationUtils() {
68437
68963
  this.cancelQueue = [];
@@ -68500,8 +69026,8 @@ var AnimationUtils = /** @class */ (function () {
68500
69026
  element.classList.remove(options.cssClass);
68501
69027
  }
68502
69028
  else {
68503
- requestAnimationFrame(function () {
68504
- requestAnimationFrame(function () {
69029
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
69030
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
68505
69031
  element.classList.remove(options.cssClass);
68506
69032
  });
68507
69033
  });
@@ -68522,7 +69048,8 @@ var AnimationUtils = /** @class */ (function () {
68522
69048
  }
68523
69049
  };
68524
69050
  AnimationUtils.prototype.cancel = function () {
68525
- this.cancelQueue.forEach(function (func) { return func(); });
69051
+ var cancelQueue = [].concat(this.cancelQueue);
69052
+ cancelQueue.forEach(function (callback) { return callback(); });
68526
69053
  this.cancelQueue = [];
68527
69054
  };
68528
69055
  return AnimationUtils;
@@ -68540,12 +69067,12 @@ var AnimationPropertyUtils = /** @class */ (function (_super) {
68540
69067
  _this.beforeAnimationRun(element, options);
68541
69068
  _this.runEnterAnimation(element, options);
68542
69069
  };
68543
- requestAnimationFrame(function () {
69070
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
68544
69071
  if (getElement()) {
68545
69072
  callback();
68546
69073
  }
68547
69074
  else {
68548
- requestAnimationFrame(callback);
69075
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(callback);
68549
69076
  }
68550
69077
  });
68551
69078
  };
@@ -68566,7 +69093,7 @@ var AnimationGroupUtils = /** @class */ (function (_super) {
68566
69093
  var _this = this;
68567
69094
  if (elements.length == 0)
68568
69095
  return;
68569
- requestAnimationFrame(function () {
69096
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(function () {
68570
69097
  var callback = function () {
68571
69098
  elements.forEach(function (el) {
68572
69099
  _this.beforeAnimationRun(getElement(el), getOptions(el));
@@ -68576,7 +69103,7 @@ var AnimationGroupUtils = /** @class */ (function (_super) {
68576
69103
  });
68577
69104
  };
68578
69105
  if (!getElement(elements[0])) {
68579
- requestAnimationFrame(callback);
69106
+ _global_variables_utils__WEBPACK_IMPORTED_MODULE_0__["DomWindowHelper"].requestAnimationFrame(callback);
68580
69107
  }
68581
69108
  else {
68582
69109
  callback();
@@ -68607,7 +69134,7 @@ var AnimationProperty = /** @class */ (function () {
68607
69134
  this.animationOptions = animationOptions;
68608
69135
  this.update = update;
68609
69136
  this.getCurrentValue = getCurrentValue;
68610
- this._debouncedSync = Object(_taskmanager__WEBPACK_IMPORTED_MODULE_0__["debounce"])(function (newValue) {
69137
+ this._debouncedSync = Object(_taskmanager__WEBPACK_IMPORTED_MODULE_1__["debounce"])(function (newValue) {
68611
69138
  _this.animation.cancel();
68612
69139
  _this._sync(newValue);
68613
69140
  });