survey-core 1.12.19 → 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 (226) 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 +163 -71
  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/question.d.ts +1 -0
  217. package/ts3.4/typings/packages/survey-core/src/question_rating.d.ts +11 -4
  218. package/ts3.4/typings/packages/survey-core/src/question_text.d.ts +1 -0
  219. package/ts3.4/typings/packages/survey-core/src/survey-events-api.d.ts +9 -1
  220. package/ts3.4/typings/packages/survey-core/src/survey.d.ts +9 -2
  221. package/typings/packages/survey-core/src/base-interfaces.d.ts +2 -1
  222. package/typings/packages/survey-core/src/question.d.ts +1 -0
  223. package/typings/packages/survey-core/src/question_rating.d.ts +11 -4
  224. package/typings/packages/survey-core/src/question_text.d.ts +1 -0
  225. package/typings/packages/survey-core/src/survey-events-api.d.ts +9 -1
  226. package/typings/packages/survey-core/src/survey.d.ts +9 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.19
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.19
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.19
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.19
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.19
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.19
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.19
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.19
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.19
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.19
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.19
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.19
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;
@@ -236,6 +236,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
236
236
  private triggersInfo;
237
237
  private addTriggerInfo;
238
238
  private runTriggerInfo;
239
+ private canExecuteTriggerByKeys;
239
240
  runTriggers(name: string, value: any, keys?: any): void;
240
241
  private runConditions;
241
242
  setSurveyImpl(value: ISurveyImpl, isLight?: boolean): void;
@@ -5,6 +5,7 @@ import { Base } from "./base";
5
5
  import { DropdownListModel } from "./dropdownListModel";
6
6
  import { ISurveyImpl } from "./base-interfaces";
7
7
  import { ITheme } from "./themes";
