@formio/js 5.1.0-dev.5969.9a6e3f5 → 5.1.0-dev.5972.317ce89

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 (77) hide show
  1. package/dist/formio.form.js +74 -52
  2. package/dist/formio.form.min.js +1 -1
  3. package/dist/formio.full.js +77 -55
  4. package/dist/formio.full.min.js +1 -1
  5. package/dist/formio.js +3 -3
  6. package/dist/formio.min.js +1 -1
  7. package/dist/formio.utils.js +3 -3
  8. package/dist/formio.utils.min.js +1 -1
  9. package/lib/cjs/Form.js +4 -4
  10. package/lib/cjs/PDFBuilder.js +4 -4
  11. package/lib/cjs/Webform.d.ts +12 -12
  12. package/lib/cjs/Webform.js +132 -131
  13. package/lib/cjs/WebformBuilder.js +10 -10
  14. package/lib/cjs/Wizard.js +1 -1
  15. package/lib/cjs/WizardBuilder.js +1 -1
  16. package/lib/cjs/components/_classes/component/Component.js +12 -11
  17. package/lib/cjs/components/_classes/list/ListComponent.js +4 -4
  18. package/lib/cjs/components/_classes/multivalue/Multivalue.js +2 -2
  19. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +3 -3
  20. package/lib/cjs/components/address/Address.js +1 -1
  21. package/lib/cjs/components/button/Button.js +6 -6
  22. package/lib/cjs/components/checkbox/Checkbox.js +1 -1
  23. package/lib/cjs/components/datagrid/DataGrid.js +1 -1
  24. package/lib/cjs/components/datetime/DateTime.js +4 -0
  25. package/lib/cjs/components/day/Day.js +4 -20
  26. package/lib/cjs/components/editgrid/EditGrid.js +4 -4
  27. package/lib/cjs/components/file/File.js +15 -15
  28. package/lib/cjs/components/form/Form.js +4 -4
  29. package/lib/cjs/components/number/Number.js +1 -1
  30. package/lib/cjs/components/recaptcha/ReCaptcha.js +2 -2
  31. package/lib/cjs/components/select/Select.js +5 -5
  32. package/lib/cjs/components/selectboxes/SelectBoxes.js +2 -2
  33. package/lib/cjs/components/signature/Signature.d.ts +1 -1
  34. package/lib/cjs/components/signature/Signature.js +2 -2
  35. package/lib/cjs/components/survey/Survey.js +2 -2
  36. package/lib/cjs/components/textarea/TextArea.js +6 -6
  37. package/lib/cjs/components/textfield/TextField.js +3 -0
  38. package/lib/cjs/formio.form.js +4 -0
  39. package/lib/cjs/translations/en.d.ts +234 -81
  40. package/lib/cjs/translations/en.js +8 -81
  41. package/lib/cjs/utils/i18n.d.ts +5 -2
  42. package/lib/cjs/utils/i18n.js +32 -5
  43. package/lib/mjs/Form.js +4 -4
  44. package/lib/mjs/PDFBuilder.js +4 -4
  45. package/lib/mjs/Webform.d.ts +12 -12
  46. package/lib/mjs/Webform.js +142 -141
  47. package/lib/mjs/WebformBuilder.js +10 -10
  48. package/lib/mjs/Wizard.js +1 -1
  49. package/lib/mjs/WizardBuilder.js +1 -1
  50. package/lib/mjs/components/_classes/component/Component.js +12 -11
  51. package/lib/mjs/components/_classes/list/ListComponent.js +4 -4
  52. package/lib/mjs/components/_classes/multivalue/Multivalue.js +2 -2
  53. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +3 -3
  54. package/lib/mjs/components/address/Address.js +1 -1
  55. package/lib/mjs/components/button/Button.js +6 -6
  56. package/lib/mjs/components/checkbox/Checkbox.js +1 -1
  57. package/lib/mjs/components/datagrid/DataGrid.js +1 -1
  58. package/lib/mjs/components/datetime/DateTime.js +5 -1
  59. package/lib/mjs/components/day/Day.js +4 -20
  60. package/lib/mjs/components/editgrid/EditGrid.js +4 -4
  61. package/lib/mjs/components/file/File.js +15 -15
  62. package/lib/mjs/components/form/Form.js +4 -4
  63. package/lib/mjs/components/number/Number.js +1 -1
  64. package/lib/mjs/components/recaptcha/ReCaptcha.js +2 -2
  65. package/lib/mjs/components/select/Select.js +7 -7
  66. package/lib/mjs/components/selectboxes/SelectBoxes.js +2 -2
  67. package/lib/mjs/components/signature/Signature.d.ts +1 -1
  68. package/lib/mjs/components/signature/Signature.js +2 -2
  69. package/lib/mjs/components/survey/Survey.js +2 -2
  70. package/lib/mjs/components/textarea/TextArea.js +6 -6
  71. package/lib/mjs/components/textfield/TextField.js +3 -0
  72. package/lib/mjs/formio.form.js +4 -0
  73. package/lib/mjs/translations/en.d.ts +234 -81
  74. package/lib/mjs/translations/en.js +89 -3
  75. package/lib/mjs/utils/i18n.d.ts +5 -2
  76. package/lib/mjs/utils/i18n.js +32 -5
  77. package/package.json +3 -3
