survey-core 2.3.4 → 2.3.5

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 (281) hide show
  1. package/fesm/i18n/arabic.mjs +1 -1
  2. package/fesm/i18n/basque.mjs +1 -1
  3. package/fesm/i18n/bulgarian.mjs +1 -1
  4. package/fesm/i18n/burmese.mjs +1 -1
  5. package/fesm/i18n/catalan.mjs +1 -1
  6. package/fesm/i18n/croatian.mjs +1 -1
  7. package/fesm/i18n/czech.mjs +1 -1
  8. package/fesm/i18n/danish.mjs +1 -1
  9. package/fesm/i18n/dutch.mjs +1 -1
  10. package/fesm/i18n/english.mjs +1 -1
  11. package/fesm/i18n/estonian.mjs +1 -1
  12. package/fesm/i18n/finnish.mjs +1 -1
  13. package/fesm/i18n/french.mjs +1 -1
  14. package/fesm/i18n/georgian.mjs +1 -1
  15. package/fesm/i18n/german.mjs +1 -1
  16. package/fesm/i18n/greek.mjs +1 -1
  17. package/fesm/i18n/haitian-creole.mjs +1 -1
  18. package/fesm/i18n/hebrew.mjs +1 -1
  19. package/fesm/i18n/hindi.mjs +1 -1
  20. package/fesm/i18n/hungarian.mjs +1 -1
  21. package/fesm/i18n/icelandic.mjs +1 -1
  22. package/fesm/i18n/index.mjs +1 -1
  23. package/fesm/i18n/indonesian.mjs +1 -1
  24. package/fesm/i18n/italian.mjs +1 -1
  25. package/fesm/i18n/japanese.mjs +1 -1
  26. package/fesm/i18n/kazakh.mjs +1 -1
  27. package/fesm/i18n/korean.mjs +1 -1
  28. package/fesm/i18n/latvian.mjs +1 -1
  29. package/fesm/i18n/lithuanian.mjs +1 -1
  30. package/fesm/i18n/macedonian.mjs +1 -1
  31. package/fesm/i18n/malay.mjs +1 -1
  32. package/fesm/i18n/nl-BE.mjs +1 -1
  33. package/fesm/i18n/norwegian.mjs +1 -1
  34. package/fesm/i18n/persian.mjs +1 -1
  35. package/fesm/i18n/philippines.mjs +1 -1
  36. package/fesm/i18n/polish.mjs +1 -1
  37. package/fesm/i18n/portuguese-br.mjs +1 -1
  38. package/fesm/i18n/portuguese.mjs +1 -1
  39. package/fesm/i18n/romanian.mjs +1 -1
  40. package/fesm/i18n/russian.mjs +1 -1
  41. package/fesm/i18n/serbian.mjs +1 -1
  42. package/fesm/i18n/simplified-chinese.mjs +1 -1
  43. package/fesm/i18n/slovak.mjs +1 -1
  44. package/fesm/i18n/slovenian.mjs +1 -1
  45. package/fesm/i18n/spanish.mjs +1 -1
  46. package/fesm/i18n/swahili.mjs +1 -1
  47. package/fesm/i18n/swedish.mjs +1 -1
  48. package/fesm/i18n/tajik.mjs +1 -1
  49. package/fesm/i18n/telugu.mjs +1 -1
  50. package/fesm/i18n/thai.mjs +1 -1
  51. package/fesm/i18n/traditional-chinese.mjs +1 -1
  52. package/fesm/i18n/turkish.mjs +1 -1
  53. package/fesm/i18n/ukrainian.mjs +1 -1
  54. package/fesm/i18n/urdu.mjs +1 -1
  55. package/fesm/i18n/vietnamese.mjs +1 -1
  56. package/fesm/i18n/welsh.mjs +1 -1
  57. package/fesm/icons/iconsV1.mjs +1 -1
  58. package/fesm/icons/iconsV2.mjs +1 -1
  59. package/fesm/survey-core.mjs +146 -61
  60. package/fesm/survey-core.mjs.map +1 -1
  61. package/fesm/survey.i18n.mjs +1 -1
  62. package/fesm/themes/index.mjs +1 -1
  63. package/i18n/arabic.js +1 -1
  64. package/i18n/arabic.min.js.LICENSE.txt +1 -1
  65. package/i18n/basque.js +1 -1
  66. package/i18n/basque.min.js.LICENSE.txt +1 -1
  67. package/i18n/bulgarian.js +1 -1
  68. package/i18n/bulgarian.min.js.LICENSE.txt +1 -1
  69. package/i18n/burmese.js +1 -1
  70. package/i18n/burmese.min.js.LICENSE.txt +1 -1
  71. package/i18n/catalan.js +1 -1
  72. package/i18n/catalan.min.js.LICENSE.txt +1 -1
  73. package/i18n/croatian.js +1 -1
  74. package/i18n/croatian.min.js.LICENSE.txt +1 -1
  75. package/i18n/czech.js +1 -1
  76. package/i18n/czech.min.js.LICENSE.txt +1 -1
  77. package/i18n/danish.js +1 -1
  78. package/i18n/danish.min.js.LICENSE.txt +1 -1
  79. package/i18n/dutch.js +1 -1
  80. package/i18n/dutch.min.js.LICENSE.txt +1 -1
  81. package/i18n/english.js +1 -1
  82. package/i18n/english.min.js.LICENSE.txt +1 -1
  83. package/i18n/estonian.js +1 -1
  84. package/i18n/estonian.min.js.LICENSE.txt +1 -1
  85. package/i18n/finnish.js +1 -1
  86. package/i18n/finnish.min.js.LICENSE.txt +1 -1
  87. package/i18n/french.js +1 -1
  88. package/i18n/french.min.js.LICENSE.txt +1 -1
  89. package/i18n/georgian.js +1 -1
  90. package/i18n/georgian.min.js.LICENSE.txt +1 -1
  91. package/i18n/german.js +1 -1
  92. package/i18n/german.min.js.LICENSE.txt +1 -1
  93. package/i18n/greek.js +1 -1
  94. package/i18n/greek.min.js.LICENSE.txt +1 -1
  95. package/i18n/haitian-creole.js +1 -1
  96. package/i18n/haitian-creole.min.js.LICENSE.txt +1 -1
  97. package/i18n/hebrew.js +1 -1
  98. package/i18n/hebrew.min.js.LICENSE.txt +1 -1
  99. package/i18n/hindi.js +1 -1
  100. package/i18n/hindi.min.js.LICENSE.txt +1 -1
  101. package/i18n/hungarian.js +1 -1
  102. package/i18n/hungarian.min.js.LICENSE.txt +1 -1
  103. package/i18n/icelandic.js +1 -1
  104. package/i18n/icelandic.min.js.LICENSE.txt +1 -1
  105. package/i18n/index.js +1 -1
  106. package/i18n/index.min.js.LICENSE.txt +1 -1
  107. package/i18n/indonesian.js +1 -1
  108. package/i18n/indonesian.min.js.LICENSE.txt +1 -1
  109. package/i18n/italian.js +1 -1
  110. package/i18n/italian.min.js.LICENSE.txt +1 -1
  111. package/i18n/japanese.js +1 -1
  112. package/i18n/japanese.min.js.LICENSE.txt +1 -1
  113. package/i18n/kazakh.js +1 -1
  114. package/i18n/kazakh.min.js.LICENSE.txt +1 -1
  115. package/i18n/korean.js +1 -1
  116. package/i18n/korean.min.js.LICENSE.txt +1 -1
  117. package/i18n/latvian.js +1 -1
  118. package/i18n/latvian.min.js.LICENSE.txt +1 -1
  119. package/i18n/lithuanian.js +1 -1
  120. package/i18n/lithuanian.min.js.LICENSE.txt +1 -1
  121. package/i18n/macedonian.js +1 -1
  122. package/i18n/macedonian.min.js.LICENSE.txt +1 -1
  123. package/i18n/malay.js +1 -1
  124. package/i18n/malay.min.js.LICENSE.txt +1 -1
  125. package/i18n/nl-BE.js +1 -1
  126. package/i18n/nl-BE.min.js.LICENSE.txt +1 -1
  127. package/i18n/norwegian.js +1 -1
  128. package/i18n/norwegian.min.js.LICENSE.txt +1 -1
  129. package/i18n/persian.js +1 -1
  130. package/i18n/persian.min.js.LICENSE.txt +1 -1
  131. package/i18n/philippines.js +1 -1
  132. package/i18n/philippines.min.js.LICENSE.txt +1 -1
  133. package/i18n/polish.js +1 -1
  134. package/i18n/polish.min.js.LICENSE.txt +1 -1
  135. package/i18n/portuguese-br.js +1 -1
  136. package/i18n/portuguese-br.min.js.LICENSE.txt +1 -1
  137. package/i18n/portuguese.js +1 -1
  138. package/i18n/portuguese.min.js.LICENSE.txt +1 -1
  139. package/i18n/romanian.js +1 -1
  140. package/i18n/romanian.min.js.LICENSE.txt +1 -1
  141. package/i18n/russian.js +1 -1
  142. package/i18n/russian.min.js.LICENSE.txt +1 -1
  143. package/i18n/serbian.js +1 -1
  144. package/i18n/serbian.min.js.LICENSE.txt +1 -1
  145. package/i18n/simplified-chinese.js +1 -1
  146. package/i18n/simplified-chinese.min.js.LICENSE.txt +1 -1
  147. package/i18n/slovak.js +1 -1
  148. package/i18n/slovak.min.js.LICENSE.txt +1 -1
  149. package/i18n/slovenian.js +1 -1
  150. package/i18n/slovenian.min.js.LICENSE.txt +1 -1
  151. package/i18n/spanish.js +1 -1
  152. package/i18n/spanish.min.js.LICENSE.txt +1 -1
  153. package/i18n/swahili.js +1 -1
  154. package/i18n/swahili.min.js.LICENSE.txt +1 -1
  155. package/i18n/swedish.js +1 -1
  156. package/i18n/swedish.min.js.LICENSE.txt +1 -1
  157. package/i18n/tajik.js +1 -1
  158. package/i18n/tajik.min.js.LICENSE.txt +1 -1
  159. package/i18n/telugu.js +1 -1
  160. package/i18n/telugu.min.js.LICENSE.txt +1 -1
  161. package/i18n/thai.js +1 -1
  162. package/i18n/thai.min.js.LICENSE.txt +1 -1
  163. package/i18n/traditional-chinese.js +1 -1
  164. package/i18n/traditional-chinese.min.js.LICENSE.txt +1 -1
  165. package/i18n/turkish.js +1 -1
  166. package/i18n/turkish.min.js.LICENSE.txt +1 -1
  167. package/i18n/ukrainian.js +1 -1
  168. package/i18n/ukrainian.min.js.LICENSE.txt +1 -1
  169. package/i18n/urdu.js +1 -1
  170. package/i18n/urdu.min.js.LICENSE.txt +1 -1
  171. package/i18n/vietnamese.js +1 -1
  172. package/i18n/vietnamese.min.js.LICENSE.txt +1 -1
  173. package/i18n/welsh.js +1 -1
  174. package/i18n/welsh.min.js.LICENSE.txt +1 -1
  175. package/icons/iconsV1.js +1 -1
  176. package/icons/iconsV1.min.js.LICENSE.txt +1 -1
  177. package/icons/iconsV2.js +1 -1
  178. package/icons/iconsV2.min.js.LICENSE.txt +1 -1
  179. package/package.json +1 -1
  180. package/survey-core.css +1 -1
  181. package/survey-core.fontless.css +1 -1
  182. package/survey-core.fontless.min.css +1 -1
  183. package/survey-core.min.css +1 -1
  184. package/survey.core.js +147 -60
  185. package/survey.core.js.map +1 -1
  186. package/survey.core.min.js +1 -1
  187. package/survey.core.min.js.LICENSE.txt +1 -1
  188. package/survey.i18n.js +1 -1
  189. package/survey.i18n.min.js.LICENSE.txt +1 -1
  190. package/themes/borderless-dark-panelless.js +1 -1
  191. package/themes/borderless-dark-panelless.min.js.LICENSE.txt +1 -1
  192. package/themes/borderless-dark.js +1 -1
  193. package/themes/borderless-dark.min.js.LICENSE.txt +1 -1
  194. package/themes/borderless-light-panelless.js +1 -1
  195. package/themes/borderless-light-panelless.min.js.LICENSE.txt +1 -1
  196. package/themes/borderless-light.js +1 -1
  197. package/themes/borderless-light.min.js.LICENSE.txt +1 -1
  198. package/themes/contrast-dark-panelless.js +1 -1
  199. package/themes/contrast-dark-panelless.min.js.LICENSE.txt +1 -1
  200. package/themes/contrast-dark.js +1 -1
  201. package/themes/contrast-dark.min.js.LICENSE.txt +1 -1
  202. package/themes/contrast-light-panelless.js +1 -1
  203. package/themes/contrast-light-panelless.min.js.LICENSE.txt +1 -1
  204. package/themes/contrast-light.js +1 -1
  205. package/themes/contrast-light.min.js.LICENSE.txt +1 -1
  206. package/themes/default-dark-panelless.js +1 -1
  207. package/themes/default-dark-panelless.min.js.LICENSE.txt +1 -1
  208. package/themes/default-dark.js +1 -1
  209. package/themes/default-dark.min.js.LICENSE.txt +1 -1
  210. package/themes/default-light-panelless.js +1 -1
  211. package/themes/default-light-panelless.min.js.LICENSE.txt +1 -1
  212. package/themes/default-light.js +1 -1
  213. package/themes/default-light.min.js.LICENSE.txt +1 -1
  214. package/themes/doubleborder-dark-panelless.js +1 -1
  215. package/themes/doubleborder-dark-panelless.min.js.LICENSE.txt +1 -1
  216. package/themes/doubleborder-dark.js +1 -1
  217. package/themes/doubleborder-dark.min.js.LICENSE.txt +1 -1
  218. package/themes/doubleborder-light-panelles.js +1 -1
  219. package/themes/doubleborder-light-panelles.min.js.LICENSE.txt +1 -1
  220. package/themes/doubleborder-light.js +1 -1
  221. package/themes/doubleborder-light.min.js.LICENSE.txt +1 -1
  222. package/themes/flat-dark-panelless.js +1 -1
  223. package/themes/flat-dark-panelless.min.js.LICENSE.txt +1 -1
  224. package/themes/flat-dark.js +1 -1
  225. package/themes/flat-dark.min.js.LICENSE.txt +1 -1
  226. package/themes/flat-light-panelless.js +1 -1
  227. package/themes/flat-light-panelless.min.js.LICENSE.txt +1 -1
  228. package/themes/flat-light.js +1 -1
  229. package/themes/flat-light.min.js.LICENSE.txt +1 -1
  230. package/themes/index.js +1 -1
  231. package/themes/index.min.js.LICENSE.txt +1 -1
  232. package/themes/layered-dark-panelless.js +1 -1
  233. package/themes/layered-dark-panelless.min.js.LICENSE.txt +1 -1
  234. package/themes/layered-dark.js +1 -1
  235. package/themes/layered-dark.min.js.LICENSE.txt +1 -1
  236. package/themes/layered-light-panelless.js +1 -1
  237. package/themes/layered-light-panelless.min.js.LICENSE.txt +1 -1
  238. package/themes/layered-light.js +1 -1
  239. package/themes/layered-light.min.js.LICENSE.txt +1 -1
  240. package/themes/plain-dark-panelless.js +1 -1
  241. package/themes/plain-dark-panelless.min.js.LICENSE.txt +1 -1
  242. package/themes/plain-dark.js +1 -1
  243. package/themes/plain-dark.min.js.LICENSE.txt +1 -1
  244. package/themes/plain-light-panelless.js +1 -1
  245. package/themes/plain-light-panelless.min.js.LICENSE.txt +1 -1
  246. package/themes/plain-light.js +1 -1
  247. package/themes/plain-light.min.js.LICENSE.txt +1 -1
  248. package/themes/sharp-dark-panelless.js +1 -1
  249. package/themes/sharp-dark-panelless.min.js.LICENSE.txt +1 -1
  250. package/themes/sharp-dark.js +1 -1
  251. package/themes/sharp-dark.min.js.LICENSE.txt +1 -1
  252. package/themes/sharp-light-panelless.js +1 -1
  253. package/themes/sharp-light-panelless.min.js.LICENSE.txt +1 -1
  254. package/themes/sharp-light.js +1 -1
  255. package/themes/sharp-light.min.js.LICENSE.txt +1 -1
  256. package/themes/solid-dark-panelless.js +1 -1
  257. package/themes/solid-dark-panelless.min.js.LICENSE.txt +1 -1
  258. package/themes/solid-dark.js +1 -1
  259. package/themes/solid-dark.min.js.LICENSE.txt +1 -1
  260. package/themes/solid-light-panelless.js +1 -1
  261. package/themes/solid-light-panelless.min.js.LICENSE.txt +1 -1
  262. package/themes/solid-light.js +1 -1
  263. package/themes/solid-light.min.js.LICENSE.txt +1 -1
  264. package/themes/three-dimensional-dark-panelless.js +1 -1
  265. package/themes/three-dimensional-dark-panelless.min.js.LICENSE.txt +1 -1
  266. package/themes/three-dimensional-dark.js +1 -1
  267. package/themes/three-dimensional-dark.min.js.LICENSE.txt +1 -1
  268. package/themes/three-dimensional-light-panelless.js +1 -1
  269. package/themes/three-dimensional-light-panelless.min.js.LICENSE.txt +1 -1
  270. package/themes/three-dimensional-light.js +1 -1
  271. package/themes/three-dimensional-light.min.js.LICENSE.txt +1 -1
  272. package/typings/src/base-interfaces.d.ts +2 -2
  273. package/typings/src/conditionProcessValue.d.ts +5 -0
  274. package/typings/src/conditions.d.ts +1 -1
  275. package/typings/src/question.d.ts +1 -0
  276. package/typings/src/question_matrixdropdownbase.d.ts +3 -0
  277. package/typings/src/question_matrixdropdowncolumn.d.ts +1 -0
  278. package/typings/src/question_matrixdynamic.d.ts +1 -0
  279. package/typings/src/question_paneldynamic.d.ts +2 -0
  280. package/typings/src/question_slider.d.ts +2 -1
  281. package/typings/src/survey.d.ts +2 -2
