react-immutable-form-with-bootstrap 1.0.1
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/FormPrompt.d.ts +9 -0
- package/FormPrompt.js +110 -0
- package/FormPrompt.js.map +1 -0
- package/Inputs/Custom/CaptchaBox.d.ts +13 -0
- package/Inputs/Custom/CaptchaBox.js +44 -0
- package/Inputs/Custom/CaptchaBox.js.map +1 -0
- package/Inputs/DateInput.d.ts +8 -0
- package/Inputs/DateInput.js +55 -0
- package/Inputs/DateInput.js.map +1 -0
- package/Inputs/DateTemplate.d.ts +3 -0
- package/Inputs/DateTemplate.js +20 -0
- package/Inputs/DateTemplate.js.map +1 -0
- package/Inputs/InputTemplate.d.ts +5 -0
- package/Inputs/InputTemplate.js +19 -0
- package/Inputs/InputTemplate.js.map +1 -0
- package/Inputs/NumericInput.d.ts +12 -0
- package/Inputs/NumericInput.js +74 -0
- package/Inputs/NumericInput.js.map +1 -0
- package/Inputs/NumericTemplate.d.ts +3 -0
- package/Inputs/NumericTemplate.js +19 -0
- package/Inputs/NumericTemplate.js.map +1 -0
- package/Inputs/SelectTemplate.d.ts +3 -0
- package/Inputs/SelectTemplate.js +19 -0
- package/Inputs/SelectTemplate.js.map +1 -0
- package/Inputs/SimpleInput.d.ts +7 -0
- package/Inputs/SimpleInput.js +41 -0
- package/Inputs/SimpleInput.js.map +1 -0
- package/Inputs/SimpleSelect.d.ts +6 -0
- package/Inputs/SimpleSelect.js +44 -0
- package/Inputs/SimpleSelect.js.map +1 -0
- package/Inputs/SimpleTextarea.d.ts +6 -0
- package/Inputs/SimpleTextarea.js +41 -0
- package/Inputs/SimpleTextarea.js.map +1 -0
- package/Inputs/SwitchInput.d.ts +6 -0
- package/Inputs/SwitchInput.js +45 -0
- package/Inputs/SwitchInput.js.map +1 -0
- package/Inputs/TextareaTemplate.d.ts +3 -0
- package/Inputs/TextareaTemplate.js +19 -0
- package/Inputs/TextareaTemplate.js.map +1 -0
- package/Inputs/index.d.ts +12 -0
- package/Inputs/index.js +26 -0
- package/Inputs/index.js.map +1 -0
- package/Inputs/util-numeric.d.ts +1 -0
- package/Inputs/util-numeric.js +27 -0
- package/Inputs/util-numeric.js.map +1 -0
- package/Inputs/util.d.ts +8 -0
- package/Inputs/util.js +16 -0
- package/Inputs/util.js.map +1 -0
- package/bootstrap/onErrors.d.ts +2 -0
- package/bootstrap/onErrors.js +55 -0
- package/bootstrap/onErrors.js.map +1 -0
- package/package.json +121 -0
- package/styles/index.css +0 -0
package/FormPrompt.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Created a FormPromter component, given a history value
|
|
3
|
+
*
|
|
4
|
+
* @param {*} history The History value from react-router
|
|
5
|
+
* @returns {JSX.Element | null} The FormPrompt component.
|
|
6
|
+
*/
|
|
7
|
+
export declare const createFormPromter: (history: any) => (props: {
|
|
8
|
+
readonly dirty: boolean;
|
|
9
|
+
}) => null;
|
package/FormPrompt.js
ADDED
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.createFormPromter = void 0;
|
|
27
|
+
/* eslint-disable no-alert */
|
|
28
|
+
const react_1 = __importStar(require("react"));
|
|
29
|
+
const words_1 = require("react-immutable-form/words");
|
|
30
|
+
const react_router_1 = require("react-router");
|
|
31
|
+
/**
|
|
32
|
+
* Created a FormPromter component, given a history value
|
|
33
|
+
*
|
|
34
|
+
* @param {*} history The History value from react-router
|
|
35
|
+
* @returns {JSX.Element | null} The FormPrompt component.
|
|
36
|
+
*/
|
|
37
|
+
const createFormPromter = (history) => {
|
|
38
|
+
const useBlocker = (blocker, when = true) => {
|
|
39
|
+
react_1.default.useEffect(() => {
|
|
40
|
+
if (!when) {
|
|
41
|
+
return () => { };
|
|
42
|
+
}
|
|
43
|
+
const unblock = history.block((tx) => {
|
|
44
|
+
const autoUnblockingTx = Object.assign(Object.assign({}, tx), { retry() {
|
|
45
|
+
unblock();
|
|
46
|
+
tx.retry();
|
|
47
|
+
} });
|
|
48
|
+
blocker(autoUnblockingTx);
|
|
49
|
+
});
|
|
50
|
+
return unblock;
|
|
51
|
+
}, [blocker, when]);
|
|
52
|
+
}, useCallbackPrompt = (when) => {
|
|
53
|
+
const navigate = (0, react_router_1.useNavigate)(), location = (0, react_router_1.useLocation)(), [showPrompt, setShowPrompt] = (0, react_1.useState)(false), [lastLocation, setLastLocation] = (0, react_1.useState)(null), [confirmedNavigation, setConfirmedNavigation] = (0, react_1.useState)(false), cancelNavigation = (0, react_1.useCallback)(() => {
|
|
54
|
+
setShowPrompt(false);
|
|
55
|
+
}, []), handleBlockedNavigation = (0, react_1.useCallback)((nextLocation) => {
|
|
56
|
+
const locationChanged = nextLocation.location.pathname !== location.pathname, didNotConfirmed = !confirmedNavigation, shouldPrompt = locationChanged && didNotConfirmed;
|
|
57
|
+
if (shouldPrompt) {
|
|
58
|
+
setShowPrompt(true);
|
|
59
|
+
setLastLocation(nextLocation);
|
|
60
|
+
return false;
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
63
|
+
}, [confirmedNavigation]), confirmNavigation = (0, react_1.useCallback)(() => {
|
|
64
|
+
setShowPrompt(false);
|
|
65
|
+
setConfirmedNavigation(true);
|
|
66
|
+
}, []);
|
|
67
|
+
(0, react_1.useEffect)(() => {
|
|
68
|
+
if (confirmedNavigation && lastLocation) {
|
|
69
|
+
navigate(lastLocation.location.pathname);
|
|
70
|
+
}
|
|
71
|
+
}, [confirmedNavigation, lastLocation]);
|
|
72
|
+
useBlocker(handleBlockedNavigation, when);
|
|
73
|
+
return [showPrompt, confirmNavigation, cancelNavigation];
|
|
74
|
+
},
|
|
75
|
+
/**
|
|
76
|
+
* FormPrompt component.
|
|
77
|
+
*
|
|
78
|
+
* This component monitors whether a form has unsaved changes and, if the user attempts to navigate away
|
|
79
|
+
* from the form, it displays a confirmation prompt asking if they are sure they want to leave without saving.
|
|
80
|
+
*
|
|
81
|
+
* @param {Object} props - Component properties.
|
|
82
|
+
* @param {boolean} props.dirty - Indicates whether the form has unsaved changes.
|
|
83
|
+
*
|
|
84
|
+
* @returns {JSX.Element | null} The FormPrompt component.
|
|
85
|
+
*/
|
|
86
|
+
FormPrompt = (props) => {
|
|
87
|
+
const [showPrompt, confirmNavigation, cancelNavigation] = useCallbackPrompt(props.dirty), [showConfirm, setShowConfirm] = react_1.default.useState(false);
|
|
88
|
+
react_1.default.useEffect(() => {
|
|
89
|
+
if (showPrompt && !showConfirm) {
|
|
90
|
+
setShowConfirm(true);
|
|
91
|
+
if (confirm((0, words_1.getWords)().CONFIRMATION_FORM_LEAVE)) {
|
|
92
|
+
if (typeof confirmNavigation === "function") {
|
|
93
|
+
confirmNavigation();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
else if (typeof cancelNavigation === "function") {
|
|
97
|
+
setTimeout(() => {
|
|
98
|
+
cancelNavigation();
|
|
99
|
+
setShowConfirm(false);
|
|
100
|
+
// eslint-disable-next-line no-magic-numbers
|
|
101
|
+
}, 100);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}, [showConfirm, showPrompt]);
|
|
105
|
+
return (null);
|
|
106
|
+
};
|
|
107
|
+
return FormPrompt;
|
|
108
|
+
};
|
|
109
|
+
exports.createFormPromter = createFormPromter;
|
|
110
|
+
//# sourceMappingURL=FormPrompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormPrompt.js","sourceRoot":"","sources":["../src/FormPrompt.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FieldRendererProps } from "react-immutable-form/types";
|
|
3
|
+
export type CaptchaBoxProps = FieldRendererProps<HTMLInputElement> & {
|
|
4
|
+
readonly left?: string;
|
|
5
|
+
readonly right?: string;
|
|
6
|
+
readonly words: {
|
|
7
|
+
CaptchaVerify: string;
|
|
8
|
+
CaptchaTypeNumbers: string;
|
|
9
|
+
};
|
|
10
|
+
readonly id: string;
|
|
11
|
+
};
|
|
12
|
+
declare const CaptchaBox: React.MemoExoticComponent<(props: CaptchaBoxProps) => JSX.Element>;
|
|
13
|
+
export default CaptchaBox;
|
|
@@ -0,0 +1,44 @@
|
|
|
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 immutable_1 = __importDefault(require("immutable"));
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const CaptchaBoxInner = (props) => {
|
|
9
|
+
const { left, right, words, id, name, data = immutable_1.default.Map(), handleBlur, handleChange, handleFocus, customOnFocus, customOnBlur, customOnChange, disabled, hideError, elementProps, } = props, value = data.get("value") || "", meta = data.get("meta") || immutable_1.default.Map(), theError = meta.get("theError"), isTouched = meta.get("isTouched"), hasError = typeof theError !== "undefined", showError = isTouched && hasError, onFocus = (event) => {
|
|
10
|
+
if (typeof customOnFocus === "function") {
|
|
11
|
+
customOnFocus(event, handleFocus, name);
|
|
12
|
+
}
|
|
13
|
+
else {
|
|
14
|
+
handleFocus(name);
|
|
15
|
+
}
|
|
16
|
+
}, onBlur = (event) => {
|
|
17
|
+
if (typeof customOnBlur === "function") {
|
|
18
|
+
customOnBlur(event, handleBlur, name);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
handleBlur(name);
|
|
22
|
+
}
|
|
23
|
+
}, onChange = (event) => {
|
|
24
|
+
if (typeof customOnChange === "function") {
|
|
25
|
+
customOnChange(event, handleChange, name);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
handleChange(name, event.target.value);
|
|
29
|
+
}
|
|
30
|
+
}, theClass = `${showError ? "is-invalid" : ""} form-control`;
|
|
31
|
+
return (react_1.default.createElement("div", { className: "form-group row d-flex" },
|
|
32
|
+
react_1.default.createElement("label", { className: `${left ? `${left} align-self-center` : "col-md-4 text-md-end"} form-control-label align-self-center`, htmlFor: name },
|
|
33
|
+
`${words.CaptchaVerify} `,
|
|
34
|
+
react_1.default.createElement("i", { className: "fa fa-info-circle" })),
|
|
35
|
+
react_1.default.createElement("div", { className: right ? `${right} align-self-center` : "col-md-8 align-self-center" },
|
|
36
|
+
react_1.default.createElement("div", { className: "custom-class" },
|
|
37
|
+
react_1.default.createElement("span", { className: "custom-control-description text-muted" }, words.CaptchaTypeNumbers),
|
|
38
|
+
react_1.default.createElement("div", { className: "text-center my-1" },
|
|
39
|
+
react_1.default.createElement("img", { alt: "CaptchaBox", src: `/captcha/${id}.png` }))),
|
|
40
|
+
react_1.default.createElement("input", Object.assign({ className: theClass, disabled: disabled, id: name, name: name, onBlur: onBlur, onChange: onChange, onFocus: onFocus, type: "text", value: value }, elementProps)),
|
|
41
|
+
!hideError && showError ? (react_1.default.createElement("span", { className: "text-danger" }, theError)) : null)));
|
|
42
|
+
}, CaptchaBox = react_1.default.memo(CaptchaBoxInner);
|
|
43
|
+
exports.default = CaptchaBox;
|
|
44
|
+
//# sourceMappingURL=CaptchaBox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CaptchaBox.js","sourceRoot":"","sources":["../../../src/Inputs/Custom/CaptchaBox.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FieldRendererProps, HandleChangeFunc } from "react-immutable-form/types";
|
|
3
|
+
export type DateTemplatePropTypes = FieldRendererProps<HTMLInputElement> & {
|
|
4
|
+
readonly customClass?: any;
|
|
5
|
+
readonly customOnChange: (date: Date, handleDateChanged: () => void, handleChange: HandleChangeFunc) => any;
|
|
6
|
+
};
|
|
7
|
+
export declare const DateInputInner: (props: DateTemplatePropTypes) => JSX.Element;
|
|
8
|
+
export declare const RawDateInput: React.MemoExoticComponent<(props: DateTemplatePropTypes) => JSX.Element>;
|
|
@@ -0,0 +1,55 @@
|
|
|
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.RawDateInput = exports.DateInputInner = void 0;
|
|
7
|
+
const locale_1 = require("date-fns/locale");
|
|
8
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
9
|
+
const react_1 = __importDefault(require("react"));
|
|
10
|
+
const react_datepicker_1 = __importDefault(require("react-datepicker"));
|
|
11
|
+
const utility_1 = require("x25/utility");
|
|
12
|
+
const DateInputInner = (props) => {
|
|
13
|
+
const { hideError, customClass, name, data = immutable_1.default.Map() } = props, renderCount = react_1.default.useRef(0), value = data.get("value") || "", meta = data.get("meta") || immutable_1.default.Map(), theError = meta.get("theError"), isTouched = meta.get("isTouched"), datePickerProps = react_1.default.useMemo(() => props.componentProps, [props.componentProps]), hasError = typeof theError !== "undefined", defaultClass = "form-control w-110", showError = isTouched && hasError, theClass = `${showError ? "is-invalid" : ""} ${customClass ? customClass : defaultClass}`, theValue = react_1.default.useMemo(() => {
|
|
14
|
+
const momentObj = (0, utility_1.golangDateToMoment)(value);
|
|
15
|
+
if (momentObj.isValid()) {
|
|
16
|
+
const selectedDate = momentObj.toDate();
|
|
17
|
+
selectedDate.setHours(0, 0, 0, 0);
|
|
18
|
+
return selectedDate;
|
|
19
|
+
}
|
|
20
|
+
return "";
|
|
21
|
+
}, [value]), handleFocus = (event) => {
|
|
22
|
+
if (typeof props.customOnFocus === "function") {
|
|
23
|
+
props.customOnFocus(event, props.handleFocus, name);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
props.handleFocus(name);
|
|
27
|
+
}
|
|
28
|
+
}, handleBlur = (event) => {
|
|
29
|
+
if (typeof props.customOnBlur === "function") {
|
|
30
|
+
props.customOnBlur(event, props.handleBlur, name);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
props.handleBlur(name);
|
|
34
|
+
}
|
|
35
|
+
}, handleChange = (date) => {
|
|
36
|
+
const dateOnChange = () => {
|
|
37
|
+
props.handleChange(name, (0, utility_1.dateToGoFormat)(date));
|
|
38
|
+
};
|
|
39
|
+
if (typeof props.customOnChange === "function") {
|
|
40
|
+
props.customOnChange(date, dateOnChange, props.handleChange);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
dateOnChange();
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
react_1.default.useEffect(() => {
|
|
47
|
+
renderCount.current += 1;
|
|
48
|
+
});
|
|
49
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
50
|
+
react_1.default.createElement(react_datepicker_1.default, Object.assign({ className: theClass, dateFormat: "dd.MM.yyyy", id: props.name, locale: locale_1.ro, name: props.name, onBlur: handleBlur, onChange: handleChange, onFocus: handleFocus, selected: theValue }, datePickerProps)),
|
|
51
|
+
!hideError && showError ? (react_1.default.createElement("span", { className: "text-danger" }, theError)) : null));
|
|
52
|
+
};
|
|
53
|
+
exports.DateInputInner = DateInputInner;
|
|
54
|
+
exports.RawDateInput = react_1.default.memo(exports.DateInputInner);
|
|
55
|
+
//# sourceMappingURL=DateInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateInput.js","sourceRoot":"","sources":["../../src/Inputs/DateInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
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.RawDateTemplate = void 0;
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const DateInput_1 = require("./DateInput");
|
|
10
|
+
const util_1 = require("./util");
|
|
11
|
+
const DateTemplateInner = (props) => {
|
|
12
|
+
const { componentProps = immutable_1.default.Map() } = props, theError = props.data.getIn(["meta", "theError"]), hasError = typeof theError !== "undefined", { leftClass, rightClass, label } = react_1.default.useMemo(() => ((0, util_1.getTemplateInfo)(componentProps)), [componentProps]);
|
|
13
|
+
return (react_1.default.createElement("div", { className: "row" },
|
|
14
|
+
react_1.default.createElement("label", { className: leftClass, htmlFor: props.name }, label),
|
|
15
|
+
react_1.default.createElement("div", { className: rightClass },
|
|
16
|
+
react_1.default.createElement(DateInput_1.RawDateInput, Object.assign({}, props)),
|
|
17
|
+
!props.hideError && hasError ? (react_1.default.createElement("div", { className: "invalid-feedback" }, theError)) : null)));
|
|
18
|
+
};
|
|
19
|
+
exports.RawDateTemplate = react_1.default.memo(DateTemplateInner);
|
|
20
|
+
//# sourceMappingURL=DateTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DateTemplate.js","sourceRoot":"","sources":["../../src/Inputs/DateTemplate.tsx"],"names":[],"mappings":";;;;;;AAEA,0DAAkC;AAClC,kDAA0B;AAC1B,2CAAkE;AAClE,iCAAyC;AAEzC,MAAM,iBAAiB,GAAG,CAAC,KAA4B,EAAE,EAAE;IACzD,MACE,EAAE,cAAc,GAAG,mBAAS,CAAC,GAAG,EAAE,EAAG,GAAG,KAAK,EAC7C,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EACjD,QAAQ,GAAG,OAAO,QAAQ,KAAK,WAAW,EAC1C,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CACrD,IAAA,sBAAe,EAAC,cAAc,CAAC,CAChC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,uCAAK,SAAS,EAAC,KAAK;QAClB,yCAAO,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,IAC7C,KAAK,CACA;QACR,uCAAK,SAAS,EAAE,UAAU;YACxB,8BAAC,wBAAY,oBAAK,KAAK,EAAI;YAC1B,CAAC,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,CAAC,CAAC,CAC9B,uCAAK,SAAS,EAAC,kBAAkB,IAC9B,QAAQ,CACL,CACP,CAAC,CAAC,CAAC,IAAI,CACJ,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,eAAe,GAAG,eAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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.RawInputTemplate = void 0;
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const SimpleInput_1 = require("./SimpleInput");
|
|
10
|
+
const util_1 = require("./util");
|
|
11
|
+
const RawInputTemplate = (props) => {
|
|
12
|
+
const { componentProps = immutable_1.default.Map() } = props, { leftClass, rightClass, label } = react_1.default.useMemo(() => ((0, util_1.getTemplateInfo)(componentProps)), [componentProps]);
|
|
13
|
+
return (react_1.default.createElement("div", { className: "row" },
|
|
14
|
+
react_1.default.createElement("label", { className: leftClass, htmlFor: props.name }, label),
|
|
15
|
+
react_1.default.createElement("div", { className: rightClass },
|
|
16
|
+
react_1.default.createElement(SimpleInput_1.RawSimpleInput, Object.assign({}, props)))));
|
|
17
|
+
};
|
|
18
|
+
exports.RawInputTemplate = RawInputTemplate;
|
|
19
|
+
//# sourceMappingURL=InputTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputTemplate.js","sourceRoot":"","sources":["../../src/Inputs/InputTemplate.tsx"],"names":[],"mappings":";;;;;;AAEA,0DAAkC;AAClC,kDAA0B;AAC1B,+CAAiE;AACjE,iCAAyC;AAIlC,MAAM,gBAAgB,GAAG,CAAC,KAA6B,EAAE,EAAE;IAChE,MACE,EAAE,cAAc,GAAG,mBAAS,CAAC,GAAG,EAAE,EAAG,GAAG,KAAK,EAC7C,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CACrD,IAAA,sBAAe,EAAC,cAAc,CAAC,CAChC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,uCAAK,SAAS,EAAC,KAAK;QAClB,yCAAO,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,IAC7C,KAAK,CACA;QACR,uCAAK,SAAS,EAAE,UAAU;YACxB,8BAAC,4BAAc,oBAAK,KAAK,EAAI,CACzB,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAjBW,QAAA,gBAAgB,oBAiB3B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { HandleBlurFunc, HandleChangeFunc } from "react-immutable-form/types";
|
|
3
|
+
import { SimpleInputProps } from "./SimpleInput";
|
|
4
|
+
type handleNumericBlurFunc = () => any;
|
|
5
|
+
type handleNumericChangeFunc = () => any;
|
|
6
|
+
export type InputTemplatePropTypes = SimpleInputProps & {
|
|
7
|
+
readonly customOnBlur?: (event: React.FocusEvent<HTMLInputElement, Element>, handleNumericBlur: handleNumericBlurFunc, handleBlur: HandleBlurFunc, name: string) => any;
|
|
8
|
+
readonly customOnChange?: (event: React.ChangeEvent<HTMLInputElement>, handleNumericChange: handleNumericChangeFunc, handleChange: HandleChangeFunc, name: string) => any;
|
|
9
|
+
};
|
|
10
|
+
export type formatValueFunc = (raw: any, optional?: boolean) => string;
|
|
11
|
+
export declare const RawNumericInput: React.MemoExoticComponent<(props: InputTemplatePropTypes) => JSX.Element>;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,74 @@
|
|
|
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.RawNumericInput = void 0;
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const utility_1 = require("x25/utility");
|
|
10
|
+
const util_numeric_1 = require("./util-numeric");
|
|
11
|
+
const NumericInputInner = (props) => {
|
|
12
|
+
const renderCount = react_1.default.useRef(0), { componentProps = immutable_1.default.Map(), customClass, name, data = immutable_1.default.Map() } = props, meta = data.get("meta") || immutable_1.default.Map(), inputValue = data.get("value") || "", theError = meta.get("theError"), isTouched = meta.get("isTouched"), currency = componentProps && componentProps.get("currency"), precision = componentProps && componentProps.get("precision") || 2, optional = componentProps && componentProps.get("optional"), formatValue = componentProps && componentProps.get("formatValue") || utility_1.formatZeroValue, hasError = typeof theError !== "undefined", showError = isTouched && hasError, theClass = `${showError ? "is-invalid" : ""} ${customClass ? customClass : ""} form-control`, [value, setValue] = react_1.default.useState(inputValue), noCurrency = (typeof currency === "undefined" || Boolean(currency) === false), valueToShow = formatValue(value, optional), updateNumericValue = (targetValue) => {
|
|
13
|
+
setValue(targetValue);
|
|
14
|
+
let valueToStore = targetValue;
|
|
15
|
+
if ((0, util_numeric_1.isFloat)((0, util_numeric_1.floatToEnglishComma)(targetValue))) {
|
|
16
|
+
valueToStore = (0, util_numeric_1.getFloatValueToStore)(targetValue);
|
|
17
|
+
}
|
|
18
|
+
props.handleChange(name, valueToStore);
|
|
19
|
+
}, onBlur = (event) => {
|
|
20
|
+
const numericHandleOnBlur = () => {
|
|
21
|
+
const newValue = (0, util_numeric_1.clearFloatOnBlur)(value, precision), hasChanged = value !== newValue;
|
|
22
|
+
if (hasChanged) {
|
|
23
|
+
updateNumericValue(newValue);
|
|
24
|
+
}
|
|
25
|
+
props.handleBlur(name);
|
|
26
|
+
};
|
|
27
|
+
if (typeof props.customOnBlur === "function") {
|
|
28
|
+
props.customOnBlur(event, numericHandleOnBlur, props.handleBlur, name);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
numericHandleOnBlur();
|
|
32
|
+
}
|
|
33
|
+
}, onChange = (event) => {
|
|
34
|
+
if (typeof props.customOnChange === "function") {
|
|
35
|
+
const wrapper = () => {
|
|
36
|
+
updateNumericValue(event.target.value);
|
|
37
|
+
};
|
|
38
|
+
props.customOnChange(event, wrapper, props.handleChange, name);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
updateNumericValue(event.target.value);
|
|
42
|
+
}
|
|
43
|
+
}, onFocus = (event) => {
|
|
44
|
+
if (typeof props.customOnFocus === "function") {
|
|
45
|
+
props.customOnFocus(event, props.handleFocus, name);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
props.handleFocus(name);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
react_1.default.useEffect(() => {
|
|
52
|
+
const hasFloat = (0, util_numeric_1.isFloat)(inputValue), wasValidatedWithErrors = !hasFloat && (typeof theError === "string");
|
|
53
|
+
if (hasFloat || wasValidatedWithErrors) {
|
|
54
|
+
updateNumericValue(inputValue);
|
|
55
|
+
}
|
|
56
|
+
}, [data, theError]);
|
|
57
|
+
react_1.default.useEffect(() => {
|
|
58
|
+
renderCount.current += 1;
|
|
59
|
+
});
|
|
60
|
+
if (noCurrency) {
|
|
61
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
62
|
+
react_1.default.createElement("span", { className: "badge text-bg-primary" }, renderCount.current),
|
|
63
|
+
react_1.default.createElement("input", Object.assign({ className: theClass, disabled: props.disabled, id: name, name: name, onBlur: onBlur, onChange: onChange, onFocus: onFocus, type: props.theType, value: valueToShow }, props.elementProps)),
|
|
64
|
+
!props.hideError && showError ? (react_1.default.createElement("span", { className: "text-danger" }, theError)) : null));
|
|
65
|
+
}
|
|
66
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
67
|
+
react_1.default.createElement("div", { className: "input-group" },
|
|
68
|
+
react_1.default.createElement("span", { className: "badge text-bg-primary input-group-text" }, renderCount.current),
|
|
69
|
+
react_1.default.createElement("input", Object.assign({ className: theClass, disabled: props.disabled, id: name, name: name, onBlur: onBlur, onChange: onChange, onFocus: onFocus, type: props.theType, value: value }, props.elementProps)),
|
|
70
|
+
react_1.default.createElement("span", { className: "input-group-text" }, currency)),
|
|
71
|
+
!props.hideError && showError ? (react_1.default.createElement("span", { className: "text-danger" }, theError)) : null));
|
|
72
|
+
};
|
|
73
|
+
exports.RawNumericInput = react_1.default.memo(NumericInputInner);
|
|
74
|
+
//# sourceMappingURL=NumericInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumericInput.js","sourceRoot":"","sources":["../../src/Inputs/NumericInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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.RawNumericTemplate = void 0;
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const NumericInput_1 = require("./NumericInput");
|
|
10
|
+
const util_1 = require("./util");
|
|
11
|
+
const NumericTemplateInner = (props) => {
|
|
12
|
+
const { componentProps = immutable_1.default.Map() } = props, { leftClass, rightClass, label } = react_1.default.useMemo(() => ((0, util_1.getTemplateInfo)(componentProps)), [componentProps]);
|
|
13
|
+
return (react_1.default.createElement("div", { className: "row" },
|
|
14
|
+
react_1.default.createElement("label", { className: leftClass, htmlFor: props.name }, label),
|
|
15
|
+
react_1.default.createElement("div", { className: rightClass },
|
|
16
|
+
react_1.default.createElement(NumericInput_1.RawNumericInput, Object.assign({}, props)))));
|
|
17
|
+
};
|
|
18
|
+
exports.RawNumericTemplate = react_1.default.memo(NumericTemplateInner);
|
|
19
|
+
//# sourceMappingURL=NumericTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NumericTemplate.js","sourceRoot":"","sources":["../../src/Inputs/NumericTemplate.tsx"],"names":[],"mappings":";;;;;;AAEA,0DAAkC;AAClC,kDAA0B;AAC1B,iDAAyE;AACzE,iCAAyC;AAEzC,MAAM,oBAAoB,GAAG,CAAC,KAA6B,EAAE,EAAE;IAC7D,MACE,EAAE,cAAc,GAAG,mBAAS,CAAC,GAAG,EAAE,EAAG,GAAG,KAAK,EAC7C,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CACrD,IAAA,sBAAe,EAAC,cAAc,CAAC,CAChC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,uCAAK,SAAS,EAAC,KAAK;QAClB,yCAAO,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,IAC7C,KAAK,CACA;QACR,uCAAK,SAAS,EAAE,UAAU;YACxB,8BAAC,8BAAe,oBAAK,KAAK,EAAI,CAC1B,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,kBAAkB,GAAG,eAAK,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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.RawSelectTemplate = void 0;
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const SimpleSelect_1 = require("./SimpleSelect");
|
|
10
|
+
const util_1 = require("./util");
|
|
11
|
+
const SelectTemplateInner = (props) => {
|
|
12
|
+
const { componentProps = immutable_1.default.Map() } = props, { leftClass, rightClass, label } = react_1.default.useMemo(() => ((0, util_1.getTemplateInfo)(componentProps)), [componentProps]);
|
|
13
|
+
return (react_1.default.createElement("div", { className: "row" },
|
|
14
|
+
react_1.default.createElement("label", { className: leftClass, htmlFor: props.name }, label),
|
|
15
|
+
react_1.default.createElement("div", { className: rightClass },
|
|
16
|
+
react_1.default.createElement(SimpleSelect_1.RawSimpleSelect, Object.assign({}, props)))));
|
|
17
|
+
};
|
|
18
|
+
exports.RawSelectTemplate = react_1.default.memo(SelectTemplateInner);
|
|
19
|
+
//# sourceMappingURL=SelectTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SelectTemplate.js","sourceRoot":"","sources":["../../src/Inputs/SelectTemplate.tsx"],"names":[],"mappings":";;;;;;AAEA,0DAAkC;AAClC,kDAA0B;AAC1B,iDAAoE;AACpE,iCAAyC;AAEzC,MAAM,mBAAmB,GAAG,CAAC,KAAwB,EAAE,EAAE;IACvD,MACE,EAAE,cAAc,GAAG,mBAAS,CAAC,GAAG,EAAE,EAAG,GAAG,KAAK,EAC7C,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CACrD,IAAA,sBAAe,EAAC,cAAc,CAAC,CAChC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,uCAAK,SAAS,EAAC,KAAK;QAClB,yCAAO,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,IAC7C,KAAK,CACA;QACR,uCAAK,SAAS,EAAE,UAAU;YACxB,8BAAC,8BAAe,oBAAK,KAAK,EAAI,CAC1B,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,iBAAiB,GAAG,eAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FieldRendererProps } from "react-immutable-form/types";
|
|
3
|
+
export type SimpleInputProps = FieldRendererProps<HTMLInputElement> & {
|
|
4
|
+
readonly customClass?: any;
|
|
5
|
+
readonly theType?: "input" | "password";
|
|
6
|
+
};
|
|
7
|
+
export declare const RawSimpleInput: React.MemoExoticComponent<(props: SimpleInputProps) => JSX.Element>;
|
|
@@ -0,0 +1,41 @@
|
|
|
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.RawSimpleInput = void 0;
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const SimpleInputInner = (props) => {
|
|
10
|
+
const { customClass, name, data = immutable_1.default.Map(), handleBlur, handleChange, handleFocus } = props, renderCount = react_1.default.useRef(0), value = data.get("value") || "", meta = data.get("meta") || immutable_1.default.Map(), theError = meta.get("theError"), isTouched = meta.get("isTouched"), onFocus = (event) => {
|
|
11
|
+
if (typeof props.customOnFocus === "function") {
|
|
12
|
+
props.customOnFocus(event, handleFocus, name);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
handleFocus(name);
|
|
16
|
+
}
|
|
17
|
+
}, onBlur = (event) => {
|
|
18
|
+
if (typeof props.customOnBlur === "function") {
|
|
19
|
+
props.customOnBlur(event, handleBlur, name);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
handleBlur(name);
|
|
23
|
+
}
|
|
24
|
+
}, onChange = (event) => {
|
|
25
|
+
if (typeof props.customOnChange === "function") {
|
|
26
|
+
props.customOnChange(event, handleChange, name);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
handleChange(name, event.target.value);
|
|
30
|
+
}
|
|
31
|
+
}, hasError = typeof theError !== "undefined", showError = isTouched && hasError, theClass = `${showError ? "is-invalid" : ""} ${customClass ? customClass : ""} form-control`;
|
|
32
|
+
react_1.default.useEffect(() => {
|
|
33
|
+
renderCount.current += 1;
|
|
34
|
+
});
|
|
35
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
36
|
+
react_1.default.createElement("span", { className: "badge text-bg-primary" }, renderCount.current),
|
|
37
|
+
react_1.default.createElement("input", Object.assign({ className: theClass, disabled: props.disabled, id: name, name: name, onBlur: onBlur, onChange: onChange, onFocus: onFocus, type: props.theType, value: value }, props.elementProps)),
|
|
38
|
+
!props.hideError && showError ? (react_1.default.createElement("span", { className: "text-danger" }, theError)) : null));
|
|
39
|
+
};
|
|
40
|
+
exports.RawSimpleInput = react_1.default.memo(SimpleInputInner);
|
|
41
|
+
//# sourceMappingURL=SimpleInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleInput.js","sourceRoot":"","sources":["../../src/Inputs/SimpleInput.tsx"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAClC,kDAA0B;AAQ1B,MACE,gBAAgB,GAAG,CAAC,KAAuB,EAAE,EAAE;IAC7C,MACE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,mBAAS,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,KAAK,EAC5F,WAAW,GAAG,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAC7B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAC/B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,mBAAS,CAAC,GAAG,EAAE,EAC1C,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAuB,EACrD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAY,EAC5C,OAAO,GAAG,CAAC,KAAmD,EAAE,EAAE;QAChE,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YAC9C,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EACD,MAAM,GAAG,CAAC,KAAkD,EAAE,EAAE;QAC9D,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YAC7C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,EACD,QAAQ,GAAG,CAAC,KAA0C,EAAG,EAAE;QACzD,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YAC/C,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,EACD,QAAQ,GAAG,OAAO,QAAQ,KAAK,WAAW,EAC1C,SAAS,GAAG,SAAS,IAAI,QAAQ,EACjC,QAAQ,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC;IAE/F,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,OAAO,CACL;QACE,wCAAM,SAAS,EAAC,uBAAuB,IAAE,WAAW,CAAC,OAAO,CAAQ;QACpE,uDACE,SAAS,EAAE,QAAQ,EACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,EAAE,EAAE,IAAI,EACR,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,KAAK,CAAC,OAAO,EACnB,KAAK,EAAE,KAAK,IACR,KAAK,CAAC,YAAY,EACtB;QAEA,CAAC,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAC9B,wCAAM,SAAS,EAAC,aAAa,IAAE,QAAQ,CAAQ,CAChD,CAAC,CAAC,CAAC,IAAI,CAET,CACJ,CAAC;AACJ,CAAC,CAAC;AAES,QAAA,cAAc,GAAG,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FieldRendererProps } from "react-immutable-form/types";
|
|
3
|
+
export type SimpleSelectProps = FieldRendererProps<HTMLSelectElement> & {
|
|
4
|
+
readonly customClass?: any;
|
|
5
|
+
};
|
|
6
|
+
export declare const RawSimpleSelect: React.MemoExoticComponent<(props: SimpleSelectProps) => JSX.Element>;
|
|
@@ -0,0 +1,44 @@
|
|
|
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.RawSimpleSelect = void 0;
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const words_1 = require("react-immutable-form/words");
|
|
10
|
+
const ImmutableListOfOptions = ({ list, valueKey, nameKey }) => (react_1.default.createElement(react_1.default.Fragment, null, list.map((current) => {
|
|
11
|
+
const optionValue = current.get(valueKey), optionName = current.get(nameKey);
|
|
12
|
+
return (react_1.default.createElement("option", { key: optionValue, value: optionValue }, optionName));
|
|
13
|
+
}))), SimpleSelectInner = (props) => {
|
|
14
|
+
const { customClass, name, data = immutable_1.default.Map(), handleBlur, handleChange, handleFocus, } = props, componentProps = props.componentProps || immutable_1.default.Map(), value = props.data.get("value"), meta = data.get("meta") || immutable_1.default.Map(), theError = meta.get("theError"), isTouched = meta.get("isTouched"), onFocus = (event) => {
|
|
15
|
+
if (typeof props.customOnFocus === "function") {
|
|
16
|
+
props.customOnFocus(event, handleFocus, name);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
handleFocus(name);
|
|
20
|
+
}
|
|
21
|
+
}, onBlur = (event) => {
|
|
22
|
+
if (typeof props.customOnBlur === "function") {
|
|
23
|
+
props.customOnBlur(event, handleBlur, name);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
handleBlur(name);
|
|
27
|
+
}
|
|
28
|
+
}, onChange = (event) => {
|
|
29
|
+
const theValue = event.target.value;
|
|
30
|
+
if (typeof props.customOnChange === "function") {
|
|
31
|
+
props.customOnChange(event, handleChange, name);
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
handleChange(name, theValue);
|
|
35
|
+
}
|
|
36
|
+
}, hasError = typeof theError !== "undefined", showError = isTouched && hasError, theClass = `${showError ? "is-invalid" : ""} ${customClass ? customClass : ""} form-select`, { valueKey = "value", nameKey = "name", isImmutable = false, showEmptyOption = false, } = react_1.default.useMemo(() => (componentProps === null || componentProps === void 0 ? void 0 : componentProps.toJS()) || {}, [componentProps]), list = componentProps.get("list") || immutable_1.default.List();
|
|
37
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
38
|
+
react_1.default.createElement("select", { className: theClass, disabled: props.disabled, id: name, name: name, onBlur: onBlur, onChange: onChange, onFocus: onFocus, value: value },
|
|
39
|
+
showEmptyOption ? react_1.default.createElement("option", { value: "" }, (0, words_1.getWords)().PLEASE_SELECT_OPTION) : null,
|
|
40
|
+
isImmutable ? (react_1.default.createElement(ImmutableListOfOptions, { list: list, nameKey: nameKey, valueKey: valueKey })) : (list.map(({ [valueKey]: optionValue, [nameKey]: optionName }) => (react_1.default.createElement("option", { key: optionValue, value: optionValue }, optionName))))),
|
|
41
|
+
!props.hideError && showError ? (react_1.default.createElement("span", { className: "text-danger" }, theError)) : null));
|
|
42
|
+
};
|
|
43
|
+
exports.RawSimpleSelect = react_1.default.memo(SimpleSelectInner);
|
|
44
|
+
//# sourceMappingURL=SimpleSelect.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleSelect.js","sourceRoot":"","sources":["../../src/Inputs/SimpleSelect.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FieldRendererProps } from "react-immutable-form/types";
|
|
3
|
+
export type SimpleTextareaProps = FieldRendererProps<HTMLTextAreaElement> & {
|
|
4
|
+
readonly customClass?: any;
|
|
5
|
+
};
|
|
6
|
+
export declare const RawSimpleTextarea: React.MemoExoticComponent<(props: SimpleTextareaProps) => JSX.Element>;
|
|
@@ -0,0 +1,41 @@
|
|
|
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.RawSimpleTextarea = void 0;
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const SimpleTextareaInner = (props) => {
|
|
10
|
+
const { customClass, name, data = immutable_1.default.Map(), handleBlur, handleChange, handleFocus } = props, renderCount = react_1.default.useRef(0), value = data.get("value") || "", meta = data.get("meta") || immutable_1.default.Map(), theError = meta.get("theError"), isTouched = meta.get("isTouched"), onFocus = (event) => {
|
|
11
|
+
if (typeof props.customOnFocus === "function") {
|
|
12
|
+
props.customOnFocus(event, handleFocus, name);
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
handleFocus(name);
|
|
16
|
+
}
|
|
17
|
+
}, onBlur = (event) => {
|
|
18
|
+
if (typeof props.customOnBlur === "function") {
|
|
19
|
+
props.customOnBlur(event, handleBlur, name);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
handleBlur(name);
|
|
23
|
+
}
|
|
24
|
+
}, onChange = (event) => {
|
|
25
|
+
if (typeof props.customOnChange === "function") {
|
|
26
|
+
props.customOnChange(event, handleChange, name);
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
handleChange(name, event.target.value);
|
|
30
|
+
}
|
|
31
|
+
}, hasError = typeof theError !== "undefined", showError = isTouched && hasError, theClass = `${showError ? "is-invalid" : ""} ${customClass ? customClass : ""} form-control`;
|
|
32
|
+
react_1.default.useEffect(() => {
|
|
33
|
+
renderCount.current += 1;
|
|
34
|
+
});
|
|
35
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
36
|
+
react_1.default.createElement("span", { className: "badge text-bg-primary" }, renderCount.current),
|
|
37
|
+
react_1.default.createElement("textarea", Object.assign({ className: theClass, disabled: props.disabled, id: name, name: name, onBlur: onBlur, onChange: onChange, onFocus: onFocus, value: value }, props.elementProps)),
|
|
38
|
+
!props.hideError && showError ? (react_1.default.createElement("span", { className: "text-danger" }, theError)) : null));
|
|
39
|
+
};
|
|
40
|
+
exports.RawSimpleTextarea = react_1.default.memo(SimpleTextareaInner);
|
|
41
|
+
//# sourceMappingURL=SimpleTextarea.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SimpleTextarea.js","sourceRoot":"","sources":["../../src/Inputs/SimpleTextarea.tsx"],"names":[],"mappings":";;;;;;AAAA,0DAAkC;AAClC,kDAA0B;AAO1B,MACE,mBAAmB,GAAG,CAAC,KAA0B,EAAE,EAAE;IACnD,MACE,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,GAAG,mBAAS,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,KAAK,EAC5F,WAAW,GAAG,eAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAC7B,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,EAC/B,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,mBAAS,CAAC,GAAG,EAAE,EAC1C,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAuB,EACrD,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAY,EAC5C,OAAO,GAAG,CAAC,KAAsD,EAAE,EAAE;QACnE,IAAI,OAAO,KAAK,CAAC,aAAa,KAAK,UAAU,EAAE,CAAC;YAC9C,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,EACD,MAAM,GAAG,CAAC,KAAqD,EAAE,EAAE;QACjE,IAAI,OAAO,KAAK,CAAC,YAAY,KAAK,UAAU,EAAE,CAAC;YAC7C,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,CAAC;QACnB,CAAC;IACH,CAAC,EACD,QAAQ,GAAG,CAAC,KAA6C,EAAG,EAAE;QAC5D,IAAI,OAAO,KAAK,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;YAC/C,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACzC,CAAC;IACH,CAAC,EACD,QAAQ,GAAG,OAAO,QAAQ,KAAK,WAAW,EAC1C,SAAS,GAAG,SAAS,IAAI,QAAQ,EACjC,QAAQ,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,IAAI,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC;IAE/F,eAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,OAAO,CACL;QACE,wCAAM,SAAS,EAAC,uBAAuB,IAAE,WAAW,CAAC,OAAO,CAAQ;QACpE,0DACE,SAAS,EAAE,QAAQ,EACnB,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,EAAE,EAAE,IAAI,EACR,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAa,EACrB,QAAQ,EAAE,QAAe,EACzB,OAAO,EAAE,OAAc,EACvB,KAAK,EAAE,KAAK,IACR,KAAK,CAAC,YAAY,EACtB;QAEA,CAAC,KAAK,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAC9B,wCAAM,SAAS,EAAC,aAAa,IAAE,QAAQ,CAAQ,CAChD,CAAE,CAAC,CAAC,IAAI,CAEV,CACJ,CAAC;AACJ,CAAC,CAAC;AAES,QAAA,iBAAiB,GAAG,eAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { FieldRendererProps } from "react-immutable-form/types";
|
|
3
|
+
export type SwitchInputProps = FieldRendererProps<HTMLInputElement> & {
|
|
4
|
+
readonly customClass?: any;
|
|
5
|
+
};
|
|
6
|
+
export declare const RawSwitchInput: React.MemoExoticComponent<(props: SwitchInputProps) => JSX.Element>;
|
|
@@ -0,0 +1,45 @@
|
|
|
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.RawSwitchInput = void 0;
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const SwitchInputInner = (props) => {
|
|
10
|
+
var _a, _b;
|
|
11
|
+
const { customClass, name, data = immutable_1.default.Map(), handleBlur, handleChange, handleFocus } = props, renderCount = react_1.default.useRef(0), value = data.get("value"), checked = value === true, meta = data.get("meta") || immutable_1.default.Map(), theError = meta.get("theError"), onFocus = (event) => {
|
|
12
|
+
if (typeof props.customOnFocus === "function") {
|
|
13
|
+
props.customOnFocus(event, handleFocus, name);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
handleFocus(name);
|
|
17
|
+
}
|
|
18
|
+
}, onBlur = (event) => {
|
|
19
|
+
if (typeof props.customOnBlur === "function") {
|
|
20
|
+
props.customOnBlur(event, handleBlur, name);
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
handleBlur(name);
|
|
24
|
+
}
|
|
25
|
+
}, onChange = (event) => {
|
|
26
|
+
const theValue = event.target.checked === true;
|
|
27
|
+
if (typeof props.customOnChange === "function") {
|
|
28
|
+
props.customOnChange(event, handleChange, name);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
handleChange(name, theValue);
|
|
32
|
+
}
|
|
33
|
+
}, hasError = typeof theError !== "undefined", theClass = `${hasError ? "is-invalid" : ""} ${customClass ? customClass : ""} form-check-input`, wrapperClassName = `form-check ${((_a = props.componentProps) === null || _a === void 0 ? void 0 : _a.get("checkbox")) ? "" : "form-switch"}`;
|
|
34
|
+
react_1.default.useEffect(() => {
|
|
35
|
+
renderCount.current += 1;
|
|
36
|
+
});
|
|
37
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
38
|
+
react_1.default.createElement("span", { className: "badge text-bg-primary" }, renderCount.current),
|
|
39
|
+
react_1.default.createElement("div", { className: wrapperClassName },
|
|
40
|
+
react_1.default.createElement("input", Object.assign({ checked: checked, className: theClass, disabled: props.disabled, id: name, name: name, onBlur: onBlur, onChange: onChange, onFocus: onFocus, type: "checkbox", value: value }, props.elementProps)),
|
|
41
|
+
react_1.default.createElement("label", { className: "form-check-label", htmlFor: name }, (_b = props.componentProps) === null || _b === void 0 ? void 0 : _b.get("label")),
|
|
42
|
+
!props.hideError && hasError ? (react_1.default.createElement("span", { className: "text-danger" }, theError)) : null)));
|
|
43
|
+
};
|
|
44
|
+
exports.RawSwitchInput = react_1.default.memo(SwitchInputInner);
|
|
45
|
+
//# sourceMappingURL=SwitchInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwitchInput.js","sourceRoot":"","sources":["../../src/Inputs/SwitchInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,19 @@
|
|
|
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.RawTextareaTemplate = void 0;
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const SimpleTextarea_1 = require("./SimpleTextarea");
|
|
10
|
+
const util_1 = require("./util");
|
|
11
|
+
const TextareaTemplateInner = (props) => {
|
|
12
|
+
const { componentProps = immutable_1.default.Map() } = props, { leftClass, rightClass, label } = react_1.default.useMemo(() => ((0, util_1.getTemplateInfo)(componentProps)), [componentProps]);
|
|
13
|
+
return (react_1.default.createElement("div", { className: "row" },
|
|
14
|
+
react_1.default.createElement("label", { className: leftClass, htmlFor: props.name }, label),
|
|
15
|
+
react_1.default.createElement("div", { className: rightClass },
|
|
16
|
+
react_1.default.createElement(SimpleTextarea_1.RawSimpleTextarea, Object.assign({}, props)))));
|
|
17
|
+
};
|
|
18
|
+
exports.RawTextareaTemplate = react_1.default.memo(TextareaTemplateInner);
|
|
19
|
+
//# sourceMappingURL=TextareaTemplate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextareaTemplate.js","sourceRoot":"","sources":["../../src/Inputs/TextareaTemplate.tsx"],"names":[],"mappings":";;;;;;AAEA,0DAAkC;AAClC,kDAA0B;AAC1B,qDAA0E;AAC1E,iCAAyC;AAEzC,MAAM,qBAAqB,GAAG,CAAC,KAA0B,EAAE,EAAE;IAC3D,MACE,EAAE,cAAc,GAAG,mBAAS,CAAC,GAAG,EAAE,EAAG,GAAG,KAAK,EAC7C,EAAE,SAAS,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,eAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CACrD,IAAA,sBAAe,EAAC,cAAc,CAAC,CAChC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,uCAAK,SAAS,EAAC,KAAK;QAClB,yCAAO,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,IAC7C,KAAK,CACA;QACR,uCAAK,SAAS,EAAE,UAAU;YACxB,8BAAC,kCAAiB,oBAAK,KAAK,EAAI,CAC5B,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEW,QAAA,mBAAmB,GAAG,eAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { RawDateInput as DateInput } from "./DateInput";
|
|
2
|
+
import { RawDateTemplate as DateTemplate } from "./DateTemplate";
|
|
3
|
+
import { RawInputTemplate as InputTemplate } from "./InputTemplate";
|
|
4
|
+
import { RawNumericInput as NumericInput } from "./NumericInput";
|
|
5
|
+
import { RawNumericTemplate as NumericTemplate } from "./NumericTemplate";
|
|
6
|
+
import { RawSelectTemplate as SelectTemplate } from "./SelectTemplate";
|
|
7
|
+
import { RawSimpleInput as SimpleInput } from "./SimpleInput";
|
|
8
|
+
import { RawSimpleSelect as SimpleSelect } from "./SimpleSelect";
|
|
9
|
+
import { RawSimpleTextarea as SimpleTextarea } from "./SimpleTextarea";
|
|
10
|
+
import { RawSwitchInput as SwitchInput } from "./SwitchInput";
|
|
11
|
+
import { RawTextareaTemplate as TextareaTemplate } from "./TextareaTemplate";
|
|
12
|
+
export { DateInput, DateTemplate, InputTemplate, NumericInput, NumericTemplate, SelectTemplate, SimpleInput, SimpleSelect, SimpleTextarea, SwitchInput, TextareaTemplate, };
|
package/Inputs/index.js
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TextareaTemplate = exports.SwitchInput = exports.SimpleTextarea = exports.SimpleSelect = exports.SimpleInput = exports.SelectTemplate = exports.NumericTemplate = exports.NumericInput = exports.InputTemplate = exports.DateTemplate = exports.DateInput = void 0;
|
|
4
|
+
const DateInput_1 = require("./DateInput");
|
|
5
|
+
Object.defineProperty(exports, "DateInput", { enumerable: true, get: function () { return DateInput_1.RawDateInput; } });
|
|
6
|
+
const DateTemplate_1 = require("./DateTemplate");
|
|
7
|
+
Object.defineProperty(exports, "DateTemplate", { enumerable: true, get: function () { return DateTemplate_1.RawDateTemplate; } });
|
|
8
|
+
const InputTemplate_1 = require("./InputTemplate");
|
|
9
|
+
Object.defineProperty(exports, "InputTemplate", { enumerable: true, get: function () { return InputTemplate_1.RawInputTemplate; } });
|
|
10
|
+
const NumericInput_1 = require("./NumericInput");
|
|
11
|
+
Object.defineProperty(exports, "NumericInput", { enumerable: true, get: function () { return NumericInput_1.RawNumericInput; } });
|
|
12
|
+
const NumericTemplate_1 = require("./NumericTemplate");
|
|
13
|
+
Object.defineProperty(exports, "NumericTemplate", { enumerable: true, get: function () { return NumericTemplate_1.RawNumericTemplate; } });
|
|
14
|
+
const SelectTemplate_1 = require("./SelectTemplate");
|
|
15
|
+
Object.defineProperty(exports, "SelectTemplate", { enumerable: true, get: function () { return SelectTemplate_1.RawSelectTemplate; } });
|
|
16
|
+
const SimpleInput_1 = require("./SimpleInput");
|
|
17
|
+
Object.defineProperty(exports, "SimpleInput", { enumerable: true, get: function () { return SimpleInput_1.RawSimpleInput; } });
|
|
18
|
+
const SimpleSelect_1 = require("./SimpleSelect");
|
|
19
|
+
Object.defineProperty(exports, "SimpleSelect", { enumerable: true, get: function () { return SimpleSelect_1.RawSimpleSelect; } });
|
|
20
|
+
const SimpleTextarea_1 = require("./SimpleTextarea");
|
|
21
|
+
Object.defineProperty(exports, "SimpleTextarea", { enumerable: true, get: function () { return SimpleTextarea_1.RawSimpleTextarea; } });
|
|
22
|
+
const SwitchInput_1 = require("./SwitchInput");
|
|
23
|
+
Object.defineProperty(exports, "SwitchInput", { enumerable: true, get: function () { return SwitchInput_1.RawSwitchInput; } });
|
|
24
|
+
const TextareaTemplate_1 = require("./TextareaTemplate");
|
|
25
|
+
Object.defineProperty(exports, "TextareaTemplate", { enumerable: true, get: function () { return TextareaTemplate_1.RawTextareaTemplate; } });
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Inputs/index.tsx"],"names":[],"mappings":";;;AAAA,2CAAwD;AAatD,0FAbuB,wBAAS,OAavB;AAZX,iDAAiE;AAa/D,6FAb0B,8BAAY,OAa1B;AAZd,mDAAoE;AAalE,8FAb2B,gCAAa,OAa3B;AAZf,iDAAiE;AAa/D,6FAb0B,8BAAY,OAa1B;AAZd,uDAA0E;AAaxE,gGAb6B,oCAAe,OAa7B;AAZjB,qDAAuE;AAarE,+FAb4B,kCAAc,OAa5B;AAZhB,+CAA8D;AAa5D,4FAbyB,4BAAW,OAazB;AAZb,iDAAiE;AAa/D,6FAb0B,8BAAY,OAa1B;AAZd,qDAAuE;AAarE,+FAb4B,kCAAc,OAa5B;AAZhB,+CAA8D;AAa5D,4FAbyB,4BAAW,OAazB;AAZb,yDAA6E;AAa3E,iGAb8B,sCAAgB,OAa9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const floatToEnglishComma: (raw: any) => string, isFloat: (raw: string) => boolean, getFloatValueToStore: (raw: any) => number, clearFloatOnBlur: (value: any, precision: number) => string;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/* eslint-disable require-unicode-regexp */
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.clearFloatOnBlur = exports.getFloatValueToStore = exports.isFloat = exports.floatToEnglishComma = void 0;
|
|
5
|
+
const floatToLocalComma = (raw) => String(raw).replace(".", ",");
|
|
6
|
+
const floatToEnglishComma = (raw) => String(raw).replace(",", "."), isFloat = (raw) => {
|
|
7
|
+
const floatRegex = /^-?\d+(?:[.]\d*?)?$/;
|
|
8
|
+
return floatRegex.test(raw);
|
|
9
|
+
}, getFloatValueToStore = (raw) => {
|
|
10
|
+
const parsedFloat = (0, exports.floatToEnglishComma)(raw), parsedValue = parseFloat(parsedFloat), canGetNumericValue = (0, exports.isFloat)(parsedFloat) && !isNaN(parsedValue);
|
|
11
|
+
if (canGetNumericValue) {
|
|
12
|
+
return parsedValue;
|
|
13
|
+
}
|
|
14
|
+
return 0;
|
|
15
|
+
}, clearFloatOnBlur = (value, precision) => {
|
|
16
|
+
const parts = floatToLocalComma(value).split(","), shouldRemoveComma = parts.length === 2 && (parts[1] === "" || Number(parts[1]) === 0), shouldCutToPrecision = parts.length === 2 && parts[1].length > precision;
|
|
17
|
+
if (shouldRemoveComma) {
|
|
18
|
+
return parts[0];
|
|
19
|
+
}
|
|
20
|
+
if (shouldCutToPrecision) {
|
|
21
|
+
const [beforeDot] = parts, afterDot = parts[1].substring(0, precision);
|
|
22
|
+
return `${beforeDot},${afterDot}`;
|
|
23
|
+
}
|
|
24
|
+
return value;
|
|
25
|
+
};
|
|
26
|
+
exports.floatToEnglishComma = floatToEnglishComma, exports.isFloat = isFloat, exports.getFloatValueToStore = getFloatValueToStore, exports.clearFloatOnBlur = clearFloatOnBlur;
|
|
27
|
+
//# sourceMappingURL=util-numeric.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util-numeric.js","sourceRoot":"","sources":["../../src/Inputs/util-numeric.ts"],"names":[],"mappings":";AAAA,2CAA2C;;;AAE3C,MACE,iBAAiB,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;AAE3D,MACL,mBAAmB,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EACjE,OAAO,GAAG,CAAC,GAAW,EAAE,EAAE;IACxB,MAAM,UAAU,GAAG,qBAAqB,CAAC;IAEzC,OAAO,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC,EACD,oBAAoB,GAAG,CAAC,GAAQ,EAAE,EAAE;IAClC,MACE,WAAW,GAAG,IAAA,2BAAmB,EAAC,GAAG,CAAC,EACtC,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,EACrC,kBAAkB,GAAG,IAAA,eAAO,EAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAEnE,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO,CAAC,CAAC;AACX,CAAC,EACD,gBAAgB,GAAG,CAAC,KAAU,EAAE,SAAkB,EAAY,EAAE;IAC9D,MACE,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAC3C,iBAAiB,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EACrF,oBAAoB,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;IAE3E,IAAI,iBAAiB,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,oBAAoB,EAAE,CAAC;QACzB,MACE,CAAC,SAAS,CAAC,GAAG,KAAK,EACnB,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;QAE9C,OAAO,GAAG,SAAS,IAAI,QAAQ,EAAE,CAAC;IACpC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AArCF,QAAA,mBAAmB,wBACnB,QAAA,OAAO,YAKP,QAAA,oBAAoB,yBAYpB,QAAA,gBAAgB,oBAmBd"}
|
package/Inputs/util.d.ts
ADDED
package/Inputs/util.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getTemplateInfo = exports.TEMPLATES_CLASSES = void 0;
|
|
4
|
+
const getTemplateInfo = (componentProps) => {
|
|
5
|
+
const leftPart = componentProps && componentProps.get("left") || exports.TEMPLATES_CLASSES.LEFT, rightPart = componentProps && componentProps.get("right") || exports.TEMPLATES_CLASSES.RIGHT;
|
|
6
|
+
return ({
|
|
7
|
+
label: componentProps && componentProps.get("label"),
|
|
8
|
+
leftClass: `${leftPart} form-control-label align-self-center`,
|
|
9
|
+
rightClass: `${rightPart} align-self-center`,
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
exports.TEMPLATES_CLASSES = {
|
|
13
|
+
LEFT: "col-md-4 text-md-end",
|
|
14
|
+
RIGHT: "col-md-8",
|
|
15
|
+
}, exports.getTemplateInfo = getTemplateInfo;
|
|
16
|
+
//# sourceMappingURL=util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/Inputs/util.ts"],"names":[],"mappings":";;;AAAO,MAKL,eAAe,GAAG,CAAC,cAA2C,EAAE,EAAE;IAChE,MACE,QAAQ,GAAG,cAAc,IAAI,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,yBAAiB,CAAC,IAAI,EACjF,SAAS,GAAG,cAAc,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,yBAAiB,CAAC,KAAK,CAAC;IAEvF,OAAO,CAAC;QACN,KAAK,EAAQ,cAAc,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;QAC1D,SAAS,EAAI,GAAG,QAAQ,uCAAuC;QAC/D,UAAU,EAAG,GAAG,SAAS,oBAAoB;KAC9C,CAAC,CAAC;AACL,CAAC,CAAC;AAdF,QAAA,iBAAiB,GAAG;IAClB,IAAI,EAAI,sBAAsB;IAC9B,KAAK,EAAG,UAAU;CACnB,EACD,QAAA,eAAe,mBAUb"}
|
|
@@ -0,0 +1,55 @@
|
|
|
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.onErrors = void 0;
|
|
7
|
+
const immutable_1 = __importDefault(require("immutable"));
|
|
8
|
+
const react_1 = __importDefault(require("react"));
|
|
9
|
+
const words_1 = require("react-immutable-form/words");
|
|
10
|
+
const InnerNestedList = ({ data }) => {
|
|
11
|
+
const renderListContent = (value, key) => {
|
|
12
|
+
if (immutable_1.default.Map.isMap(value) && immutable_1.default.Map.isMap(value.first())) {
|
|
13
|
+
// If the value is an object or array, render it as a nested list
|
|
14
|
+
return (react_1.default.createElement("ul", { className: "m-0 p-0 border-0", key: key },
|
|
15
|
+
react_1.default.createElement("li", { className: "ps-2 mt-1", key: key },
|
|
16
|
+
react_1.default.createElement("span", { className: "fw-light me-1 fw-medium" }, key),
|
|
17
|
+
react_1.default.createElement("ul", { className: "m-0 p-0 border-0", key: key }, Array.from(value).map(([rowIndex, innerRow]) => (react_1.default.createElement("li", { className: "bg-danger-subtle list-group-item rounded-0 border-danger border-3 border-end-0 border-top-0 border-bottom-0 ps-2", key: `row${key}${rowIndex}` },
|
|
18
|
+
react_1.default.createElement("span", { className: "fw-light me-1" },
|
|
19
|
+
`${(0, words_1.getWords)().ROW} `,
|
|
20
|
+
react_1.default.createElement("span", { className: "badge text-bg-primary rounded-circle" }, Number(rowIndex) + 1)),
|
|
21
|
+
react_1.default.createElement("ul", { className: "m-0 p-0 border-0" }, Array
|
|
22
|
+
.from(innerRow)
|
|
23
|
+
.map((([fieldKey, fieldValue], fieldIndex) => (react_1.default.createElement("li", { className: "bg-danger-subtle list-group-item rounded-0 border-danger border-3 border-end-0 border-top-0 border-bottom-0 ps-2 py-0", key: `row${key}${rowIndex}-row-${fieldIndex}` },
|
|
24
|
+
react_1.default.createElement("ul", { className: "m-0 p-0 border-0", key: key }, renderListContent(fieldValue, fieldKey))))))))))))));
|
|
25
|
+
}
|
|
26
|
+
return (react_1.default.createElement("li", { className: "list-group-item rounded-0 border-0 ps-2 bg-danger-subtle", key: key },
|
|
27
|
+
react_1.default.createElement("span", { className: "fw-light me-1 fw-bold" }, key),
|
|
28
|
+
react_1.default.createElement("div", { className: "fw-light ms-1" }, value)));
|
|
29
|
+
};
|
|
30
|
+
return (react_1.default.createElement("ul", { className: "list-group bg-danger-subtle border-danger border-3 border-end-0 border-top-0 border-bottom-0 rounded-0" }, immutable_1.default.Map.isMap(data) ? (Array.from(data).map(([key, value]) => renderListContent(value, key))) : (data.map(([key, value]) => (renderListContent(value, key))))));
|
|
31
|
+
}, NestedList = react_1.default.memo(InnerNestedList), performTranslation = (input) => {
|
|
32
|
+
if (immutable_1.default.List.isList(input)) {
|
|
33
|
+
return input.map((item) => performTranslation(item));
|
|
34
|
+
}
|
|
35
|
+
else if (immutable_1.default.Map.isMap(input)) {
|
|
36
|
+
return input.reduce((acc, value, currentKey) => {
|
|
37
|
+
const mapping = (0, words_1.getWords)().FIELDS_TO_DESCRIPTIONS, translatedKey = mapping[currentKey] || currentKey, newTranslation = performTranslation(value);
|
|
38
|
+
return acc.set(translatedKey, newTranslation);
|
|
39
|
+
}, immutable_1.default.Map());
|
|
40
|
+
}
|
|
41
|
+
return input;
|
|
42
|
+
};
|
|
43
|
+
const onErrors = (cb) => (errors) => {
|
|
44
|
+
if (errors.size === 0) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const result = (react_1.default.createElement("div", { className: "p-1" },
|
|
48
|
+
react_1.default.createElement("div", { className: "text-danger" }, (0, words_1.getWords)().CHECK_THE_ERRORS),
|
|
49
|
+
react_1.default.createElement("div", { className: "overflow-scroll", style: { maxHeight: 200 } },
|
|
50
|
+
react_1.default.createElement(NestedList, { data: performTranslation(errors) })),
|
|
51
|
+
react_1.default.createElement("div", { className: "text-center text-primary mt-2" }, (0, words_1.getWords)().TO_HIDE_CLICK_HERE)));
|
|
52
|
+
cb(result);
|
|
53
|
+
};
|
|
54
|
+
exports.onErrors = onErrors;
|
|
55
|
+
//# sourceMappingURL=onErrors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"onErrors.js","sourceRoot":"","sources":["../../src/bootstrap/onErrors.tsx"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.0.1",
|
|
3
|
+
"name": "react-immutable-form-with-bootstrap",
|
|
4
|
+
"description": "react-immutable-form-with-bootstrap the [i]mmutable form library for react - using hooks",
|
|
5
|
+
"types": "./dist/index.d.ts",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"load": "npm run intern-pre && cd dist && npm run ts && npm run intern-copy && npm publish",
|
|
8
|
+
"load-beta": "npm run intern-pre && cd dist && npm run ts && npm run intern-copy && npm publish --tag beta",
|
|
9
|
+
"eslint": "eslint --ext .tsx,.ts src --fix",
|
|
10
|
+
"intern-pre": "npm run eslint && npm run intern-clean && npm run intern-build",
|
|
11
|
+
"intern-build-scss": "node-sass --output-style compressed src -o dist",
|
|
12
|
+
"intern-copy": " copy package.json dist",
|
|
13
|
+
"lint": "npm run ts:check & npm run eslint",
|
|
14
|
+
"intern-build": "npm run intern-build-scss",
|
|
15
|
+
"intern-clean": "rimraf dist dist",
|
|
16
|
+
"intern-test": "vitest",
|
|
17
|
+
"check": "node script/check & npm run depcheck & npm run check:npm-check",
|
|
18
|
+
"check:npm-check": "npm-check -u -i \"{rc-tooltip,react,react-dom}\" --specials=bin,eslint,babel,webpack",
|
|
19
|
+
"depcheck": "depcheck --ignores=@docusaurus/react-loadable,webpack-cli,@hot-loader/react-dom --ignore-patterns=server,node_modules,tmp,fonts",
|
|
20
|
+
"check:global": "npm-check -gu",
|
|
21
|
+
"ts:check": "tsc --noEmit",
|
|
22
|
+
"ts": "tsc --declaration"
|
|
23
|
+
},
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/cristian-sima/iForm.git"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [],
|
|
29
|
+
"author": "SC SIDEWORK SRL",
|
|
30
|
+
"license": "MIT",
|
|
31
|
+
"bugs": {
|
|
32
|
+
"url": "https://github.com/cristian-sima/iForm/issues"
|
|
33
|
+
},
|
|
34
|
+
"homepage": "https://github.com/cristian-sima/iForm#readme",
|
|
35
|
+
"babel": {
|
|
36
|
+
"presets": [
|
|
37
|
+
[
|
|
38
|
+
"@babel/preset-env",
|
|
39
|
+
{
|
|
40
|
+
"targets": {
|
|
41
|
+
"node": "current"
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"@babel/preset-typescript",
|
|
46
|
+
"@babel/preset-react"
|
|
47
|
+
],
|
|
48
|
+
"env": {
|
|
49
|
+
"production": {
|
|
50
|
+
"plugins": [
|
|
51
|
+
"@babel/plugin-syntax-dynamic-import",
|
|
52
|
+
"@babel/plugin-proposal-class-properties",
|
|
53
|
+
"@babel/plugin-proposal-export-default-from",
|
|
54
|
+
"@babel/plugin-transform-modules-commonjs",
|
|
55
|
+
"@babel/plugin-transform-react-constant-elements",
|
|
56
|
+
"@babel/plugin-transform-react-inline-elements",
|
|
57
|
+
"@babel/plugin-transform-typescript",
|
|
58
|
+
"transform-react-remove-prop-types"
|
|
59
|
+
]
|
|
60
|
+
},
|
|
61
|
+
"development": {
|
|
62
|
+
"plugins": [
|
|
63
|
+
"@babel/plugin-syntax-dynamic-import",
|
|
64
|
+
"@babel/plugin-proposal-class-properties",
|
|
65
|
+
"@babel/plugin-proposal-export-default-from",
|
|
66
|
+
"@babel/plugin-transform-modules-commonjs"
|
|
67
|
+
]
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"engines": {
|
|
72
|
+
"node": ">=18"
|
|
73
|
+
},
|
|
74
|
+
"devDependencies": {
|
|
75
|
+
"@babel/plugin-proposal-class-properties": "^7.18.6",
|
|
76
|
+
"@babel/plugin-proposal-export-default-from": "^7.23.3",
|
|
77
|
+
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
|
78
|
+
"@babel/plugin-transform-modules-commonjs": "^7.23.3",
|
|
79
|
+
"@babel/plugin-transform-react-constant-elements": "^7.23.3",
|
|
80
|
+
"@babel/plugin-transform-react-inline-elements": "^7.23.3",
|
|
81
|
+
"@babel/plugin-transform-typescript": "^7.23.5",
|
|
82
|
+
"@babel/preset-env": "^7.23.5",
|
|
83
|
+
"@babel/preset-react": "^7.23.3",
|
|
84
|
+
"@babel/preset-typescript": "^7.23.3",
|
|
85
|
+
"@types/react-datepicker": "^6.2.0",
|
|
86
|
+
"@typescript-eslint/eslint-plugin": "^6.13.1",
|
|
87
|
+
"@typescript-eslint/parser": "^6.13.1",
|
|
88
|
+
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
|
|
89
|
+
"copy": "^0.3.2",
|
|
90
|
+
"css-loader": "^6.8.1",
|
|
91
|
+
"depcheck": "^1.4.7",
|
|
92
|
+
"eslint": "^8.54.0",
|
|
93
|
+
"eslint-import-resolver-typescript": "^3.6.1",
|
|
94
|
+
"eslint-plugin-import": "^2.29.0",
|
|
95
|
+
"eslint-plugin-react": "^7.33.2",
|
|
96
|
+
"node-sass": "^9.0.0",
|
|
97
|
+
"npm-check": "^6.0.1",
|
|
98
|
+
"style-loader": "^3.3.3",
|
|
99
|
+
"ts-loader": "^9.5.1",
|
|
100
|
+
"typescript": "^5.3.2",
|
|
101
|
+
"webpack": "^5.89.0"
|
|
102
|
+
},
|
|
103
|
+
"overrides": {
|
|
104
|
+
"react-datepicker": {
|
|
105
|
+
"react": "$react",
|
|
106
|
+
"react-dom": "$react-dom"
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
"dependencies": {
|
|
110
|
+
"@docusaurus/react-loadable": "^5.5.2",
|
|
111
|
+
"date-fns": "^3.6.0",
|
|
112
|
+
"immutable": "^4.3.4",
|
|
113
|
+
"react": "^17.0.2",
|
|
114
|
+
"react-datepicker": "^4.24.0",
|
|
115
|
+
"react-dom": "^17.0.2",
|
|
116
|
+
"react-immutable-form": "^1.0.6",
|
|
117
|
+
"react-router": "^6.22.3",
|
|
118
|
+
"vitest": "^1.4.0",
|
|
119
|
+
"x25": "^17.5.6"
|
|
120
|
+
}
|
|
121
|
+
}
|
package/styles/index.css
ADDED
|
File without changes
|