@formio/js 5.0.0-rc.20 → 5.0.0-rc.22

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 (198) hide show
  1. package/dist/formio.embed.css +1 -39
  2. package/dist/formio.embed.js +2 -90
  3. package/dist/formio.embed.min.js +1 -1
  4. package/dist/formio.embed.min.js.LICENSE.txt +1 -1
  5. package/dist/formio.form.js +58 -36
  6. package/dist/formio.form.min.js +1 -1
  7. package/dist/formio.form.min.js.LICENSE.txt +1 -1
  8. package/dist/formio.full.js +59 -37
  9. package/dist/formio.full.min.js +1 -1
  10. package/dist/formio.full.min.js.LICENSE.txt +1 -1
  11. package/dist/formio.js +2 -2
  12. package/dist/formio.min.js +1 -1
  13. package/dist/formio.min.js.LICENSE.txt +1 -1
  14. package/dist/formio.utils.js +1 -1
  15. package/dist/formio.utils.min.js +1 -1
  16. package/dist/formio.utils.min.js.LICENSE.txt +1 -1
  17. package/lib/cjs/CDN.d.ts +1 -0
  18. package/lib/cjs/CDN.js +1 -0
  19. package/lib/cjs/Element.js +5 -0
  20. package/lib/cjs/Embed.d.ts +21 -1
  21. package/lib/cjs/Embed.js +211 -308
  22. package/lib/cjs/Form.d.ts +1 -1
  23. package/lib/cjs/Form.js +1 -1
  24. package/lib/cjs/Webform.d.ts +6 -6
  25. package/lib/cjs/Webform.js +6 -6
  26. package/lib/cjs/WebformBuilder.js +1 -1
  27. package/lib/cjs/components/_classes/component/Component.d.ts +16 -6
  28. package/lib/cjs/components/_classes/component/Component.js +26 -6
  29. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +1 -0
  30. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +4 -0
  31. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.d.ts +1 -0
  32. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +4 -0
  33. package/lib/cjs/components/address/Address.js +5 -0
  34. package/lib/cjs/components/button/Button.d.ts +1 -0
  35. package/lib/cjs/components/button/Button.js +3 -0
  36. package/lib/cjs/components/checkbox/Checkbox.d.ts +28 -0
  37. package/lib/cjs/components/checkbox/Checkbox.js +17 -2
  38. package/lib/cjs/components/columns/Columns.d.ts +1 -0
  39. package/lib/cjs/components/columns/Columns.js +3 -0
  40. package/lib/cjs/components/container/Container.js +3 -0
  41. package/lib/cjs/components/content/Content.d.ts +1 -0
  42. package/lib/cjs/components/content/Content.js +3 -0
  43. package/lib/cjs/components/datamap/DataMap.d.ts +1 -0
  44. package/lib/cjs/components/datamap/DataMap.js +3 -0
  45. package/lib/cjs/components/datetime/DateTime.d.ts +19 -0
  46. package/lib/cjs/components/datetime/DateTime.js +9 -10
  47. package/lib/cjs/components/day/Day.d.ts +21 -0
  48. package/lib/cjs/components/day/Day.js +12 -10
  49. package/lib/cjs/components/day/fixtures/comp5.d.ts +29 -0
  50. package/lib/cjs/components/day/fixtures/comp5.js +32 -0
  51. package/lib/cjs/components/day/fixtures/index.d.ts +2 -1
  52. package/lib/cjs/components/day/fixtures/index.js +3 -1
  53. package/lib/cjs/components/fieldset/Fieldset.d.ts +1 -0
  54. package/lib/cjs/components/fieldset/Fieldset.js +3 -0
  55. package/lib/cjs/components/file/File.d.ts +21 -1
  56. package/lib/cjs/components/file/File.js +15 -7
  57. package/lib/cjs/components/form/Form.d.ts +1 -0
  58. package/lib/cjs/components/form/Form.js +5 -1
  59. package/lib/cjs/components/html/HTML.d.ts +1 -0
  60. package/lib/cjs/components/html/HTML.js +3 -0
  61. package/lib/cjs/components/number/Number.d.ts +20 -1
  62. package/lib/cjs/components/number/Number.js +10 -15
  63. package/lib/cjs/components/panel/Panel.d.ts +1 -0
  64. package/lib/cjs/components/panel/Panel.js +3 -0
  65. package/lib/cjs/components/radio/Radio.d.ts +19 -0
  66. package/lib/cjs/components/radio/Radio.js +30 -0
  67. package/lib/cjs/components/recaptcha/ReCaptcha.d.ts +1 -0
  68. package/lib/cjs/components/recaptcha/ReCaptcha.js +3 -0
  69. package/lib/cjs/components/select/Select.d.ts +19 -1
  70. package/lib/cjs/components/select/Select.js +39 -4
  71. package/lib/cjs/components/select/fixtures/comp19.d.ts +23 -0
  72. package/lib/cjs/components/select/fixtures/comp19.js +36 -0
  73. package/lib/cjs/components/select/fixtures/index.d.ts +2 -1
  74. package/lib/cjs/components/select/fixtures/index.js +3 -1
  75. package/lib/cjs/components/selectboxes/SelectBoxes.d.ts +26 -1
  76. package/lib/cjs/components/selectboxes/SelectBoxes.js +8 -1
  77. package/lib/cjs/components/signature/Signature.d.ts +21 -0
  78. package/lib/cjs/components/signature/Signature.js +9 -1
  79. package/lib/cjs/components/survey/Survey.d.ts +21 -0
  80. package/lib/cjs/components/survey/Survey.js +7 -1
  81. package/lib/cjs/components/table/Table.d.ts +1 -0
  82. package/lib/cjs/components/table/Table.js +3 -0
  83. package/lib/cjs/components/tabs/Tabs.d.ts +1 -0
  84. package/lib/cjs/components/tabs/Tabs.js +3 -0
  85. package/lib/cjs/components/tags/Tags.d.ts +21 -0
  86. package/lib/cjs/components/tags/Tags.js +11 -1
  87. package/lib/cjs/components/tags/fixtures/comp6.d.ts +17 -0
  88. package/lib/cjs/components/tags/fixtures/comp6.js +20 -0
  89. package/lib/cjs/components/tags/fixtures/index.d.ts +2 -1
  90. package/lib/cjs/components/tags/fixtures/index.js +3 -1
  91. package/lib/cjs/components/textfield/TextField.d.ts +21 -0
  92. package/lib/cjs/components/textfield/TextField.js +7 -1
  93. package/lib/cjs/components/time/Time.d.ts +8 -1
  94. package/lib/cjs/components/well/Well.d.ts +1 -0
  95. package/lib/cjs/components/well/Well.js +3 -0
  96. package/lib/cjs/formio.embed.d.ts +2 -1
  97. package/lib/cjs/formio.embed.js +96 -1
  98. package/lib/cjs/formio.form.d.ts +4 -3
  99. package/lib/cjs/formio.form.js +17 -8
  100. package/lib/cjs/licenses/Licenses.d.ts +7 -0
  101. package/lib/cjs/licenses/Licenses.js +22 -0
  102. package/lib/cjs/licenses/index.d.ts +2 -0
  103. package/lib/cjs/licenses/index.js +7 -0
  104. package/lib/cjs/utils/utils.d.ts +10 -0
  105. package/lib/cjs/utils/utils.js +21 -1
  106. package/lib/mjs/CDN.d.ts +1 -0
  107. package/lib/mjs/CDN.js +1 -0
  108. package/lib/mjs/Element.js +5 -0
  109. package/lib/mjs/Embed.d.ts +21 -1
  110. package/lib/mjs/Embed.js +208 -322
  111. package/lib/mjs/Form.d.ts +1 -1
  112. package/lib/mjs/Form.js +1 -1
  113. package/lib/mjs/Webform.d.ts +6 -6
  114. package/lib/mjs/Webform.js +6 -6
  115. package/lib/mjs/WebformBuilder.js +1 -1
  116. package/lib/mjs/components/_classes/component/Component.d.ts +16 -6
  117. package/lib/mjs/components/_classes/component/Component.js +26 -6
  118. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.d.ts +1 -0
  119. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +4 -0
  120. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.d.ts +1 -0
  121. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +4 -0
  122. package/lib/mjs/components/address/Address.js +5 -0
  123. package/lib/mjs/components/button/Button.d.ts +1 -0
  124. package/lib/mjs/components/button/Button.js +4 -1
  125. package/lib/mjs/components/checkbox/Checkbox.d.ts +28 -0
  126. package/lib/mjs/components/checkbox/Checkbox.js +18 -3
  127. package/lib/mjs/components/columns/Columns.d.ts +1 -0
  128. package/lib/mjs/components/columns/Columns.js +3 -0
  129. package/lib/mjs/components/container/Container.js +4 -1
  130. package/lib/mjs/components/content/Content.d.ts +1 -0
  131. package/lib/mjs/components/content/Content.js +3 -0
  132. package/lib/mjs/components/datamap/DataMap.d.ts +1 -0
  133. package/lib/mjs/components/datamap/DataMap.js +4 -1
  134. package/lib/mjs/components/datetime/DateTime.d.ts +19 -0
  135. package/lib/mjs/components/datetime/DateTime.js +11 -12
  136. package/lib/mjs/components/day/Day.d.ts +21 -0
  137. package/lib/mjs/components/day/Day.js +16 -14
  138. package/lib/mjs/components/day/fixtures/comp5.d.ts +29 -0
  139. package/lib/mjs/components/day/fixtures/comp5.js +30 -0
  140. package/lib/mjs/components/day/fixtures/index.d.ts +2 -1
  141. package/lib/mjs/components/day/fixtures/index.js +2 -1
  142. package/lib/mjs/components/fieldset/Fieldset.d.ts +1 -0
  143. package/lib/mjs/components/fieldset/Fieldset.js +3 -0
  144. package/lib/mjs/components/file/File.d.ts +21 -1
  145. package/lib/mjs/components/file/File.js +16 -8
  146. package/lib/mjs/components/form/Form.d.ts +1 -0
  147. package/lib/mjs/components/form/Form.js +6 -2
  148. package/lib/mjs/components/html/HTML.d.ts +1 -0
  149. package/lib/mjs/components/html/HTML.js +3 -0
  150. package/lib/mjs/components/number/Number.d.ts +20 -1
  151. package/lib/mjs/components/number/Number.js +11 -12
  152. package/lib/mjs/components/panel/Panel.d.ts +1 -0
  153. package/lib/mjs/components/panel/Panel.js +3 -0
  154. package/lib/mjs/components/radio/Radio.d.ts +19 -0
  155. package/lib/mjs/components/radio/Radio.js +34 -1
  156. package/lib/mjs/components/recaptcha/ReCaptcha.d.ts +1 -0
  157. package/lib/mjs/components/recaptcha/ReCaptcha.js +3 -0
  158. package/lib/mjs/components/select/Select.d.ts +19 -1
  159. package/lib/mjs/components/select/Select.js +41 -6
  160. package/lib/mjs/components/select/fixtures/comp19.d.ts +23 -0
  161. package/lib/mjs/components/select/fixtures/comp19.js +34 -0
  162. package/lib/mjs/components/select/fixtures/index.d.ts +2 -1
  163. package/lib/mjs/components/select/fixtures/index.js +2 -1
  164. package/lib/mjs/components/selectboxes/SelectBoxes.d.ts +26 -1
  165. package/lib/mjs/components/selectboxes/SelectBoxes.js +8 -1
  166. package/lib/mjs/components/signature/Signature.d.ts +21 -0
  167. package/lib/mjs/components/signature/Signature.js +9 -1
  168. package/lib/mjs/components/survey/Survey.d.ts +21 -0
  169. package/lib/mjs/components/survey/Survey.js +8 -2
  170. package/lib/mjs/components/table/Table.d.ts +1 -0
  171. package/lib/mjs/components/table/Table.js +3 -0
  172. package/lib/mjs/components/tabs/Tabs.d.ts +1 -0
  173. package/lib/mjs/components/tabs/Tabs.js +3 -0
  174. package/lib/mjs/components/tags/Tags.d.ts +21 -0
  175. package/lib/mjs/components/tags/Tags.js +12 -2
  176. package/lib/mjs/components/tags/fixtures/comp6.d.ts +17 -0
  177. package/lib/mjs/components/tags/fixtures/comp6.js +18 -0
  178. package/lib/mjs/components/tags/fixtures/index.d.ts +2 -1
  179. package/lib/mjs/components/tags/fixtures/index.js +2 -1
  180. package/lib/mjs/components/textfield/TextField.d.ts +21 -0
  181. package/lib/mjs/components/textfield/TextField.js +8 -2
  182. package/lib/mjs/components/time/Time.d.ts +8 -1
  183. package/lib/mjs/components/well/Well.d.ts +1 -0
  184. package/lib/mjs/components/well/Well.js +3 -0
  185. package/lib/mjs/formio.embed.d.ts +2 -1
  186. package/lib/mjs/formio.embed.js +96 -2
  187. package/lib/mjs/formio.form.d.ts +4 -3
  188. package/lib/mjs/formio.form.js +16 -8
  189. package/lib/mjs/licenses/Licenses.d.ts +7 -0
  190. package/lib/mjs/licenses/Licenses.js +17 -0
  191. package/lib/mjs/licenses/index.d.ts +2 -0
  192. package/lib/mjs/licenses/index.js +2 -0
  193. package/lib/mjs/utils/utils.d.ts +10 -0
  194. package/lib/mjs/utils/utils.js +19 -0
  195. package/package.json +5 -1
  196. package/types/index.d.ts +1 -0
  197. package/types/licenses.d.ts +7 -0
  198. package/types/utils.d.ts +2 -0
