@laerdal/life-react-components 1.11.0-dev.30 → 1.11.0-dev.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AuthPage/AuthPage.d.ts +0 -1
- package/dist/Button/DualFunctionButton.cjs +7 -3
- package/dist/Button/DualFunctionButton.cjs.map +1 -1
- package/dist/Button/DualFunctionButton.js +6 -3
- package/dist/Button/DualFunctionButton.js.map +1 -1
- package/dist/Dropdown/BasicDropdown.cjs +1 -0
- package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
- package/dist/Dropdown/BasicDropdown.js +1 -0
- package/dist/Dropdown/BasicDropdown.js.map +1 -1
- package/dist/Dropdown/DropdownButton.cjs +10 -4
- package/dist/Dropdown/DropdownButton.cjs.map +1 -1
- package/dist/Dropdown/DropdownButton.js +10 -4
- package/dist/Dropdown/DropdownButton.js.map +1 -1
- package/dist/Dropdown/DropdownButtonTypes.cjs.map +1 -1
- package/dist/Dropdown/DropdownButtonTypes.d.ts +1 -1
- package/dist/Dropdown/DropdownButtonTypes.js.map +1 -1
- package/dist/Dropdown/DropdownContent.cjs +14 -12
- package/dist/Dropdown/DropdownContent.cjs.map +1 -1
- package/dist/Dropdown/DropdownContent.js +14 -12
- package/dist/Dropdown/DropdownContent.js.map +1 -1
- package/dist/Dropdown/DropdownFilter.cjs +3 -2
- package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
- package/dist/Dropdown/DropdownFilter.js +3 -2
- package/dist/Dropdown/DropdownFilter.js.map +1 -1
- package/dist/Footer/Components/FooterBottomLinks.d.ts +0 -1
- package/dist/Footer/Components/FooterDropdownLinks.d.ts +0 -1
- package/dist/Footer/Components/FooterNavSection.d.ts +0 -1
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.d.ts +0 -1
- package/dist/Footer/Components/FooterTop.d.ts +0 -1
- package/dist/Footer/Footer.d.ts +0 -1
- package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.d.ts +0 -1
- package/dist/GlobalNavigationBar/desktop/UserMenu.d.ts +0 -1
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs +5 -3
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js +4 -2
- package/dist/GlobalNavigationBar/mobile/MobileActionContainer.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs +5 -3
- package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenu.d.ts +0 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenu.js +4 -2
- package/dist/GlobalNavigationBar/mobile/MobileMenu.js.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs +5 -3
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.cjs.map +1 -1
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js +4 -2
- package/dist/GlobalNavigationBar/mobile/MobileMenuContent.js.map +1 -1
- package/dist/InputFields/DatepickerField.cjs +2 -2
- package/dist/InputFields/DatepickerField.cjs.map +1 -1
- package/dist/InputFields/DatepickerField.js +2 -2
- package/dist/InputFields/DatepickerField.js.map +1 -1
- package/dist/InputFields/DatepickerFieldHeader.d.ts +0 -1
- package/dist/InputFields/SearchBar.cjs +1 -0
- package/dist/InputFields/SearchBar.cjs.map +1 -1
- package/dist/InputFields/SearchBar.js +1 -0
- package/dist/InputFields/SearchBar.js.map +1 -1
- package/dist/InputFields/Textarea.cjs.map +1 -1
- package/dist/InputFields/Textarea.d.ts +1 -1
- package/dist/InputFields/Textarea.js.map +1 -1
- package/dist/InputFields/types.cjs.map +1 -1
- package/dist/InputFields/types.d.ts +1 -1
- package/dist/InputFields/types.js.map +1 -1
- package/dist/LoadingIndicator/LoadingIndicator.d.ts +0 -1
- package/dist/MiniProductCard/MiniProductCard.d.ts +0 -1
- package/dist/Paginator/Paginator.d.ts +0 -1
- package/dist/SideMenu/SideMenuBody.d.ts +0 -1
- package/dist/SideMenu/SideMenuFooter.d.ts +0 -1
- package/dist/SideMenu/SideMenuHeader.d.ts +0 -1
- package/dist/SideMenu/types.d.ts +0 -1
- package/dist/Switcher/SwitcherMenuItem.d.ts +0 -1
- package/dist/Table/TableTypes.d.ts +0 -1
- package/dist/Tile/TileCommonItems.d.ts +0 -1
- package/dist/Toggles/TogglerTypes.d.ts +0 -1
- package/dist/Tooltips/TooltipTypes.d.ts +0 -1
- package/dist/Tooltips/TooltipWrapper.d.ts +0 -1
- package/package.json +21 -18
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileActionContainer.cjs","names":["ActionContainer","styled","div","COLORS","neutral_200","BREAKPOINTS","SMALL","MobileActionContainer","disabled","variant","icon","label","isLoading","action","isSmallScreen","
|
|
1
|
+
{"version":3,"file":"MobileActionContainer.cjs","names":["ActionContainer","styled","div","COLORS","neutral_200","BREAKPOINTS","SMALL","MobileActionContainer","disabled","variant","icon","label","isLoading","action","isSmallScreen","useMediaQuery","query","replace","Size","Medium","Small"],"sources":["../../../src/GlobalNavigationBar/mobile/MobileActionContainer.tsx"],"sourcesContent":["import React from 'react';\nimport { useMediaQuery } from 'react-responsive';\nimport styled from 'styled-components';\nimport { Button } from '../../Button';\nimport { BREAKPOINTS, COLORS } from '../../styles';\nimport { Size } from '../../types';\nimport { MenuButton } from '../types';\n\nconst ActionContainer = styled.div`\n padding: 8px 16px;\n box-sizing: border-box;\n border-top: 1px solid ${COLORS.neutral_200};\n display: flex;\n flex-direction: column;\n\n ${BREAKPOINTS.SMALL} {\n padding: 16px;\n }\n`;\n\ninterface MobileActionContainerProps extends MenuButton {}\n\nexport const MobileActionContainer: React.FunctionComponent<MobileActionContainerProps> = ({ disabled, variant = 'secondary', icon, label, isLoading, action }) => {\n const isSmallScreen = useMediaQuery({ query: BREAKPOINTS.SMALL.replace('@media ', '') });\n\n return (\n <ActionContainer>\n <Button variant={variant} size={isSmallScreen ? Size.Medium : Size.Small} disabled={disabled} icon={icon} loading={isLoading} onClick={action}>\n {label}\n </Button>\n </ActionContainer>\n );\n};\n"],"mappings":";;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAGA,IAAMA,eAAe,GAAGC,yBAAA,CAAOC,GAAV,wPAGKC,cAAA,CAAOC,WAHZ,EAOjBC,mBAAA,CAAYC,KAPK,CAArB;;AAcO,IAAMC,qBAA0E,GAAG,SAA7EA,qBAA6E,OAAyE;EAAA,IAAtEC,QAAsE,QAAtEA,QAAsE;EAAA,wBAA5DC,OAA4D;EAAA,IAA5DA,OAA4D,6BAAlD,WAAkD;EAAA,IAArCC,IAAqC,QAArCA,IAAqC;EAAA,IAA/BC,KAA+B,QAA/BA,KAA+B;EAAA,IAAxBC,SAAwB,QAAxBA,SAAwB;EAAA,IAAbC,MAAa,QAAbA,MAAa;EACjK,IAAMC,aAAa,GAAG,IAAAC,8BAAA,EAAc;IAAEC,KAAK,EAAEX,mBAAA,CAAYC,KAAZ,CAAkBW,OAAlB,CAA0B,SAA1B,EAAqC,EAArC;EAAT,CAAd,CAAtB;EAEA,oBACE,qBAAC,eAAD;IAAA,uBACE,qBAAC,cAAD;MAAQ,OAAO,EAAER,OAAjB;MAA0B,IAAI,EAAEK,aAAa,GAAGI,WAAA,CAAKC,MAAR,GAAiBD,WAAA,CAAKE,KAAnE;MAA0E,QAAQ,EAAEZ,QAApF;MAA8F,IAAI,EAAEE,IAApG;MAA0G,OAAO,EAAEE,SAAnH;MAA8H,OAAO,EAAEC,MAAvI;MAAA,UACGF;IADH;EADF,EADF;AAOD,CAVM"}
|
|
@@ -3,11 +3,11 @@ import _taggedTemplateLiteral from "@babel/runtime/helpers/esm/taggedTemplateLit
|
|
|
3
3
|
var _templateObject;
|
|
4
4
|
|
|
5
5
|
import React from 'react';
|
|
6
|
+
import { useMediaQuery } from 'react-responsive';
|
|
6
7
|
import styled from 'styled-components';
|
|
7
8
|
import { Button } from '../../Button';
|
|
8
9
|
import { BREAKPOINTS, COLORS } from '../../styles';
|
|
9
10
|
import { Size } from '../../types';
|
|
10
|
-
import { useMediaMatch } from "rooks";
|
|
11
11
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
12
|
var ActionContainer = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n padding: 8px 16px;\n box-sizing: border-box;\n border-top: 1px solid ", ";\n display: flex;\n flex-direction: column;\n\n ", " {\n padding: 16px;\n }\n"])), COLORS.neutral_200, BREAKPOINTS.SMALL);
|
|
13
13
|
export var MobileActionContainer = function MobileActionContainer(_ref) {
|
|
@@ -18,7 +18,9 @@ export var MobileActionContainer = function MobileActionContainer(_ref) {
|
|
|
18
18
|
label = _ref.label,
|
|
19
19
|
isLoading = _ref.isLoading,
|
|
20
20
|
action = _ref.action;
|
|
21
|
-
var isSmallScreen =
|
|
21
|
+
var isSmallScreen = useMediaQuery({
|
|
22
|
+
query: BREAKPOINTS.SMALL.replace('@media ', '')
|
|
23
|
+
});
|
|
22
24
|
return /*#__PURE__*/_jsx(ActionContainer, {
|
|
23
25
|
children: /*#__PURE__*/_jsx(Button, {
|
|
24
26
|
variant: variant,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileActionContainer.js","names":["React","styled","Button","BREAKPOINTS","COLORS","Size","
|
|
1
|
+
{"version":3,"file":"MobileActionContainer.js","names":["React","useMediaQuery","styled","Button","BREAKPOINTS","COLORS","Size","ActionContainer","div","neutral_200","SMALL","MobileActionContainer","disabled","variant","icon","label","isLoading","action","isSmallScreen","query","replace","Medium","Small"],"sources":["../../../src/GlobalNavigationBar/mobile/MobileActionContainer.tsx"],"sourcesContent":["import React from 'react';\nimport { useMediaQuery } from 'react-responsive';\nimport styled from 'styled-components';\nimport { Button } from '../../Button';\nimport { BREAKPOINTS, COLORS } from '../../styles';\nimport { Size } from '../../types';\nimport { MenuButton } from '../types';\n\nconst ActionContainer = styled.div`\n padding: 8px 16px;\n box-sizing: border-box;\n border-top: 1px solid ${COLORS.neutral_200};\n display: flex;\n flex-direction: column;\n\n ${BREAKPOINTS.SMALL} {\n padding: 16px;\n }\n`;\n\ninterface MobileActionContainerProps extends MenuButton {}\n\nexport const MobileActionContainer: React.FunctionComponent<MobileActionContainerProps> = ({ disabled, variant = 'secondary', icon, label, isLoading, action }) => {\n const isSmallScreen = useMediaQuery({ query: BREAKPOINTS.SMALL.replace('@media ', '') });\n\n return (\n <ActionContainer>\n <Button variant={variant} size={isSmallScreen ? Size.Medium : Size.Small} disabled={disabled} icon={icon} loading={isLoading} onClick={action}>\n {label}\n </Button>\n </ActionContainer>\n );\n};\n"],"mappings":";;;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,aAAT,QAA8B,kBAA9B;AACA,OAAOC,MAAP,MAAmB,mBAAnB;AACA,SAASC,MAAT,QAAuB,cAAvB;AACA,SAASC,WAAT,EAAsBC,MAAtB,QAAoC,cAApC;AACA,SAASC,IAAT,QAAqB,aAArB;;AAGA,IAAMC,eAAe,GAAGL,MAAM,CAACM,GAAV,0OAGKH,MAAM,CAACI,WAHZ,EAOjBL,WAAW,CAACM,KAPK,CAArB;AAcA,OAAO,IAAMC,qBAA0E,GAAG,SAA7EA,qBAA6E,OAAyE;EAAA,IAAtEC,QAAsE,QAAtEA,QAAsE;EAAA,wBAA5DC,OAA4D;EAAA,IAA5DA,OAA4D,6BAAlD,WAAkD;EAAA,IAArCC,IAAqC,QAArCA,IAAqC;EAAA,IAA/BC,KAA+B,QAA/BA,KAA+B;EAAA,IAAxBC,SAAwB,QAAxBA,SAAwB;EAAA,IAAbC,MAAa,QAAbA,MAAa;EACjK,IAAMC,aAAa,GAAGjB,aAAa,CAAC;IAAEkB,KAAK,EAAEf,WAAW,CAACM,KAAZ,CAAkBU,OAAlB,CAA0B,SAA1B,EAAqC,EAArC;EAAT,CAAD,CAAnC;EAEA,oBACE,KAAC,eAAD;IAAA,uBACE,KAAC,MAAD;MAAQ,OAAO,EAAEP,OAAjB;MAA0B,IAAI,EAAEK,aAAa,GAAGZ,IAAI,CAACe,MAAR,GAAiBf,IAAI,CAACgB,KAAnE;MAA0E,QAAQ,EAAEV,QAApF;MAA8F,IAAI,EAAEE,IAApG;MAA0G,OAAO,EAAEE,SAAnH;MAA8H,OAAO,EAAEC,MAAvI;MAAA,UACGF;IADH;EADF,EADF;AAOD,CAVM"}
|
|
@@ -31,9 +31,9 @@ var _MobileMenuHeader = _interopRequireDefault(require("./MobileMenuHeader"));
|
|
|
31
31
|
|
|
32
32
|
var _MobileMenuContent = _interopRequireDefault(require("./MobileMenuContent"));
|
|
33
33
|
|
|
34
|
-
var
|
|
34
|
+
var _reactResponsive = require("react-responsive");
|
|
35
35
|
|
|
36
|
-
var
|
|
36
|
+
var _StackState = require("../../common/StackState");
|
|
37
37
|
|
|
38
38
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
39
39
|
|
|
@@ -71,7 +71,9 @@ var MobileMenu = function MobileMenu(_ref) {
|
|
|
71
71
|
pop = _useStackState.pop,
|
|
72
72
|
peek = _useStackState.peek;
|
|
73
73
|
|
|
74
|
-
var isMediumScreen = (0,
|
|
74
|
+
var isMediumScreen = (0, _reactResponsive.useMediaQuery)({
|
|
75
|
+
query: _styles.BREAKPOINTS.LARGE.replace('@media ', '')
|
|
76
|
+
});
|
|
75
77
|
var location = (0, _reactRouterDom.useLocation)();
|
|
76
78
|
|
|
77
79
|
var onSubMenuOpen = function onSubMenuOpen(menu) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileMenu.cjs","names":["Wrapper","styled","div","Z_INDEXES","off_canvas","BREAKPOINTS","SMALL","SwitcherLabel","MobileFooter","COLORS","neutral_200","ComponentXSStyling","ComponentTextStyle","Bold","neutral_600","ComponentSStyling","CustomContent","MobileMenu","show","profile","buttons","label","header","items","footer","action","onClose","useStackState","reset","length","push","pop","peek","isMediumScreen","useMediaMatch","LARGE","replace","location","useLocation","onSubMenuOpen","menu","type","content","customContent","custom","React","useEffect","setTimeout","current","switcher","find","a","undefined"],"sources":["../../../src/GlobalNavigationBar/mobile/MobileMenu.tsx"],"sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {BREAKPOINTS, COLORS, ComponentSStyling, ComponentTextStyle, ComponentXSStyling, Z_INDEXES} from '../../styles';\nimport {SwitchApp} from '../../icons/systemicons/SystemIcons';\nimport {useLocation} from 'react-router-dom';\nimport {IconButton} from '../../Button';\nimport {LaerdalLogo} from '../../assets';\nimport {\n MenuAccountInfo,\n MenuButton,\n MenuNavigationItemTypeGroup,\n MenuGroupFooter,\n MenuGroupHeader,\n MenuIconButton,\n MenuNavigationItemTypeItem,\n MobileNavigationMenuProps,\n ProfileMenu,\n MenuNavigationItemTypeSection,\n MobileMenuButtonTypes,\n MenuSwitcherButton,\n MenuNavigationCustomSubMenu\n} from '../types';\nimport MobileMenuHeader from './MobileMenuHeader';\nimport MobileMenuContent from './MobileMenuContent';\nimport {useStackState} from '../../common/StackState';\nimport {useMediaMatch} from \"rooks\";\n\nconst Wrapper = styled.div`\n width: 320px;\n z-index: ${Z_INDEXES.off_canvas};\n height: 100%;\n box-sizing: border-box;\n\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n ${BREAKPOINTS.SMALL} {\n width: 400px;\n }\n`;\n\nconst SwitcherLabel = styled.div`\n margin-left: auto;\n`;\n\nconst MobileFooter = styled.div`\n display: flex;\n align-items: center;\n box-sizing: border-box;\n height: 48px;\n\n padding: 0 4px 0 16px;\n border-top: 1px solid ${COLORS.neutral_200};\n\n ${ComponentXSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n ${BREAKPOINTS.SMALL} {\n height: 56px;\n padding: 4px 8px 4px 16px;\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n }\n`;\n\nconst CustomContent = styled.div`\n width: 100%;\n box-sizing: border-box;\n flex-flow: column;\n display: flex;\n flex: 1;\n overflow: hidden;\n`;\n\ntype Props = MobileNavigationMenuProps & {\n profile?: ProfileMenu;\n show?: boolean;\n onClose: () => void;\n};\n\ninterface MenuState {\n header: {\n label?: string;\n buttons?: MobileMenuButtonTypes[];\n }\n content?: {\n header?: MenuGroupHeader;\n items?: (MenuNavigationItemTypeItem | MenuNavigationItemTypeGroup | MenuNavigationItemTypeSection)[];\n footer?: MenuGroupFooter;\n action?: MenuButton;\n },\n customContent?: () => React.ReactNode;\n footer?: boolean;\n}\n\nconst MobileMenu = ({\n show,\n profile,\n buttons,\n label,\n header,\n items,\n footer,\n action,\n onClose,\n }: Props) => {\n\n const {reset, length, push, pop, peek} = useStackState<MenuState>();\n\n const isMediumScreen = useMediaMatch(BREAKPOINTS.LARGE.replace('@media ', ''));\n\n const location = useLocation();\n\n const onSubMenuOpen = (menu?: MenuNavigationItemTypeGroup | MenuNavigationCustomSubMenu) => {\n\n switch (menu?.type) {\n case 'group':\n push({\n header: {\n label: menu.label,\n buttons: menu.buttons,\n },\n content: {\n header: menu.header,\n items: menu.items,\n footer: menu.footer,\n action: menu.action\n },\n footer: false\n });\n break;\n case 'custom':\n push({\n header: {\n label: menu.label,\n buttons: menu.buttons,\n },\n customContent: menu.custom,\n footer: false\n });\n break;\n default:\n break;\n }\n\n };\n\n React.useEffect(() => {\n onClose();\n }, [location]);\n\n React.useEffect(() => {\n isMediumScreen && onClose()\n }, [isMediumScreen]);\n\n React.useEffect(() => {\n setTimeout(() => {\n reset({\n footer: true,\n header: {\n label: label,\n buttons: buttons,\n },\n content: {\n header: header,\n items: items,\n footer: footer,\n action: action\n }\n })\n }, 300)\n }, [show])\n\n\n const current = peek();\n\n const switcher = current?.header?.buttons?.find(a => a.type === 'switcher') as MenuSwitcherButton;\n\n return (\n <Wrapper>\n <MobileMenuHeader buttons={current?.header.buttons}\n onGoBack={length > 1 ? pop : undefined}\n onSubMenuOpen={onSubMenuOpen}\n profile={profile}\n label={current?.header.label}\n onClose={onClose}/>\n {current?.customContent && <CustomContent>{current?.customContent()}</CustomContent>}\n {current?.content && <MobileMenuContent header={current?.content.header}\n items={current?.content.items}\n footer={current?.content.footer}\n action={current?.content.action}\n onSubMenuOpen={onSubMenuOpen}/>}\n\n {\n current?.footer &&\n <MobileFooter>\n <LaerdalLogo height={'36px'} width={'66px'}/>\n {switcher &&\n <>\n <SwitcherLabel className={'globalNav-toggler'}>Switch site</SwitcherLabel>\n <IconButton\n variant={'secondary'}\n shape={'circular'}\n id=\"globalNavAppsButton\"\n action={() => switcher.action && switcher.action() && onClose()}>\n <SwitchApp size=\"24px\"/>\n </IconButton>\n </>\n }\n\n </MobileFooter>\n }\n </Wrapper>\n );\n};\n\nexport default MobileMenu;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MobileMenu.cjs","names":["Wrapper","styled","div","Z_INDEXES","off_canvas","BREAKPOINTS","SMALL","SwitcherLabel","MobileFooter","COLORS","neutral_200","ComponentXSStyling","ComponentTextStyle","Bold","neutral_600","ComponentSStyling","CustomContent","MobileMenu","show","profile","buttons","label","header","items","footer","action","onClose","useStackState","reset","length","push","pop","peek","isMediumScreen","useMediaQuery","query","LARGE","replace","location","useLocation","onSubMenuOpen","menu","type","content","customContent","custom","React","useEffect","setTimeout","current","switcher","find","a","undefined"],"sources":["../../../src/GlobalNavigationBar/mobile/MobileMenu.tsx"],"sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {BREAKPOINTS, COLORS, ComponentSStyling, ComponentTextStyle, ComponentXSStyling, Z_INDEXES} from '../../styles';\nimport {SwitchApp} from '../../icons/systemicons/SystemIcons';\nimport {useLocation} from 'react-router-dom';\nimport {IconButton} from '../../Button';\nimport {LaerdalLogo} from '../../assets';\nimport {\n MenuAccountInfo,\n MenuButton,\n MenuNavigationItemTypeGroup,\n MenuGroupFooter,\n MenuGroupHeader,\n MenuIconButton,\n MenuNavigationItemTypeItem,\n MobileNavigationMenuProps,\n ProfileMenu,\n MenuNavigationItemTypeSection,\n MenuIconSubMenuButton,\n MobileMenuButtonTypes,\n MenuSwitcherButton,\n MenuNavigationCustomSubMenu\n} from '../types';\nimport MobileMenuHeader from './MobileMenuHeader';\nimport MobileMenuContent from './MobileMenuContent';\nimport {useMediaQuery} from 'react-responsive';\nimport {useStackState} from '../../common/StackState';\n\nconst Wrapper = styled.div`\n width: 320px;\n z-index: ${Z_INDEXES.off_canvas};\n height: 100%;\n box-sizing: border-box;\n\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n ${BREAKPOINTS.SMALL} {\n width: 400px;\n }\n`;\n\nconst SwitcherLabel = styled.div`\n margin-left: auto;\n`;\n\nconst MobileFooter = styled.div`\n display: flex;\n align-items: center;\n box-sizing: border-box;\n height: 48px;\n\n padding: 0 4px 0 16px;\n border-top: 1px solid ${COLORS.neutral_200};\n\n ${ComponentXSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n ${BREAKPOINTS.SMALL} {\n height: 56px;\n padding: 4px 8px 4px 16px;\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n }\n`;\n\nconst CustomContent = styled.div`\n width: 100%;\n box-sizing: border-box;\n flex-flow: column;\n display: flex;\n flex: 1;\n overflow: hidden;\n`;\n\ntype Props = MobileNavigationMenuProps & {\n profile?: ProfileMenu;\n show?: boolean;\n onClose: () => void;\n};\n\ninterface MenuState {\n header: {\n label?: string;\n buttons?: MobileMenuButtonTypes[];\n }\n content?: {\n header?: MenuGroupHeader;\n items?: (MenuNavigationItemTypeItem | MenuNavigationItemTypeGroup | MenuNavigationItemTypeSection)[];\n footer?: MenuGroupFooter;\n action?: MenuButton;\n },\n customContent?: () => React.ReactNode;\n footer?: boolean;\n}\n\nconst MobileMenu = ({\n show,\n profile,\n buttons,\n label,\n header,\n items,\n footer,\n action,\n onClose,\n }: Props) => {\n\n const {reset, length, push, pop, peek} = useStackState<MenuState>();\n\n const isMediumScreen = useMediaQuery({query: BREAKPOINTS.LARGE.replace('@media ', '')});\n\n const location = useLocation();\n\n const onSubMenuOpen = (menu?: MenuNavigationItemTypeGroup | MenuNavigationCustomSubMenu) => {\n\n switch (menu?.type) {\n case 'group':\n push({\n header: {\n label: menu.label,\n buttons: menu.buttons,\n },\n content: {\n header: menu.header,\n items: menu.items,\n footer: menu.footer,\n action: menu.action\n },\n footer: false\n });\n break;\n case 'custom':\n push({\n header: {\n label: menu.label,\n buttons: menu.buttons,\n },\n customContent: menu.custom,\n footer: false\n });\n break;\n default:\n break;\n }\n\n };\n\n React.useEffect(() => {\n onClose();\n }, [location]);\n\n React.useEffect(() => {\n isMediumScreen && onClose()\n }, [isMediumScreen]);\n\n React.useEffect(() => {\n setTimeout(() => {\n reset({\n footer: true,\n header: {\n label: label,\n buttons: buttons,\n },\n content: {\n header: header,\n items: items,\n footer: footer,\n action: action\n }\n })\n }, 300)\n }, [show])\n\n\n const current = peek();\n\n const switcher = current?.header?.buttons?.find(a => a.type === 'switcher') as MenuSwitcherButton;\n\n return (\n <Wrapper>\n <MobileMenuHeader buttons={current?.header.buttons}\n onGoBack={length > 1 ? pop : undefined}\n onSubMenuOpen={onSubMenuOpen}\n profile={profile}\n label={current?.header.label}\n onClose={onClose}/>\n {current?.customContent && <CustomContent>{current?.customContent()}</CustomContent>}\n {current?.content && <MobileMenuContent header={current?.content.header}\n items={current?.content.items}\n footer={current?.content.footer}\n action={current?.content.action}\n onSubMenuOpen={onSubMenuOpen}/>}\n\n {\n current?.footer &&\n <MobileFooter>\n <LaerdalLogo height={'36px'} width={'66px'}/>\n {switcher &&\n <>\n <SwitcherLabel className={'globalNav-toggler'}>Switch site</SwitcherLabel>\n <IconButton\n variant={'secondary'}\n shape={'circular'}\n id=\"globalNavAppsButton\"\n action={() => switcher.action && switcher.action() && onClose()}>\n <SwitchApp size=\"24px\"/>\n </IconButton>\n </>\n }\n\n </MobileFooter>\n }\n </Wrapper>\n );\n};\n\nexport default MobileMenu;\n"],"mappings":"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"}
|
|
@@ -12,8 +12,8 @@ import { IconButton } from '../../Button';
|
|
|
12
12
|
import { LaerdalLogo } from '../../assets';
|
|
13
13
|
import MobileMenuHeader from './MobileMenuHeader';
|
|
14
14
|
import MobileMenuContent from './MobileMenuContent';
|
|
15
|
+
import { useMediaQuery } from 'react-responsive';
|
|
15
16
|
import { useStackState } from '../../common/StackState';
|
|
16
|
-
import { useMediaMatch } from "rooks";
|
|
17
17
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
18
18
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
19
19
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
@@ -42,7 +42,9 @@ var MobileMenu = function MobileMenu(_ref) {
|
|
|
42
42
|
pop = _useStackState.pop,
|
|
43
43
|
peek = _useStackState.peek;
|
|
44
44
|
|
|
45
|
-
var isMediumScreen =
|
|
45
|
+
var isMediumScreen = useMediaQuery({
|
|
46
|
+
query: BREAKPOINTS.LARGE.replace('@media ', '')
|
|
47
|
+
});
|
|
46
48
|
var location = useLocation();
|
|
47
49
|
|
|
48
50
|
var onSubMenuOpen = function onSubMenuOpen(menu) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileMenu.js","names":["React","styled","BREAKPOINTS","COLORS","ComponentSStyling","ComponentTextStyle","ComponentXSStyling","Z_INDEXES","SwitchApp","useLocation","IconButton","LaerdalLogo","MobileMenuHeader","MobileMenuContent","useStackState","useMediaMatch","Wrapper","div","off_canvas","SMALL","SwitcherLabel","MobileFooter","neutral_200","Bold","neutral_600","CustomContent","MobileMenu","show","profile","buttons","label","header","items","footer","action","onClose","reset","length","push","pop","peek","isMediumScreen","LARGE","replace","location","onSubMenuOpen","menu","type","content","customContent","custom","useEffect","setTimeout","current","switcher","find","a","undefined"],"sources":["../../../src/GlobalNavigationBar/mobile/MobileMenu.tsx"],"sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {BREAKPOINTS, COLORS, ComponentSStyling, ComponentTextStyle, ComponentXSStyling, Z_INDEXES} from '../../styles';\nimport {SwitchApp} from '../../icons/systemicons/SystemIcons';\nimport {useLocation} from 'react-router-dom';\nimport {IconButton} from '../../Button';\nimport {LaerdalLogo} from '../../assets';\nimport {\n MenuAccountInfo,\n MenuButton,\n MenuNavigationItemTypeGroup,\n MenuGroupFooter,\n MenuGroupHeader,\n MenuIconButton,\n MenuNavigationItemTypeItem,\n MobileNavigationMenuProps,\n ProfileMenu,\n MenuNavigationItemTypeSection,\n MobileMenuButtonTypes,\n MenuSwitcherButton,\n MenuNavigationCustomSubMenu\n} from '../types';\nimport MobileMenuHeader from './MobileMenuHeader';\nimport MobileMenuContent from './MobileMenuContent';\nimport {useStackState} from '../../common/StackState';\nimport {useMediaMatch} from \"rooks\";\n\nconst Wrapper = styled.div`\n width: 320px;\n z-index: ${Z_INDEXES.off_canvas};\n height: 100%;\n box-sizing: border-box;\n\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n ${BREAKPOINTS.SMALL} {\n width: 400px;\n }\n`;\n\nconst SwitcherLabel = styled.div`\n margin-left: auto;\n`;\n\nconst MobileFooter = styled.div`\n display: flex;\n align-items: center;\n box-sizing: border-box;\n height: 48px;\n\n padding: 0 4px 0 16px;\n border-top: 1px solid ${COLORS.neutral_200};\n\n ${ComponentXSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n ${BREAKPOINTS.SMALL} {\n height: 56px;\n padding: 4px 8px 4px 16px;\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n }\n`;\n\nconst CustomContent = styled.div`\n width: 100%;\n box-sizing: border-box;\n flex-flow: column;\n display: flex;\n flex: 1;\n overflow: hidden;\n`;\n\ntype Props = MobileNavigationMenuProps & {\n profile?: ProfileMenu;\n show?: boolean;\n onClose: () => void;\n};\n\ninterface MenuState {\n header: {\n label?: string;\n buttons?: MobileMenuButtonTypes[];\n }\n content?: {\n header?: MenuGroupHeader;\n items?: (MenuNavigationItemTypeItem | MenuNavigationItemTypeGroup | MenuNavigationItemTypeSection)[];\n footer?: MenuGroupFooter;\n action?: MenuButton;\n },\n customContent?: () => React.ReactNode;\n footer?: boolean;\n}\n\nconst MobileMenu = ({\n show,\n profile,\n buttons,\n label,\n header,\n items,\n footer,\n action,\n onClose,\n }: Props) => {\n\n const {reset, length, push, pop, peek} = useStackState<MenuState>();\n\n const isMediumScreen = useMediaMatch(BREAKPOINTS.LARGE.replace('@media ', ''));\n\n const location = useLocation();\n\n const onSubMenuOpen = (menu?: MenuNavigationItemTypeGroup | MenuNavigationCustomSubMenu) => {\n\n switch (menu?.type) {\n case 'group':\n push({\n header: {\n label: menu.label,\n buttons: menu.buttons,\n },\n content: {\n header: menu.header,\n items: menu.items,\n footer: menu.footer,\n action: menu.action\n },\n footer: false\n });\n break;\n case 'custom':\n push({\n header: {\n label: menu.label,\n buttons: menu.buttons,\n },\n customContent: menu.custom,\n footer: false\n });\n break;\n default:\n break;\n }\n\n };\n\n React.useEffect(() => {\n onClose();\n }, [location]);\n\n React.useEffect(() => {\n isMediumScreen && onClose()\n }, [isMediumScreen]);\n\n React.useEffect(() => {\n setTimeout(() => {\n reset({\n footer: true,\n header: {\n label: label,\n buttons: buttons,\n },\n content: {\n header: header,\n items: items,\n footer: footer,\n action: action\n }\n })\n }, 300)\n }, [show])\n\n\n const current = peek();\n\n const switcher = current?.header?.buttons?.find(a => a.type === 'switcher') as MenuSwitcherButton;\n\n return (\n <Wrapper>\n <MobileMenuHeader buttons={current?.header.buttons}\n onGoBack={length > 1 ? pop : undefined}\n onSubMenuOpen={onSubMenuOpen}\n profile={profile}\n label={current?.header.label}\n onClose={onClose}/>\n {current?.customContent && <CustomContent>{current?.customContent()}</CustomContent>}\n {current?.content && <MobileMenuContent header={current?.content.header}\n items={current?.content.items}\n footer={current?.content.footer}\n action={current?.content.action}\n onSubMenuOpen={onSubMenuOpen}/>}\n\n {\n current?.footer &&\n <MobileFooter>\n <LaerdalLogo height={'36px'} width={'66px'}/>\n {switcher &&\n <>\n <SwitcherLabel className={'globalNav-toggler'}>Switch site</SwitcherLabel>\n <IconButton\n variant={'secondary'}\n shape={'circular'}\n id=\"globalNavAppsButton\"\n action={() => switcher.action && switcher.action() && onClose()}>\n <SwitchApp size=\"24px\"/>\n </IconButton>\n </>\n }\n\n </MobileFooter>\n }\n </Wrapper>\n );\n};\n\nexport default MobileMenu;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MobileMenu.js","names":["React","styled","BREAKPOINTS","COLORS","ComponentSStyling","ComponentTextStyle","ComponentXSStyling","Z_INDEXES","SwitchApp","useLocation","IconButton","LaerdalLogo","MobileMenuHeader","MobileMenuContent","useMediaQuery","useStackState","Wrapper","div","off_canvas","SMALL","SwitcherLabel","MobileFooter","neutral_200","Bold","neutral_600","CustomContent","MobileMenu","show","profile","buttons","label","header","items","footer","action","onClose","reset","length","push","pop","peek","isMediumScreen","query","LARGE","replace","location","onSubMenuOpen","menu","type","content","customContent","custom","useEffect","setTimeout","current","switcher","find","a","undefined"],"sources":["../../../src/GlobalNavigationBar/mobile/MobileMenu.tsx"],"sourcesContent":["import * as React from 'react';\nimport styled from 'styled-components';\nimport {BREAKPOINTS, COLORS, ComponentSStyling, ComponentTextStyle, ComponentXSStyling, Z_INDEXES} from '../../styles';\nimport {SwitchApp} from '../../icons/systemicons/SystemIcons';\nimport {useLocation} from 'react-router-dom';\nimport {IconButton} from '../../Button';\nimport {LaerdalLogo} from '../../assets';\nimport {\n MenuAccountInfo,\n MenuButton,\n MenuNavigationItemTypeGroup,\n MenuGroupFooter,\n MenuGroupHeader,\n MenuIconButton,\n MenuNavigationItemTypeItem,\n MobileNavigationMenuProps,\n ProfileMenu,\n MenuNavigationItemTypeSection,\n MenuIconSubMenuButton,\n MobileMenuButtonTypes,\n MenuSwitcherButton,\n MenuNavigationCustomSubMenu\n} from '../types';\nimport MobileMenuHeader from './MobileMenuHeader';\nimport MobileMenuContent from './MobileMenuContent';\nimport {useMediaQuery} from 'react-responsive';\nimport {useStackState} from '../../common/StackState';\n\nconst Wrapper = styled.div`\n width: 320px;\n z-index: ${Z_INDEXES.off_canvas};\n height: 100%;\n box-sizing: border-box;\n\n display: flex;\n flex-direction: column;\n gap: 8px;\n\n ${BREAKPOINTS.SMALL} {\n width: 400px;\n }\n`;\n\nconst SwitcherLabel = styled.div`\n margin-left: auto;\n`;\n\nconst MobileFooter = styled.div`\n display: flex;\n align-items: center;\n box-sizing: border-box;\n height: 48px;\n\n padding: 0 4px 0 16px;\n border-top: 1px solid ${COLORS.neutral_200};\n\n ${ComponentXSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n ${BREAKPOINTS.SMALL} {\n height: 56px;\n padding: 4px 8px 4px 16px;\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n }\n`;\n\nconst CustomContent = styled.div`\n width: 100%;\n box-sizing: border-box;\n flex-flow: column;\n display: flex;\n flex: 1;\n overflow: hidden;\n`;\n\ntype Props = MobileNavigationMenuProps & {\n profile?: ProfileMenu;\n show?: boolean;\n onClose: () => void;\n};\n\ninterface MenuState {\n header: {\n label?: string;\n buttons?: MobileMenuButtonTypes[];\n }\n content?: {\n header?: MenuGroupHeader;\n items?: (MenuNavigationItemTypeItem | MenuNavigationItemTypeGroup | MenuNavigationItemTypeSection)[];\n footer?: MenuGroupFooter;\n action?: MenuButton;\n },\n customContent?: () => React.ReactNode;\n footer?: boolean;\n}\n\nconst MobileMenu = ({\n show,\n profile,\n buttons,\n label,\n header,\n items,\n footer,\n action,\n onClose,\n }: Props) => {\n\n const {reset, length, push, pop, peek} = useStackState<MenuState>();\n\n const isMediumScreen = useMediaQuery({query: BREAKPOINTS.LARGE.replace('@media ', '')});\n\n const location = useLocation();\n\n const onSubMenuOpen = (menu?: MenuNavigationItemTypeGroup | MenuNavigationCustomSubMenu) => {\n\n switch (menu?.type) {\n case 'group':\n push({\n header: {\n label: menu.label,\n buttons: menu.buttons,\n },\n content: {\n header: menu.header,\n items: menu.items,\n footer: menu.footer,\n action: menu.action\n },\n footer: false\n });\n break;\n case 'custom':\n push({\n header: {\n label: menu.label,\n buttons: menu.buttons,\n },\n customContent: menu.custom,\n footer: false\n });\n break;\n default:\n break;\n }\n\n };\n\n React.useEffect(() => {\n onClose();\n }, [location]);\n\n React.useEffect(() => {\n isMediumScreen && onClose()\n }, [isMediumScreen]);\n\n React.useEffect(() => {\n setTimeout(() => {\n reset({\n footer: true,\n header: {\n label: label,\n buttons: buttons,\n },\n content: {\n header: header,\n items: items,\n footer: footer,\n action: action\n }\n })\n }, 300)\n }, [show])\n\n\n const current = peek();\n\n const switcher = current?.header?.buttons?.find(a => a.type === 'switcher') as MenuSwitcherButton;\n\n return (\n <Wrapper>\n <MobileMenuHeader buttons={current?.header.buttons}\n onGoBack={length > 1 ? pop : undefined}\n onSubMenuOpen={onSubMenuOpen}\n profile={profile}\n label={current?.header.label}\n onClose={onClose}/>\n {current?.customContent && <CustomContent>{current?.customContent()}</CustomContent>}\n {current?.content && <MobileMenuContent header={current?.content.header}\n items={current?.content.items}\n footer={current?.content.footer}\n action={current?.content.action}\n onSubMenuOpen={onSubMenuOpen}/>}\n\n {\n current?.footer &&\n <MobileFooter>\n <LaerdalLogo height={'36px'} width={'66px'}/>\n {switcher &&\n <>\n <SwitcherLabel className={'globalNav-toggler'}>Switch site</SwitcherLabel>\n <IconButton\n variant={'secondary'}\n shape={'circular'}\n id=\"globalNavAppsButton\"\n action={() => switcher.action && switcher.action() && onClose()}>\n <SwitchApp size=\"24px\"/>\n </IconButton>\n </>\n }\n\n </MobileFooter>\n }\n </Wrapper>\n );\n};\n\nexport default MobileMenu;\n"],"mappings":"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"}
|
|
@@ -25,6 +25,8 @@ var _types = require("../../types");
|
|
|
25
25
|
|
|
26
26
|
var _HyperLink = require("../../HyperLink");
|
|
27
27
|
|
|
28
|
+
var _reactResponsive = require("react-responsive");
|
|
29
|
+
|
|
28
30
|
var _NavigationHelper = require("../../common/NavigationHelper");
|
|
29
31
|
|
|
30
32
|
var _MenuItem = require("../../MenuItem");
|
|
@@ -37,8 +39,6 @@ var _ScrollableContainer = require("../../common/ScrollableContainer");
|
|
|
37
39
|
|
|
38
40
|
var _MobileActionContainer = require("./MobileActionContainer");
|
|
39
41
|
|
|
40
|
-
var _rooks = require("rooks");
|
|
41
|
-
|
|
42
42
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
43
43
|
|
|
44
44
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9;
|
|
@@ -71,7 +71,9 @@ var MobileMenuContent = function MobileMenuContent(_ref) {
|
|
|
71
71
|
footer = _ref.footer,
|
|
72
72
|
action = _ref.action,
|
|
73
73
|
onSubMenuOpen = _ref.onSubMenuOpen;
|
|
74
|
-
var isSmallScreen = (0,
|
|
74
|
+
var isSmallScreen = (0, _reactResponsive.useMediaQuery)({
|
|
75
|
+
query: _styles.BREAKPOINTS.SMALL.replace('@media ', '')
|
|
76
|
+
});
|
|
75
77
|
|
|
76
78
|
var _useNavigationHelper = (0, _NavigationHelper.useNavigationHelper)(),
|
|
77
79
|
navigate = _useNavigationHelper.navigate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileMenuContent.cjs","names":["MenuItemsContainer","styled","div","MenuSectionContainer","COLORS","neutral_200","MenuSectionHeader","neutral_20","ComponentSStyling","ComponentTextStyle","Bold","neutral_500","MenuSectionList","PinnedContainer","FooterText","ComponentXSStyling","neutral_600","BREAKPOINTS","SMALL","FooterNote","ParagraphXSStyling","ParagraphTextStyle","Regular","ParagraphSStyling","FooterLink","FooterContainer","MobileMenuContent","header","items","footer","action","onSubMenuOpen","isSmallScreen","useMediaMatch","replace","useNavigationHelper","navigate","isActiveRoute","useScrollableContainer","scrollContainerRef","scrollable","renderItem","item","index","type","label","map","Size","Medium","Small","value","disabled","icon","displayLabel","noteLabel","note","e","nativeEvent","stopImmediatePropagation","external","to","exact","filter","a","pinned","some","link","id","target","onClick","href"],"sources":["../../../src/GlobalNavigationBar/mobile/MobileMenuContent.tsx"],"sourcesContent":["import React from 'react';\nimport { MenuButton, MenuGroupFooter, MenuGroupHeader, MenuNavigationItemTypeGroup, MenuNavigationItemTypeItem, MenuNavigationItemTypeSection } from '../types';\nimport styled from 'styled-components';\nimport {\n BREAKPOINTS,\n COLORS,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle,\n ComponentXSStyling,\n ParagraphSStyling,\n ParagraphTextStyle,\n ParagraphXSStyling,\n scrollBarStyling,\n} from '../../styles';\nimport { Size } from '../../types';\nimport { HyperLink } from '../../HyperLink';\nimport { useNavigationHelper } from '../../common/NavigationHelper';\nimport { MenuItem } from '../../MenuItem';\nimport { SystemIcons } from '../../icons';\nimport { MobileHeaderContainer, MobileHeaderNote, MobileHeaderText, MobileMenuWrapper, ScrollableContainer } from './CommonStyles';\nimport { useScrollableContainer } from '../../common/ScrollableContainer';\nimport { MobileActionContainer } from './MobileActionContainer';\nimport {useMediaMatch} from \"rooks\";\n\nconst MenuItemsContainer = styled.div`\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n padding: 8px;\n`;\n\nconst MenuSectionContainer = styled.div`\n padding-bottom: 8px;\n display: flex;\n flex-direction: column;\n width: 100%;\n\n &.divider {\n border-top: 1px solid ${COLORS.neutral_200};\n }\n`;\n\nconst MenuSectionHeader = styled.div`\n display: flex;\n align-items: center;\n padding: 8px 16px 4px 16px;\n box-sizing: border-box;\n min-height: 32px;\n background-color: ${COLORS.neutral_20};\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n`;\n\nconst MenuSectionList = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst PinnedContainer = styled.div`\n border-top: 1px solid ${COLORS.neutral_200};\n`;\n\nconst FooterText = styled.div`\n ${ComponentXSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n ${BREAKPOINTS.SMALL} {\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n }\n`;\nconst FooterNote = styled.div`\n ${ParagraphXSStyling(ParagraphTextStyle.Regular, COLORS.neutral_600)}\n ${BREAKPOINTS.SMALL} {\n ${ParagraphSStyling(ParagraphTextStyle.Regular, COLORS.neutral_600)}\n }\n`;\nconst FooterLink = styled.div`\n a {\n ${ComponentXSStyling(ComponentTextStyle.Bold, null)}\n ${BREAKPOINTS.SMALL} {\n ${ComponentSStyling(ComponentTextStyle.Bold, null)}\n }\n }\n`;\n\nconst FooterContainer = styled.div`\n padding: 8px 16px;\n box-sizing: border-box;\n border-top: 1px solid ${COLORS.neutral_200};\n display: flex;\n flex-direction: column;\n background: ${COLORS.neutral_20};\n\n ${BREAKPOINTS.SMALL} {\n padding: 16px;\n }\n`;\n\ninterface MobileMenuContentProps {\n header?: MenuGroupHeader;\n items?: (MenuNavigationItemTypeItem | MenuNavigationItemTypeGroup | MenuNavigationItemTypeSection)[];\n footer?: MenuGroupFooter;\n action?: MenuButton;\n\n onSubMenuOpen?: (item: MenuNavigationItemTypeGroup) => void;\n}\n\nconst MobileMenuContent: React.FunctionComponent<MobileMenuContentProps> = ({ header, items, footer, action, onSubMenuOpen }) => {\n const isSmallScreen = useMediaMatch(BREAKPOINTS.SMALL.replace('@media ', ''));\n\n const { navigate, isActiveRoute } = useNavigationHelper();\n\n const [scrollContainerRef, scrollable] = useScrollableContainer([header, footer, action, items]);\n\n const renderItem = (item: MenuNavigationItemTypeItem | MenuNavigationItemTypeGroup | MenuNavigationItemTypeSection, index: number) => {\n switch (item.type) {\n case 'section':\n return (\n <MenuSectionContainer key={index}>\n {item.label && <MenuSectionHeader>{item.label}</MenuSectionHeader>}\n <MenuSectionList>{item.items.map((item, index) => renderItem(item, index))}</MenuSectionList>\n </MenuSectionContainer>\n );\n case 'group':\n return (\n <MenuItem\n key={index}\n id={'menu-item-' + index}\n size={isSmallScreen ? Size.Medium : Size.Small}\n active={false}\n item={{\n value: item.label,\n disabled: item.disabled,\n icon: item.icon,\n displayLabel: item.label,\n noteLabel: item.note,\n }}\n iconRight={<SystemIcons.ArrowDropRight />}\n onClickHandler={(e) => {\n e.nativeEvent.stopImmediatePropagation();\n onSubMenuOpen && onSubMenuOpen(item);\n }}\n />\n );\n case 'item':\n default:\n return (\n <MenuItem\n key={index}\n id={'menu-item-' + index}\n active={!item.external && isActiveRoute(item.to, !!item.exact)}\n size={isSmallScreen ? Size.Medium : Size.Small}\n item={{\n value: item.to,\n disabled: item.disabled,\n icon: item.icon,\n displayLabel: item.label,\n noteLabel: item.note,\n }}\n onClickHandler={(e) => {\n item.action && item.action(e);\n navigate(item.to, !!item.external);\n }}\n />\n );\n }\n };\n\n return (\n <MobileMenuWrapper>\n <ScrollableContainer ref={scrollContainerRef as any} className={scrollable ? 'scrollable' : ''}>\n {!!header && (\n <MobileHeaderContainer>\n <MobileHeaderText>{header.header}</MobileHeaderText>\n {header.note && <MobileHeaderNote>{header.note}</MobileHeaderNote>}\n </MobileHeaderContainer>\n )}\n <MenuItemsContainer>{items?.filter((a) => !a.pinned).map((item, index) => renderItem(item, index))}</MenuItemsContainer>\n </ScrollableContainer>\n {items?.some((a) => a.pinned) && (\n <PinnedContainer>\n <MenuItemsContainer>{items?.filter((a) => !!a.pinned).map((item, index) => renderItem(item, index))}</MenuItemsContainer>\n </PinnedContainer>\n )}\n {footer && (\n <FooterContainer>\n <FooterText>{footer.header}</FooterText>\n {footer.note && <FooterNote>{footer.note}</FooterNote>}\n {footer.link && (\n <FooterLink>\n <HyperLink variant={'default'} id={footer.link.id} target={footer.link.target} onClick={footer.link.onClick} href={footer.link.href}>\n {footer.link.label}\n </HyperLink>\n </FooterLink>\n )}\n </FooterContainer>\n )}\n {action && <MobileActionContainer {...action} />}\n </MobileMenuWrapper>\n );\n};\n\nexport default MobileMenuContent;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MobileMenuContent.cjs","names":["MenuItemsContainer","styled","div","MenuSectionContainer","COLORS","neutral_200","MenuSectionHeader","neutral_20","ComponentSStyling","ComponentTextStyle","Bold","neutral_500","MenuSectionList","PinnedContainer","FooterText","ComponentXSStyling","neutral_600","BREAKPOINTS","SMALL","FooterNote","ParagraphXSStyling","ParagraphTextStyle","Regular","ParagraphSStyling","FooterLink","FooterContainer","MobileMenuContent","header","items","footer","action","onSubMenuOpen","isSmallScreen","useMediaQuery","query","replace","useNavigationHelper","navigate","isActiveRoute","useScrollableContainer","scrollContainerRef","scrollable","renderItem","item","index","type","label","map","Size","Medium","Small","value","disabled","icon","displayLabel","noteLabel","note","e","nativeEvent","stopImmediatePropagation","external","to","exact","filter","a","pinned","some","link","id","target","onClick","href"],"sources":["../../../src/GlobalNavigationBar/mobile/MobileMenuContent.tsx"],"sourcesContent":["import React from 'react';\nimport { MenuButton, MenuGroupFooter, MenuGroupHeader, MenuNavigationItemTypeGroup, MenuNavigationItemTypeItem, MenuNavigationItemTypeSection } from '../types';\nimport styled from 'styled-components';\nimport {\n BREAKPOINTS,\n COLORS,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle,\n ComponentXSStyling,\n ParagraphSStyling,\n ParagraphTextStyle,\n ParagraphXSStyling,\n scrollBarStyling,\n} from '../../styles';\nimport { Size } from '../../types';\nimport { HyperLink } from '../../HyperLink';\nimport { useMediaQuery } from 'react-responsive';\nimport { Button } from '../../Button';\nimport { useNavigationHelper } from '../../common/NavigationHelper';\nimport { MenuItem } from '../../MenuItem';\nimport { SystemIcons } from '../../icons';\nimport { useDimensionsRef } from 'rooks';\nimport { MobileHeaderContainer, MobileHeaderNote, MobileHeaderText, MobileMenuWrapper, ScrollableContainer } from './CommonStyles';\nimport { useScrollableContainer } from '../../common/ScrollableContainer';\nimport { MobileActionContainer } from './MobileActionContainer';\n\nconst MenuItemsContainer = styled.div`\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n padding: 8px;\n`;\n\nconst MenuSectionContainer = styled.div`\n padding-bottom: 8px;\n display: flex;\n flex-direction: column;\n width: 100%;\n\n &.divider {\n border-top: 1px solid ${COLORS.neutral_200};\n }\n`;\n\nconst MenuSectionHeader = styled.div`\n display: flex;\n align-items: center;\n padding: 8px 16px 4px 16px;\n box-sizing: border-box;\n min-height: 32px;\n background-color: ${COLORS.neutral_20};\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n`;\n\nconst MenuSectionList = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst PinnedContainer = styled.div`\n border-top: 1px solid ${COLORS.neutral_200};\n`;\n\nconst FooterText = styled.div`\n ${ComponentXSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n ${BREAKPOINTS.SMALL} {\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n }\n`;\nconst FooterNote = styled.div`\n ${ParagraphXSStyling(ParagraphTextStyle.Regular, COLORS.neutral_600)}\n ${BREAKPOINTS.SMALL} {\n ${ParagraphSStyling(ParagraphTextStyle.Regular, COLORS.neutral_600)}\n }\n`;\nconst FooterLink = styled.div`\n a {\n ${ComponentXSStyling(ComponentTextStyle.Bold, null)}\n ${BREAKPOINTS.SMALL} {\n ${ComponentSStyling(ComponentTextStyle.Bold, null)}\n }\n }\n`;\n\nconst FooterContainer = styled.div`\n padding: 8px 16px;\n box-sizing: border-box;\n border-top: 1px solid ${COLORS.neutral_200};\n display: flex;\n flex-direction: column;\n background: ${COLORS.neutral_20};\n\n ${BREAKPOINTS.SMALL} {\n padding: 16px;\n }\n`;\n\ninterface MobileMenuContentProps {\n header?: MenuGroupHeader;\n items?: (MenuNavigationItemTypeItem | MenuNavigationItemTypeGroup | MenuNavigationItemTypeSection)[];\n footer?: MenuGroupFooter;\n action?: MenuButton;\n\n onSubMenuOpen?: (item: MenuNavigationItemTypeGroup) => void;\n}\n\nconst MobileMenuContent: React.FunctionComponent<MobileMenuContentProps> = ({ header, items, footer, action, onSubMenuOpen }) => {\n const isSmallScreen = useMediaQuery({ query: BREAKPOINTS.SMALL.replace('@media ', '') });\n\n const { navigate, isActiveRoute } = useNavigationHelper();\n\n const [scrollContainerRef, scrollable] = useScrollableContainer([header, footer, action, items]);\n\n const renderItem = (item: MenuNavigationItemTypeItem | MenuNavigationItemTypeGroup | MenuNavigationItemTypeSection, index: number) => {\n switch (item.type) {\n case 'section':\n return (\n <MenuSectionContainer key={index}>\n {item.label && <MenuSectionHeader>{item.label}</MenuSectionHeader>}\n <MenuSectionList>{item.items.map((item, index) => renderItem(item, index))}</MenuSectionList>\n </MenuSectionContainer>\n );\n case 'group':\n return (\n <MenuItem\n key={index}\n id={'menu-item-' + index}\n size={isSmallScreen ? Size.Medium : Size.Small}\n active={false}\n item={{\n value: item.label,\n disabled: item.disabled,\n icon: item.icon,\n displayLabel: item.label,\n noteLabel: item.note,\n }}\n iconRight={<SystemIcons.ArrowDropRight />}\n onClickHandler={(e) => {\n e.nativeEvent.stopImmediatePropagation();\n onSubMenuOpen && onSubMenuOpen(item);\n }}\n />\n );\n case 'item':\n default:\n return (\n <MenuItem\n key={index}\n id={'menu-item-' + index}\n active={!item.external && isActiveRoute(item.to, !!item.exact)}\n size={isSmallScreen ? Size.Medium : Size.Small}\n item={{\n value: item.to,\n disabled: item.disabled,\n icon: item.icon,\n displayLabel: item.label,\n noteLabel: item.note,\n }}\n onClickHandler={(e) => {\n item.action && item.action(e);\n navigate(item.to, !!item.external);\n }}\n />\n );\n }\n };\n\n return (\n <MobileMenuWrapper>\n <ScrollableContainer ref={scrollContainerRef as any} className={scrollable ? 'scrollable' : ''}>\n {!!header && (\n <MobileHeaderContainer>\n <MobileHeaderText>{header.header}</MobileHeaderText>\n {header.note && <MobileHeaderNote>{header.note}</MobileHeaderNote>}\n </MobileHeaderContainer>\n )}\n <MenuItemsContainer>{items?.filter((a) => !a.pinned).map((item, index) => renderItem(item, index))}</MenuItemsContainer>\n </ScrollableContainer>\n {items?.some((a) => a.pinned) && (\n <PinnedContainer>\n <MenuItemsContainer>{items?.filter((a) => !!a.pinned).map((item, index) => renderItem(item, index))}</MenuItemsContainer>\n </PinnedContainer>\n )}\n {footer && (\n <FooterContainer>\n <FooterText>{footer.header}</FooterText>\n {footer.note && <FooterNote>{footer.note}</FooterNote>}\n {footer.link && (\n <FooterLink>\n <HyperLink variant={'default'} id={footer.link.id} target={footer.link.target} onClick={footer.link.onClick} href={footer.link.href}>\n {footer.link.label}\n </HyperLink>\n </FooterLink>\n )}\n </FooterContainer>\n )}\n {action && <MobileActionContainer {...action} />}\n </MobileMenuWrapper>\n );\n};\n\nexport default MobileMenuContent;\n"],"mappings":"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"}
|
|
@@ -14,13 +14,13 @@ import styled from 'styled-components';
|
|
|
14
14
|
import { BREAKPOINTS, COLORS, ComponentSStyling, ComponentTextStyle, ComponentXSStyling, ParagraphSStyling, ParagraphTextStyle, ParagraphXSStyling } from '../../styles';
|
|
15
15
|
import { Size } from '../../types';
|
|
16
16
|
import { HyperLink } from '../../HyperLink';
|
|
17
|
+
import { useMediaQuery } from 'react-responsive';
|
|
17
18
|
import { useNavigationHelper } from '../../common/NavigationHelper';
|
|
18
19
|
import { MenuItem } from '../../MenuItem';
|
|
19
20
|
import { SystemIcons } from '../../icons';
|
|
20
21
|
import { MobileHeaderContainer, MobileHeaderNote, MobileHeaderText, MobileMenuWrapper, ScrollableContainer } from './CommonStyles';
|
|
21
22
|
import { useScrollableContainer } from '../../common/ScrollableContainer';
|
|
22
23
|
import { MobileActionContainer } from './MobileActionContainer';
|
|
23
|
-
import { useMediaMatch } from "rooks";
|
|
24
24
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
25
25
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
26
26
|
var MenuItemsContainer = styled.div(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n padding: 8px;\n"])));
|
|
@@ -39,7 +39,9 @@ var MobileMenuContent = function MobileMenuContent(_ref) {
|
|
|
39
39
|
footer = _ref.footer,
|
|
40
40
|
action = _ref.action,
|
|
41
41
|
onSubMenuOpen = _ref.onSubMenuOpen;
|
|
42
|
-
var isSmallScreen =
|
|
42
|
+
var isSmallScreen = useMediaQuery({
|
|
43
|
+
query: BREAKPOINTS.SMALL.replace('@media ', '')
|
|
44
|
+
});
|
|
43
45
|
|
|
44
46
|
var _useNavigationHelper = useNavigationHelper(),
|
|
45
47
|
navigate = _useNavigationHelper.navigate,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileMenuContent.js","names":["React","styled","BREAKPOINTS","COLORS","ComponentSStyling","ComponentTextStyle","ComponentXSStyling","ParagraphSStyling","ParagraphTextStyle","ParagraphXSStyling","Size","HyperLink","useNavigationHelper","MenuItem","SystemIcons","MobileHeaderContainer","MobileHeaderNote","MobileHeaderText","MobileMenuWrapper","ScrollableContainer","useScrollableContainer","MobileActionContainer","useMediaMatch","MenuItemsContainer","div","MenuSectionContainer","neutral_200","MenuSectionHeader","neutral_20","Bold","neutral_500","MenuSectionList","PinnedContainer","FooterText","neutral_600","SMALL","FooterNote","Regular","FooterLink","FooterContainer","MobileMenuContent","header","items","footer","action","onSubMenuOpen","isSmallScreen","replace","navigate","isActiveRoute","scrollContainerRef","scrollable","renderItem","item","index","type","label","map","Medium","Small","value","disabled","icon","displayLabel","noteLabel","note","e","nativeEvent","stopImmediatePropagation","external","to","exact","filter","a","pinned","some","link","id","target","onClick","href"],"sources":["../../../src/GlobalNavigationBar/mobile/MobileMenuContent.tsx"],"sourcesContent":["import React from 'react';\nimport { MenuButton, MenuGroupFooter, MenuGroupHeader, MenuNavigationItemTypeGroup, MenuNavigationItemTypeItem, MenuNavigationItemTypeSection } from '../types';\nimport styled from 'styled-components';\nimport {\n BREAKPOINTS,\n COLORS,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle,\n ComponentXSStyling,\n ParagraphSStyling,\n ParagraphTextStyle,\n ParagraphXSStyling,\n scrollBarStyling,\n} from '../../styles';\nimport { Size } from '../../types';\nimport { HyperLink } from '../../HyperLink';\nimport { useNavigationHelper } from '../../common/NavigationHelper';\nimport { MenuItem } from '../../MenuItem';\nimport { SystemIcons } from '../../icons';\nimport { MobileHeaderContainer, MobileHeaderNote, MobileHeaderText, MobileMenuWrapper, ScrollableContainer } from './CommonStyles';\nimport { useScrollableContainer } from '../../common/ScrollableContainer';\nimport { MobileActionContainer } from './MobileActionContainer';\nimport {useMediaMatch} from \"rooks\";\n\nconst MenuItemsContainer = styled.div`\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n padding: 8px;\n`;\n\nconst MenuSectionContainer = styled.div`\n padding-bottom: 8px;\n display: flex;\n flex-direction: column;\n width: 100%;\n\n &.divider {\n border-top: 1px solid ${COLORS.neutral_200};\n }\n`;\n\nconst MenuSectionHeader = styled.div`\n display: flex;\n align-items: center;\n padding: 8px 16px 4px 16px;\n box-sizing: border-box;\n min-height: 32px;\n background-color: ${COLORS.neutral_20};\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n`;\n\nconst MenuSectionList = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst PinnedContainer = styled.div`\n border-top: 1px solid ${COLORS.neutral_200};\n`;\n\nconst FooterText = styled.div`\n ${ComponentXSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n ${BREAKPOINTS.SMALL} {\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n }\n`;\nconst FooterNote = styled.div`\n ${ParagraphXSStyling(ParagraphTextStyle.Regular, COLORS.neutral_600)}\n ${BREAKPOINTS.SMALL} {\n ${ParagraphSStyling(ParagraphTextStyle.Regular, COLORS.neutral_600)}\n }\n`;\nconst FooterLink = styled.div`\n a {\n ${ComponentXSStyling(ComponentTextStyle.Bold, null)}\n ${BREAKPOINTS.SMALL} {\n ${ComponentSStyling(ComponentTextStyle.Bold, null)}\n }\n }\n`;\n\nconst FooterContainer = styled.div`\n padding: 8px 16px;\n box-sizing: border-box;\n border-top: 1px solid ${COLORS.neutral_200};\n display: flex;\n flex-direction: column;\n background: ${COLORS.neutral_20};\n\n ${BREAKPOINTS.SMALL} {\n padding: 16px;\n }\n`;\n\ninterface MobileMenuContentProps {\n header?: MenuGroupHeader;\n items?: (MenuNavigationItemTypeItem | MenuNavigationItemTypeGroup | MenuNavigationItemTypeSection)[];\n footer?: MenuGroupFooter;\n action?: MenuButton;\n\n onSubMenuOpen?: (item: MenuNavigationItemTypeGroup) => void;\n}\n\nconst MobileMenuContent: React.FunctionComponent<MobileMenuContentProps> = ({ header, items, footer, action, onSubMenuOpen }) => {\n const isSmallScreen = useMediaMatch(BREAKPOINTS.SMALL.replace('@media ', ''));\n\n const { navigate, isActiveRoute } = useNavigationHelper();\n\n const [scrollContainerRef, scrollable] = useScrollableContainer([header, footer, action, items]);\n\n const renderItem = (item: MenuNavigationItemTypeItem | MenuNavigationItemTypeGroup | MenuNavigationItemTypeSection, index: number) => {\n switch (item.type) {\n case 'section':\n return (\n <MenuSectionContainer key={index}>\n {item.label && <MenuSectionHeader>{item.label}</MenuSectionHeader>}\n <MenuSectionList>{item.items.map((item, index) => renderItem(item, index))}</MenuSectionList>\n </MenuSectionContainer>\n );\n case 'group':\n return (\n <MenuItem\n key={index}\n id={'menu-item-' + index}\n size={isSmallScreen ? Size.Medium : Size.Small}\n active={false}\n item={{\n value: item.label,\n disabled: item.disabled,\n icon: item.icon,\n displayLabel: item.label,\n noteLabel: item.note,\n }}\n iconRight={<SystemIcons.ArrowDropRight />}\n onClickHandler={(e) => {\n e.nativeEvent.stopImmediatePropagation();\n onSubMenuOpen && onSubMenuOpen(item);\n }}\n />\n );\n case 'item':\n default:\n return (\n <MenuItem\n key={index}\n id={'menu-item-' + index}\n active={!item.external && isActiveRoute(item.to, !!item.exact)}\n size={isSmallScreen ? Size.Medium : Size.Small}\n item={{\n value: item.to,\n disabled: item.disabled,\n icon: item.icon,\n displayLabel: item.label,\n noteLabel: item.note,\n }}\n onClickHandler={(e) => {\n item.action && item.action(e);\n navigate(item.to, !!item.external);\n }}\n />\n );\n }\n };\n\n return (\n <MobileMenuWrapper>\n <ScrollableContainer ref={scrollContainerRef as any} className={scrollable ? 'scrollable' : ''}>\n {!!header && (\n <MobileHeaderContainer>\n <MobileHeaderText>{header.header}</MobileHeaderText>\n {header.note && <MobileHeaderNote>{header.note}</MobileHeaderNote>}\n </MobileHeaderContainer>\n )}\n <MenuItemsContainer>{items?.filter((a) => !a.pinned).map((item, index) => renderItem(item, index))}</MenuItemsContainer>\n </ScrollableContainer>\n {items?.some((a) => a.pinned) && (\n <PinnedContainer>\n <MenuItemsContainer>{items?.filter((a) => !!a.pinned).map((item, index) => renderItem(item, index))}</MenuItemsContainer>\n </PinnedContainer>\n )}\n {footer && (\n <FooterContainer>\n <FooterText>{footer.header}</FooterText>\n {footer.note && <FooterNote>{footer.note}</FooterNote>}\n {footer.link && (\n <FooterLink>\n <HyperLink variant={'default'} id={footer.link.id} target={footer.link.target} onClick={footer.link.onClick} href={footer.link.href}>\n {footer.link.label}\n </HyperLink>\n </FooterLink>\n )}\n </FooterContainer>\n )}\n {action && <MobileActionContainer {...action} />}\n </MobileMenuWrapper>\n );\n};\n\nexport default MobileMenuContent;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MobileMenuContent.js","names":["React","styled","BREAKPOINTS","COLORS","ComponentSStyling","ComponentTextStyle","ComponentXSStyling","ParagraphSStyling","ParagraphTextStyle","ParagraphXSStyling","Size","HyperLink","useMediaQuery","useNavigationHelper","MenuItem","SystemIcons","MobileHeaderContainer","MobileHeaderNote","MobileHeaderText","MobileMenuWrapper","ScrollableContainer","useScrollableContainer","MobileActionContainer","MenuItemsContainer","div","MenuSectionContainer","neutral_200","MenuSectionHeader","neutral_20","Bold","neutral_500","MenuSectionList","PinnedContainer","FooterText","neutral_600","SMALL","FooterNote","Regular","FooterLink","FooterContainer","MobileMenuContent","header","items","footer","action","onSubMenuOpen","isSmallScreen","query","replace","navigate","isActiveRoute","scrollContainerRef","scrollable","renderItem","item","index","type","label","map","Medium","Small","value","disabled","icon","displayLabel","noteLabel","note","e","nativeEvent","stopImmediatePropagation","external","to","exact","filter","a","pinned","some","link","id","target","onClick","href"],"sources":["../../../src/GlobalNavigationBar/mobile/MobileMenuContent.tsx"],"sourcesContent":["import React from 'react';\nimport { MenuButton, MenuGroupFooter, MenuGroupHeader, MenuNavigationItemTypeGroup, MenuNavigationItemTypeItem, MenuNavigationItemTypeSection } from '../types';\nimport styled from 'styled-components';\nimport {\n BREAKPOINTS,\n COLORS,\n ComponentMStyling,\n ComponentSStyling,\n ComponentTextStyle,\n ComponentXSStyling,\n ParagraphSStyling,\n ParagraphTextStyle,\n ParagraphXSStyling,\n scrollBarStyling,\n} from '../../styles';\nimport { Size } from '../../types';\nimport { HyperLink } from '../../HyperLink';\nimport { useMediaQuery } from 'react-responsive';\nimport { Button } from '../../Button';\nimport { useNavigationHelper } from '../../common/NavigationHelper';\nimport { MenuItem } from '../../MenuItem';\nimport { SystemIcons } from '../../icons';\nimport { useDimensionsRef } from 'rooks';\nimport { MobileHeaderContainer, MobileHeaderNote, MobileHeaderText, MobileMenuWrapper, ScrollableContainer } from './CommonStyles';\nimport { useScrollableContainer } from '../../common/ScrollableContainer';\nimport { MobileActionContainer } from './MobileActionContainer';\n\nconst MenuItemsContainer = styled.div`\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n padding: 8px;\n`;\n\nconst MenuSectionContainer = styled.div`\n padding-bottom: 8px;\n display: flex;\n flex-direction: column;\n width: 100%;\n\n &.divider {\n border-top: 1px solid ${COLORS.neutral_200};\n }\n`;\n\nconst MenuSectionHeader = styled.div`\n display: flex;\n align-items: center;\n padding: 8px 16px 4px 16px;\n box-sizing: border-box;\n min-height: 32px;\n background-color: ${COLORS.neutral_20};\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_500)}\n`;\n\nconst MenuSectionList = styled.div`\n display: flex;\n flex-direction: column;\n`;\n\nconst PinnedContainer = styled.div`\n border-top: 1px solid ${COLORS.neutral_200};\n`;\n\nconst FooterText = styled.div`\n ${ComponentXSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n ${BREAKPOINTS.SMALL} {\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n }\n`;\nconst FooterNote = styled.div`\n ${ParagraphXSStyling(ParagraphTextStyle.Regular, COLORS.neutral_600)}\n ${BREAKPOINTS.SMALL} {\n ${ParagraphSStyling(ParagraphTextStyle.Regular, COLORS.neutral_600)}\n }\n`;\nconst FooterLink = styled.div`\n a {\n ${ComponentXSStyling(ComponentTextStyle.Bold, null)}\n ${BREAKPOINTS.SMALL} {\n ${ComponentSStyling(ComponentTextStyle.Bold, null)}\n }\n }\n`;\n\nconst FooterContainer = styled.div`\n padding: 8px 16px;\n box-sizing: border-box;\n border-top: 1px solid ${COLORS.neutral_200};\n display: flex;\n flex-direction: column;\n background: ${COLORS.neutral_20};\n\n ${BREAKPOINTS.SMALL} {\n padding: 16px;\n }\n`;\n\ninterface MobileMenuContentProps {\n header?: MenuGroupHeader;\n items?: (MenuNavigationItemTypeItem | MenuNavigationItemTypeGroup | MenuNavigationItemTypeSection)[];\n footer?: MenuGroupFooter;\n action?: MenuButton;\n\n onSubMenuOpen?: (item: MenuNavigationItemTypeGroup) => void;\n}\n\nconst MobileMenuContent: React.FunctionComponent<MobileMenuContentProps> = ({ header, items, footer, action, onSubMenuOpen }) => {\n const isSmallScreen = useMediaQuery({ query: BREAKPOINTS.SMALL.replace('@media ', '') });\n\n const { navigate, isActiveRoute } = useNavigationHelper();\n\n const [scrollContainerRef, scrollable] = useScrollableContainer([header, footer, action, items]);\n\n const renderItem = (item: MenuNavigationItemTypeItem | MenuNavigationItemTypeGroup | MenuNavigationItemTypeSection, index: number) => {\n switch (item.type) {\n case 'section':\n return (\n <MenuSectionContainer key={index}>\n {item.label && <MenuSectionHeader>{item.label}</MenuSectionHeader>}\n <MenuSectionList>{item.items.map((item, index) => renderItem(item, index))}</MenuSectionList>\n </MenuSectionContainer>\n );\n case 'group':\n return (\n <MenuItem\n key={index}\n id={'menu-item-' + index}\n size={isSmallScreen ? Size.Medium : Size.Small}\n active={false}\n item={{\n value: item.label,\n disabled: item.disabled,\n icon: item.icon,\n displayLabel: item.label,\n noteLabel: item.note,\n }}\n iconRight={<SystemIcons.ArrowDropRight />}\n onClickHandler={(e) => {\n e.nativeEvent.stopImmediatePropagation();\n onSubMenuOpen && onSubMenuOpen(item);\n }}\n />\n );\n case 'item':\n default:\n return (\n <MenuItem\n key={index}\n id={'menu-item-' + index}\n active={!item.external && isActiveRoute(item.to, !!item.exact)}\n size={isSmallScreen ? Size.Medium : Size.Small}\n item={{\n value: item.to,\n disabled: item.disabled,\n icon: item.icon,\n displayLabel: item.label,\n noteLabel: item.note,\n }}\n onClickHandler={(e) => {\n item.action && item.action(e);\n navigate(item.to, !!item.external);\n }}\n />\n );\n }\n };\n\n return (\n <MobileMenuWrapper>\n <ScrollableContainer ref={scrollContainerRef as any} className={scrollable ? 'scrollable' : ''}>\n {!!header && (\n <MobileHeaderContainer>\n <MobileHeaderText>{header.header}</MobileHeaderText>\n {header.note && <MobileHeaderNote>{header.note}</MobileHeaderNote>}\n </MobileHeaderContainer>\n )}\n <MenuItemsContainer>{items?.filter((a) => !a.pinned).map((item, index) => renderItem(item, index))}</MenuItemsContainer>\n </ScrollableContainer>\n {items?.some((a) => a.pinned) && (\n <PinnedContainer>\n <MenuItemsContainer>{items?.filter((a) => !!a.pinned).map((item, index) => renderItem(item, index))}</MenuItemsContainer>\n </PinnedContainer>\n )}\n {footer && (\n <FooterContainer>\n <FooterText>{footer.header}</FooterText>\n {footer.note && <FooterNote>{footer.note}</FooterNote>}\n {footer.link && (\n <FooterLink>\n <HyperLink variant={'default'} id={footer.link.id} target={footer.link.target} onClick={footer.link.onClick} href={footer.link.href}>\n {footer.link.label}\n </HyperLink>\n </FooterLink>\n )}\n </FooterContainer>\n )}\n {action && <MobileActionContainer {...action} />}\n </MobileMenuWrapper>\n );\n};\n\nexport default MobileMenuContent;\n"],"mappings":"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"}
|
|
@@ -25,7 +25,7 @@ var _reactDatepicker = _interopRequireDefault(require("react-datepicker"));
|
|
|
25
25
|
|
|
26
26
|
var _enGB = _interopRequireDefault(require("date-fns/locale/en-GB"));
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var _moment = _interopRequireDefault(require("moment"));
|
|
29
29
|
|
|
30
30
|
var _colors = _interopRequireDefault(require("../styles/colors"));
|
|
31
31
|
|
|
@@ -117,7 +117,7 @@ var DatepickerField = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref
|
|
|
117
117
|
|
|
118
118
|
|
|
119
119
|
_react.default.useEffect(function () {
|
|
120
|
-
if (value) inputRef.current.value = (0,
|
|
120
|
+
if (value) inputRef.current.value = (0, _moment.default)(value).format(dateFormat ? dateFormat : 'MMMM Do, YYYY');
|
|
121
121
|
}, [value]);
|
|
122
122
|
|
|
123
123
|
_react.default.useEffect(function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatepickerField.cjs","names":["DatePickerContainer","styled","div","Z_INDEXES","dropdown","props","margin","COLORS","primary_20","focusStyles","neutral_20","neutral_200","yearPicker","ComponentSStyling","ComponentTextStyle","Bold","neutral_600","scrollBarStyling","Size","Small","ComponentMStyling","Regular","white","primary_700","primary_500","neutral_700","neutral_100","IconWrapper","focus","DatepickerRow","StyledInputFieldStyling","InputFieldStyling","neutral_500","primary_300","primary_200","primary_100","primary_800","neutral_300","DatepickerField","React","forwardRef","ref","disabled","readOnly","onChange","invalid","value","validationMessage","dateFormat","autoComplete","placeholder","required","yearsBeforeCurrentDate","yearsAfterCurrentDate","onBlur","rest","inputRef","useFocusVisibleRef","datepickerRef","useRef","useState","activeMonthPage","setActiveMonthPage","yearPickerMode","setYearPickerMode","openAt","setOpenAt","open","setOpen","useEffect","current","dayjs","format","selectedDate","document","getElementsByClassName","dropdownParent","parentElement","scrollTop","offsetTop","offsetHeight","useImperativeHandle","handleCalendarClose","blur","handleCalendarOpen","maxDate","Date","setFullYear","getFullYear","minDate","itemsNumber","Math","round","handleKeyDown","e","key","handleBlur","currentTarget","contains","relatedTarget","newDate","setMonth","en","undefined","params","createElement","DatepickerFieldHeader","customHeaderCount","display","setSelectionRange","critical_400"],"sources":["../../src/InputFields/DatepickerField.tsx"],"sourcesContent":["/**\n * Import react libraries.\n */\nimport React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\nimport DatePicker, { ReactDatePickerCustomHeaderProps } from 'react-datepicker';\nimport en from 'date-fns/locale/en-GB';\nimport dayjs from 'dayjs';\n\n/**\n * Import custom components.\n */\nimport COLORS from '../styles/colors';\nimport {Calendar, TechnicalWarning} from '../icons/systemicons/SystemIcons';\nimport {DatepickerFieldHeader, DatepickerFieldHeaderParams} from './DatepickerFieldHeader';\nimport {ComponentTextStyle, focusStyles, scrollBarStyling} from '../styles';\n\n/**\n * Import custom styles.\n */\nimport {ErrorMessage, InputFieldStyling, InputWrapper} from './styling';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport {ComponentMStyling, ComponentSStyling} from '../styles';\nimport {Z_INDEXES} from '../styles';\nimport {useFocusVisibleRef} from '../common';\nimport {Size} from '../types';\n\n/**\n * Add custom types.\n */\ntype DatepickerFieldProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value' | 'size' | 'onBlur'> & {\n value?: Date;\n onChange?: (date: Date) => void;\n onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;\n\n invalid?: boolean;\n dateFormat?: string;\n validationMessage?: string;\n autoComplete?: string;\n placeholder?: string;\n yearPicker?: boolean;\n yearsBeforeCurrentDate?: number;\n yearsAfterCurrentDate?: number;\n margin?: string;\n};\n\n/**\n * Add custom styles.\n */\nconst DatePickerContainer = styled.div<{ yearPicker: boolean; margin: string }>`\n .react-datepicker-popper {\n z-index: ${Z_INDEXES.dropdown};\n }\n\n > div {\n display: block;\n\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n .react-datepicker {\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgb(0 0 0 / 15%);\n border: 1px solid #e5e5e5;\n }\n .react-datepicker__input-container{\n z-index: 0;\n }\n\n .react-datepicker__navigation {\n line-height: normal;\n text-indent: inherit;\n border: none;\n border-radius: 4px;\n height: 32px;\n width: 32px;\n outline: none;\n margin: 0px;\n color: transparent;\n\n &:hover {\n background: ${COLORS.primary_20};\n\n &.react-datepicker__navigation--previous::before {\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M15.1975 4.46474C15.5885 4.85478 15.5893 5.48794 15.1993 5.87895L8.92124 12.1727L15.1993 18.4665C15.5893 18.8575 15.5885 19.4907 15.1975 19.8807C14.8065 20.2708 14.1734 20.27 13.7833 19.879L6.8008 12.879C6.41145 12.4886 6.41145 11.8568 6.8008 11.4665L13.7833 4.46651C14.1734 4.0755 14.8065 4.0747 15.1975 4.46474Z' fill='%23215369' /%3E%3C/svg%3E\");\n }\n\n &.react-datepicker__navigation--next::before {\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M9.24214 19.8807C8.85113 19.4907 8.85034 18.8575 9.24038 18.4665L15.5184 12.1727L9.24037 5.87895C8.85034 5.48794 8.85113 4.85478 9.24214 4.46474C9.63315 4.0747 10.2663 4.07549 10.6564 4.46651L17.6389 11.4665C18.0282 11.8568 18.0282 12.4886 17.6389 12.879L10.6564 19.879C10.2663 20.27 9.63316 20.2708 9.24214 19.8807Z' fill='%23215369' /%3E%3C/svg%3E\");\n }\n }\n\n &:focus {\n ${focusStyles}\n &.react-datepicker__navigation--next::before {\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M9.24214 19.8807C8.85113 19.4907 8.85034 18.8575 9.24038 18.4665L15.5184 12.1727L9.24037 5.87895C8.85034 5.48794 8.85113 4.85478 9.24214 4.46474C9.63315 4.0747 10.2663 4.07549 10.6564 4.46651L17.6389 11.4665C18.0282 11.8568 18.0282 12.4886 17.6389 12.879L10.6564 19.879C10.2663 20.27 9.63316 20.2708 9.24214 19.8807Z' fill='%23163746' /%3E%3C/svg%3E\");\n }\n\n &.react-datepicker__navigation--previous::before {\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M15.1975 4.46474C15.5885 4.85478 15.5893 5.48794 15.1993 5.87895L8.92124 12.1727L15.1993 18.4665C15.5893 18.8575 15.5885 19.4907 15.1975 19.8807C14.8065 20.2708 14.1734 20.27 13.7833 19.879L6.8008 12.879C6.41145 12.4886 6.41145 11.8568 6.8008 11.4665L13.7833 4.46651C14.1734 4.0755 14.8065 4.0747 15.1975 4.46474Z' fill='%23163746' /%3E%3C/svg%3E\");\n }\n }\n\n &::before {\n text-align: center;\n display: inline-block;\n content: '';\n height: 32px;\n width: 32px;\n vertical-align: middle;\n }\n\n &.react-datepicker__navigation--next::before {\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M9.24214 19.8807C8.85113 19.4907 8.85034 18.8575 9.24038 18.4665L15.5184 12.1727L9.24037 5.87895C8.85034 5.48794 8.85113 4.85478 9.24214 4.46474C9.63315 4.0747 10.2663 4.07549 10.6564 4.46651L17.6389 11.4665C18.0282 11.8568 18.0282 12.4886 17.6389 12.879L10.6564 19.879C10.2663 20.27 9.63316 20.2708 9.24214 19.8807Z' fill='%23666666' /%3E%3C/svg%3E\");\n }\n\n &.react-datepicker__navigation--previous::before {\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M15.1975 4.46474C15.5885 4.85478 15.5893 5.48794 15.1993 5.87895L8.92124 12.1727L15.1993 18.4665C15.5893 18.8575 15.5885 19.4907 15.1975 19.8807C14.8065 20.2708 14.1734 20.27 13.7833 19.879L6.8008 12.879C6.41145 12.4886 6.41145 11.8568 6.8008 11.4665L13.7833 4.46651C14.1734 4.0755 14.8065 4.0747 15.1975 4.46474Z' fill='%23666666' /%3E%3C/svg%3E\");\n }\n }\n\n .react-datepicker__month-container,\n .react-datepicker__year--container {\n width: 336px;\n }\n\n .react-datepicker__month {\n margin: 0px;\n }\n\n .react-datepicker__triangle {\n left: 50% !important;\n display: none;\n }\n\n .react-datepicker-popper[data-placement^='bottom'] {\n margin-top: 0;\n }\n\n .react-datepicker-popper[data-placement^='bottom'] .react-datepicker__triangle {\n border-bottom-color: ${COLORS.neutral_20};\n }\n\n .react-datepicker__header {\n border-bottom: 1px solid ${COLORS.neutral_200};\n background: ${COLORS.neutral_20};\n height: ${(props) => (!props.yearPicker ? '96px' : '54px')};\n padding-top: 0px;\n }\n\n .react-datepicker__current-month {\n height: 48px;\n display: inline-flex;\n align-items: center;\n margin-right: 5px;\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n }\n\n .react-datepicker__year {\n max-height: 300px;\n overflow-y: scroll;\n\n ${scrollBarStyling(Size.Small)}\n }\n\n .react-datepicker__year-wrapper {\n max-width: 100%;\n justify-content: space-around;\n }\n\n .react-datepicker__day-name {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n margin: 0px;\n width: 48px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n }\n\n .react-datepicker__year-text {\n background: ${COLORS.white};\n border: none;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n margin-top: 20px;\n padding-top: 10px;\n padding-bottom: 10px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n &.react-datepicker__year-text--disabled {\n display: none;\n }\n\n &.react-datepicker__day--keyboard-selected {\n color: ${COLORS.neutral_600};\n background: ${COLORS.white};\n font-weight: 400;\n border: none;\n }\n\n &:hover {\n color: ${COLORS.primary_700};\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n ${focusStyles}\n }\n\n &.react-datepicker__year-text--selected {\n color: ${COLORS.white} !important;\n background: ${COLORS.primary_500} !important;\n }\n }\n\n .react-datepicker__day {\n background: ${COLORS.white};\n border: none;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n width: 40px;\n margin: 4px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n &.react-datepicker__day--keyboard-selected {\n color: ${COLORS.neutral_600};\n background: ${COLORS.white};\n font-weight: 400;\n border: none;\n }\n\n &:hover {\n color: ${COLORS.primary_700};\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n ${focusStyles}\n }\n\n &.react-datepicker__day--selected {\n color: ${COLORS.white} !important;\n background: ${COLORS.primary_500} !important;\n }\n\n &.react-datepicker__day--today {\n border-radius: 0.3rem;\n color: ${COLORS.neutral_700};\n background: ${COLORS.neutral_100};\n\n &:hover {\n color: ${COLORS.primary_700};\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n ${focusStyles}\n }\n }\n }\n }\n`;\n\nconst IconWrapper = styled.div`\n pointer-events: none;\n position: absolute;\n right: 16px;\n width: 24px;\n height: 24px;\n z-index: ${+Z_INDEXES.focus + 1};\n color: ${COLORS.neutral_600};\n`;\n\nconst DatepickerRow = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst StyledInputFieldStyling = styled(InputFieldStyling)`\n &::placeholder {\n color: ${COLORS.neutral_500};\n }\n\n &:focus:not(.focus-visible) {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_300};\n }\n\n &:hover {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_200};\n\n ::placeholder {\n color: ${COLORS.primary_700};\n }\n\n cursor: pointer;\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_700};\n }\n\n &:active,\n &.open {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_300};\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n\n ::placeholder {\n color: ${COLORS.primary_800};\n }\n }\n\n &:disabled {\n background-color: ${COLORS.white};\n }\n\n &:hover ~ ${IconWrapper} {\n color: ${COLORS.primary_700};\n }\n\n &:active ~ ${IconWrapper}, &.open ~ ${IconWrapper} {\n color: ${COLORS.primary_800};\n }\n\n &:disabled ~ ${IconWrapper}, &:read-only ~ ${IconWrapper} {\n color: ${COLORS.neutral_300};\n }\n`;\n\nconst DatepickerField = React.forwardRef(({\n disabled,\n readOnly,\n onChange,\n invalid,\n value,\n validationMessage,\n dateFormat,\n autoComplete,\n placeholder,\n required,\n yearPicker,\n yearsBeforeCurrentDate,\n yearsAfterCurrentDate,\n margin,\n onBlur,\n ...rest\n }: DatepickerFieldProps, ref) => {\n // Globally used variables within the component\n const inputRef = useFocusVisibleRef();\n const datepickerRef = React.useRef<any>(null);\n const [activeMonthPage, setActiveMonthPage] = React.useState<number>(-1);\n const [yearPickerMode, setYearPickerMode] = React.useState<boolean>(false);\n const [openAt, setOpenAt] = React.useState<Date | null>(null);\n // 'open' flag is used only for tracking current state of the dropdown,\n // for explicitly opening/closing the picker we are using 'datepickerRef.current.setOpen'\n const [open, setOpen] = React.useState<boolean>(false);\n\n /**\n * Format the date in a specific way.\n */\n React.useEffect(() => {\n if (value) inputRef.current.value = dayjs(value).format(dateFormat ? dateFormat : 'MMMM Do, YYYY');\n }, [value]);\n\n React.useEffect(() => {\n if (yearPickerMode) {\n //unfortunately, since there are no refs, and year pickers is rendered not by our code, but by 'react-datepicker'\n //we have to touch DOM directly\n const selectedDate = document.getElementsByClassName('react-datepicker__year-text--selected')[0] as HTMLElement;\n const dropdownParent = selectedDate?.parentElement?.parentElement;\n if (selectedDate && dropdownParent) dropdownParent.scrollTop = selectedDate.offsetTop - 2 * selectedDate.offsetHeight;\n }\n }, [yearPickerMode]);\n\n //we have to manually reopen the calendar when needed, to guarantee that datepicker will show selected date after year selection\n //otherwise after year selection datepicker will show January month of the selected year\n React.useEffect(() => {\n if (openAt) {\n datepickerRef.current.setOpen(true);\n //setOpenAt(null);\n }\n }, [openAt]);\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n const handleCalendarClose = () => {\n inputRef.current?.blur();\n setOpen(false);\n };\n\n const handleCalendarOpen = () => {\n if (openAt) setOpenAt(null);\n setOpen(true);\n };\n\n let maxDate = new Date(value && new Date(value) > new Date() ? new Date(value) : new Date());\n maxDate.setFullYear(maxDate.getFullYear() + (yearsAfterCurrentDate ?? 50));\n\n //itemsNumber - controls number of year select options generated in the dropdown\n //items related to dates higher than 'maxDate' will be hidden, thus to avoid creating hundreds of invisible divs, we divide by 5\n let minDate = new Date(value && new Date(value) < new Date() ? new Date(value) : new Date());\n const itemsNumber = Math.round((minDate.getFullYear() - (yearsBeforeCurrentDate ?? 15)) / 5);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape' || e.key === 'Esc')\n datepickerRef.current.setOpen(false);\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLDivElement>) => {\n // @ts-ignore\n if (!e.currentTarget.contains(e.relatedTarget)) {\n onBlur && onBlur(e);\n }\n };\n\n return (\n <>\n {/* Let's render the input itself */}\n <DatePickerContainer yearPicker={yearPickerMode} margin={margin || ''} onBlur={handleBlur}>\n <DatePicker\n ref={datepickerRef}\n onCalendarOpen={handleCalendarOpen}\n onCalendarClose={handleCalendarClose}\n onKeyDown={handleKeyDown}\n\n onClickOutside={() => datepickerRef.current.setOpen(false)}\n\n onChange={(e: any) => {\n if (onChange) {\n if (yearPickerMode) {\n const newDate = new Date();\n newDate.setFullYear(e.getFullYear());\n newDate.setMonth(activeMonthPage);\n setOpenAt(newDate);\n } else onChange(e);\n }\n if (yearPickerMode) setYearPickerMode(false);\n }}\n disabled={disabled || readOnly}\n locale={en}\n showYearPicker={yearPickerMode}\n //we manipulate 'yearItemNumber' and 'maxDate' to guarantee number of year select options shown before and after selected year\n yearItemNumber={yearPickerMode ? itemsNumber : undefined}\n maxDate={yearPickerMode ? maxDate : undefined}\n selected={value}\n openToDate={openAt ?? undefined}\n preventOpenOnFocus={true}\n shouldCloseOnSelect={true}\n renderCustomHeader={\n yearPicker\n ? (params: ReactDatePickerCustomHeaderProps) =>\n React.createElement(\n DatepickerFieldHeader,\n {\n ...params,\n setActiveMonthPage,\n customHeaderCount: 0,\n yearPickerMode: yearPickerMode,\n setYearPickerMode: setYearPickerMode,\n },\n null,\n )\n : undefined\n }\n customInput={\n <InputWrapper disabled={disabled} readOnly={readOnly}>\n <div style={{display: 'block', margin: '4px 0px'}}>\n <DatepickerRow>\n <StyledInputFieldStyling\n ref={inputRef}\n type=\"text\"\n name=\"datepicker\"\n onKeyDown={(e) => e.key === 'Enter' && datepickerRef.current.setOpen(true)}\n className={(invalid ? 'invalid' : '' + (open ? ' open' : ''))}\n tabIndex={disabled || readOnly ? -1 : 0}\n onFocus={(e) => inputRef.current?.setSelectionRange(0, 0)}\n autoComplete={autoComplete}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={true}\n suppressReadOnlyStyles={!readOnly}\n required={required}\n {...rest}\n />\n <IconWrapper>\n <Calendar size=\"24\"/>\n </IconWrapper>\n </DatepickerRow>\n </div>\n </InputWrapper>\n }\n />\n </DatePickerContainer>\n\n {/* If there is an error, let's render the error */}\n {validationMessage && (\n <ErrorMessage>\n <TechnicalWarning color={COLORS.critical_400}/>\n <span>{validationMessage}</span>\n </ErrorMessage>\n )}\n </>\n );\n});\n\nexport default DatepickerField;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DatepickerField.cjs","names":["DatePickerContainer","styled","div","Z_INDEXES","dropdown","props","margin","COLORS","primary_20","focusStyles","neutral_20","neutral_200","yearPicker","ComponentSStyling","ComponentTextStyle","Bold","neutral_600","scrollBarStyling","Size","Small","ComponentMStyling","Regular","white","primary_700","primary_500","neutral_700","neutral_100","IconWrapper","focus","DatepickerRow","StyledInputFieldStyling","InputFieldStyling","neutral_500","primary_300","primary_200","primary_100","primary_800","neutral_300","DatepickerField","React","forwardRef","ref","disabled","readOnly","onChange","invalid","value","validationMessage","dateFormat","autoComplete","placeholder","required","yearsBeforeCurrentDate","yearsAfterCurrentDate","onBlur","rest","inputRef","useFocusVisibleRef","datepickerRef","useRef","useState","activeMonthPage","setActiveMonthPage","yearPickerMode","setYearPickerMode","openAt","setOpenAt","open","setOpen","useEffect","current","moment","format","selectedDate","document","getElementsByClassName","dropdownParent","parentElement","scrollTop","offsetTop","offsetHeight","useImperativeHandle","handleCalendarClose","blur","handleCalendarOpen","maxDate","Date","setFullYear","getFullYear","minDate","itemsNumber","Math","round","handleKeyDown","e","key","handleBlur","currentTarget","contains","relatedTarget","newDate","setMonth","en","undefined","params","createElement","DatepickerFieldHeader","customHeaderCount","display","setSelectionRange","critical_400"],"sources":["../../src/InputFields/DatepickerField.tsx"],"sourcesContent":["/**\n * Import react libraries.\n */\nimport React from 'react';\n\n/**\n * Import third-party libraries.\n */\nimport styled from 'styled-components';\nimport DatePicker, { ReactDatePickerCustomHeaderProps } from 'react-datepicker';\nimport en from 'date-fns/locale/en-GB';\nimport moment from 'moment';\n\n/**\n * Import custom components.\n */\nimport COLORS from '../styles/colors';\nimport {Calendar, TechnicalWarning} from '../icons/systemicons/SystemIcons';\nimport {DatepickerFieldHeader, DatepickerFieldHeaderParams} from './DatepickerFieldHeader';\nimport {ComponentTextStyle, focusStyles, scrollBarStyling} from '../styles';\n\n/**\n * Import custom styles.\n */\nimport {ErrorMessage, InputFieldStyling, InputWrapper} from './styling';\nimport 'react-datepicker/dist/react-datepicker.css';\nimport {ComponentMStyling, ComponentSStyling} from '../styles';\nimport {Z_INDEXES} from '../styles';\nimport {useFocusVisibleRef} from '../common';\nimport {Size} from '../types';\n\n/**\n * Add custom types.\n */\ntype DatepickerFieldProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'value' | 'size' | 'onBlur'> & {\n value?: Date;\n onChange?: (date: Date) => void;\n onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;\n\n invalid?: boolean;\n dateFormat?: string;\n validationMessage?: string;\n autoComplete?: string;\n placeholder?: string;\n yearPicker?: boolean;\n yearsBeforeCurrentDate?: number;\n yearsAfterCurrentDate?: number;\n margin?: string;\n};\n\n/**\n * Add custom styles.\n */\nconst DatePickerContainer = styled.div<{ yearPicker: boolean; margin: string }>`\n .react-datepicker-popper {\n z-index: ${Z_INDEXES.dropdown};\n }\n\n > div {\n display: block;\n\n ${(props) => (props.margin ? `margin: ${props.margin};` : '')}\n .react-datepicker {\n box-sizing: border-box;\n box-shadow: 0px 2px 4px rgb(0 0 0 / 15%);\n border: 1px solid #e5e5e5;\n }\n .react-datepicker__input-container{\n z-index: 0;\n }\n\n .react-datepicker__navigation {\n line-height: normal;\n text-indent: inherit;\n border: none;\n border-radius: 4px;\n height: 32px;\n width: 32px;\n outline: none;\n margin: 0px;\n color: transparent;\n\n &:hover {\n background: ${COLORS.primary_20};\n\n &.react-datepicker__navigation--previous::before {\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M15.1975 4.46474C15.5885 4.85478 15.5893 5.48794 15.1993 5.87895L8.92124 12.1727L15.1993 18.4665C15.5893 18.8575 15.5885 19.4907 15.1975 19.8807C14.8065 20.2708 14.1734 20.27 13.7833 19.879L6.8008 12.879C6.41145 12.4886 6.41145 11.8568 6.8008 11.4665L13.7833 4.46651C14.1734 4.0755 14.8065 4.0747 15.1975 4.46474Z' fill='%23215369' /%3E%3C/svg%3E\");\n }\n\n &.react-datepicker__navigation--next::before {\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M9.24214 19.8807C8.85113 19.4907 8.85034 18.8575 9.24038 18.4665L15.5184 12.1727L9.24037 5.87895C8.85034 5.48794 8.85113 4.85478 9.24214 4.46474C9.63315 4.0747 10.2663 4.07549 10.6564 4.46651L17.6389 11.4665C18.0282 11.8568 18.0282 12.4886 17.6389 12.879L10.6564 19.879C10.2663 20.27 9.63316 20.2708 9.24214 19.8807Z' fill='%23215369' /%3E%3C/svg%3E\");\n }\n }\n\n &:focus {\n ${focusStyles}\n &.react-datepicker__navigation--next::before {\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M9.24214 19.8807C8.85113 19.4907 8.85034 18.8575 9.24038 18.4665L15.5184 12.1727L9.24037 5.87895C8.85034 5.48794 8.85113 4.85478 9.24214 4.46474C9.63315 4.0747 10.2663 4.07549 10.6564 4.46651L17.6389 11.4665C18.0282 11.8568 18.0282 12.4886 17.6389 12.879L10.6564 19.879C10.2663 20.27 9.63316 20.2708 9.24214 19.8807Z' fill='%23163746' /%3E%3C/svg%3E\");\n }\n\n &.react-datepicker__navigation--previous::before {\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M15.1975 4.46474C15.5885 4.85478 15.5893 5.48794 15.1993 5.87895L8.92124 12.1727L15.1993 18.4665C15.5893 18.8575 15.5885 19.4907 15.1975 19.8807C14.8065 20.2708 14.1734 20.27 13.7833 19.879L6.8008 12.879C6.41145 12.4886 6.41145 11.8568 6.8008 11.4665L13.7833 4.46651C14.1734 4.0755 14.8065 4.0747 15.1975 4.46474Z' fill='%23163746' /%3E%3C/svg%3E\");\n }\n }\n\n &::before {\n text-align: center;\n display: inline-block;\n content: '';\n height: 32px;\n width: 32px;\n vertical-align: middle;\n }\n\n &.react-datepicker__navigation--next::before {\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M9.24214 19.8807C8.85113 19.4907 8.85034 18.8575 9.24038 18.4665L15.5184 12.1727L9.24037 5.87895C8.85034 5.48794 8.85113 4.85478 9.24214 4.46474C9.63315 4.0747 10.2663 4.07549 10.6564 4.46651L17.6389 11.4665C18.0282 11.8568 18.0282 12.4886 17.6389 12.879L10.6564 19.879C10.2663 20.27 9.63316 20.2708 9.24214 19.8807Z' fill='%23666666' /%3E%3C/svg%3E\");\n }\n\n &.react-datepicker__navigation--previous::before {\n background-image: url(\"data:image/svg+xml,%3Csvg style='width: 32px; height: 32px;' viewBox='0 0 25 25' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fillRule='evenodd' clipRule='evenodd' d='M15.1975 4.46474C15.5885 4.85478 15.5893 5.48794 15.1993 5.87895L8.92124 12.1727L15.1993 18.4665C15.5893 18.8575 15.5885 19.4907 15.1975 19.8807C14.8065 20.2708 14.1734 20.27 13.7833 19.879L6.8008 12.879C6.41145 12.4886 6.41145 11.8568 6.8008 11.4665L13.7833 4.46651C14.1734 4.0755 14.8065 4.0747 15.1975 4.46474Z' fill='%23666666' /%3E%3C/svg%3E\");\n }\n }\n\n .react-datepicker__month-container,\n .react-datepicker__year--container {\n width: 336px;\n }\n\n .react-datepicker__month {\n margin: 0px;\n }\n\n .react-datepicker__triangle {\n left: 50% !important;\n display: none;\n }\n\n .react-datepicker-popper[data-placement^='bottom'] {\n margin-top: 0;\n }\n\n .react-datepicker-popper[data-placement^='bottom'] .react-datepicker__triangle {\n border-bottom-color: ${COLORS.neutral_20};\n }\n\n .react-datepicker__header {\n border-bottom: 1px solid ${COLORS.neutral_200};\n background: ${COLORS.neutral_20};\n height: ${(props) => (!props.yearPicker ? '96px' : '54px')};\n padding-top: 0px;\n }\n\n .react-datepicker__current-month {\n height: 48px;\n display: inline-flex;\n align-items: center;\n margin-right: 5px;\n\n ${ComponentSStyling(ComponentTextStyle.Bold, COLORS.neutral_600)}\n }\n\n .react-datepicker__year {\n max-height: 300px;\n overflow-y: scroll;\n\n ${scrollBarStyling(Size.Small)}\n }\n\n .react-datepicker__year-wrapper {\n max-width: 100%;\n justify-content: space-around;\n }\n\n .react-datepicker__day-name {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n margin: 0px;\n width: 48px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n }\n\n .react-datepicker__year-text {\n background: ${COLORS.white};\n border: none;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n margin-top: 20px;\n padding-top: 10px;\n padding-bottom: 10px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n &.react-datepicker__year-text--disabled {\n display: none;\n }\n\n &.react-datepicker__day--keyboard-selected {\n color: ${COLORS.neutral_600};\n background: ${COLORS.white};\n font-weight: 400;\n border: none;\n }\n\n &:hover {\n color: ${COLORS.primary_700};\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n ${focusStyles}\n }\n\n &.react-datepicker__year-text--selected {\n color: ${COLORS.white} !important;\n background: ${COLORS.primary_500} !important;\n }\n }\n\n .react-datepicker__day {\n background: ${COLORS.white};\n border: none;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n width: 40px;\n margin: 4px;\n\n ${ComponentMStyling(ComponentTextStyle.Regular, COLORS.neutral_600)}\n &.react-datepicker__day--keyboard-selected {\n color: ${COLORS.neutral_600};\n background: ${COLORS.white};\n font-weight: 400;\n border: none;\n }\n\n &:hover {\n color: ${COLORS.primary_700};\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n ${focusStyles}\n }\n\n &.react-datepicker__day--selected {\n color: ${COLORS.white} !important;\n background: ${COLORS.primary_500} !important;\n }\n\n &.react-datepicker__day--today {\n border-radius: 0.3rem;\n color: ${COLORS.neutral_700};\n background: ${COLORS.neutral_100};\n\n &:hover {\n color: ${COLORS.primary_700};\n background: ${COLORS.primary_20};\n }\n\n &:focus {\n ${focusStyles}\n }\n }\n }\n }\n`;\n\nconst IconWrapper = styled.div`\n pointer-events: none;\n position: absolute;\n right: 16px;\n width: 24px;\n height: 24px;\n z-index: ${+Z_INDEXES.focus + 1};\n color: ${COLORS.neutral_600};\n`;\n\nconst DatepickerRow = styled.div`\n display: flex;\n flex-direction: row;\n align-items: center;\n`;\n\nconst StyledInputFieldStyling = styled(InputFieldStyling)`\n &::placeholder {\n color: ${COLORS.neutral_500};\n }\n\n &:focus:not(.focus-visible) {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_300};\n }\n\n &:hover {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_200};\n\n ::placeholder {\n color: ${COLORS.primary_700};\n }\n\n cursor: pointer;\n background-color: ${COLORS.primary_20};\n color: ${COLORS.primary_700};\n }\n\n &:active,\n &.open {\n box-shadow: inset 0px 0px 0px 2px ${COLORS.primary_300};\n background-color: ${COLORS.primary_100};\n color: ${COLORS.primary_800};\n\n ::placeholder {\n color: ${COLORS.primary_800};\n }\n }\n\n &:disabled {\n background-color: ${COLORS.white};\n }\n\n &:hover ~ ${IconWrapper} {\n color: ${COLORS.primary_700};\n }\n\n &:active ~ ${IconWrapper}, &.open ~ ${IconWrapper} {\n color: ${COLORS.primary_800};\n }\n\n &:disabled ~ ${IconWrapper}, &:read-only ~ ${IconWrapper} {\n color: ${COLORS.neutral_300};\n }\n`;\n\nconst DatepickerField = React.forwardRef(({\n disabled,\n readOnly,\n onChange,\n invalid,\n value,\n validationMessage,\n dateFormat,\n autoComplete,\n placeholder,\n required,\n yearPicker,\n yearsBeforeCurrentDate,\n yearsAfterCurrentDate,\n margin,\n onBlur,\n ...rest\n }: DatepickerFieldProps, ref) => {\n // Globally used variables within the component\n const inputRef = useFocusVisibleRef();\n const datepickerRef = React.useRef<any>(null);\n const [activeMonthPage, setActiveMonthPage] = React.useState<number>(-1);\n const [yearPickerMode, setYearPickerMode] = React.useState<boolean>(false);\n const [openAt, setOpenAt] = React.useState<Date | null>(null);\n // 'open' flag is used only for tracking current state of the dropdown,\n // for explicitly opening/closing the picker we are using 'datepickerRef.current.setOpen'\n const [open, setOpen] = React.useState<boolean>(false);\n\n /**\n * Format the date in a specific way.\n */\n React.useEffect(() => {\n if (value) inputRef.current.value = moment(value).format(dateFormat ? dateFormat : 'MMMM Do, YYYY');\n }, [value]);\n\n React.useEffect(() => {\n if (yearPickerMode) {\n //unfortunately, since there are no refs, and year pickers is rendered not by our code, but by 'react-datepicker'\n //we have to touch DOM directly\n const selectedDate = document.getElementsByClassName('react-datepicker__year-text--selected')[0] as HTMLElement;\n const dropdownParent = selectedDate?.parentElement?.parentElement;\n if (selectedDate && dropdownParent) dropdownParent.scrollTop = selectedDate.offsetTop - 2 * selectedDate.offsetHeight;\n }\n }, [yearPickerMode]);\n\n //we have to manually reopen the calendar when needed, to guarantee that datepicker will show selected date after year selection\n //otherwise after year selection datepicker will show January month of the selected year\n React.useEffect(() => {\n if (openAt) {\n datepickerRef.current.setOpen(true);\n //setOpenAt(null);\n }\n }, [openAt]);\n\n React.useImperativeHandle(ref, () => inputRef.current, [inputRef]);\n\n const handleCalendarClose = () => {\n inputRef.current?.blur();\n setOpen(false);\n };\n\n const handleCalendarOpen = () => {\n if (openAt) setOpenAt(null);\n setOpen(true);\n };\n\n let maxDate = new Date(value && new Date(value) > new Date() ? new Date(value) : new Date());\n maxDate.setFullYear(maxDate.getFullYear() + (yearsAfterCurrentDate ?? 50));\n\n //itemsNumber - controls number of year select options generated in the dropdown\n //items related to dates higher than 'maxDate' will be hidden, thus to avoid creating hundreds of invisible divs, we divide by 5\n let minDate = new Date(value && new Date(value) < new Date() ? new Date(value) : new Date());\n const itemsNumber = Math.round((minDate.getFullYear() - (yearsBeforeCurrentDate ?? 15)) / 5);\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLDivElement>) => {\n if (e.key === 'Escape' || e.key === 'Esc')\n datepickerRef.current.setOpen(false);\n };\n\n const handleBlur = (e: React.FocusEvent<HTMLDivElement>) => {\n // @ts-ignore\n if (!e.currentTarget.contains(e.relatedTarget)) {\n onBlur && onBlur(e);\n }\n };\n\n return (\n <>\n {/* Let's render the input itself */}\n <DatePickerContainer yearPicker={yearPickerMode} margin={margin || ''} onBlur={handleBlur}>\n <DatePicker\n ref={datepickerRef}\n onCalendarOpen={handleCalendarOpen}\n onCalendarClose={handleCalendarClose}\n onKeyDown={handleKeyDown}\n\n onClickOutside={() => datepickerRef.current.setOpen(false)}\n\n onChange={(e: any) => {\n if (onChange) {\n if (yearPickerMode) {\n const newDate = new Date();\n newDate.setFullYear(e.getFullYear());\n newDate.setMonth(activeMonthPage);\n setOpenAt(newDate);\n } else onChange(e);\n }\n if (yearPickerMode) setYearPickerMode(false);\n }}\n disabled={disabled || readOnly}\n locale={en}\n showYearPicker={yearPickerMode}\n //we manipulate 'yearItemNumber' and 'maxDate' to guarantee number of year select options shown before and after selected year\n yearItemNumber={yearPickerMode ? itemsNumber : undefined}\n maxDate={yearPickerMode ? maxDate : undefined}\n selected={value}\n openToDate={openAt ?? undefined}\n preventOpenOnFocus={true}\n shouldCloseOnSelect={true}\n renderCustomHeader={\n yearPicker\n ? (params: ReactDatePickerCustomHeaderProps) =>\n React.createElement(\n DatepickerFieldHeader,\n {\n ...params,\n setActiveMonthPage,\n customHeaderCount: 0,\n yearPickerMode: yearPickerMode,\n setYearPickerMode: setYearPickerMode,\n },\n null,\n )\n : undefined\n }\n customInput={\n <InputWrapper disabled={disabled} readOnly={readOnly}>\n <div style={{display: 'block', margin: '4px 0px'}}>\n <DatepickerRow>\n <StyledInputFieldStyling\n ref={inputRef}\n type=\"text\"\n name=\"datepicker\"\n onKeyDown={(e) => e.key === 'Enter' && datepickerRef.current.setOpen(true)}\n className={(invalid ? 'invalid' : '' + (open ? ' open' : ''))}\n tabIndex={disabled || readOnly ? -1 : 0}\n onFocus={(e) => inputRef.current?.setSelectionRange(0, 0)}\n autoComplete={autoComplete}\n placeholder={placeholder}\n disabled={disabled}\n readOnly={true}\n suppressReadOnlyStyles={!readOnly}\n required={required}\n {...rest}\n />\n <IconWrapper>\n <Calendar size=\"24\"/>\n </IconWrapper>\n </DatepickerRow>\n </div>\n </InputWrapper>\n }\n />\n </DatePickerContainer>\n\n {/* If there is an error, let's render the error */}\n {validationMessage && (\n <ErrorMessage>\n <TechnicalWarning color={COLORS.critical_400}/>\n <span>{validationMessage}</span>\n </ErrorMessage>\n )}\n </>\n );\n});\n\nexport default DatepickerField;\n"],"mappings":"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"}
|