@razorpay/blade 11.19.1 → 11.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/native/components/Accordion/AccordionItem.js +1 -1
- package/build/lib/native/components/Accordion/AccordionItem.js.map +1 -1
- package/build/lib/native/components/Collapsible/Collapsible.js +1 -1
- package/build/lib/native/components/Collapsible/Collapsible.js.map +1 -1
- package/build/lib/native/components/Collapsible/CollapsibleBody.js +1 -1
- package/build/lib/native/components/Collapsible/CollapsibleBody.js.map +1 -1
- package/build/lib/native/components/Collapsible/CollapsibleBodyContent.native.js +1 -1
- package/build/lib/native/components/Collapsible/CollapsibleBodyContent.native.js.map +1 -1
- package/build/lib/native/components/Collapsible/CollapsibleLink.js +8 -1
- package/build/lib/native/components/Collapsible/CollapsibleLink.js.map +1 -1
- package/build/lib/native/components/Collapsible/commonStyles.js +1 -1
- package/build/lib/native/components/Collapsible/commonStyles.js.map +1 -1
- package/build/lib/native/components/ProgressBar/CircularProgressBar.native.js +1 -1
- package/build/lib/native/components/ProgressBar/CircularProgressBar.native.js.map +1 -1
- package/build/lib/native/components/SideNav/SideNav.native.js +17 -0
- package/build/lib/native/components/SideNav/SideNav.native.js.map +1 -0
- package/build/lib/native/components/SideNav/SideNavBody.native.js +17 -0
- package/build/lib/native/components/SideNav/SideNavBody.native.js.map +1 -0
- package/build/lib/native/components/SideNav/SideNavFooter.native.js +17 -0
- package/build/lib/native/components/SideNav/SideNavFooter.native.js.map +1 -0
- package/build/lib/native/components/SideNav/SideNavItems/SideNavItem.native.js +17 -0
- package/build/lib/native/components/SideNav/SideNavItems/SideNavItem.native.js.map +1 -0
- package/build/lib/native/components/SideNav/SideNavItems/SideNavLink.native.js +17 -0
- package/build/lib/native/components/SideNav/SideNavItems/SideNavLink.native.js.map +1 -0
- package/build/lib/native/components/SideNav/SideNavLevel.native.js +17 -0
- package/build/lib/native/components/SideNav/SideNavLevel.native.js.map +1 -0
- package/build/lib/native/components/SideNav/SideNavSection.native.js +17 -0
- package/build/lib/native/components/SideNav/SideNavSection.native.js.map +1 -0
- package/build/lib/native/components/Typography/BaseText/getBaseTextStyles.js +1 -1
- package/build/lib/native/components/Typography/BaseText/getBaseTextStyles.js.map +1 -1
- package/build/lib/native/components/index.js +7 -0
- package/build/lib/native/components/index.js.map +1 -1
- package/build/lib/native/tokens/global/size.js +1 -1
- package/build/lib/native/tokens/global/size.js.map +1 -1
- package/build/lib/native/utils/metaAttribute/metaConstants.js +1 -1
- package/build/lib/native/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/web/development/components/Accordion/AccordionItem.js +1 -0
- package/build/lib/web/development/components/Accordion/AccordionItem.js.map +1 -1
- package/build/lib/web/development/components/Collapsible/Collapsible.js +4 -2
- package/build/lib/web/development/components/Collapsible/Collapsible.js.map +1 -1
- package/build/lib/web/development/components/Collapsible/CollapsibleBody.js +4 -1
- package/build/lib/web/development/components/Collapsible/CollapsibleBody.js.map +1 -1
- package/build/lib/web/development/components/Collapsible/CollapsibleBodyContent.web.js +4 -2
- package/build/lib/web/development/components/Collapsible/CollapsibleBodyContent.web.js.map +1 -1
- package/build/lib/web/development/components/Collapsible/CollapsibleLink.js +16 -4
- package/build/lib/web/development/components/Collapsible/CollapsibleLink.js.map +1 -1
- package/build/lib/web/development/components/Collapsible/commonStyles.js +5 -1
- package/build/lib/web/development/components/Collapsible/commonStyles.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/Calendar.web.js +9 -5
- package/build/lib/web/development/components/DatePicker/Calendar.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/CalendarStyles.web.js +40 -33
- package/build/lib/web/development/components/DatePicker/CalendarStyles.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/DateInput.web.js +2 -1
- package/build/lib/web/development/components/DatePicker/DateInput.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/DatePicker.web.js +5 -5
- package/build/lib/web/development/components/DatePicker/DatePicker.web.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/shiftTimezone.js +39 -0
- package/build/lib/web/development/components/DatePicker/shiftTimezone.js.map +1 -0
- package/build/lib/web/development/components/DatePicker/useControlledDates.js +5 -8
- package/build/lib/web/development/components/DatePicker/useControlledDates.js.map +1 -1
- package/build/lib/web/development/components/DatePicker/utils.js +33 -1
- package/build/lib/web/development/components/DatePicker/utils.js.map +1 -1
- package/build/lib/web/development/components/Drawer/Drawer.web.js +25 -10
- package/build/lib/web/development/components/Drawer/Drawer.web.js.map +1 -1
- package/build/lib/web/development/components/Drawer/DrawerContext.js +3 -1
- package/build/lib/web/development/components/Drawer/DrawerContext.js.map +1 -1
- package/build/lib/web/development/components/Drawer/DrawerSubcomponents.web.js +26 -4
- package/build/lib/web/development/components/Drawer/DrawerSubcomponents.web.js.map +1 -1
- package/build/lib/web/development/components/Drawer/StackProvider.js +21 -12
- package/build/lib/web/development/components/Drawer/StackProvider.js.map +1 -1
- package/build/lib/web/development/components/Drawer/index.js +1 -1
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js +3 -0
- package/build/lib/web/development/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/development/components/SideNav/SideNav.web.js +360 -0
- package/build/lib/web/development/components/SideNav/SideNav.web.js.map +1 -0
- package/build/lib/web/development/components/SideNav/SideNavBody.web.js +17 -0
- package/build/lib/web/development/components/SideNav/SideNavBody.web.js.map +1 -0
- package/build/lib/web/development/components/SideNav/SideNavContext.js +23 -0
- package/build/lib/web/development/components/SideNav/SideNavContext.js.map +1 -0
- package/build/lib/web/development/components/SideNav/SideNavFooter.web.js +55 -0
- package/build/lib/web/development/components/SideNav/SideNavFooter.web.js.map +1 -0
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavItem.web.js +66 -0
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavItem.web.js.map +1 -0
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js +348 -0
- package/build/lib/web/development/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -0
- package/build/lib/web/development/components/SideNav/SideNavItems/TooltipifyNavItem.js +22 -0
- package/build/lib/web/development/components/SideNav/SideNavItems/TooltipifyNavItem.js.map +1 -0
- package/build/lib/web/development/components/SideNav/SideNavLevel.web.js +65 -0
- package/build/lib/web/development/components/SideNav/SideNavLevel.web.js.map +1 -0
- package/build/lib/web/development/components/SideNav/SideNavSection.web.js +141 -0
- package/build/lib/web/development/components/SideNav/SideNavSection.web.js.map +1 -0
- package/build/lib/web/development/components/SideNav/index.js +8 -0
- package/build/lib/web/development/components/SideNav/index.js.map +1 -0
- package/build/lib/web/development/components/SideNav/tokens.js +33 -0
- package/build/lib/web/development/components/SideNav/tokens.js.map +1 -0
- package/build/lib/web/development/components/SkipNav/SkipNav.web.js +11 -3
- package/build/lib/web/development/components/SkipNav/SkipNav.web.js.map +1 -1
- package/build/lib/web/development/components/Typography/BaseText/getBaseTextStyles.js +1 -1
- package/build/lib/web/development/components/Typography/BaseText/getBaseTextStyles.js.map +1 -1
- package/build/lib/web/development/components/index.js +9 -1
- package/build/lib/web/development/components/index.js.map +1 -1
- package/build/lib/web/development/tokens/global/size.js +6 -0
- package/build/lib/web/development/tokens/global/size.js.map +1 -1
- package/build/lib/web/development/utils/metaAttribute/metaConstants.js +1 -0
- package/build/lib/web/development/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/lib/web/production/components/Accordion/AccordionItem.js +1 -0
- package/build/lib/web/production/components/Accordion/AccordionItem.js.map +1 -1
- package/build/lib/web/production/components/Collapsible/Collapsible.js +4 -2
- package/build/lib/web/production/components/Collapsible/Collapsible.js.map +1 -1
- package/build/lib/web/production/components/Collapsible/CollapsibleBody.js +4 -1
- package/build/lib/web/production/components/Collapsible/CollapsibleBody.js.map +1 -1
- package/build/lib/web/production/components/Collapsible/CollapsibleBodyContent.web.js +4 -2
- package/build/lib/web/production/components/Collapsible/CollapsibleBodyContent.web.js.map +1 -1
- package/build/lib/web/production/components/Collapsible/CollapsibleLink.js +16 -4
- package/build/lib/web/production/components/Collapsible/CollapsibleLink.js.map +1 -1
- package/build/lib/web/production/components/Collapsible/commonStyles.js +5 -1
- package/build/lib/web/production/components/Collapsible/commonStyles.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/Calendar.web.js +9 -5
- package/build/lib/web/production/components/DatePicker/Calendar.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/CalendarStyles.web.js +40 -33
- package/build/lib/web/production/components/DatePicker/CalendarStyles.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/DateInput.web.js +2 -1
- package/build/lib/web/production/components/DatePicker/DateInput.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/DatePicker.web.js +5 -5
- package/build/lib/web/production/components/DatePicker/DatePicker.web.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/shiftTimezone.js +39 -0
- package/build/lib/web/production/components/DatePicker/shiftTimezone.js.map +1 -0
- package/build/lib/web/production/components/DatePicker/useControlledDates.js +5 -8
- package/build/lib/web/production/components/DatePicker/useControlledDates.js.map +1 -1
- package/build/lib/web/production/components/DatePicker/utils.js +33 -1
- package/build/lib/web/production/components/DatePicker/utils.js.map +1 -1
- package/build/lib/web/production/components/Drawer/Drawer.web.js +25 -10
- package/build/lib/web/production/components/Drawer/Drawer.web.js.map +1 -1
- package/build/lib/web/production/components/Drawer/DrawerContext.js +3 -1
- package/build/lib/web/production/components/Drawer/DrawerContext.js.map +1 -1
- package/build/lib/web/production/components/Drawer/DrawerSubcomponents.web.js +26 -4
- package/build/lib/web/production/components/Drawer/DrawerSubcomponents.web.js.map +1 -1
- package/build/lib/web/production/components/Drawer/StackProvider.js +21 -12
- package/build/lib/web/production/components/Drawer/StackProvider.js.map +1 -1
- package/build/lib/web/production/components/Drawer/index.js +1 -1
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js +3 -0
- package/build/lib/web/production/components/FileUpload/FileUpload.web.js.map +1 -1
- package/build/lib/web/production/components/SideNav/SideNav.web.js +360 -0
- package/build/lib/web/production/components/SideNav/SideNav.web.js.map +1 -0
- package/build/lib/web/production/components/SideNav/SideNavBody.web.js +17 -0
- package/build/lib/web/production/components/SideNav/SideNavBody.web.js.map +1 -0
- package/build/lib/web/production/components/SideNav/SideNavContext.js +23 -0
- package/build/lib/web/production/components/SideNav/SideNavContext.js.map +1 -0
- package/build/lib/web/production/components/SideNav/SideNavFooter.web.js +55 -0
- package/build/lib/web/production/components/SideNav/SideNavFooter.web.js.map +1 -0
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavItem.web.js +66 -0
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavItem.web.js.map +1 -0
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js +348 -0
- package/build/lib/web/production/components/SideNav/SideNavItems/SideNavLink.web.js.map +1 -0
- package/build/lib/web/production/components/SideNav/SideNavItems/TooltipifyNavItem.js +22 -0
- package/build/lib/web/production/components/SideNav/SideNavItems/TooltipifyNavItem.js.map +1 -0
- package/build/lib/web/production/components/SideNav/SideNavLevel.web.js +65 -0
- package/build/lib/web/production/components/SideNav/SideNavLevel.web.js.map +1 -0
- package/build/lib/web/production/components/SideNav/SideNavSection.web.js +141 -0
- package/build/lib/web/production/components/SideNav/SideNavSection.web.js.map +1 -0
- package/build/lib/web/production/components/SideNav/index.js +8 -0
- package/build/lib/web/production/components/SideNav/index.js.map +1 -0
- package/build/lib/web/production/components/SideNav/tokens.js +33 -0
- package/build/lib/web/production/components/SideNav/tokens.js.map +1 -0
- package/build/lib/web/production/components/SkipNav/SkipNav.web.js +11 -3
- package/build/lib/web/production/components/SkipNav/SkipNav.web.js.map +1 -1
- package/build/lib/web/production/components/Typography/BaseText/getBaseTextStyles.js +1 -1
- package/build/lib/web/production/components/Typography/BaseText/getBaseTextStyles.js.map +1 -1
- package/build/lib/web/production/components/index.js +9 -1
- package/build/lib/web/production/components/index.js.map +1 -1
- package/build/lib/web/production/tokens/global/size.js +6 -0
- package/build/lib/web/production/tokens/global/size.js.map +1 -1
- package/build/lib/web/production/utils/metaAttribute/metaConstants.js +1 -0
- package/build/lib/web/production/utils/metaAttribute/metaConstants.js.map +1 -1
- package/build/types/components/index.d.ts +1455 -1227
- package/build/types/components/index.native.d.ts +245 -36
- package/build/types/tokens/index.d.ts +6 -0
- package/build/types/tokens/index.native.d.ts +6 -0
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shiftTimezone.js","sources":["../../../../../../src/components/DatePicker/shiftTimezone.tsx"],"sourcesContent":["import dayjs from 'dayjs';\nimport timezonePlugin from 'dayjs/plugin/timezone';\nimport utcPlugin from 'dayjs/plugin/utc';\nimport type { DateValue, DatesRangeValue } from './types';\n\ndayjs.extend(utcPlugin);\ndayjs.extend(timezonePlugin);\n\nfunction getTimezoneOffset(date: Date, timezone?: string): number {\n if (timezone) {\n return dayjs(date).tz(timezone).utcOffset() + date.getTimezoneOffset();\n }\n return 0;\n}\n\ntype TimeShiftDirection = 'add' | 'remove';\n\nconst updateTimezone = (\n date: DateValue | undefined,\n timezone?: string,\n direction?: TimeShiftDirection,\n): DateValue => {\n if (!date) {\n return null;\n }\n if (!timezone) {\n return date;\n }\n let offset = getTimezoneOffset(date, timezone);\n if (direction === 'remove') {\n offset *= -1;\n }\n return dayjs(date).add(offset, 'minutes').toDate();\n};\n\nexport function shiftTimezone<T extends DateValue | Date[] | DatesRangeValue | undefined>(\n direction: TimeShiftDirection,\n date: T,\n timezone?: string,\n disabled?: boolean,\n): T {\n if (disabled || !date) {\n return date;\n }\n if (Array.isArray(date)) {\n return date.map((d) => updateTimezone(d, timezone, direction)) as T;\n }\n return updateTimezone(date, timezone, direction) as T;\n}\n"],"names":["dayjs","extend","utcPlugin","timezonePlugin","getTimezoneOffset","date","timezone","tz","utcOffset","updateTimezone","direction","offset","add","toDate","shiftTimezone","disabled","Array","isArray","map","d"],"mappings":";;;;AAKAA,KAAK,CAACC,MAAM,CAACC,SAAS,CAAC,CAAA;AACvBF,KAAK,CAACC,MAAM,CAACE,cAAc,CAAC,CAAA;AAE5B,SAASC,iBAAiBA,CAACC,IAAU,EAAEC,QAAiB,EAAU;AAChE,EAAA,IAAIA,QAAQ,EAAE;AACZ,IAAA,OAAON,KAAK,CAACK,IAAI,CAAC,CAACE,EAAE,CAACD,QAAQ,CAAC,CAACE,SAAS,EAAE,GAAGH,IAAI,CAACD,iBAAiB,EAAE,CAAA;AACxE,GAAA;AACA,EAAA,OAAO,CAAC,CAAA;AACV,CAAA;AAIA,IAAMK,cAAc,GAAG,SAAjBA,cAAcA,CAClBJ,IAA2B,EAC3BC,QAAiB,EACjBI,SAA8B,EAChB;EACd,IAAI,CAACL,IAAI,EAAE;AACT,IAAA,OAAO,IAAI,CAAA;AACb,GAAA;EACA,IAAI,CAACC,QAAQ,EAAE;AACb,IAAA,OAAOD,IAAI,CAAA;AACb,GAAA;AACA,EAAA,IAAIM,MAAM,GAAGP,iBAAiB,CAACC,IAAI,EAAEC,QAAQ,CAAC,CAAA;EAC9C,IAAII,SAAS,KAAK,QAAQ,EAAE;IAC1BC,MAAM,IAAI,CAAC,CAAC,CAAA;AACd,GAAA;AACA,EAAA,OAAOX,KAAK,CAACK,IAAI,CAAC,CAACO,GAAG,CAACD,MAAM,EAAE,SAAS,CAAC,CAACE,MAAM,EAAE,CAAA;AACpD,CAAC,CAAA;AAEM,SAASC,aAAaA,CAC3BJ,SAA6B,EAC7BL,IAAO,EACPC,QAAiB,EACjBS,QAAkB,EACf;AACH,EAAA,IAAIA,QAAQ,IAAI,CAACV,IAAI,EAAE;AACrB,IAAA,OAAOA,IAAI,CAAA;AACb,GAAA;AACA,EAAA,IAAIW,KAAK,CAACC,OAAO,CAACZ,IAAI,CAAC,EAAE;AACvB,IAAA,OAAOA,IAAI,CAACa,GAAG,CAAC,UAACC,CAAC,EAAA;AAAA,MAAA,OAAKV,cAAc,CAACU,CAAC,EAAEb,QAAQ,EAAEI,SAAS,CAAC,CAAA;KAAC,CAAA,CAAA;AAChE,GAAA;AACA,EAAA,OAAOD,cAAc,CAACJ,IAAI,EAAEC,QAAQ,EAAEI,SAAS,CAAC,CAAA;AAClD;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
2
|
import { useRef } from 'react';
|
|
3
3
|
import { useUncontrolled } from '@mantine/hooks';
|
|
4
|
-
import {
|
|
4
|
+
import { shiftTimezone } from './shiftTimezone.js';
|
|
5
5
|
import '../../utils/logger/index.js';
|
|
6
6
|
import { throwBladeError } from '../../utils/logger/logger.js';
|
|
7
7
|
|
|
@@ -12,17 +12,14 @@ function useUncontrolledDates(_ref) {
|
|
|
12
12
|
var type = _ref.type,
|
|
13
13
|
value = _ref.value,
|
|
14
14
|
defaultValue = _ref.defaultValue,
|
|
15
|
-
_onChange = _ref.onChange
|
|
16
|
-
_ref$applyTimezone = _ref.applyTimezone,
|
|
17
|
-
applyTimezone = _ref$applyTimezone === void 0 ? true : _ref$applyTimezone;
|
|
15
|
+
_onChange = _ref.onChange;
|
|
18
16
|
var storedType = useRef(type);
|
|
19
|
-
var ctx = useDatesContext();
|
|
20
17
|
var _useUncontrolled = useUncontrolled({
|
|
21
|
-
value: shiftTimezone('add', value
|
|
22
|
-
defaultValue: shiftTimezone('add', defaultValue
|
|
18
|
+
value: shiftTimezone('add', value),
|
|
19
|
+
defaultValue: shiftTimezone('add', defaultValue),
|
|
23
20
|
finalValue: getEmptyValue(type),
|
|
24
21
|
onChange: function onChange(newDate) {
|
|
25
|
-
_onChange === null || _onChange === void 0 ? void 0 : _onChange(shiftTimezone('remove', newDate
|
|
22
|
+
_onChange === null || _onChange === void 0 ? void 0 : _onChange(shiftTimezone('remove', newDate));
|
|
26
23
|
}
|
|
27
24
|
}),
|
|
28
25
|
_useUncontrolled2 = _slicedToArray(_useUncontrolled, 3),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useControlledDates.js","sources":["../../../../../../src/components/DatePicker/useControlledDates.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable default-case */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { useRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport type { DatePickerType, DatePickerValue } from '@mantine/dates';\nimport { shiftTimezone
|
|
1
|
+
{"version":3,"file":"useControlledDates.js","sources":["../../../../../../src/components/DatePicker/useControlledDates.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable default-case */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport { useRef } from 'react';\nimport { useUncontrolled } from '@mantine/hooks';\nimport type { DatePickerType, DatePickerValue } from '@mantine/dates';\nimport { shiftTimezone } from './shiftTimezone';\nimport { throwBladeError } from '~utils/logger';\n\ninterface UseUncontrolledDates<Type extends DatePickerType = 'default'> {\n type: Type;\n value: DatePickerValue<Type> | undefined;\n defaultValue: DatePickerValue<Type> | undefined;\n onChange: ((value: DatePickerValue<Type>) => void) | undefined;\n applyTimezone?: boolean;\n}\n\nconst getEmptyValue = <Type extends DatePickerType = 'default'>(type: Type) =>\n type === 'range' ? [null, null] : type === 'multiple' ? [] : null;\n\nfunction useUncontrolledDates<Type extends DatePickerType = 'default'>({\n type,\n value,\n defaultValue,\n onChange,\n}: UseUncontrolledDates<Type>) {\n const storedType = useRef<Type>(type);\n const [_value, _setValue, controlled] = useUncontrolled<any>({\n value: shiftTimezone('add', value),\n defaultValue: shiftTimezone('add', defaultValue),\n finalValue: getEmptyValue(type),\n onChange: (newDate) => {\n onChange?.(shiftTimezone('remove', newDate));\n },\n });\n\n let _finalValue = _value;\n\n if (storedType.current !== type) {\n // Type has changed. Do some checks or resets\n\n storedType.current = type;\n if (value === undefined) {\n // Reset uncontrolled value as types aren't compatible\n _finalValue = defaultValue !== undefined ? defaultValue : getEmptyValue(type);\n _setValue(_finalValue);\n } else if (__DEV__) {\n // Throw errors in dev mode in case type of value isn't correct\n switch (type) {\n case 'default':\n if (value !== null && typeof value !== 'string') {\n throwBladeError({\n message: 'Value must be type of `null` or `string`',\n moduleName: 'useControlledDates',\n });\n }\n break;\n case 'multiple':\n if (!(value instanceof Array)) {\n throwBladeError({\n message: 'Value must be type of `string[]`',\n moduleName: 'useControlledDates',\n });\n }\n break;\n case 'range':\n if (!(value instanceof Array) || value.length !== 2) {\n throwBladeError({\n message: 'Value must be type of `[string, string]`',\n moduleName: 'useControlledDates',\n });\n }\n break;\n }\n }\n }\n\n return [_finalValue, _setValue, controlled];\n}\n\nexport { useUncontrolledDates };\n"],"names":["getEmptyValue","type","useUncontrolledDates","_ref","value","defaultValue","onChange","storedType","useRef","_useUncontrolled","useUncontrolled","shiftTimezone","finalValue","newDate","_useUncontrolled2","_slicedToArray","_value","_setValue","controlled","_finalValue","current","undefined","throwBladeError","message","moduleName","Array","length"],"mappings":"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"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
|
|
4
|
+
var _excluded = ["formatter"];
|
|
1
5
|
var dayjs_locales = ['af', 'ar', 'ar-dz', 'ar-kw', 'ar-ly', 'ar-ma', 'ar-sa', 'ar-tn', 'az', 'be', 'bg', 'bm', 'bn', 'bo', 'br', 'bs', 'ca', 'cs', 'cv', 'cy', 'da', 'de', 'de-at', 'de-ch', 'dv', 'el', 'en', 'en-au', 'en-ca', 'en-gb', 'en-ie', 'en-il', 'en-nz', 'en-SG', 'eo', 'es', 'es-do', 'es-us', 'et', 'eu', 'fa', 'fi', 'fo', 'fr', 'fr-ca', 'fr-ch', 'fy', 'ga', 'gd', 'gl', 'gom-latn', 'gu', 'he', 'hi', 'hr', 'hu', 'hy-am', 'id', 'is', 'it', 'it-ch', 'ja', 'jv', 'ka', 'kk', 'km', 'kn', 'ko', 'ku', 'ky', 'lb', 'lo', 'lt', 'lv', 'me', 'mi', 'mk', 'ml', 'mn', 'mr', 'ms', 'ms-my', 'mt', 'my', 'nb', 'ne', 'nl', 'nl-be', 'nn', 'oc-lnc', 'pa-in', 'pl', 'pt', 'pt-br', 'ro', 'ru', 'sd', 'se', 'si', 'sk', 'sl', 'sq', 'sr', 'sr-cyrl', 'ss', 'sv', 'sw', 'ta', 'te', 'tet', 'tg', 'th', 'tl-ph', 'tlh', 'tr', 'tzl', 'tzm', 'tzm-latn', 'ug-cn', 'uk', 'ur', 'uz', 'uz-latn', 'vi', 'x-pseudo', 'yo', 'zh-cn', 'zh-hk', 'zh-tw'];
|
|
2
6
|
|
|
3
7
|
// https://github.com/iamkun/dayjs/issues/732#issuecomment-554383261
|
|
@@ -34,6 +38,34 @@ function loadScript(src, callback) {
|
|
|
34
38
|
};
|
|
35
39
|
document.head.appendChild(localeScript);
|
|
36
40
|
}
|
|
41
|
+
function defaultDateFormatter(_ref) {
|
|
42
|
+
var type = _ref.type,
|
|
43
|
+
date = _ref.date,
|
|
44
|
+
locale = _ref.locale,
|
|
45
|
+
format = _ref.format,
|
|
46
|
+
labelSeparator = _ref.labelSeparator;
|
|
47
|
+
var formatDate = function formatDate(value) {
|
|
48
|
+
return dayjs(value).locale(locale).format(format);
|
|
49
|
+
};
|
|
50
|
+
if (type === 'default') {
|
|
51
|
+
return date === null ? '' : formatDate(date);
|
|
52
|
+
}
|
|
53
|
+
if (type === 'range' && Array.isArray(date)) {
|
|
54
|
+
if (date[0] && date[1]) {
|
|
55
|
+
return "".concat(formatDate(date[0]), " ").concat(labelSeparator, " ").concat(formatDate(date[1]));
|
|
56
|
+
}
|
|
57
|
+
if (date[0]) {
|
|
58
|
+
return "".concat(formatDate(date[0]), " ").concat(labelSeparator, " ");
|
|
59
|
+
}
|
|
60
|
+
return '';
|
|
61
|
+
}
|
|
62
|
+
return '';
|
|
63
|
+
}
|
|
64
|
+
function getFormattedDate(_ref2) {
|
|
65
|
+
var formatter = _ref2.formatter,
|
|
66
|
+
others = _objectWithoutProperties(_ref2, _excluded);
|
|
67
|
+
return (formatter || defaultDateFormatter)(others);
|
|
68
|
+
}
|
|
37
69
|
|
|
38
|
-
export { convertIntlToDayjsLocale, loadScript };
|
|
70
|
+
export { convertIntlToDayjsLocale, getFormattedDate, loadScript };
|
|
39
71
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sources":["../../../../../../src/components/DatePicker/utils.ts"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"utils.js","sources":["../../../../../../src/components/DatePicker/utils.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/prefer-nullish-coalescing */\n/* eslint-disable @typescript-eslint/explicit-function-return-type */\nimport type { DatePickerType, DatePickerValue } from '@mantine/dates';\nimport dayjs from 'dayjs';\n\nconst dayjs_locales = [\n 'af',\n 'ar',\n 'ar-dz',\n 'ar-kw',\n 'ar-ly',\n 'ar-ma',\n 'ar-sa',\n 'ar-tn',\n 'az',\n 'be',\n 'bg',\n 'bm',\n 'bn',\n 'bo',\n 'br',\n 'bs',\n 'ca',\n 'cs',\n 'cv',\n 'cy',\n 'da',\n 'de',\n 'de-at',\n 'de-ch',\n 'dv',\n 'el',\n 'en',\n 'en-au',\n 'en-ca',\n 'en-gb',\n 'en-ie',\n 'en-il',\n 'en-nz',\n 'en-SG',\n 'eo',\n 'es',\n 'es-do',\n 'es-us',\n 'et',\n 'eu',\n 'fa',\n 'fi',\n 'fo',\n 'fr',\n 'fr-ca',\n 'fr-ch',\n 'fy',\n 'ga',\n 'gd',\n 'gl',\n 'gom-latn',\n 'gu',\n 'he',\n 'hi',\n 'hr',\n 'hu',\n 'hy-am',\n 'id',\n 'is',\n 'it',\n 'it-ch',\n 'ja',\n 'jv',\n 'ka',\n 'kk',\n 'km',\n 'kn',\n 'ko',\n 'ku',\n 'ky',\n 'lb',\n 'lo',\n 'lt',\n 'lv',\n 'me',\n 'mi',\n 'mk',\n 'ml',\n 'mn',\n 'mr',\n 'ms',\n 'ms-my',\n 'mt',\n 'my',\n 'nb',\n 'ne',\n 'nl',\n 'nl-be',\n 'nn',\n 'oc-lnc',\n 'pa-in',\n 'pl',\n 'pt',\n 'pt-br',\n 'ro',\n 'ru',\n 'sd',\n 'se',\n 'si',\n 'sk',\n 'sl',\n 'sq',\n 'sr',\n 'sr-cyrl',\n 'ss',\n 'sv',\n 'sw',\n 'ta',\n 'te',\n 'tet',\n 'tg',\n 'th',\n 'tl-ph',\n 'tlh',\n 'tr',\n 'tzl',\n 'tzm',\n 'tzm-latn',\n 'ug-cn',\n 'uk',\n 'ur',\n 'uz',\n 'uz-latn',\n 'vi',\n 'x-pseudo',\n 'yo',\n 'zh-cn',\n 'zh-hk',\n 'zh-tw',\n];\n\n// https://github.com/iamkun/dayjs/issues/732#issuecomment-554383261\nfunction patchLocale(locale: string): string | boolean {\n if (['en', 'en-us'].includes(locale)) return 'en';\n if (locale === 'zn') return 'zh-cn';\n if (locale === 'no') return 'nb';\n if (dayjs_locales.includes(locale)) return locale;\n return false;\n}\n\nfunction convertIntlToDayjsLocale(lang: string): string {\n lang = lang.toLowerCase();\n const locale = patchLocale(lang) || (lang.includes('-') && patchLocale(lang.split('-')[0]));\n if (!locale) return 'en';\n\n return `${locale}`;\n}\n\nfunction isScriptLoaded(src: string): boolean {\n return Boolean(document.querySelector(`script[src=\"${src}\"]`));\n}\n\n/**\n * Used to dynamically load a script\n */\nfunction loadScript(src: string, callback?: () => void): void {\n if (isScriptLoaded(src)) {\n callback?.();\n return;\n }\n const localeScript = document.createElement('script');\n localeScript.async = true;\n localeScript.src = src;\n localeScript.onload = () => callback?.();\n document.head.appendChild(localeScript);\n}\n\ninterface DateFormatterInput {\n type: DatePickerType;\n date: DatePickerValue<DatePickerType>;\n locale: string;\n format: string;\n labelSeparator: string;\n}\n\ntype DateFormatter = (input: DateFormatterInput) => string;\n\nfunction defaultDateFormatter({ type, date, locale, format, labelSeparator }: DateFormatterInput) {\n const formatDate = (value: Date) => dayjs(value).locale(locale).format(format);\n\n if (type === 'default') {\n return date === null ? '' : formatDate(date as Date);\n }\n\n if (type === 'range' && Array.isArray(date)) {\n if (date[0] && date[1]) {\n return `${formatDate(date[0])} ${labelSeparator} ${formatDate(date[1])}`;\n }\n\n if (date[0]) {\n return `${formatDate(date[0])} ${labelSeparator} `;\n }\n\n return '';\n }\n\n return '';\n}\n\ninterface GetFormattedDateInput extends DateFormatterInput {\n formatter?: DateFormatter;\n}\n\nfunction getFormattedDate({ formatter, ...others }: GetFormattedDateInput) {\n return (formatter || defaultDateFormatter)(others);\n}\n\nexport { convertIntlToDayjsLocale, loadScript, getFormattedDate };\n"],"names":["dayjs_locales","patchLocale","locale","includes","convertIntlToDayjsLocale","lang","toLowerCase","split","concat","isScriptLoaded","src","Boolean","document","querySelector","loadScript","callback","localeScript","createElement","async","onload","head","appendChild","defaultDateFormatter","_ref","type","date","format","labelSeparator","formatDate","value","dayjs","Array","isArray","getFormattedDate","_ref2","formatter","others","_objectWithoutProperties","_excluded"],"mappings":"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"}
|
|
@@ -69,6 +69,8 @@ var _Drawer = function _Drawer(_ref4) {
|
|
|
69
69
|
_ref4$showOverlay = _ref4.showOverlay,
|
|
70
70
|
showOverlay = _ref4$showOverlay === void 0 ? true : _ref4$showOverlay,
|
|
71
71
|
initialFocusRef = _ref4.initialFocusRef,
|
|
72
|
+
_ref4$isLazy = _ref4.isLazy,
|
|
73
|
+
isLazy = _ref4$isLazy === void 0 ? true : _ref4$isLazy,
|
|
72
74
|
testID = _ref4.testID;
|
|
73
75
|
var closeButtonRef = React__default.useRef(null);
|
|
74
76
|
var _React$useState = React__default.useState(zIndex),
|
|
@@ -93,13 +95,14 @@ var _Drawer = function _Drawer(_ref4) {
|
|
|
93
95
|
initialEnter: true
|
|
94
96
|
}),
|
|
95
97
|
isMounted = _usePresence.isMounted,
|
|
96
|
-
isVisible = _usePresence.isVisible
|
|
98
|
+
isVisible = _usePresence.isVisible,
|
|
99
|
+
isExiting = _usePresence.isExiting;
|
|
97
100
|
var _React$useMemo = React__default.useMemo(function () {
|
|
98
101
|
// eslint-disable-next-line @typescript-eslint/restrict-plus-operands
|
|
99
|
-
var level = drawerStack.indexOf(drawerId) + 1;
|
|
102
|
+
var level = Object.keys(drawerStack).indexOf(drawerId) + 1;
|
|
100
103
|
return {
|
|
101
104
|
stackingLevel: level,
|
|
102
|
-
isFirstDrawerInStack: level === 1 && drawerStack.length > 1
|
|
105
|
+
isFirstDrawerInStack: level === 1 && Object.keys(drawerStack).length > 1
|
|
103
106
|
};
|
|
104
107
|
}, [drawerId, drawerStack]),
|
|
105
108
|
stackingLevel = _React$useMemo.stackingLevel,
|
|
@@ -111,9 +114,14 @@ var _Drawer = function _Drawer(_ref4) {
|
|
|
111
114
|
context = _useFloating.context;
|
|
112
115
|
React__default.useEffect(function () {
|
|
113
116
|
if (isOpen) {
|
|
114
|
-
addToDrawerStack(
|
|
117
|
+
addToDrawerStack({
|
|
118
|
+
elementId: drawerId,
|
|
119
|
+
onDismiss: onDismiss
|
|
120
|
+
});
|
|
115
121
|
} else {
|
|
116
|
-
removeFromDrawerStack(
|
|
122
|
+
removeFromDrawerStack({
|
|
123
|
+
elementId: drawerId
|
|
124
|
+
});
|
|
117
125
|
}
|
|
118
126
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
119
127
|
}, [isOpen]);
|
|
@@ -125,16 +133,23 @@ var _Drawer = function _Drawer(_ref4) {
|
|
|
125
133
|
setZIndexState(zIndex + stackingLevel);
|
|
126
134
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
127
135
|
}, [isMounted]);
|
|
128
|
-
|
|
129
|
-
|
|
136
|
+
var contextValue = React__default.useMemo(function () {
|
|
137
|
+
return {
|
|
130
138
|
close: onDismiss,
|
|
131
|
-
closeButtonRef: closeButtonRef
|
|
132
|
-
|
|
139
|
+
closeButtonRef: closeButtonRef,
|
|
140
|
+
stackingLevel: stackingLevel,
|
|
141
|
+
isExiting: isExiting
|
|
142
|
+
};
|
|
143
|
+
}, [isExiting, onDismiss, stackingLevel]);
|
|
144
|
+
return /*#__PURE__*/jsx(DrawerContext.Provider, {
|
|
145
|
+
value: contextValue,
|
|
133
146
|
children: /*#__PURE__*/jsx(FloatingPortal, {
|
|
134
|
-
children: isMounted ? /*#__PURE__*/jsx(FloatingFocusManager, {
|
|
147
|
+
children: isMounted || !isLazy ? /*#__PURE__*/jsx(FloatingFocusManager, {
|
|
135
148
|
context: context,
|
|
136
149
|
initialFocus: initialFocusRef !== null && initialFocusRef !== void 0 ? initialFocusRef : closeButtonRef,
|
|
150
|
+
returnFocus: true,
|
|
137
151
|
children: /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread({
|
|
152
|
+
display: isLazy ? undefined : isMounted ? 'block' : 'none',
|
|
138
153
|
position: "fixed"
|
|
139
154
|
}, metaAttribute({
|
|
140
155
|
name: MetaConstants.Drawer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Drawer.web.js","sources":["../../../../../../src/components/Drawer/Drawer.web.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useFloating,\n} from '@floating-ui/react';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport usePresence from 'use-presence';\nimport { drawerComponentIds } from './drawerComponentIds';\nimport { DrawerContext } from './DrawerContext';\nimport type { DrawerProps } from './types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { castWebType, makeMotionTime, useTheme } from '~utils';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { useDrawerStack } from '~components/Drawer/StackProvider';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useId } from '~utils/useId';\nimport { useVerifyAllowedChildren } from '~utils/useVerifyAllowedChildren';\n\nconst SHOW_DRAWER = 'show-drawer';\n\nconst AnimatedDrawerContainer = styled(BaseBox)<{\n isFirstDrawerInStack: boolean;\n isVisible: boolean;\n}>(({ theme, isFirstDrawerInStack, isVisible }) => {\n const entranceTransition: CSSProperties['transition'] = `all ${castWebType(\n castWebType(makeMotionTime(theme.motion.duration.gentle)),\n )} ${castWebType(theme.motion.easing.entrance.revealing)}`;\n\n const exitTransition: CSSProperties['transition'] = `all\n ${castWebType(makeMotionTime(theme.motion.duration.xmoderate))}\n ${castWebType(theme.motion.easing.exit.revealing)}`;\n\n return {\n opacity: isVisible ? 1 : 0,\n transform: isVisible\n ? isFirstDrawerInStack\n ? 'translateX(calc(-100% - 16px))'\n : 'translateX(-100%)'\n : 'translateX(0%)',\n transition: isVisible ? entranceTransition : exitTransition,\n animationFillMode: 'initial',\n };\n});\n\nconst DrawerOverlay = styled(FloatingOverlay)(({ theme }) => {\n return {\n opacity: 0,\n transition: `opacity\n ${makeMotionTime(theme.motion.duration.xmoderate)}\n ${castWebType(theme.motion.easing.exit.revealing)}`,\n backgroundColor: theme.colors.overlay.background.subtle,\n\n [`&.${SHOW_DRAWER}`]: {\n opacity: 1,\n transition: `opacity ${makeMotionTime(theme.motion.duration.gentle)} ${castWebType(\n theme.motion.easing.entrance.revealing,\n )}`,\n },\n };\n});\n\nconst _Drawer = ({\n isOpen,\n onDismiss,\n zIndex = componentZIndices.drawer,\n children,\n accessibilityLabel,\n showOverlay = true,\n initialFocusRef,\n testID,\n}: DrawerProps): React.ReactElement => {\n const closeButtonRef = React.useRef<HTMLDivElement>(null);\n const [zIndexState, setZIndexState] = React.useState<number>(zIndex);\n\n useVerifyAllowedChildren({\n children,\n componentName: 'Drawer',\n allowedComponents: [drawerComponentIds.DrawerHeader, drawerComponentIds.DrawerBody],\n });\n\n const { theme } = useTheme();\n const drawerId = useId('drawer');\n const { drawerStack, addToDrawerStack, removeFromDrawerStack } = useDrawerStack();\n\n const { isMounted, isVisible } = usePresence(isOpen, {\n enterTransitionDuration: theme.motion.duration.gentle,\n exitTransitionDuration: theme.motion.duration.xmoderate,\n initialEnter: true,\n });\n\n const { stackingLevel, isFirstDrawerInStack } = React.useMemo(() => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n const level = drawerStack.indexOf(drawerId) + 1;\n return {\n stackingLevel: level,\n isFirstDrawerInStack: level === 1 && drawerStack.length > 1,\n };\n }, [drawerId, drawerStack]);\n\n const { refs, context } = useFloating({\n open: isMounted,\n });\n\n React.useEffect(() => {\n if (isOpen) {\n addToDrawerStack(drawerId);\n } else {\n removeFromDrawerStack(drawerId);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n // When z-index is not defined by user, we use default drawer z index and add stackingLevel to ensure\n // new drawer that opens, always opens on top of previous one.\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n setZIndexState(zIndex + stackingLevel);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMounted]);\n\n return (\n <DrawerContext.Provider value={{ close: onDismiss, closeButtonRef }}>\n <FloatingPortal>\n {isMounted ? (\n <FloatingFocusManager context={context} initialFocus={initialFocusRef ?? closeButtonRef}>\n <BaseBox\n position=\"fixed\"\n {...metaAttribute({\n name: MetaConstants.Drawer,\n testID,\n })}\n zIndex={zIndexState}\n >\n {showOverlay || stackingLevel === 2 ? (\n <DrawerOverlay\n onClick={() => {\n onDismiss();\n }}\n className={isVisible ? SHOW_DRAWER : ''}\n lockScroll={true}\n {...metaAttribute({\n testID: 'drawer-overlay',\n })}\n />\n ) : null}\n <AnimatedDrawerContainer\n isVisible={isVisible}\n isFirstDrawerInStack={isFirstDrawerInStack}\n width={{ base: '90%', s: '375px', m: '420px' }}\n {...makeAccessible({\n role: 'dialog',\n modal: true,\n label: accessibilityLabel,\n })}\n position=\"fixed\"\n top=\"spacing.0\"\n left=\"100%\"\n backgroundColor=\"popup.background.subtle\"\n elevation=\"highRaised\"\n height=\"100%\"\n display=\"flex\"\n flexDirection=\"column\"\n ref={refs.setFloating}\n onKeyDown={(event) => {\n if (event?.key === 'Escape' || event?.code === 'Escape') {\n onDismiss();\n }\n }}\n >\n {children}\n </AnimatedDrawerContainer>\n </BaseBox>\n </FloatingFocusManager>\n ) : null}\n </FloatingPortal>\n </DrawerContext.Provider>\n );\n};\n\n/**\n * ### Drawer Component\n * \n * A drawer is a panel that slides in mostly from right side of the screen over the existing content in the viewport. \n * It helps in providing additional details or context and can also be used to promote product features or new products.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const MyDrawer = () => {\n const [showDrawer, setShowDrawer] = React.useState(false);\n return (\n <Box>\n <Button onClick={() => setShowDrawer(true)}>Open Drawer</Button>\n <Drawer\n isOpen={showDrawer}\n onDismiss={() => setShowDrawer(false)}\n >\n <DrawerHeader title=\"Announcements\" />\n <DrawerBody>\n <FTXAnnouncement />\n <CatPictures />\n </DrawerBody>\n <Drawer>\n </Box>\n )\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-drawer Drawer Documentation}\n * \n * \n */\nconst Drawer = assignWithoutSideEffects(_Drawer, {\n componentId: drawerComponentIds.Drawer,\n});\n\nexport { Drawer };\n"],"names":["SHOW_DRAWER","AnimatedDrawerContainer","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","isFirstDrawerInStack","isVisible","entranceTransition","concat","castWebType","makeMotionTime","motion","duration","gentle","easing","entrance","revealing","exitTransition","xmoderate","exit","opacity","transform","transition","animationFillMode","DrawerOverlay","FloatingOverlay","_ref2","_defineProperty","backgroundColor","colors","overlay","background","subtle","_Drawer","_ref4","isOpen","onDismiss","_ref4$zIndex","zIndex","componentZIndices","drawer","children","accessibilityLabel","_ref4$showOverlay","showOverlay","initialFocusRef","testID","closeButtonRef","React","useRef","_React$useState","useState","_React$useState2","_slicedToArray","zIndexState","setZIndexState","useVerifyAllowedChildren","componentName","allowedComponents","drawerComponentIds","DrawerHeader","DrawerBody","_useTheme","useTheme","drawerId","useId","_useDrawerStack","useDrawerStack","drawerStack","addToDrawerStack","removeFromDrawerStack","_usePresence","usePresence","enterTransitionDuration","exitTransitionDuration","initialEnter","isMounted","_React$useMemo","useMemo","level","indexOf","stackingLevel","length","_useFloating","useFloating","open","refs","context","useEffect","_jsx","DrawerContext","Provider","value","close","FloatingPortal","FloatingFocusManager","initialFocus","_jsxs","_objectSpread","position","metaAttribute","name","MetaConstants","Drawer","onClick","className","lockScroll","width","base","s","m","makeAccessible","role","modal","label","top","left","elevation","height","display","flexDirection","ref","setFloating","onKeyDown","event","key","code","assignWithoutSideEffects"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Drawer.web.js","sources":["../../../../../../src/components/Drawer/Drawer.web.tsx"],"sourcesContent":["import {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useFloating,\n} from '@floating-ui/react';\nimport type { CSSProperties } from 'react';\nimport React from 'react';\nimport styled from 'styled-components';\nimport usePresence from 'use-presence';\nimport { drawerComponentIds } from './drawerComponentIds';\nimport { DrawerContext } from './DrawerContext';\nimport type { DrawerProps } from './types';\nimport BaseBox from '~components/Box/BaseBox';\nimport { castWebType, makeMotionTime, useTheme } from '~utils';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\nimport { componentZIndices } from '~utils/componentZIndices';\nimport { useDrawerStack } from '~components/Drawer/StackProvider';\nimport { makeAccessible } from '~utils/makeAccessible';\nimport { metaAttribute, MetaConstants } from '~utils/metaAttribute';\nimport { useId } from '~utils/useId';\nimport { useVerifyAllowedChildren } from '~utils/useVerifyAllowedChildren';\n\nconst SHOW_DRAWER = 'show-drawer';\n\nconst AnimatedDrawerContainer = styled(BaseBox)<{\n isFirstDrawerInStack: boolean;\n isVisible: boolean;\n}>(({ theme, isFirstDrawerInStack, isVisible }) => {\n const entranceTransition: CSSProperties['transition'] = `all ${castWebType(\n castWebType(makeMotionTime(theme.motion.duration.gentle)),\n )} ${castWebType(theme.motion.easing.entrance.revealing)}`;\n\n const exitTransition: CSSProperties['transition'] = `all\n ${castWebType(makeMotionTime(theme.motion.duration.xmoderate))}\n ${castWebType(theme.motion.easing.exit.revealing)}`;\n\n return {\n opacity: isVisible ? 1 : 0,\n transform: isVisible\n ? isFirstDrawerInStack\n ? 'translateX(calc(-100% - 16px))'\n : 'translateX(-100%)'\n : 'translateX(0%)',\n transition: isVisible ? entranceTransition : exitTransition,\n animationFillMode: 'initial',\n };\n});\n\nconst DrawerOverlay = styled(FloatingOverlay)(({ theme }) => {\n return {\n opacity: 0,\n transition: `opacity\n ${makeMotionTime(theme.motion.duration.xmoderate)}\n ${castWebType(theme.motion.easing.exit.revealing)}`,\n backgroundColor: theme.colors.overlay.background.subtle,\n\n [`&.${SHOW_DRAWER}`]: {\n opacity: 1,\n transition: `opacity ${makeMotionTime(theme.motion.duration.gentle)} ${castWebType(\n theme.motion.easing.entrance.revealing,\n )}`,\n },\n };\n});\n\nconst _Drawer = ({\n isOpen,\n onDismiss,\n zIndex = componentZIndices.drawer,\n children,\n accessibilityLabel,\n showOverlay = true,\n initialFocusRef,\n isLazy = true,\n testID,\n}: DrawerProps): React.ReactElement => {\n const closeButtonRef = React.useRef<HTMLDivElement>(null);\n const [zIndexState, setZIndexState] = React.useState<number>(zIndex);\n\n useVerifyAllowedChildren({\n children,\n componentName: 'Drawer',\n allowedComponents: [drawerComponentIds.DrawerHeader, drawerComponentIds.DrawerBody],\n });\n\n const { theme } = useTheme();\n const drawerId = useId('drawer');\n const { drawerStack, addToDrawerStack, removeFromDrawerStack } = useDrawerStack();\n\n const { isMounted, isVisible, isExiting } = usePresence(isOpen, {\n enterTransitionDuration: theme.motion.duration.gentle,\n exitTransitionDuration: theme.motion.duration.xmoderate,\n initialEnter: true,\n });\n\n const { stackingLevel, isFirstDrawerInStack } = React.useMemo(() => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n const level = Object.keys(drawerStack).indexOf(drawerId) + 1;\n return {\n stackingLevel: level,\n isFirstDrawerInStack: level === 1 && Object.keys(drawerStack).length > 1,\n };\n }, [drawerId, drawerStack]);\n\n const { refs, context } = useFloating({\n open: isMounted,\n });\n\n React.useEffect(() => {\n if (isOpen) {\n addToDrawerStack({ elementId: drawerId, onDismiss });\n } else {\n removeFromDrawerStack({ elementId: drawerId });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n // When z-index is not defined by user, we use default drawer z index and add stackingLevel to ensure\n // new drawer that opens, always opens on top of previous one.\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n setZIndexState(zIndex + stackingLevel);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isMounted]);\n\n const contextValue = React.useMemo(\n () => ({\n close: onDismiss,\n closeButtonRef,\n stackingLevel,\n isExiting,\n }),\n [isExiting, onDismiss, stackingLevel],\n );\n\n return (\n <DrawerContext.Provider value={contextValue}>\n <FloatingPortal>\n {isMounted || !isLazy ? (\n <FloatingFocusManager\n context={context}\n initialFocus={initialFocusRef ?? closeButtonRef}\n returnFocus={true}\n >\n <BaseBox\n display={isLazy ? undefined : isMounted ? 'block' : 'none'}\n position=\"fixed\"\n {...metaAttribute({\n name: MetaConstants.Drawer,\n testID,\n })}\n zIndex={zIndexState}\n >\n {showOverlay || stackingLevel === 2 ? (\n <DrawerOverlay\n onClick={() => {\n onDismiss();\n }}\n className={isVisible ? SHOW_DRAWER : ''}\n lockScroll={true}\n {...metaAttribute({\n testID: 'drawer-overlay',\n })}\n />\n ) : null}\n <AnimatedDrawerContainer\n isVisible={isVisible}\n isFirstDrawerInStack={isFirstDrawerInStack}\n width={{ base: '90%', s: '375px', m: '420px' }}\n {...makeAccessible({\n role: 'dialog',\n modal: true,\n label: accessibilityLabel,\n })}\n position=\"fixed\"\n top=\"spacing.0\"\n left=\"100%\"\n backgroundColor=\"popup.background.subtle\"\n elevation=\"highRaised\"\n height=\"100%\"\n display=\"flex\"\n flexDirection=\"column\"\n ref={refs.setFloating}\n onKeyDown={(event) => {\n if (event?.key === 'Escape' || event?.code === 'Escape') {\n onDismiss();\n }\n }}\n >\n {children}\n </AnimatedDrawerContainer>\n </BaseBox>\n </FloatingFocusManager>\n ) : null}\n </FloatingPortal>\n </DrawerContext.Provider>\n );\n};\n\n/**\n * ### Drawer Component\n * \n * A drawer is a panel that slides in mostly from right side of the screen over the existing content in the viewport. \n * It helps in providing additional details or context and can also be used to promote product features or new products.\n * \n * ---\n * \n * #### Usage\n * \n * ```jsx\n const MyDrawer = () => {\n const [showDrawer, setShowDrawer] = React.useState(false);\n return (\n <Box>\n <Button onClick={() => setShowDrawer(true)}>Open Drawer</Button>\n <Drawer\n isOpen={showDrawer}\n onDismiss={() => setShowDrawer(false)}\n >\n <DrawerHeader title=\"Announcements\" />\n <DrawerBody>\n <FTXAnnouncement />\n <CatPictures />\n </DrawerBody>\n <Drawer>\n </Box>\n )\n }\n * ```\n *\n * ---\n *\n * Checkout {@link https://blade.razorpay.com/?path=/docs/components-drawer Drawer Documentation}\n * \n * \n */\nconst Drawer = assignWithoutSideEffects(_Drawer, {\n componentId: drawerComponentIds.Drawer,\n});\n\nexport { Drawer };\n"],"names":["SHOW_DRAWER","AnimatedDrawerContainer","styled","BaseBox","withConfig","displayName","componentId","_ref","theme","isFirstDrawerInStack","isVisible","entranceTransition","concat","castWebType","makeMotionTime","motion","duration","gentle","easing","entrance","revealing","exitTransition","xmoderate","exit","opacity","transform","transition","animationFillMode","DrawerOverlay","FloatingOverlay","_ref2","_defineProperty","backgroundColor","colors","overlay","background","subtle","_Drawer","_ref4","isOpen","onDismiss","_ref4$zIndex","zIndex","componentZIndices","drawer","children","accessibilityLabel","_ref4$showOverlay","showOverlay","initialFocusRef","_ref4$isLazy","isLazy","testID","closeButtonRef","React","useRef","_React$useState","useState","_React$useState2","_slicedToArray","zIndexState","setZIndexState","useVerifyAllowedChildren","componentName","allowedComponents","drawerComponentIds","DrawerHeader","DrawerBody","_useTheme","useTheme","drawerId","useId","_useDrawerStack","useDrawerStack","drawerStack","addToDrawerStack","removeFromDrawerStack","_usePresence","usePresence","enterTransitionDuration","exitTransitionDuration","initialEnter","isMounted","isExiting","_React$useMemo","useMemo","level","Object","keys","indexOf","stackingLevel","length","_useFloating","useFloating","open","refs","context","useEffect","elementId","contextValue","close","_jsx","DrawerContext","Provider","value","FloatingPortal","FloatingFocusManager","initialFocus","returnFocus","_jsxs","_objectSpread","display","undefined","position","metaAttribute","name","MetaConstants","Drawer","onClick","className","lockScroll","width","base","s","m","makeAccessible","role","modal","label","top","left","elevation","height","flexDirection","ref","setFloating","onKeyDown","event","key","code","assignWithoutSideEffects"],"mappings":"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"}
|
|
@@ -2,7 +2,9 @@ import React__default from 'react';
|
|
|
2
2
|
|
|
3
3
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
4
4
|
var DrawerContext = /*#__PURE__*/React__default.createContext({
|
|
5
|
-
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
6
|
+
close: function close() {},
|
|
7
|
+
isExiting: false
|
|
6
8
|
});
|
|
7
9
|
|
|
8
10
|
export { DrawerContext };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerContext.js","sources":["../../../../../../src/components/Drawer/DrawerContext.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\n\
|
|
1
|
+
{"version":3,"file":"DrawerContext.js","sources":["../../../../../../src/components/Drawer/DrawerContext.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from 'react';\n\ntype DrawerContextType = {\n close: () => void;\n closeButtonRef?: React.MutableRefObject<any>;\n stackingLevel?: number;\n isExiting: boolean;\n};\n\nconst DrawerContext = React.createContext<DrawerContextType>({\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n close: () => {},\n isExiting: false,\n});\n\nexport { DrawerContext };\n"],"names":["DrawerContext","React","createContext","close","isExiting"],"mappings":";;AAAA;AAUA,IAAMA,aAAa,gBAAGC,cAAK,CAACC,aAAa,CAAoB;AAC3D;AACAC,EAAAA,KAAK,EAAE,SAAAA,KAAA,GAAM,EAAE;AACfC,EAAAA,SAAS,EAAE,KAAA;AACb,CAAC;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React__default from 'react';
|
|
2
2
|
import { drawerComponentIds } from './drawerComponentIds.js';
|
|
3
3
|
import { DrawerContext } from './DrawerContext.js';
|
|
4
|
+
import { useDrawerStack } from './StackProvider.js';
|
|
4
5
|
import { BaseHeader } from '../BaseHeaderFooter/BaseHeader.js';
|
|
5
6
|
import '../Box/index.js';
|
|
6
7
|
import '../../utils/assignWithoutSideEffects/index.js';
|
|
@@ -16,11 +17,31 @@ var _DrawerHeader = function _DrawerHeader(_ref) {
|
|
|
16
17
|
titleSuffix = _ref.titleSuffix;
|
|
17
18
|
var _React$useContext = React__default.useContext(DrawerContext),
|
|
18
19
|
close = _React$useContext.close,
|
|
19
|
-
closeButtonRef = _React$useContext.closeButtonRef
|
|
20
|
-
|
|
20
|
+
closeButtonRef = _React$useContext.closeButtonRef,
|
|
21
|
+
stackingLevel = _React$useContext.stackingLevel,
|
|
22
|
+
isExiting = _React$useContext.isExiting;
|
|
23
|
+
var _useDrawerStack = useDrawerStack(),
|
|
24
|
+
drawerStack = _useDrawerStack.drawerStack;
|
|
25
|
+
var closeAllDrawers = function closeAllDrawers() {
|
|
26
|
+
for (var _i = 0, _Object$values = Object.values(drawerStack); _i < _Object$values.length; _i++) {
|
|
27
|
+
var onDismiss = _Object$values[_i];
|
|
28
|
+
onDismiss();
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
var isStackedDrawer = stackingLevel && stackingLevel > 1;
|
|
32
|
+
var isAtleastOneDrawerOpen = Object.keys(drawerStack).length > 0;
|
|
33
|
+
// This condition is to avoid back button disappear while stacked drawer is in the exiting transition
|
|
34
|
+
var isDrawerExiting = isAtleastOneDrawerOpen && isExiting && stackingLevel !== 1;
|
|
35
|
+
return /*#__PURE__*/jsx(BaseHeader
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
|
|
37
|
+
, {
|
|
38
|
+
showBackButton: isStackedDrawer || isDrawerExiting,
|
|
21
39
|
showCloseButton: true,
|
|
22
40
|
closeButtonRef: closeButtonRef,
|
|
23
41
|
onCloseButtonClick: function onCloseButtonClick() {
|
|
42
|
+
return closeAllDrawers();
|
|
43
|
+
},
|
|
44
|
+
onBackButtonClick: function onBackButtonClick() {
|
|
24
45
|
return close();
|
|
25
46
|
},
|
|
26
47
|
title: title,
|
|
@@ -48,10 +69,11 @@ var _DrawerHeader = function _DrawerHeader(_ref) {
|
|
|
48
69
|
var DrawerHeader = /*#__PURE__*/assignWithoutSideEffects(_DrawerHeader, {
|
|
49
70
|
componentId: drawerComponentIds.DrawerHeader
|
|
50
71
|
});
|
|
72
|
+
var drawerPadding = 'spacing.6';
|
|
51
73
|
var _DrawerBody = function _DrawerBody(_ref2) {
|
|
52
74
|
var children = _ref2.children;
|
|
53
75
|
return /*#__PURE__*/jsx(Box, {
|
|
54
|
-
padding:
|
|
76
|
+
padding: drawerPadding,
|
|
55
77
|
overflow: "auto",
|
|
56
78
|
flex: "1",
|
|
57
79
|
children: children
|
|
@@ -61,5 +83,5 @@ var DrawerBody = /*#__PURE__*/assignWithoutSideEffects(_DrawerBody, {
|
|
|
61
83
|
componentId: drawerComponentIds.DrawerBody
|
|
62
84
|
});
|
|
63
85
|
|
|
64
|
-
export { DrawerBody, DrawerHeader };
|
|
86
|
+
export { DrawerBody, DrawerHeader, drawerPadding };
|
|
65
87
|
//# sourceMappingURL=DrawerSubcomponents.web.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DrawerSubcomponents.web.js","sources":["../../../../../../src/components/Drawer/DrawerSubcomponents.web.tsx"],"sourcesContent":["import React from 'react';\nimport { drawerComponentIds } from './drawerComponentIds';\nimport { DrawerContext } from './DrawerContext';\nimport type { DrawerHeaderProps } from './types';\nimport { BaseHeader } from '~components/BaseHeaderFooter/BaseHeader';\nimport { Box } from '~components/Box';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\nconst _DrawerHeader = ({\n title,\n subtitle,\n leading,\n trailing,\n titleSuffix,\n}: DrawerHeaderProps): React.ReactElement => {\n const { close, closeButtonRef } = React.useContext(DrawerContext);\n\n return (\n <BaseHeader\n showCloseButton={true}\n closeButtonRef={closeButtonRef}\n onCloseButtonClick={() => close()}\n title={title}\n titleSuffix={titleSuffix}\n subtitle={subtitle}\n leading={leading}\n trailing={trailing}\n />\n );\n};\n\n/**\n * #### Usage\n *\n * ```jsx\n * <DrawerHeader\n * title=\"Announcements\"\n * subtitle=\"Checkout what's new in Razorpay\"\n * titleSuffix={<DrawerHeaderBadge>New</DrawerHeaderBadge>}\n * leading={<DrawerHeaderIcon icon={AnnouncementIcon} />}\n * trailing={<Button icon={DownloadIcon} />}\n * />\n * ```\n *\n */\nconst DrawerHeader = assignWithoutSideEffects(_DrawerHeader, {\n componentId: drawerComponentIds.DrawerHeader,\n});\n\nconst _DrawerBody = ({ children }: { children: React.ReactNode }): React.ReactElement => {\n return (\n <Box padding
|
|
1
|
+
{"version":3,"file":"DrawerSubcomponents.web.js","sources":["../../../../../../src/components/Drawer/DrawerSubcomponents.web.tsx"],"sourcesContent":["import React from 'react';\nimport { drawerComponentIds } from './drawerComponentIds';\nimport { DrawerContext } from './DrawerContext';\nimport type { DrawerHeaderProps } from './types';\nimport { useDrawerStack } from './StackProvider';\nimport { BaseHeader } from '~components/BaseHeaderFooter/BaseHeader';\nimport { Box } from '~components/Box';\nimport { assignWithoutSideEffects } from '~utils/assignWithoutSideEffects';\n\nconst _DrawerHeader = ({\n title,\n subtitle,\n leading,\n trailing,\n titleSuffix,\n}: DrawerHeaderProps): React.ReactElement => {\n const { close, closeButtonRef, stackingLevel, isExiting } = React.useContext(DrawerContext);\n const { drawerStack } = useDrawerStack();\n const closeAllDrawers = (): void => {\n for (const onDismiss of Object.values(drawerStack)) {\n onDismiss();\n }\n };\n\n const isStackedDrawer = stackingLevel && stackingLevel > 1;\n\n const isAtleastOneDrawerOpen = Object.keys(drawerStack).length > 0;\n // This condition is to avoid back button disappear while stacked drawer is in the exiting transition\n const isDrawerExiting = isAtleastOneDrawerOpen && isExiting && stackingLevel !== 1;\n\n return (\n <BaseHeader\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n showBackButton={isStackedDrawer || isDrawerExiting}\n showCloseButton={true}\n closeButtonRef={closeButtonRef}\n onCloseButtonClick={() => closeAllDrawers()}\n onBackButtonClick={() => close()}\n title={title}\n titleSuffix={titleSuffix}\n subtitle={subtitle}\n leading={leading}\n trailing={trailing}\n />\n );\n};\n\n/**\n * #### Usage\n *\n * ```jsx\n * <DrawerHeader\n * title=\"Announcements\"\n * subtitle=\"Checkout what's new in Razorpay\"\n * titleSuffix={<DrawerHeaderBadge>New</DrawerHeaderBadge>}\n * leading={<DrawerHeaderIcon icon={AnnouncementIcon} />}\n * trailing={<Button icon={DownloadIcon} />}\n * />\n * ```\n *\n */\nconst DrawerHeader = assignWithoutSideEffects(_DrawerHeader, {\n componentId: drawerComponentIds.DrawerHeader,\n});\n\nconst drawerPadding = 'spacing.6';\n\nconst _DrawerBody = ({ children }: { children: React.ReactNode }): React.ReactElement => {\n return (\n <Box padding={drawerPadding} overflow=\"auto\" flex=\"1\">\n {children}\n </Box>\n );\n};\nconst DrawerBody = assignWithoutSideEffects(_DrawerBody, {\n componentId: drawerComponentIds.DrawerBody,\n});\n\nexport { DrawerHeader, DrawerBody, drawerPadding };\n"],"names":["_DrawerHeader","_ref","title","subtitle","leading","trailing","titleSuffix","_React$useContext","React","useContext","DrawerContext","close","closeButtonRef","stackingLevel","isExiting","_useDrawerStack","useDrawerStack","drawerStack","closeAllDrawers","_i","_Object$values","Object","values","length","onDismiss","isStackedDrawer","isAtleastOneDrawerOpen","keys","isDrawerExiting","_jsx","BaseHeader","showBackButton","showCloseButton","onCloseButtonClick","onBackButtonClick","DrawerHeader","assignWithoutSideEffects","componentId","drawerComponentIds","drawerPadding","_DrawerBody","_ref2","children","Box","padding","overflow","flex","DrawerBody"],"mappings":"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"}
|
|
@@ -1,35 +1,44 @@
|
|
|
1
|
-
import
|
|
1
|
+
import _typeof from '@babel/runtime/helpers/typeof';
|
|
2
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
4
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
5
|
import React__default from 'react';
|
|
4
6
|
import { jsx } from 'react/jsx-runtime';
|
|
5
7
|
|
|
8
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
9
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
10
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
6
12
|
var StackingContext = /*#__PURE__*/React__default.createContext({
|
|
7
|
-
drawerStack:
|
|
13
|
+
drawerStack: {},
|
|
8
14
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
9
15
|
addToDrawerStack: function addToDrawerStack() {},
|
|
10
16
|
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
11
17
|
removeFromDrawerStack: function removeFromDrawerStack() {}
|
|
12
18
|
});
|
|
13
19
|
var useStacking = function useStacking() {
|
|
14
|
-
var _React$useState = React__default.useState(
|
|
20
|
+
var _React$useState = React__default.useState({}),
|
|
15
21
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
16
22
|
stack = _React$useState2[0],
|
|
17
23
|
setStack = _React$useState2[1];
|
|
18
|
-
var addToStack = function addToStack(
|
|
19
|
-
|
|
24
|
+
var addToStack = function addToStack(_ref) {
|
|
25
|
+
var elementId = _ref.elementId,
|
|
26
|
+
onDismiss = _ref.onDismiss;
|
|
27
|
+
if (stack[elementId]) {
|
|
20
28
|
return;
|
|
21
29
|
}
|
|
22
|
-
setStack(
|
|
30
|
+
setStack(_objectSpread(_objectSpread({}, stack), {}, _defineProperty({}, elementId, onDismiss)));
|
|
23
31
|
};
|
|
24
|
-
var removeFromStack = function removeFromStack(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
32
|
+
var removeFromStack = function removeFromStack(_ref2) {
|
|
33
|
+
var elementId = _ref2.elementId;
|
|
34
|
+
var _ = stack[elementId],
|
|
35
|
+
newStack = _objectWithoutProperties(stack, [elementId].map(_toPropertyKey));
|
|
36
|
+
setStack(newStack);
|
|
28
37
|
};
|
|
29
38
|
return [stack, addToStack, removeFromStack];
|
|
30
39
|
};
|
|
31
|
-
var DrawerStackProvider = function DrawerStackProvider(
|
|
32
|
-
var children =
|
|
40
|
+
var DrawerStackProvider = function DrawerStackProvider(_ref3) {
|
|
41
|
+
var children = _ref3.children;
|
|
33
42
|
var _useStacking = useStacking(),
|
|
34
43
|
_useStacking2 = _slicedToArray(_useStacking, 3),
|
|
35
44
|
drawerStack = _useStacking2[0],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StackProvider.js","sources":["../../../../../../src/components/Drawer/StackProvider.tsx"],"sourcesContent":["import React from 'react';\n\ntype
|
|
1
|
+
{"version":3,"file":"StackProvider.js","sources":["../../../../../../src/components/Drawer/StackProvider.tsx"],"sourcesContent":["import React from 'react';\n\ntype AddToStackType = ({\n elementId,\n onDismiss,\n}: {\n elementId: string;\n onDismiss: () => void;\n}) => void;\n\ntype RemoveFromStackType = ({ elementId }: { elementId: string }) => void;\n\ntype GlobalStackStateType = {\n drawerStack: Record<string, () => void>;\n addToDrawerStack: AddToStackType;\n removeFromDrawerStack: RemoveFromStackType;\n};\n\nconst StackingContext = React.createContext<GlobalStackStateType>({\n drawerStack: {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n addToDrawerStack: () => {},\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n removeFromDrawerStack: () => {},\n});\n\nconst useStacking = (): [\n GlobalStackStateType['drawerStack'],\n AddToStackType,\n RemoveFromStackType,\n] => {\n const [stack, setStack] = React.useState<GlobalStackStateType['drawerStack']>({});\n\n const addToStack: AddToStackType = ({ elementId, onDismiss }) => {\n if (stack[elementId]) {\n return;\n }\n\n setStack({ ...stack, [elementId]: onDismiss });\n };\n\n const removeFromStack: RemoveFromStackType = ({ elementId }) => {\n const { [elementId]: _, ...newStack } = stack;\n setStack(newStack);\n };\n\n return [stack, addToStack, removeFromStack];\n};\n\nconst DrawerStackProvider = ({ children }: { children: React.ReactNode }): React.ReactElement => {\n const [drawerStack, addToDrawerStack, removeFromDrawerStack] = useStacking();\n\n const contextValue = React.useMemo<GlobalStackStateType>(\n () => ({\n drawerStack,\n addToDrawerStack,\n removeFromDrawerStack,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [drawerStack],\n );\n\n return <StackingContext.Provider value={contextValue}>{children}</StackingContext.Provider>;\n};\n\nconst useDrawerStack = (): GlobalStackStateType => {\n return React.useContext(StackingContext);\n};\n\nexport { DrawerStackProvider, useDrawerStack };\n"],"names":["StackingContext","React","createContext","drawerStack","addToDrawerStack","removeFromDrawerStack","useStacking","_React$useState","useState","_React$useState2","_slicedToArray","stack","setStack","addToStack","_ref","elementId","onDismiss","_objectSpread","_defineProperty","removeFromStack","_ref2","_","newStack","_objectWithoutProperties","map","_toPropertyKey","DrawerStackProvider","_ref3","children","_useStacking","_useStacking2","contextValue","useMemo","_jsx","Provider","value","useDrawerStack","useContext"],"mappings":";;;;;;;;;;;AAkBA,IAAMA,eAAe,gBAAGC,cAAK,CAACC,aAAa,CAAuB;EAChEC,WAAW,EAAE,EAAE;AACf;AACAC,EAAAA,gBAAgB,EAAE,SAAAA,gBAAA,GAAM,EAAE;AAC1B;AACAC,EAAAA,qBAAqB,EAAE,SAAAA,qBAAA,GAAM,EAAC;AAChC,CAAC,CAAC,CAAA;AAEF,IAAMC,WAAW,GAAG,SAAdA,WAAWA,GAIZ;EACH,IAAAC,eAAA,GAA0BN,cAAK,CAACO,QAAQ,CAAsC,EAAE,CAAC;IAAAC,gBAAA,GAAAC,cAAA,CAAAH,eAAA,EAAA,CAAA,CAAA;AAA1EI,IAAAA,KAAK,GAAAF,gBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,QAAQ,GAAAH,gBAAA,CAAA,CAAA,CAAA,CAAA;AAEtB,EAAA,IAAMI,UAA0B,GAAG,SAA7BA,UAA0BA,CAAAC,IAAA,EAAiC;AAAA,IAAA,IAA3BC,SAAS,GAAAD,IAAA,CAATC,SAAS;MAAEC,SAAS,GAAAF,IAAA,CAATE,SAAS,CAAA;AACxD,IAAA,IAAIL,KAAK,CAACI,SAAS,CAAC,EAAE;AACpB,MAAA,OAAA;AACF,KAAA;AAEAH,IAAAA,QAAQ,CAAAK,aAAA,CAAAA,aAAA,CAAMN,EAAAA,EAAAA,KAAK,CAAAO,EAAAA,EAAAA,EAAAA,eAAA,CAAGH,EAAAA,EAAAA,SAAS,EAAGC,SAAS,EAAE,CAAC,CAAA;GAC/C,CAAA;AAED,EAAA,IAAMG,eAAoC,GAAG,SAAvCA,eAAoCA,CAAAC,KAAA,EAAsB;AAAA,IAAA,IAAhBL,SAAS,GAAAK,KAAA,CAATL,SAAS,CAAA;AACvD,IAAA,IAAqBM,CAAC,GAAkBV,KAAK,CAApCI,SAAS,CAAA;MAASO,QAAQ,GAAAC,wBAAA,CAAKZ,KAAK,GAApCI,SAAS,CAAA,CAAAS,GAAA,CAAAC,cAAA,CAAA,CAAA,CAAA;IAClBb,QAAQ,CAACU,QAAQ,CAAC,CAAA;GACnB,CAAA;AAED,EAAA,OAAO,CAACX,KAAK,EAAEE,UAAU,EAAEM,eAAe,CAAC,CAAA;AAC7C,CAAC,CAAA;AAED,IAAMO,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,KAAA,EAAwE;AAAA,EAAA,IAAlEC,QAAQ,GAAAD,KAAA,CAARC,QAAQ,CAAA;AACrC,EAAA,IAAAC,YAAA,GAA+DvB,WAAW,EAAE;IAAAwB,aAAA,GAAApB,cAAA,CAAAmB,YAAA,EAAA,CAAA,CAAA;AAArE1B,IAAAA,WAAW,GAAA2B,aAAA,CAAA,CAAA,CAAA;AAAE1B,IAAAA,gBAAgB,GAAA0B,aAAA,CAAA,CAAA,CAAA;AAAEzB,IAAAA,qBAAqB,GAAAyB,aAAA,CAAA,CAAA,CAAA,CAAA;AAE3D,EAAA,IAAMC,YAAY,GAAG9B,cAAK,CAAC+B,OAAO,CAChC,YAAA;IAAA,OAAO;AACL7B,MAAAA,WAAW,EAAXA,WAAW;AACXC,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAChBC,MAAAA,qBAAqB,EAArBA,qBAAAA;KACD,CAAA;GAAC;AACF;EACA,CAACF,WAAW,CACd,CAAC,CAAA;AAED,EAAA,oBAAO8B,GAAA,CAACjC,eAAe,CAACkC,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAEJ,YAAa;AAAAH,IAAAA,QAAA,EAAEA,QAAAA;AAAQ,GAA2B,CAAC,CAAA;AAC7F,EAAC;AAED,IAAMQ,cAAc,GAAG,SAAjBA,cAAcA,GAA+B;AACjD,EAAA,OAAOnC,cAAK,CAACoC,UAAU,CAACrC,eAAe,CAAC,CAAA;AAC1C;;;;"}
|
|
@@ -197,6 +197,9 @@ var _FileUpload = function _FileUpload(_ref, ref) {
|
|
|
197
197
|
fileList: allFiles
|
|
198
198
|
});
|
|
199
199
|
}
|
|
200
|
+
|
|
201
|
+
// Reset the input value to allow re-selecting the same file
|
|
202
|
+
event.target.value = '';
|
|
200
203
|
};
|
|
201
204
|
return /*#__PURE__*/jsxs(BaseBox, _objectSpread(_objectSpread(_objectSpread({
|
|
202
205
|
display: "flex",
|