@formio/js 5.1.0-dev.6109.79f22ad → 5.1.0-dev.6112.06b0f26

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 (168) hide show
  1. package/README.md +7 -0
  2. package/dist/formio.builder.css +1 -0
  3. package/dist/formio.builder.min.css +1 -1
  4. package/dist/formio.form.css +1 -0
  5. package/dist/formio.form.js +116 -149
  6. package/dist/formio.form.min.css +1 -1
  7. package/dist/formio.form.min.js +1 -1
  8. package/dist/formio.full.css +1 -0
  9. package/dist/formio.full.js +123 -156
  10. package/dist/formio.full.min.css +1 -1
  11. package/dist/formio.full.min.js +1 -1
  12. package/dist/formio.js +65 -54
  13. package/dist/formio.min.js +1 -1
  14. package/dist/formio.utils.js +76 -76
  15. package/dist/formio.utils.min.js +1 -1
  16. package/lib/cjs/Element.d.ts +2 -1
  17. package/lib/cjs/Element.js +18 -39
  18. package/lib/cjs/EventEmitter.js +2 -25
  19. package/lib/cjs/Form.js +2 -25
  20. package/lib/cjs/PDF.js +1 -1
  21. package/lib/cjs/PDFBuilder.d.ts +1 -0
  22. package/lib/cjs/PDFBuilder.js +10 -11
  23. package/lib/cjs/Webform.d.ts +2 -2
  24. package/lib/cjs/Webform.js +9 -9
  25. package/lib/cjs/WebformBuilder.d.ts +1 -1
  26. package/lib/cjs/WebformBuilder.js +45 -21
  27. package/lib/cjs/Wizard.d.ts +1 -2
  28. package/lib/cjs/Wizard.js +18 -24
  29. package/lib/cjs/WizardBuilder.js +1 -1
  30. package/lib/cjs/components/_classes/component/Component.d.ts +0 -1
  31. package/lib/cjs/components/_classes/component/Component.js +55 -62
  32. package/lib/cjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
  33. package/lib/cjs/components/_classes/component/editForm/Component.edit.logic.js +1 -1
  34. package/lib/cjs/components/_classes/componentModal/ComponentModal.js +1 -1
  35. package/lib/cjs/components/_classes/input/Input.d.ts +1 -1
  36. package/lib/cjs/components/_classes/input/Input.js +3 -3
  37. package/lib/cjs/components/_classes/list/ListComponent.js +1 -1
  38. package/lib/cjs/components/_classes/nested/NestedComponent.js +7 -7
  39. package/lib/cjs/components/_classes/nestedarray/NestedArrayComponent.js +1 -1
  40. package/lib/cjs/components/_classes/nesteddata/NestedDataComponent.js +1 -1
  41. package/lib/cjs/components/address/Address.js +1 -1
  42. package/lib/cjs/components/alert/Alert.js +1 -1
  43. package/lib/cjs/components/button/Button.js +1 -1
  44. package/lib/cjs/components/checkbox/Checkbox.js +1 -1
  45. package/lib/cjs/components/container/Container.js +1 -1
  46. package/lib/cjs/components/currency/Currency.js +1 -1
  47. package/lib/cjs/components/datagrid/DataGrid.js +1 -1
  48. package/lib/cjs/components/datamap/DataMap.js +7 -2
  49. package/lib/cjs/components/datetime/DateTime.d.ts +1 -1
  50. package/lib/cjs/components/datetime/DateTime.js +15 -13
  51. package/lib/cjs/components/day/Day.js +2 -2
  52. package/lib/cjs/components/editgrid/EditGrid.js +1 -1
  53. package/lib/cjs/components/editgrid/editForm/EditGrid.edit.display.js +1 -1
  54. package/lib/cjs/components/fieldset/Fieldset.js +1 -0
  55. package/lib/cjs/components/file/File.js +1 -1
  56. package/lib/cjs/components/form/Form.js +14 -2
  57. package/lib/cjs/components/form/editForm/Form.edit.form.js +4 -3
  58. package/lib/cjs/components/number/Number.js +1 -1
  59. package/lib/cjs/components/panel/Panel.js +1 -1
  60. package/lib/cjs/components/radio/Radio.d.ts +8 -0
  61. package/lib/cjs/components/radio/Radio.js +16 -6
  62. package/lib/cjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +1 -1
  63. package/lib/cjs/components/select/Select.js +7 -3
  64. package/lib/cjs/components/select/editForm/Select.edit.data.js +1 -1
  65. package/lib/cjs/components/selectboxes/SelectBoxes.d.ts +6 -0
  66. package/lib/cjs/components/selectboxes/SelectBoxes.js +1 -1
  67. package/lib/cjs/components/signature/Signature.js +1 -1
  68. package/lib/cjs/components/survey/Survey.js +1 -1
  69. package/lib/cjs/components/tags/Tags.js +1 -1
  70. package/lib/cjs/components/textarea/TextArea.js +9 -4
  71. package/lib/cjs/components/textfield/TextField.js +13 -31
  72. package/lib/cjs/components/time/Time.js +1 -1
  73. package/lib/cjs/formio.form.js +5 -5
  74. package/lib/cjs/providers/storage/uploadAdapter.js +1 -1
  75. package/lib/cjs/translations/en.d.ts +1 -232
  76. package/lib/cjs/translations/en.js +4 -2
  77. package/lib/cjs/utils/Evaluator.d.ts +20 -6
  78. package/lib/cjs/utils/Evaluator.js +38 -15
  79. package/lib/cjs/utils/builder.js +5 -5
  80. package/lib/cjs/utils/conditionOperators/IsEqualTo.js +3 -3
  81. package/lib/cjs/utils/formUtils.d.ts +2 -2
  82. package/lib/cjs/utils/index.d.ts +169 -2
  83. package/lib/cjs/utils/index.js +22 -2
  84. package/lib/cjs/utils/utils.d.ts +22 -37
  85. package/lib/cjs/utils/utils.js +64 -135
  86. package/lib/cjs/widgets/CalendarWidget.d.ts +1 -8
  87. package/lib/cjs/widgets/CalendarWidget.js +17 -43
  88. package/lib/mjs/Element.d.ts +2 -1
  89. package/lib/mjs/Element.js +11 -9
  90. package/lib/mjs/EventEmitter.js +2 -2
  91. package/lib/mjs/Form.js +1 -1
  92. package/lib/mjs/PDF.js +1 -1
  93. package/lib/mjs/PDFBuilder.d.ts +1 -0
  94. package/lib/mjs/PDFBuilder.js +9 -10
  95. package/lib/mjs/Webform.d.ts +2 -2
  96. package/lib/mjs/Webform.js +7 -7
  97. package/lib/mjs/WebformBuilder.d.ts +1 -1
  98. package/lib/mjs/WebformBuilder.js +36 -13
  99. package/lib/mjs/Wizard.d.ts +1 -2
  100. package/lib/mjs/Wizard.js +17 -23
  101. package/lib/mjs/WizardBuilder.js +1 -1
  102. package/lib/mjs/components/_classes/component/Component.d.ts +0 -1
  103. package/lib/mjs/components/_classes/component/Component.js +28 -12
  104. package/lib/mjs/components/_classes/component/editForm/Component.edit.conditional.js +1 -1
  105. package/lib/mjs/components/_classes/component/editForm/Component.edit.logic.js +1 -1
  106. package/lib/mjs/components/_classes/componentModal/ComponentModal.js +1 -1
  107. package/lib/mjs/components/_classes/input/Input.d.ts +1 -1
  108. package/lib/mjs/components/_classes/input/Input.js +3 -3
  109. package/lib/mjs/components/_classes/list/ListComponent.js +1 -1
  110. package/lib/mjs/components/_classes/nested/NestedComponent.js +7 -7
  111. package/lib/mjs/components/_classes/nestedarray/NestedArrayComponent.js +1 -1
  112. package/lib/mjs/components/_classes/nesteddata/NestedDataComponent.js +1 -1
  113. package/lib/mjs/components/address/Address.js +1 -1
  114. package/lib/mjs/components/alert/Alert.js +1 -1
  115. package/lib/mjs/components/button/Button.js +1 -1
  116. package/lib/mjs/components/checkbox/Checkbox.js +1 -1
  117. package/lib/mjs/components/container/Container.js +1 -1
  118. package/lib/mjs/components/currency/Currency.js +1 -1
  119. package/lib/mjs/components/datagrid/DataGrid.js +1 -1
  120. package/lib/mjs/components/datamap/DataMap.js +7 -2
  121. package/lib/mjs/components/datetime/DateTime.d.ts +1 -1
  122. package/lib/mjs/components/datetime/DateTime.js +15 -13
  123. package/lib/mjs/components/day/Day.js +2 -2
  124. package/lib/mjs/components/editgrid/EditGrid.js +1 -1
  125. package/lib/mjs/components/editgrid/editForm/EditGrid.edit.display.js +1 -1
  126. package/lib/mjs/components/fieldset/Fieldset.js +1 -0
  127. package/lib/mjs/components/file/File.js +1 -1
  128. package/lib/mjs/components/form/Form.js +13 -2
  129. package/lib/mjs/components/form/editForm/Form.edit.form.js +3 -2
  130. package/lib/mjs/components/number/Number.js +1 -1
  131. package/lib/mjs/components/panel/Panel.js +1 -1
  132. package/lib/mjs/components/radio/Radio.d.ts +8 -0
  133. package/lib/mjs/components/radio/Radio.js +16 -6
  134. package/lib/mjs/components/recaptcha/editForm/ReCaptcha.edit.display.js +1 -1
  135. package/lib/mjs/components/select/Select.js +7 -3
  136. package/lib/mjs/components/select/editForm/Select.edit.data.js +1 -1
  137. package/lib/mjs/components/selectboxes/SelectBoxes.d.ts +6 -0
  138. package/lib/mjs/components/selectboxes/SelectBoxes.js +1 -1
  139. package/lib/mjs/components/signature/Signature.js +1 -1
  140. package/lib/mjs/components/survey/Survey.js +1 -1
  141. package/lib/mjs/components/tags/Tags.js +1 -1
  142. package/lib/mjs/components/textarea/TextArea.js +9 -4
  143. package/lib/mjs/components/textfield/TextField.js +7 -2
  144. package/lib/mjs/components/time/Time.js +1 -1
  145. package/lib/mjs/formio.form.js +3 -3
  146. package/lib/mjs/providers/storage/uploadAdapter.js +1 -1
  147. package/lib/mjs/translations/en.d.ts +1 -232
  148. package/lib/mjs/translations/en.js +8 -47
  149. package/lib/mjs/utils/Evaluator.d.ts +20 -6
  150. package/lib/mjs/utils/Evaluator.js +31 -13
  151. package/lib/mjs/utils/builder.js +1 -1
  152. package/lib/mjs/utils/conditionOperators/IsEqualTo.js +1 -1
  153. package/lib/mjs/utils/formUtils.d.ts +2 -2
  154. package/lib/mjs/utils/index.d.ts +169 -2
  155. package/lib/mjs/utils/index.js +18 -1
  156. package/lib/mjs/utils/utils.d.ts +22 -37
  157. package/lib/mjs/utils/utils.js +57 -109
  158. package/lib/mjs/widgets/CalendarWidget.d.ts +1 -8
  159. package/lib/mjs/widgets/CalendarWidget.js +17 -43
  160. package/package.json +5 -3
  161. package/lib/cjs/i18n.d.ts +0 -13
  162. package/lib/cjs/i18n.js +0 -19
  163. package/lib/cjs/utils/i18n.d.ts +0 -19
  164. package/lib/cjs/utils/i18n.js +0 -120
  165. package/lib/mjs/i18n.d.ts +0 -13
  166. package/lib/mjs/i18n.js +0 -14
  167. package/lib/mjs/utils/i18n.d.ts +0 -19
  168. package/lib/mjs/utils/i18n.js +0 -112
