@formio/js 5.1.0-dev.6058.189ce78 → 5.1.0-dev.6059.845a6e3

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 (166) hide show
  1. package/Changelog.md +13 -131
  2. package/README.md +1 -28
  3. package/dist/formio.builder.css +17 -19
  4. package/dist/formio.builder.min.css +1 -1
  5. package/dist/formio.embed.js +1 -1
  6. package/dist/formio.embed.min.js +1 -1
  7. package/dist/formio.embed.min.js.LICENSE.txt +1 -1
  8. package/dist/formio.form.css +17 -19
  9. package/dist/formio.form.js +176 -102
  10. package/dist/formio.form.min.css +1 -1
  11. package/dist/formio.form.min.js +1 -1
  12. package/dist/formio.form.min.js.LICENSE.txt +3 -3
  13. package/dist/formio.full.css +17 -19
  14. package/dist/formio.full.js +86 -108
  15. package/dist/formio.full.min.css +2 -2
  16. package/dist/formio.full.min.js +1 -1
  17. package/dist/formio.full.min.js.LICENSE.txt +3 -3
  18. package/dist/formio.js +10 -10
  19. package/dist/formio.min.js +1 -1
  20. package/dist/formio.min.js.LICENSE.txt +1 -1
  21. package/dist/formio.utils.js +3 -3
  22. package/dist/formio.utils.min.js +1 -1
  23. package/dist/formio.utils.min.js.LICENSE.txt +1 -1
  24. package/lib/cjs/CDN.d.ts +1 -1
  25. package/lib/cjs/CDN.js +2 -2
  26. package/lib/cjs/Embed.js +1 -1
  27. package/lib/cjs/Form.d.ts +6 -4
  28. package/lib/cjs/Form.js +8 -16
  29. package/lib/cjs/Formio.js +1 -1
  30. package/lib/cjs/PDFBuilder.js +4 -4
  31. package/lib/cjs/Webform.d.ts +13 -16
  32. package/lib/cjs/Webform.js +148 -162
  33. package/lib/cjs/WebformBuilder.js +28 -17
  34. package/lib/cjs/Wizard.js +1 -1
  35. package/lib/cjs/WizardBuilder.js +2 -15
  36. package/lib/cjs/components/Components.d.ts +0 -3
  37. package/lib/cjs/components/_classes/component/Component.d.ts +0 -1
  38. package/lib/cjs/components/_classes/component/Component.js +11 -38
  39. package/lib/cjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
  40. package/lib/cjs/components/_classes/component/editForm/Component.edit.data.d.ts +0 -37
  41. package/lib/cjs/components/_classes/component/editForm/Component.edit.data.js +2 -32
  42. package/lib/cjs/components/_classes/component/editForm/utils.d.ts +0 -1
  43. package/lib/cjs/components/_classes/component/editForm/utils.js +0 -3
  44. package/lib/cjs/components/_classes/input/Input.js +1 -23
  45. package/lib/cjs/components/_classes/list/ListComponent.js +4 -4
  46. package/lib/cjs/components/_classes/multivalue/Multivalue.d.ts +1 -1
  47. package/lib/cjs/components/_classes/multivalue/Multivalue.js +3 -10
  48. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +0 -2
  49. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +31 -52
  50. package/lib/cjs/components/address/Address.js +1 -1
  51. package/lib/cjs/components/button/Button.js +6 -6
  52. package/lib/cjs/components/checkbox/Checkbox.d.ts +1 -1
  53. package/lib/cjs/components/checkbox/Checkbox.js +2 -2
  54. package/lib/cjs/components/datagrid/DataGrid.d.ts +0 -2
  55. package/lib/cjs/components/datagrid/DataGrid.js +26 -41
  56. package/lib/cjs/components/day/Day.js +7 -9
  57. package/lib/cjs/components/editgrid/EditGrid.d.ts +1 -1
  58. package/lib/cjs/components/editgrid/EditGrid.js +8 -26
  59. package/lib/cjs/components/file/File.d.ts +1 -1
  60. package/lib/cjs/components/file/File.js +17 -23
  61. package/lib/cjs/components/form/Form.d.ts +1 -1
  62. package/lib/cjs/components/form/Form.js +5 -9
  63. package/lib/cjs/components/form/editForm/Form.edit.form.js +3 -3
  64. package/lib/cjs/components/hidden/Hidden.d.ts +1 -0
  65. package/lib/cjs/components/hidden/Hidden.js +1 -1
  66. package/lib/cjs/components/number/Number.js +5 -12
  67. package/lib/cjs/components/radio/Radio.js +0 -10
  68. package/lib/cjs/components/recaptcha/ReCaptcha.js +2 -2
  69. package/lib/cjs/components/select/Select.d.ts +1 -0
  70. package/lib/cjs/components/select/Select.js +33 -12
  71. package/lib/cjs/components/select/editForm/Select.edit.data.d.ts +1 -1
  72. package/lib/cjs/components/select/editForm/Select.edit.data.js +2 -3
  73. package/lib/cjs/components/selectboxes/SelectBoxes.js +2 -2
  74. package/lib/cjs/components/signature/Signature.d.ts +1 -1
  75. package/lib/cjs/components/signature/Signature.js +3 -5
  76. package/lib/cjs/components/signature/editForm/Signature.edit.display.d.ts +6 -0
  77. package/lib/cjs/components/signature/editForm/Signature.edit.display.js +1 -0
  78. package/lib/cjs/components/survey/Survey.js +2 -2
  79. package/lib/cjs/components/tags/Tags.d.ts +1 -1
  80. package/lib/cjs/components/tags/Tags.js +2 -2
  81. package/lib/cjs/components/textarea/TextArea.js +6 -6
  82. package/lib/cjs/formio.form.js +0 -5
  83. package/lib/cjs/providers/storage/googleDrive.js +2 -3
  84. package/lib/cjs/providers/storage/s3.js +3 -3
  85. package/lib/cjs/providers/storage/xhr.d.ts +0 -1
  86. package/lib/cjs/providers/storage/xhr.js +1 -6
  87. package/lib/cjs/translations/en.d.ts +81 -234
  88. package/lib/cjs/translations/en.js +81 -8
  89. package/lib/cjs/utils/ChoicesWrapper.d.ts +25 -4
  90. package/lib/cjs/utils/ChoicesWrapper.js +124 -47
  91. package/lib/cjs/utils/formUtils.d.ts +2 -2
  92. package/lib/cjs/utils/i18n.d.ts +2 -5
  93. package/lib/cjs/utils/i18n.js +5 -32
  94. package/lib/cjs/widgets/CalendarWidget.js +27 -27
  95. package/lib/mjs/CDN.d.ts +1 -1
  96. package/lib/mjs/CDN.js +2 -2
  97. package/lib/mjs/Embed.js +1 -1
  98. package/lib/mjs/Form.d.ts +6 -4
  99. package/lib/mjs/Form.js +9 -17
  100. package/lib/mjs/Formio.js +1 -1
  101. package/lib/mjs/PDFBuilder.js +4 -4
  102. package/lib/mjs/Webform.d.ts +13 -16
  103. package/lib/mjs/Webform.js +158 -171
  104. package/lib/mjs/WebformBuilder.js +28 -17
  105. package/lib/mjs/Wizard.js +1 -1
  106. package/lib/mjs/WizardBuilder.js +2 -15
  107. package/lib/mjs/components/Components.d.ts +0 -3
  108. package/lib/mjs/components/_classes/component/Component.d.ts +0 -1
  109. package/lib/mjs/components/_classes/component/Component.js +11 -27
  110. package/lib/mjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
  111. package/lib/mjs/components/_classes/component/editForm/Component.edit.data.d.ts +0 -37
  112. package/lib/mjs/components/_classes/component/editForm/Component.edit.data.js +2 -32
  113. package/lib/mjs/components/_classes/component/editForm/utils.d.ts +0 -1
  114. package/lib/mjs/components/_classes/component/editForm/utils.js +0 -3
  115. package/lib/mjs/components/_classes/input/Input.js +1 -22
  116. package/lib/mjs/components/_classes/list/ListComponent.js +4 -4
  117. package/lib/mjs/components/_classes/multivalue/Multivalue.d.ts +1 -1
  118. package/lib/mjs/components/_classes/multivalue/Multivalue.js +3 -10
  119. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +0 -2
  120. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +31 -53
  121. package/lib/mjs/components/address/Address.js +1 -1
  122. package/lib/mjs/components/button/Button.js +6 -6
  123. package/lib/mjs/components/checkbox/Checkbox.d.ts +1 -1
  124. package/lib/mjs/components/checkbox/Checkbox.js +2 -2
  125. package/lib/mjs/components/datagrid/DataGrid.d.ts +0 -2
  126. package/lib/mjs/components/datagrid/DataGrid.js +26 -41
  127. package/lib/mjs/components/day/Day.js +7 -9
  128. package/lib/mjs/components/editgrid/EditGrid.d.ts +1 -1
  129. package/lib/mjs/components/editgrid/EditGrid.js +7 -25
  130. package/lib/mjs/components/file/File.d.ts +1 -1
  131. package/lib/mjs/components/file/File.js +17 -23
  132. package/lib/mjs/components/form/Form.d.ts +1 -1
  133. package/lib/mjs/components/form/Form.js +5 -8
  134. package/lib/mjs/components/form/editForm/Form.edit.form.js +3 -3
  135. package/lib/mjs/components/hidden/Hidden.d.ts +1 -0
  136. package/lib/mjs/components/hidden/Hidden.js +1 -1
  137. package/lib/mjs/components/number/Number.js +5 -12
  138. package/lib/mjs/components/radio/Radio.js +0 -10
  139. package/lib/mjs/components/recaptcha/ReCaptcha.js +2 -2
  140. package/lib/mjs/components/select/Select.d.ts +1 -0
  141. package/lib/mjs/components/select/Select.js +34 -14
  142. package/lib/mjs/components/select/editForm/Select.edit.data.d.ts +1 -1
  143. package/lib/mjs/components/select/editForm/Select.edit.data.js +2 -3
  144. package/lib/mjs/components/selectboxes/SelectBoxes.js +2 -2
  145. package/lib/mjs/components/signature/Signature.d.ts +1 -1
  146. package/lib/mjs/components/signature/Signature.js +3 -5
  147. package/lib/mjs/components/signature/editForm/Signature.edit.display.d.ts +6 -0
  148. package/lib/mjs/components/signature/editForm/Signature.edit.display.js +1 -0
  149. package/lib/mjs/components/survey/Survey.js +2 -2
  150. package/lib/mjs/components/tags/Tags.d.ts +1 -1
  151. package/lib/mjs/components/tags/Tags.js +2 -2
  152. package/lib/mjs/components/textarea/TextArea.js +6 -6
  153. package/lib/mjs/formio.form.js +0 -5
  154. package/lib/mjs/providers/storage/googleDrive.js +2 -3
  155. package/lib/mjs/providers/storage/s3.js +3 -3
  156. package/lib/mjs/providers/storage/xhr.d.ts +0 -1
  157. package/lib/mjs/providers/storage/xhr.js +1 -6
  158. package/lib/mjs/translations/en.d.ts +81 -234
  159. package/lib/mjs/translations/en.js +1 -87
  160. package/lib/mjs/utils/ChoicesWrapper.d.ts +25 -4
  161. package/lib/mjs/utils/ChoicesWrapper.js +119 -26
  162. package/lib/mjs/utils/formUtils.d.ts +2 -2
  163. package/lib/mjs/utils/i18n.d.ts +2 -5
  164. package/lib/mjs/utils/i18n.js +5 -32
  165. package/lib/mjs/widgets/CalendarWidget.js +27 -27
  166. package/package.json +11 -27
