@inseefr/lunatic 3.0.0-rc.23 → 3.0.0-rc.25

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 (28) hide show
  1. package/lib/components/RosterForLoop/RosterForLoop.js +7 -7
  2. package/lib/components/RosterForLoop/RosterForLoop.js.map +1 -1
  3. package/lib/components/shared/Checkbox/CheckboxOption.js +10 -8
  4. package/lib/components/shared/Checkbox/CheckboxOption.js.map +1 -1
  5. package/lib/components/shared/Missing/Missing.js +13 -11
  6. package/lib/components/shared/Missing/Missing.js.map +1 -1
  7. package/lib/components/shared/Radio/RadioOption.js +11 -9
  8. package/lib/components/shared/Radio/RadioOption.js.map +1 -1
  9. package/lib/hooks/use-track-changes.d.ts +1 -1
  10. package/lib/hooks/useKeyboardKey.d.ts +4 -0
  11. package/lib/hooks/useKeyboardKey.js +24 -0
  12. package/lib/hooks/useKeyboardKey.js.map +1 -0
  13. package/lib/stories/behaviour/cleaning/source-loop.json +3 -3
  14. package/lib/stories/behaviour/resizing/source-resizing-cleaning.json +2 -2
  15. package/lib/stories/overview/source.json +1 -1
  16. package/lib/stories/questionnaires/logement/source.json +564 -564
  17. package/lib/stories/questionnaires2023/simpsons/source.json +109 -109
  18. package/lib/use-lunatic/commons/variables/get-questionnaire-data.js +1 -1
  19. package/lib/use-lunatic/commons/variables/get-questionnaire-data.js.map +1 -1
  20. package/lib/use-lunatic/type-source.d.ts +3 -2
  21. package/lib/use-lunatic/type.d.ts +1 -1
  22. package/lib/use-lunatic/use-lunatic.d.ts +3 -3
  23. package/lib/use-lunatic/use-lunatic.test.js +1 -1
  24. package/lib/use-lunatic/use-lunatic.test.js.map +1 -1
  25. package/lib/utils/variables.d.ts +1 -1
  26. package/lib/utils/variables.spec.js +1 -1
  27. package/lib/utils/variables.spec.js.map +1 -1
  28. package/package.json +2 -4
@@ -14,8 +14,8 @@ const DEFAULT_MAX_ROWS = 12;
14
14
  export const RosterForLoop = (props) => {
15
15
  const { value: valueMap, lines, errors, handleChange, declarations, header, iterations, id, getComponents, label, ...otherProps // These props will be passed down to the child components
16
16
  } = props;
17
- const min = lines?.min || DEFAULT_MIN_ROWS;
18
- const max = lines?.max || DEFAULT_MAX_ROWS;
17
+ const min = lines?.min ?? DEFAULT_MIN_ROWS;
18
+ const max = lines?.max ?? DEFAULT_MAX_ROWS;
19
19
  const [nbRows, setNbRows] = useState(Math.max(min, iterations));
20
20
  const addRow = useCallback(() => {
21
21
  if (nbRows < max) {
@@ -23,21 +23,21 @@ export const RosterForLoop = (props) => {
23
23
  }
24
24
  }, [max, nbRows]);
25
25
  const removeRow = useCallback(() => {
26
- if (nbRows <= 1) {
26
+ if (nbRows <= min) {
27
27
  return;
28
28
  }
29
29
  const newNbRows = nbRows - 1;
30
30
  setNbRows(newNbRows);
31
31
  Object.entries(valueMap).forEach(([k, v]) => {
32
- const newValue = v.filter((_, i) => i < newNbRows);
32
+ const newValue = v?.filter((_, i) => i < newNbRows);
33
33
  handleChange({ name: k }, newValue);
34
34
  });
35
- }, [nbRows, handleChange, valueMap]);
35
+ }, [nbRows, min, valueMap, handleChange]);
36
36
  if (nbRows === 0) {
37
37
  return null;
38
38
  }
39
39
  let cols = 0;
40
- return (_jsx(CustomLoop, { ...props, errors: getComponentErrors(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: nbRows === 1 ? undefined : removeRow, canControlRows: !!(min && max && min !== max), children: _jsxs(Table, { id: id, children: [header && _jsx(TableHeader, { header: header, id: id }), _jsx(Tbody, { id: id, children: times(nbRows, (n) => {
40
+ return (_jsx(CustomLoop, { ...props, errors: getComponentErrors(errors, props.id), addRow: nbRows === max ? undefined : addRow, removeRow: nbRows === min ? undefined : removeRow, canControlRows: !!(min && max && min !== max), children: _jsxs(Table, { id: id, children: [header && _jsx(TableHeader, { header: header, id: id }), _jsx(Tbody, { id: id, children: times(nbRows, (n) => {
41
41
  const components = getComponents(n);
42
42
  const lineErrors = getComponentErrors(props.errors, `${id}-${n}`);
43
43
  const hasLineErrors = !!lineErrors?.length;
@@ -46,7 +46,7 @@ export const RosterForLoop = (props) => {
46
46
  ...otherProps,
47
47
  ...c,
48
48
  id: `${c.id}-${n}`,
49
- }), wrapper: ({ id, children }) => (_jsx(Td, { id: `${id}-${n}`, children: children })) }) }, n), hasLineErrors && (_jsx("tr", { className: "lunatic-errors", children: _jsx("td", { colSpan: cols, children: _jsx(ComponentErrors, { errors: lineErrors }) }) }))] }, n));
49
+ }), wrapper: ({ id, children }) => (_jsx(Td, { id: `${id}-${n}`, children: children })) }) }, n), hasLineErrors && (_jsx(Tr, { className: "lunatic-errors", children: _jsx(Td, { colSpan: cols, children: _jsx(ComponentErrors, { errors: lineErrors }) }) }))] }, n));
50
50
  }) })] }) }));
