survey-core 1.12.9 → 1.12.10

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 (228) 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/catalan.js +1 -1
  12. package/i18n/catalan.min.js +1 -1
  13. package/i18n/croatian.js +1 -1
  14. package/i18n/croatian.min.js +1 -1
  15. package/i18n/czech.js +1 -1
  16. package/i18n/czech.min.js +1 -1
  17. package/i18n/danish.js +1 -1
  18. package/i18n/danish.min.js +1 -1
  19. package/i18n/dutch.js +1 -1
  20. package/i18n/dutch.min.js +1 -1
  21. package/i18n/english.js +1 -1
  22. package/i18n/english.min.js +1 -1
  23. package/i18n/estonian.js +1 -1
  24. package/i18n/estonian.min.js +1 -1
  25. package/i18n/finnish.js +1 -1
  26. package/i18n/finnish.min.js +1 -1
  27. package/i18n/french.js +1 -1
  28. package/i18n/french.min.js +1 -1
  29. package/i18n/georgian.js +1 -1
  30. package/i18n/georgian.min.js +1 -1
  31. package/i18n/german.js +1 -1
  32. package/i18n/german.min.js +1 -1
  33. package/i18n/greek.js +1 -1
  34. package/i18n/greek.min.js +1 -1
  35. package/i18n/hebrew.js +1 -1
  36. package/i18n/hebrew.min.js +1 -1
  37. package/i18n/hindi.js +1 -1
  38. package/i18n/hindi.min.js +1 -1
  39. package/i18n/hungarian.js +1 -1
  40. package/i18n/hungarian.min.js +1 -1
  41. package/i18n/icelandic.js +1 -1
  42. package/i18n/icelandic.min.js +1 -1
  43. package/i18n/index.js +1 -1
  44. package/i18n/index.min.js +1 -1
  45. package/i18n/indonesian.js +1 -1
  46. package/i18n/indonesian.min.js +1 -1
  47. package/i18n/italian.js +1 -1
  48. package/i18n/italian.min.js +1 -1
  49. package/i18n/japanese.js +1 -1
  50. package/i18n/japanese.min.js +1 -1
  51. package/i18n/kazakh.js +1 -1
  52. package/i18n/kazakh.min.js +1 -1
  53. package/i18n/korean.js +1 -1
  54. package/i18n/korean.min.js +1 -1
  55. package/i18n/latvian.js +1 -1
  56. package/i18n/latvian.min.js +1 -1
  57. package/i18n/lithuanian.js +1 -1
  58. package/i18n/lithuanian.min.js +1 -1
  59. package/i18n/macedonian.js +1 -1
  60. package/i18n/macedonian.min.js +1 -1
  61. package/i18n/malay.js +1 -1
  62. package/i18n/malay.min.js +1 -1
  63. package/i18n/nl-BE.js +1 -1
  64. package/i18n/nl-BE.min.js +1 -1
  65. package/i18n/norwegian.js +1 -1
  66. package/i18n/norwegian.min.js +1 -1
  67. package/i18n/persian.js +1 -1
  68. package/i18n/persian.min.js +1 -1
  69. package/i18n/philippines.js +1 -1
  70. package/i18n/philippines.min.js +1 -1
  71. package/i18n/polish.js +1 -1
  72. package/i18n/polish.min.js +1 -1
  73. package/i18n/portuguese-br.js +1 -1
  74. package/i18n/portuguese-br.min.js +1 -1
  75. package/i18n/portuguese.js +1 -1
  76. package/i18n/portuguese.min.js +1 -1
  77. package/i18n/romanian.js +1 -1
  78. package/i18n/romanian.min.js +1 -1
  79. package/i18n/russian.js +1 -1
  80. package/i18n/russian.min.js +1 -1
  81. package/i18n/serbian.js +1 -1
  82. package/i18n/serbian.min.js +1 -1
  83. package/i18n/simplified-chinese.js +1 -1
  84. package/i18n/simplified-chinese.min.js +1 -1
  85. package/i18n/slovak.js +1 -1
  86. package/i18n/slovak.min.js +1 -1
  87. package/i18n/spanish.js +1 -1
  88. package/i18n/spanish.min.js +1 -1
  89. package/i18n/swahili.js +1 -1
  90. package/i18n/swahili.min.js +1 -1
  91. package/i18n/swedish.js +1 -1
  92. package/i18n/swedish.min.js +1 -1
  93. package/i18n/tajik.js +1 -1
  94. package/i18n/tajik.min.js +1 -1
  95. package/i18n/telugu.js +1 -1
  96. package/i18n/telugu.min.js +1 -1
  97. package/i18n/thai.js +1 -1
  98. package/i18n/thai.min.js +1 -1
  99. package/i18n/traditional-chinese.js +1 -1
  100. package/i18n/traditional-chinese.min.js +1 -1
  101. package/i18n/turkish.js +1 -1
  102. package/i18n/turkish.min.js +1 -1
  103. package/i18n/ukrainian.js +1 -1
  104. package/i18n/ukrainian.min.js +1 -1
  105. package/i18n/urdu.js +1 -1
  106. package/i18n/urdu.min.js +1 -1
  107. package/i18n/vietnamese.js +1 -1
  108. package/i18n/vietnamese.min.js +1 -1
  109. package/i18n/welsh.js +1 -1
  110. package/i18n/welsh.min.js +1 -1
  111. package/modern.css +1 -1
  112. package/modern.fontless.css +1 -1
  113. package/modern.fontless.min.css +1 -1
  114. package/modern.min.css +1 -1
  115. package/package.json +1 -1
  116. package/plugins/bootstrap-integration/index.js +1 -1
  117. package/plugins/bootstrap-integration/index.min.js +1 -1
  118. package/plugins/bootstrap-material-integration/index.js +1 -1
  119. package/plugins/bootstrap-material-integration/index.min.js +1 -1
  120. package/survey.core.js +231 -83
  121. package/survey.core.js.map +1 -1
  122. package/survey.core.min.js +3 -3
  123. package/survey.css +1 -1
  124. package/survey.i18n.js +1 -1
  125. package/survey.i18n.min.js +1 -1
  126. package/survey.min.css +1 -1
  127. package/themes/borderless-dark-panelless.js +1 -1
  128. package/themes/borderless-dark-panelless.min.js +1 -1
  129. package/themes/borderless-dark.js +1 -1
  130. package/themes/borderless-dark.min.js +1 -1
  131. package/themes/borderless-light-panelless..js +1 -1
  132. package/themes/borderless-light-panelless..min.js +1 -1
  133. package/themes/borderless-light.js +1 -1
  134. package/themes/borderless-light.min.js +1 -1
  135. package/themes/contrast-dark-panelless.js +1 -1
  136. package/themes/contrast-dark-panelless.min.js +1 -1
  137. package/themes/contrast-dark.js +1 -1
  138. package/themes/contrast-dark.min.js +1 -1
  139. package/themes/contrast-light-panelless.js +1 -1
  140. package/themes/contrast-light-panelless.min.js +1 -1
  141. package/themes/contrast-light.js +1 -1
  142. package/themes/contrast-light.min.js +1 -1
  143. package/themes/default-dark-panelless.js +1 -1
  144. package/themes/default-dark-panelless.min.js +1 -1
  145. package/themes/default-dark.js +1 -1
  146. package/themes/default-dark.min.js +1 -1
  147. package/themes/default-light-panelless.js +1 -1
  148. package/themes/default-light-panelless.min.js +1 -1
  149. package/themes/default-light.js +1 -1
  150. package/themes/default-light.min.js +1 -1
  151. package/themes/doubleborder-dark-panelless.js +1 -1
  152. package/themes/doubleborder-dark-panelless.min.js +1 -1
  153. package/themes/doubleborder-dark.js +1 -1
  154. package/themes/doubleborder-dark.min.js +1 -1
  155. package/themes/doubleborder-light-panelles.js +1 -1
  156. package/themes/doubleborder-light-panelles.min.js +1 -1
  157. package/themes/doubleborder-light.js +1 -1
  158. package/themes/doubleborder-light.min.js +1 -1
  159. package/themes/flat-dark-panelless.js +1 -1
  160. package/themes/flat-dark-panelless.min.js +1 -1
  161. package/themes/flat-dark.js +1 -1
  162. package/themes/flat-dark.min.js +1 -1
  163. package/themes/flat-light-panelless.js +1 -1
  164. package/themes/flat-light-panelless.min.js +1 -1
  165. package/themes/flat-light.js +1 -1
  166. package/themes/flat-light.min.js +1 -1
  167. package/themes/index.js +1 -1
  168. package/themes/index.min.js +1 -1
  169. package/themes/layered-dark-panelless.js +1 -1
  170. package/themes/layered-dark-panelless.min.js +1 -1
  171. package/themes/layered-dark.js +1 -1
  172. package/themes/layered-dark.min.js +1 -1
  173. package/themes/layered-light-panelless.js +1 -1
  174. package/themes/layered-light-panelless.min.js +1 -1
  175. package/themes/layered-light.js +1 -1
  176. package/themes/layered-light.min.js +1 -1
  177. package/themes/plain-dark-panelless.js +1 -1
  178. package/themes/plain-dark-panelless.min.js +1 -1
  179. package/themes/plain-dark.js +1 -1
  180. package/themes/plain-dark.min.js +1 -1
  181. package/themes/plain-light-panelless.js +1 -1
  182. package/themes/plain-light-panelless.min.js +1 -1
  183. package/themes/plain-light.js +1 -1
  184. package/themes/plain-light.min.js +1 -1
  185. package/themes/sharp-dark-panelless.js +1 -1
  186. package/themes/sharp-dark-panelless.min.js +1 -1
  187. package/themes/sharp-dark.js +1 -1
  188. package/themes/sharp-dark.min.js +1 -1
  189. package/themes/sharp-light-panelless.js +1 -1
  190. package/themes/sharp-light-panelless.min.js +1 -1
  191. package/themes/sharp-light.js +1 -1
  192. package/themes/sharp-light.min.js +1 -1
  193. package/themes/solid-dark-panelless.js +1 -1
  194. package/themes/solid-dark-panelless.min.js +1 -1
  195. package/themes/solid-dark.js +1 -1
  196. package/themes/solid-dark.min.js +1 -1
  197. package/themes/solid-light-panelless.js +1 -1
  198. package/themes/solid-light-panelless.min.js +1 -1
  199. package/themes/solid-light.js +1 -1
  200. package/themes/solid-light.min.js +1 -1
  201. package/themes/three-dimensional-dark-panelless.js +1 -1
  202. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  203. package/themes/three-dimensional-dark.js +1 -1
  204. package/themes/three-dimensional-dark.min.js +1 -1
  205. package/themes/three-dimensional-light-panelless.js +1 -1
  206. package/themes/three-dimensional-light-panelless.min.js +1 -1
  207. package/themes/three-dimensional-light.js +1 -1
  208. package/themes/three-dimensional-light.min.js +1 -1
  209. package/ts3.4/typings/packages/survey-core/src/actions/action.d.ts +1 -1
  210. package/ts3.4/typings/packages/survey-core/src/base-interfaces.d.ts +2 -0
  211. package/ts3.4/typings/packages/survey-core/src/page.d.ts +5 -0
  212. package/ts3.4/typings/packages/survey-core/src/question.d.ts +2 -0
  213. package/ts3.4/typings/packages/survey-core/src/question_buttongroup.d.ts +1 -1
  214. package/ts3.4/typings/packages/survey-core/src/survey-events-api.d.ts +4 -0
  215. package/ts3.4/typings/packages/survey-core/src/survey.d.ts +14 -1
  216. package/ts3.4/typings/packages/survey-core/src/utils/animation.d.ts +10 -0
  217. package/ts3.4/typings/packages/survey-core/src/utils/responsivity-manager.d.ts +3 -1
  218. package/ts3.4/typings/packages/survey-core/src/utils/utils.d.ts +2 -1
  219. package/typings/packages/survey-core/src/actions/action.d.ts +1 -1
  220. package/typings/packages/survey-core/src/base-interfaces.d.ts +2 -0
  221. package/typings/packages/survey-core/src/page.d.ts +6 -0
  222. package/typings/packages/survey-core/src/question.d.ts +2 -0
  223. package/typings/packages/survey-core/src/question_buttongroup.d.ts +1 -1
  224. package/typings/packages/survey-core/src/survey-events-api.d.ts +4 -0
  225. package/typings/packages/survey-core/src/survey.d.ts +14 -1
  226. package/typings/packages/survey-core/src/utils/animation.d.ts +10 -0
  227. package/typings/packages/survey-core/src/utils/responsivity-manager.d.ts +3 -1
  228. package/typings/packages/survey-core/src/utils/utils.d.ts +2 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.9