package/survey.core.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v2.3.4
2
+ * surveyjs - Survey JavaScript library v2.3.5
3
3
  * Copyright (c) 2015-2025 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -619,11 +619,11 @@ var Version;
619
619
  var ReleaseDate;
620
620
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
621
621
  //@ts-ignore
622
- Version = "".concat("2.3.4");
622
+ Version = "".concat("2.3.5");
623
623
  _src_settings__WEBPACK_IMPORTED_MODULE_1__.settings.version = Version;
624
624
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
625
625
  //@ts-ignore
626
- ReleaseDate = "".concat("2025-08-26");
626
+ ReleaseDate = "".concat("2025-09-02");
627
627
  function checkLibraryVersion(ver, libraryName) {
628
628
  if (Version != ver) {
629
629
  var str = "survey-core has version '" + Version + "' and " + libraryName
@@ -5187,7 +5187,8 @@ __webpack_require__.r(__webpack_exports__);
5187
5187
  /* harmony export */ ProcessValue: () => (/* binding */ ProcessValue),
5188
5188
  /* harmony export */ ValueGetter: () => (/* binding */ ValueGetter),
5189
5189
  /* harmony export */ ValueGetterContextCore: () => (/* binding */ ValueGetterContextCore),
5190
- /* harmony export */ VariableGetterContext: () => (/* binding */ VariableGetterContext)
5190
+ /* harmony export */ VariableGetterContext: () => (/* binding */ VariableGetterContext),
5191
+ /* harmony export */ VariableGetterContextEx: () => (/* binding */ VariableGetterContextEx)
5191
5192
  /* harmony export */ });
