survey-core 1.9.125 → 1.9.127

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 (259) hide show
  1. package/defaultV2.css +144 -58
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +144 -58
  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/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 +70 -48
  112. package/modern.css.map +1 -1
  113. package/modern.fontless.css +70 -48
  114. package/modern.fontless.css.map +1 -1
  115. package/modern.fontless.min.css +2 -2
  116. package/modern.min.css +2 -2
  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 +614 -253
  123. package/survey.core.js.map +1 -1
  124. package/survey.core.min.js +3 -3
  125. package/survey.css +70 -48
  126. package/survey.css.map +1 -1
  127. package/survey.i18n.js +1 -1
  128. package/survey.i18n.min.js +1 -1
  129. package/survey.min.css +2 -2
  130. package/themes/borderless-dark-panelless.js +1 -1
  131. package/themes/borderless-dark-panelless.min.js +1 -1
  132. package/themes/borderless-dark.js +1 -1
  133. package/themes/borderless-dark.min.js +1 -1
  134. package/themes/borderless-light-panelless..js +1 -1
  135. package/themes/borderless-light-panelless..min.js +1 -1
  136. package/themes/borderless-light.js +1 -1
  137. package/themes/borderless-light.min.js +1 -1
  138. package/themes/contrast-dark-panelless.js +1 -1
  139. package/themes/contrast-dark-panelless.min.js +1 -1
  140. package/themes/contrast-dark.js +1 -1
  141. package/themes/contrast-dark.min.js +1 -1
  142. package/themes/contrast-light-panelless.js +1 -1
  143. package/themes/contrast-light-panelless.min.js +1 -1
  144. package/themes/contrast-light.js +1 -1
  145. package/themes/contrast-light.min.js +1 -1
  146. package/themes/default-dark-panelless.js +1 -1
  147. package/themes/default-dark-panelless.min.js +1 -1
  148. package/themes/default-dark.js +1 -1
  149. package/themes/default-dark.min.js +1 -1
  150. package/themes/default-light-panelless.js +1 -1
  151. package/themes/default-light-panelless.min.js +1 -1
  152. package/themes/default-light.js +1 -1
  153. package/themes/default-light.min.js +1 -1
  154. package/themes/doubleborder-dark-panelless.js +1 -1
  155. package/themes/doubleborder-dark-panelless.min.js +1 -1
  156. package/themes/doubleborder-dark.js +1 -1
  157. package/themes/doubleborder-dark.min.js +1 -1
  158. package/themes/doubleborder-light-panelles.js +1 -1
  159. package/themes/doubleborder-light-panelles.min.js +1 -1
  160. package/themes/doubleborder-light.js +1 -1
  161. package/themes/doubleborder-light.min.js +1 -1
  162. package/themes/flat-dark-panelless.js +1 -1
  163. package/themes/flat-dark-panelless.min.js +1 -1
  164. package/themes/flat-dark.js +1 -1
  165. package/themes/flat-dark.min.js +1 -1
  166. package/themes/flat-light-panelless.js +1 -1
  167. package/themes/flat-light-panelless.min.js +1 -1
  168. package/themes/flat-light.js +1 -1
  169. package/themes/flat-light.min.js +1 -1
  170. package/themes/index.js +1 -1
  171. package/themes/index.min.js +1 -1
  172. package/themes/layered-dark-panelless.js +1 -1
  173. package/themes/layered-dark-panelless.min.js +1 -1
  174. package/themes/layered-dark.js +1 -1
  175. package/themes/layered-dark.min.js +1 -1
  176. package/themes/layered-light-panelless.js +1 -1
  177. package/themes/layered-light-panelless.min.js +1 -1
  178. package/themes/layered-light.js +1 -1
  179. package/themes/layered-light.min.js +1 -1
  180. package/themes/plain-dark-panelless.js +1 -1
  181. package/themes/plain-dark-panelless.min.js +1 -1
  182. package/themes/plain-dark.js +1 -1
  183. package/themes/plain-dark.min.js +1 -1
  184. package/themes/plain-light-panelless.js +1 -1
  185. package/themes/plain-light-panelless.min.js +1 -1
  186. package/themes/plain-light.js +1 -1
  187. package/themes/plain-light.min.js +1 -1
  188. package/themes/sharp-dark-panelless.js +1 -1
  189. package/themes/sharp-dark-panelless.min.js +1 -1
  190. package/themes/sharp-dark.js +1 -1
  191. package/themes/sharp-dark.min.js +1 -1
  192. package/themes/sharp-light-panelless.js +1 -1
  193. package/themes/sharp-light-panelless.min.js +1 -1
  194. package/themes/sharp-light.js +1 -1
  195. package/themes/sharp-light.min.js +1 -1
  196. package/themes/solid-dark-panelless.js +1 -1
  197. package/themes/solid-dark-panelless.min.js +1 -1
  198. package/themes/solid-dark.js +1 -1
  199. package/themes/solid-dark.min.js +1 -1
  200. package/themes/solid-light-panelless.js +1 -1
  201. package/themes/solid-light-panelless.min.js +1 -1
  202. package/themes/solid-light.js +1 -1
  203. package/themes/solid-light.min.js +1 -1
  204. package/themes/three-dimensional-dark-panelless.js +1 -1
  205. package/themes/three-dimensional-dark-panelless.min.js +1 -1
  206. package/themes/three-dimensional-dark.js +1 -1
  207. package/themes/three-dimensional-dark.min.js +1 -1
  208. package/themes/three-dimensional-light-panelless.js +1 -1
  209. package/themes/three-dimensional-light-panelless.min.js +1 -1
  210. package/themes/three-dimensional-light.js +1 -1
  211. package/themes/three-dimensional-light.min.js +1 -1
  212. package/ts3.4/typings/base-interfaces.d.ts +4 -0
  213. package/ts3.4/typings/base.d.ts +4 -2
  214. package/ts3.4/typings/defaultCss/cssmodern.d.ts +6 -1
  215. package/ts3.4/typings/defaultCss/cssstandard.d.ts +6 -1
  216. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +9 -1
  217. package/ts3.4/typings/helpers.d.ts +1 -0
  218. package/ts3.4/typings/jsonobject.d.ts +12 -4
  219. package/ts3.4/typings/popup-survey.d.ts +8 -2
  220. package/ts3.4/typings/question.d.ts +1 -0
  221. package/ts3.4/typings/question_baseselect.d.ts +2 -0
  222. package/ts3.4/typings/question_boolean.d.ts +2 -0
  223. package/ts3.4/typings/question_custom.d.ts +8 -0
  224. package/ts3.4/typings/question_matrix.d.ts +13 -1
  225. package/ts3.4/typings/question_matrixdropdowncolumn.d.ts +0 -1
  226. package/ts3.4/typings/question_paneldynamic.d.ts +7 -0
  227. package/ts3.4/typings/question_ranking.d.ts +3 -0
  228. package/ts3.4/typings/settings.d.ts +1 -1
  229. package/ts3.4/typings/survey-element.d.ts +2 -0
  230. package/ts3.4/typings/survey-error.d.ts +1 -1
  231. package/ts3.4/typings/survey.d.ts +3 -1
  232. package/ts3.4/typings/themes.d.ts +14 -0
  233. package/ts3.4/typings/trigger.d.ts +2 -0
  234. package/ts3.4/typings/utils/popup.d.ts +1 -4
  235. package/ts3.4/typings/utils/utils.d.ts +2 -2
  236. package/typings/base-interfaces.d.ts +4 -0
  237. package/typings/base.d.ts +4 -2
  238. package/typings/defaultCss/cssmodern.d.ts +6 -1
  239. package/typings/defaultCss/cssstandard.d.ts +6 -1
  240. package/typings/defaultCss/defaultV2Css.d.ts +9 -1
  241. package/typings/helpers.d.ts +1 -0
  242. package/typings/jsonobject.d.ts +12 -4
  243. package/typings/popup-survey.d.ts +8 -2
  244. package/typings/question.d.ts +1 -0
  245. package/typings/question_baseselect.d.ts +2 -0
  246. package/typings/question_boolean.d.ts +2 -0
  247. package/typings/question_custom.d.ts +8 -0
  248. package/typings/question_matrix.d.ts +13 -1
  249. package/typings/question_matrixdropdowncolumn.d.ts +0 -1
  250. package/typings/question_paneldynamic.d.ts +7 -0
  251. package/typings/question_ranking.d.ts +3 -0
  252. package/typings/settings.d.ts +1 -1
  253. package/typings/survey-element.d.ts +2 -0
  254. package/typings/survey-error.d.ts +1 -1
  255. package/typings/survey.d.ts +3 -1
  256. package/typings/themes.d.ts +14 -0
  257. package/typings/trigger.d.ts +2 -0
  258. package/typings/utils/popup.d.ts +1 -4
  259. package/typings/utils/utils.d.ts +2 -2
