@startlibs/form 1.1.3 → 1.2.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/AutoComplete.mjs +7 -7
- package/lib/AutoComplete.mjs.map +1 -1
- package/lib/Checkbox.mjs +4 -2
- package/lib/Checkbox.mjs.map +1 -1
- package/lib/Combobox.mjs +1 -1
- package/lib/Combobox.mjs.map +1 -1
- package/lib/DatePicker.mjs +25 -9
- package/lib/DatePicker.mjs.map +1 -1
- package/lib/Errors.mjs +20 -10
- package/lib/Errors.mjs.map +1 -1
- package/lib/ExpandableBox.mjs +1 -1
- package/lib/ExpandableBox.mjs.map +1 -1
- package/lib/Field.mjs +10 -5
- package/lib/Field.mjs.map +1 -1
- package/lib/FieldBox.mjs +3 -3
- package/lib/FieldBox.mjs.map +1 -1
- package/lib/InputboxGroup.mjs +1 -1
- package/lib/InputboxGroup.mjs.map +1 -1
- package/lib/RichText.mjs +11 -6
- package/lib/RichText.mjs.map +1 -1
- package/lib/TextInput.mjs +4 -4
- package/lib/TextInput.mjs.map +1 -1
- package/lib/alt/checkbox/SimpleCheckbox.mjs +1 -1
- package/lib/alt/checkbox/SimpleCheckbox.mjs.map +1 -1
- package/lib/alt/checkbox/ToggleCheckbox.mjs +4 -3
- package/lib/alt/checkbox/ToggleCheckbox.mjs.map +1 -1
- package/lib/alt/radiobox/CleanTabRadiobox.mjs +1 -1
- package/lib/alt/radiobox/CleanTabRadiobox.mjs.map +1 -1
- package/lib/alt/radiobox/SimpleRadiobox.mjs +2 -2
- package/lib/alt/radiobox/SimpleRadiobox.mjs.map +1 -1
- package/lib/alt/radiobox/TabRadiobox.mjs +1 -1
- package/lib/alt/radiobox/TabRadiobox.mjs.map +1 -1
- package/lib/index.cjs +94 -51
- package/lib/index.cjs.map +1 -1
- package/lib/index.mjs +2 -2
- package/lib/withFormImageInput.mjs +1 -1
- package/lib/withFormImageInput.mjs.map +1 -1
- package/lib-yak/AutoComplete.mjs +705 -0
- package/lib-yak/AutoComplete.mjs.map +1 -0
- package/lib-yak/Checkbox.mjs +80 -0
- package/lib-yak/Checkbox.mjs.map +1 -0
- package/lib-yak/Combobox.mjs +652 -0
- package/lib-yak/Combobox.mjs.map +1 -0
- package/lib-yak/ComboboxWithCustom.mjs +77 -0
- package/lib-yak/ComboboxWithCustom.mjs.map +1 -0
- package/lib-yak/DatePicker.mjs +774 -0
- package/lib-yak/DatePicker.mjs.map +1 -0
- package/lib-yak/EditableBox.mjs +495 -0
- package/lib-yak/EditableBox.mjs.map +1 -0
- package/lib-yak/Errors.mjs +226 -0
- package/lib-yak/Errors.mjs.map +1 -0
- package/lib-yak/ExpandableBox.mjs +247 -0
- package/lib-yak/ExpandableBox.mjs.map +1 -0
- package/lib-yak/Field.mjs +93 -0
- package/lib-yak/Field.mjs.map +1 -0
- package/lib-yak/FieldBox.mjs +173 -0
- package/lib-yak/FieldBox.mjs.map +1 -0
- package/lib-yak/Form.mjs +322 -0
- package/lib-yak/Form.mjs.map +1 -0
- package/lib-yak/FormValue.mjs +111 -0
- package/lib-yak/FormValue.mjs.map +1 -0
- package/lib-yak/InputboxGroup.mjs +146 -0
- package/lib-yak/InputboxGroup.mjs.map +1 -0
- package/lib-yak/Radiobox.mjs +69 -0
- package/lib-yak/Radiobox.mjs.map +1 -0
- package/lib-yak/RichText.mjs +776 -0
- package/lib-yak/RichText.mjs.map +1 -0
- package/lib-yak/TextInput.mjs +589 -0
- package/lib-yak/TextInput.mjs.map +1 -0
- package/lib-yak/alt/checkbox/SimpleCheckbox.mjs +225 -0
- package/lib-yak/alt/checkbox/SimpleCheckbox.mjs.map +1 -0
- package/lib-yak/alt/checkbox/ToggleCheckbox.mjs +173 -0
- package/lib-yak/alt/checkbox/ToggleCheckbox.mjs.map +1 -0
- package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs +87 -0
- package/lib-yak/alt/radiobox/CleanTabRadiobox.mjs.map +1 -0
- package/lib-yak/alt/radiobox/IconRadioBox.mjs +138 -0
- package/lib-yak/alt/radiobox/IconRadioBox.mjs.map +1 -0
- package/lib-yak/alt/radiobox/SimpleRadiobox.mjs +203 -0
- package/lib-yak/alt/radiobox/SimpleRadiobox.mjs.map +1 -0
- package/lib-yak/alt/radiobox/TabRadiobox.mjs +117 -0
- package/lib-yak/alt/radiobox/TabRadiobox.mjs.map +1 -0
- package/lib-yak/enhanceInput.mjs +131 -0
- package/lib-yak/enhanceInput.mjs.map +1 -0
- package/lib-yak/index.mjs +28 -0
- package/lib-yak/index.mjs.map +1 -0
- package/lib-yak/useConfirmDialog.mjs +117 -0
- package/lib-yak/useConfirmDialog.mjs.map +1 -0
- package/lib-yak/useDraftConfirmation.mjs +56 -0
- package/lib-yak/useDraftConfirmation.mjs.map +1 -0
- package/lib-yak/validation.mjs +91 -0
- package/lib-yak/validation.mjs.map +1 -0
- package/lib-yak/withFormImageInput.mjs +298 -0
- package/lib-yak/withFormImageInput.mjs.map +1 -0
- package/package.json +13 -3
- package/src/AutoComplete.jsx +12 -12
- package/src/Checkbox.jsx +2 -2
- package/src/Combobox.jsx +1 -1
- package/src/DatePicker.jsx +25 -22
- package/src/Errors.jsx +18 -8
- package/src/ExpandableBox.jsx +3 -3
- package/src/Field.jsx +9 -4
- package/src/FieldBox.jsx +6 -6
- package/src/IconRadioBoxOldHubt.jsx +1 -1
- package/src/InputboxGroup.jsx +1 -1
- package/src/RichText.jsx +17 -13
- package/src/TextInput.jsx +37 -26
- package/src/alt/checkbox/SimpleCheckbox.jsx +5 -5
- package/src/alt/checkbox/ToggleCheckbox.jsx +9 -8
- package/src/alt/radiobox/CleanTabRadiobox.jsx +2 -2
- package/src/alt/radiobox/SimpleRadiobox.jsx +7 -7
- package/src/alt/radiobox/TabRadiobox.jsx +4 -4
- package/src/withFormImageInput.jsx +2 -2
package/lib/DatePicker.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.mjs","sources":["../src/DatePicker.jsx"],"sourcesContent":["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"],"names":["CALENDAR_LEVEL_DAY","CALENDAR_LEVEL_MONTH","CALENDAR_LEVEL_YEAR","LEVELS","DatePickerContainer","styled","div","withConfig","displayName","componentId","getColor","media","mobile","_templateObject","_taggedTemplateLiteral","CalendarHeader","CalendarContentContainer","WeekHeader","CalendarClickable","a","TitleButton","NavigationButton","Icon","CalendarContent","ifProp","css","props","darken","DayItem","index","MonthItem","YearItem","DatePickerInputIcon","disabled","_templateObject2","InputAndIconWrapper","ShortcutsWrapper","_templateObject3","KeyMapper","level","upDownSpacing","getUTCDate","year","month","arguments","length","undefined","date","hour","min","sec","ms","Date","UTC","getUTCDateBefore","DatePicker","forwardRef","_ref","maybeInputRef","format","now","setUTCFullYear","getUTCFullYear","max","weekStartsMonday","label","mandatory","tabIndex","helpText","path","timezoneOffset","placeholder","onBlur","raw","daysFromNowShortcuts","monthsFromNowShortcuts","rest","_objectWithoutProperties","_excluded","inputRef","useEnsureRef","formValue","setUnoffsetedFormValue","hasErrors","useInput","_objectSpread","setFormValue","newV","_isFinite","popup","usePopupToggle","calendarElement","useRef","messages","useContext","StartlibsContext","dateMessages","time","Number","offsetedTime","textValue","setRawTextValue","useState","isNaN","formatDate","prevValue","usePrevious","hasFormatErrors","setHasFormatErrors","useEffect","setTimeout","current","setSelectionRange","value","isShortcutsEnabled","setDateToNDaysFromNow","daysFromNow","setUTCDate","getTime","updateText","setDateToNMonthsFromNow","monthsFromNow","setUTCMonth","getUTCMonth","setTextValue","parseDate","nextMonth","closestLeapYear","getClosestNextLeapYear","nextMonthDate","closestLeapYearDate","inRange","setValue","confirmValue","close","_onBlur","e","currentTarget","contains","document","activeElement","callIfFunction","onKeyDown","isConfirm","key","Object","keys","indexOf","isOpen","preventDefault","keyDown","stopPropagation","refocus","focus","onClick","iconClick","stopFocusPropagation","calendarValue","nowTimeZoneAdjusted","setUTCHours","React","createElement","Field","onFocus","open","TextInput","type","getNumberInputType","ref","constraint","formatDateToPattern","icon","className","map","class","concat","DatePickerCalendar","updateTransientValue","onSelectDay","toggle","defaultProps","RawDatePickerCalendar","Component","constructor","element","setCurrentDatePlus","n","state","currentDate","setState","up","keyMapper","handleChange","Math","getView","Calendar","_extends","changeCurrentDate","Months","Years","setRef","componentDidUpdate","prevProps","render","enhanceInput","dt","timezoneOffsetMilliseconds","setTime","context","mapDays","dayOffset","fn","iter","startDay","getUTCDay","week","day","push","_ref2","currentMonth","today","handleDateChange","getAttribute","previousMonth","slice","isEdge","isCurrent","isSelected","isDisabled","isToday","_ref3","sameYear","selectedMonth","handleMonthChange","mapYears","result","i","_ref4","currentYear","selectedYear","handleYearChange","outside","y"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatePicker.mjs","sources":["../src/DatePicker.jsx"],"sourcesContent":["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"],"names":["CALENDAR_LEVEL_DAY","CALENDAR_LEVEL_MONTH","CALENDAR_LEVEL_YEAR","LEVELS","injectDatePickerFadeInDownKeyframes","insertKeyframes","DatePickerContainerBase","React","forwardRef","props","ref","createElement","_extends","DatePickerContainer","styled","withConfig","displayName","componentId","getColor","media","mobile","_templateObject","_taggedTemplateLiteral","CalendarHeader","div","CalendarContentContainer","WeekHeader","CalendarClickable","a","TitleButton","NavigationButton","Icon","CalendarContent","ifProp","css","darken","DayItem","index","MonthItem","YearItem","DatePickerInputIcon","disabled","_templateObject2","InputAndIconWrapper","ShortcutsWrapper","_templateObject3","KeyMapper","level","upDownSpacing","getUTCDate","year","month","arguments","length","undefined","date","hour","min","sec","ms","Date","UTC","getUTCDateBefore","DatePicker","_ref","maybeInputRef","format","now","setUTCFullYear","getUTCFullYear","max","weekStartsMonday","label","mandatory","tabIndex","helpText","path","timezoneOffset","placeholder","onBlur","raw","daysFromNowShortcuts","monthsFromNowShortcuts","rest","_objectWithoutProperties","_excluded","inputRef","useEnsureRef","formValue","setUnoffsetedFormValue","hasErrors","useInput","_objectSpread","setFormValue","newV","_isFinite","popup","usePopupToggle","calendarElement","useRef","messages","useContext","StartlibsContext","dateMessages","time","Number","offsetedTime","textValue","setRawTextValue","useState","isNaN","formatDate","prevValue","usePrevious","hasFormatErrors","setHasFormatErrors","useEffect","setTimeout","current","setSelectionRange","value","isShortcutsEnabled","setDateToNDaysFromNow","daysFromNow","setUTCDate","getTime","updateText","setDateToNMonthsFromNow","monthsFromNow","setUTCMonth","getUTCMonth","setTextValue","parseDate","nextMonth","closestLeapYear","getClosestNextLeapYear","nextMonthDate","closestLeapYearDate","inRange","setValue","confirmValue","close","_onBlur","e","currentTarget","contains","document","activeElement","callIfFunction","onKeyDown","isConfirm","key","Object","keys","indexOf","isOpen","preventDefault","keyDown","stopPropagation","refocus","focus","onClick","iconClick","stopFocusPropagation","calendarValue","nowTimeZoneAdjusted","setUTCHours","Field","onFocus","open","TextInput","type","getNumberInputType","constraint","formatDateToPattern","icon","className","map","class","concat","DatePickerCalendar","updateTransientValue","onSelectDay","toggle","defaultProps","RawDatePickerCalendar","Component","constructor","element","setCurrentDatePlus","n","state","currentDate","setState","up","keyMapper","handleChange","Math","getView","Calendar","changeCurrentDate","Months","Years","setRef","componentDidUpdate","prevProps","render","enhanceInput","dt","timezoneOffsetMilliseconds","setTime","context","mapDays","dayOffset","fn","iter","startDay","getUTCDay","week","day","push","_ref2","currentMonth","today","handleDateChange","getAttribute","previousMonth","slice","isEdge","isCurrent","isSelected","isDisabled","isToday","_ref3","sameYear","selectedMonth","handleMonthChange","mapYears","result","i","_ref4","currentYear","selectedYear","handleYearChange","outside","y"],"mappings":"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"}
|
package/lib/Errors.mjs
CHANGED
|
@@ -144,33 +144,43 @@ const Errors = _ref9 => {
|
|
|
144
144
|
}, [uniqErrors]);
|
|
145
145
|
return /*#__PURE__*/React.createElement(TransitionDiv, {
|
|
146
146
|
block: true
|
|
147
|
-
}, uniqErrors.length > 0 && /*#__PURE__*/React.createElement(
|
|
147
|
+
}, uniqErrors.length > 0 && /*#__PURE__*/React.createElement(ErrorsContainer, {
|
|
148
148
|
ref: ref,
|
|
149
149
|
className: className
|
|
150
150
|
}, uniqErrors.map(_ref1 => {
|
|
151
151
|
let [value] = _ref1;
|
|
152
|
-
return value && value !== true && /*#__PURE__*/React.createElement(
|
|
152
|
+
return value && value !== true && /*#__PURE__*/React.createElement(ErrorsItem, {
|
|
153
153
|
key: value
|
|
154
|
-
}, value, /*#__PURE__*/React.createElement(
|
|
154
|
+
}, value, /*#__PURE__*/React.createElement(ErrorsCloseIcon, {
|
|
155
155
|
onClick: willRemoveError(value, path)
|
|
156
156
|
}));
|
|
157
157
|
})));
|
|
158
158
|
};
|
|
159
159
|
Errors.displayName = 'Errors';
|
|
160
|
-
|
|
161
|
-
|
|
160
|
+
|
|
161
|
+
// Nomes próprios (não `Errors.Container = ...`) porque o yak resolve `${Errors.Item}` num outro
|
|
162
|
+
// arquivo tentando avaliar o módulo inteiro de `Errors` (um componente React de verdade, com
|
|
163
|
+
// hooks) em tempo de build — e falha ("rename Errors.mjs so its exports run at build time (or
|
|
164
|
+
// replace Errors.Item with a literal value)"). Um export próprio resolve direto, sem depender do
|
|
165
|
+
// componente. `Errors.Container`/`Errors.Item`/`Errors.CloseIcon` continuam existindo (uso
|
|
166
|
+
// interno e compatibilidade de quem já importa `Errors` e lê essas propriedades).
|
|
167
|
+
const ErrorsContainer = /*#__PURE__*/styled.ul.withConfig({
|
|
168
|
+
displayName: "Errors__ErrorsContainer",
|
|
162
169
|
componentId: "sc-1vuw7bx-0"
|
|
163
170
|
})(["list-style-type:none;margin:0;padding:0;"]);
|
|
164
|
-
|
|
165
|
-
displayName: "
|
|
171
|
+
const ErrorsItem = /*#__PURE__*/styled.li.withConfig({
|
|
172
|
+
displayName: "Errors__ErrorsItem",
|
|
166
173
|
componentId: "sc-1vuw7bx-1"
|
|
167
174
|
})(["background-color:", ";padding:1rem 3.5rem 1rem 1rem;border-radius:8px;border:1px solid ", ";color:", ";position:relative;text-align:left;font-size:13px;line-height:130%;& ~ &{margin-top:0.5rem;}", ""], props => lighten(0.42, props.theme.colors.alert), props => lighten(0.35, props.theme.colors.alert), getColor('alert'), customTheme('ErrorItem'));
|
|
168
|
-
|
|
175
|
+
const ErrorsCloseIcon = /*#__PURE__*/styled(Icon).attrs({
|
|
169
176
|
icon: 'x'
|
|
170
177
|
}).withConfig({
|
|
171
|
-
displayName: "
|
|
178
|
+
displayName: "Errors__ErrorsCloseIcon",
|
|
172
179
|
componentId: "sc-1vuw7bx-2"
|
|
173
180
|
})(["color:", ";font-weight:600;display:inline-block;background-color:", ";width:21px;height:21px;line-height:21px;text-align:center;border-radius:50%;cursor:pointer;position:absolute;top:10px;right:10px;font-size:14px;z-index:2;&:hover{background-color:", ";}"], getColor('alert'), props => lighten(0.35, props.theme.colors.alert), props => lighten(0.32, props.theme.colors.alert));
|
|
181
|
+
Errors.Container = ErrorsContainer;
|
|
182
|
+
Errors.Item = ErrorsItem;
|
|
183
|
+
Errors.CloseIcon = ErrorsCloseIcon;
|
|
174
184
|
|
|
175
|
-
export { ErrorFilterProvider, Errors, ErrorsContext, useErrors, useErrorsUtils, useHasError, useProvideErrors, useTransientErrorHelper };
|
|
185
|
+
export { ErrorFilterProvider, Errors, ErrorsCloseIcon, ErrorsContainer, ErrorsContext, ErrorsItem, useErrors, useErrorsUtils, useHasError, useProvideErrors, useTransientErrorHelper };
|
|
176
186
|
//# sourceMappingURL=Errors.mjs.map
|
package/lib/Errors.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Errors.mjs","sources":["../src/Errors.jsx"],"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"],"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"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Errors.mjs","sources":["../src/Errors.jsx"],"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"],"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"],"mappings":";;;;;;;;;;;;;;;AASA,MAAMA,wBAAwB,GAAGA,MAAMC,cAAc,CACnD,CAACC,UAAU,CAAC,CAAC,CAAC,EAAEA,UAAU,CAAC,CAAC,CAAC,CAAC,EAC9B,CAACC,IAAI,EAAEC,OAAO,KACZD,IAAI,GAAGC,OAAO,CAACC,MAAM,CAACC,IAAA,IAAA;AAAA,EAAA,IAAC,CAACC,CAAC,EAAEC,CAAC,CAAC,GAAAF,IAAA,CAAA;AAAA,EAAA,OAAK,CAACE,CAAC,GAAG,GAAG,EAAEC,OAAO,CAACN,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,CAAA;AAAA,CAAC,CAAA,GAAGC,OAC7E,CAAC,CAAA;AACD,MAAMM,UAAU,GAAGA,CAACC,KAAK,EAAER,IAAI,KAAKS,KAAK,CAACC,OAAO,CAACF,KAAK,CAAC,GAAGA,KAAK,CAACG,GAAG,CAACC,CAAC,IAAI,CAACA,CAAC,EAAEC,UAAU,CAACb,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAACQ,KAAK,EAAEK,UAAU,CAACb,IAAI,CAAC,CAAC,CAAC,CAAA;AAE9H,MAAMc,mBAAmB,GAAIC,UAAU,IAAK,EAAE,CAACC,MAAM,CAACC,KAAK,CAAC,EAAE,EAC5D,CAACR,KAAK,CAACC,OAAO,CAACK,UAAU,CAAC,GAAGA,UAAU,GAAGG,MAAM,CAACjB,OAAO,CAACc,UAAU,CAAC,EACjEJ,GAAG,CAACQ,KAAA,IAAA;AAAA,EAAA,IAAC,CAACnB,IAAI,EAAEQ,KAAK,CAAC,GAAAW,KAAA,CAAA;AAAA,EAAA,OAAKZ,UAAU,CAACC,KAAK,EAAER,IAAI,CAAC,CAAA;AAAA,CAAA,CACnD,CAAC,CAAA;AAEM,MAAMoB,aAAa,gBAAGC,KAAK,CAACC,aAAa,CAAC,EAAE,EAAC;AACpD,MAAMC,kBAAkB,gBAAGF,KAAK,CAACC,aAAa,CAAAE,SAAW,CAAC,CAAA;AAC7CC,MAAAA,mBAAmB,GAAGF,kBAAkB,CAACG,SAAQ;AAEjDC,MAAAA,gBAAgB,GAAGA,MAAM;AACpC,EAAA,MAAMC,MAAM,GAAGC,SAAS,CAAC,EAAE,CAAC,CAAA;EAG5B,MAAMC,QAAQ,GAAGA,CAACtB,KAAK,EAAER,IAAI,KAAK4B,MAAM,CAACG,QAAQ,CAACH,MAAM,IAAIA,MAAM,CAACZ,MAAM,CAACT,UAAU,CAACC,KAAK,EAAER,IAAI,CAAC,CAAC,CAAC,CAAA;AACnG,EAAA,MAAMgC,SAAS,GAAIC,SAAS,IAAKL,MAAM,CAACG,QAAQ,CAACH,MAAM,IAAIA,MAAM,CAACZ,MAAM,CAACF,mBAAmB,CAACmB,SAAS,CAAC,CAAC,CAAC,CAAA;AAEzG,EAAA,MAAMC,WAAW,GAAGA,CAAC1B,KAAK,EAAER,IAAI,KAAK4B,MAAM,CAACG,QAAQ,CAACH,MAAM,IAAIA,MAAM,CAAC1B,MAAM,CAACiC,KAAA,IAAA;AAAA,IAAA,IAAC,CAACvB,CAAC,EAAEP,CAAC,CAAC,GAAA8B,KAAA,CAAA;IAAA,OAAK,EAAE3B,KAAK,KAAKI,CAAC,IAAI,CAACP,CAAC,GAAG,GAAG,EAAEC,OAAO,CAACO,UAAU,CAACb,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;AAAA,GAAA,CAAC,CAAC,CAAA;AAE3J,EAAA,MAAMoC,eAAe,GAAIpC,IAAI,IAAK4B,MAAM,CAACG,QAAQ,CAACH,MAAM,IAAIA,MAAM,CAAC1B,MAAM,CAACmC,KAAA,IAAA;AAAA,IAAA,IAAC,CAACjC,CAAC,EAAEC,CAAC,CAAC,GAAAgC,KAAA,CAAA;AAAA,IAAA,OAAKxB,UAAU,CAACb,IAAI,CAAC,KAAKK,CAAC,CAAA;AAAA,GAAA,CAAC,CAAC,CAAA;AAC9G,EAAA,MAAMiC,WAAW,GAAItC,IAAI,IAAK4B,MAAM,CAACG,QAAQ,CAACH,MAAM,IAAI5B,IAAI,GAAG4B,MAAM,CAAC1B,MAAM,CAACqC,KAAA,IAAA;AAAA,IAAA,IAAC,CAACnC,CAAC,EAAEC,CAAC,CAAC,GAAAkC,KAAA,CAAA;AAAA,IAAA,OAAK,CAAClC,CAAC,GAAG,GAAG,EAAEC,OAAO,CAACO,UAAU,CAACb,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;GAAC,CAAA,GAAG,EAAE,CAAC,CAAA;EAE7I,MAAMwC,SAAS,GAAIP,SAAS,IAAK;AAC/BQ,IAAAA,OAAO,CAACC,GAAG,CAAC5B,mBAAmB,CAACmB,SAAS,CAAC,CAAC,CAAA;AAC3CL,IAAAA,MAAM,CAACG,QAAQ,CAACjB,mBAAmB,CAACmB,SAAS,CAAC,CAAC,CAAA;IAC/CL,MAAM,CAACe,GAAG,EAAE,CAAA;GACb,CAAA;EACD,MAAMC,QAAQ,GAAGA,CAACC,SAAS,EAAEC,UAAU,KAAKlB,MAAM,CAACG,QAAQ,CAACjB,mBAAmB,CAAC,CAAC,CAAC+B,SAAS,EAAEC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;AAE3G,EAAA,MAAMC,uBAAuB,GAAGC,OAAO,CAACnD,wBAAwB,EAAE,EAAE,CAAC,CAAA;AAErE,EAAA,MAAMoD,mBAAmB,GAAIjD,IAAI,IAAK+C,uBAAuB,CAAClC,UAAU,CAACb,IAAI,CAAC,EAAE4B,MAAM,CAACe,GAAG,EAAE,CAAC,CAAA;AAE7F,EAAA,MAAMO,KAAK,GAAG;IACZlB,SAAS;IACTF,QAAQ;IACRU,SAAS;IACTI,QAAQ;IACRN,WAAW;IACXJ,WAAW;AACXiB,IAAAA,eAAe,EAAEA,CAAC3C,KAAK,EAAE4C,UAAU,KAAK,MAAMlB,WAAW,CAAC1B,KAAK,EAAE4C,UAAU,CAAC;IAC5EhB,eAAe;IACfa,mBAAmB;IACnBI,SAAS,EAAGrD,IAAI,IAAKiD,mBAAmB,CAACjD,IAAI,CAAC,CAACsD,MAAM,GAAG,CAAC;AACzDC,IAAAA,QAAQ,EAAEA,CAACvD,IAAI,EAACQ,KAAK,KAAKyC,mBAAmB,CAACjD,IAAI,CAAC,CAACwD,IAAI,CAACC,KAAA,IAAA;AAAA,MAAA,IAAC,CAAC7C,CAAC,CAAC,GAAA6C,KAAA,CAAA;MAAA,OAAK7C,CAAC,KAAKJ,KAAK,CAAA;AAAA,KAAA,CAAA;GAC9E,CAAA;AAED,EAAA,MAAMkD,KAAK,GAAGV,OAAO,CAAC,MAAM,IAAIW,GAAG,CAAC/B,MAAM,CAACgC,MAAM,CAACjD,GAAG,CAACkD,KAAA,IAAA;AAAA,IAAA,IAAC,CAACzD,CAAC,EAAEJ,IAAI,CAAC,GAAA6D,KAAA,CAAA;AAAA,IAAA,OAAK7D,IAAI,CAAA;AAAA,GAAA,CAAC,CAACE,MAAM,CAACE,CAAC,IAAIA,CAAC,CAAC,CAAC,EAAE,CAACwB,MAAM,CAACgC,MAAM,CAAC,CAAC,CAAA;AAC5G,EAAA,MAAME,aAAa,GAAGd,OAAO,CAAC,MAAAe,aAAA,CAAA;IAAQL,KAAK;IAAE9B,MAAM,EAACA,MAAM,CAACgC,MAAAA;GAAWV,EAAAA,KAAK,CAAE,EAAE,CAACtB,MAAM,CAACgC,MAAM,CAAC,CAAC,CAAA;EAE/F,OAAO,CAACxC,aAAa,CAACM,QAAQ,EAAEoC,aAAa,EAAEZ,KAAK,CAAC,CAAA;AACvD,EAAC;AAEYc,MAAAA,SAAS,GAAGA,MAAM;EAC7B,MAAM,CAACtC,QAAQ,EAAClB,KAAK,EAAC0C,KAAK,CAAC,GAAGvB,gBAAgB,EAAE,CAAA;AAEjD,EAAA,OAAO,CAACuB,KAAK,eAAC7B,KAAA,CAAA4C,aAAA,CAACvC,QAAQ,EAAA;AAAClB,IAAAA,KAAK,EAAEA,KAAAA;GAAOa,eAAAA,KAAA,CAAA4C,aAAA,CAACC,MAAM,EAAC,IAAA,CAAW,CAAC,CAAC,CAAA;AAC7D,EAAC;AAEYC,MAAAA,WAAW,GAAInE,IAAI,IAAK;EACnC,MAAM;AAAC0D,IAAAA,KAAAA;AAAK,GAAC,GAAGU,UAAU,CAAChD,aAAa,CAAC,CAAA;EACzC,OAAOsC,KAAK,CAACW,GAAG,CAACxD,UAAU,CAACb,IAAI,CAAC,CAAC,CAAA;AACpC,EAAC;AACYsE,MAAAA,cAAc,GAAGA,MAAM;EAClC,OAAOF,UAAU,CAAChD,aAAa,CAAC,CAAA;AAClC,EAAC;AAEYmD,MAAAA,uBAAuB,GAAGA,MAAM;AAC3C,EAAA,MAAMrB,KAAK,GAAIoB,cAAc,EAAE,CAAA;AAC/B,EAAA,MAAME,aAAa,GAAIC,MAAM,CAAC,EAAE,CAAC,CAAA;EACjC,MAAMC,kBAAkB,GAAGA,MAAM;AAC/BF,IAAAA,aAAa,CAACG,OAAO,CAACC,OAAO,CAACC,KAAA,IAAA;AAAA,MAAA,IAAC,CAAC7E,IAAI,EAACQ,KAAK,CAAC,GAAAqE,KAAA,CAAA;MAAA,OAAK3B,KAAK,KAALA,IAAAA,IAAAA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEhB,WAAW,CAAC1B,KAAK,EAACR,IAAI,CAAC,CAAA;KAAC,CAAA,CAAA;IAC/EwE,aAAa,CAACG,OAAO,GAAG,EAAE,CAAA;GAC3B,CAAA;EACD,MAAMnC,SAAS,GAAIP,SAAS,IAAK;AAC7ByC,IAAAA,kBAAkB,EAAE,CAAA;IACpBxB,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,IAAAA,KAAK,CAAElB,SAAS,CAACC,SAAS,CAAC,CAAA;IAC3BuC,aAAa,CAACG,OAAO,GAAG1C,SAAS,CAAA;GACpC,CAAA;EACD6C,SAAS,CAAC,MAAM,MAAM;AACpBJ,IAAAA,kBAAkB,EAAE,CAAA;GACrB,EAAC,EAAE,CAAC,CAAA;AAEL,EAAA,OAAO,CAAClC,SAAS,EAACkC,kBAAkB,CAAC,CAAA;AACvC,EAAC;AAEYR,MAAAA,MAAM,GAAGa,KAAA,IAAyC;EAAA,IAAxC;IAAC/E,IAAI;IAACE,MAAM;IAAC8E,SAAS;AAAEC,IAAAA,UAAAA;AAAU,GAAC,GAAAF,KAAA,CAAA;EACxD,MAAM;IAAC9B,mBAAmB;AAAEE,IAAAA,eAAAA;AAAe,GAAC,GAAGiB,UAAU,CAAChD,aAAa,CAAC,CAAA;AACxE,EAAA,MAAM8D,aAAa,GAAGd,UAAU,CAAC7C,kBAAkB,CAAC,CAAA;AACpD,EAAA,MAAM4D,GAAG,GAAGV,MAAM,EAAE,CAAA;EAEpB,MAAM7C,MAAM,GAAG1B,MAAM,GAAG+C,mBAAmB,CAACjD,IAAI,CAAC,CAACE,MAAM,CAACA,MAAM,CAAC,GAAGgF,aAAa,CAACjC,mBAAmB,CAACjD,IAAI,CAAC,CAAC,CAAA;AAC3G,EAAA,MAAMoF,UAAU,GAAGC,OAAA,CAASC,SAAA,CAAW,CAAC,CAAC,EAAC1D,MAAM,CAAC,CAAC1B,MAAM,CAACqF,KAAA,IAAA;AAAA,IAAA,IAAC,CAAC3E,CAAC,CAAC,GAAA2E,KAAA,CAAA;AAAA,IAAA,OAAK3E,CAAC,CAAA;GAAC,CAAA,CAAA;AACpE,EAAA,MAAM4E,UAAU,GAAGC,oBAAoB,CAACL,UAAU,CAAC,CAAA;AACnDN,EAAAA,SAAS,CAAC,MAAM;AAAA,IAAA,IAAAY,YAAA,CAAA;AACd,IAAA,MAAMC,OAAO,GAAGC,WAAA,CAAaR,UAAU,EAACI,UAAU,CAAC,CAAA;AACnD,IAAA,IAAIP,UAAU,IAAIU,OAAO,CAACrC,MAAM,KAAAoC,YAAA,GAAIP,GAAG,CAACR,OAAO,MAAAe,IAAAA,IAAAA,YAAA,eAAXA,YAAA,CAAaG,cAAc,EAAE;MAC/DC,eAAe,CAACX,GAAG,CAACR,OAAO,CAAC,CAACoB,IAAI,CAAEC,MAAM,IAAK;QAC5C,IAAI,CAACA,MAAM,EAAE;AACXb,UAAAA,GAAG,CAACR,OAAO,CAACkB,cAAc,CAAC;AAACI,YAAAA,QAAQ,EAAE,QAAA;AAAQ,WAAC,CAAC,CAAA;AAClD,SAAA;AACF,OAAC,CAAC,CAAA;AACJ,KAAA;AACF,GAAC,EAAC,CAACb,UAAU,CAAC,CAAC,CAAA;AAEf,EAAA,oBAAO/D,KAAA,CAAA4C,aAAA,CAACiC,aAAa,EAAA;IAACC,KAAK,EAAA,IAAA;GAAEf,EAAAA,UAAU,CAAC9B,MAAM,GAAG,CAAC,iBAAIjC,KAAA,CAAA4C,aAAA,CAACmC,eAAe,EAAA;AAACjB,IAAAA,GAAG,EAAEA,GAAI;AAACH,IAAAA,SAAS,EAAEA,SAAAA;AAAU,GAAA,EACnGI,UAAU,CAACzE,GAAG,CAAC0F,KAAA,IAAA;AAAA,IAAA,IAAC,CAAC7F,KAAK,CAAC,GAAA6F,KAAA,CAAA;IAAA,OAAK7F,KAAK,IAAIA,KAAK,KAAK,IAAI,iBAClDa,KAAA,CAAA4C,aAAA,CAACqC,UAAU,EAAA;AAACC,MAAAA,GAAG,EAAE/F,KAAAA;AAAM,KAAA,EACpBA,KAAK,eACNa,KAAA,CAAA4C,aAAA,CAACuC,eAAe,EAAA;AAACC,MAAAA,OAAO,EAAEtD,eAAe,CAAC3C,KAAK,EAAER,IAAI,CAAA;AAAE,KAAC,CAC9C,CAAC,CAAA;GACf,CACe,CAAiB,CAAC,CAAA;AACrC,EAAC;AAEDkE,MAAM,CAACwC,WAAW,GAAG,QAAQ,CAAA;;AAE7B;AACA;AACA;AACA;AACA;AACA;MACaN,eAAe,gBAAGO,MAAM,CAACC,EAAE,CAAAC,UAAA,CAAA;EAAAH,WAAA,EAAA,yBAAA;EAAAI,WAAA,EAAA,cAAA;AAAA,CAIrC,CAAA,CAAA,CAAA,0CAAA,CAAA,EAAA;MAEUR,UAAU,gBAAGK,MAAM,CAACI,EAAE,CAAAF,UAAA,CAAA;EAAAH,WAAA,EAAA,oBAAA;EAAAI,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,mBAAA,EAAA,oEAAA,EAAA,SAAA,EAAA,8FAAA,EAAA,EAAA,CAAA,EACXE,KAAK,IAAIC,OAAO,CAAC,IAAI,EAAED,KAAK,CAACE,KAAK,CAACC,MAAM,CAACC,KAAK,CAAC,EAGhDJ,KAAK,IAAIC,OAAO,CAAC,IAAI,EAAED,KAAK,CAACE,KAAK,CAACC,MAAM,CAACC,KAAK,CAAC,EAC3DC,QAAQ,CAAC,OAAO,CAAC,EAQxBC,WAAW,CAAC,WAAW,CAAC,EAC3B;AACI,MAAMd,eAAe,gBAAGG,MAAM,CAACY,IAAI,CAAC,CAACC,KAAK,CAAC;AAACC,EAAAA,IAAI,EAAE,GAAA;AAAG,CAAC,CAAC,CAAAZ,UAAA,CAAA;EAAAH,WAAA,EAAA,yBAAA;EAAAI,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,QAAA,EAAA,yDAAA,EAAA,sLAAA,EAAA,IAAA,CAAA,EACjDO,QAAQ,CAAC,OAAO,CAAC,EAGNL,KAAK,IAAIC,OAAO,CAAC,IAAI,EAAED,KAAK,CAACE,KAAK,CAACC,MAAM,CAACC,KAAK,CAAC,EAa9CJ,KAAK,IAAIC,OAAO,CAAC,IAAI,EAAED,KAAK,CAACE,KAAK,CAACC,MAAM,CAACC,KAAK,CAAC,EAEvE;AAEHlD,MAAM,CAACwD,SAAS,GAAGtB,eAAe,CAAA;AAClClC,MAAM,CAACyD,IAAI,GAAGrB,UAAU,CAAA;AACxBpC,MAAM,CAAC0D,SAAS,GAAGpB,eAAe;;;;"}
|
package/lib/ExpandableBox.mjs
CHANGED
|
@@ -20,7 +20,7 @@ const shouldPreventExpand = (e, fn) => !e.target.closest('body,[data-expand="fal
|
|
|
20
20
|
const ExpandableBoxStyled = /*#__PURE__*/styled.div.withConfig({
|
|
21
21
|
displayName: "ExpandableBox__ExpandableBoxStyled",
|
|
22
22
|
componentId: "sc-1nsk1wq-0"
|
|
23
|
-
})(["padding:1rem;border-radius:8px;background:", ";font-size:14px;outline:none;transition:background 0.2s linear;position:relative;", " ", " & ~ &{margin-top:0.75rem;}", " &{margin-top:0.75rem;}"], getColor('lightBluishGray'), props => props.small && "\n padding: 0.875rem 1rem;\n min-height: 3rem;\n ", props => props.collapsed ? css(["cursor:pointer;padding-right:3.25rem
|
|
23
|
+
})(["padding:1rem;border-radius:8px;background:", ";font-size:14px;outline:none;transition:background 0.2s linear;position:relative;", " ", " & ~ &{margin-top:0.75rem;}", " &{margin-top:0.75rem;}"], getColor('lightBluishGray'), props => props.small && "\n padding: 0.875rem 1rem;\n min-height: 3rem;\n ", props => props.collapsed ? css(["cursor:pointer;padding-right:3.25rem;&:hover{background:", ";}&:active{background:", ";transition:none;}"], props => darken(0.035, getColor('lightBluishGray')(props)), props => darken(0.05, getColor('lightBluishGray')(props))) : css(["padding:1.5rem;", " ", ""], media.max(340)(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n padding: 1rem;\n "]))), props => props.fixMarginBottom && "\n padding-bottom: 0.5rem !important;\n "), SwitchDiv);
|
|
24
24
|
const EditIcon = /*#__PURE__*/styled(Icon).attrs({
|
|
25
25
|
icon: 'edit',
|
|
26
26
|
className: 'expandable-edit-icon'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpandableBox.mjs","sources":["../src/ExpandableBox.jsx"],"sourcesContent":["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}"],"names":["shouldPreventExpand","e","fn","target","closest","matches","ExpandableBoxStyled","styled","div","withConfig","displayName","componentId","getColor","props","small","collapsed","css","darken","media","max","_templateObject","_taggedTemplateLiteral","fixMarginBottom","SwitchDiv","EditIcon","Icon","attrs","icon","className","checkErrors","_len","arguments","length","checks","Array","_key","v","setErrors","results","map","c","filter","Boolean","messages","_negate","_isBoolean","timing","animationTiming","switchAnimation","oneWayAnimation","hasAnyExpanded","ExpandableBox","_ref","children","overflowEffect","recycleTab","escCancels","enterConfirms","withIcon","info","isOpen","openWhen","canExpand","_identity","path","retargetFilter","el","_el$tagName","tagName","toLowerCase","isValid","animation","flipAnimation","useLazyConstant","willUseFlipSwitch","value","setValue","getValue","useFormValue","_setErrors","clearErrors","useTransientErrorHelper","previousValue","useRefState","isAutoOpened","useToggle","containerRef","useRef","_len2","errors","_key2","k","_isString","expand","newV","prevV","result","firstFocus","lastFocus","useRecycleFocus","openWhenResult","callIfFunction","useEffect","open","get","close","set","cancel","utils","constrainEvent","onBlur","currentTarget","relatedTarget","contains","retarget","focus","checkEscEnter","key","stopPropagation","preventDefault","onClick","React","createElement","ref","tabIndex","onFocus","onKeyDown","FlipDiv","useAnimation","Fragment","PseudoExpandableBox","_ref2","FlipDivStyle","_ref3","_objectWithoutProperties","_excluded","effect","_extends"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ExpandableBox.mjs","sources":["../src/ExpandableBox.jsx"],"sourcesContent":["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}"],"names":["shouldPreventExpand","e","fn","target","closest","matches","ExpandableBoxStyled","styled","div","withConfig","displayName","componentId","getColor","props","small","collapsed","css","darken","media","max","_templateObject","_taggedTemplateLiteral","fixMarginBottom","SwitchDiv","EditIcon","Icon","attrs","icon","className","checkErrors","_len","arguments","length","checks","Array","_key","v","setErrors","results","map","c","filter","Boolean","messages","_negate","_isBoolean","timing","animationTiming","switchAnimation","oneWayAnimation","hasAnyExpanded","ExpandableBox","_ref","children","overflowEffect","recycleTab","escCancels","enterConfirms","withIcon","info","isOpen","openWhen","canExpand","_identity","path","retargetFilter","el","_el$tagName","tagName","toLowerCase","isValid","animation","flipAnimation","useLazyConstant","willUseFlipSwitch","value","setValue","getValue","useFormValue","_setErrors","clearErrors","useTransientErrorHelper","previousValue","useRefState","isAutoOpened","useToggle","containerRef","useRef","_len2","errors","_key2","k","_isString","expand","newV","prevV","result","firstFocus","lastFocus","useRecycleFocus","openWhenResult","callIfFunction","useEffect","open","get","close","set","cancel","utils","constrainEvent","onBlur","currentTarget","relatedTarget","contains","retarget","focus","checkEscEnter","key","stopPropagation","preventDefault","onClick","React","createElement","ref","tabIndex","onFocus","onKeyDown","FlipDiv","useAnimation","Fragment","PseudoExpandableBox","_ref2","FlipDivStyle","_ref3","_objectWithoutProperties","_excluded","effect","_extends"],"mappings":";;;;;;;;;;;;;;;;;;AAgBA,MAAMA,mBAAmB,GAAGA,CAACC,CAAC,EAACC,EAAE,KAAK,CAAED,CAAC,CAACE,MAAM,CAAEC,OAAO,CAAC,wDAAwD,CAAC,CAACC,OAAO,CAAC,2BAA2B,CAAC,CAAA;AAExJ,MAAMC,mBAAmB,gBAAGC,MAAM,CAACC,GAAG,CAAAC,UAAA,CAAA;EAAAC,WAAA,EAAA,oCAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAA,CAAA,CAAA,CAAA,4CAAA,EAAA,mFAAA,EAAA,GAAA,EAAA,6BAAA,EAAA,yBAAA,CAAA,EAGtBC,QAAQ,CAAC,iBAAiB,CAAC,EAKvCC,KAAK,IAAIA,KAAK,CAACC,KAAK,IAGrB,0DAAA,EACCD,KAAK,IAAIA,KAAK,CAACE,SAAS,GAAGC,GAAG,+GAIdH,KAAK,IAAII,MAAM,CAAC,KAAK,EAAEL,QAAQ,CAAC,iBAAiB,CAAC,CAACC,KAAK,CAAC,CAAC,EAG1DA,KAAK,IAAII,MAAM,CAAC,IAAI,EAAEL,QAAQ,CAAC,iBAAiB,CAAC,CAACC,KAAK,CAAC,CAAC,CAGxEG,GAAAA,GAAG,CAEFE,CAAAA,iBAAAA,EAAAA,GAAAA,EAAAA,EAAAA,CAAAA,EAAAA,KAAK,CAACC,GAAG,CAAC,GAAG,CAAC,CAAAC,eAAA,KAAAA,eAAA,GAAAC,sBAAA,CAGdR,CAAAA,8BAAAA,CAAAA,CAAAA,CAAAA,CAAAA,EAAAA,KAAK,IAAIA,KAAK,CAACS,eAAe,IAAA,kDAE/B,CACF,EAICC,SAAS,CAGZ,CAAA;AACD,MAAMC,QAAQ,gBAAGjB,MAAM,CAACkB,IAAI,CAAC,CAACC,KAAK,CAAC;AAACC,EAAAA,IAAI,EAAC,MAAM;AAAEC,EAAAA,SAAS,EAAE,sBAAA;AAAsB,CAAC,CAAC,CAAAnB,UAAA,CAAA;EAAAC,WAAA,EAAA,yBAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAOpF,CAAA,CAAA,CAAA,yGAAA,CAAA,CAAA,CAAA;AACYkB,MAAAA,WAAW,GAAG,YAAA;AAAA,EAAA,KAAA,IAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAIC,MAAM,GAAAC,IAAAA,KAAA,CAAAJ,IAAA,GAAAK,IAAA,GAAA,CAAA,EAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA,EAAA,EAAA;AAANF,IAAAA,MAAM,CAAAE,IAAA,CAAAJ,GAAAA,SAAA,CAAAI,IAAA,CAAA,CAAA;AAAA,GAAA;AAAA,EAAA,OAAK,CAACC,CAAC,EAACC,SAAS,KAAK;AACzD,IAAA,MAAMC,OAAO,GAAGL,MAAM,CAACM,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACJ,CAAC,CAAC,CAAC,CAACK,MAAM,CAACC,OAAO,CAAC,CAAA;AACrD,IAAA,IAAI,CAACJ,OAAO,CAACN,MAAM,EAAE;AAAE,MAAA,OAAO,IAAI,CAAA;AAAC,KAAA;IACnC,MAAMW,QAAQ,GAAGL,OAAO,CAACG,MAAM,CAACG,OAAA,CAAAC,UAAoB,CAAC,CAAC,CAAA;IACtD,IAAIF,QAAQ,CAACX,MAAM,EAAE;MACnBK,SAAS,CAAC,GAAGM,QAAQ,CAAC,CAAA;AACxB,KAAA;AACA,IAAA,OAAO,KAAK,CAAA;GACb,CAAA;AAAA,EAAA;AAED,MAAMG,MAAM,GAAGC,eAAe,CAAC,gBAAgB,CAAC,CAAA;AAChD,MAAMC,eAAe,GAAGC,eAAe,CAAC,qCAAqC,EAAC,aAAa,EAAE,yCAAyC,CAAC,CAAA;AAEvI,IAAIC,cAAc,GAAG,CAAC,CAAA;MACTC,aAAa,gBAAG5C,MAAM,CAAC6C,IAAA,IAAyT;EAAA,IAAxT;IAACxB,SAAS;IAAEyB,QAAQ;IAAEC,cAAc;IAAEC,UAAU;IAAEC,UAAU;IAAEC,aAAa;AAAEC,IAAAA,QAAQ,GAAG,IAAI;IAAEC,IAAI;IAAEC,MAAM;IAAEC,QAAQ;AAAEC,IAAAA,SAAS,GAAAC,SAAa;IAAEC,IAAI;AAAEC,IAAAA,cAAc,GAAIC,EAAE,IAAA;AAAA,MAAA,IAAAC,WAAA,CAAA;AAAA,MAAA,OAAK,CAAAD,EAAE,KAAA,IAAA,IAAFA,EAAE,KAAAC,KAAAA,CAAAA,IAAAA,CAAAA,WAAA,GAAFD,EAAE,CAAEE,OAAO,MAAAD,IAAAA,IAAAA,WAAA,uBAAXA,WAAA,CAAaE,WAAW,EAAE,MAAK,QAAQ,CAAA;AAAA,KAAA;IAAEC,OAAO,GAAGA,MAAM,IAAI;IAAEhD,eAAe;AAAEiD,IAAAA,SAAS,GAAGvB,eAAe;AAAED,IAAAA,eAAe,GAAGD,MAAAA;AAAM,GAAC,GAAAM,IAAA,CAAA;AACtV,EAAA,MAAMoB,aAAa,GAAGC,eAAe,CAACC,iBAAiB,CAAC,CAAA;EACxD,MAAM,CAACC,KAAK,EAACC,QAAQ,EAACC,QAAQ,CAAC,GAAGC,YAAY,CAACd,IAAI,CAAC,CAAA;EACpD,MAAM,CAACe,UAAU,EAACC,WAAW,CAAC,GAAGC,uBAAuB,EAAE,CAAA;AAC1D,EAAA,MAAMC,aAAa,GAAGC,WAAW,EAAE,CAAA;AACnC,EAAA,MAAMC,YAAY,GAAGC,SAAS,CAACzB,MAAM,CAAC,CAAA;AACtC,EAAA,MAAM0B,YAAY,GAAGC,MAAM,EAAE,CAAA;AAE7B,EAAA,MAAMlD,SAAS,GAAG,YAAe;AAAA,IAAA,KAAA,IAAAmD,KAAA,GAAAzD,SAAA,CAAAC,MAAA,EAAXyD,MAAM,GAAAvD,IAAAA,KAAA,CAAAsD,KAAA,GAAAE,KAAA,GAAA,CAAA,EAAAA,KAAA,GAAAF,KAAA,EAAAE,KAAA,EAAA,EAAA;AAAND,MAAAA,MAAM,CAAAC,KAAA,CAAA3D,GAAAA,SAAA,CAAA2D,KAAA,CAAA,CAAA;AAAA,KAAA;AAC1BX,IAAAA,UAAU,CAACU,MAAM,CAACzD,MAAM,GAAGyD,MAAM,CAAClD,GAAG,CAACoD,CAAC,IAAIC,SAAA,CAAWD,CAAC,CAAC,GAAG,CAACA,CAAC,EAAC,EAAE,CAAC,GAAGA,CAAC,CAAC,GAAG,CAAC,CAAC3B,IAAI,EAAC,EAAE,CAAC,CAAC,CAAC,CAAA;AACrF,IAAA,OAAO,IAAI,CAAA;GACZ,CAAA;EAED,MAAM6B,MAAM,GAAGR,SAAS,CAACzB,MAAM,EAAC,CAACkC,IAAI,EAACC,KAAK,KAAK;AAC9C,IAAA,IAAID,IAAI,KAAK,CAAC,IAAIC,KAAK,KAAK,CAAC,EAAE;AAAE,MAAA,OAAA;AAAO,KAAA;IACxC,IAAID,IAAI,KAAK,KAAK,EAAE;MAClB,MAAME,MAAM,GAAG1B,OAAO,CAACO,QAAQ,EAAE,EAACxC,SAAS,CAAC,CAAA;MAC5C,IAAI2D,MAAM,KAAK,IAAI,EAAE;AACnBhB,QAAAA,WAAW,EAAE,CAAA;AACf,OAAA;AACA,MAAA,OAAOgB,MAAM,CAAA;AACf,KAAA;AACF,GAAC,CAAC,CAAA;AAEF,EAAA,MAAM,CAACC,UAAU,EAACC,SAAS,CAAC,GAAGC,eAAe,CAACb,YAAY,EAAC/B,UAAU,IAAIsC,MAAM,CAACjC,MAAM,EAAEL,UAAU,CAAC,CAAA;AAEpG,EAAA,MAAM6C,cAAc,GAAGC,cAAc,CAACxC,QAAQ,CAAC,CAAA;AAC/CyC,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIF,cAAc,EAAE;MAClBP,MAAM,CAACU,IAAI,EAAE,CAAA;AACf,KAAA;AACF,GAAC,EAAC,CAACH,cAAc,CAAC,CAAC,CAAA;EAGnBE,SAAS,CAAC,MAAM,MAAM;AACpB,IAAA,IAAIT,MAAM,CAACW,GAAG,EAAE,KAAK,CAAC,EAAE;MACtBX,MAAM,CAACY,KAAK,EAAE,CAAA;AAChB,KAAA;AACF,GAAC,EAAC,CAACZ,MAAM,CAACjC,MAAM,CAAC,CAAC,CAAA;AAClB0C,EAAAA,SAAS,CAAC,MAAM;AACd,IAAA,IAAIT,MAAM,CAACW,GAAG,EAAE,IAAI,CAACpB,YAAY,CAACoB,GAAG,EAAE,EAAE;AACvCtB,MAAAA,aAAa,CAACwB,GAAG,CAAC7B,QAAQ,EAAE,CAAC,CAAA;AAC7B3B,MAAAA,cAAc,IAAI,CAAC,CAAA;AACnB,MAAA,OAAO,MAAM;AACXA,QAAAA,cAAc,IAAI,CAAC,CAAA;OACpB,CAAA;AACH,KAAA;GACD,EAAC,CAAC2C,MAAM,CAACjC,MAAM,EAACwB,YAAY,CAACxB,MAAM,CAAC,CAAC,CAAA;EAEtC,MAAM+C,MAAM,GAAGA,MAAM;AACnB/B,IAAAA,QAAQ,CAACM,aAAa,CAACsB,GAAG,EAAE,CAAC,CAAA;IAC7BX,MAAM,CAACY,KAAK,EAAE,CAAA;GACf,CAAA;AAED,EAAA,MAAMG,KAAK,GAAGnC,eAAe,CAAC,OAAM;AAACgC,IAAAA,KAAK,EAAEI,cAAc,CAAChB,MAAM,CAACY,KAAK,CAAC;IAAC7B,QAAQ;AAAC+B,IAAAA,MAAAA;AAAM,GAAC,CAAC,CAAC,CAAA;EAE3F,MAAMG,MAAM,GAAI7G,CAAC,IAAI;IACnB,IAAIA,CAAC,CAAC8G,aAAa,KAAK9G,CAAC,CAAC+G,aAAa,KAAK,CAAC/G,CAAC,CAAC+G,aAAa,IAAI,CAAC/G,CAAC,CAAC8G,aAAa,CAACE,QAAQ,CAAChH,CAAC,CAAC+G,aAAa,CAAC,CAAC,EAAE;MAC3G,MAAME,QAAQ,GAAGb,cAAc,CAACpC,cAAc,EAAChE,CAAC,CAAC+G,aAAa,CAAC,CAAA;MAC/D,IAAIE,QAAQ,KAAK,IAAI,EAAE;AACrBjH,QAAAA,CAAC,CAACE,MAAM,CAACgH,KAAK,EAAE,CAAA;AAClB,OAAC,MAAM,IAAID,QAAQ,KAAK,KAAK,EAAE;QAC7BrB,MAAM,CAACY,KAAK,EAAE,CAAA;AAChB,OAAA;AACF,KAAA;GACD,CAAA;EAED,MAAMW,aAAa,GAAInH,CAAC,IAAK;AAC3B,IAAA,IAAIA,CAAC,CAACoH,GAAG,KAAK,OAAO,IAAI5D,aAAa,EAAE;MACtCxD,CAAC,CAACqH,eAAe,EAAE,CAAA;MACnBrH,CAAC,CAACsH,cAAc,EAAE,CAAA;MAClB1B,MAAM,CAACY,KAAK,EAAE,CAAA;KACf,MAAM,IAAIxG,CAAC,CAACoH,GAAG,KAAK,QAAQ,IAAI7D,UAAU,EAAE;MAC3CvD,CAAC,CAACqH,eAAe,EAAE,CAAA;MACnBrH,CAAC,CAACsH,cAAc,EAAE,CAAA;AAClBZ,MAAAA,MAAM,EAAE,CAAA;AACV,KAAA;GACD,CAAA;EAED,MAAMa,OAAO,GAAIvH,CAAC,IAAK,CAACD,mBAAmB,CAACC,CAAC,CAAC,IAAIoG,cAAc,CAACvC,SAAS,EAAC7D,CAAC,CAAC,IAAI,CAACiD,cAAc,IAAI2C,MAAM,CAACU,IAAI,EAAE,CAAA;AAEjH,EAAA,oBAAOkB,KAAA,CAAAC,aAAA,CAACpH,mBAAmB,EAAA;AACzBsB,IAAAA,SAAS,EAAEA,SAAS,IAAIiE,MAAM,CAACjC,MAAM,KAAKH,aAAa,IAAID,UAAU,CAAC,GAAG,sBAAsB,GAAG,EAAE,CAAE;AACtGmE,IAAAA,GAAG,EAAErC,YAAa;IAClBsC,QAAQ,EAAE,CAAC,CAAE;AACbd,IAAAA,MAAM,EAAEA,MAAO;IACfe,OAAO,EAAEzC,YAAY,CAACqB,KAAM;AAC5B1F,IAAAA,SAAS,EAAE,CAAC8E,MAAM,CAACjC,MAAO;AAACtC,IAAAA,eAAe,EAAEA,eAAgB;AAC5DkG,IAAAA,OAAO,EAAEA,OAAQ;AACjBM,IAAAA,SAAS,EAAEV,aAAAA;GAEVvB,EAAAA,MAAM,CAACjC,MAAM,IAAIqC,UAAU,eAC5BwB,KAAA,CAAAC,aAAA,CAACK,OAAO,EAAA;IACNV,GAAG,EAAExB,MAAM,CAACjC,MAAO;AACnBN,IAAAA,cAAc,EAAEA,cAAe;AAC/B0E,IAAAA,YAAY,EAAExD,aAAc;AAC5BD,IAAAA,SAAS,EAAEA,SAAU;AACrBxB,IAAAA,eAAe,EAAEA,eAAAA;GAEjB8C,EAAAA,MAAM,CAACjC,MAAM,GAAGyC,cAAc,CAAChD,QAAQ,EAACsB,KAAK,EAACiC,KAAK,CAAC,gBAAGa,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAQ,QAAA,EAAA,IAAA,EAAG5B,cAAc,CAAC1C,IAAI,EAAEgB,KAAK,EAAEiC,KAAK,CAAC,EAAElD,QAAQ,iBAAI+D,KAAA,CAAAC,aAAA,CAAClG,QAAQ,EAAC,IAAA,CAAI,CAChH,CAAC,EACVqE,MAAM,CAACjC,MAAM,IAAIsC,SACC,CAAC,CAAA;AACxB,CAAC,CAAC,CAAAzF,UAAA,CAAA;EAAAC,WAAA,EAAA,eAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAED,CAAA,CAAA,CAAA,EAAA,CAAA,EAAA;AAUM,MAAMuH,mBAAmB,GAAGC,KAAA,IAAA;EAAA,IAAC;IAAC9E,QAAQ;IAAEvC,KAAK;AAAE0G,IAAAA,OAAAA;AAAO,GAAC,GAAAW,KAAA,CAAA;AAAA,EAAA,oBAAKV,KAAA,CAAAC,aAAA,CAACpH,mBAAmB,EAAA;IAACS,SAAS,EAAA,IAAA;AAACD,IAAAA,KAAK,EAAEA,KAAM;AAAC0G,IAAAA,OAAO,EAAEA,OAAAA;AAAQ,GAAA,eAC7HC,KAAA,CAAAC,aAAA,CAACU,YAAY,QACV/E,QAAQ,eACToE,KAAA,CAAAC,aAAA,CAAClG,QAAQ,EAAC,IAAA,CACA,CACK,CAAC,CAAA;AAAA,EAAA;AAEtB,MAAM4G,YAAY,gBAAG7H,MAAM,CAACC,GAAG,CAACkB,KAAK,CAAC;AAACE,EAAAA,SAAS,EAAE,qBAAA;AAAqB,CAAC,CAAC,CAAAnB,UAAA,CAAA;EAAAC,WAAA,EAAA,6BAAA;EAAAC,WAAA,EAAA,cAAA;AAAA,CAAqB,CAAA,CAAA,CAAA,oBAAA,CAAA,CAAA,CAAA;AAE9F,MAAMoH,OAAO,GAAGM,KAAA,IAA0E;EAAA,IAAzE;MAACL,YAAY;MAAEzD,SAAS;MAAExB,eAAe;AAAEO,MAAAA,cAAAA;AAAwB,KAAC,GAAA+E,KAAA;AAANxH,IAAAA,KAAK,GAAAyH,wBAAA,CAAAD,KAAA,EAAAE,SAAA,CAAA,CAAA;AAClF,EAAA,MAAMZ,GAAG,GAAGpC,MAAM,EAAE,CAAA;AACpByC,EAAAA,YAAY,CAACL,GAAG,EAAC,IAAI,EAAC,IAAI,EAAC;AAAC3E,IAAAA,eAAe,EAACuB,SAAS;AAACzB,IAAAA,MAAM,EAACC,eAAe;AAACyF,IAAAA,MAAM,EAAClF,cAAAA;AAAc,GAAC,CAAC,CAAA;EACpG,oBAAOmE,KAAA,CAAAC,aAAA,CAACU,YAAY,EAAAK,QAAA,KAAK5H,KAAK,EAAA;AAAE8G,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,CAAC,CAAC,CAAA;AAC7C,CAAC;;;;"}
|
package/lib/Field.mjs
CHANGED
|
@@ -13,8 +13,13 @@ const Container = /*#__PURE__*/styled.div.withConfig({
|
|
|
13
13
|
displayName: "Field__Container",
|
|
14
14
|
componentId: "sc-p9woft-1"
|
|
15
15
|
})(["position:relative;margin-bottom:", ";text-align:left;"], props => getMargin(props.theme.Field.margins)(props));
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
// Nome próprio (não só `Field.Label = ...`): TextInput.jsx usa `${Field.Label}` como seletor
|
|
17
|
+
// (FloatingFieldType) num ARQUIVO DIFERENTE, e o yak tenta resolver isso avaliando o módulo
|
|
18
|
+
// inteiro de `Field` (um componente React de verdade) em tempo de build — falha com um
|
|
19
|
+
// `undefined` na saída (mesmo problema do Errors.Item, ver Errors.jsx). `Field.Label` continua
|
|
20
|
+
// existindo (uso interno e compatibilidade).
|
|
21
|
+
const FieldLabel = /*#__PURE__*/styled.label.withConfig({
|
|
22
|
+
displayName: "Field__FieldLabel",
|
|
18
23
|
componentId: "sc-p9woft-2"
|
|
19
24
|
})(["font-weight:550;display:inline-block;font-size:", "px;margin-bottom:.75rem;", " ", ""], props => props.labelFontSize ? props.labelFontSize : '15', props => props.isOnImage && 'color: #fff;', customTheme("FieldLabel"));
|
|
20
25
|
const HelpText = /*#__PURE__*/styled.span.withConfig({
|
|
@@ -48,18 +53,18 @@ const Field = /*#__PURE__*/React.forwardRef((_ref, ref) => {
|
|
|
48
53
|
ref: ref
|
|
49
54
|
}, rest, {
|
|
50
55
|
className: className
|
|
51
|
-
}), label && /*#__PURE__*/React.createElement(
|
|
56
|
+
}), label && /*#__PURE__*/React.createElement(FieldLabel, _extends({}, rest, {
|
|
52
57
|
onClick: labelClick,
|
|
53
58
|
labelFontSize: labelFontSize
|
|
54
59
|
}), label, mandatory && /*#__PURE__*/React.createElement(Mandatory, {
|
|
55
60
|
mandatory: mandatory
|
|
56
61
|
}, "*"), helpText && /*#__PURE__*/React.createElement(HelpText, null, " ", helpText), descText && /*#__PURE__*/React.createElement(FieldDescription, null, descText)), children, bellowDescText && /*#__PURE__*/React.createElement(BellowFieldDescription, null, bellowDescText));
|
|
57
62
|
});
|
|
58
|
-
Field.Label =
|
|
63
|
+
Field.Label = FieldLabel;
|
|
59
64
|
Field.Container = Container;
|
|
60
65
|
Field.HelpText = HelpText;
|
|
61
66
|
Field.Description = FieldDescription;
|
|
62
67
|
Field.displayName = "Field";
|
|
63
68
|
|
|
64
|
-
export { BellowFieldDescription, Field, FieldDescription, HelpText };
|
|
69
|
+
export { BellowFieldDescription, Field, FieldDescription, FieldLabel, HelpText };
|
|
65
70
|
//# sourceMappingURL=Field.mjs.map
|
package/lib/Field.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Field.mjs","sources":["../src/Field.jsx"],"sourcesContent":["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`\
|
|
1
|
+
{"version":3,"file":"Field.mjs","sources":["../src/Field.jsx"],"sourcesContent":["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\""],"names":["Mandatory","styled","span","withConfig","displayName","componentId","props","mandatory","concat","Container","div","getMargin","theme","Field","margins","FieldLabel","label","labelFontSize","isOnImage","customTheme","HelpText","FieldDescription","BellowFieldDescription","React","forwardRef","_ref","ref","helpText","descText","bellowDescText","className","labelClick","focused","onImage","children","rest","_objectWithoutProperties","_excluded","createElement","_extends","onClick","Label","Description"],"mappings":"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"}
|