@activecollab/components 1.0.18 → 1.0.19

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.
@@ -302,8 +302,7 @@ var DateStepper = function DateStepper(_ref) {
302
302
  style: dateStepperWidth(fromDate, toDate, step)
303
303
  }, withDatePicker ? /*#__PURE__*/_react.default.createElement(_Styles.StyledMenu, {
304
304
  target: /*#__PURE__*/_react.default.createElement(_Styles.StyledButton, {
305
- type: "button",
306
- className: "c-simple-menu__trigger"
305
+ type: "button"
307
306
  }, /*#__PURE__*/_react.default.createElement("span", null, getDateFormatted)),
308
307
  open: showDatePicker,
309
308
  onOpen: handleShow,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Steppers/DateStepper/DateStepper.tsx"],"names":["DateStepper","step","formatCallback","onChange","from","to","onBack","onForward","minValue","maxValue","className","period","datePickerClass","withDatePicker","defaultMonth","Date","popperClassName","position","fromDate","setFromDate","toDate","setToDate","showDatePicker","setShowDatePicker","month","setMonth","getDatesByPeriod","interval","date","add","clone","startOf","endOf","getDateFormatted","actualYear","year","showWeekOrCustomDateFormat","start","end","format","startDate","endDate","quarter","onChangeCallback","amount","newFrom","newTo","onDatePickerChange","dates","fromDateTemp","toDateTemp","isAfterMaxDate","isSameOrBefore","isBeforeMinDate","isSameOrAfter","onRightClickHandler","onLeftClickHandler","renderLeftRightButtons","handleShow","closeMenu","onMonthChange","m","dateStepperWidth","fromDay","toDay","range","minWidth","isDisabled","day","dayFormat","isBefore","isAfter","modifiers","customClassNames","disabled","nonWorkingDay","MomentLocaleUtils","displayName"],"mappings":"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","sourcesContent":["import React, { FC, useCallback, useMemo, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport moment, { Moment } from \"moment\";\nimport MomentLocaleUtils from \"react-day-picker/moment\";\nimport { Placement } from \"@popperjs/core\";\nimport { Button } from \"../../Button/Button\";\nimport CaretLeftIcon from \"../../Icons/collection/CaretLeft\";\nimport CaretRightIcon from \"../../Icons/collection/CaretRight\";\nimport { DatePicker } from \"../../DatePicker\";\nimport { customClassNames } from \"../../DatePicker/ClassNames\";\nimport {\n StyledButton,\n StyledButtonGroup,\n StyledDiv,\n StyledMenu,\n StyledSpan,\n} from \"./Styles\";\n\ninterface IDateStepperProps {\n /** One of the possible steps for this component */\n step:\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"yearly\"\n | \"custom\"\n | string;\n /** Callback function that will be called after the changed range */\n onChange?: (from: Date, to: Date) => void;\n /** Start date of the range */\n from: Date | string;\n /** End date of the range */\n to: Date | string;\n /** Callback function that will format the text label */\n formatCallback?: (from: string | Date, to: string | Date) => string;\n /** Default month */\n defaultMonth?: Date;\n /** Callback function onBack */\n onBack?: (from: Date, to: Date) => void;\n /** Callback function onForward */\n onForward?: (from: Date, to: Date) => void;\n /** Min date */\n minValue?: Date;\n /** Max fate */\n maxValue?: Date;\n /** html class */\n className?: string;\n /** Period for calculating week (isoWeek) */\n period?: \"week\" | \"isoWeek\";\n /** Classes for datePicker */\n datePickerClass?: string;\n /** Show datePicker in the middle button */\n withDatePicker?: boolean;\n /** Popper class name*/\n popperClassName?: string;\n /** DatePicker menu position */\n position?: Placement;\n}\n\n/**\n * This component allow you to select date range. It accepts two parameters \"from\" and \"to\" as valid format\n * onChange and onBack and onForward it will return \"from: Date\" and \"to: Date\" as function arguments\n */\nexport const DateStepper: FC<IDateStepperProps> = ({\n step,\n formatCallback,\n onChange,\n from,\n to,\n onBack,\n onForward,\n minValue,\n maxValue,\n className,\n period = \"week\",\n datePickerClass,\n withDatePicker = true,\n defaultMonth = new Date(),\n popperClassName,\n position = \"bottom\",\n}) => {\n const [fromDate, setFromDate] = useState(moment(from));\n const [toDate, setToDate] = useState(moment(to));\n const [showDatePicker, setShowDatePicker] = useState(false);\n const [month, setMonth] = useState(defaultMonth);\n\n const getDatesByPeriod = useCallback(\n (interval: number): Moment[] => {\n const date = fromDate ? fromDate : moment();\n if (step === \"daily\") {\n date.add(interval, \"days\");\n return [date, date.clone()];\n } else if (step === \"weekly\") {\n date.add(interval, \"weeks\");\n return [date.clone().startOf(period), date.clone().endOf(period)];\n } else if (step === \"monthly\") {\n date.add(interval, \"months\");\n return [date.clone().startOf(\"month\"), date.clone().endOf(\"month\")];\n } else if (step === \"quarterly\") {\n date.add(interval, \"quarters\");\n return [date.clone().startOf(\"quarter\"), date.clone().endOf(\"quarter\")];\n } else if (step === \"yearly\") {\n date.add(interval, \"years\");\n return [date.clone().startOf(\"year\"), date.clone().endOf(\"year\")];\n }\n return [date, date];\n },\n [fromDate, period, step]\n );\n\n const getDateFormatted = useMemo(() => {\n if (formatCallback) {\n return formatCallback(fromDate.toDate(), toDate.toDate());\n }\n\n const actualYear = moment().year();\n\n const showWeekOrCustomDateFormat = (start, end): string => {\n if (start.year() === actualYear && end.year() === actualYear) {\n return start.format(\"MMM DD\") + \" - \" + end.format(\"MMM DD\");\n } else {\n return start.format(\"MMM DD YYYY\") + \" - \" + end.format(\"MMM DD YYYY\");\n }\n };\n\n if (step === \"daily\") {\n if (fromDate.year() === actualYear) {\n return fromDate.format(\"MMM DD\");\n }\n return fromDate.format(\"MMM DD YYYY\");\n } else if (step === \"weekly\") {\n const startDate = fromDate.clone().startOf(period);\n const endDate = startDate.clone().endOf(period);\n return showWeekOrCustomDateFormat(startDate, endDate);\n } else if (step === \"monthly\") {\n return fromDate.format(\"MMM YYYY\");\n } else if (step === \"quarterly\") {\n return `Q${fromDate.quarter()}/${fromDate.format(\"YYYY\")}`;\n } else if (step === \"yearly\") {\n return fromDate.format(\"YYYY\");\n } else if (step === \"custom\") {\n return showWeekOrCustomDateFormat(fromDate, toDate);\n }\n\n return \"\";\n }, [fromDate, step, toDate, formatCallback, period]);\n\n const onChangeCallback = useCallback(\n (amount: number) => {\n const [newFrom, newTo] = getDatesByPeriod(amount);\n setFromDate(moment(newFrom));\n setToDate(moment(newTo));\n\n if (onChange) {\n onChange(newFrom.toDate(), newTo.toDate());\n }\n },\n [onChange, getDatesByPeriod]\n );\n\n const onDatePickerChange = useCallback(\n (dates?: { from: Date; to: Date }) => {\n const fromDateTemp = dates?.from;\n const toDateTemp = dates?.to;\n\n setFromDate(moment(fromDateTemp));\n setToDate(moment(toDateTemp));\n\n if (\n onChange &&\n fromDateTemp instanceof Date &&\n toDateTemp instanceof Date\n ) {\n onChange(fromDateTemp, toDateTemp);\n }\n },\n [onChange, setFromDate, setToDate]\n );\n\n const isAfterMaxDate = useMemo(() => {\n return (\n maxValue instanceof Date &&\n moment(moment(maxValue).format(\"YYYY-MM-DD\")).isSameOrBefore(\n toDate.format(\"YYYY-MM-DD\")\n )\n );\n }, [maxValue, toDate]);\n\n const isBeforeMinDate = useMemo(() => {\n return (\n minValue instanceof Date &&\n moment(moment(minValue).format(\"YYYY-MM-DD\")).isSameOrAfter(\n toDate.format(\"YYYY-MM-DD\")\n )\n );\n }, [minValue, toDate]);\n\n useEffect(() => {\n if (isBeforeMinDate) {\n if (step === \"daily\") {\n setFromDate(moment(minValue));\n setToDate(moment(minValue));\n }\n }\n if (isAfterMaxDate) {\n if (step === \"daily\") {\n setFromDate(moment(maxValue));\n setToDate(moment(maxValue));\n }\n }\n }, [step, minValue, maxValue, isBeforeMinDate, isAfterMaxDate]);\n\n const onRightClickHandler = useCallback(() => {\n if (isAfterMaxDate) {\n return;\n }\n\n onChangeCallback(1);\n\n if (onForward) {\n onForward(fromDate.toDate(), toDate.toDate());\n }\n }, [isAfterMaxDate, onChangeCallback, onForward, fromDate, toDate]);\n\n const onLeftClickHandler = useCallback(() => {\n if (isBeforeMinDate) {\n return;\n }\n\n onChangeCallback(-1);\n\n if (onBack) {\n onBack(fromDate.toDate(), toDate.toDate());\n }\n }, [isBeforeMinDate, onChangeCallback, onBack, fromDate, toDate]);\n\n const renderLeftRightButtons = useMemo(() => {\n return step !== \"custom\";\n }, [step]);\n\n const handleShow = useCallback(() => {\n setShowDatePicker(!showDatePicker);\n if (fromDate) {\n setMonth(fromDate.toDate());\n }\n }, [setShowDatePicker, showDatePicker, fromDate]);\n\n const closeMenu = useCallback(() => {\n setShowDatePicker(false);\n }, []);\n\n const onMonthChange = useCallback(\n (m: Date) => {\n setMonth(m);\n },\n [setMonth]\n );\n\n useEffect(() => {\n setFromDate(moment(from));\n setToDate(moment(to));\n }, [from, to]);\n\n const dateStepperWidth = (\n fromDay: Moment,\n toDay: Moment,\n range: string\n ): { minWidth: string } => {\n if (\n fromDay.year() !== moment().year() ||\n toDay.year() !== moment().year()\n ) {\n switch (range) {\n case \"daily\":\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"232px\" };\n }\n }\n switch (range) {\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"182px\" };\n }\n\n return { minWidth: \"102px\" };\n };\n const isDisabled = useCallback(\n (day: Date): boolean => {\n const dayFormat = moment(day).format(\"YYYY-MM-DD\");\n\n const isBefore =\n maxValue instanceof Date &&\n moment(moment(maxValue).format(\"YYYY-MM-DD\")).isBefore(dayFormat);\n const isAfter =\n minValue instanceof Date &&\n moment(moment(minValue).format(\"YYYY-MM-DD\")).isAfter(dayFormat);\n\n return isBefore || isAfter;\n },\n [maxValue, minValue]\n );\n\n const modifiers = useMemo(() => {\n return {\n [customClassNames.disabled]: (day: Date): boolean => {\n return isDisabled(day);\n },\n [customClassNames.nonWorkingDay]: (day: Date): boolean => {\n return isDisabled(day);\n },\n };\n }, [isDisabled]);\n\n return (\n <StyledButtonGroup className={classNames(\"c-date-stepper\", className)}>\n {renderLeftRightButtons ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onLeftClickHandler}\n disabled={isBeforeMinDate}\n >\n <CaretLeftIcon />\n </Button>\n ) : null}\n <StyledDiv\n $isTargetable={step === \"yearly\" || !withDatePicker}\n $isRounded={step === \"custom\"}\n style={dateStepperWidth(fromDate, toDate, step)}\n >\n {withDatePicker ? (\n <StyledMenu\n target={\n <StyledButton type=\"button\" className=\"c-simple-menu__trigger\">\n <span>{getDateFormatted}</span>\n </StyledButton>\n }\n open={showDatePicker}\n onOpen={handleShow}\n onClose={closeMenu}\n popperClassName={popperClassName}\n position={position}\n >\n <DatePicker\n month={month}\n localeUtils={MomentLocaleUtils}\n locale=\"en\"\n selectionMode={step}\n className={datePickerClass}\n selectedDays={{ from: fromDate.toDate(), to: toDate.toDate() }}\n onChange={onDatePickerChange}\n onMonthChange={onMonthChange}\n firstDayOfWeek={period === \"week\" ? 0 : 1}\n modifiers={modifiers}\n dateRequired\n fixedWeeks\n />\n </StyledMenu>\n ) : (\n <StyledSpan>{getDateFormatted}</StyledSpan>\n )}\n </StyledDiv>\n {renderLeftRightButtons ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onRightClickHandler}\n disabled={isAfterMaxDate}\n >\n <CaretRightIcon />\n </Button>\n ) : null}\n </StyledButtonGroup>\n );\n};\n\nDateStepper.displayName = \"DateStepper\";\n"],"file":"DateStepper.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Steppers/DateStepper/DateStepper.tsx"],"names":["DateStepper","step","formatCallback","onChange","from","to","onBack","onForward","minValue","maxValue","className","period","datePickerClass","withDatePicker","defaultMonth","Date","popperClassName","position","fromDate","setFromDate","toDate","setToDate","showDatePicker","setShowDatePicker","month","setMonth","getDatesByPeriod","interval","date","add","clone","startOf","endOf","getDateFormatted","actualYear","year","showWeekOrCustomDateFormat","start","end","format","startDate","endDate","quarter","onChangeCallback","amount","newFrom","newTo","onDatePickerChange","dates","fromDateTemp","toDateTemp","isAfterMaxDate","isSameOrBefore","isBeforeMinDate","isSameOrAfter","onRightClickHandler","onLeftClickHandler","renderLeftRightButtons","handleShow","closeMenu","onMonthChange","m","dateStepperWidth","fromDay","toDay","range","minWidth","isDisabled","day","dayFormat","isBefore","isAfter","modifiers","customClassNames","disabled","nonWorkingDay","MomentLocaleUtils","displayName"],"mappings":"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","sourcesContent":["import React, { FC, useCallback, useMemo, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport moment, { Moment } from \"moment\";\nimport MomentLocaleUtils from \"react-day-picker/moment\";\nimport { Placement } from \"@popperjs/core\";\nimport { Button } from \"../../Button/Button\";\nimport CaretLeftIcon from \"../../Icons/collection/CaretLeft\";\nimport CaretRightIcon from \"../../Icons/collection/CaretRight\";\nimport { DatePicker } from \"../../DatePicker\";\nimport { customClassNames } from \"../../DatePicker/ClassNames\";\nimport {\n StyledButton,\n StyledButtonGroup,\n StyledDiv,\n StyledMenu,\n StyledSpan,\n} from \"./Styles\";\n\ninterface IDateStepperProps {\n /** One of the possible steps for this component */\n step:\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"yearly\"\n | \"custom\"\n | string;\n /** Callback function that will be called after the changed range */\n onChange?: (from: Date, to: Date) => void;\n /** Start date of the range */\n from: Date | string;\n /** End date of the range */\n to: Date | string;\n /** Callback function that will format the text label */\n formatCallback?: (from: string | Date, to: string | Date) => string;\n /** Default month */\n defaultMonth?: Date;\n /** Callback function onBack */\n onBack?: (from: Date, to: Date) => void;\n /** Callback function onForward */\n onForward?: (from: Date, to: Date) => void;\n /** Min date */\n minValue?: Date;\n /** Max fate */\n maxValue?: Date;\n /** html class */\n className?: string;\n /** Period for calculating week (isoWeek) */\n period?: \"week\" | \"isoWeek\";\n /** Classes for datePicker */\n datePickerClass?: string;\n /** Show datePicker in the middle button */\n withDatePicker?: boolean;\n /** Popper class name*/\n popperClassName?: string;\n /** DatePicker menu position */\n position?: Placement;\n}\n\n/**\n * This component allow you to select date range. It accepts two parameters \"from\" and \"to\" as valid format\n * onChange and onBack and onForward it will return \"from: Date\" and \"to: Date\" as function arguments\n */\nexport const DateStepper: FC<IDateStepperProps> = ({\n step,\n formatCallback,\n onChange,\n from,\n to,\n onBack,\n onForward,\n minValue,\n maxValue,\n className,\n period = \"week\",\n datePickerClass,\n withDatePicker = true,\n defaultMonth = new Date(),\n popperClassName,\n position = \"bottom\",\n}) => {\n const [fromDate, setFromDate] = useState(moment(from));\n const [toDate, setToDate] = useState(moment(to));\n const [showDatePicker, setShowDatePicker] = useState(false);\n const [month, setMonth] = useState(defaultMonth);\n\n const getDatesByPeriod = useCallback(\n (interval: number): Moment[] => {\n const date = fromDate ? fromDate : moment();\n if (step === \"daily\") {\n date.add(interval, \"days\");\n return [date, date.clone()];\n } else if (step === \"weekly\") {\n date.add(interval, \"weeks\");\n return [date.clone().startOf(period), date.clone().endOf(period)];\n } else if (step === \"monthly\") {\n date.add(interval, \"months\");\n return [date.clone().startOf(\"month\"), date.clone().endOf(\"month\")];\n } else if (step === \"quarterly\") {\n date.add(interval, \"quarters\");\n return [date.clone().startOf(\"quarter\"), date.clone().endOf(\"quarter\")];\n } else if (step === \"yearly\") {\n date.add(interval, \"years\");\n return [date.clone().startOf(\"year\"), date.clone().endOf(\"year\")];\n }\n return [date, date];\n },\n [fromDate, period, step]\n );\n\n const getDateFormatted = useMemo(() => {\n if (formatCallback) {\n return formatCallback(fromDate.toDate(), toDate.toDate());\n }\n\n const actualYear = moment().year();\n\n const showWeekOrCustomDateFormat = (start, end): string => {\n if (start.year() === actualYear && end.year() === actualYear) {\n return start.format(\"MMM DD\") + \" - \" + end.format(\"MMM DD\");\n } else {\n return start.format(\"MMM DD YYYY\") + \" - \" + end.format(\"MMM DD YYYY\");\n }\n };\n\n if (step === \"daily\") {\n if (fromDate.year() === actualYear) {\n return fromDate.format(\"MMM DD\");\n }\n return fromDate.format(\"MMM DD YYYY\");\n } else if (step === \"weekly\") {\n const startDate = fromDate.clone().startOf(period);\n const endDate = startDate.clone().endOf(period);\n return showWeekOrCustomDateFormat(startDate, endDate);\n } else if (step === \"monthly\") {\n return fromDate.format(\"MMM YYYY\");\n } else if (step === \"quarterly\") {\n return `Q${fromDate.quarter()}/${fromDate.format(\"YYYY\")}`;\n } else if (step === \"yearly\") {\n return fromDate.format(\"YYYY\");\n } else if (step === \"custom\") {\n return showWeekOrCustomDateFormat(fromDate, toDate);\n }\n\n return \"\";\n }, [fromDate, step, toDate, formatCallback, period]);\n\n const onChangeCallback = useCallback(\n (amount: number) => {\n const [newFrom, newTo] = getDatesByPeriod(amount);\n setFromDate(moment(newFrom));\n setToDate(moment(newTo));\n\n if (onChange) {\n onChange(newFrom.toDate(), newTo.toDate());\n }\n },\n [onChange, getDatesByPeriod]\n );\n\n const onDatePickerChange = useCallback(\n (dates?: { from: Date; to: Date }) => {\n const fromDateTemp = dates?.from;\n const toDateTemp = dates?.to;\n\n setFromDate(moment(fromDateTemp));\n setToDate(moment(toDateTemp));\n\n if (\n onChange &&\n fromDateTemp instanceof Date &&\n toDateTemp instanceof Date\n ) {\n onChange(fromDateTemp, toDateTemp);\n }\n },\n [onChange, setFromDate, setToDate]\n );\n\n const isAfterMaxDate = useMemo(() => {\n return (\n maxValue instanceof Date &&\n moment(moment(maxValue).format(\"YYYY-MM-DD\")).isSameOrBefore(\n toDate.format(\"YYYY-MM-DD\")\n )\n );\n }, [maxValue, toDate]);\n\n const isBeforeMinDate = useMemo(() => {\n return (\n minValue instanceof Date &&\n moment(moment(minValue).format(\"YYYY-MM-DD\")).isSameOrAfter(\n toDate.format(\"YYYY-MM-DD\")\n )\n );\n }, [minValue, toDate]);\n\n useEffect(() => {\n if (isBeforeMinDate) {\n if (step === \"daily\") {\n setFromDate(moment(minValue));\n setToDate(moment(minValue));\n }\n }\n if (isAfterMaxDate) {\n if (step === \"daily\") {\n setFromDate(moment(maxValue));\n setToDate(moment(maxValue));\n }\n }\n }, [step, minValue, maxValue, isBeforeMinDate, isAfterMaxDate]);\n\n const onRightClickHandler = useCallback(() => {\n if (isAfterMaxDate) {\n return;\n }\n\n onChangeCallback(1);\n\n if (onForward) {\n onForward(fromDate.toDate(), toDate.toDate());\n }\n }, [isAfterMaxDate, onChangeCallback, onForward, fromDate, toDate]);\n\n const onLeftClickHandler = useCallback(() => {\n if (isBeforeMinDate) {\n return;\n }\n\n onChangeCallback(-1);\n\n if (onBack) {\n onBack(fromDate.toDate(), toDate.toDate());\n }\n }, [isBeforeMinDate, onChangeCallback, onBack, fromDate, toDate]);\n\n const renderLeftRightButtons = useMemo(() => {\n return step !== \"custom\";\n }, [step]);\n\n const handleShow = useCallback(() => {\n setShowDatePicker(!showDatePicker);\n if (fromDate) {\n setMonth(fromDate.toDate());\n }\n }, [setShowDatePicker, showDatePicker, fromDate]);\n\n const closeMenu = useCallback(() => {\n setShowDatePicker(false);\n }, []);\n\n const onMonthChange = useCallback(\n (m: Date) => {\n setMonth(m);\n },\n [setMonth]\n );\n\n useEffect(() => {\n setFromDate(moment(from));\n setToDate(moment(to));\n }, [from, to]);\n\n const dateStepperWidth = (\n fromDay: Moment,\n toDay: Moment,\n range: string\n ): { minWidth: string } => {\n if (\n fromDay.year() !== moment().year() ||\n toDay.year() !== moment().year()\n ) {\n switch (range) {\n case \"daily\":\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"232px\" };\n }\n }\n switch (range) {\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"182px\" };\n }\n\n return { minWidth: \"102px\" };\n };\n const isDisabled = useCallback(\n (day: Date): boolean => {\n const dayFormat = moment(day).format(\"YYYY-MM-DD\");\n\n const isBefore =\n maxValue instanceof Date &&\n moment(moment(maxValue).format(\"YYYY-MM-DD\")).isBefore(dayFormat);\n const isAfter =\n minValue instanceof Date &&\n moment(moment(minValue).format(\"YYYY-MM-DD\")).isAfter(dayFormat);\n\n return isBefore || isAfter;\n },\n [maxValue, minValue]\n );\n\n const modifiers = useMemo(() => {\n return {\n [customClassNames.disabled]: (day: Date): boolean => {\n return isDisabled(day);\n },\n [customClassNames.nonWorkingDay]: (day: Date): boolean => {\n return isDisabled(day);\n },\n };\n }, [isDisabled]);\n\n return (\n <StyledButtonGroup className={classNames(\"c-date-stepper\", className)}>\n {renderLeftRightButtons ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onLeftClickHandler}\n disabled={isBeforeMinDate}\n >\n <CaretLeftIcon />\n </Button>\n ) : null}\n <StyledDiv\n $isTargetable={step === \"yearly\" || !withDatePicker}\n $isRounded={step === \"custom\"}\n style={dateStepperWidth(fromDate, toDate, step)}\n >\n {withDatePicker ? (\n <StyledMenu\n target={\n <StyledButton type=\"button\">\n <span>{getDateFormatted}</span>\n </StyledButton>\n }\n open={showDatePicker}\n onOpen={handleShow}\n onClose={closeMenu}\n popperClassName={popperClassName}\n position={position}\n >\n <DatePicker\n month={month}\n localeUtils={MomentLocaleUtils}\n locale=\"en\"\n selectionMode={step}\n className={datePickerClass}\n selectedDays={{ from: fromDate.toDate(), to: toDate.toDate() }}\n onChange={onDatePickerChange}\n onMonthChange={onMonthChange}\n firstDayOfWeek={period === \"week\" ? 0 : 1}\n modifiers={modifiers}\n dateRequired\n fixedWeeks\n />\n </StyledMenu>\n ) : (\n <StyledSpan>{getDateFormatted}</StyledSpan>\n )}\n </StyledDiv>\n {renderLeftRightButtons ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onRightClickHandler}\n disabled={isAfterMaxDate}\n >\n <CaretRightIcon />\n </Button>\n ) : null}\n </StyledButtonGroup>\n );\n};\n\nDateStepper.displayName = \"DateStepper\";\n"],"file":"DateStepper.js"}
