@startlibs/form 1.1.3 → 1.2.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/lib/AutoComplete.mjs +7 -7
  2. package/lib/AutoComplete.mjs.map +1 -1
  3. package/lib/Checkbox.mjs +4 -2
  4. package/lib/Checkbox.mjs.map +1 -1
  5. package/lib/Combobox.mjs +1 -1
  6. package/lib/Combobox.mjs.map +1 -1
  7. package/lib/DatePicker.mjs +25 -9
  8. package/lib/DatePicker.mjs.map +1 -1
  9. package/lib/Errors.mjs +20 -10
  10. package/lib/Errors.mjs.map +1 -1
  11. package/lib/ExpandableBox.mjs +1 -1
  12. package/lib/ExpandableBox.mjs.map +1 -1
  13. package/lib/Field.mjs +10 -5
  14. package/lib/Field.mjs.map +1 -1
  15. package/lib/FieldBox.mjs +3 -3
  16. package/lib/FieldBox.mjs.map +1 -1
  17. package/lib/InputboxGroup.mjs +1 -1
  18. package/lib/InputboxGroup.mjs.map +1 -1
  19. package/lib/RichText.mjs +11 -6
  20. package/lib/RichText.mjs.map +1 -1
  21. package/lib/TextInput.mjs +4 -4
  22. package/lib/TextInput.mjs.map +1 -1
  23. package/lib/alt/checkbox/SimpleCheckbox.mjs +1 -1
  24. package/lib/alt/checkbox/SimpleCheckbox.mjs.map +1 -1
  25. package/lib/alt/checkbox/ToggleCheckbox.mjs +4 -3
  26. package/lib/alt/checkbox/ToggleCheckbox.mjs.map +1 -1
  27. package/lib/alt/radiobox/CleanTabRadiobox.mjs +1 -1
  28. package/lib/alt/radiobox/CleanTabRadiobox.mjs.map +1 -1
  29. package/lib/alt/radiobox/SimpleRadiobox.mjs +2 -2
  30. package/lib/alt/radiobox/SimpleRadiobox.mjs.map +1 -1
  31. package/lib/alt/radiobox/TabRadiobox.mjs +1 -1
  32. package/lib/alt/radiobox/TabRadiobox.mjs.map +1 -1
  33. package/lib/index.cjs +94 -51
  34. package/lib/index.cjs.map +1 -1
  35. package/lib/index.mjs +2 -2
  36. package/lib/withFormImageInput.mjs +1 -1
  37. package/lib/withFormImageInput.mjs.map +1 -1
  38. package/lib-yak/AutoComplete.mjs +705 -0
  39. package/lib-yak/AutoComplete.mjs.map +1 -0
  40. package/lib-yak/Checkbox.mjs +80 -0
  41. package/lib-yak/Checkbox.mjs.map +1 -0
  42. package/lib-yak/Combobox.mjs +652 -0
  43. package/lib-yak/Combobox.mjs.map +1 -0
  44. package/lib-yak/ComboboxWithCustom.mjs +77 -0
  45. package/lib-yak/ComboboxWithCustom.mjs.map +1 -0
  46. package/lib-yak/DatePicker.mjs +774 -0
  47. package/lib-yak/DatePicker.mjs.map +1 -0
  48. package/lib-yak/EditableBox.mjs +495 -0
  49. package/lib-yak/EditableBox.mjs.map +1 -0
  50. package/lib-yak/Errors.mjs +226 -0
  51. package/lib-yak/Errors.mjs.map +1 -0
  52. package/lib-yak/ExpandableBox.mjs +247 -0
  53. package/lib-yak/ExpandableBox.mjs.map +1 -0
  54. package/lib-yak/Field.mjs +93 -0
  55. package/lib-yak/Field.mjs.map +1 -0
  56. package/lib-yak/FieldBox.mjs +173 -0
  57. package/lib-yak/FieldBox.mjs.map +1 -0
  58. package/lib-yak/Form.mjs +322 -0
  59. package/lib-yak/Form.mjs.map +1 -0
  60. package/lib-yak/FormValue.mjs +111 -0
  61. package/lib-yak/FormValue.mjs.map +1 -0
  62. package/lib-yak/InputboxGroup.mjs +146 -0
  63. package/lib-yak/InputboxGroup.mjs.map +1 -0
  64. package/lib-yak/Radiobox.mjs +69 -0
  65. package/lib-yak/Radiobox.mjs.map +1 -0
  66. package/lib-yak/RichText.mjs +776 -0
  67. package/lib-yak/RichText.mjs.map +1 -0
  68. package/lib-yak/TextInput.mjs +589 -0
  69. package/lib-yak/TextInput.mjs.map +1 -0
  70. package/lib-yak/alt/checkbox/SimpleCheckbox.mjs +225 -0
  71. package/lib-yak/alt/checkbox/SimpleCheckbox.mjs.map +1 -0
  72. package/lib-yak/alt/checkbox/ToggleCheckbox.mjs +173 -0
  73. package/lib-yak/alt/checkbox/ToggleCheckbox.mjs.map +1 -0
  74. package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs +87 -0
  75. package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs.map +1 -0
  76. package/lib-yak/alt/radiobox/IconRadioBox.mjs +138 -0
  77. package/lib-yak/alt/radiobox/IconRadioBox.mjs.map +1 -0
  78. package/lib-yak/alt/radiobox/SimpleRadiobox.mjs +203 -0
  79. package/lib-yak/alt/radiobox/SimpleRadiobox.mjs.map +1 -0
  80. package/lib-yak/alt/radiobox/TabRadiobox.mjs +117 -0
  81. package/lib-yak/alt/radiobox/TabRadiobox.mjs.map +1 -0
  82. package/lib-yak/enhanceInput.mjs +131 -0
  83. package/lib-yak/enhanceInput.mjs.map +1 -0
  84. package/lib-yak/index.mjs +28 -0
  85. package/lib-yak/index.mjs.map +1 -0
  86. package/lib-yak/useConfirmDialog.mjs +117 -0
  87. package/lib-yak/useConfirmDialog.mjs.map +1 -0
  88. package/lib-yak/useDraftConfirmation.mjs +56 -0
  89. package/lib-yak/useDraftConfirmation.mjs.map +1 -0
  90. package/lib-yak/validation.mjs +91 -0
  91. package/lib-yak/validation.mjs.map +1 -0
  92. package/lib-yak/withFormImageInput.mjs +298 -0
  93. package/lib-yak/withFormImageInput.mjs.map +1 -0
  94. package/package.json +13 -3
  95. package/src/AutoComplete.jsx +12 -12
  96. package/src/Checkbox.jsx +2 -2
  97. package/src/Combobox.jsx +1 -1
  98. package/src/DatePicker.jsx +25 -22
  99. package/src/Errors.jsx +18 -8
  100. package/src/ExpandableBox.jsx +3 -3
  101. package/src/Field.jsx +9 -4
  102. package/src/FieldBox.jsx +6 -6
  103. package/src/IconRadioBoxOldHubt.jsx +1 -1
  104. package/src/InputboxGroup.jsx +1 -1
  105. package/src/RichText.jsx +17 -13
  106. package/src/TextInput.jsx +37 -26
  107. package/src/alt/checkbox/SimpleCheckbox.jsx +5 -5
  108. package/src/alt/checkbox/ToggleCheckbox.jsx +9 -8
  109. package/src/alt/radiobox/CleanTabRadiobox.jsx +2 -2
  110. package/src/alt/radiobox/SimpleRadiobox.jsx +7 -7
  111. package/src/alt/radiobox/TabRadiobox.jsx +4 -4
  112. package/src/withFormImageInput.jsx +2 -2
