survey-core 1.11.7 → 1.11.8

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 (240) hide show
  1. package/defaultV2.css +3 -2
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +3 -2
  4. package/defaultV2.fontless.css.map +1 -1
  5. package/defaultV2.fontless.min.css +2 -2
  6. package/defaultV2.min.css +2 -2
  7. package/i18n/arabic.js +1 -1
  8. package/i18n/arabic.min.js +1 -1
  9. package/i18n/basque.js +1 -1
  10. package/i18n/basque.min.js +1 -1
  11. package/i18n/bulgarian.js +1 -1
  12. package/i18n/bulgarian.min.js +1 -1
  13. package/i18n/catalan.js +1 -1
  14. package/i18n/catalan.min.js +1 -1
  15. package/i18n/croatian.js +1 -1
  16. package/i18n/croatian.min.js +1 -1
  17. package/i18n/czech.js +1 -1
  18. package/i18n/czech.min.js +1 -1
  19. package/i18n/danish.js +1 -1
  20. package/i18n/danish.min.js +1 -1
  21. package/i18n/dutch.js +1 -1
  22. package/i18n/dutch.min.js +1 -1
  23. package/i18n/english.js +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/modern.css +1 -1
  114. package/modern.fontless.css +1 -1
  115. package/modern.fontless.min.css +1 -1
  116. package/modern.min.css +1 -1
  117. package/package.json +1 -1
  118. package/plugins/bootstrap-integration.js +1 -1
  119. package/plugins/bootstrap-integration.min.js +1 -1
  120. package/plugins/bootstrap-material-integration.js +1 -1
  121. package/plugins/bootstrap-material-integration.min.js +1 -1
  122. package/survey.core.js +392 -64
  123. package/survey.core.js.map +1 -1
  124. package/survey.core.min.js +3 -3
  125. package/survey.css +1 -1
  126. package/survey.i18n.js +1 -1
  127. package/survey.i18n.min.js +1 -1
  128. package/survey.min.css +1 -1
  129. package/themes/borderless-dark-panelless.js +1 -1
  130. package/themes/borderless-dark-panelless.min.js +1 -1
  131. package/themes/borderless-dark.js +1 -1
  132. package/themes/borderless-dark.min.js +1 -1
  133. package/themes/borderless-light-panelless..js +1 -1
  134. package/themes/borderless-light-panelless..min.js +1 -1
  135. package/themes/borderless-light.js +1 -1
  136. package/themes/borderless-light.min.js +1 -1
  137. package/themes/contrast-dark-panelless.js +1 -1
  138. package/themes/contrast-dark-panelless.min.js +1 -1
  139. package/themes/contrast-dark.js +1 -1
  140. package/themes/contrast-dark.min.js +1 -1
  141. package/themes/contrast-light-panelless.js +1 -1
  142. package/themes/contrast-light-panelless.min.js +1 -1
  143. package/themes/contrast-light.js +1 -1
  144. package/themes/contrast-light.min.js +1 -1
  145. package/themes/default-dark-panelless.js +1 -1
  146. package/themes/default-dark-panelless.min.js +1 -1
  147. package/themes/default-dark.js +1 -1
  148. package/themes/default-dark.min.js +1 -1
  149. package/themes/default-light-panelless.js +1 -1
  150. package/themes/default-light-panelless.min.js +1 -1
  151. package/themes/default-light.js +1 -1
  152. package/themes/default-light.min.js +1 -1
  153. package/themes/doubleborder-dark-panelless.js +1 -1
  154. package/themes/doubleborder-dark-panelless.min.js +1 -1
  155. package/themes/doubleborder-dark.js +1 -1
  156. package/themes/doubleborder-dark.min.js +1 -1
  157. package/themes/doubleborder-light-panelles.js +1 -1
  158. package/themes/doubleborder-light-panelles.min.js +1 -1
  159. package/themes/doubleborder-light.js +1 -1
  160. package/themes/doubleborder-light.min.js +1 -1
  161. package/themes/flat-dark-panelless.js +1 -1
  162. package/themes/flat-dark-panelless.min.js +1 -1
  163. package/themes/flat-dark.js +1 -1
  164. package/themes/flat-dark.min.js +1 -1
  165. package/themes/flat-light-panelless.js +1 -1
  166. package/themes/flat-light-panelless.min.js +1 -1
  167. package/themes/flat-light.js +1 -1
  168. package/themes/flat-light.min.js +1 -1
  169. package/themes/index.js +1 -1
  170. package/themes/index.min.js +1 -1
  171. package/themes/layered-dark-panelless.js +1 -1
  172. package/themes/layered-dark-panelless.min.js +1 -1
  173. package/themes/layered-dark.js +1 -1
  174. package/themes/layered-dark.min.js +1 -1
  175. package/themes/layered-light-panelless.js +1 -1
  176. package/themes/layered-light-panelless.min.js +1 -1
  177. package/themes/layered-light.js +1 -1
  178. package/themes/layered-light.min.js +1 -1
  179. package/themes/plain-dark-panelless.js +1 -1
  180. package/themes/plain-dark-panelless.min.js +1 -1
  181. package/themes/plain-dark.js +1 -1
  182. package/themes/plain-dark.min.js +1 -1
  183. package/themes/plain-light-panelless.js +1 -1
  184. package/themes/plain-light-panelless.min.js +1 -1
  185. package/themes/plain-light.js +1 -1
  186. package/themes/plain-light.min.js +1 -1
  187. package/themes/sharp-dark-panelless.js +1 -1
  188. package/themes/sharp-dark-panelless.min.js +1 -1
  189. package/themes/sharp-dark.js +1 -1
  190. package/themes/sharp-dark.min.js +1 -1
  191. package/themes/sharp-light-panelless.js +1 -1
  192. package/themes/sharp-light-panelless.min.js +1 -1
  193. package/themes/sharp-light.js +1 -1
  194. package/themes/sharp-light.min.js +1 -1
  195. package/themes/solid-dark-panelless.js +1 -1
  196. package/themes/solid-dark-panelless.min.js +1 -1
  197. package/themes/solid-dark.js +1 -1
  198. package/themes/solid-dark.min.js +1 -1
  199. package/themes/solid-light-panelless.js +1 -1
  200. package/themes/solid-light-panelless.min.js +1 -1
  201. package/themes/solid-light.js +1 -1
  202. package/themes/solid-light.min.js +1 -1
  203. package/themes/three-dimensional-dark-panelless.js +1 -1
  204. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  205. package/themes/three-dimensional-dark.js +1 -1
  206. package/themes/three-dimensional-dark.min.js +1 -1
  207. package/themes/three-dimensional-light-panelless.js +1 -1
  208. package/themes/three-dimensional-light-panelless.min.js +1 -1
  209. package/themes/three-dimensional-light.js +1 -1
  210. package/themes/three-dimensional-light.min.js +1 -1
  211. package/ts3.4/typings/base-interfaces.d.ts +6 -0
  212. package/ts3.4/typings/dropdownListModel.d.ts +1 -1
  213. package/ts3.4/typings/jsonobject.d.ts +1 -1
  214. package/ts3.4/typings/panel-layout-column.d.ts +9 -0
  215. package/ts3.4/typings/panel.d.ts +15 -0
  216. package/ts3.4/typings/question.d.ts +3 -1
  217. package/ts3.4/typings/question_custom.d.ts +3 -0
  218. package/ts3.4/typings/question_dropdown.d.ts +1 -1
  219. package/ts3.4/typings/question_multipletext.d.ts +3 -0
  220. package/ts3.4/typings/question_rating.d.ts +0 -1
  221. package/ts3.4/typings/question_tagbox.d.ts +0 -1
  222. package/ts3.4/typings/settings.d.ts +29 -0
  223. package/ts3.4/typings/survey-element.d.ts +4 -3
  224. package/ts3.4/typings/survey.d.ts +1 -0
  225. package/ts3.4/typings/utils/utils.d.ts +1 -0
  226. package/typings/base-interfaces.d.ts +6 -0
  227. package/typings/dropdownListModel.d.ts +1 -1
  228. package/typings/jsonobject.d.ts +1 -1
  229. package/typings/panel-layout-column.d.ts +9 -0
  230. package/typings/panel.d.ts +15 -0
  231. package/typings/question.d.ts +3 -1
  232. package/typings/question_custom.d.ts +3 -0
  233. package/typings/question_dropdown.d.ts +1 -1
  234. package/typings/question_multipletext.d.ts +3 -0
  235. package/typings/question_rating.d.ts +0 -1
  236. package/typings/question_tagbox.d.ts +0 -1
  237. package/typings/settings.d.ts +29 -0
  238. package/typings/survey-element.d.ts +5 -3
  239. package/typings/survey.d.ts +1 -0
  240. package/typings/utils/utils.d.ts +1 -0
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * surveyjs - Survey JavaScript library v1.11.7
2
+ * surveyjs - Survey JavaScript library v1.11.8
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.11.7
2
+ * surveyjs - Survey JavaScript library v1.11.8
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.11.7
2
+ * surveyjs - Survey JavaScript library v1.11.8
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.11.7
2
+ * surveyjs - Survey JavaScript library v1.11.8
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.11.7
2
+ * surveyjs - Survey JavaScript library v1.11.8
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.11.7
2
+ * surveyjs - Survey JavaScript library v1.11.8
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.11.7
2
+ * surveyjs - Survey JavaScript library v1.11.8
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.11.7
2
+ * surveyjs - Survey JavaScript library v1.11.8
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.11.7
2
+ * surveyjs - Survey JavaScript library v1.11.8
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.11.7
2
+ * surveyjs - Survey JavaScript library v1.11.8
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.11.7
2
+ * surveyjs - Survey JavaScript library v1.11.8
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
  */
