nuudel-core 0.1.6 → 0.1.13
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/CHANGELOG.md +5 -0
- package/build/main/lib/common/DelayedRender.js +38 -0
- package/build/main/lib/common/coreComponent.js +203 -0
- package/build/main/lib/components/Box/index.js +9 -0
- package/build/main/lib/components/Button/{index.jsx → index.js} +4 -5
- package/build/main/lib/components/Checkbox/index.js +9 -0
- package/build/main/lib/components/Choices/index.js +23 -0
- package/build/main/lib/components/ColorBox/index.js +45 -0
- package/build/main/lib/components/Container/{index.jsx → index.js} +3 -4
- package/build/main/lib/components/Dialog/{index.jsx → index.js} +3 -19
- package/build/main/lib/components/Divider/index.js +9 -0
- package/build/main/lib/components/Drawer/{index.jsx → index.js} +5 -10
- package/build/main/lib/components/Grid/index.js +9 -0
- package/build/main/lib/components/IFrame/index.js +81 -0
- package/build/main/lib/components/Image/{index.jsx → index.js} +4 -9
- package/build/main/lib/components/Link/index.js +53 -0
- package/build/main/lib/components/Map/index.d.ts +1 -0
- package/build/main/lib/components/Map/index.js +34 -0
- package/build/main/lib/components/Material/ErrorMessage.js +49 -0
- package/build/main/lib/components/Material/Snackbar.js +28 -0
- package/build/main/lib/components/Material/SuccessMessage.d.ts +1 -0
- package/build/main/lib/components/Material/SuccessMessage.js +46 -0
- package/build/main/lib/components/Material/styles.module.scss +14 -0
- package/build/main/lib/components/Menu/index.js +23 -0
- package/build/main/lib/components/MessageBar/{index.jsx → index.js} +8 -14
- package/build/main/lib/components/MessageBox/{index.jsx → index.js} +3 -19
- package/build/main/lib/components/MultiSelect/index.js +52 -0
- package/build/main/lib/components/NoSsr/index.js +13 -0
- package/build/main/lib/components/NumberFormatInput/{index.jsx → index.js} +4 -3
- package/build/main/lib/components/Rating/index.js +12 -0
- package/build/main/lib/components/ReCaptcha/index.js +56 -0
- package/build/main/lib/components/Select/{index.jsx → index.js} +3 -7
- package/build/main/lib/components/Slider/index.js +9 -0
- package/build/main/lib/components/Slideshow/index.js +77 -0
- package/build/main/lib/components/Slideshow/styles.module.scss +53 -0
- package/build/main/lib/components/Spinner/{index.jsx → index.js} +4 -9
- package/build/main/lib/components/Stepper/index.js +76 -0
- package/build/main/lib/components/Switch/index.js +23 -0
- package/build/main/lib/components/TagsInput/{index.jsx → index.js} +1 -1
- package/build/main/lib/components/Text/index.js +33 -0
- package/build/main/lib/components/TextField/{index.jsx → index.js} +3 -4
- package/build/main/lib/components/Tooltip/index.js +9 -0
- package/build/main/lib/components/Upload/Style.js +74 -0
- package/build/main/lib/components/Upload/{index.jsx → index.js} +17 -40
- package/build/main/lib/components/Upload/resizeImage.js +42 -0
- package/build/main/lib/components/styles.module.scss +17 -0
- package/build/main/lib/controls/formFields/DateFormField.js +22 -0
- package/build/main/lib/controls/formFields/{FileUploadField.jsx → FileUploadField.js} +3 -10
- package/build/main/lib/controls/formFields/FormField.js +18 -0
- package/build/main/lib/controls/formFields/LookupField.js +87 -0
- package/build/main/lib/controls/formFields/RNFieldBooleanEdit.js +22 -0
- package/build/main/lib/controls/formFields/RNFieldChoiceEdit.js +83 -0
- package/build/main/lib/controls/formFields/{RNFieldCore.jsx → RNFieldCore.js} +1 -1
- package/build/main/lib/controls/formFields/RNFieldDateEdit.js +30 -0
- package/build/main/lib/controls/formFields/RNFieldImageDisplay.js +42 -0
- package/build/main/lib/controls/formFields/RNFieldImageEdit.js +17 -0
- package/build/main/lib/controls/formFields/RNFieldLookupDisplay.js +23 -0
- package/build/main/lib/controls/formFields/RNFieldLookupEdit.js +29 -0
- package/build/main/lib/controls/formFields/RNFieldNumberEdit.js +33 -0
- package/build/main/lib/controls/formFields/RNFieldObjectDisplay.js +17 -0
- package/build/main/lib/controls/formFields/RNFieldObjectEdit.js +25 -0
- package/build/main/lib/controls/formFields/RNFieldTextDisplay.js +18 -0
- package/build/main/lib/controls/formFields/RNFieldTextEdit.js +25 -0
- package/build/main/lib/controls/formFields/RNFieldUrlDisplay.js +33 -0
- package/build/main/lib/controls/formFields/RNFieldUrlEdit.js +23 -0
- package/build/main/lib/controls/formFields/{RNFormField.jsx → RNFormField.js} +5 -16
- package/build/main/lib/controls/formFields/styles.module.scss +92 -0
- package/build/main/lib/forms/DetailForm/DetailForm.js +412 -0
- package/build/main/lib/forms/DetailForm/IFormProps.js +3 -0
- package/build/main/lib/forms/Forms/{index.jsx → index.js} +3 -3
- package/build/main/lib/hocs/withApollo/index.js +116 -0
- package/build/main/lib/hocs/withApollo/{resolvers.jsx → resolvers.js} +1 -1
- package/build/main/lib/hocs/withContext/{index.jsx → index.js} +3 -4
- package/build/main/lib/hocs/withReducer/index.js +27 -0
- package/build/main/lib/hocs/withRedux/index.js +57 -0
- package/build/main/lib/redux/reducers/{index.jsx → index.js} +1 -1
- package/build/main/lib/redux/reduxCore.js +21 -0
- package/build/main/lib/redux/store/{index.jsx → index.js} +1 -1
- package/build/main/lib/services/ListFormService.js +819 -0
- package/build/main/lib/services/{graphqlSchema.jsx → graphqlSchema.js} +1 -1
- package/build/main/lib/theme/styles/styles.module.scss +180 -0
- package/build/module/lib/common/DelayedRender.js +32 -0
- package/build/module/lib/common/coreComponent.js +205 -0
- package/build/module/lib/components/Box/index.js +5 -0
- package/build/module/lib/components/Button/{index.jsx → index.js} +4 -5
- package/build/module/lib/components/Checkbox/index.js +5 -0
- package/build/module/lib/components/Choices/index.js +5 -0
- package/build/module/lib/components/ColorBox/index.js +40 -0
- package/build/module/lib/components/Container/{index.jsx → index.js} +3 -4
- package/build/module/lib/components/Dialog/{index.jsx → index.js} +3 -19
- package/build/module/lib/components/Divider/index.js +5 -0
- package/build/module/lib/components/Drawer/{index.jsx → index.js} +5 -10
- package/build/module/lib/components/Grid/index.js +5 -0
- package/build/module/lib/components/IFrame/index.js +79 -0
- package/build/module/lib/components/Image/index.js +20 -0
- package/build/module/lib/components/Link/index.js +35 -0
- package/build/module/lib/components/Map/index.d.ts +1 -0
- package/build/module/lib/components/Map/index.js +29 -0
- package/build/module/lib/components/Material/ErrorMessage.js +32 -0
- package/build/module/lib/components/Material/Snackbar.js +22 -0
- package/build/module/lib/components/Material/SuccessMessage.d.ts +1 -0
- package/build/module/lib/components/Material/SuccessMessage.js +39 -0
- package/build/module/lib/components/Material/styles.module.scss +14 -0
- package/build/module/lib/components/Menu/index.js +5 -0
- package/build/module/lib/components/MessageBar/{index.jsx → index.js} +8 -14
- package/build/module/lib/components/MessageBox/{index.jsx → index.js} +3 -19
- package/build/module/lib/components/MultiSelect/index.js +46 -0
- package/build/module/lib/components/NoSsr/index.js +8 -0
- package/build/module/lib/components/NumberFormatInput/index.js +12 -0
- package/build/module/lib/components/Rating/index.js +5 -0
- package/build/module/lib/components/ReCaptcha/index.js +54 -0
- package/build/module/lib/components/Select/{index.jsx → index.js} +3 -7
- package/build/module/lib/components/Slider/index.js +5 -0
- package/build/module/lib/components/Slideshow/index.js +51 -0
- package/build/module/lib/components/Slideshow/styles.module.scss +53 -0
- package/build/module/lib/components/Spinner/{index.jsx → index.js} +4 -9
- package/build/module/lib/components/Stepper/index.js +60 -0
- package/build/module/lib/components/Switch/index.js +5 -0
- package/build/module/lib/components/TagsInput/index.js +3 -0
- package/build/module/lib/components/Text/index.js +7 -0
- package/build/module/lib/components/TextField/{index.jsx → index.js} +4 -5
- package/build/module/lib/components/Tooltip/index.js +5 -0
- package/build/module/lib/components/Upload/Style.js +71 -0
- package/build/module/lib/components/Upload/{index.jsx → index.js} +17 -40
- package/build/module/lib/components/Upload/resizeImage.js +35 -0
- package/build/module/lib/components/styles.module.scss +17 -0
- package/build/module/lib/controls/formFields/DateFormField.js +17 -0
- package/build/module/lib/controls/formFields/{FileUploadField.jsx → FileUploadField.js} +3 -10
- package/build/module/lib/controls/formFields/FormField.js +13 -0
- package/build/module/lib/controls/formFields/LookupField.js +79 -0
- package/build/module/lib/controls/formFields/RNFieldBooleanEdit.js +17 -0
- package/build/module/lib/controls/formFields/RNFieldChoiceEdit.js +77 -0
- package/build/module/lib/controls/formFields/RNFieldCore.js +18 -0
- package/build/module/lib/controls/formFields/RNFieldDateEdit.js +22 -0
- package/build/module/lib/controls/formFields/RNFieldImageDisplay.js +37 -0
- package/build/module/lib/controls/formFields/RNFieldImageEdit.js +11 -0
- package/build/module/lib/controls/formFields/RNFieldLookupDisplay.js +18 -0
- package/build/module/lib/controls/formFields/RNFieldLookupEdit.js +23 -0
- package/build/module/lib/controls/formFields/RNFieldNumberEdit.js +27 -0
- package/build/module/lib/controls/formFields/RNFieldObjectDisplay.js +12 -0
- package/build/module/lib/controls/formFields/RNFieldObjectEdit.js +19 -0
- package/build/module/lib/controls/formFields/RNFieldTextDisplay.js +13 -0
- package/build/module/lib/controls/formFields/RNFieldTextEdit.js +19 -0
- package/build/module/lib/controls/formFields/RNFieldUrlDisplay.js +25 -0
- package/build/module/lib/controls/formFields/RNFieldUrlEdit.js +17 -0
- package/build/module/lib/controls/formFields/{RNFormField.jsx → RNFormField.js} +5 -16
- package/build/module/lib/controls/formFields/styles.module.scss +92 -0
- package/build/module/lib/forms/DetailForm/DetailForm.js +406 -0
- package/build/module/lib/forms/DetailForm/IFormProps.js +2 -0
- package/build/module/lib/forms/Forms/index.js +14 -0
- package/build/module/lib/hocs/withApollo/index.js +111 -0
- package/build/module/lib/hocs/withApollo/resolvers.js +45 -0
- package/build/module/lib/hocs/withContext/{index.jsx → index.js} +4 -5
- package/build/module/lib/hocs/withReducer/index.js +25 -0
- package/build/module/lib/hocs/withRedux/index.js +55 -0
- package/build/module/lib/redux/reducers/index.js +9 -0
- package/build/module/lib/redux/reduxCore.js +16 -0
- package/build/module/lib/redux/store/index.js +8 -0
- package/build/module/lib/services/ListFormService.js +813 -0
- package/build/module/lib/services/graphqlSchema.js +25 -0
- package/build/module/lib/theme/styles/styles.module.scss +180 -0
- package/package.json +14 -9
- package/build/main/lib/common/DelayedRender.jsx +0 -38
- package/build/main/lib/common/coreComponent.jsx +0 -203
- package/build/main/lib/components/Box/index.jsx +0 -12
- package/build/main/lib/components/Checkbox/index.jsx +0 -12
- package/build/main/lib/components/Choices/index.jsx +0 -28
- package/build/main/lib/components/ColorBox/index.jsx +0 -45
- package/build/main/lib/components/Divider/index.jsx +0 -12
- package/build/main/lib/components/Grid/index.jsx +0 -12
- package/build/main/lib/components/IFrame/index.jsx +0 -99
- package/build/main/lib/components/Link/index.jsx +0 -64
- package/build/main/lib/components/Map/index.jsx +0 -59
- package/build/main/lib/components/Material/ErrorMessage.jsx +0 -66
- package/build/main/lib/components/Material/Snackbar.jsx +0 -36
- package/build/main/lib/components/Material/SuccessMessage.jsx +0 -50
- package/build/main/lib/components/Menu/index.jsx +0 -31
- package/build/main/lib/components/MultiSelect/index.jsx +0 -63
- package/build/main/lib/components/NoSsr/index.jsx +0 -12
- package/build/main/lib/components/Rating/index.jsx +0 -12
- package/build/main/lib/components/ReCaptcha/index.jsx +0 -80
- package/build/main/lib/components/Slider/index.jsx +0 -12
- package/build/main/lib/components/Slideshow/index.jsx +0 -93
- package/build/main/lib/components/Stepper/index.jsx +0 -86
- package/build/main/lib/components/Switch/index.jsx +0 -26
- package/build/main/lib/components/Text/index.jsx +0 -42
- package/build/main/lib/components/Tooltip/index.jsx +0 -12
- package/build/main/lib/components/Upload/Style.jsx +0 -74
- package/build/main/lib/components/Upload/resizeImage.jsx +0 -42
- package/build/main/lib/controls/formFields/DateFormField.jsx +0 -22
- package/build/main/lib/controls/formFields/FormField.jsx +0 -35
- package/build/main/lib/controls/formFields/LookupField.jsx +0 -97
- package/build/main/lib/controls/formFields/MultiSelectField.d.ts +0 -22
- package/build/main/lib/controls/formFields/MultiSelectField.jsx +0 -63
- package/build/main/lib/controls/formFields/RNFieldBooleanEdit.jsx +0 -24
- package/build/main/lib/controls/formFields/RNFieldChoiceEdit.jsx +0 -92
- package/build/main/lib/controls/formFields/RNFieldDateEdit.jsx +0 -30
- package/build/main/lib/controls/formFields/RNFieldImageDisplay.jsx +0 -42
- package/build/main/lib/controls/formFields/RNFieldImageEdit.jsx +0 -17
- package/build/main/lib/controls/formFields/RNFieldLookupDisplay.jsx +0 -30
- package/build/main/lib/controls/formFields/RNFieldLookupEdit.jsx +0 -29
- package/build/main/lib/controls/formFields/RNFieldNumberEdit.jsx +0 -33
- package/build/main/lib/controls/formFields/RNFieldObjectDisplay.jsx +0 -17
- package/build/main/lib/controls/formFields/RNFieldObjectEdit.jsx +0 -25
- package/build/main/lib/controls/formFields/RNFieldTextDisplay.jsx +0 -18
- package/build/main/lib/controls/formFields/RNFieldTextEdit.jsx +0 -25
- package/build/main/lib/controls/formFields/RNFieldUrlDisplay.jsx +0 -35
- package/build/main/lib/controls/formFields/RNFieldUrlEdit.jsx +0 -23
- package/build/main/lib/forms/DetailForm/DetailForm.jsx +0 -445
- package/build/main/lib/forms/DetailForm/IFormProps.jsx +0 -3
- package/build/main/lib/forms/Material/ErrorMessage.d.ts +0 -4
- package/build/main/lib/forms/Material/ErrorMessage.jsx +0 -66
- package/build/main/lib/forms/Material/Snackbar.d.ts +0 -2
- package/build/main/lib/forms/Material/Snackbar.jsx +0 -36
- package/build/main/lib/forms/Material/SuccessMessage.d.ts +0 -6
- package/build/main/lib/forms/Material/SuccessMessage.jsx +0 -50
- package/build/main/lib/forms/Upload/Style.d.ts +0 -1
- package/build/main/lib/forms/Upload/Style.jsx +0 -74
- package/build/main/lib/forms/Upload/index.d.ts +0 -14
- package/build/main/lib/forms/Upload/index.jsx +0 -233
- package/build/main/lib/forms/Upload/resizeImage.d.ts +0 -2
- package/build/main/lib/forms/Upload/resizeImage.jsx +0 -49
- package/build/main/lib/hocs/withApollo/index.jsx +0 -136
- package/build/main/lib/hocs/withReducer/index.jsx +0 -47
- package/build/main/lib/hocs/withRedux/index.jsx +0 -59
- package/build/main/lib/redux/reduxCore.jsx +0 -21
- package/build/main/lib/services/ListFormService.jsx +0 -819
- package/build/module/lib/common/DelayedRender.jsx +0 -32
- package/build/module/lib/common/coreComponent.jsx +0 -205
- package/build/module/lib/components/Box/index.jsx +0 -5
- package/build/module/lib/components/Checkbox/index.jsx +0 -5
- package/build/module/lib/components/Choices/index.jsx +0 -7
- package/build/module/lib/components/ColorBox/index.jsx +0 -40
- package/build/module/lib/components/Divider/index.jsx +0 -5
- package/build/module/lib/components/Grid/index.jsx +0 -5
- package/build/module/lib/components/IFrame/index.jsx +0 -78
- package/build/module/lib/components/Image/index.jsx +0 -25
- package/build/module/lib/components/Link/index.jsx +0 -46
- package/build/module/lib/components/Map/index.jsx +0 -35
- package/build/module/lib/components/Material/ErrorMessage.jsx +0 -49
- package/build/module/lib/components/Material/Snackbar.jsx +0 -30
- package/build/module/lib/components/Material/SuccessMessage.jsx +0 -43
- package/build/module/lib/components/Menu/index.jsx +0 -10
- package/build/module/lib/components/MultiSelect/index.jsx +0 -57
- package/build/module/lib/components/NoSsr/index.jsx +0 -7
- package/build/module/lib/components/NumberFormatInput/index.jsx +0 -11
- package/build/module/lib/components/Rating/index.jsx +0 -5
- package/build/module/lib/components/ReCaptcha/index.jsx +0 -59
- package/build/module/lib/components/Slider/index.jsx +0 -5
- package/build/module/lib/components/Slideshow/index.jsx +0 -67
- package/build/module/lib/components/Stepper/index.jsx +0 -67
- package/build/module/lib/components/Switch/index.jsx +0 -5
- package/build/module/lib/components/TagsInput/index.jsx +0 -3
- package/build/module/lib/components/Text/index.jsx +0 -13
- package/build/module/lib/components/Tooltip/index.jsx +0 -5
- package/build/module/lib/components/Upload/Style.jsx +0 -71
- package/build/module/lib/components/Upload/resizeImage.jsx +0 -35
- package/build/module/lib/controls/formFields/DateFormField.jsx +0 -17
- package/build/module/lib/controls/formFields/FormField.jsx +0 -30
- package/build/module/lib/controls/formFields/LookupField.jsx +0 -89
- package/build/module/lib/controls/formFields/MultiSelectField.d.ts +0 -22
- package/build/module/lib/controls/formFields/MultiSelectField.jsx +0 -57
- package/build/module/lib/controls/formFields/RNFieldBooleanEdit.jsx +0 -19
- package/build/module/lib/controls/formFields/RNFieldChoiceEdit.jsx +0 -86
- package/build/module/lib/controls/formFields/RNFieldCore.jsx +0 -18
- package/build/module/lib/controls/formFields/RNFieldDateEdit.jsx +0 -22
- package/build/module/lib/controls/formFields/RNFieldImageDisplay.jsx +0 -37
- package/build/module/lib/controls/formFields/RNFieldImageEdit.jsx +0 -11
- package/build/module/lib/controls/formFields/RNFieldLookupDisplay.jsx +0 -25
- package/build/module/lib/controls/formFields/RNFieldLookupEdit.jsx +0 -23
- package/build/module/lib/controls/formFields/RNFieldNumberEdit.jsx +0 -27
- package/build/module/lib/controls/formFields/RNFieldObjectDisplay.jsx +0 -12
- package/build/module/lib/controls/formFields/RNFieldObjectEdit.jsx +0 -19
- package/build/module/lib/controls/formFields/RNFieldTextDisplay.jsx +0 -13
- package/build/module/lib/controls/formFields/RNFieldTextEdit.jsx +0 -19
- package/build/module/lib/controls/formFields/RNFieldUrlDisplay.jsx +0 -27
- package/build/module/lib/controls/formFields/RNFieldUrlEdit.jsx +0 -17
- package/build/module/lib/forms/DetailForm/DetailForm.jsx +0 -439
- package/build/module/lib/forms/DetailForm/IFormProps.jsx +0 -2
- package/build/module/lib/forms/Forms/index.jsx +0 -14
- package/build/module/lib/forms/Material/ErrorMessage.d.ts +0 -4
- package/build/module/lib/forms/Material/ErrorMessage.jsx +0 -49
- package/build/module/lib/forms/Material/Snackbar.d.ts +0 -2
- package/build/module/lib/forms/Material/Snackbar.jsx +0 -30
- package/build/module/lib/forms/Material/SuccessMessage.d.ts +0 -6
- package/build/module/lib/forms/Material/SuccessMessage.jsx +0 -43
- package/build/module/lib/forms/Upload/Style.d.ts +0 -1
- package/build/module/lib/forms/Upload/Style.jsx +0 -71
- package/build/module/lib/forms/Upload/index.d.ts +0 -14
- package/build/module/lib/forms/Upload/index.jsx +0 -197
- package/build/module/lib/forms/Upload/resizeImage.d.ts +0 -2
- package/build/module/lib/forms/Upload/resizeImage.jsx +0 -42
- package/build/module/lib/hocs/withApollo/index.jsx +0 -112
- package/build/module/lib/hocs/withApollo/resolvers.jsx +0 -45
- package/build/module/lib/hocs/withReducer/index.jsx +0 -26
- package/build/module/lib/hocs/withRedux/index.jsx +0 -57
- package/build/module/lib/redux/reducers/index.jsx +0 -9
- package/build/module/lib/redux/reduxCore.jsx +0 -16
- package/build/module/lib/redux/store/index.jsx +0 -8
- package/build/module/lib/services/ListFormService.jsx +0 -813
- package/build/module/lib/services/graphqlSchema.jsx +0 -25
|
@@ -1,445 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.DetailForm = void 0;
|
|
7
|
-
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const coreComponent_1 = require("../../common/coreComponent");
|
|
9
|
-
const nuudel_utils_1 = require("nuudel-utils");
|
|
10
|
-
const styles_module_scss_1 = __importDefault(require("../../theme/styles/styles.module.scss"));
|
|
11
|
-
const RNFormField_1 = __importDefault(require("../../controls/formFields/RNFormField"));
|
|
12
|
-
const nuudel_utils_2 = require("nuudel-utils");
|
|
13
|
-
const regex_1 = require("./regex");
|
|
14
|
-
const fields_1 = require("../../redux/actions/fields");
|
|
15
|
-
const selector_1 = require("../../redux/selector");
|
|
16
|
-
const react_redux_1 = require("react-redux");
|
|
17
|
-
const components_1 = require("../../components");
|
|
18
|
-
const nuudel_utils_3 = require("nuudel-utils");
|
|
19
|
-
const helper_1 = require("../../common/helper");
|
|
20
|
-
const UI_1 = require("../../common/UI");
|
|
21
|
-
const router_1 = __importDefault(require("next/router"));
|
|
22
|
-
class DetailForm extends coreComponent_1.coreComponent {
|
|
23
|
-
constructor(props) {
|
|
24
|
-
super(props);
|
|
25
|
-
this.childState = (state) => {
|
|
26
|
-
if (this._mounted) {
|
|
27
|
-
this.setState(Object.assign({}, state));
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
this.getChildState = (name) => {
|
|
31
|
-
if (!this._mounted) {
|
|
32
|
-
return undefined;
|
|
33
|
-
}
|
|
34
|
-
return this.state[name];
|
|
35
|
-
};
|
|
36
|
-
this.dialogDelete = () => {
|
|
37
|
-
this.setState({ showDialog: true });
|
|
38
|
-
};
|
|
39
|
-
this.BUTTONS = [(0, nuudel_utils_2.t)('Edit'), (0, nuudel_utils_2.t)('RemoveItem'), (0, nuudel_utils_2.t)('Cancel')];
|
|
40
|
-
this.DESTRUCTIVE_INDEX = 1;
|
|
41
|
-
this.CANCEL_INDEX = 2;
|
|
42
|
-
this.showToast = (text, type = 'info', duration = 5000) => {
|
|
43
|
-
if (text && this.state.notifications instanceof Array) {
|
|
44
|
-
this.setState({
|
|
45
|
-
notifications: [...this.state.notifications, { text, type, duration }],
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
this.debounce = undefined;
|
|
50
|
-
this.clearNotification = (idx) => {
|
|
51
|
-
this.doClose(idx);
|
|
52
|
-
this.setState((prevState, props) => ({
|
|
53
|
-
notifications: prevState.notifications.splice(idx, 1),
|
|
54
|
-
}));
|
|
55
|
-
};
|
|
56
|
-
this.readSchema = async (listname, formType) => {
|
|
57
|
-
try {
|
|
58
|
-
if (!listname) {
|
|
59
|
-
this.setState({
|
|
60
|
-
isLoadingSchema: false,
|
|
61
|
-
isLoadingData: false,
|
|
62
|
-
fieldsSchema: [],
|
|
63
|
-
});
|
|
64
|
-
this.showToast((0, nuudel_utils_2.t)('ConfigureListMessage'), 'error');
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
let fieldsSchema = await this.props.lfs.getFieldSchemasForForm(listname, formType);
|
|
68
|
-
this.defaultFields = (0, regex_1.getRegex)(this.props.listname);
|
|
69
|
-
let flds = this.defaultFields.filter((fld) => fld.hasOwnProperty('DefaultValue'));
|
|
70
|
-
fieldsSchema.forEach((fSch) => {
|
|
71
|
-
for (let i = 0; i < flds.length; i++) {
|
|
72
|
-
if (flds[i].field === fSch.InternalName) {
|
|
73
|
-
fSch.DefaultValue = flds[i].DefaultValue;
|
|
74
|
-
break;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
});
|
|
78
|
-
this.setState({
|
|
79
|
-
isLoadingSchema: false,
|
|
80
|
-
isLoadingData: true,
|
|
81
|
-
fieldsSchema,
|
|
82
|
-
});
|
|
83
|
-
}
|
|
84
|
-
catch (error) {
|
|
85
|
-
const errorText = `${(0, nuudel_utils_2.t)('ErrorLoadingSchema')}${listname}: ${error}`;
|
|
86
|
-
this.showToast(errorText, 'error');
|
|
87
|
-
this.setState({
|
|
88
|
-
isLoadingSchema: false,
|
|
89
|
-
isLoadingData: false,
|
|
90
|
-
fieldsSchema: [],
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
};
|
|
94
|
-
this.readData = async (listname, formType, id) => {
|
|
95
|
-
const { fieldsSchema } = this.state;
|
|
96
|
-
try {
|
|
97
|
-
if (formType === nuudel_utils_1.ControlMode.New || !id) {
|
|
98
|
-
const data = fieldsSchema.reduce((newData, fld) => {
|
|
99
|
-
newData[fld.InternalName] = fld.DefaultValue;
|
|
100
|
-
return newData;
|
|
101
|
-
}, {});
|
|
102
|
-
this.setState({
|
|
103
|
-
data: data,
|
|
104
|
-
originalData: Object.assign({}, data),
|
|
105
|
-
fieldErrors: {},
|
|
106
|
-
isLoadingData: false,
|
|
107
|
-
});
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
const dataObj = this.convertFromHierarchy(await this.props.lfs.itemById(listname, id, fieldsSchema));
|
|
111
|
-
const dataObjOriginal = Object.assign({}, dataObj);
|
|
112
|
-
this.setState({
|
|
113
|
-
data: dataObj,
|
|
114
|
-
originalData: dataObjOriginal,
|
|
115
|
-
fieldErrors: {},
|
|
116
|
-
isLoadingData: false,
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
|
-
catch (error) {
|
|
120
|
-
const errorText = `${(0, nuudel_utils_2.t)('ErrorLoadingData')}${id}: ${error}`;
|
|
121
|
-
this.showToast(errorText, 'error');
|
|
122
|
-
this.setState({
|
|
123
|
-
data: {},
|
|
124
|
-
originalData: {},
|
|
125
|
-
fieldErrors: {},
|
|
126
|
-
isLoadingData: false,
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
};
|
|
130
|
-
this.valueChanged = (fieldName, newValue) => {
|
|
131
|
-
this.customActions(fieldName, newValue);
|
|
132
|
-
this.setState((prevState, props) => {
|
|
133
|
-
const fld = prevState.fieldsSchema.filter((item) => item.InternalName === fieldName);
|
|
134
|
-
return {
|
|
135
|
-
data: Object.assign(Object.assign({}, prevState.data), { [fieldName]: newValue }),
|
|
136
|
-
fieldErrors: Object.assign(Object.assign({}, prevState.fieldErrors), { [fieldName]: this.DoRegex(fld.length > 0 && fld[0].Required, newValue, fieldName) }),
|
|
137
|
-
};
|
|
138
|
-
});
|
|
139
|
-
};
|
|
140
|
-
this.saveItem = async () => {
|
|
141
|
-
if (this._saveButtonClicked) {
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
this._saveButtonClicked = true;
|
|
146
|
-
}
|
|
147
|
-
if (!this.state.isSaving) {
|
|
148
|
-
this.setState({ isSaving: true });
|
|
149
|
-
}
|
|
150
|
-
try {
|
|
151
|
-
let updatedValues = await this.PreSaveAction(this.state.data, this.state.fieldsSchema, this.props.id ? this.props.id : '');
|
|
152
|
-
let hadErrors = false;
|
|
153
|
-
let errorText = (0, nuudel_utils_2.t)('FieldsErrorOnSaving');
|
|
154
|
-
if (updatedValues.length === 0) {
|
|
155
|
-
try {
|
|
156
|
-
if (!this.props.id) {
|
|
157
|
-
updatedValues = await this.props.lfs.createItem(this.props.listname, this.state.data, this.state.fieldsSchema);
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
updatedValues = await this.props.lfs.updateItem(this.props.listname, this.props.id, this.state.data, this.state.originalData, this.state.fieldsSchema);
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
catch (err) {
|
|
164
|
-
hadErrors = true;
|
|
165
|
-
errorText = (0, helper_1.onError)(err) || (0, nuudel_utils_2.t)('FieldsErrorOnSaving');
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
let dataReloadNeeded = false;
|
|
169
|
-
const newState = Object.assign(Object.assign({}, this.state), { fieldErrors: {} });
|
|
170
|
-
if (updatedValues instanceof Array) {
|
|
171
|
-
updatedValues
|
|
172
|
-
.filter((fieldVal) => fieldVal.HasException)
|
|
173
|
-
.forEach((element) => {
|
|
174
|
-
newState.fieldErrors[element.FieldName] = element.ErrorMessage;
|
|
175
|
-
hadErrors = true;
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
else if (typeof updatedValues === 'string') {
|
|
179
|
-
newState.fieldErrors['_id'] = updatedValues;
|
|
180
|
-
hadErrors = true;
|
|
181
|
-
}
|
|
182
|
-
if (hadErrors) {
|
|
183
|
-
if (this.props.onSubmitFailed) {
|
|
184
|
-
this.props.onSubmitFailed(newState.fieldErrors);
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
this.showToast(errorText, 'error');
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
else {
|
|
191
|
-
let id = !!this.props.id ? this.props.id : 0;
|
|
192
|
-
if (id === 0 && typeof updatedValues === 'object') {
|
|
193
|
-
id =
|
|
194
|
-
Object.keys(updatedValues).filter((key) => key === '_id').length > 0
|
|
195
|
-
? updatedValues._id
|
|
196
|
-
: 0;
|
|
197
|
-
}
|
|
198
|
-
newState.data = this.convertFromHierarchy(updatedValues);
|
|
199
|
-
newState.originalData = Object.assign({}, newState.data);
|
|
200
|
-
await this.saveBefore(id, newState.data, this.state.originalData);
|
|
201
|
-
if (this.props.onSubmitSucceeded) {
|
|
202
|
-
this.props.onSubmitSucceeded(id);
|
|
203
|
-
}
|
|
204
|
-
newState.itemSaved = true;
|
|
205
|
-
this.showToast((0, nuudel_utils_2.t)('ItemSavedSuccessfully'), 'success', 5000);
|
|
206
|
-
dataReloadNeeded = true;
|
|
207
|
-
}
|
|
208
|
-
newState.isSaving = false;
|
|
209
|
-
newState.notifications = this.state.notifications;
|
|
210
|
-
this.setState(newState, () => {
|
|
211
|
-
if (dataReloadNeeded) {
|
|
212
|
-
this.readData(this.props.listname, this.props.formType, this.props.id);
|
|
213
|
-
}
|
|
214
|
-
});
|
|
215
|
-
}
|
|
216
|
-
catch (error) {
|
|
217
|
-
this.showToast((0, nuudel_utils_2.t)('ErrorOnSavingListItem') + error, 'error');
|
|
218
|
-
}
|
|
219
|
-
this._saveButtonClicked = false;
|
|
220
|
-
window.scrollTo({ top: 0, behavior: 'smooth' });
|
|
221
|
-
};
|
|
222
|
-
this.state = {
|
|
223
|
-
title: '',
|
|
224
|
-
loading: false,
|
|
225
|
-
isLoadingSchema: false,
|
|
226
|
-
isLoadingData: false,
|
|
227
|
-
fieldsSchema: [],
|
|
228
|
-
isSaving: false,
|
|
229
|
-
data: {},
|
|
230
|
-
originalData: {},
|
|
231
|
-
fieldErrors: {},
|
|
232
|
-
notifications: [],
|
|
233
|
-
showDialog: false,
|
|
234
|
-
itemSaved: false,
|
|
235
|
-
};
|
|
236
|
-
}
|
|
237
|
-
render() {
|
|
238
|
-
return (<react_redux_1.Provider store={this._store}>
|
|
239
|
-
{this.state.loading && <components_1.Spinner />}
|
|
240
|
-
<components_1.Container className={styles_module_scss_1.default.container}>
|
|
241
|
-
{this.renderNotifications()}
|
|
242
|
-
<components_1.MessageBox title={(0, nuudel_utils_2.t)('Delete')} description={(0, nuudel_utils_2.t)('AreYouSureToRemove')} show={this.state.showDialog} onSubmit={async () => {
|
|
243
|
-
this.setState({ loading: true, showDialog: false });
|
|
244
|
-
try {
|
|
245
|
-
await this.props.lfs.deleteItem(this.props.listname, this.props.id);
|
|
246
|
-
}
|
|
247
|
-
catch (_a) { }
|
|
248
|
-
this.setState({ loading: false });
|
|
249
|
-
if (this.props.onCancel) {
|
|
250
|
-
this.props.onCancel('');
|
|
251
|
-
}
|
|
252
|
-
if (this.props.IsDlg === true) {
|
|
253
|
-
(0, nuudel_utils_3.closeDialog)(true);
|
|
254
|
-
return;
|
|
255
|
-
}
|
|
256
|
-
}} onClose={() => {
|
|
257
|
-
this.setState({ showDialog: false });
|
|
258
|
-
}}/>
|
|
259
|
-
{this.state.isLoadingSchema || this.state.isLoadingData ? (<div style={{
|
|
260
|
-
minHeight: (UI_1.height + UI_1.width) / 2,
|
|
261
|
-
alignItems: 'center',
|
|
262
|
-
justifyContent: 'center',
|
|
263
|
-
}}>
|
|
264
|
-
<components_1.Spinner overflowHide color={'primary'}/>
|
|
265
|
-
<components_1.Label className={styles_module_scss_1.default.loadingLabel}>
|
|
266
|
-
{(0, nuudel_utils_2.t)('LoadingFormIndicator')}
|
|
267
|
-
</components_1.Label>
|
|
268
|
-
</div>) : (this.state.fieldsSchema && (<div>
|
|
269
|
-
{this.props.children}
|
|
270
|
-
<form>{this.renderFields()}</form>
|
|
271
|
-
{this.props.formType === nuudel_utils_1.ControlMode.Edit &&
|
|
272
|
-
this.props.permission === nuudel_utils_1.Permission.Remove && (<components_1.Button style={{ marginRight: '16px' }} disabled={false} color="secondary" onClick={this.dialogDelete}>
|
|
273
|
-
{(0, nuudel_utils_2.t)('DeleteButtonText')}
|
|
274
|
-
</components_1.Button>)}
|
|
275
|
-
{this.props.formType === nuudel_utils_1.ControlMode.Display ? (<components_1.Button style={{ marginRight: '16px' }} disabled={false} color="primary" onClick={() => {
|
|
276
|
-
router_1.default.push({
|
|
277
|
-
pathname: `/forms/${this.props.listname}/${this.props.id}`,
|
|
278
|
-
});
|
|
279
|
-
}}>
|
|
280
|
-
{(0, nuudel_utils_2.t)('Edit')}
|
|
281
|
-
</components_1.Button>) : (<>
|
|
282
|
-
<components_1.Button style={{ marginRight: '16px' }} disabled={this._saveButtonClicked} color="primary" onClick={this.saveItem}>
|
|
283
|
-
{(0, nuudel_utils_2.t)('Save')}
|
|
284
|
-
</components_1.Button>
|
|
285
|
-
{this.state.isSaving && (<components_1.Spinner size={24} color="secondary"/>)}
|
|
286
|
-
</>)}
|
|
287
|
-
<components_1.Button style={{}} disabled={false} onClick={() => {
|
|
288
|
-
if (this.props.onCancel) {
|
|
289
|
-
this.props.onCancel('');
|
|
290
|
-
}
|
|
291
|
-
else if (this.props.IsDlg === true) {
|
|
292
|
-
(0, nuudel_utils_3.closeDialog)(this.state.itemSaved);
|
|
293
|
-
}
|
|
294
|
-
else {
|
|
295
|
-
router_1.default.back();
|
|
296
|
-
}
|
|
297
|
-
}}>
|
|
298
|
-
{(0, nuudel_utils_2.t)('Cancel')}
|
|
299
|
-
</components_1.Button>
|
|
300
|
-
</div>))}
|
|
301
|
-
</components_1.Container>
|
|
302
|
-
</react_redux_1.Provider>);
|
|
303
|
-
}
|
|
304
|
-
doClose(idx = -1) {
|
|
305
|
-
var _a;
|
|
306
|
-
if (idx < 0) {
|
|
307
|
-
idx = this.state.notifications.findIndex((n) => (n === null || n === void 0 ? void 0 : n.type) === 'success');
|
|
308
|
-
}
|
|
309
|
-
if (this.props.formType === nuudel_utils_1.ControlMode.Edit &&
|
|
310
|
-
this.props.IsDlg === true &&
|
|
311
|
-
idx >= 0 &&
|
|
312
|
-
((_a = this.state.notifications[idx]) === null || _a === void 0 ? void 0 : _a.type) === 'success') {
|
|
313
|
-
(0, nuudel_utils_3.closeDialog)(true);
|
|
314
|
-
}
|
|
315
|
-
}
|
|
316
|
-
renderNotifications() {
|
|
317
|
-
var _a;
|
|
318
|
-
const { notifications } = this.state;
|
|
319
|
-
if (notifications.length === 0) {
|
|
320
|
-
return null;
|
|
321
|
-
}
|
|
322
|
-
clearTimeout(this.debounce);
|
|
323
|
-
this.debounce = setTimeout(() => {
|
|
324
|
-
if (this.state.notifications.length > 0) {
|
|
325
|
-
this.doClose();
|
|
326
|
-
this.setState({ notifications: [] });
|
|
327
|
-
}
|
|
328
|
-
}, ((_a = notifications[0]) === null || _a === void 0 ? void 0 : _a.duration) || 5000);
|
|
329
|
-
return (<div>
|
|
330
|
-
{notifications.map((item, idx) => (<components_1.MessageBar key={idx} messageBarType={item.type || 'info'} onClose={(e) => this.clearNotification(idx)}>
|
|
331
|
-
{item.text}
|
|
332
|
-
</components_1.MessageBar>))}
|
|
333
|
-
</div>);
|
|
334
|
-
}
|
|
335
|
-
renderFields() {
|
|
336
|
-
const { fieldsSchema, data, fieldErrors } = this.state;
|
|
337
|
-
const fields = this.getFields();
|
|
338
|
-
const fld = this._store.getState().fields;
|
|
339
|
-
if (Object.keys(fld).length <= 1) {
|
|
340
|
-
this._store.dispatch((0, fields_1.setFields)(this.initialStore(this.defaultFields, fields, data, this.props)));
|
|
341
|
-
}
|
|
342
|
-
return fields && fields.length > 0 ? (fields.map((field, idx) => {
|
|
343
|
-
const fieldSchemas = fieldsSchema.filter((f) => f.InternalName === field.fieldName);
|
|
344
|
-
if (fieldSchemas.length > 0) {
|
|
345
|
-
const fieldSchema = fieldSchemas[0];
|
|
346
|
-
const value = data[field.fieldName];
|
|
347
|
-
const errorMessage = fieldErrors[field.fieldName];
|
|
348
|
-
const langTag = nuudel_utils_2.I8.language.split('-')[0];
|
|
349
|
-
let label = !!fieldSchema.JsonOption &&
|
|
350
|
-
fieldSchema.JsonOption.hasOwnProperty(langTag) &&
|
|
351
|
-
!!fieldSchema.JsonOption.langTag
|
|
352
|
-
? fieldSchema.JsonOption[langTag]
|
|
353
|
-
: (0, nuudel_utils_2.t)(this.props.listname.toLowerCase() +
|
|
354
|
-
'.' +
|
|
355
|
-
fieldSchema.InternalName, {
|
|
356
|
-
defaultValue: fieldSchema.Title,
|
|
357
|
-
});
|
|
358
|
-
if (typeof label === 'object') {
|
|
359
|
-
label = fieldSchema.Title;
|
|
360
|
-
}
|
|
361
|
-
const fieldProps = {
|
|
362
|
-
fieldSchema: fieldSchema,
|
|
363
|
-
label: label,
|
|
364
|
-
client: this.props.lfs.client,
|
|
365
|
-
listname: this.props.listname,
|
|
366
|
-
id: this.props.id,
|
|
367
|
-
key: field.key,
|
|
368
|
-
controlMode: this.props.formType,
|
|
369
|
-
displaytype: (0, selector_1.getFieldByName)(this._store.getState(), field.fieldName)
|
|
370
|
-
.type,
|
|
371
|
-
value: value,
|
|
372
|
-
errorMessage: errorMessage,
|
|
373
|
-
hideIfFieldUnsupported: !this.props.showUnsupportedFields,
|
|
374
|
-
valueChanged: (val) => this.valueChanged(field.fieldName, val),
|
|
375
|
-
};
|
|
376
|
-
const fieldComponent = (0, RNFormField_1.default)(this.customInit(field.fieldName, fieldProps));
|
|
377
|
-
return fieldComponent;
|
|
378
|
-
}
|
|
379
|
-
else {
|
|
380
|
-
return null;
|
|
381
|
-
}
|
|
382
|
-
})) : (<components_1.Text className={styles_module_scss_1.default.placeholder}>{(0, nuudel_utils_2.t)('NoFieldsAvailable')}</components_1.Text>);
|
|
383
|
-
}
|
|
384
|
-
customInit(fieldName, fldProps) {
|
|
385
|
-
fldProps = super.customInit(fieldName, fldProps);
|
|
386
|
-
switch (fieldName) {
|
|
387
|
-
case '_id':
|
|
388
|
-
break;
|
|
389
|
-
default:
|
|
390
|
-
break;
|
|
391
|
-
}
|
|
392
|
-
return fldProps;
|
|
393
|
-
}
|
|
394
|
-
componentDidMount() {
|
|
395
|
-
super.componentDidMount();
|
|
396
|
-
this.readSchema(this.props.listname, this.props.formType).then(() => this.readData(this.props.listname, this.props.formType, this.props.id));
|
|
397
|
-
}
|
|
398
|
-
componentDidUpdate(prevProps) {
|
|
399
|
-
const Id = !!this.props.id && this.props.id !== prevProps.id
|
|
400
|
-
? this.props.id
|
|
401
|
-
: prevProps.id;
|
|
402
|
-
if (this.props.listname !== prevProps.listname ||
|
|
403
|
-
this.props.formType !== prevProps.formType) {
|
|
404
|
-
this.readSchema(this.props.listname, this.props.formType).then(() => this.readData(this.props.listname, this.props.formType, Id));
|
|
405
|
-
}
|
|
406
|
-
else if (this.props.id !== prevProps.id ||
|
|
407
|
-
(typeof this.props.reload !== 'undefined' &&
|
|
408
|
-
typeof prevProps.reload !== 'undefined' &&
|
|
409
|
-
prevProps.reload < this.props.reload)) {
|
|
410
|
-
this.readData(prevProps.listname, prevProps.formType, Id);
|
|
411
|
-
}
|
|
412
|
-
}
|
|
413
|
-
componentWillUnmount() {
|
|
414
|
-
super.componentWillUnmount();
|
|
415
|
-
clearTimeout(this.debounce);
|
|
416
|
-
}
|
|
417
|
-
customActions(fieldName, newValue) {
|
|
418
|
-
super.customActions(fieldName, newValue);
|
|
419
|
-
}
|
|
420
|
-
getFields() {
|
|
421
|
-
const { fieldsSchema } = this.state;
|
|
422
|
-
let fields = this.props.fields;
|
|
423
|
-
if (!fields && fieldsSchema) {
|
|
424
|
-
fields = fieldsSchema
|
|
425
|
-
.filter((field) => !!field.FieldType)
|
|
426
|
-
.map((field) => ({
|
|
427
|
-
key: field.InternalName,
|
|
428
|
-
title: field.Title,
|
|
429
|
-
fieldName: field.InternalName,
|
|
430
|
-
}));
|
|
431
|
-
}
|
|
432
|
-
return fields;
|
|
433
|
-
}
|
|
434
|
-
onUpdateFields(newFields) {
|
|
435
|
-
if (this.props.onUpdateFields) {
|
|
436
|
-
this.props.onUpdateFields(newFields);
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
exports.DetailForm = DetailForm;
|
|
441
|
-
DetailForm.defaultProps = {
|
|
442
|
-
permission: nuudel_utils_1.Permission.Remove,
|
|
443
|
-
};
|
|
444
|
-
exports.default = DetailForm;
|
|
445
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGV0YWlsRm9ybS5qc3giLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Zvcm1zL0RldGFpbEZvcm0vRGV0YWlsRm9ybS50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLDhEQUF1RTtBQUl2RSwrQ0FBb0U7QUFDcEUsK0ZBQTJEO0FBQzNELHdGQUUrQztBQUMvQywrQ0FBcUM7QUFDckMsbUNBQW1DO0FBQ25DLHVEQUtvQztBQUNwQyxtREFBc0Q7QUFDdEQsNkNBQXVDO0FBQ3ZDLGlEQVEwQjtBQUsxQiwrQ0FBMkM7QUFDM0MsZ0RBQThDO0FBQzlDLHdDQUFnRDtBQUNoRCx5REFBaUM7QUFnQmpDLE1BQWEsVUFBVyxTQUFRLDZCQUFxQztJQUluRSxZQUFZLEtBQWlCO1FBQzNCLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQXVCTCxlQUFVLEdBQUcsQ0FBQyxLQUFVLEVBQVEsRUFBRTtZQUMxQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxRQUFRLG1CQUFNLEtBQUssRUFBRyxDQUFDO2FBQzdCO1FBQ0gsQ0FBQyxDQUFDO1FBR1Esa0JBQWEsR0FBRyxDQUFDLElBQVksRUFBTyxFQUFFO1lBQzlDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNsQixPQUFPLFNBQVMsQ0FBQzthQUNsQjtZQUNELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixDQUFDLENBQUM7UUFFUSxpQkFBWSxHQUFHLEdBQUcsRUFBRTtZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDO1FBRVEsWUFBTyxHQUFHLENBQUMsSUFBQSxnQkFBQyxFQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUEsZ0JBQUMsRUFBQyxZQUFZLENBQUMsRUFBRSxJ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
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUZvcm1Qcm9wcy5qc3giLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Zvcm1zL0RldGFpbEZvcm0vSUZvcm1Qcm9wcy50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiJ9
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
const react_1 = __importDefault(require("react"));
|
|
18
|
-
const Button_1 = __importDefault(require("@material-ui/core/Button"));
|
|
19
|
-
const Snackbar_1 = __importDefault(require("@material-ui/core/Snackbar"));
|
|
20
|
-
const IconButton_1 = __importDefault(require("@material-ui/core/IconButton"));
|
|
21
|
-
const Close_1 = __importDefault(require("@material-ui/icons/Close"));
|
|
22
|
-
const styles_module_scss_1 = __importDefault(require("./styles.module.scss"));
|
|
23
|
-
const nuudel_utils_1 = require("nuudel-utils");
|
|
24
|
-
const ErrorStyles = (props) => (<div className={styles_module_scss_1.default.errormsg}>{props.children}</div>);
|
|
25
|
-
const DisplayError = (_a) => {
|
|
26
|
-
var props = __rest(_a, []);
|
|
27
|
-
const { error = {} } = props;
|
|
28
|
-
const [open, setOpen] = react_1.default.useState(true);
|
|
29
|
-
const handleClose = (event, reason) => {
|
|
30
|
-
if (reason === 'clickaway') {
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
setOpen(false);
|
|
34
|
-
};
|
|
35
|
-
if (!error || !error.message)
|
|
36
|
-
return null;
|
|
37
|
-
if (error.networkError &&
|
|
38
|
-
error.networkError.result &&
|
|
39
|
-
error.networkError.result.errors.length) {
|
|
40
|
-
return error.networkError.result.errors.map((error, i) => (<ErrorStyles key={i}>
|
|
41
|
-
<p data-test="graphql-error">
|
|
42
|
-
<strong>Shoot!</strong>
|
|
43
|
-
{error.message.replace('GraphQL error: ', '')}
|
|
44
|
-
</p>
|
|
45
|
-
</ErrorStyles>));
|
|
46
|
-
}
|
|
47
|
-
return (<ErrorStyles>
|
|
48
|
-
<p data-test="graphql-error">
|
|
49
|
-
<strong>{'Shoot!'}</strong>
|
|
50
|
-
{error.message.replace('GraphQL error: ', '')}
|
|
51
|
-
</p>
|
|
52
|
-
<Snackbar_1.default anchorOrigin={{
|
|
53
|
-
vertical: 'bottom',
|
|
54
|
-
horizontal: 'left',
|
|
55
|
-
}} open={open} autoHideDuration={6000} onClose={handleClose} message="Note archived" action={<react_1.default.Fragment>
|
|
56
|
-
<Button_1.default color="secondary" size="small" onClick={handleClose}>
|
|
57
|
-
{(0, nuudel_utils_1.t)('UNDO')}
|
|
58
|
-
</Button_1.default>
|
|
59
|
-
<IconButton_1.default size="small" aria-label="close" color="inherit" onClick={handleClose}>
|
|
60
|
-
<Close_1.default fontSize="small"/>
|
|
61
|
-
</IconButton_1.default>
|
|
62
|
-
</react_1.default.Fragment>}/>
|
|
63
|
-
</ErrorStyles>);
|
|
64
|
-
};
|
|
65
|
-
exports.default = DisplayError;
|
|
66
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRXJyb3JNZXNzYWdlLmpzeCIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZm9ybXMvTWF0ZXJpYWwvRXJyb3JNZXNzYWdlLnRzeCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsa0RBQTBCO0FBQzFCLHNFQUE4QztBQUM5QywwRUFBa0Q7QUFDbEQsOEVBQXNEO0FBQ3RELHFFQUFpRDtBQUNqRCw4RUFBMEM7QUFDMUMsK0NBQWlDO0FBRWpDLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUUsQ0FBQyxDQUNsQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyw0QkFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUN4RCxDQUFDO0FBRUYsTUFBTSxZQUFZLEdBQUcsQ0FBQyxFQUFZLEVBQUUsRUFBRTtRQUFYLEtBQUssY0FBVixFQUFZLENBQUY7SUFDOUIsTUFBTSxFQUFFLEtBQUssR0FBRyxFQUFFLEVBQUUsR0FBRyxLQUFLLENBQUM7SUFDN0IsTUFBTSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxlQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTdDLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU8sRUFBRSxFQUFFO1FBQ3JDLElBQUksTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUMxQixPQUFPO1NBQ1I7UUFDRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDMUMsSUFDRSxLQUFLLENBQUMsWUFBWTtRQUNsQixLQUFLLENBQUMsWUFBWSxDQUFDLE1BQU07UUFDekIsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFDdkM7UUFDQSxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUN4RCxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FDbEI7UUFBQSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUMxQjtVQUFBLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQ3RCO1VBQUEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FDL0M7UUFBQSxFQUFFLENBQUMsQ0FDTDtNQUFBLEVBQUUsV0FBVyxDQUFDLENBQ2YsQ0FBQyxDQUFDO0tBQ0o7SUFDRCxPQUFPLENBQ0wsQ0FBQyxXQUFXLENBQ1Y7TUFBQSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUMxQjtRQUFBLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxDQUFDLEVBQUUsTUFBTSxDQUMxQjtRQUFBLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLENBQy9DO01BQUEsRUFBRSxDQUFDLENBQ0g7TUFBQSxDQUFDLGtCQUFRLENBQ1AsWUFBWSxDQUFDLENBQUM7WUFDWixRQUFRLEVBQUUsUUFBUTtZQUNsQixVQUFVLEVBQUUsTUFBTTtTQUNuQixDQUFDLENBQ0YsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ1gsZ0JBQWdCLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FDdkIsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQ3JCLE9BQU8sQ0FBQyxlQUFlLENBQ3ZCLE1BQU0sQ0FBQyxDQUNMLENBQUMsZUFBSyxDQUFDLFFBQVEsQ0FDYjtZQUFBLENBQUMsZ0JBQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQzFEO2NBQUEsQ0FBQyxJQUFBLGdCQUFDLEVBQUMsTUFBTSxDQUFDLENBQ1o7WUFBQSxFQUFFLGdCQUFNLENBQ1I7WUFBQSxDQUFDLG9CQUFVLENBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FDWixVQUFVLENBQUMsT0FBTyxDQUNsQixLQUFLLENBQUMsU0FBUyxDQUNmLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUVyQjtjQUFBLENBQUMsZUFBUyxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQzdCO1lBQUEsRUFBRSxvQkFBVSxDQUNkO1VBQUEsRUFBRSxlQUFLLENBQUMsUUFBUSxDQUFDLENBQ2xCLEVBRUw7SUFBQSxFQUFFLFdBQVcsQ0FBQyxDQUNmLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixrQkFBZSxZQUFZLENBQUMifQ==
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const react_1 = __importDefault(require("react"));
|
|
7
|
-
const Button_1 = __importDefault(require("@material-ui/core/Button"));
|
|
8
|
-
const Snackbar_1 = __importDefault(require("@material-ui/core/Snackbar"));
|
|
9
|
-
const IconButton_1 = __importDefault(require("@material-ui/core/IconButton"));
|
|
10
|
-
const Close_1 = __importDefault(require("@material-ui/icons/Close"));
|
|
11
|
-
const nuudel_utils_1 = require("nuudel-utils");
|
|
12
|
-
function ShowSnackbar() {
|
|
13
|
-
const [open, setOpen] = react_1.default.useState(true);
|
|
14
|
-
setOpen(true);
|
|
15
|
-
const handleClose = (event, reason) => {
|
|
16
|
-
if (reason === 'clickaway') {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
setOpen(false);
|
|
20
|
-
};
|
|
21
|
-
return (<div>
|
|
22
|
-
<Snackbar_1.default anchorOrigin={{
|
|
23
|
-
vertical: 'bottom',
|
|
24
|
-
horizontal: 'left',
|
|
25
|
-
}} open={open} autoHideDuration={6000} onClose={handleClose} message="Note archived" action={<react_1.default.Fragment>
|
|
26
|
-
<Button_1.default color="secondary" size="small" onClick={handleClose}>
|
|
27
|
-
{(0, nuudel_utils_1.t)('UNDO')}
|
|
28
|
-
</Button_1.default>
|
|
29
|
-
<IconButton_1.default size="small" aria-label="close" color="inherit" onClick={handleClose}>
|
|
30
|
-
<Close_1.default fontSize="small"/>
|
|
31
|
-
</IconButton_1.default>
|
|
32
|
-
</react_1.default.Fragment>}/>
|
|
33
|
-
</div>);
|
|
34
|
-
}
|
|
35
|
-
exports.default = ShowSnackbar;
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU25hY2tiYXIuanN4Iiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9mb3Jtcy9NYXRlcmlhbC9TbmFja2Jhci50c3giXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrREFBMEI7QUFDMUIsc0VBQThDO0FBQzlDLDBFQUFrRDtBQUNsRCw4RUFBc0Q7QUFDdEQscUVBQWlEO0FBQ2pELCtDQUFpQztBQUVqQyxTQUF3QixZQUFZO0lBQ2xDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLEdBQUcsZUFBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDZCxNQUFNLFdBQVcsR0FBRyxDQUNsQixLQUE4QyxFQUM5QyxNQUFlLEVBQ2YsRUFBRTtRQUNGLElBQUksTUFBTSxLQUFLLFdBQVcsRUFBRTtZQUMxQixPQUFPO1NBQ1I7UUFFRCxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakIsQ0FBQyxDQUFDO0lBRUYsT0FBTyxDQUNMLENBQUMsR0FBRyxDQUNGO01BQUEsQ0FBQyxrQkFBUSxDQUNQLFlBQVksQ0FBQyxDQUFDO1lBQ1osUUFBUSxFQUFFLFFBQVE7WUFDbEIsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQyxDQUNGLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUNYLGdCQUFnQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQ3ZCLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUNyQixPQUFPLENBQUMsZUFBZSxDQUN2QixNQUFNLENBQUMsQ0FDTCxDQUFDLGVBQUssQ0FBQyxRQUFRLENBQ2I7WUFBQSxDQUFDLGdCQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUMxRDtjQUFBLENBQUMsSUFBQSxnQkFBQyxFQUFDLE1BQU0sQ0FBQyxDQUNaO1lBQUEsRUFBRSxnQkFBTSxDQUNSO1lBQUEsQ0FBQyxvQkFBVSxDQUNULElBQUksQ0FBQyxPQUFPLENBQ1osVUFBVSxDQUFDLE9BQU8sQ0FDbEIsS0FBSyxDQUFDLFNBQVMsQ0FDZixPQUFPLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FFckI7Y0FBQSxDQUFDLGVBQVMsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUM3QjtZQUFBLEVBQUUsb0JBQVUsQ0FDZDtVQUFBLEVBQUUsZUFBSyxDQUFDLFFBQVEsQ0FBQyxDQUNsQixFQUVMO0lBQUEsRUFBRSxHQUFHLENBQUMsQ0FDUCxDQUFDO0FBQ0osQ0FBQztBQTNDRCwrQkEyQ0MifQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
declare const Message: () => JSX.Element;
|
|
3
|
-
declare const TOGGLE_SNACKBAR_MUTATION: import("@apollo/react-hooks").DocumentNode;
|
|
4
|
-
declare const SNACKBAR_STATE_QUERY: import("@apollo/react-hooks").DocumentNode;
|
|
5
|
-
export default Message;
|
|
6
|
-
export { SNACKBAR_STATE_QUERY, TOGGLE_SNACKBAR_MUTATION };
|