@startlibs/form 1.0.11 → 1.1.0

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 (92) hide show
  1. package/lib/AutoComplete.mjs +550 -0
  2. package/lib/AutoComplete.mjs.map +1 -0
  3. package/lib/Checkbox.mjs +76 -0
  4. package/lib/Checkbox.mjs.map +1 -0
  5. package/lib/Combobox.mjs +544 -0
  6. package/lib/Combobox.mjs.map +1 -0
  7. package/lib/ComboboxWithCustom.mjs +77 -0
  8. package/lib/ComboboxWithCustom.mjs.map +1 -0
  9. package/lib/DatePicker.mjs +625 -0
  10. package/lib/DatePicker.mjs.map +1 -0
  11. package/lib/EditableBox.mjs +496 -0
  12. package/lib/EditableBox.mjs.map +1 -0
  13. package/lib/Errors.mjs +176 -0
  14. package/lib/Errors.mjs.map +1 -0
  15. package/lib/ExpandableBox.mjs +209 -0
  16. package/lib/ExpandableBox.mjs.map +1 -0
  17. package/lib/Field.mjs +65 -0
  18. package/lib/Field.mjs.map +1 -0
  19. package/lib/FieldBox.mjs +80 -0
  20. package/lib/FieldBox.mjs.map +1 -0
  21. package/lib/Form.mjs +322 -0
  22. package/lib/Form.mjs.map +1 -0
  23. package/lib/FormValue.mjs +111 -0
  24. package/lib/FormValue.mjs.map +1 -0
  25. package/lib/InputboxGroup.mjs +104 -0
  26. package/lib/InputboxGroup.mjs.map +1 -0
  27. package/lib/Radiobox.mjs +67 -0
  28. package/lib/Radiobox.mjs.map +1 -0
  29. package/lib/RichText.mjs +634 -0
  30. package/lib/RichText.mjs.map +1 -0
  31. package/lib/TextInput.mjs +359 -0
  32. package/lib/TextInput.mjs.map +1 -0
  33. package/lib/alt/checkbox/SimpleCheckbox.mjs +82 -0
  34. package/lib/alt/checkbox/SimpleCheckbox.mjs.map +1 -0
  35. package/lib/alt/checkbox/ToggleCheckbox.mjs +68 -0
  36. package/lib/alt/checkbox/ToggleCheckbox.mjs.map +1 -0
  37. package/lib/alt/radiobox/CleanTabRadiobox.mjs +44 -0
  38. package/lib/alt/radiobox/CleanTabRadiobox.mjs.map +1 -0
  39. package/lib/alt/radiobox/IconRadioBox.mjs +52 -0
  40. package/lib/alt/radiobox/IconRadioBox.mjs.map +1 -0
  41. package/lib/alt/radiobox/SimpleRadiobox.mjs +61 -0
  42. package/lib/alt/radiobox/SimpleRadiobox.mjs.map +1 -0
  43. package/lib/alt/radiobox/TabRadiobox.mjs +54 -0
  44. package/lib/alt/radiobox/TabRadiobox.mjs.map +1 -0
  45. package/lib/enhanceInput.mjs +131 -0
  46. package/lib/enhanceInput.mjs.map +1 -0
  47. package/lib/index.cjs +5345 -0
  48. package/lib/index.cjs.map +1 -0
  49. package/lib/index.mjs +28 -0
  50. package/lib/index.mjs.map +1 -0
  51. package/lib/useConfirmDialog.mjs +117 -0
  52. package/lib/useConfirmDialog.mjs.map +1 -0
  53. package/lib/useDraftConfirmation.mjs +56 -0
  54. package/lib/useDraftConfirmation.mjs.map +1 -0
  55. package/lib/validation.mjs +91 -0
  56. package/lib/validation.mjs.map +1 -0
  57. package/lib/withFormImageInput.mjs +281 -0
  58. package/lib/withFormImageInput.mjs.map +1 -0
  59. package/package.json +44 -25
  60. package/src/AutoComplete.jsx +642 -0
  61. package/src/Checkbox.jsx +45 -0
  62. package/src/Combobox.jsx +606 -0
  63. package/src/ComboboxWithCustom.jsx +68 -0
  64. package/src/DatePicker.jsx +733 -0
  65. package/src/EditableBox.jsx +502 -0
  66. package/src/Errors.jsx +174 -0
  67. package/src/ExpandableBox.jsx +207 -0
  68. package/src/Field.jsx +76 -0
  69. package/src/FieldBox.jsx +136 -0
  70. package/src/Form.jsx +291 -0
  71. package/src/FormValue.jsx +67 -0
  72. package/src/IconRadioBoxOldHubt.jsx +93 -0
  73. package/src/InputboxGroup.jsx +121 -0
  74. package/src/Radiobox.jsx +33 -0
  75. package/src/RichText.jsx +812 -0
  76. package/src/TextInput.jsx +519 -0
  77. package/src/alt/checkbox/SimpleCheckbox.jsx +162 -0
  78. package/src/alt/checkbox/ToggleCheckbox.jsx +143 -0
  79. package/src/alt/radiobox/CleanTabRadiobox.jsx +46 -0
  80. package/src/alt/radiobox/IconRadioBox.jsx +93 -0
  81. package/src/alt/radiobox/SimpleRadiobox.jsx +153 -0
  82. package/src/alt/radiobox/TabRadiobox.jsx +73 -0
  83. package/src/enhanceInput.jsx +107 -0
  84. package/src/index.js +27 -0
  85. package/src/useConfirmDialog.jsx +105 -0
  86. package/src/useDraftConfirmation.jsx +60 -0
  87. package/src/validation.js +92 -0
  88. package/src/withFormImageInput.jsx +297 -0
  89. package/.babelrc +0 -28
  90. package/lib/index.js +0 -6255
  91. package/rollup.config.js +0 -43
  92. package/yarn-error.log +0 -1607
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../src/Errors.jsx","../src/useDraftConfirmation.jsx","../src/Form.jsx","../src/enhanceInput.jsx","../src/Field.jsx","../src/FieldBox.jsx","../src/useConfirmDialog.jsx","../src/TextInput.jsx","../src/withFormImageInput.jsx","../src/Checkbox.jsx","../src/Combobox.jsx","../src/ComboboxWithCustom.jsx","../src/AutoComplete.jsx","../src/FormValue.jsx","../src/EditableBox.jsx","../src/Radiobox.jsx","../src/alt/checkbox/SimpleCheckbox.jsx","../src/alt/radiobox/SimpleRadiobox.jsx","../src/InputboxGroup.jsx","../src/DatePicker.jsx","../src/ExpandableBox.jsx","../src/RichText.jsx","../src/alt/radiobox/IconRadioBox.jsx","../src/alt/checkbox/ToggleCheckbox.jsx","../src/alt/radiobox/TabRadiobox.jsx","../src/alt/radiobox/CleanTabRadiobox.jsx","../src/validation.js"],"sourcesContent":["import React, {useEffect, useContext, useRef, useMemo} from 'react'\nimport styled from 'styled-components'\nimport {Icon,TransitionDiv} from '@startlibs/components'\nimport {usePreviousForEffect, useToggle} from '@startlibs/core'\nimport {lighten} from 'polished'\nimport {createSelector} from 'reselect'\nimport _ from 'lodash/fp'\nimport {formatPath, getColor, customTheme, identityFn, isElementInView} from '@startlibs/utils'\n\nconst errorsInsidePathSelector = () => createSelector(\n [identityFn(0), identityFn(1)],\n (path, entries) =>\n path ? entries.filter(([_, p]) => (p + '.').indexOf(path + '.') === 0) : entries\n)\nconst parseError = (value, path) => Array.isArray(value) ? value.map(v => [v, formatPath(path)]) : [[value, formatPath(path)]]\n\nconst parseMultipleErrors = (objOrArray) => [].concat.apply([],\n (Array.isArray(objOrArray) ? objOrArray : Object.entries(objOrArray))\n .map(([path, value]) => parseError(value, path))\n)\n\nexport const ErrorsContext = React.createContext({})\nconst ErrorFilterContext = React.createContext(_.identity)\nexport const ErrorFilterProvider = ErrorFilterContext.Provider\n\nexport const useProvideErrors = () => {\n const errors = useToggle([])\n\n\n const addError = (value, path) => errors.openWith(errors => errors.concat(parseError(value, path)))\n const addErrors = (newErrors) => errors.openWith(errors => errors.concat(parseMultipleErrors(newErrors)))\n\n const removeError = (value, path) => errors.openWith(errors => errors.filter(([v, p]) => !(value === v && (p + '.').indexOf(formatPath(path) + '.') >= 0)))\n\n const removeErrorPath = (path) => errors.openWith(errors => errors.filter(([_, p]) => formatPath(path) !== p))\n const clearErrors = (path) => errors.openWith(errors => path ? errors.filter(([_, p]) => (p + '.').indexOf(formatPath(path) + '.') < 0) : [])\n\n const setErrors = (newErrors) => {\n console.log(parseMultipleErrors(newErrors))\n errors.openWith(parseMultipleErrors(newErrors))\n errors.get()\n }\n const setError = (errorPath, errorValue) => errors.openWith(parseMultipleErrors([[errorPath, errorValue]]))\n\n const memoizeErorrsInsidePath = useMemo(errorsInsidePathSelector, [])\n\n const getErrorsInsidePath = (path) => memoizeErorrsInsidePath(formatPath(path), errors.get())\n\n const utils = {\n addErrors,\n addError,\n setErrors,\n setError,\n clearErrors,\n removeError,\n willRemoveError: (value, insidePath) => () => removeError(value, insidePath),\n removeErrorPath,\n getErrorsInsidePath,\n hasErrors: (path) => getErrorsInsidePath(path).length > 0,\n hasError: (path,value) => getErrorsInsidePath(path).find(([v]) => v === value)\n }\n\n const paths = useMemo(() => new Set(errors.isOpen.map(([_, path]) => path).filter(_ => _)), [errors.isOpen])\n const providerValue = useMemo(() => ({paths, errors:errors.isOpen, ...utils}), [errors.isOpen])\n\n return [ErrorsContext.Provider, providerValue, utils]\n}\n\nexport const useErrors = () => {\n const [Provider,value,utils] = useProvideErrors()\n\n return [utils,<Provider value={value}><Errors/></Provider>]\n}\n\nexport const useHasError = (path) => {\n const {paths} = useContext(ErrorsContext)\n return paths.has(formatPath(path))\n}\nexport const useErrorsUtils = () => {\n return useContext(ErrorsContext)\n}\n\nexport const useTransientErrorHelper = () => {\n const utils = useErrorsUtils()\n const showingErrors = useRef([])\n const clearCurrentErrors = () => {\n showingErrors.current.forEach(([path,value]) => utils?.removeError(value,path))\n showingErrors.current = []\n }\n const setErrors = (newErrors) => {\n clearCurrentErrors()\n utils?.addErrors(newErrors)\n showingErrors.current = newErrors\n }\n useEffect(() => () => {\n clearCurrentErrors()\n },[])\n\n return [setErrors,clearCurrentErrors]\n}\n\nexport const Errors = ({path,filter,className, autoScroll}) => {\n const {getErrorsInsidePath, willRemoveError} = useContext(ErrorsContext)\n const contextFilter = useContext(ErrorFilterContext)\n const ref = useRef()\n\n const errors = filter ? getErrorsInsidePath(path).filter(filter) : contextFilter(getErrorsInsidePath(path))\n const uniqErrors = _.uniqBy(_.property(0),errors).filter(([v]) => v)\n const prevErrors = usePreviousForEffect(uniqErrors)\n useEffect(() => {\n const changed = _.difference(uniqErrors,prevErrors)\n if (autoScroll && changed.length && ref.current?.scrollIntoView) {\n isElementInView(ref.current).then((inView) => {\n if (!inView) {\n ref.current.scrollIntoView({behavior: \"smooth\"})\n }\n })\n }\n },[uniqErrors])\n\n return <TransitionDiv block>{uniqErrors.length > 0 && <Errors.Container ref={ref} className={className}>\n {uniqErrors.map(([value]) => value && value !== true &&\n <Errors.Item key={value}>\n {value}\n <Errors.CloseIcon onClick={willRemoveError(value, path)}/>\n </Errors.Item>\n )}\n </Errors.Container>}</TransitionDiv>\n}\n\nErrors.displayName = 'Errors'\n\nErrors.Container = styled.ul`\n list-style-type: none;\n margin: 0;\n padding: 0;\n `\n\nErrors.Item = styled.li`\n background-color: ${props => lighten(0.42, props.theme.colors.alert)};\n padding: 1rem 3.5rem 1rem 1rem;\n border-radius: 8px;\n border: 1px solid ${props => lighten(0.35, props.theme.colors.alert)};\n color: ${getColor('alert')};\n position:relative;\n text-align: left;\n font-size: 13px;\n line-height: 130%;\n & ~ & {\n margin-top: 0.5rem;\n }\n ${customTheme('ErrorItem')}\n `\nErrors.CloseIcon = styled(Icon).attrs({icon: 'x'})`\n color: ${getColor('alert')};\n font-weight: 600;\n display: inline-block;\n background-color: ${props => lighten(0.35, props.theme.colors.alert)};\n width: 21px;\n height: 21px;\n line-height: 21px;\n text-align: center;\n border-radius: 50%;\n cursor: pointer;\n position: absolute;\n top: 10px;\n right: 10px;\n font-size: 14px;\n z-index: 2;\n &:hover {\n background-color: ${props => lighten(0.32, props.theme.colors.alert)};\n }\n `\n\n","import React, {useContext} from 'react'\nimport {useToggle, useRefToggle, StartlibsContext, useRefState} from '@startlibs/core'\nimport {callIfFunction} from '@startlibs/utils'\n\nexport const useDraftConfirmation = (submit, discard, meta) => {\n const loading = useToggle()\n const dialog = useToggle()\n const draft = useRefToggle()\n const promiseResolver = useRefState()\n const startlibs = useContext(StartlibsContext)\n\n const confirmation = (dialogType = 'submit-draft', callback) => {\n if (callIfFunction(draft.isOpen)) {\n dialog.openWith(dialogType)\n return new Promise((res) =>\n promiseResolver.set(() => (r) => {\n dialog.close()\n callIfFunction(callback,r)\n res(r)\n }))\n } else {\n return Promise.resolve()\n }\n }\n\n\n const submitAndResolve = async () => {\n loading.open()\n try {\n await submit()\n callIfFunction(promiseResolver.get())\n } catch (e) { } finally {\n dialog.close()\n loading.close()\n }\n }\n\n const discardAndResolve = () => {\n callIfFunction(discard)\n callIfFunction(promiseResolver.get())\n }\n\n const Dialog = startlibs.dialogs[dialog.isOpen]\n if (process.env.NODE_ENV !== 'production') {\n if (dialog.isOpen && !Dialog) { console.log(`Dialog [${dialogType}] not registered in startlibs.dialogs`) }\n }\n\n const feedback =\n dialog.isOpen\n ? <Dialog\n submit={submitAndResolve}\n discard={discardAndResolve}\n isLoading={loading.isOpen}\n cancel={dialog.close}\n {...meta}\n />\n : null\n\n return [feedback, draft, confirmation]\n}","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","// @flow\nimport React, {useContext, useEffect, useState} from 'react'\nimport _ from 'lodash/fp'\nimport {_s, callIfFunction, formatPath, ifUndefined} from '@startlibs/utils'\nimport {ErrorsContext} from './Errors'\nimport {useFormValue} from './Form'\n\nexport const PathContext = React.createContext([])\nexport const enhancedInputDisplayName = 'EnhancedInput'\n\nconst undefinedToDefault = (v, defaultValue) => v === undefined ? defaultValue : v\nconst pathToStr = (v) => Array.isArray(v) ? v.join('.') : v\nconst skipValidation = () => true\n\nconst formInput = ({undefinedPlaceholder, isChecked = _.identity, truthSource = useFormValue, transform = _.identity, validation = skipValidation, onChange, fieldValue, path: propPath}) => {\n const contextPath = useContext(PathContext)\n const {paths} = useContext(ErrorsContext)\n const path = ifUndefined(propPath, contextPath)\n const formattedPath = formatPath(path)\n const [formValue, setFormValue] = truthSource(formattedPath)\n\n const setValue = (value, element) => {\n const opts = {path,prevValue:formValue,element}\n if (!validation(value,opts)) { return }\n const transformedValue = transform(callIfFunction(value,formValue),opts)\n setFormValue(transformedValue)\n callIfFunction(onChange, transformedValue, opts)\n }\n\n const setValueFromEventTarget = (e) => setValue(e.currentTarget.value, e.currentTarget)\n\n const setFromField = () => setValue(fieldValue)\n\n const toggle = () => setValue(!isChecked(formValue) ? (fieldValue || true) : (!!fieldValue && undefined))\n\n const toggleItem = () => setValue(_s.itemToggle(fieldValue))\n\n\n return [ifUndefined(formValue,undefinedPlaceholder), setValue, {\n hasErrors:paths.has(formattedPath),\n setFromField,\n toggle,\n toggleItem,\n name:formattedPath,\n setValueFromEventTarget\n }]\n\n}\n\nconst rawInput = ({value, path, isChecked = _.identity, name, setValue: setValueProp, validation = skipValidation, transform = _.identity, onChange, fieldValue, defaultValue}) => {\n const [rawValue, setRawValue] = useState(ifUndefined(value,defaultValue))\n const errorUtils = useContext(ErrorsContext)\n const formattedPath = formatPath(path)\n\n useEffect(() => {\n setRawValue(value)\n }, [value])\n\n const setValue = (value, element) => {\n if (!validation(value,{prevValue:rawValue})) { return }\n const transformedValue = transform(value)\n setValueProp(\n transformedValue,\n element\n )\n callIfFunction(onChange, transformedValue, rawValue, {element})\n }\n\n const setValueFromEventTarget = (e) => setValue(e.currentTarget.value, e.currentTarget)\n\n const setFromField = () => setValue(fieldValue)\n\n const toggle = () => setValue(!isChecked(rawValue))\n\n const toggleItem = () => setValue(_s.itemToggle(fieldValue))\n\n return [value, setValue, {\n hasErrors:errorUtils?.paths?.has(formattedPath),\n setFromField,\n name,\n toggle,\n toggleItem,\n setValueFromEventTarget\n }]\n\n}\n\nexport const useInput = (props,raw) => {\n const [isRaw] = useState(raw)\n return isRaw ? rawInput(props) : formInput(props)\n}\n\nexport const EnhanceInput = ({raw,...props}) => {\n const [value,setValue,utils] = useInput(props,raw)\n return props.children({\n path:props.path,\n value,\n setValue,\n ...utils\n })\n}\n\nexport const enhanceInput = (InputComponent) => React.forwardRef(({...props}, ref) =>\n <EnhanceInput {...props}>{(formInput) =>\n <InputComponent {...props} ref={ref} formInput={formInput}/>\n }</EnhanceInput>\n)","import styled from 'styled-components'\nimport React from 'react'\nimport {getMargin, customTheme} from '@startlibs/utils'\n\n\nconst Mandatory = styled.span`\n color: #c3282d;\n margin-left: 1px;\n vertical-align: top;\n line-height: 100%;\n margin-top: -1px;\n ${props => typeof props.mandatory === 'string' && `color: ${props.mandatory};`}\n`\nconst Container = styled.div`\n position: relative;\n margin-bottom: ${props => getMargin(props.theme.Field.margins)(props)};\n text-align: left;\n`\nconst Label = styled.label`\n font-weight: 550;\n display: inline-block;\n font-size: ${props => props.labelFontSize ? props.labelFontSize : '15'}px;\n margin-bottom: .75rem;\n ${props => props.isOnImage && 'color: #fff;'}\n ${customTheme(\"FieldLabel\")}\n`\n\nexport const HelpText = styled.span`\n color: rgba(0,0,0,0.4);\n font-weight: 400;\n`\nexport const FieldDescription = styled.span`\n color: rgba(0,0,0,0.4);\n display: block;\n font-size: 12px;\n margin: 0.25rem 0 0;\n font-weight: 400;\n`\nexport const BellowFieldDescription = styled(FieldDescription)`\n margin: 0.5rem 0 0;\n`\n\nexport const Field = React.forwardRef((\n {\n label,\n helpText,\n descText,\n bellowDescText,\n className,\n labelClick,\n focused,\n mandatory,\n onImage,\n children,\n labelFontSize,\n ...rest\n }, ref) =>\n <Container ref={ref} {...rest} className={className}>\n {\n label &&\n <Label {...rest} onClick={labelClick} labelFontSize={labelFontSize}>\n {label}{mandatory && <Mandatory mandatory={mandatory}>*</Mandatory>}\n {helpText && <HelpText> {helpText}</HelpText>}\n {descText && <FieldDescription>{descText}</FieldDescription>}\n </Label>\n }\n {children}\n {bellowDescText && <BellowFieldDescription>{bellowDescText}</BellowFieldDescription>}\n </Container>\n)\n\nField.Label = Label\nField.Container = Container\nField.HelpText = HelpText\nField.Description = FieldDescription\nField.displayName = \"Field\"","import React from 'react'\nimport {darken} from 'polished'\nimport styled, {css} from 'styled-components'\nimport {media, callIfFunction, constrainEvent} from '@startlibs/utils';\nimport {Icon, TextButton} from '@startlibs/components'\nimport {getColor } from '@startlibs/utils';\nimport {usePopupToggle } from '@startlibs/core';\nimport {HelpText} from './Field'\n\nexport const FieldBoxIcon = styled(Icon)`\n font-size: 25px;\n width: 25px;\n text-align: center;\n margin-right: 1rem;\n`\nexport const FieldBoxAction = styled.div`\n margin-left: auto;\n color: ${getColor('main')};\n padding-left: 1rem;\n font-size: 13px;\n font-weight: 500;\n`\n \nexport const FieldBoxHelpText = styled.span`\n font-weight: 400;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n`\n\nconst FieldBoxContent = styled.div`\n margin-right: auto;\n min-width: 0;\n`\n\nconst DeleteButton = styled(Icon).attrs({icon: 'x'})`\n width: 24px;\n height: 24px;\n line-height: 24px;\n border-radius: 50%;\n display: inline-block;\n font-size: 18px;\n margin-left: 0.75rem;\n text-align: center;\n cursor: pointer;\n color: ${getColor('gray120')};\n background-color: rgba(0,0,0,0.08);\n flex-shrink: 0;\n :hover {\n background: rgba(0,0,0,0.11);\n }\n :active {\n background: rgba(0,0,0,0.13);\n }\n`\nconst DropdownButton = styled(Icon).attrs({icon: 'arrow-down'})`\n width: 24px;\n height: 24px;\n line-height: 24px;\n border-radius: 50%;\n display: inline-block;\n font-size: 14px;\n margin-left: 0.75rem;\n text-align: center;\n cursor: pointer;\n color: ${getColor('gray120')};\n background-color: rgba(0,0,0,0.08);\n flex-shrink: 0;\n position: relative;\n :hover {\n background: rgba(0,0,0,0.11);\n }\n :active {\n background: rgba(0,0,0,0.13);\n }\n`\n\nconst DescText = styled.div `\n font-weight: 400;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n margin-top: 0.25rem;\n`\n\n\nexport const FieldBox = styled(({className,label,helpText,descText,actionLabel,rightContainer,onClick,icon,remove,children,dropDownMenu,...props}) => {\n const menuToggle = usePopupToggle()\n return <div className={className} onClick={onClick} {...props}>\n {icon && <FieldBoxIcon icon={icon}/>}\n <FieldBoxContent>\n {label}{helpText && <HelpText> {helpText}</HelpText>}\n {descText && <DescText>{descText}</DescText>}\n {children}\n </FieldBoxContent>\n {actionLabel && <TextButton>{actionLabel}</TextButton>}\n {rightContainer && <div className=\"rightContainer\">{rightContainer}</div>}\n {remove && <DeleteButton onClick={constrainEvent(remove)}/>}\n {\n dropDownMenu && <DropdownButton onClick={constrainEvent(menuToggle.toggle)}>\n {menuToggle.isOpen && callIfFunction(dropDownMenu)}\n </DropdownButton>\n }\n </div>\n})`\n display: flex;\n align-items: center;\n width: 100%;\n background: ${getColor('lightBluishGray')};\n border-radius: 8px;\n min-height: 42px;\n padding: 1rem 1.25rem;\n align-items: center;\n font-size: 14px;\n color: ${getColor('gray60')};\n position: relative;\n transition: border-radius 0.5s ease;\n ${props => props.onClick && css`\n cursor: pointer;\n :hover {\n background: ${props => darken(0.035, getColor('lightBluishGray')(props))};\n }\n :active {\n background: ${props => darken(0.05, getColor('lightBluishGray')(props))};\n transition: none;\n }\n `}\n & ~ & {\n margin-top: 0.75rem;\n }\n ${media.mobile`\n min-height: 54px;\n font-size: 15px !important;\n `}\n ${TextButton}, .rightContainer {\n margin-left: 1rem;\n }\n`","import React from 'react'\nimport _ from 'lodash/fp'\nimport {Errors} from './Errors'\nimport {WithForm} from './Form'\nimport {callIfFunction, addExtraProp, using} from '@startlibs/utils'\nimport {setNotification, Button, Dialog} from '@startlibs/components'\nimport {useDialogWithToggle, useDialog} from '@startlibs/components'\n\nexport const useConfirmDialog = (dialog, args, toggleCallback) => {\n return useDialog((closeDialog) => addExtraProp(callIfFunction(dialog, closeDialog), {closeDialog}), args, toggleCallback)\n}\n\nexport const useConfirmDialogWithProps = (dialog, args, {overrideClose = true} = {}) => {\n return useDialogWithToggle((toggle) => addExtraProp(callIfFunction(dialog, toggle.isOpen, toggle.close), {closeDialog: toggle.close}, overrideClose), args)\n}\n\nexport const ConfirmDialog = ({\n action = _.identity,\n onSuccess,\n skipDom,\n className,\n closeDialog,\n onClose,\n skipCloseIcon,\n cancelLabel = \"Cancelar\",\n cancelButton = cancelLabel && <Button tabIndex={2}>{cancelLabel}</Button>,\n onFailure,\n title,\n keepOnSuccess,\n confirm,\n formRef,\n children,\n preValidation,\n onNonPreValidation,\n values,meta,\n onChange,\n alternativeButton,\n notify,\n confirmChanges,\n auxiliarActions,\n transform,\n isLoading,\n stickyFooter,\n fullscreen,\n fullscreenOnMobile,\n alwaysSave = true,skipErrors,\n hidden,\n skipCheckFocus\n }) => {\n const handleClose = React.useCallback(async () => {\n if (onClose) await onClose().catch(console.error)\n if (closeDialog) closeDialog()\n }, [onClose, closeDialog])\n\n return <WithForm\n alwaysSave={alwaysSave}\n ref={formRef}\n preValidation={preValidation}\n onNonPreValidation={onNonPreValidation}\n values={values}\n meta={meta}\n action={action}\n transform={transform}\n onFailure={onFailure}\n onChange={onChange}\n onSuccess={(...props) =>\n Promise.resolve(callIfFunction(onSuccess, ...props))\n .then((v) => {\n if (!keepOnSuccess) {\n handleClose()\n }\n if (notify) {\n setNotification(notify)\n }\n return v\n })\n }\n >{form => !hidden &&\n <Dialog\n className={className}\n title={title}\n skipCheckFocus={skipCheckFocus}\n skipCloseIcon={skipCloseIcon}\n confirmChanges={confirmChanges}\n isLoading={isLoading}\n closeDialog={handleClose}\n form={form}\n stickyFooter={stickyFooter}\n auxiliarActions={auxiliarActions}\n fullscreen={fullscreen}\n fullscreenOnMobile={fullscreenOnMobile}\n footer={(cancelButton || alternativeButton || confirm) && <>\n {cancelButton && addExtraProp(callIfFunction(cancelButton,handleClose),{onClick:handleClose},false)}\n {callIfFunction(alternativeButton, handleClose)}\n {confirm && using(callIfFunction(confirm,{form,isLoading}))( c => c && addExtraProp(c, {isLoading: form.isLoading, type: \"submit\"}))}\n </>}\n >\n {callIfFunction(children,form)}\n {!skipErrors && <Errors autoScroll/>}\n </Dialog>\n }</WithForm>\n}\n\n\nexport const FormDialog = ConfirmDialog","import React, {useState, forwardRef, useEffect} from 'react'\nimport {Field} from './Field'\nimport {useInput} from './enhanceInput'\nimport styled, {css} from 'styled-components'\nimport {Loading} from '@startlibs/components'\nimport {getScrollParent, ifUndefined, callIfFunction, getColor, customTheme, intToHour, digitsToPattern, isTouchDevice, media} from '@startlibs/utils'\nimport {darken} from 'polished'\nimport _ from 'lodash/fp'\nimport {Icon} from '@startlibs/components'\nimport {useEnsureRef, useRefState} from '@startlibs/core'\n\nconst InputWithTextAfter = styled.div`\n display: flex;\n align-items: center;\n border: 1px solid ${getColor('gray210')};\n border-radius: ${props => props.rounded ? '100px' : '8px'};\n background: white;\n ${props => props.focused && css`\n border-color: ${getColor('gray180')};\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n `}\n ${props => props.hasErrors && css`\n border-color: ${getColor('alert')} !important;\n `}\n input {\n border: none;\n box-shadow: none !important;\n flex: 1;\n min-width: 0;\n }\n`\nconst TextAfterLabel = styled.span`\n padding-right: 0.7rem;\n color: ${getColor('gray180')};\n font-size: 14px;\n white-space: nowrap;\n ${media.mobile`\n padding-right: 1rem;\n `}\n`\n\nconst InputWithIcon = styled.div`\n position: relative;\n width: 100%;\n input, textarea {\n display: block;\n }\n`\nconst InputIcon = styled(Icon)`\n position: absolute;\n left: ${props => props.rounded ? '13px' : '0.7rem'};\n top: 50%;\n transform: translateY(-50%);\n font-size: 23px;\n color: ${getColor('gray180')};\n pointer-events: none;\n z-index: 1;\n line-height: 0;\n ${media.mobile`\n left: ${props => props.rounded ? '1.25rem' : '1rem'};\n `}\n`\n\nconst InputLoading = styled(Loading)`\n bottom: 8px;\n right: 0.6rem;\n left: auto;\n top: auto;\n ${media.mobile`\n bottom: 10px;\n `} \n`\n\nconst Input = styled.input`\n width: 100%;\n font-size: 14px;\n border: 1px solid ${getColor('gray210')};\n border-radius: 8px;\n outline: 0;\n outline: none;\n color: ${getColor('gray60')};\n background: white;\n position: relative;\n height: 3rem;\n padding: 0 0.7rem;\n overflow: auto;\n ${media.mobile`\n height: 42px;\n padding: 0 1rem;\n @supports (-webkit-touch-callout: none) {\n font-size: 16px;\n }\n `}\n\n ::-webkit-input-placeholder {\n color: rgba(0,0,0,0.3);\n }\n ::-moz-placeholder {\n color: rgba(0,0,0,0.3);\n }\n :-moz-placeholder {\n color: rgba(0,0,0,0.3);\n }\n :-ms-input-placeholder {\n color: rgba(0,0,0,0.3);\n }\n ${props => !props.hasTextBox && !props.noFocus && css`\n :focus {\n border-color: ${getColor('gray180')};\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n }\n ${props => props.hasErrors && css`\n border-color: ${getColor('alert')} !important;\n `}\n `}\n ::-ms-clear { //Clear IE pseudo-buttons\n display: none;\n }\n ${props => props.locked && css`\n padding-right: 2.25rem;\n background: rgba(0,0,0,0.075);\n pointer-events: none;\n `}\n ${props => props.isTextArea && css`\n resize: none;\n min-height: ${props => props.regularInputHeight ? 36 : props.minHeight || 60}px;\n padding: .7rem;\n display: block;\n ${props => props.autoResize ? 'overflow:hidden;' : 'overflow:auto;'}\n ${media.mobile`\n padding: 1rem;\n ${props => props.regularInputHeight && 'min-height: 42px;'}\n `}\n `}\n ${props => props.rounded && css`\n border-radius: 100px;\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n `}\n ${props => props.hasIcon && css`\n padding-left: ${props.rounded ? '3rem' : '2.5rem'};\n ${media.mobile`\n padding-left: ${props.rounded ? '3.25rem' : '2.75rem'};\n `}\n `}\n ${customTheme('TextInput')}\n`\n\nconst InputWithTextBox = styled.div`\n display: flex;\n border-radius: ${props => props.rounded ? '100px' : '8px'};\n position: relative;\n :before {\n position: absolute;\n border-radius: ${props => props.rounded ? '100px' : '8px'};\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n z-index: 2;\n pointer-events: none;\n }\n ${props => props.focused && css`\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n :before {\n content: '';\n border: 1px solid ${getColor('gray180')};\n }\n `}\n ${props => props.hasErrors && css`\n :before {\n content: '';\n border: 1px solid ${getColor('alert')};\n }\n `}\n ${props => props.textBoxBefore && css`\n input {\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n }\n `}\n ${props => props.textBoxAfter && css`\n input {\n border-top-right-radius: 0;\n border-bottom-right-radius: 0;\n }\n `}\n`\nconst TextBox = styled.span`\n display: flex;\n align-items: center;\n padding: 0 0.7rem;\n z-index: 1;\n background-color: ${props => darken(0.075, getColor('gray240')(props))};\n border: 1px solid ${getColor('gray210')};\n cursor: text;\n white-space: nowrap;\n`\nconst TextBoxBefore = styled(TextBox)`\n border-top-left-radius: ${props => props.rounded ? '100px' : '8px'};\n border-bottom-left-radius: ${props => props.rounded ? '100px' : '8px'};\n ${props => props.rounded && 'padding-left: 1.25rem;'}\n margin-right: -1px;\n`\nconst TextBoxAfter = styled(TextBox)`\n border-top-right-radius: ${props => props.rounded ? '100px' : '8px'};\n border-bottom-right-radius: ${props => props.rounded ? '100px' : '8px'};\n ${props => props.rounded && 'padding-right: 1.25rem;'}\n margin-left: -1px;\n`\n\nconst doAutoResize = (element) => {\n const scrollContainer = getScrollParent(element)\n const lastTop = scrollContainer.scrollTop || scrollContainer.pageYOffset\n element.style.height = 'auto'\n element.style.height = (element.scrollHeight) + 'px'\n if (scrollContainer === window) {\n scrollContainer.scroll(scrollContainer.pageXOffset,lastTop)\n } else {\n scrollContainer.scrollTop = lastTop\n }\n}\n\nexport const useTextInput = (\n {\n onFocus,\n onBlur,\n autoResize,\n autoSelectOnFocus,\n constraint,\n pattern,\n path,\n rawValue,\n rawSetValue,\n rawHasErrors,\n transformOnBlur,\n raw,\n showValue,\n deleteTrailing,\n ...rest\n },\n ref\n) => {\n\n const [formValue, setFormValue, {hasErrors}] = useInput({path,value:rawValue,setValue:rawSetValue,...rest},raw)\n const [focused, setFocused] = useState()\n\n const lastSelection = useRefState()\n const lastValue = useRefState(showValue(formValue))\n\n const handleOnFocus = (e) => {\n setFocused(true)\n if (!!autoSelectOnFocus && !!ref.current) {\n setTimeout(() => ref.current?.select(), 0)\n }\n callIfFunction(onFocus, e)\n }\n const handleOnBlur = (e) => {\n setFocused(false)\n callIfFunction(onBlur, e)\n if (transformOnBlur) {\n setFormValue(transformOnBlur(formValue))\n }\n }\n\n useEffect(() => {\n if (lastSelection.get() === 1 && constraint === 'capitalize') {\n ref.current.setSelectionRange(lastSelection.get(), lastSelection.get())\n }\n })\n\n useEffect(() => {\n if (autoResize) {\n doAutoResize(ref.current)\n }\n },[])\n\n useEffect(() => {\n if (!!autoSelectOnFocus && !!ref.current && document.activeElement === ref.current) {\n setTimeout(() => ref.current?.select(), 0)\n }\n }, [autoSelectOnFocus])\n\n \n\n const handleChange = (e) => {\n if (autoResize) {\n doAutoResize(ref.current)\n }\n const target = e.target\n try {\n lastSelection.set(target.selectionEnd)\n } catch(e) {}\n if (constraint || pattern) {\n setFormValue(validateConstraint(target.value, constraint, showValue(formValue), pattern), ref.current)\n } else {\n setFormValue(target.value, ref.current)\n }\n }\n\n const validateConstraint = (value, constraint, prevValue, pattern) => {\n let newValue = ''\n if (value === (lastValue.get()+\"\") || (lastValue.get() && (lastValue.get()+\"\").indexOf(value)>=0 && !pattern)) {\n newValue = value\n if (deleteTrailing) {\n if (_.isString(deleteTrailing) && value.slice(-deleteTrailing.length) === deleteTrailing) {\n newValue = value.slice(0,-deleteTrailing.length)\n } else if (_.isRegExp(deleteTrailing) && deleteTrailing.test(value)) {\n newValue = value.replace(deleteTrailing,'')\n }\n }\n lastValue.set(showValue(newValue))\n return newValue\n }\n if (pattern) {\n newValue = value.match(pattern)?.slice(1)?.join(\"\") || \"\"\n // if (newValue.length < value.length - 1) {\n // newValue = value\n // }\n } else if (constraint === 'price') {\n if (value.indexOf(',') >= 0) value = value.replace(/\\./g, '') // ponytail: '.' é separador de milhar quando já há ',' decimal (ex: colar \"2.000,45\")\n value = value.replace('.', ',').replace(/[^0-9,]/g, '')\n const number = parseFloat(value.replace(',', '.'))\n const commas = value.split(',')\n const fixedNumber = number.toFixed(2)\n newValue = !!commas[0] && commas.length === 2 && parseFloat(fixedNumber) === number && fixedNumber.split('.')[1].indexOf(commas[1]) === 0 ? value : digitsToPattern('>3???????#,##', value)\n } else if (constraint === 'capitalize') {\n // v = \"R$ \"+(parseInt(v.replace(/[^1-9]*([0-9]*)(,?)([0-9]{0,3}).*/,\"$1$3\") || 0)/100).toFixed(2).replace(\".\",\",\");\n newValue = value.replace(/^[a-z]/, function(e) { return e.toUpperCase() })\n } else if (constraint === 'number' || constraint === 'hour' || constraint === 'hour-int') {\n newValue = value.replace(/\\D/g, '')\n if (newValue !== '') {\n newValue = window.parseInt(newValue, 10)\n if (constraint !== 'number') {\n if ((newValue + '').length > 4 || newValue > 2399) {\n newValue = prevValue\n } else {\n const resultHour = intToHour(newValue, false)\n const val = resultHour.replace(/\\D/g, '')\n const result = (isNaN(parseInt(val, 10)) ? undefined : parseInt(val, 10))\n newValue = constraint === 'hour-int' ? result : resultHour\n }\n }\n }\n } else if (constraint === 'cpf') {\n newValue = digitsToPattern('###.###.###-##', value)\n } else if (constraint === 'cnpj') {\n newValue = digitsToPattern('##.###.###/####-##', value)\n } else if (_.isFunction(constraint)) {\n newValue = constraint(value)\n } else if (_.isRegExp(constraint)) {\n newValue = value.replace(constraint, '')\n } else {\n newValue = digitsToPattern(constraint, value)\n }\n lastValue.set(showValue(newValue))\n return newValue\n }\n return [formValue, {onChange: handleChange, onFocus: handleOnFocus, onBlur: handleOnBlur}, rawHasErrors || hasErrors, focused]\n}\n\n\nexport const TextInput = styled(forwardRef((\n {\n showValue = _.identity,\n label,\n type = 'text',\n helpText,\n descText,\n bellowDescText,\n mandatory,\n isLoading,\n locked,\n textBoxBefore,\n textBoxAfter,\n textAfter,\n icon,\n className,\n fieldClassName = '',\n FieldType = Field,\n margin,\n\n value: rawValue,\n setValue: rawSetValue,\n hasErrors: rawHasErrors,\n\n textarea = false,\n onImage = false,\n rounded,\n autoFocus,\n noFocus,\n autoSelectOnFocus,\n\n onFocus,\n onBlur,\n pattern,\n autoResize,\n constraint,\n path,\n raw,\n\n tabIndex = 1,\n\n ...rest\n },\n forwardedRef\n) => {\n const ref = useEnsureRef(forwardedRef)\n const [value, events, hasErrors, focused] = useTextInput({path, onFocus, onBlur, autoResize, autoSelectOnFocus, constraint, pattern, rawValue, rawSetValue, rawHasErrors, raw, showValue, ...rest}, ref)\n const inputTag = textarea ? 'textarea' : 'input'\n\n const focusInput = () => ref.current.focus()\n\n const wrapInput = (input) => {\n if (textBoxBefore) {\n return (\n <InputWithTextBox focused={focused} hasErrors={hasErrors} onClick={focusInput} textBoxBefore rounded={rounded}>\n <TextBoxBefore rounded={rounded}>{textBoxBefore}</TextBoxBefore>\n {input}\n </InputWithTextBox>)\n } else if (textBoxAfter) {\n return (\n <InputWithTextBox focused={focused} hasErrors={hasErrors} onClick={focusInput} textBoxAfter rounded={rounded}>\n {input}\n <TextBoxAfter rounded={rounded}>{textBoxAfter}</TextBoxAfter>\n </InputWithTextBox>)\n } else if (textAfter) {\n return (\n <InputWithTextAfter focused={focused} hasErrors={hasErrors} onClick={focusInput} rounded={rounded}>\n {input}\n <TextAfterLabel>{textAfter}</TextAfterLabel>\n </InputWithTextAfter>)\n } else {\n return input\n }\n }\n const input = wrapInput(<Input\n {...rest}\n as={inputTag}\n className={!label ? className : undefined}\n isTextArea={textarea}\n data-hj-whitelist={type !== \"password\"}\n locked={locked}\n rounded={rounded}\n hasIcon={!!icon}\n autoFocus={!isTouchDevice() && autoFocus}\n noFocus={noFocus}\n hasErrors={hasErrors}\n isOnImage={onImage}\n ref={ref}\n tabIndex={tabIndex}\n type={type}\n value={ifUndefined(showValue(value),'')}\n hasTextBox={textBoxBefore || textBoxAfter || textAfter}\n autoResize={autoResize}\n rows={1}\n {...events}\n />)\n\n const wrappedInput = icon\n ? <InputWithIcon>\n <InputIcon icon={icon} rounded={rounded}/>\n {input}\n </InputWithIcon>\n : input\n\n return (\n !label\n ? wrappedInput\n : <FieldType\n className={fieldClassName+ ' ' + className}\n value={value}\n focused={focused}\n mandatory={mandatory}\n isOnImage={onImage}\n descText={descText}\n bellowDescText={bellowDescText}\n helpText={helpText}\n label={label}\n labelClick={focusInput}\n margin={margin}\n >\n {isLoading && <InputLoading absolute size={20}/>}\n {wrappedInput}\n </FieldType>\n )\n\n}))``\n\nTextInput.Input = Input\nexport default TextInput\n\nconst FloatingFieldType = styled(Field)`\n input {\n height: 5rem;\n box-shadow: 0 1px 4px rgba(0,0,0,.2);\n border-radius: 8px;\n font-size: 16px;\n font-weight: 400;\n padding: 16px 1rem 0;\n }\n ${Field.Label} {\n position: absolute;\n top: 1.5rem;\n left: 1rem;\n font-size: 20px;\n font-weight: normal;\n transition: all .2s ease;\n color: rgba(0,0,0,.2);\n pointer-events: none;\n z-index: 1;\n ${props => (props.value || props.focused) && `\n top: 12px;\n font-size: 14px;\n color: rgba(0,0,0,.4);\n `}\n }\n `\nexport const FloatLabelTextInput = (props) => <TextInput {...props} FieldType={FloatingFieldType}/>\n","import React, {useContext, useState} from 'react'\nimport styled from 'styled-components'\nimport {FormContext, useFormValue} from './Form'\nimport {useToggle} from '@startlibs/core'\nimport {getUID, callIfFunction} from '@startlibs/utils'\nimport _ from 'lodash/fp'\n\nexport const FileInput = styled.input.attrs({type: 'file'})`\n z-index: 1;\n cursor: pointer;\n opacity: 0;\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n width: 100%;\n height: 100%;\n overflow: hidden;\n ::-webkit-file-upload-button {\n visibility: hidden;\n }\n ::file-upload-button {\n visibility: hidden;\n }\n `\n\n\nexport const WithImageInput = ({children, multiple, path = [\"image\"], preValidation = _.stubFalse, onChangeFile, onClose, onClick, uploadFetcher, onSuccess, onFailure, ajaxError, onTouchEnd, ...rest}) => {\n const form = useContext(FormContext)\n const loading = useToggle()\n const [tempImage, setTempImage] = useState()\n const getPath = (str,fileIndex = 0) => typeof path === 'function' ? [].concat(path(str,fileIndex)) : str !== 'image' ? [].concat(path).slice(0, -1).concat(str) : path\n\n const imagePath = getPath('image')\n const [formImage] = useFormValue(imagePath)\n const image = tempImage || formImage\n\n const validate = (files) => {\n const validations = files.map(preValidation).filter(Boolean)\n if (validations.length) {\n validations.forEach(v =>\n form.setError(getPath('image').join('.'), v)\n )\n return files.filter((file) => !preValidation(file))\n }\n return files\n }\n\n const handleFileEvent = (e) => {\n e.preventDefault()\n callIfFunction(onClose)\n const files = Array.from((e.nativeEvent.dataTransfer || e.nativeEvent.target).files)\n if (files.length > 0) {\n validate(files.slice(0,multiple ? undefined : 1)).forEach( (file,i) =>\n handleFile(file,e,i)\n )\n }\n }\n\n const handleFile = (file, eventTarget, fileIndex = 0) => {\n const getIndexedPath = (str) => getPath(str,fileIndex)\n const path = getIndexedPath()\n const oldUploadStatus = form.getMeta(getIndexedPath('uploadStatus'))\n const oldImage = form.getValue(getIndexedPath('image'))\n const oldImageHeight = form.getValue(getIndexedPath('imageHeight'))\n const oldImageWidth = form.getValue(getIndexedPath('imageWidth'))\n const oldFilename = form.getValue(getIndexedPath('fileName'))\n\n const objectUrl = URL.createObjectURL(file)\n const image = document.createElement('img')\n image.onload = () => {\n const {naturalWidth: imageWidth, naturalHeight: imageHeight} = image\n const newValues = {image: file, filename: file.name, imageWidth, imageHeight}\n form.setValues(_.flow(\n _.set(getIndexedPath('filename'), file.name),\n _.set(getIndexedPath('image'), file),\n _.set(getIndexedPath('imageWidth'), imageWidth),\n _.set(getIndexedPath('imageHeight'), imageHeight)\n ))\n form.setMeta(_.flow(\n _.update('submittingFiles', (v) => v ? v + 1 : 1),\n _.update('uploadingPaths', _.union([path.join(\".\")])),\n _.set(getIndexedPath('uploadStatus'), 'loading')\n ))\n setTempImage(objectUrl)\n callIfFunction(onChangeFile,file)\n loading.open()\n uploadFetcher(file, newValues)\n .then(({image, uploadStatus}) => {\n loading.close()\n if (form.getValue(getIndexedPath('image')) !== file) {\n form.setMeta(_.update(['submittingFiles'], (v) => v - 1))\n return\n }\n form.clearErrors()\n form.setValue(getIndexedPath('image'), image, false)\n form.setMeta(_.flow(\n _.update('uploadingPaths', _.difference(_,[path.join(\".\")])),\n _.update(['submittingFiles'], (v) => v - 1),\n _.update(['submittedFiles'], (v) => (v || []).concat([{path, file, image}])),\n _.set(getIndexedPath('uploadStatus'), uploadStatus)\n ))\n setTempImage(null)\n callIfFunction(onSuccess, {image, uploadStatus, imageWidth, imageHeight})\n }).catch((e) => {\n loading.close()\n if (form.getValue(getIndexedPath('image')) !== file) {\n form.setMeta(_.update(['submittingFiles'], (v) => v - 1))\n return\n }\n form.setError(getIndexedPath('image').join('.'), callIfFunction(ajaxError,_.get('[1].status',e)))\n form.setValues(_.flow(\n _.set(getIndexedPath('filename'), oldFilename),\n _.set(getIndexedPath('image'), oldImage),\n _.set(getIndexedPath('imageWidth'), oldImageWidth),\n _.set(getIndexedPath('imageHeight'), oldImageHeight)\n ),\n false\n )\n form.setMeta(_.flow(\n _.update('uploadingPaths', _.difference(_,[path.join(\".\")])),\n _.update(['submittingFiles'], (v) => v - 1),\n _.update(['submittedFiles'], (v) => (v || []).concat([{path, file, image}])),\n _.set(getIndexedPath('uploadStatus'), oldUploadStatus)\n ))\n setTempImage(null)\n callIfFunction(onFailure)\n })\n if (eventTarget && eventTarget.parentNode && typeof eventTarget.parentNode.click === 'function')\n eventTarget.parentNode.click()\n }\n image.src = objectUrl\n }\n\n const listenToClose = () => {\n }\n\n const handleClick = (e) => {\n callIfFunction(onClick,e)\n listenToClose()\n }\n const handleTouchEnd = (e) => {\n callIfFunction(onTouchEnd,e)\n listenToClose()\n }\n\n return children(\n <FileInput multiple={multiple} onChange={handleFileEvent} onClick={handleClick} tabIndex={-1} onTouchEnd={handleTouchEnd}/>,\n {\n image,\n isLoading: loading.isOpen,\n handleFile,\n handleFileEvent,\n Input: FileInput\n }\n )\n}\n\n\n\n\nexport const WithFileInput = ({children, multiple, path = [\"file\"], preValidation = _.stubFalse, onChangeFile, onClose, onClick, uploadFetcher, onSuccess, onFailure, ajaxError, onTouchEnd, maxFiles, ...rest}) => {\n const form = useContext(FormContext)\n const loading = useToggle()\n const [tempImage, setTempImage] = useState()\n const getPath = (str,fileIndex) => typeof path === 'function' ? [].concat(path(str,fileIndex)) : str !== 'file' ? [].concat(path).slice(0, -1).concat(str) : path\n\n const validate = (files) => {\n const validations = files.map(preValidation).filter(Boolean)\n if (validations.length) {\n validations.forEach(v =>\n form.setError(getPath('file',0).join('.'), v)\n )\n return files.filter((file) => !preValidation(file))\n }\n return files\n }\n\n const handleFileEvent = (e) => {\n e.preventDefault()\n callIfFunction(onClose)\n const files = Array.from((e.nativeEvent.dataTransfer || e.nativeEvent.target).files)\n if (files.length > 0) {\n validate(files.slice(0,multiple ? undefined : 1)).forEach( (file,i) =>\n handleFile(file,e,i)\n )\n }\n }\n\n const handleFile = (file, eventTarget) => {\n const currentFileIndex = (form.getValue(getPath()) || []).length\n if (currentFileIndex >= maxFiles) {\n form.setErrors({'': 'Número máximo de arquivos atingido'})\n return\n }\n const createGetIndexedPath = (index) => (str) => getPath(str,index)\n const getIndexedPath = createGetIndexedPath(currentFileIndex)\n const path = getIndexedPath()\n const oldUploadStatus = form.getMeta(getIndexedPath('uploadStatus'))\n const oldFile = form.getValue(getIndexedPath('file'))\n const oldFilename = form.getValue(getIndexedPath('fileName'))\n\n const uid = getUID()\n\n form.setValues(_.flow(\n _.set(getIndexedPath('filename'), file.name),\n _.set(getIndexedPath('file'), file),\n _.set(getIndexedPath('uid'), uid),\n ))\n form.setMeta(_.flow(\n _.update('submittingFiles', (v) => v ? v + 1 : 1),\n _.update('uploadingPaths', _.union([path.join(\".\")])),\n _.set(getIndexedPath('uploadStatus'), 'loading')\n ))\n callIfFunction(onChangeFile,file)\n\n loading.open()\n uploadFetcher(file)\n .then(({file, uploadStatus, response}) => {\n loading.close()\n const list = (form.getValue(getPath()) || [])\n const index = list.findIndex((f) => f.uid === uid)\n if (index < 0) {\n form.setMeta(_.update(['submittingFiles'], (v) => v - 1))\n return\n }\n const getIndexedPath = createGetIndexedPath(index)\n form.clearErrors()\n form.setValue(getIndexedPath('file'), response, false)\n form.setMeta(_.flow(\n _.update('uploadingPaths', _.difference(_,[path.join(\".\")])),\n _.update(['submittingFiles'], (v) => v - 1),\n _.update(['submittedFiles'], (v) => (v || []).concat([{path, file}])),\n _.set(getIndexedPath('uploadStatus'), uploadStatus)\n ))\n callIfFunction(onSuccess, {file, uploadStatus})\n }).catch((e) => {\n loading.close()\n const list = (form.getValue(getPath()) || [])\n const index = list.findIndex((f) => f.uid === uid)\n if (index < 0) {\n form.setMeta(_.update(['submittingFiles'], (v) => v - 1))\n return\n }\n const getIndexedPath = createGetIndexedPath(index)\n form.setError(getIndexedPath('file').join('.'), callIfFunction(ajaxError,_.get('[1].status',e)))\n if (oldFile) {\n form.setValues(\n _.flow(\n _.set(getIndexedPath('filename'), oldFilename),\n _.set(getIndexedPath('file'), oldFile),\n ),\n false\n )\n } else {\n form.setValues(\n _.update(getPath(), _.filter((f) => f.uid !== uid)),\n false\n )\n }\n form.setMeta(_.flow(\n _.update('uploadingPaths', _.difference(_,[path.join(\".\")])),\n _.update(['submittingFiles'], (v) => v - 1),\n _.update(['submittedFiles'], (v) => (v || []).concat([{path, file}])),\n _.set(getIndexedPath('uploadStatus'), oldUploadStatus)\n ))\n callIfFunction(onFailure)\n })\n if (eventTarget && eventTarget.parentNode && typeof eventTarget.parentNode.click === 'function')\n eventTarget.parentNode.click()\n }\n\n const listenToClose = () => {\n }\n\n const handleClick = (e) => {\n callIfFunction(onClick,e)\n listenToClose()\n }\n const handleTouchEnd = (e) => {\n callIfFunction(onTouchEnd,e)\n listenToClose()\n }\n\n return children(\n <FileInput multiple={multiple} onChange={handleFileEvent} onClick={handleClick} tabIndex={-1} onTouchEnd={handleTouchEnd}/>,\n {\n isLoading: loading.isOpen,\n handleFile,\n handleFileEvent,\n Input: FileInput\n }\n )\n}\n\n\n","import React from 'react'\nimport _ from 'lodash/fp'\nimport styled from 'styled-components'\nimport {useInput} from './enhanceInput'\nimport {useToggle} from '@startlibs/core'\nimport {callIfFunction, isTouchDevice} from '@startlibs/utils'\n\nconst HiddenInput = styled.input`\n opacity: 0 !important;\n position: absolute;\n pointer-events: none;\n`\n\nexport const Checkbox = ({className, children, isChecked = _.identity, isList, onClick, disabled, inverted, path, tabIndex = 1, raw, ...rest}) => {\n const focused = useToggle()\n const [v, ,{name, toggle, toggleItem, hasErrors}] = useInput({ path, isChecked,...rest}, raw)\n const testInvert = (v) => inverted ? !v : v\n const value = isChecked(testInvert(isList ? v?.indexOf(rest.fieldValue) >= 0 : v))\n const _onClick = (e) => {\n callIfFunction(onClick, e)\n if (!e.isDefaultPrevented()) {\n if (isList) {\n toggleItem()\n } else {\n toggle();\n }\n e.preventDefault();\n }\n }\n return <label onClick={_onClick} data-drag=\"false\" className={className}>\n {\n !isTouchDevice() && <HiddenInput\n onFocus={focused.open}\n onBlur={focused.close}\n disabled={disabled}\n type=\"checkbox\"\n name={name}\n readOnly\n checked={!!value}\n tabIndex={tabIndex}\n />\n }\n {children && children({disabled, checked: !!value, hasErrors, focused: focused.isOpen})}\n </label>\n}\n","import React, {useRef, useMemo, useEffect} from 'react'\nimport _ from 'lodash/fp'\nimport styled,{css} from 'styled-components'\nimport {FixedSizeList} from \"react-window\";\nimport {ListItem, ContextListMenu, Icon, Loading} from '@startlibs/components'\nimport {Fill, useUpdateEffect, useLazyConstant, useToggle, useRefState, useEnsureRef} from '@startlibs/core'\nimport {normalizeText, getUID, callIfFunction, getColor, media, ifUndefined} from '@startlibs/utils'\n\nimport {Field} from './Field'\nimport {TextInput} from './TextInput'\nimport {useInput} from './enhanceInput'\nimport {getDialogLayersSize, ListSeparator, usePositioning, willUseIsSticky} from '@startlibs/components'\n\nexport const ComboboxMenu = styled(ContextListMenu)`\n z-index: 100;\n background-color: white;\n border-radius: 4px 4px 6px 6px;\n margin-top: -1px;\n margin-bottom: 0.5rem;\n box-shadow: 0 2px 2px 0 rgba(0,0,0,0.14), 0 3px 10px -2px rgba(0,0,0,0.15), 0 1px 2px 0px rgba(0,0,0,0.2);\n border: 1px solid #b4b4b4;\n max-height: 25rem;\n width: auto;\n ${ListItem} > * {\n font-size: 13px;\n }\n ${media.mobile`\n ${ListItem} > * {\n font-size: 14px;\n }\n `}\n ${props => props.withoutIcons && css`\n ${ListItem} > * {\n padding-left: 1.25rem;\n padding-right: 1.25rem;\n }\n `}\n ${props => props.withWindowing && `\n overflow: hidden;\n padding: 0;\n `}\n`\nexport const ComboboxInput = styled.div `\n width: 100%;\n font-size: 14px;\n border: 1px solid ${getColor('gray210')};\n border-radius: 8px;\n color: ${getColor('gray60')};\n background: white;\n position: relative;\n display: block;\n min-height: 3rem;\n padding: 0.5rem 2.5rem 0.5rem 0.7rem;\n overflow: auto;\n outline: 0;\n outline: none;\n cursor: pointer;\n user-select: none;\n overflow: hidden;\n display: flex;\n align-items: center;\n word-break: break-word;\n ${props => props.suggestive &&`\n padding-right: 0.7rem;\n `}\n ${media.mobile`\n min-height: 42px;\n padding-left: 1rem;\n ${props => props.suggestive &&`\n padding-right: 1rem;\n `}\n `}\n ${props => props.isFocused && css`\n border-color: ${getColor('gray180')};\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n `}\n :focus {\n border-color: ${getColor('gray180')};\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n }\n ${props => props.hasErrors && css`\n border-color: ${getColor('alert')} !important;\n `}\n input {\n position: absolute;\n top: -1px;\n left: 0;\n border: none;\n ${props => !props.suggestive &&`\n padding-right: 2.5rem;\n `}\n }\n`\n\nconst ComboboxDropdownIcon = styled(Icon)`\n position: absolute;\n top: 51%;\n transform: translateY(-50%);\n right: 1rem;\n color: ${getColor('gray60')};\n`\nconst FooterOptionsContainer = styled.div`\n background: white;\n border-top: 1px solid rgba(0,0,0,0.1);\n padding: 0;\n ${props => !props.hasWindoning && `\n padding: 0.5rem 0;\n margin: 0.5rem 0 -0.5rem;\n bottom: -0.5rem;\n position: sticky;\n `}\n`\nconst ComboboxPlaceholder = styled.div`\n color: rgba(0,0,0,0.3);\n`\n\nconst ComboboxLoading = styled(Loading)`\n bottom: 6px;\n right: 0.6rem;\n left: auto;\n top: auto;\n ${media.mobile`\n bottom: 9px;\n `}\n`\n\nexport const SEPARATOR = {}\nexport const NO_DIGITABLE_FOUND = \"Nenhum resultado encontrado\"\n//shouldRecenter?\nexport const Combobox = styled(React.forwardRef((\n {\n getLabel = _.identity,\n getLabelAs,\n getBoxLabelAs,\n getIcon,\n scrollContainer = (el) => el.closest('.dialog-container') || document.body,\n className,\n options,\n autoFocus,\n autoOpenMenu,\n mandatory,\n placeholder,\n disabled,\n fieldValue,\n label,\n path,\n withWindowing,\n tabIndex = 1,\n fieldClassName,\n descText,\n helpText,\n raw,\n digitable,\n digitableConstraint,\n digitableAsOption,\n suggestive,\n onDigitableChange,\n footerOptions,\n isLoading,\n isOptionDisabled,\n menuRef,\n overrideSetValue,\n transformOnSelect = _.identity,\n check = (a,b) => a === b,\n ...rest\n },ref\n) => {\n\n const selectedElement = useRef()\n const selectedElementIndex = useRef()\n const fieldRef = useRef()\n const windowingRef = useRef()\n const skipFocus = useRefState(autoFocus)\n const skipHover = useRefState()\n const skipDigitableSetValue = useRefState()\n const listElement = useEnsureRef(menuRef)\n const container = useEnsureRef(ref)\n const keyState = useRefState()\n\n const contextMenu = useToggle(false)\n const hover = useToggle()\n const strongHover = useRefState()\n const scrollToVisibility = useToggle()\n const autoCompleteUID = useLazyConstant(() => getUID())\n const [formValue, confirmValue, {hasErrors}] = useInput({fieldValue, path,...rest},raw)\n const value = useToggle(formValue)\n const setValue = (v) => {\n value.openWith(v)\n }\n const digitableValue = useToggle(getLabel(value.isOpen))\n const digitableRef = useRef()\n const ignoringFilter = useToggle()\n\n const setHover = (v) => {\n hover.openWith(v)\n if (digitable) {\n strongHover.set(hover.get())\n } else {\n setValue(v)\n }\n }\n\n React.useLayoutEffect(() => {\n if (digitable && !skipDigitableSetValue.get()) {\n if (contextMenu.isOpen) {\n digitableRef.current.select()\n if (value.get() && !suggestive) {\n setHover(transformOnSelect(value.get()))\n }\n } else {\n digitableValue.openWith(getLabel(value.get()))\n strongHover.set(hover.get())\n hover.close()\n }\n }\n skipDigitableSetValue.set(false)\n }, [contextMenu.isOpen])\n useEffect(() => { contextMenu.isOpen && recenterScroll() }, [contextMenu.isOpen])\n\n useEffect(() => { selectedElement.current && scrollToVisibility.isOpen && makeOptionVisible() },[hover])\n useEffect(() => {autoFocus && container.current?.focus()},[])\n useEffect(() => {autoOpenMenu && toggleCombobox()},[])\n useUpdateEffect(() => {\n if (value.isOpen !== formValue && !contextMenu.isOpen) {\n confirmValue(value.isOpen)\n }},[!!contextMenu.isOpen])\n useEffect(() => {\n if (formValue !== value.isOpen) {\n setValue(formValue)\n }\n if (digitable) {\n digitableValue.openWith(prev => prev !== getLabel(formValue) ? getLabel(formValue) : prev)\n }\n },[formValue])\n\n const filteredOptions = useMemo(() =>\n _.flow(\n _.filter(v => {\n if (!digitable || !digitableValue.isOpen || ignoringFilter.isOpen) {\n return true\n }\n return normalizeText((getLabel(v))).includes(normalizeText(digitableValue.isOpen))\n }),\n _.sortBy(v => normalizeText(getLabel(v)).indexOf(normalizeText(digitableValue.isOpen))>0)\n )(options)\n ,[options,digitable, digitableValue.isOpen, ignoringFilter.isOpen])\n const digitableOption = useMemo(() => {\n const option= filteredOptions.length < 8 && digitableAsOption && !!digitableValue.isOpen && callIfFunction(digitableAsOption, digitableValue.isOpen)\n return option || (!filteredOptions.length && digitable && !suggestive && NO_DIGITABLE_FOUND)\n },\n [digitableValue.isOpen, filteredOptions.length]\n )\n\n const availableOptions = filteredOptions.concat(digitableOption || [])\n\n const allOptions = availableOptions.concat(footerOptions || [])\n .filter((v) => v !== SEPARATOR)\n\n\n const withPlaceholder = !value.isOpen && value.isOpen !== 0 && placeholder\n useUpdateEffect(() => {\n if (suggestive || !digitable) { return }\n if (hover.isOpen) {\n setHover(allOptions[0] === NO_DIGITABLE_FOUND ? allOptions[1] : allOptions[0])\n } else if (digitableValue.isOpen) {\n setHover(ifUndefined(value.isOpen,allOptions[0]))\n }\n },[digitableValue.isOpen])\n\n const toggleCombobox = () => {\n if (contextMenu.isOpen) {\n contextMenu.close()\n } else {\n contextMenu.open()\n }\n hover.close()\n }\n\n const getCurrentHeight = () => listElement.current.offsetHeight - (listElement.current.querySelector(\".JS-list-footer\")?.offsetHeight || 0)\n\n const recenterScroll = () => {\n if (withWindowing) {\n const index = hover.get() ? availableOptions.indexOf(hover.get()) : selectedElementIndex.current\n if (windowingRef.current) {\n windowingRef.current.scrollToItem(_.isFinite(index) ? index : availableOptions.map(getLabel).indexOf(getLabel(value.get())) || 0, \"center\")\n }\n } else {\n if (!listElement.current) { return }\n if (listElement.current.getBoundingClientRect().bottom > window.innerHeight) {\n const currentScrollContainer = scrollContainer(container.current)\n currentScrollContainer.scrollTop = listElement.current.getBoundingClientRect().bottom + currentScrollContainer.scrollTop - window.innerHeight\n }\n if (selectedElement.current) {\n listElement.current.scrollTop = selectedElement.current.offsetTop + (selectedElement.current.offsetHeight / 2) - (getCurrentHeight() / 2)\n }\n }\n }\n\n const makeOptionVisible = () => {\n if (withWindowing) {\n if (windowingRef.current) {\n windowingRef.current.scrollToItem(selectedElementIndex.current || 0)\n }\n } else {\n if ((footerOptions && footerOptions?.indexOf(hover.isOpen)>=0) || !listElement.current) {\n return\n } else if (selectedElement.current.offsetTop < listElement.current.scrollTop) {\n skipHover.set(true)\n listElement.current.scrollTop = selectedElement.current.offsetTop\n } else if (selectedElement.current.offsetTop + selectedElement.current.offsetHeight > listElement.current.scrollTop + getCurrentHeight()) {\n skipHover.set(true)\n listElement.current.scrollTop = selectedElement.current.offsetTop + selectedElement.current.offsetHeight - getCurrentHeight()\n }\n }\n }\n\n const handleHover = (value,e) => {\n if (skipHover.get()) {\n skipHover.set(false)\n return\n }\n scrollToVisibility.close()\n hover.openWith(value)\n }\n const digitableKeyDown = (e) => {\n if(e.key.length == 1 || e.key == \"Spacebar\") {\n e.stopPropagation()\n } else if (e.key === 'Tab' || e.key === 'Enter') {\n if (suggestive && allOptions.indexOf(strongHover.get())<0) {\n if (allOptions.indexOf(value.isOpen)>=0) {\n setValue(transformOnSelect(value.isOpen))\n } else {\n setValue(transformOnSelect(callIfFunction(digitableAsOption,digitableValue.get()) || digitableValue.get()))\n }\n } else if (strongHover.get() === hover.get()) {\n setValue(transformOnSelect(strongHover.get()))\n }\n if (e.key === \"Enter\") {\n skipFocus.set(true);\n container.current.focus()\n }\n }\n }\n\n const keyDown = (e) => {\n if (e.getModifierState('Shift') && e.key === 'Tab') { return; }\n if ((e.key === 'Escape' || e.key === 'Tab') && contextMenu.isOpen) {\n e.stopPropagation()\n toggleCombobox()\n }\n if (e.key.length === 1) {\n e.stopPropagation()\n if (!contextMenu.isOpen) {\n contextMenu.open()\n if (digitable) {\n skipDigitableSetValue.set(true)\n digitableValue.openWith(e.key)\n return\n }\n }\n const prevKeyState = keyState.get()\n const repeated = !prevKeyState || (e.key === prevKeyState.word[0] && prevKeyState.repeated)\n const word = (prevKeyState?.word||'')+e.key\n clearTimeout(prevKeyState?.timeout || -1)\n const timeout = setTimeout(() => keyState.set(null),1000)\n keyState.set({repeated,word,timeout})\n\n const labels = allOptions.map(o => {\n const label = getLabel(o)\n return _.isString(label) ? label.slice(0,repeated ? 1 : word.length).toLowerCase() : \"\"\n })\n const goTo = (index) => {\n scrollToVisibility.open()\n setHover(allOptions[index])\n }\n\n const currentIndex = allOptions.indexOf(hover.isOpen !== false ? hover.isOpen : value.isOpen)\n\n const direction = repeated ? (e.shiftKey ? -1 : 1) : 0\n const fnName = direction < 0 ? 'lastIndexOf' : 'indexOf'\n const item = repeated ? word.slice(0,1) : word\n const fromIndex = (currentIndex || (direction < 0 ? labels.length - 1 : 0)) + direction\n const next = labels[fnName](item,fromIndex)\n if (next >= 0) {\n goTo(next)\n } else {\n const next = labels[fnName](item)\n if (next >= 0) {\n goTo(next)\n }\n }\n }\n if (['ArrowUp', 'ArrowDown', ' ', 'Enter'].indexOf(e.key) < 0) {\n return\n }\n e.stopPropagation()\n e.preventDefault()\n if (contextMenu.isOpen) {\n if (e.key === 'ArrowUp' || e.key === 'ArrowDown') {\n const oldValue = hover.isOpen !== false ? hover.isOpen : value.isOpen\n const previousIndex = allOptions.indexOf(oldValue)\n const newIndex = Math.min(Math.max((previousIndex + allOptions.length + (e.key === 'ArrowUp' ? (previousIndex < 0 ? 0 : -1) : 1)) % allOptions.length, 0), allOptions.length - 1)\n scrollToVisibility.open()\n setHover(allOptions[newIndex])\n } else {\n if (hover.isOpen !== false) {\n setValue(transformOnSelect(hover.isOpen))\n }\n toggleCombobox()\n }\n } else {\n toggleCombobox()\n }\n }\n\n const createOption = (option,i,props,opts) => {\n if (option === SEPARATOR) {\n return <ListSeparator key={\"separator\"+i}/>\n }\n if (option === NO_DIGITABLE_FOUND) {\n return <Option\n key={NO_DIGITABLE_FOUND+i}\n disabled\n label={NO_DIGITABLE_FOUND}\n />\n }\n const label = getLabel(option,{option:true})\n const checked = hover.isOpen !== false ? check(option,hover.isOpen) : check(option,value.isOpen)\n if (checked) {\n selectedElementIndex.current = i\n }\n return <Option\n key={label+i}\n option={option}\n disabled={callIfFunction(isOptionDisabled,option,label)}\n icon={callIfFunction(getIcon,option)}\n checked={checked}\n label={getLabelAs ? getLabelAs(option) : label}\n setValue={(v) => {\n if (!callIfFunction(overrideSetValue,v,{setValue,close:contextMenu.close})) {\n setValue(transformOnSelect(v));\n digitableValue.openWith(getLabel(v))\n contextMenu.close()\n };\n skipFocus.set(true);\n container.current.focus()\n }\n }\n setRef={selectedElement}\n onHover={handleHover}\n {...props}\n />\n }\n const onClickInput = () => {\n if (digitableRef.current && !contextMenu.get()) {\n digitableRef.current.select()\n }\n if (!suggestive) {\n ignoringFilter.open()\n }\n contextMenu.open()\n }\n const onFocus = (e) => {\n if(listElement.current?.contains(e.target) || skipFocus.get()) {\n skipFocus.set(false)\n } else {\n if (!suggestive) {\n ignoringFilter.open()\n }\n contextMenu.open()\n }\n }\n\n const onBlur = (e) => {\n if(!listElement.current?.contains(e.relatedTarget)) {\n if (!availableOptions.length && digitableAsOption && digitableValue.get()) {\n setValue(transformOnSelect(callIfFunction(digitableAsOption,digitableValue.get())))\n } else if (suggestive) {\n setValue(transformOnSelect(callIfFunction(digitableAsOption,digitableValue.get()) || digitableValue.get()))\n } else if (formValue !== value.isOpen) {\n confirmValue(value.isOpen)\n }\n contextMenu.close()\n }\n }\n\n return <Field\n className={fieldClassName}\n mandatory={mandatory}\n descText={descText}\n helpText={helpText}\n label={label}\n labelClick={toggleCombobox}\n ref={fieldRef}\n >\n <ComboboxInput\n onBlur={onBlur}\n onFocus={onFocus}\n onClick={onClickInput}\n ref={container}\n tabIndex={contextMenu.isOpen && digitable ? '-1' : tabIndex}\n onKeyDown={keyDown}\n disabled={disabled}\n withPlaceholder={withPlaceholder}\n hasErrors={hasErrors}\n comboboxIsOpen={contextMenu.isOpen}\n isFocused={digitable && !!contextMenu.isOpen}\n suggestive={suggestive}\n >\n {(digitable && !!contextMenu.isOpen) ?\n <TextInput\n raw\n tabIndex={tabIndex}\n autoFocus\n autoComplete={autoCompleteUID}\n ref={digitableRef}\n constraint={digitableConstraint}\n onKeyDown={digitableKeyDown}\n setValue={(v) => {ignoringFilter.close();digitableValue.openWith(v)}}\n value={digitableValue.isOpen || \"\"}\n placeholder={placeholder}\n onChange={onDigitableChange}\n />\n : withPlaceholder ? \n <ComboboxPlaceholder>{placeholder}</ComboboxPlaceholder>\n : <div>{(getBoxLabelAs ? getBoxLabelAs(value.isOpen) : getLabel(value.isOpen))}</div>\n }\n {isLoading ? <ComboboxLoading absolute size={20}/> : !suggestive && <ComboboxDropdownIcon icon=\"arrow-down\"/>}\n {\n !!contextMenu.isOpen && (!suggestive || !digitable || (allOptions.length && digitableValue.isOpen)) &&\n <ComboboxMenuContainer\n withWindowing={withWindowing}\n ref={listElement}\n windowingRef={windowingRef}\n options={availableOptions}\n digitableValue={digitableValue.get()}\n digitableAsOption={digitableAsOption}\n footerOptions={footerOptions}\n getIcon={getIcon}\n createOption={createOption}\n />\n }\n </ComboboxInput>\n </Field>\n\n}))`\n user-select: none;\n`\nconst [WithIsSticky] = willUseIsSticky()\n\nexport const Option = ({setValue, icon, option, onHover, checked, label, setRef, ...props}) =>\n <ListItem\n hover={checked}\n tabIndex={-1}\n onMouseOver={(e) => onHover(option,e)}\n ref={checked ? setRef : undefined}\n onClick={(e) => {e.stopPropagation(); setValue(option)}}\n {...props}\n >\n <a>\n {icon && <Icon icon={icon}/>}\n {label}\n </a>\n </ListItem>\n\nconst ITEM_HEIGHT = 37\nconst ComboboxMenuContainer = React.forwardRef(({options,digitableAsOption,footerOptions,getIcon, createOption,withWindowing, digitableValue, windowingRef},ref) => {\n const [positionInfo, positionPlaceholder] = usePositioning(ref, {fill:true,on:options.length})\n const getMenuHeight = (options) => Math.min((options.length * ITEM_HEIGHT) + 9, 300 - ((footerOptions?.length || 0) * ITEM_HEIGHT) - (footerOptions?.length ? 7 : 0))\n const slot = 'Popup'\n const slotName = useMemo(() => getDialogLayersSize() === 0 ? slot : (slot + '-' + (getDialogLayersSize() - 1)), [])\n\n return <>\n {positionPlaceholder}\n <Fill name={slotName}>\n <ComboboxMenu\n {...positionInfo}\n ref={ref}\n withWindowing={withWindowing}\n withoutIcons={!getIcon}\n >\n {withWindowing\n ? <FixedSizeList\n ref={windowingRef}\n height={getMenuHeight(options)}\n itemCount={options.length}\n itemSize={ITEM_HEIGHT}\n width=\"100%\"\n >{({index, style}) =>\n createOption(options[index],index,{style})\n }</FixedSizeList>\n : options.map(createOption).filter(Boolean)\n }\n {\n footerOptions &&\n <WithIsSticky intersection>{(sentinel,isSticky) => <>\n <FooterOptionsContainer isSticky={isSticky} className=\"JS-list-footer\" hasWindoning={withWindowing}>\n {footerOptions.map(createOption)}\n </FooterOptionsContainer>\n {sentinel(\"margin-top:-3px;\")}\n </>}</WithIsSticky>\n }\n </ComboboxMenu>\n </Fill>\n </>\n})\n","import React, {useLayoutEffect} from 'react'\nimport {usePrevious, useToggle} from '@startlibs/core'\nimport {callIfFunction} from '@startlibs/utils'\nimport {Combobox} from './Combobox'\nimport {useFormMeta, useFormValue} from './Form'\nimport {TextInput} from './TextInput'\nimport _ from \"lodash/fp\";\n\n//shouldRecenter?\nexport const ComboboxWithCustom = ({options,label,constraint, path, getLabel = _.identity, getBoxLabelAs = getLabel, valueOnCustom = _.identity,customIndex = options.length - 1, tabIndex = 1, ...extra}) => {\n const customValue = useToggle()\n const [value,setValue] = useFormValue(path)\n const [meta,setMeta] = useFormMeta([\"onCustom\"].concat(_.toPath(path)))\n const prevTitle = usePrevious(value)\n\n useLayoutEffect(() => {\n if (value === options[customIndex]) {\n setMeta(true)\n customValue.openWith('')\n setValue(callIfFunction(valueOnCustom,prevTitle))\n }\n }, [value])\n\n const updateCustomValue = e => {\n if (e.type === 'keydown' && e.keyCode === 27) {\n e.stopPropagation()\n setMeta(false)\n customValue.close()\n } else if (\n (e.type === 'keydown' && e.keyCode === 13) ||\n e.type === 'blur'\n ) {\n e.stopPropagation()\n if (customValue.isOpen) {\n setValue(customValue.isOpen)\n }\n setMeta(false)\n customValue.close()\n }\n }\n\n const titleOptions = (!value || options.indexOf(value) >= 0) ? options : [value].concat(options)\n return customValue.isOpen !== false ?\n <TextInput\n label={label}\n tabIndex={tabIndex}\n autoFocus\n value={customValue.isOpen}\n setValue={customValue.openWith}\n maxLength={70}\n onBlur={updateCustomValue}\n onKeyPress={updateCustomValue}\n onKeyDown={updateCustomValue}\n constraint={constraint}\n raw\n {...extra}\n /> :\n <Combobox\n getBoxLabelAs={v => v === options[customIndex] ? '' : getBoxLabelAs(v)}\n label={label}\n path={path}\n onChange={setValue}\n options={titleOptions}\n tabIndex={tabIndex}\n getLabel={getLabel}\n {...extra}\n />\n}","import React, {useEffect, useRef, useState} from 'react'\nimport ContentEditable from 'react-contenteditable'\nimport {useRefState, useToggle, useEnsureRef} from '@startlibs/core'\nimport {ContextMenu, Li, Loading, Icon} from '@startlibs/components'\nimport {Errors, useProvideErrors} from './Errors'\nimport {Field} from './Field'\nimport {useInput} from './enhanceInput'\nimport _ from 'lodash/fp'\nimport {callIfFunction, stopPropagation, constrainEvent, getColor, media, customTheme, _s} from '@startlibs/utils'\nimport styled, {css} from 'styled-components'\nimport {darken} from 'polished'\n\nconst ua = navigator.userAgent.toLowerCase();\nconst isSafari = ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0\n\nconst InputLoading = styled(Loading)`\n bottom: 8px;\n right: 0.6rem;\n left: auto;\n top: 50%;\n transform: translate(-50%);\n`\nconst AutoCompleteInput = styled.div`\n width: 100%;\n font-size: 14px;\n border: 1px solid ${getColor('gray210')};\n border-radius: 8px;\n color: ${getColor('gray60')};\n cursor: text;\n background: white;\n position: relative;\n outline: 0;\n outline: none;\n min-height: 3rem;\n line-height: 28px;\n padding: 0.25rem 0.7rem;\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n ${props => props.focused && `\n border-color: ${getColor('gray180')};\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.075);\n `}\n ${props => props.hasErrors && css`\n border-color: ${getColor('alert')} !important;\n `}\n ${media.mobile`\n padding: 0.25rem 1rem;\n min-height: 42px;\n `}\n ${props => props.withDropdown && css`\n padding-right: 3rem;\n ${media.mobile`\n padding-right: 4rem;\n `}\n `}\n ${customTheme('TextInput')}\n`\n\nconst AutoCompletePlaceholder = styled.span`\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n pointer-events: none;\n color: rgba(0,0,0,0.3);\n left: 0.7rem;\n right: 0.7rem;\n ${media.mobile`\n left: 1rem;\n right: 1rem;\n `}\n`\n\nconst AutoCompleteTextboxDiv = styled(ContentEditable)`\n display: inline-block;\n outline: 0;\n outline: none;\n padding: 0 1px;\n line-height: 130%;\n`\nconst AddedBox = styled.span`\n background-color: rgb(230,230,230);\n padding: 5px 2rem 5px 0.75rem;\n border-radius: 12px;\n font-size: 13px;\n position: relative;\n margin-left: -3px;\n margin-right: 9px;\n white-space: nowrap;\n cursor: default;\n line-height: normal;\n max-width: 90%;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n ${isSafari ? `\n vertical-align: 2px;\n `:`\n vertical-align: -7px;\n `}\n`\nconst RemoveIcon = styled(Icon)`\n width: 20px;\n height: 20px;\n border-radius: 50%;\n display: inline-block;\n position: absolute;\n top: 50%;\n line-height: 20px;\n transform: translateY(-50%);\n right: 2px;\n font-size: 14px;\n text-align: center;\n cursor: pointer;\n color: ${getColor('gray120')};\n :hover {\n background-color: ${getColor('gray210')};\n color: ${props => darken(0.05, getColor('alert')(props))};\n }\n`\n\nconst AutoCompleteMenu = styled(ContextMenu)`\n box-shadow: 0 2px 3px 1px rgba(0,0,0,0.2),0 0px 0px 1px rgba(0,0,0,0.05);\n max-height: 22rem;\n overflow: auto;\n ${ContextMenu.ListItem} {\n > * {\n padding: 11px;\n }\n }\n`\n\nconst AutoCompleteError = styled(Errors)`\n ${Errors.Item} {\n background: transparent;\n border: none;\n color: ${getColor('alert')};\n padding: 0;\n margin-top: 0.5rem;\n font-weight: 600;\n ${Errors.CloseIcon} {\n display: none;\n }\n }\n`\n\nconst DropdownIconContainer = styled(Icon)`\n position: absolute;\n right: 0;\n bottom: 0;\n width: 3rem;\n height: 3rem;\n bottom: -1px;\n ${media.mobile`\n height: 42px;\n `}\n ${Icon} {\n position: absolute;\n width: 2rem;\n height: 2rem;\n line-height: 2rem;\n top: 50%;\n left: 50%;\n transform: translate(-50%,-50%);\n background: rgba(0,0,0,0.1);\n border-radius: 50%;\n text-align: center;\n cursor: pointer;\n color: ${getColor('gray90')};\n :hover, :active {\n background: rgba(0,0,0,0.15);\n }\n }\n`\n\nconst focusBeforeLast = (e) => {\n if (e.target && e.target !== e.currentTarget) return\n const el = [].slice.call(e.currentTarget.querySelectorAll('div[contenteditable]')).slice(-1)[0]\n if (!el) return\n el.focus()\n if (!el.firstChild) {\n const node = document.createTextNode('')\n el.appendChild(node)\n }\n setSelectionRange(el.firstChild, el.textContent.length + 1)\n}\n\nconst setSelectionRange = (input, selectionStart, selectionEnd = 0) => {\n let range = document.createRange()\n let sel = window.getSelection()\n range.setStart(input, Math.max(selectionStart - 1, 0))\n sel.removeAllRanges()\n sel.addRange(range)\n}\n\nexport const AutoComplete =\n React.forwardRef(({\n path,\n AutoCompleteLi = Li,\n CompletedBox = ({label, remove, value}) => <AddedBox title={label}>\n {label}\n <RemoveIcon icon=\"x\" onMouseUp={constrainEvent(remove)}/>\n </AddedBox>,\n EditableInput = (props) => <AutoCompleteTextboxDiv {...props} />,\n getLabel = (v) => v,\n minQueryLength = 3,\n ignoreCase = true,\n autoSelect,\n autoSelectEquals,\n fetchLimit = 6,\n deleteOnBackspace = true,\n fetchSuggestions: rawFetchSuggestions,\n validation = (value) => ({success: value.trim()}),\n transform,\n withDropdown,\n autoFocus,\n clickOpensWhenEmpty,\n tabIndex=1,\n confirmIfNewKeys = [],\n confirmKeys = ['Enter', ','],\n confirmIfValueKeys = ['Tab'],\n placeholder,\n className,\n getListItem = getLabel,\n onAddValue,\n getUniqueKey,\n translatable = true,\n withoutField, fieldClassName, bellowDescText, mandatory, descText, helpText, label,\n value,setValue,raw\n },outerRef) => {\n const autoCompleteBox = useToggle()\n const hoverIndex = useToggle()\n const isLoading = useToggle()\n const cancelEditable = useRef()\n\n const [formValue, _setFormValue,{hasErrors}] = useInput({path,transform, value, setValue}, raw)\n const formValueRef = useRef(formValue)\n formValueRef.current = formValue\n const [localFormValue,setLocalFormValue] = useState(_.last(formValue) === \"\" ? formValue : formValue.concat(\"\"))\n const setFormValue = (updater) => {\n _setFormValue(updater)\n setLocalFormValue(updater)\n formValueRef.current = typeof updater === 'function' ? updater(formValueRef.current) : updater\n }\n const lastIsEditable = _.isEqual(localFormValue,formValue)\n\n const [ErrorProvider, errorUtils] = useProvideErrors()\n const hooksRef = useEnsureRef(outerRef)\n const ref = useRef()\n const queries = useRefState([])\n\n const suggestionsFetchCache = useRefState({})\n const suggestionsLabelMapCache = useRefState({})\n const lastSuggestionQuery = useRefState('')\n\n const [autoCompleteList, setAutoCompleteList] = useState([])\n\n const getValue = () => formValueRef.current || []\n\n const shouldFocusInput = useToggle()\n const recentlyAdded = useRefState(false)\n\n useEffect(() => {\n if (autoFocus) {\n focusInput()\n }\n },[])\n\n const focusInput = () => shouldFocusInput.openWith(i => i+1)\n useEffect(() => {\n if (shouldFocusInput.isOpen)\n focusBeforeLast({currentTarget: ref.current,target:ref.current})\n },[shouldFocusInput.isOpen])\n\n const editableIsEmpty = () => !lastIsEditable || (lastIsEditable && !formValue[formValue.length - 1])\n\n const ignoreCaseIfNeeded = (s) => ignoreCase ? (s || '').toLowerCase() : s\n\n const refreshSuggestions = (value = '', justFetch, dropdownFetch) => {\n if ((value.length >= minQueryLength || dropdownFetch) && rawFetchSuggestions) {\n queries.set([value])\n const removeEditable = (list) => lastIsEditable ? list.slice(0, -1) : list\n return isLoading.wait(Promise.resolve(fetchSuggestions(ignoreCaseIfNeeded(value))).then(list => {\n const noRepeatedList = list.filter(v => !removeEditable(getValue()).find(_ => getLabel(v) === getLabel(_)))\n if (justFetch) {\n return noRepeatedList\n }\n const index = queries.get().indexOf(value)\n if (index >= 0) {\n queries.set(q => q.slice(index + 1))\n if (!autoSelect && !(autoSelectEquals && noRepeatedList.slice(0,1).find(v => ignoreCaseIfNeeded(getLabel(v)) === ignoreCaseIfNeeded(value)))) {\n hoverIndex.openWith(-1)\n } else {\n hoverIndex.openWith(0)\n }\n autoCompleteBox.open()\n setAutoCompleteList(noRepeatedList)\n }\n }))\n } else {\n hoverIndex.openWith(-1)\n setAutoCompleteList([])\n return Promise.resolve([])\n }\n }\n\n const fetchSuggestions = (s) => {\n const prevQuery = lastSuggestionQuery.get()\n lastSuggestionQuery.set(s)\n if (suggestionsFetchCache.get()[s]) {\n return suggestionsFetchCache.get()[s]\n } else {\n const lastFetch = suggestionsFetchCache.get()[ignoreCaseIfNeeded(prevQuery)]\n if (s.indexOf(ignoreCaseIfNeeded(prevQuery)) >= 0 && lastFetch && lastFetch.length < fetchLimit) {\n return suggestionsFetchCache.get()[s] = lastFetch.map(getLabel).filter(_ => ignoreCaseIfNeeded(_).indexOf(ignoreCaseIfNeeded(s)) >= 0).map(_ => suggestionsLabelMapCache.get()()[ignoreCaseIfNeeded(_)])\n } else {\n const fetch = Promise.resolve(rawFetchSuggestions(s))\n fetch.then(list => {\n suggestionsFetchCache[ignoreCaseIfNeeded(s)] = list\n list.forEach(suggestion =>\n suggestionsLabelMapCache.get()[ignoreCaseIfNeeded(getLabel(suggestion))] = suggestionsLabelMapCache.get()[ignoreCaseIfNeeded(getLabel(suggestion))] || suggestion\n )\n })\n return fetch\n }\n }\n }\n useEffect(() => {\n if (!lastIsEditable) {\n if (recentlyAdded.get() !== cancelEditable.current) {\n setFormValue(_.without([cancelEditable.current], formValue).concat(\"\"))\n } else {\n setLocalFormValue(_.last(formValue) === \"\" ? formValue : formValue.concat(\"\"))\n }\n cancelEditable.current = null\n }\n }, [lastIsEditable]);\n\n useEffect(() => {\n const newValue = (formValue || [])\n refreshSuggestions(lastIsEditable ? getValue().slice(-1)[0] : '')\n if (recentlyAdded.get()) {\n recentlyAdded.set(false)\n callIfFunction(onAddValue,formValue,setFormValue)\n }\n }, [formValue])\n\n\n const confirmIfNew = (index, newValue) => {\n refreshSuggestions(newValue, true).then(list => {\n if (!list.length) {\n confirm(index, newValue)\n } else {\n onChange(index, newValue)\n }\n })\n }\n\n const confirm = (index, newValue) => {\n if (autoCompleteList.length && hoverIndex.isOpen >= 0) {\n addValue(autoCompleteList[hoverIndex.isOpen])\n } else {\n confirmValue(index, newValue)\n }\n }\n\n const confirmValue = (index, newValue, fromBlur) => {\n if (!newValue) { return }\n const suggestedValue = suggestionsLabelMapCache[ignoreCaseIfNeeded(newValue || '').trim()]\n if (suggestedValue) {\n addValue(suggestedValue, fromBlur)\n return\n }\n const {success, errors} = validation(newValue)\n if (errors) {\n errorUtils.setErrors({errors})\n } else {\n addValue(success, fromBlur)\n }\n }\n\n const onChange = (index, value) => {\n errorUtils.clearErrors()\n setFormValue(_s.set([index], value))\n }\n\n\n const addValue = (value, fromBlur) => {\n const index = Math.max(lastIsEditable ? getValue().length - 1 : getValue().length,0)\n recentlyAdded.set(formValue?.[index] || \"\")\n setFormValue(_.flow(_.set([index], value),_.concat(_,\"\")))\n if (!fromBlur) {\n focusInput()\n }\n }\n\n const remove = (index) => {\n setFormValue(_.flow(_s.unset(index),_.filter(_=>_!==undefined)))\n focusInput()\n }\n\n const onBlur = (e) => {\n autoCompleteBox.close()\n const v = getValue().slice(-1)[0]\n if (lastIsEditable) {\n const {errors} = validation(v)\n const firstIsEqual = autoCompleteList.slice(0,1).find((item) => ignoreCaseIfNeeded(getLabel(item)) === ignoreCaseIfNeeded(v))\n if (v && autoSelect && (autoCompleteList.length === 1 || firstIsEqual) && errors) {\n addValue(autoCompleteList[0], true)\n } else if (autoSelectEquals && firstIsEqual) {\n addValue(autoCompleteList[0], true)\n } else {\n confirmValue(getValue().length - 1, v, true)\n }\n } else if (autoCompleteList.length) {\n setAutoCompleteList([])\n }\n }\n\n React.useImperativeHandle(hooksRef, () => ({addValue,confirm,remove}), [formValue])\n\n const validValue = formValue || ['']\n const uniqueKeyLabel = {}\n const _getUniqueKey = (value) => {\n if (getUniqueKey) {\n return getUniqueKey(value)\n }\n const label = getLabel(value)\n const uid = uniqueKeyLabel[label] = (uniqueKeyLabel[label] || 0) + 1\n return label + uid\n }\n\n const tryOpenSuggestions = (e) => {\n if (autoCompleteBox.get()) {\n stopPropagation(onBlur)(e)\n } else {\n errorUtils.clearErrors()\n refreshSuggestions(lastIsEditable ? getValue().slice(-1)[0] : '',false,true)\n focusInput()\n }\n }\n const input = <>\n <AutoCompleteInput\n onKeyDown={(e) => e.key === ' ' && e.stopPropagation()}\n className={className}\n ref={ref}\n onFocus={() => {\n if (autoCompleteList.length) autoCompleteBox.open()\n else if (withDropdown && editableIsEmpty()) refreshSuggestions(undefined, undefined, true)\n }}\n hasErrors={errorUtils.errors.length>0 || hasErrors}\n onBlur={onBlur}\n onClick={(e) => { focusBeforeLast(e); if (editableIsEmpty() && !isLoading.isOpen) {refreshSuggestions(undefined,undefined,true)}}}\n focused={autoCompleteBox.isOpen}\n withDropdown={withDropdown}\n >\n <span>{'\\u200b'}</span>\n {validValue.map((v, i) =>\n <ValueItem\n value={v}\n index={i}\n cancelEditable={(v) => {cancelEditable.current = v }}\n isEditable={lastIsEditable && validValue.length===i+1}\n confirmKeys={confirmKeys}\n confirmIfValueKeys={confirmIfValueKeys}\n deleteOnBackspace={deleteOnBackspace}\n EditableInput={EditableInput}\n key={lastIsEditable && validValue.length===i+1 ? '$$editable$$' : _getUniqueKey(v)}\n onChange={onChange}\n remove={remove}\n confirm={confirm}\n getLabel={getLabel}\n tabIndex={tabIndex}\n confirmIfNew={confirmIfNew}\n confirmIfNewKeys={confirmIfNewKeys}\n CompletedBox={CompletedBox}\n />\n )}\n <span>{'\\u200b'}</span>\n {(!formValue || !formValue.join('')) && placeholder &&\n <AutoCompletePlaceholder onClick={(e) => ref.current.click()}>{placeholder}</AutoCompletePlaceholder>}\n {\n withDropdown && !isLoading.isOpen &&\n <DropdownIconContainer onClick={tryOpenSuggestions}>\n <Icon icon=\"arrow-down\"/>\n </DropdownIconContainer>\n }\n </AutoCompleteInput>\n {\n autoCompleteBox.isOpen !== false && !errorUtils.errors.length && autoCompleteList.length > 0 &&\n <AutoCompleteMenu\n hoverIndex={hoverIndex.isOpen}\n autoHover={autoSelect}\n onClick={constrainEvent()}\n onHover={hoverIndex.openWith}\n my=\"top left\"\n at=\"bottom left\"\n fill\n >\n {autoCompleteList.map(value =>\n <AutoCompleteLi\n className={ !translatable ? 'notranslate' : null }\n key={_getUniqueKey(value)}\n label={getListItem(value)}\n onMouseDown={e => e.preventDefault()}\n onClick={() => addValue(value)}\n />\n )}\n </AutoCompleteMenu>\n }\n <ErrorProvider value={errorUtils}>\n <AutoCompleteError/>\n </ErrorProvider>\n </>\n return withoutField\n ? input\n : <Field bellowDescText={bellowDescText} className={fieldClassName} value={formValue} mandatory={mandatory}\n descText={descText} helpText={helpText} label={label} labelClick={focusInput}>\n {isLoading.isOpen && <InputLoading absolute size={24}/>}\n {input}\n </Field>\n }\n)\n\nAutoComplete.AddedBox = AddedBox\nAutoComplete.RemoveIcon = RemoveIcon\nAutoComplete.AutoCompleteTextboxDiv = AutoCompleteTextboxDiv\n\nconst cleanText = text => {\n const clean = text.replace('\\u200b', '').replace(/\\n/g, ' ').replace(/\\s+/g, ' ')\n return clean.trim() ? clean : ''\n}\n\nconst ValueItem = ({CompletedBox,isEditable,getLabel,cancelEditable,value,remove,index,...props}) => {\n const isEditing = useToggle(isEditable)\n const valueRef = useRef(value)\n valueRef.current = value\n useEffect(() => () => {\n if (isEditing.isOpen) {\n cancelEditable(valueRef.current)\n }\n },[])\n return isEditing.isOpen\n ? <AutoCompleteTextbox\n {...props}\n value={value}\n index={index}\n remove={remove}\n />\n : <CompletedBox\n label={getLabel(value)}\n value={value}\n remove={() => remove(index)}\n />\n}\n\nexport class AutoCompleteTextbox extends React.Component {\n\n state = {value:this.props.value}\n\n deletePrev = () => this.props.index > 0 && this.props.remove(this.props.index - 1)\n\n onKeyDown = (e) => {\n const range = window.getSelection().getRangeAt(0)\n if (this.props.confirmIfNewKeys.indexOf(e.key) >= 0) {\n e.preventDefault()\n const text = range.startContainer.textContent\n this.props.confirmIfNew(\n this.props.index,\n cleanText((text.slice(0, range.startOffset) + '\\uFFFD' + text.slice(range.startOffset)).replace('\\uFFFD', e.key))\n )\n } else if (e.key === 'ArrowLeft' || e.key === 'ArrowRight') {\n e.stopPropagation()\n } else if (this.props.confirmKeys.indexOf(e.key) >= 0 || this.props.confirmIfValueKeys.indexOf(e.key) >= 0) {\n if (this.props.confirmKeys.indexOf(e.key) >= 0) {\n e.preventDefault()\n }\n if (this.props.value) {\n e.preventDefault()\n e.stopPropagation()\n this.props.confirm(this.props.index, this.props.value)\n }\n } else if (e.key === 'Backspace' && this.props.deleteOnBackspace) {\n if (e.target.textContent !== '\\u200b' || !range.collapsed) {\n if (range.startContainer.previousSibling) {\n if (range.startContainer.previousSibling.textContent.length) {\n return\n }\n } else if (range.startOffset > 0) {\n return\n }\n }\n e.preventDefault()\n this.deletePrev()\n }\n }\n\n onChange = (evt) => {\n this.props.onChange(this.props.index, cleanText(evt.currentTarget.isContentEditable ? evt.currentTarget.innerText : evt.target.value))\n }\n\n shouldComponentUpdate(nextProps) {\n const event = new CustomEvent('portalReposition')\n setTimeout(() => window.dispatchEvent(event), 1)\n if (this.el.innerHTML === '<br>' || !this.el.innerHTML) {\n this.props.onChange(this.props.index, '')\n }\n return nextProps.value !== cleanText(this.el.innerText) || !!Object.keys(nextProps).find((k) => nextProps[k] !== this.props[k])\n }\n\n componentDidUpdate(oldProps) {\n if (this.props.value.slice(-1) === ' ' && /\\S/.test(this.el.textContent.slice(-1))) { // does not have blank space as last\n this.el.innerHTML = this.props.value.replace(/\\s/, '&nbsp;')\n }\n if (this.props.value !== oldProps.value && document.activeElement === this.el) {\n setSelectionRange(this.el.firstChild || this.el, this.el.textContent.length + 1)\n }\n }\n\n onPaste = (ev) => {\n ev.preventDefault()\n const text = ev.clipboardData.getData('text')\n document.execCommand('insertText', false, text)\n }\n\n render() {\n const {value, confirmKeys, index, EditableInput, confirmIfNewKeys, confirmIfNew, confirm, remove, ...rest} = this.props\n const valueOrBlank = /*android fix, not needed? value || */ _.isString(value) && value ? value : '\\u200b'\n\n const props = {\n innerRef: ref => this.el = ref,\n onKeyDown: this.onKeyDown,\n onPaste: this.onPaste,\n value: value,\n index: index,\n html: valueOrBlank.replace(/\\s$/, '&nbsp;'),\n ...rest,\n onChange: this.onChange,\n }\n return typeof EditableInput === 'function' ? EditableInput(props) : <EditableInput {...props} />\n }\n}\n","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}","import React, {forwardRef, useCallback, useContext, useEffect, useImperativeHandle, useMemo, useRef} from 'react'\nimport _ from 'lodash/fp'\nimport {\n StartlibsConsumer,\n useConsumerCatalog,\n useLazyConstant,\n usePopupToggle,\n useRefState,\n useToggle,\n useRefMemo\n} from '@startlibs/core'\nimport {Button, ContextMenu, fixDoubledLastMarginBottom, Li, willUseFlipSwitch} from '@startlibs/components'\nimport {Errors} from './Errors'\nimport {FormContext} from './Form'\nimport {FormValue} from './FormValue'\nimport {PathContext} from './enhanceInput'\nimport {useDraftConfirmation} from './useDraftConfirmation'\nimport styled from 'styled-components'\nimport {_s, callIfFunction, formatPath, lazyValue, stopPropagation} from '@startlibs/utils'\n\nconst addRootPath = (errorRootPath, errors, path) => {\n const rootPath = [].concat(errorRootPath || [], path)\n return Object.keys(errors).reduce((acc, error) => {\n acc[rootPath.concat(error).join('.')] = errors[error]\n return acc\n }, {})\n}\n\nconst EditableContext = React.createContext({})\n\nexport const ConfirmEditableBoxes = forwardRef(({children, itemValidation = _.stubFalse, listValidation = () => false, transform = _.identity}, ref) => {\n\n const submitAll = useCallback(async (withLoading) => {\n if (withLoading) {\n editableBoxes().forEach(_ => _.loading().open())\n }\n return Promise\n .all([submitAllShared(), submitAllStandalone()])\n .then(([shared, standalone]) => {\n if (withLoading) {\n editableBoxes().forEach(_ => _.loading().close())\n }\n return shared ? (standalone ? {shared, standalone} : shared) : standalone\n })\n .catch(() => withLoading && editableBoxes().forEach(_ => _.loading().close()))\n }, []\n )\n\n const [confirmDraftContent, draftToggle, draftConfirmation] = useDraftConfirmation(submitAll)\n\n useEffect(()=> draftToggle.openWith(lazyValue(() => hasModifiedBoxes())),[])\n\n const [sharedBoxes, sharedBoxesManager] = useConsumerCatalog()\n const [standaloneBoxes, standaloneBoxesManager] = useConsumerCatalog()\n\n const editableBoxes = (boxes) => boxes || sharedBoxes().concat(standaloneBoxes())\n const hasEditableBoxes = (boxes) => editableBoxes(boxes).length > 0\n\n const provide = useMemo(() => ({\n sharedBoxes: sharedBoxesManager,\n standaloneBoxes: standaloneBoxesManager,\n itemValidation,\n transform\n }), [])\n\n const confirm = useCallback((cb, dialogType = 'submit-draft') => draftConfirmation(dialogType, cb), [draftConfirmation])\n const discard = useCallback((cb) => draftConfirmation('discard-draft', cb), [draftConfirmation])\n\n\n const modifiedEditablesPath = (boxes) => modifiedEditableBoxes(boxes).map(_ => callIfFunction(_.path))\n\n\n const modifiedEditableBoxes = (boxes) => editableBoxes(boxes).filter(_ => _.modifiedValue()[1])\n const hasModifiedBoxes = (boxes) => modifiedEditableBoxes(boxes).length > 0\n\n const submitAllShared = () => {\n if (!sharedBoxes().length) return false\n const sharedWithForm = sharedBoxes().find(_ => _.form)\n if (!sharedWithForm) {\n return false\n }\n const {form} = sharedWithForm.props\n const validated = modifiedEditableBoxes(sharedBoxes()).reduce(({success, errors}, box) => {\n const index = callIfFunction(box.path)\n const [newItem, wasModified] = box.modifiedValue()\n const newErrors = wasModified ? itemValidation(newItem, index) : false\n if (newErrors) {\n return {\n success,\n errors: Object.assign({}, errors, addRootPath(form.meta.errorRootPath, newErrors, index))\n }\n }\n const newProps = _s.set(index, transform(newItem, index), success)\n return {success: newProps, errors}\n }, {success: form.getOriginalValues(), errors: undefined})\n if (validated.errors) {\n form.setErrors(validated.errors)\n return Promise.resolve(validated)\n }\n return form.submitForm(validated.success)\n }\n\n const submitAllStandalone = () => {\n if (!standaloneBoxes().length) return false\n const edited = standaloneBoxes()\n .filter(_ => _.form.hasChanged)\n const notValidated = edited.filter(_ => !_.form.validate())\n if (notValidated.length) {\n return Promise.reject({errors: notValidated})\n } else {\n return Promise\n .all(edited.map(_ => _.handleSubmit()))\n .then(boxes => {\n const boxesAndResult = boxes\n .map((_, i) => [edited[i], _, i])\n boxesAndResult.filter(([edited, result, i]) => !result.errors).forEach(([_]) => _.close())\n const failed = boxesAndResult.filter(([edited, result, i]) => result.errors)\n if (failed.length) {\n return {errors: failed}\n } else {\n return {success: boxes}\n }\n })\n }\n }\n\n const methods = useMemo(() => ({\n confirm, discard, submitAll, hasEditableBoxes, editableBoxes, modifiedEditablesPath\n }), [draftConfirmation])\n\n useImperativeHandle(ref, () => methods, [methods])\n\n return <>\n {confirmDraftContent}\n <EditableContext.Provider value={provide}>\n {callIfFunction(children, methods)}\n </EditableContext.Provider>\n </>\n})\n\nconst FlipDiv = ({useAnimation, ...props}) => {\n const ref = useRef()\n useAnimation(ref)\n return <div {...props} ref={ref}/>\n}\n\nconst EditableBoxPresentation = styled(forwardRef((\n {\n view = (value) => value === undefined || value === null ? '' : String(value),\n tabIndex = 1,\n onClose,\n editingIsOpen,\n onOpen,\n onDelete,\n onCancel,\n onSave,\n onMouseDown,\n onTouchStart,\n resetField,\n children,\n withDelete,\n withContextMenu,\n edit,\n readOnly,\n disabled,\n isNew,\n saveLabel,\n className,\n submitRef,\n path\n },\n ref\n) => {\n const popup = usePopupToggle()\n const editing = useToggle(editingIsOpen)\n const loading = useToggle()\n\n const form = useContext(FormContext)\n\n const closeBox = (params) => {\n callIfFunction(onClose,params)\n editing.close()\n }\n\n useEffect(() => {\n return () => callIfFunction(onClose, true)\n }, [])\n\n useEffect(() => {\n if (editing.isOpen) {\n callIfFunction(onOpen)\n }\n }, [editing.isOpen])\n\n useImperativeHandle(ref, () => ({\n loading,\n closeBox,\n handleCancel,\n getValue\n }))\n\n const handleDelete = (e) => {\n if (e) e.preventDefault()\n onDelete()\n }\n\n const tryClose = (e) => {\n if (e.key === 'Escape' && editing.isOpen) {\n e.preventDefault()\n e.stopPropagation()\n handleCancel()\n }\n }\n\n const handleCancel = () => {\n onCancel(closeBox)\n }\n\n const onSubmit = (e) => {\n if (e) e.preventDefault()\n loading.wait(() => onSave().then(() => closeBox(true)).catch(()=>{}))\n }\n\n const getPath = (extraPath) => _s.toPath(path).concat(_s.toPath(extraPath))\n\n const getValue = (extraPath, otherProps) => otherProps ? _s.get(getPath(extraPath), otherProps) : form.getValue(getPath(extraPath))\n const setValue = (value, extraPath) => form.setValue(getPath(extraPath),value)\n\n const flipAnimation = useLazyConstant(willUseFlipSwitch)\n\n const disabledClick = readOnly || disabled\n\n const openBox = () => {\n editing.open()\n }\n\n const formattedPath = getPath()\n return (\n <PathContext.Provider value={formattedPath}>\n <FlipDiv\n key={editing.isOpen}\n useAnimation={flipAnimation}\n onKeyDown={tryClose}\n onMouseDown={onMouseDown}\n onTouchStart={onTouchStart}\n className={'editable-box ' + (!disabledClick ? 'clickable ' : '') + (editing.isOpen ? 'expanded' : 'collapsed') + ' ' + className}\n onClick={editing.isOpen || disabledClick ? undefined : openBox}\n >\n {\n !editing.isOpen && !disabledClick && !(withDelete || withContextMenu) &&\n <Button tabIndex={tabIndex} className=\"edit-button\" small onlyIcon icon=\"edit\"/>\n }\n {\n !editing.isOpen && !disabledClick && (withDelete || withContextMenu) &&\n <Button tabIndex={tabIndex} className=\"edit-button arrow-down\" small onlyIcon icon=\"arrow-down\"\n onClick={stopPropagation(popup.toggle)}>\n {\n popup.isOpen &&\n <ContextMenu>\n <Li label=\"Editar\" icon=\"edit-line\" onClick={openBox}/>\n {withContextMenu}\n {withDelete && <Li label=\"Deletar\" icon=\"remove\" onClick={handleDelete}/>}\n </ContextMenu>\n }\n </Button>\n }\n <form onSubmit={onSubmit}>\n <FormValue path={formattedPath} key={formatPath(formattedPath)}>{(value) =>\n fixDoubledLastMarginBottom(\n editing.isOpen\n ? edit(value, { getPath, getValue, path: formattedPath, tabIndex, setValue})\n : view(value, { getPath, getValue, path: formattedPath })\n )\n }</FormValue>\n <Errors path={formattedPath}/>\n {\n editing.isOpen &&\n <div className=\"editable-box-footer\">\n <div>\n {\n withDelete &&\n <Button\n icon=\"remove\"\n hover=\"alert\"\n tabIndex={tabIndex + 2}\n onClick={handleDelete}\n >\n Deletar\n </Button>\n }\n </div>\n <StartlibsConsumer>{({labels}) =>\n <div>\n <Button\n tabIndex={tabIndex + 1}\n onClick={handleCancel}\n >\n {labels.EditableBox.cancel}\n </Button>\n <Button\n buttonRef={submitRef}\n isLoading={loading.isOpen}\n highlight\n tabIndex={tabIndex}\n type=\"submit\"\n >\n {callIfFunction(saveLabel,isNew) || (isNew ? labels.EditableBox.saveNew : labels.EditableBox.save)}\n </Button>\n </div>\n }\n </StartlibsConsumer>\n </div>\n }\n </form>\n {children}\n </FlipDiv>\n </PathContext.Provider>\n )\n}))`\n ${props => props.disabled && \"opacity: 0.7;\"}\n`\n\nconst SharedEditableTabBox = ({path,isSingle, checkIsNew = (a,b) => a!==b, ...props}) => {\n\n const editableGroup = useContext(EditableContext)\n const form = useContext(FormContext)\n\n const isNew = useRefState(() => isSingle ? false : checkIsNew(_s.get(path, form.getOriginalValues()),form.getValue(path)))\n const internalBox = React.useRef()\n const pathRef = useRefMemo(path)\n\n const loading = () => internalBox.current.loading\n const modifiedValue = () => {\n const oldItem = internalBox.current.getValue(undefined, form.getOriginalValues())\n const newItem = internalBox.current.getValue()\n return newItem !== oldItem ? [newItem, true] : [oldItem, false]\n }\n\n const selfRef = useRef({\n loading,path:() => pathRef.current,form,modifiedValue\n })\n\n const resetField = () => form.resetField([].concat(path))\n\n const onClose = (skipReset) => {\n if (!skipReset) {\n resetField()\n }\n form.clearErrors(_s.toPath(path))\n editableGroup.sharedBoxes.unregister(selfRef.current)\n isNew.set(false)\n }\n\n const onOpen = () => {\n editableGroup.sharedBoxes.register(selfRef.current)\n }\n\n\n const validate = (props, path) => {\n const errors = editableGroup.itemValidation(props, path)\n if (errors) {\n form.setErrors(addRootPath(form.getMeta('errorRootPath'), errors, path))\n }\n return errors\n }\n\n const onSave = () => {\n const [newItem, wasModified] = modifiedValue()\n if (!wasModified) {\n internalBox.current.closeBox()\n return Promise.resolve({})\n }\n const errors = validate(newItem, path)\n if (errors) {\n return Promise.reject({errors})\n }\n const transform = editableGroup.transform\n if (isNew.get()) {\n const arrayPath = _s.toPath(path)\n const index = arrayPath.slice(-1)\n const newProps = _s.update(arrayPath.slice(0,-1),_s.insertAt(index, transform(newItem, path)), form.getOriginalValues())\n return form.submitForm(newProps)\n } else {\n const newProps = _s.set(path, transform(newItem, path), form.getOriginalValues())\n return form.submitForm(newProps)\n }\n }\n\n const onDelete = () => {\n if (isNew.get()) {\n onCancel()\n return Promise.resolve({success: true})\n }\n const original = form.getOriginalValues()\n const newProps = _s.unsetOrRemoveAt(path, original)\n if (_s.get(_s.toPath(path).slice(0, -1), original).length !== _s.get(_s.toPath(path).slice(0, -1), newProps).length) {\n internalBox.current.loading.open()\n const fetch = form.submitForm(newProps)\n fetch.then(({errors}) => {\n internalBox.current.loading.close()\n if (!errors) {\n form.setValues(_s.unsetOrRemoveAt(path))\n }\n }).catch(() => internalBox.current.loading.close())\n return fetch\n } else {\n internalBox.current.handleCancel()\n return Promise.resolve({success: true})\n }\n }\n\n const onCancel = (close) => {\n const lastKey = Array.isArray(path) ? path.slice(-1)[0] : path\n const prevKeys = Array.isArray(path) ? path.slice(0, path.length - 1) : []\n if (isNew.get() && typeof lastKey === 'number') {\n form.setValues(_s.unsetOrRemoveAt(path))\n } else {\n form.resetField(path)\n close()\n }\n }\n\n return <EditableBoxPresentation\n ref={internalBox}\n resetField={resetField}\n onOpen={onOpen}\n onClose={onClose}\n onDelete={onDelete}\n onCancel={onCancel}\n onSave={onSave}\n form={editableGroup.form}\n isNew={isNew.get()}\n path={path}\n {...props}\n />\n}\n\nexport const EditableBox = ({path, onCancel, onClose, isNew,...props}) => {\n\n const editableGroup = useContext(EditableContext)\n const form = useContext(FormContext)\n\n const internalBox = React.useRef()\n\n const resetField = () => path ? form.resetField(_s.toPath(path)) : form.resetForm()\n\n const _onClose = (skipReset) => {\n if (!skipReset) {\n resetField()\n }\n form.clearErrors(path)\n editableGroup.standaloneBoxes.unregister(selfRef.current)\n callIfFunction(onClose)\n }\n\n const modifiedValue = () => {\n const oldItem = internalBox.current.getValue(undefined, form.getOriginalValues())\n const newItem = internalBox.current.getValue()\n return newItem !== oldItem ? [newItem, true] : [oldItem, false]\n }\n\n const onOpen = () => {\n editableGroup.standaloneBoxes.register(selfRef.current)\n }\n\n const onDelete = () => {\n props.removeItem(props.menuId)\n }\n\n const _onCancel = (close) => {\n if (callIfFunction(onCancel,close) !== false) {\n close()\n }\n }\n\n const close = () => internalBox.current.closeBox()\n\n const onSave = () => form.submitForm()\n\n const handleSubmit = () => form.handleSubmit()\n\n const loading = () => internalBox.current.loading\n\n const pathRef = useRefMemo(path)\n const selfRef = useRef({loading,path:() => pathRef.current,form,modifiedValue,handleSubmit,close})\n\n return <EditableBoxPresentation\n ref={internalBox}\n resetField={resetField}\n onOpen={onOpen}\n onClose={_onClose}\n onDelete={onDelete}\n onCancel={_onCancel}\n onSave={onSave}\n form={form}\n path={path}\n isNew={isNew}\n {...props}\n />\n}\nEditableBox.Shared = SharedEditableTabBox\n\n","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","import React from 'react'\n\nimport {Icon} from '@startlibs/components'\nimport { getColor, ifProp, media } from '@startlibs/utils';\nimport styled, {css} from 'styled-components'\nimport {lighten, desaturate} from 'polished'\nimport {Checkbox} from '../../Checkbox'\nimport {HelpText} from '../../Field'\n\nconst CheckboxPseudoInput = styled.div`\n border-radius: 4px;\n content: '';\n border: 1px solid ${getColor('gray210')};\n width: 18px;\n height: 18px;\n background-color: white;\n position: absolute;\n left: -2rem;\n top: 50%;\n transform: translateY(-50%);\n\n ${ifProp('focused', css`\n box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);\n border-color: ${getColor('gray180')};\n `)}\n\n ${Icon} {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%,-50%);\n font-weight: bold;\n font-size: 16px;\n color: ${getColor('gray90')};\n }\n`\nconst TextLabel = styled.span `\n font-size: 13px;\n line-height: 16px;\n margin: 2px 0;\n display: block;\n`\nconst DescText = styled.div `\n color: rgba(0,0,0,0.4);\n display: block;\n font-size: 12px;\n font-weight: 400;\n`\nconst TextLabelContainer = styled.div `\n display: flex;\n align-items: center;\n position: relative;\n ${HelpText} {\n margin-left: 0.25rem;\n }\n`\nconst CheckboxContent = styled.div `\n cursor: pointer;\n position: relative;\n padding-left: 2rem;\n transition: background 0.2s linear;\n ${props => props.framed && css`\n border: 1px solid ${getColor('gray210')};\n border-radius: 8px;\n min-height: 3rem;\n min-width: 8rem;\n background: white;\n width: 100%;\n align-items: center;\n display: flex;\n :hover {\n background: rgb(245,245,245);\n }\n :active {\n background: rgb(235,235,235);\n transition: none;\n }\n padding: 10px 12px 10px 32px;\n ${media.desktop`\n padding: 7px 12px 7px 32px;\n `}\n ${props => props.hasErrors && css`\n border-color: ${getColor('alert')} !important;\n `}\n ${props => props.checked && props.highlightSelected && css`\n border-color: ${getColor('main')};\n background: ${props => desaturate(0.3, lighten(0.52, getColor(\"main\")(props)))};\n :hover {\n background: ${props => desaturate(0.3, lighten(0.52, getColor(\"main\")(props)))};\n }\n ${CheckboxPseudoInput} {\n ${Icon} {\n color: ${getColor('main')};\n }\n }\n `}\n ${props => props.checked && props.ultraHighlightSelected && css`\n border-color: ${getColor('main')};\n background: ${getColor('main')};\n color: white;\n a, a.link {\n color: white;\n }\n :hover {\n background: ${getColor('main')};\n }\n ${CheckboxPseudoInput} {\n ${Icon} {\n color: ${getColor('main')};\n }\n }\n ${HelpText} {\n color: rgba(255, 255, 255, 0.65);\n }\n ${DescText} {\n color: rgba(255, 255, 255, 0.65);\n }\n `}\n ${props => props.disabled && css`\n background-color: rgba(0,0,0,0.075) !important;\n color: rgba(0,0,0,0.6); !important;\n &[disabled] {\n opacity: 0.75 !important;\n }\n ${CheckboxPseudoInput} {\n background: transparent;\n }\n `}\n `}\n`\n\nexport const SimpleCheckbox = styled(({path, disabled, label, descText, helpText, isFirst, isLast, tabIndex, className,framedBoxes,highlightSelected,ultraHighlightSelected,...rest}) =>\n <Checkbox\n className={className}\n path={path}\n tabIndex={tabIndex}\n {...rest}\n >{({checked, hasErrors, focused}) =>\n <CheckboxContent checked={checked} framed={framedBoxes} highlightSelected={highlightSelected} ultraHighlightSelected={ultraHighlightSelected} hasErrors={hasErrors} disabled={disabled}>\n <div className=\"textContainer\">\n <TextLabelContainer>\n <CheckboxPseudoInput focused={focused} tabIndex={tabIndex}>\n {checked && <Icon icon=\"check\"/>}\n </CheckboxPseudoInput>\n <TextLabel>{label}</TextLabel>{helpText && <HelpText>{helpText}</HelpText>}\n </TextLabelContainer>\n {descText && <DescText>{descText}</DescText>}\n </div>\n </CheckboxContent>\n }</Checkbox>\n)`\n cursor: pointer;\n position: relative;\n margin-bottom: 1rem;\n display: flex;\n ${ifProp('disabled', css`\n pointer-events: none;\n `)}\n .textContainer {\n width: 100%;\n }\n`\n","import React from 'react'\n\nimport { getColor, ifProp, media } from '@startlibs/utils';\nimport styled, {css} from 'styled-components'\nimport {lighten, desaturate} from 'polished'\nimport {HelpText} from '../../Field'\nimport {Radiobox} from '../../Radiobox'\n\nconst CssCircle = styled.div`\n border-radius: 50%;\n content: '';\n border: 1px solid ${getColor('gray210')};\n width: 18px;\n height: 18px;\n background-color: white;\n position: absolute;\n left: -2rem;\n top: 50%;\n transform: translateY(-50%);\n \n ${ifProp('focused', css`\n box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.1);\n border-color: ${getColor('gray180')};\n `)}\n\n ${ifProp('checked', css`\n :before { \n content: '';\n width: 8px;\n height: 8px;\n top: 50%;\n transform: translateY(-50%);\n left: 4px;\n border-radius: 50%;\n position: absolute;\n background-color: ${getColor('gray90')};\n }\n `)}\n \n`\nconst TextLabel = styled.span `\n font-size: 13px;\n line-height: 16px;\n margin: 2px 0.25rem 2px 0;\n display: block;\n`\nconst DescText = styled.div `\n color: rgba(0,0,0,0.4);\n display: block;\n font-size: 12px;\n font-weight: 400;\n`\nconst TextLabelContainer = styled.div `\n display: flex;\n align-items: center;\n position: relative;\n flex-wrap: wrap;\n`\nconst RadioboxContent = styled.div `\n cursor: pointer;\n position: relative;\n padding-left: 2rem;\n transition: background 0.2s linear;\n ${props => props.framed && css`\n border: 1px solid ${getColor('gray210')};\n border-radius: 8px;\n min-height: 3rem;\n min-width: 8rem;\n background: white;\n width: 100%;\n align-items: center;\n display: flex;\n :hover {\n background: rgb(245,245,245);\n }\n :active {\n background: rgb(235,235,235);\n transition: none;\n }\n padding: 10px 12px 10px 32px;\n ${media.desktop`\n padding: 7px 12px 7px 32px;\n `}\n ${props => props.hasErrors && css`\n border-color: ${getColor('alert')} !important;\n `}\n ${props => props.checked && props.highlightSelected && css`\n border-color: ${getColor('main')};\n background: ${props => desaturate(0.3, lighten(0.52, getColor(\"main\")(props)))};\n :hover {\n background: ${props => desaturate(0.3, lighten(0.52, getColor(\"main\")(props)))};\n }\n ${CssCircle} {\n :before { \n background-color: ${getColor('main')};\n }\n }\n `}\n ${props => props.checked && props.ultraHighlightSelected && css`\n border-color: ${getColor('main')};\n background: ${getColor('main')};\n color: white;\n :hover {\n background: ${getColor('main')};\n }\n ${CssCircle} {\n :before { \n background-color: ${getColor('main')};\n }\n }\n ${HelpText} {\n color: rgba(255, 255, 255, 0.65);\n }\n ${DescText} {\n color: rgba(255, 255, 255, 0.65);\n }\n `}\n ${props => props.disabled && css`\n background-color: rgba(0,0,0,0.075) !important;\n &[disabled] {\n opacity: 0.75 !important;\n }\n ${CssCircle} {\n background: rgba(255,255,255,0.25);\n }\n `}\n `}\n`\n\nexport const SimpleRadiobox = styled((props) =>\n <Radiobox {...props}>{({disabled, checked, hasErrors, focused, tabIndex, framedBoxes, highlightSelected, ultraHighlightSelected}) =>\n <RadioboxContent checked={checked} framed={props.framedBoxes} highlightSelected={props.highlightSelected} ultraHighlightSelected={props.ultraHighlightSelected} hasErrors={hasErrors} disabled={disabled}>\n <div className=\"textContainer\">\n <TextLabelContainer>\n <CssCircle checked={checked} focused={focused} tabIndex={tabIndex}/>\n <TextLabel>{props.label}</TextLabel>{props.helpText && <HelpText> {props.helpText}</HelpText>}\n </TextLabelContainer>\n {props.descText && <DescText>{props.descText}</DescText>}\n </div>\n </RadioboxContent>\n }</Radiobox>\n)`\n cursor: pointer;\n position: relative;\n margin-bottom: 1rem;\n display: flex;\n ${ifProp('disabled', css`\n pointer-events: none;\n `)}\n .textContainer {\n width: 100%;\n }\n`","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}","import React, {forwardRef, useContext, useEffect, useRef, useState} from 'react'\nimport styled, {css} from 'styled-components'\nimport _ from 'lodash/fp'\nimport {StartlibsContext, useEnsureRef, usePopupToggle, usePrevious} from '@startlibs/core'\nimport {formatDate, formatDateToPattern, getColor, getNumberInputType, ifProp, media, parseDate} from '@startlibs/utils'\nimport {Icon} from '@startlibs/components'\nimport {Field} from './Field'\nimport {TextInput} from './TextInput'\nimport {enhanceInput, useInput} from './enhanceInput'\nimport {darken} from 'polished'\nimport {callIfFunction} from '@startlibs/utils'\n\nexport const CALENDAR_LEVEL_DAY = 'day'\nexport const CALENDAR_LEVEL_MONTH = 'month'\nexport const CALENDAR_LEVEL_YEAR = 'year'\n\nconst LEVELS = [CALENDAR_LEVEL_DAY, CALENDAR_LEVEL_MONTH, CALENDAR_LEVEL_YEAR]\n\nconst DatePickerContainer = styled.div`\n width: 20rem;\n position: absolute;\n z-index: 100;\n background-color: white;\n border-radius: 5px;\n border: 1px solid ${getColor('gray210')};\n user-select: none;\n box-shadow: 0 0 4px 0 rgba(0,0,0,0.2);\n font-size: 13px;\n text-align: center;\n animation: 0.2s datePickerFadeInDown ease-out;\n display: none;\n @supports (flex-wrap: wrap) {\n display: block;\n }\n input {\n padding-right: 2.25rem;\n ${media.mobile`\n width: 2.5rem;\n `}\n }\n @keyframes datePickerFadeInDown {\n from {\n opacity: 0;\n transform: translateY(-10px);\n pointer-events: none;\n }\n to {\n opacity: 1;\n transform: none;\n pointer-events: none;\n }\n }\n`\n\nconst CalendarHeader = styled.div`\n display: flex;\n padding: 0.5rem;\n align-items: center;\n`\n\nconst CalendarContentContainer = styled.div`\n padding: 0 0.5rem 0.5rem 0.5rem;\n display: flex; \n flex-wrap: wrap;\n justify-content: space-around;\n`\n\nconst WeekHeader = styled(CalendarContentContainer)`\n font-size: 12px;\n font-weight: 600;\n cursor: default;\n span {\n width: 2.5rem;\n }\n`\n\nconst CalendarClickable = styled.a`\n :hover, :focus {\n background-color: rgba(0,0,0,0.1);\n cursor: pointer;\n }\n`\n\nconst TitleButton = styled(CalendarClickable)`\n font-size: 16px;\n font-weight: 600;\n flex-grow: 1;\n border-radius: 4px;\n line-height: 3rem;\n`\n\nconst NavigationButton = styled(CalendarClickable)`\n font-size: 21px;\n width: 3rem;\n text-align: center;\n border-radius: 4px;\n height: 3rem;\n ${Icon} {\n line-height: 3rem;\n }\n`\n\nconst CalendarContent = styled(CalendarClickable)`\n line-height: 2.25rem;\n flex-grow: 1;\n display: inline-block;\n border-radius: 5px;\n margin-top: 0.25rem;\n margin-left: 0.25rem;\n ${ifProp('isEdge', css`color: rgba(0,0,0,0.4);`)}\n ${ifProp('isSelected', css`box-shadow: inset 0 0 0 1px ${getColor('gray210')};`)}\n ${ifProp('isDisabled', \n `pointer-events: none;\n opacity: 0.5;`\n )} \n ${ifProp('isCurrent', css`\n background: ${getColor('main')};\n color: #FFF; \n :hover {\n background-color: ${props => darken(0.075, getColor('main')(props))};\n }\n ${ifProp('isSelected', 'box-shadow: none;')}\n `)} \n`\n\nconst DayItem = styled(CalendarContent)`\n ${props => props.index % 7 === 0 && 'margin-left:0;'}\n flex-basis: 12%;\n`\nconst MonthItem = styled(CalendarContent)`\n ${props => props.index % 3 === 0 && 'margin-left:0;'}\n flex-basis: 30%;\n`\nconst YearItem = styled(CalendarContent)`\n ${props => props.index % 3 === 0 && 'margin-left:0;'}\n flex-basis: 30%;\n`\n\nconst DatePickerInputIcon = styled(Icon)`\n position: absolute;\n outline: none;\n bottom: 0;\n font-size: 21px;\n line-height: 3rem;\n right: 0;\n width: 2rem;\n cursor: pointer;\n color: ${getColor('gray150')};\n :hover {\n color: ${getColor('main')};\n }\n display: none;\n @supports (flex-wrap: wrap) {\n display: block;\n }\n ${props => props.disabled && 'pointer-events: none;'}\n ${media.mobile`\n line-height: 42px;\n width: 2.25rem;\n `}\n`\n\nconst ClearButton = styled(Icon)`\n color: ${getColor('gray90')};\n font-size: 12px;\n position: absolute;\n right: 40px;\n bottom: 0;\n transform: translateY(-50%);\n cursor: pointer;\n width: 1.5rem;\n line-height: 1.5rem;\n text-align: center;\n border-radius: 50%;\n background: rgba(0,0,0,0.1);\n :hover {\n background: #f7d3d4;\n color: ${getColor('alert')};\n }\n`\n\nconst InputAndIconWrapper = styled.div`\n position: relative;\n`\n\nconst ShortcutsWrapper = styled.div`\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n padding: 0.5rem 0.25rem 0;\n color: ${getColor('gray150')};\n \n .link {\n cursor: pointer;\n font-weight: 600;\n text-decoration: underline;\n\n ${media.mobile`\n font-size: 13px; \n `}\n\n :hover {\n color: ${getColor('main')};\n }\n \n ${ifProp('disabled', css`\n pointer-events: none;\n opacity: 0.5;\n `)}\n }\n`\n\n\nconst KeyMapper = (level) => {\n const upDownSpacing = level === CALENDAR_LEVEL_DAY ? 7 : 3\n return {\n 'ArrowLeft': -1,\n 'ArrowRight': 1,\n 'ArrowUp': -upDownSpacing,\n 'ArrowDown': upDownSpacing\n }\n}\n\nconst getUTCDate = (year,month = 0,date = 1,hour = 0,min =0 ,sec =0 ,ms = 0) => new Date(Date.UTC(year,month,date,hour,min,sec,ms))\nconst getUTCDateBefore = (year,month = 0,date = 1,hour = 0,min =0 ,sec =0 ,ms = -1) => new Date(Date.UTC(year,month,date,hour,min,sec,ms))\n\nexport const DatePicker = forwardRef((\n {\n format = 'dd/MM/yyyy',\n min = new Date(now().setUTCFullYear(now().getUTCFullYear() - 100)),\n max = new Date(now().setUTCFullYear(now().getUTCFullYear() + 100)),\n weekStartsMonday = false,\n label, mandatory, tabIndex, helpText,\n path,\n timezoneOffset = 0,\n placeholder,\n onBlur,\n raw,\n disabled,\n level,\n daysFromNowShortcuts, // Uma array de números representando atalhos de dias a partir de agora, e.g. [0, 1, 3]\n monthsFromNowShortcuts, // Uma array de números representando atalhos de meses a partir de agora, e.g. [0, 1, 3]\n ...rest\n },\n maybeInputRef\n) => {\n\n const inputRef = useEnsureRef(maybeInputRef)\n\n const [formValue, setUnoffsetedFormValue, {hasErrors}] = useInput({path,...rest},raw)\n const setFormValue = (newV) => setUnoffsetedFormValue(_.isFinite(newV) && newV !== -1 ? newV - (timezoneOffset * 36e5) : newV)\n\n const popup = usePopupToggle()\n const calendarElement = useRef()\n\n const messages = useContext(StartlibsContext).dateMessages\n\n const time = Number(formValue)\n const offsetedTime = time + (timezoneOffset * 36e5)\n const [textValue, setRawTextValue] = useState(!isNaN(time) ? formatDate(new Date(offsetedTime), format, messages) : '')\n const prevValue = usePrevious(textValue)\n const [hasFormatErrors, setHasFormatErrors] = useState(false)\n\n useEffect(() => {\n if (textValue && prevValue && textValue.length > prevValue.length+1) {\n setTimeout(()=>inputRef.current.setSelectionRange(inputRef.current.value.length+1,inputRef.current.value.length+1),1);\n }\n },[textValue])\n\n const isShortcutsEnabled = !!daysFromNowShortcuts && daysFromNowShortcuts.length > 0 || !!monthsFromNowShortcuts && monthsFromNowShortcuts.length > 0;\n \n const setDateToNDaysFromNow = (daysFromNow) => {\n const date = new Date(now())\n date.setUTCDate(date.getUTCDate() + daysFromNow)\n setFormValue(date.getTime())\n updateText(date)\n }\n\n const setDateToNMonthsFromNow = (monthsFromNow) => {\n const date = new Date(now())\n date.setUTCMonth(date.getUTCMonth() + monthsFromNow)\n setFormValue(date.getTime())\n updateText(date)\n }\n\n const setTextValue = (textValue) => {\n const value = formValue === -1 || isNaN(formValue) ? now() : new Date(Number(formValue))\n const date = parseDate(textValue, value, format, messages)\n if (isNaN(date.getTime())) {\n const nextMonth = new Date(value)\n const closestLeapYear = new Date(value)\n nextMonth.setUTCMonth(value.getUTCMonth() + 1)\n closestLeapYear.setUTCFullYear(getClosestNextLeapYear(value.getUTCFullYear()))\n const nextMonthDate = parseDate(textValue, nextMonth, format, messages)\n const closestLeapYearDate = parseDate(textValue, closestLeapYear, format, messages)\n setRawTextValue(textValue)\n setHasFormatErrors(isNaN(nextMonthDate.getTime()) && isNaN(closestLeapYearDate))\n } else if (!inRange({min,max},date)) {\n setRawTextValue(textValue)\n setHasFormatErrors(true)\n setFormValue(-1)\n } else {\n setRawTextValue(textValue)\n setHasFormatErrors(false)\n setFormValue(date.getTime())\n }\n }\n\n const updateText = (date) => {\n setTextValue(formatDate(date, format, messages))\n setHasFormatErrors(false)\n }\n\n const setValue = (value) => {\n setFormValue(value)\n updateText(new Date(value))\n }\n\n const confirmValue = () => {\n popup.close()\n if (!textValue) {\n setFormValue(undefined)\n setHasFormatErrors(false)\n } else {\n const date = parseDate(textValue, new Date(formValue), format, messages, true)\n if (isNaN(date.getTime())) {\n setHasFormatErrors(true)\n setFormValue(-1)\n } else {\n updateText(date)\n }\n }\n }\n\n const _onBlur = (e) => {\n const currentTarget = e.currentTarget\n setTimeout(() => {\n if (!currentTarget.contains(document.activeElement)) {\n confirmValue()\n }\n callIfFunction(onBlur)\n }, 1)\n }\n\n const onKeyDown = (e) => {\n const isConfirm = e.key === 'Enter'\n if (Object.keys(KeyMapper()).indexOf(e.key) >= 0 || isConfirm) {\n if (popup.isOpen) {\n e.preventDefault()\n calendarElement.current.keyDown(e)\n }\n }\n if (e.key === 'Escape') {\n e.stopPropagation()\n popup.close()\n const date = new Date(formValue)\n if (!isNaN(date.getTime()))\n updateText(date)\n }\n }\n\n const refocus = (e) => inputRef.current.focus()\n\n const onClick = e => {\n if (disabled) return;\n e.stopPropagation()\n refocus()\n }\n\n const iconClick = e => {\n e.stopPropagation()\n if (popup.isOpen) {\n refocus()\n popup.close()\n } else {\n refocus()\n }\n }\n\n const stopFocusPropagation = (e) => e.stopPropagation()\n\n // const calendarValue = new Date(!isNaN(time) && formValue !== -1 ? offsetedTime : now())\n const calendarValue = new Date(!isNaN(time) && formValue !== -1 ? offsetedTime : nowTimeZoneAdjusted(timezoneOffset))\n calendarValue.setUTCHours(0, 0, 0)\n return <Field helpText={helpText} label={label} mandatory={mandatory} onClick={onClick} onFocus={popup.open} onBlur={_onBlur}>\n <InputAndIconWrapper>\n <TextInput\n raw\n disabled={disabled}\n type={getNumberInputType()}\n tabIndex={tabIndex}\n ref={inputRef}\n constraint={formatDateToPattern(format)}\n value={textValue}\n setValue={setTextValue}\n placeholder={placeholder}\n hasErrors={hasErrors || hasFormatErrors}\n onKeyDown={onKeyDown}\n />\n <DatePickerInputIcon tabIndex={-1} onFocus={stopFocusPropagation} disabled={disabled} onClick={iconClick} icon=\"calendar\" className={isShortcutsEnabled ? \"hasShortcuts\" : \"\"} />\n </InputAndIconWrapper>\n\n {(daysFromNowShortcuts?.length > 0 || monthsFromNowShortcuts?.length > 0) ? \n <ShortcutsWrapper>\n <span>Em:</span>\n {daysFromNowShortcuts?.map((daysFromNow) => (\n <span class=\"link\"\n key={`days-from-now-${daysFromNow}`}\n onClick={() => setDateToNDaysFromNow(daysFromNow)}\n disabled={disabled}\n >\n {daysFromNow} dia{daysFromNow > 1 ? 's' : ''}\n </span>\n ))}\n \n {monthsFromNowShortcuts?.map((monthsFromNow) => (\n <span class=\"link\"\n key={`months-from-now${monthsFromNow}`}\n onClick={() => setDateToNMonthsFromNow(monthsFromNow)}\n disabled={disabled}\n >\n {monthsFromNow} {monthsFromNow > 1 ? 'meses' : 'mês'}\n </span>\n ))}\n </ShortcutsWrapper>\n : null}\n \n {\n popup.isOpen &&\n <DatePickerCalendar\n raw\n min={min}\n max={max}\n level={level}\n weekStartsMonday={weekStartsMonday}\n messages={messages}\n ref={calendarElement}\n updateTransientValue={updateText}\n refocus={refocus}\n onSelectDay={popup.toggle}\n setValue={setValue}\n value={calendarValue.getTime()}\n />\n }\n </Field>\n})\n\n\nconst defaultProps = {\n format: 'dd/MM/yyyy',\n min: new Date(now().setUTCFullYear(now().getUTCFullYear() - 100)),\n max: new Date(now().setUTCFullYear(now().getUTCFullYear() + 100)),\n weekStartsMonday: false\n}\n\n\n\nclass RawDatePickerCalendar extends React.Component {\n\n static defaultProps = defaultProps\n\n constructor(props) {\n super(props)\n this.state = {level: this.props.level || CALENDAR_LEVEL_DAY, currentDate: new Date(props.value || now())}\n }\n\n element\n\n componentDidUpdate(prevProps) {\n if (prevProps.value !== this.props.value) {\n this.setState({\n currentDate: new Date(this.props.value)\n })\n }\n }\n\n setCurrentDatePlus = (n, type) => () => {\n const date = new Date(this.state.currentDate.getTime())\n switch (type) {\n case CALENDAR_LEVEL_DAY:\n date.setUTCDate(date.getUTCDate() + n)\n break\n case CALENDAR_LEVEL_MONTH:\n date.setUTCMonth(date.getUTCMonth() + n)\n break\n case CALENDAR_LEVEL_YEAR:\n date.setUTCFullYear(date.getUTCFullYear() + n)\n break\n default:\n break\n }\n this.props.updateTransientValue && this.props.updateTransientValue(date)\n this.setState({currentDate: date})\n }\n\n up = () => {\n this.setState({level: LEVELS[LEVELS.indexOf(this.state.level) + 1]})\n }\n\n\n keyDown = (e) => {\n const {level, currentDate} = this.state\n const keyMapper = KeyMapper(level)\n if (keyMapper[e.key]) {\n e.preventDefault()\n this.setCurrentDatePlus(keyMapper[e.key], level)()\n }\n if (e.key === 'Enter') {\n e.stopPropagation()\n e.preventDefault()\n this.handleChange(currentDate)\n }\n }\n\n handleChange = (date) => {\n this.props.setValue(date.getTime())\n if (this.state.level === CALENDAR_LEVEL_DAY && this.props.onSelectDay) {\n this.props.onSelectDay()\n }\n this.setState({level: LEVELS[Math.max(LEVELS.indexOf(this.state.level) - 1, 0)]})\n }\n\n getView = () => {\n switch (this.state.level) {\n case CALENDAR_LEVEL_DAY:\n return <Calendar {...this.props} {...this.state} handleChange={this.handleChange}\n changeCurrentDate={this.setCurrentDatePlus} up={this.up}/>\n case CALENDAR_LEVEL_MONTH:\n return <Months {...this.props} {...this.state} handleChange={this.handleChange}\n changeCurrentDate={this.setCurrentDatePlus} up={this.up}/>\n case CALENDAR_LEVEL_YEAR:\n return <Years {...this.props} {...this.state} handleChange={this.handleChange}\n changeCurrentDate={this.setCurrentDatePlus}/>\n default:\n return null\n }\n }\n\n setRef = (e) => {\n this.element = e\n }\n\n render() {\n return (\n <div ref={this.setRef} tabIndex={-1} onFocus={this.props.refocus} onKeyDown={this.keyDown}>\n {this.getView()}\n </div>\n )\n\n }\n}\nconst DatePickerCalendar = enhanceInput(RawDatePickerCalendar)\n\nfunction now() {\n const dt = new Date()\n dt.setUTCHours(0, 0, 0, 0)\n return dt\n}\n\nfunction nowTimeZoneAdjusted(timezoneOffset){\n const timezoneOffsetMilliseconds = timezoneOffset * 3600000; // 3600000 milliseconds in an hour\n const dt = new Date()\n dt.setTime(dt.getTime() + timezoneOffsetMilliseconds);\n dt.setUTCHours(0, 0, 0, 0)\n return dt;\n};\n\nfunction inRange(context, date) {\n return context.min <= date && context.max >= date\n}\n\nconst mapDays = (currentDate, dayOffset, fn) => {\n const month = []\n const iter = new Date(currentDate)\n iter.setUTCDate(1)\n let startDay = dayOffset + iter.getUTCDate() - iter.getUTCDay()\n if (startDay > 1 && startDay < 10) {\n startDay = startDay - 7\n }\n iter.setUTCDate(startDay)\n for (let week = 0; week < 6; week++) {\n for (let day = week * 7; day < (week * 7) + 7; day++) {\n month.push(fn(iter, startDay + day, day))\n iter.setUTCDate(iter.getUTCDate() + 1)\n }\n }\n return month\n}\nconst Calendar = ({messages, max, min, value, currentDate, weekStartsMonday, changeCurrentDate, handleChange, up}) => {\n const currentMonth = currentDate.getUTCMonth()\n const dayOffset = weekStartsMonday ? 1 : 0\n const today = now().getTime()\n const handleDateChange = (e) => {\n const date = new Date(currentDate)\n handleChange(new Date(date.setUTCDate(e.currentTarget.getAttribute('data-day'))))\n }\n const previousMonth = getUTCDateBefore(currentDate.getUTCFullYear(),currentDate.getUTCMonth())\n const nextMonth = getUTCDate(currentDate.getUTCFullYear(),currentDate.getUTCMonth()+1)\n return (\n <DatePickerContainer>\n <CalendarHeader>\n <NavigationButton disabled={!inRange({min,max},previousMonth)} onClick={changeCurrentDate(-1, CALENDAR_LEVEL_MONTH)}>\n <Icon icon=\"arrow-left-line\"/>\n </NavigationButton>\n <TitleButton onClick={up}>{messages('month', currentMonth)} {currentDate.getUTCFullYear()}</TitleButton>\n <NavigationButton disabled={!inRange({min,max},nextMonth)} onClick={changeCurrentDate(1, CALENDAR_LEVEL_MONTH)}>\n <Icon icon=\"arrow-right-line\"/>\n </NavigationButton>\n </CalendarHeader>\n <WeekHeader>\n {[0, 1, 2, 3, 4, 5, 6].map((day) =>\n <span key={day}>{messages('day', (day + dayOffset) % 7).slice(0, 3)}</span>\n )}\n </WeekHeader>\n <CalendarContentContainer>\n\n {mapDays(currentDate, dayOffset, (date, day, index) =>\n <DayItem\n index={index}\n key={date.getTime()}\n onClick={handleDateChange}\n data-day={day}\n isEdge={date.getUTCMonth() !== currentMonth}\n isCurrent={date.getTime() === currentDate.getTime()}\n isSelected={date.getTime() === value}\n isDisabled={!inRange({max, min}, date)}\n isToday={date.getTime() === today}\n >\n {date.getUTCDate()}\n </DayItem>\n )}\n </CalendarContentContainer>\n </DatePickerContainer>\n )\n}\n\nconst getBeginDate = (year,month) => new Date(year,month,1,0,0,0,0)\n\nconst Months = ({currentDate, messages, value, changeCurrentDate, handleChange, up, min, max}) => {\n const currentMonth = currentDate.getUTCMonth()\n const sameYear = currentDate.getUTCFullYear() === new Date(value).getUTCFullYear()\n const selectedMonth = sameYear ? currentDate.getUTCMonth() : undefined\n const handleMonthChange = (e) => {\n const date = new Date(currentDate)\n handleChange(new Date(date.setUTCMonth(e.currentTarget.getAttribute('data-month'))))\n }\n return (\n <DatePickerContainer>\n <CalendarHeader>\n <NavigationButton disabled={!inRange({min,max},getUTCDateBefore(currentDate.getUTCFullYear()))} onClick={changeCurrentDate(-1, CALENDAR_LEVEL_YEAR)}>\n <Icon icon=\"arrow-left-line\"/>\n </NavigationButton>\n <TitleButton onClick={up}>{currentDate.getUTCFullYear()}</TitleButton>\n <NavigationButton disabled={!inRange({min,max},getUTCDate(currentDate.getUTCFullYear()+1))} onClick={changeCurrentDate(1, CALENDAR_LEVEL_YEAR)}>\n <Icon icon=\"arrow-right-line\"/>\n </NavigationButton>\n </CalendarHeader>\n <CalendarContentContainer>\n {[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((month) =>\n <MonthItem\n disabled={!inRange({min,max},getUTCDate(currentDate.getUTCFullYear(),month)) && !inRange({min,max},getUTCDateBefore(currentDate.getUTCFullYear(),month+1))}\n onClick={handleMonthChange}\n key={month}\n data-month={month}\n index={month}\n isCurrent={currentMonth === month}\n isSelected={selectedMonth === month}\n >\n {messages('month', month).slice(0, 3)}\n </MonthItem>\n )}\n </CalendarContentContainer>\n </DatePickerContainer>\n )\n}\n\n// Given the specified context, produces an HTML string\n// representing months of the year.\n\nfunction mapYears(currentDate, fn) {\n const result = []\n const year = currentDate.getUTCFullYear()\n for (let i = 0; i < (4 * 3); i++) {\n result.push(fn(year - (year % 10) - 1 + i, i < 1 || i > 10, i))\n }\n return result\n}\n\nconst Years = ({value, currentDate, changeCurrentDate, handleChange, min, max}) => {\n const currentYear = currentDate.getUTCFullYear()\n const selectedYear = new Date(value).getUTCFullYear()\n const handleYearChange = (e) => {\n const date = new Date(currentDate)\n handleChange(new Date(date.setUTCFullYear(e.currentTarget.getAttribute('data-year'))))\n }\n return (\n <DatePickerContainer>\n <CalendarHeader>\n <NavigationButton disabled={!inRange({min,max},getUTCDateBefore(currentDate.getUTCFullYear()))} onClick={changeCurrentDate(-10, CALENDAR_LEVEL_YEAR)}>\n <Icon icon=\"arrow-left-line\"/>\n </NavigationButton>\n <TitleButton>{currentYear - (currentYear % 10)}-{currentYear - (currentYear % 10) + 9}</TitleButton>\n <NavigationButton disabled={!inRange({min,max},getUTCDate(currentDate.getUTCFullYear()+10))} onClick={changeCurrentDate(10, CALENDAR_LEVEL_YEAR)}>\n <Icon icon=\"arrow-right-line\"/>\n </NavigationButton>\n </CalendarHeader>\n <CalendarContentContainer>\n {mapYears(currentDate, (year, outside, i) =>\n <YearItem\n key={year}\n onClick={handleYearChange}\n disabled={!inRange({min,max},getUTCDate(year)) && !inRange({min,max},getUTCDateBefore(year+1))}\n data-year={year}\n index={i}\n isCurrent={year === currentYear}\n isSelected={year === selectedYear}\n isEdge={outside}\n >\n {year}\n </YearItem>\n )}\n </CalendarContentContainer>\n </DatePickerContainer>\n )\n}\n\nfunction getClosestNextLeapYear(year) {\n let y = isNaN(year) ? now().getUTCFullYear() : year\n while (!((y % 100 === 0) ? (y % 400 === 0) : (y % 4 === 0))) {\n y++\n }\n return y\n}\n","import {darken} from 'polished'\nimport React, {useEffect, useRef} from 'react'\nimport _ from 'lodash/fp'\nimport styled, {css} from 'styled-components'\n\nimport {callIfFunction, animationTiming, oneWayAnimation} from '@startlibs/utils'\nimport {useFormValue} from './Form'\nimport {useRefState, useRecycleFocus, useLazyConstant, useToggle} from '@startlibs/core'\nimport {willUseFlipSwitch, SwitchDiv} from '@startlibs/components'\nimport {media} from '@startlibs/utils';\n\nimport {Icon} from '@startlibs/components'\nimport { constrainEvent, getColor } from '@startlibs/utils';\nimport {useTransientErrorHelper} from './Errors'\n\n\nconst shouldPreventExpand = (e,fn) => !(e.target).closest('body,[data-expand=\"false\"],label,input,textarea,button').matches('body,[data-expand=\"true\"]')\n\nconst ExpandableBoxStyled = styled.div`\n padding: 1rem;\n border-radius: 8px;\n background: ${getColor('lightBluishGray')};\n font-size: 14px;\n outline: none;\n transition: background 0.2s linear;\n position: relative;\n ${props => props.small && `\n padding: 0.875rem 1rem;\n min-height: 3rem;\n `}\n ${props => props.collapsed ? css`\n cursor: pointer;\n padding-right: 3.25rem;\n :hover {\n background: ${props => darken(0.035, getColor('lightBluishGray')(props))};\n }\n :active {\n background: ${props => darken(0.05, getColor('lightBluishGray')(props))};\n transition: none;\n }\n `: css`\n padding: 1.5rem;\n ${media.max(340)`\n padding 1rem;\n `}\n ${props => props.fixMarginBottom && `\n padding-bottom: 0.5rem !important;\n `}\n `}\n & ~ & {\n margin-top: 0.75rem;\n }\n ${SwitchDiv} & {\n margin-top: 0.75rem;\n }\n`\nconst EditIcon = styled(Icon).attrs({icon:'edit', className: 'expandable-edit-icon'})`\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n right: -24px;\n color: rgba(0,0,0,0.25);\n font-size: 20px;\n`\nexport const checkErrors = (...checks) => (v,setErrors) => {\n const results = checks.map(c => c(v)).filter(Boolean)\n if (!results.length) { return true }\n const messages = results.filter(_.negate(_.isBoolean))\n if (messages.length) {\n setErrors(...messages)\n }\n return false\n}\n\nconst timing = animationTiming('0.25s ease-out')\nconst switchAnimation = oneWayAnimation('opacity: 1;transform:translateY(0);','opacity: 0;', 'opacity: 0; transform:translateY(30px);')\nconst AUTO_OPENED = {}\nlet hasAnyExpanded = 0\nexport const ExpandableBox = styled(({className, children, overflowEffect, recycleTab, escCancels, enterConfirms, withIcon = true, info, isOpen, openWhen, canExpand = _.identity, path, retargetFilter = (el) => el?.tagName?.toLowerCase() === \"button\", isValid = () => true, fixMarginBottom, animation = switchAnimation, animationTiming = timing}) => {\n const flipAnimation = useLazyConstant(willUseFlipSwitch)\n const [value,setValue,getValue] = useFormValue(path)\n const [_setErrors,clearErrors] = useTransientErrorHelper()\n const previousValue = useRefState()\n const isAutoOpened = useToggle(isOpen)\n const containerRef = useRef()\n\n const setErrors = (...errors) => {\n _setErrors(errors.length ? errors.map(k => _.isString(k) ? [k,''] : k) : [[path,'']])\n return true\n }\n\n const expand = useToggle(isOpen,(newV,prevV) => {\n if (newV === 0 || prevV === 0) { return }\n if (newV === false) {\n const result = isValid(getValue(),setErrors)\n if (result === true) {\n clearErrors()\n }\n return result\n }\n })\n\n const [firstFocus,lastFocus] = useRecycleFocus(containerRef,recycleTab && expand.isOpen, recycleTab)\n\n const openWhenResult = callIfFunction(openWhen)\n useEffect(() => {\n if (openWhenResult) {\n expand.open()\n }\n },[openWhenResult])\n\n\n useEffect(() => () => {\n if (expand.get() === 0) {\n expand.close()\n }\n },[expand.isOpen])\n useEffect(() => {\n if (expand.get() && !isAutoOpened.get()) {\n previousValue.set(getValue())\n hasAnyExpanded += 1\n return () => {\n hasAnyExpanded -= 1\n }\n }\n },[expand.isOpen,isAutoOpened.isOpen])\n\n const cancel = () => {\n setValue(previousValue.get())\n expand.close()\n }\n\n const utils = useLazyConstant(()=> ({close: constrainEvent(expand.close),setValue,cancel}))\n\n const onBlur = (e) =>{\n if (e.currentTarget !== e.relatedTarget && (!e.relatedTarget || !e.currentTarget.contains(e.relatedTarget))) {\n const retarget = callIfFunction(retargetFilter,e.relatedTarget)\n if (retarget === true) {\n e.target.focus()\n } else if (retarget === false) {\n expand.close()\n }\n }\n }\n\n const checkEscEnter = (e) => {\n if (e.key === 'Enter' && enterConfirms) {\n e.stopPropagation()\n e.preventDefault()\n expand.close()\n } else if (e.key === 'Escape' && escCancels) {\n e.stopPropagation()\n e.preventDefault()\n cancel()\n }\n }\n\n const onClick = (e) => !shouldPreventExpand(e) && callIfFunction(canExpand,e) && !hasAnyExpanded && expand.open()\n\n return <ExpandableBoxStyled\n className={className + (expand.isOpen && (enterConfirms || escCancels) ? \" JS-dialog-skip-evts\" : \"\")}\n ref={containerRef}\n tabIndex={-1}\n onBlur={onBlur}\n onFocus={isAutoOpened.close}\n collapsed={!expand.isOpen} fixMarginBottom={fixMarginBottom}\n onClick={onClick}\n onKeyDown={checkEscEnter}\n >\n {expand.isOpen && firstFocus}\n <FlipDiv\n key={expand.isOpen}\n overflowEffect={overflowEffect}\n useAnimation={flipAnimation}\n animation={animation}\n animationTiming={animationTiming}\n >{\n expand.isOpen ? callIfFunction(children,value,utils) : <>{callIfFunction(info, value, utils)}{withIcon && <EditIcon/>}</>\n }</FlipDiv>\n {expand.isOpen && lastFocus}\n </ExpandableBoxStyled>\n})`\n\n`\n\nconst overflowEffect = (element) => {\n if (!element?.offsetParent?.parentElement) { return }\n const parentDom = element.offsetParent.parentElement\n const previousOverflow = parentDom.style.overflow\n parentDom.style.overflow = 'hidden'\n return () => parentDom.style.overflow = previousOverflow\n}\n\nexport const PseudoExpandableBox = ({children, small, onClick}) => <ExpandableBoxStyled collapsed small={small} onClick={onClick}>\n <FlipDivStyle>\n {children}\n <EditIcon/>\n </FlipDivStyle>\n</ExpandableBoxStyled>\n\nconst FlipDivStyle = styled.div.attrs({className: 'expandable-flip-div'})`position: relative;`\n\nconst FlipDiv = ({useAnimation, animation, animationTiming, overflowEffect, ...props}) => {\n const ref = useRef()\n useAnimation(ref,null,null,{switchAnimation:animation,timing:animationTiming,effect:overflowEffect})\n return <FlipDivStyle {...props} ref={ref}/>\n}","import React, {useContext, useEffect, useRef, useState} from 'react'\nimport styled, {css} from 'styled-components'\nimport ContentEditable from 'react-contenteditable'\nimport {darken} from 'polished'\nimport _ from 'lodash/fp'\nimport {getColor, linkRegex, stopPropagation} from '@startlibs/utils'\nimport {StartlibsContext, useEnsureRef, useLazyConstant, useToggle, usePopupToggle, useRefState} from '@startlibs/core'\nimport {Errors} from './Errors'\nimport {Field} from './Field'\nimport {WithForm} from './Form'\nimport {TextInput} from './TextInput'\nimport {useInput} from './enhanceInput'\nimport {Button, Icon} from '@startlibs/components'\n\nconst InputIcon = styled(Icon)`\n position: absolute;\n outline: none;\n bottom: 0;\n font-size: 21px;\n line-height: 3rem;\n right: 0;\n width: 2rem;\n pointer-events: none;\n color: ${getColor('gray150')};\n`\n\nconst FORMAT_TOOLS = {\n 'bold': ['b', 'strong'],\n 'italic': 'i',\n 'underline': 'u',\n 'strikethrough': 'strike',\n 'link': 'a',\n 'insertUnorderedList': ['ul', 'li'],\n 'insertOrderedList': ['ol', 'li'],\n 'outdent': '',\n 'indent': 'blockquote',\n 'fontSizeUp': 'font',\n 'fontSizeDown': 'font'\n}\n\nconst TAG_TO_STYLE_PROPERTY = {\n 'b': 'fontWeight',\n 'strong': 'fontWeight',\n 'u': 'textDecoration',\n 'strike': 'textDecoration',\n 'font': 'fontSize',\n 'i': 'fontStyle'\n}\n\nlet GET_LIMITS_FONT_SIZE_PX = () => {\n const s = document.createElement('span')\n s.style.fontSize = 'medium'\n document.body.appendChild(s)\n const fontSize = parseInt(getComputedStyle(s).fontSize)\n document.body.removeChild(s)\n const limits = [fontSize * 3 / 5, fontSize * 3]\n GET_LIMITS_FONT_SIZE_PX = () => limits\n return limits\n}\n\nconst wrapWith = (el,wrapper) => {\n el.parentNode.insertBefore(wrapper, el);\n wrapper.appendChild(el)\n}\n\nconst FIX_STYLE = {\n 'fontWeight': (v, el) => {\n const intFontWeight = parseInt(window.getComputedStyle(el).fontWeight)\n return intFontWeight <= 400 ? 400 : 600\n },\n 'fontSize': (v, el) => {\n const [min, max] = GET_LIMITS_FONT_SIZE_PX()\n const intFontSize = parseInt(window.getComputedStyle(el).fontSize)\n return Math.min(max, Math.max(min, intFontSize)) + 'px'\n },\n 'textDecoration': (v,el) => {\n const values = v.split(' ').filter(v => v === 'underline' || v === 'line-through')\n if (values.indexOf('underline')>=0) {\n wrapWith(el,document.createElement('u'))\n }\n if (values.indexOf('line-through')>=0) {\n wrapWith(el,document.createElement('strike'))\n }\n return ''\n }\n}\n\nexport const RichTextContainer = styled.div`\n position:relative;\n width: 100%;\n border: 1px solid ${getColor('gray210')};\n border-radius: 8px;\n background: white;\n ${props => props.hasErrors && `border-color: ${getColor(props)('alert')}`};\n ${props => props.showToolbar && `\n ${ToolsContainer} {\n transition: 0.5s;\n max-height: 7.5rem;\n transition: 0.6s;\n pointer-events: auto;\n }\n `};\n ${props => props.focus && `\n border-color: ${getColor('gray180')};\n box-shadow: 0px 0px 0px 2px rgba(0,0,0,0.1);\n `}\n ${props => props.locked && css`\n padding-right: 2.25rem;\n background: rgba(0,0,0,0.075);\n `}\n ${props => props.linkColor && css`\n a, a:visited, a:focus, a:active {\n color: ${props.linkColor};\n }\n a:hover {\n color: ${darken(0.05, props.linkColor)};\n }\n `}\n ul {\n list-style-type: disc;\n }\n ul, ol {\n padding-inline-start: 25px;\n margin-block-start: 0.5em;\n margin-block-end: 0.5em;\n }\n`\n\nexport const RichTextInput = styled.div`\n font-size: 14px;\n color: ${getColor('gray60')};\n background: white;\n border-radius: 7px;\n > div {\n overflow: auto;\n width: 100%;\n outline: none;\n min-height: ${props=>props.minHeight || 60}px;\n padding: 0.7rem;\n }\n b, strong {\n font-weight: 600;\n }\n a {\n text-decoration: underline;\n }\n > div[contenteditable=true]:empty:before {\n content: attr(placeholder);\n color: rgba(0,0,0,0.3);\n }\n ${props => props.disabled && `\n &[disabled] {\n background: rgba(0, 0, 0, 0.075) !important;\n opacity: 0.75 !important;\n }\n `}\n`\n\nconst ToolsContainer = styled.div`\n background: ${getColor('lightBluishGray')};\n padding: 0 0.125rem;\n border-top-left-radius: 7px;\n border-top-right-radius: 7px;\n transition: 0.225s;\n max-height: 0;\n pointer-events: none;\n overflow: hidden;\n display: flex;\n align-items: center;\n`\n\nconst ToolButton = styled(Button)`\n min-height: 2rem;\n min-width: 2rem;\n background: transparent;\n box-shadow: none;\n margin: 0.25rem 0.125rem;\n & ~ & {\n margin-left: 0.125rem;\n }\n .icon {\n font-size: 23px;\n color: ${getColor('gray90')};\n position: absolute;\n top: 50%;\n left: 50%;\n -webkit-transform: translate(-50%,-50%);\n transform: translate(-50%,-50%);\n }\n &:hover, &.activated:hover {\n background: rgba(0,0,0,0.11);\n }\n &.activated {\n background: rgba(0,0,0,0.09);\n }\n &:focus:after {\n content: none;\n }\n`\n\nconst ToolSeparator = styled.span`\n border-left: 1px solid rgba(0,0,0,0.1);\n margin-left: 0.75rem;\n margin-right: 0.5rem;\n height: 1.5rem;\n`\n\nconst JS_CLASS = \"EDITOR--JS\"\n\nconst getNextRegularCharIndex = (text, offset, direction) => {\n const regex = /[A-Za-z0-9ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏàáâãäåæçèéêëìíîïÐÑÒÓÔÕÖØÙÚÛÜÝÞßðñòóôõöøùúûüýþÿ]/g\n let cursor = offset\n while ((text[cursor + direction] || '').match(regex)) {\n cursor += direction\n }\n return cursor\n}\n\nconst addHttp = (s) => {\n s = s.replace(/^\\s/, '')\n if (s.indexOf('http://') === 0 || s.indexOf('https://') === 0) {\n return s\n } else {\n return 'http://' + s\n }\n}\n\nconst getRightMostElement = (node) => {\n if (node.childNodes.length) {\n return getRightMostElement(node.childNodes[node.childNodes.length - 1])\n } else {\n return node\n }\n}\n\nconst setSelectionRange = (input, selectionStart, selectionEnd = 0) => {\n if (!input) return\n let range = document.createRange()\n let sel = window.getSelection()\n range.setStart(input, selectionStart)\n if (selectionEnd) {\n range.setEnd(input, selectionEnd)\n } else {\n range.collapse(true)\n }\n sel.removeAllRanges()\n sel.addRange(range)\n}\n\nconst cleanEditor = (editor, acceptedTags) => {\n Array.prototype.slice.call(editor.querySelectorAll('.Apple-interchange-newline')).forEach(el => el.remove())\n Array.prototype.slice.call(editor.querySelectorAll('iframe')).forEach(el => el.remove())\n\n const acceptedStyles = acceptedTags.map(t => TAG_TO_STYLE_PROPERTY[t]).filter(_.identity)\n\n const newSpace = document.createTextNode('\\u00A0')\n if (window.getSelection().rangeCount) {\n const container = window.getSelection().getRangeAt(0).startContainer\n if (container.nodeType === 3) {\n container.parentNode.insertBefore(newSpace, container.nextSibling)\n } else {\n container.appendChild(newSpace)\n }\n if (newSpace.previousSibling && newSpace.previousSibling.textContent === '\\u00A0') {\n newSpace.previousSibling.remove()\n }\n setSelectionRange(newSpace, 0)\n }\n\n const clean = (children) => {\n Array.prototype.slice.call(children).forEach(el => {\n try {\n if (el.nodeType === 3)\n return\n if (!el.tagName) {\n el.remove()\n return\n }\n let tagName = el.tagName.toLowerCase()\n const style = getComputedStyle(el)\n const rect = el.getBoundingClientRect()\n const isHidden = style.display === 'none' || rect.width === 0 || rect.height === 0\n if (isHidden && (el.children && !el.children.length) && tagName !== 'br') {\n el.remove()\n } else if (acceptedTags.indexOf(tagName) >= 0) {\n clean(el.childNodes)\n el.removeAttribute('class')\n if (tagName === 'a') {\n el.setAttribute('target', '_blank')\n }\n if (el.getAttribute('style')) {\n const usedStyles = _.toPairs(_.pick(acceptedStyles, el.style)).filter(([k, v]) => v !== \"\")\n const fixedStyle = _.fromPairs(usedStyles.map(([k, v]) => [k, (FIX_STYLE[k] || _.identity)(v, el)]))\n el.removeAttribute('style')\n Object.assign(el.style, fixedStyle)\n }\n } else if (tagName === 'a') {\n clean(el.childNodes)\n if (el.textContent !== el.href || el.textContent.length < 5)\n el.outerHTML = el.innerHTML\n } else {\n clean(el.childNodes)\n if (el.hasChildNodes()) {\n const newTagName = style.display === 'inline' ? 'span' : 'div'\n const newEl = document.createElement(newTagName)\n Array.prototype.slice.call(el.childNodes).forEach(child => newEl.appendChild(child))\n el.parentNode.replaceChild(newEl, el)\n } else {\n el.remove()\n }\n }\n } catch (e) {\n if (el && el.remove)\n el.remove()\n }\n })\n }\n clean(editor.childNodes)\n}\n\nconst insertToken = (node, offset) => {\n const parent = node.parentNode\n const token = document.createElement(\"span\")\n if (node.nodeType === Node.TEXT_NODE) {\n const splitted = node.splitText(offset)\n parent.insertBefore(token, splitted)\n } else {\n parent.insertBefore(token, node)\n }\n return token\n}\n\n/*\n* pagely reformat\n .replace(/^[a-z]/, function (e) {\n return e.toUpperCase()\n })\n* */\n\nconst parseAndExecCommand = (c) => {\n if (c === \"strikethrough\" || c === \"underline\") {\n document.execCommand('styleWithCSS', false, false)\n } else {\n document.execCommand('styleWithCSS', false, true)\n }\n if (c.indexOf('fontSize') === 0) {\n const direction = c.indexOf('Up') > 0 ? 1 : -1\n const newValue = Math.min(7, Math.max(1, parseInt(document.queryCommandValue('fontSize') || 3) + direction))\n document.execCommand('fontSize', false, newValue)\n } else {\n const sanitizedCommand = (c.indexOf(\"List\") >= 0 && document.queryCommandState(c)) ? 'outdent' : c // FIX CHROME HANGS when list is called and already active\n\n document.execCommand(sanitizedCommand)\n }\n}\n\nexport const RichText = ({path, inputRef, label, autoHideToolbar, autoFocus, disabled, minHeight, placeholder, className, formatTools = ['bold', 'italic', 'underline', 'strikethrough', 'separator', 'link'], reformatText = _.identity, mandatory, descText, helpText, linkColor, tabIndex = 1, value, setValue,raw, locked}) => {\n\n const linkPopup = usePopupToggle()\n\n const input = useEnsureRef(inputRef)\n const activeLinkNode = useRef()\n const container = useRef()\n const linkJustCreated = useRefState()\n\n // auto-hide needs\n const startSelectionToken = useRefState()\n const endSelectionToken = useRefState()\n const commands = useRefState([])\n const containerFocused = useToggle()\n\n const needsNormalize = useRefState()\n const alreadyCancelled = useRefState()\n\n // const [formValue, setFormValue] = useInput({path})\n const [formValue, _setFormValue, {hasErrors}] = useInput({path,value,setValue},raw)\n\n // const tempValue = useConstant(formValue)\n const tempValue = useRef(formValue)\n const setFormValue = (v) => {\n tempValue.current = v\n _setFormValue(v)\n }\n\n useEffect(() => {\n if((value === formValue) && (formValue !== tempValue)){\n tempValue.current = formValue\n }\n },[path])\n\n const [activatedTools, setActivatedTools] = useState({})\n\n const validElements = useLazyConstant(() => ['br', 'div', 'p', 'span'].concat(_.flatten(formatTools.map(tool => FORMAT_TOOLS[tool] || []))))\n\n useEffect(() => {\n cleanEditor(input.current, validElements)\n }, [])\n\n const focus = () => input.current && input.current.focus()\n\n // Foco inicial opcional (ex.: abrir a dialog já no campo de descrição). Em\n // rAF pra rodar depois que a dialog termina de montar e não perder o foco.\n useEffect(() => {\n if (autoFocus) {\n requestAnimationFrame(focus)\n }\n }, [])\n\n useEffect(() => {\n if (needsNormalize.get()) {\n input.current.normalize()\n needsNormalize.set(false)\n }\n })\n\n const triggerScrollForPanel = (d) => {\n requestAnimationFrame((time) => {\n if (time > d + 250) return\n window.dispatchEvent(new Event('scroll'))\n triggerScrollForPanel(d)\n }\n )\n }\n\n const containerFocus = () => {\n containerFocused.openWith(2)\n triggerScrollForPanel(Date.now())\n }\n\n const containerBlur = (e) => {\n if (containerFocused.isOpen !== 1) {\n containerFocused.close()\n triggerScrollForPanel(Date.now())\n }\n }\n\n\n const onBlur = (e) => {\n const newValue = input.current.textContent.length === 0 ? '' : input.current.innerHTML\n // Só reescreve se o conteúdo mudou de fato: focar/desfocar sem editar não pode\n // marcar o form como alterado (senão dispara a confirmação de descarte à toa).\n // textContent vazio equivale a valor ausente/'' do form.\n if (newValue !== (formValue || '')) {\n setFormValue(newValue)\n }\n }\n\n const keydownHandler = (e) => {\n if (containerFocused.isOpen === 2){\n if (formatTools.indexOf('link') < 0) {\n return\n }\n if((e.key === \"k\" && e.ctrlKey) || (e.key === \"k\" && e.metaKey)){\n e.preventDefault();\n execCommand(null,'link')\n }\n }\n }\n\n useEffect(() => {\n document.addEventListener('keydown',keydownHandler);\n return () => document.removeEventListener('keydown',keydownHandler);\n }, [containerFocused.isOpen])\n\n const execCommand = (e, command) => {\n if (command === 'link') {\n let nodeEl\n if (!isSelectionInsideRichTextEditor()) {\n let anchor = document.createElement('a')\n anchor.innerHTML = '&#8203;'\n input.current.appendChild(anchor)\n nodeEl = anchor\n } else {\n const range = window.getSelection().getRangeAt(0)\n const selectedNode = range.startContainer\n if (range.collapsed) {\n const start = getNextRegularCharIndex(selectedNode.textContent, range.startOffset, -1)\n const end = getNextRegularCharIndex(selectedNode.textContent, range.startOffset - 1, 1)\n if (start < range.startOffset && end > range.startOffset - 1) {\n range.setStart(selectedNode, start)\n range.setEnd(selectedNode, end + 1)\n }\n }\n const selectedEl = selectedNode.nodeType === Node.TEXT_NODE ? selectedNode.parentNode : selectedNode\n const parent = selectedEl.closest('a,.'+JS_CLASS)\n if (parent && parent.matches('a')) {\n nodeEl = parent\n } else {\n let anchor = document.createElement('a')\n anchor.innerHTML = '&#8203;'\n if (range.collapsed) {\n range.insertNode(anchor)\n } else {\n if (range.commonAncestorContainer === input.current) {\n range.setStart(range.endContainer,0)\n }\n document.execCommand('createLink', false, '_')\n anchor = window.getSelection().anchorNode\n }\n const parent = range.commonAncestorContainer.nodeType === 3 ? range.commonAncestorContainer.parentNode : range.commonAncestorContainer\n const links = parent.querySelectorAll(\"a[href='_']\")\n Array.from(links).slice(0,-1).forEach(removeLinkFromNode)\n nodeEl = _.last(links)\n nodeEl.setAttribute('href', ' ')\n }\n }\n tempValue.current = input.current.innerHTML\n openDialog(nodeEl)\n } else {\n if (!isSelectionInsideRichTextEditor()) {\n input.current.focus()\n const last = document.createTreeWalker(input.current, NodeFilter.SHOW_TEXT).lastChild()\n const range = document.createRange()\n range.selectNodeContents(last || input.current)\n range.collapse(false)\n const sel = window.getSelection()\n sel.removeAllRanges()\n sel.addRange(range)\n }\n document.execCommand(command)\n setFormValue(input.current.innerHTML)\n toggleButtonsState()\n focus()\n }\n }\n\n const isSelectionInsideRichTextEditor = () => {\n const range = window.getSelection().getRangeAt(0)\n if (!range) return false\n const el = range.startContainer\n if (!el) return false\n const node = el.closest ? el : (el.parentNode || document.body)\n return node.closest('.'+JS_CLASS) === input.current\n }\n\n\n const saveRichTextLink = ({linkUrl, linkText}) => {\n const currentActiveLinkNode = activeLinkNode.current\n currentActiveLinkNode.setAttribute('href', addHttp(linkUrl))\n currentActiveLinkNode.setAttribute('target', '_blank')\n if (currentActiveLinkNode.textContent !== linkText) {\n currentActiveLinkNode.innerText = linkText\n }\n linkPopup.close()\n setSelectionRange(currentActiveLinkNode.lastChild, currentActiveLinkNode.textContent.length, 0)\n focus()\n setFormValue(input.current.innerHTML)\n }\n\n const cancelRichTextLink = (e) => {\n if (alreadyCancelled.get()) return\n const currentActiveLinkNode = activeLinkNode.current\n const span = document.createElement('span')\n if (currentActiveLinkNode.nextSibling)\n (currentActiveLinkNode.parentNode).insertBefore(span, currentActiveLinkNode.nextSibling)\n else\n (currentActiveLinkNode.parentNode).append(span)\n setSelectionRange(span, 0, 0)\n focus()\n if (currentActiveLinkNode.getAttribute('href') === ' ') {\n removeLink(e)\n }\n alreadyCancelled.set(true)\n span.remove()\n if (input.current) {\n input.current.normalize()\n } else {\n needsNormalize.set(true)\n }\n linkPopup.close()\n }\n\n const handleKeyUp = (e) => {\n toggleButtonsState()\n setFormValue(reformatText(input.current.innerHTML))\n }\n\n const handleKeyDown = (e) => {\n /*if (linkJustCreated.current && e.which === 8) {\n linkJustCreated.current.outerHTML = linkJustCreated.current.innerHTML\n input.current.normalize()\n return\n }\n commands.set([])\n linkJustCreated.set(null)\n const selectedRange = window.getSelection().getRangeAt(0)\n if (!selectedRange) return\n const possibleTextNode = selectedRange.startContainer\n const node = possibleTextNode.nodeType === Node.TEXT_NODE ? possibleTextNode.parentNode : possibleTextNode\n const parent = node.closest('a,.'+JS_CLASS)\n if ((e.key === 'Enter' || e.which === 32) && parent && parent.matches('.'+JS_CLASS)) {\n const range = document.createRange()\n range.setEnd(selectedRange.startContainer, selectedRange.startOffset)\n range.setStart(selectedRange.startContainer, 0)\n traverseAndAddLink(range)\n }*/\n }\n\n const traverseAndAddLink = (range) => {\n const match = range.toString().match(/[\\s\\t\\n\\r]([^\\s\\t\\n\\r]*)$/)\n if (match) {\n if ((/^(https?:\\/\\/|www\\.)/).test(match[1]) && linkRegex.test(match[1])) {\n range.setStart(range.startContainer, (match).index + 1);\n (range.endContainer).splitText(range.endContainer.textContent.length - 1)\n const newNode = document.createElement('a')\n newNode.href = match[1]\n newNode.appendChild(range.extractContents())\n range.insertNode(newNode)\n window.getSelection().getRangeAt(0).setEndAfter(newNode)\n window.getSelection().getRangeAt(0).setStartAfter(newNode)\n linkJustCreated.set(newNode)\n }\n } else {\n const previous = getPreviousElement(range.startContainer)\n if (previous) {\n range.setStart(previous, 0)\n traverseAndAddLink(range)\n }\n }\n }\n\n const getPreviousElement = (node) => {\n if (node.previousSibling) {\n const rightMost = getRightMostElement(node.previousSibling)\n if (rightMost.nodeType === Node.TEXT_NODE) {\n return rightMost\n } else {\n return getPreviousElement(rightMost)\n }\n } else if (node.parentNode && node !== input.current) {\n return getPreviousElement(node.parentNode)\n } else {\n return null\n }\n }\n\n const handlePasteDrop = (e) => setTimeout(() => pasted(e), 1)\n\n const handleClick = (e) => {\n toggleButtonsState()\n const el = e.target.closest('a,.'+JS_CLASS)\n if (el && el.matches('a') && el.getAttribute('href')) {\n openDialog(el)\n }\n }\n\n const openDialog = (el) => {\n activeLinkNode.current = el\n alreadyCancelled.set(false)\n linkPopup.openWith({linkText: el.textContent, linkUrl: (el.getAttribute('href') || '').trim()})\n }\n\n\n const removeLinkFromNode = (node) => {\n node.outerHTML = node.innerHTML === '\\u200b' ? '' : node.innerHTML\n }\n\n const removeLink = (e) => {\n if (e) e.preventDefault()\n alreadyCancelled.set(true)\n removeLinkFromNode(activeLinkNode.current)\n linkPopup.close()\n if (input.current) {\n setFormValue(input.current.innerHTML)\n input.current.normalize()\n }\n }\n\n const pasted = (e) => {\n cleanEditor(input.current, validElements)\n }\n\n const toggleButtonsState = () => {\n return setActivatedTools(_.zipObject(formatTools,formatTools.map((t)=>window.document.queryCommandState(t))))\n }\n\n const toolButton = (tool) => <ToolButton\n key={tool}\n tabIndex={-1}\n onClick={(e) => execCommand(e, tool)}\n className={'button exec-command rich-text-button only-icon ' + (activatedTools[tool] ? 'activated' : '')}\n type=\"button\"\n >\n <span className={'icon icon-' + tool}/>\n </ToolButton>\n\n const richTextElement = <RichTextContainer\n linkColor={linkColor}\n ref={container}\n onFocus={containerFocus}\n onBlur={containerBlur}\n focus={containerFocused.isOpen}\n showToolbar={!disabled & !autoHideToolbar || containerFocused.isOpen}\n className={className}\n >\n <ToolsContainer className=\"rich-text-tools\">\n {formatTools.map((t, i) => t === 'separator' ? <ToolSeparator className=\"separator\"\n key={\"separator-\" + i}/> : toolButton(t))}\n </ToolsContainer>\n <RichTextInput>\n <ContentEditable\n className={JS_CLASS}\n innerRef={input}\n html={tempValue.current || \"\"}\n onBlur={onBlur}\n onClick={handleClick}\n onKeyUp={handleKeyUp}\n onKeyDown={handleKeyDown}\n onPaste={handlePasteDrop}\n onDrop={handlePasteDrop}\n tabIndex={tabIndex}\n disabled={disabled}\n minHeight={minHeight}\n placeholder={placeholder}\n />\n </RichTextInput>\n {locked && <InputIcon icon=\"lock\"/>}\n {\n linkPopup.isOpen &&\n <EditLinkPopup\n input={input}\n activeLinkNode={activeLinkNode}\n cancel={cancelRichTextLink}\n values={linkPopup.isOpen}\n removeLink={removeLink}\n saveLink={saveRichTextLink}\n />\n }\n </RichTextContainer>\n return (label\n ? <Field labelClick={focus} descText={descText} helpText={helpText} label={label} mandatory={mandatory}>\n {richTextElement}\n </Field>\n : richTextElement\n )\n}\n\nconst EditLinkPopup = ({cancel, removeLink, activeLinkNode, input, saveLink, values}) => {\n const linkPopup = useRef()\n const formRef = useRef()\n const linkTextRef = useRef()\n const linkUrlRef = useRef()\n const LABELS = useContext(StartlibsContext).labels.RichText\n\n\n const preValidation = (formValues) => {\n let errors\n if (!formValues.linkText) {\n errors = {'linkText': [LABELS.linkTextError]}\n }\n if (!formValues.linkUrl || formValues.linkUrl === ' ' || !linkRegex.test(formValues.linkUrl.trim())) {\n errors = {...errors, 'linkUrl': [LABELS.linkUrlError]}\n }\n return errors\n }\n\n const checkEscOrEnter = (e) => {\n if (e.keyCode === 27) {\n e.stopPropagation()\n cancel(e)\n } else if (e.keyCode === 13) {\n e.preventDefault()\n e.stopPropagation()\n formRef.current.submitForm()\n }\n }\n\n useEffect(() => {\n const currentActiveLinkNode = activeLinkNode.current\n const currentLinkPopup = linkPopup.current\n const offsetLeft = currentActiveLinkNode.getClientRects().length > 1 ? input.offsetLeft : currentActiveLinkNode.offsetLeft\n const left = ((currentActiveLinkNode.offsetWidth) / 2) - (currentLinkPopup.offsetWidth / 2) + offsetLeft\n const top = (currentActiveLinkNode.offsetHeight) + currentActiveLinkNode.offsetTop\n Object.assign(currentLinkPopup.style, {\n 'position': 'absolute',\n 'left': left + 'px',\n 'top': top + 'px'\n })\n if (values.linkText) {\n linkUrlRef.current.focus()\n } else {\n linkTextRef.current.focus()\n }\n return cancel\n }, [])\n\n return <WithForm skipDom ref={formRef} action={saveLink} values={values} preValidation={preValidation}>{form =>\n <div onClick={stopPropagation()} ref={linkPopup} onKeyDown={checkEscOrEnter}\n className=\"popup rich-text-link-editor ignore-link\" contentEditable={false}>\n <TextInput\n ref={linkTextRef}\n mandatory\n path=\"linkText\"\n label={LABELS.popupLinkText}\n />\n <TextInput\n ref={linkUrlRef}\n mandatory\n path=\"linkUrl\"\n label={LABELS.popupLinkUrl}\n />\n <div className=\"popup-footer\">\n <Button className=\"remove-link\" icon=\"remove\" onClick={removeLink}>\n {LABELS.popupRemove}\n </Button>\n <Button onClick={cancel} tabIndex={0}>{LABELS.popupCancel}</Button>\n <Button highlight onClick={form.willSubmitForm}>{LABELS.popupConfirm}</Button>\n </div>\n <Errors/>\n </div>\n }</WithForm>\n}","import React from 'react'\nimport styled, {css} from 'styled-components'\nimport {Icon} from '@startlibs/components'\nimport {customTheme, getColor} from '@startlibs/utils'\nimport {Radiobox} from '../../Radiobox'\nimport {lighten, desaturate} from 'polished'\n\nexport const IconRadioBoxText = styled.div`\n flex-grow: 1;\n padding: 0 0.5rem 0.5rem;\n min-height: 2rem;\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n font-size: 12px;\n color: ${getColor('gray120')};\n ${props => props.checked && css`\n color: ${getColor('main')};\n `}\n ${props => props.highlightedDesc && css`\n background: ${getColor('gray240')};\n padding: 0.25rem 0.5rem;\n min-height: 3rem;\n ${props => props.checked && css`\n background: ${props => desaturate(0.3, lighten(0.52, getColor(\"main\")(props)))};\n `}\n `}\n`\n\nexport const IconRadioBoxIconContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n text-align: center;\n`\n\nconst Wrapper = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n cursor: pointer;\n border-radius: 8px;\n background-color: white;\n border: 1px solid ${getColor('gray210')};\n overflow: hidden;\n color: ${getColor('gray150')};\n\n ${Icon} {\n font-size: 100px;\n line-height: 50px;\n line-height: 76px;\n width: 100%;\n }\n\n ${props => props.checked && css`\n color: ${getColor('main')};\n border-color: ${getColor('main')};\n `}\n\n input {\n opacity: 0;\n position: absolute;\n left: -20000000px;\n }\n\n ${props => props.focused && `\n ${IconRadioBoxIconContainer}::after {\n content: '';\n position: absolute;\n top: -4px;\n right: -4px;\n left: -4px;\n bottom: -4px;\n border-radius: 10px;\n border: 3px solid rgba(0, 0, 0, 0.15);\n }`}\n\n ${customTheme(\"IconRadioBox\")}\n`\n\n\nexport const IconRadioBox = styled(({icon, label, highlightedDesc,...props}) =>\n <Radiobox {...props}>{({checked, focused, hasErrors, disabled}) =>\n <Wrapper checked={checked} focused={focused}>\n <IconRadioBoxIconContainer><Icon icon={icon}/></IconRadioBoxIconContainer>\n {checked}\n <IconRadioBoxText highlightedDesc={highlightedDesc} checked={checked}>\n {label}\n </IconRadioBoxText>\n </Wrapper>\n }</Radiobox>\n)`outline: none;`\n","import React from 'react'\nimport styled, {css} from 'styled-components'\nimport {Checkbox} from '../../Checkbox'\nimport {HelpText} from '../../Field'\nimport {customTheme, getColor} from '@startlibs/utils'\nimport {darken} from 'polished';\nimport { TransitionDiv } from '@startlibs/components';\nconst ToggleContainer = styled.div `\n`\n\nconst Toggle = styled.div `\n cursor: pointer;\n flex-shrink: 0;\n margin-left: 1rem;\n float: right;\n transition: 0.25s ease;\n width: 2.75rem;\n height: 18px;\n border-radius: 18px;\n background: ${props => props.checked ? getColor('main') : 'rgba(0,0,0,0.14)'};\n display: inline-block;\n position: relative;\n font-weight: 600;\n :after {\n content: '';\n transition: 0.25s ease;\n border-radius: 50%;\n display: block;\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n width: 14px;\n height: 14px;\n background: white;\n ${props => props.checked ? css`\n margin-left: -2px;\n left: 100%;\n transform: translate(-100%,-50%);\n ` : css`\n margin-left: 2px;\n left: 0;\n `}\n }\n ${customTheme('ToggleCheckbox')}\n`\nconst ToggleLabel = styled.div `\n flex-basis: 0;\n flex-grow: 1;\n display: inline-block;\n font-size: 15px;\n`\nconst DescText = styled.div `\n font-weight: 400;\n color: rgba(0,0,0,0.4);\n font-size: 12px;\n margin-top: 0.25rem;\n`\nconst ToggleCheckboxStyled = styled(Checkbox)`\n position:relative;\n border-radius: 8px;\n padding: 1rem;\n min-height: 42px;\n font-weight: 550;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: space-between; \n transition: background 0.2s linear;\n & ~ & {\n margin-top: -1rem;\n }\n ${props => props.margin ? css`\n margin-bottom: ${props => props.margin}px;\n `: css`\n margin-bottom: 1.5rem;\n & ~ & {\n margin-top: -1rem;\n }\n `}\n ${props => props.gray ? `\n background-color: rgba(0,0,0,0.06);\n :hover {\n background-color: rgba(0,0,0,0.08);\n }\n :active {\n background-color: rgba(0,0,0,0.1);\n transition: none;\n }\n `:css`\n background-color: ${getColor('lightBluishGray')};\n :hover {\n background: ${props => darken(0.035, getColor('lightBluishGray')(props))};\n }\n :active {\n background: ${props => darken(0.05, getColor('lightBluishGray')(props))};\n transition: none;\n }\n `}\n ${props => !props.noFocus && css`\n :focus-within {\n background-color: rgba(0,0,0,0.09);\n :after{\n content: '';\n pointer-events: none;\n position: absolute;\n top: -3px;\n right: -3px;\n left: -3px;\n bottom: -3px;\n border-radius: 9px;\n border: 2px solid rgba(0, 0, 0, 0.15);\n }\n }\n `}\n ${props => props.disabled && `\n opacity: 0.8;\n pointer-events:none;\n `}\n ${customTheme('ToggleCheckboxBox')}\n`\n\nexport const ToggleCheckbox = styled(({path, disabled, rightInfo, label, descText, helpText, tabIndex,noFocus, margin, className,...rest}) =>\n <ToggleCheckboxStyled\n path={path}\n tabIndex={tabIndex}\n disabled={disabled}\n noFocus={noFocus}\n className={className}\n margin={margin}\n {...rest}\n >{({disabled, checked, hasErrors, focused}) =>\n <>\n <ToggleLabel>\n {label}{helpText && <HelpText> {helpText}</HelpText>}\n <TransitionDiv block>{descText && <DescText>{descText}</DescText>}</TransitionDiv>\n </ToggleLabel>\n {rightInfo}\n <Toggle checked={checked}/>\n </>\n }\n </ToggleCheckboxStyled>\n)`\n`\n","import React from 'react'\nimport styled, {css} from 'styled-components'\nimport {Button} from '@startlibs/components'\nimport {ifProp, getColor, media, customTheme} from '@startlibs/utils'\nimport {Radiobox} from '../../Radiobox'\nimport {lighten, desaturate} from 'polished'\n\nexport const TabButton = styled(Button)`\n width:100%;\n margin-left: 0; \n padding: 9px 1rem;\n flex-grow: 1;\n background: ${props => props.white ? 'white' : getColor('gray240')};\n box-shadow: none;\n color: ${getColor('gray120')};\n border: 1px solid ${getColor('gray210')};\n border-left-width: 0;\n height: 100%;\n :hover {\n background: ${props => desaturate(0.6, lighten(0.5, getColor(\"main\")(props)))};\n }\n ${ifProp('checked', css`\n &, &:hover {\n border-color: ${getColor('main')};\n background-color: ${getColor('main')};\n border-left-width: 1px;\n color: #fff;\n cursor: default;\n }\n `)}\n \n ${props => props.isFirst && `\n border-left-width: 1px;\n `}\n ${props => props.isFirst!==undefined && !props.isFirst && `\n border-bottom-left-radius: 0;\n border-top-left-radius: 0;\n :focus:after{\n border-bottom-left-radius: 2px;\n border-top-left-radius: 2px;\n }\n `}\n ${props => props.isLast!==undefined && !props.isLast && `\n border-bottom-right-radius: 0;\n border-top-right-radius: 0;\n :focus:after{\n border-bottom-right-radius: 2px;\n border-top-right-radius: 2px;\n z-index: 2;\n }\n `} \n ${media.mobile`\n min-width: 0;\n ${props => props.icon ? `\n padding-left: 1.25rem;\n padding-right: 1rem;\n `:`\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n `}\n `} \n ${customTheme('TabButton')}\n`\n\nconst InnerButton = styled.a``\n\nexport const TabRadiobox = styled(({isLast, isFirst, label, white,icon,...props}) =>\n <Radiobox {...props}>{({disabled, checked, hasErrors, focused}) =>\n <TabButton innerAs={InnerButton} tabIndex={-1} focused={focused} isFirst={isFirst} isLast={isLast} checked={checked} disabled={disabled} white={white} icon={icon}>{label}</TabButton>\n }</Radiobox>\n)`\n display: inline-block;\n`","import React from 'react'\nimport styled, {css} from 'styled-components'\nimport {getColor, customTheme} from '@startlibs/utils'\nimport {Radiobox} from '../../Radiobox'\n\nexport const Tab = styled.div`\n width:100%;\n font-size: 16px;\n color: ${getColor(\"gray120\")};\n font-weight: 500;\n margin-left: 0; \n padding: 12px 2.5rem;\n flex-grow: 1;\n height: 100%;\n border-bottom: 1px solid ${getColor(\"gray210\")};\n position: relative;\n ${props => props.checked ? css`\n color: ${getColor(\"main\")};\n :after {\n content: '';\n position: absolute;\n bottom: -2px;\n left: 0;\n right: 0;\n height: 3px;\n background: ${getColor(\"main\")};\n border-radius: 10px;\n }\n `: css`\n cursor: pointer;\n :hover {\n color: ${getColor(\"gray90\")};\n }\n `}\n ${customTheme('CleanTabButton')}\n`\n\nconst InnerButton = styled.a``\n\nexport const CleanTabRadiobox = styled(({label, white,icon,...props}) =>\n <Radiobox {...props}>{({disabled, checked, hasErrors, focused}) =>\n <Tab innerAs={InnerButton} tabIndex={-1} focused={focused} checked={checked} disabled={disabled}>{label}</Tab>\n }</Radiobox>\n)`\n display: inline-block;\n`","import _ from 'lodash/fp'\nimport {callIfFunction} from '@startlibs/utils'\n\nconst error = 'Error'\n\nlet messages = {\n required: error,\n minLength: (n) => error,\n confirmPassword: error,\n confirmEmails: error,\n emailValidation: error,\n SERVER_ERROR: error\n}\n\nexport let SERVER_ERROR = messages.SERVER_ERROR\n\nexport const setErrorMessages = (newMessages) => messages = newMessages\n\nconst onEmpty = (success, errors) => Object.keys(errors).length ? errors : success\n\nexport const required = (s, k) => !s && messages.required\n\nexport const minLength = (n) => (s, k) => s && s.length < n && messages.minLength(n)\n\nexport const confirmPasswords = (passwordKey) => (confirm, k, props) => (props[passwordKey] || confirm) && props[passwordKey] !== confirm && messages.confirmPassword\nexport const confirmEmails = (emailKey) => (confirm, k, props) => (props[emailKey] || confirm) && props[emailKey] !== confirm && messages.confirmEmails\nexport const confirm = (sourceKey,messageKey,isEqual = (a,b) => a === b) => (confirm, k, props) => (props[sourceKey] || confirm) && !isEqual(props[sourceKey],confirm) && (messages[messageKey] || messageKey)\n\nconst emailRegex = /^(([^<>()[\\].,;:\\s@\"]+(\\.[^<>()[\\].,;:\\s@\"]+)*)|(\".+\"))@(([^<>()[\\].,;:\\s@\"]+\\.)+[^<>()[\\].,;:\\s@\"]{2,})$/i\nexport const emailValidation = (s, k) => !emailRegex.test(s) && messages.emailValidation\n\nexport const optional = (cb) => (v, ...args) => v ? cb(v, ...args) : false\n\nexport const buildValidation = (validations, custom = () => {\n}) => (values) =>\n onEmpty(false,\n {\n ..._.flow(\n _.entries,\n _.map(([k, v]) => [k, [].concat(v).map(fn => fn(_.get(k, values), k, values)).filter(_ => _)]),\n _.filter(([k, v]) => v.length),\n _.fromPairs\n )(callIfFunction(validations)),\n ...callIfFunction(custom, values)\n }\n )\n\nexport const buildAsyncValidation = (validations, custom = async () => {\n}) => async (props) =>\n onEmpty(false,\n {\n ... await _.flow(\n _.entries,\n _.map(([k, v]) => Promise.all([].concat(v).map(fn => fn(_.get(k, props), k, props))).then(v => [k,v.filter(Boolean)])),\n promiseArray => Promise.all(promiseArray).then((v) =>\n _.flow(\n _.filter(([k, v]) => v.length),\n _.fromPairs\n )(v)\n )\n )(await callIfFunction(validations)),\n ... await callIfFunction(custom, props)\n }\n )\n\n\nexport const responseFailure = (fn) => (v, response, {setErrors}) => {\n const errorSetter = setErrors\n const r = [].concat(response, v)\n const error = fn(...r)\n if (error === true) {\n } else if (error) {\n errorSetter(error)\n } else if (!_.get('[0].errors',response)) {\n errorSetter({\"\": [messages.SERVER_ERROR]})\n }\n}\n\nexport const validation = {\n SERVER_ERROR,\n setErrorMessages,\n required,\n minLength,\n confirmPasswords,\n confirmEmails,\n confirm,\n emailValidation,\n optional,\n buildValidation,\n buildAsyncValidation,\n responseFailure\n}"],"names":["errorsInsidePathSelector","createSelector","identityFn","path","entries","filter","_ref","_","p","indexOf","parseError","value","Array","isArray","map","v","formatPath","parseMultipleErrors","objOrArray","concat","apply","Object","_ref2","ErrorsContext","React","createContext","ErrorFilterContext","_identity","ErrorFilterProvider","Provider","useProvideErrors","errors","useToggle","addError","openWith","addErrors","newErrors","removeError","_ref3","removeErrorPath","_ref4","clearErrors","_ref5","setErrors","console","log","get","setError","errorPath","errorValue","memoizeErorrsInsidePath","useMemo","getErrorsInsidePath","utils","willRemoveError","insidePath","hasErrors","length","hasError","find","_ref6","paths","Set","isOpen","_ref7","providerValue","_objectSpread","useErrors","createElement","Errors","useHasError","useContext","has","useErrorsUtils","useTransientErrorHelper","showingErrors","useRef","clearCurrentErrors","current","forEach","_ref8","useEffect","_ref9","className","autoScroll","contextFilter","ref","uniqErrors","_uniqBy","_property","_ref0","prevErrors","usePreviousForEffect","_ref$current","changed","_difference","scrollIntoView","isElementInView","then","inView","behavior","TransitionDiv","block","Container","_ref1","Item","key","CloseIcon","onClick","displayName","styled","ul","withConfig","componentId","li","props","lighten","theme","colors","alert","getColor","customTheme","Icon","attrs","icon","useDraftConfirmation","submit","discard","meta","loading","dialog","draft","useRefToggle","promiseResolver","useRefState","startlibs","StartlibsContext","confirmation","dialogType","arguments","undefined","callback","callIfFunction","Promise","res","set","r","close","resolve","submitAndResolve","open","e","discardAndResolve","Dialog","dialogs","process","env","NODE_ENV","feedback","_extends","isLoading","cancel","getFormResponse","setter","_s","getFormValues","values","FormContext","ComponentMetaContext","useProvideValues","useSpreadValue","FormValueContext","willUseSpreadState","useProvideMeta","useMeta","useFormValue","useFormValueRef","useFormMeta","useForm","action","alwaysSave","skipDom","initialValues","transform","preValidation","loadingBeforeValidate","onSuccess","onFailure","onNonPreValidation","onChange","autoComplete","outerConfig","currentInitialValues","hasChanged","setHasChangedValue","useState","hasChangedRef","shouldResubmitForm","next","prev","errorsUtils","resubmittingForm","isUnmounted","useIsUnmounted","ErrorsProvider","errorsContext","registeredComponentMetas","componentMetasManager","useConsumerCatalog","confirmDraftContent","draftToggle","draftConfirmation","submitForm","isConfirming","handleValuesChange","setHasChanged","ValuesProvider","valuesManager","getValues","setValues","MetaProvider","metaManager","getMeta","setMeta","submittingFiles","confirm","validate","validation","verifyImagesAndSubmitForm","valuesWithUploadedImages","reduce","acc","file","image","optValues","config","ifUndefined","FormUploadingFileError","FormUploadingImageError","reject","unvalidated","request","untransformed","unrequested","response","rejection","_get","willSubmitForm","preventDefault","stopPropagation","inputs","setValue","_isFunction","_update","_set","ignoreCallback","valuesSetter","resetForm","resetField","initialValue","getOriginalValues","getOriginalValue","getValue","getTransformedValues","getHasChanged","useImperativeHandle","children","noValidate","onSubmit","WithForm","forwardRef","rest","_objectWithoutProperties","_excluded","Form","form","withForm","Component","withForm2","PathContext","enhancedInputDisplayName","skipValidation","formInput","undefinedPlaceholder","isChecked","truthSource","fieldValue","propPath","contextPath","formattedPath","formValue","setFormValue","element","opts","prevValue","transformedValue","setValueFromEventTarget","currentTarget","setFromField","toggle","toggleItem","itemToggle","name","rawInput","_errorUtils$paths","setValueProp","defaultValue","rawValue","setRawValue","errorUtils","useInput","raw","isRaw","EnhanceInput","enhanceInput","InputComponent","_objectDestructuringEmpty","Mandatory","span","mandatory","div","getMargin","Field","margins","Label","label","labelFontSize","isOnImage","HelpText","FieldDescription","BellowFieldDescription","helpText","descText","bellowDescText","labelClick","focused","onImage","Description","FieldBoxIcon","FieldBoxAction","FieldBoxHelpText","FieldBoxContent","DeleteButton","DropdownButton","DescText","FieldBox","actionLabel","rightContainer","remove","dropDownMenu","menuToggle","usePopupToggle","TextButton","constrainEvent","css","darken","media","mobile","_templateObject","_taggedTemplateLiteral","useConfirmDialog","args","toggleCallback","useDialog","closeDialog","addExtraProp","useConfirmDialogWithProps","overrideClose","useDialogWithToggle","ConfirmDialog","onClose","skipCloseIcon","cancelLabel","cancelButton","Button","tabIndex","title","keepOnSuccess","formRef","alternativeButton","notify","confirmChanges","auxiliarActions","stickyFooter","fullscreen","fullscreenOnMobile","skipErrors","hidden","skipCheckFocus","handleClose","useCallback","catch","error","_len","_key","setNotification","footer","Fragment","using","c","type","FormDialog","InputWithTextAfter","rounded","TextAfterLabel","InputWithIcon","InputIcon","_templateObject2","InputLoading","Loading","_templateObject3","Input","input","_templateObject4","hasTextBox","noFocus","locked","isTextArea","regularInputHeight","minHeight","autoResize","_templateObject5","hasIcon","_templateObject6","InputWithTextBox","textBoxBefore","textBoxAfter","TextBox","TextBoxBefore","TextBoxAfter","doAutoResize","scrollContainer","getScrollParent","lastTop","scrollTop","pageYOffset","style","height","scrollHeight","window","scroll","pageXOffset","useTextInput","onFocus","onBlur","autoSelectOnFocus","constraint","pattern","rawSetValue","rawHasErrors","transformOnBlur","showValue","deleteTrailing","setFocused","lastSelection","lastValue","handleOnFocus","setTimeout","select","handleOnBlur","setSelectionRange","document","activeElement","_ref$current2","handleChange","target","selectionEnd","validateConstraint","newValue","_isString","slice","_isRegExp","test","replace","_value$match","match","join","number","parseFloat","commas","split","fixedNumber","toFixed","digitsToPattern","toUpperCase","parseInt","resultHour","intToHour","val","result","isNaN","TextInput","forwardedRef","textAfter","fieldClassName","FieldType","margin","textarea","autoFocus","_excluded2","useEnsureRef","events","inputTag","focusInput","focus","wrapInput","as","isTouchDevice","rows","wrappedInput","absolute","size","FloatingFieldType","FloatLabelTextInput","FileInput","WithImageInput","multiple","_stubFalse","onChangeFile","uploadFetcher","ajaxError","onTouchEnd","tempImage","setTempImage","getPath","str","fileIndex","imagePath","formImage","files","validations","Boolean","handleFileEvent","from","nativeEvent","dataTransfer","i","handleFile","eventTarget","getIndexedPath","oldUploadStatus","oldImage","oldImageHeight","oldImageWidth","oldFilename","objectUrl","URL","createObjectURL","onload","naturalWidth","imageWidth","naturalHeight","imageHeight","newValues","filename","_flow","_union","uploadStatus","placeholder","parentNode","click","src","handleClick","handleTouchEnd","WithFileInput","maxFiles","currentFileIndex","createGetIndexedPath","index","oldFile","uid","getUID","list","findIndex","f","_filter","HiddenInput","Checkbox","isList","disabled","inverted","testInvert","_onClick","isDefaultPrevented","readOnly","checked","ComboboxMenu","ContextListMenu","ListItem","withoutIcons","withWindowing","ComboboxInput","suggestive","isFocused","ComboboxDropdownIcon","FooterOptionsContainer","hasWindoning","ComboboxPlaceholder","ComboboxLoading","SEPARATOR","NO_DIGITABLE_FOUND","Combobox","getLabel","getLabelAs","getBoxLabelAs","getIcon","el","closest","body","options","autoOpenMenu","digitable","digitableConstraint","digitableAsOption","onDigitableChange","footerOptions","isOptionDisabled","menuRef","overrideSetValue","transformOnSelect","check","a","b","selectedElement","selectedElementIndex","fieldRef","windowingRef","skipFocus","skipHover","skipDigitableSetValue","listElement","container","keyState","contextMenu","hover","strongHover","scrollToVisibility","autoCompleteUID","useLazyConstant","confirmValue","digitableValue","digitableRef","ignoringFilter","setHover","useLayoutEffect","recenterScroll","makeOptionVisible","_container$current","toggleCombobox","useUpdateEffect","filteredOptions","normalizeText","includes","_sortBy","digitableOption","option","availableOptions","allOptions","withPlaceholder","getCurrentHeight","_listElement$current$","offsetHeight","querySelector","scrollToItem","_isFinite","getBoundingClientRect","bottom","innerHeight","currentScrollContainer","offsetTop","handleHover","digitableKeyDown","keyDown","getModifierState","prevKeyState","repeated","word","clearTimeout","timeout","labels","o","toLowerCase","goTo","currentIndex","direction","shiftKey","fnName","item","fromIndex","oldValue","previousIndex","newIndex","Math","min","max","createOption","ListSeparator","Option","setRef","onHover","onClickInput","_listElement$current","contains","_listElement$current2","relatedTarget","onKeyDown","comboboxIsOpen","ComboboxMenuContainer","WithIsSticky","willUseIsSticky","onMouseOver","ITEM_HEIGHT","positionInfo","positionPlaceholder","usePositioning","fill","on","getMenuHeight","slot","slotName","getDialogLayersSize","Fill","FixedSizeList","itemCount","itemSize","width","intersection","sentinel","isSticky","ComboboxWithCustom","valueOnCustom","customIndex","extra","customValue","_toPath","prevTitle","usePrevious","updateCustomValue","keyCode","titleOptions","maxLength","onKeyPress","ua","navigator","userAgent","isSafari","AutoCompleteInput","withDropdown","AutoCompletePlaceholder","AutoCompleteTextboxDiv","ContentEditable","AddedBox","RemoveIcon","AutoCompleteMenu","ContextMenu","AutoCompleteError","DropdownIconContainer","focusBeforeLast","call","querySelectorAll","firstChild","node","createTextNode","appendChild","textContent","selectionStart","range","createRange","sel","getSelection","setStart","removeAllRanges","addRange","AutoComplete","outerRef","AutoCompleteLi","Li","CompletedBox","onMouseUp","EditableInput","minQueryLength","ignoreCase","autoSelect","autoSelectEquals","fetchLimit","deleteOnBackspace","fetchSuggestions","rawFetchSuggestions","success","trim","clickOpensWhenEmpty","confirmIfNewKeys","confirmKeys","confirmIfValueKeys","getListItem","onAddValue","getUniqueKey","translatable","withoutField","autoCompleteBox","hoverIndex","cancelEditable","_setFormValue","formValueRef","localFormValue","setLocalFormValue","_last","updater","lastIsEditable","_isEqual","ErrorProvider","hooksRef","queries","suggestionsFetchCache","suggestionsLabelMapCache","lastSuggestionQuery","autoCompleteList","setAutoCompleteList","shouldFocusInput","recentlyAdded","editableIsEmpty","ignoreCaseIfNeeded","s","refreshSuggestions","justFetch","dropdownFetch","removeEditable","wait","noRepeatedList","q","prevQuery","lastFetch","fetch","suggestion","_without","confirmIfNew","addValue","fromBlur","suggestedValue","_concat","unset","firstIsEqual","validValue","uniqueKeyLabel","_getUniqueKey","tryOpenSuggestions","ValueItem","isEditable","autoHover","my","at","onMouseDown","cleanText","text","clean","isEditing","valueRef","AutoCompleteTextbox","constructor","state","deletePrev","getRangeAt","startContainer","startOffset","collapsed","previousSibling","evt","isContentEditable","innerText","onPaste","ev","clipboardData","getData","execCommand","shouldComponentUpdate","nextProps","event","CustomEvent","dispatchEvent","innerHTML","keys","k","componentDidUpdate","oldProps","render","_this$props","valueOrBlank","innerRef","html","FormValue","format","_isObject","IfFormValue","invert","doInvert","IfFormValueUpdate","updatePath","readValue","SwitchOnFormValue","off","isOn","mappedValue","onKey","SwitchDiv","FormMeta","IfFormMeta","_excluded3","LazyFormValues","currentValue","read","loaded","setLoaded","formUtils","refresh","addRootPath","errorRootPath","rootPath","EditableContext","ConfirmEditableBoxes","itemValidation","listValidation","submitAll","withLoading","editableBoxes","all","submitAllShared","submitAllStandalone","shared","standalone","lazyValue","hasModifiedBoxes","sharedBoxes","sharedBoxesManager","standaloneBoxes","standaloneBoxesManager","boxes","hasEditableBoxes","provide","cb","modifiedEditablesPath","modifiedEditableBoxes","modifiedValue","sharedWithForm","validated","box","newItem","wasModified","assign","newProps","edited","notValidated","handleSubmit","boxesAndResult","failed","methods","FlipDiv","useAnimation","EditableBoxPresentation","view","String","editingIsOpen","onOpen","onDelete","onCancel","onSave","onTouchStart","withDelete","withContextMenu","edit","isNew","saveLabel","submitRef","popup","editing","closeBox","params","handleCancel","handleDelete","tryClose","extraPath","toPath","otherProps","flipAnimation","willUseFlipSwitch","disabledClick","openBox","small","onlyIcon","fixDoubledLastMarginBottom","StartlibsConsumer","EditableBox","buttonRef","highlight","saveNew","save","SharedEditableTabBox","isSingle","checkIsNew","editableGroup","internalBox","pathRef","useRefMemo","oldItem","selfRef","skipReset","unregister","register","arrayPath","update","insertAt","original","unsetOrRemoveAt","lastKey","_ref10","_onClose","removeItem","menuId","_onCancel","Shared","Radiobox","CheckboxPseudoInput","ifProp","TextLabel","TextLabelContainer","CheckboxContent","framed","desktop","highlightSelected","desaturate","ultraHighlightSelected","SimpleCheckbox","isFirst","isLast","framedBoxes","CssCircle","RadioboxContent","SimpleRadiobox","InputboxGroup","column","SplitColumnsContainer","Children","count","Wrapper","toArray","child","arr","cloneElement","wide","unevenlyWide","horizontal","RadioboxGroup","CheckboxGroup","createCheckManager","lastSelected","itemOrItems","toggleValue","_isArray","items","intersects","_intersectionBy","_intersection","currentlySelected","_differenceBy","_uniq","getIndex","shiftSelect","availableItems","lastSelectedIndex","removing","firstIndex","lastIndex","_unionBy","CALENDAR_LEVEL_DAY","CALENDAR_LEVEL_MONTH","CALENDAR_LEVEL_YEAR","LEVELS","DatePickerContainer","CalendarHeader","CalendarContentContainer","WeekHeader","CalendarClickable","TitleButton","NavigationButton","CalendarContent","DayItem","MonthItem","YearItem","DatePickerInputIcon","InputAndIconWrapper","ShortcutsWrapper","KeyMapper","level","upDownSpacing","getUTCDate","year","month","date","hour","sec","ms","Date","UTC","getUTCDateBefore","DatePicker","maybeInputRef","now","setUTCFullYear","getUTCFullYear","weekStartsMonday","timezoneOffset","daysFromNowShortcuts","monthsFromNowShortcuts","inputRef","setUnoffsetedFormValue","newV","calendarElement","messages","dateMessages","time","Number","offsetedTime","textValue","setRawTextValue","formatDate","hasFormatErrors","setHasFormatErrors","isShortcutsEnabled","setDateToNDaysFromNow","daysFromNow","setUTCDate","getTime","updateText","setDateToNMonthsFromNow","monthsFromNow","setUTCMonth","getUTCMonth","setTextValue","parseDate","nextMonth","closestLeapYear","getClosestNextLeapYear","nextMonthDate","closestLeapYearDate","inRange","_onBlur","isConfirm","refocus","iconClick","stopFocusPropagation","calendarValue","nowTimeZoneAdjusted","setUTCHours","getNumberInputType","formatDateToPattern","class","DatePickerCalendar","updateTransientValue","onSelectDay","defaultProps","RawDatePickerCalendar","setCurrentDatePlus","n","currentDate","setState","up","keyMapper","getView","Calendar","changeCurrentDate","Months","Years","prevProps","dt","timezoneOffsetMilliseconds","setTime","context","mapDays","dayOffset","fn","iter","startDay","getUTCDay","week","day","push","currentMonth","today","handleDateChange","getAttribute","previousMonth","isEdge","isCurrent","isSelected","isDisabled","isToday","sameYear","selectedMonth","handleMonthChange","mapYears","currentYear","selectedYear","handleYearChange","outside","y","shouldPreventExpand","matches","ExpandableBoxStyled","fixMarginBottom","EditIcon","checkErrors","checks","results","_negate","_isBoolean","timing","animationTiming","switchAnimation","oneWayAnimation","hasAnyExpanded","ExpandableBox","overflowEffect","recycleTab","escCancels","enterConfirms","withIcon","info","openWhen","canExpand","retargetFilter","_el$tagName","tagName","isValid","animation","_setErrors","previousValue","isAutoOpened","containerRef","_len2","_key2","expand","prevV","firstFocus","lastFocus","useRecycleFocus","openWhenResult","retarget","checkEscEnter","PseudoExpandableBox","FlipDivStyle","effect","FORMAT_TOOLS","TAG_TO_STYLE_PROPERTY","GET_LIMITS_FONT_SIZE_PX","fontSize","getComputedStyle","removeChild","limits","wrapWith","wrapper","insertBefore","FIX_STYLE","fontWeight","intFontWeight","intFontSize","textDecoration","RichTextContainer","showToolbar","ToolsContainer","linkColor","RichTextInput","ToolButton","ToolSeparator","JS_CLASS","getNextRegularCharIndex","offset","regex","cursor","addHttp","setEnd","collapse","cleanEditor","editor","acceptedTags","prototype","acceptedStyles","t","newSpace","rangeCount","nodeType","nextSibling","rect","isHidden","display","childNodes","removeAttribute","setAttribute","usedStyles","_toPairs","_pick","fixedStyle","_fromPairs","href","outerHTML","hasChildNodes","newTagName","newEl","replaceChild","RichText","autoHideToolbar","formatTools","reformatText","linkPopup","activeLinkNode","containerFocused","needsNormalize","alreadyCancelled","tempValue","activatedTools","setActivatedTools","validElements","_flatten","tool","requestAnimationFrame","normalize","triggerScrollForPanel","d","Event","containerFocus","containerBlur","keydownHandler","ctrlKey","metaKey","addEventListener","removeEventListener","command","nodeEl","isSelectionInsideRichTextEditor","anchor","selectedNode","start","end","selectedEl","Node","TEXT_NODE","parent","insertNode","commonAncestorContainer","endContainer","anchorNode","links","removeLinkFromNode","openDialog","last","createTreeWalker","NodeFilter","SHOW_TEXT","lastChild","selectNodeContents","toggleButtonsState","saveRichTextLink","linkUrl","linkText","currentActiveLinkNode","cancelRichTextLink","append","removeLink","handleKeyUp","handleKeyDown","handlePasteDrop","pasted","_zipObject","queryCommandState","toolButton","richTextElement","onKeyUp","onDrop","EditLinkPopup","saveLink","linkTextRef","linkUrlRef","LABELS","formValues","linkTextError","linkRegex","linkUrlError","checkEscOrEnter","currentLinkPopup","offsetLeft","getClientRects","left","offsetWidth","top","contentEditable","popupLinkText","popupLinkUrl","popupRemove","popupCancel","popupConfirm","IconRadioBoxText","highlightedDesc","IconRadioBoxIconContainer","IconRadioBox","Toggle","ToggleLabel","ToggleCheckboxStyled","gray","ToggleCheckbox","rightInfo","TabButton","white","InnerButton","TabRadiobox","innerAs","Tab","CleanTabRadiobox","required","minLength","confirmPassword","confirmEmails","emailValidation","SERVER_ERROR","setErrorMessages","newMessages","onEmpty","confirmPasswords","passwordKey","emailKey","sourceKey","messageKey","isEqual","emailRegex","optional","buildValidation","custom","_entries","_map","buildAsyncValidation","promiseArray","responseFailure","errorSetter"],"mappings":"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"}