@@ -6,6 +6,7 @@ import { SurveyError } from "./survey-error";
6
6
  import { Base } from "./base";
7
7
  import { IAction } from "./actions/action";
8
8
  import { PanelModel } from "./panel";
9
+ import { PanelLayoutColumnModel } from "./panel-layout-column";
9
10
  import { QuestionPanelDynamicModel } from "./question_paneldynamic";
10
11
  import { DragDropAllowEvent } from "./survey-events-api";
11
12
  import { PopupModel } from "./popup";
@@ -64,6 +65,7 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
64
65
  getRendererForString(element: Base, name: string): string;
65
66
  getRendererContextForString(element: Base, locStr: LocalizableString): any;
66
67
  getExpressionDisplayValue(question: IQuestion, value: any, displayValue: string): string;
68
+ gridLayoutEnabled: boolean;
67
69
  isDisplayMode: boolean;
68
70
  isDesignMode: boolean;
69
71
  areInvisibleElementsShowing: boolean;
@@ -212,6 +214,7 @@ export interface IElement extends IConditionRunner, ISurveyElement {
212
214
  isCollapsed: boolean;
213
215
  rightIndent: number;
214
216
  startWithNewLine: boolean;
217
+ colSpan?: number;
215
218
  registerPropertyChangedHandlers(propertyNames: Array<string>, handler: any, key: string): void;
216
219
  registerFunctionOnPropertyValueChanged(name: string, func: any, key: string): void;
217
220
  unRegisterFunctionOnPropertyValueChanged(name: string, key: string): void;
@@ -225,6 +228,7 @@ export interface IElement extends IConditionRunner, ISurveyElement {
225
228
  clearErrors(): any;
226
229
  dispose(): void;
227
230
  needResponsiveWidth(): boolean;
231
+ updateRootStyle(): void;
228
232
  }
229
233
  export interface IQuestion extends IElement, ISurveyErrorOwner {
230
234
  hasTitle: boolean;
@@ -255,6 +259,8 @@ export interface IPanel extends ISurveyElement, IParentElement {
255
259
  getQuestionTitleWidth(): string;
256
260
  getQuestionStartIndex(): string;
257
261
  getQuestionErrorLocation(): string;
262
+ getColumsForElement(el: IElement): Array<PanelLayoutColumnModel>;
263
+ updateColumns(): void;
258
264
  parent: IPanel;
259
265
  elementWidthChanged(el: IElement): any;
260
266
  indexOf(el: IElement): number;
@@ -64,7 +64,7 @@ export declare class DropdownListModel extends Base {
64
64
  readonly showHintString: boolean;
65
65
  readonly hintStringSuffix: string;
66
66
  readonly hintStringMiddle: string;
67
- private qustionPropertyChangedHandler;
67
+ private questionPropertyChangedHandler;
68
68
  constructor(question: Question, onSelectionChanged?: (item: IAction, ...params: any[]) => void);
69
69
  readonly popupModel: PopupModel;
70
70
  readonly noTabIndex: boolean;
@@ -9,7 +9,7 @@ export interface IPropertyDecoratorOptions<T = any> {
9
9
  onGetTextCallback?: (str: string) => string;
10
10
  defaultStr?: string;
11
11
  } | boolean;
12
- onSet?: (val: T, objectInstance: any) => void;
12
+ onSet?: (val: T, objectInstance: any, prevVal?: T) => void;
13
13
  }
14
14
  export declare function property(options?: IPropertyDecoratorOptions): (target: any, key: string) => void;
15
15
  export interface IArrayPropertyDecoratorOptions {
@@ -0,0 +1,9 @@
1
+ import { Base } from "./base";
2
+ export declare class PanelLayoutColumnModel extends Base {
3
+ width: number;
4
+ effectiveWidth: number;
5
+ questionTitleWidth: string;
6
+ constructor(width?: number, questionTitleWidth?: string);
7
+ getType(): string;
8
+ isEmpty(): boolean;
9
+ }
@@ -10,6 +10,7 @@ import { IAction } from "./actions/action";
10
10
  import { ActionContainer } from "./actions/container";
11
11
  import { DragDropInfo } from "./drag-drop-helper-v1";
12
12
  import { AnimationGroup } from "./utils/animation";
13
+ import { PanelLayoutColumnModel } from "./panel-layout-column";
13
14
  export declare class QuestionRowModel extends Base {
14
15
  panel: PanelModelBase;
15
16
  private static rowCounter;
@@ -57,6 +58,9 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
57
58
  private elementsValue;
58
59
  private isQuestionsReady;
59
60
  private questionsValue;
61
+ private _columns;
62
+ private _columnsReady;
63
+ layoutColumns: Array<PanelLayoutColumnModel>;
60
64
  addElementCallback: (element: IElement) => void;
61
65
  removeElementCallback: (element: IElement) => void;
62
66
  onGetQuestionTitleLocation: () => string;
@@ -260,6 +264,11 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
260
264
  addPanelsIntoList(list: Array<IPanel>, visibleOnly?: boolean, includingDesignTime?: boolean): void;
261
265
  private addElementsToList;
262
266
  private addElementsToListCore;
267
+ private calcMaxRowColSpan;
268
+ private updateColumnWidth;
269
+ private onColumnPropertyValueChangedCallback;
270
+ updateColumns(): void;
271
+ updateRootStyle(): void;
263
272
  updateCustomWidgets(): void;
264
273
  /*
265
274
  * Sets a title location relative to the input field for questions that belong to this panel/page.
@@ -288,6 +297,9 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
288
297
  */
289
298
  questionTitleWidth: string;
290
299
  getQuestionTitleWidth(): string;
300
+ readonly columns: Array<PanelLayoutColumnModel>;
301
+ protected generateColumns(): void;
302
+ getColumsForElement(el: IElement): Array<PanelLayoutColumnModel>;
291
303
  protected getStartIndex(): string;
292
304
  getQuestionStartIndex(): string;
293
305
  getChildrenLayoutType(): string;
@@ -435,6 +447,7 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
435
447
  readonly no: string;
436
448
  readonly cssError: string;
437
449
  protected getCssError(cssClasses: any): string;
450
+ getSerializableColumnsValue(): Array<PanelLayoutColumnModel>;
438
451
  dispose(): void;
439
452
  }
440
453
  /**
@@ -449,6 +462,8 @@ export declare class PanelModel extends PanelModelBase implements IElement {
449
462
  getType(): string;
450
463
  readonly contentId: string;
451
464
  getSurvey(live?: boolean): ISurvey;
465
+ readonly hasTextInTitle: boolean;
466
+ private calcHasTextInTitle;
452
467
  onSurveyLoad(): void;
453
468
  protected onSetData(): void;
454
469
  readonly isPanel: boolean;
@@ -83,6 +83,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
83
83
  themeChanged(theme: ITheme): void;
84
84
  isMobile: boolean;
85
85
  forceIsInputReadOnly: boolean;
86
+ ariaExpanded: "true" | "false";
86
87
  constructor(name: string);
87
88
  protected getDefaultTitle(): string;
88
89
  protected createLocTitleProperty(): LocalizableString;
@@ -267,6 +268,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
267
268
  private notifySurveyVisibilityChanged;
268
269
  protected clearValueOnHidding(isClearOnHidden: boolean): void;
269
270
  readonly titleWidth: string;
271
+ getPercentQuestionTitleWidth(): number;
270
272
  /**
271
273
  * Returns title location calculated based on the question's `titleLocation` property and the `questionTitleLocation` property of the question's containers (survey, page, or panel).
272
274
  * @see titleLocation
@@ -414,6 +416,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
414
416
  */
415
417
  focus(onError?: boolean, scrollIfVisible?: boolean): void;
416
418
  private focuscore;
419
+ focusInputElement(onError: boolean): void;
417
420
  expandAllParents(): void;
418
421
  private expandAllParentsCore;
419
422
  focusIn(): void;
@@ -863,7 +866,6 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
863
866
  readonly ariaInvalid: "true" | "false";
864
867
  readonly ariaLabelledBy: string;
865
868
  readonly ariaDescribedBy: string;
866
- readonly ariaExpanded: string;
867
869
  readonly ariaErrormessage: string;
868
870
  readonly a11y_input_ariaRole: string;
869
871
  readonly a11y_input_ariaRequired: "true" | "false";
@@ -4,6 +4,7 @@ import { Base } from "./base";
4
4
  import { ISurveyImpl, ISurveyData, ITextProcessor, IPanel, IElement, IQuestion, IProgressInfo } from "./base-interfaces";
5
5
  import { SurveyElement } from "./survey-element";
6
6
  import { PanelModel } from "./panel";
7
+ import { PanelLayoutColumnModel } from "./panel-layout-column";
7
8
  import { HashTable } from "./helpers";
8
9
  import { ItemValue } from "./itemvalue";
9
10
  import { SurveyError } from "./survey-error";
@@ -343,6 +344,8 @@ export declare abstract class QuestionCustomModelBase extends Question implement
343
344
  removeElement(element: IElement): boolean;
344
345
  getQuestionTitleLocation(): string;
345
346
  getQuestionTitleWidth(): string;
347
+ getColumsForElement(el: IElement): Array<PanelLayoutColumnModel>;
348
+ updateColumns(): void;
346
349
  getQuestionStartIndex(): string;
347
350
  getChildrenLayoutType(): string;
348
351
  elementWidthChanged(el: IElement): void;
@@ -124,7 +124,6 @@ export declare class QuestionDropdownModel extends QuestionSelectBase {
124
124
  private readonly selectedItemText: any;
125
125
  dropdownListModel: DropdownListModel;
126
126
  readonly popupModel: PopupModel;
127
- readonly ariaExpanded: string;
128
127
  onOpened: EventBase<QuestionDropdownModel>;
129
128
  onOpenedCallBack(): void;
130
129
  protected onSelectedItemValuesChangedHandler(newValue: any): void;
@@ -135,6 +134,7 @@ export declare class QuestionDropdownModel extends QuestionSelectBase {
135
134
  protected getFirstInputElementId(): string;
136
135
  getInputId(): string;
137
136
  clearValue(keepComment?: boolean): void;
137
+ afterRenderCore(el: any): void;
138
138
  onClick(e: any): void;
139
139
  onKeyUp(event: any): void;
140
140
  dispose(): void;
@@ -7,6 +7,7 @@ import { SurveyError } from "./survey-error";
7
7
  import { ILocalizableOwner, LocalizableString } from "./localizablestring";
8
8
  import { HashTable } from "./helpers";
9
9
  import { InputMaskBase } from "./mask/mask_base";
10
+ import { PanelLayoutColumnModel } from "./panel-layout-column";
10
11
  export interface IMultipleTextData extends ILocalizableOwner, IPanel {
11
12
  getSurvey(): ISurvey;
12
13
  getTextProcessor(): ITextProcessor;
@@ -283,6 +284,8 @@ export declare class QuestionMultipleTextModel extends Question implements IMult
283
284
  removeElement(element: IElement): boolean;
284
285
  getQuestionTitleLocation(): string;
285
286
  getQuestionTitleWidth(): string;
287
+ getColumsForElement(el: IElement): Array<PanelLayoutColumnModel>;
288
+ updateColumns(): void;
286
289
  getQuestionStartIndex(): string;
287
290
  getChildrenLayoutType(): string;
288
291
  elementWidthChanged(el: IElement): void;
@@ -268,7 +268,6 @@ export declare class QuestionRatingModel extends Question {
268
268
  protected onBeforeSetCompactRenderer(): void;
269
269
  protected getCompactRenderAs(): string;
270
270
  protected getDesktopRenderAs(): string;
271
- readonly ariaExpanded: string;
272
271
  private dropdownListModelValue;
273
272
  dropdownListModel: DropdownListModel;
274
273
  protected updateCssClasses(res: any, css: any): void;
@@ -70,7 +70,6 @@ export declare class QuestionTagboxModel extends QuestionCheckboxModel {
70
70
  getType(): string;
71
71
  readonly ariaRole: string;
72
72
  readonly popupModel: PopupModel;
73
- readonly ariaExpanded: string;
74
73
  getControlClass(): string;
75
74
  onOpened: EventBase<QuestionTagboxModel>;
76
75
  onOpenedCallBack(): void;
@@ -588,5 +588,34 @@ export declare var settings: {
588
588
  [key: string]: RegExp;
589
589
  };
590
590
  };
591
+ /**
592
+ * Specifies whether to store date-time values in the following format: `"YYYY-MM-DDThh:mm:ss.sssZ"`. Applies only to form fields with [`inputType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#inputType) set to `"datetime-local"`.
593
+ *
594
+ * Default value: `false`
595
+ *
596
+ * If you enable this setting, date-time values are converted from local time to UTC when they are saved to the survey's [`data`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#data) object, while the question values remain in local time. Therefore, when you specify default values using a question's [`defaultValue`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#defaultValue) property, you need to use local time, but if you specify them using the `data` object, use a UTC date-time value in the following format: `"YYYY-MM-DDThh:mm:ss.sssZ"`.
597
+ *
598
+ * ```js
599
+ * const surveyJson = {
600
+ * "elements": [{
601
+ * "name": "datetime",
602
+ * "type": "text",
603
+ * "title": "Select a date and time",
604
+ * "inputType": "datetime-local",
605
+ * "defaultValue": "2024-07-16T12:15:00" // Local date-time value
606
+ * }]
607
+ * }
608
+ * ```
609
+ *
610
+ * ```js
611
+ * import { Model } from "survey-core";
612
+ * const surveyJson = { ... }
613
+ * const survey = new Model(surveyJson);
614
+ *
615
+ * survey.data = {
616
+ * datetime: "2024-07-16T12:15:00.000Z" // UTC date-time value
617
+ * }
618
+ * ```
619
+ */
591
620
  storeUtcDates: boolean;
592
621
  };
@@ -109,6 +109,8 @@ export declare class SurveyElement<E = any> extends SurveyElementCore implements
109
109
  private static focusElementCore;
110
110
  static CreateDisabledDesignElements: boolean;
111
111
  disableDesignActions: boolean;
112
+ effectiveColSpan: number;
113
+ colSpan: number;
112
114
  constructor(name: string);
113
115
  protected onPropertyValueChanged(name: string, oldValue: any, newValue: any): void;
114
116
  protected getSkeletonComponentNameCore(): string;
@@ -378,9 +380,8 @@ export declare class SurveyElement<E = any> extends SurveyElementCore implements
378
380
  paddingLeft: string;
379
381
  paddingRight: string;
380
382
  allowRootStyle: boolean;
381
- readonly rootStyle: {
382
- [index: string]: any;
383
- };
383
+ rootStyle: any;
384
+ updateRootStyle(): void;
384
385
  private isContainsSelection;
385
386
  readonly clickTitleFunction: any;
386
387
  protected needClickTitleFunction(): boolean;
@@ -2600,6 +2600,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2600
2600
  * @see stopTimer
2601
2601
  */
2602
2602
  showTimerPanelMode: string;
2603
+ gridLayoutEnabled: boolean;
2603
2604
  /*
2604
2605
  * Specifies how to calculate the survey width.
2605
2606
  *
@@ -53,4 +53,5 @@ export declare function compareArrays<T>(oldValue: Array<T>, newValue: Array<T>,
53
53
  }>;
54
54
  mergedItems: Array<T>;
55
55
  };
56
+ export declare function roundTo2Decimals(number: number): number;
56
57
  export { mergeValues, getElementWidth, isContainerVisible, classesToSelector, compareVersions, confirmAction, confirmActionAsync, detectIEOrEdge, detectIEBrowser, loadFileFromBase64, isMobile, isShadowDOM, getElement, isElementVisible, findScrollableParent, scrollElementByChildId, navigateToUrl, wrapUrlForBackgroundImage, createSvg, getIconNameFromProxy, increaseHeightByContent, getOriginalEvent, preventDefaults, findParentByClassNames, getFirstVisibleChild, chooseFiles };
@@ -6,6 +6,7 @@ import { SurveyError } from "./survey-error";
6
6
  import { Base } from "./base";
7
7
  import { IAction } from "./actions/action";
8
8
  import { PanelModel } from "./panel";
9
+ import { PanelLayoutColumnModel } from "./panel-layout-column";
9
10
  import { QuestionPanelDynamicModel } from "./question_paneldynamic";
10
11
  import { DragDropAllowEvent } from "./survey-events-api";
11
12
  import { PopupModel } from "./popup";
@@ -64,6 +65,7 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
64
65
  getRendererForString(element: Base, name: string): string;
65
66
  getRendererContextForString(element: Base, locStr: LocalizableString): any;
66
67
  getExpressionDisplayValue(question: IQuestion, value: any, displayValue: string): string;
68
+ gridLayoutEnabled: boolean;
67
69
  isDisplayMode: boolean;
68
70
  isDesignMode: boolean;
69
71
  areInvisibleElementsShowing: boolean;
@@ -212,6 +214,7 @@ export interface IElement extends IConditionRunner, ISurveyElement {
212
214
  isCollapsed: boolean;
213
215
  rightIndent: number;
214
216
  startWithNewLine: boolean;
217
+ colSpan?: number;
215
218
  registerPropertyChangedHandlers(propertyNames: Array<string>, handler: any, key: string): void;
216
219
  registerFunctionOnPropertyValueChanged(name: string, func: any, key: string): void;
217
220
  unRegisterFunctionOnPropertyValueChanged(name: string, key: string): void;
@@ -225,6 +228,7 @@ export interface IElement extends IConditionRunner, ISurveyElement {
225
228
  clearErrors(): any;
226
229
  dispose(): void;
227
230
  needResponsiveWidth(): boolean;
231
+ updateRootStyle(): void;
228
232
  }
229
233
  export interface IQuestion extends IElement, ISurveyErrorOwner {
230
234
  hasTitle: boolean;
@@ -255,6 +259,8 @@ export interface IPanel extends ISurveyElement, IParentElement {
255
259
  getQuestionTitleWidth(): string;
256
260
  getQuestionStartIndex(): string;
257
261
  getQuestionErrorLocation(): string;
262
+ getColumsForElement(el: IElement): Array<PanelLayoutColumnModel>;
263
+ updateColumns(): void;
258
264
  parent: IPanel;
259
265
  elementWidthChanged(el: IElement): any;
260
266
  indexOf(el: IElement): number;
@@ -65,7 +65,7 @@ export declare class DropdownListModel extends Base {
65
65
  get showHintString(): boolean;
66
66
  get hintStringSuffix(): string;
67
67
  get hintStringMiddle(): string;
68
- private qustionPropertyChangedHandler;
68
+ private questionPropertyChangedHandler;
69
69
  constructor(question: Question, onSelectionChanged?: (item: IAction, ...params: any[]) => void);
70
70
  get popupModel(): PopupModel;
71
71
  get noTabIndex(): boolean;
@@ -9,7 +9,7 @@ export interface IPropertyDecoratorOptions<T = any> {
9
9
  onGetTextCallback?: (str: string) => string;
10
10
  defaultStr?: string;
11
11
  } | boolean;
12
- onSet?: (val: T, objectInstance: any) => void;
12
+ onSet?: (val: T, objectInstance: any, prevVal?: T) => void;
13
13
  }
14
14
  export declare function property(options?: IPropertyDecoratorOptions): (target: any, key: string) => void;
15
15
  export interface IArrayPropertyDecoratorOptions {
@@ -0,0 +1,9 @@
1
+ import { Base } from "./base";
2
+ export declare class PanelLayoutColumnModel extends Base {
3
+ width: number;
4
+ effectiveWidth: number;
5
+ questionTitleWidth: string;
6
+ constructor(width?: number, questionTitleWidth?: string);
7
+ getType(): string;
8
+ isEmpty(): boolean;
9
+ }
@@ -10,6 +10,7 @@ import { IAction } from "./actions/action";
10
10
  import { ActionContainer } from "./actions/container";
11
11
  import { DragDropInfo } from "./drag-drop-helper-v1";
12
12
  import { AnimationGroup } from "./utils/animation";
13
+ import { PanelLayoutColumnModel } from "./panel-layout-column";
13
14
  export declare class QuestionRowModel extends Base {
14
15
  panel: PanelModelBase;
15
16
  private static rowCounter;
@@ -60,6 +61,9 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
60
61
  private elementsValue;
61
62
  private isQuestionsReady;
62
63
  private questionsValue;
64
+ private _columns;
65
+ private _columnsReady;
66
+ layoutColumns: Array<PanelLayoutColumnModel>;
63
67
  addElementCallback: (element: IElement) => void;
64
68
  removeElementCallback: (element: IElement) => void;
65
69
  onGetQuestionTitleLocation: () => string;
@@ -271,6 +275,11 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
271
275
  addPanelsIntoList(list: Array<IPanel>, visibleOnly?: boolean, includingDesignTime?: boolean): void;
272
276
  private addElementsToList;
273
277
  private addElementsToListCore;
278
+ private calcMaxRowColSpan;
279
+ private updateColumnWidth;
280
+ private onColumnPropertyValueChangedCallback;
281
+ updateColumns(): void;
282
+ updateRootStyle(): void;
274
283
  updateCustomWidgets(): void;
275
284
  /**
276
285
  * Sets a title location relative to the input field for questions that belong to this panel/page.
@@ -300,6 +309,9 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
300
309
  */
301
310
  questionTitleWidth: string;
302
311
  getQuestionTitleWidth(): string;
312
+ get columns(): Array<PanelLayoutColumnModel>;
313
+ protected generateColumns(): void;
314
+ getColumsForElement(el: IElement): Array<PanelLayoutColumnModel>;
303
315
  protected getStartIndex(): string;
304
316
  getQuestionStartIndex(): string;
305
317
  getChildrenLayoutType(): string;
@@ -450,6 +462,7 @@ export declare class PanelModelBase extends SurveyElement<Question> implements I
450
462
  get no(): string;
451
463
  get cssError(): string;
452
464
  protected getCssError(cssClasses: any): string;
465
+ getSerializableColumnsValue(): Array<PanelLayoutColumnModel>;
453
466
  dispose(): void;
454
467
  }
455
468
  /**
@@ -464,6 +477,8 @@ export declare class PanelModel extends PanelModelBase implements IElement {
464
477
  getType(): string;
465
478
  get contentId(): string;
466
479
  getSurvey(live?: boolean): ISurvey;
480
+ get hasTextInTitle(): boolean;
481
+ private calcHasTextInTitle;
467
482
  onSurveyLoad(): void;
468
483
  protected onSetData(): void;
469
484
  get isPanel(): boolean;
@@ -83,6 +83,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
83
83
  themeChanged(theme: ITheme): void;
84
84
  isMobile: boolean;
85
85
  forceIsInputReadOnly: boolean;
86
+ ariaExpanded: "true" | "false";
86
87
  constructor(name: string);
87
88
  protected getDefaultTitle(): string;
88
89
  protected createLocTitleProperty(): LocalizableString;
@@ -275,6 +276,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
275
276
  private notifySurveyVisibilityChanged;
276
277
  protected clearValueOnHidding(isClearOnHidden: boolean): void;
277
278
  get titleWidth(): string;
279
+ getPercentQuestionTitleWidth(): number;
278
280
  /**
279
281
  * Returns title location calculated based on the question's `titleLocation` property and the `questionTitleLocation` property of the question's containers (survey, page, or panel).
280
282
  * @see titleLocation
@@ -428,6 +430,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
428
430
  */
429
431
  focus(onError?: boolean, scrollIfVisible?: boolean): void;
430
432
  private focuscore;
433
+ focusInputElement(onError: boolean): void;
431
434
  expandAllParents(): void;
432
435
  private expandAllParentsCore;
433
436
  focusIn(): void;
@@ -899,7 +902,6 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
899
902
  get ariaInvalid(): "true" | "false";
900
903
  get ariaLabelledBy(): string;
901
904
  get ariaDescribedBy(): string;
902
- get ariaExpanded(): string;
903
905
  get ariaErrormessage(): string;
904
906
  get a11y_input_ariaRole(): string;
905
907
  get a11y_input_ariaRequired(): "true" | "false";
@@ -4,6 +4,7 @@ import { Base } from "./base";
4
4
  import { ISurveyImpl, ISurveyData, ITextProcessor, IPanel, IElement, IQuestion, IProgressInfo } from "./base-interfaces";
5
5
  import { SurveyElement } from "./survey-element";
6
6
  import { PanelModel } from "./panel";
7
+ import { PanelLayoutColumnModel } from "./panel-layout-column";
7
8
  import { HashTable } from "./helpers";
8
9
  import { ItemValue } from "./itemvalue";
9
10
  import { SurveyError } from "./survey-error";
@@ -343,6 +344,8 @@ export declare abstract class QuestionCustomModelBase extends Question implement
343
344
  removeElement(element: IElement): boolean;
344
345
  getQuestionTitleLocation(): string;
345
346
  getQuestionTitleWidth(): string;
347
+ getColumsForElement(el: IElement): Array<PanelLayoutColumnModel>;
348
+ updateColumns(): void;
346
349
  getQuestionStartIndex(): string;
347
350
  getChildrenLayoutType(): string;
348
351
  elementWidthChanged(el: IElement): void;
@@ -133,7 +133,6 @@ export declare class QuestionDropdownModel extends QuestionSelectBase {
133
133
  get dropdownListModel(): DropdownListModel;
134
134
  set dropdownListModel(val: DropdownListModel);
135
135
  get popupModel(): PopupModel;
136
- get ariaExpanded(): string;
137
136
  onOpened: EventBase<QuestionDropdownModel>;
138
137
  onOpenedCallBack(): void;
139
138
  protected onSelectedItemValuesChangedHandler(newValue: any): void;
@@ -144,6 +143,7 @@ export declare class QuestionDropdownModel extends QuestionSelectBase {
144
143
  protected getFirstInputElementId(): string;
145
144
  getInputId(): string;
146
145
  clearValue(keepComment?: boolean): void;
146
+ afterRenderCore(el: any): void;
147
147
  onClick(e: any): void;
148
148
  onKeyUp(event: any): void;
149
149
  dispose(): void;
@@ -7,6 +7,7 @@ import { SurveyError } from "./survey-error";
7
7
  import { ILocalizableOwner, LocalizableString } from "./localizablestring";
8
8
  import { HashTable } from "./helpers";
9
9
  import { InputMaskBase } from "./mask/mask_base";
10
+ import { PanelLayoutColumnModel } from "./panel-layout-column";
10
11
  export interface IMultipleTextData extends ILocalizableOwner, IPanel {
11
12
  getSurvey(): ISurvey;
12
13
  getTextProcessor(): ITextProcessor;
@@ -307,6 +308,8 @@ export declare class QuestionMultipleTextModel extends Question implements IMult
307
308
  removeElement(element: IElement): boolean;
308
309
  getQuestionTitleLocation(): string;
309
310
  getQuestionTitleWidth(): string;
311
+ getColumsForElement(el: IElement): Array<PanelLayoutColumnModel>;
312
+ updateColumns(): void;
310
313
  getQuestionStartIndex(): string;
311
314
  getChildrenLayoutType(): string;
312
315
  elementWidthChanged(el: IElement): void;
@@ -278,7 +278,6 @@ export declare class QuestionRatingModel extends Question {
278
278
  protected onBeforeSetCompactRenderer(): void;
279
279
  protected getCompactRenderAs(): string;
280
280
  protected getDesktopRenderAs(): string;
281
- get ariaExpanded(): string;
282
281
  private dropdownListModelValue;
283
282
  set dropdownListModel(val: DropdownListModel);
284
283
  get dropdownListModel(): DropdownListModel;
@@ -73,7 +73,6 @@ export declare class QuestionTagboxModel extends QuestionCheckboxModel {
73
73
  getType(): string;
74
74
  get ariaRole(): string;
75
75
  get popupModel(): PopupModel;
76
- get ariaExpanded(): string;
77
76
  getControlClass(): string;
78
77
  onOpened: EventBase<QuestionTagboxModel>;
79
78
  onOpenedCallBack(): void;