@@ -1,3 +1,170 @@
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
+ interpolate: typeof interpolate;
7
+ ConditionOperators: {
8
+ [x: string]: typeof import("./conditionOperators/IsEqualTo").default | typeof import("./conditionOperators/DateGreaterThan").default;
9
+ };
10
+ _: any;
11
+ moment: typeof moment;
12
+ flattenComponents: typeof import("@formio/core/lib/utils/formUtil").flattenComponents;
13
+ guid: typeof import("@formio/core/lib/utils/formUtil").guid;
14
+ uniqueName: typeof import("@formio/core/lib/utils/formUtil").uniqueName;
15
+ MODEL_TYPES_OF_KNOWN_COMPONENTS: {
16
+ nestedArray: string[];
17
+ nestedDataArray: string[];
18
+ dataObject: string[];
19
+ object: string[];
20
+ map: string[];
21
+ content: string[];
22
+ string: string[];
23
+ number: string[];
24
+ boolean: string[];
25
+ none: string[];
26
+ any: string[];
27
+ };
28
+ getModelType: typeof import("@formio/core/lib/utils/formUtil").getModelType;
29
+ getComponentPath: any;
30
+ setComponentScope: typeof import("@formio/core/lib/utils/formUtil").setComponentScope;
31
+ resetComponentScope: typeof import("@formio/core/lib/utils/formUtil").resetComponentScope;
32
+ isComponentNestedDataType: typeof import("@formio/core/lib/utils/formUtil").isComponentNestedDataType;
33
+ componentPath: typeof import("@formio/core/lib/utils/formUtil").componentPath;
34
+ getComponentPaths: typeof import("@formio/core/lib/utils/formUtil").getComponentPaths;
35
+ componentMatches: typeof import("@formio/core/lib/utils/formUtil").componentMatches;
36
+ getBestMatch: typeof import("@formio/core/lib/utils/formUtil").getBestMatch;
37
+ getComponentFromPath: typeof import("@formio/core/lib/utils/formUtil").getComponentFromPath;
38
+ getComponentValue: typeof import("@formio/core/lib/utils/formUtil").getComponentValue;
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) => 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) => void;
42
+ getComponentKey: typeof import("@formio/core/lib/utils/formUtil").getComponentKey;
43
+ getContextualRowPath: typeof import("@formio/core/lib/utils/formUtil").getContextualRowPath;
44
+ getContextualRowData: typeof import("@formio/core/lib/utils/formUtil").getContextualRowData;
45
+ componentInfo: typeof import("@formio/core/lib/utils/formUtil").componentInfo;
46
+ eachComponent: typeof import("@formio/core/lib/utils/formUtil").eachComponent;
47
+ eachComponentAsync: typeof import("@formio/core/lib/utils/formUtil").eachComponentAsync;
48
+ getComponentData: typeof import("@formio/core/lib/utils/formUtil").getComponentData;
49
+ getComponentActualValue: any;
50
+ isLayoutComponent: typeof import("@formio/core/lib/utils/formUtil").isLayoutComponent;
51
+ matchComponent: typeof import("@formio/core/lib/utils/formUtil").matchComponent;
52
+ getComponent: typeof import("@formio/core/lib/utils/formUtil").getComponent;
53
+ searchComponents: typeof import("@formio/core/lib/utils/formUtil").searchComponents;
54
+ removeComponent: typeof import("@formio/core/lib/utils/formUtil").removeComponent;
55
+ hasCondition: typeof import("@formio/core/lib/utils/formUtil").hasCondition;
56
+ parseFloatExt: typeof import("@formio/core/lib/utils/formUtil").parseFloatExt;
57
+ formatAsCurrency: typeof import("@formio/core/lib/utils/formUtil").formatAsCurrency;
58
+ escapeRegExCharacters: typeof import("@formio/core/lib/utils/formUtil").escapeRegExCharacters;
59
+ getValue: typeof import("@formio/core/lib/utils/formUtil").getValue;
60
+ getStrings: typeof import("@formio/core/lib/utils/formUtil").getStrings;
61
+ generateFormChange: typeof import("@formio/core/lib/utils/formUtil").generateFormChange;
62
+ applyFormChanges: typeof import("@formio/core/lib/utils/formUtil").applyFormChanges;
63
+ findComponent: typeof import("@formio/core/lib/utils/formUtil").findComponent;
64
+ getEmptyValue: typeof import("@formio/core/lib/utils/formUtil").getEmptyValue;
65
+ isComponentDataEmpty: typeof import("@formio/core/lib/utils/formUtil").isComponentDataEmpty;
66
+ isSelectResourceWithObjectValue: typeof import("@formio/core/lib/utils/formUtil").isSelectResourceWithObjectValue;
67
+ compareSelectResourceWithObjectTypeValues: typeof import("@formio/core/lib/utils/formUtil").compareSelectResourceWithObjectTypeValues;
68
+ getItemTemplateKeys: typeof import("@formio/core/lib/utils/formUtil").getItemTemplateKeys;
69
+ evaluate(func: string | object | Function, args: any, ret: string, interpolate: boolean, options?: import("@formio/core").EvaluatorOptions): any;
70
+ getRandomComponentId(): string;
71
+ getPropertyValue(style: CSSStyleDeclaration, prop: string): number;
72
+ getElementRect(element: HTMLElement): {
73
+ x: number;
74
+ y: number;
75
+ width: number;
76
+ height: number;
77
+ };
78
+ getScriptPlugin(property: string): any;
79
+ boolValue(value: string | boolean): boolean;
80
+ isMongoId(text: string): boolean;
81
+ checkCalculated(component: import("@formio/core").Component, submission: import("@formio/core").Submission, rowData: any): void;
82
+ checkSimpleConditional(component: any, condition: any, row: any, data: any, instance: any): boolean;
83
+ checkCustomConditional(component: import("@formio/core").Component, custom: string, row: any, data: any, form: import("@formio/core").Form, variable: string, onError: any, instance: any): any;
84
+ checkJsonConditional(component: import("@formio/core").Component, json: import("@formio/core").JSONConditional, row: any, data: any, form: import("@formio/core").Form, onError: any): boolean;
85
+ checkCondition(component: import("@formio/core").Component, row: any, data: any, form: import("@formio/core").Form, instance: any): boolean;
86
+ 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;
87
+ 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;
88
+ removeHTML(str: string): string;
89
+ unescapeHTML(str: string): string;
90
+ convertStringToHTMLElement(str: string, selector: string): HTMLElement;
91
+ getDateSetting(date: string | Date): import("dayjs").Dayjs | null;
92
+ isValidDate(date: string | Date): boolean;
93
+ currentTimezone(): string;
94
+ offsetDate(date: Date, timezone: string): {
95
+ date: Date;
96
+ abbr: string;
97
+ };
98
+ shouldHandleTimezone(timezone: string): boolean;
99
+ dayjsDate(value: string | Date, format: string, timezone: string, options: object): import("dayjs").Dayjs;
100
+ formatDate(value: string | Date, format: string, timezone: string, flatPickrInputFormat: string): string;
101
+ formatOffset(formatFn: Function, date: string | Date, format: string, timezone: string): string;
102
+ getLocaleDateFormatInfo(locale: Intl.LocalesArgument): object;
103
+ convertFormatToFlatpickr(format: string): string;
104
+ convertFormatToDayjs(format: string): string;
105
+ convertFormatToMask(format: string): string;
106
+ getInputMask(mask: string, placeholderChar: string): any[];
107
+ unmaskValue(value: string, mask: string, placeholderChar: string): string;
108
+ matchInputMask(value: string, inputMask: string): boolean;
109
+ getNumberSeparators(lang?: string): {
110
+ delimiter: string;
111
+ decimalSeparator: string;
112
+ };
113
+ getNumberDecimalLimit(component: import("@formio/core").Component, defaultLimit: number): number;
114
+ getCurrencyAffixes({ currency, decimalLimit, decimalSeparator, lang, }: {
115
+ currency: string;
116
+ decimalLimit: number;
117
+ decimalSeparator: string;
118
+ lang: string;
119
+ }): {
120
+ prefix: string;
121
+ suffix: string;
122
+ };
123
+ fieldData(data: import("@formio/core").DataObject, component: import("@formio/core").Component): any;
124
+ delay(fn: Function, delay?: number, ...args: any[]): any;
125
+ iterateKey(key: string): string;
126
+ uniqueKey(map: Record<string, string>, base: string): string;
127
+ bootstrapVersion(options: {
128
+ bootstrap: string;
129
+ }): number;
130
+ unfold(e: any): any;
131
+ withSwitch(a: any, b: any): Functions[];
132
+ observeOverload(callback: Function, options?: {
133
+ limit: number;
134
+ delay: number;
135
+ }): Function;
136
+ getContextComponents(context: any, excludeNested: boolean, excludedTypes?: string[]): any[];
137
+ getContextButtons(context: any): any[];
138
+ translateHTMLTemplate(template: string, translate: Function): string;
139
+ sanitize(string: string, options: any): string;
140
+ fastCloneDeep(obj: any): any;
141
+ isInputComponent(componentJson: import("@formio/core").Component): boolean;
142
+ getArrayFromComponentPath(pathStr: string): string[];
143
+ isChildOf(child: any, parent: any): boolean;
144
+ getStringFromComponentPath(path: number[]): string;
145
+ round(number: number, precision: number): string;
146
+ getIEBrowserVersion(): number | null;
147
+ getBrowserInfo(): object;
148
+ getComponentPathWithoutIndicies(path?: string): string;
149
+ getDataParentComponent(componentInstance: Component): any;
150
+ isPromise(value: any): boolean;
151
+ getFocusableElements(element: HTMLElement): NodeList<HTMLElement>;
152
+ getComponentSavedTypes(fullSchema: import("@formio/core").Component): string[] | null;
153
+ hasEncodedTimezone(value: string): boolean;
154
+ firstNonNil: any;
155
+ componentValueTypes: {
156
+ number: string;
157
+ string: string;
158
+ boolean: string;
159
+ array: string;
160
+ object: string;
161
+ date: string;
162
+ any: string;
163
+ };
164
+ interpolateErrors: (component: Component, errors: FieldError[], interpolateFn: Function) => [];
165
+ };
166
+ import { Evaluator } from './Evaluator';
167
+ import { registerEvaluator } from './Evaluator';
168
+ import { interpolate } from './Evaluator';
169
+ import moment from 'moment';
170
+ export { FormioUtils as Utils, Evaluator, registerEvaluator };
@@ -1,6 +1,23 @@
1
- import * as FormioUtils from './utils';
1
+ import * as utils from './utils';
2
+ import * as formUtils from './formUtils';
3
+ import { Evaluator, registerEvaluator, interpolate } from './Evaluator';
4
+ import ConditionOperators from './conditionOperators';
5
+ import _ from 'lodash';
6
+ import moment from 'moment';
7
+ const FormioUtils = {
8
+ ...utils,
9
+ ...formUtils,
10
+ Evaluator,
11
+ interpolate,
12
+ ConditionOperators,
13
+ _,
14
+ moment
15
+ };
2
16
  if (typeof global === 'object') {
3
17
  global.FormioUtils = FormioUtils;
4
18
  }
