survey-core 1.12.20 → 1.12.21

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 (220) hide show
  1. package/defaultV2.css +1 -1
  2. package/defaultV2.fontless.css +1 -1
  3. package/defaultV2.fontless.min.css +1 -1
  4. package/defaultV2.min.css +1 -1
  5. package/i18n/arabic.js +1 -1
  6. package/i18n/arabic.min.js +1 -1
  7. package/i18n/basque.js +1 -1
  8. package/i18n/basque.min.js +1 -1
  9. package/i18n/bulgarian.js +1 -1
  10. package/i18n/bulgarian.min.js +1 -1
  11. package/i18n/burmese.js +1 -1
  12. package/i18n/burmese.min.js +1 -1
  13. package/i18n/catalan.js +1 -1
  14. package/i18n/catalan.min.js +1 -1
  15. package/i18n/croatian.js +1 -1
  16. package/i18n/croatian.min.js +1 -1
  17. package/i18n/czech.js +1 -1
  18. package/i18n/czech.min.js +1 -1
  19. package/i18n/danish.js +1 -1
  20. package/i18n/danish.min.js +1 -1
  21. package/i18n/dutch.js +1 -1
  22. package/i18n/dutch.min.js +1 -1
  23. package/i18n/english.js +1 -1
  24. package/i18n/english.min.js +1 -1
  25. package/i18n/estonian.js +1 -1
  26. package/i18n/estonian.min.js +1 -1
  27. package/i18n/finnish.js +1 -1
  28. package/i18n/finnish.min.js +1 -1
  29. package/i18n/french.js +1 -1
  30. package/i18n/french.min.js +1 -1
  31. package/i18n/georgian.js +1 -1
  32. package/i18n/georgian.min.js +1 -1
  33. package/i18n/german.js +1 -1
  34. package/i18n/german.min.js +1 -1
  35. package/i18n/greek.js +1 -1
  36. package/i18n/greek.min.js +1 -1
  37. package/i18n/hebrew.js +1 -1
  38. package/i18n/hebrew.min.js +1 -1
  39. package/i18n/hindi.js +1 -1
  40. package/i18n/hindi.min.js +1 -1
  41. package/i18n/hungarian.js +1 -1
  42. package/i18n/hungarian.min.js +1 -1
  43. package/i18n/icelandic.js +1 -1
  44. package/i18n/icelandic.min.js +1 -1
  45. package/i18n/index.js +1 -1
  46. package/i18n/index.min.js +1 -1
  47. package/i18n/indonesian.js +1 -1
  48. package/i18n/indonesian.min.js +1 -1
  49. package/i18n/italian.js +1 -1
  50. package/i18n/italian.min.js +1 -1
  51. package/i18n/japanese.js +1 -1
  52. package/i18n/japanese.min.js +1 -1
  53. package/i18n/kazakh.js +1 -1
  54. package/i18n/kazakh.min.js +1 -1
  55. package/i18n/korean.js +1 -1
  56. package/i18n/korean.min.js +1 -1
  57. package/i18n/latvian.js +1 -1
  58. package/i18n/latvian.min.js +1 -1
  59. package/i18n/lithuanian.js +1 -1
  60. package/i18n/lithuanian.min.js +1 -1
  61. package/i18n/macedonian.js +1 -1
  62. package/i18n/macedonian.min.js +1 -1
  63. package/i18n/malay.js +1 -1
  64. package/i18n/malay.min.js +1 -1
  65. package/i18n/nl-BE.js +1 -1
  66. package/i18n/nl-BE.min.js +1 -1
  67. package/i18n/norwegian.js +1 -1
  68. package/i18n/norwegian.min.js +1 -1
  69. package/i18n/persian.js +1 -1
  70. package/i18n/persian.min.js +1 -1
  71. package/i18n/philippines.js +1 -1
  72. package/i18n/philippines.min.js +1 -1
  73. package/i18n/polish.js +1 -1
  74. package/i18n/polish.min.js +1 -1
  75. package/i18n/portuguese-br.js +1 -1
  76. package/i18n/portuguese-br.min.js +1 -1
  77. package/i18n/portuguese.js +1 -1
  78. package/i18n/portuguese.min.js +1 -1
  79. package/i18n/romanian.js +1 -1
  80. package/i18n/romanian.min.js +1 -1
  81. package/i18n/russian.js +1 -1
  82. package/i18n/russian.min.js +1 -1
  83. package/i18n/serbian.js +1 -1
  84. package/i18n/serbian.min.js +1 -1
  85. package/i18n/simplified-chinese.js +1 -1
  86. package/i18n/simplified-chinese.min.js +1 -1
  87. package/i18n/slovak.js +1 -1
  88. package/i18n/slovak.min.js +1 -1
  89. package/i18n/spanish.js +1 -1
  90. package/i18n/spanish.min.js +1 -1
  91. package/i18n/swahili.js +1 -1
  92. package/i18n/swahili.min.js +1 -1
  93. package/i18n/swedish.js +1 -1
  94. package/i18n/swedish.min.js +1 -1
  95. package/i18n/tajik.js +1 -1
  96. package/i18n/tajik.min.js +1 -1
  97. package/i18n/telugu.js +1 -1
  98. package/i18n/telugu.min.js +1 -1
  99. package/i18n/thai.js +1 -1
  100. package/i18n/thai.min.js +1 -1
  101. package/i18n/traditional-chinese.js +1 -1
  102. package/i18n/traditional-chinese.min.js +1 -1
  103. package/i18n/turkish.js +1 -1
  104. package/i18n/turkish.min.js +1 -1
  105. package/i18n/ukrainian.js +1 -1
  106. package/i18n/ukrainian.min.js +1 -1
  107. package/i18n/urdu.js +1 -1
  108. package/i18n/urdu.min.js +1 -1
  109. package/i18n/vietnamese.js +1 -1
  110. package/i18n/vietnamese.min.js +1 -1
  111. package/i18n/welsh.js +1 -1
  112. package/i18n/welsh.min.js +1 -1
  113. package/icons/iconsV1.js +1 -1
  114. package/icons/iconsV1.min.js +1 -1
  115. package/icons/iconsV2.js +1 -1
  116. package/icons/iconsV2.min.js +1 -1
  117. package/modern.css +1 -1
  118. package/modern.fontless.css +1 -1
  119. package/modern.fontless.min.css +1 -1
  120. package/modern.min.css +1 -1
  121. package/package.json +1 -1
  122. package/plugins/bootstrap-integration/index.js +1 -1
  123. package/plugins/bootstrap-integration/index.min.js +1 -1
  124. package/plugins/bootstrap-material-integration/index.js +1 -1
  125. package/plugins/bootstrap-material-integration/index.min.js +1 -1
  126. package/survey.core.js +28 -17
  127. package/survey.core.js.map +1 -1
  128. package/survey.core.min.js +3 -3
  129. package/survey.css +1 -1
  130. package/survey.i18n.js +1 -1
  131. package/survey.i18n.min.js +1 -1
  132. package/survey.min.css +1 -1
  133. package/themes/borderless-dark-panelless.js +1 -1
  134. package/themes/borderless-dark-panelless.min.js +1 -1
  135. package/themes/borderless-dark.js +1 -1
  136. package/themes/borderless-dark.min.js +1 -1
  137. package/themes/borderless-light-panelless..js +1 -1
  138. package/themes/borderless-light-panelless..min.js +1 -1
  139. package/themes/borderless-light.js +1 -1
  140. package/themes/borderless-light.min.js +1 -1
  141. package/themes/contrast-dark-panelless.js +1 -1
  142. package/themes/contrast-dark-panelless.min.js +1 -1
  143. package/themes/contrast-dark.js +1 -1
  144. package/themes/contrast-dark.min.js +1 -1
  145. package/themes/contrast-light-panelless.js +1 -1
  146. package/themes/contrast-light-panelless.min.js +1 -1
  147. package/themes/contrast-light.js +1 -1
  148. package/themes/contrast-light.min.js +1 -1
  149. package/themes/default-dark-panelless.js +1 -1
  150. package/themes/default-dark-panelless.min.js +1 -1
  151. package/themes/default-dark.js +1 -1
  152. package/themes/default-dark.min.js +1 -1
  153. package/themes/default-light-panelless.js +1 -1
  154. package/themes/default-light-panelless.min.js +1 -1
  155. package/themes/default-light.js +1 -1
  156. package/themes/default-light.min.js +1 -1
  157. package/themes/doubleborder-dark-panelless.js +1 -1
  158. package/themes/doubleborder-dark-panelless.min.js +1 -1
  159. package/themes/doubleborder-dark.js +1 -1
  160. package/themes/doubleborder-dark.min.js +1 -1
  161. package/themes/doubleborder-light-panelles.js +1 -1
  162. package/themes/doubleborder-light-panelles.min.js +1 -1
  163. package/themes/doubleborder-light.js +1 -1
  164. package/themes/doubleborder-light.min.js +1 -1
  165. package/themes/flat-dark-panelless.js +1 -1
  166. package/themes/flat-dark-panelless.min.js +1 -1
  167. package/themes/flat-dark.js +1 -1
  168. package/themes/flat-dark.min.js +1 -1
  169. package/themes/flat-light-panelless.js +1 -1
  170. package/themes/flat-light-panelless.min.js +1 -1
  171. package/themes/flat-light.js +1 -1
  172. package/themes/flat-light.min.js +1 -1
  173. package/themes/index.js +1 -1
  174. package/themes/index.min.js +1 -1
  175. package/themes/layered-dark-panelless.js +1 -1
  176. package/themes/layered-dark-panelless.min.js +1 -1
  177. package/themes/layered-dark.js +1 -1
  178. package/themes/layered-dark.min.js +1 -1
  179. package/themes/layered-light-panelless.js +1 -1
  180. package/themes/layered-light-panelless.min.js +1 -1
  181. package/themes/layered-light.js +1 -1
  182. package/themes/layered-light.min.js +1 -1
  183. package/themes/plain-dark-panelless.js +1 -1
  184. package/themes/plain-dark-panelless.min.js +1 -1
  185. package/themes/plain-dark.js +1 -1
  186. package/themes/plain-dark.min.js +1 -1
  187. package/themes/plain-light-panelless.js +1 -1
  188. package/themes/plain-light-panelless.min.js +1 -1
  189. package/themes/plain-light.js +1 -1
  190. package/themes/plain-light.min.js +1 -1
  191. package/themes/sharp-dark-panelless.js +1 -1
  192. package/themes/sharp-dark-panelless.min.js +1 -1
  193. package/themes/sharp-dark.js +1 -1
  194. package/themes/sharp-dark.min.js +1 -1
  195. package/themes/sharp-light-panelless.js +1 -1
  196. package/themes/sharp-light-panelless.min.js +1 -1
  197. package/themes/sharp-light.js +1 -1
  198. package/themes/sharp-light.min.js +1 -1
  199. package/themes/solid-dark-panelless.js +1 -1
  200. package/themes/solid-dark-panelless.min.js +1 -1
  201. package/themes/solid-dark.js +1 -1
  202. package/themes/solid-dark.min.js +1 -1
  203. package/themes/solid-light-panelless.js +1 -1
  204. package/themes/solid-light-panelless.min.js +1 -1
  205. package/themes/solid-light.js +1 -1
  206. package/themes/solid-light.min.js +1 -1
  207. package/themes/three-dimensional-dark-panelless.js +1 -1
  208. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  209. package/themes/three-dimensional-dark.js +1 -1
  210. package/themes/three-dimensional-dark.min.js +1 -1
  211. package/themes/three-dimensional-light-panelless.js +1 -1
  212. package/themes/three-dimensional-light-panelless.min.js +1 -1
  213. package/themes/three-dimensional-light.js +1 -1
  214. package/themes/three-dimensional-light.min.js +1 -1
  215. package/ts3.4/typings/packages/survey-core/src/base-interfaces.d.ts +2 -1
  216. package/ts3.4/typings/packages/survey-core/src/survey-events-api.d.ts +9 -1
  217. package/ts3.4/typings/packages/survey-core/src/survey.d.ts +7 -1
  218. package/typings/packages/survey-core/src/base-interfaces.d.ts +2 -1
  219. package/typings/packages/survey-core/src/survey-events-api.d.ts +9 -1
  220. package/typings/packages/survey-core/src/survey.d.ts +7 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.20
