survey-core 1.9.133 → 1.9.135

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 (261) hide show
  1. package/defaultV2.css +26 -20
  2. package/defaultV2.css.map +1 -1
  3. package/defaultV2.fontless.css +26 -20
  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 +6 -1
  112. package/modern.css.map +1 -1
  113. package/modern.fontless.css +6 -1
  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 +2424 -634
  123. package/survey.core.js.map +1 -1
  124. package/survey.core.min.js +5 -5
  125. package/survey.css +1 -1
  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 +1 -1
  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 -1
  213. package/ts3.4/typings/defaultCss/defaultV2Css.d.ts +5 -0
  214. package/ts3.4/typings/dragdrop/core.d.ts +1 -0
  215. package/ts3.4/typings/dropdownListModel.d.ts +1 -0
  216. package/ts3.4/typings/entries/chunks/model.d.ts +5 -0
  217. package/ts3.4/typings/global_variables_utils.d.ts +27 -0
  218. package/ts3.4/typings/list.d.ts +3 -0
  219. package/ts3.4/typings/martixBase.d.ts +1 -0
  220. package/ts3.4/typings/mask/input_element_adapter.d.ts +14 -0
  221. package/ts3.4/typings/mask/mask_base.d.ts +24 -0
  222. package/ts3.4/typings/mask/mask_currency.d.ts +41 -0
  223. package/ts3.4/typings/mask/mask_datetime.d.ts +65 -0
  224. package/ts3.4/typings/mask/mask_numeric.d.ts +88 -0
  225. package/ts3.4/typings/mask/mask_pattern.d.ts +70 -0
  226. package/ts3.4/typings/mask/mask_utils.d.ts +18 -0
  227. package/ts3.4/typings/question_baseselect.d.ts +1 -0
  228. package/ts3.4/typings/question_dropdown.d.ts +8 -0
  229. package/ts3.4/typings/question_html.d.ts +1 -0
  230. package/ts3.4/typings/question_tagbox.d.ts +1 -0
  231. package/ts3.4/typings/question_text.d.ts +47 -0
  232. package/ts3.4/typings/settings.d.ts +24 -2
  233. package/ts3.4/typings/survey-element.d.ts +1 -0
  234. package/ts3.4/typings/survey-events-api.d.ts +28 -1
  235. package/ts3.4/typings/survey.d.ts +16 -10
  236. package/ts3.4/typings/surveytimer.d.ts +1 -1
  237. package/typings/base-interfaces.d.ts +4 -1
  238. package/typings/defaultCss/defaultV2Css.d.ts +5 -0
  239. package/typings/dragdrop/core.d.ts +1 -0
  240. package/typings/dropdownListModel.d.ts +1 -0
  241. package/typings/entries/chunks/model.d.ts +5 -0
  242. package/typings/global_variables_utils.d.ts +27 -0
  243. package/typings/list.d.ts +3 -0
  244. package/typings/martixBase.d.ts +1 -0
  245. package/typings/mask/input_element_adapter.d.ts +14 -0
  246. package/typings/mask/mask_base.d.ts +24 -0
  247. package/typings/mask/mask_currency.d.ts +41 -0
  248. package/typings/mask/mask_datetime.d.ts +65 -0
  249. package/typings/mask/mask_numeric.d.ts +88 -0
  250. package/typings/mask/mask_pattern.d.ts +70 -0
  251. package/typings/mask/mask_utils.d.ts +18 -0
  252. package/typings/question_baseselect.d.ts +1 -0
  253. package/typings/question_dropdown.d.ts +8 -0
  254. package/typings/question_html.d.ts +1 -0
  255. package/typings/question_tagbox.d.ts +1 -0
  256. package/typings/question_text.d.ts +49 -0
  257. package/typings/settings.d.ts +24 -2
  258. package/typings/survey-element.d.ts +1 -0
  259. package/typings/survey-events-api.d.ts +28 -1
  260. package/typings/survey.d.ts +16 -10
  261. package/typings/surveytimer.d.ts +1 -1
@@ -3,6 +3,8 @@ import { HashTable } from "./helpers";
3
3
  import { SurveyError } from "./survey-error";
4
4
  import { QuestionTextBase } from "./question_textbase";
5
5
  import { CssClassBuilder } from "./utils/cssClassBuilder";
