@startlibs/form 1.1.3 → 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.
Files changed (112) hide show
  1. package/lib/AutoComplete.mjs +7 -7
  2. package/lib/AutoComplete.mjs.map +1 -1
  3. package/lib/Checkbox.mjs +4 -2
  4. package/lib/Checkbox.mjs.map +1 -1
  5. package/lib/Combobox.mjs +1 -1
  6. package/lib/Combobox.mjs.map +1 -1
  7. package/lib/DatePicker.mjs +25 -9
  8. package/lib/DatePicker.mjs.map +1 -1
  9. package/lib/Errors.mjs +20 -10
  10. package/lib/Errors.mjs.map +1 -1
  11. package/lib/ExpandableBox.mjs +1 -1
  12. package/lib/ExpandableBox.mjs.map +1 -1
  13. package/lib/Field.mjs +10 -5
  14. package/lib/Field.mjs.map +1 -1
  15. package/lib/FieldBox.mjs +3 -3
  16. package/lib/FieldBox.mjs.map +1 -1
  17. package/lib/InputboxGroup.mjs +1 -1
  18. package/lib/InputboxGroup.mjs.map +1 -1
  19. package/lib/RichText.mjs +11 -6
  20. package/lib/RichText.mjs.map +1 -1
  21. package/lib/TextInput.mjs +4 -4
  22. package/lib/TextInput.mjs.map +1 -1
  23. package/lib/alt/checkbox/SimpleCheckbox.mjs +1 -1
  24. package/lib/alt/checkbox/SimpleCheckbox.mjs.map +1 -1
  25. package/lib/alt/checkbox/ToggleCheckbox.mjs +4 -3
  26. package/lib/alt/checkbox/ToggleCheckbox.mjs.map +1 -1
  27. package/lib/alt/radiobox/CleanTabRadiobox.mjs +1 -1
  28. package/lib/alt/radiobox/CleanTabRadiobox.mjs.map +1 -1
  29. package/lib/alt/radiobox/SimpleRadiobox.mjs +2 -2
  30. package/lib/alt/radiobox/SimpleRadiobox.mjs.map +1 -1
  31. package/lib/alt/radiobox/TabRadiobox.mjs +1 -1
  32. package/lib/alt/radiobox/TabRadiobox.mjs.map +1 -1
  33. package/lib/index.cjs +94 -51
  34. package/lib/index.cjs.map +1 -1
  35. package/lib/index.mjs +2 -2
  36. package/lib/withFormImageInput.mjs +1 -1
  37. package/lib/withFormImageInput.mjs.map +1 -1
  38. package/lib-yak/AutoComplete.mjs +705 -0
  39. package/lib-yak/AutoComplete.mjs.map +1 -0
  40. package/lib-yak/Checkbox.mjs +80 -0
  41. package/lib-yak/Checkbox.mjs.map +1 -0
  42. package/lib-yak/Combobox.mjs +652 -0
  43. package/lib-yak/Combobox.mjs.map +1 -0
  44. package/lib-yak/ComboboxWithCustom.mjs +77 -0
  45. package/lib-yak/ComboboxWithCustom.mjs.map +1 -0
  46. package/lib-yak/DatePicker.mjs +774 -0
  47. package/lib-yak/DatePicker.mjs.map +1 -0
  48. package/lib-yak/EditableBox.mjs +495 -0
  49. package/lib-yak/EditableBox.mjs.map +1 -0
  50. package/lib-yak/Errors.mjs +226 -0
  51. package/lib-yak/Errors.mjs.map +1 -0
  52. package/lib-yak/ExpandableBox.mjs +247 -0
  53. package/lib-yak/ExpandableBox.mjs.map +1 -0
  54. package/lib-yak/Field.mjs +93 -0
  55. package/lib-yak/Field.mjs.map +1 -0
  56. package/lib-yak/FieldBox.mjs +173 -0
  57. package/lib-yak/FieldBox.mjs.map +1 -0
  58. package/lib-yak/Form.mjs +322 -0
  59. package/lib-yak/Form.mjs.map +1 -0
  60. package/lib-yak/FormValue.mjs +111 -0
  61. package/lib-yak/FormValue.mjs.map +1 -0
  62. package/lib-yak/InputboxGroup.mjs +146 -0
  63. package/lib-yak/InputboxGroup.mjs.map +1 -0
  64. package/lib-yak/Radiobox.mjs +69 -0
  65. package/lib-yak/Radiobox.mjs.map +1 -0
  66. package/lib-yak/RichText.mjs +776 -0
  67. package/lib-yak/RichText.mjs.map +1 -0
  68. package/lib-yak/TextInput.mjs +589 -0
  69. package/lib-yak/TextInput.mjs.map +1 -0
  70. package/lib-yak/alt/checkbox/SimpleCheckbox.mjs +225 -0
  71. package/lib-yak/alt/checkbox/SimpleCheckbox.mjs.map +1 -0
  72. package/lib-yak/alt/checkbox/ToggleCheckbox.mjs +173 -0
  73. package/lib-yak/alt/checkbox/ToggleCheckbox.mjs.map +1 -0
  74. package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs +87 -0
  75. package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs.map +1 -0
  76. package/lib-yak/alt/radiobox/IconRadioBox.mjs +138 -0
  77. package/lib-yak/alt/radiobox/IconRadioBox.mjs.map +1 -0
  78. package/lib-yak/alt/radiobox/SimpleRadiobox.mjs +203 -0
  79. package/lib-yak/alt/radiobox/SimpleRadiobox.mjs.map +1 -0
  80. package/lib-yak/alt/radiobox/TabRadiobox.mjs +117 -0
  81. package/lib-yak/alt/radiobox/TabRadiobox.mjs.map +1 -0
  82. package/lib-yak/enhanceInput.mjs +131 -0
  83. package/lib-yak/enhanceInput.mjs.map +1 -0
  84. package/lib-yak/index.mjs +28 -0
  85. package/lib-yak/index.mjs.map +1 -0
  86. package/lib-yak/useConfirmDialog.mjs +117 -0
  87. package/lib-yak/useConfirmDialog.mjs.map +1 -0
  88. package/lib-yak/useDraftConfirmation.mjs +56 -0
  89. package/lib-yak/useDraftConfirmation.mjs.map +1 -0
  90. package/lib-yak/validation.mjs +91 -0
  91. package/lib-yak/validation.mjs.map +1 -0
  92. package/lib-yak/withFormImageInput.mjs +298 -0
  93. package/lib-yak/withFormImageInput.mjs.map +1 -0
  94. package/package.json +13 -3
  95. package/src/AutoComplete.jsx +12 -12
  96. package/src/Checkbox.jsx +2 -2
  97. package/src/Combobox.jsx +1 -1
  98. package/src/DatePicker.jsx +25 -22
  99. package/src/Errors.jsx +18 -8
  100. package/src/ExpandableBox.jsx +3 -3
  101. package/src/Field.jsx +9 -4
  102. package/src/FieldBox.jsx +6 -6
  103. package/src/IconRadioBoxOldHubt.jsx +1 -1
  104. package/src/InputboxGroup.jsx +1 -1
  105. package/src/RichText.jsx +17 -13
  106. package/src/TextInput.jsx +37 -26
  107. package/src/alt/checkbox/SimpleCheckbox.jsx +5 -5
  108. package/src/alt/checkbox/ToggleCheckbox.jsx +9 -8
  109. package/src/alt/radiobox/CleanTabRadiobox.jsx +2 -2
  110. package/src/alt/radiobox/SimpleRadiobox.jsx +7 -7
  111. package/src/alt/radiobox/TabRadiobox.jsx +4 -4
  112. 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;;;;"}