@@ -1,235 +1,82 @@
1
- declare const _default: {
2
- unsavedRowsError: string;
3
- invalidRowsError: string;
4
- invalidRowError: string;
5
- invalidOption: string;
6
- invalidDay: string;
7
- alertMessageWithLabel: string;
8
- alertMessage: string;
9
- complete: string;
10
- error: string;
11
- errorListHotkey: string;
12
- errorsListNavigationMessage: string;
13
- submitError: string;
14
- required: string;
15
- unique: string;
16
- array: string;
17
- array_nonempty: string;
18
- nonarray: string;
19
- select: string;
20
- pattern: string;
21
- minLength: string;
22
- maxLength: string;
23
- minWords: string;
24
- maxWords: string;
25
- min: string;
26
- max: string;
27
- maxDate: string;
28
- minDate: string;
29
- maxYear: string;
30
- minYear: string;
31
- minSelectedCount: string;
32
- maxSelectedCount: string;
33
- invalid_email: string;
34
- invalid_url: string;
35
- invalid_regex: string;
36
- invalid_date: string;
37
- invalid_day: string;
38
- invalidValueProperty: string;
39
- mask: string;
40
- valueIsNotAvailable: string;
41
- stripe: string;
42
- month: string;
43
- day: string;
44
- year: string;
45
- january: string;
46
- february: string;
47
- march: string;
48
- april: string;
49
- may: string;
50
- june: string;
51
- july: string;
52
- august: string;
53
- september: string;
54
- october: string;
55
- november: string;
56
- december: string;
57
- next: string;
58
- previous: string;
59
- cancel: string;
60
- submit: string;
61
- confirmCancel: string;
62
- saveDraftInstanceError: string;
63
- saveDraftAuthError: string;
64
- restoreDraftInstanceError: string;
65
- saveDraftError: string;
66
- restoreDraftError: string;
67
- time: string;
68
- cancelButtonAriaLabel: string;
69
- previousButtonAriaLabel: string;
70
- nextButtonAriaLabel: string;
71
- submitButtonAriaLabel: string;
72
- reCaptchaTokenValidationError: string;
73
- reCaptchaTokenNotSpecifiedError: string;
74
- apiKey: string;
75
- typeRemaining: string;
76
- typeCount: string;
77
- requiredDayField: string;
78
- requiredDayEmpty: string;
79
- requiredMonthField: string;
80
- requiredYearField: string;
81
- formNotReady: string;
82
- noFormElement: string;
83
- notUniqueKey: string;
84
- newFormSchema: string;
85
- missingUrl: string;
86
- urlNotAttachedToBtn: string;
87
- loadingProjectSettingsError: string;
88
- sessionStorageSupportError: string;
89
- builderUniqueError: string;
90
- pageNotFound: string;
91
- noDragInfoError: string;
92
- addonSupportTypeError: string;
93
- setPathError: string;
94
- calculatedPathDeprecation: string;
95
- unknownTemplate: string;
96
- unknownComponent: string;
97
- renderTemplateFunctionDeprecation: string;
98
- whenReadyDeprecation: string;
99
- loadResourcesError: string;
100
- noSelectDataConfiguration: string;
101
- indexedDBSupportError: string;
102
- caretPositionSavingError: string;
103
- iteratableRowsError: string;
104
- checkRowDeprecation: string;
105
- noOAuthBtn: string;
106
- noOAuthConfiguration: string;
107
- oAuthErrorsTitle: string;
108
- noOAuthFormUrl: string;
109
- oAuthStateError: string;
110
- componentInvalidRowValidation: string;
111
- videoPlayerNotFound: string;
112
- synchronizationFailed: string;
113
- fileWithDuplicatedNameInProgress: string;
114
- fileWithDuplicatedNameLoaded: string;
115
- nestedForm: string;
116
- noDataProvided: string;
117
- subformSubmissionLoadingError: string;
118
- noDelimiterSet: string;
119
- noSiteKey: string;
120
- failedToNormalize: string;
121
- failedToCompareItems: string;
122
- editorFocusError: string;
123
- quillImageUploadFailed: string;
124
- noFilesSelected: string;
125
- needConfigurationForQuill: string;
126
- waitPdfConverting: string;
127
- uploading: string;
128
- pasteBelow: string;
129
- copy: string;
130
- move: string;
131
- edit: string;
132
- editJson: string;
133
- remove: string;
134
- clickToSetValue: string;
135
- words: string;
136
- characters: string;
137
- addAnother: string;
138
- yes: string;
139
- no: string;
140
- wantToClearData: string;
141
- yesDelete: string;
142
- waitFileProcessing: string;
143
- wrongFileType: string;
144
- fileTooSmall: string;
145
- fileTooBig: string;
146
- noFileService: string;
147
- fileProcessingFailed: string;
148
- readyForUpload: string;
149
- readyForRemovingFromStorage: string;
150
- preparingFileToRemove: string;
151
- succefullyRemoved: string;
152
- succefullyUploaded: string;
153
- maxSelectItems: string;
154
- minSelectItems: string;
155
- clickToSign: string;
156
- surveyQuestion: string;
157
- surveyQuestionValue: string;
158
- success: string;
159
- noResultsFound: string;
160
- noChoices: string;
161
- typeToSearch: string;
162
- loading: string;
163
- help: string;
164
- component: string;
165
- save: string;
166
- preview: string;
167
- dragAndDropComponent: string;
168
- searchFields: string;
169
- noMatchesFound: string;
170
- fileName: string;
171
- size: string;
172
- type: string;
173
- gallery: string;
174
- camera: string;
175
- dropFilesToAttach: string;
176
- useCamera: string;
177
- browse: string;
178
- takePicture: string;
179
- switchToFileUpload: string;
180
- completeStatus: string;
181
- noStorageSet: string;
182
- noFileApiSupport: string;
183
- noFormDataSupport: string;
184
- noProgressSupport: string;
185
- close: string;
186
- addResource: string;
187
- autocomplete: string;
188
- showPreview: string;
189
- hidePreview: string;
190
- createPage: string;
191
- page: string;
192
- closeBtnDescription: string;
193
- cancelBtnDescription: string;
194
- saveBtnDescription: string;
195
- addOrRemove: string;
196
- anyFileTypesAllowed: string;
197
- allowedFileTypes: string;
198
- syncing: string;
199
- syncNow: string;
200
- pressToOpen: string;
201
- browseToAttachFileFor: string;
202
- or: string;
203
- numericOnly: string;
204
- uploadPdfFile: string;
205
- dropToStart: string;
206
- expand: string;
207
- collapse: string;
208
- add: string;
209
- delete: string;
210
- revert: string;
211
- removeBtnPressToRemove: string;
212
- file: string;
213
- captureVideo: string;
214
- captureAudio: string;
215
- captureImage: string;
216
- browseFiles: string;
217
- noComponentsSetInGrid: string;
218
- sortAscending: string;
219
- sortDescending: string;
220
- filter: string;
221
- clear: string;
222
- showItemsWithValue: string;
223
- gridItemsPerPage: string;
224
- gridAllItems: string;
225
- recordsSelectedOnPage: string;
226
- recordsSelectedInTable: string;
227
- gridSelectAll: string;
228
- itemsInTable: string;
229
- clearSelection: string;
230
- editGridRow: string;
231
- deleteGridRow: string;
232
- selected: string;
233
- actions: string;
234
- };
1
+ declare namespace _default {
2
+ let unsavedRowsError: string;
3
+ let invalidRowsError: string;
4
+ let invalidRowError: string;
5
+ let invalidOption: string;
6
+ let invalidDay: string;
7
+ let alertMessageWithLabel: string;
8
+ let alertMessage: string;
9
+ let complete: string;
10
+ let error: string;
11
+ let errorListHotkey: string;
12
+ let errorsListNavigationMessage: string;
13
+ let submitError: string;
14
+ let required: string;
15
+ let unique: string;
16
+ let array: string;
17
+ let array_nonempty: string;
18
+ let nonarray: string;
19
+ let select: string;
20
+ let pattern: string;
21
+ let minLength: string;
22
+ let maxLength: string;
23
+ let minWords: string;
24
+ let maxWords: string;
25
+ let min: string;
26
+ let max: string;
27
+ let maxDate: string;
28
+ let minDate: string;
29
+ let maxYear: string;
30
+ let minYear: string;
31
+ let minSelectedCount: string;
32
+ let maxSelectedCount: string;
33
+ let invalid_email: string;
34
+ let invalid_url: string;
35
+ let invalid_regex: string;
36
+ let invalid_date: string;
37
+ let invalid_day: string;
38
+ let invalidValueProperty: string;
39
+ let mask: string;
40
+ let valueIsNotAvailable: string;
41
+ let stripe: string;
42
+ let month: string;
43
+ let day: string;
44
+ let year: string;
45
+ let january: string;
46
+ let february: string;
47
+ let march: string;
48
+ let april: string;
49
+ let may: string;
50
+ let june: string;
51
+ let july: string;
52
+ let august: string;
53
+ let september: string;
54
+ let october: string;
55
+ let november: string;
56
+ let december: string;
57
+ let next: string;
58
+ let previous: string;
59
+ let cancel: string;
60
+ let submit: string;
61
+ let confirmCancel: string;
62
+ let saveDraftInstanceError: string;
63
+ let saveDraftAuthError: string;
64
+ let restoreDraftInstanceError: string;
65
+ let saveDraftError: string;
66
+ let restoreDraftError: string;
67
+ let time: string;
68
+ let cancelButtonAriaLabel: string;
69
+ let previousButtonAriaLabel: string;
70
+ let nextButtonAriaLabel: string;
71
+ let submitButtonAriaLabel: string;
72
+ let reCaptchaTokenValidationError: string;
73
+ let reCaptchaTokenNotSpecifiedError: string;
74
+ let apiKey: string;
75
+ let typeRemaining: string;
76
+ let typeCount: string;
77
+ let requiredDayField: string;
78
+ let requiredDayEmpty: string;
79
+ let requiredMonthField: string;
80
+ let requiredYearField: string;
81
+ }
235
82
  export default _default;