@@ -1,5 +1,7 @@
1
1
  import { Evaluator } from '@formio/core/utils';
2
2
  import i18n from '../i18n';
3
+ import { isEmpty } from 'lodash';
4
+ import { fastCloneDeep } from '@formio/core';
3
5
  const i18Defaults = {};
4
6
  for (const lang in i18n.resources) {
5
7
  if (i18n.resources.hasOwnProperty(lang)) {
@@ -10,14 +12,29 @@ for (const lang in i18n.resources) {
10
12
  * This file is used to mimic the i18n library interface.
11
13
  */
12
14
  export class I18n {
13
- languages = i18Defaults;
15
+ static languages = i18Defaults;
16
+ languages = fastCloneDeep(I18n.languages || {});
17
+ defaultKeys = I18n.languages?.en || {};
14
18
  language = 'en';
15
19
  currentLanguage = i18Defaults.en;
16
20
  constructor(languages = {}) {
17
21
  this.setLanguages(languages);
18
22
  this.changeLanguage(this.language);
19
23
  }
20
- setLanguages(languages) {
24
+ static setDefaultTranslations(languages) {
25
+ if (isEmpty(languages)) {
26
+ return;
27
+ }
28
+ for (const lang in languages) {
29
+ if (lang !== 'language' && languages.hasOwnProperty(lang)) {
30
+ if (!this.languages[lang]) {
31
+ this.languages[lang] = {};
32
+ }
33
+ this.languages[lang] = { ...languages[lang], ...this.languages[lang], };
34
+ }
35
+ }
36
+ }
37
+ setLanguages(languages, noDefaultOverride) {
21
38
  if (languages.resources) {
22
39
  for (const lang in languages.resources) {
23
40
  if (languages.resources.hasOwnProperty(lang)) {
@@ -44,7 +61,9 @@ export class I18n {
44
61
  if (!this.languages[lang]) {
45
62
  this.languages[lang] = {};
46
63
  }
47
- this.languages[lang] = { ...this.languages[lang], ...languages[lang] };
64
+ this.languages[lang] = noDefaultOverride
65
+ ? { ...languages[lang], ...this.languages[lang] }
66
+ : { ...this.languages[lang], ...languages[lang] };
48
67
  }
49
68
  }
50
69
  }
@@ -73,12 +92,20 @@ export class I18n {
73
92
  this.languages[language] = strings;
74
93
  }
75
94
  t(text, ...args) {
76
- if (this.currentLanguage[text]) {
95
+ let currentTranslation = this.currentLanguage[text];
96
+ // provide compatibility with cases where the entire phrase is used as a key
97
+ // get the phrase that is possibly being used as a key
98
+ const defaultKey = this.defaultKeys[text];
99
+ if (defaultKey && this.currentLanguage[defaultKey]) {
100
+ // get translation using the phrase as a key
101
+ currentTranslation = this.currentLanguage[defaultKey];
102
+ }
103
+ if (currentTranslation) {
77
104
  const customTranslationFieldName = args[0]?.field;
78
105
  if (customTranslationFieldName && this.currentLanguage[customTranslationFieldName]) {
79
106
  args[0].field = this.currentLanguage[customTranslationFieldName];
80
107
  }
81
- return Evaluator.interpolateString(this.currentLanguage[text], ...args);
108
+ return Evaluator.interpolateString(currentTranslation, ...args);
82
109
  }
83
110
  return Evaluator.interpolateString(text, ...args);
84
111
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formio/js",
3
- "version": "5.1.0-dev.5969.9a6e3f5",
3
+ "version": "5.1.0-dev.5972.317ce89",
4
4
  "description": "JavaScript powered Forms with JSON Form Builder",
5
5
  "main": "lib/cjs/index.js",
6
6
  "exports": {
@@ -80,9 +80,9 @@
80
80
  },
81
81
  "homepage": "https://github.com/formio/formio.js#readme",
82
82
  "dependencies": {
83
- "@formio/bootstrap": "3.1.0-dev.1-dev.120.01bbe80",
83
+ "@formio/bootstrap": "v3.0.0-dev.121.085d187",
84
84
  "@formio/choices.js": "^10.2.1",
85
- "@formio/core": "2.4.0-dev.205.f4cc49f",
85
+ "@formio/core": "v2.4.0-dev.210.e634ab4",
86
86
  "@formio/text-mask-addons": "3.8.0-formio.4",
87
87
  "@formio/vanilla-text-mask": "^5.1.1-formio.1",
88
88
  "abortcontroller-polyfill": "^1.7.5",