@startlibs/form 1.1.2 → 1.2.0-rc.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/lib/AutoComplete.mjs +19 -10
- package/lib/AutoComplete.mjs.map +1 -1
- package/lib/Checkbox.mjs +4 -2
- package/lib/Checkbox.mjs.map +1 -1
- package/lib/Combobox.mjs +1 -1
- package/lib/Combobox.mjs.map +1 -1
- package/lib/DatePicker.mjs +25 -9
- package/lib/DatePicker.mjs.map +1 -1
- package/lib/Errors.mjs +20 -10
- package/lib/Errors.mjs.map +1 -1
- package/lib/ExpandableBox.mjs +1 -1
- package/lib/ExpandableBox.mjs.map +1 -1
- package/lib/Field.mjs +10 -5
- package/lib/Field.mjs.map +1 -1
- package/lib/FieldBox.mjs +3 -3
- package/lib/FieldBox.mjs.map +1 -1
- package/lib/InputboxGroup.mjs +1 -1
- package/lib/InputboxGroup.mjs.map +1 -1
- package/lib/RichText.mjs +11 -6
- package/lib/RichText.mjs.map +1 -1
- package/lib/TextInput.mjs +4 -4
- package/lib/TextInput.mjs.map +1 -1
- package/lib/alt/checkbox/SimpleCheckbox.mjs +1 -1
- package/lib/alt/checkbox/SimpleCheckbox.mjs.map +1 -1
- package/lib/alt/checkbox/ToggleCheckbox.mjs +4 -3
- package/lib/alt/checkbox/ToggleCheckbox.mjs.map +1 -1
- package/lib/alt/radiobox/CleanTabRadiobox.mjs +1 -1
- package/lib/alt/radiobox/CleanTabRadiobox.mjs.map +1 -1
- package/lib/alt/radiobox/SimpleRadiobox.mjs +2 -2
- package/lib/alt/radiobox/SimpleRadiobox.mjs.map +1 -1
- package/lib/alt/radiobox/TabRadiobox.mjs +1 -1
- package/lib/alt/radiobox/TabRadiobox.mjs.map +1 -1
- package/lib/index.cjs +106 -54
- package/lib/index.cjs.map +1 -1
- package/lib/index.mjs +2 -2
- package/lib/withFormImageInput.mjs +1 -1
- package/lib/withFormImageInput.mjs.map +1 -1
- package/lib-yak/AutoComplete.mjs +705 -0
- package/lib-yak/AutoComplete.mjs.map +1 -0
- package/lib-yak/Checkbox.mjs +80 -0
- package/lib-yak/Checkbox.mjs.map +1 -0
- package/lib-yak/Combobox.mjs +652 -0
- package/lib-yak/Combobox.mjs.map +1 -0
- package/lib-yak/ComboboxWithCustom.mjs +77 -0
- package/lib-yak/ComboboxWithCustom.mjs.map +1 -0
- package/lib-yak/DatePicker.mjs +774 -0
- package/lib-yak/DatePicker.mjs.map +1 -0
- package/lib-yak/EditableBox.mjs +495 -0
- package/lib-yak/EditableBox.mjs.map +1 -0
- package/lib-yak/Errors.mjs +226 -0
- package/lib-yak/Errors.mjs.map +1 -0
- package/lib-yak/ExpandableBox.mjs +247 -0
- package/lib-yak/ExpandableBox.mjs.map +1 -0
- package/lib-yak/Field.mjs +93 -0
- package/lib-yak/Field.mjs.map +1 -0
- package/lib-yak/FieldBox.mjs +173 -0
- package/lib-yak/FieldBox.mjs.map +1 -0
- package/lib-yak/Form.mjs +322 -0
- package/lib-yak/Form.mjs.map +1 -0
- package/lib-yak/FormValue.mjs +111 -0
- package/lib-yak/FormValue.mjs.map +1 -0
- package/lib-yak/InputboxGroup.mjs +146 -0
- package/lib-yak/InputboxGroup.mjs.map +1 -0
- package/lib-yak/Radiobox.mjs +69 -0
- package/lib-yak/Radiobox.mjs.map +1 -0
- package/lib-yak/RichText.mjs +776 -0
- package/lib-yak/RichText.mjs.map +1 -0
- package/lib-yak/TextInput.mjs +589 -0
- package/lib-yak/TextInput.mjs.map +1 -0
- package/lib-yak/alt/checkbox/SimpleCheckbox.mjs +225 -0
- package/lib-yak/alt/checkbox/SimpleCheckbox.mjs.map +1 -0
- package/lib-yak/alt/checkbox/ToggleCheckbox.mjs +173 -0
- package/lib-yak/alt/checkbox/ToggleCheckbox.mjs.map +1 -0
- package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs +87 -0
- package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs.map +1 -0
- package/lib-yak/alt/radiobox/IconRadioBox.mjs +138 -0
- package/lib-yak/alt/radiobox/IconRadioBox.mjs.map +1 -0
- package/lib-yak/alt/radiobox/SimpleRadiobox.mjs +203 -0
- package/lib-yak/alt/radiobox/SimpleRadiobox.mjs.map +1 -0
- package/lib-yak/alt/radiobox/TabRadiobox.mjs +117 -0
- package/lib-yak/alt/radiobox/TabRadiobox.mjs.map +1 -0
- package/lib-yak/enhanceInput.mjs +131 -0
- package/lib-yak/enhanceInput.mjs.map +1 -0
- package/lib-yak/index.mjs +28 -0
- package/lib-yak/index.mjs.map +1 -0
- package/lib-yak/useConfirmDialog.mjs +117 -0
- package/lib-yak/useConfirmDialog.mjs.map +1 -0
- package/lib-yak/useDraftConfirmation.mjs +56 -0
- package/lib-yak/useDraftConfirmation.mjs.map +1 -0
- package/lib-yak/validation.mjs +91 -0
- package/lib-yak/validation.mjs.map +1 -0
- package/lib-yak/withFormImageInput.mjs +298 -0
- package/lib-yak/withFormImageInput.mjs.map +1 -0
- package/package.json +13 -3
- package/src/AutoComplete.jsx +25 -15
- package/src/Checkbox.jsx +2 -2
- package/src/Combobox.jsx +1 -1
- package/src/DatePicker.jsx +25 -22
- package/src/Errors.jsx +18 -8
- package/src/ExpandableBox.jsx +3 -3
- package/src/Field.jsx +9 -4
- package/src/FieldBox.jsx +6 -6
- package/src/IconRadioBoxOldHubt.jsx +1 -1
- package/src/InputboxGroup.jsx +1 -1
- package/src/RichText.jsx +17 -13
- package/src/TextInput.jsx +37 -26
- package/src/alt/checkbox/SimpleCheckbox.jsx +5 -5
- package/src/alt/checkbox/ToggleCheckbox.jsx +9 -8
- package/src/alt/radiobox/CleanTabRadiobox.jsx +2 -2
- package/src/alt/radiobox/SimpleRadiobox.jsx +7 -7
- package/src/alt/radiobox/TabRadiobox.jsx +4 -4
- package/src/withFormImageInput.jsx +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.mjs","sources":["../src/Form.jsx"],"sourcesContent":["import React, {useState, useMemo, useImperativeHandle, useContext, forwardRef} from 'react'\nimport {useConsumerCatalog, useRefState, willUseSpreadState, useToggle, useIsUnmounted, StartlibsContext} from '@startlibs/core'\nimport {ifUndefined, _s, callIfFunction} from '@startlibs/utils'\nimport {useProvideErrors} from './Errors'\nimport {useDraftConfirmation} from './useDraftConfirmation'\nimport _ from 'lodash/fp'\n\nexport const getFormResponse = (setter, path = []) => (_, v) => setter(_s.get(path, v))\nexport const getFormValues = (setter, path = []) => (values) => setter(_s.get(path, values))\n\nexport const FormContext = React.createContext({})\nexport const ComponentMetaContext = React.createContext({})\n\nconst mergeMetas = (metas) => metas.reduce((acc, meta) => ({...acc, ...meta.props}), {})\n\nconst identityValidation = (props, meta) => ({success: props, meta: meta})\n\nconst [useProvideValues, useSpreadValue, FormValueContext] = willUseSpreadState()\nconst [useProvideMeta, useMeta] = willUseSpreadState()\n\nexport const useFormValue = useSpreadValue\nexport const useFormValueRef = () => {\n const [get, set] = useContext(FormValueContext)\n return [get, set]\n}\nexport const useFormMeta = useMeta\n\nexport const useForm =\n ({\n action,\n alwaysSave = false,\n skipDom = false,\n values: initialValues = {},\n meta = {},\n transform = (v) => v,\n preValidation = () => false,\n loadingBeforeValidate,\n onSuccess = () => {},\n onFailure = () => {},\n onNonPreValidation,\n onChange,\n autoComplete\n }, ref) => {\n const outerConfig = {onSuccess, onFailure, transform, preValidation, alwaysSave, action}\n const currentInitialValues = useRefState(initialValues)\n currentInitialValues.set(initialValues)\n const startlibs = useContext(StartlibsContext)\n const [hasChanged, setHasChangedValue] = useState(false)\n const hasChangedRef = useRefState(false)\n const shouldResubmitForm = useToggle(false, (next, prev) => prev && !next && errorsUtils.removeErrorPath('_shouldResubmitForm'))\n const resubmittingForm = useRefState(false)\n const loading = useToggle()\n const isUnmounted = useIsUnmounted()\n const [ErrorsProvider, errorsContext, errorsUtils] = useProvideErrors()\n const [registeredComponentMetas, componentMetasManager] = useConsumerCatalog()\n\n const [confirmDraftContent, draftToggle, draftConfirmation] = useDraftConfirmation(() => submitForm(undefined, {isConfirming: true}))\n\n const handleValuesChange = (prev, next) => {\n if (!hasChangedRef.get()) {\n setHasChanged(true)\n }\n callIfFunction(onChange, prev, next, utils)\n }\n\n const setHasChanged = (v) => {\n shouldResubmitForm.close()\n if (v !== hasChangedRef.get()) {\n draftToggle.openWith(v)\n setHasChangedValue(v)\n hasChangedRef.set(v)\n }\n }\n\n const [ValuesProvider, valuesManager, [getValues, setValues]] = useProvideValues(initialValues, handleValuesChange)\n const [MetaProvider, metaManager, [getMeta, setMeta]] = useProvideMeta(callIfFunction(meta,initialValues), (prev, next) => {\n if (prev.submittingFiles !== 0 && next.submittingFiles === 0) {\n if (resubmittingForm.get()) {\n if (shouldResubmitForm.get()) {\n resubmittingForm.get().confirm()\n } else {\n resubmittingForm.get().cancel()\n }\n resubmittingForm.set(false)\n }\n }\n })\n\n const validate = async (values = getValues(), validation = preValidation) => {\n const errors = await callIfFunction(validation, values, utils)\n if (errors) {\n errorsUtils.setErrors(errors)\n }\n return errors\n }\n\n const verifyImagesAndSubmitForm = (values) => {\n if (values && getMeta('submittedFiles')) {\n const valuesWithUploadedImages = getMeta('submittedFiles').reduce((acc, {path, file, image}) => {\n if (_s.get(path, acc) === file) {\n return _s.set(path, image, acc)\n } else {\n return acc\n }\n }, values)\n return submitForm(valuesWithUploadedImages)\n } else {\n return submitForm(values)\n }\n }\n\n const submitForm = async (optValues, config = {}) => {\n if (loading.get()) {\n return new Promise(() => {})\n }\n const values = ifUndefined(callIfFunction(optValues,getValues()), getValues())\n if (getMeta('submittingFiles')) {\n shouldResubmitForm.open()\n errorsUtils.setError('_shouldResubmitForm', startlibs.FormUploadingFileError || startlibs.FormUploadingImageError)\n if (config.isConfirming) {\n return Promise.reject()\n }\n return new Promise((resolve, reject) => {\n resubmittingForm.set({\n confirm: () => resolve(verifyImagesAndSubmitForm(values)),\n cancel: () => reject()\n })\n })\n }\n const {onSuccess, onFailure, transform, alwaysSave, preValidation, action} = {...outerConfig, ...config}\n\n if (preValidation && loadingBeforeValidate) {\n loading.open()\n }\n const errors = await validate(values, preValidation)\n if (errors) {\n loading.close()\n callIfFunction(onNonPreValidation,values,errors)\n throw {unvalidated: errors}\n }\n const request = await transform(values,{meta:getMeta()})\n if (!request) {\n loading.close()\n return {untransformed: true}\n } else {\n loading.open()\n errorsUtils.clearErrors()\n if (!alwaysSave && !hasChangedRef.get() && (!values || values === getValues())) {\n await onSuccess(request)\n if (!isUnmounted()) {\n loading.close()\n }\n return {unrequested: request}\n }\n try {\n const response = await action(request)\n await onSuccess(request, response)\n if (!isUnmounted()) {\n setHasChanged(false)\n loading.close()\n }\n return {request, response}\n } catch (rejection) {\n if (_.get([0,'errors'],rejection)) {\n errorsUtils.setErrors(rejection[0].errors)\n }\n try {\n await onFailure(request, rejection, utils)\n } catch (e) {\n console.log(e)\n }\n if (!isUnmounted()) {\n loading.close()\n }\n throw {request, rejection}\n }\n }\n }\n\n const willSubmitForm = (e) => {\n if (e) {\n e.preventDefault()\n e.stopPropagation()\n }\n return submitForm()\n }\n\n const inputs = [loading, hasChanged, errorsContext, initialValues, transform, preValidation, onSuccess, onFailure, alwaysSave, action, shouldResubmitForm]\n\n const utils = useMemo(() => ({\n setValue: (path, value, hasChanged = true) => {\n setValues(_.isFunction(value) ? _.update(path, value) : _.set(path, value), path, hasChanged ? null : {ignoreCallback: true})\n },\n setValues: (valuesSetter, hasChanged = true) => {\n setValues(valuesSetter, undefined, hasChanged ? null : {ignoreCallback: true})\n },\n resetForm: () => {\n setValues(ifUndefined(currentInitialValues.get(), {}))\n setHasChanged(false)\n },\n resetField: (path) => {\n const initialValue = _s.get(path, currentInitialValues.get())\n if (initialValue !== getValues(path)) {\n setValues(_s.set(path, initialValue))\n }\n },\n getOriginalValues: () => currentInitialValues.get(),\n getOriginalValue: (path) => _s.get(path, currentInitialValues.get()),\n getValues,\n getValue: getValues,\n getTransformedValues: () => transform(getValues()),\n setHasChanged,\n setMeta,\n getMeta,\n confirm: draftConfirmation,\n validate: (props, validation) => !validate(props, validation),\n submitForm,\n willSubmitForm,\n isLoading: loading.isOpen || shouldResubmitForm.isOpen,\n hasChanged,\n getHasChanged: () => hasChangedRef.get(),\n ...errorsUtils\n }),\n inputs\n )\n\n useImperativeHandle(ref, () => utils, inputs)\n\n return [\n (children) => <FormContext.Provider value={utils}>\n <ComponentMetaContext.Provider value={componentMetasManager}>\n <ValuesProvider value={valuesManager}>\n <MetaProvider value={metaManager}>\n <ErrorsProvider value={errorsContext}>\n {\n !skipDom\n ? <form autoComplete={autoComplete} noValidate onSubmit={willSubmitForm}>{callIfFunction(children, utils)}</form>\n : callIfFunction(children, utils)\n }\n </ErrorsProvider>\n </MetaProvider>\n </ValuesProvider>\n </ComponentMetaContext.Provider>\n {confirmDraftContent}\n </FormContext.Provider>,\n utils\n ]\n }\n\nexport const WithForm = forwardRef((\n {\n children,\n ...rest\n },\n ref) => {\n return useForm(rest, ref)[0](children)\n})\n\nexport const Form = ({transform, preValidation, onSuccess, onFailure, children}) => {\n const form = useContext(FormContext)\n const onSubmit = (e) => {\n if (e) e.preventDefault()\n return form.submitForm(\n undefined,\n undefined,\n {transform, preValidation, onSuccess, onFailure}\n )\n }\n\n return typeof children === 'function' ?\n children(onSubmit) :\n <form noValidate onSubmit={onSubmit}>\n {children}\n </form>\n}\n\nconst passProps = (action, props) => action(props)\n\nexport const withForm = (Component) =>\n React.forwardRef((props, ref) =>\n <WithForm {...props}>\n {form => <Component form={form} {...props} ref={ref}/>}\n </WithForm>\n )\n\nexport const withForm2 = () => (Component) =>\n React.forwardRef((props, ref) =>\n <WithForm {...props} >\n {form => <Component form={form} {...props} ref={ref}/>}\n </WithForm>\n )\n"],"names":["getFormResponse","setter","path","arguments","length","undefined","_","v","_s","get","getFormValues","values","FormContext","React","createContext","ComponentMetaContext","useProvideValues","useSpreadValue","FormValueContext","willUseSpreadState","useProvideMeta","useMeta","useFormValue","useFormValueRef","set","useContext","useFormMeta","useForm","_ref","ref","action","alwaysSave","skipDom","initialValues","meta","transform","preValidation","loadingBeforeValidate","onSuccess","onFailure","onNonPreValidation","onChange","autoComplete","outerConfig","currentInitialValues","useRefState","startlibs","StartlibsContext","hasChanged","setHasChangedValue","useState","hasChangedRef","shouldResubmitForm","useToggle","next","prev","errorsUtils","removeErrorPath","resubmittingForm","loading","isUnmounted","useIsUnmounted","ErrorsProvider","errorsContext","useProvideErrors","registeredComponentMetas","componentMetasManager","useConsumerCatalog","confirmDraftContent","draftToggle","draftConfirmation","useDraftConfirmation","submitForm","isConfirming","handleValuesChange","setHasChanged","callIfFunction","utils","close","openWith","ValuesProvider","valuesManager","getValues","setValues","MetaProvider","metaManager","getMeta","setMeta","submittingFiles","confirm","cancel","validate","validation","errors","setErrors","verifyImagesAndSubmitForm","valuesWithUploadedImages","reduce","acc","_ref2","file","image","optValues","config","Promise","ifUndefined","open","setError","FormUploadingFileError","FormUploadingImageError","reject","resolve","_objectSpread","unvalidated","request","untransformed","clearErrors","unrequested","response","rejection","_get","e","console","log","willSubmitForm","preventDefault","stopPropagation","inputs","useMemo","setValue","value","_isFunction","_update","_set","ignoreCallback","valuesSetter","resetForm","resetField","initialValue","getOriginalValues","getOriginalValue","getValue","getTransformedValues","props","isLoading","isOpen","getHasChanged","useImperativeHandle","children","createElement","Provider","noValidate","onSubmit","WithForm","forwardRef","_ref3","rest","_objectWithoutProperties","_excluded","Form","_ref4","form","withForm","Component","_extends","withForm2"],"mappings":"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"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import _extends from '@babel/runtime/helpers/extends';
|
|
2
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
|
+
import _isObject from 'lodash/fp/isObject';
|
|
4
|
+
import _identity from 'lodash/fp/identity';
|
|
5
|
+
import React, { useMemo, useState, useContext, useEffect } from 'react';
|
|
6
|
+
import { useUpdateEffect } from '@startlibs/core';
|
|
7
|
+
import { ifUndefined, callIfFunction, getUID } from '@startlibs/utils';
|
|
8
|
+
import { useFormValue, useFormMeta, FormContext } from './Form.mjs';
|
|
9
|
+
import { TransitionDiv, SwitchDiv } from '@startlibs/components';
|
|
10
|
+
|
|
11
|
+
const _excluded = ["path", "children", "inputs", "check", "invert"],
|
|
12
|
+
_excluded2 = ["path", "children", "inputs", "on", "off", "check", "invert", "map"],
|
|
13
|
+
_excluded3 = ["path", "children", "inputs", "check", "invert"];
|
|
14
|
+
const FormValue = _ref => {
|
|
15
|
+
let {
|
|
16
|
+
path,
|
|
17
|
+
children,
|
|
18
|
+
inputs,
|
|
19
|
+
format = _identity
|
|
20
|
+
} = _ref;
|
|
21
|
+
const [value, setValue] = useFormValue(path, inputs || []);
|
|
22
|
+
return ifUndefined(callIfFunction(children, format(value), setValue), _isObject(value) ? null : value, null);
|
|
23
|
+
};
|
|
24
|
+
const IfFormValue = _ref2 => {
|
|
25
|
+
let {
|
|
26
|
+
path,
|
|
27
|
+
children,
|
|
28
|
+
inputs,
|
|
29
|
+
check = _identity,
|
|
30
|
+
invert
|
|
31
|
+
} = _ref2,
|
|
32
|
+
rest = _objectWithoutProperties(_ref2, _excluded);
|
|
33
|
+
const [value, setValue] = useFormValue(path, inputs || []);
|
|
34
|
+
const doInvert = v => invert ? !v : !!v;
|
|
35
|
+
return /*#__PURE__*/React.createElement(TransitionDiv, rest, doInvert(callIfFunction(check, value)) ? ifUndefined(callIfFunction(children, value, setValue), _isObject(value) ? null : value, null) : null);
|
|
36
|
+
};
|
|
37
|
+
const IfFormValueUpdate = _ref3 => {
|
|
38
|
+
let {
|
|
39
|
+
path,
|
|
40
|
+
children,
|
|
41
|
+
updatePath
|
|
42
|
+
} = _ref3;
|
|
43
|
+
const [readValue] = useFormValue(path, []);
|
|
44
|
+
const [, setValue] = useFormValue(updatePath, []);
|
|
45
|
+
useUpdateEffect(() => {
|
|
46
|
+
setValue(callIfFunction(children, readValue));
|
|
47
|
+
}, [readValue]);
|
|
48
|
+
return null;
|
|
49
|
+
};
|
|
50
|
+
const SwitchOnFormValue = _ref4 => {
|
|
51
|
+
let {
|
|
52
|
+
path,
|
|
53
|
+
children,
|
|
54
|
+
inputs,
|
|
55
|
+
on,
|
|
56
|
+
off,
|
|
57
|
+
check,
|
|
58
|
+
invert,
|
|
59
|
+
map = _identity
|
|
60
|
+
} = _ref4,
|
|
61
|
+
rest = _objectWithoutProperties(_ref4, _excluded2);
|
|
62
|
+
const [value, setValue] = useFormValue(path, inputs || []);
|
|
63
|
+
const doInvert = v => invert ? !v : v;
|
|
64
|
+
const isOn = check || invert ? doInvert(callIfFunction(check, value)) : value;
|
|
65
|
+
const mappedValue = map(value);
|
|
66
|
+
const onKey = useMemo(() => getUID(), [isOn, mappedValue]);
|
|
67
|
+
return /*#__PURE__*/React.createElement(SwitchDiv, _extends({
|
|
68
|
+
on: onKey
|
|
69
|
+
}, rest), isOn ? on && on[mappedValue] ? callIfFunction(on[mappedValue], value, setValue) : ifUndefined(callIfFunction(on, value, setValue), _isObject(value) ? null : value, null) : ifUndefined(callIfFunction(off, value, setValue), _isObject(value) ? null : value, null));
|
|
70
|
+
};
|
|
71
|
+
const FormMeta = _ref5 => {
|
|
72
|
+
let {
|
|
73
|
+
path,
|
|
74
|
+
children,
|
|
75
|
+
inputs
|
|
76
|
+
} = _ref5;
|
|
77
|
+
const [value, setValue] = useFormMeta(path, inputs || []);
|
|
78
|
+
return ifUndefined(callIfFunction(children, value, setValue), value, null);
|
|
79
|
+
};
|
|
80
|
+
const IfFormMeta = _ref6 => {
|
|
81
|
+
let {
|
|
82
|
+
path,
|
|
83
|
+
children,
|
|
84
|
+
inputs,
|
|
85
|
+
check = _identity,
|
|
86
|
+
invert
|
|
87
|
+
} = _ref6,
|
|
88
|
+
rest = _objectWithoutProperties(_ref6, _excluded3);
|
|
89
|
+
const [value, setValue] = useFormMeta(path, inputs || []);
|
|
90
|
+
const doInvert = v => invert ? !v : !!v;
|
|
91
|
+
return /*#__PURE__*/React.createElement(TransitionDiv, rest, doInvert(callIfFunction(check, value)) ? ifUndefined(callIfFunction(children, value, setValue), _isObject(value) ? null : value, null) : null);
|
|
92
|
+
};
|
|
93
|
+
const LazyFormValues = _ref7 => {
|
|
94
|
+
let {
|
|
95
|
+
value,
|
|
96
|
+
format = _identity,
|
|
97
|
+
children
|
|
98
|
+
} = _ref7;
|
|
99
|
+
const currentValue = value.read();
|
|
100
|
+
const [loaded, setLoaded] = useState(false);
|
|
101
|
+
const formUtils = useContext(FormContext);
|
|
102
|
+
useEffect(() => {
|
|
103
|
+
formUtils.setValues(format(currentValue), false);
|
|
104
|
+
setLoaded(getUID);
|
|
105
|
+
return () => value.refresh();
|
|
106
|
+
}, []);
|
|
107
|
+
return callIfFunction(children, loaded);
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
export { FormMeta, FormValue, IfFormMeta, IfFormValue, IfFormValueUpdate, LazyFormValues, SwitchOnFormValue };
|
|
111
|
+
//# sourceMappingURL=FormValue.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormValue.mjs","sources":["../src/FormValue.jsx"],"sourcesContent":["import React, {useContext, useEffect, useState, useMemo} from 'react'\nimport {useUpdateEffect} from '@startlibs/core'\nimport {ifUndefined, callIfFunction, getUID} from '@startlibs/utils'\nimport {FormContext, useFormMeta, useFormValue} from './Form'\nimport _ from 'lodash/fp'\nimport {TransitionDiv,SwitchDiv} from '@startlibs/components'\n\nexport const FormValue = ({path,children,inputs,format=_.identity}) => {\n const [value,setValue] = useFormValue(path,inputs || [])\n return ifUndefined(callIfFunction(children,format(value),setValue),_.isObject(value) ? null : value,null)\n}\nexport const IfFormValue = ({path,children,inputs,check = _.identity,invert,...rest}) => {\n const [value,setValue] = useFormValue(path,inputs || [])\n const doInvert = (v) => invert ? !v : !!v\n return <TransitionDiv {...rest}>{\n doInvert(callIfFunction(check,value))\n ? ifUndefined(callIfFunction(children,value,setValue),_.isObject(value) ? null : value,null)\n : null\n }</TransitionDiv>\n}\nexport const IfFormValueUpdate = ({path,children,updatePath}) => {\n const [readValue] = useFormValue(path,[])\n const [,setValue] = useFormValue(updatePath,[])\n useUpdateEffect(() => {\n setValue(callIfFunction(children,readValue))\n },[readValue])\n return null\n}\nexport const SwitchOnFormValue = ({path,children,inputs,on,off,check,invert,map = _.identity,...rest}) => {\n const [value,setValue] = useFormValue(path,inputs || [])\n const doInvert = (v) => invert ? !v : v\n const isOn = (check || invert ) ? doInvert(callIfFunction(check,value)) : value\n const mappedValue = map(value)\n const onKey = useMemo(() => getUID() , [isOn,mappedValue])\n return <SwitchDiv on={onKey} {...rest}>{\n isOn\n ? (on && on[mappedValue])\n ? callIfFunction(on[mappedValue],value,setValue)\n : ifUndefined(callIfFunction(on,value,setValue),_.isObject(value) ? null : value,null)\n : ifUndefined(callIfFunction(off,value,setValue),_.isObject(value) ? null : value,null)\n }</SwitchDiv>\n}\n\nexport const FormMeta = ({path,children,inputs}) => {\n const [value,setValue] = useFormMeta(path,inputs || [])\n return ifUndefined(callIfFunction(children,value,setValue),value,null)\n}\nexport const IfFormMeta = ({path,children,inputs,check = _.identity,invert,...rest}) => {\n const [value,setValue] = useFormMeta(path,inputs || [])\n const doInvert = (v) => invert ? !v : !!v\n return <TransitionDiv {...rest}>{\n doInvert(callIfFunction(check,value))\n ? ifUndefined(callIfFunction(children,value,setValue),_.isObject(value) ? null : value,null)\n : null\n }</TransitionDiv>\n}\nexport const LazyFormValues = ({value,format = _.identity, children}) => {\n const currentValue = value.read()\n const [loaded,setLoaded] = useState(false)\n const formUtils = useContext(FormContext)\n useEffect(() => {\n formUtils.setValues(format(currentValue), false)\n setLoaded(getUID)\n return () => value.refresh()\n }, [])\n return callIfFunction(children,loaded)\n}"],"names":["FormValue","_ref","path","children","inputs","format","_identity","value","setValue","useFormValue","ifUndefined","callIfFunction","_isObject","IfFormValue","_ref2","check","invert","rest","_objectWithoutProperties","_excluded","doInvert","v","React","createElement","TransitionDiv","IfFormValueUpdate","_ref3","updatePath","readValue","useUpdateEffect","SwitchOnFormValue","_ref4","on","off","map","_excluded2","isOn","mappedValue","onKey","useMemo","getUID","SwitchDiv","_extends","FormMeta","_ref5","useFormMeta","IfFormMeta","_ref6","_excluded3","LazyFormValues","_ref7","currentValue","read","loaded","setLoaded","useState","formUtils","useContext","FormContext","useEffect","setValues","refresh"],"mappings":"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"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
|
+
import _union from 'lodash/fp/union';
|
|
4
|
+
import _unionBy from 'lodash/fp/unionBy';
|
|
5
|
+
import _uniq from 'lodash/fp/uniq';
|
|
6
|
+
import _uniqBy from 'lodash/fp/uniqBy';
|
|
7
|
+
import _difference from 'lodash/fp/difference';
|
|
8
|
+
import _differenceBy from 'lodash/fp/differenceBy';
|
|
9
|
+
import _intersection from 'lodash/fp/intersection';
|
|
10
|
+
import _intersectionBy from 'lodash/fp/intersectionBy';
|
|
11
|
+
import _isFunction from 'lodash/fp/isFunction';
|
|
12
|
+
import _isArray from 'lodash/fp/isArray';
|
|
13
|
+
import React from 'react';
|
|
14
|
+
import { callIfFunction } from '@startlibs/utils';
|
|
15
|
+
import { styled, css } from '@yak/react';
|
|
16
|
+
import { Field } from './Field.mjs';
|
|
17
|
+
import { SimpleCheckbox } from './alt/checkbox/SimpleCheckbox.mjs';
|
|
18
|
+
import { SimpleRadiobox } from './alt/radiobox/SimpleRadiobox.mjs';
|
|
19
|
+
import { SplitColumnsContainer } from '@startlibs/components';
|
|
20
|
+
|
|
21
|
+
const _excluded = ["path", "className", "column", "as", "children", "label", "descText", "helpText", "mandatory", "margin"];
|
|
22
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
+
const InputboxGroup = styled(_ref => {
|
|
25
|
+
let {
|
|
26
|
+
path,
|
|
27
|
+
className,
|
|
28
|
+
column,
|
|
29
|
+
as = column ? SplitColumnsContainer : 'div',
|
|
30
|
+
children,
|
|
31
|
+
label,
|
|
32
|
+
descText,
|
|
33
|
+
helpText,
|
|
34
|
+
mandatory,
|
|
35
|
+
margin
|
|
36
|
+
} = _ref,
|
|
37
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
38
|
+
React.Children.count(children);
|
|
39
|
+
const Wrapper = as;
|
|
40
|
+
const boxes = /*#__PURE__*/React.createElement(Wrapper, {
|
|
41
|
+
className: className
|
|
42
|
+
}, React.Children.toArray(children).filter(child => child.props).map((child, i, arr) => /*#__PURE__*/React.cloneElement(child, _objectSpread(_objectSpread({
|
|
43
|
+
isFirst: i === 0,
|
|
44
|
+
isLast: i === arr.length - 1,
|
|
45
|
+
index: i,
|
|
46
|
+
path
|
|
47
|
+
}, rest), child.props))));
|
|
48
|
+
return label ? /*#__PURE__*/React.createElement(Field, {
|
|
49
|
+
label: label,
|
|
50
|
+
mandatory: mandatory,
|
|
51
|
+
descText: descText,
|
|
52
|
+
helpText: helpText,
|
|
53
|
+
margin: margin
|
|
54
|
+
}, boxes) : boxes;
|
|
55
|
+
}).attrs({
|
|
56
|
+
className: "styled-inputbox-group"
|
|
57
|
+
})`
|
|
58
|
+
${props => props.wide && css`
|
|
59
|
+
width: 100%;
|
|
60
|
+
display: flex;
|
|
61
|
+
label {
|
|
62
|
+
flex-grow: 1;
|
|
63
|
+
flex-basis: 0;
|
|
64
|
+
}
|
|
65
|
+
`}
|
|
66
|
+
${props => props.unevenlyWide && css`
|
|
67
|
+
width: 100%;
|
|
68
|
+
display: flex;
|
|
69
|
+
label {
|
|
70
|
+
flex-grow: 1;
|
|
71
|
+
}
|
|
72
|
+
`}
|
|
73
|
+
${props => props.horizontal ? css`
|
|
74
|
+
@supports (flex-wrap: wrap) {
|
|
75
|
+
display: flex;
|
|
76
|
+
flex-wrap: wrap;
|
|
77
|
+
}
|
|
78
|
+
min-height: 3rem;
|
|
79
|
+
${SimpleRadiobox}, ${SimpleCheckbox} {
|
|
80
|
+
margin-right: 1.5rem;
|
|
81
|
+
margin-bottom: 0.5rem;
|
|
82
|
+
}
|
|
83
|
+
` : css`
|
|
84
|
+
${SimpleRadiobox}, ${SimpleCheckbox} {
|
|
85
|
+
margin-bottom: 0.5rem;
|
|
86
|
+
&:last-child {
|
|
87
|
+
margin-bottom: 1.5rem;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
`}
|
|
91
|
+
${props => props.framedBoxes && css`
|
|
92
|
+
${props => props.horizontal && css`
|
|
93
|
+
margin: -4px;
|
|
94
|
+
width: calc(100% + 8px);
|
|
95
|
+
${SimpleRadiobox}, ${SimpleCheckbox} {
|
|
96
|
+
margin: 4px;
|
|
97
|
+
}
|
|
98
|
+
`}
|
|
99
|
+
`}
|
|
100
|
+
`;
|
|
101
|
+
const RadioboxGroup = InputboxGroup;
|
|
102
|
+
const CheckboxGroup = InputboxGroup;
|
|
103
|
+
CheckboxGroup.createCheckManager = function () {
|
|
104
|
+
let path = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
105
|
+
let lastSelected = null;
|
|
106
|
+
const select = (itemOrItems, toggleValue) => {
|
|
107
|
+
lastSelected = _isArray(itemOrItems) || _isFunction(itemOrItems) ? lastSelected : itemOrItems;
|
|
108
|
+
const items = _isArray(itemOrItems) ? itemOrItems : [itemOrItems];
|
|
109
|
+
const intersects = list => path.length ? _intersectionBy(path, list, items).length === items.length : _intersection(list, items).length === items.length;
|
|
110
|
+
return function () {
|
|
111
|
+
let currentlySelected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
112
|
+
return _isFunction(itemOrItems) ? itemOrItems(currentlySelected) : toggleValue === false || toggleValue !== true && intersects(currentlySelected) ? path.length ? _differenceBy(path, currentlySelected, items) : _difference(currentlySelected, items) : path.length ? _uniqBy(path, currentlySelected.concat(items)) : _uniq(currentlySelected.concat(items));
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
const getIndex = (item, list) => {
|
|
116
|
+
const element = path.length ? _intersectionBy(path, list, [item])[0] : item;
|
|
117
|
+
return list.indexOf(element);
|
|
118
|
+
};
|
|
119
|
+
const shiftSelect = (availableItems, item) => {
|
|
120
|
+
const lastSelectedIndex = getIndex(lastSelected, callIfFunction(availableItems));
|
|
121
|
+
lastSelected = item;
|
|
122
|
+
return function () {
|
|
123
|
+
let currentlySelected = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
124
|
+
if (lastSelectedIndex < 0) {
|
|
125
|
+
return select(item)(currentlySelected);
|
|
126
|
+
} else {
|
|
127
|
+
const removing = path.length ? _intersectionBy(path, [item], currentlySelected).length : (currentlySelected === null || currentlySelected === void 0 ? void 0 : currentlySelected.indexOf(item)) >= 0;
|
|
128
|
+
const currentIndex = getIndex(item, callIfFunction(availableItems));
|
|
129
|
+
const firstIndex = currentIndex > lastSelectedIndex ? lastSelectedIndex : currentIndex;
|
|
130
|
+
const lastIndex = currentIndex > lastSelectedIndex ? currentIndex + 1 : lastSelectedIndex + 1;
|
|
131
|
+
if (removing) {
|
|
132
|
+
return path.length ? _differenceBy(path, currentlySelected, availableItems.slice(firstIndex, lastIndex)) : _difference(currentlySelected, availableItems.slice(firstIndex, lastIndex));
|
|
133
|
+
} else {
|
|
134
|
+
return path.length ? _unionBy(path, currentlySelected, availableItems.slice(firstIndex, lastIndex)) : _union(currentlySelected, availableItems.slice(firstIndex, lastIndex));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
};
|
|
139
|
+
return {
|
|
140
|
+
select,
|
|
141
|
+
shiftSelect
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
export { CheckboxGroup, InputboxGroup, RadioboxGroup };
|
|
146
|
+
//# sourceMappingURL=InputboxGroup.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputboxGroup.mjs","sources":["../src/InputboxGroup.jsx"],"sourcesContent":["import React from 'react'\n\nimport {callIfFunction} from '@startlibs/utils'\nimport styled, {css} from 'styled-components'\n\nimport {Field} from './Field'\nimport {SimpleCheckbox} from './alt/checkbox/SimpleCheckbox'\nimport {SimpleRadiobox} from './alt/radiobox/SimpleRadiobox'\nimport {SplitColumnsContainer} from '@startlibs/components'\nimport _ from \"lodash/fp\";\n\nexport const InputboxGroup = styled(({path, className, column, as = column ? SplitColumnsContainer : 'div', children, label, descText,helpText,mandatory,margin, ...rest}) => {\n const size = React.Children.count(children)\n const Wrapper = as\n const boxes = <Wrapper className={className}>{\n React.Children.toArray(children).filter(child => child.props).map((child, i,arr) => React.cloneElement(child, {\n isFirst: i === 0,\n isLast: i === arr.length - 1,\n index: i,\n path,\n ...rest,\n ...child.props,\n }))\n }</Wrapper>\n \n return label \n ? <Field label={label} mandatory={mandatory} descText={descText} helpText={helpText} margin={margin}>{boxes}</Field> \n : boxes\n})`\n ${props => props.wide && `\n width: 100%;\n display: flex;\n label {\n flex-grow: 1;\n flex-basis: 0;\n }\n `}\n ${props => props.unevenlyWide && `\n width: 100%;\n display: flex;\n label {\n flex-grow: 1;\n }\n `}\n ${props => props.horizontal ? `\n @supports (flex-wrap: wrap) {\n display: flex;\n flex-wrap: wrap;\n }\n min-height: 3rem;\n ${SimpleRadiobox}, ${SimpleCheckbox} {\n margin-right: 1.5rem;\n margin-bottom: 0.5rem;\n }\n ` : `\n ${SimpleRadiobox}, ${SimpleCheckbox} {\n margin-bottom: 0.5rem;\n &:last-child {\n margin-bottom: 1.5rem;\n }\n }\n `}\n ${props => props.framedBoxes && css`\n ${props => props.horizontal && `\n margin: -4px;\n width: calc(100% + 8px);\n ${SimpleRadiobox}, ${SimpleCheckbox} {\n margin: 4px;\n }\n `}\n `}\n`\n\nexport const RadioboxGroup = InputboxGroup\nexport const CheckboxGroup = InputboxGroup\n\nCheckboxGroup.createCheckManager = (path = []) => {\n let lastSelected = null\n const select = (itemOrItems,toggleValue) => {\n lastSelected = _.isArray(itemOrItems) || _.isFunction(itemOrItems) ? lastSelected : itemOrItems\n const items = _.isArray(itemOrItems) ? itemOrItems : [itemOrItems]\n const intersects = (list) => path.length\n ? _.intersectionBy(path,list,items).length === items.length\n : _.intersection(list,items).length === items.length\n return (currentlySelected = []) =>\n _.isFunction(itemOrItems)\n ? itemOrItems(currentlySelected)\n : (toggleValue===false || (toggleValue !== true && intersects(currentlySelected)))\n ? (path.length ? _.differenceBy(path, currentlySelected, items) : _.difference(currentlySelected, items))\n : (path.length ? _.uniqBy(path,currentlySelected.concat(items)) : _.uniq(currentlySelected.concat(items)))\n }\n\n const getIndex = (item,list) => {\n const element = path.length ? _.intersectionBy(path, list, [item])[0] : item\n return list.indexOf(element)\n }\n const shiftSelect = (availableItems,item) => {\n const lastSelectedIndex = getIndex(lastSelected,callIfFunction(availableItems))\n lastSelected = item\n return (currentlySelected=[]) => {\n if (lastSelectedIndex < 0) {\n return select(item)(currentlySelected)\n } else {\n const removing = path.length ? _.intersectionBy(path, [item], currentlySelected).length : (currentlySelected?.indexOf(item)>=0)\n const currentIndex = getIndex(item,callIfFunction(availableItems))\n const firstIndex = currentIndex > lastSelectedIndex ? lastSelectedIndex : currentIndex\n const lastIndex = currentIndex > lastSelectedIndex ? (currentIndex + 1) : (lastSelectedIndex + 1)\n if (removing) {\n return path.length\n ? _.differenceBy(path,currentlySelected,availableItems.slice(firstIndex,lastIndex))\n : _.difference(currentlySelected,availableItems.slice(firstIndex,lastIndex))\n } else {\n return path.length\n ? _.unionBy(path,currentlySelected,availableItems.slice(firstIndex,lastIndex))\n : _.union(currentlySelected,availableItems.slice(firstIndex,lastIndex))\n }\n }\n }\n }\n return {select, shiftSelect}\n}"],"names":["InputboxGroup","styled","_ref","path","className","column","as","SplitColumnsContainer","children","label","descText","helpText","mandatory","margin","rest","_objectWithoutProperties","_excluded","React","Children","count","Wrapper","boxes","createElement","toArray","filter","child","props","map","i","arr","cloneElement","_objectSpread","isFirst","isLast","length","index","Field","attrs","wide","css","unevenlyWide","horizontal","SimpleRadiobox","SimpleCheckbox","framedBoxes","RadioboxGroup","CheckboxGroup","createCheckManager","arguments","undefined","lastSelected","select","itemOrItems","toggleValue","_isArray","_isFunction","items","intersects","list","_intersectionBy","_intersection","currentlySelected","_differenceBy","_difference","_uniqBy","concat","_uniq","getIndex","item","element","indexOf","shiftSelect","availableItems","lastSelectedIndex","callIfFunction","removing","currentIndex","firstIndex","lastIndex","slice","_unionBy","_union"],"mappings":"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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
|
+
import { yakDomTag } from '@startlibs/utils/yakDomTag';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { styled } from '@yak/react';
|
|
6
|
+
import { useInput } from './enhanceInput.mjs';
|
|
7
|
+
import { useToggle } from '@startlibs/core';
|
|
8
|
+
import { isTouchDevice } from '@startlibs/utils';
|
|
9
|
+
|
|
10
|
+
const _excluded = ["className", "children", "disabled", "isChecked", "fieldValue", "path", "tabIndex", "raw"];
|
|
11
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
12
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
13
|
+
const HiddenInput = styled(yakDomTag("input"))`
|
|
14
|
+
opacity: 0 !important;
|
|
15
|
+
position: absolute;
|
|
16
|
+
pointer-events: none;
|
|
17
|
+
`;
|
|
18
|
+
const Radiobox = _ref => {
|
|
19
|
+
let {
|
|
20
|
+
className,
|
|
21
|
+
children,
|
|
22
|
+
disabled,
|
|
23
|
+
isChecked,
|
|
24
|
+
fieldValue,
|
|
25
|
+
path,
|
|
26
|
+
tabIndex = 1,
|
|
27
|
+
raw
|
|
28
|
+
} = _ref,
|
|
29
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
30
|
+
const focused = useToggle();
|
|
31
|
+
const [value,, {
|
|
32
|
+
setFromField,
|
|
33
|
+
name,
|
|
34
|
+
hasErrors
|
|
35
|
+
}] = useInput(_objectSpread({
|
|
36
|
+
fieldValue,
|
|
37
|
+
path,
|
|
38
|
+
isChecked
|
|
39
|
+
}, rest), raw);
|
|
40
|
+
const checked = isChecked ? isChecked(value) : value === fieldValue;
|
|
41
|
+
return /*#__PURE__*/React.createElement("label", {
|
|
42
|
+
"data-drag": "false",
|
|
43
|
+
onClick: e => {
|
|
44
|
+
e.preventDefault();
|
|
45
|
+
if (!disabled) {
|
|
46
|
+
setFromField();
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
className: className
|
|
50
|
+
}, !isTouchDevice() && /*#__PURE__*/React.createElement(HiddenInput, {
|
|
51
|
+
onFocus: focused.open,
|
|
52
|
+
onBlur: focused.close,
|
|
53
|
+
disabled: disabled,
|
|
54
|
+
type: "radio",
|
|
55
|
+
checked: checked,
|
|
56
|
+
value: fieldValue,
|
|
57
|
+
readOnly: true,
|
|
58
|
+
name: name,
|
|
59
|
+
tabIndex: tabIndex
|
|
60
|
+
}), children && children({
|
|
61
|
+
disabled,
|
|
62
|
+
checked,
|
|
63
|
+
hasErrors,
|
|
64
|
+
focused: focused.isOpen
|
|
65
|
+
}));
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
export { Radiobox };
|
|
69
|
+
//# sourceMappingURL=Radiobox.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Radiobox.mjs","sources":["../src/Radiobox.jsx"],"sourcesContent":["import React from 'react'\nimport styled from 'styled-components'\nimport {useInput} from './enhanceInput'\nimport {useToggle} from '@startlibs/core'\nimport {isTouchDevice} from '@startlibs/utils'\n\nconst HiddenInput = styled.input`\n opacity: 0 !important;\n position: absolute;\n pointer-events: none;\n`\n\nexport const Radiobox = ({className, children, disabled, isChecked, fieldValue, path, tabIndex = 1, raw, ...rest}) => {\n const focused = useToggle()\n const [value, , {setFromField, name, hasErrors}] = useInput({fieldValue, path, isChecked, ...rest}, raw)\n const checked = isChecked ? isChecked(value) : value === fieldValue\n return <label data-drag=\"false\" onClick={(e) => {e.preventDefault();if (!disabled){setFromField()}}} className={className}>\n {\n !isTouchDevice() && <HiddenInput\n onFocus={focused.open}\n onBlur={focused.close}\n disabled={disabled}\n type=\"radio\"\n checked={checked}\n value={fieldValue}\n readOnly\n name={name}\n tabIndex={tabIndex}\n />\n }\n {children && children({disabled, checked, hasErrors, focused: focused.isOpen})}\n </label>\n}\n"],"names":["HiddenInput","styled","yakDomTag","Radiobox","_ref","className","children","disabled","isChecked","fieldValue","path","tabIndex","raw","rest","_objectWithoutProperties","_excluded","focused","useToggle","value","setFromField","name","hasErrors","useInput","_objectSpread","checked","React","createElement","onClick","e","preventDefault","isTouchDevice","onFocus","open","onBlur","close","type","readOnly","isOpen"],"mappings":";;;;;;;;;;;;AAMA,MAAMA,WAAW,GAAGC,MAAA,CAAAC,SAAA,CAAA,OAAA,CAAA,CAAA,CAAA;AACpB;AACA;AACA;AACA,CAAC,CAAA;AAEYC,MAAAA,QAAQ,GAAGC,IAAA,IAA8F;EAAA,IAA7F;MAACC,SAAS;MAAEC,QAAQ;MAAEC,QAAQ;MAAEC,SAAS;MAAEC,UAAU;MAAEC,IAAI;AAAEC,MAAAA,QAAQ,GAAG,CAAC;AAAEC,MAAAA,GAAAA;AAAY,KAAC,GAAAR,IAAA;AAALS,IAAAA,IAAI,GAAAC,wBAAA,CAAAV,IAAA,EAAAW,SAAA,CAAA,CAAA;AAC9G,EAAA,MAAMC,OAAO,GAAGC,SAAS,EAAE,CAAA;EAC3B,MAAM,CAACC,KAAK,GAAI;IAACC,YAAY;IAAEC,IAAI;AAAEC,IAAAA,SAAAA;AAAS,GAAC,CAAC,GAAGC,QAAQ,CAAAC,aAAA,CAAA;IAAEd,UAAU;IAAEC,IAAI;AAAEF,IAAAA,SAAAA;GAAcK,EAAAA,IAAI,CAAGD,EAAAA,GAAG,CAAC,CAAA;EACxG,MAAMY,OAAO,GAAGhB,SAAS,GAAGA,SAAS,CAACU,KAAK,CAAC,GAAGA,KAAK,KAAKT,UAAU,CAAA;EACnE,oBAAOgB,KAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AAAO,IAAA,WAAA,EAAU,OAAO;IAACC,OAAO,EAAGC,CAAC,IAAK;MAACA,CAAC,CAACC,cAAc,EAAE,CAAA;MAAC,IAAI,CAACtB,QAAQ,EAAC;AAACY,QAAAA,YAAY,EAAE,CAAA;AAAA,OAAA;KAAG;AAACd,IAAAA,SAAS,EAAEA,SAAAA;GAE5G,EAAA,CAACyB,aAAa,EAAE,iBAAIL,KAAA,CAAAC,aAAA,CAAC1B,WAAW,EAAA;IAC9B+B,OAAO,EAAEf,OAAO,CAACgB,IAAK;IACtBC,MAAM,EAAEjB,OAAO,CAACkB,KAAM;AACtB3B,IAAAA,QAAQ,EAAEA,QAAS;AACnB4B,IAAAA,IAAI,EAAC,OAAO;AACZX,IAAAA,OAAO,EAAEA,OAAQ;AACjBN,IAAAA,KAAK,EAAET,UAAW;IAClB2B,QAAQ,EAAA,IAAA;AACRhB,IAAAA,IAAI,EAAEA,IAAK;AACXT,IAAAA,QAAQ,EAAEA,QAAAA;AAAS,GACpB,CAAC,EAEHL,QAAQ,IAAIA,QAAQ,CAAC;IAACC,QAAQ;IAAEiB,OAAO;IAAEH,SAAS;IAAEL,OAAO,EAAEA,OAAO,CAACqB,MAAAA;AAAM,GAAC,CACxE,CAAC,CAAA;AACV;;;;"}
|