@@ -259,8 +259,7 @@ export var DateStepper = function DateStepper(_ref) {
259
259
  style: dateStepperWidth(fromDate, toDate, step)
260
260
  }, withDatePicker ? /*#__PURE__*/React.createElement(StyledMenu, {
261
261
  target: /*#__PURE__*/React.createElement(StyledButton, {
262
- type: "button",
263
- className: "c-simple-menu__trigger"
262
+ type: "button"
264
263
  }, /*#__PURE__*/React.createElement("span", null, getDateFormatted)),
265
264
  open: showDatePicker,
266
265
  onOpen: handleShow,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/Steppers/DateStepper/DateStepper.tsx"],"names":["React","useCallback","useMemo","useState","useEffect","classNames","moment","MomentLocaleUtils","Button","CaretLeftIcon","CaretRightIcon","DatePicker","customClassNames","StyledButton","StyledButtonGroup","StyledDiv","StyledMenu","StyledSpan","DateStepper","step","formatCallback","onChange","from","to","onBack","onForward","minValue","maxValue","className","period","datePickerClass","withDatePicker","defaultMonth","Date","popperClassName","position","fromDate","setFromDate","toDate","setToDate","showDatePicker","setShowDatePicker","month","setMonth","getDatesByPeriod","interval","date","add","clone","startOf","endOf","getDateFormatted","actualYear","year","showWeekOrCustomDateFormat","start","end","format","startDate","endDate","quarter","onChangeCallback","amount","newFrom","newTo","onDatePickerChange","dates","fromDateTemp","toDateTemp","isAfterMaxDate","isSameOrBefore","isBeforeMinDate","isSameOrAfter","onRightClickHandler","onLeftClickHandler","renderLeftRightButtons","handleShow","closeMenu","onMonthChange","m","dateStepperWidth","fromDay","toDay","range","minWidth","isDisabled","day","dayFormat","isBefore","isAfter","modifiers","disabled","nonWorkingDay","displayName"],"mappings":"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","sourcesContent":["import React, { FC, useCallback, useMemo, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport moment, { Moment } from \"moment\";\nimport MomentLocaleUtils from \"react-day-picker/moment\";\nimport { Placement } from \"@popperjs/core\";\nimport { Button } from \"../../Button/Button\";\nimport CaretLeftIcon from \"../../Icons/collection/CaretLeft\";\nimport CaretRightIcon from \"../../Icons/collection/CaretRight\";\nimport { DatePicker } from \"../../DatePicker\";\nimport { customClassNames } from \"../../DatePicker/ClassNames\";\nimport {\n StyledButton,\n StyledButtonGroup,\n StyledDiv,\n StyledMenu,\n StyledSpan,\n} from \"./Styles\";\n\ninterface IDateStepperProps {\n /** One of the possible steps for this component */\n step:\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"yearly\"\n | \"custom\"\n | string;\n /** Callback function that will be called after the changed range */\n onChange?: (from: Date, to: Date) => void;\n /** Start date of the range */\n from: Date | string;\n /** End date of the range */\n to: Date | string;\n /** Callback function that will format the text label */\n formatCallback?: (from: string | Date, to: string | Date) => string;\n /** Default month */\n defaultMonth?: Date;\n /** Callback function onBack */\n onBack?: (from: Date, to: Date) => void;\n /** Callback function onForward */\n onForward?: (from: Date, to: Date) => void;\n /** Min date */\n minValue?: Date;\n /** Max fate */\n maxValue?: Date;\n /** html class */\n className?: string;\n /** Period for calculating week (isoWeek) */\n period?: \"week\" | \"isoWeek\";\n /** Classes for datePicker */\n datePickerClass?: string;\n /** Show datePicker in the middle button */\n withDatePicker?: boolean;\n /** Popper class name*/\n popperClassName?: string;\n /** DatePicker menu position */\n position?: Placement;\n}\n\n/**\n * This component allow you to select date range. It accepts two parameters \"from\" and \"to\" as valid format\n * onChange and onBack and onForward it will return \"from: Date\" and \"to: Date\" as function arguments\n */\nexport const DateStepper: FC<IDateStepperProps> = ({\n step,\n formatCallback,\n onChange,\n from,\n to,\n onBack,\n onForward,\n minValue,\n maxValue,\n className,\n period = \"week\",\n datePickerClass,\n withDatePicker = true,\n defaultMonth = new Date(),\n popperClassName,\n position = \"bottom\",\n}) => {\n const [fromDate, setFromDate] = useState(moment(from));\n const [toDate, setToDate] = useState(moment(to));\n const [showDatePicker, setShowDatePicker] = useState(false);\n const [month, setMonth] = useState(defaultMonth);\n\n const getDatesByPeriod = useCallback(\n (interval: number): Moment[] => {\n const date = fromDate ? fromDate : moment();\n if (step === \"daily\") {\n date.add(interval, \"days\");\n return [date, date.clone()];\n } else if (step === \"weekly\") {\n date.add(interval, \"weeks\");\n return [date.clone().startOf(period), date.clone().endOf(period)];\n } else if (step === \"monthly\") {\n date.add(interval, \"months\");\n return [date.clone().startOf(\"month\"), date.clone().endOf(\"month\")];\n } else if (step === \"quarterly\") {\n date.add(interval, \"quarters\");\n return [date.clone().startOf(\"quarter\"), date.clone().endOf(\"quarter\")];\n } else if (step === \"yearly\") {\n date.add(interval, \"years\");\n return [date.clone().startOf(\"year\"), date.clone().endOf(\"year\")];\n }\n return [date, date];\n },\n [fromDate, period, step]\n );\n\n const getDateFormatted = useMemo(() => {\n if (formatCallback) {\n return formatCallback(fromDate.toDate(), toDate.toDate());\n }\n\n const actualYear = moment().year();\n\n const showWeekOrCustomDateFormat = (start, end): string => {\n if (start.year() === actualYear && end.year() === actualYear) {\n return start.format(\"MMM DD\") + \" - \" + end.format(\"MMM DD\");\n } else {\n return start.format(\"MMM DD YYYY\") + \" - \" + end.format(\"MMM DD YYYY\");\n }\n };\n\n if (step === \"daily\") {\n if (fromDate.year() === actualYear) {\n return fromDate.format(\"MMM DD\");\n }\n return fromDate.format(\"MMM DD YYYY\");\n } else if (step === \"weekly\") {\n const startDate = fromDate.clone().startOf(period);\n const endDate = startDate.clone().endOf(period);\n return showWeekOrCustomDateFormat(startDate, endDate);\n } else if (step === \"monthly\") {\n return fromDate.format(\"MMM YYYY\");\n } else if (step === \"quarterly\") {\n return `Q${fromDate.quarter()}/${fromDate.format(\"YYYY\")}`;\n } else if (step === \"yearly\") {\n return fromDate.format(\"YYYY\");\n } else if (step === \"custom\") {\n return showWeekOrCustomDateFormat(fromDate, toDate);\n }\n\n return \"\";\n }, [fromDate, step, toDate, formatCallback, period]);\n\n const onChangeCallback = useCallback(\n (amount: number) => {\n const [newFrom, newTo] = getDatesByPeriod(amount);\n setFromDate(moment(newFrom));\n setToDate(moment(newTo));\n\n if (onChange) {\n onChange(newFrom.toDate(), newTo.toDate());\n }\n },\n [onChange, getDatesByPeriod]\n );\n\n const onDatePickerChange = useCallback(\n (dates?: { from: Date; to: Date }) => {\n const fromDateTemp = dates?.from;\n const toDateTemp = dates?.to;\n\n setFromDate(moment(fromDateTemp));\n setToDate(moment(toDateTemp));\n\n if (\n onChange &&\n fromDateTemp instanceof Date &&\n toDateTemp instanceof Date\n ) {\n onChange(fromDateTemp, toDateTemp);\n }\n },\n [onChange, setFromDate, setToDate]\n );\n\n const isAfterMaxDate = useMemo(() => {\n return (\n maxValue instanceof Date &&\n moment(moment(maxValue).format(\"YYYY-MM-DD\")).isSameOrBefore(\n toDate.format(\"YYYY-MM-DD\")\n )\n );\n }, [maxValue, toDate]);\n\n const isBeforeMinDate = useMemo(() => {\n return (\n minValue instanceof Date &&\n moment(moment(minValue).format(\"YYYY-MM-DD\")).isSameOrAfter(\n toDate.format(\"YYYY-MM-DD\")\n )\n );\n }, [minValue, toDate]);\n\n useEffect(() => {\n if (isBeforeMinDate) {\n if (step === \"daily\") {\n setFromDate(moment(minValue));\n setToDate(moment(minValue));\n }\n }\n if (isAfterMaxDate) {\n if (step === \"daily\") {\n setFromDate(moment(maxValue));\n setToDate(moment(maxValue));\n }\n }\n }, [step, minValue, maxValue, isBeforeMinDate, isAfterMaxDate]);\n\n const onRightClickHandler = useCallback(() => {\n if (isAfterMaxDate) {\n return;\n }\n\n onChangeCallback(1);\n\n if (onForward) {\n onForward(fromDate.toDate(), toDate.toDate());\n }\n }, [isAfterMaxDate, onChangeCallback, onForward, fromDate, toDate]);\n\n const onLeftClickHandler = useCallback(() => {\n if (isBeforeMinDate) {\n return;\n }\n\n onChangeCallback(-1);\n\n if (onBack) {\n onBack(fromDate.toDate(), toDate.toDate());\n }\n }, [isBeforeMinDate, onChangeCallback, onBack, fromDate, toDate]);\n\n const renderLeftRightButtons = useMemo(() => {\n return step !== \"custom\";\n }, [step]);\n\n const handleShow = useCallback(() => {\n setShowDatePicker(!showDatePicker);\n if (fromDate) {\n setMonth(fromDate.toDate());\n }\n }, [setShowDatePicker, showDatePicker, fromDate]);\n\n const closeMenu = useCallback(() => {\n setShowDatePicker(false);\n }, []);\n\n const onMonthChange = useCallback(\n (m: Date) => {\n setMonth(m);\n },\n [setMonth]\n );\n\n useEffect(() => {\n setFromDate(moment(from));\n setToDate(moment(to));\n }, [from, to]);\n\n const dateStepperWidth = (\n fromDay: Moment,\n toDay: Moment,\n range: string\n ): { minWidth: string } => {\n if (\n fromDay.year() !== moment().year() ||\n toDay.year() !== moment().year()\n ) {\n switch (range) {\n case \"daily\":\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"232px\" };\n }\n }\n switch (range) {\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"182px\" };\n }\n\n return { minWidth: \"102px\" };\n };\n const isDisabled = useCallback(\n (day: Date): boolean => {\n const dayFormat = moment(day).format(\"YYYY-MM-DD\");\n\n const isBefore =\n maxValue instanceof Date &&\n moment(moment(maxValue).format(\"YYYY-MM-DD\")).isBefore(dayFormat);\n const isAfter =\n minValue instanceof Date &&\n moment(moment(minValue).format(\"YYYY-MM-DD\")).isAfter(dayFormat);\n\n return isBefore || isAfter;\n },\n [maxValue, minValue]\n );\n\n const modifiers = useMemo(() => {\n return {\n [customClassNames.disabled]: (day: Date): boolean => {\n return isDisabled(day);\n },\n [customClassNames.nonWorkingDay]: (day: Date): boolean => {\n return isDisabled(day);\n },\n };\n }, [isDisabled]);\n\n return (\n <StyledButtonGroup className={classNames(\"c-date-stepper\", className)}>\n {renderLeftRightButtons ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onLeftClickHandler}\n disabled={isBeforeMinDate}\n >\n <CaretLeftIcon />\n </Button>\n ) : null}\n <StyledDiv\n $isTargetable={step === \"yearly\" || !withDatePicker}\n $isRounded={step === \"custom\"}\n style={dateStepperWidth(fromDate, toDate, step)}\n >\n {withDatePicker ? (\n <StyledMenu\n target={\n <StyledButton type=\"button\" className=\"c-simple-menu__trigger\">\n <span>{getDateFormatted}</span>\n </StyledButton>\n }\n open={showDatePicker}\n onOpen={handleShow}\n onClose={closeMenu}\n popperClassName={popperClassName}\n position={position}\n >\n <DatePicker\n month={month}\n localeUtils={MomentLocaleUtils}\n locale=\"en\"\n selectionMode={step}\n className={datePickerClass}\n selectedDays={{ from: fromDate.toDate(), to: toDate.toDate() }}\n onChange={onDatePickerChange}\n onMonthChange={onMonthChange}\n firstDayOfWeek={period === \"week\" ? 0 : 1}\n modifiers={modifiers}\n dateRequired\n fixedWeeks\n />\n </StyledMenu>\n ) : (\n <StyledSpan>{getDateFormatted}</StyledSpan>\n )}\n </StyledDiv>\n {renderLeftRightButtons ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onRightClickHandler}\n disabled={isAfterMaxDate}\n >\n <CaretRightIcon />\n </Button>\n ) : null}\n </StyledButtonGroup>\n );\n};\n\nDateStepper.displayName = \"DateStepper\";\n"],"file":"DateStepper.js"}
1
+ {"version":3,"sources":["../../../../../src/components/Steppers/DateStepper/DateStepper.tsx"],"names":["React","useCallback","useMemo","useState","useEffect","classNames","moment","MomentLocaleUtils","Button","CaretLeftIcon","CaretRightIcon","DatePicker","customClassNames","StyledButton","StyledButtonGroup","StyledDiv","StyledMenu","StyledSpan","DateStepper","step","formatCallback","onChange","from","to","onBack","onForward","minValue","maxValue","className","period","datePickerClass","withDatePicker","defaultMonth","Date","popperClassName","position","fromDate","setFromDate","toDate","setToDate","showDatePicker","setShowDatePicker","month","setMonth","getDatesByPeriod","interval","date","add","clone","startOf","endOf","getDateFormatted","actualYear","year","showWeekOrCustomDateFormat","start","end","format","startDate","endDate","quarter","onChangeCallback","amount","newFrom","newTo","onDatePickerChange","dates","fromDateTemp","toDateTemp","isAfterMaxDate","isSameOrBefore","isBeforeMinDate","isSameOrAfter","onRightClickHandler","onLeftClickHandler","renderLeftRightButtons","handleShow","closeMenu","onMonthChange","m","dateStepperWidth","fromDay","toDay","range","minWidth","isDisabled","day","dayFormat","isBefore","isAfter","modifiers","disabled","nonWorkingDay","displayName"],"mappings":"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","sourcesContent":["import React, { FC, useCallback, useMemo, useState, useEffect } from \"react\";\nimport classNames from \"classnames\";\nimport moment, { Moment } from \"moment\";\nimport MomentLocaleUtils from \"react-day-picker/moment\";\nimport { Placement } from \"@popperjs/core\";\nimport { Button } from \"../../Button/Button\";\nimport CaretLeftIcon from \"../../Icons/collection/CaretLeft\";\nimport CaretRightIcon from \"../../Icons/collection/CaretRight\";\nimport { DatePicker } from \"../../DatePicker\";\nimport { customClassNames } from \"../../DatePicker/ClassNames\";\nimport {\n StyledButton,\n StyledButtonGroup,\n StyledDiv,\n StyledMenu,\n StyledSpan,\n} from \"./Styles\";\n\ninterface IDateStepperProps {\n /** One of the possible steps for this component */\n step:\n | \"daily\"\n | \"weekly\"\n | \"monthly\"\n | \"quarterly\"\n | \"yearly\"\n | \"custom\"\n | string;\n /** Callback function that will be called after the changed range */\n onChange?: (from: Date, to: Date) => void;\n /** Start date of the range */\n from: Date | string;\n /** End date of the range */\n to: Date | string;\n /** Callback function that will format the text label */\n formatCallback?: (from: string | Date, to: string | Date) => string;\n /** Default month */\n defaultMonth?: Date;\n /** Callback function onBack */\n onBack?: (from: Date, to: Date) => void;\n /** Callback function onForward */\n onForward?: (from: Date, to: Date) => void;\n /** Min date */\n minValue?: Date;\n /** Max fate */\n maxValue?: Date;\n /** html class */\n className?: string;\n /** Period for calculating week (isoWeek) */\n period?: \"week\" | \"isoWeek\";\n /** Classes for datePicker */\n datePickerClass?: string;\n /** Show datePicker in the middle button */\n withDatePicker?: boolean;\n /** Popper class name*/\n popperClassName?: string;\n /** DatePicker menu position */\n position?: Placement;\n}\n\n/**\n * This component allow you to select date range. It accepts two parameters \"from\" and \"to\" as valid format\n * onChange and onBack and onForward it will return \"from: Date\" and \"to: Date\" as function arguments\n */\nexport const DateStepper: FC<IDateStepperProps> = ({\n step,\n formatCallback,\n onChange,\n from,\n to,\n onBack,\n onForward,\n minValue,\n maxValue,\n className,\n period = \"week\",\n datePickerClass,\n withDatePicker = true,\n defaultMonth = new Date(),\n popperClassName,\n position = \"bottom\",\n}) => {\n const [fromDate, setFromDate] = useState(moment(from));\n const [toDate, setToDate] = useState(moment(to));\n const [showDatePicker, setShowDatePicker] = useState(false);\n const [month, setMonth] = useState(defaultMonth);\n\n const getDatesByPeriod = useCallback(\n (interval: number): Moment[] => {\n const date = fromDate ? fromDate : moment();\n if (step === \"daily\") {\n date.add(interval, \"days\");\n return [date, date.clone()];\n } else if (step === \"weekly\") {\n date.add(interval, \"weeks\");\n return [date.clone().startOf(period), date.clone().endOf(period)];\n } else if (step === \"monthly\") {\n date.add(interval, \"months\");\n return [date.clone().startOf(\"month\"), date.clone().endOf(\"month\")];\n } else if (step === \"quarterly\") {\n date.add(interval, \"quarters\");\n return [date.clone().startOf(\"quarter\"), date.clone().endOf(\"quarter\")];\n } else if (step === \"yearly\") {\n date.add(interval, \"years\");\n return [date.clone().startOf(\"year\"), date.clone().endOf(\"year\")];\n }\n return [date, date];\n },\n [fromDate, period, step]\n );\n\n const getDateFormatted = useMemo(() => {\n if (formatCallback) {\n return formatCallback(fromDate.toDate(), toDate.toDate());\n }\n\n const actualYear = moment().year();\n\n const showWeekOrCustomDateFormat = (start, end): string => {\n if (start.year() === actualYear && end.year() === actualYear) {\n return start.format(\"MMM DD\") + \" - \" + end.format(\"MMM DD\");\n } else {\n return start.format(\"MMM DD YYYY\") + \" - \" + end.format(\"MMM DD YYYY\");\n }\n };\n\n if (step === \"daily\") {\n if (fromDate.year() === actualYear) {\n return fromDate.format(\"MMM DD\");\n }\n return fromDate.format(\"MMM DD YYYY\");\n } else if (step === \"weekly\") {\n const startDate = fromDate.clone().startOf(period);\n const endDate = startDate.clone().endOf(period);\n return showWeekOrCustomDateFormat(startDate, endDate);\n } else if (step === \"monthly\") {\n return fromDate.format(\"MMM YYYY\");\n } else if (step === \"quarterly\") {\n return `Q${fromDate.quarter()}/${fromDate.format(\"YYYY\")}`;\n } else if (step === \"yearly\") {\n return fromDate.format(\"YYYY\");\n } else if (step === \"custom\") {\n return showWeekOrCustomDateFormat(fromDate, toDate);\n }\n\n return \"\";\n }, [fromDate, step, toDate, formatCallback, period]);\n\n const onChangeCallback = useCallback(\n (amount: number) => {\n const [newFrom, newTo] = getDatesByPeriod(amount);\n setFromDate(moment(newFrom));\n setToDate(moment(newTo));\n\n if (onChange) {\n onChange(newFrom.toDate(), newTo.toDate());\n }\n },\n [onChange, getDatesByPeriod]\n );\n\n const onDatePickerChange = useCallback(\n (dates?: { from: Date; to: Date }) => {\n const fromDateTemp = dates?.from;\n const toDateTemp = dates?.to;\n\n setFromDate(moment(fromDateTemp));\n setToDate(moment(toDateTemp));\n\n if (\n onChange &&\n fromDateTemp instanceof Date &&\n toDateTemp instanceof Date\n ) {\n onChange(fromDateTemp, toDateTemp);\n }\n },\n [onChange, setFromDate, setToDate]\n );\n\n const isAfterMaxDate = useMemo(() => {\n return (\n maxValue instanceof Date &&\n moment(moment(maxValue).format(\"YYYY-MM-DD\")).isSameOrBefore(\n toDate.format(\"YYYY-MM-DD\")\n )\n );\n }, [maxValue, toDate]);\n\n const isBeforeMinDate = useMemo(() => {\n return (\n minValue instanceof Date &&\n moment(moment(minValue).format(\"YYYY-MM-DD\")).isSameOrAfter(\n toDate.format(\"YYYY-MM-DD\")\n )\n );\n }, [minValue, toDate]);\n\n useEffect(() => {\n if (isBeforeMinDate) {\n if (step === \"daily\") {\n setFromDate(moment(minValue));\n setToDate(moment(minValue));\n }\n }\n if (isAfterMaxDate) {\n if (step === \"daily\") {\n setFromDate(moment(maxValue));\n setToDate(moment(maxValue));\n }\n }\n }, [step, minValue, maxValue, isBeforeMinDate, isAfterMaxDate]);\n\n const onRightClickHandler = useCallback(() => {\n if (isAfterMaxDate) {\n return;\n }\n\n onChangeCallback(1);\n\n if (onForward) {\n onForward(fromDate.toDate(), toDate.toDate());\n }\n }, [isAfterMaxDate, onChangeCallback, onForward, fromDate, toDate]);\n\n const onLeftClickHandler = useCallback(() => {\n if (isBeforeMinDate) {\n return;\n }\n\n onChangeCallback(-1);\n\n if (onBack) {\n onBack(fromDate.toDate(), toDate.toDate());\n }\n }, [isBeforeMinDate, onChangeCallback, onBack, fromDate, toDate]);\n\n const renderLeftRightButtons = useMemo(() => {\n return step !== \"custom\";\n }, [step]);\n\n const handleShow = useCallback(() => {\n setShowDatePicker(!showDatePicker);\n if (fromDate) {\n setMonth(fromDate.toDate());\n }\n }, [setShowDatePicker, showDatePicker, fromDate]);\n\n const closeMenu = useCallback(() => {\n setShowDatePicker(false);\n }, []);\n\n const onMonthChange = useCallback(\n (m: Date) => {\n setMonth(m);\n },\n [setMonth]\n );\n\n useEffect(() => {\n setFromDate(moment(from));\n setToDate(moment(to));\n }, [from, to]);\n\n const dateStepperWidth = (\n fromDay: Moment,\n toDay: Moment,\n range: string\n ): { minWidth: string } => {\n if (\n fromDay.year() !== moment().year() ||\n toDay.year() !== moment().year()\n ) {\n switch (range) {\n case \"daily\":\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"232px\" };\n }\n }\n switch (range) {\n case \"monthly\":\n return { minWidth: \"122px\" };\n case \"weekly\":\n case \"custom\":\n return { minWidth: \"182px\" };\n }\n\n return { minWidth: \"102px\" };\n };\n const isDisabled = useCallback(\n (day: Date): boolean => {\n const dayFormat = moment(day).format(\"YYYY-MM-DD\");\n\n const isBefore =\n maxValue instanceof Date &&\n moment(moment(maxValue).format(\"YYYY-MM-DD\")).isBefore(dayFormat);\n const isAfter =\n minValue instanceof Date &&\n moment(moment(minValue).format(\"YYYY-MM-DD\")).isAfter(dayFormat);\n\n return isBefore || isAfter;\n },\n [maxValue, minValue]\n );\n\n const modifiers = useMemo(() => {\n return {\n [customClassNames.disabled]: (day: Date): boolean => {\n return isDisabled(day);\n },\n [customClassNames.nonWorkingDay]: (day: Date): boolean => {\n return isDisabled(day);\n },\n };\n }, [isDisabled]);\n\n return (\n <StyledButtonGroup className={classNames(\"c-date-stepper\", className)}>\n {renderLeftRightButtons ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onLeftClickHandler}\n disabled={isBeforeMinDate}\n >\n <CaretLeftIcon />\n </Button>\n ) : null}\n <StyledDiv\n $isTargetable={step === \"yearly\" || !withDatePicker}\n $isRounded={step === \"custom\"}\n style={dateStepperWidth(fromDate, toDate, step)}\n >\n {withDatePicker ? (\n <StyledMenu\n target={\n <StyledButton type=\"button\">\n <span>{getDateFormatted}</span>\n </StyledButton>\n }\n open={showDatePicker}\n onOpen={handleShow}\n onClose={closeMenu}\n popperClassName={popperClassName}\n position={position}\n >\n <DatePicker\n month={month}\n localeUtils={MomentLocaleUtils}\n locale=\"en\"\n selectionMode={step}\n className={datePickerClass}\n selectedDays={{ from: fromDate.toDate(), to: toDate.toDate() }}\n onChange={onDatePickerChange}\n onMonthChange={onMonthChange}\n firstDayOfWeek={period === \"week\" ? 0 : 1}\n modifiers={modifiers}\n dateRequired\n fixedWeeks\n />\n </StyledMenu>\n ) : (\n <StyledSpan>{getDateFormatted}</StyledSpan>\n )}\n </StyledDiv>\n {renderLeftRightButtons ? (\n <Button\n type=\"button\"\n variant=\"secondary\"\n onClick={onRightClickHandler}\n disabled={isAfterMaxDate}\n >\n <CaretRightIcon />\n </Button>\n ) : null}\n </StyledButtonGroup>\n );\n};\n\nDateStepper.displayName = \"DateStepper\";\n"],"file":"DateStepper.js"}
package/dist/index.js CHANGED
@@ -2315,8 +2315,7 @@
2315
2315
  style: dateStepperWidth(fromDate, toDate, step)
2316
2316
  }, withDatePicker ? /*#__PURE__*/React__default["default"].createElement(StyledMenu, {
2317
2317
  target: /*#__PURE__*/React__default["default"].createElement(StyledButton, {
2318
- type: "button",
2319
- className: "c-simple-menu__trigger"
2318
+ type: "button"
2320
2319
  }, /*#__PURE__*/React__default["default"].createElement("span", null, getDateFormatted)),
2321
2320
  open: showDatePicker,
2322
2321
  onOpen: handleShow,