@formio/js 5.4.0-api98.1 → 5.4.1

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 (132) hide show
  1. package/dist/formio.builder.css +26 -5
  2. package/dist/formio.builder.min.css +1 -1
  3. package/dist/formio.embed.js +1 -1
  4. package/dist/formio.embed.min.js +1 -1
  5. package/dist/formio.embed.min.js.LICENSE.txt +1 -1
  6. package/dist/formio.form.css +26 -5
  7. package/dist/formio.form.js +3462 -3448
  8. package/dist/formio.form.min.css +1 -1
  9. package/dist/formio.form.min.js +1 -1
  10. package/dist/formio.form.min.js.LICENSE.txt +2 -2
  11. package/dist/formio.full.css +26 -5
  12. package/dist/formio.full.js +4277 -4263
  13. package/dist/formio.full.min.css +1 -1
  14. package/dist/formio.full.min.js +1 -1
  15. package/dist/formio.full.min.js.LICENSE.txt +2 -2
  16. package/dist/formio.js +1738 -1724
  17. package/dist/formio.min.js +1 -1
  18. package/dist/formio.min.js.LICENSE.txt +2 -2
  19. package/dist/formio.utils.js +1631 -1617
  20. package/dist/formio.utils.min.js +1 -1
  21. package/dist/formio.utils.min.js.LICENSE.txt +2 -2
  22. package/lib/cjs/Element.d.ts +11 -0
  23. package/lib/cjs/Element.js +24 -0
  24. package/lib/cjs/Embed.js +23 -2
  25. package/lib/cjs/Form.d.ts +1 -1
  26. package/lib/cjs/Formio.js +1 -1
  27. package/lib/cjs/PDFBuilder.js +6 -1
  28. package/lib/cjs/Webform.d.ts +1 -1
  29. package/lib/cjs/Webform.js +9 -6
  30. package/lib/cjs/WebformBuilder.js +14 -1
  31. package/lib/cjs/Wizard.js +15 -11
  32. package/lib/cjs/components/Components.d.ts +3 -0
  33. package/lib/cjs/components/Components.js +3 -1
  34. package/lib/cjs/components/_classes/component/Component.d.ts +13 -0
  35. package/lib/cjs/components/_classes/component/Component.js +137 -44
  36. package/lib/cjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
  37. package/lib/cjs/components/_classes/component/editForm/Component.edit.data.js +1 -1
  38. package/lib/cjs/components/_classes/component/editForm/utils.d.ts +1 -0
  39. package/lib/cjs/components/_classes/component/editForm/utils.js +3 -0
  40. package/lib/cjs/components/_classes/nested/NestedComponent.js +5 -7
  41. package/lib/cjs/components/address/Address.js +2 -0
  42. package/lib/cjs/components/button/Button.d.ts +1 -0
  43. package/lib/cjs/components/button/Button.js +22 -1
  44. package/lib/cjs/components/datagrid/DataGrid.js +35 -10
  45. package/lib/cjs/components/datamap/DataMap.d.ts +1 -4
  46. package/lib/cjs/components/datamap/DataMap.js +42 -10
  47. package/lib/cjs/components/datetime/DateTime.js +11 -1
  48. package/lib/cjs/components/datetime/editForm/DateTime.edit.date.d.ts +18 -1
  49. package/lib/cjs/components/datetime/editForm/DateTime.edit.date.js +3 -0
  50. package/lib/cjs/components/datetime/editForm/DateTime.edit.time.d.ts +13 -2
  51. package/lib/cjs/components/datetime/editForm/DateTime.edit.time.js +3 -0
  52. package/lib/cjs/components/day/Day.d.ts +0 -15
  53. package/lib/cjs/components/day/Day.js +8 -17
  54. package/lib/cjs/components/editgrid/EditGrid.js +13 -3
  55. package/lib/cjs/components/file/File.js +7 -6
  56. package/lib/cjs/components/form/Form.d.ts +1 -0
  57. package/lib/cjs/components/form/Form.js +20 -8
  58. package/lib/cjs/components/number/Number.d.ts +1 -0
  59. package/lib/cjs/components/number/Number.js +18 -0
  60. package/lib/cjs/components/select/Select.js +6 -3
  61. package/lib/cjs/components/signature/Signature.js +5 -5
  62. package/lib/cjs/components/signature/editForm/Signature.edit.display.d.ts +0 -6
  63. package/lib/cjs/components/signature/editForm/Signature.edit.display.js +0 -1
  64. package/lib/cjs/components/textfield/editForm/TextField.edit.display.d.ts +0 -10
  65. package/lib/cjs/components/textfield/editForm/TextField.edit.display.js +9 -23
  66. package/lib/cjs/formio.form.js +2 -5
  67. package/lib/cjs/package.json +1 -1
  68. package/lib/cjs/providers/address/GoogleAddressProvider.js +1 -1
  69. package/lib/cjs/providers/storage/azure.js +9 -3
  70. package/lib/cjs/translations/en.d.ts +1 -0
  71. package/lib/cjs/translations/en.js +3 -1
  72. package/lib/cjs/utils/formUtils.d.ts +2 -2
  73. package/lib/cjs/utils/index.d.ts +3 -3
  74. package/lib/cjs/utils/utils.d.ts +1 -1
  75. package/lib/cjs/utils/utils.js +28 -11
  76. package/lib/cjs/widgets/CalendarWidget.js +1 -1
  77. package/lib/mjs/Element.d.ts +11 -0
  78. package/lib/mjs/Element.js +23 -0
  79. package/lib/mjs/Embed.js +21 -2
  80. package/lib/mjs/Form.d.ts +1 -1
  81. package/lib/mjs/Formio.js +1 -1
  82. package/lib/mjs/PDFBuilder.js +6 -1
  83. package/lib/mjs/Webform.d.ts +1 -1
  84. package/lib/mjs/Webform.js +6 -3
  85. package/lib/mjs/WebformBuilder.js +13 -1
  86. package/lib/mjs/Wizard.js +9 -10
  87. package/lib/mjs/components/Components.d.ts +3 -0
  88. package/lib/mjs/components/Components.js +3 -1
  89. package/lib/mjs/components/_classes/component/Component.d.ts +13 -0
  90. package/lib/mjs/components/_classes/component/Component.js +135 -43
  91. package/lib/mjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
  92. package/lib/mjs/components/_classes/component/editForm/Component.edit.data.js +1 -1
  93. package/lib/mjs/components/_classes/component/editForm/utils.d.ts +1 -0
  94. package/lib/mjs/components/_classes/component/editForm/utils.js +3 -0
  95. package/lib/mjs/components/_classes/nested/NestedComponent.js +5 -6
  96. package/lib/mjs/components/address/Address.js +2 -0
  97. package/lib/mjs/components/button/Button.d.ts +1 -0
  98. package/lib/mjs/components/button/Button.js +21 -1
  99. package/lib/mjs/components/datagrid/DataGrid.js +39 -11
  100. package/lib/mjs/components/datamap/DataMap.d.ts +1 -4
  101. package/lib/mjs/components/datamap/DataMap.js +41 -10
  102. package/lib/mjs/components/datetime/DateTime.js +11 -1
  103. package/lib/mjs/components/datetime/editForm/DateTime.edit.date.d.ts +18 -1
  104. package/lib/mjs/components/datetime/editForm/DateTime.edit.date.js +3 -0
  105. package/lib/mjs/components/datetime/editForm/DateTime.edit.time.d.ts +13 -2
  106. package/lib/mjs/components/datetime/editForm/DateTime.edit.time.js +3 -0
  107. package/lib/mjs/components/day/Day.d.ts +0 -15
  108. package/lib/mjs/components/day/Day.js +8 -17
  109. package/lib/mjs/components/editgrid/EditGrid.js +12 -2
  110. package/lib/mjs/components/file/File.js +7 -6
  111. package/lib/mjs/components/form/Form.d.ts +1 -0
  112. package/lib/mjs/components/form/Form.js +18 -6
  113. package/lib/mjs/components/number/Number.d.ts +1 -0
  114. package/lib/mjs/components/number/Number.js +17 -0
  115. package/lib/mjs/components/select/Select.js +6 -3
  116. package/lib/mjs/components/signature/Signature.js +1 -1
  117. package/lib/mjs/components/signature/editForm/Signature.edit.display.d.ts +0 -6
  118. package/lib/mjs/components/signature/editForm/Signature.edit.display.js +0 -1
  119. package/lib/mjs/components/textfield/editForm/TextField.edit.display.d.ts +0 -10
  120. package/lib/mjs/components/textfield/editForm/TextField.edit.display.js +9 -23
  121. package/lib/mjs/formio.form.js +4 -7
  122. package/lib/mjs/package.json +1 -1
  123. package/lib/mjs/providers/address/GoogleAddressProvider.js +1 -1
  124. package/lib/mjs/providers/storage/azure.js +9 -3
  125. package/lib/mjs/translations/en.d.ts +1 -0
  126. package/lib/mjs/translations/en.js +3 -1
  127. package/lib/mjs/utils/formUtils.d.ts +2 -2
  128. package/lib/mjs/utils/index.d.ts +3 -3
  129. package/lib/mjs/utils/utils.d.ts +1 -1
  130. package/lib/mjs/utils/utils.js +27 -11
  131. package/lib/mjs/widgets/CalendarWidget.js +2 -2
  132. package/package.json +8 -7
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "type": "module",
3
- "version": "5.4.0-api98.1"
3
+ "version": "5.4.1"
4
4
 