@@ -7,6 +7,7 @@ const signature_pad_1 = __importDefault(require("signature_pad"));
7
7
  const resize_observer_polyfill_1 = __importDefault(require("resize-observer-polyfill"));
8
8
  const Input_1 = __importDefault(require("../_classes/input/Input"));
9
9
  const lodash_1 = __importDefault(require("lodash"));
10
+ const utils_1 = require("../../utils/utils");
10
11
  class SignatureComponent extends Input_1.default {
11
12
  static schema(...extend) {
12
13
  return Input_1.default.schema({
@@ -34,7 +35,14 @@ class SignatureComponent extends Input_1.default {
34
35
  };
35
36
  }
36
37
  static get serverConditionSettings() {
37
- return Object.assign(Object.assign({}, super.serverConditionSettings), { operators: ['isEmpty', 'isNotEmpty'] });
38
+ return SignatureComponent.conditionOperatorsSettings;
39
+ }
40
+ static get conditionOperatorsSettings() {
41
+ return Object.assign(Object.assign({}, super.conditionOperatorsSettings), { operators: ['isEmpty', 'isNotEmpty'] });
42
+ }
43
+ static savedValueTypes(schema) {
44
+ schema = schema || {};
45
+ return (0, utils_1.getComponentSavedTypes)(schema) || [utils_1.componentValueTypes.string];
38
46
  }
39
47
  init() {
40
48
  var _a, _b, _c, _d, _e;
@@ -7,6 +7,27 @@ export default class SurveyComponent extends Field {
7
7
  documentation: string;
8
8
  schema: any;
9
9
  };
10
+ static get serverConditionSettings(): {
11
+ operators: string[];
12
+ constructor: Function;
13
+ toString(): string;
14
+ toLocaleString(): string;
15
+ valueOf(): Object;
16
+ hasOwnProperty(v: PropertyKey): boolean;
17
+ isPrototypeOf(v: Object): boolean;
18
+ propertyIsEnumerable(v: PropertyKey): boolean;
19
+ };
20
+ static get conditionOperatorsSettings(): {
21
+ operators: string[];
22
+ constructor: Function;
23
+ toString(): string;
24
+ toLocaleString(): string;
25
+ valueOf(): Object;
26
+ hasOwnProperty(v: PropertyKey): boolean;
27
+ isPrototypeOf(v: Object): boolean;
28
+ propertyIsEnumerable(v: PropertyKey): boolean;
29
+ };
30
+ static savedValueTypes(schema: any): string[];
10
31
  render(): any;
11
32
  setValue(value: any, flags?: {}): boolean;
12
33
  get emptyValue(): {};
@@ -27,7 +27,13 @@ class SurveyComponent extends Field_1.default {
27
27
  };
28
28
  }
29
29
  static get serverConditionSettings() {
30
- return Object.assign(Object.assign({}, super.serverConditionSettings), { operators: ['isEmpty', 'isNotEmpty'] });
30
+ return SurveyComponent.conditionOperatorsSettings;
31
+ }
32
+ static get conditionOperatorsSettings() {
33
+ return Object.assign(Object.assign({}, super.conditionOperatorsSettings), { operators: ['isEmpty', 'isNotEmpty'] });
34
+ }
35
+ static savedValueTypes(schema) {
36
+ return (0, utils_1.getComponentSavedTypes)(schema) || [utils_1.componentValueTypes.object];
31
37
  }
32
38
  get defaultSchema() {
33
39
  return SurveyComponent.schema();
@@ -11,6 +11,7 @@ export default class TableComponent extends NestedComponent {
11
11
  showPreview: boolean;
12
12
  schema: any;
13
13
  };
14
+ static savedValueTypes(): never[];
14
15
  constructor(...args: any[]);
15
16
  get cellClassName(): string;
16
17
  get tableKey(): string;
@@ -48,6 +48,9 @@ class TableComponent extends NestedComponent_1.default {
48
48
  schema: TableComponent.schema()
49
49
  };
50
50
  }
51
+ static savedValueTypes() {
52
+ return [];
53
+ }
51
54
  get defaultSchema() {
52
55
  return TableComponent.schema();
53
56
  }
@@ -8,6 +8,7 @@ export default class TabsComponent extends NestedComponent {
8
8
  showPreview: boolean;
9
9
  schema: any;
10
10
  };
11
+ static savedValueTypes(): never[];
11
12
  constructor(...args: any[]);
12
13
  get tabKey(): string;
13
14
  get tabLikey(): string;
@@ -35,6 +35,9 @@ class TabsComponent extends NestedComponent_1.default {
35
35
  schema: TabsComponent.schema(),
36
36
  };
37
37
  }
38
+ static savedValueTypes() {
39
+ return [];
40
+ }
38
41
  get defaultSchema() {
39
42
  return TabsComponent.schema();
40
43
  }
@@ -7,6 +7,27 @@ export default class TagsComponent extends Input {
7
7
  weight: number;
8
8
  schema: any;
9
9
  };
10
+ static get serverConditionSettings(): {
11
+ operators: any[];
12
+ constructor: Function;
13
+ toString(): string;
14
+ toLocaleString(): string;
15
+ valueOf(): Object;
16
+ hasOwnProperty(v: PropertyKey): boolean;
17
+ isPrototypeOf(v: Object): boolean;
18
+ propertyIsEnumerable(v: PropertyKey): boolean;
19
+ };
20
+ static get conditionOperatorsSettings(): {
21
+ operators: any[];
22
+ constructor: Function;
23
+ toString(): string;
24
+ toLocaleString(): string;
25
+ valueOf(): Object;
26
+ hasOwnProperty(v: PropertyKey): boolean;
27
+ isPrototypeOf(v: Object): boolean;
28
+ propertyIsEnumerable(v: PropertyKey): boolean;
29
+ };
30
+ static savedValueTypes(schema: any): any[];
10
31
  get emptyValue(): "" | never[];
11
32
  get delimiter(): any;
12
33
  attachElement(element: any, index: any): void;
@@ -3,6 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const utils_1 = require("../../utils/utils");
6
7
  const Input_1 = __importDefault(require("../_classes/input/Input"));
7
8
  const choices_js_1 = __importDefault(require("@formio/choices.js"));
8
9
  class TagsComponent extends Input_1.default {
@@ -27,7 +28,14 @@ class TagsComponent extends Input_1.default {
27
28
  };
28
29
  }
29
30
  static get serverConditionSettings() {
30
- return Object.assign(Object.assign({}, super.serverConditionSettings), { operators: [...super.serverConditionSettings.operators, 'includes', 'notIncludes'] });
31
+ return TagsComponent.conditionOperatorsSettings;
32
+ }
33
+ static get conditionOperatorsSettings() {
34
+ return Object.assign(Object.assign({}, super.conditionOperatorsSettings), { operators: [...super.conditionOperatorsSettings.operators, 'includes', 'notIncludes'] });
35
+ }
36
+ static savedValueTypes(schema) {
37
+ schema = schema || {};
38
+ return (0, utils_1.getComponentSavedTypes)(schema) || [utils_1.componentValueTypes[schema.storeas] || utils_1.componentValueTypes.string];
31
39
  }
32
40
  init() {
33
41
  super.init();
@@ -76,6 +84,8 @@ class TagsComponent extends Input_1.default {
76
84
  });
77
85
  this.choices.itemList.element.tabIndex = element.tabIndex;
78
86
  this.addEventListener(this.choices.input.element, 'blur', () => {
87
+ // Emit event to the native Formio input, so the listener attached in the Input.js will be invoked
88
+ element.dispatchEvent(new Event('blur'));
79
89
  const value = this.choices.input.value;
80
90
  const maxTagsNumber = this.component.maxTags;
81
91
  const valuesCount = this.choices.getValue(true).length;
@@ -0,0 +1,17 @@
1
+ declare namespace _default {
2
+ const type: string;
3
+ const display: string;
4
+ const components: {
5
+ label: string;
6
+ tableView: boolean;
7
+ storeas: string;
8
+ validate: {
9
+ custom: string;
10
+ };
11
+ validateOn: string;
12
+ key: string;
13
+ type: string;
14
+ input: boolean;
15
+ }[];
16
+ }
17
+ export default _default;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = {
4
+ type: 'form',
5
+ display: 'form',
6
+ components: [
7
+ {
8
+ label: 'Tags',
9
+ tableView: false,
10
+ storeas: 'array',
11
+ validate: {
12
+ custom: "valid = data && data.tags.length <= 2 ? true : 'You cannot add more than 2 items'"
13
+ },
14
+ validateOn: 'blur',
15
+ key: 'tags',
16
+ type: 'tags',
17
+ input: true
18
+ },
19
+ ]
20
+ };
@@ -3,4 +3,5 @@ import comp2 from './comp2';
3
3
  import comp3 from './comp3';
4
4
  import comp4 from './comp4';
5
5
  import comp5 from './comp5';
6
- export { comp1, comp2, comp3, comp4, comp5 };
6
+ import comp6 from './comp6';
7
+ export { comp1, comp2, comp3, comp4, comp5, comp6 };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.comp5 = exports.comp4 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
6
+ exports.comp6 = exports.comp5 = exports.comp4 = exports.comp3 = exports.comp2 = exports.comp1 = void 0;
7
7
  const comp1_1 = __importDefault(require("./comp1"));
8
8
  exports.comp1 = comp1_1.default;
9
9
  const comp2_1 = __importDefault(require("./comp2"));
@@ -14,3 +14,5 @@ const comp4_1 = __importDefault(require("./comp4"));
14
14
  exports.comp4 = comp4_1.default;
15
15
  const comp5_1 = __importDefault(require("./comp5"));
16
16
  exports.comp5 = comp5_1.default;
17
+ const comp6_1 = __importDefault(require("./comp6"));
18
+ exports.comp6 = comp6_1.default;
@@ -7,6 +7,27 @@ export default class TextFieldComponent extends Input {
7
7
  weight: number;
8
8
  schema: any;
9
9
  };
10
+ static get serverConditionSettings(): {
11
+ operators: any[];
12
+ constructor: Function;
13
+ toString(): string;
14
+ toLocaleString(): string;
15
+ valueOf(): Object;
16
+ hasOwnProperty(v: PropertyKey): boolean;
17
+ isPrototypeOf(v: Object): boolean;
18
+ propertyIsEnumerable(v: PropertyKey): boolean;
19
+ };
20
+ static get conditionOperatorsSettings(): {
21
+ operators: any[];
22
+ constructor: Function;
23
+ toString(): string;
24
+ toLocaleString(): string;
25
+ valueOf(): Object;
26
+ hasOwnProperty(v: PropertyKey): boolean;
27
+ isPrototypeOf(v: Object): boolean;
28
+ propertyIsEnumerable(v: PropertyKey): boolean;
29
+ };
30
+ static savedValueTypes(schema: any): string[];
10
31
  get emptyValue(): string;
11
32
  /**
12
33
  * Returns the mask value object.
@@ -61,7 +61,13 @@ class TextFieldComponent extends Input_1.default {
61
61
  };
62
62
  }
63
63
  static get serverConditionSettings() {
64
- return Object.assign(Object.assign({}, super.serverConditionSettings), { operators: [...super.serverConditionSettings.operators, 'includes', 'notIncludes', 'endsWith', 'startsWith'] });
64
+ return TextFieldComponent.conditionOperatorsSettings;
65
+ }
66
+ static get conditionOperatorsSettings() {
67
+ return Object.assign(Object.assign({}, super.conditionOperatorsSettings), { operators: [...super.conditionOperatorsSettings.operators, 'includes', 'notIncludes', 'endsWith', 'startsWith'] });
68
+ }
69
+ static savedValueTypes(schema) {
70
+ return FormioUtils.getComponentSavedTypes(schema) || [FormioUtils.componentValueTypes.string];
65
71
  }
66
72
  get defaultSchema() {
67
73
  return TextFieldComponent.schema();
@@ -1,7 +1,14 @@
1
1
  export default class TimeComponent extends TextFieldComponent {
2
2
  static get serverConditionSettings(): {
3
3
  valueComponent(classComp: any): any;
4
- operators: string[];
4
+ operators: any[];
5
+ constructor: Function;
6
+ toString(): string;
7
+ toLocaleString(): string;
8
+ valueOf(): Object;
9
+ hasOwnProperty(v: PropertyKey): boolean;
10
+ isPrototypeOf(v: Object): boolean;
11
+ propertyIsEnumerable(v: PropertyKey): boolean;
5
12
  };
6
13
  rawData: string | never[];
7
14
  get dataFormat(): any;
@@ -8,6 +8,7 @@ export default class WellComponent extends NestedComponent {
8
8
  weight: number;
9
9
  schema: any;
10
10
  };
11
+ static savedValueTypes(): never[];
11
12
  constructor(...args: any[]);
12
13
  noField: boolean;
13
14
  }
@@ -25,6 +25,9 @@ class WellComponent extends NestedComponent_1.default {
25
25
  schema: WellComponent.schema()
26
26
  };
27
27
  }
28
+ static savedValueTypes() {
29
+ return [];
30
+ }
28
31
  get defaultSchema() {
29
32
  return WellComponent.schema();
30
33
  }
@@ -1 +1,2 @@
1
- export {};
1
+ export { Formio };
2
+ import { Formio } from './Embed';
@@ -1,4 +1,99 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Formio = void 0;
3
4
  const Embed_1 = require("./Embed");
4
- (0, Embed_1.embed)();
5
+ Object.defineProperty(exports, "Formio", { enumerable: true, get: function () { return Embed_1.Formio; } });
6
+ const scripts = document.getElementsByTagName('script');
7
+ const config = window.FormioConfig || {};
8
+ let thisScript = null;
9
+ let i = scripts.length;
10
+ const scriptName = config.scriptName || 'formio.embed.';
11
+ while (i--) {
12
+ if (scripts[i].src && (scripts[i].src.indexOf(scriptName) !== -1)) {
13
+ thisScript = scripts[i];
14
+ break;
15
+ }
16
+ }
17
+ if (thisScript) {
18
+ const query = {};
19
+ const queryString = thisScript.src.replace(/^[^?]+\??/, '');
20
+ queryString.replace(/\?/g, '&').split('&').forEach((item) => {
21
+ query[item.split('=')[0]] = item.split('=')[1] && decodeURIComponent(item.split('=')[1]);
22
+ });
23
+ let scriptSrc = thisScript.src.replace(/^([^?]+).*/, '$1').split('/');
24
+ scriptSrc.pop();
25
+ if (config.formioPath) {
26
+ config.formioPath(scriptSrc);
27
+ }
28
+ scriptSrc = scriptSrc.join('/');
29
+ Embed_1.Formio.config = Object.assign({
30
+ script: query.script || (`${config.updatePath ? config.updatePath() : scriptSrc}/formio.form.min.js`),
31
+ style: query.styles || (`${config.updatePath ? config.updatePath() : scriptSrc}/formio.form.min.css`),
32
+ cdn: query.cdn,
33
+ class: (query.class || 'formio-form-wrapper'),
34
+ src: query.src,
35
+ form: null,
36
+ submission: null,
37
+ project: query.project,
38
+ base: query.base || 'https://api.form.io',
39
+ submit: query.submit,
40
+ includeLibs: (query.libs === 'true' || query.libs === '1'),
41
+ template: query.template,
42
+ debug: (query.debug === 'true' || query.debug === '1'),
43
+ config: {},
44
+ redirect: (query.return || query.redirect),
45
+ embedCSS: (`${config.updatePath ? config.updatePath() : scriptSrc}/formio.embed.css`),
46
+ before: null,
47
+ after: null
48
+ }, config);
49
+ const form = (Embed_1.Formio.config.form || Embed_1.Formio.config.src);
50
+ if (form) {
51
+ Embed_1.Formio.debug('Embedding Configuration', config);
52
+ if (Embed_1.Formio.config.addPremiumLib) {
53
+ Embed_1.Formio.config.addPremiumLib(Embed_1.Formio.config, scriptSrc);
54
+ }
55
+ // The id for this embedded form.
56
+ Embed_1.Formio.config.id = `formio-${Math.random().toString(36).substring(7)}`;
57
+ Embed_1.Formio.debug('Creating form element');
58
+ const element = Embed_1.Formio.createElement('div', {
59
+ 'id': Embed_1.Formio.config.id,
60
+ class: Embed_1.Formio.config.class
61
+ });
62
+ // insertAfter doesn't exist, but effect is identical.
63
+ thisScript.parentNode.insertBefore(element, thisScript.parentNode.firstElementChild.nextSibling);
64
+ Embed_1.Formio.createForm(element, form, Embed_1.Formio.config.config).then((instance) => {
65
+ if (Embed_1.Formio.config.submit) {
66
+ instance.nosubmit = true;
67
+ }
68
+ // Configure a redirect.
69
+ instance.on('submit', (submission) => {
70
+ Embed_1.Formio.debug("on('submit')", submission);
71
+ if (Embed_1.Formio.config.submit) {
72
+ Embed_1.Formio.debug(`Sending submission to ${Embed_1.Formio.config.submit}`);
73
+ const headers = {
74
+ 'content-type': 'application/json'
75
+ };
76
+ const token = Embed_1.Formio.FormioClass.getToken();
77
+ if (token) {
78
+ headers['x-jwt-token'] = token;
79
+ }
80
+ Embed_1.Formio.FormioClass.fetch(Embed_1.Formio.config.submit, {
81
+ body: JSON.stringify(submission),
82
+ headers: headers,
83
+ method: 'POST',
84
+ mode: 'cors',
85
+ })
86
+ .then(resp => resp.json())
87
+ .then(submission => Embed_1.Formio.submitDone(instance, submission));
88
+ }
89
+ else {
90
+ Embed_1.Formio.submitDone(instance, submission);
91
+ }
92
+ });
93
+ });
94
+ }
95
+ }
96
+ else {
97
+ // Show an error if the script cannot be found.
98
+ document.write('<span>Could not locate the Embedded form.</span>');
99
+ }
@@ -3,8 +3,8 @@
3
3
  * @param {*} plugin
4
4
  * @returns
5
5
  */
6
- export function registerModule(mod: any, defaultFn?: null): void;
7
- export function useModule(defaultFn?: null): (...plugins: any[]) => void;
6
+ export function registerModule(mod: any, defaultFn?: null, options?: {}): void;
7
+ export function useModule(defaultFn?: null): (plugins: any, options?: {}) => void;
8
8
  import Components from './components/Components';
9
9
  import Displays from './displays/Displays';
10
10
  import Providers from './providers';
@@ -19,4 +19,5 @@ import ValueSources from './validator/valueSources';
19
19
  import Utils from './utils';
20
20
  import Form from './Form';
21
21
  import { Formio } from './Formio';
22
- export { Components, Displays, Providers, Rules, Widgets, Templates, Conjunctions, Operators, QuickRules, Transformers, ValueSources, Utils, Form, Formio };
22
+ import Licenses from './licenses';
23
+ export { Components, Displays, Providers, Rules, Widgets, Templates, Conjunctions, Operators, QuickRules, Transformers, ValueSources, Utils, Form, Formio, Licenses };
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Formio = exports.Form = exports.Utils = exports.ValueSources = exports.Transformers = exports.QuickRules = exports.Operators = exports.Conjunctions = exports.Templates = exports.Widgets = exports.Rules = exports.Providers = exports.Displays = exports.Components = exports.useModule = exports.registerModule = void 0;
6
+ exports.Licenses = exports.Formio = exports.Form = exports.Utils = exports.ValueSources = exports.Transformers = exports.QuickRules = exports.Operators = exports.Conjunctions = exports.Templates = exports.Widgets = exports.Rules = exports.Providers = exports.Displays = exports.Components = exports.useModule = exports.registerModule = void 0;
7
7
  const lodash_1 = __importDefault(require("lodash"));
8
8
  const Formio_1 = require("./Formio");
9
9
  Object.defineProperty(exports, "Formio", { enumerable: true, get: function () { return Formio_1.Formio; } });
@@ -35,6 +35,8 @@ exports.Form = Form_1.default;
35
35
  const utils_1 = __importDefault(require("./utils"));
36
36
  exports.Utils = utils_1.default;
37
37
  const Evaluator_1 = __importDefault(require("./utils/Evaluator"));
38
+ const licenses_1 = __importDefault(require("./licenses"));
39
+ exports.Licenses = licenses_1.default;
38
40
  Formio_1.Formio.loadModules = (path = `${Formio_1.Formio.getApiUrl()}/externalModules.js`, name = 'externalModules') => {
39
41
  Formio_1.Formio.requireLibrary(name, name, path, true)
40
42
  .then((modules) => {
@@ -57,6 +59,7 @@ Formio_1.Formio.QuickRules = quickRules_1.default;
57
59
  Formio_1.Formio.Transformers = transformers_1.default;
58
60
  Formio_1.Formio.ValueSources = valueSources_1.default;
59
61
  Formio_1.Formio.AllComponents = components_1.default;
62
+ Formio_1.Formio.Licenses = licenses_1.default;
60
63
  // This is strange, but is needed for "premium" components to import correctly.
61
64
  Formio_1.Formio.Formio = Formio_1.Formio;
62
65
  Formio_1.Formio.Components.setComponents(components_1.default);
@@ -65,7 +68,7 @@ Formio_1.Formio.Components.setComponents(components_1.default);
65
68
  * @param {*} plugin
66
69
  * @returns
67
70
  */
68
- function registerModule(mod, defaultFn = null) {
71
+ function registerModule(mod, defaultFn = null, options = {}) {
69
72
  // Sanity check.
70
73
  if (typeof mod !== 'object') {
71
74
  return;
@@ -124,6 +127,11 @@ function registerModule(mod, defaultFn = null) {
124
127
  case 'valueSources':
125
128
  Formio_1.Formio.ValueSources.addValueSources(mod.valueSources);
126
129
  break;
130
+ case 'library':
131
+ options.license
132
+ ? Formio_1.Formio.Licenses.addLicense(mod.library, mod.license)
133
+ : Formio_1.Formio.Licenses.removeLicense(mod.library);
134
+ break;
127
135
  default:
128
136
  if (defaultFn) {
129
137
  if (!defaultFn(key, mod)) {
@@ -137,22 +145,23 @@ function registerModule(mod, defaultFn = null) {
137
145
  }
138
146
  exports.registerModule = registerModule;
139
147
  function useModule(defaultFn = null) {
140
- return (...plugins) => {
148
+ return (plugins, options = {}) => {
149
+ plugins = lodash_1.default.isArray(plugins) ? plugins : [plugins];
141
150
  plugins.forEach((plugin) => {
142
151
  if (Array.isArray(plugin)) {
143
- plugin.forEach(p => registerModule(p, defaultFn));
152
+ plugin.forEach(p => registerModule(p, defaultFn, options));
144
153
  }
145
154
  else {
146
- registerModule(plugin, defaultFn);
155
+ registerModule(plugin, defaultFn, options);
147
156
  }
148
157
  });
149
158
  };
150
159
  }
151
160
  exports.useModule = useModule;
152
161
  /**
153
- * Allows passing in plugins as multiple arguments or an array of plugins.
162
+ * Allows passing in plugins as an array of plugins or a single plugin.
154
163
  *
155
- * Formio.plugins(plugin1, plugin2, etc);
156
- * Formio.plugins([plugin1, plugin2, etc]);
164
+ * Formio.plugins(plugin1, options);
165
+ * Formio.plugins([plugin1, plugin2, etc], options);
157
166
  */
158
167
  Formio_1.Formio.use = useModule();
@@ -0,0 +1,7 @@
1
+ export default class Licenses {
2
+ static licenses: {};
3
+ static addLicense(name: any, license: any): void;
4
+ static getLicense(name: any): any;
5
+ static removeLicense(name: any): void;
6
+ static getLicenses(): {};
7
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const lodash_1 = __importDefault(require("lodash"));
7
+ class Licenses {
8
+ static addLicense(name, license) {
9
+ Licenses.licenses[name] = license;
10
+ }
11
+ static getLicense(name) {
12
+ return Licenses.licenses[name];
13
+ }
14
+ static removeLicense(name) {
15
+ lodash_1.default.unset(Licenses.licenses, name);
16
+ }
17
+ static getLicenses() {
18
+ return Licenses.licenses;
19
+ }
20
+ }
21
+ Licenses.licenses = {};
22
+ exports.default = Licenses;
@@ -0,0 +1,2 @@
1
+ export default Licenses;
2
+ import Licenses from './Licenses';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const Licenses_1 = __importDefault(require("./Licenses"));
7
+ exports.default = Licenses_1.default;
@@ -349,6 +349,7 @@ export function isPromise(value: any): boolean;
349
349
  */
350
350
  export function isInsideScopingComponent(componentInstance: any, firstPass?: boolean): boolean | boolean | any;
351
351
  export function getFocusableElements(element: any): any;
352
+ export function getComponentSavedTypes(fullSchema: any): string[] | null;
352
353
  export * from "./formUtils";
353
354
  /**
354
355
  * Map values through unfold and return first non-nil value.
@@ -357,6 +358,15 @@ export * from "./formUtils";
357
358
  * @return {T}
358
359
  */
359
360
  export const firstNonNil: any;
361
+ export namespace componentValueTypes {
362
+ const number: string;
363
+ const string: string;
364
+ const boolean: string;
365
+ const array: string;
366
+ const object: string;
367
+ const date: string;
368
+ const any: string;
369
+ }
360
370
  import jsonLogic from 'json-logic-js';
361
371
  import ConditionOperators from './conditionOperators';
362
372
  import Evaluator from './Evaluator';
@@ -31,7 +31,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
31
31
  };
32
32
  Object.defineProperty(exports, "__esModule", { value: true });
33
33
  exports.observeOverload = exports.withSwitch = exports.firstNonNil = exports.unfold = exports.bootstrapVersion = exports.uniqueKey = exports.iterateKey = exports.delay = exports.fieldData = exports.getCurrencyAffixes = exports.getNumberDecimalLimit = exports.getNumberSeparators = exports.matchInputMask = exports.unmaskValue = exports.getInputMask = exports.convertFormatToMask = exports.convertFormatToMoment = exports.convertFormatToFlatpickr = exports.getLocaleDateFormatInfo = exports.formatOffset = exports.formatDate = exports.momentDate = exports.loadZones = exports.shouldLoadZones = exports.zonesLoaded = exports.offsetDate = exports.currentTimezone = exports.isValidDate = exports.getDateSetting = exports.guid = exports.uniqueName = exports.convertStringToHTMLElement = exports.unescapeHTML = exports.setActionProperty = exports.checkTrigger = exports.checkCondition = exports.checkJsonConditional = exports.checkCustomConditional = exports.getComponentActualValue = exports.checkSimpleConditional = exports.checkCalculated = exports.isMongoId = exports.boolValue = exports.getElementRect = exports.getPropertyValue = exports.getRandomComponentId = exports.evaluate = exports.moment = exports.ConditionOperators = exports.jsonLogic = void 0;
34
- exports._ = exports.getFocusableElements = exports.isInsideScopingComponent = exports.isPromise = exports.getDataParentComponent = exports.getComponentPath = exports.getComponentPathWithoutIndicies = exports.getBrowserInfo = exports.getIEBrowserVersion = exports.round = exports.getStringFromComponentPath = exports.hasInvalidComponent = exports.getArrayFromComponentPath = exports.isInputComponent = exports.interpolate = exports.Evaluator = exports.fastCloneDeep = exports.sanitize = exports.translateHTMLTemplate = exports.getContextButtons = exports.getContextComponents = void 0;
34
+ exports.getComponentSavedTypes = exports.componentValueTypes = exports._ = exports.getFocusableElements = exports.isInsideScopingComponent = exports.isPromise = exports.getDataParentComponent = exports.getComponentPath = exports.getComponentPathWithoutIndicies = exports.getBrowserInfo = exports.getIEBrowserVersion = exports.round = exports.getStringFromComponentPath = exports.hasInvalidComponent = exports.getArrayFromComponentPath = exports.isInputComponent = exports.interpolate = exports.Evaluator = exports.fastCloneDeep = exports.sanitize = exports.translateHTMLTemplate = exports.getContextButtons = exports.getContextComponents = void 0;
35
35
  const lodash_1 = __importDefault(require("lodash"));
36
36
  exports._ = lodash_1.default;
37
37
  const fetch_ponyfill_1 = __importDefault(require("fetch-ponyfill"));
@@ -1465,3 +1465,23 @@ function getFocusableElements(element) {
1465
1465
  return element.querySelectorAll(focusableSelector);
1466
1466
  }
1467
1467
  exports.getFocusableElements = getFocusableElements;
1468
+ exports.componentValueTypes = {
1469
+ number: 'number',
1470
+ string: 'string',
1471
+ boolean: 'boolean',
1472
+ array: 'array',
1473
+ object: 'object',
1474
+ date: 'date',
1475
+ any: 'any',
1476
+ };
1477
+ function getComponentSavedTypes(fullSchema) {
1478
+ const schema = fullSchema || {};
1479
+ if (schema.persistent !== true) {
1480
+ return [];
1481
+ }
1482
+ if (schema.multiple) {
1483
+ return [exports.componentValueTypes.array];
1484
+ }
1485
+ return null;
1486
+ }
1487
+ exports.getComponentSavedTypes = getComponentSavedTypes;
package/lib/mjs/CDN.d.ts CHANGED
@@ -4,6 +4,7 @@ declare class CDN {
4
4
  baseUrl: any;
5
5
  overrides: {};
6
6
  libs: {
7
+ js: string;
7
8
  ace: string;
8
9
  bootstrap: string;
9
10
  ckeditor: string;
package/lib/mjs/CDN.js CHANGED
@@ -7,6 +7,7 @@ class CDN {
7
7
  this.baseUrl = baseUrl || 'https://cdn.form.io';
8
8
  this.overrides = {};
9
9
  this.libs = {
10
+ 'js': '',
10
11
  'ace': '1.4.12',
11
12
  'bootstrap': '4.6.2',
12
13
  'ckeditor': '19.0.0',
@@ -527,6 +527,11 @@ export default class Element {
527
527
  && !FormioUtils.Evaluator.templateSettings.interpolate.test(string)) {
528
528
  string = FormioUtils.translateHTMLTemplate(String(string), (value) => this.t(value));
529
529
  }
530
+ if (this.component.filter === string && !this.options.building) {
531
+ const evalContext = this.evalContext(data);
532
+ evalContext.data = _.mapValues(evalContext.data, (val) => _.isString(val) ? encodeURIComponent(val) : val);
533
+ return FormioUtils.interpolate(string, evalContext, options);
534
+ }
530
535
  return FormioUtils.interpolate(string, this.evalContext(data), options);
531
536
  }
532
537
  /**