6
+ import { InputMaskBase } from "./mask/mask_base";
7
+ import { IInputMask } from "./mask/mask_utils";
6
8
  /**
7
9
  * A class that describes the Single-Line Input question type.
8
10
  *
@@ -12,6 +14,44 @@ export declare class QuestionTextModel extends QuestionTextBase {
12
14
  private locDataListValue;
13
15
  private minValueRunner;
14
16
  private maxValueRunner;
17
+ private maskInputAdapter;
18
+ private createMaskAdapter;
19
+ private deleteMaskAdapter;
20
+ private updateMaskAdapter;
21
+ onSetMaskType(newValue: string): void;
22
+ /**
23
+ * Specifies the type of a mask applied to the input.
24
+ *
25
+ * Possible values:
26
+ *
27
+ * - `"none"` (default)
28
+ * - `"numeric"`
29
+ * - `"currency"`
30
+ * - `"datetime"`
31
+ * - `"pattern"`
32
+ *
33
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
34
+ * @see maskSettings
35
+ */
36
+ maskType: string;
37
+ readonly maskTypeIsEmpty: boolean;
38
+ /*
39
+ * An object with properties that configure the mask applied to the input.
40
+ *
41
+ * Available properties depend on the specified [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType) and belong to corresponding classes. Refer to the class APIs for a full list of properties:
42
+ *
43
+ * | `maskType` | Class |
44
+ * | ---------- | ----- |
45
+ * | `"numeric"` | [`InputMaskNumeric`](https://surveyjs.io/form-library/documentation/api-reference/inputmasknumeric) |
46
+ * | `"currency"` | [`InputMaskCurrency`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskcurrency) |
47
+ * | `"datetime"` | [`InputMaskDateTime`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskdatetime) |
48
+ * | `"pattern"` | [`InputMaskPattern`](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern) |
49
+ *
50
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
51
+ */
52
+ maskSettings: InputMaskBase;
53
+ private setNewMaskSettingsProperty;
54
+ protected createMaskSettings(): InputMaskBase;
15
55
  constructor(name: string);
16
56
  protected isTextValue(): boolean;
17
57
  getType(): string;