5
5
  }
@@ -88,7 +88,7 @@ export class GoogleAddressProvider extends AddressProvider {
88
88
 
89
89
  */
90
90
  setAutocompleteOptions() {
91
- let options = _.get(this.options, 'params.autocompleteOptions', {});
91
+ let options = _.get(this.options, 'autocompleteOptions', {});
92
92
  if (!_.isObject(options)) {
93
93
  options = {};
94
94
  }
@@ -30,9 +30,15 @@ function azure(formio) {
30
30
  downloadFile(file) {
31
31
  return formio.makeRequest('file', `${formio.formUrl}/storage/azure?name=${XHR.trim(file.name)}`, 'GET');
32
32
  },
33
- deleteFile: function deleteFile(fileInfo) {
34
- var url = `${formio.formUrl}/storage/azure?name=${XHR.trim(fileInfo.name)}&key=${XHR.trim(fileInfo.key)}`;
35
- return formio.makeRequest('', url, 'delete');
33
+ deleteFile(fileInfo, options) {
34
+ const name = XHR.trim(fileInfo.name);
35
+ const key = XHR.trim(fileInfo.key);
36
+ return formio.makeRequest('', `${formio.formUrl}/storage/azure?name=${encodeURIComponent(name)}&key=${encodeURIComponent(key)}`, 'delete').then((response) => {
37
+ return {
38
+ success: true,
39
+ key: response?.key || key,
40
+ };
41
+ });
36
42
  },
37
43
  };
38
44
  }
@@ -78,5 +78,6 @@ declare namespace _default {
78
78
  let requiredYearField: string;
79
79
  let fileTooSmall: string;
80
80
  let fileTooBig: string;
81
+ let oauthSessionExpired: string;
81
82
  }
82
83
  export default _default;
@@ -77,5 +77,7 @@ export default {
77
77
  requiredMonthField: '{{ field }} is required',
78
78
  requiredYearField: '{{ field }} is required',
79
79
  fileTooSmall: 'File is too small; it must be at least {{ size }}',
80
- fileTooBig: 'File is too big; it must be at most {{ size }}'
80
+ fileTooBig: 'File is too big; it must be at most {{ size }}',
81
+ // when temp document storing oauth state and code verifier is cleared by ttl before the user completes login
82
+ oauthSessionExpired: 'Login attempt expired; please try again. Refreshing...',
81
83
  };
@@ -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: 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, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataAsyncCallback | 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, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataCallback | undefined) => 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, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataAsyncCallback | undefined, localRoot?: import("@formio/core").LocalRoot | 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, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataCallback | undefined, localRoot?: import("@formio/core").LocalRoot | undefined) => void;
31
31
  export const getComponentKey: typeof Utils.getComponentKey;