package/lib/index.cjs.map CHANGED
@@ -1 +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 [${dialog.isOpen}] 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 ContentEditableModule 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\n// Node/esbuild interop em .mjs devolve module.exports; Rollup devolve o default. Cobre os dois.\nconst ContentEditable = ContentEditableModule.default || ContentEditableModule\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 // Only a programmatic change (not the user typing) should move the caret to the end\n getSnapshotBeforeUpdate() {\n return this.props.value !== cleanText(this.el.innerText)\n }\n\n componentDidUpdate(oldProps, prevState, changedOutside) {\n let rewritten = false\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 rewritten = true\n }\n if (this.props.value !== oldProps.value && (changedOutside || rewritten) && document.activeElement === this.el) {\n setSelectionRange(this.el.firstChild || this.el, this.el.textContent.length + 1)\n }\n }\n\n setEl = ref => this.el = ref\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 // stable ref: a new function each render makes ContentEditable re-render and jump the caret to the end\n innerRef: this.setEl,\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 ContentEditableModule 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\n// Node/esbuild interop em .mjs devolve module.exports; Rollup devolve o default. Cobre os dois.\nconst ContentEditable = ContentEditableModule.default || ContentEditableModule\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","ContentEditable","ContentEditableModule","default","ua","navigator","userAgent","isSafari","AutoCompleteInput","withDropdown","AutoCompletePlaceholder","AutoCompleteTextboxDiv","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","setEl","onPaste","ev","clipboardData","getData","execCommand","shouldComponentUpdate","nextProps","event","CustomEvent","dispatchEvent","innerHTML","keys","k","getSnapshotBeforeUpdate","componentDidUpdate","oldProps","prevState","changedOutside","rewritten","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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"}
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 && <ErrorsContainer ref={ref} className={className}>\n {uniqErrors.map(([value]) => value && value !== true &&\n <ErrorsItem key={value}>\n {value}\n <ErrorsCloseIcon onClick={willRemoveError(value, path)}/>\n </ErrorsItem>\n )}\n </ErrorsContainer>}</TransitionDiv>\n}\n\nErrors.displayName = 'Errors'\n\n// Nomes próprios (não `Errors.Container = ...`) porque o yak resolve `${Errors.Item}` num outro\n// arquivo tentando avaliar o módulo inteiro de `Errors` (um componente React de verdade, com\n// hooks) em tempo de build — e falha (\"rename Errors.mjs so its exports run at build time (or\n// replace Errors.Item with a literal value)\"). Um export próprio resolve direto, sem depender do\n// componente. `Errors.Container`/`Errors.Item`/`Errors.CloseIcon` continuam existindo (uso\n// interno e compatibilidade de quem já importa `Errors` e lê essas propriedades).\nexport const ErrorsContainer = styled.ul`\n list-style-type: none;\n margin: 0;\n padding: 0;\n `\n\nexport const ErrorsItem = 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 `\nexport const ErrorsCloseIcon = 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\nErrors.Container = ErrorsContainer\nErrors.Item = ErrorsItem\nErrors.CloseIcon = ErrorsCloseIcon\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 [${dialog.isOpen}] 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`\n// Nome próprio (não só `Field.Label = ...`): TextInput.jsx usa `${Field.Label}` como seletor\n// (FloatingFieldType) num ARQUIVO DIFERENTE, e o yak tenta resolver isso avaliando o módulo\n// inteiro de `Field` (um componente React de verdade) em tempo de build — falha com um\n// `undefined` na saída (mesmo problema do Errors.Item, ver Errors.jsx). `Field.Label` continua\n// existindo (uso interno e compatibilidade).\nexport const FieldLabel = 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 <FieldLabel {...rest} onClick={labelClick} labelFontSize={labelFontSize}>\n {label}{mandatory && <Mandatory mandatory={mandatory}>*</Mandatory>}\n {helpText && <HelpText> {helpText}</HelpText>}\n {descText && <FieldDescription>{descText}</FieldDescription>}\n </FieldLabel>\n }\n {children}\n {bellowDescText && <BellowFieldDescription>{bellowDescText}</BellowFieldDescription>}\n </Container>\n)\n\nField.Label = FieldLabel\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, FieldLabel} 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\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 (Firefox <19) e :-ms-input-placeholder (Edge antigo) saíram: o browserslist\n do pacote já não cobre esses motores (firefox >= 60, edge >= 79, Chromium), e a versão\n single-colon confundia o lightningcss do yak, que compilava pra uma pseudo-classe diferente\n (placeholder-shown, do próprio input, em vez do texto do placeholder) — o color vazava pro\n input inteiro. Sem efeito em nenhum browser hoje suportado; nada muda no golden. */\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 `}\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 `}\n /* stylis (sc) emite @media depois das declarações planas, não na ordem do fonte; o yak\n preserva a ordem do fonte. Os blocos de media abaixo (fallback/isTextArea/hasIcon, nessa\n ordem) ficam DEPOIS de todas as declarações planas acima (locked/isTextArea/rounded/hasIcon,\n na mesma ordem do fonte original) pros dois modos baterem — lição do grupo 12: fallback\n antes do bloco de media. As partes de media de isTextArea e hasIcon saíram de dentro dos\n blocos acima (que continuam só com a parte plana, na posição original) e viraram\n interpolações próprias aqui, na mesma ordem relativa de antes (media geral, depois\n isTextArea, depois hasIcon), pra não mudar o resultado em nenhum dos dois modos. */\n ${media.mobile`\n height: 42px;\n padding: 0 1rem;\n @supports (-webkit-touch-callout: none) {\n font-size: 16px;\n }\n `}\n ${props => props.isTextArea && css`\n ${media.mobile`\n padding: 1rem;\n ${props => props.regularInputHeight && 'min-height: 42px;'}\n `}\n `}\n ${props => props.hasIcon && css`\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 ${FieldLabel} {\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, style, 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} style={style}>\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 ContentEditableModule from 'react-contenteditable'\nimport {useRefState, useToggle, useEnsureRef} from '@startlibs/core'\nimport {ContextMenu, Li, ListItem, Loading, Icon} from '@startlibs/components'\nimport {Errors, ErrorsCloseIcon, ErrorsItem, 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\n// Node/esbuild interop em .mjs devolve module.exports; Rollup devolve o default. Cobre os dois.\nconst ContentEditable = ContentEditableModule.default || ContentEditableModule\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ão depende de props; uma const de módulo com um css condicional (ternário)\n não é um mixin válido pro yak (\"not a valid css value or css mixin\"). Em posição de\n valor, uma arrow function comum (mesmo sem usar props) segue a mesma regra de qualquer\n valor dinâmico (R3). */\n vertical-align: ${() => isSafari ? '2px' : '-7px'};\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 ${ListItem} {\n > * {\n padding: 11px;\n }\n }\n`\n\nconst AutoCompleteError = styled(Errors)`\n ${ErrorsItem} {\n background: transparent;\n border: none;\n color: ${getColor('alert')};\n padding: 0;\n margin-top: 0.5rem;\n font-weight: 600;\n ${ErrorsCloseIcon} {\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 // Only a programmatic change (not the user typing) should move the caret to the end\n getSnapshotBeforeUpdate() {\n return this.props.value !== cleanText(this.el.innerText)\n }\n\n componentDidUpdate(oldProps, prevState, changedOutside) {\n let rewritten = false\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 rewritten = true\n }\n if (this.props.value !== oldProps.value && (changedOutside || rewritten) && document.activeElement === this.el) {\n setSelectionRange(this.el.firstChild || this.el, this.el.textContent.length + 1)\n }\n }\n\n setEl = ref => this.el = ref\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 // stable ref: a new function each render makes ContentEditable re-render and jump the caret to the end\n innerRef: this.setEl,\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);\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, insertKeyframes, 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\n// Nome fixo do @keyframes preservado: um `keyframes` do styled-components geraria um nome\n// com hash, diferente do atual \"datePickerFadeInDown\" (quebraria quem lê animationName). Por\n// isso o bloco fica fora de um template styled/css/keyframes, registrado pelo CSSOM (sem\n// nonce) no primeiro render do DatePickerContainer (mesmo padrão de components/src/Loading.jsx).\nconst injectDatePickerFadeInDownKeyframes = () => insertKeyframes('datePickerFadeInDown',\n 'from { opacity: 0; transform: translateY(-10px); pointer-events: none; } to { opacity: 1; transform: none; pointer-events: none; }')\n\n// styled(DatePickerContainerBase) mira num componente, não numa tag: ao contrário do antigo\n// styled.div, o styled-components não filtra prop inválida pra <div> nesse caso. O template\n// abaixo não lê nenhuma prop custom, então repassar tudo com {...props} é seguro.\nconst DatePickerContainerBase = React.forwardRef((props, ref) => {\n injectDatePickerFadeInDownKeyframes()\n return <div ref={ref} {...props}/>\n})\n\nconst DatePickerContainer = styled(DatePickerContainerBase)`\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`\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 ContentEditableModule 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\n// Node/esbuild interop em .mjs devolve module.exports; Rollup devolve o default. Cobre os dois.\nconst ContentEditable = ContentEditableModule.default || ContentEditableModule\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\n// Precisa vir antes de RichTextContainer: o yak resolve `${ToolsContainer}` (seletor dentro de\n// props.showToolbar) estaticamente lendo o módulo de cima pra baixo — em tempo de execução\n// (sc) a ordem nunca importou, já que o template só lê ToolsContainer dentro de um callback\n// (props => ...), chamado bem depois do módulo inteiro já ter sido avaliado.\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\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 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 {/* variante como classe: no yak, o override de theme.startlibs.ToggleCheckbox não lê props */}\n <Toggle checked={checked} className={checked ? 'styled-toggle-checkbox-checked' : undefined}/>\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","ErrorsContainer","_ref1","ErrorsItem","key","ErrorsCloseIcon","onClick","displayName","styled","ul","withConfig","componentId","li","props","lighten","theme","colors","alert","getColor","customTheme","Icon","attrs","icon","Container","Item","CloseIcon","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","FieldLabel","label","labelFontSize","isOnImage","HelpText","FieldDescription","BellowFieldDescription","helpText","descText","bellowDescText","labelClick","focused","onImage","Label","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","hasTextBox","noFocus","locked","isTextArea","regularInputHeight","minHeight","autoResize","hasIcon","_templateObject4","_templateObject5","_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","ContentEditable","ContentEditableModule","default","ua","navigator","userAgent","isSafari","AutoCompleteInput","withDropdown","AutoCompletePlaceholder","AutoCompleteTextboxDiv","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","setEl","onPaste","ev","clipboardData","getData","execCommand","shouldComponentUpdate","nextProps","event","CustomEvent","dispatchEvent","innerHTML","keys","k","getSnapshotBeforeUpdate","componentDidUpdate","oldProps","prevState","changedOutside","rewritten","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","injectDatePickerFadeInDownKeyframes","insertKeyframes","DatePickerContainerBase","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","ToolsContainer","RichTextContainer","showToolbar","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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"}