2
+ * surveyjs - Survey JavaScript library v1.12.21
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.20
2
+ * surveyjs - Survey JavaScript library v1.12.21
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.20
2
+ * surveyjs - Survey JavaScript library v1.12.21
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.20
2
+ * surveyjs - Survey JavaScript library v1.12.21
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.20
2
+ * surveyjs - Survey JavaScript library v1.12.21
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.20
2
+ * surveyjs - Survey JavaScript library v1.12.21
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.20
2
+ * surveyjs - Survey JavaScript library v1.12.21
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.20
2
+ * surveyjs - Survey JavaScript library v1.12.21
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.20
2
+ * surveyjs - Survey JavaScript library v1.12.21
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.20
2
+ * surveyjs - Survey JavaScript library v1.12.21
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.20
2
+ * surveyjs - Survey JavaScript library v1.12.21
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
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.20
2
+ * surveyjs - Survey JavaScript library v1.12.21
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
  */
@@ -168,7 +168,8 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
168
168
  dynamicPanelAdded(question: IQuestion, panelIndex?: number, panel?: IPanel): void;
169
169
  dynamicPanelRemoved(question: IQuestion, panelIndex: number, panel: IPanel): void;
170
170
  dynamicPanelRemoving(question: IQuestion, panelIndex: number, panel: IPanel): boolean;