@@ -1,6 +1,4 @@
1
- import bootstrap from '@formio/bootstrap';
2
1
  export default {
3
- ...(bootstrap?.translations?.en || {}),
4
2
  unsavedRowsError: 'Please save all rows before proceeding.',
5
3
  invalidRowsError: 'Please correct invalid rows before proceeding.',
6
4
  invalidRowError: 'Invalid row. Please correct it or delete.',
@@ -79,89 +77,5 @@ export default {
79
77
  requiredDayField: '{{ field }} is required',
80
78
  requiredDayEmpty: '{{ field }} is required',
81
79
  requiredMonthField: '{{ field }} is required',
82
- requiredYearField: '{{ field }} is required',
83
- formNotReady: 'Form not ready. Use form.ready promise',
84
- noFormElement: 'No DOM element for form.',
85
- notUniqueKey: 'API Key is not unique',
86
- newFormSchema: 'Form schema is for a newer version, please upgrade your renderer. Some functionality may not work.',
87
- missingUrl: 'Missing URL argument',
88
- urlNotAttachedToBtn: 'You should add a URL to this button.',
89
- loadingProjectSettingsError: 'Could not load project settings',
90
- sessionStorageSupportError: 'Session storage is not supported in this browser.',
91
- builderUniqueError: `You cannot add more than one {{componentKeyOrTitle}} component to one page.`,
92
- pageNotFound: 'Page not found',
93
- noDragInfoError: 'There is no Drag Info available for either dragged or sibling element',
94
- addonSupportTypeError: 'Addon {{label}} does not support component of type {{type}}',
95
- setPathError: 'Should not be setting the path of a component.',
96
- calculatedPathDeprecation: 'component.calculatedPath was deprecated, use component.path instead.',
97
- unknownTemplate: 'Unknown template: {{name}}',
98
- unknownComponent: 'Unknown component: {{type}}',
99
- renderTemplateFunctionDeprecation: `Form.io 'render' template function is deprecated.
100
- If you need to render template (template A) inside of another template (template B),
101
- pass pre-compiled template A (use this.renderTemplate('template_A_name') as template context variable for template B`,
102
- whenReadyDeprecation: 'The whenReady() method has been deprecated. Please use the dataReady property instead.',
103
- loadResourcesError: 'Unable to load resources for {{componentKey}}',
104
- noSelectDataConfiguration: 'Select component {{componentKey}} does not have data configuration.',
105
- indexedDBSupportError: "Your browser doesn't support current version of indexedDB",
106
- caretPositionSavingError: 'An error occurred while trying to save caret position',
107
- iteratableRowsError: 'Getter #iteratableRows() is not implemented',
108
- checkRowDeprecation: 'Deprecation Warning: checkRow method has been replaced with processRow',
109
- noOAuthBtn: 'You must add the OAuth button to a form for it to function properly',
110
- noOAuthConfiguration: 'OAuth not configured. You must configure oauth for your project before it will work.',
111
- oAuthErrorsTitle: 'The Following Error Has Occured',
112
- noOAuthFormUrl: 'You must attach a Form API url to your form in order to use OAuth buttons.',
113
- oAuthStateError: 'OAuth state does not match. Please try logging in again.',
114
- componentInvalidRowValidation: 'Invalid row validation for {{componentKey}}',
115
- videoPlayerNotFound: 'Video player not found in template.',
116
- synchronizationFailed: 'Synchronization is failed',
117
- fileWithDuplicatedNameInProgress: 'File with the same name is already being uploaded',
118
- fileWithDuplicatedNameLoaded: 'File with the same name is already uploaded',
119
- nestedForm: 'Nested form',
120
- noDataProvided: 'No data provided',
121
- subformSubmissionLoadingError: 'Unable to load subform submission {{submissionId}}:',
122
- noDelimiterSet: 'In order for thousands separator to work properly, you must set the delimiter to true in the component json',
123
- noSiteKey: 'There is no Site Key specified in settings in form JSON',
124
- failedToNormalize: 'Failed to normalize value',
125
- failedToCompareItems: 'Error while comparing items',
126
- editorFocusError: 'An editor did not initialize properly when trying to focus:',
127
- quillImageUploadFailed: 'Quill image upload failed',
128
- noFilesSelected: 'No files selected',
129
- needConfigurationForQuill: 'The WYSIWYG settings are configured for CKEditor. For this renderer, you will need to use configurations for the Quill Editor. See https://quilljs.com/docs/configuration for more information.',
130
- waitPdfConverting: 'Converting PDF. Please wait.',
131
- uploading: 'Uploading',
132
- pasteBelow: 'Paste below',
133
- copy: 'Copy',
134
- move: 'Move',
135
- edit: 'Edit',
136
- editJson: 'Edit JSON',
137
- remove: 'Remove',
138
- clickToSetValue: 'Click to set value',
139
- words: 'words',
140
- characters: 'characters',
141
- addAnother: 'Add Another',
142
- yes: 'Yes',
143
- no: 'No',
144
- wantToClearData: 'Do you want to clear data?',
145
- yesDelete: 'Yes, delete it',
146
- waitFileProcessing: 'Processing file. Please wait...',
147
- wrongFileType: 'File is the wrong type; it must be {{ pattern }}',
148
- fileTooSmall: 'File is too small; it must be at least {{ size }}',
149
- fileTooBig: 'File is too big; it must be at most {{ size }}',
150
- noFileService: 'File Service not provided.',
151
- fileProcessingFailed: 'File processing has been failed.',
152
- readyForUpload: 'Ready to be uploaded into storage',
153
- readyForRemovingFromStorage: 'Ready to be removed from storage',
154
- preparingFileToRemove: 'Preparing file to remove',
155
- succefullyRemoved: 'Succefully removed',
156
- succefullyUploaded: 'Succefully uploaded',
157
- maxSelectItems: 'You may only select up to {{maxCount}} items',
158
- minSelectItems: 'You must select at least {{minCount}} items',
159
- clickToSign: 'Click to Sign',
160
- surveyQuestion: 'Question',
161
- surveyQuestionValue: 'Value',
162
- success: 'Success',
163
- noResultsFound: 'No results found',
164
- noChoices: 'No choices to choose from',
165
- typeToSearch: 'Type to search',
166
- loading: 'Loading',
80
+ requiredYearField: '{{ field }} is required'
167
81
  };
@@ -1,17 +1,38 @@
1
+ export namespace KEY_CODES {
2
+ let BACK_KEY: number;
3
+ let DELETE_KEY: number;
4
+ let TAB_KEY: number;
5
+ let ENTER_KEY: number;
6
+ let A_KEY: number;
7
+ let ESC_KEY: number;
8
+ let UP_KEY: number;
9
+ let DOWN_KEY: number;
10
+ let PAGE_UP_KEY: number;
11
+ let PAGE_DOWN_KEY: number;
12
+ }
1
13
  export default ChoicesWrapper;
2
14
  declare class ChoicesWrapper extends Choices {
3
15
  constructor(...args: any[]);
4
- _onTabKey(): void;
16
+ _onTabKey({ activeItems, hasActiveDropdown }: {
17
+ activeItems: any;
18
+ hasActiveDropdown: any;
19
+ }): void;
5
20
  isDirectionUsing: boolean;
6
21
  shouldOpenDropDown: boolean;
7
22
  _onTouchEnd(event: any): void;
8
- _onEnterKey(...args: any[]): void;
23
+ _handleButtonAction(activeItems: any, element: any): void;
24
+ _onEnterKey(args: any): void;
9
25
  _onDirectionKey(...args: any[]): void;
10
26
  timeout: NodeJS.Timeout | undefined;
11
27
  _selectHighlightedChoice(): void;
12
28
  _onKeyDown(event: any): void;
13
- onSelectValue(event: any, hasActiveDropdown: any): void;
29
+ onSelectValue({ event, activeItems, hasActiveDropdown }: {
30
+ event: any;
31
+ activeItems: any;
32
+ hasActiveDropdown: any;
33
+ }): void;
14
34
  showDropdown(...args: any[]): void;
15
35
  hideDropdown(...args: any[]): void;
36
+ _onBlur(...args: any[]): void;
16
37
  }
17
- import Choices from 'choices.js';
38
+ import Choices from '@formio/choices.js';
@@ -1,7 +1,41 @@
1
- import Choices, { KeyCodeMap } from 'choices.js';
2
- const ExtendedKeyCodeMap = {
3
- ...KeyCodeMap,
1
+ import Choices from '@formio/choices.js';
2
+ /**
3
+ * TODO: REMOVE THIS ONCE THE PULL REQUEST HAS BEEN RESOLVED.
4
+ *
5
+ * https://github.com/jshjohnson/Choices/pull/788
6
+ *
7
+ * This is intentionally not part of the extended class, since other components use Choices and need this fix as well.
8
+ * @type {Choices._generatePlaceholderValue}
9
+ * @private
10
+ */
11
+ Choices.prototype._generatePlaceholderValue = function () {
12
+ if (this._isSelectElement && this.passedElement.placeholderOption) {
13
+ const { placeholderOption } = this.passedElement;
14
+ return placeholderOption ? placeholderOption.text : false;
15
+ }
16
+ const { placeholder, placeholderValue } = this.config;
17
+ const { element: { dataset }, } = this.passedElement;
18
+ if (placeholder) {
19
+ if (placeholderValue) {
20
+ return placeholderValue;
21
+ }
22
+ if (dataset.placeholder) {
23
+ return dataset.placeholder;
24
+ }
25
+ }
26
+ return false;
27
+ };
28
+ export const KEY_CODES = {
29
+ BACK_KEY: 46,
30
+ DELETE_KEY: 8,
4
31
  TAB_KEY: 9,
32
+ ENTER_KEY: 13,
33
+ A_KEY: 65,
34
+ ESC_KEY: 27,
35
+ UP_KEY: 38,
36
+ DOWN_KEY: 40,
37
+ PAGE_UP_KEY: 33,
38
+ PAGE_DOWN_KEY: 34,
5
39
  };
6
40
  class ChoicesWrapper extends Choices {
7
41
  constructor(...args) {
@@ -29,13 +63,24 @@ class ChoicesWrapper extends Choices {
29
63
  }
30
64
  this._wasTap = true;
31
65
  }
32
- _onEnterKey(...args) {
33
- const [event] = args;
66
+ _handleButtonAction(activeItems, element) {
67
+ if (!this._isSelectOneElement) {
68
+ return super._handleButtonAction(activeItems, element);
69
+ }
70
+ if (!activeItems ||
71
+ !element ||
72
+ !this.config.removeItems ||
73
+ !this.config.removeItemButton) {
74
+ return;
75
+ }
76
+ super._handleButtonAction(activeItems, element);
77
+ }
78
+ _onEnterKey(args) {
34
79
  // Prevent dropdown form opening when removeItemButton was pressed using 'Enter' on keyboard
35
- if (event.target.className === 'choices__button') {
80
+ if (args.event.target.className === 'choices__button') {
36
81
  this.shouldOpenDropDown = false;
37
82
  }
38
- super._onEnterKey(...args);
83
+ super._onEnterKey(args);
39
84
  }
40
85
  _onDirectionKey(...args) {
41
86
  if (!this._isSelectOneElement) {
@@ -49,18 +94,17 @@ class ChoicesWrapper extends Choices {
49
94
  this.isDirectionUsing = false;
50
95
  }, 250);
51
96
  }
52
- _onTabKey() {
53
- if (this.dropdown.isActive) {
54
- this._selectHighlightedChoice();
97
+ _onTabKey({ activeItems, hasActiveDropdown }) {
98
+ if (hasActiveDropdown) {
99
+ this._selectHighlightedChoice(activeItems);
55
100
  }
56
101
  }
57
102
  _selectHighlightedChoice() {
58
- const highlightedChoice = this.dropdown.element.querySelector(`.${this.config.classNames.highlightedState}`);
103
+ const highlightedChoice = this.dropdown.getChild(`.${this.config.classNames.highlightedState}`);
59
104
  if (highlightedChoice) {
60
105
  const id = highlightedChoice.dataset.id;
61
- const choice = id && this._store.getChoiceById(Number(id));
106
+ const choice = id && this._store.getChoiceById(id);
62
107
  this._addItem({
63
- id: choice.id,
64
108
  value: choice.value,
65
109
  label: choice.label,
66
110
  choiceId: choice.id,
@@ -71,16 +115,61 @@ class ChoicesWrapper extends Choices {
71
115
  });
72
116
  this._triggerChange(choice.value);
73
117
  }
118
+ event.preventDefault();
74
119
  }
75
120
  _onKeyDown(event) {
76
- const keyCode = event.keyCode;
77
- return this._isSelectOneElement && keyCode === ExtendedKeyCodeMap.TAB_KEY
78
- ? this._onTabKey()
79
- : super._onKeyDown(event);
121
+ if (!this._isSelectOneElement) {
122
+ return super._onKeyDown(event);
123
+ }
124
+ const { target, keyCode, ctrlKey, metaKey } = event;
125
+ if (target !== this.input.element &&
126
+ !this.containerOuter.element.contains(target)) {
127
+ return;
128
+ }
129
+ const activeItems = this._store.activeItems;
130
+ const hasFocusedInput = this.input.isFocussed;
131
+ const hasActiveDropdown = this.dropdown.isActive;
132
+ const hasItems = this.itemList.hasChildren;
133
+ const keyString = String.fromCharCode(keyCode);
134
+ const { BACK_KEY, DELETE_KEY, TAB_KEY, ENTER_KEY, A_KEY, ESC_KEY, UP_KEY, DOWN_KEY, PAGE_UP_KEY, PAGE_DOWN_KEY, } = KEY_CODES;
135
+ const hasCtrlDownKeyPressed = ctrlKey || metaKey;
136
+ // If a user is typing and the dropdown is not active
137
+ if (!hasActiveDropdown && !this._isTextElement && /[a-zA-Z0-9-_ ]/.test(keyString)) {
138
+ const currentValue = this.input.element.value;
139
+ this.input.element.value = currentValue ? `${currentValue}${keyString}` : keyString;
140
+ this.showDropdown();
141
+ }
142
+ // Map keys to key actions
143
+ const keyDownActions = {
144
+ [A_KEY]: this._onAKey,
145
+ [TAB_KEY]: this._onTabKey,
146
+ [ENTER_KEY]: this._onEnterKey,
147
+ [ESC_KEY]: this._onEscapeKey,
148
+ [UP_KEY]: this._onDirectionKey,
149
+ [PAGE_UP_KEY]: this._onDirectionKey,
150
+ [DOWN_KEY]: this._onDirectionKey,
151
+ [PAGE_DOWN_KEY]: this._onDirectionKey,
152
+ [DELETE_KEY]: this._onDeleteKey,
153
+ [BACK_KEY]: this._onDeleteKey,
154
+ };
155
+ // If keycode has a function, run it
156
+ if (keyDownActions[keyCode]) {
157
+ keyDownActions[keyCode]({
158
+ event,
159
+ target,
160
+ keyCode,
161
+ metaKey,
162
+ activeItems,
163
+ hasFocusedInput,
164
+ hasActiveDropdown,
165
+ hasItems,
166
+ hasCtrlDownKeyPressed,
167
+ });
168
+ }
80
169
  }
81
- onSelectValue(event, hasActiveDropdown) {
170
+ onSelectValue({ event, activeItems, hasActiveDropdown }) {
82
171
  if (hasActiveDropdown) {
83
- this._selectHighlightedChoice();
172
+ this._selectHighlightedChoice(activeItems);
84
173
  }
85
174
  else if (this._isSelectOneElement) {
86
175
  this.showDropdown();
@@ -88,13 +177,11 @@ class ChoicesWrapper extends Choices {
88
177
  }
89
178
  }
90
179
  showDropdown(...args) {
91
- setTimeout(() => {
92
- if (!this.shouldOpenDropDown) {
93
- this.shouldOpenDropDown = true;
94
- return;
95
- }
96
- super.showDropdown(...args);
97
- }, 0);
180
+ if (!this.shouldOpenDropDown) {
181
+ this.shouldOpenDropDown = true;
182
+ return;
183
+ }
184
+ super.showDropdown(...args);
98
185
  }
99
186
  hideDropdown(...args) {
100
187
  if (this.isDirectionUsing) {
@@ -102,5 +189,11 @@ class ChoicesWrapper extends Choices {
102
189
  }
103
190
  super.hideDropdown(...args);
104
191
  }
192
+ _onBlur(...args) {
193
+ if (this._isScrollingOnIe) {
194
+ return;
195
+ }
196
+ super._onBlur(...args);
197
+ }
105
198
  }
106
199
  export default ChoicesWrapper;
@@ -26,8 +26,8 @@ export const getBestMatch: typeof Utils.getBestMatch;
26
26
  export const getComponentFromPath: typeof Utils.getComponentFromPath;
27
27
  export const getComponentValue: typeof Utils.getComponentValue;
28
28
  export const findComponents: typeof Utils.findComponents;
29
- export const eachComponentDataAsync: (components: Component[], data: DataObject, fn: EachComponentDataAsyncCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: any, parentPaths?: any) => Promise<void>;
30
- export const eachComponentData: (components: Component[], data: DataObject, fn: EachComponentDataCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: any, parentPaths?: any) => void;
29
+ export const eachComponentDataAsync: (components: import("@formio/core").Component[], data: import("@formio/core").DataObject, fn: import("@formio/core").EachComponentDataAsyncCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: import("@formio/core").Component | undefined, parentPaths?: import("@formio/core").ComponentPaths | undefined) => Promise<void>;
30
+ export const eachComponentData: (components: import("@formio/core").Component[], data: import("@formio/core").DataObject, fn: import("@formio/core").EachComponentDataCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: import("@formio/core").Component | undefined, parentPaths?: import("@formio/core").ComponentPaths | undefined) => void;
31
31
  export const getComponentKey: typeof Utils.getComponentKey;
32
32
  export const getContextualRowPath: typeof Utils.getContextualRowPath;
33
33
  export const getContextualRowData: typeof Utils.getContextualRowData;
@@ -2,16 +2,13 @@
2
2
  * This file is used to mimic the i18n library interface.
3
3
  */
4
4
  export class I18n {
5
- static languages: {};
6
- static setDefaultTranslations(languages: any): void;
7
5
  static init(languages?: {}): I18n;
8
6
  static createInstance(): I18n;
9
7
  constructor(languages?: {});
10
- languages: any;
11
- defaultKeys: any;
8
+ languages: {};
12
9
  language: string;
13
10
  currentLanguage: any;
14
- setLanguages(languages: any, noDefaultOverride: any): void;
11
+ setLanguages(languages: any): void;
15
12
  dir(lang?: string): "rtl" | "ltr";
16
13
  changeLanguage(language: any, ready?: null): void;
17
14
  addResourceBundle(language: any, type: any, strings: any): void;