2
+ * surveyjs - Survey JavaScript library v1.12.10
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.9
2
+ * surveyjs - Survey JavaScript library v1.12.10
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.9
2
+ * surveyjs - Survey JavaScript library v1.12.10
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.9
2
+ * surveyjs - Survey JavaScript library v1.12.10
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.9
2
+ * surveyjs - Survey JavaScript library v1.12.10
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.9
2
+ * surveyjs - Survey JavaScript library v1.12.10
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.9
2
+ * surveyjs - Survey JavaScript library v1.12.10
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.9
2
+ * surveyjs - Survey JavaScript library v1.12.10
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.9
2
+ * surveyjs - Survey JavaScript library v1.12.10
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.9
2
+ * surveyjs - Survey JavaScript library v1.12.10
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.9
2
+ * surveyjs - Survey JavaScript library v1.12.10
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.12.9
2
+ * surveyjs - Survey JavaScript library v1.12.10
3
3
  * Copyright (c) 2015-2024 Devsoft Baltic OÜ - http://surveyjs.io/
4
4
  * License: MIT (http://www.opensource.org/licenses/mit-license.php)
5
5
  */
@@ -187,7 +187,7 @@ export declare abstract class BaseAction extends Base implements IAction {
187
187
  id: string;
188
188
  removePriority: number;
189
189
  iconName: string;
190
- iconSize: number;
190
+ iconSize: number | string;
191
191
  markerIconName: string;
192
192
  markerIconSize: number;
193
193
  css?: string;
@@ -172,6 +172,8 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
172
172
  dragAndDropAllow(options: DragDropAllowEvent): boolean;
173
173
  scrollElementToTop(element: ISurveyElement, question: IQuestion, page: IPage, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, passedRootElement?: HTMLElement, onScolledCallback?: () => void): any;
174
174
  runExpression(expression: string, callback?: (res: any) => void): any;
175
+ startSetValueOnExpression(): void;
176
+ finishSetValueOnExpression(): void;
175
177
  elementContentVisibilityChanged(element: ISurveyElement): void;
176
178
  onCorrectQuestionAnswer(question: IQuestion, options: any): void;
177
179
  processPopupVisiblityChanged(question: IQuestion, popupModel: PopupModel, visible: boolean): void;
@@ -109,4 +109,9 @@ export declare class PageModel extends PanelModelBase implements IPage {
109
109
  dragDropMoveTo(destination: ISurveyElement, isBottom?: boolean, isEdge?: boolean): boolean;
110
110
  dragDropFinish(isCancel?: boolean): IElement;
111
111
  ensureRowsVisibility(): void;
112
+ private _isReadyForClean;
113
+ isReadyForClean: boolean;
114
+ isReadyForCleanChangedCallback: () => void;
115
+ enableOnElementRerenderedEvent(): void;
116
+ disableOnElementRerenderedEvent(): void;
112
117
  }
@@ -720,6 +720,8 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
720
720
  protected convertFuncValuetoQuestionValue(val: any): any;
721
721
  private runExpressionSetValueCore;
722
722
  private runExpressionSetValue;
723
+ protected startSetValueOnExpression(): void;
724
+ protected finishSetValueOnExpression(): void;
723
725
  private runDefaultValueExpression;
724
726
  /*
725
727
  * A comment to the selected question value. Enable the `showCommentArea` property to allow users to leave comments.
@@ -29,7 +29,7 @@ export declare class ButtonGroupItemModel {
29
29
  constructor(question: QuestionButtonGroupModel, item: ItemValue, index: number);
30
30
  readonly value: any;
31
31
  readonly iconName: string;
32
- readonly iconSize: number;
32
+ readonly iconSize: string | number;
33
33
  readonly caption: LocalizableString;
34
34
  readonly showCaption: any;
35
35
  readonly isRequired: boolean;
@@ -212,6 +212,10 @@ export interface ValueChangeBaseEvent extends QuestionEventMixin {
212
212
  * The `name` of the question whose value is being changed. If you use the [`valueName`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#valueName) property, this parameter contains its value.
213
213
  */
214
214
  name: string;
215
+ /**
216
+ * A value that indicates what caused the value change: an [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) evaluation or a run of a [trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-survey-logic-triggers). If the value is changed for other reasons, this parameter is `undefined`.
217
+ */
218
+ reason: "trigger" | "expression" | undefined;
215
219
  }
216
220
  export interface ValueChangedEvent extends ValueChangeBaseEvent {
217
221
  /**
@@ -706,7 +706,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
706
706
  */
707
707
  onGetPageTitleActions: EventBase<SurveyModel, GetPageTitleActionsEvent>;
708
708
  /**
709
- * An event that allows you to add, delete, or modify actions in the footer of a [Panel](https://surveyjs.io/form-library/documentation/panelmodel).
709
+ * An event that allows you to add, delete, or modify actions in the footer of a [Panel](https://surveyjs.io/form-library/documentation/panelmodel). This panel may belong to a [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model) or be a standalone survey element.
710
710
  * @see [IAction](https://surveyjs.io/form-library/documentation/api-reference/iaction)
711
711
  */
712
712
  onGetPanelFooterActions: EventBase<SurveyModel, GetPanelFooterActionsEvent>;
@@ -1330,6 +1330,10 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1330
1330
  * @param callback A callback function that you can use to access the calculation result if the expression uses asynchronous functions.
1331
1331
  */
1332
1332
  runExpression(expression: string, callback?: (res: any) => void): any;
1333
+ private setValueOnExpressionCounter;
1334
+ readonly isSettingValueOnExpression: boolean;
1335
+ startSetValueOnExpression(): void;
1336
+ finishSetValueOnExpression(): void;
1333
1337
  /**
1334
1338
  * Calculates a given [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) and returns `true` or `false`.
1335
1339
  * @param expression An expression to calculate.
@@ -2187,6 +2191,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2187
2191
  matrixCellValidate(question: QuestionMatrixDropdownModelBase, options: MatrixCellValidateEvent): SurveyError;
2188
2192
  dynamicPanelAdded(question: QuestionPanelDynamicModel, panelIndex?: number, panel?: PanelModel): void;
2189
2193
  dynamicPanelRemoved(question: QuestionPanelDynamicModel, panelIndex: number, panel: PanelModel): void;
2194
+ private hasQuestionVisibleIndeces;
2190
2195
  dynamicPanelRemoving(question: QuestionPanelDynamicModel, panelIndex: number, panel: PanelModel): boolean;
2191
2196
  dynamicPanelItemValueChanged(question: IQuestion, options: any): void;
2192
2197
  dynamicPanelGetTabTitle(question: IQuestion, options: any): void;
@@ -2379,11 +2384,13 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2379
2384
  * @see addNewPage
2380
2385
  */
2381
2386
  createNewPage(name: string): PageModel;
2387
+ private getValueChangeReason;
2382
2388
  protected questionOnValueChanging(valueName: string, newValue: any, questionValueName?: string): any;
2383
2389
  protected updateQuestionValue(valueName: string, newValue: any): void;
2384
2390
  private checkQuestionErrorOnValueChanged;
2385
2391
  private checkQuestionErrorOnValueChangedCore;
2386
2392
  private checkErrorsOnValueChanging;
2393
+ private fireOnValueChanged;
2387
2394
  protected notifyQuestionOnValueChanged(valueName: string, newValue: any, questionName: string): void;
2388
2395
  private isRunningElementsBindings;
2389
2396
  private updateVisibleIndexAfterBindings;
@@ -2439,6 +2446,8 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2439
2446
  protected onLoadSurveyFromService(): void;
2440
2447
  private resetVisibleIndexes;
2441
2448
  private updateVisibleIndexes;
2449
+ private updatePageElementsVisibleIndexes;
2450
+ private getStartVisibleIndex;
2442
2451
  private updatePageVisibleIndexes;
2443
2452
  fromJSON(json: any, options?: ILoadFromJSONOptions): void;
2444
2453
  startLoadingFromJson(json?: any): void;
@@ -2772,6 +2781,10 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2772
2781
  setTriggerValue(name: string, value: any, isVariable: boolean): void;
2773
2782
  copyTriggerValue(name: string, fromName: string, copyDisplayValue: boolean): void;
2774
2783
  triggerExecuted(trigger: Trigger): void;
2784
+ private setValueFromTriggerCounter;
2785
+ readonly isSettingValueFromTrigger: boolean;
2786
+ private startSetValueFromTrigger;
2787
+ private finishSetValueFromTrigger;
2775
2788
  private focusingQuestionInfo;
2776
2789
  private isMovingQuestion;
2777
2790
  startMovingQuestion(): void;
@@ -17,6 +17,15 @@ interface IGroupAnimationInfo {
17
17
  isDeletingRunning: boolean;
18
18
  isAddingRunning: boolean;
19
19
  }
20
+ interface IGroupAnimationCompareInfo<T> {
21
+ addedItems: Array<T>;
22
+ deletedItems: Array<T>;
23
+ reorderedItems: Array<{
24
+ item: T;
25
+ movedForward: boolean;
26
+ }>;
27
+ mergedItems: Array<T>;
28
+ }
20
29
  export interface IAnimationGroupConsumer<T> extends IAnimationConsumer<[
21
30
  T
22
31
  ]> {
@@ -24,6 +33,7 @@ export interface IAnimationGroupConsumer<T> extends IAnimationConsumer<[
24
33
  getEnterOptions?(item: T, info?: IGroupAnimationInfo): AnimationOptions;
25
34
  getReorderOptions?(item: T, movedForward: boolean, info?: IGroupAnimationInfo): AnimationOptions;
26
35
  getKey?: (item: T) => any;
36
+ onCompareArrays?(options: IGroupAnimationCompareInfo<T>): void;
27
37
  allowSyncRemovalAddition?: boolean;
28
38
  }
29
39
  export declare class AnimationUtils {
@@ -5,7 +5,7 @@ interface IDimensions {
5
5
  offset: number;
6
6
  }
7
7
  export declare class ResponsivityManager {
8
- protected container: HTMLDivElement;
8
+ container: HTMLDivElement;
9
9
  private model;
10
10
  private itemsSelector;
11
11
  private dotsItemSize;
@@ -17,6 +17,8 @@ export declare class ResponsivityManager {
17
17
  private separatorAddConst;
18
18
  private paddingSizeConst;
19
19
  private dotsSizeConst;
20
+ private dotsIconClass;
21
+ private iconClass;
20
22
  protected recalcMinDimensionConst: boolean;
21
23
  getComputedStyle: (elt: Element) => CSSStyleDeclaration;
22
24
  constructor(container: HTMLDivElement, model: AdaptiveActionContainer, itemsSelector: string, dotsItemSize?: number, delayedUpdateFunction?: (callback: () => void) => void);
@@ -13,6 +13,7 @@ declare function findScrollableParent(element: HTMLElement): HTMLElement;
13
13
  declare function activateLazyRenderingChecks(id: string): void;
14
14
  declare function navigateToUrl(url: string): void;
15
15
  declare function wrapUrlForBackgroundImage(url: string): string;
16
+ declare function isBase64URL(url: string): boolean;
16
17
  declare const renamedIcons: any;
17
18
  declare function getIconNameFromProxy(iconName: string): string;
18
19
  export declare function getNewIconName(iconName: string): string;
@@ -72,4 +73,4 @@ export declare function setPropertiesOnElementForAnimation(el: HTMLElement, styl
72
73
  export declare function prepareElementForVerticalAnimation(el: HTMLElement): void;
73
74
  export declare function cleanHtmlElementAfterAnimation(el: HTMLElement): void;
74
75
  export declare function roundTo2Decimals(number: number): number;
75
- export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, activateLazyRenderingChecks, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles, renamedIcons };
76
+ export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, activateLazyRenderingChecks, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles, isBase64URL, renamedIcons };
@@ -187,7 +187,7 @@ export declare abstract class BaseAction extends Base implements IAction {
187
187
  id: string;
188
188
  removePriority: number;
189
189
  iconName: string;
190
- iconSize: number;
190
+ iconSize: number | string;
191
191
  markerIconName: string;
192
192
  markerIconSize: number;
193
193
  css?: string;
@@ -172,6 +172,8 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
172
172
  dragAndDropAllow(options: DragDropAllowEvent): boolean;
173
173
  scrollElementToTop(element: ISurveyElement, question: IQuestion, page: IPage, id: string, scrollIfVisible?: boolean, scrollIntoViewOptions?: ScrollIntoViewOptions, passedRootElement?: HTMLElement, onScolledCallback?: () => void): any;
174
174
  runExpression(expression: string, callback?: (res: any) => void): any;
175
+ startSetValueOnExpression(): void;
176
+ finishSetValueOnExpression(): void;
175
177
  elementContentVisibilityChanged(element: ISurveyElement): void;
176
178
  onCorrectQuestionAnswer(question: IQuestion, options: any): void;
177
179
  processPopupVisiblityChanged(question: IQuestion, popupModel: PopupModel, visible: boolean): void;
@@ -116,4 +116,10 @@ export declare class PageModel extends PanelModelBase implements IPage {
116
116
  dragDropMoveTo(destination: ISurveyElement, isBottom?: boolean, isEdge?: boolean): boolean;
117
117
  dragDropFinish(isCancel?: boolean): IElement;
118
118
  ensureRowsVisibility(): void;
119
+ private _isReadyForClean;
120
+ get isReadyForClean(): boolean;
121
+ set isReadyForClean(val: boolean);
122
+ isReadyForCleanChangedCallback: () => void;
123
+ enableOnElementRerenderedEvent(): void;
124
+ disableOnElementRerenderedEvent(): void;
119
125
  }
@@ -753,6 +753,8 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
753
753
  protected convertFuncValuetoQuestionValue(val: any): any;
754
754
  private runExpressionSetValueCore;
755
755
  private runExpressionSetValue;
756
+ protected startSetValueOnExpression(): void;
757
+ protected finishSetValueOnExpression(): void;
756
758
  private runDefaultValueExpression;
757
759
  /**
758
760
  * A comment to the selected question value. Enable the `showCommentArea` property to allow users to leave comments.
@@ -29,7 +29,7 @@ export declare class ButtonGroupItemModel {
29
29
  constructor(question: QuestionButtonGroupModel, item: ItemValue, index: number);
30
30
  get value(): any;
31
31
  get iconName(): string;
32
- get iconSize(): number;
32
+ get iconSize(): string | number;
33
33
  get caption(): LocalizableString;
34
34
  get showCaption(): any;
35
35
  get isRequired(): boolean;
@@ -212,6 +212,10 @@ export interface ValueChangeBaseEvent extends QuestionEventMixin {
212
212
  * The `name` of the question whose value is being changed. If you use the [`valueName`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#valueName) property, this parameter contains its value.
213
213
  */
214
214
  name: string;
215
+ /**
216
+ * A value that indicates what caused the value change: an [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) evaluation or a run of a [trigger](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-survey-logic-triggers). If the value is changed for other reasons, this parameter is `undefined`.
217
+ */
218
+ reason: "trigger" | "expression" | undefined;
215
219
  }
216
220
  export interface ValueChangedEvent extends ValueChangeBaseEvent {
217
221
  /**
@@ -708,7 +708,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
708
708
  */
709
709
  onGetPageTitleActions: EventBase<SurveyModel, GetPageTitleActionsEvent>;
710
710
  /**
711
- * An event that allows you to add, delete, or modify actions in the footer of a [Panel](https://surveyjs.io/form-library/documentation/panelmodel).
711
+ * An event that allows you to add, delete, or modify actions in the footer of a [Panel](https://surveyjs.io/form-library/documentation/panelmodel). This panel may belong to a [Dynamic Panel](https://surveyjs.io/form-library/documentation/api-reference/dynamic-panel-model) or be a standalone survey element.
712
712
  * @see [IAction](https://surveyjs.io/form-library/documentation/api-reference/iaction)
713
713
  */
714
714
  onGetPanelFooterActions: EventBase<SurveyModel, GetPanelFooterActionsEvent>;
@@ -1381,6 +1381,10 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1381
1381
  * @param callback A callback function that you can use to access the calculation result if the expression uses asynchronous functions.
1382
1382
  */
1383
1383
  runExpression(expression: string, callback?: (res: any) => void): any;
1384
+ private setValueOnExpressionCounter;
1385
+ get isSettingValueOnExpression(): boolean;
1386
+ startSetValueOnExpression(): void;
1387
+ finishSetValueOnExpression(): void;
1384
1388
  /**
1385
1389
  * Calculates a given [expression](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#expressions) and returns `true` or `false`.
1386
1390
  * @param expression An expression to calculate.
@@ -2273,6 +2277,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2273
2277
  matrixCellValidate(question: QuestionMatrixDropdownModelBase, options: MatrixCellValidateEvent): SurveyError;
2274
2278
  dynamicPanelAdded(question: QuestionPanelDynamicModel, panelIndex?: number, panel?: PanelModel): void;
2275
2279
  dynamicPanelRemoved(question: QuestionPanelDynamicModel, panelIndex: number, panel: PanelModel): void;
2280
+ private hasQuestionVisibleIndeces;
2276
2281
  dynamicPanelRemoving(question: QuestionPanelDynamicModel, panelIndex: number, panel: PanelModel): boolean;
2277
2282
  dynamicPanelItemValueChanged(question: IQuestion, options: any): void;
2278
2283
  dynamicPanelGetTabTitle(question: IQuestion, options: any): void;
@@ -2465,11 +2470,13 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2465
2470
  * @see addNewPage
2466
2471
  */
2467
2472
  createNewPage(name: string): PageModel;
2473
+ private getValueChangeReason;
2468
2474
  protected questionOnValueChanging(valueName: string, newValue: any, questionValueName?: string): any;
2469
2475
  protected updateQuestionValue(valueName: string, newValue: any): void;
2470
2476
  private checkQuestionErrorOnValueChanged;
2471
2477
  private checkQuestionErrorOnValueChangedCore;
2472
2478
  private checkErrorsOnValueChanging;
2479
+ private fireOnValueChanged;
2473
2480
  protected notifyQuestionOnValueChanged(valueName: string, newValue: any, questionName: string): void;
2474
2481
  private isRunningElementsBindings;
2475
2482
  private updateVisibleIndexAfterBindings;
@@ -2525,6 +2532,8 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2525
2532
  protected onLoadSurveyFromService(): void;
2526
2533
  private resetVisibleIndexes;
2527
2534
  private updateVisibleIndexes;
2535
+ private updatePageElementsVisibleIndexes;
2536
+ private getStartVisibleIndex;
2528
2537
  private updatePageVisibleIndexes;
2529
2538
  fromJSON(json: any, options?: ILoadFromJSONOptions): void;
2530
2539
  startLoadingFromJson(json?: any): void;
@@ -2871,6 +2880,10 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2871
2880
  setTriggerValue(name: string, value: any, isVariable: boolean): void;
2872
2881
  copyTriggerValue(name: string, fromName: string, copyDisplayValue: boolean): void;
2873
2882
  triggerExecuted(trigger: Trigger): void;
2883
+ private setValueFromTriggerCounter;
2884
+ get isSettingValueFromTrigger(): boolean;
2885
+ private startSetValueFromTrigger;
2886
+ private finishSetValueFromTrigger;
2874
2887
  private focusingQuestionInfo;
2875
2888
  private isMovingQuestion;
2876
2889
  startMovingQuestion(): void;
@@ -16,11 +16,21 @@ interface IGroupAnimationInfo {
16
16
  isDeletingRunning: boolean;
17
17
  isAddingRunning: boolean;
18
18
  }
19
+ interface IGroupAnimationCompareInfo<T> {
20
+ addedItems: Array<T>;
21
+ deletedItems: Array<T>;
22
+ reorderedItems: Array<{
23
+ item: T;
24
+ movedForward: boolean;
25
+ }>;
26
+ mergedItems: Array<T>;
27
+ }
19
28
  export interface IAnimationGroupConsumer<T> extends IAnimationConsumer<[T]> {
20
29
  getLeaveOptions?(item: T, info?: IGroupAnimationInfo): AnimationOptions;
21
30
  getEnterOptions?(item: T, info?: IGroupAnimationInfo): AnimationOptions;
22
31
  getReorderOptions?(item: T, movedForward: boolean, info?: IGroupAnimationInfo): AnimationOptions;
23
32
  getKey?: (item: T) => any;
33
+ onCompareArrays?(options: IGroupAnimationCompareInfo<T>): void;
24
34
  allowSyncRemovalAddition?: boolean;
25
35
  }
26
36
  export declare class AnimationUtils {
@@ -5,7 +5,7 @@ interface IDimensions {
5
5
  offset: number;
6
6
  }
7
7
  export declare class ResponsivityManager {
8
- protected container: HTMLDivElement;
8
+ container: HTMLDivElement;
9
9
  private model;
10
10
  private itemsSelector;
11
11
  private dotsItemSize;
@@ -17,6 +17,8 @@ export declare class ResponsivityManager {
17
17
  private separatorAddConst;
18
18
  private paddingSizeConst;
19
19
  private dotsSizeConst;
20
+ private dotsIconClass;
21
+ private iconClass;
20
22
  protected recalcMinDimensionConst: boolean;
21
23
  getComputedStyle: (elt: Element) => CSSStyleDeclaration;
22
24
  constructor(container: HTMLDivElement, model: AdaptiveActionContainer, itemsSelector: string, dotsItemSize?: number, delayedUpdateFunction?: (callback: () => void) => void);
@@ -13,6 +13,7 @@ declare function findScrollableParent(element: HTMLElement): HTMLElement;
13
13
  declare function activateLazyRenderingChecks(id: string): void;
14
14
  declare function navigateToUrl(url: string): void;
15
15
  declare function wrapUrlForBackgroundImage(url: string): string;
16
+ declare function isBase64URL(url: string): boolean;
16
17
  declare const renamedIcons: any;
17
18
  declare function getIconNameFromProxy(iconName: string): string;
18
19
  export declare function getNewIconName(iconName: string): string;
@@ -72,4 +73,4 @@ export declare function setPropertiesOnElementForAnimation(el: HTMLElement, styl
72
73
  export declare function prepareElementForVerticalAnimation(el: HTMLElement): void;
73
74
  export declare function cleanHtmlElementAfterAnimation(el: HTMLElement): void;
74
75
  export declare function roundTo2Decimals(number: number): number;
75
- export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, activateLazyRenderingChecks, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles, renamedIcons };
76
+ export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, activateLazyRenderingChecks, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles, isBase64URL, renamedIcons };