@formio/js 5.1.0-dev.6115.a496b38 → 5.1.0-dev.6126.7fb6eb6

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 (141) hide show
  1. package/dist/formio.embed.js +1 -1
  2. package/dist/formio.embed.min.js +1 -1
  3. package/dist/formio.form.js +113 -124
  4. package/dist/formio.form.min.js +1 -1
  5. package/dist/formio.full.js +120 -131
  6. package/dist/formio.full.min.js +1 -1
  7. package/dist/formio.js +62 -51
  8. package/dist/formio.min.js +1 -1
  9. package/dist/formio.utils.js +72 -72
  10. package/dist/formio.utils.min.js +1 -1
  11. package/lib/cjs/Element.js +13 -36
  12. package/lib/cjs/Embed.js +9 -1
  13. package/lib/cjs/EventEmitter.js +2 -25
  14. package/lib/cjs/Form.js +2 -25
  15. package/lib/cjs/PDF.js +1 -1
  16. package/lib/cjs/PDFBuilder.js +4 -5
  17. package/lib/cjs/Webform.js +5 -6
  18. package/lib/cjs/WebformBuilder.js +9 -10
  19. package/lib/cjs/Wizard.js +1 -1
  20. package/lib/cjs/WizardBuilder.js +1 -1
  21. package/lib/cjs/components/_classes/component/Component.d.ts +0 -1
  22. package/lib/cjs/components/_classes/component/Component.js +33 -54
  23. package/lib/cjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
  24. package/lib/cjs/components/_classes/component/editForm/Component.edit.logic.js +1 -1
  25. package/lib/cjs/components/_classes/componentModal/ComponentModal.js +1 -1
  26. package/lib/cjs/components/_classes/input/Input.js +1 -1
  27. package/lib/cjs/components/_classes/list/ListComponent.js +1 -1
  28. package/lib/cjs/components/_classes/nested/NestedComponent.js +6 -6
  29. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +1 -1
  30. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +1 -1
  31. package/lib/cjs/components/address/Address.js +1 -1
  32. package/lib/cjs/components/alert/Alert.js +1 -1
  33. package/lib/cjs/components/button/Button.d.ts +1 -1
  34. package/lib/cjs/components/button/Button.js +4 -4
  35. package/lib/cjs/components/checkbox/Checkbox.js +1 -1
  36. package/lib/cjs/components/container/Container.js +1 -1
  37. package/lib/cjs/components/currency/Currency.js +1 -1
  38. package/lib/cjs/components/datagrid/DataGrid.js +1 -1
  39. package/lib/cjs/components/datamap/DataMap.d.ts +1 -1
  40. package/lib/cjs/components/datamap/DataMap.js +4 -4
  41. package/lib/cjs/components/datetime/DateTime.d.ts +1 -1
  42. package/lib/cjs/components/datetime/DateTime.js +15 -13
  43. package/lib/cjs/components/day/Day.js +1 -1
  44. package/lib/cjs/components/editgrid/EditGrid.js +1 -1
  45. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.display.js +1 -1
  46. package/lib/cjs/components/file/File.js +1 -1
  47. package/lib/cjs/components/form/Form.js +1 -1
  48. package/lib/cjs/components/form/editForm/Form.edit.form.js +4 -3
  49. package/lib/cjs/components/number/Number.js +1 -1
  50. package/lib/cjs/components/panel/Panel.js +1 -1
  51. package/lib/cjs/components/radio/Radio.js +1 -1
  52. package/lib/cjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +1 -1
  53. package/lib/cjs/components/select/Select.js +1 -1
  54. package/lib/cjs/components/select/editForm/Select.edit.data.js +1 -1
  55. package/lib/cjs/components/selectboxes/SelectBoxes.js +1 -1
  56. package/lib/cjs/components/signature/Signature.js +1 -1
  57. package/lib/cjs/components/survey/Survey.js +1 -1
  58. package/lib/cjs/components/tags/Tags.js +1 -1
  59. package/lib/cjs/components/textarea/TextArea.js +3 -3
  60. package/lib/cjs/components/textfield/TextField.js +7 -30
  61. package/lib/cjs/components/time/Time.js +1 -1
  62. package/lib/cjs/formio.form.js +3 -3
  63. package/lib/cjs/i18n.js +1 -1
  64. package/lib/cjs/providers/storage/uploadAdapter.js +1 -1
  65. package/lib/cjs/utils/Evaluator.d.ts +13 -6
  66. package/lib/cjs/utils/Evaluator.js +27 -15
  67. package/lib/cjs/utils/builder.js +5 -5
  68. package/lib/cjs/utils/conditionOperators/IsEqualTo.js +3 -3
  69. package/lib/cjs/utils/i18n.js +3 -3
  70. package/lib/cjs/utils/index.d.ts +161 -2
  71. package/lib/cjs/utils/index.js +12 -2
  72. package/lib/cjs/utils/utils.d.ts +18 -33
  73. package/lib/cjs/utils/utils.js +52 -130
  74. package/lib/cjs/widgets/CalendarWidget.d.ts +0 -7
  75. package/lib/cjs/widgets/CalendarWidget.js +15 -39
  76. package/lib/mjs/Element.js +6 -6
  77. package/lib/mjs/Embed.js +9 -1
  78. package/lib/mjs/EventEmitter.js +2 -2
  79. package/lib/mjs/Form.js +1 -1
  80. package/lib/mjs/PDF.js +1 -1
  81. package/lib/mjs/PDFBuilder.js +1 -2
  82. package/lib/mjs/Webform.js +3 -4
  83. package/lib/mjs/WebformBuilder.js +1 -2
  84. package/lib/mjs/Wizard.js +1 -1
  85. package/lib/mjs/WizardBuilder.js +1 -1
  86. package/lib/mjs/components/_classes/component/Component.d.ts +0 -1
  87. package/lib/mjs/components/_classes/component/Component.js +6 -4
  88. package/lib/mjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
  89. package/lib/mjs/components/_classes/component/editForm/Component.edit.logic.js +1 -1
  90. package/lib/mjs/components/_classes/componentModal/ComponentModal.js +1 -1
  91. package/lib/mjs/components/_classes/input/Input.js +1 -1
  92. package/lib/mjs/components/_classes/list/ListComponent.js +1 -1
  93. package/lib/mjs/components/_classes/nested/NestedComponent.js +6 -6
  94. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +1 -1
  95. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +1 -1
  96. package/lib/mjs/components/address/Address.js +1 -1
  97. package/lib/mjs/components/alert/Alert.js +1 -1
  98. package/lib/mjs/components/button/Button.d.ts +1 -1
  99. package/lib/mjs/components/button/Button.js +1 -1
  100. package/lib/mjs/components/checkbox/Checkbox.js +1 -1
  101. package/lib/mjs/components/container/Container.js +1 -1
  102. package/lib/mjs/components/currency/Currency.js +1 -1
  103. package/lib/mjs/components/datagrid/DataGrid.js +1 -1
  104. package/lib/mjs/components/datamap/DataMap.d.ts +1 -1
  105. package/lib/mjs/components/datamap/DataMap.js +1 -1
  106. package/lib/mjs/components/datetime/DateTime.d.ts +1 -1
  107. package/lib/mjs/components/datetime/DateTime.js +15 -13
  108. package/lib/mjs/components/day/Day.js +1 -1
  109. package/lib/mjs/components/editgrid/EditGrid.js +1 -1
  110. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.display.js +1 -1
  111. package/lib/mjs/components/file/File.js +1 -1
  112. package/lib/mjs/components/form/Form.js +1 -1
  113. package/lib/mjs/components/form/editForm/Form.edit.form.js +3 -2
  114. package/lib/mjs/components/number/Number.js +1 -1
  115. package/lib/mjs/components/panel/Panel.js +1 -1
  116. package/lib/mjs/components/radio/Radio.js +1 -1
  117. package/lib/mjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +1 -1
  118. package/lib/mjs/components/select/Select.js +1 -1
  119. package/lib/mjs/components/select/editForm/Select.edit.data.js +1 -1
  120. package/lib/mjs/components/selectboxes/SelectBoxes.js +1 -1
  121. package/lib/mjs/components/signature/Signature.js +1 -1
  122. package/lib/mjs/components/survey/Survey.js +1 -1
  123. package/lib/mjs/components/tags/Tags.js +1 -1
  124. package/lib/mjs/components/textarea/TextArea.js +3 -3
  125. package/lib/mjs/components/textfield/TextField.js +1 -1
  126. package/lib/mjs/components/time/Time.js +1 -1
  127. package/lib/mjs/formio.form.js +2 -2
  128. package/lib/mjs/i18n.js +1 -1
  129. package/lib/mjs/providers/storage/uploadAdapter.js +1 -1
  130. package/lib/mjs/utils/Evaluator.d.ts +13 -6
  131. package/lib/mjs/utils/Evaluator.js +21 -13
  132. package/lib/mjs/utils/builder.js +1 -1
  133. package/lib/mjs/utils/conditionOperators/IsEqualTo.js +1 -1
  134. package/lib/mjs/utils/i18n.js +1 -1
  135. package/lib/mjs/utils/index.d.ts +161 -2
  136. package/lib/mjs/utils/index.js +11 -1
  137. package/lib/mjs/utils/utils.d.ts +18 -33
  138. package/lib/mjs/utils/utils.js +45 -105
  139. package/lib/mjs/widgets/CalendarWidget.d.ts +0 -7
  140. package/lib/mjs/widgets/CalendarWidget.js +15 -39
  141. package/package.json +3 -2
