@bigbinary/neetoui 8.2.22 → 8.2.24
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/dist/ActionDropdown.js +2 -2
- package/dist/Alert.js +3 -4
- package/dist/Alert.js.map +1 -1
- package/dist/Checkbox.js +3 -3
- package/dist/ColorPicker.js +3 -3
- package/dist/ColorPicker.js.map +1 -1
- package/dist/DatePicker.js +15 -16
- package/dist/DatePicker.js.map +1 -1
- package/dist/Dropdown.js +2 -2
- package/dist/Input.js +3 -3
- package/dist/Modal.js +3 -4
- package/dist/Modal.js.map +1 -1
- package/dist/MultiEmailInput.js +15 -15
- package/dist/Pagination.js +3 -3
- package/dist/Pane.js +3 -4
- package/dist/Pane.js.map +1 -1
- package/dist/Radio.js +3 -3
- package/dist/Select.js +4 -4
- package/dist/Select.js.map +1 -1
- package/dist/Sidebar.js +3 -2
- package/dist/Sidebar.js.map +1 -1
- package/dist/Slider.js +3 -3
- package/dist/Switch.js +5 -3
- package/dist/Switch.js.map +1 -1
- package/dist/Table.js +4 -7
- package/dist/Table.js.map +1 -1
- package/dist/{Textarea-afac4a3e.js → Textarea-BcglKMaG.js} +3 -3
- package/dist/{Textarea-afac4a3e.js.map → Textarea-BcglKMaG.js.map} +1 -1
- package/dist/Textarea.js +4 -4
- package/dist/TimePicker.js +15 -16
- package/dist/TimePicker.js.map +1 -1
- package/dist/Toastr.js +2 -2
- package/dist/TranslationProvider.js +3 -1
- package/dist/TranslationProvider.js.map +1 -1
- package/dist/Tree.js +2 -2
- package/dist/TreeSelect.js +2 -2
- package/dist/cjs/Accordion.js +18 -27
- package/dist/cjs/Accordion.js.map +1 -1
- package/dist/cjs/ActionDropdown.js +8 -16
- package/dist/cjs/ActionDropdown.js.map +1 -1
- package/dist/cjs/Alert.js +9 -15
- package/dist/cjs/Alert.js.map +1 -1
- package/dist/cjs/Avatar.js +10 -19
- package/dist/cjs/Avatar.js.map +1 -1
- package/dist/cjs/Button.js +13 -21
- package/dist/cjs/Button.js.map +1 -1
- package/dist/cjs/Callout.js +5 -13
- package/dist/cjs/Callout.js.map +1 -1
- package/dist/cjs/Checkbox.js +10 -17
- package/dist/cjs/Checkbox.js.map +1 -1
- package/dist/cjs/ColorPicker.js +30 -40
- package/dist/cjs/ColorPicker.js.map +1 -1
- package/dist/cjs/DatePicker.js +15 -16
- package/dist/cjs/DatePicker.js.map +1 -1
- package/dist/cjs/Dropdown.js +30 -40
- package/dist/cjs/Dropdown.js.map +1 -1
- package/dist/cjs/Input.js +20 -29
- package/dist/cjs/Input.js.map +1 -1
- package/dist/cjs/Kbd.js +4 -11
- package/dist/cjs/Kbd.js.map +1 -1
- package/dist/cjs/Label.js +14 -22
- package/dist/cjs/Label.js.map +1 -1
- package/dist/cjs/Modal.js +22 -32
- package/dist/cjs/Modal.js.map +1 -1
- package/dist/cjs/MultiEmailInput.js +51 -62
- package/dist/cjs/MultiEmailInput.js.map +1 -1
- package/dist/cjs/NoData.js +14 -21
- package/dist/cjs/NoData.js.map +1 -1
- package/dist/cjs/Pagination.js +19 -25
- package/dist/cjs/Pagination.js.map +1 -1
- package/dist/cjs/Pane.js +19 -29
- package/dist/cjs/Pane.js.map +1 -1
- package/dist/cjs/Popover.js +5 -12
- package/dist/cjs/Popover.js.map +1 -1
- package/dist/cjs/ProgressBar.js +3 -8
- package/dist/cjs/ProgressBar.js.map +1 -1
- package/dist/cjs/Radio.js +17 -26
- package/dist/cjs/Radio.js.map +1 -1
- package/dist/cjs/Select.js +49 -62
- package/dist/cjs/Select.js.map +1 -1
- package/dist/cjs/Sidebar.js +69 -77
- package/dist/cjs/Sidebar.js.map +1 -1
- package/dist/cjs/Slider.js +12 -21
- package/dist/cjs/Slider.js.map +1 -1
- package/dist/cjs/Spinner.js +2 -7
- package/dist/cjs/Spinner.js.map +1 -1
- package/dist/cjs/Stepper.js +6 -11
- package/dist/cjs/Stepper.js.map +1 -1
- package/dist/cjs/Switch.js +18 -23
- package/dist/cjs/Switch.js.map +1 -1
- package/dist/cjs/Tab.js +10 -18
- package/dist/cjs/Tab.js.map +1 -1
- package/dist/cjs/Table.js +54 -70
- package/dist/cjs/Table.js.map +1 -1
- package/dist/cjs/Tag.js +9 -16
- package/dist/cjs/Tag.js.map +1 -1
- package/dist/cjs/{Textarea-c6496fa2.js → Textarea-XjB9bG3I.js} +19 -28
- package/dist/cjs/{Textarea-c6496fa2.js.map → Textarea-XjB9bG3I.js.map} +1 -1
- package/dist/cjs/Textarea.js +4 -4
- package/dist/cjs/TimePicker.js +15 -16
- package/dist/cjs/TimePicker.js.map +1 -1
- package/dist/cjs/Toastr.js +24 -34
- package/dist/cjs/Toastr.js.map +1 -1
- package/dist/cjs/Tooltip.js +4 -12
- package/dist/cjs/Tooltip.js.map +1 -1
- package/dist/cjs/TranslationProvider.js +6 -9
- package/dist/cjs/TranslationProvider.js.map +1 -1
- package/dist/cjs/Tree.js +8 -17
- package/dist/cjs/Tree.js.map +1 -1
- package/dist/cjs/TreeSelect.js +14 -24
- package/dist/cjs/TreeSelect.js.map +1 -1
- package/dist/cjs/Typography.js +4 -12
- package/dist/cjs/Typography.js.map +1 -1
- package/dist/cjs/constants.js +7 -19
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/{en-c69be2fb.js → en-1dfvTYgC.js} +1 -1
- package/dist/cjs/en-1dfvTYgC.js.map +1 -0
- package/dist/cjs/formik/ActionBlock.js +7 -13
- package/dist/cjs/formik/ActionBlock.js.map +1 -1
- package/dist/cjs/formik/BlockNavigation.js +12 -20
- package/dist/cjs/formik/BlockNavigation.js.map +1 -1
- package/dist/cjs/formik/Button.js +2 -8
- package/dist/cjs/formik/Button.js.map +1 -1
- package/dist/cjs/formik/Checkbox.js +7 -14
- package/dist/cjs/formik/Checkbox.js.map +1 -1
- package/dist/cjs/formik/Form.js +13 -24
- package/dist/cjs/formik/Form.js.map +1 -1
- package/dist/cjs/formik/Input.js +7 -14
- package/dist/cjs/formik/Input.js.map +1 -1
- package/dist/cjs/formik/MultiEmailInput.js +6 -13
- package/dist/cjs/formik/MultiEmailInput.js.map +1 -1
- package/dist/cjs/formik/Radio.js +7 -15
- package/dist/cjs/formik/Radio.js.map +1 -1
- package/dist/cjs/formik/Select.js +8 -16
- package/dist/cjs/formik/Select.js.map +1 -1
- package/dist/cjs/formik/Slider.js +7 -15
- package/dist/cjs/formik/Slider.js.map +1 -1
- package/dist/cjs/formik/Switch.js +7 -14
- package/dist/cjs/formik/Switch.js.map +1 -1
- package/dist/cjs/formik/Textarea.js +8 -15
- package/dist/cjs/formik/Textarea.js.map +1 -1
- package/dist/cjs/formik/TreeSelect.js +5 -12
- package/dist/cjs/formik/TreeSelect.js.map +1 -1
- package/dist/cjs/formik/index.js +6 -9
- package/dist/cjs/formik/index.js.map +1 -1
- package/dist/cjs/{index-3c44e0c7.js → index-CvMjRZDt.js} +19 -33
- package/dist/cjs/{index-3c44e0c7.js.map → index-CvMjRZDt.js.map} +1 -1
- package/dist/cjs/{index-b7601801.js → index-DoQ9g6qh.js} +53 -70
- package/dist/cjs/{index-b7601801.js.map → index-DoQ9g6qh.js.map} +1 -1
- package/dist/cjs/index.js +22 -25
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/layouts.js +2 -4
- package/dist/cjs/layouts.js.map +1 -1
- package/dist/cjs/managers.js +0 -2
- package/dist/cjs/managers.js.map +1 -1
- package/dist/cjs/overlayManager.js +2 -9
- package/dist/cjs/overlayManager.js.map +1 -1
- package/dist/cjs/{react-select-creatable.esm-23eddf9f.js → react-select-creatable.esm-Bdv9YAMt.js} +231 -140
- package/dist/cjs/{react-select-creatable.esm-23eddf9f.js.map → react-select-creatable.esm-Bdv9YAMt.js.map} +1 -1
- package/dist/cjs/tinycolor-C4a31PPv.js +1214 -0
- package/dist/cjs/tinycolor-C4a31PPv.js.map +1 -0
- package/dist/cjs/{useId-4e3deb5c.js → useId-DXHUzdxd.js} +1 -1
- package/dist/cjs/{useId-4e3deb5c.js.map → useId-DXHUzdxd.js.map} +1 -1
- package/dist/cjs/{useOverlayManager-b8134604.js → useOverlayManager-CXLC179x.js} +19 -741
- package/dist/cjs/useOverlayManager-CXLC179x.js.map +1 -0
- package/dist/cjs/{useQueryParams-a8ee2f76.js → useQueryParams-l5fJJYCR.js} +2 -6
- package/dist/cjs/useQueryParams-l5fJJYCR.js.map +1 -0
- package/dist/cjs/{useRestoreScrollPosition-26e8d203.js → useRestoreScrollPosition-Dmq0tlvp.js} +18 -22
- package/dist/cjs/{useRestoreScrollPosition-26e8d203.js.map → useRestoreScrollPosition-Dmq0tlvp.js.map} +1 -1
- package/dist/{en-2d3f9fc1.js → en-CJac0MnO.js} +1 -1
- package/dist/en-CJac0MnO.js.map +1 -0
- package/dist/formik/ActionBlock.js +2 -2
- package/dist/formik/BlockNavigation.js +3 -4
- package/dist/formik/BlockNavigation.js.map +1 -1
- package/dist/formik/Checkbox.js +3 -3
- package/dist/formik/Input.js +3 -3
- package/dist/formik/MultiEmailInput.js +3 -3
- package/dist/formik/Radio.js +3 -3
- package/dist/formik/Select.js +4 -4
- package/dist/formik/Slider.js +3 -3
- package/dist/formik/Switch.js +3 -3
- package/dist/formik/Textarea.js +4 -4
- package/dist/formik/TreeSelect.js +2 -2
- package/dist/formik/index.js +6 -7
- package/dist/formik/index.js.map +1 -1
- package/dist/{index-6e82a862.js → index-BojMT3ps.js} +3 -3
- package/dist/{index-6e82a862.js.map → index-BojMT3ps.js.map} +1 -1
- package/dist/{index-40372119.js → index-H3jaZAFp.js} +6 -12
- package/dist/{index-40372119.js.map → index-H3jaZAFp.js.map} +1 -1
- package/dist/index.js +22 -23
- package/dist/index.js.map +1 -1
- package/dist/layouts.js +2 -2
- package/dist/{react-select-creatable.esm-ad71b0c0.js → react-select-creatable.esm-Dx_vEnyD.js} +137 -31
- package/dist/{react-select-creatable.esm-ad71b0c0.js.map → react-select-creatable.esm-Dx_vEnyD.js.map} +1 -1
- package/dist/tinycolor-DX-kZ4bq.js +1212 -0
- package/dist/tinycolor-DX-kZ4bq.js.map +1 -0
- package/dist/{useId-c1d20bba.js → useId-Jj9hXm-g.js} +1 -1
- package/dist/{useId-c1d20bba.js.map → useId-Jj9hXm-g.js.map} +1 -1
- package/dist/{useOverlayManager-65f6d80a.js → useOverlayManager-Dyv5Y8Ug.js} +3 -713
- package/dist/useOverlayManager-Dyv5Y8Ug.js.map +1 -0
- package/dist/{useQueryParams-dcb34865.js → useQueryParams-b60CHFUx.js} +1 -1
- package/dist/{useQueryParams-dcb34865.js.map → useQueryParams-b60CHFUx.js.map} +1 -1
- package/dist/{useRestoreScrollPosition-631cf3e5.js → useRestoreScrollPosition-DnEaioaR.js} +2 -2
- package/dist/{useRestoreScrollPosition-631cf3e5.js.map → useRestoreScrollPosition-DnEaioaR.js.map} +1 -1
- package/package.json +10 -10
- package/dist/cjs/en-c69be2fb.js.map +0 -1
- package/dist/cjs/tinycolor-b1e9a7b2.js +0 -1202
- package/dist/cjs/tinycolor-b1e9a7b2.js.map +0 -1
- package/dist/cjs/useOverlayManager-b8134604.js.map +0 -1
- package/dist/cjs/useQueryParams-a8ee2f76.js.map +0 -1
- package/dist/en-2d3f9fc1.js.map +0 -1
- package/dist/tinycolor-282c618c.js +0 -1200
- package/dist/tinycolor-282c618c.js.map +0 -1
- package/dist/useOverlayManager-65f6d80a.js.map +0 -1
|
@@ -6,7 +6,7 @@ var classnames = require('classnames');
|
|
|
6
6
|
var formik = require('formik');
|
|
7
7
|
var reactI18next = require('react-i18next');
|
|
8
8
|
var Button = require('../Button.js');
|
|
9
|
-
var index = require('../index-
|
|
9
|
+
var index = require('../index-CvMjRZDt.js');
|
|
10
10
|
var formik_Button = require('./Button.js');
|
|
11
11
|
require('@babel/runtime/helpers/defineProperty');
|
|
12
12
|
require('@babel/runtime/helpers/objectWithoutProperties');
|
|
@@ -28,13 +28,7 @@ require('dayjs/plugin/weekOfYear');
|
|
|
28
28
|
require('@bigbinary/neeto-cist');
|
|
29
29
|
require('qs');
|
|
30
30
|
require('ramda');
|
|
31
|
-
require('../en-
|
|
32
|
-
|
|
33
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
34
|
-
|
|
35
|
-
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
36
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
37
|
-
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
31
|
+
require('../en-1dfvTYgC.js');
|
|
38
32
|
|
|
39
33
|
var POSITIONS = {
|
|
40
34
|
left: "left",
|
|
@@ -56,7 +50,7 @@ var ActionBlock = function ActionBlock(_ref) {
|
|
|
56
50
|
dirty = _useFormikContext.dirty;
|
|
57
51
|
var isSubmitting = isFormSubmitting !== null && isFormSubmitting !== void 0 ? isFormSubmitting : isFormikSubmitting;
|
|
58
52
|
var isButtonPositionRight = position === POSITIONS.right;
|
|
59
|
-
var cancelButton = /*#__PURE__*/
|
|
53
|
+
var cancelButton = /*#__PURE__*/React.createElement(Button, _extends({
|
|
60
54
|
"data-cy": "cancel-button",
|
|
61
55
|
"data-test-id": "cancel-button",
|
|
62
56
|
disabled: isSubmitting,
|
|
@@ -67,7 +61,7 @@ var ActionBlock = function ActionBlock(_ref) {
|
|
|
67
61
|
return e.preventDefault();
|
|
68
62
|
}
|
|
69
63
|
}, cancelButtonProps));
|
|
70
|
-
var submitButton = /*#__PURE__*/
|
|
64
|
+
var submitButton = /*#__PURE__*/React.createElement(formik_Button, _extends({
|
|
71
65
|
"data-cy": "save-changes-button",
|
|
72
66
|
"data-test-id": "save-changes-button",
|
|
73
67
|
disabled: isSubmitting || !dirty,
|
|
@@ -76,11 +70,11 @@ var ActionBlock = function ActionBlock(_ref) {
|
|
|
76
70
|
style: "primary",
|
|
77
71
|
type: "submit"
|
|
78
72
|
}, submitButtonProps));
|
|
79
|
-
return /*#__PURE__*/
|
|
80
|
-
className:
|
|
73
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
74
|
+
className: classnames(["neeto-ui-action-block__wrapper", {
|
|
81
75
|
"justify-end": isButtonPositionRight
|
|
82
76
|
}, className])
|
|
83
|
-
}, isButtonPositionRight ? /*#__PURE__*/
|
|
77
|
+
}, isButtonPositionRight ? /*#__PURE__*/React.createElement(React.Fragment, null, cancelButton, submitButton) : /*#__PURE__*/React.createElement(React.Fragment, null, submitButton, cancelButton));
|
|
84
78
|
};
|
|
85
79
|
|
|
86
80
|
module.exports = ActionBlock;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionBlock.js","sources":["../../../src/formik/ActionBlock.jsx"],"sourcesContent":["/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport React from \"react\";\n\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Button from \"components/Button\";\nimport { getLocale } from \"utils\";\n\nimport SubmitButton from \"./Button\";\n\nconst POSITIONS = { left: \"left\", right: \"right\" };\n\nconst ActionBlock = ({\n className,\n submitButtonProps,\n cancelButtonProps,\n isSubmitting: isFormSubmitting,\n position = POSITIONS.left,\n}) => {\n const { t, i18n } = useTranslation();\n\n const {\n handleReset,\n isSubmitting: isFormikSubmitting,\n dirty,\n } = useFormikContext();\n\n const isSubmitting = isFormSubmitting ?? isFormikSubmitting;\n const isButtonPositionRight = position === POSITIONS.right;\n\n const cancelButton = (\n <Button\n data-cy=\"cancel-button\"\n data-test-id=\"cancel-button\"\n disabled={isSubmitting}\n label={getLocale(i18n, t, \"neetoui.actionBlock.cancel\")}\n style=\"text\"\n onClick={handleReset}\n onMouseDown={e => e.preventDefault()}\n {...cancelButtonProps}\n />\n );\n\n const submitButton = (\n <SubmitButton\n data-cy=\"save-changes-button\"\n data-test-id=\"save-changes-button\"\n disabled={isSubmitting || !dirty}\n label={getLocale(i18n, t, \"neetoui.actionBlock.saveChanges\")}\n loading={isSubmitting}\n style=\"primary\"\n type=\"submit\"\n {...submitButtonProps}\n />\n );\n\n return (\n <div\n className={classnames([\n \"neeto-ui-action-block__wrapper\",\n { \"justify-end\": isButtonPositionRight },\n className,\n ])}\n >\n {isButtonPositionRight ? (\n <>\n {cancelButton}\n {submitButton}\n </>\n ) : (\n <>\n {submitButton}\n {cancelButton}\n </>\n )}\n </div>\n );\n};\n\nActionBlock.propTypes = {\n /**\n * To specify additional classnames for action block.\n */\n className: PropTypes.string,\n /**\n * To provide props for submit button.\n */\n submitButtonProps: PropTypes.object,\n /**\n * To provide props for cancel button.\n */\n cancelButtonProps: PropTypes.object,\n /**\n * Optional prop to specify the state of form submission, typically used to provide React Query mutation loading state. If not provided, Formik's `isSubmitting` prop is used.\n */\n isSubmitting: PropTypes.bool,\n /**\n * Determines the alignment of buttons in ActionBlock components. Set to `right` when using ActionBlock to right-align both buttons. Defaults to `left`, left-aligning both buttons.\n */\n position: PropTypes.oneOf(Object.values(POSITIONS)),\n};\n\nexport default ActionBlock;\n"],"names":["POSITIONS","left","right","ActionBlock","_ref","className","submitButtonProps","cancelButtonProps","isFormSubmitting","isSubmitting","_ref$position","position","_useTranslation","useTranslation","t","i18n","_useFormikContext","useFormikContext","handleReset","isFormikSubmitting","dirty","isButtonPositionRight","cancelButton","React","createElement","Button","_extends","disabled","label","getLocale","style","onClick","onMouseDown","e","preventDefault","submitButton","SubmitButton","loading","type","classnames","Fragment"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ActionBlock.js","sources":["../../../src/formik/ActionBlock.jsx"],"sourcesContent":["/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport React from \"react\";\n\nimport classnames from \"classnames\";\nimport { useFormikContext } from \"formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Button from \"components/Button\";\nimport { getLocale } from \"utils\";\n\nimport SubmitButton from \"./Button\";\n\nconst POSITIONS = { left: \"left\", right: \"right\" };\n\nconst ActionBlock = ({\n className,\n submitButtonProps,\n cancelButtonProps,\n isSubmitting: isFormSubmitting,\n position = POSITIONS.left,\n}) => {\n const { t, i18n } = useTranslation();\n\n const {\n handleReset,\n isSubmitting: isFormikSubmitting,\n dirty,\n } = useFormikContext();\n\n const isSubmitting = isFormSubmitting ?? isFormikSubmitting;\n const isButtonPositionRight = position === POSITIONS.right;\n\n const cancelButton = (\n <Button\n data-cy=\"cancel-button\"\n data-test-id=\"cancel-button\"\n disabled={isSubmitting}\n label={getLocale(i18n, t, \"neetoui.actionBlock.cancel\")}\n style=\"text\"\n onClick={handleReset}\n onMouseDown={e => e.preventDefault()}\n {...cancelButtonProps}\n />\n );\n\n const submitButton = (\n <SubmitButton\n data-cy=\"save-changes-button\"\n data-test-id=\"save-changes-button\"\n disabled={isSubmitting || !dirty}\n label={getLocale(i18n, t, \"neetoui.actionBlock.saveChanges\")}\n loading={isSubmitting}\n style=\"primary\"\n type=\"submit\"\n {...submitButtonProps}\n />\n );\n\n return (\n <div\n className={classnames([\n \"neeto-ui-action-block__wrapper\",\n { \"justify-end\": isButtonPositionRight },\n className,\n ])}\n >\n {isButtonPositionRight ? (\n <>\n {cancelButton}\n {submitButton}\n </>\n ) : (\n <>\n {submitButton}\n {cancelButton}\n </>\n )}\n </div>\n );\n};\n\nActionBlock.propTypes = {\n /**\n * To specify additional classnames for action block.\n */\n className: PropTypes.string,\n /**\n * To provide props for submit button.\n */\n submitButtonProps: PropTypes.object,\n /**\n * To provide props for cancel button.\n */\n cancelButtonProps: PropTypes.object,\n /**\n * Optional prop to specify the state of form submission, typically used to provide React Query mutation loading state. If not provided, Formik's `isSubmitting` prop is used.\n */\n isSubmitting: PropTypes.bool,\n /**\n * Determines the alignment of buttons in ActionBlock components. Set to `right` when using ActionBlock to right-align both buttons. Defaults to `left`, left-aligning both buttons.\n */\n position: PropTypes.oneOf(Object.values(POSITIONS)),\n};\n\nexport default ActionBlock;\n"],"names":["POSITIONS","left","right","ActionBlock","_ref","className","submitButtonProps","cancelButtonProps","isFormSubmitting","isSubmitting","_ref$position","position","_useTranslation","useTranslation","t","i18n","_useFormikContext","useFormikContext","handleReset","isFormikSubmitting","dirty","isButtonPositionRight","cancelButton","React","createElement","Button","_extends","disabled","label","getLocale","style","onClick","onMouseDown","e","preventDefault","submitButton","SubmitButton","loading","type","classnames","Fragment"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,IAAMA,SAAS,GAAG;AAAEC,EAAAA,IAAI,EAAE,MAAM;AAAEC,EAAAA,KAAK,EAAE,OAAA;AAAQ,CAAC,CAAA;AAElD,IAAMC,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAMX;AAAA,EAAA,IALJC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,iBAAiB,GAAAF,IAAA,CAAjBE,iBAAiB;IACjBC,iBAAiB,GAAAH,IAAA,CAAjBG,iBAAiB;IACHC,gBAAgB,GAAAJ,IAAA,CAA9BK,YAAY;IAAAC,aAAA,GAAAN,IAAA,CACZO,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,aAAA,KAAA,KAAA,CAAA,GAAGV,SAAS,CAACC,IAAI,GAAAS,aAAA,CAAA;EAEzB,IAAAE,eAAA,GAAoBC,2BAAc,EAAE;IAA5BC,CAAC,GAAAF,eAAA,CAADE,CAAC;IAAEC,IAAI,GAAAH,eAAA,CAAJG,IAAI,CAAA;EAEf,IAAAC,iBAAA,GAIIC,uBAAgB,EAAE;IAHpBC,WAAW,GAAAF,iBAAA,CAAXE,WAAW;IACGC,kBAAkB,GAAAH,iBAAA,CAAhCP,YAAY;IACZW,KAAK,GAAAJ,iBAAA,CAALI,KAAK,CAAA;EAGP,IAAMX,YAAY,GAAGD,gBAAgB,KAAA,IAAA,IAAhBA,gBAAgB,KAAhBA,KAAAA,CAAAA,GAAAA,gBAAgB,GAAIW,kBAAkB,CAAA;AAC3D,EAAA,IAAME,qBAAqB,GAAGV,QAAQ,KAAKX,SAAS,CAACE,KAAK,CAAA;EAE1D,IAAMoB,YAAY,gBAChBC,KAAA,CAAAC,aAAA,CAACC,MAAM,EAAAC,QAAA,CAAA;AACL,IAAA,SAAA,EAAQ,eAAe;AACvB,IAAA,cAAA,EAAa,eAAe;AAC5BC,IAAAA,QAAQ,EAAElB,YAAa;IACvBmB,KAAK,EAAEC,eAAS,CAACd,IAAI,EAAED,CAAC,EAAE,4BAA4B,CAAE;AACxDgB,IAAAA,KAAK,EAAC,MAAM;AACZC,IAAAA,OAAO,EAAEb,WAAY;IACrBc,WAAW,EAAE,SAAAA,WAAAA,CAAAC,CAAC,EAAA;MAAA,OAAIA,CAAC,CAACC,cAAc,EAAE,CAAA;AAAA,KAAA;AAAC,GAAA,EACjC3B,iBAAiB,CAExB,CAAA,CAAA;EAED,IAAM4B,YAAY,gBAChBZ,KAAA,CAAAC,aAAA,CAACY,aAAY,EAAAV,QAAA,CAAA;AACX,IAAA,SAAA,EAAQ,qBAAqB;AAC7B,IAAA,cAAA,EAAa,qBAAqB;AAClCC,IAAAA,QAAQ,EAAElB,YAAY,IAAI,CAACW,KAAM;IACjCQ,KAAK,EAAEC,eAAS,CAACd,IAAI,EAAED,CAAC,EAAE,iCAAiC,CAAE;AAC7DuB,IAAAA,OAAO,EAAE5B,YAAa;AACtBqB,IAAAA,KAAK,EAAC,SAAS;AACfQ,IAAAA,IAAI,EAAC,QAAA;AAAQ,GAAA,EACThC,iBAAiB,CAExB,CAAA,CAAA;EAED,oBACEiB,KAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;AACEnB,IAAAA,SAAS,EAAEkC,UAAU,CAAC,CACpB,gCAAgC,EAChC;AAAE,MAAA,aAAa,EAAElB,qBAAAA;KAAuB,EACxChB,SAAS,CACV,CAAA;GAEAgB,EAAAA,qBAAqB,gBACpBE,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAiB,QAAA,EACGlB,IAAAA,EAAAA,YAAY,EACZa,YAAY,CACZ,gBAEHZ,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAiB,QAAA,EAAA,IAAA,EACGL,YAAY,EACZb,YAAY,CAEhB,CACG,CAAA;AAEV;;;;"}
|
|
@@ -8,7 +8,7 @@ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
|
8
8
|
var reactRouterDom = require('react-router-dom');
|
|
9
9
|
require('@bigbinary/neeto-hotkeys');
|
|
10
10
|
require('../overlayManager.js');
|
|
11
|
-
var index = require('../index-
|
|
11
|
+
var index = require('../index-CvMjRZDt.js');
|
|
12
12
|
require('@babel/runtime/helpers/defineProperty');
|
|
13
13
|
require('qs');
|
|
14
14
|
var reactI18next = require('react-i18next');
|
|
@@ -26,32 +26,24 @@ require('dayjs/plugin/weekday');
|
|
|
26
26
|
require('dayjs/plugin/weekOfYear');
|
|
27
27
|
require('@bigbinary/neeto-cist');
|
|
28
28
|
require('ramda');
|
|
29
|
-
require('../en-
|
|
29
|
+
require('../en-1dfvTYgC.js');
|
|
30
30
|
require('classnames');
|
|
31
31
|
require('../Spinner.js');
|
|
32
32
|
require('../Tooltip.js');
|
|
33
33
|
require('@tippyjs/react');
|
|
34
34
|
require('tippy.js');
|
|
35
35
|
require('@bigbinary/neeto-icons');
|
|
36
|
-
require('../useOverlayManager-
|
|
36
|
+
require('../useOverlayManager-CXLC179x.js');
|
|
37
37
|
require('@babel/runtime/helpers/esm/extends');
|
|
38
38
|
require('@babel/runtime/helpers/esm/objectWithoutPropertiesLoose');
|
|
39
39
|
require('@babel/runtime/helpers/esm/inheritsLoose');
|
|
40
40
|
require('react-dom');
|
|
41
|
-
require('@babel/runtime/helpers/esm/assertThisInitialized');
|
|
42
|
-
|
|
43
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
44
|
-
|
|
45
|
-
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
46
|
-
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
47
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
48
|
-
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
49
41
|
|
|
50
42
|
var useNavPrompt = function useNavPrompt(_ref) {
|
|
51
43
|
var _ref$shouldBlock = _ref.shouldBlock,
|
|
52
44
|
shouldBlock = _ref$shouldBlock === void 0 ? true : _ref$shouldBlock;
|
|
53
45
|
var _useState = React.useState(false),
|
|
54
|
-
_useState2 =
|
|
46
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
55
47
|
isBlocked = _useState2[0],
|
|
56
48
|
setIsBlocked = _useState2[1];
|
|
57
49
|
var history = reactRouterDom.useHistory();
|
|
@@ -124,7 +116,7 @@ var Alert = function Alert(_ref) {
|
|
|
124
116
|
var submitButtonRef = React.useRef(null);
|
|
125
117
|
var cancelButtonLabel = index.getLocale(i18n, t, "neetoui.blockNavigation.cancelButtonLabel");
|
|
126
118
|
var submitButtonLabel = index.getLocale(i18n, t, "neetoui.blockNavigation.submitButtonLabel");
|
|
127
|
-
return /*#__PURE__*/
|
|
119
|
+
return /*#__PURE__*/React.createElement(Modal, {
|
|
128
120
|
isOpen: isOpen,
|
|
129
121
|
onClose: onClose,
|
|
130
122
|
closeButton: true,
|
|
@@ -133,21 +125,21 @@ var Alert = function Alert(_ref) {
|
|
|
133
125
|
"data-cy": "alert-box",
|
|
134
126
|
initialFocusRef: submitButtonRef,
|
|
135
127
|
size: "medium"
|
|
136
|
-
}, /*#__PURE__*/
|
|
128
|
+
}, /*#__PURE__*/React.createElement(Modal.Header, null, /*#__PURE__*/React.createElement(Typography, {
|
|
137
129
|
"data-cy": "alert-title",
|
|
138
130
|
style: "h2"
|
|
139
|
-
}, index.getLocale(i18n, t, "neetoui.blockNavigation.alertTitle"))), /*#__PURE__*/
|
|
131
|
+
}, index.getLocale(i18n, t, "neetoui.blockNavigation.alertTitle"))), /*#__PURE__*/React.createElement(Modal.Body, null, /*#__PURE__*/React.createElement(Typography, {
|
|
140
132
|
"data-cy": "alert-message",
|
|
141
133
|
lineHeight: "normal",
|
|
142
134
|
style: "body2"
|
|
143
|
-
}, index.getLocale(i18n, t, "neetoui.blockNavigation.alertMessage"))), /*#__PURE__*/
|
|
135
|
+
}, index.getLocale(i18n, t, "neetoui.blockNavigation.alertMessage"))), /*#__PURE__*/React.createElement(Modal.Footer, {
|
|
144
136
|
className: "neeto-ui-gap-2 neeto-ui-flex neeto-ui-justify-end neeto-ui-items-center"
|
|
145
|
-
}, /*#__PURE__*/
|
|
137
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
146
138
|
"data-cy": "alert-cancel-button",
|
|
147
139
|
label: cancelButtonLabel,
|
|
148
140
|
style: "danger",
|
|
149
141
|
onClick: onDiscardChanges
|
|
150
|
-
}), /*#__PURE__*/
|
|
142
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
151
143
|
"data-cy": "alert-submit-button",
|
|
152
144
|
label: submitButtonLabel,
|
|
153
145
|
ref: submitButtonRef,
|
|
@@ -160,7 +152,7 @@ var _excluded = ["isDirty"];
|
|
|
160
152
|
var BlockNavigation = function BlockNavigation(_ref) {
|
|
161
153
|
var _ref$isDirty = _ref.isDirty,
|
|
162
154
|
isDirty = _ref$isDirty === void 0 ? false : _ref$isDirty,
|
|
163
|
-
otherProps =
|
|
155
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
164
156
|
var formikContext = formik.useFormikContext();
|
|
165
157
|
var shouldBlock = isDirty || Boolean(formikContext) && Boolean(formikContext.dirty);
|
|
166
158
|
var _useNavPrompt = useNavPrompt({
|
|
@@ -174,7 +166,7 @@ var BlockNavigation = function BlockNavigation(_ref) {
|
|
|
174
166
|
hidePrompt();
|
|
175
167
|
continueNavigation();
|
|
176
168
|
};
|
|
177
|
-
return /*#__PURE__*/
|
|
169
|
+
return /*#__PURE__*/React.createElement(Alert, _extends({
|
|
178
170
|
isOpen: isBlocked,
|
|
179
171
|
onClose: hidePrompt,
|
|
180
172
|
onDiscardChanges: handleDiscardChanges,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BlockNavigation.js","sources":["../../../src/hooks/useNavPrompt.js","../../../src/formik/BlockNavigation/Alert.jsx","../../../src/formik/BlockNavigation/index.jsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\n\nimport { useHistory } from \"react-router-dom\";\n\nconst useNavPrompt = ({ shouldBlock = true }) => {\n const [isBlocked, setIsBlocked] = useState(false);\n\n const history = useHistory();\n const unblockRef = useRef();\n const navRef = useRef();\n\n const continueNavigation = () => {\n if (isBlocked && unblockRef.current) {\n unblockRef.current?.();\n setIsBlocked(false);\n if (navRef.current) {\n const { action, transition } = navRef.current;\n handleNavigation(action, transition);\n }\n }\n };\n\n const hidePrompt = () => setIsBlocked(false);\n\n const handleNavigation = (action, transition) => {\n switch (action) {\n case \"PUSH\":\n history.push(transition);\n break;\n case \"REPLACE\":\n history.replace(transition);\n break;\n case \"POP\":\n history.goBack();\n break;\n }\n };\n\n useEffect(() => {\n if (shouldBlock) {\n unblockRef.current = history.block((transition, action) => {\n setIsBlocked(true);\n navRef.current = { transition, action };\n\n return false;\n });\n\n return () => {\n if (unblockRef.current) {\n unblockRef.current();\n }\n };\n }\n\n return undefined;\n }, [shouldBlock]);\n\n return { isBlocked, continueNavigation, hidePrompt };\n};\n\nexport default useNavPrompt;\n","/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport React, { useRef } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport Button from \"components/Button\";\nimport Modal from \"components/Modal\";\nimport Typography from \"components/Typography\";\nimport { getLocale } from \"utils\";\n\nconst Alert = ({ isOpen = false, onClose, onSubmit, onDiscardChanges }) => {\n const { t, i18n } = useTranslation();\n\n const submitButtonRef = useRef(null);\n\n const cancelButtonLabel = getLocale(\n i18n,\n t,\n \"neetoui.blockNavigation.cancelButtonLabel\"\n );\n\n const submitButtonLabel = getLocale(\n i18n,\n t,\n \"neetoui.blockNavigation.submitButtonLabel\"\n );\n\n return (\n <Modal\n {...{ isOpen, onClose }}\n closeButton\n closeOnEsc\n closeOnOutsideClick\n data-cy=\"alert-box\"\n initialFocusRef={submitButtonRef}\n size=\"medium\"\n >\n <Modal.Header>\n <Typography data-cy=\"alert-title\" style=\"h2\">\n {getLocale(i18n, t, \"neetoui.blockNavigation.alertTitle\")}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n <Typography data-cy=\"alert-message\" lineHeight=\"normal\" style=\"body2\">\n {getLocale(i18n, t, \"neetoui.blockNavigation.alertMessage\")}\n </Typography>\n </Modal.Body>\n <Modal.Footer className=\"neeto-ui-gap-2 neeto-ui-flex neeto-ui-justify-end neeto-ui-items-center\">\n <Button\n data-cy=\"alert-cancel-button\"\n label={cancelButtonLabel}\n style=\"danger\"\n onClick={onDiscardChanges}\n />\n <Button\n data-cy=\"alert-submit-button\"\n label={submitButtonLabel}\n ref={submitButtonRef}\n style=\"primary\"\n onClick={onSubmit}\n />\n </Modal.Footer>\n </Modal>\n );\n};\n\nexport default Alert;\n","/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport React from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport { useNavPrompt } from \"hooks\";\n\nimport Alert from \"./Alert\";\n\nconst BlockNavigation = ({ isDirty = false, ...otherProps }) => {\n const formikContext = useFormikContext();\n const shouldBlock =\n isDirty || (Boolean(formikContext) && Boolean(formikContext.dirty));\n\n const { isBlocked, continueNavigation, hidePrompt } = useNavPrompt({\n shouldBlock,\n });\n\n const handleDiscardChanges = () => {\n if (formikContext) formikContext.resetForm();\n hidePrompt();\n continueNavigation();\n };\n\n return (\n <Alert\n isOpen={isBlocked}\n onClose={hidePrompt}\n onDiscardChanges={handleDiscardChanges}\n onSubmit={hidePrompt}\n {...otherProps}\n />\n );\n};\n\nBlockNavigation.propTypes = {\n isDirty: PropTypes.bool,\n message: PropTypes.string,\n title: PropTypes.string,\n submitButtonLabel: PropTypes.string,\n};\n\nexport default BlockNavigation;\n"],"names":["useNavPrompt","_ref","_ref$shouldBlock","shouldBlock","_useState","useState","_useState2","_slicedToArray","isBlocked","setIsBlocked","history","useHistory","unblockRef","useRef","navRef","continueNavigation","current","_unblockRef$current","call","_navRef$current","action","transition","handleNavigation","hidePrompt","push","replace","goBack","useEffect","block","undefined","Alert","_ref$isOpen","isOpen","onClose","onSubmit","onDiscardChanges","_useTranslation","useTranslation","t","i18n","submitButtonRef","cancelButtonLabel","getLocale","submitButtonLabel","React","createElement","Modal","closeButton","closeOnEsc","closeOnOutsideClick","initialFocusRef","size","Header","Typography","style","Body","lineHeight","Footer","className","Button","label","onClick","ref","BlockNavigation","_ref$isDirty","isDirty","otherProps","_objectWithoutProperties","_excluded","formikContext","useFormikContext","Boolean","dirty","_useNavPrompt","handleDiscardChanges","resetForm","_extends"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BlockNavigation.js","sources":["../../../src/hooks/useNavPrompt.js","../../../src/formik/BlockNavigation/Alert.jsx","../../../src/formik/BlockNavigation/index.jsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\n\nimport { useHistory } from \"react-router-dom\";\n\nconst useNavPrompt = ({ shouldBlock = true }) => {\n const [isBlocked, setIsBlocked] = useState(false);\n\n const history = useHistory();\n const unblockRef = useRef();\n const navRef = useRef();\n\n const continueNavigation = () => {\n if (isBlocked && unblockRef.current) {\n unblockRef.current?.();\n setIsBlocked(false);\n if (navRef.current) {\n const { action, transition } = navRef.current;\n handleNavigation(action, transition);\n }\n }\n };\n\n const hidePrompt = () => setIsBlocked(false);\n\n const handleNavigation = (action, transition) => {\n switch (action) {\n case \"PUSH\":\n history.push(transition);\n break;\n case \"REPLACE\":\n history.replace(transition);\n break;\n case \"POP\":\n history.goBack();\n break;\n }\n };\n\n useEffect(() => {\n if (shouldBlock) {\n unblockRef.current = history.block((transition, action) => {\n setIsBlocked(true);\n navRef.current = { transition, action };\n\n return false;\n });\n\n return () => {\n if (unblockRef.current) {\n unblockRef.current();\n }\n };\n }\n\n return undefined;\n }, [shouldBlock]);\n\n return { isBlocked, continueNavigation, hidePrompt };\n};\n\nexport default useNavPrompt;\n","/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport React, { useRef } from \"react\";\n\nimport { useTranslation } from \"react-i18next\";\n\nimport Button from \"components/Button\";\nimport Modal from \"components/Modal\";\nimport Typography from \"components/Typography\";\nimport { getLocale } from \"utils\";\n\nconst Alert = ({ isOpen = false, onClose, onSubmit, onDiscardChanges }) => {\n const { t, i18n } = useTranslation();\n\n const submitButtonRef = useRef(null);\n\n const cancelButtonLabel = getLocale(\n i18n,\n t,\n \"neetoui.blockNavigation.cancelButtonLabel\"\n );\n\n const submitButtonLabel = getLocale(\n i18n,\n t,\n \"neetoui.blockNavigation.submitButtonLabel\"\n );\n\n return (\n <Modal\n {...{ isOpen, onClose }}\n closeButton\n closeOnEsc\n closeOnOutsideClick\n data-cy=\"alert-box\"\n initialFocusRef={submitButtonRef}\n size=\"medium\"\n >\n <Modal.Header>\n <Typography data-cy=\"alert-title\" style=\"h2\">\n {getLocale(i18n, t, \"neetoui.blockNavigation.alertTitle\")}\n </Typography>\n </Modal.Header>\n <Modal.Body>\n <Typography data-cy=\"alert-message\" lineHeight=\"normal\" style=\"body2\">\n {getLocale(i18n, t, \"neetoui.blockNavigation.alertMessage\")}\n </Typography>\n </Modal.Body>\n <Modal.Footer className=\"neeto-ui-gap-2 neeto-ui-flex neeto-ui-justify-end neeto-ui-items-center\">\n <Button\n data-cy=\"alert-cancel-button\"\n label={cancelButtonLabel}\n style=\"danger\"\n onClick={onDiscardChanges}\n />\n <Button\n data-cy=\"alert-submit-button\"\n label={submitButtonLabel}\n ref={submitButtonRef}\n style=\"primary\"\n onClick={onSubmit}\n />\n </Modal.Footer>\n </Modal>\n );\n};\n\nexport default Alert;\n","/* eslint-disable @bigbinary/neeto/file-name-and-export-name-standards */\nimport React from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport { useNavPrompt } from \"hooks\";\n\nimport Alert from \"./Alert\";\n\nconst BlockNavigation = ({ isDirty = false, ...otherProps }) => {\n const formikContext = useFormikContext();\n const shouldBlock =\n isDirty || (Boolean(formikContext) && Boolean(formikContext.dirty));\n\n const { isBlocked, continueNavigation, hidePrompt } = useNavPrompt({\n shouldBlock,\n });\n\n const handleDiscardChanges = () => {\n if (formikContext) formikContext.resetForm();\n hidePrompt();\n continueNavigation();\n };\n\n return (\n <Alert\n isOpen={isBlocked}\n onClose={hidePrompt}\n onDiscardChanges={handleDiscardChanges}\n onSubmit={hidePrompt}\n {...otherProps}\n />\n );\n};\n\nBlockNavigation.propTypes = {\n isDirty: PropTypes.bool,\n message: PropTypes.string,\n title: PropTypes.string,\n submitButtonLabel: PropTypes.string,\n};\n\nexport default BlockNavigation;\n"],"names":["useNavPrompt","_ref","_ref$shouldBlock","shouldBlock","_useState","useState","_useState2","_slicedToArray","isBlocked","setIsBlocked","history","useHistory","unblockRef","useRef","navRef","continueNavigation","current","_unblockRef$current","call","_navRef$current","action","transition","handleNavigation","hidePrompt","push","replace","goBack","useEffect","block","undefined","Alert","_ref$isOpen","isOpen","onClose","onSubmit","onDiscardChanges","_useTranslation","useTranslation","t","i18n","submitButtonRef","cancelButtonLabel","getLocale","submitButtonLabel","React","createElement","Modal","closeButton","closeOnEsc","closeOnOutsideClick","initialFocusRef","size","Header","Typography","style","Body","lineHeight","Footer","className","Button","label","onClick","ref","BlockNavigation","_ref$isDirty","isDirty","otherProps","_objectWithoutProperties","_excluded","formikContext","useFormikContext","Boolean","dirty","_useNavPrompt","handleDiscardChanges","resetForm","_extends"],"mappings":"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"}
|
|
@@ -15,16 +15,10 @@ require('@babel/runtime/helpers/slicedToArray');
|
|
|
15
15
|
require('@tippyjs/react');
|
|
16
16
|
require('tippy.js');
|
|
17
17
|
|
|
18
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
19
|
-
|
|
20
|
-
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
21
|
-
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
22
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
23
|
-
|
|
24
18
|
var _excluded = ["disabled"];
|
|
25
19
|
var FormikButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
26
20
|
var disabled = _ref.disabled,
|
|
27
|
-
otherProps =
|
|
21
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
28
22
|
var _useFormikContext = formik.useFormikContext(),
|
|
29
23
|
handleSubmit = _useFormikContext.handleSubmit,
|
|
30
24
|
isSubmitting = _useFormikContext.isSubmitting,
|
|
@@ -32,7 +26,7 @@ var FormikButton = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
32
26
|
initialValues = _useFormikContext.initialValues,
|
|
33
27
|
isValid = _useFormikContext.isValid;
|
|
34
28
|
var isDisabled = disabled !== null && disabled !== void 0 ? disabled : isSubmitting || ramda.equals(values, initialValues);
|
|
35
|
-
return /*#__PURE__*/
|
|
29
|
+
return /*#__PURE__*/React.createElement(Button, _extends({
|
|
36
30
|
ref: ref,
|
|
37
31
|
disabled: isDisabled,
|
|
38
32
|
loading: isSubmitting && isValid,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Button.js","sources":["../../../src/formik/Button.jsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { equals } from \"ramda\";\n\nimport Button from \"components/Button\";\n\nconst FormikButton = forwardRef(({ disabled, ...otherProps }, ref) => {\n const { handleSubmit, isSubmitting, values, initialValues, isValid } =\n useFormikContext();\n\n const isDisabled =\n disabled ?? (isSubmitting || equals(values, initialValues));\n\n return (\n <Button\n {...{ ref }}\n disabled={isDisabled}\n loading={isSubmitting && isValid}\n onClick={handleSubmit}\n {...otherProps}\n />\n );\n});\n\nFormikButton.displayName = \"FormikButton\";\n\nexport default FormikButton;\n"],"names":["FormikButton","forwardRef","_ref","ref","disabled","otherProps","_objectWithoutProperties","_excluded","_useFormikContext","useFormikContext","handleSubmit","isSubmitting","values","initialValues","isValid","isDisabled","equals","React","createElement","Button","_extends","loading","onClick","displayName"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Button.js","sources":["../../../src/formik/Button.jsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { equals } from \"ramda\";\n\nimport Button from \"components/Button\";\n\nconst FormikButton = forwardRef(({ disabled, ...otherProps }, ref) => {\n const { handleSubmit, isSubmitting, values, initialValues, isValid } =\n useFormikContext();\n\n const isDisabled =\n disabled ?? (isSubmitting || equals(values, initialValues));\n\n return (\n <Button\n {...{ ref }}\n disabled={isDisabled}\n loading={isSubmitting && isValid}\n onClick={handleSubmit}\n {...otherProps}\n />\n );\n});\n\nFormikButton.displayName = \"FormikButton\";\n\nexport default FormikButton;\n"],"names":["FormikButton","forwardRef","_ref","ref","disabled","otherProps","_objectWithoutProperties","_excluded","_useFormikContext","useFormikContext","handleSubmit","isSubmitting","values","initialValues","isValid","isDisabled","equals","React","createElement","Button","_extends","loading","onClick","displayName"],"mappings":";;;;;;;;;;;;;;;;;;AAOMA,IAAAA,YAAY,gBAAGC,gBAAU,CAAC,UAAAC,IAAA,EAA8BC,GAAG,EAAK;AAAA,EAAA,IAAnCC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;AAAKC,IAAAA,UAAU,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;EACxD,IAAAC,iBAAA,GACEC,uBAAgB,EAAE;IADZC,YAAY,GAAAF,iBAAA,CAAZE,YAAY;IAAEC,YAAY,GAAAH,iBAAA,CAAZG,YAAY;IAAEC,MAAM,GAAAJ,iBAAA,CAANI,MAAM;IAAEC,aAAa,GAAAL,iBAAA,CAAbK,aAAa;IAAEC,OAAO,GAAAN,iBAAA,CAAPM,OAAO,CAAA;AAGlE,EAAA,IAAMC,UAAU,GACdX,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAARA,KAAAA,CAAAA,GAAAA,QAAQ,GAAKO,YAAY,IAAIK,YAAM,CAACJ,MAAM,EAAEC,aAAa,CAAE,CAAA;AAE7D,EAAA,oBACEI,KAAA,CAAAC,aAAA,CAACC,MAAM,EAAAC,QAAA,CAAA;AACCjB,IAAAA,GAAG,EAAHA,GAAG;AACTC,IAAAA,QAAQ,EAAEW,UAAW;IACrBM,OAAO,EAAEV,YAAY,IAAIG,OAAQ;AACjCQ,IAAAA,OAAO,EAAEZ,YAAAA;AAAa,GAAA,EAClBL,UAAU,CACd,CAAA,CAAA;AAEN,CAAC,EAAC;AAEFL,YAAY,CAACuB,WAAW,GAAG,cAAc;;;;"}
|
|
@@ -8,14 +8,14 @@ var formik = require('formik');
|
|
|
8
8
|
var ramda = require('ramda');
|
|
9
9
|
var Checkbox$1 = require('../Checkbox.js');
|
|
10
10
|
require('classnames');
|
|
11
|
-
require('../useId-
|
|
11
|
+
require('../useId-DXHUzdxd.js');
|
|
12
12
|
require('@babel/runtime/helpers/slicedToArray');
|
|
13
13
|
require('react-router-dom');
|
|
14
14
|
require('@bigbinary/neeto-hotkeys');
|
|
15
15
|
require('../overlayManager.js');
|
|
16
16
|
require('@babel/runtime/helpers/classCallCheck');
|
|
17
17
|
require('@babel/runtime/helpers/createClass');
|
|
18
|
-
require('../index-
|
|
18
|
+
require('../index-CvMjRZDt.js');
|
|
19
19
|
require('@babel/runtime/helpers/toConsumableArray');
|
|
20
20
|
require('dayjs');
|
|
21
21
|
require('dayjs/plugin/localeData');
|
|
@@ -25,7 +25,7 @@ require('dayjs/plugin/weekday');
|
|
|
25
25
|
require('dayjs/plugin/weekOfYear');
|
|
26
26
|
require('@bigbinary/neeto-cist');
|
|
27
27
|
require('qs');
|
|
28
|
-
require('../en-
|
|
28
|
+
require('../en-1dfvTYgC.js');
|
|
29
29
|
require('../Label.js');
|
|
30
30
|
require('@bigbinary/neeto-icons');
|
|
31
31
|
require('../Button.js');
|
|
@@ -36,20 +36,13 @@ require('tippy.js');
|
|
|
36
36
|
require('../Popover.js');
|
|
37
37
|
require('../Typography.js');
|
|
38
38
|
|
|
39
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
40
|
-
|
|
41
|
-
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
42
|
-
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
43
|
-
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
44
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
45
|
-
|
|
46
39
|
var _excluded = ["name"];
|
|
47
40
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
48
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
41
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
49
42
|
var Checkbox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
50
43
|
var name = _ref.name,
|
|
51
|
-
rest =
|
|
52
|
-
return /*#__PURE__*/
|
|
44
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
45
|
+
return /*#__PURE__*/React.createElement(formik.Field, {
|
|
53
46
|
name: name
|
|
54
47
|
}, function (_ref2) {
|
|
55
48
|
var field = _ref2.field,
|
|
@@ -65,7 +58,7 @@ var Checkbox = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
65
58
|
field.onChange(e);
|
|
66
59
|
}
|
|
67
60
|
});
|
|
68
|
-
return /*#__PURE__*/
|
|
61
|
+
return /*#__PURE__*/React.createElement(Checkbox$1, _extends({
|
|
69
62
|
checked: field.value
|
|
70
63
|
}, _objectSpread(_objectSpread({}, fieldProps), {}, {
|
|
71
64
|
ref: ref
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Checkbox.js","sources":["../../../src/formik/Checkbox.jsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { Field, getIn } from \"formik\";\nimport PropTypes from \"prop-types\";\nimport { dissoc } from \"ramda\";\n\nimport CheckboxField from \"components/Checkbox\";\n\nconst Checkbox = forwardRef(({ name, ...rest }, ref) => (\n <Field {...{ name }}>\n {({ field, meta, form }) => {\n const { status = {}, setStatus } = form;\n const fieldStatus = getIn(status, name);\n\n const fieldProps = {\n ...field,\n onChange: e => {\n setStatus(dissoc(name, status));\n field.onChange(e);\n },\n };\n\n return (\n <CheckboxField\n checked={field.value}\n {...{ ...fieldProps, ref }}\n error={meta.touched ? meta.error || fieldStatus : \"\"}\n {...rest}\n />\n );\n }}\n </Field>\n));\n\nCheckbox.displayName = \"Checkbox\";\n\nCheckbox.propTypes = {\n /**\n * The name of the Checkbox.\n */\n name: PropTypes.string,\n};\n\nexport default Checkbox;\n"],"names":["Checkbox","forwardRef","_ref","ref","name","rest","_objectWithoutProperties","_excluded","React","createElement","Field","_ref2","field","meta","form","_form$status","status","setStatus","fieldStatus","getIn","fieldProps","_objectSpread","onChange","e","dissoc","CheckboxField","_extends","checked","value","error","touched","displayName"],"mappings":"
|
|
1
|
+
{"version":3,"file":"Checkbox.js","sources":["../../../src/formik/Checkbox.jsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\n\nimport { Field, getIn } from \"formik\";\nimport PropTypes from \"prop-types\";\nimport { dissoc } from \"ramda\";\n\nimport CheckboxField from \"components/Checkbox\";\n\nconst Checkbox = forwardRef(({ name, ...rest }, ref) => (\n <Field {...{ name }}>\n {({ field, meta, form }) => {\n const { status = {}, setStatus } = form;\n const fieldStatus = getIn(status, name);\n\n const fieldProps = {\n ...field,\n onChange: e => {\n setStatus(dissoc(name, status));\n field.onChange(e);\n },\n };\n\n return (\n <CheckboxField\n checked={field.value}\n {...{ ...fieldProps, ref }}\n error={meta.touched ? meta.error || fieldStatus : \"\"}\n {...rest}\n />\n );\n }}\n </Field>\n));\n\nCheckbox.displayName = \"Checkbox\";\n\nCheckbox.propTypes = {\n /**\n * The name of the Checkbox.\n */\n name: PropTypes.string,\n};\n\nexport default Checkbox;\n"],"names":["Checkbox","forwardRef","_ref","ref","name","rest","_objectWithoutProperties","_excluded","React","createElement","Field","_ref2","field","meta","form","_form$status","status","setStatus","fieldStatus","getIn","fieldProps","_objectSpread","onChange","e","dissoc","CheckboxField","_extends","checked","value","error","touched","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,IAAMA,QAAQ,gBAAGC,gBAAU,CAAC,UAAAC,IAAA,EAAoBC,GAAG,EAAA;AAAA,EAAA,IAApBC,IAAI,GAAAF,IAAA,CAAJE,IAAI;AAAKC,IAAAA,IAAI,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA,CAAA,CAAA;AAAA,EAAA,oBAC1CC,KAAA,CAAAC,aAAA,CAACC,YAAK,EAAA;AAAON,IAAAA,IAAI,EAAJA,IAAAA;GACV,EAAA,UAAAO,KAAA,EAA2B;AAAA,IAAA,IAAxBC,KAAK,GAAAD,KAAA,CAALC,KAAK;MAAEC,IAAI,GAAAF,KAAA,CAAJE,IAAI;MAAEC,IAAI,GAAAH,KAAA,CAAJG,IAAI,CAAA;AACnB,IAAA,IAAAC,YAAA,GAAmCD,IAAI,CAA/BE,MAAM;AAANA,MAAAA,MAAM,GAAAD,YAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,YAAA;MAAEE,SAAS,GAAKH,IAAI,CAAlBG,SAAS,CAAA;AAC9B,IAAA,IAAMC,WAAW,GAAGC,YAAK,CAACH,MAAM,EAAEZ,IAAI,CAAC,CAAA;AAEvC,IAAA,IAAMgB,UAAU,GAAAC,aAAA,CAAAA,aAAA,KACXT,KAAK,CAAA,EAAA,EAAA,EAAA;AACRU,MAAAA,QAAQ,EAAE,SAAAA,QAAAC,CAAAA,CAAC,EAAI;AACbN,QAAAA,SAAS,CAACO,YAAM,CAACpB,IAAI,EAAEY,MAAM,CAAC,CAAC,CAAA;AAC/BJ,QAAAA,KAAK,CAACU,QAAQ,CAACC,CAAC,CAAC,CAAA;AACnB,OAAA;KACD,CAAA,CAAA;AAED,IAAA,oBACEf,KAAA,CAAAC,aAAA,CAACgB,UAAa,EAAAC,QAAA,CAAA;MACZC,OAAO,EAAEf,KAAK,CAACgB,KAAAA;AAAM,KAAA,EAAAP,aAAA,CAAAA,aAAA,CAAA,EAAA,EACZD,UAAU,CAAA,EAAA,EAAA,EAAA;AAAEjB,MAAAA,GAAG,EAAHA,GAAAA;AAAG,KAAA,CAAA,EAAA;MACxB0B,KAAK,EAAEhB,IAAI,CAACiB,OAAO,GAAGjB,IAAI,CAACgB,KAAK,IAAIX,WAAW,GAAG,EAAA;AAAG,KAAA,EACjDb,IAAI,CACR,CAAA,CAAA;AAEN,GAAC,CACK,CAAA;AAAA,CACT,EAAC;AAEFL,QAAQ,CAAC+B,WAAW,GAAG,UAAU;;;;"}
|
package/dist/cjs/formik/Form.js
CHANGED
|
@@ -12,28 +12,17 @@ var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
|
12
12
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
13
13
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
14
14
|
|
|
15
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
16
|
-
|
|
17
|
-
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
18
|
-
var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
|
|
19
|
-
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
|
|
20
|
-
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
21
|
-
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
22
|
-
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
23
|
-
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
24
|
-
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
25
|
-
|
|
26
15
|
var transformObjectToDotNotation = function transformObjectToDotNotation(object) {
|
|
27
16
|
var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
|
|
28
17
|
var result = [];
|
|
29
18
|
Object.entries(object).forEach(function (_ref) {
|
|
30
|
-
var _ref2 =
|
|
19
|
+
var _ref2 = _slicedToArray(_ref, 2),
|
|
31
20
|
key = _ref2[0],
|
|
32
21
|
value = _ref2[1];
|
|
33
22
|
if (!value) return;
|
|
34
23
|
var nextKey = prefix ? "".concat(prefix, ".").concat(key) : key;
|
|
35
24
|
if (ramda.is(Object, value)) {
|
|
36
|
-
result.push.apply(result,
|
|
25
|
+
result.push.apply(result, _toConsumableArray(transformObjectToDotNotation(value, nextKey)));
|
|
37
26
|
} else {
|
|
38
27
|
result.push(nextKey);
|
|
39
28
|
}
|
|
@@ -53,7 +42,7 @@ var getFieldsWithServerError = function getFieldsWithServerError() {
|
|
|
53
42
|
var scrollToError = function scrollToError(formRef, errors, status) {
|
|
54
43
|
var fieldErrorName = getErrorFieldName(errors);
|
|
55
44
|
var _getFieldsWithServerE = getFieldsWithServerError(status),
|
|
56
|
-
_getFieldsWithServerE2 =
|
|
45
|
+
_getFieldsWithServerE2 = _slicedToArray(_getFieldsWithServerE, 1),
|
|
57
46
|
fieldWithServerError = _getFieldsWithServerE2[0];
|
|
58
47
|
if (!fieldErrorName && !fieldWithServerError) return;
|
|
59
48
|
var errorFieldName = fieldErrorName || fieldWithServerError;
|
|
@@ -83,7 +72,7 @@ var ScrollToErrorField = function ScrollToErrorField(_ref) {
|
|
|
83
72
|
|
|
84
73
|
var _excluded = ["validateForm", "setErrors", "setTouched", "submitForm"];
|
|
85
74
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
86
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
|
|
75
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
87
76
|
var FormWrapper = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
88
77
|
var className = _ref.className,
|
|
89
78
|
formProps = _ref.formProps,
|
|
@@ -94,16 +83,16 @@ var FormWrapper = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
94
83
|
setErrors = _useFormikContext.setErrors,
|
|
95
84
|
setTouched = _useFormikContext.setTouched,
|
|
96
85
|
submitForm = _useFormikContext.submitForm,
|
|
97
|
-
formikBag =
|
|
86
|
+
formikBag = _objectWithoutProperties(_useFormikContext, _excluded);
|
|
98
87
|
var isFormDirty = formikBag.dirty,
|
|
99
88
|
isSubmitting = formikBag.isSubmitting,
|
|
100
89
|
status = formikBag.status;
|
|
101
90
|
var formRefForScrollToErrorField = React.useRef();
|
|
102
91
|
var formRef = ref || formRefForScrollToErrorField;
|
|
103
92
|
var handleKeyDown = React.useCallback( /*#__PURE__*/function () {
|
|
104
|
-
var _ref2 =
|
|
93
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(event) {
|
|
105
94
|
var isEventFromEditorOrTextarea, errors, fieldStatuses;
|
|
106
|
-
return
|
|
95
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
107
96
|
while (1) switch (_context.prev = _context.next) {
|
|
108
97
|
case 0:
|
|
109
98
|
isEventFromEditorOrTextarea = event.target.tagName === "TEXTAREA" || event.target.editor;
|
|
@@ -162,13 +151,13 @@ var FormWrapper = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
162
151
|
return _ref2.apply(this, arguments);
|
|
163
152
|
};
|
|
164
153
|
}(), [validateForm, setErrors, setTouched, isFormDirty, isSubmitting, submitForm, status]);
|
|
165
|
-
return /*#__PURE__*/
|
|
154
|
+
return /*#__PURE__*/React.createElement(formik.Form, _extends({
|
|
166
155
|
className: className,
|
|
167
156
|
noValidate: true,
|
|
168
157
|
"data-testid": "neeto-ui-form-wrapper",
|
|
169
158
|
ref: formRef,
|
|
170
159
|
onKeyDown: handleKeyDown
|
|
171
|
-
}, formProps), scrollToErrorField && /*#__PURE__*/
|
|
160
|
+
}, formProps), scrollToErrorField && /*#__PURE__*/React.createElement(ScrollToErrorField, {
|
|
172
161
|
formRef: formRef
|
|
173
162
|
}), children);
|
|
174
163
|
});
|
|
@@ -183,10 +172,10 @@ var Form = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
183
172
|
scrollToErrorField = _ref$scrollToErrorFie === void 0 ? false : _ref$scrollToErrorFie;
|
|
184
173
|
var formikRef = React.useRef();
|
|
185
174
|
var handleSubmit = /*#__PURE__*/function () {
|
|
186
|
-
var _ref2 =
|
|
175
|
+
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(values, actions) {
|
|
187
176
|
var _formikRef$current;
|
|
188
177
|
var fieldsWithServerError;
|
|
189
|
-
return
|
|
178
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
190
179
|
while (1) switch (_context.prev = _context.next) {
|
|
191
180
|
case 0:
|
|
192
181
|
fieldsWithServerError = getFieldsWithServerError((_formikRef$current = formikRef.current) === null || _formikRef$current === void 0 ? void 0 : _formikRef$current.status);
|
|
@@ -209,12 +198,12 @@ var Form = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
|
|
|
209
198
|
return _ref2.apply(this, arguments);
|
|
210
199
|
};
|
|
211
200
|
}();
|
|
212
|
-
return /*#__PURE__*/
|
|
201
|
+
return /*#__PURE__*/React.createElement(formik.Formik, _extends({
|
|
213
202
|
innerRef: formikRef
|
|
214
203
|
}, formikProps, {
|
|
215
204
|
onSubmit: handleSubmit
|
|
216
205
|
}), function (props) {
|
|
217
|
-
return /*#__PURE__*/
|
|
206
|
+
return /*#__PURE__*/React.createElement(FormWrapper, {
|
|
218
207
|
className: className,
|
|
219
208
|
formProps: formProps,
|
|
220
209
|
ref: ref,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Form.js","sources":["../../../src/formik/Form/ScrollToErrorField/utils.js","../../../src/formik/Form/ScrollToErrorField/index.js","../../../src/formik/Form/FormWrapper.jsx","../../../src/formik/Form/index.jsx"],"sourcesContent":["import { isPresent } from \"neetocist\";\nimport { is } from \"ramda\";\n\nconst transformObjectToDotNotation = (object, prefix = \"\") => {\n const result = [];\n\n Object.entries(object).forEach(([key, value]) => {\n if (!value) return;\n const nextKey = prefix ? `${prefix}.${key}` : key;\n if (is(Object, value)) {\n result.push(...transformObjectToDotNotation(value, nextKey));\n } else {\n result.push(nextKey);\n }\n });\n\n return result;\n};\n\nconst getErrorFieldName = formikErrors =>\n transformObjectToDotNotation(formikErrors)?.[0];\n\nexport const getFieldsWithServerError = (status = {}) =>\n Object.keys(status).filter(fieldName => isPresent(status[fieldName]));\n\nexport const scrollToError = (formRef, errors, status) => {\n const fieldErrorName = getErrorFieldName(errors);\n const [fieldWithServerError] = getFieldsWithServerError(status);\n\n if (!fieldErrorName && !fieldWithServerError) return;\n\n const errorFieldName = fieldErrorName || fieldWithServerError;\n const errorFormElement = formRef.current.querySelector(\n `[name=\"${errorFieldName}\"]`\n );\n\n errorFormElement?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n};\n","import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isEmpty } from \"ramda\";\n\nimport { getFieldsWithServerError, scrollToError } from \"./utils\";\n\nconst ScrollToErrorField = ({ formRef }) => {\n const { submitCount, isValid, errors, status } = useFormikContext();\n\n useEffect(() => {\n const fieldsWithServerError = getFieldsWithServerError(status);\n if (!formRef.current || (isValid && isEmpty(fieldsWithServerError))) {\n return;\n }\n\n scrollToError(formRef, errors, status);\n }, [submitCount]);\n\n return null;\n};\n\nexport default ScrollToErrorField;\n","import React, { useCallback, forwardRef, useRef } from \"react\";\n\nimport { Form as FormikForm, useFormikContext } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport ScrollToErrorField from \"./ScrollToErrorField\";\nimport {\n getFieldsWithServerError,\n scrollToError,\n} from \"./ScrollToErrorField/utils\";\n\nconst FormWrapper = forwardRef(\n ({ className, formProps, children, scrollToErrorField }, ref) => {\n const { validateForm, setErrors, setTouched, submitForm, ...formikBag } =\n useFormikContext();\n\n const { dirty: isFormDirty, isSubmitting, status } = formikBag;\n\n const formRefForScrollToErrorField = useRef();\n\n const formRef = ref || formRefForScrollToErrorField;\n\n const handleKeyDown = useCallback(\n async event => {\n const isEventFromEditorOrTextarea =\n event.target.tagName === \"TEXTAREA\" || event.target.editor;\n\n if (event.key !== \"Enter\") return;\n\n if (isEventFromEditorOrTextarea && !event.metaKey) return;\n\n event.preventDefault();\n\n if (event.shiftKey) return;\n\n if (!isFormDirty || isSubmitting) return;\n\n try {\n const errors = await validateForm();\n const fieldStatuses = getFieldsWithServerError(status);\n\n if (\n Object.keys(errors).length > 0 ||\n Object.keys(fieldStatuses).length > 0\n ) {\n setErrors(errors);\n setTouched({ ...errors, ...status });\n scrollToErrorField && scrollToError(formRef, errors, status);\n } else {\n submitForm();\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n \"An unhandled error was caught from validateForm()\",\n error\n );\n }\n },\n [\n validateForm,\n setErrors,\n setTouched,\n isFormDirty,\n isSubmitting,\n submitForm,\n status,\n ]\n );\n\n return (\n <FormikForm\n {...{ className }}\n noValidate\n data-testid=\"neeto-ui-form-wrapper\"\n ref={formRef}\n onKeyDown={handleKeyDown}\n {...formProps}\n >\n {scrollToErrorField && <ScrollToErrorField {...{ formRef }} />}\n {children}\n </FormikForm>\n );\n }\n);\n\nFormWrapper.displayName = \"FormWrapper\";\n\nFormWrapper.propTypes = {\n children: PropTypes.node,\n formProps: PropTypes.object,\n scrollToErrorField: PropTypes.bool,\n};\n\nexport default FormWrapper;\n","import React, { forwardRef, useRef } from \"react\";\n\nimport { Formik } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport FormWrapper from \"./FormWrapper\";\nimport { getFieldsWithServerError } from \"./ScrollToErrorField/utils\";\n\nconst Form = forwardRef(\n (\n { className, children, formikProps, formProps, scrollToErrorField = false },\n ref\n ) => {\n const formikRef = useRef();\n\n const handleSubmit = async (values, actions) => {\n const fieldsWithServerError = getFieldsWithServerError(\n formikRef.current?.status\n );\n\n if (fieldsWithServerError.length > 0) {\n actions.setSubmitting(false);\n\n return;\n }\n\n await formikProps.onSubmit(values, actions);\n };\n\n return (\n <Formik innerRef={formikRef} {...formikProps} onSubmit={handleSubmit}>\n {props => (\n <FormWrapper {...{ className, formProps, ref, scrollToErrorField }}>\n {typeof children === \"function\" ? children(props) : children}\n </FormWrapper>\n )}\n </Formik>\n );\n }\n);\n\nForm.displayName = \"Form\";\n\nForm.propTypes = {\n /**\n * Pass a function to render children or pass the children directly\n **/\n children: PropTypes.node,\n /**\n * Additional classnames to be passed to the form wrapper\n **/\n className: PropTypes.string,\n /**\n * Props to be passed to the Formik component like `initialValues`, `validationSchema`, `onSubmit`\n * Refer to the Formik docs for more details\n * https://formik.org/docs/api/formik\n **/\n formikProps: PropTypes.object,\n /**\n * Props to be passed to the form element like `className`.\n * Refer to the Formik docs for more details\n * https://formik.org/docs/api/form\n **/\n formProps: PropTypes.object,\n /**\n * Props to be passed for scrolling to error field on submit button click.\n **/\n scrollToErrorField: PropTypes.bool,\n};\n\nexport default Form;\n"],"names":["transformObjectToDotNotation","object","prefix","arguments","length","undefined","result","Object","entries","forEach","_ref","_ref2","_slicedToArray","key","value","nextKey","concat","is","push","apply","_toConsumableArray","getErrorFieldName","formikErrors","_transformObjectToDot","getFieldsWithServerError","status","keys","filter","fieldName","isPresent","scrollToError","formRef","errors","fieldErrorName","_getFieldsWithServerE","_getFieldsWithServerE2","fieldWithServerError","errorFieldName","errorFormElement","current","querySelector","scrollIntoView","behavior","block","ScrollToErrorField","_useFormikContext","useFormikContext","submitCount","isValid","useEffect","fieldsWithServerError","isEmpty","FormWrapper","forwardRef","ref","className","formProps","children","scrollToErrorField","validateForm","setErrors","setTouched","submitForm","formikBag","_objectWithoutProperties","_excluded","isFormDirty","dirty","isSubmitting","formRefForScrollToErrorField","useRef","handleKeyDown","useCallback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","event","isEventFromEditorOrTextarea","fieldStatuses","wrap","_callee$","_context","prev","next","target","tagName","editor","abrupt","metaKey","preventDefault","shiftKey","sent","_objectSpread","t0","console","error","stop","_x","React","createElement","FormikForm","_extends","noValidate","onKeyDown","displayName","Form","formikProps","_ref$scrollToErrorFie","formikRef","handleSubmit","values","actions","_formikRef$current","setSubmitting","onSubmit","_x2","Formik","innerRef","props"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Form.js","sources":["../../../src/formik/Form/ScrollToErrorField/utils.js","../../../src/formik/Form/ScrollToErrorField/index.js","../../../src/formik/Form/FormWrapper.jsx","../../../src/formik/Form/index.jsx"],"sourcesContent":["import { isPresent } from \"neetocist\";\nimport { is } from \"ramda\";\n\nconst transformObjectToDotNotation = (object, prefix = \"\") => {\n const result = [];\n\n Object.entries(object).forEach(([key, value]) => {\n if (!value) return;\n const nextKey = prefix ? `${prefix}.${key}` : key;\n if (is(Object, value)) {\n result.push(...transformObjectToDotNotation(value, nextKey));\n } else {\n result.push(nextKey);\n }\n });\n\n return result;\n};\n\nconst getErrorFieldName = formikErrors =>\n transformObjectToDotNotation(formikErrors)?.[0];\n\nexport const getFieldsWithServerError = (status = {}) =>\n Object.keys(status).filter(fieldName => isPresent(status[fieldName]));\n\nexport const scrollToError = (formRef, errors, status) => {\n const fieldErrorName = getErrorFieldName(errors);\n const [fieldWithServerError] = getFieldsWithServerError(status);\n\n if (!fieldErrorName && !fieldWithServerError) return;\n\n const errorFieldName = fieldErrorName || fieldWithServerError;\n const errorFormElement = formRef.current.querySelector(\n `[name=\"${errorFieldName}\"]`\n );\n\n errorFormElement?.scrollIntoView({\n behavior: \"smooth\",\n block: \"center\",\n });\n};\n","import { useEffect } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { isEmpty } from \"ramda\";\n\nimport { getFieldsWithServerError, scrollToError } from \"./utils\";\n\nconst ScrollToErrorField = ({ formRef }) => {\n const { submitCount, isValid, errors, status } = useFormikContext();\n\n useEffect(() => {\n const fieldsWithServerError = getFieldsWithServerError(status);\n if (!formRef.current || (isValid && isEmpty(fieldsWithServerError))) {\n return;\n }\n\n scrollToError(formRef, errors, status);\n }, [submitCount]);\n\n return null;\n};\n\nexport default ScrollToErrorField;\n","import React, { useCallback, forwardRef, useRef } from \"react\";\n\nimport { Form as FormikForm, useFormikContext } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport ScrollToErrorField from \"./ScrollToErrorField\";\nimport {\n getFieldsWithServerError,\n scrollToError,\n} from \"./ScrollToErrorField/utils\";\n\nconst FormWrapper = forwardRef(\n ({ className, formProps, children, scrollToErrorField }, ref) => {\n const { validateForm, setErrors, setTouched, submitForm, ...formikBag } =\n useFormikContext();\n\n const { dirty: isFormDirty, isSubmitting, status } = formikBag;\n\n const formRefForScrollToErrorField = useRef();\n\n const formRef = ref || formRefForScrollToErrorField;\n\n const handleKeyDown = useCallback(\n async event => {\n const isEventFromEditorOrTextarea =\n event.target.tagName === \"TEXTAREA\" || event.target.editor;\n\n if (event.key !== \"Enter\") return;\n\n if (isEventFromEditorOrTextarea && !event.metaKey) return;\n\n event.preventDefault();\n\n if (event.shiftKey) return;\n\n if (!isFormDirty || isSubmitting) return;\n\n try {\n const errors = await validateForm();\n const fieldStatuses = getFieldsWithServerError(status);\n\n if (\n Object.keys(errors).length > 0 ||\n Object.keys(fieldStatuses).length > 0\n ) {\n setErrors(errors);\n setTouched({ ...errors, ...status });\n scrollToErrorField && scrollToError(formRef, errors, status);\n } else {\n submitForm();\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\n \"An unhandled error was caught from validateForm()\",\n error\n );\n }\n },\n [\n validateForm,\n setErrors,\n setTouched,\n isFormDirty,\n isSubmitting,\n submitForm,\n status,\n ]\n );\n\n return (\n <FormikForm\n {...{ className }}\n noValidate\n data-testid=\"neeto-ui-form-wrapper\"\n ref={formRef}\n onKeyDown={handleKeyDown}\n {...formProps}\n >\n {scrollToErrorField && <ScrollToErrorField {...{ formRef }} />}\n {children}\n </FormikForm>\n );\n }\n);\n\nFormWrapper.displayName = \"FormWrapper\";\n\nFormWrapper.propTypes = {\n children: PropTypes.node,\n formProps: PropTypes.object,\n scrollToErrorField: PropTypes.bool,\n};\n\nexport default FormWrapper;\n","import React, { forwardRef, useRef } from \"react\";\n\nimport { Formik } from \"formik\";\nimport PropTypes from \"prop-types\";\n\nimport FormWrapper from \"./FormWrapper\";\nimport { getFieldsWithServerError } from \"./ScrollToErrorField/utils\";\n\nconst Form = forwardRef(\n (\n { className, children, formikProps, formProps, scrollToErrorField = false },\n ref\n ) => {\n const formikRef = useRef();\n\n const handleSubmit = async (values, actions) => {\n const fieldsWithServerError = getFieldsWithServerError(\n formikRef.current?.status\n );\n\n if (fieldsWithServerError.length > 0) {\n actions.setSubmitting(false);\n\n return;\n }\n\n await formikProps.onSubmit(values, actions);\n };\n\n return (\n <Formik innerRef={formikRef} {...formikProps} onSubmit={handleSubmit}>\n {props => (\n <FormWrapper {...{ className, formProps, ref, scrollToErrorField }}>\n {typeof children === \"function\" ? children(props) : children}\n </FormWrapper>\n )}\n </Formik>\n );\n }\n);\n\nForm.displayName = \"Form\";\n\nForm.propTypes = {\n /**\n * Pass a function to render children or pass the children directly\n **/\n children: PropTypes.node,\n /**\n * Additional classnames to be passed to the form wrapper\n **/\n className: PropTypes.string,\n /**\n * Props to be passed to the Formik component like `initialValues`, `validationSchema`, `onSubmit`\n * Refer to the Formik docs for more details\n * https://formik.org/docs/api/formik\n **/\n formikProps: PropTypes.object,\n /**\n * Props to be passed to the form element like `className`.\n * Refer to the Formik docs for more details\n * https://formik.org/docs/api/form\n **/\n formProps: PropTypes.object,\n /**\n * Props to be passed for scrolling to error field on submit button click.\n **/\n scrollToErrorField: PropTypes.bool,\n};\n\nexport default Form;\n"],"names":["transformObjectToDotNotation","object","prefix","arguments","length","undefined","result","Object","entries","forEach","_ref","_ref2","_slicedToArray","key","value","nextKey","concat","is","push","apply","_toConsumableArray","getErrorFieldName","formikErrors","_transformObjectToDot","getFieldsWithServerError","status","keys","filter","fieldName","isPresent","scrollToError","formRef","errors","fieldErrorName","_getFieldsWithServerE","_getFieldsWithServerE2","fieldWithServerError","errorFieldName","errorFormElement","current","querySelector","scrollIntoView","behavior","block","ScrollToErrorField","_useFormikContext","useFormikContext","submitCount","isValid","useEffect","fieldsWithServerError","isEmpty","FormWrapper","forwardRef","ref","className","formProps","children","scrollToErrorField","validateForm","setErrors","setTouched","submitForm","formikBag","_objectWithoutProperties","_excluded","isFormDirty","dirty","isSubmitting","formRefForScrollToErrorField","useRef","handleKeyDown","useCallback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","event","isEventFromEditorOrTextarea","fieldStatuses","wrap","_callee$","_context","prev","next","target","tagName","editor","abrupt","metaKey","preventDefault","shiftKey","sent","_objectSpread","t0","console","error","stop","_x","React","createElement","FormikForm","_extends","noValidate","onKeyDown","displayName","Form","formikProps","_ref$scrollToErrorFie","formikRef","handleSubmit","values","actions","_formikRef$current","setSubmitting","onSubmit","_x2","Formik","innerRef","props"],"mappings":"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"}
|