@servicetitan/design-system 13.4.1 → 13.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/DateRangePicker/DateRangePicker.js +23 -8
- package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/components/Toast/Toast.d.ts +3 -0
- package/dist/components/Toast/Toast.js +9 -1
- package/dist/components/Toast/Toast.js.map +1 -1
- package/dist/components/Toast/ToastGroup.js +3 -1
- package/dist/components/Toast/ToastGroup.js.map +1 -1
- package/dist/components/Toast/ToastGroupContext.d.ts +4 -0
- package/dist/components/Toast/ToastGroupContext.js +3 -0
- package/dist/components/Toast/ToastGroupContext.js.map +1 -0
- package/dist/global/index.css +1 -1
- package/dist/global/version.css +1 -1
- package/dist/system-light.css +1 -1
- package/dist/system-light.min.css +1 -1
- package/dist/system.css +1 -1
- package/dist/system.min.css +1 -1
- package/dist/utilities/TimezoneProvider/TimezoneProvider.test.js +36 -10
- package/dist/utilities/TimezoneProvider/TimezoneProvider.test.js.map +1 -1
- package/package.json +7 -7
|
@@ -100,18 +100,33 @@ export const DateRangePicker = (_a) => {
|
|
|
100
100
|
if (event.nativeEvent.target.className === 'k-nav-today') {
|
|
101
101
|
event.syntheticEvent.stopPropagation();
|
|
102
102
|
const today = DateTime.now().setZone(timezone);
|
|
103
|
-
if (
|
|
104
|
-
|
|
105
|
-
start: iValue.start ? iValue.start : undefined,
|
|
106
|
-
end: today.endOf('day'),
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
if (event.target.activeRangeEnd === 'end') {
|
|
103
|
+
if (iValue.start && iValue.end) {
|
|
104
|
+
// reset selection if both values are already filled
|
|
110
105
|
eventValue = {
|
|
111
106
|
start: today.startOf('day'),
|
|
112
|
-
end: iValue.end ? iValue.end : undefined,
|
|
113
107
|
};
|
|
114
108
|
}
|
|
109
|
+
else {
|
|
110
|
+
if (event.target.activeRangeEnd === 'start') {
|
|
111
|
+
eventValue = {
|
|
112
|
+
start: iValue.start ? iValue.start : undefined,
|
|
113
|
+
end: today.endOf('day'),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
if (event.target.activeRangeEnd === 'end') {
|
|
117
|
+
eventValue = {
|
|
118
|
+
start: today.startOf('day'),
|
|
119
|
+
end: iValue.end ? iValue.end : undefined,
|
|
120
|
+
};
|
|
121
|
+
}
|
|
122
|
+
if (eventValue.start > eventValue.end) {
|
|
123
|
+
const reverseEventValue = {
|
|
124
|
+
start: eventValue.end,
|
|
125
|
+
end: eventValue.start,
|
|
126
|
+
};
|
|
127
|
+
eventValue = reverseEventValue;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
115
130
|
setIValue(eventValue);
|
|
116
131
|
return;
|
|
117
132
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.js","sourceRoot":"","sources":["../../../src/components/DateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {\n\tChangeEvent,\n\tFC,\n\tFocusEvent,\n\tuseContext,\n\tuseRef,\n\tMouseEvent,\n} from 'react';\nimport { KeyPressListener } from '../KeyPressListener';\nimport { Popover, PopoverProps } from '../Popover';\nimport { Stack } from '../Stack';\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport { Link } from '../Link';\nimport {\n\tDateRangeInput,\n\tDateRangeTrigger,\n\tDateRangeOptionList,\n\tDateRangeOptionListProps,\n\tDateRangeInputProps,\n} from './components';\nimport {\n\tMultiViewCalendar,\n\tMultiViewCalendarProps,\n\tSelectionRange,\n\tCalendarCell,\n\tCalendarCellProps,\n} from '@progress/kendo-react-dateinputs';\nimport { Keys } from '../../utilities/keyCodes';\nimport { isValid } from '../../utilities/dateFormat';\nimport { UseFocusTrapProps } from '../../hooks';\nimport { TimezoneContext } from '../../utilities/TimezoneProvider';\nimport { DateTime } from 'luxon';\nimport { checkScope } from './utils';\nimport { PopperProps } from '../../internal';\n\ninterface CalendarInputProps {\n\tplaceholder?: DateRangeInputProps['placeholder'];\n\tonChange?: DateRangeInputProps['onChange'];\n\tonBlur?: DateRangeInputProps['onBlur'];\n}\n\ninterface CalendarProps {\n\tonChange?: MultiViewCalendarProps['onChange'];\n\tfocusedDate?: Date;\n}\n\ninterface ClearButtonProps {\n\tonClick?: (e: MouseEvent<HTMLButtonElement>, value: innerDateRange) => void;\n}\n\ninterface DropdownProps {\n\tportal?: boolean;\n\tdirection?: PopoverProps['direction'];\n\tautoFlipVertically?: PopoverProps['autoFlipVertically'];\n\tautoFlipHorizontally?: PopoverProps['autoFlipHorizontally'];\n\toptions?: DateRangeOptionListProps['options'];\n\tstartDateInput?: CalendarInputProps;\n\tendDateInput?: CalendarInputProps;\n\tviews?: 1 | 2;\n\tcalendar?: CalendarProps;\n\tclearButton?: ClearButtonProps;\n}\n\ninterface InputProps {\n\tsize?: 'small' | 'medium' | 'large';\n\tplaceholder?: string;\n\tdisplayValue?: string;\n\telement?: (\n\t\tvalue: DateRangePickerProps['value'] | any,\n\t\ttriggerProp: triggerProps,\n\t\topen: DateRangePickerProps['open'],\n\t\terror: DateRangePickerProps['error']\n\t) => React.ReactElement;\n}\n\nexport interface DateRangePickerProps {\n\t/** Disabled state */\n\tdisabled?: boolean;\n\n\t/** Indicates that the field is required */\n\trequired?: boolean;\n\n\t/** Error state */\n\terror?: boolean;\n\n\t/** onChange function */\n\tonChange?: (value: MultiViewCalendarProps['value'] | any) => void;\n\n\t/** A handler that is called on every open and close action */\n\tonOpenChange?: (open: boolean) => void;\n\n\t/** A handler that is called on every click on any element outside of the anchor element when it is open */\n\tonClickOutside?: PopoverProps['onClickOutside'];\n\n\t/** Default calendar value */\n\tdefaultValue?: MultiViewCalendarProps['value'];\n\n\t/** Maximum date allowed */\n\tmaxDate?: MultiViewCalendarProps['max'];\n\n\t/** Minimum date allowed */\n\tminDate?: MultiViewCalendarProps['min'];\n\n\t/** Set value */\n\tvalue?: SelectionRange;\n\n\t/** Whether the DateRangePicker is open or not */\n\topen?: boolean;\n\n\t/** Disables close on click outside */\n\tdisableCloseOnClickOutside?: boolean;\n\n\t/**\n\t * Date format string\n\t */\n\tdateFormat?: string;\n\n\t/** Changes the onChange return to ISO string format */\n\tisoFormat?: boolean;\n\n\t/** Options passed into useFocusTrap */\n\tfocusTrapOptions?: UseFocusTrapProps;\n\n\t/** popover component prop */\n\tdropdown?: DropdownProps;\n\n\t/** trigger component prop */\n\tinput?: InputProps; // new trigger props\n\n\t/** Props to be passed to the portaled div */\n\tportalDataAttributes?: PopperProps['portalDataAttributes'];\n\n\t// Keeping below for backward compatibility\n\n\t/**\n\t * @deprecated - use input.size\n\t */\n\tsize?: 'small' | 'medium' | 'large';\n\t/**\n\t * @deprecated - use input.placeholder\n\t */\n\tplaceholder?: string;\n\t/**\n\t * @deprecated - use input.displayValue\n\t */\n\tdisplayValue?: string;\n\t/**\n\t * @deprecated - use input.element\n\t */\n\ttrigger?: (\n\t\tvalue: DateRangePickerProps['value'] | any,\n\t\ttriggerProp: triggerProps,\n\t\topen: DateRangePickerProps['open'],\n\t\terror: DateRangePickerProps['error']\n\t) => React.ReactElement;\n\t/**\n\t * @deprecated - use dropdown.portal\n\t */\n\tportal?: boolean;\n\t/**\n\t * @deprecated - use dropdown.direction\n\t */\n\tdirection?: PopoverProps['direction'];\n\t/**\n\t * @deprecated - use dropdown.autoFlipVertically\n\t */\n\tautoFlipVertically?: PopoverProps['autoFlipVertically'];\n\t/**\n\t * @deprecated - use dropdown.autoFlipHorizontally\n\t */\n\tautoFlipHorizontally?: PopoverProps['autoFlipHorizontally'];\n\t/**\n\t * @deprecated - use dropdown.options\n\t */\n\toptions?: DateRangeOptionListProps['options'];\n\t/**\n\t * @deprecated - use dropdown.startDateInput.placeholder\n\t */\n\tstartPlaceholder?: InputProps['placeholder'];\n\t/**\n\t * @deprecated - use dropdown.endDateInput.placeholder\n\t */\n\tendPlaceholder?: InputProps['placeholder'];\n\t/**\n\t * @deprecated - use dropdown.focusedDate\n\t */\n\tfocusedDate?: Date;\n\t/**\n\t * @deprecated - use dropdown.views\n\t */\n\tviews?: 1 | 2;\n}\n\ninterface triggerProps {\n\t/** onClick function for the trigger */\n\tonClick?: () => void;\n}\n\ninterface innerDateRange {\n\tstart: string | null;\n\tend: string | null;\n}\n\nexport const DateRangePicker: FC<DateRangePickerProps> = ({\n\tdisabled,\n\terror,\n\trequired,\n\topen,\n\tdisableCloseOnClickOutside,\n\tonClickOutside,\n\tonOpenChange,\n\tfocusTrapOptions,\n\tdateFormat,\n\tvalue,\n\tdefaultValue,\n\tonChange,\n\tmaxDate,\n\tminDate,\n\tisoFormat,\n\tinput,\n\tdropdown,\n\tportalDataAttributes,\n\n\t// deprecated props\n\ttrigger,\n\tsize: dsize = 'medium',\n\tplaceholder: dplaceholder = 'Select Date Range',\n\tdirection: ddirection = 'br',\n\tautoFlipHorizontally: dautoFlipHorizontally,\n\tautoFlipVertically: dautoFlipVertically,\n\tportal: dPortal = true,\n\tdisplayValue: ddisplayValue,\n\tviews: dviews = 1,\n\tfocusedDate: dfocusedDate,\n\toptions: doptions,\n\tstartPlaceholder = 'Start Date',\n\tendPlaceholder = 'End Date',\n\t...rest\n}) => {\n\tconst {\n\t\tportal = dPortal,\n\t\tdirection = ddirection,\n\t\tautoFlipVertically = dautoFlipVertically,\n\t\tautoFlipHorizontally = dautoFlipHorizontally,\n\t\toptions = doptions,\n\t\tstartDateInput,\n\t\tendDateInput,\n\t\tviews = dviews,\n\t\tcalendar,\n\t\tclearButton,\n\t} = { ...dropdown };\n\n\tconst { onChange: CalendarOnChange, focusedDate = dfocusedDate } = {\n\t\t...calendar,\n\t};\n\tconst { onClick: ClearButtonOnClick } = { ...clearButton };\n\tconst {\n\t\tsize: inputSize = dsize,\n\t\tplaceholder: inputPlaceholder = dplaceholder,\n\t\tdisplayValue: inputDisplayValue = ddisplayValue,\n\t\telement: inputEl = trigger,\n\t} = { ...input };\n\n\tconst {\n\t\tplaceholder: startDateInputplaceholder = startPlaceholder,\n\t\tonBlur: startDateInputOnBlur,\n\t\tonChange: startDateInputOnChange,\n\t} = { ...startDateInput };\n\n\tconst {\n\t\tplaceholder: endDateInputplaceholder = endPlaceholder,\n\t\tonBlur: endDateInputOnBlur,\n\t\tonChange: endDateInputOnChange,\n\t} = { ...endDateInput };\n\n\tconst triggerRef = React.useRef(null);\n\tconst timezone = useContext(TimezoneContext);\n\tconst getNewToday = DateTime.fromJSDate(new Date(), {\n\t\tzone: timezone,\n\t});\n\n\tconst [openCal, setOpenCal] = React.useState(open);\n\tconst [internalError, setInternalError] = React.useState(error);\n\tconst [initialValue, setInitialValue] = React.useState({\n\t\tstart: value?.start\n\t\t\t? DateTime.fromJSDate(value.start).setZone(timezone)\n\t\t\t: null,\n\t\tend: value?.end\n\t\t\t? DateTime.fromJSDate(value.end).setZone(timezone)\n\t\t\t: null,\n\t});\n\tconst [iValue, setIValue] = React.useState<any>(initialValue);\n\tconst minMaxRange = React.useMemo(() => {\n\t\treturn {\n\t\t\tmin:\n\t\t\t\tminDate &&\n\t\t\t\tDateTime.fromJSDate(minDate).startOf('day').setZone(timezone),\n\t\t\tmax:\n\t\t\t\tmaxDate &&\n\t\t\t\tDateTime.fromJSDate(maxDate).endOf('day').setZone(timezone),\n\t\t};\n\t}, [minDate, timezone, maxDate]);\n\tconst [outOfRange, setOutOfRange] = React.useState(\n\t\tcheckScope(\n\t\t\tvalue,\n\t\t\tminMaxRange?.min?.toJSDate(),\n\t\t\tminMaxRange?.max?.toJSDate()\n\t\t)\n\t);\n\n\tReact.useEffect(() => {\n\t\tconst newValue = {\n\t\t\tstart: value?.start\n\t\t\t\t? DateTime.fromJSDate(value.start).setZone(timezone)\n\t\t\t\t: null,\n\t\t\tend: value?.end\n\t\t\t\t? DateTime.fromJSDate(value.end).setZone(timezone)\n\t\t\t\t: null,\n\t\t};\n\n\t\tsetInitialValue(newValue);\n\t\tsetIValue(newValue);\n\t\tsetOutOfRange(\n\t\t\tcheckScope(\n\t\t\t\tvalue,\n\t\t\t\tminMaxRange?.min?.toJSDate(),\n\t\t\t\tminMaxRange?.max?.toJSDate()\n\t\t\t)\n\t\t);\n\t}, [minMaxRange?.max, minMaxRange?.min, timezone, value]);\n\n\tconst stopRender = useRef(false);\n\tReact.useEffect(() => {\n\t\tlet start;\n\t\tlet end;\n\t\tif (isoFormat) {\n\t\t\tstart = iValue.start.toISO();\n\t\t\tend = iValue.end.toISO();\n\t\t} else {\n\t\t\tstart = iValue.start ? iValue.start.toJSDate() : null;\n\t\t\tend = iValue.end ? iValue.end.toJSDate() : null;\n\t\t}\n\n\t\tstopRender.current && onChange({ start, end });\n\t\tstopRender.current = true;\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [timezone]);\n\n\t/*\n\t * handler for MultiViewCalendar onChange\n\t */\n\tconst blurBlocker = useRef(false);\n\tconst handleCalendarOnChange = (event: any) => {\n\t\tlet eventValue: any = event.target.value as SelectionRange;\n\t\tblurBlocker.current = true;\n\t\t// Force today to select today of the timezone\n\t\tif (event.nativeEvent.target.className === 'k-nav-today') {\n\t\t\tevent.syntheticEvent.stopPropagation();\n\n\t\t\tconst today = DateTime.now().setZone(timezone);\n\n\t\t\tif (event.target.activeRangeEnd === 'start') {\n\t\t\t\teventValue = {\n\t\t\t\t\tstart: iValue.start ? iValue.start : undefined,\n\t\t\t\t\tend: today.endOf('day'),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tif (event.target.activeRangeEnd === 'end') {\n\t\t\t\teventValue = {\n\t\t\t\t\tstart: today.startOf('day'),\n\t\t\t\t\tend: iValue.end ? iValue.end : undefined,\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tsetIValue(eventValue);\n\t\t\treturn;\n\t\t}\n\n\t\tconst startValue = eventValue?.start\n\t\t\t? DateTime.fromJSDate(eventValue.start).setZone(timezone, {\n\t\t\t\t\tkeepLocalTime: true,\n\t\t\t })\n\t\t\t: null;\n\n\t\tconst endValue = eventValue?.end\n\t\t\t? DateTime.fromJSDate(eventValue.end).setZone(timezone, {\n\t\t\t\t\tkeepLocalTime: true,\n\t\t\t })\n\t\t\t: null;\n\n\t\tsetIValue({\n\t\t\tstart: startValue,\n\t\t\tend: endValue,\n\t\t});\n\n\t\tCalendarOnChange?.(event);\n\t};\n\n\t// handler for DateInput onBlur\n\tconst handleDateOnBlur = (\n\t\te: FocusEvent<HTMLInputElement>,\n\t\tdata: Date,\n\t\ttype: 'start' | 'end'\n\t) => {\n\t\ttype === 'start'\n\t\t\t? startDateInputOnBlur?.(e, data)\n\t\t\t: endDateInputOnBlur?.(e, data);\n\t\tif (!blurBlocker.current) {\n\t\t\tif (!isValid(data)) {\n\t\t\t\tsetOutOfRange({ ...outOfRange, [type]: 'Enter valid date' });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst value = {\n\t\t\t\t...iValue,\n\t\t\t\t[type]: DateTime.fromJSDate(data).setZone(timezone, {\n\t\t\t\t\tkeepLocalTime: true,\n\t\t\t\t}),\n\t\t\t};\n\n\t\t\tsetIValue(value);\n\t\t}\n\t};\n\n\tconst handleDateOnChange = (\n\t\te: ChangeEvent<HTMLInputElement>,\n\t\tdata: string,\n\t\ttype: 'start' | 'end'\n\t) => {\n\t\ttype === 'start'\n\t\t\t? startDateInputOnChange?.(e, data)\n\t\t\t: endDateInputOnChange?.(e, data);\n\t\tsetOutOfRange({ ...outOfRange, [type]: false });\n\t};\n\n\tconst handleOptionListOnChange = (data: any) => {\n\t\tconst newValue = {\n\t\t\tstart: data.start ? DateTime.fromJSDate(data.start) : null,\n\t\t\tend: data.end ? DateTime.fromJSDate(data.end) : null,\n\t\t};\n\t\tsetInitialValue(newValue);\n\t\tsetIValue(newValue);\n\t\tonChange(data);\n\t\tsetOpenCal(false);\n\t\tonOpenChange?.(false);\n\t};\n\n\tReact.useEffect(() => {\n\t\tsetOutOfRange(\n\t\t\tcheckScope(\n\t\t\t\t{\n\t\t\t\t\tstart: iValue?.start?.toJSDate(),\n\t\t\t\t\tend: iValue?.end?.toJSDate(),\n\t\t\t\t},\n\t\t\t\tminMaxRange?.min?.toJSDate(),\n\t\t\t\tminMaxRange?.max?.toJSDate()\n\t\t\t)\n\t\t);\n\n\t\tblurBlocker.current = false;\n\t}, [iValue, minMaxRange?.max, minMaxRange?.min]);\n\n\tReact.useEffect(() => {\n\t\tconst scope = checkScope(\n\t\t\t{\n\t\t\t\tstart: initialValue?.start?.toJSDate(),\n\t\t\t\tend: initialValue?.end?.toJSDate(),\n\t\t\t},\n\t\t\tminMaxRange?.min?.toJSDate(),\n\t\t\tminMaxRange?.max?.toJSDate()\n\t\t);\n\n\t\tif (!scope.start && !scope.end) setInternalError(error ?? false);\n\t\tif (!!scope.start || !!scope.end) setInternalError(true);\n\t}, [error, initialValue, minMaxRange?.max, minMaxRange?.min]);\n\n\t// confirm handler, this returns dateRange value through onChange\n\tconst handleOnConfirm = () => {\n\t\tconst scope = checkScope(\n\t\t\t{\n\t\t\t\tstart: iValue?.start?.toJSDate(),\n\t\t\t\tend: iValue?.end?.toJSDate(),\n\t\t\t},\n\t\t\tminMaxRange?.min?.toJSDate(),\n\t\t\tminMaxRange?.max?.toJSDate()\n\t\t);\n\t\t!scope.start && !scope.end\n\t\t\t? setInternalError(error ?? false)\n\t\t\t: setInternalError(error ?? true);\n\t\tsetInitialValue(iValue);\n\t\tsetOpenCal(false);\n\t\tonOpenChange?.(false);\n\n\t\tif (isoFormat) {\n\t\t\tonChange?.({\n\t\t\t\tstart: iValue?.start?.toISO(),\n\t\t\t\tend: iValue?.end?.endOf('day').setZone(timezone).toISO(),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tonChange?.({\n\t\t\tstart: iValue?.start?.startOf('day').setZone(timezone).toJSDate(),\n\t\t\tend: iValue?.end?.endOf('day').setZone(timezone).toJSDate(),\n\t\t});\n\t};\n\n\t// close popover function - this will revert dateRange to initial value\n\tconst close = () => {\n\t\tif (openCal) {\n\t\t\tsetIValue(initialValue);\n\t\t\tsetOpenCal(false);\n\t\t\tonOpenChange?.(false);\n\t\t\t!inputEl && triggerRef.current.focus();\n\t\t}\n\t};\n\n\tconst handleOnClickOutside = () => {\n\t\tif (openCal) {\n\t\t\tonClickOutside?.();\n\t\t\tif (!disableCloseOnClickOutside) {\n\t\t\t\tsetIValue(initialValue);\n\t\t\t\tsetOpenCal(false);\n\t\t\t\tonOpenChange?.(false);\n\t\t\t}\n\t\t}\n\t};\n\n\t// toggle open state\n\tconst toggleOpen = () => {\n\t\tif (openCal) {\n\t\t\tclose();\n\t\t} else {\n\t\t\tsetOpenCal(!openCal);\n\t\t\tonOpenChange?.(true);\n\t\t}\n\t};\n\n\t// keyboard event for end date input to confirm and close\n\tconst calendarKeyPress = (event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\tif (event.code === Keys.Space && !isApplyDisabled) {\n\t\t\thandleOnConfirm();\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tconst clearDateRange = (d: any) => {\n\t\tclose();\n\t\tonChange?.(d);\n\t\tsetIValue(d);\n\t\tsetInternalError(error ?? required ?? false);\n\t\tsetInitialValue(d);\n\t};\n\n\tconst clearInner = (e: MouseEvent<HTMLButtonElement>) => {\n\t\tconst nullDateRange: innerDateRange = { start: null, end: null };\n\t\tsetIValue(nullDateRange);\n\t\tClearButtonOnClick?.(e, nullDateRange);\n\t};\n\n\t// keyboard event for trigger to open popover\n\tconst triggerKeyPress = (event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\tif (event.code === Keys.Enter || event.code === Keys.Space) {\n\t\t\tsetOpenCal(true);\n\t\t\tonOpenChange?.(true);\n\t\t}\n\t};\n\n\t// Handles when open prop changes\n\tconst initialRender = useRef(true);\n\tReact.useEffect(() => {\n\t\tsetOpenCal(open);\n\t\tif (!initialRender.current) {\n\t\t\tonOpenChange?.(open);\n\t\t}\n\t\tinitialRender.current = false;\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [open]);\n\n\tconst hasError = outOfRange.start || outOfRange.end;\n\tconst hasAcceptableValues =\n\t\t(iValue.start && iValue.end) ||\n\t\t(iValue.start === null && iValue.end === null);\n\tconst requiredCheck =\n\t\trequired && (iValue.start === null || iValue.end === null);\n\tconst isApplyDisabled = (requiredCheck ||\n\t\t!hasAcceptableValues ||\n\t\thasError ||\n\t\t!outOfRange) as boolean;\n\n\tconst triggerProps = {\n\t\tonClick: toggleOpen,\n\t};\n\n\t// custom cell to override the today highlight to match timezone today\n\tconst customCell = (props: CalendarCellProps) => {\n\t\tif (format(props.value) === format(getNewToday)) {\n\t\t\treturn <CalendarCell {...props} isToday />;\n\t\t}\n\t\treturn <CalendarCell {...props} isToday={false} />;\n\t};\n\treturn (\n\t\t<Popover\n\t\t\topen={!disabled && openCal}\n\t\t\tonClickOutside={handleOnClickOutside}\n\t\t\ttrigger={\n\t\t\t\tinputEl?.(\n\t\t\t\t\tinitialValue,\n\t\t\t\t\ttriggerProps,\n\t\t\t\t\topenCal,\n\t\t\t\t\tinternalError\n\t\t\t\t) ?? (\n\t\t\t\t\t<DateRangeTrigger\n\t\t\t\t\t\topen={openCal}\n\t\t\t\t\t\tplaceholder={inputPlaceholder}\n\t\t\t\t\t\tonClick={toggleOpen}\n\t\t\t\t\t\tonKeyDown={triggerKeyPress}\n\t\t\t\t\t\tonChange={clearDateRange}\n\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\tstart: initialValue.start?.isValid\n\t\t\t\t\t\t\t\t? new Date(format(initialValue.start))\n\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\tend: initialValue.end?.isValid\n\t\t\t\t\t\t\t\t? new Date(format(initialValue.end))\n\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdisplayValue={inputDisplayValue}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\terror={internalError}\n\t\t\t\t\t\tsize={inputSize}\n\t\t\t\t\t\tref={triggerRef}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\tdata-anvil-component=\"DateRangePicker\"\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\tdirection={direction}\n\t\t\tpadding={null}\n\t\t\twidth=\"auto\"\n\t\t\tclassName=\"DateRangePicker__popover\"\n\t\t\tportal={portal}\n\t\t\tfocusTrapOptions={focusTrapOptions}\n\t\t\tautoFlipHorizontally={autoFlipHorizontally}\n\t\t\tautoFlipVertically={autoFlipVertically}\n\t\t\tportalDataAttributes={portalDataAttributes}\n\t\t>\n\t\t\t<KeyPressListener\n\t\t\t\tcode={Keys.Esc}\n\t\t\t\thandler={close}\n\t\t\t\tdisabled={disableCloseOnClickOutside || !openCal}\n\t\t\t/>\n\t\t\t<div className=\"d-f flex-row\">\n\t\t\t\t{options && options.length > 0 && (\n\t\t\t\t\t<DateRangeOptionList\n\t\t\t\t\t\toptions={options}\n\t\t\t\t\t\tmin={minMaxRange?.min?.toJSDate()}\n\t\t\t\t\t\tmax={minMaxRange?.max?.toJSDate()}\n\t\t\t\t\t\tonChange={handleOptionListOnChange}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<div className=\"DateRangePicker\">\n\t\t\t\t\t<div className=\"DateRangePicker__header\">\n\t\t\t\t\t\t<div className=\"DateRangePicker__inputGroup\">\n\t\t\t\t\t\t\t<DateRangeInput\n\t\t\t\t\t\t\t\tplaceholder={startDateInputplaceholder}\n\t\t\t\t\t\t\t\tvalue={iValue?.start}\n\t\t\t\t\t\t\t\terror={outOfRange?.start}\n\t\t\t\t\t\t\t\tdateFormat={dateFormat}\n\t\t\t\t\t\t\t\tonBlur={(e, data) => {\n\t\t\t\t\t\t\t\t\thandleDateOnBlur(e, data, 'start');\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonChange={(e, data) => {\n\t\t\t\t\t\t\t\t\thandleDateOnChange(e, data, 'start');\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tname=\"arrow_forward\"\n\t\t\t\t\t\t\t\tclassName=\"DateRangePicker__fromTo\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<DateRangeInput\n\t\t\t\t\t\t\t\tplaceholder={endDateInputplaceholder}\n\t\t\t\t\t\t\t\tvalue={iValue?.end}\n\t\t\t\t\t\t\t\terror={outOfRange?.end}\n\t\t\t\t\t\t\t\tdateFormat={dateFormat}\n\t\t\t\t\t\t\t\tonBlur={(e, data) => {\n\t\t\t\t\t\t\t\t\thandleDateOnBlur(e, data, 'end');\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonChange={(e, data) => {\n\t\t\t\t\t\t\t\t\thandleDateOnChange(e, data, 'end');\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tonKeyPress={calendarKeyPress}\n\t\t\t\t\t\tclassName=\"DatePicker__calendar\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<MultiViewCalendar\n\t\t\t\t\t\t\tmode=\"range\"\n\t\t\t\t\t\t\tviews={views}\n\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\tstart: iValue.start\n\t\t\t\t\t\t\t\t\t? new Date(format(iValue.start))\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t\tend: iValue.end\n\t\t\t\t\t\t\t\t\t? new Date(format(iValue.end))\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonChange={handleCalendarOnChange}\n\t\t\t\t\t\t\tfocusedDate={\n\t\t\t\t\t\t\t\tfocusedDate\n\t\t\t\t\t\t\t\t\t? focusedDate\n\t\t\t\t\t\t\t\t\t: !(value?.start && value?.end)\n\t\t\t\t\t\t\t\t\t? new Date()\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\t\t\tmin={minMaxRange?.min?.toJSDate()}\n\t\t\t\t\t\t\tmax={minMaxRange?.max?.toJSDate()}\n\t\t\t\t\t\t\tcell={customCell}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<Stack\n\t\t\t\tclassName=\"DateRangePicker__actions\"\n\t\t\t\tdirection=\"row-reverse\"\n\t\t\t\tjustifyContent=\"space-between\"\n\t\t\t>\n\t\t\t\t<Stack direction=\"row-reverse\" spacing={2}>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdisabled={isApplyDisabled}\n\t\t\t\t\t\tonClick={handleOnConfirm}\n\t\t\t\t\t\tsmall\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button small fill=\"subtle\" onClick={close}>\n\t\t\t\t\t\tCancel\n\t\t\t\t\t</Button>\n\t\t\t\t</Stack>\n\t\t\t\t<Link\n\t\t\t\t\tprimary\n\t\t\t\t\tonClick={clearInner}\n\t\t\t\t\tdisabled={!(iValue?.start || iValue?.end)}\n\t\t\t\t\tclassName=\"fs-2\"\n\t\t\t\t>\n\t\t\t\t\tClear\n\t\t\t\t</Link>\n\t\t\t</Stack>\n\t\t</Popover>\n\t);\n};\n\nconst format = (date: any, format = 'LL/dd/yyyy') => {\n\tif (date instanceof Date) return DateTime.fromJSDate(date).toFormat(format);\n\tif (date instanceof DateTime) return date.toFormat(format);\n\treturn date;\n};\n"]}
|
|
1
|
+
{"version":3,"file":"DateRangePicker.js","sourceRoot":"","sources":["../../../src/components/DateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, {\n\tChangeEvent,\n\tFC,\n\tFocusEvent,\n\tuseContext,\n\tuseRef,\n\tMouseEvent,\n} from 'react';\nimport { KeyPressListener } from '../KeyPressListener';\nimport { Popover, PopoverProps } from '../Popover';\nimport { Stack } from '../Stack';\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport { Link } from '../Link';\nimport {\n\tDateRangeInput,\n\tDateRangeTrigger,\n\tDateRangeOptionList,\n\tDateRangeOptionListProps,\n\tDateRangeInputProps,\n} from './components';\nimport {\n\tMultiViewCalendar,\n\tMultiViewCalendarProps,\n\tSelectionRange,\n\tCalendarCell,\n\tCalendarCellProps,\n} from '@progress/kendo-react-dateinputs';\nimport { Keys } from '../../utilities/keyCodes';\nimport { isValid } from '../../utilities/dateFormat';\nimport { UseFocusTrapProps } from '../../hooks';\nimport { TimezoneContext } from '../../utilities/TimezoneProvider';\nimport { DateTime } from 'luxon';\nimport { checkScope } from './utils';\nimport { PopperProps } from '../../internal';\n\ninterface CalendarInputProps {\n\tplaceholder?: DateRangeInputProps['placeholder'];\n\tonChange?: DateRangeInputProps['onChange'];\n\tonBlur?: DateRangeInputProps['onBlur'];\n}\n\ninterface CalendarProps {\n\tonChange?: MultiViewCalendarProps['onChange'];\n\tfocusedDate?: Date;\n}\n\ninterface ClearButtonProps {\n\tonClick?: (e: MouseEvent<HTMLButtonElement>, value: innerDateRange) => void;\n}\n\ninterface DropdownProps {\n\tportal?: boolean;\n\tdirection?: PopoverProps['direction'];\n\tautoFlipVertically?: PopoverProps['autoFlipVertically'];\n\tautoFlipHorizontally?: PopoverProps['autoFlipHorizontally'];\n\toptions?: DateRangeOptionListProps['options'];\n\tstartDateInput?: CalendarInputProps;\n\tendDateInput?: CalendarInputProps;\n\tviews?: 1 | 2;\n\tcalendar?: CalendarProps;\n\tclearButton?: ClearButtonProps;\n}\n\ninterface InputProps {\n\tsize?: 'small' | 'medium' | 'large';\n\tplaceholder?: string;\n\tdisplayValue?: string;\n\telement?: (\n\t\tvalue: DateRangePickerProps['value'] | any,\n\t\ttriggerProp: triggerProps,\n\t\topen: DateRangePickerProps['open'],\n\t\terror: DateRangePickerProps['error']\n\t) => React.ReactElement;\n}\n\nexport interface DateRangePickerProps {\n\t/** Disabled state */\n\tdisabled?: boolean;\n\n\t/** Indicates that the field is required */\n\trequired?: boolean;\n\n\t/** Error state */\n\terror?: boolean;\n\n\t/** onChange function */\n\tonChange?: (value: MultiViewCalendarProps['value'] | any) => void;\n\n\t/** A handler that is called on every open and close action */\n\tonOpenChange?: (open: boolean) => void;\n\n\t/** A handler that is called on every click on any element outside of the anchor element when it is open */\n\tonClickOutside?: PopoverProps['onClickOutside'];\n\n\t/** Default calendar value */\n\tdefaultValue?: MultiViewCalendarProps['value'];\n\n\t/** Maximum date allowed */\n\tmaxDate?: MultiViewCalendarProps['max'];\n\n\t/** Minimum date allowed */\n\tminDate?: MultiViewCalendarProps['min'];\n\n\t/** Set value */\n\tvalue?: SelectionRange;\n\n\t/** Whether the DateRangePicker is open or not */\n\topen?: boolean;\n\n\t/** Disables close on click outside */\n\tdisableCloseOnClickOutside?: boolean;\n\n\t/**\n\t * Date format string\n\t */\n\tdateFormat?: string;\n\n\t/** Changes the onChange return to ISO string format */\n\tisoFormat?: boolean;\n\n\t/** Options passed into useFocusTrap */\n\tfocusTrapOptions?: UseFocusTrapProps;\n\n\t/** popover component prop */\n\tdropdown?: DropdownProps;\n\n\t/** trigger component prop */\n\tinput?: InputProps; // new trigger props\n\n\t/** Props to be passed to the portaled div */\n\tportalDataAttributes?: PopperProps['portalDataAttributes'];\n\n\t// Keeping below for backward compatibility\n\n\t/**\n\t * @deprecated - use input.size\n\t */\n\tsize?: 'small' | 'medium' | 'large';\n\t/**\n\t * @deprecated - use input.placeholder\n\t */\n\tplaceholder?: string;\n\t/**\n\t * @deprecated - use input.displayValue\n\t */\n\tdisplayValue?: string;\n\t/**\n\t * @deprecated - use input.element\n\t */\n\ttrigger?: (\n\t\tvalue: DateRangePickerProps['value'] | any,\n\t\ttriggerProp: triggerProps,\n\t\topen: DateRangePickerProps['open'],\n\t\terror: DateRangePickerProps['error']\n\t) => React.ReactElement;\n\t/**\n\t * @deprecated - use dropdown.portal\n\t */\n\tportal?: boolean;\n\t/**\n\t * @deprecated - use dropdown.direction\n\t */\n\tdirection?: PopoverProps['direction'];\n\t/**\n\t * @deprecated - use dropdown.autoFlipVertically\n\t */\n\tautoFlipVertically?: PopoverProps['autoFlipVertically'];\n\t/**\n\t * @deprecated - use dropdown.autoFlipHorizontally\n\t */\n\tautoFlipHorizontally?: PopoverProps['autoFlipHorizontally'];\n\t/**\n\t * @deprecated - use dropdown.options\n\t */\n\toptions?: DateRangeOptionListProps['options'];\n\t/**\n\t * @deprecated - use dropdown.startDateInput.placeholder\n\t */\n\tstartPlaceholder?: InputProps['placeholder'];\n\t/**\n\t * @deprecated - use dropdown.endDateInput.placeholder\n\t */\n\tendPlaceholder?: InputProps['placeholder'];\n\t/**\n\t * @deprecated - use dropdown.focusedDate\n\t */\n\tfocusedDate?: Date;\n\t/**\n\t * @deprecated - use dropdown.views\n\t */\n\tviews?: 1 | 2;\n}\n\ninterface triggerProps {\n\t/** onClick function for the trigger */\n\tonClick?: () => void;\n}\n\ninterface innerDateRange {\n\tstart: string | null;\n\tend: string | null;\n}\n\nexport const DateRangePicker: FC<DateRangePickerProps> = ({\n\tdisabled,\n\terror,\n\trequired,\n\topen,\n\tdisableCloseOnClickOutside,\n\tonClickOutside,\n\tonOpenChange,\n\tfocusTrapOptions,\n\tdateFormat,\n\tvalue,\n\tdefaultValue,\n\tonChange,\n\tmaxDate,\n\tminDate,\n\tisoFormat,\n\tinput,\n\tdropdown,\n\tportalDataAttributes,\n\n\t// deprecated props\n\ttrigger,\n\tsize: dsize = 'medium',\n\tplaceholder: dplaceholder = 'Select Date Range',\n\tdirection: ddirection = 'br',\n\tautoFlipHorizontally: dautoFlipHorizontally,\n\tautoFlipVertically: dautoFlipVertically,\n\tportal: dPortal = true,\n\tdisplayValue: ddisplayValue,\n\tviews: dviews = 1,\n\tfocusedDate: dfocusedDate,\n\toptions: doptions,\n\tstartPlaceholder = 'Start Date',\n\tendPlaceholder = 'End Date',\n\t...rest\n}) => {\n\tconst {\n\t\tportal = dPortal,\n\t\tdirection = ddirection,\n\t\tautoFlipVertically = dautoFlipVertically,\n\t\tautoFlipHorizontally = dautoFlipHorizontally,\n\t\toptions = doptions,\n\t\tstartDateInput,\n\t\tendDateInput,\n\t\tviews = dviews,\n\t\tcalendar,\n\t\tclearButton,\n\t} = { ...dropdown };\n\n\tconst { onChange: CalendarOnChange, focusedDate = dfocusedDate } = {\n\t\t...calendar,\n\t};\n\tconst { onClick: ClearButtonOnClick } = { ...clearButton };\n\tconst {\n\t\tsize: inputSize = dsize,\n\t\tplaceholder: inputPlaceholder = dplaceholder,\n\t\tdisplayValue: inputDisplayValue = ddisplayValue,\n\t\telement: inputEl = trigger,\n\t} = { ...input };\n\n\tconst {\n\t\tplaceholder: startDateInputplaceholder = startPlaceholder,\n\t\tonBlur: startDateInputOnBlur,\n\t\tonChange: startDateInputOnChange,\n\t} = { ...startDateInput };\n\n\tconst {\n\t\tplaceholder: endDateInputplaceholder = endPlaceholder,\n\t\tonBlur: endDateInputOnBlur,\n\t\tonChange: endDateInputOnChange,\n\t} = { ...endDateInput };\n\n\tconst triggerRef = React.useRef(null);\n\tconst timezone = useContext(TimezoneContext);\n\tconst getNewToday = DateTime.fromJSDate(new Date(), {\n\t\tzone: timezone,\n\t});\n\n\tconst [openCal, setOpenCal] = React.useState(open);\n\tconst [internalError, setInternalError] = React.useState(error);\n\tconst [initialValue, setInitialValue] = React.useState({\n\t\tstart: value?.start\n\t\t\t? DateTime.fromJSDate(value.start).setZone(timezone)\n\t\t\t: null,\n\t\tend: value?.end\n\t\t\t? DateTime.fromJSDate(value.end).setZone(timezone)\n\t\t\t: null,\n\t});\n\tconst [iValue, setIValue] = React.useState<any>(initialValue);\n\tconst minMaxRange = React.useMemo(() => {\n\t\treturn {\n\t\t\tmin:\n\t\t\t\tminDate &&\n\t\t\t\tDateTime.fromJSDate(minDate).startOf('day').setZone(timezone),\n\t\t\tmax:\n\t\t\t\tmaxDate &&\n\t\t\t\tDateTime.fromJSDate(maxDate).endOf('day').setZone(timezone),\n\t\t};\n\t}, [minDate, timezone, maxDate]);\n\tconst [outOfRange, setOutOfRange] = React.useState(\n\t\tcheckScope(\n\t\t\tvalue,\n\t\t\tminMaxRange?.min?.toJSDate(),\n\t\t\tminMaxRange?.max?.toJSDate()\n\t\t)\n\t);\n\n\tReact.useEffect(() => {\n\t\tconst newValue = {\n\t\t\tstart: value?.start\n\t\t\t\t? DateTime.fromJSDate(value.start).setZone(timezone)\n\t\t\t\t: null,\n\t\t\tend: value?.end\n\t\t\t\t? DateTime.fromJSDate(value.end).setZone(timezone)\n\t\t\t\t: null,\n\t\t};\n\n\t\tsetInitialValue(newValue);\n\t\tsetIValue(newValue);\n\t\tsetOutOfRange(\n\t\t\tcheckScope(\n\t\t\t\tvalue,\n\t\t\t\tminMaxRange?.min?.toJSDate(),\n\t\t\t\tminMaxRange?.max?.toJSDate()\n\t\t\t)\n\t\t);\n\t}, [minMaxRange?.max, minMaxRange?.min, timezone, value]);\n\n\tconst stopRender = useRef(false);\n\tReact.useEffect(() => {\n\t\tlet start;\n\t\tlet end;\n\t\tif (isoFormat) {\n\t\t\tstart = iValue.start.toISO();\n\t\t\tend = iValue.end.toISO();\n\t\t} else {\n\t\t\tstart = iValue.start ? iValue.start.toJSDate() : null;\n\t\t\tend = iValue.end ? iValue.end.toJSDate() : null;\n\t\t}\n\n\t\tstopRender.current && onChange({ start, end });\n\t\tstopRender.current = true;\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [timezone]);\n\n\t/*\n\t * handler for MultiViewCalendar onChange\n\t */\n\tconst blurBlocker = useRef(false);\n\tconst handleCalendarOnChange = (event: any) => {\n\t\tlet eventValue: any = event.target.value as SelectionRange;\n\t\tblurBlocker.current = true;\n\t\t// Force today to select today of the timezone\n\t\tif (event.nativeEvent.target.className === 'k-nav-today') {\n\t\t\tevent.syntheticEvent.stopPropagation();\n\n\t\t\tconst today = DateTime.now().setZone(timezone);\n\n\t\t\tif (iValue.start && iValue.end) {\n\t\t\t\t// reset selection if both values are already filled\n\t\t\t\teventValue = {\n\t\t\t\t\tstart: today.startOf('day'),\n\t\t\t\t};\n\t\t\t} else {\n\t\t\t\tif (event.target.activeRangeEnd === 'start') {\n\t\t\t\t\teventValue = {\n\t\t\t\t\t\tstart: iValue.start ? iValue.start : undefined,\n\t\t\t\t\t\tend: today.endOf('day'),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (event.target.activeRangeEnd === 'end') {\n\t\t\t\t\teventValue = {\n\t\t\t\t\t\tstart: today.startOf('day'),\n\t\t\t\t\t\tend: iValue.end ? iValue.end : undefined,\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tif (eventValue.start > eventValue.end) {\n\t\t\t\t\tconst reverseEventValue = {\n\t\t\t\t\t\tstart: eventValue.end,\n\t\t\t\t\t\tend: eventValue.start,\n\t\t\t\t\t};\n\n\t\t\t\t\teventValue = reverseEventValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tsetIValue(eventValue);\n\t\t\treturn;\n\t\t}\n\n\t\tconst startValue = eventValue?.start\n\t\t\t? DateTime.fromJSDate(eventValue.start).setZone(timezone, {\n\t\t\t\t\tkeepLocalTime: true,\n\t\t\t })\n\t\t\t: null;\n\n\t\tconst endValue = eventValue?.end\n\t\t\t? DateTime.fromJSDate(eventValue.end).setZone(timezone, {\n\t\t\t\t\tkeepLocalTime: true,\n\t\t\t })\n\t\t\t: null;\n\n\t\tsetIValue({\n\t\t\tstart: startValue,\n\t\t\tend: endValue,\n\t\t});\n\n\t\tCalendarOnChange?.(event);\n\t};\n\n\t// handler for DateInput onBlur\n\tconst handleDateOnBlur = (\n\t\te: FocusEvent<HTMLInputElement>,\n\t\tdata: Date,\n\t\ttype: 'start' | 'end'\n\t) => {\n\t\ttype === 'start'\n\t\t\t? startDateInputOnBlur?.(e, data)\n\t\t\t: endDateInputOnBlur?.(e, data);\n\t\tif (!blurBlocker.current) {\n\t\t\tif (!isValid(data)) {\n\t\t\t\tsetOutOfRange({ ...outOfRange, [type]: 'Enter valid date' });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst value = {\n\t\t\t\t...iValue,\n\t\t\t\t[type]: DateTime.fromJSDate(data).setZone(timezone, {\n\t\t\t\t\tkeepLocalTime: true,\n\t\t\t\t}),\n\t\t\t};\n\n\t\t\tsetIValue(value);\n\t\t}\n\t};\n\n\tconst handleDateOnChange = (\n\t\te: ChangeEvent<HTMLInputElement>,\n\t\tdata: string,\n\t\ttype: 'start' | 'end'\n\t) => {\n\t\ttype === 'start'\n\t\t\t? startDateInputOnChange?.(e, data)\n\t\t\t: endDateInputOnChange?.(e, data);\n\t\tsetOutOfRange({ ...outOfRange, [type]: false });\n\t};\n\n\tconst handleOptionListOnChange = (data: any) => {\n\t\tconst newValue = {\n\t\t\tstart: data.start ? DateTime.fromJSDate(data.start) : null,\n\t\t\tend: data.end ? DateTime.fromJSDate(data.end) : null,\n\t\t};\n\t\tsetInitialValue(newValue);\n\t\tsetIValue(newValue);\n\t\tonChange(data);\n\t\tsetOpenCal(false);\n\t\tonOpenChange?.(false);\n\t};\n\n\tReact.useEffect(() => {\n\t\tsetOutOfRange(\n\t\t\tcheckScope(\n\t\t\t\t{\n\t\t\t\t\tstart: iValue?.start?.toJSDate(),\n\t\t\t\t\tend: iValue?.end?.toJSDate(),\n\t\t\t\t},\n\t\t\t\tminMaxRange?.min?.toJSDate(),\n\t\t\t\tminMaxRange?.max?.toJSDate()\n\t\t\t)\n\t\t);\n\n\t\tblurBlocker.current = false;\n\t}, [iValue, minMaxRange?.max, minMaxRange?.min]);\n\n\tReact.useEffect(() => {\n\t\tconst scope = checkScope(\n\t\t\t{\n\t\t\t\tstart: initialValue?.start?.toJSDate(),\n\t\t\t\tend: initialValue?.end?.toJSDate(),\n\t\t\t},\n\t\t\tminMaxRange?.min?.toJSDate(),\n\t\t\tminMaxRange?.max?.toJSDate()\n\t\t);\n\n\t\tif (!scope.start && !scope.end) setInternalError(error ?? false);\n\t\tif (!!scope.start || !!scope.end) setInternalError(true);\n\t}, [error, initialValue, minMaxRange?.max, minMaxRange?.min]);\n\n\t// confirm handler, this returns dateRange value through onChange\n\tconst handleOnConfirm = () => {\n\t\tconst scope = checkScope(\n\t\t\t{\n\t\t\t\tstart: iValue?.start?.toJSDate(),\n\t\t\t\tend: iValue?.end?.toJSDate(),\n\t\t\t},\n\t\t\tminMaxRange?.min?.toJSDate(),\n\t\t\tminMaxRange?.max?.toJSDate()\n\t\t);\n\t\t!scope.start && !scope.end\n\t\t\t? setInternalError(error ?? false)\n\t\t\t: setInternalError(error ?? true);\n\t\tsetInitialValue(iValue);\n\t\tsetOpenCal(false);\n\t\tonOpenChange?.(false);\n\n\t\tif (isoFormat) {\n\t\t\tonChange?.({\n\t\t\t\tstart: iValue?.start?.toISO(),\n\t\t\t\tend: iValue?.end?.endOf('day').setZone(timezone).toISO(),\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\tonChange?.({\n\t\t\tstart: iValue?.start?.startOf('day').setZone(timezone).toJSDate(),\n\t\t\tend: iValue?.end?.endOf('day').setZone(timezone).toJSDate(),\n\t\t});\n\t};\n\n\t// close popover function - this will revert dateRange to initial value\n\tconst close = () => {\n\t\tif (openCal) {\n\t\t\tsetIValue(initialValue);\n\t\t\tsetOpenCal(false);\n\t\t\tonOpenChange?.(false);\n\t\t\t!inputEl && triggerRef.current.focus();\n\t\t}\n\t};\n\n\tconst handleOnClickOutside = () => {\n\t\tif (openCal) {\n\t\t\tonClickOutside?.();\n\t\t\tif (!disableCloseOnClickOutside) {\n\t\t\t\tsetIValue(initialValue);\n\t\t\t\tsetOpenCal(false);\n\t\t\t\tonOpenChange?.(false);\n\t\t\t}\n\t\t}\n\t};\n\n\t// toggle open state\n\tconst toggleOpen = () => {\n\t\tif (openCal) {\n\t\t\tclose();\n\t\t} else {\n\t\t\tsetOpenCal(!openCal);\n\t\t\tonOpenChange?.(true);\n\t\t}\n\t};\n\n\t// keyboard event for end date input to confirm and close\n\tconst calendarKeyPress = (event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\tif (event.code === Keys.Space && !isApplyDisabled) {\n\t\t\thandleOnConfirm();\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tconst clearDateRange = (d: any) => {\n\t\tclose();\n\t\tonChange?.(d);\n\t\tsetIValue(d);\n\t\tsetInternalError(error ?? required ?? false);\n\t\tsetInitialValue(d);\n\t};\n\n\tconst clearInner = (e: MouseEvent<HTMLButtonElement>) => {\n\t\tconst nullDateRange: innerDateRange = { start: null, end: null };\n\t\tsetIValue(nullDateRange);\n\t\tClearButtonOnClick?.(e, nullDateRange);\n\t};\n\n\t// keyboard event for trigger to open popover\n\tconst triggerKeyPress = (event: React.KeyboardEvent<HTMLDivElement>) => {\n\t\tif (event.code === Keys.Enter || event.code === Keys.Space) {\n\t\t\tsetOpenCal(true);\n\t\t\tonOpenChange?.(true);\n\t\t}\n\t};\n\n\t// Handles when open prop changes\n\tconst initialRender = useRef(true);\n\tReact.useEffect(() => {\n\t\tsetOpenCal(open);\n\t\tif (!initialRender.current) {\n\t\t\tonOpenChange?.(open);\n\t\t}\n\t\tinitialRender.current = false;\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [open]);\n\n\tconst hasError = outOfRange.start || outOfRange.end;\n\tconst hasAcceptableValues =\n\t\t(iValue.start && iValue.end) ||\n\t\t(iValue.start === null && iValue.end === null);\n\tconst requiredCheck =\n\t\trequired && (iValue.start === null || iValue.end === null);\n\tconst isApplyDisabled = (requiredCheck ||\n\t\t!hasAcceptableValues ||\n\t\thasError ||\n\t\t!outOfRange) as boolean;\n\n\tconst triggerProps = {\n\t\tonClick: toggleOpen,\n\t};\n\n\t// custom cell to override the today highlight to match timezone today\n\tconst customCell = (props: CalendarCellProps) => {\n\t\tif (format(props.value) === format(getNewToday)) {\n\t\t\treturn <CalendarCell {...props} isToday />;\n\t\t}\n\t\treturn <CalendarCell {...props} isToday={false} />;\n\t};\n\treturn (\n\t\t<Popover\n\t\t\topen={!disabled && openCal}\n\t\t\tonClickOutside={handleOnClickOutside}\n\t\t\ttrigger={\n\t\t\t\tinputEl?.(\n\t\t\t\t\tinitialValue,\n\t\t\t\t\ttriggerProps,\n\t\t\t\t\topenCal,\n\t\t\t\t\tinternalError\n\t\t\t\t) ?? (\n\t\t\t\t\t<DateRangeTrigger\n\t\t\t\t\t\topen={openCal}\n\t\t\t\t\t\tplaceholder={inputPlaceholder}\n\t\t\t\t\t\tonClick={toggleOpen}\n\t\t\t\t\t\tonKeyDown={triggerKeyPress}\n\t\t\t\t\t\tonChange={clearDateRange}\n\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\tstart: initialValue.start?.isValid\n\t\t\t\t\t\t\t\t? new Date(format(initialValue.start))\n\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\tend: initialValue.end?.isValid\n\t\t\t\t\t\t\t\t? new Date(format(initialValue.end))\n\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tdisplayValue={inputDisplayValue}\n\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\terror={internalError}\n\t\t\t\t\t\tsize={inputSize}\n\t\t\t\t\t\tref={triggerRef}\n\t\t\t\t\t\trequired={required}\n\t\t\t\t\t\tdata-anvil-component=\"DateRangePicker\"\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t/>\n\t\t\t\t)\n\t\t\t}\n\t\t\tdirection={direction}\n\t\t\tpadding={null}\n\t\t\twidth=\"auto\"\n\t\t\tclassName=\"DateRangePicker__popover\"\n\t\t\tportal={portal}\n\t\t\tfocusTrapOptions={focusTrapOptions}\n\t\t\tautoFlipHorizontally={autoFlipHorizontally}\n\t\t\tautoFlipVertically={autoFlipVertically}\n\t\t\tportalDataAttributes={portalDataAttributes}\n\t\t>\n\t\t\t<KeyPressListener\n\t\t\t\tcode={Keys.Esc}\n\t\t\t\thandler={close}\n\t\t\t\tdisabled={disableCloseOnClickOutside || !openCal}\n\t\t\t/>\n\t\t\t<div className=\"d-f flex-row\">\n\t\t\t\t{options && options.length > 0 && (\n\t\t\t\t\t<DateRangeOptionList\n\t\t\t\t\t\toptions={options}\n\t\t\t\t\t\tmin={minMaxRange?.min?.toJSDate()}\n\t\t\t\t\t\tmax={minMaxRange?.max?.toJSDate()}\n\t\t\t\t\t\tonChange={handleOptionListOnChange}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\t\t\t\t<div className=\"DateRangePicker\">\n\t\t\t\t\t<div className=\"DateRangePicker__header\">\n\t\t\t\t\t\t<div className=\"DateRangePicker__inputGroup\">\n\t\t\t\t\t\t\t<DateRangeInput\n\t\t\t\t\t\t\t\tplaceholder={startDateInputplaceholder}\n\t\t\t\t\t\t\t\tvalue={iValue?.start}\n\t\t\t\t\t\t\t\terror={outOfRange?.start}\n\t\t\t\t\t\t\t\tdateFormat={dateFormat}\n\t\t\t\t\t\t\t\tonBlur={(e, data) => {\n\t\t\t\t\t\t\t\t\thandleDateOnBlur(e, data, 'start');\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonChange={(e, data) => {\n\t\t\t\t\t\t\t\t\thandleDateOnChange(e, data, 'start');\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\tname=\"arrow_forward\"\n\t\t\t\t\t\t\t\tclassName=\"DateRangePicker__fromTo\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<DateRangeInput\n\t\t\t\t\t\t\t\tplaceholder={endDateInputplaceholder}\n\t\t\t\t\t\t\t\tvalue={iValue?.end}\n\t\t\t\t\t\t\t\terror={outOfRange?.end}\n\t\t\t\t\t\t\t\tdateFormat={dateFormat}\n\t\t\t\t\t\t\t\tonBlur={(e, data) => {\n\t\t\t\t\t\t\t\t\thandleDateOnBlur(e, data, 'end');\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tonChange={(e, data) => {\n\t\t\t\t\t\t\t\t\thandleDateOnChange(e, data, 'end');\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tonKeyPress={calendarKeyPress}\n\t\t\t\t\t\tclassName=\"DatePicker__calendar\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<MultiViewCalendar\n\t\t\t\t\t\t\tmode=\"range\"\n\t\t\t\t\t\t\tviews={views}\n\t\t\t\t\t\t\tvalue={{\n\t\t\t\t\t\t\t\tstart: iValue.start\n\t\t\t\t\t\t\t\t\t? new Date(format(iValue.start))\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t\tend: iValue.end\n\t\t\t\t\t\t\t\t\t? new Date(format(iValue.end))\n\t\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tonChange={handleCalendarOnChange}\n\t\t\t\t\t\t\tfocusedDate={\n\t\t\t\t\t\t\t\tfocusedDate\n\t\t\t\t\t\t\t\t\t? focusedDate\n\t\t\t\t\t\t\t\t\t: !(value?.start && value?.end)\n\t\t\t\t\t\t\t\t\t? new Date()\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tdefaultValue={defaultValue}\n\t\t\t\t\t\t\tmin={minMaxRange?.min?.toJSDate()}\n\t\t\t\t\t\t\tmax={minMaxRange?.max?.toJSDate()}\n\t\t\t\t\t\t\tcell={customCell}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<Stack\n\t\t\t\tclassName=\"DateRangePicker__actions\"\n\t\t\t\tdirection=\"row-reverse\"\n\t\t\t\tjustifyContent=\"space-between\"\n\t\t\t>\n\t\t\t\t<Stack direction=\"row-reverse\" spacing={2}>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tdisabled={isApplyDisabled}\n\t\t\t\t\t\tonClick={handleOnConfirm}\n\t\t\t\t\t\tsmall\n\t\t\t\t\t\tcolor=\"primary\"\n\t\t\t\t\t>\n\t\t\t\t\t\tApply\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button small fill=\"subtle\" onClick={close}>\n\t\t\t\t\t\tCancel\n\t\t\t\t\t</Button>\n\t\t\t\t</Stack>\n\t\t\t\t<Link\n\t\t\t\t\tprimary\n\t\t\t\t\tonClick={clearInner}\n\t\t\t\t\tdisabled={!(iValue?.start || iValue?.end)}\n\t\t\t\t\tclassName=\"fs-2\"\n\t\t\t\t>\n\t\t\t\t\tClear\n\t\t\t\t</Link>\n\t\t\t</Stack>\n\t\t</Popover>\n\t);\n};\n\nconst format = (date: any, format = 'LL/dd/yyyy') => {\n\tif (date instanceof Date) return DateTime.fromJSDate(date).toFormat(format);\n\tif (date instanceof DateTime) return date.toFormat(format);\n\treturn date;\n};\n"]}
|
|
@@ -29,6 +29,9 @@ interface ToastState {
|
|
|
29
29
|
}
|
|
30
30
|
export declare class Toast extends Component<ToastProps, ToastState> {
|
|
31
31
|
static Group: React.ForwardRefExoticComponent<Pick<import("./ToastGroup").ToastGroupProps, keyof import("./ToastGroup").ToastGroupProps> & React.RefAttributes<HTMLDivElement>>;
|
|
32
|
+
static contextType: React.Context<{
|
|
33
|
+
isInToastGroup: boolean;
|
|
34
|
+
}>;
|
|
32
35
|
static defaultProps: {
|
|
33
36
|
status: string;
|
|
34
37
|
duration: number;
|
|
@@ -17,6 +17,7 @@ import { ToastGroup } from './ToastGroup';
|
|
|
17
17
|
import { AnimatePresence, motion } from 'framer-motion';
|
|
18
18
|
import { Portal } from '../../internal/Portal';
|
|
19
19
|
import { tokens } from '@servicetitan/tokens/core';
|
|
20
|
+
import { ToastGroupContext } from './ToastGroupContext';
|
|
20
21
|
export class Toast extends Component {
|
|
21
22
|
constructor(props) {
|
|
22
23
|
super(props);
|
|
@@ -67,7 +68,13 @@ export class Toast extends Component {
|
|
|
67
68
|
return 'info';
|
|
68
69
|
}
|
|
69
70
|
render() {
|
|
70
|
-
const _a = this.props, { primaryActionName, secondaryActionName, children, className, onPrimaryActionClick, onSecondaryActionClick, onClose,
|
|
71
|
+
const _a = this.props, { primaryActionName, secondaryActionName, children, className, onPrimaryActionClick, onSecondaryActionClick, onClose, status, title } = _a, props = __rest(_a, ["primaryActionName", "secondaryActionName", "children", "className", "onPrimaryActionClick", "onSecondaryActionClick", "onClose", "status", "title"]);
|
|
72
|
+
let portal = this.props.portal;
|
|
73
|
+
const { isInToastGroup } = this.context;
|
|
74
|
+
if (isInToastGroup) {
|
|
75
|
+
// Ignore portal in a toast group.
|
|
76
|
+
portal = undefined;
|
|
77
|
+
}
|
|
71
78
|
const ToastClasses = classnames('Toast', className, {
|
|
72
79
|
'Toast--critical': status === 'critical',
|
|
73
80
|
'Toast--info': status === 'info',
|
|
@@ -101,6 +108,7 @@ export class Toast extends Component {
|
|
|
101
108
|
}
|
|
102
109
|
}
|
|
103
110
|
Toast.Group = ToastGroup;
|
|
111
|
+
Toast.contextType = ToastGroupContext;
|
|
104
112
|
Toast.defaultProps = {
|
|
105
113
|
status: 'info',
|
|
106
114
|
duration: 8000,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,UAAU,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AA0CnD,MAAM,OAAO,KAAM,SAAQ,SAAiC;IAW3D,YAAY,KAAiB;QAC5B,KAAK,CAAC,KAAK,CAAC,CAAC;QAHN,YAAO,GAAkB,IAAI,CAAC;QAsBtC,gBAAW,GAAG,CAAC,CAAqC,EAAE,EAAE;YACvD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;YAE/B,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAElC,IAAI,OAAO,EAAE;gBACZ,OAAO,CAAC,CAAC,CAAC,CAAC;aACX;QACF,CAAC,CAAC;QA1BD,IAAI,CAAC,KAAK,GAAG;YACZ,OAAO,EAAE,IAAI;SACb,CAAC;IACH,CAAC;IAED,iBAAiB;QAChB,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC;YAAE,OAAO;QAEpC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;YACrC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpB,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzB,CAAC;IAED,oBAAoB;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC1B,CAAC;IAaD,gBAAgB;QACf,OAAO,CAAC,CAAC,CACR,IAAI,CAAC,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAC/D,CAAC;IACH,CAAC;IAED,kBAAkB;QACjB,OAAO,CAAC,CAAC,CACR,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,IAAI,CAAC,KAAK,CAAC,sBAAsB,CACnE,CAAC;IACH,CAAC;IAEO,iBAAiB;QACxB,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE;YAC1B,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;SAClC;IACF,CAAC;IAEO,mBAAmB;QAC1B,QAAQ,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;YAC1B,KAAK,UAAU;gBACd,OAAO,SAAS,CAAC;YAClB,KAAK,SAAS;gBACb,OAAO,SAAS,CAAC;YAClB,KAAK,SAAS;gBACb,OAAO,cAAc,CAAC;SACvB;QAED,mCAAmC;QACnC,OAAO,MAAM,CAAC;IACf,CAAC;IAED,MAAM;QACL,MAAM,KAYF,IAAI,CAAC,KAAK,EAZR,EACL,iBAAiB,EACjB,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,oBAAoB,EACpB,sBAAsB,EACtB,OAAO,EACP,MAAM,EACN,MAAM,EACN,KAAK,OAEQ,EADV,KAAK,cAXH,+JAYL,CAAa,CAAC;QAEf,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE;YACnD,iBAAiB,EAAE,MAAM,KAAK,UAAU;YACxC,aAAa,EAAE,MAAM,KAAK,MAAM;YAChC,gBAAgB,EAAE,MAAM,KAAK,SAAS;YACtC,gBAAgB,EAAE,MAAM,KAAK,SAAS;YACtC,iBAAiB,EAAE,MAAM;SACzB,CAAC,CAAC;QAEH,MAAM,YAAY,GAAW,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,iBAAiB;QACxF,MAAM,cAAc,GAAG;YACtB,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;YAC1C,OAAO,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE;YACvC,IAAI,EAAE,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE;YACvC,UAAU,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE;SACzD,CAAC;QAEF,MAAM,KAAK,GAAG,CACb,oBAAC,eAAe;YACf,oBAAC,MAAM,CAAC,GAAG,kBAAC,MAAM,UAAK,cAAc;gBACpC,2CACC,SAAS,EAAE,YAAY,0BACF,OAAO,IACxB,KAAK;oBAET,oBAAC,IAAI,IACJ,SAAS,EAAC,aAAa,EACvB,IAAI,EAAE,IAAI,CAAC,mBAAmB,EAAE,GAC/B;oBACF,6BAAK,SAAS,EAAC,aAAa;wBAC3B,6BACC,KAAK,EAAE;gCACN,YAAY,EACX,OAAO;oCACP,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC;6BAClC;4BAED,6BAAK,SAAS,EAAC,cAAc,IAAE,KAAK,CAAO;4BAC1C,OAAO,IAAI,CACX,oBAAC,MAAM,kBACK,aAAa,EACxB,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,cAAc,EACxB,QAAQ,EAAC,OAAO,EAChB,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,IAAI,CAAC,WAAW,GACxB,CACF,CACI;wBACL,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,IAAI,CACrC,6BAAK,SAAS,EAAC,oBAAoB,IACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,CACf,CACN,CACI;oBACL,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,IAAI,CAC9C,6BAAK,SAAS,EAAC,eAAe;wBAC5B,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAC7B,oBAAC,MAAM,IACN,IAAI,EAAC,QAAQ,EACb,KAAK,QACL,OAAO,EAAE,sBAAsB,IAE9B,mBAAmB,CACZ,CACT;wBACA,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAC3B,oBAAC,MAAM,IACN,IAAI,EAAC,SAAS,EACd,KAAK,QACL,OAAO,EAAE,oBAAoB,IAE5B,iBAAiB,CACV,CACT,CACI,CACN,CACI,CACM,CACI,CAClB,CAAC;QAEF,OAAO,CACN,oBAAC,MAAM,IACN,WAAW,EAAE,CAAC,CAAC,MAAM,EACrB,MAAM,EAAE,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,IAEvD,KAAK,CACE,CACT,CAAC;IACH,CAAC;;AAjLM,WAAK,GAAG,UAAU,CAAC;AAEnB,kBAAY,GAAG;IACrB,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,IAAI;IACd,MAAM,EAAE,IAAI;CACZ,CAAC","sourcesContent":["import React, { Component } from 'react';\nimport classnames from 'classnames';\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport { ToastGroup } from './ToastGroup';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { Portal } from '../../internal/Portal';\nimport { tokens } from '@servicetitan/tokens/core';\n\nexport interface ToastPropsStrict {\n\t/** Adds one or more classnames for an element */\n\tclassName?: string;\n\n\t/** How long the Toast stays on screen, default value is 8000 (milliseconds) */\n\tduration?: number;\n\n\t/** Text for the primary button */\n\tprimaryActionName?: boolean | string;\n\n\t/** Function that fires when the user clicks on the primary button/action */\n\tonPrimaryActionClick?: (e: React.SyntheticEvent<HTMLElement>) => void;\n\n\t/** Function that fires when the user clicks the close icon */\n\tonClose?: (e?: React.SyntheticEvent<HTMLElement>) => void;\n\n\t/** Function that fires when the user clicks on the secondary button/action */\n\tonSecondaryActionClick?: (e: React.SyntheticEvent<HTMLElement>) => void;\n\n\t/** Makes Toast open through ReactDOM.createPortal */\n\tportal?: HTMLElement | boolean;\n\n\t/** Text for the secondary button */\n\tsecondaryActionName?: boolean | string;\n\n\t/** Determines the visual appearance and icon of the toast */\n\tstatus?: 'info' | 'critical' | 'success' | 'warning';\n\n\t/** The message displayed to the user */\n\ttitle: string;\n}\n\nexport interface ToastProps extends ToastPropsStrict {\n\t[propName: string]: any;\n}\n\ninterface ToastState {\n\tvisible: boolean;\n}\n\nexport class Toast extends Component<ToastProps, ToastState> {\n\tstatic Group = ToastGroup;\n\n\tstatic defaultProps = {\n\t\tstatus: 'info',\n\t\tduration: 8000,\n\t\tportal: true,\n\t};\n\n\tprivate timeout: number | null = null;\n\n\tconstructor(props: ToastProps) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tvisible: true,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif (this.props.duration < 1) return;\n\n\t\tthis.timeout = window.setTimeout(() => {\n\t\t\tthis.handleClose();\n\t\t}, this.props.duration);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.clearSubscription();\n\t}\n\n\thandleClose = (e?: React.SyntheticEvent<HTMLElement>) => {\n\t\tconst { onClose } = this.props;\n\n\t\tthis.clearSubscription();\n\t\tthis.setState({ visible: false });\n\n\t\tif (onClose) {\n\t\t\tonClose(e);\n\t\t}\n\t};\n\n\thasPrimaryAction() {\n\t\treturn !!(\n\t\t\tthis.props.primaryActionName && this.props.onPrimaryActionClick\n\t\t);\n\t}\n\n\thasSecondaryAction() {\n\t\treturn !!(\n\t\t\tthis.props.secondaryActionName && this.props.onSecondaryActionClick\n\t\t);\n\t}\n\n\tprivate clearSubscription() {\n\t\tif (this.timeout !== null) {\n\t\t\twindow.clearTimeout(this.timeout);\n\t\t}\n\t}\n\n\tprivate getIconNameByStatus() {\n\t\tswitch (this.props.status) {\n\t\t\tcase 'critical':\n\t\t\t\treturn 'warning';\n\t\t\tcase 'warning':\n\t\t\t\treturn 'warning';\n\t\t\tcase 'success':\n\t\t\t\treturn 'check_circle';\n\t\t}\n\n\t\t// if status == 'info' || undefined\n\t\treturn 'info';\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tprimaryActionName,\n\t\t\tsecondaryActionName,\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tonPrimaryActionClick,\n\t\t\tonSecondaryActionClick,\n\t\t\tonClose,\n\t\t\tportal,\n\t\t\tstatus,\n\t\t\ttitle,\n\t\t\t...props\n\t\t} = this.props;\n\n\t\tconst ToastClasses = classnames('Toast', className, {\n\t\t\t'Toast--critical': status === 'critical',\n\t\t\t'Toast--info': status === 'info',\n\t\t\t'Toast--success': status === 'success',\n\t\t\t'Toast--warning': status === 'warning',\n\t\t\t'Toast--floating': portal,\n\t\t});\n\n\t\tconst durationSlow: number = parseInt(tokens.durationSlow, 10) / 1000; // '300ms' -> 0.3\n\t\tconst toastAnimation = {\n\t\t\tinitial: { opacity: 0, y: 10, scale: 0.3 },\n\t\t\tanimate: { opacity: 1, y: 0, scale: 1 },\n\t\t\texit: { opacity: 0, y: 20, scale: 0.5 },\n\t\t\ttransition: { type: 'easeInOut', duration: durationSlow },\n\t\t};\n\n\t\tconst toast = (\n\t\t\t<AnimatePresence>\n\t\t\t\t<motion.div layout {...toastAnimation}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ToastClasses}\n\t\t\t\t\t\tdata-anvil-component=\"Toast\"\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclassName=\"Toast__icon\"\n\t\t\t\t\t\t\tname={this.getIconNameByStatus()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div className=\"Toast__text\">\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tpaddingRight:\n\t\t\t\t\t\t\t\t\t\tonClose &&\n\t\t\t\t\t\t\t\t\t\tparseInt(tokens.spacing3, 10) * 2,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"Toast__title\">{title}</div>\n\t\t\t\t\t\t\t\t{onClose && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\taria-label=\"close toast\"\n\t\t\t\t\t\t\t\t\t\tfill=\"subtle\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"Toast__close\"\n\t\t\t\t\t\t\t\t\t\ticonName=\"clear\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xsmall\"\n\t\t\t\t\t\t\t\t\t\tonClick={this.handleClose}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{this.props.children !== undefined && (\n\t\t\t\t\t\t\t\t<div className=\"Toast__description\">\n\t\t\t\t\t\t\t\t\t{this.props.children}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{(primaryActionName || secondaryActionName) && (\n\t\t\t\t\t\t\t<div className=\"Toast__action\">\n\t\t\t\t\t\t\t\t{this.hasSecondaryAction() && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tfill=\"subtle\"\n\t\t\t\t\t\t\t\t\t\tsmall\n\t\t\t\t\t\t\t\t\t\tonClick={onSecondaryActionClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{secondaryActionName}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{this.hasPrimaryAction() && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tfill=\"outline\"\n\t\t\t\t\t\t\t\t\t\tsmall\n\t\t\t\t\t\t\t\t\t\tonClick={onPrimaryActionClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{primaryActionName}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</motion.div>\n\t\t\t</AnimatePresence>\n\t\t);\n\n\t\treturn (\n\t\t\t<Portal\n\t\t\t\tconditional={!!portal}\n\t\t\t\ttarget={typeof portal !== 'boolean' ? portal : undefined}\n\t\t\t>\n\t\t\t\t{toast}\n\t\t\t</Portal>\n\t\t);\n\t}\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../../src/components/Toast/Toast.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport classnames from 'classnames';\nimport { Button } from '../Button';\nimport { Icon } from '../Icon';\nimport { ToastGroup } from './ToastGroup';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { Portal } from '../../internal/Portal';\nimport { tokens } from '@servicetitan/tokens/core';\nimport { ToastGroupContext } from './ToastGroupContext';\n\nexport interface ToastPropsStrict {\n\t/** Adds one or more classnames for an element */\n\tclassName?: string;\n\n\t/** How long the Toast stays on screen, default value is 8000 (milliseconds) */\n\tduration?: number;\n\n\t/** Text for the primary button */\n\tprimaryActionName?: boolean | string;\n\n\t/** Function that fires when the user clicks on the primary button/action */\n\tonPrimaryActionClick?: (e: React.SyntheticEvent<HTMLElement>) => void;\n\n\t/** Function that fires when the user clicks the close icon */\n\tonClose?: (e?: React.SyntheticEvent<HTMLElement>) => void;\n\n\t/** Function that fires when the user clicks on the secondary button/action */\n\tonSecondaryActionClick?: (e: React.SyntheticEvent<HTMLElement>) => void;\n\n\t/** Makes Toast open through ReactDOM.createPortal */\n\tportal?: HTMLElement | boolean;\n\n\t/** Text for the secondary button */\n\tsecondaryActionName?: boolean | string;\n\n\t/** Determines the visual appearance and icon of the toast */\n\tstatus?: 'info' | 'critical' | 'success' | 'warning';\n\n\t/** The message displayed to the user */\n\ttitle: string;\n}\n\nexport interface ToastProps extends ToastPropsStrict {\n\t[propName: string]: any;\n}\n\ninterface ToastState {\n\tvisible: boolean;\n}\n\nexport class Toast extends Component<ToastProps, ToastState> {\n\tstatic Group = ToastGroup;\n\tstatic contextType = ToastGroupContext;\n\n\tstatic defaultProps = {\n\t\tstatus: 'info',\n\t\tduration: 8000,\n\t\tportal: true,\n\t};\n\n\tprivate timeout: number | null = null;\n\n\tconstructor(props: ToastProps) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tvisible: true,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tif (this.props.duration < 1) return;\n\n\t\tthis.timeout = window.setTimeout(() => {\n\t\t\tthis.handleClose();\n\t\t}, this.props.duration);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.clearSubscription();\n\t}\n\n\thandleClose = (e?: React.SyntheticEvent<HTMLElement>) => {\n\t\tconst { onClose } = this.props;\n\n\t\tthis.clearSubscription();\n\t\tthis.setState({ visible: false });\n\n\t\tif (onClose) {\n\t\t\tonClose(e);\n\t\t}\n\t};\n\n\thasPrimaryAction() {\n\t\treturn !!(\n\t\t\tthis.props.primaryActionName && this.props.onPrimaryActionClick\n\t\t);\n\t}\n\n\thasSecondaryAction() {\n\t\treturn !!(\n\t\t\tthis.props.secondaryActionName && this.props.onSecondaryActionClick\n\t\t);\n\t}\n\n\tprivate clearSubscription() {\n\t\tif (this.timeout !== null) {\n\t\t\twindow.clearTimeout(this.timeout);\n\t\t}\n\t}\n\n\tprivate getIconNameByStatus() {\n\t\tswitch (this.props.status) {\n\t\t\tcase 'critical':\n\t\t\t\treturn 'warning';\n\t\t\tcase 'warning':\n\t\t\t\treturn 'warning';\n\t\t\tcase 'success':\n\t\t\t\treturn 'check_circle';\n\t\t}\n\n\t\t// if status == 'info' || undefined\n\t\treturn 'info';\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tprimaryActionName,\n\t\t\tsecondaryActionName,\n\t\t\tchildren,\n\t\t\tclassName,\n\t\t\tonPrimaryActionClick,\n\t\t\tonSecondaryActionClick,\n\t\t\tonClose,\n\t\t\tstatus,\n\t\t\ttitle,\n\t\t\t...props\n\t\t} = this.props;\n\n\t\tlet portal = this.props.portal;\n\t\tconst { isInToastGroup } = this.context;\n\n\t\tif (isInToastGroup) {\n\t\t\t// Ignore portal in a toast group.\n\t\t\tportal = undefined;\n\t\t}\n\n\t\tconst ToastClasses = classnames('Toast', className, {\n\t\t\t'Toast--critical': status === 'critical',\n\t\t\t'Toast--info': status === 'info',\n\t\t\t'Toast--success': status === 'success',\n\t\t\t'Toast--warning': status === 'warning',\n\t\t\t'Toast--floating': portal,\n\t\t});\n\n\t\tconst durationSlow: number = parseInt(tokens.durationSlow, 10) / 1000; // '300ms' -> 0.3\n\t\tconst toastAnimation = {\n\t\t\tinitial: { opacity: 0, y: 10, scale: 0.3 },\n\t\t\tanimate: { opacity: 1, y: 0, scale: 1 },\n\t\t\texit: { opacity: 0, y: 20, scale: 0.5 },\n\t\t\ttransition: { type: 'easeInOut', duration: durationSlow },\n\t\t};\n\n\t\tconst toast = (\n\t\t\t<AnimatePresence>\n\t\t\t\t<motion.div layout {...toastAnimation}>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ToastClasses}\n\t\t\t\t\t\tdata-anvil-component=\"Toast\"\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\tclassName=\"Toast__icon\"\n\t\t\t\t\t\t\tname={this.getIconNameByStatus()}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div className=\"Toast__text\">\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tpaddingRight:\n\t\t\t\t\t\t\t\t\t\tonClose &&\n\t\t\t\t\t\t\t\t\t\tparseInt(tokens.spacing3, 10) * 2,\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<div className=\"Toast__title\">{title}</div>\n\t\t\t\t\t\t\t\t{onClose && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\taria-label=\"close toast\"\n\t\t\t\t\t\t\t\t\t\tfill=\"subtle\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"Toast__close\"\n\t\t\t\t\t\t\t\t\t\ticonName=\"clear\"\n\t\t\t\t\t\t\t\t\t\tsize=\"xsmall\"\n\t\t\t\t\t\t\t\t\t\tonClick={this.handleClose}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{this.props.children !== undefined && (\n\t\t\t\t\t\t\t\t<div className=\"Toast__description\">\n\t\t\t\t\t\t\t\t\t{this.props.children}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{(primaryActionName || secondaryActionName) && (\n\t\t\t\t\t\t\t<div className=\"Toast__action\">\n\t\t\t\t\t\t\t\t{this.hasSecondaryAction() && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tfill=\"subtle\"\n\t\t\t\t\t\t\t\t\t\tsmall\n\t\t\t\t\t\t\t\t\t\tonClick={onSecondaryActionClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{secondaryActionName}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t{this.hasPrimaryAction() && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tfill=\"outline\"\n\t\t\t\t\t\t\t\t\t\tsmall\n\t\t\t\t\t\t\t\t\t\tonClick={onPrimaryActionClick}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{primaryActionName}\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</motion.div>\n\t\t\t</AnimatePresence>\n\t\t);\n\n\t\treturn (\n\t\t\t<Portal\n\t\t\t\tconditional={!!portal}\n\t\t\t\ttarget={typeof portal !== 'boolean' ? portal : undefined}\n\t\t\t>\n\t\t\t\t{toast}\n\t\t\t</Portal>\n\t\t);\n\t}\n}\n"]}
|
|
@@ -12,12 +12,14 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
12
12
|
import React from 'react';
|
|
13
13
|
import classnames from 'classnames';
|
|
14
14
|
import { Portal } from '../../internal/Portal';
|
|
15
|
+
import { ToastGroupContext } from './ToastGroupContext';
|
|
15
16
|
export const ToastGroup = React.forwardRef((_a, ref) => {
|
|
16
17
|
var { children, className, portal = true } = _a, props = __rest(_a, ["children", "className", "portal"]);
|
|
17
18
|
const ToastGroupClasses = classnames('ToastGroup', className, {
|
|
18
19
|
'ToastGroup--floating': portal,
|
|
19
20
|
});
|
|
20
|
-
const toastGroup = (React.createElement(
|
|
21
|
+
const toastGroup = (React.createElement(ToastGroupContext.Provider, { value: { isInToastGroup: true } },
|
|
22
|
+
React.createElement("div", Object.assign({ ref: ref, className: ToastGroupClasses }, props), children)));
|
|
21
23
|
return portal ? (React.createElement(Portal, { target: typeof portal !== 'boolean' ? portal : undefined }, toastGroup)) : (toastGroup);
|
|
22
24
|
});
|
|
23
25
|
//# sourceMappingURL=ToastGroup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToastGroup.js","sourceRoot":"","sources":["../../../src/components/Toast/ToastGroup.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ToastGroup.js","sourceRoot":"","sources":["../../../src/components/Toast/ToastGroup.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAuBxD,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CACzC,CAAC,EAAgD,EAAE,GAAG,EAAE,EAAE;QAAzD,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,OAAY,EAAP,KAAK,cAA9C,mCAAgD,CAAF;IAC9C,MAAM,iBAAiB,GAAG,UAAU,CAAC,YAAY,EAAE,SAAS,EAAE;QAC7D,sBAAsB,EAAE,MAAM;KAC9B,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,CAClB,oBAAC,iBAAiB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;QAC1D,2CAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,IAAM,KAAK,GACpD,QAAQ,CACJ,CACsB,CAC7B,CAAC;IAEF,OAAO,MAAM,CAAC,CAAC,CAAC,CACf,oBAAC,MAAM,IAAC,MAAM,EAAE,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,IAC9D,UAAU,CACH,CACT,CAAC,CAAC,CAAC,CACH,UAAU,CACV,CAAC;AACH,CAAC,CACD,CAAC","sourcesContent":["import React from 'react';\nimport classnames from 'classnames';\nimport { ToastProps } from './Toast';\nimport { Portal } from '../../internal/Portal';\nimport { ToastGroupContext } from './ToastGroupContext';\n\ntype ToastGroupChildType =\n\t| React.ReactElement<ToastProps>\n\t| boolean\n\t| null\n\t| undefined;\n\nexport interface ToastGroupPropsStrict {\n\t/** Toast Elements */\n\tchildren: ToastGroupChildType | ToastGroupChildType[];\n\n\t/** Adds one or more classnames for an element */\n\tclassName?: string;\n\n\t/** Makes Toast open through ReactDOM.createPortal */\n\tportal?: HTMLElement | boolean;\n}\n\nexport interface ToastGroupProps extends ToastGroupPropsStrict {\n\t[propName: string]: any;\n}\n\nexport const ToastGroup = React.forwardRef<HTMLDivElement, ToastGroupProps>(\n\t({ children, className, portal = true, ...props }, ref) => {\n\t\tconst ToastGroupClasses = classnames('ToastGroup', className, {\n\t\t\t'ToastGroup--floating': portal,\n\t\t});\n\n\t\tconst toastGroup = (\n\t\t\t<ToastGroupContext.Provider value={{ isInToastGroup: true }}>\n\t\t\t\t<div ref={ref} className={ToastGroupClasses} {...props}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t</ToastGroupContext.Provider>\n\t\t);\n\n\t\treturn portal ? (\n\t\t\t<Portal target={typeof portal !== 'boolean' ? portal : undefined}>\n\t\t\t\t{toastGroup}\n\t\t\t</Portal>\n\t\t) : (\n\t\t\ttoastGroup\n\t\t);\n\t}\n);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToastGroupContext.js","sourceRoot":"","sources":["../../../src/components/Toast/ToastGroupContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,iBAAiB,GAAG,KAAK,CAAC,aAAa,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC","sourcesContent":["import React from 'react';\n\nexport const ToastGroupContext = React.createContext({ isInToastGroup: false });\n"]}
|
package/dist/global/index.css
CHANGED
package/dist/global/version.css
CHANGED