@@ -1,5 +1,5 @@
1
1
  import { Base } from "./base";
2
- import { ILoadFromJSONOptions } from "./base-interfaces";
2
+ import { ILoadFromJSONOptions, ISaveToJSONOptions } from "./base-interfaces";
3
3
  export interface IPropertyDecoratorOptions<T = any> {
4
4
  defaultValue?: T;
5
5
  defaultSource?: string;
@@ -71,6 +71,7 @@ export declare class JsonObjectProperty implements IObject {
71
71
  minValue: any;
72
72
  private dataListValue;
73
73
  layout: string;
74
+ version: string;
74
75
  onSerializeValue: (obj: any) => any;
75
76
  onGetValue: (obj: any) => any;
76
77
  onSettingValue: (obj: any, value: any) => any;
@@ -111,6 +112,9 @@ export declare class JsonObjectProperty implements IObject {
111
112
  readOnly: boolean;
112
113
  isVisible(layout: string, obj?: any): boolean;
113
114
  visible: boolean;
115
+ isAvailableInVersion(ver: string): boolean;
116
+ getSerializedName(ver: string): string;
117
+ private isAvailableInVersionCore;
114
118
  isLocalizable: boolean;
115
119
  dataList: Array<string>;
116
120
  mergeWith(prop: JsonObjectProperty): void;
@@ -182,7 +186,10 @@ export declare class JsonMetadata {
182
186
  overrideClassCreator(name: string, creator: () => any): void;
183
187
  getProperties(className: string): Array<JsonObjectProperty>;
184
188
  getPropertiesByObj(obj: any): Array<JsonObjectProperty>;
189
+ addDynamicPropertiesIntoObj(dest: any, src: any, props: Array<JsonObjectProperty>): void;
190
+ private addDynamicPropertyIntoObj;
185
191
  getDynamicPropertiesByObj(obj: any, dynamicType?: string): Array<JsonObjectProperty>;
192
+ getDynamicPropertiesByTypes(objType: string, dynamicType: string, invalidNames?: Array<string>): Array<JsonObjectProperty>;
186
193
  hasOriginalProperty(obj: Base, propName: string): boolean;
187
194
  getOriginalProperty(obj: Base, propName: string): JsonObjectProperty;
188
195
  getProperty(className: string, propertyName: string): JsonObjectProperty;
@@ -267,15 +274,16 @@ export declare class JsonObject {
267
274
  errors: JsonError[];
268
275
  lightSerializing: boolean;
269
276
  options: ILoadFromJSONOptions;
270
- toJsonObject(obj: any, storeDefaults?: boolean): any;
277
+ toJsonObject(obj: any, options?: ISaveToJSONOptions | boolean): any;
271
278
  toObject(jsonObj: any, obj: any, options?: ILoadFromJSONOptions): void;
272
279
  toObjectCore(jsonObj: any, obj: any, options?: ILoadFromJSONOptions): void;
273
- toJsonObjectCore(obj: any, property: JsonObjectProperty, storeDefaults?: boolean): any;
280
+ toJsonObjectCore(obj: any, property: JsonObjectProperty, options?: ISaveToJSONOptions | boolean): any;
274
281
  private getDynamicProperties;
275
282
  private addDynamicProperties;
276
283
  private propertiesToJson;
277
- valueToJson(obj: any, result: any, property: JsonObjectProperty, storeDefaults?: boolean): void;
284
+ valueToJson(obj: any, result: any, prop: JsonObjectProperty, options?: ISaveToJSONOptions): void;
278
285
  valueToObj(value: any, obj: any, property: JsonObjectProperty, jsonObj?: any, options?: ILoadFromJSONOptions): void;
286
+ private removePosOnValueToJson;
279
287
  private removePos;
280
288
  private removePosFromObj;
281
289
  private isValueArray;
@@ -55,12 +55,14 @@ export declare class PopupSurveyModel extends Base {
55
55
  * You can set this property to `true` or `false` to control the expand state of the pop-up survey. Alternatively, you can use the [`expand()`](#expand) and [`collapse()`](#collapse) methods.
56
56
  */
57
57
  isExpanded: boolean;
58
+ readonly isCollapsed: boolean;
58
59
  protected onExpandedChanged(): void;
59
60
  /*
60
61
  * A title for the pop-up window. If this property is undefined, the title is taken from [`SurveyModel`](#survey)'s [`title`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title) property.
61
62
  */
62
63
  title: string;
63
64
  readonly locTitle: LocalizableString;
65
+ readonly locDescription: LocalizableString;
64
66
  /**
65
67
  * Expands the pop-up window.
66
68
  *
@@ -90,10 +92,14 @@ export declare class PopupSurveyModel extends Base {
90
92
  readonly css: any;
91
93
  readonly cssButton: string;
92
94
  readonly cssRoot: string;
95
+ readonly cssRootCollapsedMod: string;
96
+ readonly cssRootContent: string;
93
97
  readonly cssBody: string;
94
98
  readonly cssHeaderRoot: string;
95
- readonly cssHeaderTitle: string;
96
- readonly cssHeaderButton: string;
99
+ readonly cssHeaderTitleCollapsed: string;
100
+ readonly cssHeaderButtonsContainer: string;
101
+ readonly cssHeaderCollapseButton: string;
102
+ readonly cssHeaderCloseButton: string;
97
103
  readonly renderedWidth: string;
98
104
  width: string;
99
105
  private updateCss;
@@ -375,6 +375,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
375
375
  readonly cssHeader: string;
376
376
  protected setCssHeader(val: string): void;
377
377
  protected getCssHeader(cssClasses: any): string;
378
+ protected supportContainerQueries(): boolean;
378
379
  readonly cssContent: string;
379
380
  protected setCssContent(val: string): void;
380
381
  protected getCssContent(cssClasses: any): string;
@@ -354,6 +354,8 @@ export declare class QuestionSelectBase extends Question {
354
354
  private isFirstLoadChoicesFromUrl;
355
355
  protected onBeforeSendRequest(): void;
356
356
  protected onLoadChoicesFromUrl(array: Array<ItemValue>): void;
357
+ private canAvoidSettChoicesFromUrl;
358
+ private setChoicesFromUrl;
357
359
  private createCachedValueForUrlRequests;
358
360
  private updateCachedValueForUrlRequests;
359
361
  private isUpdatingChoicesDependedQuestions;
@@ -88,4 +88,6 @@ export declare class QuestionBooleanModel extends Question {
88
88
  protected supportResponsiveness(): boolean;
89
89
  protected getCompactRenderAs(): string;
90
90
  protected createActionContainer(allowAdaptiveActions?: boolean): ActionContainer;
91
+ readonly isNewA11yStructure: boolean;
92
+ readonly a11y_input_ariaRole: string;
91
93
  }
@@ -1,4 +1,5 @@
1
1
  import { Question, IConditionObject } from "./question";
2
+ import { JsonObjectProperty } from "./jsonobject";
2
3
  import { ISurveyImpl, ISurveyData, ITextProcessor, IPanel, IElement, IQuestion, IProgressInfo } from "./base-interfaces";
3
4
  import { SurveyElement } from "./survey-element";
4
5
  import { PanelModel } from "./panel";
@@ -68,6 +69,7 @@ export interface ICustomQuestionTypeConfiguration {
68
69
  * ```
69
70
  */
70
71
  defaultQuestionTitle?: any;
72
+ inheritBaseProps?: false | true | Array<string>;
71
73
  /**
72
74
  * A function that is called when the custom question is created. Use it to access questions nested within a [composite question type](https://surveyjs.io/form-library/documentation/customize-question-types/create-composite-question-types).
73
75
  *
@@ -220,6 +222,7 @@ export interface ICustomQuestionTypeConfiguration {
220
222
  export declare class ComponentQuestionJSON {
221
223
  name: string;
222
224
  json: ICustomQuestionTypeConfiguration;
225
+ private dynamicProperties;
223
226
  constructor(name: string, json: ICustomQuestionTypeConfiguration);
224
227
  onInit(): void;
225
228
  onCreated(question: Question): void;
@@ -236,6 +239,8 @@ export declare class ComponentQuestionJSON {
236
239
  setValueToQuestion(val: any): any;
237
240
  getValueFromQuestion(val: any): any;
238
241
  readonly isComposite: boolean;
242
+ getDynamicProperties(): Array<JsonObjectProperty>;
243
+ private calcDynamicProperties;
239
244
  }
240
245
  export declare class ComponentCollection {
241
246
  static Instance: ComponentCollection;
@@ -313,6 +318,8 @@ export declare class QuestionCustomModel extends QuestionCustomModelBase {
313
318
  private questionWrapper;
314
319
  private hasJSONTitle;
315
320
  getTemplate(): string;
321
+ getDynamicProperties(): Array<JsonObjectProperty>;
322
+ getDynamicType(): string;
316
323
  protected createWrapper(): void;
317
324
  protected getElement(): SurveyElement;
318
325
  onAnyValueChanged(name: string, questionName: string): void;
@@ -337,6 +344,7 @@ export declare class QuestionCustomModel extends QuestionCustomModelBase {
337
344
  protected getValueCore(): any;
338
345
  private isSettingValueChanged;
339
346
  protected setValueChangedDirectly(val: boolean): void;
347
+ private createDynamicProperties;
340
348
  protected initElement(el: SurveyElement): void;
341
349
  updateElementCss(reNew?: boolean): void;
342
350
  protected updateElementCssCore(cssClasses: any): void;
@@ -1,3 +1,4 @@
1
+ import { HashTable } from "./helpers";
1
2
  import { ItemValue } from "./itemvalue";
2
3
  import { QuestionMatrixBaseModel } from "./martixBase";
3
4
  import { Base } from "./base";
@@ -8,18 +9,23 @@ import { IPlainDataOptions } from "./base-interfaces";
8
9
  export interface IMatrixData {
9
10
  onMatrixRowChanged(row: MatrixRowModel): void;
10
11
  getCorrectedRowValue(value: any): any;
12
+ cssClasses: any;
13
+ isInputReadOnly: boolean;
11
14
  hasErrorInRow(row: MatrixRowModel): boolean;
12
15
  }
13
16
  export declare class MatrixRowModel extends Base {
17
+ item: ItemValue;
14
18
  fullName: string;
15
19
  private data;
16
- private item;
17
20
  cellClick: any;
18
21
  constructor(item: ItemValue, fullName: string, data: IMatrixData, value: any);
19
22
  readonly name: string;
20
23
  readonly text: string;
21
24
  readonly locText: LocalizableString;
22
25
  value: any;
26
+ setValueDirectly(val: any): void;
27
+ readonly isReadOnly: boolean;
28
+ readonly rowTextClasses: string;
23
29
  readonly rowClasses: string;
24
30
  }
25
31
  export interface IMatrixCellsOwner extends ILocalizableOwner {
@@ -102,12 +108,18 @@ export declare class QuestionMatrixModel extends QuestionMatrixBaseModel<MatrixR
102
108
  locStrsChanged(): void;
103
109
  protected getQuizQuestionCount(): number;
104
110
  protected getCorrectAnswerCount(): number;
111
+ protected runItemsCondition(values: HashTable<any>, properties: HashTable<any>): boolean;
105
112
  protected getVisibleRows(): Array<MatrixRowModel>;
106
113
  protected sortVisibleRows(array: Array<MatrixRowModel>): Array<MatrixRowModel>;
107
114
  endLoadingFromJson(): void;
108
115
  protected isNewValueCorrect(val: any): boolean;
109
116
  protected processRowsOnSet(newRows: Array<any>): MatrixRowModel[];
110
117
  readonly visibleRows: Array<MatrixRowModel>;
118
+ /*
119
+ * An array of matrix cells. Use this array to get or set cell values.
120
+ *
121
+ * [View Demo](https://surveyjs.io/form-library/examples/questiontype-matrix-rubric/ (linkStyle))
122
+ */
111
123
  cells: MatrixCells;
112
124
  readonly hasCellText: boolean;
113
125
  protected updateHasCellText(): void;
@@ -291,5 +291,4 @@ export declare class MatrixDropdownColumn extends Base implements ILocalizableOw
291
291
  private getProperties;
292
292
  private removeProperties;
293
293
  private addProperties;
294
- private addProperty;
295
294
  }
@@ -160,6 +160,8 @@ export declare class QuestionPanelDynamicModel extends Question implements IQues
160
160
  * @see templateVisibleIf
161
161
  */
162
162
  readonly visiblePanels: Array<PanelModel>;
163
+ protected readonly panelsCore: Array<PanelModel>;
164
+ protected readonly visiblePanelsCore: Array<PanelModel>;
163
165
  private onPanelAdded;
164
166
  private onPanelRemoved;
165
167
  private onPanelRemovedCore;
@@ -519,6 +521,11 @@ export declare class QuestionPanelDynamicModel extends Question implements IQues
519
521
  protected onReadOnlyChanged(): void;
520
522
  private updateNoEntriesTextDefaultLoc;
521
523
  onSurveyLoad(): void;
524
+ private hasPanelBuildFirstTime;
525
+ private isBuildingPanelsFirstTime;
526
+ private buildPanelsFirstTime;
527
+ private readonly wasNotRenderedInSurvey: any;
528
+ private readonly canBuildPanels: any;
522
529
  onFirstRendering(): void;
523
530
  localeChanged(): void;
524
531
  runCondition(values: HashTable<any>, properties: HashTable<any>): void;
@@ -13,6 +13,7 @@ export declare class QuestionRankingModel extends QuestionCheckboxModel {
13
13
  protected getDefaultItemComponent(): string;
14
14
  getType(): string;
15
15
  getItemTabIndex(item: ItemValue): number;
16
+ protected supportContainerQueries(): boolean;
16
17
  readonly rootClass: string;
17
18
  protected getItemClassCore(item: ItemValue, options: any): string;
18
19
  getContainerClasses(containerType?: string): string;
@@ -54,6 +55,7 @@ export declare class QuestionRankingModel extends QuestionCheckboxModel {
54
55
  handleKeydownSelectToRank(event: KeyboardEvent, movedElement: ItemValue): void;
55
56
  private setValueAfterKeydown;
56
57
  private focusItem;
58
+ isValueSetByUser: boolean;
57
59
  setValue: () => void;
58
60
  getIconHoverCss(): string;
59
61
  getIconFocusCss(): string;
@@ -74,6 +76,7 @@ export declare class QuestionRankingModel extends QuestionCheckboxModel {
74
76
  * @see selectToRankAreasLayout
75
77
  */
76
78
  selectToRankEnabled: boolean;
79
+ carryForwardStartUnranked: boolean;
77
80
  /*
78
81
  * Specifies the layout of the ranked and unranked areas. Applies when [`selectToRankEnabled`](https://surveyjs.io/form-library/documentation/api-reference/ranking-question-model#selectToRankEnabled) is `true`.
79
82
  *
@@ -363,7 +363,7 @@ export declare var settings: {
363
363
  * @param message A message to be displayed in the confirm dialog window.
364
364
  * @param callback A callback function that should be called with `true` if a user confirms an action or `false` otherwise.
365
365
  */
366
- confirmActionAsync: (message: string, callback: (res: boolean) => void, applyTitle?: string) => boolean;
366
+ confirmActionAsync: (message: string, callback: (res: boolean) => void, applyTitle?: string, locale?: string) => boolean;
367
367
  /**
368
368
  * A minimum width value for all survey elements.
369
369
  *
@@ -264,6 +264,8 @@ export declare class SurveyElement<E = any> extends SurveyElementCore implements
264
264
  selectedElementInDesign: SurveyElement;
265
265
  updateCustomWidgets(): void;
266
266
  onSurveyLoad(): void;
267
+ private wasRenderedValue;
268
+ readonly wasRendered: boolean;
267
269
  onFirstRendering(): void;
268
270
  endLoadingFromJson(): void;
269
271
  setVisibleIndex(index: number): number;
@@ -6,7 +6,7 @@ export declare class SurveyError {
6
6
  private locTextValue;
7
7
  visible: boolean;
8
8
  constructor(text?: string, errorOwner?: ISurveyErrorOwner);
9
- equalsTo(error: SurveyError): boolean;
9
+ equals(error: SurveyError): boolean;
10
10
  readonly locText: LocalizableString;
11
11
  getText(): string;
12
12
  getErrorType(): string;
@@ -2051,7 +2051,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2051
2051
  getUpdatedMatrixRowActions(question: QuestionMatrixDropdownModelBase, row: any, actions: Array<IAction>): IAction[];
2052
2052
  scrollElementToTop(element: ISurveyElement, question: Question, page: PageModel, id: string, scrollIfVisible?: boolean): any;
2053
2053
  /**
2054
- * Uploads a file to server.
2054
+ * Uploads files to a server.
2055
2055
  *
2056
2056
  * The following code shows how to call this method:
2057
2057
  *
@@ -2317,6 +2317,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2317
2317
  private getProcessedValuesWithoutQuestion;
2318
2318
  private getFirstName;
2319
2319
  private reduceFirstName;
2320
+ private isClearingUnsedValues;
2320
2321
  private clearUnusedValues;
2321
2322
  hasVisibleQuestionByValueName(valueName: string): boolean;
2322
2323
  questionsByValueName(valueName: string): Array<IQuestion>;
@@ -2653,6 +2654,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2653
2654
  * @returns The configuration of the previous layout element with the same `id`.
2654
2655
  */
2655
2656
  addLayoutElement(layoutElement: ISurveyLayoutElement): ISurveyLayoutElement;
2657
+ findLayoutElement(layoutElementId: string): ISurveyLayoutElement;
2656
2658
  removeLayoutElement(layoutElementId: string): ISurveyLayoutElement;
2657
2659
  getContainerContent(container: LayoutElementContainer): any[];
2658
2660
  processPopupVisiblityChanged(question: Question, popup: PopupModel<any>, visible: boolean): void;
@@ -59,6 +59,20 @@ export interface ITheme {
59
59
  * An object with [advanced survey header settings](https://surveyjs.io/form-library/documentation/api-reference/iheader). Applies when `SurveyModel`'s [`headerView`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#headerView) property is set to `"advanced"`.
60
60
  */
61
61
  header?: IHeader;
62
+ /**
63
+ * Specifies whether the survey header uses only basic appearance settings or applies advanced settings from the survey theme.
64
+ *
65
+ * Possible values:
66
+ *
67
+ * - `"basic"` (default)\
68
+ * A basic header view applies only the [`title`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title), [`description`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#description), and logo-related properties ([`logo`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#logo), [`logoPosition`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#logoPosition), etc.).
69
+ *
70
+ * - `"advanced"`\
71
+ * An advanced header view applies the same properties as the basic view, plus [header settings](https://surveyjs.io/form-library/documentation/api-reference/iheader) from the [survey theme](https://surveyjs.io/form-library/documentation/api-reference/itheme#header). The advanced view features a more flexible header layout, a capability to specify a background image, and other settings that give a more professional look to the survey header.
72
+ *
73
+ * [View Demo](https://surveyjs.io/form-library/examples/brand-your-survey-header/ (linkStyle))
74
+ */
75
+ headerView?: "advanced" | "basic";
62
76
  /**
63
77
  * An object with CSS variables.
64
78
  */
@@ -16,6 +16,8 @@ export declare class Trigger extends Base {
16
16
  readonly id: number;
17
17
  getType(): string;
18
18
  toString(): string;
19
+ isGhost: boolean;
20
+ protected readonly isInternal: boolean;
19
21
  operator: string;
20
22
  value: any;
21
23
  name: string;
@@ -16,10 +16,7 @@ export interface ISize {
16
16
  export declare class PopupUtils {
17
17
  static bottomIndent: number;
18
18
  static calculatePosition(targetRect: ClientRect, height: number, width: number, verticalPosition: VerticalPosition, horizontalPosition: HorizontalPosition, showPointer: boolean, positionMode?: PositionMode): INumberPosition;
19
- static getCorrectedVerticalDimensions(top: number, height: number, windowHeight: number): {
20
- height: number;
21
- top: number;
22
- };
19
+ static getCorrectedVerticalDimensions(top: number, height: number, windowHeight: number, verticalPosition: VerticalPosition): any;
23
20
  static updateHorizontalDimensions(left: number, width: number, windowWidth: number, horizontalPosition: HorizontalPosition, positionMode?: PositionMode, margins?: {
24
21
  left: number;
25
22
  right: number;
@@ -1,6 +1,6 @@
1
1
  declare function compareVersions(a: any, b: any): number;
2
2
  declare function confirmAction(message: string): boolean;
3
- declare function confirmActionAsync(message: string, funcOnYes: () => void, funcOnNo?: () => void): void;
3
+ declare function confirmActionAsync(message: string, funcOnYes: () => void, funcOnNo?: () => void, locale?: string): void;
4
4
  declare function detectIEBrowser(): boolean;
5
5
  declare function detectIEOrEdge(): boolean;
6
6
  declare function loadFileFromBase64(b64Data: string, fileName: string): void;
@@ -40,5 +40,5 @@ export declare class Logger {
40
40
  log(action: string): void;
41
41
  readonly result: string;
42
42
  }
43
- export declare function showConfirmDialog(message: string, callback: (res: boolean) => void, applyTitle?: string): boolean;
43
+ export declare function showConfirmDialog(message: string, callback: (res: boolean) => void, applyTitle?: string, locale?: string): boolean;
44
44
  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, };
@@ -308,3 +308,7 @@ export interface IPlainDataOptions {
308
308
  export interface ILoadFromJSONOptions {
309
309
  validatePropertyValues?: boolean;
310
310
  }
311
+ export interface ISaveToJSONOptions {
312
+ storeDefaults?: boolean;
313
+ version?: string;
314
+ }
package/typings/base.d.ts CHANGED
@@ -2,7 +2,7 @@ import { ILocalizableOwner, LocalizableString } from "./localizablestring";
2
2
  import { HashTable } from "./helpers";
3
3
  import { JsonObjectProperty } from "./jsonobject";
4
4
  import { ItemValue } from "./itemvalue";
5
- import { IElement, IFindElement, IProgressInfo, ISurvey, ILoadFromJSONOptions } from "./base-interfaces";
5
+ import { IElement, IFindElement, IProgressInfo, ISurvey, ILoadFromJSONOptions, ISaveToJSONOptions } from "./base-interfaces";
6
6
  import { ExpressionRunner } from "./conditions";
7
7
  export declare class Bindings {
8
8
  private obj;
@@ -73,6 +73,8 @@ export declare class Base {
73
73
  * @param trimString *(Optional)* When this parameter is `true`, the method ignores whitespace characters at the beginning and end of a string value. Pass `false` to disable this functionality.
74
74
  */
75
75
  isValueEmpty(value: any, trimString?: boolean): boolean;
76
+ equals(obj: Base): boolean;
77
+ protected equalsCore(obj: Base): boolean;
76
78
  protected trimValue(value: any): any;
77
79
  protected isPropertyEmpty(value: any): boolean;
78
80
  static createPropertiesHash(): {};
@@ -170,7 +172,7 @@ export declare class Base {
170
172
  * Returns a JSON object that corresponds to the current SurveyJS object.
171
173
  * @see fromJSON
172
174
  */
173
- toJSON(): any;
175
+ toJSON(options?: ISaveToJSONOptions): any;
174
176
  /**
175
177
  * Assigns a new configuration to the current SurveyJS object. This configuration is taken from a passed JSON object.
176
178
  *
@@ -425,13 +425,18 @@ export declare var modernCss: {
425
425
  };
426
426
  window: {
427
427
  root: string;
428
+ rootCollapsedMod: string;
429
+ rootContent: string;
428
430
  body: string;
429
431
  header: {
430
432
  root: string;
431
- title: string;
433
+ titleCollapsed: string;
434
+ buttonsContainer: string;
432
435
  button: string;
433
436
  buttonExpanded: string;
434
437
  buttonCollapsed: string;
438
+ collapseButton: string;
439
+ closeButton: string;
435
440
  };
436
441
  };
437
442
  variables: {
@@ -359,13 +359,18 @@ export declare var defaultStandardCss: {
359
359
  };
360
360
  window: {
361
361
  root: string;
362
+ rootCollapsedMod: string;
363
+ rootContent: string;
362
364
  body: string;
363
365
  header: {
364
366
  root: string;
365
- title: string;
367
+ titleCollapsed: string;
368
+ buttonsContainer: string;
366
369
  button: string;
367
370
  buttonExpanded: string;
368
371
  buttonCollapsed: string;
372
+ collapseButton: string;
373
+ closeButton: string;
369
374
  };
370
375
  };
371
376
  variables: {
@@ -156,6 +156,7 @@ export declare var defaultV2Css: {
156
156
  headerTop: string;
157
157
  headerBottom: string;
158
158
  content: string;
159
+ contentSupportContainerQueries: string;
159
160
  contentLeft: string;
160
161
  titleNumInline: string;
161
162
  titleLeftRoot: string;
@@ -306,6 +307,7 @@ export declare var defaultV2Css: {
306
307
  small: string;
307
308
  controlDisabled: string;
308
309
  constrolWithCharacterCounter: string;
310
+ characterCounterBig: string;
309
311
  content: string;
310
312
  remainingCharacterCounter: string;
311
313
  onError: string;
@@ -394,6 +396,7 @@ export declare var defaultV2Css: {
394
396
  rowError: string;
395
397
  cell: string;
396
398
  row: string;
399
+ rowDisabled: string;
397
400
  headerCell: string;
398
401
  rowTextCell: string;
399
402
  label: string;
@@ -630,13 +633,18 @@ export declare var defaultV2Css: {
630
633
  };
631
634
  window: {
632
635
  root: string;
636
+ rootCollapsedMod: string;
637
+ rootContent: string;
633
638
  body: string;
634
639
  header: {
635
640
  root: string;
636
- title: string;
641
+ titleCollapsed: string;
642
+ buttonsContainer: string;
637
643
  button: string;
638
644
  buttonExpanded: string;
639
645
  buttonCollapsed: string;
646
+ collapseButton: string;
647
+ closeButton: string;
640
648
  };
641
649
  };
642
650
  ranking: {
@@ -35,4 +35,5 @@ export declare class Helpers {
35
35
  static convertDateToString(date: Date): string;
36
36
  static convertDateTimeToString(date: Date): string;
37
37
  static convertValToQuestionVal(val: any, inputType?: string): any;
38
+ static compareVerions(ver1: string, ver2: string): number;
38
39
  }
@@ -1,5 +1,5 @@
1
1
  import { Base } from "./base";
2
- import { ILoadFromJSONOptions } from "./base-interfaces";
2
+ import { ILoadFromJSONOptions, ISaveToJSONOptions } from "./base-interfaces";
3
3
  export interface IPropertyDecoratorOptions<T = any> {
4
4
  defaultValue?: T;
5
5
  defaultSource?: string;
@@ -71,6 +71,7 @@ export declare class JsonObjectProperty implements IObject {
71
71
  minValue: any;
72
72
  private dataListValue;
73
73
  layout: string;
74
+ version: string;
74
75
  onSerializeValue: (obj: any) => any;
75
76
  onGetValue: (obj: any) => any;
76
77
  onSettingValue: (obj: any, value: any) => any;
@@ -118,6 +119,9 @@ export declare class JsonObjectProperty implements IObject {
118
119
  isVisible(layout: string, obj?: any): boolean;
119
120
  get visible(): boolean;
120
121
  set visible(val: boolean);
122
+ isAvailableInVersion(ver: string): boolean;
123
+ getSerializedName(ver: string): string;
124
+ private isAvailableInVersionCore;
121
125
  get isLocalizable(): boolean;
122
126
  set isLocalizable(val: boolean);
123
127
  get dataList(): Array<string>;
@@ -191,7 +195,10 @@ export declare class JsonMetadata {
191
195
  overrideClassCreator(name: string, creator: () => any): void;
192
196
  getProperties(className: string): Array<JsonObjectProperty>;
193
197
  getPropertiesByObj(obj: any): Array<JsonObjectProperty>;
198
+ addDynamicPropertiesIntoObj(dest: any, src: any, props: Array<JsonObjectProperty>): void;
199
+ private addDynamicPropertyIntoObj;
194
200
  getDynamicPropertiesByObj(obj: any, dynamicType?: string): Array<JsonObjectProperty>;
201
+ getDynamicPropertiesByTypes(objType: string, dynamicType: string, invalidNames?: Array<string>): Array<JsonObjectProperty>;
195
202
  hasOriginalProperty(obj: Base, propName: string): boolean;
196
203
  getOriginalProperty(obj: Base, propName: string): JsonObjectProperty;
197
204
  getProperty(className: string, propertyName: string): JsonObjectProperty;
@@ -276,15 +283,16 @@ export declare class JsonObject {
276
283
  errors: JsonError[];
277
284
  lightSerializing: boolean;
278
285
  options: ILoadFromJSONOptions;
279
- toJsonObject(obj: any, storeDefaults?: boolean): any;
286
+ toJsonObject(obj: any, options?: ISaveToJSONOptions | boolean): any;
280
287
  toObject(jsonObj: any, obj: any, options?: ILoadFromJSONOptions): void;
281
288
  toObjectCore(jsonObj: any, obj: any, options?: ILoadFromJSONOptions): void;
282
- toJsonObjectCore(obj: any, property: JsonObjectProperty, storeDefaults?: boolean): any;
289
+ toJsonObjectCore(obj: any, property: JsonObjectProperty, options?: ISaveToJSONOptions | boolean): any;
283
290
  private getDynamicProperties;
284
291
  private addDynamicProperties;
285
292
  private propertiesToJson;
286
- valueToJson(obj: any, result: any, property: JsonObjectProperty, storeDefaults?: boolean): void;
293
+ valueToJson(obj: any, result: any, prop: JsonObjectProperty, options?: ISaveToJSONOptions): void;
287
294
  valueToObj(value: any, obj: any, property: JsonObjectProperty, jsonObj?: any, options?: ILoadFromJSONOptions): void;
295
+ private removePosOnValueToJson;
288
296
  private removePos;
289
297
  private removePosFromObj;
290
298
  private isValueArray;
@@ -57,6 +57,7 @@ export declare class PopupSurveyModel extends Base {
57
57
  */
58
58
  get isExpanded(): boolean;
59
59
  set isExpanded(val: boolean);
60
+ get isCollapsed(): boolean;
60
61
  protected onExpandedChanged(): void;
61
62
  /**
62
63
  * A title for the pop-up window. If this property is undefined, the title is taken from [`SurveyModel`](#survey)'s [`title`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#title) property.
@@ -64,6 +65,7 @@ export declare class PopupSurveyModel extends Base {
64
65
  get title(): string;
65
66
  set title(value: string);
66
67
  get locTitle(): LocalizableString;
68
+ get locDescription(): LocalizableString;
67
69
  /**
68
70
  * Expands the pop-up window.
69
71
  *
@@ -94,10 +96,14 @@ export declare class PopupSurveyModel extends Base {
94
96
  get css(): any;
95
97
  get cssButton(): string;
96
98
  get cssRoot(): string;
99
+ get cssRootCollapsedMod(): string;
100
+ get cssRootContent(): string;
97
101
  get cssBody(): string;
98
102
  get cssHeaderRoot(): string;
99
- get cssHeaderTitle(): string;
100
- get cssHeaderButton(): string;
103
+ get cssHeaderTitleCollapsed(): string;
104
+ get cssHeaderButtonsContainer(): string;
105
+ get cssHeaderCollapseButton(): string;
106
+ get cssHeaderCloseButton(): string;
101
107
  get renderedWidth(): string;
102
108
  width: string;
103
109
  private updateCss;
@@ -389,6 +389,7 @@ export declare class Question extends SurveyElement<Question> implements IQuesti
389
389
  get cssHeader(): string;
390
390
  protected setCssHeader(val: string): void;
391
391
  protected getCssHeader(cssClasses: any): string;
392
+ protected supportContainerQueries(): boolean;
392
393
  get cssContent(): string;
393
394
  protected setCssContent(val: string): void;
394
395
  protected getCssContent(cssClasses: any): string;
@@ -376,6 +376,8 @@ export declare class QuestionSelectBase extends Question {
376
376
  private isFirstLoadChoicesFromUrl;
377
377
  protected onBeforeSendRequest(): void;
378
378
  protected onLoadChoicesFromUrl(array: Array<ItemValue>): void;
379
+ private canAvoidSettChoicesFromUrl;
380
+ private setChoicesFromUrl;
379
381
  private createCachedValueForUrlRequests;
380
382
  private updateCachedValueForUrlRequests;
381
383
  private isUpdatingChoicesDependedQuestions;
@@ -93,4 +93,6 @@ export declare class QuestionBooleanModel extends Question {
93
93
  protected supportResponsiveness(): boolean;
94
94
  protected getCompactRenderAs(): string;
95
95
  protected createActionContainer(allowAdaptiveActions?: boolean): ActionContainer;
96
+ get isNewA11yStructure(): boolean;
97
+ get a11y_input_ariaRole(): string;
96
98
  }