@formio/js 5.1.0-dev.6059.845a6e3 → 5.1.0-dev.6060.19e3bfc

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 (196) hide show
  1. package/Changelog.md +131 -13
  2. package/README.md +28 -1
  3. package/dist/formio.builder.css +19 -17
  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 +19 -17
  9. package/dist/formio.form.js +102 -176
  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 +19 -17
  14. package/dist/formio.full.js +123 -101
  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 +4 -6
  28. package/lib/cjs/Form.js +16 -8
  29. package/lib/cjs/Formio.js +1 -1
  30. package/lib/cjs/PDFBuilder.js +4 -4
  31. package/lib/cjs/Webform.d.ts +16 -13
  32. package/lib/cjs/Webform.js +162 -148
  33. package/lib/cjs/WebformBuilder.js +17 -28
  34. package/lib/cjs/Wizard.js +1 -1
  35. package/lib/cjs/WizardBuilder.js +15 -2
  36. package/lib/cjs/components/Components.d.ts +3 -0
  37. package/lib/cjs/components/_classes/component/Component.d.ts +1 -0
  38. package/lib/cjs/components/_classes/component/Component.js +38 -11
  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 +37 -0
  41. package/lib/cjs/components/_classes/component/editForm/Component.edit.data.js +32 -2
  42. package/lib/cjs/components/_classes/component/editForm/utils.d.ts +1 -0
  43. package/lib/cjs/components/_classes/component/editForm/utils.js +3 -0
  44. package/lib/cjs/components/_classes/input/Input.js +23 -1
  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 +10 -3
  48. package/lib/cjs/components/_classes/nested/NestedComponent.form.js +13 -0
  49. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +2 -0
  50. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +52 -31
  51. package/lib/cjs/components/address/Address.js +14 -1
  52. package/lib/cjs/components/button/Button.js +6 -6
  53. package/lib/cjs/components/checkbox/Checkbox.d.ts +1 -1
  54. package/lib/cjs/components/checkbox/Checkbox.js +2 -2
  55. package/lib/cjs/components/content/editForm/Content.edit.display.js +8 -0
  56. package/lib/cjs/components/currency/editForm/Currency.edit.display.js +12 -0
  57. package/lib/cjs/components/datagrid/DataGrid.d.ts +2 -0
  58. package/lib/cjs/components/datagrid/DataGrid.js +41 -26
  59. package/lib/cjs/components/day/Day.js +9 -7
  60. package/lib/cjs/components/day/editForm/Day.edit.display.js +8 -0
  61. package/lib/cjs/components/editgrid/EditGrid.d.ts +1 -1
  62. package/lib/cjs/components/editgrid/EditGrid.js +26 -8
  63. package/lib/cjs/components/email/editForm/Email.edit.display.js +12 -0
  64. package/lib/cjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -0
  65. package/lib/cjs/components/file/File.d.ts +1 -1
  66. package/lib/cjs/components/file/File.js +30 -19
  67. package/lib/cjs/components/form/Form.d.ts +1 -1
  68. package/lib/cjs/components/form/Form.js +9 -5
  69. package/lib/cjs/components/form/editForm/Form.edit.form.js +3 -3
  70. package/lib/cjs/components/hidden/Hidden.d.ts +0 -1
  71. package/lib/cjs/components/hidden/Hidden.js +1 -1
  72. package/lib/cjs/components/hidden/editForm/Hidden.edit.display.js +8 -0
  73. package/lib/cjs/components/html/editForm/HTML.edit.display.js +8 -0
  74. package/lib/cjs/components/number/Number.js +12 -5
  75. package/lib/cjs/components/number/editForm/Number.edit.display.js +12 -0
  76. package/lib/cjs/components/password/editForm/Password.edit.display.js +13 -1
  77. package/lib/cjs/components/phonenumber/PhoneNumber.form.js +9 -1
  78. package/lib/cjs/components/radio/Radio.js +10 -0
  79. package/lib/cjs/components/recaptcha/ReCaptcha.js +2 -2
  80. package/lib/cjs/components/select/Select.d.ts +0 -1
  81. package/lib/cjs/components/select/Select.js +12 -33
  82. package/lib/cjs/components/select/editForm/Select.edit.data.d.ts +1 -1
  83. package/lib/cjs/components/select/editForm/Select.edit.data.js +3 -2
  84. package/lib/cjs/components/selectboxes/SelectBoxes.js +2 -2
  85. package/lib/cjs/components/signature/Signature.d.ts +1 -1
  86. package/lib/cjs/components/signature/Signature.js +5 -3
  87. package/lib/cjs/components/signature/editForm/Signature.edit.display.d.ts +0 -6
  88. package/lib/cjs/components/signature/editForm/Signature.edit.display.js +0 -1
  89. package/lib/cjs/components/survey/Survey.js +2 -2
  90. package/lib/cjs/components/tabs/editForm/Tabs.edit.display.js +8 -0
  91. package/lib/cjs/components/tags/Tags.d.ts +1 -1
  92. package/lib/cjs/components/tags/Tags.js +2 -2
  93. package/lib/cjs/components/textarea/TextArea.js +6 -6
  94. package/lib/cjs/components/textarea/editForm/TextArea.edit.display.js +12 -0
  95. package/lib/cjs/components/url/editForm/Url.edit.display.js +12 -0
  96. package/lib/cjs/components/well/editForm/Well.edit.display.js +8 -0
  97. package/lib/cjs/formio.form.js +5 -0
  98. package/lib/cjs/providers/storage/googleDrive.js +3 -2
  99. package/lib/cjs/providers/storage/s3.js +3 -3
  100. package/lib/cjs/providers/storage/xhr.d.ts +1 -0
  101. package/lib/cjs/providers/storage/xhr.js +6 -1
  102. package/lib/cjs/translations/en.d.ts +234 -81
  103. package/lib/cjs/translations/en.js +8 -81
  104. package/lib/cjs/utils/ChoicesWrapper.d.ts +4 -25
  105. package/lib/cjs/utils/ChoicesWrapper.js +47 -124
  106. package/lib/cjs/utils/formUtils.d.ts +2 -2
  107. package/lib/cjs/utils/i18n.d.ts +5 -2
  108. package/lib/cjs/utils/i18n.js +32 -5
  109. package/lib/cjs/widgets/CalendarWidget.js +27 -27
  110. package/lib/mjs/CDN.d.ts +1 -1
  111. package/lib/mjs/CDN.js +2 -2
  112. package/lib/mjs/Embed.js +1 -1
  113. package/lib/mjs/Form.d.ts +4 -6
  114. package/lib/mjs/Form.js +17 -9
  115. package/lib/mjs/Formio.js +1 -1
  116. package/lib/mjs/PDFBuilder.js +4 -4
  117. package/lib/mjs/Webform.d.ts +16 -13
  118. package/lib/mjs/Webform.js +171 -158
  119. package/lib/mjs/WebformBuilder.js +17 -28
  120. package/lib/mjs/Wizard.js +1 -1
  121. package/lib/mjs/WizardBuilder.js +15 -2
  122. package/lib/mjs/components/Components.d.ts +3 -0
  123. package/lib/mjs/components/_classes/component/Component.d.ts +1 -0
  124. package/lib/mjs/components/_classes/component/Component.js +27 -11
  125. package/lib/mjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
  126. package/lib/mjs/components/_classes/component/editForm/Component.edit.data.d.ts +37 -0
  127. package/lib/mjs/components/_classes/component/editForm/Component.edit.data.js +32 -2
  128. package/lib/mjs/components/_classes/component/editForm/utils.d.ts +1 -0
  129. package/lib/mjs/components/_classes/component/editForm/utils.js +3 -0
  130. package/lib/mjs/components/_classes/input/Input.js +22 -1
  131. package/lib/mjs/components/_classes/list/ListComponent.js +4 -4
  132. package/lib/mjs/components/_classes/multivalue/Multivalue.d.ts +1 -1
  133. package/lib/mjs/components/_classes/multivalue/Multivalue.js +10 -3
  134. package/lib/mjs/components/_classes/nested/NestedComponent.form.js +13 -0
  135. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +2 -0
  136. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +53 -31
  137. package/lib/mjs/components/address/Address.js +14 -1
  138. package/lib/mjs/components/button/Button.js +6 -6
  139. package/lib/mjs/components/checkbox/Checkbox.d.ts +1 -1
  140. package/lib/mjs/components/checkbox/Checkbox.js +2 -2
  141. package/lib/mjs/components/content/editForm/Content.edit.display.js +8 -0
  142. package/lib/mjs/components/currency/editForm/Currency.edit.display.js +12 -0
  143. package/lib/mjs/components/datagrid/DataGrid.d.ts +2 -0
  144. package/lib/mjs/components/datagrid/DataGrid.js +41 -26
  145. package/lib/mjs/components/day/Day.js +9 -7
  146. package/lib/mjs/components/day/editForm/Day.edit.display.js +8 -0
  147. package/lib/mjs/components/editgrid/EditGrid.d.ts +1 -1
  148. package/lib/mjs/components/editgrid/EditGrid.js +25 -7
  149. package/lib/mjs/components/email/editForm/Email.edit.display.js +12 -0
  150. package/lib/mjs/components/fieldset/editForm/Fieldset.edit.display.js +8 -0
  151. package/lib/mjs/components/file/File.d.ts +1 -1
  152. package/lib/mjs/components/file/File.js +30 -19
  153. package/lib/mjs/components/form/Form.d.ts +1 -1
  154. package/lib/mjs/components/form/Form.js +8 -5
  155. package/lib/mjs/components/form/editForm/Form.edit.form.js +3 -3
  156. package/lib/mjs/components/hidden/Hidden.d.ts +0 -1
  157. package/lib/mjs/components/hidden/Hidden.js +1 -1
  158. package/lib/mjs/components/hidden/editForm/Hidden.edit.display.js +8 -0
  159. package/lib/mjs/components/html/editForm/HTML.edit.display.js +8 -0
  160. package/lib/mjs/components/number/Number.js +12 -5
  161. package/lib/mjs/components/number/editForm/Number.edit.display.js +12 -0
  162. package/lib/mjs/components/password/editForm/Password.edit.display.js +13 -1
  163. package/lib/mjs/components/phonenumber/PhoneNumber.form.js +9 -1
  164. package/lib/mjs/components/radio/Radio.js +10 -0
  165. package/lib/mjs/components/recaptcha/ReCaptcha.js +2 -2
  166. package/lib/mjs/components/select/Select.d.ts +0 -1
  167. package/lib/mjs/components/select/Select.js +14 -34
  168. package/lib/mjs/components/select/editForm/Select.edit.data.d.ts +1 -1
  169. package/lib/mjs/components/select/editForm/Select.edit.data.js +3 -2
  170. package/lib/mjs/components/selectboxes/SelectBoxes.js +2 -2
  171. package/lib/mjs/components/signature/Signature.d.ts +1 -1
  172. package/lib/mjs/components/signature/Signature.js +5 -3
  173. package/lib/mjs/components/signature/editForm/Signature.edit.display.d.ts +0 -6
  174. package/lib/mjs/components/signature/editForm/Signature.edit.display.js +0 -1
  175. package/lib/mjs/components/survey/Survey.js +2 -2
  176. package/lib/mjs/components/tabs/editForm/Tabs.edit.display.js +8 -0
  177. package/lib/mjs/components/tags/Tags.d.ts +1 -1
  178. package/lib/mjs/components/tags/Tags.js +2 -2
  179. package/lib/mjs/components/textarea/TextArea.js +6 -6
  180. package/lib/mjs/components/textarea/editForm/TextArea.edit.display.js +12 -0
  181. package/lib/mjs/components/url/editForm/Url.edit.display.js +12 -0
  182. package/lib/mjs/components/well/editForm/Well.edit.display.js +8 -0
  183. package/lib/mjs/formio.form.js +5 -0
  184. package/lib/mjs/providers/storage/googleDrive.js +3 -2
  185. package/lib/mjs/providers/storage/s3.js +3 -3
  186. package/lib/mjs/providers/storage/xhr.d.ts +1 -0
  187. package/lib/mjs/providers/storage/xhr.js +6 -1
  188. package/lib/mjs/translations/en.d.ts +234 -81
  189. package/lib/mjs/translations/en.js +87 -1
  190. package/lib/mjs/utils/ChoicesWrapper.d.ts +4 -25
  191. package/lib/mjs/utils/ChoicesWrapper.js +26 -119
  192. package/lib/mjs/utils/formUtils.d.ts +2 -2
  193. package/lib/mjs/utils/i18n.d.ts +5 -2
  194. package/lib/mjs/utils/i18n.js +32 -5
  195. package/lib/mjs/widgets/CalendarWidget.js +27 -27
  196. package/package.json +27 -11