@@ -4,7 +4,7 @@ import { editgrid as templates } from '@formio/bootstrap/components';
4
4
  import NestedArrayComponent from '../_classes/nestedarray/NestedArrayComponent';
5
5
  import Component from '../_classes/component/Component';
6
6
  import Alert from '../alert/Alert';
7
- import { fastCloneDeep, Evaluator, getArrayFromComponentPath, eachComponent } from '../../utils/utils';
7
+ import { fastCloneDeep, Evaluator, getArrayFromComponentPath, eachComponent } from '../../utils';
8
8
  const EditRowState = {
9
9
  New: 'new',
10
10
  Editing: 'editing',
@@ -33,7 +33,7 @@ export default [
33
33
  weight: 1002,
34
34
  input: false,
35
35
  customConditional() {
36
- return !Evaluator.noeval;
36
+ return !Evaluator.noeval || !Evaluator.protectedEval;
37
37
  },
38
38
  },
39
39
  {
@@ -1,5 +1,5 @@
1
1
  import Field from '../_classes/field/Field';
2
- import { componentValueTypes, getComponentSavedTypes, uniqueName } from '../../utils/utils';
2
+ import { componentValueTypes, getComponentSavedTypes, uniqueName } from '../../utils';
3
3
  import download from 'downloadjs';
4
4
  import _ from 'lodash';
5
5
  import fileProcessor from '../../providers/processor/fileProcessor';
@@ -3,7 +3,7 @@ import _ from 'lodash';
3
3
  import Component from '../_classes/component/Component';
4
4
  import ComponentModal from '../_classes/componentModal/ComponentModal';
5
5
  import EventEmitter from 'eventemitter3';
6
- import { isMongoId, eachComponent, componentValueTypes } from '../../utils/utils';
6
+ import { isMongoId, eachComponent, componentValueTypes } from '../../utils';
7
7
  import { Formio } from '../../Formio';
8
8
  import Form from '../../Form';
9
9
  export default class FormComponent extends Component {
@@ -30,9 +30,10 @@ export default [
30
30
  tooltip: 'if it is checked, the subform is loaded after navigation to the page with this component within the wizard.',
31
31
  input: true,
32
32
  customConditional({ instance, data }) {
33
- const formInfo = instance.root?.getComponent('form')?.defaultDownloadedResources.find(res => res._id === data.form);
33
+ const formComp = instance.root?.getComponent('form');
34
+ const formInfo = formComp?.defaultDownloadedResources.find(res => res._id === data.form);
34
35
  const displayMode = 'wizard';
35
- return instance.options?.editForm?.display === displayMode && formInfo && formInfo.display !== displayMode;
36
+ return instance.options?.editForm?.display === displayMode && ((data.form && !formInfo) || (formInfo && formInfo.display !== displayMode));
36
37
  },
37
38
  },
38
39
  {
@@ -2,7 +2,7 @@ import { createNumberMask } from '@formio/text-mask-addons';
2
2
  import { conformToMask, maskInput } from '@formio/vanilla-text-mask';
3
3
  import _ from 'lodash';
4
4
  import Input from '../_classes/input/Input';
5
- import { getNumberSeparators, getNumberDecimalLimit, componentValueTypes, getComponentSavedTypes } from '../../utils/utils';
5
+ import { getNumberSeparators, getNumberDecimalLimit, componentValueTypes, getComponentSavedTypes } from '../../utils/';
6
6
  export default class NumberComponent extends Input {
7
7
  static schema(...extend) {
8
8
  return Input.schema({
@@ -1,5 +1,5 @@
1
1
  import NestedComponent from '../_classes/nested/NestedComponent';
2
- import { isChildOf } from '../../utils/utils';
2
+ import { isChildOf } from '../../utils';
3
3
  export default class PanelComponent extends NestedComponent {
4
4
  static schema(...extend) {
5
5
  return NestedComponent.schema({
@@ -1,7 +1,7 @@
1
1
  import _ from 'lodash';
2
2
  import ListComponent from '../_classes/list/ListComponent';
3
3
  import { Formio } from '../../Formio';
4
- import { boolValue, componentValueTypes, getComponentSavedTypes } from '../../utils/utils';
4
+ import { boolValue, componentValueTypes, getComponentSavedTypes } from '../../utils';
5
5
  export default class RadioComponent extends ListComponent {
6
6
  static schema(...extend) {
7
7
  return ListComponent.schema({
@@ -1,4 +1,4 @@
1
- import { getContextButtons } from '../../../utils/utils';
1
+ import { getContextButtons } from '../../../utils';
2
2
  export default [
3
3
  {
4
4
  key: 'recaptchaInfo',
@@ -2,7 +2,7 @@ import _ from 'lodash';
2
2
  import { Formio } from '../../Formio';
3
3
  import ListComponent from '../_classes/list/ListComponent';
4
4
  import Form from '../../Form';
5
- import { getRandomComponentId, boolValue, isPromise, componentValueTypes, getComponentSavedTypes, isSelectResourceWithObjectValue, removeHTML } from '../../utils/utils';
5
+ import { getRandomComponentId, boolValue, isPromise, componentValueTypes, getComponentSavedTypes, isSelectResourceWithObjectValue, removeHTML } from '../../utils';
6
6
  import Choices from '../../utils/ChoicesWrapper';
7
7
  export default class SelectComponent extends ListComponent {
8
8
  static schema(...extend) {
@@ -1,5 +1,5 @@
1
1
  import _ from 'lodash';
2
- import { eachComponent } from '../../../utils/utils';
2
+ import { eachComponent } from '../../../utils';
3
3
  const calculateSingleSelectData = (context, defaultValue) => {
4
4
  const { instance, data } = context;
5
5
  const rawDefaultValue = instance.downloadedResources.find(resource => _.get(resource, data.valueProperty) === defaultValue);
@@ -1,5 +1,5 @@
1
1
  import _ from 'lodash';
2
- import { componentValueTypes, getComponentSavedTypes, boolValue, getComponent } from '../../utils/utils';
2
+ import { componentValueTypes, getComponentSavedTypes, boolValue, getComponent } from '../../utils';
3
3
  import RadioComponent from '../radio/Radio';
4
4
  export default class SelectBoxesComponent extends RadioComponent {
5
5
  static schema(...extend) {
@@ -1,7 +1,7 @@
1
1
  import SignaturePad from 'signature_pad';
2
2
  import Input from '../_classes/input/Input';
3
3
  import _ from 'lodash';
4
- import { componentValueTypes, getComponentSavedTypes } from '../../utils/utils';
4
+ import { componentValueTypes, getComponentSavedTypes } from '../../utils';
5
5
  export default class SignatureComponent extends Input {
6
6
  static schema(...extend) {
7
7
  return Input.schema({
@@ -1,6 +1,6 @@
1
1
  import _ from 'lodash';
2
2
  import Field from '../_classes/field/Field';
3
- import { boolValue, componentValueTypes, getComponentSavedTypes } from '../../utils/utils';
3
+ import { boolValue, componentValueTypes, getComponentSavedTypes } from '../../utils';
4
4
  export default class SurveyComponent extends Field {
5
5
  static schema(...extend) {
6
6
  return Field.schema({
@@ -1,4 +1,4 @@
1
- import { componentValueTypes, getComponentSavedTypes } from '../../utils/utils';
1
+ import { componentValueTypes, getComponentSavedTypes } from '../../utils';
2
2
  import Input from '../_classes/input/Input';
3
3
  import Choices from 'choices.js';
4
4
  export default class TagsComponent extends Input {
@@ -1,7 +1,7 @@
1
1
  /* global Quill */
2
2
  import TextFieldComponent from '../textfield/TextField';
3
3
  import _ from 'lodash';
4
- import { uniqueName, getBrowserInfo } from '../../utils/utils';
4
+ import { uniqueName, getBrowserInfo } from '../../utils';
5
5
  export default class TextAreaComponent extends TextFieldComponent {
6
6
  static schema(...extend) {
7
7
  return TextFieldComponent.schema({
@@ -58,8 +58,8 @@ export default class TextAreaComponent extends TextFieldComponent {
58
58
  if ((this.options.readOnly || this.disabled) && !this.isHtmlRenderMode()) {
59
59
  const elementStyle = this.info.attr.style || '';
60
60
  const children = `
61
- <div ${this._referenceAttributeName}="input"
62
- class="formio-editor-read-only-content"
61
+ <div ${this._referenceAttributeName}="input"
62
+ class="formio-editor-read-only-content"
63
63
  ${elementStyle ? `style='${elementStyle}'` : ''}
64
64
  role="textbox"
65
65
  aria-multiline="true"
@@ -1,7 +1,7 @@
1
1
  import Input from '../_classes/input/Input';
2
2
  import { conformToMask } from '@formio/vanilla-text-mask';
3
3
  import Inputmask from 'inputmask';
4
- import * as FormioUtils from '../../utils/utils';
4
+ import FormioUtils from '../../utils';
5
5
  import _ from 'lodash';
6
6
  export default class TextFieldComponent extends Input {
7
7
  static schema(...extend) {
@@ -1,6 +1,6 @@
1
1
  import moment from 'moment';
2
2
  import TextFieldComponent from '../textfield/TextField';
3
- import { getBrowserInfo } from '../../utils/utils';
3
+ import { getBrowserInfo } from '../../utils';
4
4
  const defaultDataFormat = 'HH:mm:ss';
5
5
  export default class TimeComponent extends TextFieldComponent {
6
6
  static schema(...extend) {
@@ -8,11 +8,11 @@ import Providers from './providers';
8
8
  import Widgets from './widgets';
9
9
  import Form from './Form';
10
10
  import Utils from './utils';
11
- import { Evaluator } from './utils/Evaluator';
12
11
  import Licenses from './licenses';
13
12
  import EventEmitter from './EventEmitter';
14
13
  import Webform from './Webform';
15
14
  import { I18n } from './utils/i18n';
15
+ import { Evaluator, registerEvaluator } from './utils';
16
16
  Formio.loadModules = (path = `${Formio.getApiUrl()}/externalModules.js`, name = 'externalModules') => {
17
17
  Formio.requireLibrary(name, name, path, true)
18
18
  .then((modules) => {
@@ -83,7 +83,7 @@ export function registerModule(mod, defaultFn = null, options = {}) {
83
83
  Formio.Displays.addDisplays(mod.displays);
84
84
  break;
85
85
  case 'evaluator':
86
- Formio.Evaluator.registerEvaluator(mod.evaluator);
86
+ registerEvaluator(mod.evaluator);
87
87
  break;
88
88
  case 'translations':
89
89
  I18n.setDefaultTranslations(mod.translations);
package/lib/mjs/i18n.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import enTranslation from './translations/en';
2
- import { fastCloneDeep } from './utils/utils';
2
+ import { fastCloneDeep } from './utils';
3
3
  export default {
4
4
  lng: 'en',
5
5
  nsSeparator: '::',
@@ -1,4 +1,4 @@
1
- import { uniqueName } from '../../utils/utils';
1
+ import { uniqueName } from '../../utils';
2
2
  /**
3
3
  * UploadAdapter for CKEditor https://ckeditor.com/docs/ckeditor5/latest/framework/guides/deep-dive/upload-adapter.html
4
4
  */
@@ -1,7 +1,14 @@
1
- export class Evaluator {
2
- static cache: {};
3
- static protectedEval: boolean;
4
- static noeval: boolean;
5
- static template(template: any, hash: any): any;
6
- static interpolate(rawTemplate: any, data: any, _options: any): any;
1
+ /**
2
+ * Set the evaluator to use for evaluating expressions.
3
+ * @param {CoreEvaluator} override - The new evaluator instance to use.
4
+ * @returns {void}
5
+ */
6
+ export function registerEvaluator(override: CoreEvaluator): void;
7
+ export class DefaultEvaluator extends CoreEvaluator {
8
+ cache: {};
9
+ protectedEval: boolean;
10
+ template(template: any, hash: any): any;
11
+ interpolate(rawTemplate: any, data: any, _options: any): any;
7
12
  }
13
+ export let Evaluator: DefaultEvaluator;
14
+ import { DefaultEvaluator as CoreEvaluator } from '@formio/core';
@@ -1,25 +1,24 @@
1
1
  import _ from 'lodash';
2
2
  import stringHash from 'string-hash';
3
- import { JSONLogicEvaluator as CoreEvaluator } from '@formio/core/utils';
4
- export class Evaluator extends CoreEvaluator {
5
- static cache = {};
6
- static protectedEval = false;
7
- static noeval = false;
8
- static template(template, hash) {
3
+ import { DefaultEvaluator as CoreEvaluator } from '@formio/core';
4
+ export class DefaultEvaluator extends CoreEvaluator {
5
+ cache = {};
6
+ protectedEval = false;
7
+ template(template, hash) {
9
8
  hash = hash || stringHash(template);
10
- if (Evaluator.cache[hash]) {
11
- return Evaluator.cache[hash];
9
+ if (this.cache[hash]) {
10
+ return this.cache[hash];
12
11
  }
13
12
  try {
14
13
  // Ensure we handle copied templates from the ejs files.
15
14
  template = template.replace(/ctx\./g, '');
16
- return (Evaluator.cache[hash] = _.template(template, Evaluator.templateSettings));
15
+ return (this.cache[hash] = _.template(template, this.templateSettings));
17
16
  }
18
17
  catch (err) {
19
18
  console.warn('Error while processing template', err, template);
20
19
  }
21
20
  }
22
- static interpolate(rawTemplate, data, _options) {
21
+ interpolate(rawTemplate, data, _options) {
23
22
  // Ensure reverse compatability.
24
23
  const options = _.isObject(_options) ? _options : { noeval: _options };
25
24
  if (typeof rawTemplate === 'function') {
@@ -33,11 +32,11 @@ export class Evaluator extends CoreEvaluator {
33
32
  }
34
33
  rawTemplate = String(rawTemplate);
35
34
  let template;
36
- if (Evaluator.noeval || options.noeval) {
37
- return CoreEvaluator.interpolateString(rawTemplate, data, _options);
35
+ if (this.noeval || options.noeval) {
36
+ return this.interpolateString(rawTemplate, data, _options);
38
37
  }
39
38
  else {
40
- template = Evaluator.template(rawTemplate);
39
+ template = this.template(rawTemplate);
41
40
  }
42
41
  if (typeof template === 'function') {
43
42
  try {
@@ -51,3 +50,12 @@ export class Evaluator extends CoreEvaluator {
51
50
  return template;
52
51
  }
53
52
  }
53
+ export let Evaluator = new DefaultEvaluator();
54
+ /**
55
+ * Set the evaluator to use for evaluating expressions.
56
+ * @param {CoreEvaluator} override - The new evaluator instance to use.
57
+ * @returns {void}
58
+ */
59
+ export function registerEvaluator(override) {
60
+ Evaluator = override;
61
+ }
@@ -1,5 +1,5 @@
1
1
  import _ from 'lodash';
2
- import { eachComponent, uniqueKey } from './utils';
2
+ import { eachComponent, uniqueKey } from './index';
3
3
  export default {
4
4
  /**
5
5
  * Appends a number to a component.key to keep it unique
@@ -1,6 +1,6 @@
1
1
  import ConditionOperator from './ConditionOperator';
2
2
  import _ from 'lodash';
3
- import { compareSelectResourceWithObjectTypeValues, isSelectResourceWithObjectValue } from '../utils';
3
+ import { compareSelectResourceWithObjectTypeValues, isSelectResourceWithObjectValue } from '../';
4
4
  export default class IsEqualTo extends ConditionOperator {
5
5
  static get operatorKey() {
6
6
  return 'isEqual';
@@ -1,4 +1,4 @@
1
- import { Evaluator } from '@formio/core/utils';
1
+ import { Evaluator } from './Evaluator';
2
2
  import i18n from '../i18n';
3
3
  import { isEmpty } from 'lodash';
4
4
  import { fastCloneDeep } from '@formio/core';
@@ -1,3 +1,162 @@
1
- export { FormioUtils as Utils };
1
+ export * from "./utils";
2
+ export * from "./formUtils";
2
3
  export default FormioUtils;
3
- import * as FormioUtils from './utils';
4
+ declare const FormioUtils: {
5
+ Evaluator: import("./Evaluator").DefaultEvaluator;
6
+ flattenComponents: typeof import("@formio/core/lib/utils/formUtil").flattenComponents;
7
+ guid: typeof import("@formio/core/lib/utils/formUtil").guid;
8
+ uniqueName: typeof import("@formio/core/lib/utils/formUtil").uniqueName;
9
+ MODEL_TYPES_OF_KNOWN_COMPONENTS: {
10
+ nestedArray: string[];
11
+ nestedDataArray: string[];
12
+ dataObject: string[];
13
+ object: string[];
14
+ map: string[];
15
+ content: string[];
16
+ string: string[];
17
+ number: string[];
18
+ boolean: string[];
19
+ none: string[];
20
+ any: string[];
21
+ };
22
+ getModelType: typeof import("@formio/core/lib/utils/formUtil").getModelType;
23
+ getComponentPath: any;
24
+ setComponentScope: typeof import("@formio/core/lib/utils/formUtil").setComponentScope;
25
+ resetComponentScope: typeof import("@formio/core/lib/utils/formUtil").resetComponentScope;
26
+ isComponentNestedDataType: typeof import("@formio/core/lib/utils/formUtil").isComponentNestedDataType;
27
+ componentPath: typeof import("@formio/core/lib/utils/formUtil").componentPath;
28
+ getComponentPaths: typeof import("@formio/core/lib/utils/formUtil").getComponentPaths;
29
+ componentMatches: typeof import("@formio/core/lib/utils/formUtil").componentMatches;
30
+ getBestMatch: typeof import("@formio/core/lib/utils/formUtil").getBestMatch;
31
+ getComponentFromPath: typeof import("@formio/core/lib/utils/formUtil").getComponentFromPath;
32
+ getComponentValue: typeof import("@formio/core/lib/utils/formUtil").getComponentValue;
33
+ findComponents: typeof import("@formio/core/lib/utils/formUtil").findComponents;
34
+ eachComponentDataAsync: (components: import("@formio/core").Component[], data: import("@formio/core").DataObject, fn: import("@formio/core").EachComponentDataAsyncCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: import("@formio/core").Component | undefined, parentPaths?: import("@formio/core").ComponentPaths | undefined) => Promise<void>;
35
+ eachComponentData: (components: import("@formio/core").Component[], data: import("@formio/core").DataObject, fn: import("@formio/core").EachComponentDataCallback, includeAll?: boolean | undefined, local?: boolean | undefined, parent?: import("@formio/core").Component | undefined, parentPaths?: import("@formio/core").ComponentPaths | undefined) => void;
36
+ getComponentKey: typeof import("@formio/core/lib/utils/formUtil").getComponentKey;
37
+ getContextualRowPath: typeof import("@formio/core/lib/utils/formUtil").getContextualRowPath;
38
+ getContextualRowData: typeof import("@formio/core/lib/utils/formUtil").getContextualRowData;
39
+ componentInfo: typeof import("@formio/core/lib/utils/formUtil").componentInfo;
40
+ eachComponent: typeof import("@formio/core/lib/utils/formUtil").eachComponent;
41
+ eachComponentAsync: typeof import("@formio/core/lib/utils/formUtil").eachComponentAsync;
42
+ getComponentData: typeof import("@formio/core/lib/utils/formUtil").getComponentData;
43
+ getComponentActualValue: any;
44
+ isLayoutComponent: typeof import("@formio/core/lib/utils/formUtil").isLayoutComponent;
45
+ matchComponent: typeof import("@formio/core/lib/utils/formUtil").matchComponent;
46
+ getComponent: typeof import("@formio/core/lib/utils/formUtil").getComponent;
47
+ searchComponents: typeof import("@formio/core/lib/utils/formUtil").searchComponents;
48
+ removeComponent: typeof import("@formio/core/lib/utils/formUtil").removeComponent;
49
+ hasCondition: typeof import("@formio/core/lib/utils/formUtil").hasCondition;
50
+ parseFloatExt: typeof import("@formio/core/lib/utils/formUtil").parseFloatExt;
51
+ formatAsCurrency: typeof import("@formio/core/lib/utils/formUtil").formatAsCurrency;
52
+ escapeRegExCharacters: typeof import("@formio/core/lib/utils/formUtil").escapeRegExCharacters;
53
+ getValue: typeof import("@formio/core/lib/utils/formUtil").getValue;
54
+ getStrings: typeof import("@formio/core/lib/utils/formUtil").getStrings;
55
+ generateFormChange: typeof import("@formio/core/lib/utils/formUtil").generateFormChange;
56
+ applyFormChanges: typeof import("@formio/core/lib/utils/formUtil").applyFormChanges;
57
+ findComponent: typeof import("@formio/core/lib/utils/formUtil").findComponent;
58
+ getEmptyValue: typeof import("@formio/core/lib/utils/formUtil").getEmptyValue;
59
+ isComponentDataEmpty: typeof import("@formio/core/lib/utils/formUtil").isComponentDataEmpty;
60
+ isSelectResourceWithObjectValue: typeof import("@formio/core/lib/utils/formUtil").isSelectResourceWithObjectValue;
61
+ compareSelectResourceWithObjectTypeValues: typeof import("@formio/core/lib/utils/formUtil").compareSelectResourceWithObjectTypeValues;
62
+ getItemTemplateKeys: typeof import("@formio/core/lib/utils/formUtil").getItemTemplateKeys;
63
+ evaluate(func: string | object | Function, args: any, ret: string, interpolate: boolean, options?: import("@formio/core").EvaluatorOptions): any;
64
+ getRandomComponentId(): string;
65
+ getPropertyValue(style: CSSStyleDeclaration, prop: string): number;
66
+ getElementRect(element: HTMLElement): {
67
+ x: number;
68
+ y: number;
69
+ width: number;
70
+ height: number;
71
+ };
72
+ getScriptPlugin(property: string): any;
73
+ boolValue(value: string | boolean): boolean;
74
+ isMongoId(text: string): boolean;
75
+ checkCalculated(component: import("@formio/core").Component, submission: import("@formio/core").Submission, rowData: any): void;
76
+ checkSimpleConditional(component: any, condition: any, row: any, data: any, instance: any): boolean;
77
+ checkCustomConditional(component: import("@formio/core").Component, custom: string, row: any, data: any, form: import("@formio/core").Form, variable: string, onError: any, instance: any): any;
78
+ checkJsonConditional(component: import("@formio/core").Component, json: import("@formio/core").JSONConditional, row: any, data: any, form: import("@formio/core").Form, onError: any): boolean;
79
+ checkCondition(component: import("@formio/core").Component, row: any, data: any, form: import("@formio/core").Form, instance: any): boolean;
80
+ checkTrigger(component: import("@formio/core").Component, trigger: any, row: import("@formio/core").DataObject, data: import("@formio/core").DataObject, form: import("@formio/core").Form, instance: any): boolean;
81
+ setActionProperty(component: import("@formio/core").Component, action: any, result: string, row: import("@formio/core").DataObject, data: import("@formio/core").DataObject, instance: any): import("@formio/core").Component;
82
+ removeHTML(str: string): string;
83
+ unescapeHTML(str: string): string;
84
+ convertStringToHTMLElement(str: string, selector: string): HTMLElement;
85
+ getDateSetting(date: string | Date): import("dayjs").Dayjs | null;
86
+ isValidDate(date: string | Date): boolean;
87
+ currentTimezone(): string;
88
+ offsetDate(date: Date, timezone: string): {
89
+ date: Date;
90
+ abbr: string;
91
+ };
92
+ shouldHandleTimezone(timezone: string): boolean;
93
+ dayjsDate(value: string | Date, format: string, timezone: string, options: object): import("dayjs").Dayjs;
94
+ formatDate(value: string | Date, format: string, timezone: string, flatPickrInputFormat: string): string;
95
+ formatOffset(formatFn: Function, date: string | Date, format: string, timezone: string): string;
96
+ getLocaleDateFormatInfo(locale: Intl.LocalesArgument): object;
97
+ convertFormatToFlatpickr(format: string): string;
98
+ convertFormatToDayjs(format: string): string;
99
+ convertFormatToMask(format: string): string;
100
+ getInputMask(mask: string, placeholderChar: string): any[];
101
+ unmaskValue(value: string, mask: string, placeholderChar: string): string;
102
+ matchInputMask(value: string, inputMask: string): boolean;
103
+ getNumberSeparators(lang?: string): {
104
+ delimiter: string;
105
+ decimalSeparator: string;
106
+ };
107
+ getNumberDecimalLimit(component: import("@formio/core").Component, defaultLimit: number): number;
108
+ getCurrencyAffixes({ currency, decimalLimit, decimalSeparator, lang, }: {
109
+ currency: string;
110
+ decimalLimit: number;
111
+ decimalSeparator: string;
112
+ lang: string;
113
+ }): {
114
+ prefix: string;
115
+ suffix: string;
116
+ };
117
+ fieldData(data: import("@formio/core").DataObject, component: import("@formio/core").Component): any;
118
+ delay(fn: Function, delay?: number, ...args: any[]): any;
119
+ iterateKey(key: string): string;
120
+ uniqueKey(map: Record<string, string>, base: string): string;
121
+ bootstrapVersion(options: {
122
+ bootstrap: string;
123
+ }): number;
124
+ unfold(e: any): any;
125
+ withSwitch(a: any, b: any): Functions[];
126
+ observeOverload(callback: Function, options?: {
127
+ limit: number;
128
+ delay: number;
129
+ }): Function;
130
+ getContextComponents(context: any, excludeNested: boolean, excludedTypes?: string[]): any[];
131
+ getContextButtons(context: any): any[];
132
+ translateHTMLTemplate(template: string, translate: Function): string;
133
+ sanitize(string: string, options: any): string;
134
+ fastCloneDeep(obj: any): any;
135
+ isInputComponent(componentJson: import("@formio/core").Component): bool;
136
+ getArrayFromComponentPath(pathStr: string): Arryay<number>;
137
+ isChildOf(child: any, parent: any): boolean;
138
+ getStringFromComponentPath(path: number[]): string;
139
+ round(number: number, precision: number): string;
140
+ getIEBrowserVersion(): number | null;
141
+ getBrowserInfo(): object;
142
+ getComponentPathWithoutIndicies(path?: string): string;
143
+ getDataParentComponent(componentInstance: Component): any;
144
+ isPromise(value: any): boolean;
145
+ getFocusableElements(element: HTMLElement): NodeList<HTMLElement>;
146
+ getComponentSavedTypes(fullSchema: import("@formio/core").Component): string[] | null;
147
+ hasEncodedTimezone(value: string): boolean;
148
+ firstNonNil: any;
149
+ componentValueTypes: {
150
+ number: string;
151
+ string: string;
152
+ boolean: string;
153
+ array: string;
154
+ object: string;
155
+ date: string;
156
+ any: string;
157
+ };
158
+ interpolateErrors: (component: Component, errors: FieldError[], interpolateFn: Function) => [];
159
+ };
160
+ import { Evaluator } from './Evaluator';
161
+ import { registerEvaluator } from './Evaluator';
162
+ export { FormioUtils as Utils, Evaluator, registerEvaluator };
@@ -1,6 +1,16 @@
1
- import * as FormioUtils from './utils';
1
+ import * as utils from './utils';
2
+ import * as formUtils from './formUtils';
3
+ import { Evaluator, registerEvaluator } from './Evaluator';
4
+ const FormioUtils = {
5
+ ...utils,
6
+ ...formUtils,
7
+ Evaluator,
8
+ };
2
9
  if (typeof global === 'object') {
3
10
  global.FormioUtils = FormioUtils;
4
11
  }
5
12
  export { FormioUtils as Utils };
13
+ export { Evaluator, registerEvaluator };
14
+ export * from './utils';
15
+ export * from './formUtils';
6
16
  export default FormioUtils;
@@ -164,9 +164,9 @@ export function guid(): string;
164
164
  /**
165
165
  * Return a translated date setting.
166
166
  * @param {string|Date} date - The date to translate.
167
- * @returns {(null|Date)} - The translated date.
167
+ * @returns {(null|dayjs.Dayjs)} - The translated date.
168
168
  */
169
- export function getDateSetting(date: string | Date): (null | Date);
169
+ export function getDateSetting(date: string | Date): (null | dayjs.Dayjs);
170
170
  /**
171
171
  * Returns true if the date is a valid date. False otherwise.
172
172
  * @param {Date|string} date - The date to check for validity.
@@ -182,56 +182,45 @@ export function currentTimezone(): string;
182
182
  * Get an offset date provided a date object and timezone object.
183
183
  * @param {Date} date - The date to offset.
184
184
  * @param {string} timezone - The timezone to offset the date to.
185
- * @returns {Date} - The offset date.
185
+ * @returns {{date: Date, abbr: string}} - The offset date.
186
186
  */
187
- export function offsetDate(date: Date, timezone: string): Date;
188
- /**
189
- * Returns if the zones are loaded.
190
- * @returns {boolean} - TRUE if the zones are loaded; FALSE otherwise.
191
- */
192
- export function zonesLoaded(): boolean;
187
+ export function offsetDate(date: Date, timezone: string): {
188
+ date: Date;
189
+ abbr: string;
190
+ };
193
191
  /**
194
- * Returns if we should load the zones.
192
+ * Returns if we should handle a timezone difference.
195
193
  * @param {string} timezone - The timezone to check if we should load the zones.
196
- * @returns {boolean} - TRUE if we should load the zones; FALSE otherwise.
197
- */
198
- export function shouldLoadZones(timezone: string): boolean;
199
- /**
200
- * Externally load the timezone data.
201
- * @param {string} url - The URL to load the timezone data from.
202
- * @param {string} timezone - The timezone to load.
203
- * @returns {Promise<any> | *} - Resolves when the zones for this timezone are loaded.
194
+ * @returns {boolean} - TRUE if we should handle timezones; FALSE otherwise.
204
195
  */
205
- export function loadZones(url: string, timezone: string): Promise<any> | any;
196
+ export function shouldHandleTimezone(timezone: string): boolean;
206
197
  /**
207
- * Get the moment date object for translating dates with timezones.
208
- * @param {string|Date} value - The value to convert into a moment date.
198
+ * Get the Dayjs date object for translating dates with timezones.
199
+ * @param {string|Date} value - The value to convert into a dayjs date.
209
200
  * @param {string} format - The format to convert the date to.
210
201
  * @param {string} timezone - The timezone to convert the date to.
211
202
  * @param {object} options - The options object
212
- * @returns {Date} - The moment date object.
203
+ * @returns {dayjs.Dayjs} - The dayjs date object.
213
204
  */
214
- export function momentDate(value: string | Date, format: string, timezone: string, options: object): Date;
205
+ export function dayjsDate(value: string | Date, format: string, timezone: string, options: object): dayjs.Dayjs;
215
206
  /**
216
207
  * Format a date provided a value, format, and timezone object.
217
- * @param {string} timezonesUrl - The URL to load the timezone data from.
218
208
  * @param {string|Date} value - The value to format.
219
209
  * @param {string} format - The format to format the date to.
220
210
  * @param {string} timezone - The timezone to format the date to.
221
211
  * @param {string} flatPickrInputFormat - The format to use for flatpickr input.
222
212
  * @returns {string} - The formatted date.
223
213
  */
224
- export function formatDate(timezonesUrl: string, value: string | Date, format: string, timezone: string, flatPickrInputFormat: string): string;
214
+ export function formatDate(value: string | Date, format: string, timezone: string, flatPickrInputFormat: string): string;
225
215
  /**
226
216
  * Pass a format function to format within a timezone.
227
- * @param {string} timezonesUrl - The URL to load the timezone data from.
228
217
  * @param {Function} formatFn - The format function to use.
229
218
  * @param {Date|string} date - The date to format.
230
219
  * @param {string} format - The format to format the date to.
231
220
  * @param {string} timezone - The timezone to format the date to.
232
221
  * @returns {string} - The formatted date.
233
222
  */
234
- export function formatOffset(timezonesUrl: string, formatFn: Function, date: Date | string, format: string, timezone: string): string;
223
+ export function formatOffset(formatFn: Function, date: Date | string, format: string, timezone: string): string;
235
224
  /**
236
225
  * Returns the local date format information.
237
226
  * @param {Intl.LocalesArgument} locale - The locale to get the date format for.
@@ -249,7 +238,7 @@ export function convertFormatToFlatpickr(format: string): string;
249
238
  * @param {string} format - The format to convert.
250
239
  * @returns {string} - The converted format.
251
240
  */
252
- export function convertFormatToMoment(format: string): string;
241
+ export function convertFormatToDayjs(format: string): string;
253
242
  /**
254
243
  * Convert the format from the angular-datepicker module to mask format.
255
244
  * @param {string} format - The format to convert.
@@ -499,7 +488,6 @@ export function getComponentSavedTypes(fullSchema: import('@formio/core').Compon
499
488
  * @returns {boolean} if value has encoded timezone
500
489
  */
501
490
  export function hasEncodedTimezone(value: string): boolean;
502
- export * from "./formUtils";
503
491
  /**
504
492
  * Map values through unfold and return first non-nil value.
505
493
  * @param {Array<T>} collection - The collection to map through unfold.;
@@ -516,7 +504,4 @@ export namespace componentValueTypes {
516
504
  let any: string;
517
505
  }
518
506
  export function interpolateErrors(component: Component, errors: FieldError[], interpolateFn: Function): [];
519
- import ConditionOperators from './conditionOperators';
520
- import { Evaluator } from './Evaluator';
521
- export const interpolate: typeof Evaluator.interpolate;
522
- export { jsonLogic, ConditionOperators, moment, Evaluator, _ };
507
+ import dayjs from "dayjs";