32
32
  export const getContextualRowPath: any;
33
33
  export const getContextualRowData: typeof Utils.getContextualRowData;
@@ -37,8 +37,8 @@ declare const FormioUtils: {
37
37
  getComponentFromPath: typeof import("@formio/core/lib/utils/formUtil").getComponentFromPath;
38
38
  getComponentValue: typeof import("@formio/core/lib/utils/formUtil").getComponentValue;
39
39
  findComponents: typeof import("@formio/core/lib/utils/formUtil").findComponents;
40
- 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, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataAsyncCallback | undefined) => Promise<void>;
41
- 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, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataCallback | undefined) => void;
40
+ 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, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataAsyncCallback | undefined, localRoot?: import("@formio/core").LocalRoot | undefined) => Promise<void>;
41
+ 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, noScopeReset?: boolean | undefined, afterFn?: import("@formio/core").EachComponentDataCallback | undefined, localRoot?: import("@formio/core").LocalRoot | undefined) => void;
42
42
  getComponentKey: typeof import("@formio/core/lib/utils/formUtil").getComponentKey;
43
43
  getContextualRowPath: any;
44
44
  getContextualRowData: typeof import("@formio/core/lib/utils/formUtil").getContextualRowData;
@@ -94,7 +94,7 @@ declare const FormioUtils: {
94
94
  offsetDate(date: Date, timezone: string): Date;
95
95
  zonesLoaded(): boolean;
96
96
  shouldLoadZones(timezone: string): boolean;
97
- loadZones(url: string, timezone: string): any;
97
+ loadZones(url: string, _timezone: any): any;
98
98
  momentDate(value: string | Date, format: string, timezone: string, options: object): Date;
99
99
  formatDate(timezonesUrl: string, value: string | Date, format: string, timezone: string, flatPickrInputFormat: string): string;
100
100
  formatOffset(timezonesUrl: string, formatFn: Function, date: string | Date, format: string, timezone: string): string;
@@ -202,7 +202,7 @@ export function shouldLoadZones(timezone: string): boolean;
202
202
  * @param {string} timezone - The timezone to load.
203
203
  * @returns {Promise<any> | *} - Resolves when the zones for this timezone are loaded.
204
204
  */
205
- export function loadZones(url: string, timezone: string): Promise<any> | any;
205
+ export function loadZones(url: string, _timezone: any): Promise<any> | any;
206
206
  /**
207
207
  * Get the moment date object for translating dates with timezones.
208
208
  * @param {string|Date} value - The value to convert into a moment date.
@@ -144,7 +144,7 @@ function getConditionalPathsRecursive(conditionPaths, data) {
144
144
  }
145
145
  else {
146
146
  currentData.forEach((x, index) => {
147
- if (!_.isNil(x[conditionPaths[currentLocalIndex]])) {
147
+ if (x && conditionPaths && !_.isNil(x[conditionPaths[currentLocalIndex]])) {
148
148
  const compDataPath = `${currentPath}[${index}].${conditionPaths[currentLocalIndex]}`;
149
149
  conditionalPathsArray.push(compDataPath);
150
150
  }
@@ -217,6 +217,16 @@ export function checkSimpleConditional(component, condition, row, data, instance
217
217
  }
218
218
  else {
219
219
  const value = getComponentActualValue(conditionComponentPath, data, row);
220
+ // When inside a DataGrid/EditGrid, construct a row-indexed path so that
221
+ // operators like isEmpty can look up the correct row's component instance.
222
+ let operatorPath = conditionComponentPath;
223
+ const dataParent = getDataParentComponent(instance);
224
+ if (dataParent && !_.isNil(instance?.rowIndex)) {
225
+ const parentPath = dataParent.paths?.localPath;
226
+ if (parentPath && conditionComponentPath.startsWith(`${parentPath}.`)) {
227
+ operatorPath = conditionComponentPath.replace(`${parentPath}.`, `${parentPath}[${instance.rowIndex}].`);
228
+ }
229
+ }
220
230
  const СonditionOperator = ConditionOperators[operator];
221
231
  return СonditionOperator
222
232
  ? new СonditionOperator().getResult({
@@ -224,7 +234,7 @@ export function checkSimpleConditional(component, condition, row, data, instance
224
234
  comparedValue,
225
235
  instance,
226
236
  component,
227
- path: conditionComponentPath,
237
+ path: operatorPath,
228
238
  })
229
239
  : true;
230
240
  }
@@ -275,7 +285,11 @@ export function getComponentActualValue(compPath, data, row) {
275
285
  */
276
286
  export function checkCustomConditional(component, custom, row, data, form, variable, onError, instance) {
277
287
  if (typeof custom === 'string') {
278
- custom = `var ${variable} = true; ${custom}; return ${variable};`;
288
+ custom = `
289
+ var ${variable} = true;
290
+ ${custom};
291
+ return ${variable};
292
+ `;
279
293
  }
280
294
  const value = instance && instance.evaluate
281
295
  ? instance.evaluate(custom, { row, data, form })
@@ -606,14 +620,16 @@ export function shouldLoadZones(timezone) {
606
620
  * @param {string} timezone - The timezone to load.
607
621
  * @returns {Promise<any> | *} - Resolves when the zones for this timezone are loaded.
608
622
  */
609
- export function loadZones(url, timezone) {
610
- if (timezone && !shouldLoadZones(timezone)) {
611
- // Return non-resolving promise.
612
- return new Promise(_.noop);
623
+ export function loadZones(url, _timezone) {
624
+ if (moment.zonesLoaded) {
625
+ return Promise.resolve();
613
626
  }
614
627
  if (moment.zonesPromise) {
615
628
  return moment.zonesPromise;
616
629
  }
630
+ // Always load the full packed dataset once. The previous optimization skipped fetch when the
631
+ // display timezone matched the runtime zone, but moment-timezone still needs `tz.load()` for
632
+ // `.tz(ianaName)` and `z` formatting to work; otherwise conversions silently match server local time.
617
633
  return (moment.zonesPromise = fetch(url).then((resp) => resp.json().then((zones) => {
618
634
  moment.tz.load(zones);
619
635
  moment.zonesLoaded = true;
@@ -1734,18 +1750,18 @@ export function announceScreenReaderMessage(component, value, index = 0, forFocu
1734
1750
  if (forFocus) {
1735
1751
  setTimeout(() => {
1736
1752
  el.textContent = "";
1737
- requestAnimationFrame(() => {
1753
+ setTimeout(() => {
1738
1754
  el.textContent = combinedMessage;
1739
- });
1755
+ }, 50);
1740
1756
  }, 150);
1741
1757
  return;
1742
1758
  }
1743
1759
  clearTimeout(el._announceTimer);
1744
1760
  el._announceTimer = setTimeout(() => {
1745
1761
  el.textContent = "";
1746
- requestAnimationFrame(() => {
1762
+ setTimeout(() => {
1747
1763
  el.textContent = combinedMessage;
1748
- });
1764
+ }, 50);
1749
1765
  }, 500);
1750
1766
  }
1751
1767
  /**
@@ -1,6 +1,6 @@
1
1
  import { Formio } from '../Formio';
2
2
  import InputWidget from './InputWidget';
3
- import { convertFormatToFlatpickr, convertFormatToMask, convertFormatToMoment, formatDate, formatOffset, getBrowserInfo, getDateSetting, getLocaleDateFormatInfo, momentDate, zonesLoaded, shouldLoadZones, loadZones, hasEncodedTimezone, } from '../utils';
3
+ import { convertFormatToFlatpickr, convertFormatToMask, convertFormatToMoment, formatDate, formatOffset, getBrowserInfo, getDateSetting, getLocaleDateFormatInfo, momentDate, zonesLoaded, loadZones, hasEncodedTimezone, } from '../utils';
4
4
  import moment from 'moment';
5
5
  import _ from 'lodash';
6
6
  const DEFAULT_FORMAT = 'yyyy-MM-dd hh:mm a';
@@ -56,7 +56,7 @@ export default class CalendarWidget extends InputWidget {
56
56
  if (this.zoneLoading) {
57
57
  return true;
58
58
  }
59
- if (!zonesLoaded() && shouldLoadZones(timezone)) {
59
+ if (!zonesLoaded()) {
60
60
  this.zoneLoading = true;
61
61
  loadZones(this.timezonesUrl, timezone).then(() => {
62
62
  this.zoneLoading = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@formio/js",
3
- "version": "5.4.0-api98.1",
3
+ "version": "5.4.1",
4
4
  "description": "JavaScript powered Forms with JSON Form Builder",
5
5
  "main": "lib/cjs/index.js",
6
6
  "exports": {
@@ -26,7 +26,8 @@
26
26
  "import": "./lib/cjs/InlineEmbed.js",
27
27
  "require": "./lib/cjs/InlineEmbed.js"
28
28
  },
29
- "./dist/*": "./dist/*"
29
+ "./dist/*": "./dist/*",
30
+ "./lib/*": "./lib/*.js"
30
31
  },
31
32
  "files": [
32
33
  "dist",
@@ -67,7 +68,7 @@
67
68
  "core-js": "^3.37.1",
68
69
  "dialog-polyfill": "^0.5.6",
69
70
  "dom-autoscroller": "^2.3.4",
70
- "dompurify": "^3.2.4",
71
+ "dompurify": "^3.4.0",
71
72
  "downloadjs": "^1.4.7",
72
73
  "dragula": "^3.7.3",
73
74
  "eventemitter3": "^5.0.1",
@@ -79,17 +80,17 @@
79
80
  "json-logic-js": "^2.0.2",
80
81
  "jstimezonedetect": "^1.0.7",
81
82
  "jwt-decode": "^3.1.2",
82
- "lodash": "^4.17.21",
83
+ "lodash": "^4.17.23",
83
84
  "moment": "^2.29.4",
84
85
  "moment-timezone": "^0.5.44",
85
- "quill": "^2.0.2",
86
+ "quill": "2.0.2",
86
87
  "signature_pad": "^4.2.0",
87
88
  "string-hash": "^1.1.3",
88
89
  "tippy.js": "^6.3.7",
89
90
  "uuid": "^9.0.0",
90
91
  "vanilla-picker": "^2.12.3",
91
- "@formio/bootstrap": "^4.0.0-api98.1",
92
- "@formio/core": "^2.7.0-api98.0"
92
+ "@formio/core": "^2.7.1",
93
+ "@formio/bootstrap": "^4.0.1"
93
94
  },
94
95
  "devDependencies": {
95
96
  "@types/node": "^22.15.19",