@@ -156,7 +156,9 @@ export default class SignatureComponent extends Input {
156
156
  if (this.dataValue) {
157
157
  this.setDataToSigaturePad();
158
158
  }
159
- this.showCanvas(true);
159
+ if (!this.disabled) {
160
+ this.showCanvas(true);
161
+ }
160
162
  }
161
163
  }
162
164
  renderElement(value, index) {
@@ -172,7 +174,7 @@ export default class SignatureComponent extends Input {
172
174
  return this.renderModalPreview({
173
175
  previewText: this.dataValue ?
174
176
  `<img src=${this.dataValue} ${this._referenceAttributeName}='openModal' style="width: 100%;height: 100%;" />` :
175
- this.t('Click to Sign')
177
+ this.t('clickToSign')
176
178
  });
177
179
  }
178
180
  attach(element) {
@@ -240,7 +242,7 @@ export default class SignatureComponent extends Input {
240
242
  if (_.isUndefined(value) && this.inDataTable) {
241
243
  return '';
242
244
  }
243
- return value ? 'Yes' : 'No';
245
+ return this.t(value ? 'yes' : 'no');
244
246
  }
245
247
  focus() {
246
248
  this.refs.padBody.focus();
@@ -7,7 +7,6 @@ declare const _default: ({
7
7
  placeholder: string;
8
8
  weight: number;
9
9
  conditional?: undefined;
10
- customConditional?: undefined;
11
10
  ignore?: undefined;
12
11
  } | {
13
12
  type: string;
@@ -24,7 +23,6 @@ declare const _default: ({
24
23
  };
25
24
  };
26
25
  weight: number;
27
- customConditional?: undefined;
28
26
  ignore?: undefined;
29
27
  } | {
30
28
  weight: number;
@@ -32,9 +30,6 @@ declare const _default: ({
32
30
  label: string;
33
31
  tooltip: string;
34
32
  key: string;
35
- customConditional: ({ options }: {
36
- options: any;
37
- }) => boolean;
38
33
  input: boolean;
39
34
  placeholder?: undefined;
40
35
  conditional?: undefined;
@@ -49,6 +44,5 @@ declare const _default: ({
49
44
  placeholder?: undefined;
50
45
  weight?: undefined;
51
46
  conditional?: undefined;
52
- customConditional?: undefined;
53
47
  })[];
54
48
  export default _default;
@@ -37,7 +37,6 @@ export default [
37
37
  label: 'Keep Overlay Aspect Ratio',
38
38
  tooltip: 'If checked, the field will have the same aspect ratio as its preview.',
39
39
  key: 'keepOverlayRatio',
40
- customConditional: ({ options }) => (options?.editForm?.display === 'pdf'),
41
40
  input: true
42
41
  },
43
42
  {
@@ -126,8 +126,8 @@ export default class SurveyComponent extends Field {
126
126
  <table border="1" style="width:100%">
127
127
  <thead>
128
128
  <tr>
129
- <th>Question</th>
130
- <th>Value</th>
129
+ <th>${this.t('surveyQuestion')}</th>
130
+ <th>${this.t('surveyQuestionValue')}</th>
131
131
  </tr>
132
132
  </thead>
133
133
  <tbody>
@@ -3,6 +3,14 @@ export default [
3
3
  key: 'labelPosition',
4
4
  ignore: true
5
5
  },
6
+ {
7
+ key: 'labelWidth',
8
+ ignore: true
9
+ },
10
+ {
11
+ key: 'labelMargin',
12
+ ignore: true
13
+ },
6
14
  {
7
15
  key: 'placeholder',
8
16
  ignore: true
@@ -24,4 +24,4 @@ export default class TagsComponent extends Input {
24
24
  getValueAsString(value: any): any;
25
25
  }
26
26
  import Input from '../_classes/input/Input';
27
- import Choices from '@formio/choices.js';
27
+ import Choices from 'choices.js';
@@ -1,6 +1,6 @@
1
1
  import { componentValueTypes, getComponentSavedTypes } from '../../utils/utils';
2
2
  import Input from '../_classes/input/Input';
3
- import Choices from '@formio/choices.js';
3
+ import Choices from 'choices.js';
4
4
  export default class TagsComponent extends Input {
5
5
  static schema(...extend) {
6
6
  return Input.schema({
@@ -127,7 +127,7 @@ export default class TagsComponent extends Input {
127
127
  const changed = super.setValue(value, flags);
128
128
  if (this.choices) {
129
129
  let dataValue = this.dataValue;
130
- this.choices.removeActiveItems();
130
+ this.choices.clearStore();
131
131
  if (dataValue) {
132
132
  if (typeof dataValue === 'string') {
133
133
  dataValue = dataValue.split(this.delimiter).filter(result => result);
@@ -131,7 +131,7 @@ export default class TextAreaComponent extends TextFieldComponent {
131
131
  case 'quill':
132
132
  // Normalize the configurations for quill.
133
133
  if (settings.hasOwnProperty('toolbarGroups') || settings.hasOwnProperty('toolbar')) {
134
- console.warn('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.');
134
+ console.warn(this.t('needConfigurationForQuill'));
135
135
  settings = this.wysiwygDefault.quill;
136
136
  }
137
137
  // Add the quill editor.
@@ -203,7 +203,7 @@ export default class TextAreaComponent extends TextFieldComponent {
203
203
  imageHandler(moduleInstance, range, files) {
204
204
  const quillInstance = moduleInstance.quill;
205
205
  if (!files || !files.length) {
206
- console.warn('No files selected');
206
+ console.warn(this.t('noFilesSelected'));
207
207
  return;
208
208
  }
209
209
  quillInstance.enable(false);
@@ -228,7 +228,7 @@ export default class TextAreaComponent extends TextFieldComponent {
228
228
  alt: JSON.stringify(requestData),
229
229
  }), Quill.sources.USER);
230
230
  }).catch(error => {
231
- console.warn('Quill image upload failed');
231
+ console.warn(this.t('quillImageUploadFailed'));
232
232
  console.warn(error);
233
233
  quillInstance.enable(true);
234
234
  });
@@ -523,7 +523,7 @@ export default class TextAreaComponent extends TextFieldComponent {
523
523
  }
524
524
  this.element.scrollIntoView();
525
525
  }).catch((err) => {
526
- console.warn('An editor did not initialize properly when trying to focus:', err);
526
+ console.warn(this.t('editorFocusError'), err);
527
527
  });
528
528
  break;
529
529
  }
@@ -532,7 +532,7 @@ export default class TextAreaComponent extends TextFieldComponent {
532
532
  this.editors[0].focus();
533
533
  this.element.scrollIntoView();
534
534
  }).catch((err) => {
535
- console.warn('An editor did not initialize properly when trying to focus:', err);
535
+ console.warn(this.t('editorFocusError'), err);
536
536
  });
537
537
  break;
538
538
  }
@@ -540,7 +540,7 @@ export default class TextAreaComponent extends TextFieldComponent {
540
540
  this.editorsReady[0]?.then(() => {
541
541
  this.editors[0].focus();
542
542
  }).catch((err) => {
543
- console.warn('An editor did not initialize properly when trying to focus:', err);
543
+ console.warn(this.t('editorFocusError'), err);
544
544
  });
545
545
  break;
546
546
  }
@@ -9,10 +9,22 @@ export default [
9
9
  key: 'allowMultipleMasks',
10
10
  ignore: true
11
11
  },
12
+ {
13
+ key: 'inputMasks',
14
+ ignore: true
15
+ },
12
16
  {
13
17
  key: 'mask',
14
18
  ignore: true
15
19
  },
20
+ {
21
+ key: 'widget.type',
22
+ ignore: true
23
+ },
24
+ {
25
+ key: 'widget',
26
+ ignore: true
27
+ },
16
28
  {
17
29
  type: 'number',
18
30
  input: true,
@@ -7,6 +7,18 @@ export default [
7
7
  key: 'allowMultipleMasks',
8
8
  ignore: true
9
9
  },
10
+ {
11
+ key: 'inputMasks',
12
+ ignore: true
13
+ },
14
+ {
15
+ key: 'widget.type',
16
+ ignore: true
17
+ },
18
+ {
19
+ key: 'widget',
20
+ ignore: true
21
+ },
10
22
  {
11
23
  key: 'showWordCount',
12
24
  ignore: true,
@@ -3,6 +3,14 @@ export default [
3
3
  key: 'labelPosition',
4
4
  ignore: true
5
5
  },
6
+ {
7
+ key: 'labelWidth',
8
+ ignore: true
9
+ },
10
+ {
11
+ key: 'labelMargin',
12
+ ignore: true
13
+ },
6
14
  {
7
15
  key: 'placeholder',
8
16
  ignore: true
@@ -12,6 +12,7 @@ import { Evaluator } from './utils/Evaluator';
12
12
  import Licenses from './licenses';
13
13
  import EventEmitter from './EventEmitter';
14
14
  import Webform from './Webform';
15
+ import { I18n } from './utils/i18n';
15
16
  Formio.loadModules = (path = `${Formio.getApiUrl()}/externalModules.js`, name = 'externalModules') => {
16
17
  Formio.requireLibrary(name, name, path, true)
17
18
  .then((modules) => {
@@ -56,6 +57,7 @@ export function registerModule(mod, defaultFn = null, options = {}) {
56
57
  case 'templates':
57
58
  for (const framework of Object.keys(mod.templates)) {
58
59
  Formio.Templates.extendTemplate(framework, mod.templates[framework]);
60
+ Formio.Templates.defaultTemplates = _.defaults(mod.templates[framework], Formio.Templates.defaultTemplates);
59
61
  }
60
62
  if (mod.templates[current]) {
61
63
  Formio.Templates.current = mod.templates[current];
@@ -83,6 +85,9 @@ export function registerModule(mod, defaultFn = null, options = {}) {
83
85
  case 'evaluator':
84
86
  Formio.Evaluator.registerEvaluator(mod.evaluator);
85
87
  break;
88
+ case 'translations':
89
+ I18n.setDefaultTranslations(mod.translations);
90
+ break;
86
91
  case 'library':
87
92
  options.license
88
93
  ? Formio.Licenses.addLicense(mod.library, options.license)
@@ -50,10 +50,11 @@ function googledrive(formio) {
50
50
  xhr.send(fd);
51
51
  }));
52
52
  },
53
- downloadFile(file) {
53
+ downloadFile(file, component) {
54
54
  const token = formio.getToken();
55
+ // Constructed the url with the fileId, fileName, displayImage, imageSize if applicable
55
56
  file.url =
56
- `${formio.formUrl}/storage/gdrive?fileId=${file.id}&fileName=${file.originalName}${token ? `&x-jwt-token=${token}` : ''}`;
57
+ `${formio.formUrl}/storage/gdrive?fileId=${file.id}&fileName=${file.originalName}${token ? `&x-jwt-token=${token}` : ''}${component.image ? '&displayImage=true' : ''}${component.imageSize ? `&imageSize=${component.imageSize}` : ''}`;
57
58
  return Promise.resolve(file);
58
59
  },
59
60
  deleteFile: function deleteFile(fileInfo) {
@@ -75,7 +75,7 @@ function s3(formio) {
75
75
  const { changeMessage } = multipart;
76
76
  changeMessage('Completing AWS S3 multipart upload...');
77
77
  const token = formio.getToken();
78
- const response = await fetch(`${formio.formUrl}/storage/s3/multipart/complete`, {
78
+ const response = await XHR.fetch(`${formio.formUrl}/storage/s3/multipart/complete`, {
79
79
  method: 'POST',
80
80
  headers: {
81
81
  'Content-Type': 'application/json',
@@ -96,7 +96,7 @@ function s3(formio) {
96
96
  abortMultipartUpload(serverResponse) {
97
97
  const { uploadId, key } = serverResponse;
98
98
  const token = formio.getToken();
99
- fetch(`${formio.formUrl}/storage/s3/multipart/abort`, {
99
+ XHR.fetch(`${formio.formUrl}/storage/s3/multipart/abort`, {
100
100
  method: 'POST',
101
101
  headers: {
102
102
  'Content-Type': 'application/json',
@@ -113,7 +113,7 @@ function s3(formio) {
113
113
  const start = i * partSize;
114
114
  const end = (i + 1) * partSize;
115
115
  const blob = i < urls.length ? file.slice(start, end) : file.slice(start);
116
- const promise = fetch(urls[i], {
116
+ const promise = XHR.fetch(urls[i], {
117
117
  method: 'PUT',
118
118
  headers,
119
119
  body: blob,
@@ -3,6 +3,7 @@ export default XHR;
3
3
  declare namespace XHR {
4
4
  function trim(text: any): any;
5
5
  function path(items: any): any;
6
+ function fetch(url: any, options: any): Promise<Response>;
6
7
  function upload(formio: any, type: any, xhrCallback: any, file: any, fileName: any, dir: any, progressCallback: any, groupPermissions: any, groupId: any, abortCallback: any, multipartOptions: any): Promise<any>;
7
8
  function makeXhrRequest(formio: any, xhrCallback: any, serverResponse: any, progressCallback: any, abortCallback: any): Promise<any>;
8
9
  }
@@ -1,4 +1,5 @@
1
1
  import _trim from 'lodash/trim';
2
+ import { Formio } from '../../Formio';
2
3
  export const setXhrHeaders = (formio, xhr) => {
3
4
  const { headers } = formio.options;
4
5
  if (headers) {
@@ -20,12 +21,16 @@ const XHR = {
20
21
  path(items) {
21
22
  return items.filter(item => !!item).map(XHR.trim).join('/');
22
23
  },
24
+ fetch(url, options) {
25
+ options = Formio.pluginAlter('requestOptions', options, url);
26
+ return fetch(url, options);
27
+ },
23
28
  async upload(formio, type, xhrCallback, file, fileName, dir, progressCallback, groupPermissions, groupId, abortCallback, multipartOptions) {
24
29
  // make request to Form.io server
25
30
  const token = formio.getToken();
26
31
  let response;
27
32
  try {
28
- response = await fetch(`${formio.formUrl}/storage/${type}`, {
33
+ response = await XHR.fetch(`${formio.formUrl}/storage/${type}`, {
29
34
  method: 'POST',
30
35
  headers: {
31
36
  'Accept': 'application/json',
@@ -1,82 +1,235 @@
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
- }
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
+ };
82
235
  export default _default;