8
+ import { HashTable } from "./helpers";
8
9
  export declare class RenderedRatingItem extends Base {
9
10
  itemValue: ItemValue;
10
11
  private locString;
@@ -113,8 +114,16 @@ export declare class QuestionRatingModel extends Question {
113
114
  readonly visibleRateValues: ItemValue[];
114
115
  protected supportEmptyValidation(): boolean;
115
116
  itemValuePropertyChanged(item: ItemValue, name: string, oldValue: any, newValue: any): void;
116
- private createRenderedRateItems;
117
- renderedRateItems: Array<RenderedRatingItem>;
117
+ protected runConditionCore(values: HashTable<any>, properties: HashTable<any>): void;
118
+ protected runRateItesmCondition(values: HashTable<any>, properties: HashTable<any>): void;
119
+ private getRateValuesCore;
120
+ private calculateRateValues;
121
+ private calculateRenderedRateItems;
122
+ private calculateVisibleChoices;
123
+ private iCounter;
124
+ private resetRenderedItems;
125
+ readonly renderedRateItems: Array<RenderedRatingItem>;
126
+ readonly visibleChoices: ItemValue[];
118
127
  private createRateValues;
119
128
  private getRatingItemValue;
120
129
  private correctValue;
@@ -263,8 +272,6 @@ export declare class QuestionRatingModel extends Question {
263
272
  readonly searchEnabled: boolean;
264
273
  renderedValue: any;
265
274
  isItemSelected(item: ItemValue): boolean;
266
- private visibleChoicesValue;
267
- readonly visibleChoices: ItemValue[];
268
275
  readonly readOnlyText: any;
269
276
  needResponsiveWidth(): boolean;
270
277
  protected supportResponsiveness(): boolean;
@@ -74,6 +74,7 @@ export declare class QuestionTextModel extends QuestionTextBase {
74
74
  inputType: string;
75
75
  getMaxLength(): any;
76
76
  runCondition(values: HashTable<any>, properties: HashTable<any>): void;
77
+ protected getDisplayValueCore(keysAsText: boolean, value: any): any;
77
78
  isLayoutTypeSupported(layoutType: string): boolean;
78
79
  /*
79
80
  * A value passed on to the [`size`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/size) attribute of the underlying `<input>` element.
@@ -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
  *
@@ -1724,6 +1729,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1724
1729
  */
1725
1730
  currentPage: any;
1726
1731
  tryNavigateToPage(page: PageModel): boolean;
1732
+ private performValidationOnPageChanging;
1727
1733
  private updateCurrentPage;
1728
1734
  private readonly isCurrentPageAvailable: any;
1729
1735
  private isPageExistsInSurvey;
@@ -2129,7 +2135,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2129
2135
  private setIsValidatingOnServer;
2130
2136
  private createServerValidationOptions;
2131
2137
  protected onIsValidatingOnServerChanged(): void;
2132
- protected doServerValidation(doComplete: boolean, isPreview?: boolean): boolean;
2138
+ protected doServerValidation(doComplete: boolean, isPreview?: boolean, page?: PageModel): boolean;
2133
2139
  private completeServerValidation;
2134
2140
  protected doNextPage(): void;
2135
2141
  setCompleted(trigger: Trigger): void;
@@ -2232,6 +2238,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2232
2238
  private hasQuestionVisibleIndeces;
2233
2239
  dynamicPanelRemoving(question: QuestionPanelDynamicModel, panelIndex: number, panel: PanelModel): boolean;
2234
2240
  dynamicPanelItemValueChanged(question: IQuestion, options: any): void;
2241
+ dynamicPanelItemValueChanging(question: IQuestion, options: any): void;
2235
2242
  dynamicPanelGetTabTitle(question: IQuestion, options: any): void;
2236
2243
  dynamicPanelCurrentIndexChanged(question: IQuestion, options: any): void;
2237
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;
@@ -243,6 +243,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
243
243
  private triggersInfo;
244
244
  private addTriggerInfo;
245
245
  private runTriggerInfo;
246
+ private canExecuteTriggerByKeys;
246
247
  runTriggers(name: string, value: any, keys?: any): void;
247
248
  private runConditions;
248
249
  setSurveyImpl(value: ISurveyImpl, isLight?: boolean): void;
@@ -5,6 +5,7 @@ import { Base } from "./base";
5
5
  import { DropdownListModel } from "./dropdownListModel";
6
6
  import { ISurveyImpl } from "./base-interfaces";
7
7
  import { ITheme } from "./themes";
8
+ import { HashTable } from "./helpers";
8
9
  export declare class RenderedRatingItem extends Base {
9
10
  itemValue: ItemValue;
10
11
  private locString;
@@ -117,8 +118,16 @@ export declare class QuestionRatingModel extends Question {
117
118
  get visibleRateValues(): ItemValue[];
118
119
  protected supportEmptyValidation(): boolean;
119
120
  itemValuePropertyChanged(item: ItemValue, name: string, oldValue: any, newValue: any): void;
120
- private createRenderedRateItems;
121
- renderedRateItems: Array<RenderedRatingItem>;
121
+ protected runConditionCore(values: HashTable<any>, properties: HashTable<any>): void;
122
+ protected runRateItesmCondition(values: HashTable<any>, properties: HashTable<any>): void;
123
+ private getRateValuesCore;
124
+ private calculateRateValues;
125
+ private calculateRenderedRateItems;
126
+ private calculateVisibleChoices;
127
+ private iCounter;
128
+ private resetRenderedItems;
129
+ get renderedRateItems(): Array<RenderedRatingItem>;
130
+ get visibleChoices(): ItemValue[];
122
131
  private createRateValues;
123
132
  private getRatingItemValue;
124
133
  private correctValue;
@@ -273,8 +282,6 @@ export declare class QuestionRatingModel extends Question {
273
282
  get renderedValue(): any;
274
283
  set renderedValue(val: any);
275
284
  isItemSelected(item: ItemValue): boolean;
276
- private visibleChoicesValue;
277
- get visibleChoices(): ItemValue[];
278
285
  get readOnlyText(): any;
279
286
  needResponsiveWidth(): boolean;
280
287
  protected supportResponsiveness(): boolean;
@@ -76,6 +76,7 @@ export declare class QuestionTextModel extends QuestionTextBase {
76
76
  set inputType(val: string);
77
77
  getMaxLength(): any;
78
78
  runCondition(values: HashTable<any>, properties: HashTable<any>): void;
79
+ protected getDisplayValueCore(keysAsText: boolean, value: any): any;
79
80
  isLayoutTypeSupported(layoutType: string): boolean;
80
81
  /**
81
82
  * A value passed on to the [`size`](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/size) attribute of the underlying `<input>` element.
@@ -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
  *
@@ -1797,6 +1802,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1797
1802
  get currentPage(): any;
1798
1803
  set currentPage(value: any);
1799
1804
  tryNavigateToPage(page: PageModel): boolean;
1805
+ private performValidationOnPageChanging;
1800
1806
  private updateCurrentPage;
1801
1807
  private get isCurrentPageAvailable();
1802
1808
  private isPageExistsInSurvey;
@@ -2217,7 +2223,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2217
2223
  private setIsValidatingOnServer;
2218
2224
  private createServerValidationOptions;
2219
2225
  protected onIsValidatingOnServerChanged(): void;
2220
- protected doServerValidation(doComplete: boolean, isPreview?: boolean): boolean;
2226
+ protected doServerValidation(doComplete: boolean, isPreview?: boolean, page?: PageModel): boolean;
2221
2227
  private completeServerValidation;
2222
2228
  protected doNextPage(): void;
2223
2229
  setCompleted(trigger: Trigger): void;
@@ -2320,6 +2326,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2320
2326
  private hasQuestionVisibleIndeces;
2321
2327
  dynamicPanelRemoving(question: QuestionPanelDynamicModel, panelIndex: number, panel: PanelModel): boolean;
2322
2328
  dynamicPanelItemValueChanged(question: IQuestion, options: any): void;
2329
+ dynamicPanelItemValueChanging(question: IQuestion, options: any): void;
2323
2330
  dynamicPanelGetTabTitle(question: IQuestion, options: any): void;
2324
2331
  dynamicPanelCurrentIndexChanged(question: IQuestion, options: any): void;
2325
2332
  dragAndDropAllow(options: DragDropAllowEvent): boolean;