5
19
  export { FormioUtils as Utils };
20
+ export { Evaluator, registerEvaluator };
21
+ export * from './utils';
22
+ export * from './formUtils';
6
23
  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.
@@ -414,15 +403,15 @@ export function fastCloneDeep(obj: any): any;
414
403
  /**
415
404
  * Returns if the component is an input component.
416
405
  * @param {import('@formio/core').Component} componentJson - The JSON of a component.
417
- * @returns {bool} - TRUE if the component is an input component; FALSE otherwise.
406
+ * @returns {boolean} - TRUE if the component is an input component; FALSE otherwise.
418
407
  */
419
- export function isInputComponent(componentJson: import('@formio/core').Component): bool;
408
+ export function isInputComponent(componentJson: import('@formio/core').Component): boolean;
420
409
  /**
421
410
  * Takes a component path, and returns a component path array.
422
411
  * @param {string} pathStr - The path string to convert to an array.
423
- * @returns {Arryay<number>} - The array of paths.
412
+ * @returns {Array<string>} - The array of paths.
424
413
  */
425
- export function getArrayFromComponentPath(pathStr: string): Arryay<number>;
414
+ export function getArrayFromComponentPath(pathStr: string): Array<string>;
426
415
  /**
427
416
  * Returns true if the component is a child of the parent.
428
417
  * @param {any} child - The child component to check.
@@ -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";
@@ -1,31 +1,19 @@
1
1
  /* global jQuery */