171
- dynamicPanelItemValueChanged(question: IQuestion, options: any): any;
171
+ dynamicPanelItemValueChanged(question: IQuestion, options: any): void;
172
+ dynamicPanelItemValueChanging(question: IQuestion, options: any): void;
172
173
  dynamicPanelGetTabTitle(question: IQuestion, options: any): any;
173
174
  dynamicPanelCurrentIndexChanged(question: IQuestion, options: any): void;
174
175
  dragAndDropAllow(options: DragDropAllowEvent): boolean;
@@ -891,7 +891,7 @@ export interface TimerPanelInfoTextEvent {
891
891
  */
892
892
  text: string;
893
893
  }
894
- export interface DynamicPanelItemValueChangedEvent extends PanelDynamicQuestionEventMixin {
894
+ export interface DynamicPanelValueChangedEvent extends PanelDynamicQuestionEventMixin {
895
895
  /**
896
896
  * The panel's data object that includes all item values.
897
897
  */
@@ -915,6 +915,14 @@ export interface DynamicPanelItemValueChangedEvent extends PanelDynamicQuestionE
915
915
  */
916
916
  panel: PanelModel;
917
917
  }
918
+ export interface DynamicPanelValueChangingEvent extends DynamicPanelValueChangedEvent {
919
+ /**
920
+ * The item's old value.
921
+ */
922
+ oldValue: any;
923
+ }
924
+ export interface DynamicPanelItemValueChangedEvent extends DynamicPanelValueChangedEvent {
925
+ }
918
926
  export interface DynamicPanelCurrentIndexChangedEvent extends PanelDynamicQuestionEventMixin {
919
927
  /**
920
928
  * A panel for which the event is raised.
@@ -139,7 +139,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
139
139
  *
140
140
  * For information on event handler parameters, refer to descriptions within the interface.
141
141
  *
142
- * To handle value changes in matrix cells or panels within a [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model), use the [`onMatrixCellValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onMatrixCellValueChanged) or [`onDynamicPanelItemValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onDynamicPanelItemValueChanged) event.
142
+ * To handle value changes in matrix cells or panels within a [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model), use the [`onMatrixCellValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onMatrixCellValueChanged) or [`onDynamicPanelValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onDynamicPanelValueChanged) event.
143
143
  * @see setValue
144
144
  */
145
145
  onValueChanged: EventBase<SurveyModel, ValueChangedEvent>;
@@ -669,7 +669,12 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
669
669
  /**
670
670
  * An event that is raised after an item value is changed in a panel within a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
671
671
  */
672
+ onDynamicPanelValueChanged: EventBase<SurveyModel, DynamicPanelItemValueChangedEvent>;
672
673
  onDynamicPanelItemValueChanged: EventBase<SurveyModel, DynamicPanelItemValueChangedEvent>;
674
+ /**
675
+ * An event that is raised after an item value is changing in a panel within a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
676
+ */
677
+ onDynamicPanelValueChanging: EventBase<SurveyModel, DynamicPanelItemValueChangedEvent>;
673
678
  /**
674
679
  * An event that is raised before a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) renders [tab titles](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#templateTabTitle). Use this event to change individual tab titles.
675
680
  *
@@ -2233,6 +2238,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2233
2238
  private hasQuestionVisibleIndeces;
2234
2239
  dynamicPanelRemoving(question: QuestionPanelDynamicModel, panelIndex: number, panel: PanelModel): boolean;
2235
2240
  dynamicPanelItemValueChanged(question: IQuestion, options: any): void;
2241
+ dynamicPanelItemValueChanging(question: IQuestion, options: any): void;
2236
2242
  dynamicPanelGetTabTitle(question: IQuestion, options: any): void;
2237
2243
  dynamicPanelCurrentIndexChanged(question: IQuestion, options: any): void;
2238
2244
  dragAndDropAllow(options: DragDropAllowEvent): boolean;
@@ -168,7 +168,8 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
168
168
  dynamicPanelAdded(question: IQuestion, panelIndex?: number, panel?: IPanel): void;
169
169
  dynamicPanelRemoved(question: IQuestion, panelIndex: number, panel: IPanel): void;
170
170
  dynamicPanelRemoving(question: IQuestion, panelIndex: number, panel: IPanel): boolean;
171
- dynamicPanelItemValueChanged(question: IQuestion, options: any): any;
171
+ dynamicPanelItemValueChanged(question: IQuestion, options: any): void;
172
+ dynamicPanelItemValueChanging(question: IQuestion, options: any): void;
172
173
  dynamicPanelGetTabTitle(question: IQuestion, options: any): any;
173
174
  dynamicPanelCurrentIndexChanged(question: IQuestion, options: any): void;
174
175
  dragAndDropAllow(options: DragDropAllowEvent): boolean;
@@ -891,7 +891,7 @@ export interface TimerPanelInfoTextEvent {
891
891
  */
892
892
  text: string;
893
893
  }
894
- export interface DynamicPanelItemValueChangedEvent extends PanelDynamicQuestionEventMixin {
894
+ export interface DynamicPanelValueChangedEvent extends PanelDynamicQuestionEventMixin {
895
895
  /**
896
896
  * The panel's data object that includes all item values.
897
897
  */
@@ -915,6 +915,14 @@ export interface DynamicPanelItemValueChangedEvent extends PanelDynamicQuestionE
915
915
  */
916
916
  panel: PanelModel;
917
917
  }
918
+ export interface DynamicPanelValueChangingEvent extends DynamicPanelValueChangedEvent {
919
+ /**
920
+ * The item's old value.
921
+ */
922
+ oldValue: any;
923
+ }
924
+ export interface DynamicPanelItemValueChangedEvent extends DynamicPanelValueChangedEvent {
925
+ }
918
926
  export interface DynamicPanelCurrentIndexChangedEvent extends PanelDynamicQuestionEventMixin {
919
927
  /**
920
928
  * A panel for which the event is raised.
@@ -141,7 +141,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
141
141
  *
142
142
  * For information on event handler parameters, refer to descriptions within the interface.
143
143
  *
144
- * To handle value changes in matrix cells or panels within a [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model), use the [`onMatrixCellValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onMatrixCellValueChanged) or [`onDynamicPanelItemValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onDynamicPanelItemValueChanged) event.
144
+ * To handle value changes in matrix cells or panels within a [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model), use the [`onMatrixCellValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onMatrixCellValueChanged) or [`onDynamicPanelValueChanged`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onDynamicPanelValueChanged) event.
145
145
  * @see setValue
146
146
  */
147
147
  onValueChanged: EventBase<SurveyModel, ValueChangedEvent>;
@@ -671,7 +671,12 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
671
671
  /**
672
672
  * An event that is raised after an item value is changed in a panel within a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
673
673
  */
674
+ onDynamicPanelValueChanged: EventBase<SurveyModel, DynamicPanelItemValueChangedEvent>;
674
675
  onDynamicPanelItemValueChanged: EventBase<SurveyModel, DynamicPanelItemValueChangedEvent>;
676
+ /**
677
+ * An event that is raised after an item value is changing in a panel within a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) question.
678
+ */
679
+ onDynamicPanelValueChanging: EventBase<SurveyModel, DynamicPanelItemValueChangedEvent>;
675
680
  /**
676
681
  * An event that is raised before a [Dynamic Panel](https://surveyjs.io/form-library/examples/questiontype-paneldynamic/) renders [tab titles](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model#templateTabTitle). Use this event to change individual tab titles.
677
682
  *
@@ -2321,6 +2326,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2321
2326
  private hasQuestionVisibleIndeces;
2322
2327
  dynamicPanelRemoving(question: QuestionPanelDynamicModel, panelIndex: number, panel: PanelModel): boolean;
2323
2328
  dynamicPanelItemValueChanged(question: IQuestion, options: any): void;
2329
+ dynamicPanelItemValueChanging(question: IQuestion, options: any): void;
2324
2330
  dynamicPanelGetTabTitle(question: IQuestion, options: any): void;
2325
2331
  dynamicPanelCurrentIndexChanged(question: IQuestion, options: any): void;
2326
2332
  dragAndDropAllow(options: DragDropAllowEvent): boolean;