@@ -79,6 +119,11 @@ export declare class QuestionTextModel extends QuestionTextBase {
79
119
  * @see max
80
120
  */
81
121
  readonly isMinMaxType: boolean;
122
+ _inputValue: string;
123
+ readonly maskInstance: IInputMask;
124
+ inputValue: string;
125
+ protected onChangeQuestionValue(newValue: any): void;
126
+ private updateInputValue;
82
127
  protected onCheckForErrors(errors: Array<SurveyError>, isOnValueChanged: boolean): void;
83
128
  protected canSetValueToSurvey(): boolean;
84
129
  protected convertFuncValuetoQuestionValue(val: any): any;
@@ -116,5 +161,7 @@ export declare class QuestionTextModel extends QuestionTextBase {
116
161
  onChange: (event: any) => void;
117
162
  onBlur: (event: any) => void;
118
163
  onFocus: (event: any) => void;
164
+ afterRenderQuestionElement(el: HTMLElement): void;
165
+ beforeDestroyQuestionElement(el: HTMLElement): void;
119
166
  }
120
167
  export declare function isMinMaxType(obj: any): boolean;
@@ -42,7 +42,7 @@ export declare var settings: {
42
42
  * Nested properties:
43
43
  *
44
44
  * - `useLocalTimeZone`: `boolean`\
45
- * Disable this property if you want internal SurveyJS functions to use methods that work with UTC date and time (`setUTCDate()` `setUTCHours()`, etc.) instead of methods that work with local date and time (`setYear`, `setHours()`, etc.). Default value: `true`.
45
+ * Disable this property if you want internal SurveyJS functions to use methods that work with UTC date and time (`setUTCDate()` `setUTCHours()`, etc.) instead of methods that work with local date and time (`setYear()`, `setHours()`, etc.). Default value: `true`.
46
46
  *
47
47
  * - `defaultLocaleName`: `string`\
48
48
  * A property key that stores a translation for the default locale. Default value: `"default"`.
@@ -168,7 +168,8 @@ export declare var settings: {
168
168
  * - `enabled`: `boolean`\
169
169
  * Specifies whether to add questions to the DOM only when they get into the viewport. Default value: `false`.
170
170
  *
171
- * > Lazy rendering is an experimental feature that may not work as expected in all use cases.
171
+ * [View Demo](https://surveyjs.io/form-library/examples/survey-lazy/ (linkStyle))
172
+ * @see [SurveyModel.lazyRendering](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#lazyRendering)
172
173
  */
173
174
  lazyRender: {
174
175
  enabled: boolean;
@@ -550,4 +551,25 @@ export declare var settings: {
550
551
  dataList: string[];
551
552
  };
552
553
  legacyProgressBarView: boolean;
554
+ /**
555
+ * An object with properties that configure input masks.
556
+ *
557
+ * Nested properties:
558
+ *
559
+ * - `patternPlaceholderChar`: `string`\
560
+ * A symbol used as a placeholder for characters to be entered in [pattern masks](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern). Default value: `"_"`.
561
+ *
562
+ * - `patternEscapeChar`: `string`\
563
+ * A symbol used to insert literal representations of special characters in [pattern masks](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern). Default value: `"\\"`.
564
+ *
565
+ * - `patternDefinitions`: `<{ [key: string]: RegExp }>`\
566
+ * An object that maps placeholder symbols to regular expressions in [pattern masks](https://surveyjs.io/form-library/documentation/api-reference/inputmaskpattern). Default value: `{ "9": /[0-9]/, "a": /[a-zA-Z]/, "#": /[a-zA-Z0-9]/ }`.
567
+ */
568
+ maskSettings: {
569
+ patternPlaceholderChar: string;
570
+ patternEscapeChar: string;
571
+ patternDefinitions: {
572
+ [key: string]: RegExp;
573
+ };
574
+ };
553
575
  };
@@ -83,6 +83,7 @@ export declare class SurveyElement<E = any> extends SurveyElementCore implements
83
83
  isDragMe: boolean;
84
84
  readOnlyChangedCallback: () => void;
85
85
  static ScrollElementToTop(elementId: string, scrollIfVisible?: boolean): boolean;
86
+ private static ScrollElementToViewCore;
86
87
  static GetFirstNonTextElement(elements: any, removeSpaces?: boolean): any;
87
88
  static FocusElement(elementId: string): boolean;
88
89
  private static focusElementCore;
@@ -514,9 +514,18 @@ export interface OpenFileChooserEvent {
514
514
  */
515
515
  input: HTMLInputElement;
516
516
  /**
517
- * A question, panel, page, or survey for which this event is raised.
517
+ * A survey element (question, panel, page, or survey) or a theme JSON schema for which this event is raised.
518
518
  */
519
519
  element: Base;
520
+ /**
521
+ * The type of the element passed as the `options.element` parameter.\
522
+ * Possible values: `"theme"`, `"header"`, or any value returned from the [`getType()`](https://surveyjs.io/form-library/documentation/api-reference/question#getType) method.
523
+ */
524
+ elementType: String;
525
+ /**
526
+ * The name of the survey element property or theme property for which files are being selected.
527
+ */
528
+ propertyName: String;
520
529
  /**
521
530
  * A choice item for which the event is raised. This parameter has a value only when the dialog window is opened to select images for an [Image Picker](https://surveyjs.io/form-library/documentation/api-reference/image-picker-question-model) question.
522
531
  */
@@ -725,6 +734,24 @@ export interface MatrixAllowRemoveRowEvent extends MatrixDynamicQuestionEventMix
725
734
  */
726
735
  allow: boolean;
727
736
  }
737
+ export interface MatrixDetailPanelVisibleChangedEvent extends MatrixDropdownQuestionEventMixin {
738
+ /**
739
+ * A matrix row to which the detail section belongs.
740
+ */
741
+ row: MatrixDropdownRowModelBase;
742
+ /**
743
+ * A zero-based row index.
744
+ */
745
+ rowIndex: number;
746
+ /**
747
+ * A [PanelModel](https://surveyjs.io/form-library/documentation/panelmodel) that represents the detail section.
748
+ */
749
+ detailPanel: PanelModel;
750
+ /**
751
+ * Indicates whether the detail section is visible now.
752
+ */
753
+ visible: boolean;
754
+ }
728
755
  export interface MatrixCellCreatingBaseEvent extends MatrixDropdownQuestionEventMixin {
729
756
  /**
730
757
  * A [matrix column](https://surveyjs.io/form-library/documentation/api-reference/multi-select-matrix-column-values) to which the cell belongs.
@@ -18,7 +18,7 @@ import { IAction, Action } from "./actions/action";
18
18
  import { ActionContainer } from "./actions/container";
19
19
  import { QuestionPanelDynamicModel } from "./question_paneldynamic";
20
20
  import { Notifier } from "./notifier";
21
- import { TriggerExecutedEvent, CompletingEvent, CompleteEvent, ShowingPreviewEvent, NavigateToUrlEvent, CurrentPageChangingEvent, CurrentPageChangedEvent, ValueChangingEvent, ValueChangedEvent, VariableChangedEvent, QuestionVisibleChangedEvent, PageVisibleChangedEvent, PanelVisibleChangedEvent, QuestionCreatedEvent, QuestionAddedEvent, QuestionRemovedEvent, PanelAddedEvent, PanelRemovedEvent, PageAddedEvent, ValidateQuestionEvent, SettingQuestionErrorsEvent, ValidatePanelEvent, ErrorCustomTextEvent, ValidatedErrorsOnCurrentPageEvent, ProcessHtmlEvent, GetQuestionTitleEvent, GetTitleTagNameEvent, GetQuestionNoEvent, ProgressTextEvent, TextMarkdownEvent, TextRenderAsEvent, SendResultEvent, GetResultEvent, UploadFilesEvent, DownloadFileEvent, ClearFilesEvent, LoadChoicesFromServerEvent, ProcessTextValueEvent, UpdateQuestionCssClassesEvent, UpdatePanelCssClassesEvent, UpdatePageCssClassesEvent, UpdateChoiceItemCssEvent, AfterRenderSurveyEvent, AfterRenderHeaderEvent, AfterRenderPageEvent, AfterRenderQuestionEvent, AfterRenderQuestionInputEvent, AfterRenderPanelEvent, FocusInQuestionEvent, FocusInPanelEvent, ShowingChoiceItemEvent, ChoicesLazyLoadEvent, GetChoiceDisplayValueEvent, MatrixRowAddedEvent, MatrixBeforeRowAddedEvent, MatrixRowRemovingEvent, MatrixRowRemovedEvent, MatrixAllowRemoveRowEvent, MatrixCellCreatingEvent, MatrixCellCreatedEvent, MatrixAfterCellRenderEvent, MatrixCellValueChangedEvent, MatrixCellValueChangingEvent, MatrixCellValidateEvent, DynamicPanelModifiedEvent, DynamicPanelRemovingEvent, TimerPanelInfoTextEvent, DynamicPanelItemValueChangedEvent, DynamicPanelGetTabTitleEvent, DynamicPanelCurrentIndexChangedEvent, IsAnswerCorrectEvent, DragDropAllowEvent, ScrollingElementToTopEvent, GetQuestionTitleActionsEvent, GetPanelTitleActionsEvent, GetPageTitleActionsEvent, GetPanelFooterActionsEvent, GetMatrixRowActionsEvent, ElementContentVisibilityChangedEvent, GetExpressionDisplayValueEvent, ServerValidateQuestionsEvent, MultipleTextItemAddedEvent, MatrixColumnAddedEvent, GetQuestionDisplayValueEvent, PopupVisibleChangedEvent, ChoicesSearchEvent, OpenFileChooserEvent } from "./survey-events-api";
21
+ import { TriggerExecutedEvent, CompletingEvent, CompleteEvent, ShowingPreviewEvent, NavigateToUrlEvent, CurrentPageChangingEvent, CurrentPageChangedEvent, ValueChangingEvent, ValueChangedEvent, VariableChangedEvent, QuestionVisibleChangedEvent, PageVisibleChangedEvent, PanelVisibleChangedEvent, QuestionCreatedEvent, QuestionAddedEvent, QuestionRemovedEvent, PanelAddedEvent, PanelRemovedEvent, PageAddedEvent, ValidateQuestionEvent, SettingQuestionErrorsEvent, ValidatePanelEvent, ErrorCustomTextEvent, ValidatedErrorsOnCurrentPageEvent, ProcessHtmlEvent, GetQuestionTitleEvent, GetTitleTagNameEvent, GetQuestionNoEvent, ProgressTextEvent, TextMarkdownEvent, TextRenderAsEvent, SendResultEvent, GetResultEvent, UploadFilesEvent, DownloadFileEvent, ClearFilesEvent, LoadChoicesFromServerEvent, ProcessTextValueEvent, UpdateQuestionCssClassesEvent, UpdatePanelCssClassesEvent, UpdatePageCssClassesEvent, UpdateChoiceItemCssEvent, AfterRenderSurveyEvent, AfterRenderHeaderEvent, AfterRenderPageEvent, AfterRenderQuestionEvent, AfterRenderQuestionInputEvent, AfterRenderPanelEvent, FocusInQuestionEvent, FocusInPanelEvent, ShowingChoiceItemEvent, ChoicesLazyLoadEvent, GetChoiceDisplayValueEvent, MatrixRowAddedEvent, MatrixBeforeRowAddedEvent, MatrixRowRemovingEvent, MatrixRowRemovedEvent, MatrixAllowRemoveRowEvent, MatrixDetailPanelVisibleChangedEvent, MatrixCellCreatingEvent, MatrixCellCreatedEvent, MatrixAfterCellRenderEvent, MatrixCellValueChangedEvent, MatrixCellValueChangingEvent, MatrixCellValidateEvent, DynamicPanelModifiedEvent, DynamicPanelRemovingEvent, TimerPanelInfoTextEvent, DynamicPanelItemValueChangedEvent, DynamicPanelGetTabTitleEvent, DynamicPanelCurrentIndexChangedEvent, IsAnswerCorrectEvent, DragDropAllowEvent, ScrollingElementToTopEvent, GetQuestionTitleActionsEvent, GetPanelTitleActionsEvent, GetPageTitleActionsEvent, GetPanelFooterActionsEvent, GetMatrixRowActionsEvent, ElementContentVisibilityChangedEvent, GetExpressionDisplayValueEvent, ServerValidateQuestionsEvent, MultipleTextItemAddedEvent, MatrixColumnAddedEvent, GetQuestionDisplayValueEvent, PopupVisibleChangedEvent, ChoicesSearchEvent, OpenFileChooserEvent } from "./survey-events-api";
22
22
  import { QuestionMatrixDropdownModelBase } from "./question_matrixdropdownbase";
23
23
  import { QuestionMatrixDynamicModel } from "./question_matrixdynamic";
24
24
  import { QuestionFileModel } from "./question_file";
@@ -160,7 +160,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
160
160
  * Refer to the following help topic for information on how to implement conditional visibility: [Conditional Visibility](https://surveyjs.io/form-library/documentation/design-survey/conditional-logic#conditional-visibility).
161
161
  */
162
162
  onQuestionVisibleChanged: EventBase<SurveyModel, QuestionVisibleChangedEvent>;
163
- onVisibleChanged: EventBase<SurveyModel, QuestionVisibleChangedEvent>;
163
+ onVisibleChanged: EventBase<SurveyModel, any>;
164
164
  /**
165
165
  * An event that is raised after page visibility is changed.
166
166
  *
@@ -170,7 +170,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
170
170
  */
171
171
  onPageVisibleChanged: EventBase<SurveyModel, PageVisibleChangedEvent>;
172
172
  /**
173
- * An event that is raised after page visibility is changed.
173
+ * An event that is raised after panel visibility is changed.
174
174
  *
175
175
  * For information on event handler parameters, refer to descriptions within the interface.
176
176
  *
@@ -565,6 +565,10 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
565
565
  * This event is obsolete. Use the [`onMatrixRenderRemoveButton`](https://surveyjs.io/form-library/documentation/api-reference/survey-data-model#onMatrixRenderRemoveButton) event instead.
566
566
  */
567
567
  onMatrixAllowRemoveRow: EventBase<SurveyModel, MatrixAllowRemoveRowEvent>;
568
+ /**
569
+ * An event that is raised after the visibility of an [expandable detail section](https://surveyjs.io/form-library/examples/add-expandable-details-section-under-matrix-rows/) is changed. This event can be raised for [Multi-Select](https://surveyjs.io/form-library/documentation/api-reference/matrix-table-with-dropdown-list) and [Dynamic Matrix](https://surveyjs.io/form-library/documentation/api-reference/dynamic-matrix-table-question-model) questions.
570
+ */
571
+ onMatrixDetailPanelVisibleChanged: EventBase<SurveyModel, MatrixDetailPanelVisibleChangedEvent>;
568
572
  /**
569
573
  * An event that is raised before a cell in a [Multi-Select Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdropdown/) or [Dynamic Matrix](https://surveyjs.io/form-library/examples/questiontype-matrixdynamic/) is created. Use this event to change the type of individual matrix cells.
570
574
  * @see onAfterRenderMatrixCell
@@ -768,13 +772,12 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
768
772
  /*
769
773
  * Specifies whether to enable lazy rendering.
770
774
  *
771
- * In default mode, a survey renders the entire current page. With lazy rendering, the survey renders the page gradually as a user scrolls it. This helps reduce survey startup time and oprimizes large surveys for low-end devices.
775
+ * In default mode, a survey renders the entire current page. With lazy rendering, the survey renders the page gradually as a user scrolls it. This helps reduce survey startup time and optimizes large surveys for low-end devices.
772
776
  *
773
777
  * Default value: `false`
774
778
  *
775
779
  * [View Demo](https://surveyjs.io/form-library/examples/survey-lazy/ (linkStyle))
776
- *
777
- * > This is an experimental feature that may not work properly in certain cases.
780
+ * @see [settings.lazyRender](https://surveyjs.io/form-library/documentation/api-reference/settings#lazyRender)
778
781
  */
779
782
  lazyRendering: boolean;
780
783
  readonly isLazyRendering: boolean;
@@ -1373,7 +1376,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1373
1376
  * - `"belowHeader"` - Displays the progress bar below the survey header.
1374
1377
  * - `"bottom"` - Displays the progress bar below survey content.
1375
1378
  * - `"topBottom"` - Displays the progress bar above and below survey content.
1376
- * - `"auto"` - Automatically selects between `"aboveHeader"` and `"belowHeader"`.
1379
+ * - `"auto"` - Displays the progress bar below the survey header if the header has a [background image](https://surveyjs.io/form-library/documentation/api-reference/iheader#backgroundImage) or color. Otherwise, the progress bar is displayed above the header.
1377
1380
  * - `"top"` - *(Obsolete)* Use the `"aboveHeader"` or `"belowHeader"` property value instead.
1378
1381
  * - `"both"` - *(Obsolete)* Use the `"topBottom"` property value instead.
1379
1382
  *
@@ -1919,10 +1922,10 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
1919
1922
  private onShowingPreviewChanged;
1920
1923
  private changeCurrentPageFromPreview;
1921
1924
  private originalPages;
1922
- protected onQuestionsOnPageModeChanged(oldValue: string): void;
1925
+ protected onQuestionsOnPageModeChanged(oldValue: string, isFirstLoad?: boolean): void;
1923
1926
  private restoreOriginalPages;
1924
1927
  private getPageStartIndex;
1925
- private isCreatingPagesForPreview;
1928
+ private isLockingUpdateOnPageModes;
1926
1929
  private setupPagesForPageModes;
1927
1930
  private createPagesForQuestionOnPageMode;
1928
1931
  private createSinglePage;
@@ -2067,6 +2070,7 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2067
2070
  matrixRowRemoved(question: QuestionMatrixDynamicModel, rowIndex: number, row: any): void;
2068
2071
  matrixRowRemoving(question: QuestionMatrixDynamicModel, rowIndex: number, row: any): boolean;
2069
2072
  matrixAllowRemoveRow(question: QuestionMatrixDynamicModel, rowIndex: number, row: any): boolean;
2073
+ matrixDetailPanelVisibleChanged(question: QuestionMatrixDropdownModelBase, rowIndex: number, row: any, visible: boolean): void;
2070
2074
  matrixCellCreating(question: QuestionMatrixDropdownModelBase, options: any): void;
2071
2075
  matrixCellCreated(question: QuestionMatrixDropdownModelBase, options: any): void;
2072
2076
  matrixAfterCellRender(question: QuestionMatrixDropdownModelBase, options: any): void;
@@ -2099,8 +2103,10 @@ export declare class SurveyModel extends SurveyElementCore implements ISurvey, I
2099
2103
  * @see onUploadFile
2100
2104
  */
2101
2105
  chooseFiles(input: HTMLInputElement, callback: (files: File[]) => void, context?: {
2102
- element: ISurveyElement;
2106
+ element: Base;
2103
2107
  item?: any;
2108
+ elementType?: string;
2109
+ propertyName?: string;
2104
2110
  }): void;
2105
2111
  /**
2106
2112
  * Uploads files to a server.
@@ -2,7 +2,7 @@ import { Event } from "./base";
2
2
  export declare var surveyTimerFunctions: {
3
3
  setTimeout: (func: () => any) => number;
4
4
  clearTimeout: (timerId: number) => void;
5
- safeTimeOut: (func: () => any, delay: number) => number;
5
+ safeTimeOut: (func: () => any, delay: number) => number | any;
6
6
  };
7
7
  export declare class SurveyTimer {
8
8
  private static instanceValue;
@@ -136,6 +136,7 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
136
136
  matrixRowRemoved(question: IQuestion, rowIndex: number, row: any): any;
137
137
  matrixRowRemoving(question: IQuestion, rowIndex: number, row: any): boolean;
138
138
  matrixAllowRemoveRow(question: IQuestion, rowIndex: number, row: any): boolean;
139
+ matrixDetailPanelVisibleChanged(question: IQuestion, rowIndex: number, row: any, visible: boolean): void;
139
140
  matrixCellCreating(question: IQuestion, options: any): any;
140
141
  matrixCellCreated(question: IQuestion, options: any): any;
141
142
  matrixAfterCellRender(question: IQuestion, options: any): any;
@@ -158,8 +159,10 @@ export interface ISurvey extends ITextProcessor, ISurveyErrorOwner {
158
159
  onCorrectQuestionAnswer(question: IQuestion, options: any): void;
159
160
  processPopupVisiblityChanged(question: IQuestion, popupModel: PopupModel, visible: boolean): void;
160
161
  chooseFiles(input: HTMLInputElement, callback: (files: File[]) => void, context?: {
161
- element: ISurveyElement;
162
+ element: Base;
162
163
  item?: any;
164
+ elementType?: string;
165
+ propertyName?: string;
163
166
  }): void;
164
167
  }
165
168
  export interface ISurveyImpl {
@@ -217,6 +217,7 @@ export declare var defaultV2Css: {
217
217
  mainRoot: string;
218
218
  root: string;
219
219
  withFrame: string;
220
+ nested: string;
220
221
  };
221
222
  error: {
222
223
  root: string;
@@ -397,6 +398,7 @@ export declare var defaultV2Css: {
397
398
  mainRoot: string;
398
399
  tableWrapper: string;
399
400
  root: string;
401
+ columnsAutoWidth: string;
400
402
  noHeader: string;
401
403
  rootVerticalAlignTop: string;
402
404
  rootVerticalAlignMiddle: string;
@@ -425,6 +427,7 @@ export declare var defaultV2Css: {
425
427
  mainRoot: string;
426
428
  rootScroll: string;
427
429
  root: string;
430
+ columnsAutoWidth: string;
428
431
  noHeader: string;
429
432
  hasFooter: string;
430
433
  rootVerticalAlignTop: string;
@@ -467,6 +470,7 @@ export declare var defaultV2Css: {
467
470
  rootScroll: string;
468
471
  empty: string;
469
472
  root: string;
473
+ columnsAutoWidth: string;
470
474
  noHeader: string;
471
475
  hasFooter: string;
472
476
  tableWrapper: string;
@@ -592,6 +596,7 @@ export declare var defaultV2Css: {
592
596
  chooseFileAsIcon: string;
593
597
  chooseFileIconId: string;
594
598
  disabled: string;
599
+ controlDisabled: string;
595
600
  removeButton: string;
596
601
  removeButtonBottom: string;
597
602
  removeButtonIconId: string;
@@ -26,6 +26,7 @@ export declare abstract class DragDropCore<T> implements IDragDropEngine {
26
26
  protected domAdapter: IDragDropDOMAdapter;
27
27
  constructor(surveyValue?: ISurvey, creator?: any, longTap?: boolean, domAdapter?: IDragDropDOMAdapter);
28
28
  startDrag(event: PointerEvent, draggedElement: any, parentElement?: any, draggedElementNode?: HTMLElement, preventSaveTargetNode?: boolean): void;
29
+ private getRootElement;
29
30
  dragInit(event: PointerEvent, draggedElement: any, parentElement?: any, draggedElementNode?: HTMLElement): void;
30
31
  protected onStartDrag(event?: PointerEvent): void;
31
32
  protected isDropTargetDoesntChanged(newIsBottom: boolean): boolean;
@@ -29,6 +29,7 @@ export declare class DropdownListModel extends Base {
29
29
  private updatePopupFocusFirstInputSelector;
30
30
  protected createPopup(): void;
31
31
  private setFilterStringToListModel;
32
+ private setTextWrapEnabled;
32
33
  protected popupRecalculatePosition(isResetHeight: boolean): void;
33
34
  protected onHidePopup(): void;
34
35
  protected getAvailableItems(): Array<ItemValue>;
@@ -89,6 +89,11 @@ export { DropdownMultiSelectListModel } from "../../dropdownMultiSelectListModel
89
89
  export { QuestionButtonGroupModel, ButtonGroupItemModel, ButtonGroupItemValue } from "../../question_buttongroup";
90
90
  export { IsMobile, IsTouch, _setIsTouch } from "../../utils/devices";
91
91
  export { confirmAction, confirmActionAsync, detectIEOrEdge, doKey2ClickUp, doKey2ClickDown, doKey2ClickBlur, loadFileFromBase64, increaseHeightByContent, createSvg, chooseFiles, sanitizeEditableContent, IAttachKey2clickOptions } from "../../utils/utils";
92
+ export { InputMaskBase } from "../../mask/mask_base";
93
+ export { InputMaskPattern } from "../../mask/mask_pattern";
94
+ export { InputMaskNumeric } from "../../mask/mask_numeric";
95
+ export { InputMaskDateTime } from "../../mask/mask_datetime";
96
+ export { InputMaskCurrency } from "../../mask/mask_currency";
92
97
  export * from "../../utils/cssClassBuilder";
93
98
  export { surveyCss, defaultV2Css, defaultV2ThemeName } from "../../defaultCss/defaultV2Css";
94
99
  export { DragDropCore } from "../../dragdrop/core";
@@ -0,0 +1,27 @@
1
+ export declare class DomWindowHelper {
2
+ static isAvailable(): boolean;
3
+ static isFileReaderAvailable(): boolean;
4
+ static getLocation(): Location;
5
+ static getVisualViewport(): VisualViewport | null;
6
+ static getInnerWidth(): number;
7
+ static getInnerHeight(): number;
8
+ static getWindow(): Window;
9
+ static hasOwn(propertyName: string): boolean;
10
+ static getSelection(): Selection | null;
11
+ static requestAnimationFrame(callback: FrameRequestCallback): number;
12
+ static addEventListener(type: string, listener: (e?: any) => void): void;
13
+ static removeEventListener(type: string, listener: (e?: any) => void): void;
14
+ }
15
+ export declare class DomDocumentHelper {
16
+ static isAvailable(): boolean;
17
+ static getBody(): HTMLElement;
18
+ static getDocumentElement(): HTMLElement;
19
+ static getDocument(): Document;
20
+ static getCookie(): string;
21
+ static setCookie(newCookie: string): void;
22
+ static activeElementBlur(): Document;
23
+ static createElement(tagName: string): HTMLElement;
24
+ static getComputedStyle(elt: Element): CSSStyleDeclaration;
25
+ static addEventListener(type: string, listener: (e?: any) => void): void;
26
+ static removeEventListener(type: string, listener: (e?: any) => void): void;
27
+ }
package/typings/list.d.ts CHANGED
@@ -9,6 +9,7 @@ export declare let defaultListCss: {
9
9
  itemWithIcon: string;
10
10
  itemDisabled: string;
11
11
  itemFocused: string;
12
+ itemTextWrap: string;
12
13
  itemIcon: string;
13
14
  itemSeparator: string;
14
15
  itemBody: string;
@@ -46,6 +47,7 @@ export declare class ListModel<T extends BaseAction = Action> extends ActionCont
46
47
  isAllDataLoaded: boolean;
47
48
  showSearchClearButton: boolean;
48
49
  renderElements: boolean;
50
+ textWrapEnabled: boolean;
49
51
  static INDENT: number;
50
52
  static MINELEMENTCOUNT: number;
51
53
  scrollHandler: (e?: any) => void;
@@ -71,6 +73,7 @@ export declare class ListModel<T extends BaseAction = Action> extends ActionCont
71
73
  itemWithIcon: string;
72
74
  itemDisabled: string;
73
75
  itemFocused: string;
76
+ itemTextWrap: string;
74
77
  itemIcon: string;
75
78
  itemSeparator: string;
76
79
  itemBody: string;
@@ -92,6 +92,7 @@ export declare class QuestionMatrixBaseModel<TRow, TColumn> extends Question {
92
92
  protected clearInvisibleValuesInRows(): void;
93
93
  private restoreNewVisibleRowsValues;
94
94
  needResponsiveWidth(): boolean;
95
+ protected get columnsAutoWidth(): boolean;
95
96
  getTableCss(): string;
96
97
  /**
97
98
  * Aligns matrix cell content in the vertical direction.
@@ -0,0 +1,14 @@
1
+ import { InputMaskBase } from "./mask_base";
2
+ import { ITextInputParams } from "./mask_utils";
3
+ export declare class InputElementAdapter {
4
+ private inputMaskInstance;
5
+ private inputElement;
6
+ private prevUnmaskedValue;
7
+ constructor(inputMaskInstance: InputMaskBase, inputElement: HTMLInputElement, value?: string);
8
+ inputMaskInstancePropertyChangedHandler: (sender: any, options: any) => void;
9
+ beforeInputHandler: (event: any) => void;
10
+ createArgs(event: any): ITextInputParams;
11
+ addInputEventListener(): void;
12
+ removeInputEventListener(): void;
13
+ dispose(): void;
14
+ }
@@ -0,0 +1,24 @@
1
+ import { Base } from "../base";
2
+ import { IInputMask, IMaskedInputResult, ITextInputParams } from "./mask_utils";
3
+ /**
4
+ * A base class for classes that implement input masks:
5
+ *
6
+ * - [`InputMaskNumeric`](https://surveyjs.io/form-library/documentation/inputmasknumeric)
7
+ * - [`InputMaskCurrency`](https://surveyjs.io/form-library/documentation/inputmaskcurrency)
8
+ * - [`InputMaskDateTime`](https://surveyjs.io/form-library/documentation/inputmaskdatetime)
9
+ * - [`InputMaskPattern`](https://surveyjs.io/form-library/documentation/inputmaskpattern)
10
+ */
11
+ export declare class InputMaskBase extends Base implements IInputMask {
12
+ /**
13
+ * Specifies whether to store the question value with an applied mask in survey results.
14
+ *
15
+ * Default value: `false`
16
+ */
17
+ saveMaskedValue: boolean;
18
+ getType(): string;
19
+ setData(json: any): void;
20
+ getData(): any;
21
+ processInput(args: ITextInputParams): IMaskedInputResult;
22
+ getUnmaskedValue(src: string): any;
23
+ getMaskedValue(src: any): string;
24
+ }
@@ -0,0 +1,41 @@
1
+ import { InputMaskNumeric } from "./mask_numeric";
2
+ import { IMaskedInputResult, ITextInputParams } from "./mask_utils";
3
+ /**
4
+ * A class that describes an input mask of the `"currency"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).
5
+ *
6
+ * The following code shows how to specify the properties of this class within a survey JSON schema:
7
+ *
8
+ * ```js
9
+ * const surveyJson = {
10
+ * "elements": [{
11
+ * "name": "textquestion1"
12
+ * "type": "text",
13
+ * "maskType": "currency",
14
+ * "maskSettings": {
15
+ * // Specify the properties of a currency input mask here
16
+ * }
17
+ * }]
18
+ * }
19
+ * ```
20
+ *
21
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
22
+ */
23
+ export declare class InputMaskCurrency extends InputMaskNumeric {
24
+ /**
25
+ * One or several symbols to be displayed before the currency value.
26
+ *
27
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
28
+ * @see suffix
29
+ */
30
+ prefix: string;
31
+ /**
32
+ * One or several symbols to be displayed after the currency value.
33
+ * @see prefix
34
+ */
35
+ suffix: string;
36
+ getType(): string;
37
+ private wrapText;
38
+ unwrapInputArgs(args: ITextInputParams): void;
39
+ processInput(args: ITextInputParams): IMaskedInputResult;
40
+ getMaskedValue(src: any): string;
41
+ }
@@ -0,0 +1,65 @@
1
+ import { InputMaskPattern } from "./mask_pattern";
2
+ import { IMaskedInputResult, ITextInputParams } from "./mask_utils";
3
+ export interface IDateTimeMaskLexem {
4
+ type: "month" | "day" | "year" | "separator";
5
+ value: any;
6
+ count: number;
7
+ maxCount: number;
8
+ }
9
+ export declare function getDateTimeLexems(pattern: string): Array<IDateTimeMaskLexem>;
10
+ /**
11
+ * A class that describes an input mask of the `"datetime"` [`maskType`](https://surveyjs.io/form-library/documentation/api-reference/text-entry-question-model#maskType).
12
+ *
13
+ * The following code shows how to specify the properties of this class within a survey JSON schema:
14
+ *
15
+ * ```js
16
+ * const surveyJson = {
17
+ * "elements": [{
18
+ * "name": "textquestion1"
19
+ * "type": "text",
20
+ * "maskType": "datetime",
21
+ * "maskSettings": {
22
+ * // Specify the properties of a date-time input mask here
23
+ * }
24
+ * }]
25
+ * }
26
+ * ```
27
+ *
28
+ * [View Demo](https://surveyjs.io/form-library/examples/masked-input-fields/ (linkStyle))
29
+ */
30
+ export declare class InputMaskDateTime extends InputMaskPattern {
31
+ private turnOfTheCentury;
32
+ private lexems;
33
+ private inputDateTimeData;
34
+ /**
35
+ * A minimum date and time value that respondents can enter.
36
+ * @see max
37
+ */
38
+ min: string;
39
+ /**
40
+ * A maximum date and time value that respondents can enter.
41
+ * @see min
42
+ */
43
+ max: string;
44
+ getType(): string;
45
+ protected updateLiterals(): void;
46
+ private leaveOnlyNumbers;
47
+ private getMaskedStrFromISO;
48
+ private initInputDateTimeData;
49
+ private getISO_8601Format;
50
+ private isYearValid;
51
+ private isDateValid;
52
+ private getPlaceholder;
53
+ private updateInputDateTimeData;
54
+ private getCorrectDatePartFormat;
55
+ private createIDateTimeComposition;
56
+ private parseTwoDigitYear;
57
+ private getFormatedString;
58
+ private setInputDateTimeData;
59
+ _getMaskedValue(src: string, matchWholeMask?: boolean): string;
60
+ private getPartsOld;
61
+ private getParts;
62
+ getUnmaskedValue(src: string): any;
63
+ getMaskedValue(src: string): string;
64
+ processInput(args: ITextInputParams): IMaskedInputResult;
65
+ }