@entur/menu 4.1.6 → 4.1.9

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/CHANGELOG.md CHANGED
@@ -3,6 +3,22 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [4.1.9](https://bitbucket.org/enturas/design-system/compare/@entur/menu@4.1.8...@entur/menu@4.1.9) (2022-08-31)
7
+
8
+ **Note:** Version bump only for package @entur/menu
9
+
10
+ ## [4.1.8](https://bitbucket.org/enturas/design-system/compare/@entur/menu@4.1.7...@entur/menu@4.1.8) (2022-08-31)
11
+
12
+ ### Bug Fixes
13
+
14
+ - **pagination:** add more descriptive screen reader texts to pagintion ([7673059](https://bitbucket.org/enturas/design-system/commits/7673059920e94c75ff4e15c24feced7557a59676))
15
+
16
+ ## [4.1.7](https://bitbucket.org/enturas/design-system/compare/@entur/menu@4.1.6...@entur/menu@4.1.7) (2022-08-24)
17
+
18
+ ### Bug Fixes
19
+
20
+ - add parameter and return types ([861b878](https://bitbucket.org/enturas/design-system/commits/861b8782b1fae34242d64371a8af7887ac545df6))
21
+
6
22
  ## [4.1.6](https://bitbucket.org/enturas/design-system/compare/@entur/menu@4.1.5...@entur/menu@4.1.6) (2022-08-09)
7
23
 
8
24
  **Note:** Version bump only for package @entur/menu
@@ -24,6 +24,10 @@ export declare type PaginationProps = {
24
24
  * @default pageNumber => `Gå til side ${pageNumber}`,
25
25
  */
26
26
  pageLabel?: (pageNumber: number) => string;
27
+ /**
28
+ * @default "Nåværende side:"
29
+ */
30
+ currentPageLabelForScreenreader?: string;
27
31
  /** Vis et felt til høyre for pagineringen hvor man kan angi siden man
28
32
  * ønsker å vise i et tekstfelt.
29
33
  *
@@ -12,5 +12,6 @@ export declare type PaginationPageProps = {
12
12
  onClick: () => void;
13
13
  /** Tekst for skjermlesere */
14
14
  'aria-label': string;
15
+ 'aria-describedby'?: string;
15
16
  };
16
17
  export declare const PaginationPage: React.FC<PaginationPageProps>;
@@ -8,8 +8,9 @@ var classNames = require('classnames');
8
8
  var icons = require('@entur/icons');
9
9
  var expand = require('@entur/expand');
10
10
  var menuButton = require('@reach/menu-button');
11
- var typography = require('@entur/typography');
11
+ var a11y = require('@entur/a11y');
12
12
  var layout = require('@entur/layout');
13
+ var typography = require('@entur/typography');
13
14
  var button = require('@entur/button');
14
15
 
15
16
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
@@ -113,7 +114,9 @@ SideNavigation.__IS_ENTUR_MENU__ = true;
113
114
  function useControllableProp(_ref) {
114
115
  var prop = _ref.prop,
115
116
  _ref$updater = _ref.updater,
116
- updater = _ref$updater === void 0 ? function () {} : _ref$updater,
117
+ updater = _ref$updater === void 0 ? function () {
118
+ return undefined;
119
+ } : _ref$updater,
117
120
  defaultValue = _ref.defaultValue;
118
121
 
119
122
  var _useState = React.useState(defaultValue),
@@ -200,7 +203,9 @@ var useShowDelayedLabel = function useShowDelayedLabel(isCollapsed) {
200
203
  }, showDelay);
201
204
  }
202
205
 
203
- return function () {};
206
+ return function () {
207
+ return undefined;
208
+ };
204
209
  }, [isCollapsed]);
205
210
  return [showLabel];
206
211
  };
@@ -380,7 +385,8 @@ var PaginationPage = function PaginationPage(_ref) {
380
385
  selected = _ref.selected,
381
386
  disabled = _ref.disabled,
382
387
  onClick = _ref.onClick,
383
- ariaLabel = _ref['aria-label'];
388
+ ariaLabel = _ref['aria-label'],
389
+ ariaDescribedby = _ref['aria-describedby'];
384
390
  return React__default["default"].createElement("button", {
385
391
  className: classNames__default["default"]('eds-pagination__page', {
386
392
  'eds-pagination__page--selected': selected
@@ -391,6 +397,7 @@ var PaginationPage = function PaginationPage(_ref) {
391
397
  type: "button",
392
398
  onClick: onClick,
393
399
  "aria-label": ariaLabel,
400
+ "aria-describedby": ariaDescribedby,
394
401
  "aria-current": selected ? 'page' : false
395
402
  }, children);
396
403
  };
@@ -525,7 +532,7 @@ var OverflowMenuLink = /*#__PURE__*/React__default["default"].forwardRef(functio
525
532
  }, rest), children);
526
533
  });
527
534
 
528
- var _excluded$1 = ["className", "currentPage", "inputLabel", "onPageChange", "pageCount", "pageLabel", "previousPageLabel", "showInput", "numberOfResults", "resultsPerPage", "resultsPerPageOptions", "onResultsPerPageChange", "showNumberOfResultsLabel", "nextPageLabel", "showingResultsLabel", "hideNextButton", "hidePrevButton"];
535
+ var _excluded$1 = ["className", "currentPage", "inputLabel", "onPageChange", "pageCount", "pageLabel", "previousPageLabel", "currentPageLabelForScreenreader", "showInput", "numberOfResults", "resultsPerPage", "resultsPerPageOptions", "onResultsPerPageChange", "showNumberOfResultsLabel", "nextPageLabel", "showingResultsLabel", "hideNextButton", "hidePrevButton"];
529
536
  var Pagination = function Pagination(_ref) {
530
537
  var className = _ref.className,
531
538
  currentPage = _ref.currentPage,
@@ -538,6 +545,8 @@ var Pagination = function Pagination(_ref) {
538
545
  } : _ref$pageLabel,
539
546
  _ref$previousPageLabe = _ref.previousPageLabel,
540
547
  previousPageLabel = _ref$previousPageLabe === void 0 ? 'Gå til forrige side' : _ref$previousPageLabe,
548
+ _ref$currentPageLabel = _ref.currentPageLabelForScreenreader,
549
+ currentPageLabelForScreenreader = _ref$currentPageLabel === void 0 ? 'Nåværende side:' : _ref$currentPageLabel,
541
550
  showInput = _ref.showInput,
542
551
  numberOfResults = _ref.numberOfResults,
543
552
  resultsPerPage = _ref.resultsPerPage,
@@ -564,6 +573,7 @@ var Pagination = function Pagination(_ref) {
564
573
  listedEntries = _useState[0],
565
574
  setListedEntries = _useState[1];
566
575
 
576
+ var paginationId = utils.useRandomId('eds-pagination');
567
577
  var isFirstPostSelected = currentPage === 1;
568
578
  var isLastPostSelected = currentPage === pageCount;
569
579
  var noEllipsis = pageCount <= 7;
@@ -600,7 +610,7 @@ var Pagination = function Pagination(_ref) {
600
610
  className: classNames__default["default"]('eds-pagination-menu__menu-button', {
601
611
  'eds-pagination-menu__menu-button--open': isOpen
602
612
  })
603
- }, resultsPerPage, isOpen ? React__default["default"].createElement(icons.UpArrowIcon, null) : React__default["default"].createElement(icons.DownArrowIcon, null)), React__default["default"].createElement(menuButton.MenuList, {
613
+ }, React__default["default"].createElement(a11y.VisuallyHidden, null, showNumberOfResultsLabel, " "), resultsPerPage, isOpen ? React__default["default"].createElement(icons.UpArrowIcon, null) : React__default["default"].createElement(icons.DownArrowIcon, null)), React__default["default"].createElement(menuButton.MenuList, {
604
614
  className: classNames__default["default"]('eds-pagination-menu__menu-list', 'eds-overflow-menu__menu-list', {
605
615
  'eds-contrast': isContrast
606
616
  })
@@ -621,6 +631,7 @@ var Pagination = function Pagination(_ref) {
621
631
  return onPageChange(currentPage - 1);
622
632
  },
623
633
  "aria-label": previousPageLabel,
634
+ "aria-describedby": paginationId,
624
635
  disabled: isFirstPostSelected
625
636
  }, React__default["default"].createElement(icons.LeftArrowIcon, null)), listedEntries.map(function (entry, index) {
626
637
  return entry === '…' ? React__default["default"].createElement(Ellipsis, {
@@ -638,13 +649,16 @@ var Pagination = function Pagination(_ref) {
638
649
  return onPageChange(currentPage + 1);
639
650
  },
640
651
  "aria-label": nextPageLabel,
652
+ "aria-describedby": paginationId,
641
653
  disabled: isLastPostSelected
642
654
  }, React__default["default"].createElement(icons.RightArrowIcon, null)), showInput && React__default["default"].createElement(PaginationInput, {
643
655
  pageCount: pageCount,
644
656
  currentPage: currentPage,
645
657
  onPageChange: onPageChange,
646
658
  label: inputLabel
647
- })));
659
+ })), React__default["default"].createElement(a11y.VisuallyHidden, {
660
+ id: paginationId
661
+ }, currentPageLabelForScreenreader, " ", currentPage));
648
662
  };
649
663
 