2
2
  import _ from 'lodash';
3
- import jsonLogic from 'json-logic-js';
4
3
  import moment from 'moment-timezone/moment-timezone';
5
4
  import jtz from 'jstimezonedetect';
6
- import { lodashOperators } from './jsonlogic/operators';
7
5
  import dompurify from 'dompurify';
6
+ import dayjs from "dayjs";
7
+ import utc from 'dayjs/plugin/utc';
8
+ import timezone from 'dayjs/plugin/timezone';
9
+ import advancedFormat from 'dayjs/plugin/advancedFormat';
10
+ import { jsonLogic, convertShowToBoolean } from '@formio/core';
8
11
  import { getValue } from './formUtils';
9
12
  import { Evaluator } from './Evaluator';
10
13
  import ConditionOperators from './conditionOperators';
11
- import { convertShowToBoolean } from '@formio/core';
12
- const interpolate = Evaluator.interpolate;
13
- export * from './formUtils';
14
- // Configure JsonLogic
15
- lodashOperators.forEach((name) => jsonLogic.add_operation(`_${name}`, _[name]));
16
- // Retrieve Any Date
17
- jsonLogic.add_operation('getDate', (date) => {
18
- return moment(date).toISOString();
19
- });
20
- // Set Relative Minimum Date
21
- jsonLogic.add_operation('relativeMinDate', (relativeMinDate) => {
22
- return moment().subtract(relativeMinDate, 'days').toISOString();
23
- });
24
- // Set Relative Maximum Date
25
- jsonLogic.add_operation('relativeMaxDate', (relativeMaxDate) => {
26
- return moment().add(relativeMaxDate, 'days').toISOString();
27
- });
28
- export { jsonLogic, ConditionOperators, moment };
14
+ dayjs.extend(timezone);
15
+ dayjs.extend(advancedFormat);
16
+ dayjs.extend(utc);
29
17
  /**
30
18
  * Evaluate a method.
31
19
  * @param {Function|string|object} func - The function to evaluate.
@@ -211,7 +199,15 @@ export function checkSimpleConditional(component, condition, row, data, instance
211
199
  return true;
212
200
  }
213
201
  const splittedConditionPath = conditionComponentPath.split('.');
214
- const conditionalPaths = instance?.parent?.type === 'datagrid' || instance?.parent?.type === 'editgrid' ? [] : getConditionalPathsRecursive(splittedConditionPath, data);
202
+ const checkParentTypeInTree = (instance, componentType) => {
203
+ if (!instance?.parent) {
204
+ return false;
205
+ }
206
+ return instance?.parent.type === componentType || checkParentTypeInTree(instance.parent, componentType);
207
+ };
208
+ const conditionalPaths = checkParentTypeInTree(instance, 'datagrid') || checkParentTypeInTree(instance, 'editgrid')
209
+ ? []
210
+ : getConditionalPathsRecursive(splittedConditionPath, data);
215
211
  if (conditionalPaths.length > 0) {
216
212
  return conditionalPaths.map((path) => {
217
213
  const value = getComponentActualValue(path, data, row);
@@ -325,7 +321,7 @@ function getRow(component, row, instance, conditional) {
325
321
  }
326
322
  const dataParent = getDataParentComponent(instance);
327
323
  if (dataParent) {
328
- const parentPath = dataParent.paths?.localDataPath;
324
+ const parentPath = dataParent.paths?.localPath;
329
325
  const isTriggerCondtionComponentPath = condition.when || !condition.conditions
330
326
  ? condition.when?.startsWith(dataParent.paths?.localPath)
331
327
  : _.some(condition.conditions, cond => cond.component.startsWith(dataParent.paths?.localPath));
@@ -505,7 +501,7 @@ export function guid() {
505
501
  /**
506
502
  * Return a translated date setting.
507
503
  * @param {string|Date} date - The date to translate.
508
- * @returns {(null|Date)} - The translated date.
504
+ * @returns {(null|dayjs.Dayjs)} - The translated date.
509
505
  */
