@inseefr/lunatic 3.4.10-rc.1 → 3.4.11-rc.0
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/README.md +6 -4
- package/components/Loop/Loop.js +27 -7
- package/components/Loop/Loop.js.map +1 -1
- package/components/LunaticComponents.d.ts +10 -1
- package/components/LunaticComponents.js +3 -1
- package/components/LunaticComponents.js.map +1 -1
- package/components/RosterForLoop/RosterForLoop.js +37 -8
- package/components/RosterForLoop/RosterForLoop.js.map +1 -1
- package/components/Sequence/Sequence.d.ts +1 -1
- package/components/Subsequence/Subsequence.d.ts +1 -1
- package/components/library.d.ts +2 -2
- package/components/shared/HOC/slottableComponent.d.ts +3 -3
- package/components/shared/HOC/slottableComponent.js +2 -2
- package/esm/components/Loop/Loop.js +27 -7
- package/esm/components/Loop/Loop.js.map +1 -1
- package/esm/components/LunaticComponents.d.ts +10 -1
- package/esm/components/LunaticComponents.js +3 -1
- package/esm/components/LunaticComponents.js.map +1 -1
- package/esm/components/RosterForLoop/RosterForLoop.js +34 -8
- package/esm/components/RosterForLoop/RosterForLoop.js.map +1 -1
- package/esm/components/Sequence/Sequence.d.ts +1 -1
- package/esm/components/Subsequence/Subsequence.d.ts +1 -1
- package/esm/components/library.d.ts +2 -2
- package/esm/components/shared/HOC/slottableComponent.d.ts +3 -3
- package/esm/components/shared/HOC/slottableComponent.js +2 -2
- package/esm/i18n/dictionary.d.ts +8 -0
- package/esm/i18n/dictionary.js +5 -0
- package/esm/i18n/dictionary.js.map +1 -1
- package/esm/i18n/index.d.ts +1 -1
- package/esm/type.source.js +0 -1
- package/esm/type.source.js.map +1 -1
- package/esm/use-lunatic/commons/compile-controls.d.ts +1 -1
- package/esm/use-lunatic/commons/compile-controls.js +4 -3
- package/esm/use-lunatic/commons/compile-controls.js.map +1 -1
- package/esm/use-lunatic/commons/variables/behaviours/resizing-behaviour.js +23 -7
- package/esm/use-lunatic/commons/variables/behaviours/resizing-behaviour.js.map +1 -1
- package/esm/use-lunatic/commons/variables/lunatic-variables-store.d.ts +19 -1
- package/esm/use-lunatic/commons/variables/lunatic-variables-store.js +6 -6
- package/esm/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
- package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js +66 -1
- package/esm/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
- package/esm/use-lunatic/hooks/use-loop-variables.d.ts +1 -1
- package/esm/use-lunatic/hooks/use-loop-variables.js +1 -1
- package/esm/use-lunatic/hooks/use-page-has-response.d.ts +1 -1
- package/esm/use-lunatic/hooks/use-page-has-response.js +6 -6
- package/esm/use-lunatic/hooks/useOverview.d.ts +1 -1
- package/esm/use-lunatic/hooks/useOverview.js +4 -4
- package/esm/use-lunatic/hooks/useWarnDepChange.d.ts +3 -2
- package/esm/use-lunatic/hooks/useWarnDepChange.js +3 -2
- package/esm/use-lunatic/hooks/useWarnDepChange.js.map +1 -1
- package/esm/use-lunatic/lunatic-context.d.ts +5 -2
- package/esm/use-lunatic/lunatic-context.js +5 -2
- package/esm/use-lunatic/lunatic-context.js.map +1 -1
- package/esm/use-lunatic/props/getComponentTypeProps.d.ts +4 -4
- package/esm/use-lunatic/reducer/commons/index.d.ts +0 -1
- package/esm/use-lunatic/reducer/commons/index.js +0 -1
- package/esm/use-lunatic/reducer/commons/index.js.map +1 -1
- package/esm/use-lunatic/type.d.ts +153 -2
- package/esm/use-lunatic/use-lunatic.d.ts +13 -36
- package/esm/use-lunatic/use-lunatic.js +13 -2
- package/esm/use-lunatic/use-lunatic.js.map +1 -1
- package/esm/utils/array.d.ts +4 -0
- package/esm/utils/array.js +15 -2
- package/esm/utils/array.js.map +1 -1
- package/esm/utils/array.spec.js +12 -1
- package/esm/utils/array.spec.js.map +1 -1
- package/i18n/dictionary.d.ts +8 -0
- package/i18n/dictionary.js +5 -0
- package/i18n/dictionary.js.map +1 -1
- package/i18n/index.d.ts +1 -1
- package/package.json +1 -8
- package/src/components/Loop/Loop.tsx +42 -12
- package/src/components/LunaticComponents.tsx +10 -8
- package/src/components/RosterForLoop/RosterForLoop.tsx +42 -2
- package/src/components/RosterForLoop/__snapshots__/RosterForLoop.spec.tsx.snap +18 -0
- package/src/components/shared/HOC/slottableComponent.tsx +3 -3
- package/src/i18n/dictionary.ts +5 -0
- package/src/stories/pairwise/data.json +1 -1
- package/src/stories/pairwise/source.json +3 -1
- package/src/type.source.ts +0 -1
- package/src/use-lunatic/__snapshots__/use-lunatic.test.ts.snap +0 -323
- package/src/use-lunatic/commons/compile-controls.ts +4 -3
- package/src/use-lunatic/commons/variables/behaviours/resizing-behaviour.ts +35 -10
- package/src/use-lunatic/commons/variables/lunatic-variables-store.spec.ts +68 -1
- package/src/use-lunatic/commons/variables/lunatic-variables-store.ts +21 -19
- package/src/use-lunatic/hooks/use-loop-variables.ts +1 -1
- package/src/use-lunatic/hooks/use-page-has-response.ts +6 -6
- package/src/use-lunatic/hooks/useOverview.ts +4 -4
- package/src/use-lunatic/hooks/useWarnDepChange.ts +3 -2
- package/src/use-lunatic/lunatic-context.tsx +5 -2
- package/src/use-lunatic/reducer/commons/index.ts +0 -1
- package/src/use-lunatic/type.ts +154 -17
- package/src/use-lunatic/use-lunatic.ts +11 -2
- package/src/utils/array.spec.ts +18 -1
- package/src/utils/array.ts +21 -3
- package/tsconfig.build.tsbuildinfo +1 -1
- package/type.source.js +0 -1
- package/type.source.js.map +1 -1
- package/use-lunatic/commons/compile-controls.d.ts +1 -1
- package/use-lunatic/commons/compile-controls.js +4 -3
- package/use-lunatic/commons/compile-controls.js.map +1 -1
- package/use-lunatic/commons/variables/behaviours/resizing-behaviour.js +22 -6
- package/use-lunatic/commons/variables/behaviours/resizing-behaviour.js.map +1 -1
- package/use-lunatic/commons/variables/lunatic-variables-store.d.ts +19 -1
- package/use-lunatic/commons/variables/lunatic-variables-store.js +13 -13
- package/use-lunatic/commons/variables/lunatic-variables-store.js.map +1 -1
- package/use-lunatic/commons/variables/lunatic-variables-store.spec.js +66 -1
- package/use-lunatic/commons/variables/lunatic-variables-store.spec.js.map +1 -1
- package/use-lunatic/hooks/use-loop-variables.d.ts +1 -1
- package/use-lunatic/hooks/use-loop-variables.js +1 -1
- package/use-lunatic/hooks/use-page-has-response.d.ts +1 -1
- package/use-lunatic/hooks/use-page-has-response.js +6 -6
- package/use-lunatic/hooks/useOverview.d.ts +1 -1
- package/use-lunatic/hooks/useOverview.js +4 -4
- package/use-lunatic/hooks/useWarnDepChange.d.ts +3 -2
- package/use-lunatic/hooks/useWarnDepChange.js +3 -2
- package/use-lunatic/hooks/useWarnDepChange.js.map +1 -1
- package/use-lunatic/lunatic-context.d.ts +5 -2
- package/use-lunatic/lunatic-context.js +5 -2
- package/use-lunatic/lunatic-context.js.map +1 -1
- package/use-lunatic/props/getComponentTypeProps.d.ts +4 -4
- package/use-lunatic/reducer/commons/index.d.ts +0 -1
- package/use-lunatic/reducer/commons/index.js +0 -6
- package/use-lunatic/reducer/commons/index.js.map +1 -1
- package/use-lunatic/type.d.ts +153 -2
- package/use-lunatic/use-lunatic.d.ts +13 -36
- package/use-lunatic/use-lunatic.js +13 -2
- package/use-lunatic/use-lunatic.js.map +1 -1
- package/utils/array.d.ts +4 -0
- package/utils/array.js +16 -2
- package/utils/array.js.map +1 -1
- package/utils/array.spec.js +11 -0
- package/utils/array.spec.js.map +1 -1
- package/esm/use-lunatic/reducer/commons/resize-array-variable.d.ts +0 -5
- package/esm/use-lunatic/reducer/commons/resize-array-variable.js +0 -21
- package/esm/use-lunatic/reducer/commons/resize-array-variable.js.map +0 -1
- package/src/use-lunatic/reducer/commons/resize-array-variable.ts +0 -28
- package/use-lunatic/reducer/commons/resize-array-variable.d.ts +0 -5
- package/use-lunatic/reducer/commons/resize-array-variable.js +0 -23
- package/use-lunatic/reducer/commons/resize-array-variable.js.map +0 -1
package/README.md
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
<
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img alt="Lunatic" src="public/images/lunatic-logo.png" style="max-width: 100%;">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
Lunatic is a front-end library in the form of a React hook and component libraries for generating a questionnaire from the [Lunatic-Model](https://github.com/InseeFr/Lunatic-Model) data format.
|
|
4
6
|
|
|
5
7
|
[](https://github.com/InseeFr/Lunatic/actions/workflows/ci-main.yaml)
|
|
6
8
|
[](https://badge.fury.io/js/%40inseefr%2Flunatic)
|
|
7
|
-
[](https://sonarcloud.io/dashboard?id=InseeFr_Lunatic)
|
|
8
9
|
[](https://sonarcloud.io/dashboard?id=InseeFr_Lunatic)
|
|
10
|
+
[](https://sonarcloud.io/dashboard?id=InseeFr_Lunatic)
|
|
9
11
|
[](https://opensource.org/licenses/MIT)
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
---
|
|
12
14
|
|
|
13
15
|
- [Storybook 3.0](https://inseefr.github.io/Lunatic/storybook-3.0), branch `3.0`
|
|
14
16
|
- [Storybook 2.7](https://inseefr.github.io/Lunatic/storybook-2.7), branch `2.7`
|
package/components/Loop/Loop.js
CHANGED
|
@@ -44,16 +44,36 @@ function Loop({ lines, iterations, value, handleChanges, getComponents, errors,
|
|
|
44
44
|
handleChanges(newResponses);
|
|
45
45
|
}
|
|
46
46
|
}, [nbRows, handleChanges, value]);
|
|
47
|
+
const removeRowWithIndex = (0, react_1.useCallback)((indexToRemove) => {
|
|
48
|
+
if (nbRows <= min) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Case 0: trying to delete
|
|
53
|
+
*/
|
|
54
|
+
if (indexToRemove >= nbRows || indexToRemove < 0) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
const newResponses = Object.entries(value).map(([k, v]) => {
|
|
58
|
+
return {
|
|
59
|
+
name: k,
|
|
60
|
+
value: v?.filter((_, i) => i !== indexToRemove),
|
|
61
|
+
removedIndex: indexToRemove,
|
|
62
|
+
};
|
|
63
|
+
});
|
|
64
|
+
handleChanges(newResponses);
|
|
65
|
+
setNbRows((n) => n - 1);
|
|
66
|
+
}, [nbRows, min, value, handleChanges]);
|
|
47
67
|
if (nbRows <= 0) {
|
|
48
68
|
return null;
|
|
49
69
|
}
|
|
50
|
-
return ((0, jsx_runtime_1.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
70
|
+
return ((0, jsx_runtime_1.jsxs)(exports.CustomLoop, { ...props, errors: (0, ComponentErrors_1.getComponentErrors)(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: nbRows === 1 ? undefined : removeRow, canControlRows: min !== max && Number.isFinite(max), children: [(0, array_1.times)(nbRows, (n) => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(LunaticComponents_1.LunaticComponents, { blocklist: constant_1.blockedInLoopComponents, components: getComponents(n), componentProps: (c) => ({
|
|
71
|
+
...props,
|
|
72
|
+
...c,
|
|
73
|
+
iteration: n,
|
|
74
|
+
id: `${c.id}-${n}`,
|
|
75
|
+
errors,
|
|
76
|
+
}) }, n), (0, jsx_runtime_1.jsx)(Button_1.Button, { onClick: () => removeRowWithIndex(n), disabled: nbRows === 1, children: i18n_1.default.DEFAULT_BUTTON_REMOVE_THAT_ROW })] }))), (0, jsx_runtime_1.jsx)("br", {})] }));
|
|
57
77
|
}
|
|
58
78
|
exports.CustomLoop = (0, slottableComponent_1.slottableComponent)('Loop', (props) => {
|
|
59
79
|
const { declarations, id, label, canControlRows, children, errors, addRow, removeRow, } = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loop.js","sourceRoot":"","sources":["../../src/components/Loop/Loop.tsx"],"names":[],"mappings":";;;;;;AAmBA,
|
|
1
|
+
{"version":3,"file":"Loop.js","sourceRoot":"","sources":["../../src/components/Loop/Loop.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,18 +2,27 @@ import { type PropsWithChildren, type ReactNode } from 'react';
|
|
|
2
2
|
import { type LunaticSlotComponents } from './shared/HOC/slottableComponent';
|
|
3
3
|
import type { LunaticComponentProps } from './type';
|
|
4
4
|
type Props<V = unknown> = {
|
|
5
|
+
/** List of components to display (coming from getComponents). */
|
|
5
6
|
components: LunaticComponentProps[];
|
|
7
|
+
/** Should we memoized children. */
|
|
6
8
|
memo?: boolean;
|
|
9
|
+
/** Key that trigger autofocus when it changes (pageTag). */
|
|
7
10
|
autoFocusKey?: string;
|
|
11
|
+
/** Returns the list of extra props to add to components. */
|
|
8
12
|
componentProps?: (component: LunaticComponentProps) => V;
|
|
13
|
+
/** Forbidden components. */
|
|
9
14
|
blocklist?: string[];
|
|
15
|
+
/** Add additional wrapper around each component. */
|
|
10
16
|
wrapper?: (props: PropsWithChildren<LunaticComponentProps & V & {
|
|
11
17
|
index: number;
|
|
12
18
|
}>) => ReactNode;
|
|
19
|
+
/** Customized deep components. */
|
|
13
20
|
slots?: Partial<LunaticSlotComponents>;
|
|
14
21
|
};
|
|
15
22
|
/**
|
|
16
|
-
* Entry point for orchestrators, this component display the list of fields
|
|
23
|
+
* Entry point for orchestrators, this component display the list of fields.
|
|
24
|
+
*
|
|
25
|
+
* Components offered by Lunatic can be seen at {@link https://github.com/InseeFr/Lunatic/tree/3.0/src/components}
|
|
17
26
|
*/
|
|
18
27
|
export declare function LunaticComponents<V = unknown>({ components, autoFocusKey, componentProps, blocklist, memo, slots, wrapper, }: Props<V>): import("react/jsx-runtime").JSX.Element;
|
|
19
28
|
export declare function hasLabel<T>(component: T): component is {
|
|
@@ -14,7 +14,9 @@ const LunaticComponentWrapper = (0, slottableComponent_1.slottableComponent)('Co
|
|
|
14
14
|
return (0, jsx_runtime_1.jsx)("div", { className: "lunatic lunatic-component", children: children });
|
|
15
15
|
});
|
|
16
16
|
/**
|
|
17
|
-
* Entry point for orchestrators, this component display the list of fields
|
|
17
|
+
* Entry point for orchestrators, this component display the list of fields.
|
|
18
|
+
*
|
|
19
|
+
* Components offered by Lunatic can be seen at {@link https://github.com/InseeFr/Lunatic/tree/3.0/src/components}
|
|
18
20
|
*/
|
|
19
21
|
function LunaticComponents({ components, autoFocusKey, componentProps, blocklist, memo, slots, wrapper = (args) => (0, jsx_runtime_1.jsx)(LunaticComponentWrapper, { ...args }), }) {
|
|
20
22
|
const wrapperRef = (0, react_1.useRef)(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LunaticComponents.js","sourceRoot":"","sources":["../src/components/LunaticComponents.tsx"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"LunaticComponents.js","sourceRoot":"","sources":["../src/components/LunaticComponents.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.RosterForLoop = void 0;
|
|
4
7
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
8
|
const react_1 = require("react");
|
|
6
9
|
const Table_1 = require("../shared/Table");
|
|
7
10
|
const array_1 = require("../../utils/array");
|
|
11
|
+
const i18n_1 = __importDefault(require("../../i18n"));
|
|
8
12
|
const LunaticComponents_1 = require("../LunaticComponents");
|
|
9
13
|
const constant_1 = require("../Loop/constant");
|
|
10
14
|
const ComponentErrors_1 = require("../shared/ComponentErrors/ComponentErrors");
|
|
11
15
|
const Loop_1 = require("../Loop/Loop");
|
|
16
|
+
const Button_1 = require("../shared/Button/Button");
|
|
12
17
|
const DEFAULT_MIN_ROWS = 1;
|
|
13
18
|
const DEFAULT_MAX_ROWS = 12;
|
|
14
19
|
/**
|
|
@@ -29,6 +34,7 @@ const RosterForLoop = (props) => {
|
|
|
29
34
|
setNbRows(nbRows + 1);
|
|
30
35
|
}
|
|
31
36
|
}, [max, nbRows]);
|
|
37
|
+
const cantRemove = nbRows === min;
|
|
32
38
|
const removeRow = (0, react_1.useCallback)(() => {
|
|
33
39
|
if (nbRows <= min) {
|
|
34
40
|
return;
|
|
@@ -44,22 +50,45 @@ const RosterForLoop = (props) => {
|
|
|
44
50
|
});
|
|
45
51
|
handleChanges(newResponses);
|
|
46
52
|
}, [nbRows, min, valueMap, handleChanges]);
|
|
53
|
+
const removeRowWithIndex = (0, react_1.useCallback)((indexToRemove) => {
|
|
54
|
+
if (nbRows <= min) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Case 0: trying to delete
|
|
59
|
+
*/
|
|
60
|
+
if (indexToRemove >= nbRows || indexToRemove < 0) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const newResponses = Object.entries(valueMap).map(([k, v]) => {
|
|
64
|
+
return {
|
|
65
|
+
name: k,
|
|
66
|
+
value: v?.filter((_, i) => i !== indexToRemove),
|
|
67
|
+
removedIndex: indexToRemove,
|
|
68
|
+
};
|
|
69
|
+
});
|
|
70
|
+
handleChanges(newResponses);
|
|
71
|
+
setNbRows((n) => n - 1);
|
|
72
|
+
}, [nbRows, min, valueMap, handleChanges]);
|
|
47
73
|
if (nbRows === 0) {
|
|
48
74
|
return null;
|
|
49
75
|
}
|
|
50
76
|
let cols = 0;
|
|
51
|
-
|
|
77
|
+
const headerWithActions = header
|
|
78
|
+
? [...header, { label: i18n_1.default.ACTION_HEADER }]
|
|
79
|
+
: undefined;
|
|
80
|
+
return ((0, jsx_runtime_1.jsx)(Loop_1.CustomLoop, { ...props, errors: (0, ComponentErrors_1.getComponentErrors)(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: cantRemove ? undefined : removeRow, canControlRows: !!(min && max && min !== max), children: (0, jsx_runtime_1.jsxs)(Table_1.Table, { id: id, children: [headerWithActions && (0, jsx_runtime_1.jsx)(Table_1.TableHeader, { header: headerWithActions }), (0, jsx_runtime_1.jsx)(Table_1.Tbody, { children: (0, array_1.times)(nbRows, (n) => {
|
|
52
81
|
const components = getComponents(n);
|
|
53
82
|
const lineErrors = (0, ComponentErrors_1.getComponentErrors)(props.errors, `${id}-${n}`);
|
|
54
83
|
const hasLineErrors = !!lineErrors?.length;
|
|
55
84
|
cols = components.length;
|
|
56
|
-
return ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [(0, jsx_runtime_1.
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
85
|
+
return ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(Table_1.Tr, { row: n, className: hasLineErrors ? 'lunatic-row-has-error' : undefined, children: [(0, jsx_runtime_1.jsx)(LunaticComponents_1.LunaticComponents, { blocklist: constant_1.blockedInLoopComponents, components: components, memo: true, componentProps: (c) => ({
|
|
86
|
+
...otherProps,
|
|
87
|
+
...c,
|
|
88
|
+
id: `${c.id}-${n}`,
|
|
89
|
+
iteration: n,
|
|
90
|
+
errors,
|
|
91
|
+
}), wrapper: (props) => (0, jsx_runtime_1.jsx)(Table_1.Td, { ...props }) }), (0, jsx_runtime_1.jsx)(Table_1.Td, { id: `delete-action-${n}`, children: (0, jsx_runtime_1.jsx)(Button_1.Button, { onClick: () => removeRowWithIndex(n), disabled: cantRemove, children: i18n_1.default.DEFAULT_BUTTON_REMOVE_THAT_ROW }) })] }, n), hasLineErrors && ((0, jsx_runtime_1.jsx)(Table_1.Tr, { className: "lunatic-errors", children: (0, jsx_runtime_1.jsx)(Table_1.Td, { colSpan: cols, children: (0, jsx_runtime_1.jsx)(ComponentErrors_1.ComponentErrors, { errors: lineErrors }) }) }))] }, n));
|
|
63
92
|
}) })] }) }));
|
|
64
93
|
};
|
|
65
94
|
exports.RosterForLoop = RosterForLoop;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RosterForLoop.js","sourceRoot":"","sources":["../../src/components/RosterForLoop/RosterForLoop.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RosterForLoop.js","sourceRoot":"","sources":["../../src/components/RosterForLoop/RosterForLoop.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const Sequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "
|
|
1
|
+
export declare const Sequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "id" | "label" | "style" | "declarations" | "description"> & import("../type").LunaticExtraProps & {
|
|
2
2
|
componentType?: "Sequence";
|
|
3
3
|
}>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const Subsequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "
|
|
1
|
+
export declare const Subsequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "id" | "label" | "declarations" | "description"> & import("../type").LunaticExtraProps & {
|
|
2
2
|
componentType?: "Subsequence";
|
|
3
3
|
}>;
|
package/components/library.d.ts
CHANGED
|
@@ -16,10 +16,10 @@ import { CheckboxOne } from './CheckboxOne/CheckboxOne';
|
|
|
16
16
|
import { Suggester } from './Suggester/Suggester';
|
|
17
17
|
import { Summary } from './Summary/Summary';
|
|
18
18
|
export declare const library: {
|
|
19
|
-
Sequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "
|
|
19
|
+
Sequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "id" | "label" | "style" | "declarations" | "description"> & import("./type").LunaticExtraProps & {
|
|
20
20
|
componentType?: "Sequence";
|
|
21
21
|
}>;
|
|
22
|
-
Subsequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "
|
|
22
|
+
Subsequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "id" | "label" | "declarations" | "description"> & import("./type").LunaticExtraProps & {
|
|
23
23
|
componentType?: "Subsequence";
|
|
24
24
|
}>;
|
|
25
25
|
RosterForLoop: (props: LunaticComponentProps<"RosterForLoop">) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -38,7 +38,7 @@ import type { LunaticComponentProps } from '../../type';
|
|
|
38
38
|
import type { MarkdownLink } from '../MDLabel/MarkdownLink';
|
|
39
39
|
import type { Accordion } from '../../Accordion/Accordion';
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* Contain the type of every customizable components.
|
|
42
42
|
*/
|
|
43
43
|
export type LunaticSlotComponents = {
|
|
44
44
|
Input: typeof CustomInput;
|
|
@@ -94,8 +94,8 @@ export declare const SlotsProvider: ({ slots, children, }: PropsWithChildren<{
|
|
|
94
94
|
slots?: Partial<LunaticSlotComponents>;
|
|
95
95
|
}>) => import("react/jsx-runtime").JSX.Element;
|
|
96
96
|
/**
|
|
97
|
-
* Create a replaceable version of a component
|
|
97
|
+
* Create a replaceable version of a component.
|
|
98
98
|
*
|
|
99
|
-
* The component can be replaced
|
|
99
|
+
* The component can be replaced through the `slots` props on `LunaticComponents`.
|
|
100
100
|
*/
|
|
101
101
|
export declare function slottableComponent<T>(name: keyof LunaticSlotComponents, OriginalComponent: FunctionComponent<T>): ComponentType<T>;
|
|
@@ -14,9 +14,9 @@ const SlotsProvider = ({ slots, children, }) => {
|
|
|
14
14
|
};
|
|
15
15
|
exports.SlotsProvider = SlotsProvider;
|
|
16
16
|
/**
|
|
17
|
-
* Create a replaceable version of a component
|
|
17
|
+
* Create a replaceable version of a component.
|
|
18
18
|
*
|
|
19
|
-
* The component can be replaced
|
|
19
|
+
* The component can be replaced through the `slots` props on `LunaticComponents`.
|
|
20
20
|
*/
|
|
21
21
|
function slottableComponent(name, OriginalComponent) {
|
|
22
22
|
const DecoratedComponent = (props) => {
|
|
@@ -38,16 +38,36 @@ export function Loop({ lines, iterations, value, handleChanges, getComponents, e
|
|
|
38
38
|
handleChanges(newResponses);
|
|
39
39
|
}
|
|
40
40
|
}, [nbRows, handleChanges, value]);
|
|
41
|
+
const removeRowWithIndex = useCallback((indexToRemove) => {
|
|
42
|
+
if (nbRows <= min) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Case 0: trying to delete
|
|
47
|
+
*/
|
|
48
|
+
if (indexToRemove >= nbRows || indexToRemove < 0) {
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
const newResponses = Object.entries(value).map(([k, v]) => {
|
|
52
|
+
return {
|
|
53
|
+
name: k,
|
|
54
|
+
value: v === null || v === void 0 ? void 0 : v.filter((_, i) => i !== indexToRemove),
|
|
55
|
+
removedIndex: indexToRemove,
|
|
56
|
+
};
|
|
57
|
+
});
|
|
58
|
+
handleChanges(newResponses);
|
|
59
|
+
setNbRows((n) => n - 1);
|
|
60
|
+
}, [nbRows, min, value, handleChanges]);
|
|
41
61
|
if (nbRows <= 0) {
|
|
42
62
|
return null;
|
|
43
63
|
}
|
|
44
|
-
return (
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
64
|
+
return (_jsxs(CustomLoop, { ...props, errors: getComponentErrors(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: nbRows === 1 ? undefined : removeRow, canControlRows: min !== max && Number.isFinite(max), children: [times(nbRows, (n) => (_jsxs(_Fragment, { children: [_jsx(LunaticComponents, { blocklist: blockedInLoopComponents, components: getComponents(n), componentProps: (c) => ({
|
|
65
|
+
...props,
|
|
66
|
+
...c,
|
|
67
|
+
iteration: n,
|
|
68
|
+
id: `${c.id}-${n}`,
|
|
69
|
+
errors,
|
|
70
|
+
}) }, n), _jsx(Button, { onClick: () => removeRowWithIndex(n), disabled: nbRows === 1, children: D.DEFAULT_BUTTON_REMOVE_THAT_ROW })] }))), _jsx("br", {})] }));
|
|
51
71
|
}
|
|
52
72
|
export const CustomLoop = slottableComponent('Loop', (props) => {
|
|
53
73
|
const { declarations, id, label, canControlRows, children, errors, addRow, removeRow, } = props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Loop.js","sourceRoot":"","sources":["../../../src/components/Loop/Loop.tsx"],"names":[],"mappings":";AAAA,OAAO,EAA0B,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtE,OAAO,CAAC,MAAM,YAAY,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EACN,eAAe,EACf,kBAAkB,GAClB,MAAM,2CAA2C,CAAC;AAGnD;;GAEG;AACH,MAAM,UAAU,IAAI,CAAC,EACpB,KAAK,EACL,UAAU,EACV,KAAK,EACL,aAAa,EACb,aAAa,EACb,MAAM,EACN,GAAG,KAAK,EACuB;;IAC/B,MAAM,GAAG,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,mCAAI,CAAC,CAAC;IAC5B,MAAM,GAAG,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,mCAAI,QAAQ,CAAC;IACnC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE;QACzC,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC/B,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;YAClB,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACvB,CAAC;IACF,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAClB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QAClC,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YAChB,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;YAC7B,SAAS,CAAC,SAAS,CAAC,CAAC;YACrB,8BAA8B;YAC9B,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;gBACzD,OAAO;oBACN,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,CAAC,aAAD,CAAC,uBAAD,CAAC,CAAE,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC;iBACzC,CAAC;YACH,CAAC,CAAC,CAAC;YACH,aAAa,CAAC,YAAY,CAAC,CAAC;QAC7B,CAAC;IACF,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACjB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,OAAO,CACN,
|
|
1
|
+
{"version":3,"file":"Loop.js","sourceRoot":"","sources":["../../../src/components/Loop/Loop.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,18 +2,27 @@ import { type PropsWithChildren, type ReactNode } from 'react';
|
|
|
2
2
|
import { type LunaticSlotComponents } from './shared/HOC/slottableComponent';
|
|
3
3
|
import type { LunaticComponentProps } from './type';
|
|
4
4
|
type Props<V = unknown> = {
|
|
5
|
+
/** List of components to display (coming from getComponents). */
|
|
5
6
|
components: LunaticComponentProps[];
|
|
7
|
+
/** Should we memoized children. */
|
|
6
8
|
memo?: boolean;
|
|
9
|
+
/** Key that trigger autofocus when it changes (pageTag). */
|
|
7
10
|
autoFocusKey?: string;
|
|
11
|
+
/** Returns the list of extra props to add to components. */
|
|
8
12
|
componentProps?: (component: LunaticComponentProps) => V;
|
|
13
|
+
/** Forbidden components. */
|
|
9
14
|
blocklist?: string[];
|
|
15
|
+
/** Add additional wrapper around each component. */
|
|
10
16
|
wrapper?: (props: PropsWithChildren<LunaticComponentProps & V & {
|
|
11
17
|
index: number;
|
|
12
18
|
}>) => ReactNode;
|
|
19
|
+
/** Customized deep components. */
|
|
13
20
|
slots?: Partial<LunaticSlotComponents>;
|
|
14
21
|
};
|
|
15
22
|
/**
|
|
16
|
-
* Entry point for orchestrators, this component display the list of fields
|
|
23
|
+
* Entry point for orchestrators, this component display the list of fields.
|
|
24
|
+
*
|
|
25
|
+
* Components offered by Lunatic can be seen at {@link https://github.com/InseeFr/Lunatic/tree/3.0/src/components}
|
|
17
26
|
*/
|
|
18
27
|
export declare function LunaticComponents<V = unknown>({ components, autoFocusKey, componentProps, blocklist, memo, slots, wrapper, }: Props<V>): import("react/jsx-runtime").JSX.Element;
|
|
19
28
|
export declare function hasLabel<T>(component: T): component is {
|
|
@@ -10,7 +10,9 @@ const LunaticComponentWrapper = slottableComponent('ComponentWrapper', ({ childr
|
|
|
10
10
|
return _jsx("div", { className: "lunatic lunatic-component", children: children });
|
|
11
11
|
});
|
|
12
12
|
/**
|
|
13
|
-
* Entry point for orchestrators, this component display the list of fields
|
|
13
|
+
* Entry point for orchestrators, this component display the list of fields.
|
|
14
|
+
*
|
|
15
|
+
* Components offered by Lunatic can be seen at {@link https://github.com/InseeFr/Lunatic/tree/3.0/src/components}
|
|
14
16
|
*/
|
|
15
17
|
export function LunaticComponents({ components, autoFocusKey, componentProps, blocklist, memo, slots, wrapper = (args) => _jsx(LunaticComponentWrapper, { ...args }), }) {
|
|
16
18
|
const wrapperRef = useRef(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LunaticComponents.js","sourceRoot":"","sources":["../../src/components/LunaticComponents.tsx"],"names":[],"mappings":";AAAA,OAAO,EACN,QAAQ,EACR,cAAc,EACd,IAAI,EAGJ,MAAM,GACN,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EACN,aAAa,EAEb,kBAAkB,GAClB,MAAM,iCAAiC,CAAC;AAsBzC,MAAM,uBAAuB,GAAG,kBAAkB,CACjD,kBAAkB,EAClB,CAAC,EAAE,QAAQ,EAA4C,EAAE,EAAE;IAC1D,OAAO,cAAK,SAAS,EAAC,2BAA2B,YAAE,QAAQ,GAAO,CAAC;AACpE,CAAC,CACD,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"LunaticComponents.js","sourceRoot":"","sources":["../../src/components/LunaticComponents.tsx"],"names":[],"mappings":"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"}
|
|
@@ -2,10 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { Fragment, useCallback, useState } from 'react';
|
|
3
3
|
import { Table, Tbody, Td, Tr, TableHeader } from '../shared/Table';
|
|
4
4
|
import { times } from '../../utils/array';
|
|
5
|
+
import D from '../../i18n';
|
|
5
6
|
import { LunaticComponents } from '../LunaticComponents';
|
|
6
7
|
import { blockedInLoopComponents } from '../Loop/constant';
|
|
7
8
|
import { ComponentErrors, getComponentErrors, } from '../shared/ComponentErrors/ComponentErrors';
|
|
8
9
|
import { CustomLoop } from '../Loop/Loop';
|
|
10
|
+
import { Button } from '../shared/Button/Button';
|
|
9
11
|
const DEFAULT_MIN_ROWS = 1;
|
|
10
12
|
const DEFAULT_MAX_ROWS = 12;
|
|
11
13
|
/**
|
|
@@ -27,6 +29,7 @@ export const RosterForLoop = (props) => {
|
|
|
27
29
|
setNbRows(nbRows + 1);
|
|
28
30
|
}
|
|
29
31
|
}, [max, nbRows]);
|
|
32
|
+
const cantRemove = nbRows === min;
|
|
30
33
|
const removeRow = useCallback(() => {
|
|
31
34
|
if (nbRows <= min) {
|
|
32
35
|
return;
|
|
@@ -42,22 +45,45 @@ export const RosterForLoop = (props) => {
|
|
|
42
45
|
});
|
|
43
46
|
handleChanges(newResponses);
|
|
44
47
|
}, [nbRows, min, valueMap, handleChanges]);
|
|
48
|
+
const removeRowWithIndex = useCallback((indexToRemove) => {
|
|
49
|
+
if (nbRows <= min) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Case 0: trying to delete
|
|
54
|
+
*/
|
|
55
|
+
if (indexToRemove >= nbRows || indexToRemove < 0) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const newResponses = Object.entries(valueMap).map(([k, v]) => {
|
|
59
|
+
return {
|
|
60
|
+
name: k,
|
|
61
|
+
value: v === null || v === void 0 ? void 0 : v.filter((_, i) => i !== indexToRemove),
|
|
62
|
+
removedIndex: indexToRemove,
|
|
63
|
+
};
|
|
64
|
+
});
|
|
65
|
+
handleChanges(newResponses);
|
|
66
|
+
setNbRows((n) => n - 1);
|
|
67
|
+
}, [nbRows, min, valueMap, handleChanges]);
|
|
45
68
|
if (nbRows === 0) {
|
|
46
69
|
return null;
|
|
47
70
|
}
|
|
48
71
|
let cols = 0;
|
|
49
|
-
|
|
72
|
+
const headerWithActions = header
|
|
73
|
+
? [...header, { label: D.ACTION_HEADER }]
|
|
74
|
+
: undefined;
|
|
75
|
+
return (_jsx(CustomLoop, { ...props, errors: getComponentErrors(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: cantRemove ? undefined : removeRow, canControlRows: !!(min && max && min !== max), children: _jsxs(Table, { id: id, children: [headerWithActions && _jsx(TableHeader, { header: headerWithActions }), _jsx(Tbody, { children: times(nbRows, (n) => {
|
|
50
76
|
const components = getComponents(n);
|
|
51
77
|
const lineErrors = getComponentErrors(props.errors, `${id}-${n}`);
|
|
52
78
|
const hasLineErrors = !!(lineErrors === null || lineErrors === void 0 ? void 0 : lineErrors.length);
|
|
53
79
|
cols = components.length;
|
|
54
|
-
return (_jsxs(Fragment, { children: [
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
80
|
+
return (_jsxs(Fragment, { children: [_jsxs(Tr, { row: n, className: hasLineErrors ? 'lunatic-row-has-error' : undefined, children: [_jsx(LunaticComponents, { blocklist: blockedInLoopComponents, components: components, memo: true, componentProps: (c) => ({
|
|
81
|
+
...otherProps,
|
|
82
|
+
...c,
|
|
83
|
+
id: `${c.id}-${n}`,
|
|
84
|
+
iteration: n,
|
|
85
|
+
errors,
|
|
86
|
+
}), wrapper: (props) => _jsx(Td, { ...props }) }), _jsx(Td, { id: `delete-action-${n}`, children: _jsx(Button, { onClick: () => removeRowWithIndex(n), disabled: cantRemove, children: D.DEFAULT_BUTTON_REMOVE_THAT_ROW }) })] }, n), hasLineErrors && (_jsx(Tr, { className: "lunatic-errors", children: _jsx(Td, { colSpan: cols, children: _jsx(ComponentErrors, { errors: lineErrors }) }) }))] }, n));
|
|
61
87
|
}) })] }) }));
|
|
62
88
|
};
|
|
63
89
|
//# sourceMappingURL=RosterForLoop.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RosterForLoop.js","sourceRoot":"","sources":["../../../src/components/RosterForLoop/RosterForLoop.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAExD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EACN,eAAe,EACf,kBAAkB,GAClB,MAAM,2CAA2C,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"RosterForLoop.js","sourceRoot":"","sources":["../../../src/components/RosterForLoop/RosterForLoop.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const Sequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "
|
|
1
|
+
export declare const Sequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "id" | "label" | "style" | "declarations" | "description"> & import("../type").LunaticExtraProps & {
|
|
2
2
|
componentType?: "Sequence";
|
|
3
3
|
}>;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare const Subsequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "
|
|
1
|
+
export declare const Subsequence: import("react").ComponentType<Pick<import("../type").LunaticBaseProps<string>, "id" | "label" | "declarations" | "description"> & import("../type").LunaticExtraProps & {
|
|
2
2
|
componentType?: "Subsequence";
|
|
3
3
|
}>;
|
|
@@ -16,10 +16,10 @@ import { CheckboxOne } from './CheckboxOne/CheckboxOne';
|
|
|
16
16
|
import { Suggester } from './Suggester/Suggester';
|
|
17
17
|
import { Summary } from './Summary/Summary';
|
|
18
18
|
export declare const library: {
|
|
19
|
-
Sequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "
|
|
19
|
+
Sequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "id" | "label" | "style" | "declarations" | "description"> & import("./type").LunaticExtraProps & {
|
|
20
20
|
componentType?: "Sequence";
|
|
21
21
|
}>;
|
|
22
|
-
Subsequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "
|
|
22
|
+
Subsequence: ComponentType<Pick<import("./type").LunaticBaseProps<string>, "id" | "label" | "declarations" | "description"> & import("./type").LunaticExtraProps & {
|
|
23
23
|
componentType?: "Subsequence";
|
|
24
24
|
}>;
|
|
25
25
|
RosterForLoop: (props: LunaticComponentProps<"RosterForLoop">) => import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -38,7 +38,7 @@ import type { LunaticComponentProps } from '../../type';
|
|
|
38
38
|
import type { MarkdownLink } from '../MDLabel/MarkdownLink';
|
|
39
39
|
import type { Accordion } from '../../Accordion/Accordion';
|
|
40
40
|
/**
|
|
41
|
-
*
|
|
41
|
+
* Contain the type of every customizable components.
|
|
42
42
|
*/
|
|
43
43
|
export type LunaticSlotComponents = {
|
|
44
44
|
Input: typeof CustomInput;
|
|
@@ -94,8 +94,8 @@ export declare const SlotsProvider: ({ slots, children, }: PropsWithChildren<{
|
|
|
94
94
|
slots?: Partial<LunaticSlotComponents>;
|
|
95
95
|
}>) => import("react/jsx-runtime").JSX.Element;
|
|
96
96
|
/**
|
|
97
|
-
* Create a replaceable version of a component
|
|
97
|
+
* Create a replaceable version of a component.
|
|
98
98
|
*
|
|
99
|
-
* The component can be replaced
|
|
99
|
+
* The component can be replaced through the `slots` props on `LunaticComponents`.
|
|
100
100
|
*/
|
|
101
101
|
export declare function slottableComponent<T>(name: keyof LunaticSlotComponents, OriginalComponent: FunctionComponent<T>): ComponentType<T>;
|
|
@@ -9,9 +9,9 @@ export const SlotsProvider = ({ slots, children, }) => {
|
|
|
9
9
|
return (_jsx(SlotsContext.Provider, { value: slots !== null && slots !== void 0 ? slots : empty, children: children }));
|
|
10
10
|
};
|
|
11
11
|
/**
|
|
12
|
-
* Create a replaceable version of a component
|
|
12
|
+
* Create a replaceable version of a component.
|
|
13
13
|
*
|
|
14
|
-
* The component can be replaced
|
|
14
|
+
* The component can be replaced through the `slots` props on `LunaticComponents`.
|
|
15
15
|
*/
|
|
16
16
|
export function slottableComponent(name, OriginalComponent) {
|
|
17
17
|
const DecoratedComponent = (props) => {
|