650
664
  var Ellipsis = function Ellipsis() {
@@ -1 +1 @@
1
- {"version":3,"file":"menu.cjs.development.js","sources":["../src/BreadcrumbNavigation.tsx","../src/BreadcrumbItem.tsx","../src/SideNavigation.tsx","../src/useControllableProp.ts","../src/CollapsibleSideNavigation.tsx","../src/useShowDelayedLabel.ts","../src/SideNavigationItem.tsx","../src/SideNavigationGroup.tsx","../src/TopNavigationItem.tsx","../src/PaginationPage.tsx","../src/PaginationInput.tsx","../src/OverflowMenu.tsx","../src/Pagination.tsx","../src/Stepper.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport './BreadcrumbNavigation.scss';\n\nexport type BreadcrumbNavigationProps = {\n /** Label for brødsmulestien.\n * @default 'Brødsmulesti'\n */\n 'aria-label'?: string;\n /** En liste med BreadcrumbItem-er */\n children: React.ReactElement[];\n};\n\nexport const BreadcrumbNavigation: React.FC<BreadcrumbNavigationProps> = ({\n 'aria-label': ariaLabel = 'Brødsmulesti',\n children,\n}) => {\n return (\n <nav aria-label={ariaLabel}>\n <ol className=\"eds-breadcrumbs\">\n {React.Children.map(children, (child, index) =>\n React.cloneElement(child, {\n isCurrent: index + 1 === React.Children.count(children),\n }),\n )}\n </ol>\n </nav>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { RightArrowIcon } from '@entur/icons';\nimport './BreadcrumbNavigation.scss';\nimport { PolymorphicPropsWithoutRef } from '@entur/utils';\n\nexport type BreadcrumbItemOwnProps = {\n /** Komponenten som rendres\n * @default \"a\"\n */\n as?: 'a' | React.ElementType;\n /** Teksten som vises */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** True om sist i listen. Settes automatisk av BreadcrumbNavigation-komponenten */\n isCurrent?: boolean;\n};\n\nexport type BreadcrumbItemProps<\n E extends React.ElementType = typeof defaultElement,\n> = PolymorphicPropsWithoutRef<BreadcrumbItemOwnProps, E>;\n\nconst defaultElement = 'a';\n\nexport const BreadcrumbItem = <\n E extends React.ElementType = typeof defaultElement,\n>({\n className,\n isCurrent,\n as,\n ...rest\n}: BreadcrumbItemProps<E>): JSX.Element => {\n const Element: React.ElementType = as || defaultElement;\n return (\n <>\n <li className={classNames('eds-breadcrumb__item', className)}>\n <Element\n aria-current={isCurrent ? 'page' : undefined}\n className={classNames('eds-breadcrumb__link', {\n 'eds-breadcrumb__link--current': isCurrent,\n })}\n {...rest}\n />\n </li>\n {!isCurrent && (\n <RightArrowIcon\n className=\"eds-breadcrumb__separator\"\n inline\n role=\"presentation\"\n />\n )}\n </>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport './SideNavigation.scss';\n\nexport type SideNavigationProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelse på menyen\n * @default 'medium'\n */\n size?: 'small' | 'medium';\n [key: string]: any;\n};\n\ntype InternalMarker = {\n __IS_ENTUR_MENU__: boolean;\n};\n\nexport const SideNavigation: React.FC<SideNavigationProps> & InternalMarker = ({\n className,\n children,\n size = 'medium',\n ...rest\n}) => {\n if (!children || !React.Children.count(children)) {\n return null;\n }\n return (\n <ul\n className={classNames(\n 'eds-side-navigation',\n { 'eds-side-navigation--small': size === 'small' },\n className,\n )}\n {...rest}\n >\n {children}\n </ul>\n );\n};\n\n/** This is required to check that the Menu */\nSideNavigation.__IS_ENTUR_MENU__ = true;\n","import { useState, useEffect } from 'react';\nexport type UseControllablePropType<T> = {\n prop?: T;\n updater?: (value?: T) => void;\n defaultValue: T;\n};\nexport function useControllableProp<T>({\n prop,\n updater = () => {},\n defaultValue,\n}: UseControllablePropType<T>): [T, Function] {\n const [internalState, setInternalState] = useState<T>(defaultValue);\n useEffect(() => {\n if (prop !== undefined) {\n setInternalState(prop);\n }\n }, [prop]);\n return prop === undefined\n ? [internalState, setInternalState]\n : [prop, updater];\n}\n","import React from 'react';\nimport { SideNavigationProps } from './SideNavigation';\nimport { useControllableProp } from './useControllableProp';\nimport classNames from 'classnames';\nimport { LeftArrowIcon, MenuIcon } from '@entur/icons';\n\ntype CollapsibleSideNavigationProps = SideNavigationProps & {\n /**Tilstand til menyen\n * @default false\n */\n collapsed?: boolean;\n /** Kalles når menyen åpnes eller lukkes */\n onCollapseToggle?: (e: any) => void;\n /** Posisjonen til Collapsible-knappen, målt fra toppen (som CSS-enhet)\n * @default 50%\n */\n collapsibleButtonPosition?: string;\n};\n\nexport const CollapsibleSideNavigation: React.FC<CollapsibleSideNavigationProps> =\n ({\n className,\n children,\n size,\n collapsed: collapsible,\n onCollapseToggle,\n collapsibleButtonPosition = '50%',\n ...rest\n }) => {\n const [collapsedMenu, setCollapsedMenu] = useControllableProp({\n prop: collapsible,\n defaultValue: false,\n updater: onCollapseToggle,\n });\n\n return (\n <SideNavigationContext.Provider\n value={{\n isCollapsed: collapsedMenu,\n }}\n >\n <ul\n className={classNames(\n 'eds-side-navigation',\n { 'eds-side-navigation--small': size === 'small' },\n { 'eds-side-navigation--collapsed': collapsedMenu },\n className,\n )}\n {...rest}\n >\n {children}\n <button\n className=\"eds-side-navigation__collapse-button\"\n onClick={() => setCollapsedMenu(!collapsedMenu)}\n style={{ top: `${collapsibleButtonPosition}` }}\n >\n {collapsedMenu ? <MenuIcon /> : <LeftArrowIcon />}\n </button>\n </ul>\n </SideNavigationContext.Provider>\n );\n };\n\nconst SideNavigationContext = React.createContext<{\n isCollapsed: boolean;\n}>({\n isCollapsed: false,\n});\n\nexport const useSideNavigationContext: () => { isCollapsed: boolean } = () => {\n const context = React.useContext(SideNavigationContext);\n if (!context) {\n console.error(\n 'Error reading SideNavigationContext. Please contact maintainer of @entur/menu',\n );\n }\n return context;\n};\n","import { useEffect, useState } from 'react';\n\nexport const useShowDelayedLabel = (isCollapsed: boolean) => {\n const [showLabel, setShowLabel] = useState(true);\n const hideDelay = 50;\n const showDelay = 200;\n useEffect(() => {\n if (isCollapsed) {\n setTimeout(() => {\n setShowLabel(false);\n }, hideDelay);\n }\n if (!isCollapsed) {\n setTimeout(() => {\n setShowLabel(true);\n }, showDelay);\n }\n return () => {};\n }, [isCollapsed]);\n return [showLabel];\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { useSideNavigationContext } from './CollapsibleSideNavigation';\nimport { useShowDelayedLabel } from './useShowDelayedLabel';\nimport { PolymorphicPropsWithoutRef } from '@entur/utils';\n\nfunction isActiveRecursively(child: any): boolean {\n if (!child.props) {\n return false;\n }\n if (child.props.active) {\n return true;\n }\n if (!child.props.children) {\n return false;\n }\n\n return React.Children.toArray(child.props.children).some(child =>\n isActiveRecursively(child),\n );\n}\n\ntype BaseSideNavigationItemOwnProps = {\n active?: boolean;\n as?: 'a' | 'button' | React.ElementType;\n className?: string;\n icon?: React.ReactNode;\n children: React.ReactNode;\n subMenu?: React.ReactNode;\n [key: string]: any;\n};\n\nexport type BaseSideNavigationItemProps<\n E extends React.ElementType = typeof defaultElementBaseItem\n> = PolymorphicPropsWithoutRef<BaseSideNavigationItemOwnProps, E>;\n\nconst defaultElementBaseItem = 'a';\n\nconst BaseSideNavigationItem: <E extends React.ElementType = typeof defaultElementBaseItem>(\n props: BaseSideNavigationItemProps<E>,\n) => React.ReactElement | null = React.forwardRef(\n <E extends React.ElementType = typeof defaultElementBaseItem>(\n {\n className,\n active = false,\n subMenu,\n icon,\n children,\n as,\n ...rest\n }: BaseSideNavigationItemProps<E>,\n ref: typeof rest.ref,\n ) => {\n const Element: React.ElementType = as || defaultElementBaseItem;\n const { isCollapsed } = useSideNavigationContext();\n const [showLabel] = useShowDelayedLabel(isCollapsed);\n return (\n <li className={classNames('eds-side-navigation__item', className)}>\n <Element\n className={classNames('eds-side-navigation__click-target', {\n 'eds-side-navigation__click-target--active': active,\n })}\n ref={ref}\n {...rest}\n >\n {icon}\n {showLabel && children}\n </Element>\n {subMenu}\n </li>\n );\n },\n);\n\ntype DisabledSideNavigationItemProps = {\n children: React.ReactNode;\n [key: string]: any;\n};\nconst DisabledSideNavigationItem = React.forwardRef<\n HTMLButtonElement,\n DisabledSideNavigationItemProps\n>(({ children, ...rest }, ref: React.Ref<HTMLButtonElement>) => (\n <BaseSideNavigationItem\n as=\"button\"\n disabled={true}\n aria-disabled={true}\n ref={ref}\n {...rest}\n >\n {children}\n </BaseSideNavigationItem>\n));\n\nexport type SideNavigationItemOwnProps = {\n /** Om meny-elementet er det som er aktivt */\n active?: boolean;\n /** HTML-elementet eller React-komponenten som rendres */\n as?: 'a' | 'button' | React.ElementType;\n /** Ekstra klassenavn */\n className?: string;\n /** Om meny-elementet er deaktivert */\n disabled?: boolean;\n /** Callback for når man klikker på meny-elementet */\n onClick?: (e: React.MouseEvent) => any;\n /** Sett til true om du vil tvinge alle sub-menus til å rendre barna sine. Typisk for å vise søkeresultater */\n forceExpandSubMenus?: boolean;\n icon?: React.ReactNode;\n [key: string]: any;\n};\n\nexport type SideNavigationItemProps<\n E extends React.ElementType = typeof defaultElementItem\n> = PolymorphicPropsWithoutRef<SideNavigationItemOwnProps, E>;\n\nconst defaultElementItem = 'a';\n\nexport const SideNavigationItem: <E extends React.ElementType = typeof defaultElementItem>(\n props: SideNavigationItemProps<E>,\n) => React.ReactElement | null = React.forwardRef(\n <E extends React.ElementType = typeof defaultElementItem>(\n {\n active,\n disabled,\n children,\n forceExpandSubMenus,\n as,\n ...rest\n }: SideNavigationItemProps<E>,\n ref: typeof rest.ref,\n ) => {\n const Element: React.ElementType = as || defaultElementItem;\n const childrenArray = React.Children.toArray(children);\n const subMenu = childrenArray.find(\n (child: any) => child && child.type && child.type.__IS_ENTUR_MENU__,\n );\n const label = subMenu\n ? childrenArray.filter(child => child !== subMenu)\n : children;\n\n if (disabled) {\n return (\n <DisabledSideNavigationItem ref={ref} {...rest}>\n {label}\n </DisabledSideNavigationItem>\n );\n }\n\n if (!subMenu) {\n return (\n <BaseSideNavigationItem\n as={Element}\n active={active}\n ref={ref}\n {...rest}\n >\n {label}\n </BaseSideNavigationItem>\n );\n }\n\n const isExpanded =\n forceExpandSubMenus ||\n isActiveRecursively({ props: { children, active } });\n\n return (\n <BaseSideNavigationItem\n active={active}\n subMenu={isExpanded && subMenu}\n aria-expanded={isExpanded}\n as={Element}\n ref={ref}\n {...rest}\n >\n {label}\n </BaseSideNavigationItem>\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseExpand, ExpandArrow } from '@entur/expand';\nimport { useSideNavigationContext } from './CollapsibleSideNavigation';\nimport { useShowDelayedLabel } from './useShowDelayedLabel';\nimport { useControllableProp } from './useControllableProp';\n\nexport type SideNavigationGroupProps = {\n /** Skal menygruppen være ekspandert by default? Kun relevant om komponenten ikke er kontrollert\n * @default false\n */\n defaultOpen?: boolean;\n /** Er menyen åpen? */\n open?: boolean;\n /** Kalles når menygruppen åpnes eller lukkes */\n onToggle?: (e?: boolean) => void;\n /** Ekstra klassenavn */\n className?: string;\n /** Menyen som skal grupperes */\n children: React.ReactNode;\n /** Overskriften til menyen */\n title: React.ReactNode;\n icon?: React.ReactNode;\n [key: string]: any;\n};\n\nexport const SideNavigationGroup: React.FC<SideNavigationGroupProps> = ({\n defaultOpen = false,\n open,\n onToggle,\n className,\n children,\n title,\n icon,\n ...rest\n}) => {\n const [isOpen, setOpen] = useControllableProp({\n prop: open,\n updater: onToggle,\n defaultValue: defaultOpen,\n });\n const { isCollapsed } = useSideNavigationContext();\n\n const [showLabel] = useShowDelayedLabel(isCollapsed);\n\n return (\n <div\n className={classNames('eds-side-navigation-group', className)}\n {...rest}\n >\n <button\n onClick={() => setOpen(!isOpen)}\n type=\"button\"\n className=\"eds-side-navigation-group__trigger\"\n >\n <span>\n {icon && (\n <span className=\"eds-side-navigation-group__trigger-icon\">\n {icon}\n </span>\n )}\n {showLabel && title}\n </span>\n {showLabel && (\n <ExpandArrow\n open={isOpen}\n className=\"eds-side-navigation-group__expand-icon\"\n />\n )}\n </button>\n <BaseExpand open={isOpen}>{children}</BaseExpand>\n </div>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport './TopNavigationItem.scss';\nimport { PolymorphicPropsWithoutRef } from '@entur/utils';\n\nexport type TopNavigationItemOwnProps = {\n /** Om komponenten vises som valgt eller ikke\n * @default false\n */\n active?: boolean;\n /** Tekste som vises */\n children: React.ReactNode;\n /** HTML-elementet eller React-komponenten som lager komponenten\n * @default 'a'\n */\n as?: 'a' | React.ElementType;\n /** Ekstra klassenavn */\n className?: string;\n};\n\nexport type TopNavigationItemProps<\n E extends React.ElementType = typeof defaultElement,\n> = PolymorphicPropsWithoutRef<TopNavigationItemOwnProps, E>;\n\nconst defaultElement = 'a';\n\nexport const TopNavigationItem = <\n E extends React.ElementType = typeof defaultElement,\n>({\n active = false,\n className,\n as,\n ...rest\n}: TopNavigationItemProps<E>): JSX.Element => {\n const Element: React.ElementType = as || defaultElement;\n return (\n <Element\n className={classNames([\n 'eds-top-navigation-item',\n className,\n { 'eds-top-navigation-item--active': active },\n ])}\n {...rest}\n />\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type PaginationPageProps = {\n /** Sidenummeret som er aktivt nå */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Viser siden som aktiv */\n selected?: boolean;\n /** Viser knappen som inaktiv */\n disabled?: boolean;\n /** Callback for når man trykker på siden */\n onClick: () => void;\n /** Tekst for skjermlesere */\n 'aria-label': string;\n};\nexport const PaginationPage: React.FC<PaginationPageProps> = ({\n children,\n className,\n selected,\n disabled,\n onClick,\n 'aria-label': ariaLabel,\n}) => (\n <button\n className={classNames(\n 'eds-pagination__page',\n { 'eds-pagination__page--selected': selected },\n { 'eds-pagination__page--disabled': disabled },\n className,\n )}\n disabled={selected || disabled}\n type=\"button\"\n onClick={onClick}\n aria-label={ariaLabel}\n aria-current={selected ? 'page' : false}\n >\n {children}\n </button>\n);\n","import React from 'react';\n\nexport type PaginationInputProps = {\n currentPage: number;\n label?: string;\n onPageChange: (pageNumber: number) => void;\n pageCount: number;\n};\n\nexport const PaginationInput: React.FC<PaginationInputProps> = ({\n currentPage,\n pageCount,\n label = 'Gå til side',\n onPageChange,\n}) => {\n const [input, setInput] = React.useState(String(currentPage));\n // If the currentPage prop changes, we want to reset the input field\n React.useEffect(() => {\n setInput(String(currentPage));\n }, [currentPage]);\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n e.stopPropagation();\n let pageNumber = Number(input);\n if (pageNumber === currentPage) {\n return;\n }\n if (Number.isNaN(pageNumber)) {\n pageNumber = currentPage;\n setInput(String(currentPage));\n return;\n }\n if (pageNumber > pageCount) {\n pageNumber = pageCount;\n setInput(String(pageCount));\n } else if (pageNumber < 1) {\n pageNumber = 1;\n setInput(String(1));\n }\n onPageChange(pageNumber);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInput(e.target.value);\n };\n\n return (\n <form onSubmit={handleSubmit} noValidate aria-label=\"form\">\n <label className=\"eds-pagination__input-wrapper\">\n <span className=\"eds-pagination__input-label\">{label}</span>\n <input\n type=\"number\"\n max={pageCount}\n className=\"eds-pagination__input-field\"\n value={input}\n onChange={handleChange}\n />\n </label>\n </form>\n );\n};\n","import React, { cloneElement } from 'react';\nimport {\n Menu,\n MenuButton,\n MenuItem,\n MenuLink,\n MenuList,\n} from '@reach/menu-button';\nimport type {\n MenuButtonProps,\n MenuItemProps,\n MenuLinkProps,\n} from '@reach/menu-button';\nimport { IconButton } from '@entur/button';\nimport { VerticalDotsIcon } from '@entur/icons';\nimport { Contrast, useContrast } from '@entur/layout';\nimport classNames from 'classnames';\nimport type * as Polymorphic from '@reach/utils/polymorphic';\nimport './OverflowMenu.scss';\n\nexport type OverflowMenuProps = {\n /** Menypunkter (OverflowMenuItem eller OverflowMenuLink) */\n children: React.ReactNode;\n /** Knapp som skal åpne OverflowMenu\n * @default IconButton med VerticalDotsIcon\n */\n button?: React.ReactElement;\n /** Ekstra klassenavn */\n className?: string;\n /** Posisjoneringen av OverflowMenu-lista\n * @default 'right'\n */\n position?: 'right' | 'left';\n} & MenuButtonProps;\n\nexport const OverflowMenu: React.FC<OverflowMenuProps> = ({\n children,\n className,\n button,\n position = 'right',\n ...rest\n}) => {\n return (\n <div>\n <Menu>\n {!button ? (\n <IconButton\n as={MenuButton}\n className={classNames(className, 'eds-overflow-menu__menu-button')}\n {...rest}\n >\n <VerticalDotsIcon />\n </IconButton>\n ) : (\n cloneElement(button, {\n as: MenuButton,\n className: classNames(className, 'eds-overflow-menu__menu-button'),\n ...rest,\n })\n )}\n {useContrast() ? (\n <Contrast\n className={classNames('eds-overflow-menu__menu-list')}\n as={MenuList}\n portal={false}\n >\n {[children]}\n </Contrast>\n ) : (\n <MenuList\n className={classNames('eds-overflow-menu__menu-list', {\n 'eds-overflow-menu__menu-list--left': position === 'left',\n })}\n portal={false}\n >\n {[children]}\n </MenuList>\n )}\n </Menu>\n </div>\n );\n};\n\nexport type OverflowMenuItemProps = {\n /** Innholdet til OverflowMenuItem */\n children: React.ReactNode;\n /** HTML-elementet eller React-komponenten som lager elementet\n * @default \"button\"\n */\n as?: 'button' | React.ElementType;\n /** Ekstra klassenavn */\n className?: string;\n /** Det som skjer når elementet er valgt, enten ved museklikk eller Enter-klikk */\n onSelect: () => void;\n} & MenuItemProps;\n\nexport const OverflowMenuItem = React.forwardRef(\n ({ children, className, onSelect, disabled, as = 'div', ...rest }, ref) => {\n return (\n <MenuItem\n className={classNames(\n 'eds-overflow-menu__item',\n { 'eds-overflow-menu__item--disabled': disabled },\n className,\n )}\n onSelect={onSelect}\n disabled={disabled}\n ref={ref}\n as={as}\n {...rest}\n >\n {children}\n </MenuItem>\n );\n },\n) as Polymorphic.ForwardRefComponent<'div', OverflowMenuItemProps>;\n\nexport type OverflowMenuLinkProps = {\n /** Innholdet til OverflowMenuLink */\n children: React.ReactNode;\n /** HTML-elementet eller React-komponenten som lager elementet\n * @default \"a\"\n */\n as?: string | React.ReactElement;\n /** Ekstra klassenavn */\n className?: string;\n /** Det som skjer når elementet er valgt, enten ved museklikk eller Enter-klikk */\n onSelect: () => void;\n} & MenuLinkProps;\n\nexport const OverflowMenuLink = React.forwardRef(\n ({ children, as = 'a', className, onSelect, disabled, ...rest }, ref) => {\n return (\n <MenuLink\n as={as}\n className={classNames(\n 'eds-overflow-menu__item',\n { 'eds-overflow-menu__item--disabled': disabled },\n className,\n )}\n onSelect={onSelect}\n disabled={disabled}\n ref={ref}\n {...rest}\n >\n {children}\n </MenuLink>\n );\n },\n) as Polymorphic.ForwardRefComponent<'a', OverflowMenuLinkProps>;\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { Menu, MenuList, MenuButton } from '@reach/menu-button';\n\nimport {\n LeftArrowIcon,\n RightArrowIcon,\n DownArrowIcon,\n UpArrowIcon,\n} from '@entur/icons';\nimport { Label } from '@entur/typography';\nimport { useContrast } from '@entur/layout';\n\nimport { PaginationPage } from './PaginationPage';\nimport { PaginationInput } from './PaginationInput';\nimport { OverflowMenuItem } from './OverflowMenu';\n\nimport './Pagination.scss';\n\nexport type PaginationProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Sidenummeret som er aktivt nå (1-indeksert) */\n currentPage: number;\n /** Callback for når man ønsker å gå til en ny side */\n onPageChange: (requestedPage: number) => void;\n /** Antall sider totalt */\n pageCount: number;\n /**\n * Hva som blir lest opp når brukere av skjermlesere navigerer til \"forrige side knappen\"\n * @default \"Gå til forrige side\"\n */\n previousPageLabel?: string;\n /**\n * Hva som blir lest opp når brukere av skjermlesere navigerer til \"neste side knappen\"\n * @default \"Gå til neste side\"\n */\n nextPageLabel?: string;\n /**\n * Hva som blir lest opp når brukere av skjermlesere navigerer til \"forrige side knappen\"\n * @default pageNumber => `Gå til side ${pageNumber}`,\n */\n pageLabel?: (pageNumber: number) => string;\n /** Vis et felt til høyre for pagineringen hvor man kan angi siden man\n * ønsker å vise i et tekstfelt.\n *\n * @default false\n */\n showInput?: boolean;\n /** Label som vises til venstre for input-feltet som vises om `showInput` er true\n * @default \"Gå til side\"\n */\n inputLabel?: string;\n\n /** Hvor mange resultater man har totalt */\n nubmerOfResults?: number;\n /** Hvor mange resultater som vises per side */\n resultsPerPage?: number;\n /**\n * @default [10,25,50]\n */\n resultsPerPageOptions?: number[];\n /** Callback for når resultater per side oppdateres */\n onResultsPerPageChange?: (e: number) => void;\n /** Brukes for å skjule \"neste side\"-knappen\n * @default false\n */\n hideNextButton?: boolean;\n /** Brukes for å skjule \"forrige side\"-knappen\n * @default false\n */\n hidePrevButton?: boolean;\n /** Teksten som vises for hvilke resultater av sideantallet man viser.\n * @default `Viser resultat ${minPage} - ${maxPage} av ${pageCount}`\n */\n showingResultsLabel?: (\n minPage: number,\n maxPage: number,\n pageCount: number,\n ) => string;\n /** Teksten som vises før \"resultsPerPage\"-velgeren\n * @default \"Vis\"\n */\n showNumberOfResultsLabel?: string;\n [key: string]: any;\n};\n\nexport const Pagination: React.FC<PaginationProps> = ({\n className,\n currentPage,\n inputLabel,\n onPageChange,\n pageCount,\n pageLabel = pageNumber => `Gå til side ${pageNumber}`,\n previousPageLabel = 'Gå til forrige side',\n showInput,\n\n numberOfResults,\n resultsPerPage,\n resultsPerPageOptions = [10, 25, 50],\n onResultsPerPageChange,\n\n showNumberOfResultsLabel = 'Vis',\n nextPageLabel = 'Gå til neste side',\n showingResultsLabel = (minPage, maxPage, pageCount) =>\n `Viser resultat ${minPage} - ${maxPage} av ${pageCount}`,\n hideNextButton = false,\n hidePrevButton = false,\n ...rest\n}) => {\n const isContrast = useContrast();\n const [listedEntries, setListedEntries] = useState<Array<number | '…'>>([]);\n\n const isFirstPostSelected = currentPage === 1;\n const isLastPostSelected = currentPage === pageCount;\n const noEllipsis = pageCount <= 7;\n const onlyLeadingEllipsis = !noEllipsis && currentPage < 5;\n const onlyTrailingEllipsis = !noEllipsis && pageCount - currentPage <= 3;\n\n useEffect(() => {\n if (pageCount < 1) return;\n if (noEllipsis) {\n setListedEntries(\n Array(pageCount)\n .fill(null)\n .map((_, i) => i + 1),\n );\n } else if (onlyLeadingEllipsis) {\n setListedEntries([1, 2, 3, 4, 5, '…', pageCount]);\n } else if (onlyTrailingEllipsis) {\n setListedEntries([\n 1,\n '…',\n pageCount - 4,\n pageCount - 3,\n pageCount - 2,\n pageCount - 1,\n pageCount,\n ]);\n } else {\n // leading and trailing ellipsis\n setListedEntries([\n 1,\n '…',\n currentPage - 1,\n currentPage,\n currentPage + 1,\n '…',\n pageCount,\n ]);\n }\n }, [\n noEllipsis,\n onlyLeadingEllipsis,\n onlyTrailingEllipsis,\n currentPage,\n pageCount,\n ]);\n\n if (pageCount < 1) {\n return null;\n }\n\n return (\n <div className={classNames('eds-pagination', className)} {...rest}>\n {resultsPerPage && numberOfResults && (\n <div className=\"eds-pagination__results\">\n {onResultsPerPageChange && (\n <Menu>\n {({ isOpen }) => (\n <>\n <Label>{showNumberOfResultsLabel}</Label>\n <MenuButton\n className={classNames('eds-pagination-menu__menu-button', {\n 'eds-pagination-menu__menu-button--open': isOpen,\n })}\n >\n {resultsPerPage}\n {isOpen ? <UpArrowIcon /> : <DownArrowIcon />}\n </MenuButton>\n <MenuList\n className={classNames(\n 'eds-pagination-menu__menu-list',\n 'eds-overflow-menu__menu-list',\n { 'eds-contrast': isContrast },\n )}\n >\n {resultsPerPageOptions.map(\n (option: number, key: number) => (\n <OverflowMenuItem\n key={key}\n onSelect={() => onResultsPerPageChange(option)}\n >\n {option}\n </OverflowMenuItem>\n ),\n )}\n </MenuList>\n </>\n )}\n </Menu>\n )}\n <Label className=\"eds-pagination__results-label\">\n {showingResultsLabel(\n (currentPage - 1) * resultsPerPage + 1,\n currentPage * resultsPerPage > numberOfResults\n ? numberOfResults\n : currentPage * resultsPerPage,\n numberOfResults,\n )}\n </Label>\n </div>\n )}\n <div className=\"eds-pagination__controls\">\n {!hidePrevButton && (\n <PaginationPage\n onClick={() => onPageChange(currentPage - 1)}\n aria-label={previousPageLabel}\n disabled={isFirstPostSelected}\n >\n <LeftArrowIcon />\n </PaginationPage>\n )}\n {listedEntries.map((entry, index) =>\n entry === '…' ? (\n <Ellipsis key={`ellipsis-${index}`} />\n ) : (\n <PaginationPage\n selected={entry === currentPage}\n onClick={() => onPageChange(entry)}\n aria-label={pageLabel(entry)}\n key={entry}\n >\n {entry}\n </PaginationPage>\n ),\n )}\n {!hideNextButton && (\n <PaginationPage\n onClick={() => onPageChange(currentPage + 1)}\n aria-label={nextPageLabel}\n disabled={isLastPostSelected}\n >\n <RightArrowIcon />\n </PaginationPage>\n )}\n {showInput && (\n <PaginationInput\n pageCount={pageCount}\n currentPage={currentPage}\n onPageChange={onPageChange}\n label={inputLabel}\n />\n )}\n </div>\n </div>\n );\n};\n\nconst Ellipsis: React.FC = () => (\n <span className=\"eds-pagination__ellipsis\" aria-hidden=\"true\">\n …\n </span>\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Label } from '@entur/typography';\n\nimport './Stepper.scss';\n\nexport type StepperProps = {\n /** Det nåværende steget. */\n activeIndex: number;\n /** Oppdater state ved klikk. */\n onStepClick: (index: number) => void;\n /** Liste av steg. */\n steps: string[];\n /** Ekstra klassenavn. */\n className?: string;\n /** Om stepperen skal være et interaktivt-navigasjonselement eller ikke\n * @default false\n */\n interactive?: boolean;\n /** Om stepper skal vise indeksering av hvilket trinn man er på\n * @default true\n */\n showStepperIndex?: boolean;\n as?: 'button' | React.ElementType;\n [key: string]: any;\n};\n\nexport const Stepper: React.FC<StepperProps> = ({\n className,\n onStepClick,\n steps,\n activeIndex,\n interactive = false,\n showStepperIndex = true,\n ...rest\n}) => {\n const Element = interactive ? 'button' : 'div';\n return (\n <div className={classNames('eds-stepper', className)} {...rest}>\n {steps.map((step, i) => {\n const isActive = i === activeIndex;\n const hasBeenActive = activeIndex > i;\n const props = interactive ? { onClick: () => onStepClick(i) } : {};\n return (\n <Element\n key={step}\n className={classNames('eds-stepper__item__container', {\n 'eds-stepper__item__container--non-interactive': !interactive,\n })}\n {...props}\n >\n <div\n className={classNames(\n 'eds-stepper__item__square',\n { 'eds-stepper__item__square--active': isActive },\n { 'eds-stepper__item__square--inactive': activeIndex < i },\n { 'eds-stepper__item__square--has-been': hasBeenActive },\n )}\n ></div>\n <Label\n className={classNames(\n 'eds-stepper__item__label',\n {\n 'eds-stepper__item__label--has-been': hasBeenActive,\n },\n {\n 'eds-stepper__item__label--active': isActive,\n },\n )}\n >\n {showStepperIndex && i + 1 + '.'} {step}\n </Label>\n </Element>\n );\n })}\n </div>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles(\n 'menu',\n 'expand',\n 'icons',\n 'typography',\n 'button',\n 'layout',\n);\n\nexport * from './BreadcrumbNavigation';\nexport * from './BreadcrumbItem';\nexport * from './SideNavigation';\nexport * from './SideNavigationItem';\nexport * from './SideNavigationGroup';\nexport * from './TopNavigationItem';\nexport * from './Pagination';\nexport * from './Stepper';\nexport * from './OverflowMenu';\nexport * from './CollapsibleSideNavigation';\n"],"names":["BreadcrumbNavigation","ariaLabel","children","React","className","Children","map","child","index","cloneElement","isCurrent","count","defaultElement","BreadcrumbItem","as","rest","Element","classNames","undefined","RightArrowIcon","inline","role","SideNavigation","size","__IS_ENTUR_MENU__","useControllableProp","prop","updater","defaultValue","useState","internalState","setInternalState","useEffect","CollapsibleSideNavigation","collapsible","collapsed","onCollapseToggle","collapsibleButtonPosition","collapsedMenu","setCollapsedMenu","SideNavigationContext","Provider","value","isCollapsed","onClick","style","top","MenuIcon","LeftArrowIcon","createContext","useSideNavigationContext","context","useContext","console","error","useShowDelayedLabel","showLabel","setShowLabel","hideDelay","showDelay","setTimeout","isActiveRecursively","props","active","toArray","some","defaultElementBaseItem","BaseSideNavigationItem","forwardRef","ref","subMenu","icon","DisabledSideNavigationItem","disabled","defaultElementItem","SideNavigationItem","forceExpandSubMenus","childrenArray","find","type","label","filter","isExpanded","SideNavigationGroup","defaultOpen","open","onToggle","title","isOpen","setOpen","ExpandArrow","BaseExpand","TopNavigationItem","PaginationPage","selected","PaginationInput","currentPage","pageCount","onPageChange","String","input","setInput","handleSubmit","e","preventDefault","stopPropagation","pageNumber","Number","isNaN","handleChange","target","onSubmit","noValidate","max","onChange","OverflowMenu","button","position","Menu","IconButton","MenuButton","VerticalDotsIcon","useContrast","Contrast","MenuList","portal","OverflowMenuItem","onSelect","MenuItem","OverflowMenuLink","MenuLink","Pagination","inputLabel","pageLabel","previousPageLabel","showInput","numberOfResults","resultsPerPage","resultsPerPageOptions","onResultsPerPageChange","showNumberOfResultsLabel","nextPageLabel","showingResultsLabel","minPage","maxPage","hideNextButton","hidePrevButton","isContrast","listedEntries","setListedEntries","isFirstPostSelected","isLastPostSelected","noEllipsis","onlyLeadingEllipsis","onlyTrailingEllipsis","Array","fill","_","i","Label","UpArrowIcon","DownArrowIcon","option","key","entry","Ellipsis","Stepper","onStepClick","steps","activeIndex","interactive","showStepperIndex","step","isActive","hasBeenActive","warnAboutMissingStyles"],"mappings":"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"}
1
+ {"version":3,"file":"menu.cjs.development.js","sources":["../src/BreadcrumbNavigation.tsx","../src/BreadcrumbItem.tsx","../src/SideNavigation.tsx","../src/useControllableProp.ts","../src/CollapsibleSideNavigation.tsx","../src/useShowDelayedLabel.ts","../src/SideNavigationItem.tsx","../src/SideNavigationGroup.tsx","../src/TopNavigationItem.tsx","../src/PaginationPage.tsx","../src/PaginationInput.tsx","../src/OverflowMenu.tsx","../src/Pagination.tsx","../src/Stepper.tsx","../src/index.tsx"],"sourcesContent":["import React from 'react';\nimport './BreadcrumbNavigation.scss';\n\nexport type BreadcrumbNavigationProps = {\n /** Label for brødsmulestien.\n * @default 'Brødsmulesti'\n */\n 'aria-label'?: string;\n /** En liste med BreadcrumbItem-er */\n children: React.ReactElement[];\n};\n\nexport const BreadcrumbNavigation: React.FC<BreadcrumbNavigationProps> = ({\n 'aria-label': ariaLabel = 'Brødsmulesti',\n children,\n}) => {\n return (\n <nav aria-label={ariaLabel}>\n <ol className=\"eds-breadcrumbs\">\n {React.Children.map(children, (child, index) =>\n React.cloneElement(child, {\n isCurrent: index + 1 === React.Children.count(children),\n }),\n )}\n </ol>\n </nav>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { RightArrowIcon } from '@entur/icons';\nimport './BreadcrumbNavigation.scss';\nimport { PolymorphicPropsWithoutRef } from '@entur/utils';\n\nexport type BreadcrumbItemOwnProps = {\n /** Komponenten som rendres\n * @default \"a\"\n */\n as?: 'a' | React.ElementType;\n /** Teksten som vises */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** True om sist i listen. Settes automatisk av BreadcrumbNavigation-komponenten */\n isCurrent?: boolean;\n};\n\nexport type BreadcrumbItemProps<\n E extends React.ElementType = typeof defaultElement,\n> = PolymorphicPropsWithoutRef<BreadcrumbItemOwnProps, E>;\n\nconst defaultElement = 'a';\n\nexport const BreadcrumbItem = <\n E extends React.ElementType = typeof defaultElement,\n>({\n className,\n isCurrent,\n as,\n ...rest\n}: BreadcrumbItemProps<E>): JSX.Element => {\n const Element: React.ElementType = as || defaultElement;\n return (\n <>\n <li className={classNames('eds-breadcrumb__item', className)}>\n <Element\n aria-current={isCurrent ? 'page' : undefined}\n className={classNames('eds-breadcrumb__link', {\n 'eds-breadcrumb__link--current': isCurrent,\n })}\n {...rest}\n />\n </li>\n {!isCurrent && (\n <RightArrowIcon\n className=\"eds-breadcrumb__separator\"\n inline\n role=\"presentation\"\n />\n )}\n </>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport './SideNavigation.scss';\n\nexport type SideNavigationProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Størrelse på menyen\n * @default 'medium'\n */\n size?: 'small' | 'medium';\n [key: string]: any;\n};\n\ntype InternalMarker = {\n __IS_ENTUR_MENU__: boolean;\n};\n\nexport const SideNavigation: React.FC<SideNavigationProps> & InternalMarker = ({\n className,\n children,\n size = 'medium',\n ...rest\n}) => {\n if (!children || !React.Children.count(children)) {\n return null;\n }\n return (\n <ul\n className={classNames(\n 'eds-side-navigation',\n { 'eds-side-navigation--small': size === 'small' },\n className,\n )}\n {...rest}\n >\n {children}\n </ul>\n );\n};\n\n/** This is required to check that the Menu */\nSideNavigation.__IS_ENTUR_MENU__ = true;\n","import { useState, useEffect } from 'react';\nexport type UseControllablePropType<T> = {\n prop?: T;\n updater?: (value?: T) => void;\n defaultValue: T;\n};\nexport function useControllableProp<T>({\n prop,\n updater = () => undefined,\n defaultValue,\n}: UseControllablePropType<T>): [T, (arg: T) => void] {\n const [internalState, setInternalState] = useState<T>(defaultValue);\n useEffect(() => {\n if (prop !== undefined) {\n setInternalState(prop);\n }\n }, [prop]);\n return prop === undefined\n ? [internalState, setInternalState]\n : [prop, updater];\n}\n","import React from 'react';\nimport { SideNavigationProps } from './SideNavigation';\nimport { useControllableProp } from './useControllableProp';\nimport classNames from 'classnames';\nimport { LeftArrowIcon, MenuIcon } from '@entur/icons';\n\ntype CollapsibleSideNavigationProps = SideNavigationProps & {\n /**Tilstand til menyen\n * @default false\n */\n collapsed?: boolean;\n /** Kalles når menyen åpnes eller lukkes */\n onCollapseToggle?: (e: any) => void;\n /** Posisjonen til Collapsible-knappen, målt fra toppen (som CSS-enhet)\n * @default 50%\n */\n collapsibleButtonPosition?: string;\n};\n\nexport const CollapsibleSideNavigation: React.FC<CollapsibleSideNavigationProps> =\n ({\n className,\n children,\n size,\n collapsed: collapsible,\n onCollapseToggle,\n collapsibleButtonPosition = '50%',\n ...rest\n }) => {\n const [collapsedMenu, setCollapsedMenu] = useControllableProp({\n prop: collapsible,\n defaultValue: false,\n updater: onCollapseToggle,\n });\n\n return (\n <SideNavigationContext.Provider\n value={{\n isCollapsed: collapsedMenu,\n }}\n >\n <ul\n className={classNames(\n 'eds-side-navigation',\n { 'eds-side-navigation--small': size === 'small' },\n { 'eds-side-navigation--collapsed': collapsedMenu },\n className,\n )}\n {...rest}\n >\n {children}\n <button\n className=\"eds-side-navigation__collapse-button\"\n onClick={() => setCollapsedMenu(!collapsedMenu)}\n style={{ top: `${collapsibleButtonPosition}` }}\n >\n {collapsedMenu ? <MenuIcon /> : <LeftArrowIcon />}\n </button>\n </ul>\n </SideNavigationContext.Provider>\n );\n };\n\nconst SideNavigationContext = React.createContext<{\n isCollapsed: boolean;\n}>({\n isCollapsed: false,\n});\n\nexport const useSideNavigationContext: () => { isCollapsed: boolean } = () => {\n const context = React.useContext(SideNavigationContext);\n if (!context) {\n console.error(\n 'Error reading SideNavigationContext. Please contact maintainer of @entur/menu',\n );\n }\n return context;\n};\n","import { useEffect, useState } from 'react';\n\nexport const useShowDelayedLabel = (isCollapsed: boolean): [boolean] => {\n const [showLabel, setShowLabel] = useState(true);\n const hideDelay = 50;\n const showDelay = 200;\n useEffect(() => {\n if (isCollapsed) {\n setTimeout(() => {\n setShowLabel(false);\n }, hideDelay);\n }\n if (!isCollapsed) {\n setTimeout(() => {\n setShowLabel(true);\n }, showDelay);\n }\n return () => undefined;\n }, [isCollapsed]);\n return [showLabel];\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport { useSideNavigationContext } from './CollapsibleSideNavigation';\nimport { useShowDelayedLabel } from './useShowDelayedLabel';\nimport { PolymorphicPropsWithoutRef } from '@entur/utils';\n\nfunction isActiveRecursively(child: any): boolean {\n if (!child.props) {\n return false;\n }\n if (child.props.active) {\n return true;\n }\n if (!child.props.children) {\n return false;\n }\n\n return React.Children.toArray(child.props.children).some(child =>\n isActiveRecursively(child),\n );\n}\n\ntype BaseSideNavigationItemOwnProps = {\n active?: boolean;\n as?: 'a' | 'button' | React.ElementType;\n className?: string;\n icon?: React.ReactNode;\n children: React.ReactNode;\n subMenu?: React.ReactNode;\n [key: string]: any;\n};\n\nexport type BaseSideNavigationItemProps<\n E extends React.ElementType = typeof defaultElementBaseItem,\n> = PolymorphicPropsWithoutRef<BaseSideNavigationItemOwnProps, E>;\n\nconst defaultElementBaseItem = 'a';\n\nconst BaseSideNavigationItem: <\n E extends React.ElementType = typeof defaultElementBaseItem,\n>(\n props: BaseSideNavigationItemProps<E>,\n) => React.ReactElement | null = React.forwardRef(\n <E extends React.ElementType = typeof defaultElementBaseItem>(\n {\n className,\n active = false,\n subMenu,\n icon,\n children,\n as,\n ...rest\n }: BaseSideNavigationItemProps<E>,\n ref: typeof rest.ref,\n ) => {\n const Element: React.ElementType = as || defaultElementBaseItem;\n const { isCollapsed } = useSideNavigationContext();\n const [showLabel] = useShowDelayedLabel(isCollapsed);\n return (\n <li className={classNames('eds-side-navigation__item', className)}>\n <Element\n className={classNames('eds-side-navigation__click-target', {\n 'eds-side-navigation__click-target--active': active,\n })}\n ref={ref}\n {...rest}\n >\n {icon}\n {showLabel && children}\n </Element>\n {subMenu}\n </li>\n );\n },\n);\n\ntype DisabledSideNavigationItemProps = {\n children: React.ReactNode;\n [key: string]: any;\n};\nconst DisabledSideNavigationItem = React.forwardRef<\n HTMLButtonElement,\n DisabledSideNavigationItemProps\n>(({ children, ...rest }, ref: React.Ref<HTMLButtonElement>) => (\n <BaseSideNavigationItem\n as=\"button\"\n disabled={true}\n aria-disabled={true}\n ref={ref}\n {...rest}\n >\n {children}\n </BaseSideNavigationItem>\n));\n\nexport type SideNavigationItemOwnProps = {\n /** Om meny-elementet er det som er aktivt */\n active?: boolean;\n /** HTML-elementet eller React-komponenten som rendres */\n as?: 'a' | 'button' | React.ElementType;\n /** Ekstra klassenavn */\n className?: string;\n /** Om meny-elementet er deaktivert */\n disabled?: boolean;\n /** Callback for når man klikker på meny-elementet */\n onClick?: (e: React.MouseEvent) => any;\n /** Sett til true om du vil tvinge alle sub-menus til å rendre barna sine. Typisk for å vise søkeresultater */\n forceExpandSubMenus?: boolean;\n icon?: React.ReactNode;\n [key: string]: any;\n};\n\nexport type SideNavigationItemProps<\n E extends React.ElementType = typeof defaultElementItem,\n> = PolymorphicPropsWithoutRef<SideNavigationItemOwnProps, E>;\n\nconst defaultElementItem = 'a';\n\nexport const SideNavigationItem: <\n E extends React.ElementType = typeof defaultElementItem,\n>(\n props: SideNavigationItemProps<E>,\n) => React.ReactElement | null = React.forwardRef(\n <E extends React.ElementType = typeof defaultElementItem>(\n {\n active,\n disabled,\n children,\n forceExpandSubMenus,\n as,\n ...rest\n }: SideNavigationItemProps<E>,\n ref: typeof rest.ref,\n ) => {\n const Element: React.ElementType = as || defaultElementItem;\n const childrenArray = React.Children.toArray(children);\n const subMenu = childrenArray.find(\n (child: any) => child && child.type && child.type.__IS_ENTUR_MENU__,\n );\n const label = subMenu\n ? childrenArray.filter(child => child !== subMenu)\n : children;\n\n if (disabled) {\n return (\n <DisabledSideNavigationItem ref={ref} {...rest}>\n {label}\n </DisabledSideNavigationItem>\n );\n }\n\n if (!subMenu) {\n return (\n <BaseSideNavigationItem\n as={Element}\n active={active}\n ref={ref}\n {...rest}\n >\n {label}\n </BaseSideNavigationItem>\n );\n }\n\n const isExpanded =\n forceExpandSubMenus ||\n isActiveRecursively({ props: { children, active } });\n\n return (\n <BaseSideNavigationItem\n active={active}\n subMenu={isExpanded && subMenu}\n aria-expanded={isExpanded}\n as={Element}\n ref={ref}\n {...rest}\n >\n {label}\n </BaseSideNavigationItem>\n );\n },\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { BaseExpand, ExpandArrow } from '@entur/expand';\nimport { useSideNavigationContext } from './CollapsibleSideNavigation';\nimport { useShowDelayedLabel } from './useShowDelayedLabel';\nimport { useControllableProp } from './useControllableProp';\n\nexport type SideNavigationGroupProps = {\n /** Skal menygruppen være ekspandert by default? Kun relevant om komponenten ikke er kontrollert\n * @default false\n */\n defaultOpen?: boolean;\n /** Er menyen åpen? */\n open?: boolean;\n /** Kalles når menygruppen åpnes eller lukkes */\n onToggle?: (e?: boolean) => void;\n /** Ekstra klassenavn */\n className?: string;\n /** Menyen som skal grupperes */\n children: React.ReactNode;\n /** Overskriften til menyen */\n title: React.ReactNode;\n icon?: React.ReactNode;\n [key: string]: any;\n};\n\nexport const SideNavigationGroup: React.FC<SideNavigationGroupProps> = ({\n defaultOpen = false,\n open,\n onToggle,\n className,\n children,\n title,\n icon,\n ...rest\n}) => {\n const [isOpen, setOpen] = useControllableProp({\n prop: open,\n updater: onToggle,\n defaultValue: defaultOpen,\n });\n const { isCollapsed } = useSideNavigationContext();\n\n const [showLabel] = useShowDelayedLabel(isCollapsed);\n\n return (\n <div\n className={classNames('eds-side-navigation-group', className)}\n {...rest}\n >\n <button\n onClick={() => setOpen(!isOpen)}\n type=\"button\"\n className=\"eds-side-navigation-group__trigger\"\n >\n <span>\n {icon && (\n <span className=\"eds-side-navigation-group__trigger-icon\">\n {icon}\n </span>\n )}\n {showLabel && title}\n </span>\n {showLabel && (\n <ExpandArrow\n open={isOpen}\n className=\"eds-side-navigation-group__expand-icon\"\n />\n )}\n </button>\n <BaseExpand open={isOpen}>{children}</BaseExpand>\n </div>\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\nimport './TopNavigationItem.scss';\nimport { PolymorphicPropsWithoutRef } from '@entur/utils';\n\nexport type TopNavigationItemOwnProps = {\n /** Om komponenten vises som valgt eller ikke\n * @default false\n */\n active?: boolean;\n /** Tekste som vises */\n children: React.ReactNode;\n /** HTML-elementet eller React-komponenten som lager komponenten\n * @default 'a'\n */\n as?: 'a' | React.ElementType;\n /** Ekstra klassenavn */\n className?: string;\n};\n\nexport type TopNavigationItemProps<\n E extends React.ElementType = typeof defaultElement,\n> = PolymorphicPropsWithoutRef<TopNavigationItemOwnProps, E>;\n\nconst defaultElement = 'a';\n\nexport const TopNavigationItem = <\n E extends React.ElementType = typeof defaultElement,\n>({\n active = false,\n className,\n as,\n ...rest\n}: TopNavigationItemProps<E>): JSX.Element => {\n const Element: React.ElementType = as || defaultElement;\n return (\n <Element\n className={classNames([\n 'eds-top-navigation-item',\n className,\n { 'eds-top-navigation-item--active': active },\n ])}\n {...rest}\n />\n );\n};\n","import React from 'react';\nimport classNames from 'classnames';\n\nexport type PaginationPageProps = {\n /** Sidenummeret som er aktivt nå */\n children: React.ReactNode;\n /** Ekstra klassenavn */\n className?: string;\n /** Viser siden som aktiv */\n selected?: boolean;\n /** Viser knappen som inaktiv */\n disabled?: boolean;\n /** Callback for når man trykker på siden */\n onClick: () => void;\n /** Tekst for skjermlesere */\n 'aria-label': string;\n 'aria-describedby'?: string;\n};\nexport const PaginationPage: React.FC<PaginationPageProps> = ({\n children,\n className,\n selected,\n disabled,\n onClick,\n 'aria-label': ariaLabel,\n 'aria-describedby': ariaDescribedby,\n}) => (\n <button\n className={classNames(\n 'eds-pagination__page',\n { 'eds-pagination__page--selected': selected },\n { 'eds-pagination__page--disabled': disabled },\n className,\n )}\n disabled={selected || disabled}\n type=\"button\"\n onClick={onClick}\n aria-label={ariaLabel}\n aria-describedby={ariaDescribedby}\n aria-current={selected ? 'page' : false}\n >\n {children}\n </button>\n);\n","import React from 'react';\n\nexport type PaginationInputProps = {\n currentPage: number;\n label?: string;\n onPageChange: (pageNumber: number) => void;\n pageCount: number;\n};\n\nexport const PaginationInput: React.FC<PaginationInputProps> = ({\n currentPage,\n pageCount,\n label = 'Gå til side',\n onPageChange,\n}) => {\n const [input, setInput] = React.useState(String(currentPage));\n // If the currentPage prop changes, we want to reset the input field\n React.useEffect(() => {\n setInput(String(currentPage));\n }, [currentPage]);\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n e.stopPropagation();\n let pageNumber = Number(input);\n if (pageNumber === currentPage) {\n return;\n }\n if (Number.isNaN(pageNumber)) {\n pageNumber = currentPage;\n setInput(String(currentPage));\n return;\n }\n if (pageNumber > pageCount) {\n pageNumber = pageCount;\n setInput(String(pageCount));\n } else if (pageNumber < 1) {\n pageNumber = 1;\n setInput(String(1));\n }\n onPageChange(pageNumber);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setInput(e.target.value);\n };\n\n return (\n <form onSubmit={handleSubmit} noValidate aria-label=\"form\">\n <label className=\"eds-pagination__input-wrapper\">\n <span className=\"eds-pagination__input-label\">{label}</span>\n <input\n type=\"number\"\n max={pageCount}\n className=\"eds-pagination__input-field\"\n value={input}\n onChange={handleChange}\n />\n </label>\n </form>\n );\n};\n","import React, { cloneElement } from 'react';\nimport {\n Menu,\n MenuButton,\n MenuItem,\n MenuLink,\n MenuList,\n} from '@reach/menu-button';\nimport type {\n MenuButtonProps,\n MenuItemProps,\n MenuLinkProps,\n} from '@reach/menu-button';\nimport { IconButton } from '@entur/button';\nimport { VerticalDotsIcon } from '@entur/icons';\nimport { Contrast, useContrast } from '@entur/layout';\nimport classNames from 'classnames';\nimport type * as Polymorphic from '@reach/utils/polymorphic';\nimport './OverflowMenu.scss';\n\nexport type OverflowMenuProps = {\n /** Menypunkter (OverflowMenuItem eller OverflowMenuLink) */\n children: React.ReactNode;\n /** Knapp som skal åpne OverflowMenu\n * @default IconButton med VerticalDotsIcon\n */\n button?: React.ReactElement;\n /** Ekstra klassenavn */\n className?: string;\n /** Posisjoneringen av OverflowMenu-lista\n * @default 'right'\n */\n position?: 'right' | 'left';\n} & MenuButtonProps;\n\nexport const OverflowMenu: React.FC<OverflowMenuProps> = ({\n children,\n className,\n button,\n position = 'right',\n ...rest\n}) => {\n return (\n <div>\n <Menu>\n {!button ? (\n <IconButton\n as={MenuButton}\n className={classNames(className, 'eds-overflow-menu__menu-button')}\n {...rest}\n >\n <VerticalDotsIcon />\n </IconButton>\n ) : (\n cloneElement(button, {\n as: MenuButton,\n className: classNames(className, 'eds-overflow-menu__menu-button'),\n ...rest,\n })\n )}\n {useContrast() ? (\n <Contrast\n className={classNames('eds-overflow-menu__menu-list')}\n as={MenuList}\n portal={false}\n >\n {[children]}\n </Contrast>\n ) : (\n <MenuList\n className={classNames('eds-overflow-menu__menu-list', {\n 'eds-overflow-menu__menu-list--left': position === 'left',\n })}\n portal={false}\n >\n {[children]}\n </MenuList>\n )}\n </Menu>\n </div>\n );\n};\n\nexport type OverflowMenuItemProps = {\n /** Innholdet til OverflowMenuItem */\n children: React.ReactNode;\n /** HTML-elementet eller React-komponenten som lager elementet\n * @default \"button\"\n */\n as?: 'button' | React.ElementType;\n /** Ekstra klassenavn */\n className?: string;\n /** Det som skjer når elementet er valgt, enten ved museklikk eller Enter-klikk */\n onSelect: () => void;\n} & MenuItemProps;\n\nexport const OverflowMenuItem = React.forwardRef(\n ({ children, className, onSelect, disabled, as = 'div', ...rest }, ref) => {\n return (\n <MenuItem\n className={classNames(\n 'eds-overflow-menu__item',\n { 'eds-overflow-menu__item--disabled': disabled },\n className,\n )}\n onSelect={onSelect}\n disabled={disabled}\n ref={ref}\n as={as}\n {...rest}\n >\n {children}\n </MenuItem>\n );\n },\n) as Polymorphic.ForwardRefComponent<'div', OverflowMenuItemProps>;\n\nexport type OverflowMenuLinkProps = {\n /** Innholdet til OverflowMenuLink */\n children: React.ReactNode;\n /** HTML-elementet eller React-komponenten som lager elementet\n * @default \"a\"\n */\n as?: string | React.ReactElement;\n /** Ekstra klassenavn */\n className?: string;\n /** Det som skjer når elementet er valgt, enten ved museklikk eller Enter-klikk */\n onSelect: () => void;\n} & MenuLinkProps;\n\nexport const OverflowMenuLink = React.forwardRef(\n ({ children, as = 'a', className, onSelect, disabled, ...rest }, ref) => {\n return (\n <MenuLink\n as={as}\n className={classNames(\n 'eds-overflow-menu__item',\n { 'eds-overflow-menu__item--disabled': disabled },\n className,\n )}\n onSelect={onSelect}\n disabled={disabled}\n ref={ref}\n {...rest}\n >\n {children}\n </MenuLink>\n );\n },\n) as Polymorphic.ForwardRefComponent<'a', OverflowMenuLinkProps>;\n","import React, { useEffect, useState } from 'react';\nimport classNames from 'classnames';\nimport { Menu, MenuList, MenuButton } from '@reach/menu-button';\n\nimport {\n LeftArrowIcon,\n RightArrowIcon,\n DownArrowIcon,\n UpArrowIcon,\n} from '@entur/icons';\nimport { VisuallyHidden } from '@entur/a11y';\nimport { useContrast } from '@entur/layout';\nimport { Label } from '@entur/typography';\nimport { useRandomId } from '@entur/utils';\n\nimport { PaginationPage } from './PaginationPage';\nimport { PaginationInput } from './PaginationInput';\nimport { OverflowMenuItem } from './OverflowMenu';\n\nimport './Pagination.scss';\n\nexport type PaginationProps = {\n /** Ekstra klassenavn */\n className?: string;\n /** Sidenummeret som er aktivt nå (1-indeksert) */\n currentPage: number;\n /** Callback for når man ønsker å gå til en ny side */\n onPageChange: (requestedPage: number) => void;\n /** Antall sider totalt */\n pageCount: number;\n /**\n * Hva som blir lest opp når brukere av skjermlesere navigerer til \"forrige side knappen\"\n * @default \"Gå til forrige side\"\n */\n previousPageLabel?: string;\n /**\n * Hva som blir lest opp når brukere av skjermlesere navigerer til \"neste side knappen\"\n * @default \"Gå til neste side\"\n */\n nextPageLabel?: string;\n /**\n * Hva som blir lest opp når brukere av skjermlesere navigerer til \"forrige side knappen\"\n * @default pageNumber => `Gå til side ${pageNumber}`,\n */\n pageLabel?: (pageNumber: number) => string;\n /**\n * @default \"Nåværende side:\"\n */\n currentPageLabelForScreenreader?: string;\n /** Vis et felt til høyre for pagineringen hvor man kan angi siden man\n * ønsker å vise i et tekstfelt.\n *\n * @default false\n */\n showInput?: boolean;\n /** Label som vises til venstre for input-feltet som vises om `showInput` er true\n * @default \"Gå til side\"\n */\n inputLabel?: string;\n\n /** Hvor mange resultater man har totalt */\n nubmerOfResults?: number;\n /** Hvor mange resultater som vises per side */\n resultsPerPage?: number;\n /**\n * @default [10,25,50]\n */\n resultsPerPageOptions?: number[];\n /** Callback for når resultater per side oppdateres */\n onResultsPerPageChange?: (e: number) => void;\n /** Brukes for å skjule \"neste side\"-knappen\n * @default false\n */\n hideNextButton?: boolean;\n /** Brukes for å skjule \"forrige side\"-knappen\n * @default false\n */\n hidePrevButton?: boolean;\n /** Teksten som vises for hvilke resultater av sideantallet man viser.\n * @default `Viser resultat ${minPage} - ${maxPage} av ${pageCount}`\n */\n showingResultsLabel?: (\n minPage: number,\n maxPage: number,\n pageCount: number,\n ) => string;\n /** Teksten som vises før \"resultsPerPage\"-velgeren\n * @default \"Vis\"\n */\n showNumberOfResultsLabel?: string;\n [key: string]: any;\n};\n\nexport const Pagination: React.FC<PaginationProps> = ({\n className,\n currentPage,\n inputLabel,\n onPageChange,\n pageCount,\n pageLabel = pageNumber => `Gå til side ${pageNumber}`,\n previousPageLabel = 'Gå til forrige side',\n currentPageLabelForScreenreader = 'Nåværende side:',\n showInput,\n\n numberOfResults,\n resultsPerPage,\n resultsPerPageOptions = [10, 25, 50],\n onResultsPerPageChange,\n\n showNumberOfResultsLabel = 'Vis',\n nextPageLabel = 'Gå til neste side',\n showingResultsLabel = (minPage, maxPage, pageCount) =>\n `Viser resultat ${minPage} - ${maxPage} av ${pageCount}`,\n hideNextButton = false,\n hidePrevButton = false,\n ...rest\n}) => {\n const isContrast = useContrast();\n const [listedEntries, setListedEntries] = useState<Array<number | '…'>>([]);\n const paginationId = useRandomId('eds-pagination');\n\n const isFirstPostSelected = currentPage === 1;\n const isLastPostSelected = currentPage === pageCount;\n const noEllipsis = pageCount <= 7;\n const onlyLeadingEllipsis = !noEllipsis && currentPage < 5;\n const onlyTrailingEllipsis = !noEllipsis && pageCount - currentPage <= 3;\n\n useEffect(() => {\n if (pageCount < 1) return;\n if (noEllipsis) {\n setListedEntries(\n Array(pageCount)\n .fill(null)\n .map((_, i) => i + 1),\n );\n } else if (onlyLeadingEllipsis) {\n setListedEntries([1, 2, 3, 4, 5, '…', pageCount]);\n } else if (onlyTrailingEllipsis) {\n setListedEntries([\n 1,\n '…',\n pageCount - 4,\n pageCount - 3,\n pageCount - 2,\n pageCount - 1,\n pageCount,\n ]);\n } else {\n // leading and trailing ellipsis\n setListedEntries([\n 1,\n '…',\n currentPage - 1,\n currentPage,\n currentPage + 1,\n '…',\n pageCount,\n ]);\n }\n }, [\n noEllipsis,\n onlyLeadingEllipsis,\n onlyTrailingEllipsis,\n currentPage,\n pageCount,\n ]);\n\n if (pageCount < 1) {\n return null;\n }\n\n return (\n <div className={classNames('eds-pagination', className)} {...rest}>\n {resultsPerPage && numberOfResults && (\n <div className=\"eds-pagination__results\">\n {onResultsPerPageChange && (\n <Menu>\n {({ isOpen }) => (\n <>\n <Label>{showNumberOfResultsLabel}</Label>\n <MenuButton\n className={classNames('eds-pagination-menu__menu-button', {\n 'eds-pagination-menu__menu-button--open': isOpen,\n })}\n >\n <VisuallyHidden>{showNumberOfResultsLabel} </VisuallyHidden>\n {resultsPerPage}\n {isOpen ? <UpArrowIcon /> : <DownArrowIcon />}\n </MenuButton>\n <MenuList\n className={classNames(\n 'eds-pagination-menu__menu-list',\n 'eds-overflow-menu__menu-list',\n { 'eds-contrast': isContrast },\n )}\n >\n {resultsPerPageOptions.map(\n (option: number, key: number) => (\n <OverflowMenuItem\n key={key}\n onSelect={() => onResultsPerPageChange(option)}\n >\n {option}\n </OverflowMenuItem>\n ),\n )}\n </MenuList>\n </>\n )}\n </Menu>\n )}\n <Label className=\"eds-pagination__results-label\">\n {showingResultsLabel(\n (currentPage - 1) * resultsPerPage + 1,\n currentPage * resultsPerPage > numberOfResults\n ? numberOfResults\n : currentPage * resultsPerPage,\n numberOfResults,\n )}\n </Label>\n </div>\n )}\n <div className=\"eds-pagination__controls\">\n {!hidePrevButton && (\n <PaginationPage\n onClick={() => onPageChange(currentPage - 1)}\n aria-label={previousPageLabel}\n aria-describedby={paginationId}\n disabled={isFirstPostSelected}\n >\n <LeftArrowIcon />\n </PaginationPage>\n )}\n {listedEntries.map((entry, index) =>\n entry === '…' ? (\n <Ellipsis key={`ellipsis-${index}`} />\n ) : (\n <PaginationPage\n selected={entry === currentPage}\n onClick={() => onPageChange(entry)}\n aria-label={pageLabel(entry)}\n key={entry}\n >\n {entry}\n </PaginationPage>\n ),\n )}\n {!hideNextButton && (\n <PaginationPage\n onClick={() => onPageChange(currentPage + 1)}\n aria-label={nextPageLabel}\n aria-describedby={paginationId}\n disabled={isLastPostSelected}\n >\n <RightArrowIcon />\n </PaginationPage>\n )}\n {showInput && (\n <PaginationInput\n pageCount={pageCount}\n currentPage={currentPage}\n onPageChange={onPageChange}\n label={inputLabel}\n />\n )}\n </div>\n <VisuallyHidden id={paginationId}>\n {currentPageLabelForScreenreader} {currentPage}\n </VisuallyHidden>\n </div>\n );\n};\n\nconst Ellipsis: React.FC = () => (\n <span className=\"eds-pagination__ellipsis\" aria-hidden=\"true\">\n …\n </span>\n);\n","import React from 'react';\nimport classNames from 'classnames';\nimport { Label } from '@entur/typography';\n\nimport './Stepper.scss';\n\nexport type StepperProps = {\n /** Det nåværende steget. */\n activeIndex: number;\n /** Oppdater state ved klikk. */\n onStepClick: (index: number) => void;\n /** Liste av steg. */\n steps: string[];\n /** Ekstra klassenavn. */\n className?: string;\n /** Om stepperen skal være et interaktivt-navigasjonselement eller ikke\n * @default false\n */\n interactive?: boolean;\n /** Om stepper skal vise indeksering av hvilket trinn man er på\n * @default true\n */\n showStepperIndex?: boolean;\n as?: 'button' | React.ElementType;\n [key: string]: any;\n};\n\nexport const Stepper: React.FC<StepperProps> = ({\n className,\n onStepClick,\n steps,\n activeIndex,\n interactive = false,\n showStepperIndex = true,\n ...rest\n}) => {\n const Element = interactive ? 'button' : 'div';\n return (\n <div className={classNames('eds-stepper', className)} {...rest}>\n {steps.map((step, i) => {\n const isActive = i === activeIndex;\n const hasBeenActive = activeIndex > i;\n const props = interactive ? { onClick: () => onStepClick(i) } : {};\n return (\n <Element\n key={step}\n className={classNames('eds-stepper__item__container', {\n 'eds-stepper__item__container--non-interactive': !interactive,\n })}\n {...props}\n >\n <div\n className={classNames(\n 'eds-stepper__item__square',\n { 'eds-stepper__item__square--active': isActive },\n { 'eds-stepper__item__square--inactive': activeIndex < i },\n { 'eds-stepper__item__square--has-been': hasBeenActive },\n )}\n ></div>\n <Label\n className={classNames(\n 'eds-stepper__item__label',\n {\n 'eds-stepper__item__label--has-been': hasBeenActive,\n },\n {\n 'eds-stepper__item__label--active': isActive,\n },\n )}\n >\n {showStepperIndex && i + 1 + '.'} {step}\n </Label>\n </Element>\n );\n })}\n </div>\n );\n};\n","import { warnAboutMissingStyles } from '@entur/utils';\nimport './index.scss';\n\nwarnAboutMissingStyles(\n 'menu',\n 'expand',\n 'icons',\n 'typography',\n 'button',\n 'layout',\n);\n\nexport * from './BreadcrumbNavigation';\nexport * from './BreadcrumbItem';\nexport * from './SideNavigation';\nexport * from './SideNavigationItem';\nexport * from './SideNavigationGroup';\nexport * from './TopNavigationItem';\nexport * from './Pagination';\nexport * from './Stepper';\nexport * from './OverflowMenu';\nexport * from './CollapsibleSideNavigation';\n"],"names":["BreadcrumbNavigation","ariaLabel","children","React","className","Children","map","child","index","cloneElement","isCurrent","count","defaultElement","BreadcrumbItem","as","rest","Element","classNames","undefined","RightArrowIcon","inline","role","SideNavigation","size","__IS_ENTUR_MENU__","useControllableProp","prop","updater","defaultValue","useState","internalState","setInternalState","useEffect","CollapsibleSideNavigation","collapsible","collapsed","onCollapseToggle","collapsibleButtonPosition","collapsedMenu","setCollapsedMenu","SideNavigationContext","Provider","value","isCollapsed","onClick","style","top","MenuIcon","LeftArrowIcon","createContext","useSideNavigationContext","context","useContext","console","error","useShowDelayedLabel","showLabel","setShowLabel","hideDelay","showDelay","setTimeout","isActiveRecursively","props","active","toArray","some","defaultElementBaseItem","BaseSideNavigationItem","forwardRef","ref","subMenu","icon","DisabledSideNavigationItem","disabled","defaultElementItem","SideNavigationItem","forceExpandSubMenus","childrenArray","find","type","label","filter","isExpanded","SideNavigationGroup","defaultOpen","open","onToggle","title","isOpen","setOpen","ExpandArrow","BaseExpand","TopNavigationItem","PaginationPage","selected","ariaDescribedby","PaginationInput","currentPage","pageCount","onPageChange","String","input","setInput","handleSubmit","e","preventDefault","stopPropagation","pageNumber","Number","isNaN","handleChange","target","onSubmit","noValidate","max","onChange","OverflowMenu","button","position","Menu","IconButton","MenuButton","VerticalDotsIcon","useContrast","Contrast","MenuList","portal","OverflowMenuItem","onSelect","MenuItem","OverflowMenuLink","MenuLink","Pagination","inputLabel","pageLabel","previousPageLabel","currentPageLabelForScreenreader","showInput","numberOfResults","resultsPerPage","resultsPerPageOptions","onResultsPerPageChange","showNumberOfResultsLabel","nextPageLabel","showingResultsLabel","minPage","maxPage","hideNextButton","hidePrevButton","isContrast","listedEntries","setListedEntries","paginationId","useRandomId","isFirstPostSelected","isLastPostSelected","noEllipsis","onlyLeadingEllipsis","onlyTrailingEllipsis","Array","fill","_","i","Label","VisuallyHidden","UpArrowIcon","DownArrowIcon","option","key","entry","Ellipsis","id","Stepper","onStepClick","steps","activeIndex","interactive","showStepperIndex","step","isActive","hasBeenActive","warnAboutMissingStyles"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),a=require("classnames"),n=require("@entur/icons"),l=require("@entur/expand"),r=require("@reach/menu-button"),i=require("@entur/typography"),u=require("@entur/layout"),s=require("@entur/button");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var d=o(t),c=o(a);function f(){return f=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},f.apply(this,arguments)}function m(e,t){if(null==e)return{};var a,n,l={},r=Object.keys(e);for(n=0;n<r.length;n++)t.indexOf(a=r[n])>=0||(l[a]=e[a]);return l}var p=["className","isCurrent","as"],v=["className","children","size"],_=function(e){var t=e.className,a=e.children,n=e.size,l=void 0===n?"medium":n,r=m(e,v);return a&&d.default.Children.count(a)?d.default.createElement("ul",f({className:c.default("eds-side-navigation",{"eds-side-navigation--small":"small"===l},t)},r),a):null};function g(e){var a=e.prop,n=e.updater,l=void 0===n?function(){}:n,r=t.useState(e.defaultValue),i=r[0],u=r[1];return t.useEffect((function(){void 0!==a&&u(a)}),[a]),void 0===a?[i,u]:[a,l]}_.__IS_ENTUR_MENU__=!0;var b=["className","children","size","collapsed","onCollapseToggle","collapsibleButtonPosition"],N=d.default.createContext({isCollapsed:!1}),E=function(){var e=d.default.useContext(N);return e||console.error("Error reading SideNavigationContext. Please contact maintainer of @entur/menu"),e},h=function(e){var a=t.useState(!0),n=a[0],l=a[1];return t.useEffect((function(){return e&&setTimeout((function(){l(!1)}),50),e||setTimeout((function(){l(!0)}),200),function(){}}),[e]),[n]},C=["className","active","subMenu","icon","children","as"],w=["children"],x=["active","disabled","children","forceExpandSubMenus","as"];function P(e){return!!e.props&&(!!e.props.active||!!e.props.children&&d.default.Children.toArray(e.props.children).some((function(e){return P(e)})))}var S=d.default.forwardRef((function(e,t){var a=e.className,n=e.active,l=void 0!==n&&n,r=e.subMenu,i=e.icon,u=e.children,s=e.as,o=m(e,C),p=s||"a",v=E(),_=h(v.isCollapsed)[0];return d.default.createElement("li",{className:c.default("eds-side-navigation__item",a)},d.default.createElement(p,f({className:c.default("eds-side-navigation__click-target",{"eds-side-navigation__click-target--active":l}),ref:t},o),i,_&&u),r)})),y=d.default.forwardRef((function(e,t){var a=e.children,n=m(e,w);return d.default.createElement(S,f({as:"button",disabled:!0,"aria-disabled":!0,ref:t},n),a)})),M=d.default.forwardRef((function(e,t){var a=e.active,n=e.disabled,l=e.children,r=e.forceExpandSubMenus,i=e.as,u=m(e,x),s=i||"a",o=d.default.Children.toArray(l),c=o.find((function(e){return e&&e.type&&e.type.__IS_ENTUR_MENU__})),p=c?o.filter((function(e){return e!==c})):l;if(n)return d.default.createElement(y,f({ref:t},u),p);if(!c)return d.default.createElement(S,f({as:s,active:a,ref:t},u),p);var v=r||P({props:{children:l,active:a}});return d.default.createElement(S,f({active:a,subMenu:v&&c,"aria-expanded":v,as:s,ref:t},u),p)})),I=["defaultOpen","open","onToggle","className","children","title","icon"],L=["active","className","as"],k=function(e){var t=e.children,a=e.selected,n=e.disabled,l=e.onClick,r=e["aria-label"];return d.default.createElement("button",{className:c.default("eds-pagination__page",{"eds-pagination__page--selected":a},{"eds-pagination__page--disabled":n},e.className),disabled:a||n,type:"button",onClick:l,"aria-label":r,"aria-current":!!a&&"page"},t)},O=function(e){var t=e.currentPage,a=e.pageCount,n=e.label,l=void 0===n?"Gå til side":n,r=e.onPageChange,i=d.default.useState(String(t)),u=i[0],s=i[1];return d.default.useEffect((function(){s(String(t))}),[t]),d.default.createElement("form",{onSubmit:function(e){e.preventDefault(),e.stopPropagation();var n=Number(u);if(n!==t){if(Number.isNaN(n))return n=t,void s(String(t));n>a?(n=a,s(String(a))):n<1&&(n=1,s(String(1))),r(n)}},noValidate:!0,"aria-label":"form"},d.default.createElement("label",{className:"eds-pagination__input-wrapper"},d.default.createElement("span",{className:"eds-pagination__input-label"},l),d.default.createElement("input",{type:"number",max:a,className:"eds-pagination__input-field",value:u,onChange:function(e){s(e.target.value)}})))},R=["children","className","button","position"],B=["children","className","onSelect","disabled","as"],q=["children","as","className","onSelect","disabled"],A=d.default.forwardRef((function(e,t){var a=e.children,n=e.className,l=e.onSelect,i=e.disabled,u=e.as,s=void 0===u?"div":u,o=m(e,B);return d.default.createElement(r.MenuItem,f({className:c.default("eds-overflow-menu__item",{"eds-overflow-menu__item--disabled":i},n),onSelect:l,disabled:i,ref:t,as:s},o),a)})),T=d.default.forwardRef((function(e,t){var a=e.children,n=e.as,l=void 0===n?"a":n,i=e.className,u=e.onSelect,s=e.disabled,o=m(e,q);return d.default.createElement(r.MenuLink,f({as:l,className:c.default("eds-overflow-menu__item",{"eds-overflow-menu__item--disabled":s},i),onSelect:u,disabled:s,ref:t},o),a)})),V=["className","currentPage","inputLabel","onPageChange","pageCount","pageLabel","previousPageLabel","showInput","numberOfResults","resultsPerPage","resultsPerPageOptions","onResultsPerPageChange","showNumberOfResultsLabel","nextPageLabel","showingResultsLabel","hideNextButton","hidePrevButton"],j=function(){return d.default.createElement("span",{className:"eds-pagination__ellipsis","aria-hidden":"true"},"…")},G=["className","onStepClick","steps","activeIndex","interactive","showStepperIndex"];e.warnAboutMissingStyles("menu","expand","icons","typography","button","layout"),exports.BreadcrumbItem=function(e){var t=e.className,a=e.isCurrent,l=e.as,r=m(e,p),i=l||"a";return d.default.createElement(d.default.Fragment,null,d.default.createElement("li",{className:c.default("eds-breadcrumb__item",t)},d.default.createElement(i,f({"aria-current":a?"page":void 0,className:c.default("eds-breadcrumb__link",{"eds-breadcrumb__link--current":a})},r))),!a&&d.default.createElement(n.RightArrowIcon,{className:"eds-breadcrumb__separator",inline:!0,role:"presentation"}))},exports.BreadcrumbNavigation=function(e){var t=e["aria-label"],a=e.children;return d.default.createElement("nav",{"aria-label":void 0===t?"Brødsmulesti":t},d.default.createElement("ol",{className:"eds-breadcrumbs"},d.default.Children.map(a,(function(e,t){return d.default.cloneElement(e,{isCurrent:t+1===d.default.Children.count(a)})}))))},exports.CollapsibleSideNavigation=function(e){var t=e.className,a=e.children,l=e.size,r=e.collapsed,i=e.onCollapseToggle,u=e.collapsibleButtonPosition,s=void 0===u?"50%":u,o=m(e,b),p=g({prop:r,defaultValue:!1,updater:i}),v=p[0],_=p[1];return d.default.createElement(N.Provider,{value:{isCollapsed:v}},d.default.createElement("ul",f({className:c.default("eds-side-navigation",{"eds-side-navigation--small":"small"===l},{"eds-side-navigation--collapsed":v},t)},o),a,d.default.createElement("button",{className:"eds-side-navigation__collapse-button",onClick:function(){return _(!v)},style:{top:""+s}},d.default.createElement(v?n.MenuIcon:n.LeftArrowIcon,null))))},exports.OverflowMenu=function(e){var a=e.children,l=e.className,i=e.button,o=e.position,p=void 0===o?"right":o,v=m(e,R);return d.default.createElement("div",null,d.default.createElement(r.Menu,null,i?t.cloneElement(i,f({as:r.MenuButton,className:c.default(l,"eds-overflow-menu__menu-button")},v)):d.default.createElement(s.IconButton,f({as:r.MenuButton,className:c.default(l,"eds-overflow-menu__menu-button")},v),d.default.createElement(n.VerticalDotsIcon,null)),u.useContrast()?d.default.createElement(u.Contrast,{className:c.default("eds-overflow-menu__menu-list"),as:r.MenuList,portal:!1},[a]):d.default.createElement(r.MenuList,{className:c.default("eds-overflow-menu__menu-list",{"eds-overflow-menu__menu-list--left":"left"===p}),portal:!1},[a])))},exports.OverflowMenuItem=A,exports.OverflowMenuLink=T,exports.Pagination=function(e){var a=e.className,l=e.currentPage,s=e.inputLabel,o=e.onPageChange,p=e.pageCount,v=e.pageLabel,_=void 0===v?function(e){return"Gå til side "+e}:v,g=e.previousPageLabel,b=void 0===g?"Gå til forrige side":g,N=e.showInput,E=e.numberOfResults,h=e.resultsPerPage,C=e.resultsPerPageOptions,w=void 0===C?[10,25,50]:C,x=e.onResultsPerPageChange,P=e.showNumberOfResultsLabel,S=void 0===P?"Vis":P,y=e.nextPageLabel,M=void 0===y?"Gå til neste side":y,I=e.showingResultsLabel,L=void 0===I?function(e,t,a){return"Viser resultat "+e+" - "+t+" av "+a}:I,R=e.hideNextButton,B=void 0!==R&&R,q=e.hidePrevButton,T=void 0!==q&&q,G=m(e,V),U=u.useContrast(),z=t.useState([]),D=z[0],F=z[1],H=1===l,J=l===p,K=p<=7,Q=!K&&l<5,W=!K&&p-l<=3;return t.useEffect((function(){p<1||F(K?Array(p).fill(null).map((function(e,t){return t+1})):Q?[1,2,3,4,5,"…",p]:W?[1,"…",p-4,p-3,p-2,p-1,p]:[1,"…",l-1,l,l+1,"…",p])}),[K,Q,W,l,p]),p<1?null:d.default.createElement("div",f({className:c.default("eds-pagination",a)},G),h&&E&&d.default.createElement("div",{className:"eds-pagination__results"},x&&d.default.createElement(r.Menu,null,(function(e){var t=e.isOpen;return d.default.createElement(d.default.Fragment,null,d.default.createElement(i.Label,null,S),d.default.createElement(r.MenuButton,{className:c.default("eds-pagination-menu__menu-button",{"eds-pagination-menu__menu-button--open":t})},h,d.default.createElement(t?n.UpArrowIcon:n.DownArrowIcon,null)),d.default.createElement(r.MenuList,{className:c.default("eds-pagination-menu__menu-list","eds-overflow-menu__menu-list",{"eds-contrast":U})},w.map((function(e,t){return d.default.createElement(A,{key:t,onSelect:function(){return x(e)}},e)}))))})),d.default.createElement(i.Label,{className:"eds-pagination__results-label"},L((l-1)*h+1,l*h>E?E:l*h,E))),d.default.createElement("div",{className:"eds-pagination__controls"},!T&&d.default.createElement(k,{onClick:function(){return o(l-1)},"aria-label":b,disabled:H},d.default.createElement(n.LeftArrowIcon,null)),D.map((function(e,t){return"…"===e?d.default.createElement(j,{key:"ellipsis-"+t}):d.default.createElement(k,{selected:e===l,onClick:function(){return o(e)},"aria-label":_(e),key:e},e)})),!B&&d.default.createElement(k,{onClick:function(){return o(l+1)},"aria-label":M,disabled:J},d.default.createElement(n.RightArrowIcon,null)),N&&d.default.createElement(O,{pageCount:p,currentPage:l,onPageChange:o,label:s})))},exports.SideNavigation=_,exports.SideNavigationGroup=function(e){var t=e.defaultOpen,a=void 0!==t&&t,n=e.open,r=e.onToggle,i=e.className,u=e.children,s=e.title,o=e.icon,p=m(e,I),v=g({prop:n,updater:r,defaultValue:a}),_=v[0],b=v[1],N=E(),C=h(N.isCollapsed)[0];return d.default.createElement("div",f({className:c.default("eds-side-navigation-group",i)},p),d.default.createElement("button",{onClick:function(){return b(!_)},type:"button",className:"eds-side-navigation-group__trigger"},d.default.createElement("span",null,o&&d.default.createElement("span",{className:"eds-side-navigation-group__trigger-icon"},o),C&&s),C&&d.default.createElement(l.ExpandArrow,{open:_,className:"eds-side-navigation-group__expand-icon"})),d.default.createElement(l.BaseExpand,{open:_},u))},exports.SideNavigationItem=M,exports.Stepper=function(e){var t=e.className,a=e.onStepClick,n=e.steps,l=e.activeIndex,r=e.interactive,u=void 0!==r&&r,s=e.showStepperIndex,o=void 0===s||s,p=m(e,G),v=u?"button":"div";return d.default.createElement("div",f({className:c.default("eds-stepper",t)},p),n.map((function(e,t){var n=t===l,r=l>t,s=u?{onClick:function(){return a(t)}}:{};return d.default.createElement(v,f({key:e,className:c.default("eds-stepper__item__container",{"eds-stepper__item__container--non-interactive":!u})},s),d.default.createElement("div",{className:c.default("eds-stepper__item__square",{"eds-stepper__item__square--active":n},{"eds-stepper__item__square--inactive":l<t},{"eds-stepper__item__square--has-been":r})}),d.default.createElement(i.Label,{className:c.default("eds-stepper__item__label",{"eds-stepper__item__label--has-been":r},{"eds-stepper__item__label--active":n})},o&&t+1+"."," ",e))})))},exports.TopNavigationItem=function(e){var t=e.active,a=void 0!==t&&t,n=e.className,l=e.as,r=m(e,L);return d.default.createElement(l||"a",f({className:c.default(["eds-top-navigation-item",n,{"eds-top-navigation-item--active":a}])},r))},exports.useSideNavigationContext=E;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@entur/utils"),t=require("react"),a=require("classnames"),n=require("@entur/icons"),l=require("@entur/expand"),r=require("@reach/menu-button"),i=require("@entur/a11y"),u=require("@entur/layout"),s=require("@entur/typography"),o=require("@entur/button");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var c=d(t),f=d(a);function m(){return m=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},m.apply(this,arguments)}function p(e,t){if(null==e)return{};var a,n,l={},r=Object.keys(e);for(n=0;n<r.length;n++)t.indexOf(a=r[n])>=0||(l[a]=e[a]);return l}var v=["className","isCurrent","as"],_=["className","children","size"],g=function(e){var t=e.className,a=e.children,n=e.size,l=void 0===n?"medium":n,r=p(e,_);return a&&c.default.Children.count(a)?c.default.createElement("ul",m({className:f.default("eds-side-navigation",{"eds-side-navigation--small":"small"===l},t)},r),a):null};function b(e){var a=e.prop,n=e.updater,l=void 0===n?function(){}:n,r=t.useState(e.defaultValue),i=r[0],u=r[1];return t.useEffect((function(){void 0!==a&&u(a)}),[a]),void 0===a?[i,u]:[a,l]}g.__IS_ENTUR_MENU__=!0;var N=["className","children","size","collapsed","onCollapseToggle","collapsibleButtonPosition"],E=c.default.createContext({isCollapsed:!1}),h=function(){var e=c.default.useContext(E);return e||console.error("Error reading SideNavigationContext. Please contact maintainer of @entur/menu"),e},C=function(e){var a=t.useState(!0),n=a[0],l=a[1];return t.useEffect((function(){return e&&setTimeout((function(){l(!1)}),50),e||setTimeout((function(){l(!0)}),200),function(){}}),[e]),[n]},w=["className","active","subMenu","icon","children","as"],x=["children"],P=["active","disabled","children","forceExpandSubMenus","as"];function S(e){return!!e.props&&(!!e.props.active||!!e.props.children&&c.default.Children.toArray(e.props.children).some((function(e){return S(e)})))}var y=c.default.forwardRef((function(e,t){var a=e.className,n=e.active,l=void 0!==n&&n,r=e.subMenu,i=e.icon,u=e.children,s=e.as,o=p(e,w),d=s||"a",v=h(),_=C(v.isCollapsed)[0];return c.default.createElement("li",{className:f.default("eds-side-navigation__item",a)},c.default.createElement(d,m({className:f.default("eds-side-navigation__click-target",{"eds-side-navigation__click-target--active":l}),ref:t},o),i,_&&u),r)})),L=c.default.forwardRef((function(e,t){var a=e.children,n=p(e,x);return c.default.createElement(y,m({as:"button",disabled:!0,"aria-disabled":!0,ref:t},n),a)})),I=c.default.forwardRef((function(e,t){var a=e.active,n=e.disabled,l=e.children,r=e.forceExpandSubMenus,i=e.as,u=p(e,P),s=i||"a",o=c.default.Children.toArray(l),d=o.find((function(e){return e&&e.type&&e.type.__IS_ENTUR_MENU__})),f=d?o.filter((function(e){return e!==d})):l;if(n)return c.default.createElement(L,m({ref:t},u),f);if(!d)return c.default.createElement(y,m({as:s,active:a,ref:t},u),f);var v=r||S({props:{children:l,active:a}});return c.default.createElement(y,m({active:a,subMenu:v&&d,"aria-expanded":v,as:s,ref:t},u),f)})),M=["defaultOpen","open","onToggle","className","children","title","icon"],k=["active","className","as"],O=function(e){var t=e.children,a=e.selected,n=e.disabled,l=e.onClick,r=e["aria-label"],i=e["aria-describedby"];return c.default.createElement("button",{className:f.default("eds-pagination__page",{"eds-pagination__page--selected":a},{"eds-pagination__page--disabled":n},e.className),disabled:a||n,type:"button",onClick:l,"aria-label":r,"aria-describedby":i,"aria-current":!!a&&"page"},t)},R=function(e){var t=e.currentPage,a=e.pageCount,n=e.label,l=void 0===n?"Gå til side":n,r=e.onPageChange,i=c.default.useState(String(t)),u=i[0],s=i[1];return c.default.useEffect((function(){s(String(t))}),[t]),c.default.createElement("form",{onSubmit:function(e){e.preventDefault(),e.stopPropagation();var n=Number(u);if(n!==t){if(Number.isNaN(n))return n=t,void s(String(t));n>a?(n=a,s(String(a))):n<1&&(n=1,s(String(1))),r(n)}},noValidate:!0,"aria-label":"form"},c.default.createElement("label",{className:"eds-pagination__input-wrapper"},c.default.createElement("span",{className:"eds-pagination__input-label"},l),c.default.createElement("input",{type:"number",max:a,className:"eds-pagination__input-field",value:u,onChange:function(e){s(e.target.value)}})))},q=["children","className","button","position"],B=["children","className","onSelect","disabled","as"],A=["children","as","className","onSelect","disabled"],T=c.default.forwardRef((function(e,t){var a=e.children,n=e.className,l=e.onSelect,i=e.disabled,u=e.as,s=void 0===u?"div":u,o=p(e,B);return c.default.createElement(r.MenuItem,m({className:f.default("eds-overflow-menu__item",{"eds-overflow-menu__item--disabled":i},n),onSelect:l,disabled:i,ref:t,as:s},o),a)})),V=c.default.forwardRef((function(e,t){var a=e.children,n=e.as,l=void 0===n?"a":n,i=e.className,u=e.onSelect,s=e.disabled,o=p(e,A);return c.default.createElement(r.MenuLink,m({as:l,className:f.default("eds-overflow-menu__item",{"eds-overflow-menu__item--disabled":s},i),onSelect:u,disabled:s,ref:t},o),a)})),j=["className","currentPage","inputLabel","onPageChange","pageCount","pageLabel","previousPageLabel","currentPageLabelForScreenreader","showInput","numberOfResults","resultsPerPage","resultsPerPageOptions","onResultsPerPageChange","showNumberOfResultsLabel","nextPageLabel","showingResultsLabel","hideNextButton","hidePrevButton"],G=function(){return c.default.createElement("span",{className:"eds-pagination__ellipsis","aria-hidden":"true"},"…")},U=["className","onStepClick","steps","activeIndex","interactive","showStepperIndex"];e.warnAboutMissingStyles("menu","expand","icons","typography","button","layout"),exports.BreadcrumbItem=function(e){var t=e.className,a=e.isCurrent,l=e.as,r=p(e,v),i=l||"a";return c.default.createElement(c.default.Fragment,null,c.default.createElement("li",{className:f.default("eds-breadcrumb__item",t)},c.default.createElement(i,m({"aria-current":a?"page":void 0,className:f.default("eds-breadcrumb__link",{"eds-breadcrumb__link--current":a})},r))),!a&&c.default.createElement(n.RightArrowIcon,{className:"eds-breadcrumb__separator",inline:!0,role:"presentation"}))},exports.BreadcrumbNavigation=function(e){var t=e["aria-label"],a=e.children;return c.default.createElement("nav",{"aria-label":void 0===t?"Brødsmulesti":t},c.default.createElement("ol",{className:"eds-breadcrumbs"},c.default.Children.map(a,(function(e,t){return c.default.cloneElement(e,{isCurrent:t+1===c.default.Children.count(a)})}))))},exports.CollapsibleSideNavigation=function(e){var t=e.className,a=e.children,l=e.size,r=e.collapsed,i=e.onCollapseToggle,u=e.collapsibleButtonPosition,s=void 0===u?"50%":u,o=p(e,N),d=b({prop:r,defaultValue:!1,updater:i}),v=d[0],_=d[1];return c.default.createElement(E.Provider,{value:{isCollapsed:v}},c.default.createElement("ul",m({className:f.default("eds-side-navigation",{"eds-side-navigation--small":"small"===l},{"eds-side-navigation--collapsed":v},t)},o),a,c.default.createElement("button",{className:"eds-side-navigation__collapse-button",onClick:function(){return _(!v)},style:{top:""+s}},c.default.createElement(v?n.MenuIcon:n.LeftArrowIcon,null))))},exports.OverflowMenu=function(e){var a=e.children,l=e.className,i=e.button,s=e.position,d=void 0===s?"right":s,v=p(e,q);return c.default.createElement("div",null,c.default.createElement(r.Menu,null,i?t.cloneElement(i,m({as:r.MenuButton,className:f.default(l,"eds-overflow-menu__menu-button")},v)):c.default.createElement(o.IconButton,m({as:r.MenuButton,className:f.default(l,"eds-overflow-menu__menu-button")},v),c.default.createElement(n.VerticalDotsIcon,null)),u.useContrast()?c.default.createElement(u.Contrast,{className:f.default("eds-overflow-menu__menu-list"),as:r.MenuList,portal:!1},[a]):c.default.createElement(r.MenuList,{className:f.default("eds-overflow-menu__menu-list",{"eds-overflow-menu__menu-list--left":"left"===d}),portal:!1},[a])))},exports.OverflowMenuItem=T,exports.OverflowMenuLink=V,exports.Pagination=function(a){var l=a.className,o=a.currentPage,d=a.inputLabel,v=a.onPageChange,_=a.pageCount,g=a.pageLabel,b=void 0===g?function(e){return"Gå til side "+e}:g,N=a.previousPageLabel,E=void 0===N?"Gå til forrige side":N,h=a.currentPageLabelForScreenreader,C=void 0===h?"Nåværende side:":h,w=a.showInput,x=a.numberOfResults,P=a.resultsPerPage,S=a.resultsPerPageOptions,y=void 0===S?[10,25,50]:S,L=a.onResultsPerPageChange,I=a.showNumberOfResultsLabel,M=void 0===I?"Vis":I,k=a.nextPageLabel,q=void 0===k?"Gå til neste side":k,B=a.showingResultsLabel,A=void 0===B?function(e,t,a){return"Viser resultat "+e+" - "+t+" av "+a}:B,V=a.hideNextButton,U=void 0!==V&&V,z=a.hidePrevButton,F=void 0!==z&&z,D=p(a,j),H=u.useContrast(),J=t.useState([]),K=J[0],Q=J[1],W=e.useRandomId("eds-pagination"),X=1===o,Y=o===_,Z=_<=7,$=!Z&&o<5,ee=!Z&&_-o<=3;return t.useEffect((function(){_<1||Q(Z?Array(_).fill(null).map((function(e,t){return t+1})):$?[1,2,3,4,5,"…",_]:ee?[1,"…",_-4,_-3,_-2,_-1,_]:[1,"…",o-1,o,o+1,"…",_])}),[Z,$,ee,o,_]),_<1?null:c.default.createElement("div",m({className:f.default("eds-pagination",l)},D),P&&x&&c.default.createElement("div",{className:"eds-pagination__results"},L&&c.default.createElement(r.Menu,null,(function(e){var t=e.isOpen;return c.default.createElement(c.default.Fragment,null,c.default.createElement(s.Label,null,M),c.default.createElement(r.MenuButton,{className:f.default("eds-pagination-menu__menu-button",{"eds-pagination-menu__menu-button--open":t})},c.default.createElement(i.VisuallyHidden,null,M," "),P,c.default.createElement(t?n.UpArrowIcon:n.DownArrowIcon,null)),c.default.createElement(r.MenuList,{className:f.default("eds-pagination-menu__menu-list","eds-overflow-menu__menu-list",{"eds-contrast":H})},y.map((function(e,t){return c.default.createElement(T,{key:t,onSelect:function(){return L(e)}},e)}))))})),c.default.createElement(s.Label,{className:"eds-pagination__results-label"},A((o-1)*P+1,o*P>x?x:o*P,x))),c.default.createElement("div",{className:"eds-pagination__controls"},!F&&c.default.createElement(O,{onClick:function(){return v(o-1)},"aria-label":E,"aria-describedby":W,disabled:X},c.default.createElement(n.LeftArrowIcon,null)),K.map((function(e,t){return"…"===e?c.default.createElement(G,{key:"ellipsis-"+t}):c.default.createElement(O,{selected:e===o,onClick:function(){return v(e)},"aria-label":b(e),key:e},e)})),!U&&c.default.createElement(O,{onClick:function(){return v(o+1)},"aria-label":q,"aria-describedby":W,disabled:Y},c.default.createElement(n.RightArrowIcon,null)),w&&c.default.createElement(R,{pageCount:_,currentPage:o,onPageChange:v,label:d})),c.default.createElement(i.VisuallyHidden,{id:W},C," ",o))},exports.SideNavigation=g,exports.SideNavigationGroup=function(e){var t=e.defaultOpen,a=void 0!==t&&t,n=e.open,r=e.onToggle,i=e.className,u=e.children,s=e.title,o=e.icon,d=p(e,M),v=b({prop:n,updater:r,defaultValue:a}),_=v[0],g=v[1],N=h(),E=C(N.isCollapsed)[0];return c.default.createElement("div",m({className:f.default("eds-side-navigation-group",i)},d),c.default.createElement("button",{onClick:function(){return g(!_)},type:"button",className:"eds-side-navigation-group__trigger"},c.default.createElement("span",null,o&&c.default.createElement("span",{className:"eds-side-navigation-group__trigger-icon"},o),E&&s),E&&c.default.createElement(l.ExpandArrow,{open:_,className:"eds-side-navigation-group__expand-icon"})),c.default.createElement(l.BaseExpand,{open:_},u))},exports.SideNavigationItem=I,exports.Stepper=function(e){var t=e.className,a=e.onStepClick,n=e.steps,l=e.activeIndex,r=e.interactive,i=void 0!==r&&r,u=e.showStepperIndex,o=void 0===u||u,d=p(e,U),v=i?"button":"div";return c.default.createElement("div",m({className:f.default("eds-stepper",t)},d),n.map((function(e,t){var n=t===l,r=l>t,u=i?{onClick:function(){return a(t)}}:{};return c.default.createElement(v,m({key:e,className:f.default("eds-stepper__item__container",{"eds-stepper__item__container--non-interactive":!i})},u),c.default.createElement("div",{className:f.default("eds-stepper__item__square",{"eds-stepper__item__square--active":n},{"eds-stepper__item__square--inactive":l<t},{"eds-stepper__item__square--has-been":r})}),c.default.createElement(s.Label,{className:f.default("eds-stepper__item__label",{"eds-stepper__item__label--has-been":r},{"eds-stepper__item__label--active":n})},o&&t+1+"."," ",e))})))},exports.TopNavigationItem=function(e){var t=e.active,a=void 0!==t&&t,n=e.className,l=e.as,r=p(e,k);return c.default.createElement(l||"a",m({className:f.default(["eds-top-navigation-item",n,{"eds-top-navigation-item--active":a}])},r))},exports.useSideNavigationContext=h;
2
2
  //# sourceMappingURL=menu.cjs.production.min.js.map