@qoretechnologies/reqraft 0.10.59 → 0.10.60-pr.131.g07a26ef
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.
- package/design/FORM_ENGINE_FIELD_MIGRATION.md +10 -4
- package/dist/components/form/engine/FormEngine.d.ts.map +1 -1
- package/dist/components/form/engine/FormEngine.js +1 -1
- package/dist/components/form/engine/FormEngine.js.map +1 -1
- package/dist/components/form/engine/OptionFieldMessages.d.ts.map +1 -1
- package/dist/components/form/engine/OptionFieldMessages.js +2 -1
- package/dist/components/form/engine/OptionFieldMessages.js.map +1 -1
- package/dist/components/form/expressions/builder/argumentWrapper.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/argumentWrapper.js +23 -1
- package/dist/components/form/expressions/builder/argumentWrapper.js.map +1 -1
- package/dist/components/form/expressions/builder/index.d.ts.map +1 -1
- package/dist/components/form/expressions/builder/index.js +18 -4
- package/dist/components/form/expressions/builder/index.js.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts +30 -1
- package/dist/components/form/fields/auto/AutoFormField.d.ts.map +1 -1
- package/dist/components/form/fields/auto/AutoFormField.js +52 -27
- package/dist/components/form/fields/auto/AutoFormField.js.map +1 -1
- package/dist/helpers/validations.d.ts +10 -0
- package/dist/helpers/validations.d.ts.map +1 -1
- package/dist/helpers/validations.js +16 -7
- package/dist/helpers/validations.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/providers/StorageProvider.d.ts.map +1 -1
- package/dist/providers/StorageProvider.js +8 -1
- package/dist/providers/StorageProvider.js.map +1 -1
- package/package.json +1 -1
- package/src/components/form/engine/FormEngine.stories.tsx +6 -1
- package/src/components/form/engine/FormEngine.tsx +0 -1
- package/src/components/form/engine/OptionFieldMessages.tsx +3 -1
- package/src/components/form/expressions/builder/ExpressionBuilder.stories.tsx +172 -0
- package/src/components/form/expressions/builder/argumentWrapper.tsx +26 -3
- package/src/components/form/expressions/builder/index.tsx +17 -4
- package/src/components/form/fields/auto/AutoFormField.stories.tsx +112 -11
- package/src/components/form/fields/auto/AutoFormField.tsx +57 -26
- package/src/helpers/validations.ts +25 -13
- package/src/index.tsx +1 -0
- package/src/providers/StorageProvider.tsx +8 -1
|
@@ -1824,24 +1824,36 @@ export const getTypeFromValue = (value: any) => {
|
|
|
1824
1824
|
}
|
|
1825
1825
|
};
|
|
1826
1826
|
|
|
1827
|
-
|
|
1827
|
+
/**
|
|
1828
|
+
* The groups of `groups` none of whose options has a value. A required group asks for one of its
|
|
1829
|
+
* options; an option in several groups is settled only when each of them is.
|
|
1830
|
+
*/
|
|
1831
|
+
export const unsatisfiedRequiredGroups = (
|
|
1828
1832
|
options: TQorusForm,
|
|
1829
1833
|
schema: IQorusFormSchema,
|
|
1830
1834
|
groups: string[]
|
|
1831
|
-
):
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1835
|
+
): string[] =>
|
|
1836
|
+
(groups ?? []).filter(
|
|
1837
|
+
(group) =>
|
|
1838
|
+
!getOptionsFromRequiredGroups(schema, [group]).some((option) =>
|
|
1839
|
+
isValueDefined(
|
|
1840
|
+
((schema[option] as TQorusFormFieldSchema)?.ui_type as string) ||
|
|
1841
|
+
((schema[option] as TQorusFormFieldSchema)?.type as string),
|
|
1842
|
+
options?.[option]?.value
|
|
1843
|
+
)
|
|
1839
1844
|
)
|
|
1840
|
-
|
|
1841
|
-
}
|
|
1845
|
+
);
|
|
1842
1846
|
|
|
1843
|
-
|
|
1844
|
-
|
|
1847
|
+
/**
|
|
1848
|
+
* Whether an option's required groups are settled: each has an option with a value. Any value in any of
|
|
1849
|
+
* the groups used to do, so an option in two groups passed while one of them was still empty - it was
|
|
1850
|
+
* neither flagged nor counted, and the form said fewer fields needed attention than did.
|
|
1851
|
+
*/
|
|
1852
|
+
export const validateOptionWithRequiredGroups = (
|
|
1853
|
+
options: TQorusForm,
|
|
1854
|
+
schema: IQorusFormSchema,
|
|
1855
|
+
groups: string[]
|
|
1856
|
+
): boolean => !unsatisfiedRequiredGroups(options, schema, groups).length;
|
|
1845
1857
|
|
|
1846
1858
|
/** Why a required option is not satisfied by the current values. */
|
|
1847
1859
|
export type TUnresolvedRequiredOptionReason =
|
package/src/index.tsx
CHANGED
|
@@ -9,6 +9,7 @@ export {
|
|
|
9
9
|
hasAllDependenciesFullfilled,
|
|
10
10
|
parseDependency,
|
|
11
11
|
validateOptionWithRequiredGroups,
|
|
12
|
+
unsatisfiedRequiredGroups,
|
|
12
13
|
} from './helpers/validations';
|
|
13
14
|
export type { IValidationResult } from './helpers/validations';
|
|
14
15
|
export { thinScrollbar } from './helpers/scrollbar';
|
|
@@ -41,7 +41,14 @@ export const ReqraftUserProvider = ({ children, waitForStorage }: IReqraftStorag
|
|
|
41
41
|
} = currentUserStore();
|
|
42
42
|
|
|
43
43
|
useEffectOnce(() => {
|
|
44
|
-
|
|
44
|
+
/* A user that cannot be loaded - no token (401), another origin the instance
|
|
45
|
+
refuses (CORS), no such endpoint (404) - is a state the store keeps
|
|
46
|
+
(`error`, `errorData`), and the page renders without one. The promise was
|
|
47
|
+
dropped, so the failure was an unhandled rejection: Storybook marked a story
|
|
48
|
+
wrapped in this provider as errored whenever it landed first. */
|
|
49
|
+
loadCurrentUser().catch((error: unknown) => {
|
|
50
|
+
console.warn('Reqraft: the current user could not be loaded', error);
|
|
51
|
+
});
|
|
45
52
|
});
|
|
46
53
|
|
|
47
54
|
const { load } = useFetch({
|