510
506
  export function getDateSetting(date) {
511
507
  if (_.isNil(date) || _.isNaN(date) || date === '') {
@@ -525,13 +521,13 @@ export function getDateSetting(date) {
525
521
  try {
526
522
  const value = Evaluator.evaluator(`return ${date};`, 'moment')(moment);
527
523
  if (typeof value === 'string') {
528
- dateSetting = moment(value);
524
+ dateSetting = dayjs(value);
529
525
  }
530
526
  else if (typeof value.toDate === 'function') {
531
- dateSetting = moment(value.toDate().toUTCString());
527
+ dateSetting = dayjs(value.toDate().toUTCString());
532
528
  }
533
529
  else if (value instanceof Date) {
534
- dateSetting = moment(value);
530
+ dateSetting = dayjs(value);
535
531
  }
536
532
  }
537
533
  catch (e) {
@@ -559,17 +555,17 @@ export function isValidDate(date) {
559
555
  * @returns {string} - The current timezone.
560
556
  */
561
557
  export function currentTimezone() {
562
- if (moment.currentTimezone) {
563
- return moment.currentTimezone;
558
+ if (dayjs.currentTimezone) {
559
+ return dayjs.currentTimezone;
564
560
  }
565
- moment.currentTimezone = jtz.determine().name();
566
- return moment.currentTimezone;
561
+ dayjs.currentTimezone = jtz.determine().name();
562
+ return dayjs.currentTimezone;
567
563
  }
568
564
  /**
569
565
  * Get an offset date provided a date object and timezone object.
570
566
  * @param {Date} date - The date to offset.
571
567
  * @param {string} timezone - The timezone to offset the date to.
572
- * @returns {Date} - The offset date.
568
+ * @returns {{date: Date, abbr: string}} - The offset date.
573
569
  */
574
570
  export function offsetDate(date, timezone) {
575
571
  if (timezone === 'UTC') {
@@ -578,134 +574,89 @@ export function offsetDate(date, timezone) {
578
574
  abbr: 'UTC'
579
575
  };
580
576
  }
581
- const dateMoment = moment(date).tz(timezone);
577
+ const dateMoment = dayjs(date).tz(timezone);
582
578
  return {
583
579
  date: new Date(date.getTime() + ((dateMoment.utcOffset() + date.getTimezoneOffset()) * 60000)),
584
580
  abbr: dateMoment.format('z')
585
581
  };
586
582
  }
587
583
  /**
588
- * Returns if the zones are loaded.
589
- * @returns {boolean} - TRUE if the zones are loaded; FALSE otherwise.
590
- */
591
- export function zonesLoaded() {
592
- return moment.zonesLoaded;
593
- }
594
- /**
595
- * Returns if we should load the zones.
584
+ * Returns if we should handle a timezone difference.
596
585
  * @param {string} timezone - The timezone to check if we should load the zones.
597
- * @returns {boolean} - TRUE if we should load the zones; FALSE otherwise.
586
+ * @returns {boolean} - TRUE if we should handle timezones; FALSE otherwise.
598
587
  */
599
- export function shouldLoadZones(timezone) {
600
- if (timezone === currentTimezone() || timezone === 'UTC') {
601
- return false;
602
- }
603
- return true;
604
- }
605
- /**
606
- * Externally load the timezone data.
607
- * @param {string} url - The URL to load the timezone data from.
608
- * @param {string} timezone - The timezone to load.
609
- * @returns {Promise<any> | *} - Resolves when the zones for this timezone are loaded.
610
- */
611
- export function loadZones(url, timezone) {
612
- if (timezone && !shouldLoadZones(timezone)) {
613
- // Return non-resolving promise.
614
- return new Promise(_.noop);
615
- }
616
- if (moment.zonesPromise) {
617
- return moment.zonesPromise;
618
- }
619
- return moment.zonesPromise = fetch(url)
620
- .then(resp => resp.json().then(zones => {
621
- moment.tz.load(zones);
622
- moment.zonesLoaded = true;
623
- // Trigger a global event that the timezones have finished loading.
624
- if (document && document.createEvent && document.body && document.body.dispatchEvent) {
625
- var event = document.createEvent('Event');
626
- event.initEvent('zonesLoaded', true, true);
627
- document.body.dispatchEvent(event);
628
- }
629
- }));
588
+ export function shouldHandleTimezone(timezone) {
589
+ return !(timezone === currentTimezone() || timezone === 'UTC');
630
590
  }
631
591
  /**
632
- * Get the moment date object for translating dates with timezones.
633
- * @param {string|Date} value - The value to convert into a moment date.
592
+ * Get the Dayjs date object for translating dates with timezones.
593
+ * @param {string|Date} value - The value to convert into a dayjs date.
634
594
  * @param {string} format - The format to convert the date to.
635
595
  * @param {string} timezone - The timezone to convert the date to.
636
596
  * @param {object} options - The options object
637
- * @returns {Date} - The moment date object.
597
+ * @returns {dayjs.Dayjs} - The dayjs date object.
638
598
  */
639
- export function momentDate(value, format, timezone, options) {
640
- const momentDate = moment(value);
599
+ export function dayjsDate(value, format, timezone, options) {
600
+ const dayjsDate = dayjs(value);
641
601
  if (!timezone) {
642
- return momentDate;
602
+ return dayjsDate;
643
603
  }
644
604
  if (timezone === 'UTC') {
645
605
  timezone = 'Etc/UTC';
646
606
  }
647
- if ((timezone !== currentTimezone() || (format && format.match(/\s(z$|z\s)/))) && (moment.zonesLoaded || options?.email)) {
648
- return momentDate.tz(timezone);
607
+ if ((timezone !== currentTimezone() || (format && format.match(/\s(z$|z\s)/))) && (shouldHandleTimezone(timezone) || options?.email)) {
608
+ return dayjsDate.tz(timezone);
649
609
  }
650
- return momentDate;
610
+ return dayjsDate;
651
611
  }
652
612
  /**
653
613
  * Format a date provided a value, format, and timezone object.
654
- * @param {string} timezonesUrl - The URL to load the timezone data from.
655
614
  * @param {string|Date} value - The value to format.
656
615
  * @param {string} format - The format to format the date to.
657
616
  * @param {string} timezone - The timezone to format the date to.
658
617
  * @param {string} flatPickrInputFormat - The format to use for flatpickr input.
659
618
  * @returns {string} - The formatted date.
660
619
  */
661
- export function formatDate(timezonesUrl, value, format, timezone, flatPickrInputFormat) {
662
- const momentDate = moment(value, flatPickrInputFormat || undefined);
620
+ export function formatDate(value, format, timezone, flatPickrInputFormat) {
621
+ const dayjsDate = dayjs(value, flatPickrInputFormat || undefined);
663
622
  if (timezone === currentTimezone()) {
664
623
  // See if our format contains a "z" timezone character.
665
624
  if (format.match(/\s(z$|z\s)/)) {
666
- loadZones(timezonesUrl);
667
- if (moment.zonesLoaded) {
668
- return momentDate.tz(timezone).format(convertFormatToMoment(format));
625
+ if (shouldHandleTimezone(timezone)) {
626
+ return dayjsDate.tz(timezone).format(convertFormatToDayjs(format));
669
627
  }
670
628
  else {
671
- return momentDate.format(convertFormatToMoment(format.replace(/\s(z$|z\s)/, '')));
629
+ return dayjsDate.format(convertFormatToDayjs(format.replace(/\s(z$|z\s)/, '')));
672
630
  }
673
631
  }
674
632
  // Return the standard format.
675
- return momentDate.format(convertFormatToMoment(format));
633
+ return dayjsDate.format(convertFormatToDayjs(format));
676
634
  }
677
635
  if (timezone === 'UTC') {
678
- const offset = offsetDate(momentDate.toDate(), 'UTC');
679
- return `${moment(offset.date).format(convertFormatToMoment(format))} UTC`;
680
- }
681
- // Load the zones since we need timezone information.
682
- loadZones(timezonesUrl);
683
- if (moment.zonesLoaded && timezone) {
684
- return momentDate.tz(timezone).format(`${convertFormatToMoment(format)} z`);
636
+ const offset = offsetDate(dayjsDate.toDate(), 'UTC');
637
+ return `${dayjs(offset.date).format(convertFormatToDayjs(format))} UTC`;
685
638
  }
686
- else {
687
- return momentDate.format(convertFormatToMoment(format));
639
+ if (shouldHandleTimezone(timezone)) {
640
+ return dayjsDate.tz(timezone).format(`${convertFormatToDayjs(format)} z`);
688
641
  }
642
+ return dayjsDate.format(convertFormatToDayjs(format));
689
643
  }
690
644
  /**
691
645
  * Pass a format function to format within a timezone.
692
- * @param {string} timezonesUrl - The URL to load the timezone data from.
693
646
  * @param {Function} formatFn - The format function to use.
694
647
  * @param {Date|string} date - The date to format.
695
648
  * @param {string} format - The format to format the date to.
696
649
  * @param {string} timezone - The timezone to format the date to.
697
650
  * @returns {string} - The formatted date.
698
651
  */
699
- export function formatOffset(timezonesUrl, formatFn, date, format, timezone) {
652
+ export function formatOffset(formatFn, date, format, timezone) {
700
653
  if (timezone === currentTimezone()) {
701
654
  return formatFn(date, format);
702
655
  }
703
656
  if (timezone === 'UTC') {
704
657
  return `${formatFn(offsetDate(date, 'UTC').date, format)} UTC`;
705
658
  }
706
- // Load the zones since we need timezone information.
707
- loadZones(timezonesUrl);
708
- if (moment.zonesLoaded) {
659
+ if (shouldHandleTimezone(timezone)) {
709
660
  const offset = offsetDate(date, timezone);
710
661
  return `${formatFn(offset.date, format)} ${offset.abbr}`;
711
662
  }
@@ -762,7 +713,7 @@ export function convertFormatToFlatpickr(format) {
762
713
  * @param {string} format - The format to convert.
763
714
  * @returns {string} - The converted format.
764
715
  */
765
- export function convertFormatToMoment(format) {
716
+ export function convertFormatToDayjs(format) {
766
717
  return format
767
718
  // Year conversion.
768
719
  .replace(/y/g, 'Y')
@@ -1311,11 +1262,10 @@ export function sanitize(string, options) {
1311
1262
  export function fastCloneDeep(obj) {
1312
1263
  return obj ? JSON.parse(JSON.stringify(obj)) : obj;
1313
1264
  }
1314
- export { Evaluator, interpolate };
1315
1265
  /**
1316
1266
  * Returns if the component is an input component.
1317
1267
  * @param {import('@formio/core').Component} componentJson - The JSON of a component.
1318
- * @returns {bool} - TRUE if the component is an input component; FALSE otherwise.
1268
+ * @returns {boolean} - TRUE if the component is an input component; FALSE otherwise.
1319
1269
  */
1320
1270
  export function isInputComponent(componentJson) {
1321
1271
  if (componentJson.input === false || componentJson.input === true) {
@@ -1339,7 +1289,7 @@ export function isInputComponent(componentJson) {
1339
1289
  /**
1340
1290
  * Takes a component path, and returns a component path array.
1341
1291
  * @param {string} pathStr - The path string to convert to an array.
1342
- * @returns {Arryay<number>} - The array of paths.
1292
+ * @returns {Array<string>} - The array of paths.
1343
1293
  */
1344
1294
  export function getArrayFromComponentPath(pathStr) {
1345
1295
  if (!pathStr || !_.isString(pathStr)) {
@@ -1513,8 +1463,6 @@ export function getFocusableElements(element) {
1513
1463
  textarea:not([disabled]), button:not([disabled]), [href]`;
1514
1464
  return element.querySelectorAll(focusableSelector);
1515
1465
  }
1516
- // Export lodash to save space with other libraries.
1517
- export { _ };
1518
1466
  export const componentValueTypes = {
1519
1467
  number: 'number',
1520
1468
  string: 'string',