5192
5193
  /* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers */ "./src/helpers.ts");
5193
5194
  var __extends = (undefined && undefined.__extends) || (function () {
@@ -5447,6 +5448,20 @@ var VariableGetterContext = /** @class */ (function (_super) {
5447
5448
  return VariableGetterContext;
5448
5449
  }(ValueGetterContextCore));
5449
5450
 
5451
+ var VariableGetterContextEx = /** @class */ (function (_super) {
5452
+ __extends(VariableGetterContextEx, _super);
5453
+ function VariableGetterContextEx(variables, second) {
5454
+ var _this = _super.call(this, variables) || this;
5455
+ _this.second = second;
5456
+ return _this;
5457
+ }
5458
+ VariableGetterContextEx.prototype.getValue = function (path, isRoot, index, createObjects) {
5459
+ var res = _super.prototype.getValue.call(this, path, isRoot, index, createObjects);
5460
+ return !this.second || (res === null || res === void 0 ? void 0 : res.isFound) ? res : this.second.getValue(path, isRoot, index, createObjects);
5461
+ };
5462
+ return VariableGetterContextEx;
5463
+ }(VariableGetterContext));
5464
+
5450
5465
  var ProcessValue = /** @class */ (function () {
5451
5466
  function ProcessValue(context) {
5452
5467
  this.properties = null;
@@ -5668,8 +5683,7 @@ var ExpressionExecutor = /** @class */ (function () {
5668
5683
  return !!this.operand;
5669
5684
  };
5670
5685
  ExpressionExecutor.prototype.run = function (values, properties, id) {
5671
- if (properties === void 0) { properties = null; }
5672
- return this.runContext(new _conditionProcessValue__WEBPACK_IMPORTED_MODULE_0__.VariableGetterContext(values), properties, id);
5686
+ return this.runContext(new _conditionProcessValue__WEBPACK_IMPORTED_MODULE_0__.VariableGetterContextEx(values, properties === null || properties === void 0 ? void 0 : properties.context), properties, id);
5673
5687
  };
5674
5688
  ExpressionExecutor.prototype.runContext = function (context, properties, id) {
5675
5689
  if (properties === void 0) { properties = null; }
@@ -5750,8 +5764,7 @@ var ConditionRunner = /** @class */ (function (_super) {
5750
5764
  return _super !== null && _super.apply(this, arguments) || this;
5751
5765
  }
5752
5766
  ConditionRunner.prototype.runValues = function (values, properties) {
5753
- if (properties === void 0) { properties = null; }
5754
- return this.runContext(new _conditionProcessValue__WEBPACK_IMPORTED_MODULE_0__.VariableGetterContext(values), properties);
5767
+ return this.runContext(new _conditionProcessValue__WEBPACK_IMPORTED_MODULE_0__.VariableGetterContextEx(values, properties === null || properties === void 0 ? void 0 : properties.context), properties);
5755
5768
  };
5756
5769
  ConditionRunner.prototype.runContext = function (context, properties) {
5757
5770
  return this.runContextCore(context, properties) == true;
@@ -5770,8 +5783,7 @@ var ExpressionRunner = /** @class */ (function (_super) {
5770
5783
  return _super !== null && _super.apply(this, arguments) || this;
5771
5784
  }
5772
5785
  ExpressionRunner.prototype.runValues = function (values, properties) {
5773
- if (properties === void 0) { properties = null; }
5774
- return this.runContext(new _conditionProcessValue__WEBPACK_IMPORTED_MODULE_0__.VariableGetterContext(values), properties);
5786
+ return this.runContext(new _conditionProcessValue__WEBPACK_IMPORTED_MODULE_0__.VariableGetterContextEx(values, properties === null || properties === void 0 ? void 0 : properties.context), properties);
5775
5787
  };
5776
5788
  ExpressionRunner.prototype.runContext = function (context, properties) {
5777
5789
  return this.runContextCore(context, properties);
@@ -14307,15 +14319,15 @@ function convertToNumber(val) {
14307
14319
  return _helpers__WEBPACK_IMPORTED_MODULE_0__.Helpers.isNumber(val) ? _helpers__WEBPACK_IMPORTED_MODULE_0__.Helpers.getNumber(val) : undefined;
14308
14320
  return val;
14309
14321
  }
14310
- function processItemInArray(item, name, res, func, needToConvert, condition) {
14322
+ function processItemInArray(item, name, res, func, needToConvert, condition, properties) {
14311
14323
  if (!item || _helpers__WEBPACK_IMPORTED_MODULE_0__.Helpers.isValueEmpty(item[name]))
14312
14324
  return res;
14313
- if (condition && !condition.runValues(item))
14325
+ if (condition && !condition.runValues(item, properties))
14314
14326
  return res;
14315
14327
  var val = needToConvert ? convertToNumber(item[name]) : 1;
14316
14328
  return func(res, val);
14317
14329
  }
14318
- function calcInArray(params, originalParams, func, needToConvert) {
14330
+ function calcInArray(properties, params, originalParams, func, needToConvert) {
14319
14331
  if (needToConvert === void 0) { needToConvert = true; }
14320
14332
  var v = getInArrayParams(params, originalParams);
14321
14333
  if (!v)
@@ -14327,18 +14339,26 @@ function calcInArray(params, originalParams, func, needToConvert) {
14327
14339
  var res = undefined;
14328
14340
  if (Array.isArray(v.data)) {
14329
14341
  for (var i = 0; i < v.data.length; i++) {
14330
- res = processItemInArray(v.data[i], v.name, res, func, needToConvert, condition);
14342
+ res = processItemInArray(v.data[i], v.name, res, func, needToConvert, condition, properties);
14331
14343
  }
14332
14344
  }
14333
14345
  else {
14334
14346
  for (var key in v.data) {
14335
- res = processItemInArray(v.data[key], v.name, res, func, needToConvert, condition);
14347
+ res = processItemInArray(v.data[key], v.name, res, func, needToConvert, condition, properties);
14336
14348
  }
14337
14349
  }
14338
14350
  return res;
14339
14351
  }
14352
+ function getProperties(self) {
14353
+ var _a;
14354
+ return {
14355
+ survey: self.survey,
14356
+ question: self.question,
14357
+ context: (_a = self.survey) === null || _a === void 0 ? void 0 : _a.getValueGetterContext()
14358
+ };
14359
+ }
14340
14360
  function sumInArray(params, originalParams) {
14341
- var res = calcInArray(params, originalParams, function (res, val) {
14361
+ var res = calcInArray(getProperties(this), params, originalParams, function (res, val) {
14342
14362
  if (res == undefined)
14343
14363
  res = 0;
14344
14364
  if (val == undefined || val == null)
@@ -14349,7 +14369,7 @@ function sumInArray(params, originalParams) {
14349
14369
  }
14350
14370
  FunctionFactory.Instance.register("sumInArray", sumInArray);
14351
14371
  function minInArray(params, originalParams) {
14352
- return calcInArray(params, originalParams, function (res, val) {
14372
+ return calcInArray(getProperties(this), params, originalParams, function (res, val) {
14353
14373
  if (res == undefined)
14354
14374
  return val;
14355
14375
  if (val == undefined || val == null)
@@ -14359,7 +14379,7 @@ function minInArray(params, originalParams) {
14359
14379
  }
14360
14380
  FunctionFactory.Instance.register("minInArray", minInArray);
14361
14381
  function maxInArray(params, originalParams) {
14362
- return calcInArray(params, originalParams, function (res, val) {
14382
+ return calcInArray(getProperties(this), params, originalParams, function (res, val) {
14363
14383
  if (res == undefined)
14364
14384
  return val;
14365
14385
  if (val == undefined || val == null)
@@ -14369,7 +14389,7 @@ function maxInArray(params, originalParams) {
14369
14389
  }
14370
14390
  FunctionFactory.Instance.register("maxInArray", maxInArray);
14371
14391
  function countInArray(params, originalParams) {
14372
- var res = calcInArray(params, originalParams, function (res, val) {
14392
+ var res = calcInArray(getProperties(this), params, originalParams, function (res, val) {
14373
14393
  if (res == undefined)
14374
14394
  res = 0;
14375
14395
  if (val == undefined || val == null)
@@ -14380,10 +14400,12 @@ function countInArray(params, originalParams) {
14380
14400
  }
14381
14401
  FunctionFactory.Instance.register("countInArray", countInArray);
14382
14402
  function avgInArray(params, originalParams) {
14383
- var count = countInArray(params, originalParams);
14403
+ var properties = getProperties(this);
14404
+ var funcCall = function (name) { return FunctionFactory.Instance.run(name, params, properties, originalParams); };
14405
+ var count = funcCall("countInArray");
14384
14406
  if (count == 0)
14385
14407
  return 0;
14386
- return sumInArray(params, originalParams) / count;
14408
+ return funcCall("sumInArray") / count;
14387
14409
  }
14388
14410
  FunctionFactory.Instance.register("avgInArray", avgInArray);
14389
14411
  function iif(params) {
@@ -27963,11 +27985,13 @@ var QuestionItemValueGetterContext = /** @class */ (function (_super) {
27963
27985
  return res;
27964
27986
  };
27965
27987
  QuestionItemValueGetterContext.prototype.fillQuestions = function (qs, q, res) {
27966
- qs.forEach(function (question) {
27967
- if (question !== q) {
27968
- res.push(question);
27969
- }
27970
- });
27988
+ if (Array.isArray(qs)) {
27989
+ qs.forEach(function (question) {
27990
+ if (question !== q) {
27991
+ res.push(question);
27992
+ }
27993
+ });
27994
+ }
27971
27995
  };
27972
27996
  QuestionItemValueGetterContext.prototype.getRootObj = function () { return this.getQuestionData(); };
27973
27997
  return QuestionItemValueGetterContext;
@@ -31347,10 +31371,14 @@ var Question = /** @class */ (function (_super) {
31347
31371
  }
31348
31372
  };
31349
31373
  Question.prototype.setNewValue = function (newValue) {
31374
+ if (this.survey) {
31375
+ newValue = this.survey.questionValueChanging(this, newValue);
31376
+ }
31350
31377
  if (this.isNewValueEqualsToValue(newValue))
31351
31378
  return;
31352
31379
  if (!this.checkIsValueCorrect(newValue))
31353
31380
  return;
31381
+ var oldValue = this.getUnbindValue(this.value);
31354
31382
  this.isOldAnswered = this.isAnswered;
31355
31383
  this.isSettingQuestionValue = true;
31356
31384
  this.setNewValueInData(newValue);
@@ -31363,7 +31391,11 @@ var Question = /** @class */ (function (_super) {
31363
31391
  if (this.parent) {
31364
31392
  this.parent.onQuestionValueChanged(this);
31365
31393
  }
31394
+ if (this.survey) {
31395
+ this.survey.questionValueChanged(this, oldValue);
31396
+ }
31366
31397
  };
31398
+ Question.prototype.getValueChangingOptions = function (childQuestion) { return undefined; };
31367
31399
  Question.prototype.checkIsValueCorrect = function (val) {
31368
31400
  var res = this.isValueEmpty(val, !this.allowSpaceAsAnswer) || this.isNewValueCorrect(val);
31369
31401
  if (!res) {
@@ -38509,6 +38541,9 @@ var QuestionCompositeModel = /** @class */ (function (_super) {
38509
38541
  _super.prototype.setValue.call(this, name, newValue, locNotification, allowNotifyValueChanged);
38510
38542
  this.settingNewValue = false;
38511
38543
  this.runPanelTriggers(_settings__WEBPACK_IMPORTED_MODULE_8__.settings.expressionVariables.composite + "." + name, newValue);
38544
+ if (this.isEditingSurveyElement) {
38545
+ this.runCondition(this.getFilteredProperties());
38546
+ }
38512
38547
  };
38513
38548
  QuestionCompositeModel.prototype.setComment = function (name, newValue, locNotification) {
38514
38549
  var val = this.getUnbindValue(this.value);
@@ -45558,9 +45593,19 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
45558
45593
  this.clearVisibleRows();
45559
45594
  this.resetRenderedTable();
45560
45595
  _super.prototype.onRowsChanged.call(this);
45596
+ this.updateRowsVisibleIndexes();
45597
+ };
45598
+ QuestionMatrixDropdownModelBase.prototype.updateRowsVisibleIndexes = function () {
45561
45599
  var rows = this.visibleRows;
45600
+ if (!Array.isArray(rows))
45601
+ return;
45602
+ var vriName = _settings__WEBPACK_IMPORTED_MODULE_10__.settings.expressionVariables.visibleRowIndex;
45603
+ var keys = {};
45604
+ keys[vriName] = 0;
45562
45605
  for (var i = 0; i < rows.length; i++) {
45563
45606
  rows[i].visibleIndex = i;
45607
+ keys[vriName] = i + 1;
45608
+ rows[i].runTriggers(vriName, i + 1, keys);
45564
45609
  }
45565
45610
  };
45566
45611
  QuestionMatrixDropdownModelBase.prototype.onStartRowAddingRemoving = function () {
@@ -45696,6 +45741,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
45696
45741
  * - [`"boolean"`](https://surveyjs.io/form-library/documentation/api-reference/boolean-question-model)
45697
45742
  * - [`"expression"`](https://surveyjs.io/form-library/documentation/api-reference/expression-model)
45698
45743
  * - [`"rating"`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model)
45744
+ * - [`"slider"`](https://surveyjs.io/form-library/documentation/api-reference/questionslidermodel)
45699
45745
  *
45700
45746
  * Default value: `"dropdown"` (inherited from [`settings.matrix.defaultCellType`](https://surveyjs.io/form-library/documentation/settings#matrixDefaultCellType))
45701
45747
  *
@@ -46271,6 +46317,7 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
46271
46317
  return this.visibleRowsArray;
46272
46318
  this.generateVisibleRowsIfNeeded();
46273
46319
  this.visibleRowsArray = this.getVisibleFromGenerated(this.generatedVisibleRows);
46320
+ this.updateRowsVisibleIndexes();
46274
46321
  return this.visibleRowsArray;
46275
46322
  };
46276
46323
  Object.defineProperty(QuestionMatrixDropdownModelBase.prototype, "allRows", {
@@ -47062,8 +47109,10 @@ var QuestionMatrixDropdownModelBase = /** @class */ (function (_super) {
47062
47109
  if (this.isObject(rowValue) && Object.keys(rowValue).length === 0) {
47063
47110
  newValue = this.deleteRowValue(newValue, row);
47064
47111
  }
47112
+ newValue = this.correctValueForMinMaxRows(newValue);
47065
47113
  return { value: newValue, rowValue: rowValue };
47066
47114
  };
47115
+ QuestionMatrixDropdownModelBase.prototype.correctValueForMinMaxRows = function (newValue) { return newValue; };
47067
47116
  QuestionMatrixDropdownModelBase.prototype.getRowIndex = function (row) {
47068
47117
  if (!Array.isArray(this.generatedVisibleRows))
47069
47118
  return -1;
@@ -47450,6 +47499,7 @@ var matrixDropdownColumnTypes = {
47450
47499
  },
47451
47500
  expression: {},
47452
47501
  rating: {},
47502
+ slider: {}
47453
47503
  };
47454
47504
  /**
47455
47505
  * An auxiliary class that describes a column in a [Multi-Select Matrix](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list) or [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model).
@@ -47559,6 +47609,7 @@ var MatrixDropdownColumn = /** @class */ (function (_super) {
47559
47609
  * - [`"boolean"`](https://surveyjs.io/form-library/documentation/api-reference/boolean-question-model)
47560
47610
  * - [`"expression"`](https://surveyjs.io/form-library/documentation/api-reference/expression-model)
47561
47611
  * - [`"rating"`](https://surveyjs.io/form-library/documentation/api-reference/rating-scale-question-model)
47612
+ * - [`"slider"`](https://surveyjs.io/form-library/documentation/api-reference/questionslidermodel)
47562
47613
  * - `"default"` (default) - Inherits the input type from the [`cellType`](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list#cellType) property specified for the parent matrix.
47563
47614
  *
47564
47615
  * The input types are based upon standalone question types. Depending on the selected input type, the matrix column can have additional configuration properties inherited from the corresponding question type. For instance, Dropdown, Checkboxes, Radio Button Group, and Tag Box columns can specify the [`choices`](https://surveyjs.io/form-library/documentation/api-reference/radio-button-question-model#choices) array, similar to the question types upon which they are based. Refer to the API Reference of these question types for a full list of available properties.
@@ -50221,6 +50272,9 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
50221
50272
  QuestionMatrixDynamicModel.prototype.valueFromData = function (val) {
50222
50273
  if (this.minRowCount < 1 || this.isEmpty())
50223
50274
  return _super.prototype.valueFromData.call(this, val);
50275
+ return this.correctValueForMinMaxRows(val);
50276
+ };
50277
+ QuestionMatrixDynamicModel.prototype.correctValueForMinMaxRows = function (val) {
50224
50278
  if (!Array.isArray(val))
50225
50279
  val = [];
50226
50280
  for (var i = val.length; i < this.minRowCount; i++)
@@ -50813,9 +50867,12 @@ var QuestionMatrixDynamicModel = /** @class */ (function (_super) {
50813
50867
  this.onEndRowRemoving(row);
50814
50868
  };
50815
50869
  QuestionMatrixDynamicModel.prototype.removeRowCore = function (index) {
50816
- var row = this.generatedVisibleRows
50817
- ? this.generatedVisibleRows[index]
50870
+ var row = this.visibleRows
50871
+ ? this.visibleRows[index]
50818
50872
  : null;
50873
+ index = this.generatedVisibleRows.indexOf(row);
50874
+ if (index < 0)
50875
+ return;
50819
50876
  if (this.generatedVisibleRows && index < this.generatedVisibleRows.length) {
50820
50877
  this.generatedVisibleRows.splice(index, 1);
50821
50878
  }
@@ -55567,6 +55624,22 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
55567
55624
  QuestionPanelDynamicModel.prototype.isNewValueCorrect = function (val) {
55568
55625
  return Array.isArray(val);
55569
55626
  };
55627
+ QuestionPanelDynamicModel.prototype.getValueChangingOptions = function (childQuestion) {
55628
+ var pnl = childQuestion.parent;
55629
+ while (pnl.parent) {
55630
+ pnl = pnl.parent;
55631
+ }
55632
+ var panel = pnl;
55633
+ var panelIndex = this.panels.indexOf(panel);
55634
+ return {
55635
+ question: this,
55636
+ panel: panel,
55637
+ name: childQuestion.name,
55638
+ panelIndex: panelIndex,
55639
+ panelData: this.getPanelItemDataByIndex(panelIndex),
55640
+ oldValue: childQuestion.value
55641
+ };
55642
+ };
55570
55643
  //IQuestionPanelDynamicData
55571
55644
  QuestionPanelDynamicModel.prototype.getItemIndex = function (item) {
55572
55645
  var res = this.items.indexOf(item);
@@ -55581,8 +55654,10 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
55581
55654
  return visPanels.length;
55582
55655
  };
55583
55656
  QuestionPanelDynamicModel.prototype.getPanelItemData = function (item) {
55657
+ return this.getPanelItemDataByIndex(this.items.indexOf(item));
55658
+ };
55659
+ QuestionPanelDynamicModel.prototype.getPanelItemDataByIndex = function (index) {
55584
55660
  var items = this.items;
55585
- var index = items.indexOf(item);
55586
55661
  var qValue = this.value;
55587
55662
  if (index < 0 && Array.isArray(qValue) && qValue.length > items.length) {
55588
55663
  index = items.length;
@@ -55625,22 +55700,8 @@ var QuestionPanelDynamicModel = /** @class */ (function (_super) {
55625
55700
  if (index >= 0 && index < this.panelsCore.length) {
55626
55701
  this.changingValueQuestion = this.panelsCore[index].getQuestionByValueName(name);
55627
55702
  }
55628
- var options = {
55629
- panel: item.panel,
55630
- name: name,
55631
- panelIndex: index,
55632
- panelData: qValue[index],
55633
- value: val,
55634
- oldValue: oldVal
55635
- };
55636
- if (this.survey) {
55637
- this.survey.dynamicPanelItemValueChanging(this, options);
55638
- }
55639
55703
  this.value = qValue;
55640
55704
  this.changingValueQuestion = null;
55641
- if (this.survey) {
55642
- this.survey.dynamicPanelItemValueChanged(this, options);
55643
- }
55644
55705
  this.isSetPanelItemData[name]--;
55645
55706
  if (this.isSetPanelItemData[name] - 1) {
55646
55707
  delete this.isSetPanelItemData[name];
@@ -59328,6 +59389,8 @@ var QuestionSliderModel = /** @class */ (function (_super) {
59328
59389
  _this.handleRangeOnChange = function (event) {
59329
59390
  if (!_this.isRangeMoving)
59330
59391
  return;
59392
+ if (!_this.isAllowToChange())
59393
+ return;
59331
59394
  var _a = _this, max = _a.renderedMax, min = _a.renderedMin, renderedValue = _a.renderedValue, ensureMaxRangeBorders = _a.ensureMaxRangeBorders, ensureMinRangeBorders = _a.ensureMinRangeBorders;
59332
59395
  var inputNode = event.target;
59333
59396
  var diff = _this.oldInputValue - +inputNode.value;
@@ -59413,7 +59476,7 @@ var QuestionSliderModel = /** @class */ (function (_super) {
59413
59476
  input.style.setProperty("--sjs-range-slider-range-input-thumb-position", "absolute");
59414
59477
  };
59415
59478
  _this.setSliderValue = function (newValue) {
59416
- if (!_this.isReadOnly && !_this.isDisabledAttr && !_this.isPreviewStyle && !_this.isDisabledStyle) {
59479
+ if (_this.isAllowToChange()) {
59417
59480
  var result = void 0;
59418
59481
  if (_this.sliderType === "single") {
59419
59482
  result = Array.isArray(newValue) ? newValue[0] : newValue;
@@ -59473,6 +59536,8 @@ var QuestionSliderModel = /** @class */ (function (_super) {
59473
59536
  refreshInputRange();
59474
59537
  };
59475
59538
  _this.handleOnChange = function (event, inputNumber) {
59539
+ if (!_this.isAllowToChange())
59540
+ return;
59476
59541
  if (_this.oldValue === null)
59477
59542
  return; // Firefox raise one more OnChange after PointerUp and break the value
59478
59543
  var _a = _this, allowSwap = _a.allowSwap, ensureMaxRangeBorders = _a.ensureMaxRangeBorders, ensureMinRangeBorders = _a.ensureMinRangeBorders, renderedValue = _a.renderedValue;
@@ -59958,6 +60023,9 @@ var QuestionSliderModel = /** @class */ (function (_super) {
59958
60023
  }
59959
60024
  return value;
59960
60025
  };
60026
+ QuestionSliderModel.prototype.isAllowToChange = function () {
60027
+ return !this.isReadOnly && !this.isDisabledAttr && !this.isPreviewStyle && !this.isDisabledStyle;
60028
+ };
59961
60029
  __decorate([
59962
60030
  (0,_jsonobject__WEBPACK_IMPORTED_MODULE_5__.property)({ defaultValue: "single" })
59963
60031
  ], QuestionSliderModel.prototype, "sliderType", void 0);
@@ -71524,14 +71592,6 @@ var SurveyModel = /** @class */ (function (_super) {
71524
71592
  this.onDynamicPanelRemoving.fire(this, options);
71525
71593
  return options.allow;
71526
71594
  };
71527
- SurveyModel.prototype.dynamicPanelItemValueChanged = function (question, options) {
71528
- options.question = question;
71529
- this.onDynamicPanelValueChanged.fire(this, options);
71530
- };
71531
- SurveyModel.prototype.dynamicPanelItemValueChanging = function (question, options) {
71532
- options.question = question;
71533
- this.onDynamicPanelValueChanging.fire(this, options);
71534
- };
71535
71595
  SurveyModel.prototype.dynamicPanelGetTabTitle = function (question, options) {
71536
71596
  options.question = question;
71537
71597
  this.onGetDynamicPanelTabTitle.fire(this, options);
@@ -72318,15 +72378,14 @@ var SurveyModel = /** @class */ (function (_super) {
72318
72378
  }
72319
72379
  };
72320
72380
  SurveyModel.prototype.runConditionOnValueChanged = function (name, value) {
72381
+ if (!this.questionTriggersKeys) {
72382
+ this.questionTriggersKeys = {};
72383
+ }
72384
+ this.questionTriggersKeys[name] = value;
72321
72385
  if (this.isRunningConditions) {
72322
- if (this.questionTriggersKeys) {
72323
- this.questionTriggersKeys[name] = value;
72324
- }
72325
72386
  this.isValueChangedOnRunningCondition = true;
72326
72387
  }
72327
72388
  else {
72328
- this.questionTriggersKeys = {};
72329
- this.questionTriggersKeys[name] = value;
72330
72389
  this.runConditions();
72331
72390
  this.runQuestionsTriggers(name, value);
72332
72391
  this.questionTriggersKeys = undefined;
@@ -72776,6 +72835,35 @@ var SurveyModel = /** @class */ (function (_super) {
72776
72835
  locNotification = this.getLocNotification(locNotification, newValue, oldValue);
72777
72836
  this.updateOnSetValue(name, newValue, oldValue, locNotification, allowNotifyValueChanged, questionName);
72778
72837
  };
72838
+ SurveyModel.prototype.questionValueChanging = function (question, newValue) {
72839
+ var q = question;
72840
+ var parentQ = q.parentQuestion;
72841
+ if (!parentQ)
72842
+ return newValue;
72843
+ if (parentQ.isDescendantOf("paneldynamic") && !this.onDynamicPanelValueChanging.isEmpty) {
72844
+ var options = parentQ.getValueChangingOptions(q);
72845
+ if (options) {
72846
+ options.value = newValue;
72847
+ this.onDynamicPanelValueChanging.fire(this, options);
72848
+ return options.value;
72849
+ }
72850
+ }
72851
+ return newValue;
72852
+ };
72853
+ SurveyModel.prototype.questionValueChanged = function (question, oldValue) {
72854
+ var q = question;
72855
+ var parentQ = q.parentQuestion;
72856
+ if (!!parentQ) {
72857
+ if (parentQ.isDescendantOf("paneldynamic") && !this.onDynamicPanelValueChanged.isEmpty) {
72858
+ var options = parentQ.getValueChangingOptions(q);
72859
+ if (options) {
72860
+ options.value = q.value;
72861
+ options.oldValue = oldValue;
72862
+ this.onDynamicPanelValueChanged.fire(this, options);
72863
+ }
72864
+ }
72865
+ }
72866
+ };
72779
72867
  SurveyModel.prototype.isValueEmpyOnSetValue = function (name, val) {
72780
72868
  if (!this.isValueEmpty(val, false))
72781
72869
  return false;
@@ -79458,12 +79546,11 @@ var ExpressionValidator = /** @class */ (function (_super) {
79458
79546
  var _this = this;
79459
79547
  if (name === void 0) { name = null; }
79460
79548
  if (properties === void 0) { properties = null; }
79461
- if (!this.expression)
79462
- return null;
79463
79549
  if (!!this.conditionRunner) {
79464
79550
  this.conditionRunner.onRunComplete = null;
79465
79551
  }
79466
- this.ensureConditionRunner(true);
79552
+ if (!this.ensureConditionRunner(true))
79553
+ return null;
79467
79554
  this.conditionRunner.onRunComplete = function (res) {
79468
79555
  _this.isRunningValue = false;
79469
79556
  if (!!_this.onAsyncCompleted) {