51
51
  };
52
52
  //# sourceMappingURL=RosterForLoop.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RosterForLoop.js","sourceRoot":"","sources":["../../../src/components/RosterForLoop/RosterForLoop.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RosterForLoop.js","sourceRoot":"","sources":["../../../src/components/RosterForLoop/RosterForLoop.tsx"],"names":[],"mappings":"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"}
@@ -2,9 +2,9 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { useCallback } from 'react';
3
3
  import classnames from 'classnames';
4
4
  import { CheckboxCheckedIcon, CheckboxUncheckedIcon } from '../Icons';
5
- import KeyboardEventHandler from 'react-keyboard-event-handler';
6
5
  import { slottableComponent } from '../HOC/slottableComponent';
7
6
  import { Label } from '../Label/Label';
7
+ import { useKeyboardKey } from '../../../hooks/useKeyboardKey';
8
8
  function LunaticCheckboxOption({ disabled, checked, id, onClick, label, description, codeModality, shortcut, invalid, }) {
9
9
  const onClickOption = useCallback(function () {
10
10
  onClick(!checked);
@@ -17,13 +17,15 @@ function LunaticCheckboxOption({ disabled, checked, id, onClick, label, descript
17
17
  }, [onClickOption]);
18
18
  const Icon = checked ? CheckboxCheckedIcon : CheckboxUncheckedIcon;
19
19
  const labelId = `label-${id}`;
20
- return (_jsxs(_Fragment, { children: [_jsx("div", { className: classnames('checkbox-modality', 'checkbox-modality-block', {
21
- checked,
22
- disabled,
23
- }), children: _jsxs("span", { id: id, role: "checkbox", "aria-invalid": invalid, className: `lunatic-input-checkbox`, "aria-checked": checked, tabIndex: 0, onClick: onClickOption, onKeyDown: handleKeyDown, "aria-labelledby": labelId, children: [_jsx(Icon, {}), _jsxs(Label, { id: labelId, htmlFor: id, description: description, children: [codeModality && (_jsx("span", { className: "code-modality", children: codeModality.toUpperCase() })), label] })] }) }), shortcut && codeModality && (_jsx(KeyboardEventHandler, { handleKeys: [codeModality], onKeyEvent: (key, e) => {
24
- e.preventDefault();
25
- onClickOption();
26
- }, handleFocusableElements: true }))] }));
20
+ const hasKeyboardShortcut = Boolean(shortcut && codeModality);
21
+ useKeyboardKey(codeModality ? [codeModality] : [], (e) => {
22
+ e.preventDefault();
23
+ onClickOption();
24
+ }, hasKeyboardShortcut);
25
+ return (_jsx(_Fragment, { children: _jsx("div", { className: classnames('checkbox-modality', 'checkbox-modality-block', {
26
+ checked,
27
+ disabled,
28
+ }), children: _jsxs("span", { id: id, role: "checkbox", "aria-invalid": invalid, className: `lunatic-input-checkbox`, "aria-checked": checked, tabIndex: 0, onClick: onClickOption, onKeyDown: handleKeyDown, "aria-labelledby": labelId, children: [_jsx(Icon, {}), _jsxs(Label, { id: labelId, htmlFor: id, description: description, children: [codeModality && (_jsx("span", { className: "code-modality", children: codeModality.toUpperCase() })), label] })] }) }) }));
27
29
  }
28
30
  export const CheckboxOption = slottableComponent('CheckboxOption', LunaticCheckboxOption);
29
31
  //# sourceMappingURL=CheckboxOption.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxOption.js","sourceRoot":"","sources":["../../../../src/components/shared/Checkbox/CheckboxOption.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,WAAW,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,oBAAoB,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAcvC,SAAS,qBAAqB,CAAC,EAC9B,QAAQ,EACR,OAAO,EACP,EAAE,EACF,OAAO,EACP,KAAK,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,OAAO,GACc;IACrB,MAAM,aAAa,GAAG,WAAW,CAChC;QACC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC,EACD,CAAC,OAAO,EAAE,OAAO,CAAC,CAClB,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAChC,UAAU,CAAmB;QAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACnB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACtB,aAAa,EAAE,CAAC;QACjB,CAAC;IACF,CAAC,EACD,CAAC,aAAa,CAAC,CACf,CAAC;IAEF,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IACnE,MAAM,OAAO,GAAG,SAAS,EAAE,EAAE,CAAC;IAE9B,OAAO,CACN,8BACC,cACC,SAAS,EAAE,UAAU,CAAC,mBAAmB,EAAE,yBAAyB,EAAE;oBACrE,OAAO;oBACP,QAAQ;iBACR,CAAC,YAEF,gBACC,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,UAAU,kBACD,OAAO,EACrB,SAAS,EAAE,wBAAwB,kBACrB,OAAO,EACrB,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,aAAa,qBACP,OAAO,aAExB,KAAC,IAAI,KAAG,EACR,MAAC,KAAK,IAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,aACvD,YAAY,IAAI,CAChB,eAAM,SAAS,EAAC,eAAe,YAC7B,YAAY,CAAC,WAAW,EAAE,GACrB,CACP,EACA,KAAK,IACC,IACF,GACF,EACL,QAAQ,IAAI,YAAY,IAAI,CAC5B,KAAC,oBAAoB,IACpB,UAAU,EAAE,CAAC,YAAY,CAAC,EAC1B,UAAU,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;oBACtB,CAAC,CAAC,cAAc,EAAE,CAAC;oBACnB,aAAa,EAAE,CAAC;gBACjB,CAAC,EACD,uBAAuB,SACtB,CACF,IACC,CACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAC/C,gBAAgB,EAChB,qBAAqB,CACrB,CAAC"}
1
+ {"version":3,"file":"CheckboxOption.js","sourceRoot":"","sources":["../../../../src/components/shared/Checkbox/CheckboxOption.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAkB,WAAW,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAc/D,SAAS,qBAAqB,CAAC,EAC9B,QAAQ,EACR,OAAO,EACP,EAAE,EACF,OAAO,EACP,KAAK,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,OAAO,GACc;IACrB,MAAM,aAAa,GAAG,WAAW,CAChC;QACC,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC,EACD,CAAC,OAAO,EAAE,OAAO,CAAC,CAClB,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAChC,UAAU,CAAmB;QAC5B,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACnB,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACtB,aAAa,EAAE,CAAC;QACjB,CAAC;IACF,CAAC,EACD,CAAC,aAAa,CAAC,CACf,CAAC;IAEF,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB,CAAC;IACnE,MAAM,OAAO,GAAG,SAAS,EAAE,EAAE,CAAC;IAE9B,MAAM,mBAAmB,GAAG,OAAO,CAAC,QAAQ,IAAI,YAAY,CAAC,CAAC;IAC9D,cAAc,CACb,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,EAClC,CAAC,CAAC,EAAE,EAAE;QACL,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,aAAa,EAAE,CAAC;IACjB,CAAC,EACD,mBAAmB,CACnB,CAAC;IAEF,OAAO,CACN,4BACC,cACC,SAAS,EAAE,UAAU,CAAC,mBAAmB,EAAE,yBAAyB,EAAE;gBACrE,OAAO;gBACP,QAAQ;aACR,CAAC,YAEF,gBACC,EAAE,EAAE,EAAE,EACN,IAAI,EAAC,UAAU,kBACD,OAAO,EACrB,SAAS,EAAE,wBAAwB,kBACrB,OAAO,EACrB,QAAQ,EAAE,CAAC,EACX,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,aAAa,qBACP,OAAO,aAExB,KAAC,IAAI,KAAG,EACR,MAAC,KAAK,IAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,aACvD,YAAY,IAAI,CAChB,eAAM,SAAS,EAAC,eAAe,YAC7B,YAAY,CAAC,WAAW,EAAE,GACrB,CACP,EACA,KAAK,IACC,IACF,GACF,GACJ,CACH,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,kBAAkB,CAC/C,gBAAgB,EAChB,qBAAqB,CACrB,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useCallback } from 'react';
3
3
  import { DK, RF } from '../../../utils/constants';
4
- import KeyboardEventHandler from 'react-keyboard-event-handler';
5
4
  import { useLunaticMissing } from '../../../use-lunatic/lunatic-context';
6
5
  import { Button } from '../Button/Button';
6
+ import { useKeyboardKey } from '../../../hooks/useKeyboardKey';
7
7
  export const Missing = (props) => {
8
8
  const propsContext = useLunaticMissing();
9
9
  if (!propsContext.missing || !props.missingResponse) {
@@ -32,16 +32,18 @@ export const MissingPure = (props) => {
32
32
  onClick(RF);
33
33
  handleMissingStrategy();
34
34
  };
35
- return (_jsxs("div", { className: "missing-buttons", children: [_jsx("span", { className: `missing-button${value === DK ? '-active' : ''} missing-button-dk${value === DK ? '-active' : ''}`, children: _jsx(Button, { disabled: disabled, label: dontKnowButton, onClick: onClickDK }) }), _jsx("span", { className: `missing-button${value === RF ? '-active' : ''} missing-button-rf${value === RF ? '-active' : ''}`, children: _jsx(Button, { disabled: disabled, label: refusedButton, onClick: onClickRF }) }), shortcut &&
36
- missingShortcut &&
37
- missingShortcut.dontKnow &&
38
- missingShortcut.refused && (_jsx(KeyboardEventHandler, { handleKeys: Object.values(missingShortcut), handleEventType: "keydown", onKeyEvent: (key, e) => {
39
- e.preventDefault();
40
- if (key === missingShortcut.dontKnow)
41
- onClickDK();
42
- if (key === missingShortcut.refused)
43
- onClickRF();
44
- }, handleFocusableElements: true }))] }));
35
+ const hasKeyboardShortcut = Boolean(shortcut &&
36
+ missingShortcut &&
37
+ missingShortcut.dontKnow &&
38
+ missingShortcut.refused);
39
+ useKeyboardKey(Object.values(missingShortcut), (e) => {
40
+ e.preventDefault();
41
+ if (e.key === missingShortcut.dontKnow)
42
+ onClickDK();
43
+ if (e.key === missingShortcut.refused)
44
+ onClickRF();
45
+ }, hasKeyboardShortcut);
46
+ return (_jsxs("div", { className: "missing-buttons", children: [_jsx("span", { className: `missing-button${value === DK ? '-active' : ''} missing-button-dk${value === DK ? '-active' : ''}`, children: _jsx(Button, { disabled: disabled, label: dontKnowButton, onClick: onClickDK }) }), _jsx("span", { className: `missing-button${value === RF ? '-active' : ''} missing-button-rf${value === RF ? '-active' : ''}`, children: _jsx(Button, { disabled: disabled, label: refusedButton, onClick: onClickRF }) })] }));
45
47
  };
46
48
  export default Missing;
47
49
  //# sourceMappingURL=Missing.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Missing.js","sourceRoot":"","sources":["../../../../src/components/shared/Missing/Missing.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Missing.js","sourceRoot":"","sources":["../../../../src/components/shared/Missing/Missing.tsx"],"names":[],"mappings":"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"}
@@ -2,11 +2,11 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  /* eslint-disable jsx-a11y/role-supports-aria-props */
3
3
  import classnames from 'classnames';
4
4
  import { useCallback, useEffect, useRef } from 'react';
5
- import KeyboardEventHandler from 'react-keyboard-event-handler';
6
5
  import { voidFunction } from '../../../utils/function';
7
6
  import { Label } from '../Label/Label';
8
7
  import { slottableComponent } from '../HOC/slottableComponent';
9
8
  import { CheckboxCheckedIcon, CheckboxUncheckedIcon, RadioCheckedIcon, RadioUncheckedIcon, } from '../Icons';
9
+ import { useKeyboardKey } from '../../../hooks/useKeyboardKey';
10
10
  function LunaticRadioOption({ checked, onClick = voidFunction, value = null, id, disabled, onKeyDown = voidFunction, index = -1, labelledBy, checkboxStyle, label, description, shortcut, codeModality, readOnly, invalid, }) {
11
11
  const spanEl = useRef(null);
12
12
  const Icon = getIcon(checked, checkboxStyle);
@@ -29,14 +29,16 @@ function LunaticRadioOption({ checked, onClick = voidFunction, value = null, id,
29
29
  current.focus();
30
30
  }
31
31
  }, [checked, spanEl, value]);
32
- return (_jsxs(_Fragment, { children: [_jsx("div", { className: "lunatic-radio-group-option", children: _jsx("div", { className: classnames('radio-modality', 'radio-modality-block', {
33
- checked,
34
- disabled,
35
- readOnly,
36
- }), "aria-invalid": invalid, children: _jsxs("span", { id: id, role: "radio", className: "lunatic-input-radio", "aria-checked": checked, tabIndex: tabIndex, onClick: onClickOption, onKeyDown: handleKeyDown, "aria-labelledby": labelledBy, ref: spanEl, children: [_jsx(Icon, {}), _jsxs(Label, { id: labelledBy, htmlFor: id, description: description, children: [codeModality && (_jsx("span", { className: "code-modality", children: codeModality.toUpperCase() })), label] })] }) }) }), shortcut && codeModality && (_jsx(KeyboardEventHandler, { handleKeys: [codeModality], onKeyEvent: (key, e) => {
37
- e.preventDefault();
38
- onClickOption();
39
- }, handleFocusableElements: true }))] }));
32
+ const hasKeyboardShortcut = Boolean(shortcut && codeModality);
33
+ useKeyboardKey(codeModality ? [codeModality] : [], (e) => {
34
+ e.preventDefault();
35
+ onClickOption();
36
+ }, hasKeyboardShortcut);
37
+ return (_jsx(_Fragment, { children: _jsx("div", { className: "lunatic-radio-group-option", children: _jsx("div", { className: classnames('radio-modality', 'radio-modality-block', {
38
+ checked,
39
+ disabled,
40
+ readOnly,
41
+ }), "aria-invalid": invalid, children: _jsxs("span", { id: id, role: "radio", className: "lunatic-input-radio", "aria-checked": checked, tabIndex: tabIndex, onClick: onClickOption, onKeyDown: handleKeyDown, "aria-labelledby": labelledBy, ref: spanEl, children: [_jsx(Icon, {}), _jsxs(Label, { id: labelledBy, htmlFor: id, description: description, children: [codeModality && (_jsx("span", { className: "code-modality", children: codeModality.toUpperCase() })), label] })] }) }) }) }));
40
42
  }
41
43
  function getIcon(checked, checkboxStyle) {
42
44
  if (checked) {
@@ -1 +1 @@
1
- {"version":3,"file":"RadioOption.js","sourceRoot":"","sources":["../../../../src/components/shared/Radio/RadioOption.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RadioOption.js","sourceRoot":"","sources":["../../../../src/components/shared/Radio/RadioOption.tsx"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export declare function useTrackChanges(enabled: boolean, store: LunaticVariable
9
9
  COLLECTED: unknown;
10
10
  EDITED: unknown;
11
11
  FORCED: unknown;
12
- INPUTED: unknown;
12
+ INPUTTED: unknown;
13
13
  PREVIOUS: unknown;
14
14
  }>>;
15
15
  }>;
@@ -0,0 +1,4 @@
1
+ /**
2
+ * Triggers a callback when a key is pressed
3
+ */
4
+ export declare function useKeyboardKey(key: string[], cb: (e: KeyboardEvent) => void, enabled?: boolean): void;
@@ -0,0 +1,24 @@
1
+ import { useEffect } from 'react';
2
+ import { useRefSync } from './useRefSync';
3
+ /**
4
+ * Triggers a callback when a key is pressed
5
+ */
6
+ export function useKeyboardKey(key, cb, enabled = true) {
7
+ const cbRef = useRefSync(cb);
8
+ const keyRef = useRefSync(key);
9
+ useEffect(() => {
10
+ if (!enabled) {
11
+ return;
12
+ }
13
+ const listener = (e) => {
14
+ if (keyRef.current.includes(e.key)) {
15
+ cbRef.current(e);
16
+ }
17
+ };
18
+ window.addEventListener('keydown', listener);
19
+ return () => {
20
+ window.removeEventListener('keydown', listener);
21
+ };
22
+ }, [enabled]);
23
+ }
24
+ //# sourceMappingURL=useKeyboardKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useKeyboardKey.js","sourceRoot":"","sources":["../../src/hooks/useKeyboardKey.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C;;GAEG;AACH,MAAM,UAAU,cAAc,CAC7B,GAAa,EACb,EAA8B,EAC9B,UAAmB,IAAI;IAEvB,MAAM,KAAK,GAAG,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/B,SAAS,CAAC,GAAG,EAAE;QACd,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,OAAO;QACR,CAAC;QACD,MAAM,QAAQ,GAAG,CAAC,CAAgB,EAAE,EAAE;YACrC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACF,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7C,OAAO,GAAG,EAAE;YACX,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACjD,CAAC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;AACf,CAAC"}
@@ -16,7 +16,7 @@
16
16
  "values": {
17
17
  "COLLECTED": ["John", "Jane"],
18
18
  "EDITED": null,
19
- "INPUTED": null,
19
+ "INPUTTED": null,
20
20
  "FORCED": null,
21
21
  "PREVIOUS": null
22
22
  },
@@ -27,7 +27,7 @@
27
27
  "values": {
28
28
  "COLLECTED": [null],
29
29
  "EDITED": null,
30
- "INPUTED": null,
30
+ "INPUTTED": null,
31
31
  "FORCED": null,
32
32
  "PREVIOUS": null
33
33
  },
@@ -38,7 +38,7 @@
38
38
  "values": {
39
39
  "COLLECTED": [null],
40
40
  "EDITED": null,
41
- "INPUTED": null,
41
+ "INPUTTED": null,
42
42
  "FORCED": null,
43
43
  "PREVIOUS": null
44
44
  },
@@ -142,7 +142,7 @@
142
142
  "COLLECTED": [null],
143
143
  "FORCED": [null],
144
144
  "EDITED": [null],
145
- "INPUTED": [null]
145
+ "INPUTTED": [null]
146
146
  }
147
147
  },
148
148
  {
@@ -153,7 +153,7 @@
153
153
  "COLLECTED": null,
154
154
  "FORCED": null,
155
155
  "EDITED": null,
156
- "INPUTED": null
156
+ "INPUTTED": null
157
157
  }
158
158
  }
159
159
  ],
@@ -21,7 +21,7 @@
21
21
  "COLLECTED": null,
22
22
  "FORCED": null,
23
23
  "EDITED": null,
24
- "INPUTED": null
24
+ "INPUTTED": null
25
25
  }
26
26
  }
27
27
  ]