@entur-partner/common 10.0.0 → 10.0.2-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ActionBar.d.ts +9 -0
- package/dist/AuditInfo.d.ts +14 -0
- package/dist/Box.d.ts +57 -0
- package/dist/Breadcrumbs.d.ts +8 -0
- package/dist/ConfirmModal.d.ts +28 -0
- package/dist/Content.d.ts +10 -0
- package/dist/EnturPartnerLogo.d.ts +19 -0
- package/dist/ErrorBoundary.d.ts +22 -0
- package/dist/ExpandableMultiLanguageInput.d.ts +17 -0
- package/dist/FeatureToggle.d.ts +25 -0
- package/dist/FormatCurrencyAmount.d.ts +8 -0
- package/dist/FormatDateTime.d.ts +7 -0
- package/dist/LanguageSelect.d.ts +16 -0
- package/dist/Link.d.ts +6 -0
- package/dist/LinkButton.d.ts +8 -0
- package/dist/Menu.d.ts +10 -0
- package/dist/MultiLanguageInput.d.ts +28 -0
- package/dist/OrganisationDropdown.d.ts +14 -0
- package/dist/PageTitle.d.ts +12 -0
- package/dist/Pager.d.ts +8 -0
- package/dist/PermissionCheck.d.ts +24 -0
- package/dist/ProjectProvider.d.ts +15 -0
- package/dist/RouteLeavingGuard.d.ts +14 -0
- package/dist/Stack.d.ts +9 -0
- package/dist/StatusLabel.d.ts +11 -0
- package/dist/Text.d.ts +21 -0
- package/dist/Unbutton.d.ts +7 -0
- package/dist/UserMenu/components/CookieSettingsMenuItem.d.ts +9 -0
- package/dist/UserMenu/components/CustomOverflowMenu.d.ts +11 -0
- package/dist/UserMenu/components/CustomOverflowMenuItem.d.ts +3 -0
- package/dist/UserMenu/components/LanguageSwitchMenuItem.d.ts +10 -0
- package/dist/UserMenu/components/LogOutMenuItem.d.ts +9 -0
- package/dist/UserMenu/components/UserMenuItem.d.ts +9 -0
- package/dist/UserMenu/components/VersionMenuItem.d.ts +5 -0
- package/dist/UserMenu/index.d.ts +26 -0
- package/dist/UserMenu/useOutsideClick.d.ts +2 -0
- package/dist/common.cjs.development.js +1215 -0
- package/dist/common.cjs.development.js.map +1 -0
- package/dist/common.cjs.production.min.js +2 -0
- package/dist/common.cjs.production.min.js.map +1 -0
- package/dist/common.esm.js +1172 -0
- package/dist/common.esm.js.map +1 -0
- package/dist/environment.d.ts +13 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.js +8 -0
- package/dist/styles.css +2774 -0
- package/dist/useEventListener.d.ts +3 -0
- package/dist/useNavigateParams.d.ts +9 -0
- package/package.json +5 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.cjs.development.js","sources":["../src/ActionBar.tsx","../src/FormatDateTime.tsx","../src/Box.tsx","../src/Stack.tsx","../src/AuditInfo.tsx","../src/ProjectProvider.tsx","../src/Breadcrumbs.tsx","../src/ConfirmModal.tsx","../src/Content.tsx","../src/environment.ts","../src/EnturPartnerLogo.tsx","../src/ErrorBoundary.tsx","../src/ExpandableMultiLanguageInput.tsx","../src/FeatureToggle.tsx","../src/FormatCurrencyAmount.tsx","../src/LanguageSelect.tsx","../src/Link.tsx","../src/LinkButton.tsx","../src/Menu.tsx","../src/MultiLanguageInput.tsx","../src/OrganisationDropdown.tsx","../src/Pager.tsx","../src/PageTitle.tsx","../src/PermissionCheck.tsx","../src/RouteLeavingGuard.tsx","../src/StatusLabel.tsx","../src/Text.tsx","../src/Unbutton.tsx","../src/UserMenu/components/CustomOverflowMenuItem.tsx","../src/UserMenu/components/CookieSettingsMenuItem.tsx","../src/UserMenu/useOutsideClick.ts","../src/UserMenu/components/CustomOverflowMenu.tsx","../src/UserMenu/components/LanguageSwitchMenuItem.tsx","../src/UserMenu/components/LogOutMenuItem.tsx","../src/UserMenu/components/UserMenuItem.tsx","../src/UserMenu/components/VersionMenuItem.tsx","../src/UserMenu/index.tsx","../src/useEventListener.ts","../src/useNavigateParams.ts"],"sourcesContent":["import \"./ActionBar.scss\";\nimport React, { type ReactNode } from \"react\";\n\nexport interface ActionBarProps {\n\tchildren: ReactNode;\n}\n\nconst ActionBarLeft = ({ children }: ActionBarProps) => {\n\treturn <div className=\"eps-action-bar-left\">{children}</div>;\n};\n\nconst ActionBarRight = ({ children }: ActionBarProps) => {\n\treturn <div className=\"eps-action-bar-right\">{children}</div>;\n};\n\nconst ActionBar = ({ children }: ActionBarProps) => {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"eps-action-bar-padding\" />\n\t\t\t<div className=\"eps-action-bar\">{children}</div>\n\t\t</>\n\t);\n};\n\nexport { ActionBar, ActionBarLeft, ActionBarRight };\n","import { localeDate, localeDateTime } from \"@entur-partner/util\";\nimport React, { type FC } from \"react\";\n\nexport interface FormatDateTimeProps {\n\tdate: string | Date;\n\tlocale: string;\n\t// biome-ignore lint/suspicious/noExplicitAny: Ignore for now.\n\t[key: string]: any;\n}\n\nexport const FormatDateTime: FC<FormatDateTimeProps> = ({\n\tdate,\n\tlocale,\n\tas: Component = \"main\",\n\thideTime,\n\t...rest\n}) => {\n\treturn (\n\t\t<Component {...rest}>\n\t\t\t{hideTime ? localeDate(date, locale) : localeDateTime(date, locale)}\n\t\t</Component>\n\t);\n};\n","import \"./Box.scss\";\n\nimport cx from \"classnames\";\nimport type { ReactNode } from \"react\";\nimport React from \"react\";\n\ntype StyleSpacing =\n\t| \"none\"\n\t| \"extraSmall2\"\n\t| \"extraSmall\"\n\t| \"small\"\n\t| \"medium\"\n\t| \"large\"\n\t| \"extraLarge\"\n\t| \"extraLarge2\"\n\t| \"extraLarge3\"\n\t| \"extraLarge4\"\n\t| \"extraLarge5\"\n\t| \"extraLarge6\"\n\t| \"extraLarge7\"\n\t| \"extraLarge8\"\n\t| \"extraLarge9\";\n\ntype StyleMargin = StyleSpacing | \"auto\";\n\ntype StyleDisplay = \"block\" | \"flex\" | \"inline\" | \"inline-block\";\ntype StyleJustifyContent = \"center\" | \"space-between\" | \"start\" | \"end\";\ntype StyleAlignItems = \"center\" | \"start\" | \"end\" | \"stretch\" | \"baseline\";\n\ntype StyleMaxWidth =\n\t| \"none\"\n\t| \"extraSmall\"\n\t| \"small\"\n\t| \"medium\"\n\t| \"large\"\n\t| \"extraLarge\"\n\t| \"extraLarge2\"\n\t| \"extraLarge3\"\n\t| \"extraLarge4\"\n\t| \"extraLarge5\"\n\t| \"extraLarge6\"\n\t| \"full\";\ntype StyleWidth = \"auto\" | \"full\";\n\nexport type StyleBackground = \"blue\" | \"lavender\" | \"white\" | \"blue70\";\nexport type StyleColor = \"blue\" | \"lavender\" | \"white\" | \"black\";\n\ntype StyleFlexDirection = \"row\" | \"column\" | \"row-reverse\" | \"column-reverse\";\ntype StyleFlexWrap = \"wrap\" | \"nowrap\" | \"wrap-reverse\";\n\nexport type ResponsiveStyleSpacing =\n\t| StyleSpacing\n\t| [StyleSpacing?, StyleSpacing?, StyleSpacing?];\nexport type ResponsiveStyleMargin =\n\t| StyleMargin\n\t| [StyleMargin?, StyleMargin?, StyleMargin?];\n\nexport type ResponsiveStyleDisplay =\n\t| StyleDisplay\n\t| [StyleDisplay?, StyleDisplay?, StyleDisplay?];\nexport type ResponsiveStyleJustifyContent =\n\t| StyleJustifyContent\n\t| [StyleJustifyContent?, StyleJustifyContent?, StyleJustifyContent?];\nexport type ResponsiveStyleAlignItems =\n\t| StyleAlignItems\n\t| [StyleAlignItems?, StyleAlignItems?, StyleAlignItems?];\n\nexport type ResponsiveStyleMaxWidth =\n\t| StyleMaxWidth\n\t| [StyleMaxWidth?, StyleMaxWidth?, StyleMaxWidth?];\nexport type ResponsiveStyleWidth =\n\t| StyleWidth\n\t| [StyleWidth?, StyleWidth?, StyleWidth?];\n\nexport type ResponsiveStyleFlexDirection =\n\t| StyleFlexDirection\n\t| [StyleFlexDirection?, StyleFlexDirection?, StyleFlexDirection?];\nexport type ResponsiveStyleFlexWrap =\n\t| StyleFlexWrap\n\t| [StyleFlexWrap?, StyleFlexWrap?, StyleFlexWrap?];\n\nexport interface BoxProps {\n\tclassName?: string;\n\tas?: React.ElementType;\n\t[key: string]: object | string | number | boolean | undefined | ReactNode;\n\tchildren: ReactNode;\n\n\tcontrast?: boolean;\n\n\tpaddingTop?: ResponsiveStyleSpacing;\n\tpaddingRight?: ResponsiveStyleSpacing;\n\tpaddingBottom?: ResponsiveStyleSpacing;\n\tpaddingLeft?: ResponsiveStyleSpacing;\n\tpaddingX?: ResponsiveStyleSpacing;\n\tpaddingY?: ResponsiveStyleSpacing;\n\tpadding?: ResponsiveStyleSpacing;\n\n\tmarginTop?: ResponsiveStyleMargin;\n\tmarginRight?: ResponsiveStyleMargin;\n\tmarginBottom?: ResponsiveStyleMargin;\n\tmarginLeft?: ResponsiveStyleMargin;\n\tmarginX?: ResponsiveStyleMargin;\n\tmarginY?: ResponsiveStyleMargin;\n\tmargin?: ResponsiveStyleMargin;\n\n\tdisplay?: ResponsiveStyleDisplay;\n\tjustifyContent?: ResponsiveStyleJustifyContent;\n\talignItems?: ResponsiveStyleAlignItems;\n\n\tmaxWidth?: ResponsiveStyleMaxWidth;\n\twidth?: ResponsiveStyleWidth;\n\tbackground?: StyleBackground;\n\tcolor?: StyleColor;\n\n\tflexDirection?: ResponsiveStyleFlexDirection;\n\tflexWrap?: ResponsiveStyleFlexWrap;\n}\n\ntype ResponsiveProp = string | [string?, string?, string?];\n\nexport function responsiveProp(prefix: string, prop: ResponsiveProp): string[] {\n\tif (Array.isArray(prop)) {\n\t\tconst classes = [];\n\t\tprop[0] && classes.push(prefix + prop[0]);\n\t\tprop[1] && classes.push(`${prefix}${prop[1]}-lg`);\n\t\tprop[2] && classes.push(`${prefix}${prop[2]}-xl`);\n\t\treturn classes;\n\t}\n\treturn [prefix + prop];\n}\n\nexport const Box = ({\n\tas: Component = \"div\",\n\tchildren,\n\tcontrast,\n\tpaddingTop,\n\tpaddingRight,\n\tpaddingBottom,\n\tpaddingLeft,\n\tpaddingX,\n\tpaddingY,\n\tpadding,\n\tmarginTop,\n\tmarginRight,\n\tmarginBottom,\n\tmarginLeft,\n\tmarginX,\n\tmarginY,\n\tmargin,\n\tdisplay,\n\tjustifyContent,\n\talignItems,\n\tmaxWidth,\n\twidth,\n\tbackground,\n\tcolor,\n\tflexDirection,\n\tflexWrap,\n\tclassName,\n\t...rest\n}: BoxProps) => {\n\tconst classes = [];\n\tconst resolvedPaddingTop = paddingTop || paddingY || padding;\n\tconst resolvedPaddingBottom = paddingBottom || paddingY || padding;\n\tconst resolvedPaddingLeft = paddingLeft || paddingX || padding;\n\tconst resolvedPaddingRight = paddingRight || paddingX || padding;\n\n\tconst resolvedMarginTop = marginTop || marginY || margin;\n\tconst resolvedMarginBottom = marginBottom || marginY || margin;\n\tconst resolvedMarginLeft = marginLeft || marginX || margin;\n\tconst resolvedMarginRight = marginRight || marginX || margin;\n\n\tcontrast && classes.push(\"eds-contrast\");\n\tresolvedPaddingTop &&\n\t\tclasses.push(...responsiveProp(\"eps-pt-\", resolvedPaddingTop));\n\tresolvedPaddingBottom &&\n\t\tclasses.push(...responsiveProp(\"eps-pb-\", resolvedPaddingBottom));\n\tresolvedPaddingLeft &&\n\t\tclasses.push(...responsiveProp(\"eps-pl-\", resolvedPaddingLeft));\n\tresolvedPaddingRight &&\n\t\tclasses.push(...responsiveProp(\"eps-pr-\", resolvedPaddingRight));\n\tresolvedMarginTop &&\n\t\tclasses.push(...responsiveProp(\"eps-mt-\", resolvedMarginTop));\n\tresolvedMarginBottom &&\n\t\tclasses.push(...responsiveProp(\"eps-mb-\", resolvedMarginBottom));\n\tresolvedMarginLeft &&\n\t\tclasses.push(...responsiveProp(\"eps-ml-\", resolvedMarginLeft));\n\tresolvedMarginRight &&\n\t\tclasses.push(...responsiveProp(\"eps-mr-\", resolvedMarginRight));\n\n\tdisplay && classes.push(...responsiveProp(\"eps-\", display));\n\tjustifyContent &&\n\t\tclasses.push(...responsiveProp(\"eps-justify-\", justifyContent));\n\tif (alignItems) {\n\t\tclasses.push(...responsiveProp(\"eps-items-\", alignItems));\n\t}\n\n\tmaxWidth && classes.push(...responsiveProp(\"eps-max-w-\", maxWidth));\n\twidth && classes.push(...responsiveProp(\"eps-w-\", width));\n\n\tcolor && classes.push(`eps-color-${color}`);\n\tbackground && classes.push(`eps-bg-${background}`);\n\n\tflexDirection && classes.push(...responsiveProp(\"eps-flex-\", flexDirection));\n\tflexWrap && classes.push(...responsiveProp(\"eps-flex-wrap-\", flexWrap));\n\n\tconst classList = cx(classes, className);\n\n\treturn (\n\t\t<Component className={classList} {...rest}>\n\t\t\t{children}\n\t\t</Component>\n\t);\n};\n","/** biome-ignore-all lint/suspicious/noArrayIndexKey: Ignore for now. Should be tested properly before doing changes */\nimport React, { Children, type ReactNode } from \"react\";\n\nimport { Box, type ResponsiveStyleSpacing } from \"./Box\";\n\nexport interface StackProps {\n\tclassName?: string;\n\tchildren: ReactNode;\n\tspace: ResponsiveStyleSpacing;\n}\n\nexport const Stack = ({ children, space, className }: StackProps) => {\n\tconst stackItems = Children.toArray(children);\n\tif (stackItems.length <= 1) {\n\t\treturn <>{stackItems}</>;\n\t}\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t{stackItems.map((child, index) =>\n\t\t\t\tindex === stackItems.length - 1 ? (\n\t\t\t\t\t<div key={index}>{child}</div>\n\t\t\t\t) : (\n\t\t\t\t\t<Box paddingBottom={space} key={index}>\n\t\t\t\t\t\t{child}\n\t\t\t\t\t</Box>\n\t\t\t\t),\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import \"./AuditInfo.scss\";\n\nimport { isDate, isDateString } from \"@entur-partner/util\";\nimport cx from \"classnames\";\nimport React, { type FC } from \"react\";\n\nimport { FormatDateTime } from \"./FormatDateTime\";\nimport { Stack } from \"./Stack\";\n\ninterface Item {\n\tlabel: string;\n\tvalue: Date | string;\n}\n\nexport interface AuditInfoProps {\n\titems: Item[];\n\tlocale: string;\n\tclassName?: string;\n\t[key: string]: object | string | number | boolean | undefined;\n}\n\nexport const AuditInfo: FC<AuditInfoProps> = ({\n\titems,\n\tlocale,\n\tclassName,\n\t...rest\n}) => {\n\tconst classNames = cx(\"ep-audit-info\", className);\n\treturn (\n\t\t<div className={classNames} {...rest}>\n\t\t\t{items.map(({ label, value }) => (\n\t\t\t\t<Stack space=\"small\" key={value.toString()}>\n\t\t\t\t\t<div className=\"ep-audit-info-label\">{label}</div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{isDate(value) || isDateString(value) ? (\n\t\t\t\t\t\t\t<FormatDateTime date={value} locale={locale} />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span>{value}</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</Stack>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n","import React from \"react\";\n\ntype ProjectContextType = {\n\tdefaultProjectId: string;\n\tprojectName: string;\n};\n\nconst ProjectContext = React.createContext<ProjectContextType | undefined>(\n\tundefined,\n);\n\nexport const useProject = () => {\n\tconst context = React.useContext(ProjectContext);\n\tif (!context) {\n\t\tthrow new Error(\"Must be used within a ProjectProvider\");\n\t}\n\treturn {\n\t\tdefaultProjectId: context.defaultProjectId,\n\t\tprojectName: context.projectName,\n\t};\n};\n\ntype ProjectProviderProps = {\n\tdefaultProjectId: string;\n\tprojectName: string;\n\tchildren: React.ReactNode;\n};\n/**\n * A Provider to sync project id across micro-frontends. Used by useNavigateParams to ensure project id is always present in the url.\n */\nexport const ProjectProvider = ({\n\tdefaultProjectId,\n\tprojectName,\n\tchildren,\n}: ProjectProviderProps) => {\n\treturn (\n\t\t<ProjectContext.Provider value={{ defaultProjectId, projectName }}>\n\t\t\t{children}\n\t\t</ProjectContext.Provider>\n\t);\n};\n","import \"./Breadcrumbs.scss\";\nimport { BreadcrumbItem, BreadcrumbNavigation } from \"@entur/menu\";\nimport { splitUrlPath } from \"@entur-partner/util\";\nimport React, { type FC, type ReactElement } from \"react\";\nimport { Link, useSearchParams } from \"react-router-dom\";\nimport { useProject } from \"./ProjectProvider\";\n\nexport interface BreadcrumbsProps {\n\tpathname: string;\n\tonBreadcrumbLookup: (path: string) => string | undefined;\n\tprependBreadcrumbItem?: ReactElement;\n}\n\nexport const Breadcrumbs: FC<BreadcrumbsProps> = ({\n\tprependBreadcrumbItem,\n\tpathname,\n\tonBreadcrumbLookup,\n}) => {\n\tconst { projectName, defaultProjectId } = useProject();\n\tconst [searchParams] = useSearchParams();\n\tconst projectValue = searchParams.get(projectName);\n\tconst paths: string[] = splitUrlPath(pathname);\n\n\tconst breadcrumbs = paths\n\t\t.map((path) => ({ title: onBreadcrumbLookup(path), path }))\n\t\t.filter(({ title }) => title !== undefined);\n\n\tconst breadcrumbElements = breadcrumbs.map(({ title, path }, i) => {\n\t\tconst isLast = i === breadcrumbs.length - 1;\n\t\tif (isLast) {\n\t\t\treturn (\n\t\t\t\t<BreadcrumbItem key={path} as={\"span\"}>\n\t\t\t\t\t{title}\n\t\t\t\t</BreadcrumbItem>\n\t\t\t);\n\t\t}\n\t\tif (!projectValue) {\n\t\t\tsearchParams.set(projectName, defaultProjectId);\n\t\t}\n\t\treturn (\n\t\t\t<BreadcrumbItem\n\t\t\t\tkey={path}\n\t\t\t\tas={Link}\n\t\t\t\tto={`${path}?${searchParams.toString()}`}\n\t\t\t>\n\t\t\t\t{title}\n\t\t\t</BreadcrumbItem>\n\t\t);\n\t});\n\n\tif (prependBreadcrumbItem) {\n\t\treturn (\n\t\t\t<BreadcrumbNavigation>\n\t\t\t\t{[prependBreadcrumbItem, ...breadcrumbElements]}\n\t\t\t</BreadcrumbNavigation>\n\t\t);\n\t}\n\n\treturn <BreadcrumbNavigation>{breadcrumbElements}</BreadcrumbNavigation>;\n};\n","import \"./ConfirmModal.scss\";\n\nimport { ButtonGroup, PrimaryButton, SecondaryButton } from \"@entur/button\";\nimport { Modal, type ModalProps } from \"@entur/modal\";\nimport { Paragraph } from \"@entur/typography\";\nimport { isString } from \"@entur-partner/util\";\nimport type { FC, ReactNode } from \"react\";\nimport React from \"react\";\n\nimport { Box } from \"./Box\";\n\nexport interface BaseConfirmModalProps extends Partial<ModalProps> {\n\ttitle: string;\n\tchildren: React.ReactNode;\n\tcloseLabel: string;\n\n\t/** Deprecated use children prop */\n\tmessage?: ReactNode;\n\t/** Deprecated use open prop */\n\tisOpen?: boolean;\n\t/** Deprecated use onDismiss prop */\n\tonClose?: () => void;\n}\n\ninterface CustomConfirmModalButtons extends BaseConfirmModalProps {\n\tbuttons: ReactNode[];\n}\n\ninterface DefaultConfirmModalHandler extends BaseConfirmModalProps {\n\tonConfirm: () => void;\n\tmessages: {\n\t\tconfirm: string;\n\t\tcancel: string;\n\t};\n}\n\nexport type ConfirmModalProps =\n\t| CustomConfirmModalButtons\n\t| DefaultConfirmModalHandler;\n\nexport const ConfirmModal: FC<ConfirmModalProps> = ({\n\tisOpen = false,\n\tchildren,\n\tmessage,\n\tsize = \"medium\",\n\tbuttons,\n\tonConfirm,\n\tmessages,\n\tonClose,\n\tonDismiss,\n\t...rest\n}) => {\n\tconst childrenToRender = children ? children : message;\n\tconst handleDismiss = onClose ? onClose : onDismiss;\n\treturn (\n\t\t<Modal size={size} open={isOpen} onDismiss={handleDismiss} {...rest}>\n\t\t\t{isString(childrenToRender) ? (\n\t\t\t\t<Paragraph>{childrenToRender}</Paragraph>\n\t\t\t) : (\n\t\t\t\t<Box paddingBottom=\"medium\">{childrenToRender}</Box>\n\t\t\t)}\n\n\t\t\t<ButtonGroup>\n\t\t\t\t{onConfirm ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<SecondaryButton\n\t\t\t\t\t\t\tonClick={handleDismiss}\n\t\t\t\t\t\t\tdata-testid=\"cancel-modal-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{messages.cancel}\n\t\t\t\t\t\t</SecondaryButton>\n\t\t\t\t\t\t<PrimaryButton\n\t\t\t\t\t\t\tonClick={onConfirm}\n\t\t\t\t\t\t\tdata-testid=\"confirm-modal-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{messages.confirm}\n\t\t\t\t\t\t</PrimaryButton>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tbuttons\n\t\t\t\t)}\n\t\t\t</ButtonGroup>\n\t\t</Modal>\n\t);\n};\n","import \"./Content.scss\";\n\nimport classnames from \"classnames\";\nimport type { FC, ReactNode } from \"react\";\nimport React from \"react\";\n\ninterface ContentProps {\n\tchildren: ReactNode;\n\tas?: \"main\" | React.ElementType;\n\tclassName?: string;\n}\nexport const Content: FC<ContentProps> = ({\n\tas: Component = \"main\",\n\tclassName,\n\tchildren,\n}) => {\n\tconst classList = classnames([\"eps-content\", className]);\n\n\treturn <Component className={classList}>{children}</Component>;\n};\n","export enum Environment {\n\tLocal = \"local\",\n\tDevelopment = \"dev\",\n\tStaging = \"staging\",\n\tProduction = \"prod\",\n}\n\nconst environmentColors: Record<\n\tExclude<Environment, Environment.Production>,\n\tstring\n> = {\n\t[Environment.Local]: \"#B482FB\",\n\t[Environment.Development]: \"#5AC39A\",\n\t[Environment.Staging]: \"#FFCA28\",\n};\n\n/**\n * Gets the color for the given environment. This is the color used for the environment\n * indicator. There is no color for production as it should not have any special environment\n * indication.\n */\nexport const getColorForEnvironment = (\n\tenvironment: Exclude<Environment, Environment.Production>,\n) => environmentColors[environment];\n\nconst humanReadableEnvironment: Record<Environment, string> = {\n\t[Environment.Local]: \"Local\",\n\t[Environment.Development]: \"Dev\",\n\t[Environment.Staging]: \"Staging\",\n\t[Environment.Production]: \"Prod\",\n};\n\nexport const getHumanReadableEnvironment = (environment: Environment) =>\n\thumanReadableEnvironment[environment];\n","import \"./EnturPartnerLogo.scss\";\n\nimport classnames from \"classnames\";\nimport type { FC } from \"react\";\nimport React from \"react\";\n\nimport { Environment, getColorForEnvironment } from \"./environment\";\n\ninterface LogoProps {\n\ttitle: string;\n\tclassName?: string;\n\taccentColor?: string;\n\t[key: string]: object | string | number | boolean | undefined;\n}\n\nexport const EnturPartnerLogoSvg: FC<LogoProps> = ({\n\ttitle,\n\taccentColor = \"#FF5959\",\n\t...rest\n}) => {\n\treturn (\n\t\t<svg width={257} height={37} viewBox=\"0 0 257 37\" {...rest}>\n\t\t\t<title>{title}</title>\n\t\t\t<g fill=\"none\" fillRule=\"evenodd\">\n\t\t\t\t<path\n\t\t\t\t\tfill=\"#FFF\"\n\t\t\t\t\td=\"M0 .231V25.72h18.745v-4.318H4.869v-6.163h12.31v-4.318H4.87V4.55h13.876V.231z\"\n\t\t\t\t/>\n\t\t\t\t<path fill={accentColor} d=\"M0 36.408h45.253v-4.32H0z\" />\n\t\t\t\t<path\n\t\t\t\t\tfill=\"#FFF\"\n\t\t\t\t\td=\"M40.384.231v15.425L23.656.231h-.521V25.72h4.869V10.573L44.732 25.72h.521V.23zM69.25 15.238h-7.267v21.17h-4.87v-21.17H49.81V10.92h19.44zM83.863 36.86c-1.646 0-3.142-.255-4.486-.765-1.345-.51-2.493-1.23-3.443-2.159-.95-.928-1.687-2.054-2.208-3.378-.522-1.323-.783-2.797-.783-4.422V10.92h4.869v15.216c0 1.277.209 2.333.626 3.169.417.836.933 1.497 1.548 1.985a5.346 5.346 0 001.982 1.01c.707.186 1.339.278 1.895.278.557 0 1.188-.092 1.896-.279a5.35 5.35 0 001.982-1.01c.614-.487 1.13-1.148 1.548-1.984.417-.836.625-1.892.625-3.169V10.92h4.87v15.216c0 1.625-.256 3.1-.766 4.422-.51 1.324-1.24 2.45-2.19 3.378-.952.929-2.1 1.648-3.444 2.159-1.344.51-2.851.766-4.52.766M104.21 24.047h5.546c1.016 0 1.854-.127 2.513-.383.658-.255 1.179-.592 1.56-1.01.381-.418.641-.888.78-1.41.138-.522.208-1.05.208-1.584 0-.627-.099-1.207-.295-1.741a3.718 3.718 0 00-.901-1.393c-.405-.394-.924-.708-1.56-.94-.636-.232-1.404-.348-2.305-.348h-5.546v8.81zm0 4.248v8.113h-4.87V10.92h11.567c1.3 0 2.49.215 3.57.644 1.08.43 2.004 1.033 2.77 1.81a8.287 8.287 0 011.794 2.787c.43 1.079.645 2.257.645 3.534 0 .952-.128 1.874-.383 2.768-.256.894-.61 1.7-1.063 2.42a7.32 7.32 0 01-1.672 1.863 5.929 5.929 0 01-2.178 1.096l6.339 8.566h-5.808l-5.893-8.113h-4.818z\"\n\t\t\t\t/>\n\t\t\t\t<g fill={accentColor}>\n\t\t\t\t\t<path d=\"M141.051 23.448h5.628c4.185 0 5.989-1.984 5.989-4.942 0-2.742-1.515-4.618-5.989-4.618h-5.628v9.56zm0 3.067v9.776h-3.571V10.75h9.632c6.674 0 9.127 3.211 9.127 7.54 0 4.979-3.102 8.226-9.2 8.226h-5.988zM169.695 28.715c-1.371-.288-2.958-.505-4.401-.505-2.85 0-4.041 1.263-4.041 3.139s1.407 2.706 3.463 2.706c2.49 0 4.979-1.443 4.979-4.221v-1.119zm-4.293-2.958c1.551 0 3.174.253 4.293.469v-.83c0-2.525-1.154-3.896-4.33-3.896-2.164 0-3.824.866-4.942 2.092l-2.02-2.272c1.732-1.66 3.644-2.598 7.07-2.598 5.052 0 7.469 1.876 7.469 7.215v10.354h-3.211V34.02h-.108c-1.082 1.767-3.211 2.705-5.592 2.705-3.32 0-6.241-1.66-6.241-5.303 0-3.103 1.912-5.664 7.612-5.664zM178.965 19.191h3.211v2.886h.108c.938-1.984 2.922-3.355 5.231-3.355.47 0 .938.036 1.335.144l-.144 3.14a6.77 6.77 0 00-1.552-.181c-3.246 0-4.798 2.633-4.798 5.483v8.983h-3.39v-17.1zM199.961 36.291h-1.912c-4.004 0-5.988-.938-5.988-5.772v-8.55h-2.778V19.19h2.778v-4.654h3.355v4.654h4.473v2.778h-4.473v7.973c0 3.427 1.587 3.535 3.319 3.535h1.226v2.814zM219.767 36.291h-3.391V26.84c0-2.778-1.083-5.375-4.257-5.375-3.14 0-5.268 2.597-5.268 6.169v8.658h-3.391v-17.1h3.32v2.814h.143c.794-1.623 3.067-3.283 5.99-3.283 4.941 0 6.854 3.644 6.854 8.081v9.488zM227.847 26.262h10.57c0-2.597-2.272-4.726-5.087-4.726-2.922 0-5.014 1.948-5.483 4.726zm-.036 2.453c.397 3.355 2.633 5.195 5.844 5.195 2.778 0 4.618-1.623 5.484-2.67l2.164 1.804c-1.37 1.913-4.365 3.716-8.045 3.716-4.942 0-8.73-3.535-8.73-8.55 0-5.195 3.752-9.488 8.983-9.488 5.303 0 8.009 4.365 8.009 8.19 0 .649-.036 1.226-.072 1.803H227.81zM246.245 19.191h3.21v2.886h.109c.938-1.984 2.922-3.355 5.231-3.355.469 0 .938.036 1.335.144l-.145 3.14a6.77 6.77 0 00-1.551-.181c-3.247 0-4.798 2.633-4.798 5.483v8.983h-3.391v-17.1z\" />\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t</svg>\n\t);\n};\n\ninterface EnturPartnerLogoProps {\n\taltText: string;\n\tas?: \"div\" | React.ElementType;\n\tclassName?: string;\n\tenvironment?: Environment;\n}\n\nexport const EnturPartnerLogo: FC<EnturPartnerLogoProps> = ({\n\tas: Component = \"nav\",\n\tclassName,\n\taltText,\n\tenvironment,\n}) => {\n\tconst classList = classnames([\"eps-logo-wrapper\", className]);\n\n\treturn (\n\t\t<Component className={classList}>\n\t\t\t<EnturPartnerLogoSvg\n\t\t\t\ttitle={altText}\n\t\t\t\tclassName=\"logo\"\n\t\t\t\taccentColor={\n\t\t\t\t\tenvironment !== undefined && environment !== Environment.Production\n\t\t\t\t\t\t? getColorForEnvironment(environment)\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t/>\n\t\t</Component>\n\t);\n};\n","import { BannerAlertBox } from \"@entur/alert\";\nimport { PrimaryButton } from \"@entur/button\";\nimport { Paragraph } from \"@entur/typography\";\nimport { isFunction } from \"@entur-partner/util\";\nimport React, { Component, type ErrorInfo, type ReactNode } from \"react\";\nimport { Box } from \"./Box\";\n\ntype FallbackOptions = {\n\tretry: () => void;\n\terror: Error;\n};\n\ntype RenderProp = (options: FallbackOptions) => ReactNode;\n\ntype Props = {\n\thandleError?: (error: Error, errorInfo: ErrorInfo) => void;\n\tfallback: ReactNode | RenderProp;\n\tchildren: ReactNode;\n};\n\ntype State = {\n\terror: null | Error;\n};\n\nconst newAppVersionErrorMessage =\n\t\"Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.\";\n\nexport class ErrorBoundary extends Component<Props, State> {\n\tconstructor(props: Props) {\n\t\tsuper(props);\n\t\tthis.state = { error: null };\n\t}\n\n\tstatic getDerivedStateFromError(error: Error): State {\n\t\treturn {\n\t\t\terror,\n\t\t};\n\t}\n\n\tcomponentDidCatch(error: Error, errorInfo: ErrorInfo) {\n\t\t// React always logs in development\n\t\tthis.props.handleError?.(error, errorInfo);\n\t}\n\n\trender() {\n\t\tconst { error } = this.state;\n\t\tconst { fallback, children } = this.props;\n\n\t\tif (error) {\n\t\t\tif (isFunction<RenderProp>(fallback)) {\n\t\t\t\treturn fallback({ retry: () => this.setState({ error: null }), error });\n\t\t\t} else if (\n\t\t\t\terror.name === \"NotFoundError\" &&\n\t\t\t\terror.message === newAppVersionErrorMessage\n\t\t\t) {\n\t\t\t\treturn <RefreshBannerInfo />;\n\t\t\t}\n\n\t\t\treturn fallback;\n\t\t}\n\n\t\treturn children;\n\t}\n}\n\nexport const LANGUAGE_STORAGE_KEY = \"EP::locale\";\n\nfunction RefreshBannerInfo() {\n\t// Taken from ./app-shell/src/storage.ts\n\tconst language = localStorage.getItem(LANGUAGE_STORAGE_KEY);\n\tconst isNorwegian = language === \"nb\" || language === \"nb-NO\";\n\treturn (\n\t\t<Box maxWidth=\"large\">\n\t\t\t<BannerAlertBox\n\t\t\t\tvariant=\"info\"\n\t\t\t\ttitle={\n\t\t\t\t\tisNorwegian\n\t\t\t\t\t\t? \"En ny versjon av nettsiden er tilgjengelig.\"\n\t\t\t\t\t\t: \"A new version of the website is available.\"\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<Box paddingBottom=\"medium\">\n\t\t\t\t\t<Paragraph margin=\"none\">\n\t\t\t\t\t\t{isNorwegian ? \"Vennligst oppdater.\" : \"Please refresh.\"}\n\t\t\t\t\t</Paragraph>\n\t\t\t\t</Box>\n\t\t\t\t<PrimaryButton onClick={() => window.location.reload()}>\n\t\t\t\t\t{isNorwegian ? \"Oppdater\" : \"Refresh\"}\n\t\t\t\t</PrimaryButton>\n\t\t\t</BannerAlertBox>\n\t\t</Box>\n\t);\n}\n","import { ExpandablePanel } from \"@entur/expand\";\nimport type { VariantType } from \"@entur/form\";\nimport type { ChangeEvent } from \"react\";\nimport React from \"react\";\n\nimport type { LanguageKey, LanguageOption } from \"./LanguageSelect\";\nimport { Stack } from \"./Stack\";\n\nexport type MultiLanguageValues = Record<LanguageKey, string>;\n\ntype ExpandableMultiLanguageInputProps = {\n\ttitle: string;\n\tinputComponent: React.ElementType;\n\tlanguages: LanguageOption[];\n\tvalues: MultiLanguageValues;\n\tonChange: (values: MultiLanguageValues) => void;\n\tname: string;\n\tvariant?: (lang: LanguageKey) => VariantType;\n\tfeedback?: (lang: LanguageKey) => string;\n\t[key: string]: object | string | number | boolean | undefined;\n};\n\nexport const ExpandableMultiLanguageInput = ({\n\ttitle,\n\tinputComponent: InputComponent,\n\tlanguages,\n\tvalues,\n\tonChange,\n\tname,\n\tvariant,\n\tfeedback,\n\t...rest\n}: ExpandableMultiLanguageInputProps) => {\n\tconst handleOnChange = (language: LanguageKey, value?: string) => {\n\t\tconst changes = { ...values };\n\t\tif (value === \"\" || !value) {\n\t\t\tdelete changes[language];\n\t\t} else {\n\t\t\tchanges[language] = value;\n\t\t}\n\t\tonChange(changes);\n\t};\n\n\treturn (\n\t\t<ExpandablePanel\n\t\t\ttitle={title}\n\t\t\tdefaultOpen\n\t\t\tcontentStyle={{\n\t\t\t\tpadding: \"4px 4px 4px 4px\",\n\t\t\t\tmarginTop: \"16px\",\n\t\t\t\tmarginBottom: \"16px\",\n\t\t\t}}\n\t\t>\n\t\t\t<Stack space=\"medium\">\n\t\t\t\t{languages.map(({ value: langKey, label, required }) => (\n\t\t\t\t\t<InputComponent\n\t\t\t\t\t\tdata-testid={`multi-lang-input-${name}-${langKey}`}\n\t\t\t\t\t\tkey={title + langKey}\n\t\t\t\t\t\tlabel={required ? `${label}*` : label}\n\t\t\t\t\t\tvariant={variant?.(langKey)}\n\t\t\t\t\t\tfeedback={feedback?.(langKey)}\n\t\t\t\t\t\tname={name}\n\t\t\t\t\t\tonChange={(e: ChangeEvent<HTMLInputElement>) => {\n\t\t\t\t\t\t\thandleOnChange(langKey, e.target.value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={values[langKey] || \"\"}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</Stack>\n\t\t</ExpandablePanel>\n\t);\n};\n","/// <reference types=\"vite/client\" />\nimport React, { type ReactNode } from \"react\";\n\n/**\n * Returns true if the provided flag exist in localStorage\n * or is set as an environment variable.\n *\n * @param flag case sensitive flag. If it is an environment variable\n * you can drop the VITE_APP_ prefix.\n */\nexport function featureFlag(flag: string): boolean {\n\treturn (\n\t\timport.meta.env[`VITE_APP_${flag}`] === \"true\" ||\n\t\twindow.localStorage?.getItem(flag) === \"true\" ||\n\t\twindow.localStorage?.getItem(`VITE_APP_${flag}`) === \"true\"\n\t);\n}\n\n/**\n * Returns true if the provided flag exist in localStorage\n * or is set as an environment variable.\n *\n * @param flag case sensitive flag. If it is an environment variable\n * you can drop the VITE_APP_ prefix.\n */\nexport function useFeatureToggle(flag: string): boolean {\n\treturn featureFlag(flag);\n}\n\nexport interface FeatureToggleProps {\n\t/** Visible if flag exist, hidden if not.*/\n\tchildren: ReactNode;\n\t/** Case sensitive flag. If it is an environment variable\n\t * you can drop the VITE_APP_ prefix. */\n\tflag: string;\n}\n\nexport const FeatureToggle = ({ children, flag }: FeatureToggleProps) => {\n\tconst feature = useFeatureToggle(flag);\n\tif (feature) {\n\t\treturn <>{children}</>;\n\t}\n\treturn null;\n};\n","import type { FC } from \"react\";\nimport React from \"react\";\n\nexport interface FormatCurrencyAmountProps {\n\tamount: number | string;\n\tas?: \"span\" | React.ElementType;\n\t[key: string]: object | string | number | boolean | undefined;\n}\n\nexport const FormatCurrencyAmount: FC<FormatCurrencyAmountProps> = ({\n\tamount,\n\tas: Component = \"span\",\n\t...rest\n}) => {\n\tconst parsedAmount = Number(amount) || 0;\n\n\tconst formattedAmount = new Intl.NumberFormat(\"nb-NO\", {\n\t\tmaximumFractionDigits: 2,\n\t\tminimumFractionDigits: 2,\n\t}).format(parsedAmount);\n\n\treturn <Component {...rest}>{formattedAmount}</Component>;\n};\n","import \"./LanguageSelect.scss\";\n\nimport { SegmentedChoice, SegmentedControl } from \"@entur/form\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport cx from \"classnames\";\nimport React, { type FC } from \"react\";\n\nexport type LanguageKey = \"nob\" | \"nno\" | \"eng\";\n\nexport interface LanguageOption {\n\tvalue: LanguageKey;\n\tlabel: string;\n\trequired: boolean;\n}\n\nexport interface LanguageSelectProps {\n\tlanguage: string;\n\toptions: LanguageOption[];\n\tclassName?: string;\n\tonChange: (language: string) => void;\n\t[key: string]: object | string | number | boolean | undefined;\n}\n\nexport const LanguageSelect: FC<LanguageSelectProps> = ({\n\tlanguage,\n\toptions,\n\tclassName,\n\tonChange,\n\t...rest\n}) => {\n\tconst classNames = cx(\"eps-language-select\", className);\n\treturn (\n\t\t<div {...rest} className={classNames}>\n\t\t\t<SegmentedControl\n\t\t\t\tonChange={(language) => {\n\t\t\t\t\tassertIsDefined(language);\n\t\t\t\t\tonChange(language);\n\t\t\t\t}}\n\t\t\t\tselectedValue={language}\n\t\t\t>\n\t\t\t\t{options.map((option) => (\n\t\t\t\t\t<SegmentedChoice key={option.value} value={option.value}>\n\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t{option.required && <span className=\"asterisk-margin\">{\"*\"}</span>}\n\t\t\t\t\t</SegmentedChoice>\n\t\t\t\t))}\n\t\t\t</SegmentedControl>\n\t\t</div>\n\t);\n};\n","import { Link as A } from \"@entur/typography\";\nimport React, { type FC } from \"react\";\nimport { type LinkProps, Link as RouterLink } from \"react-router-dom\";\n\ninterface Props extends LinkProps {}\n\nexport const Link: FC<Props> = (props) => {\n\treturn (\n\t\t<A {...props} as={RouterLink}>\n\t\t\t{props.children}\n\t\t</A>\n\t);\n};\n","import \"./LinkButton.scss\";\n\nimport { Link } from \"@entur/typography\";\nimport cx from \"classnames\";\nimport React, { type ReactNode } from \"react\";\n\nexport interface LinkButtonProps {\n\tchildren: ReactNode;\n\tclassName?: string;\n\t[key: string]: object | string | number | boolean | undefined | ReactNode;\n}\n\nexport const LinkButton = ({\n\tchildren,\n\tclassName,\n\t...rest\n}: LinkButtonProps) => (\n\t<Link {...rest} as=\"button\" className={cx(\"eps-link-button\", className)}>\n\t\t{children}\n\t</Link>\n);\n","import \"./Menu.scss\";\n\nimport classnames from \"classnames\";\nimport type { FC, ReactNode } from \"react\";\nimport React from \"react\";\n\ninterface MenuProps {\n\tchildren: ReactNode;\n\tas?: \"div\" | React.ElementType;\n\tclassName?: string;\n}\nexport const Menu: FC<MenuProps> = ({\n\tas: Component = \"nav\",\n\tclassName,\n\tchildren,\n}) => {\n\tconst classList = classnames([\"eds-contrast\", \"eps-menu\", className]);\n\n\treturn <Component className={classList}>{children}</Component>;\n};\n","import \"./MultiLanguageInput.scss\";\n\nimport type { VariantType } from \"@entur/form\";\nimport cx from \"classnames\";\nimport React, {\n\ttype ChangeEvent,\n\ttype FC,\n\ttype FocusEvent,\n\tuseState,\n} from \"react\";\nimport { type LanguageOption, LanguageSelect } from \"./LanguageSelect\";\nimport { Stack } from \"./Stack\";\n\ntype Values = { [key: string]: string };\n\nexport interface MultiLanguageInputProps {\n\tclassName?: string;\n\tonBlur?: (e: FocusEvent<HTMLDivElement>) => void;\n\tinputComponent: React.ElementType;\n\tvalues: { [key: string]: string };\n\tlanguages: LanguageOption[];\n\tonChange: (values: Values) => void;\n\tname: string;\n\talertLevel?: VariantType;\n\talertLabel?: string;\n\tlabel?: string;\n\tdefaultLanguage?: string;\n\t[key: string]: object | string | number | boolean | undefined;\n}\n/**\n * @deprecated use ExpandableMultiLanguageInput\n */\nexport const MultiLanguageInput: FC<MultiLanguageInputProps> = ({\n\tclassName,\n\tinputComponent: InputComponent,\n\talertLabel,\n\talertLevel,\n\tname,\n\tlanguages,\n\tvalues,\n\tonChange,\n\tdefaultLanguage = \"nob\",\n\tlabel = \"\",\n\tonBlur = () => {},\n\t...rest\n}) => {\n\tconst [language, setLanguage] = useState(defaultLanguage);\n\tconst classNames = cx(\"multi-language-input\", className);\n\tconst currentValue = values[language];\n\n\tconst handleOnBlur = (e: FocusEvent<HTMLDivElement>) => {\n\t\te.persist();\n\t\tconst currentTarget = e.currentTarget;\n\t\tsetTimeout(() => {\n\t\t\tif (currentTarget && !currentTarget.contains(document.activeElement)) {\n\t\t\t\tonBlur(e);\n\t\t\t}\n\t\t}, 0);\n\t};\n\n\tconst handleLanguageChange = (language: string) => {\n\t\tsetLanguage(language);\n\t};\n\n\tconst handleOnChange = (value?: string) => {\n\t\tconst changes = Object.assign({}, values);\n\t\tif (value === \"\" || !value) {\n\t\t\tdelete changes[language];\n\t\t} else {\n\t\t\tchanges[language] = value;\n\t\t}\n\t\tonChange(changes);\n\t};\n\n\treturn (\n\t\t// biome-ignore lint/a11y/noStaticElementInteractions: Legacy component\n\t\t<div\n\t\t\tclassName={classNames}\n\t\t\t// biome-ignore lint/a11y/noNoninteractiveTabindex: Legacy component\n\t\t\ttabIndex={0}\n\t\t\tonBlur={handleOnBlur}\n\t\t\tdata-testid={`multi-lang-input-${name}`}\n\t\t>\n\t\t\t<Stack space=\"extraSmall\">\n\t\t\t\t<LanguageSelect\n\t\t\t\t\tlanguage={language}\n\t\t\t\t\toptions={languages}\n\t\t\t\t\tonChange={(lang) => handleLanguageChange(lang)}\n\t\t\t\t/>\n\t\t\t\t<InputComponent\n\t\t\t\t\tlabel={label}\n\t\t\t\t\tvariant={alertLevel}\n\t\t\t\t\tfeedback={alertLabel}\n\t\t\t\t\tname={name}\n\t\t\t\t\tclassName=\"language-item\"\n\t\t\t\t\tonChange={(e: ChangeEvent<HTMLInputElement>) =>\n\t\t\t\t\t\thandleOnChange(e.target.value)\n\t\t\t\t\t}\n\t\t\t\t\tvalue={currentValue || \"\"}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t</Stack>\n\t\t</div>\n\t);\n};\n","import { SearchableDropdown } from \"@entur/dropdown\";\nimport React, { type FC, useEffect, useState } from \"react\";\n\ninterface OrganisationV3 {\n\torganisationId: number;\n\ttradingName: string;\n}\n\ninterface OrganisationDropDownProps {\n\tlabel: string;\n\tonChange: (organisationId: number) => void;\n\torganisations: OrganisationV3[];\n\tselectedOrganisationId?: number;\n\t[key: string]: object | string | number | boolean | undefined;\n}\n\nexport const OrganisationDropDown: FC<OrganisationDropDownProps> = ({\n\tlabel,\n\torganisations,\n\tonChange: handleChange,\n\tselectedOrganisationId,\n\t...rest\n}) => {\n\tconst [selectedOrganisation, setSelectedOrganisation] =\n\t\tuseState<OrganisationV3>();\n\n\tuseEffect(() => {\n\t\tsetSelectedOrganisation(\n\t\t\torganisations.find(\n\t\t\t\t(org) => org.organisationId === selectedOrganisationId,\n\t\t\t),\n\t\t);\n\t}, [selectedOrganisationId, organisations]);\n\n\treturn (\n\t\t<SearchableDropdown\n\t\t\tlabel={label}\n\t\t\titems={[\n\t\t\t\t...organisations\n\t\t\t\t\t.sort((a, b) => a.tradingName.localeCompare(b.tradingName, \"nb\"))\n\t\t\t\t\t.map((organisation) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: organisation.organisationId,\n\t\t\t\t\t\t\tlabel: organisation.tradingName,\n\t\t\t\t\t\t};\n\t\t\t\t\t}),\n\t\t\t]}\n\t\t\tselectedItem={\n\t\t\t\tselectedOrganisation\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tvalue: selectedOrganisation.organisationId,\n\t\t\t\t\t\t\tlabel: selectedOrganisation.tradingName,\n\t\t\t\t\t\t}\n\t\t\t\t\t: null\n\t\t\t}\n\t\t\tonChange={(selectedValue) => {\n\t\t\t\tif (selectedValue) {\n\t\t\t\t\thandleChange(selectedValue.value);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tclearable={false}\n\t\t\t{...rest}\n\t\t/>\n\t);\n};\n","import { Pagination } from \"@entur/menu\";\nimport React, { type FC } from \"react\";\n\nexport interface PagerProps {\n\tcurrentPage: number;\n\tcollectionSize: number;\n\tpageSize: number;\n\tonPageChange: (page: number) => void;\n}\n\nexport const Pager: FC<PagerProps> = ({\n\tcollectionSize,\n\tpageSize,\n\tonPageChange,\n\tcurrentPage,\n}) => {\n\tconst pageCount = Math.ceil(collectionSize / pageSize);\n\treturn (\n\t\t<Pagination\n\t\t\tpageCount={pageCount}\n\t\t\tcurrentPage={currentPage}\n\t\t\tonPageChange={(page) => {\n\t\t\t\tonPageChange(page);\n\t\t\t}}\n\t\t/>\n\t);\n};\n","import { splitUrlPath } from \"@entur-partner/util\";\nimport { useEffect } from \"react\";\n\ntype DocumentTitleProps = {\n\ttitle: string;\n\tsuffix?: string;\n};\n\nexport const useDocumentTitle = ({ title, suffix }: DocumentTitleProps) => {\n\tuseEffect(() => {\n\t\tif (suffix) {\n\t\t\tdocument.title = `${title}${suffix}`;\n\t\t} else {\n\t\t\tdocument.title = title;\n\t\t}\n\t}, [title, suffix]);\n};\n\ntype Props = {\n\treadonly pathname: string;\n\treadonly onBreadcrumbLookup: (path: string) => string | undefined;\n\treadonly appTitle?: string;\n};\n\nexport const PageTitle = ({\n\tpathname,\n\tonBreadcrumbLookup,\n\tappTitle = \"Entur Partner\",\n}: Props) => {\n\tconst paths: string[] = splitUrlPath(pathname);\n\n\tconst pageTitles = paths\n\t\t.map((path) => ({ title: onBreadcrumbLookup(path), path }))\n\t\t.filter(({ title }) => title !== undefined)\n\t\t.map(({ title }) => title)\n\t\t.reverse()\n\t\t.join(\" | \");\n\n\tconst title = pageTitles ? `${pageTitles} | ${appTitle}` : appTitle;\n\n\tuseDocumentTitle({ title });\n\n\treturn null;\n};\n","import type { BusinessCapability } from \"@entur-partner/permission-client-node\";\nimport { hasAllPermissions, hasOneOfPermissions } from \"@entur-partner/util\";\nimport React, { type FC, type ReactNode } from \"react\";\n\n/**\n * Note: We use BusinessCapability here, not because we only want to check\n * BusinessCapabilities but because it represents a minimal subset of what we\n * need to check.\n */\nexport interface PermissionCheckProps {\n\tchildren: ReactNode;\n\t/** User permissions to check */\n\tpermissions: BusinessCapability[];\n\t/** Check that at least one of the permissions is present */\n\toneOf?: BusinessCapability[];\n\t/** Check that all of the permissions is present */\n\tall?: BusinessCapability[] | BusinessCapability;\n\t/** Rendered if check fails. Defaults to null */\n\tfallback?: ReactNode;\n}\n\n/**\n * Note: This component uses BusinessCapability, not because we only want to\n * check BusinessCapabilities but because it represents a minimal subset of\n * what we need to check.\n */\nexport const PermissionCheck: FC<PermissionCheckProps> = ({\n\tchildren,\n\tfallback = null,\n\tpermissions,\n\toneOf = [],\n\tall = [],\n}) => {\n\tconst allIsAllowed = hasAllPermissions(all, permissions);\n\n\tconst oneOfIsAllowed = hasOneOfPermissions(oneOf, permissions);\n\n\tconst allowed = allIsAllowed && oneOfIsAllowed;\n\treturn <>{allowed ? children : fallback}</>;\n};\n","import type { ModalProps } from \"@entur/modal\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport type { Location } from \"history\";\nimport React, { type FC, type ReactNode } from \"react\";\nimport { useBlocker, useInRouterContext } from \"react-router-dom\";\n\nimport { ConfirmModal } from \"./ConfirmModal\";\n\nexport interface RouteLeavingGuardProps extends Partial<ModalProps> {\n\ttitle: string;\n\tcloseLabel: string;\n\tmessages: {\n\t\tcancel: string;\n\t\tconfirm: string;\n\t};\n\tchildren: ReactNode;\n\tshouldBlockNavigation: (location: Location) => boolean;\n}\n\nexport const RouteLeavingGuard: FC<RouteLeavingGuardProps> = ({\n\tchildren,\n\tshouldBlockNavigation,\n\t...rest\n}) => {\n\tassertIsDefined(\n\t\tuseInRouterContext() ? true : undefined,\n\t\t`RouteLeavingGuard must be used within a data router.`,\n\t);\n\n\tconst blocker = useBlocker(\n\t\t({ currentLocation, nextLocation }) =>\n\t\t\tcurrentLocation.pathname !== nextLocation.pathname &&\n\t\t\tshouldBlockNavigation(nextLocation),\n\t);\n\n\treturn (\n\t\t<ConfirmModal\n\t\t\tonDismiss={() => {\n\t\t\t\tif (blocker.state === \"blocked\") {\n\t\t\t\t\tblocker.reset();\n\t\t\t\t}\n\t\t\t}}\n\t\t\topen={blocker.state === \"blocked\"}\n\t\t\tonConfirm={() => {\n\t\t\t\tif (blocker.state === \"blocked\") {\n\t\t\t\t\tblocker.proceed();\n\t\t\t\t}\n\t\t\t}}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</ConfirmModal>\n\t);\n};\n","import \"./StatusLabel.scss\";\n\nimport cx from \"classnames\";\nimport React, { type FC } from \"react\";\n\ninterface StatusLabelProps {\n\tlabel: string;\n\tactive: boolean;\n\taggressiveInactive?: boolean;\n\tshowBullet?: boolean;\n\tcenter?: boolean;\n}\nexport const StatusLabel: FC<StatusLabelProps> = ({\n\tactive = false,\n\tlabel = \"\",\n\taggressiveInactive,\n\tshowBullet,\n\tcenter,\n}) => {\n\tconst bulletClassNames = cx(\"eps-status-label__bullet\", {\n\t\tactive,\n\t\taggressive: aggressiveInactive,\n\t});\n\tconst statusLabelClassNames = cx(\"eps-status-label\", {\n\t\tcenter,\n\t});\n\treturn (\n\t\t<div className={statusLabelClassNames}>\n\t\t\t{showBullet && <div className={bulletClassNames} />}\n\t\t\t<div>{label}</div>\n\t\t</div>\n\t);\n};\n","import \"./Text.scss\";\n\nimport cx from \"classnames\";\nimport type { ReactNode } from \"react\";\nimport React from \"react\";\n\nimport { Box, responsiveProp, type StyleColor } from \"./Box\";\n\ntype StyleFontSize =\n\t| \"extraSmall\"\n\t| \"small\"\n\t| \"medium\"\n\t| \"large\"\n\t| \"extraLarge\"\n\t| \"extraLarge2\"\n\t| \"extraLarge3\"\n\t| \"extraLarge4\";\n\ntype StyleFontWeight = \"body\" | \"heading\";\n\ntype StyleLineHeight =\n\t| \"extraSmall\"\n\t| \"small\"\n\t| \"medium\"\n\t| \"large\"\n\t| \"extraLarge\"\n\t| \"extraLarge2\"\n\t| \"extraLarge3\"\n\t| \"extraLarge4\"\n\t| \"extraLarge5\"\n\t| \"extraLarge6\"\n\t| \"extraLarge7\";\n\nexport type ResponsiveStyleFontSize =\n\t| StyleFontSize\n\t| [StyleFontSize?, StyleFontSize?, StyleFontSize?];\n\nexport type ResponsiveStyleLineHeight =\n\t| StyleLineHeight\n\t| [StyleLineHeight?, StyleLineHeight?, StyleLineHeight?];\n\nexport interface TextProps {\n\tclassName?: string;\n\tas?: React.ElementType;\n\tchildren: ReactNode;\n\tfontSize?: ResponsiveStyleFontSize;\n\tlineHeight?: ResponsiveStyleLineHeight;\n\tcolor?: StyleColor;\n\tfontWeight?: StyleFontWeight;\n\t// biome-ignore lint/suspicious/noExplicitAny: Ignore for now.\n\t[key: string]: any;\n}\n\nexport const Text = ({\n\tas: component = \"span\",\n\tchildren,\n\tfontSize,\n\tcolor,\n\tlineHeight,\n\tfontWeight,\n\tclassName,\n\t...rest\n}: TextProps) => {\n\tconst classes = [];\n\n\tfontSize && classes.push(...responsiveProp(\"eps-font-size-\", fontSize));\n\tlineHeight && classes.push(...responsiveProp(\"eps-line-height-\", lineHeight));\n\tfontWeight && classes.push(`eps-font-weight-${fontWeight}`);\n\n\tconst classList = cx(classes, className);\n\n\treturn (\n\t\t<Box as={component} color={color} className={classList} {...rest}>\n\t\t\t{children}\n\t\t</Box>\n\t);\n};\n","import \"./Unbutton.scss\";\n\nimport { Button, type ButtonProps } from \"@entur/button\";\nimport cx from \"classnames\";\nimport React, { type FC } from \"react\";\n\ninterface UnbuttonProps extends Omit<ButtonProps<typeof Button>, \"variant\"> {}\n\nexport const Unbutton: FC<UnbuttonProps> = ({\n\tchildren,\n\tclassName,\n\t...rest\n}) => (\n\t<Button variant=\"primary\" {...rest} className={cx(\"eps-unbutton\", className)}>\n\t\t{children}\n\t</Button>\n);\n","import \"../index.scss\";\n\nimport cx from \"classnames\";\nimport React from \"react\";\n\nexport const CustomOverflowMenuItem: React.FC<\n\tReact.DetailedHTMLProps<\n\t\tReact.ButtonHTMLAttributes<HTMLButtonElement>,\n\t\tHTMLButtonElement\n\t>\n> = (props) => {\n\treturn (\n\t\t<button\n\t\t\tclassName={cx(props.className, \"eps-overflow-menu__item\")}\n\t\t\trole=\"menuitem\"\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n","import \"../index.scss\";\n\nimport { CookieIcon } from \"@entur/icons\";\nimport React from \"react\";\n\nimport { CustomOverflowMenuItem } from \"./CustomOverflowMenuItem\";\n\ntype Props = {\n\tname: string;\n\tsetOpen: (open: boolean) => void;\n\tonCookieSettingsOpen: () => void;\n};\n\nexport const CookieSettingsMenuItem = ({\n\tname,\n\tsetOpen,\n\tonCookieSettingsOpen,\n}: Props) => {\n\treturn (\n\t\t<CustomOverflowMenuItem\n\t\t\tonClick={() => {\n\t\t\t\tonCookieSettingsOpen();\n\t\t\t\tsetOpen(false);\n\t\t\t}}\n\t\t\tclassName=\"eps-overflow-menu__item\"\n\t\t>\n\t\t\t<span aria-hidden={true}>\n\t\t\t\t<CookieIcon size=\"1rem\" inline />\n\t\t\t</span>\n\t\t\t{name}\n\t\t</CustomOverflowMenuItem>\n\t);\n};\n","import React from \"react\";\n\nexport function useOutsideClick(\n\tref: React.RefObject<HTMLDivElement>,\n\tbuttonRef: React.RefObject<HTMLButtonElement>,\n\thandler: () => void,\n) {\n\tReact.useEffect(() => {\n\t\tconst listener = (event: Event) => {\n\t\t\tif (\n\t\t\t\telementContainsEventTarget(ref.current, event) ||\n\t\t\t\telementContainsEventTarget(buttonRef.current, event)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\thandler();\n\t\t};\n\n\t\tdocument.addEventListener(\"mousedown\", listener);\n\t\tdocument.addEventListener(\"touchstart\", listener);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\"mousedown\", listener);\n\t\t\tdocument.removeEventListener(\"touchstart\", listener);\n\t\t};\n\t}, [ref, buttonRef, handler]);\n}\n\nfunction elementContainsEventTarget(element: HTMLElement | null, event: Event) {\n\tif (!element) {\n\t\treturn false;\n\t}\n\n\tif (element.contains(event.target as Node)) {\n\t\treturn true;\n\t}\n\n\t// For elements inside a Shadow DOM we need to check the composedPath\n\tif (event.composed && event.composedPath) {\n\t\tconst contains = event.composedPath().find((target) => {\n\t\t\tif (target === window) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn element.contains(target as Node);\n\t\t});\n\t\treturn !!contains;\n\t}\n\n\treturn false;\n}\n","import \"../index.scss\";\n\nimport { SecondaryButton } from \"@entur/button\";\nimport { DownArrowIcon, UserIcon } from \"@entur/icons\";\nimport { Heading6 } from \"@entur/typography\";\nimport cx from \"classnames\";\nimport React from \"react\";\n\nimport {\n\tEnvironment,\n\tgetColorForEnvironment,\n\tgetHumanReadableEnvironment,\n} from \"../../environment\";\nimport { useOutsideClick } from \"../useOutsideClick\";\n\nexport const CustomOverflowMenu: React.FC<{\n\tclassName?: string;\n\tchildren: React.ReactNode;\n\tuserName: string;\n\topen: boolean;\n\tonOpenChange: (open: boolean) => void;\n\tenvironment?: Environment;\n}> = ({\n\tclassName,\n\tchildren,\n\tuserName,\n\topen,\n\tonOpenChange,\n\tenvironment,\n\t...rest\n}) => {\n\tconst overflowItemsClasses = cx(\"eps-overflow-menu__group\", {\n\t\t\"eps-overflow-menu__group--open\": open,\n\t});\n\tconst overflowContentRef = React.useRef<HTMLDivElement>(null);\n\tconst overflowMenuTriggerRef = React.useRef<HTMLButtonElement>(null);\n\tuseOutsideClick(overflowContentRef, overflowMenuTriggerRef, () =>\n\t\tonOpenChange(false),\n\t);\n\treturn (\n\t\t<div>\n\t\t\t<SecondaryButton\n\t\t\t\tclassName={cx(\"eps-overflow-menu__button\", className)}\n\t\t\t\tonClick={() => onOpenChange(!open)}\n\t\t\t\taria-haspopup={true}\n\t\t\t\taria-expanded={open}\n\t\t\t\tref={overflowMenuTriggerRef}\n\t\t\t\t{...rest}\n\t\t\t>\n\t\t\t\t<div className=\"eps-overflow-menu__button-contents\">\n\t\t\t\t\t<span className=\"eds-overflow-menu__user-icon\">\n\t\t\t\t\t\t<UserIcon inline />\n\t\t\t\t\t</span>\n\t\t\t\t\t<Heading6 margin=\"none\" as=\"span\">\n\t\t\t\t\t\t{userName}\n\t\t\t\t\t\t{environment !== undefined &&\n\t\t\t\t\t\t\tenvironment !== Environment.Production && (\n\t\t\t\t\t\t\t\t<span style={{ color: getColorForEnvironment(environment) }}>\n\t\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\t\t({getHumanReadableEnvironment(environment)})\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t</Heading6>\n\t\t\t\t\t<span className=\"eps-arrow-icon\">\n\t\t\t\t\t\t<DownArrowIcon inline />\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</SecondaryButton>\n\t\t\t{open && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={overflowItemsClasses}\n\t\t\t\t\trole=\"menu\"\n\t\t\t\t\tref={overflowContentRef}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import \"../index.scss\";\n\nimport { NorwayIcon, UKIcon } from \"@entur/icons\";\nimport React from \"react\";\n\nimport { useFeatureToggle } from \"../../FeatureToggle\";\nimport { CustomOverflowMenuItem } from \"./CustomOverflowMenuItem\";\n\ntype Props = {\n\tlanguage: string;\n\tonLanguageChange: (language: string) => void;\n\tsetOpen: (open: boolean) => void;\n\tname: string;\n};\n\nexport const LanguageSwitchMenuItem = ({\n\tlanguage,\n\tonLanguageChange,\n\tsetOpen,\n\tname,\n}: Props) => {\n\tconst useB47LanguageKey = useFeatureToggle(\"USE_BCP-47_LANGUAGE_KEY\");\n\tconst norwegianLanguageKey = useB47LanguageKey ? \"nb-NO\" : \"nb\";\n\tconst englishLanguageKey = useB47LanguageKey ? \"en-GB\" : \"en\";\n\n\treturn (\n\t\t<>\n\t\t\t{language === englishLanguageKey ? (\n\t\t\t\t<CustomOverflowMenuItem\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tonLanguageChange(norwegianLanguageKey);\n\t\t\t\t\t\tsetOpen(false);\n\t\t\t\t\t}}\n\t\t\t\t\tclassName=\"eps-overflow-menu__item\"\n\t\t\t\t>\n\t\t\t\t\t<span aria-hidden className=\"eps-overflow-menu__icon-margin\">\n\t\t\t\t\t\t<NorwayIcon size=\"1rem\" inline />\n\t\t\t\t\t</span>\n\t\t\t\t\t{name}\n\t\t\t\t</CustomOverflowMenuItem>\n\t\t\t) : (\n\t\t\t\t<CustomOverflowMenuItem\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tonLanguageChange(englishLanguageKey);\n\t\t\t\t\t\tsetOpen(false);\n\t\t\t\t\t}}\n\t\t\t\t\tclassName=\"eps-overflow-menu__item\"\n\t\t\t\t>\n\t\t\t\t\t<span aria-hidden className=\"eps-overflow-menu__icon-margin\">\n\t\t\t\t\t\t<UKIcon size=\"1rem\" inline />\n\t\t\t\t\t</span>\n\t\t\t\t\t{name}\n\t\t\t\t</CustomOverflowMenuItem>\n\t\t\t)}\n\t\t</>\n\t);\n};\n","import \"../index.scss\";\n\nimport { LogOutIcon } from \"@entur/icons\";\nimport React from \"react\";\n\nimport { CustomOverflowMenuItem } from \"./CustomOverflowMenuItem\";\n\ntype Props = {\n\tname: string;\n\tsetOpen: (open: boolean) => void;\n\tonLogout: () => void;\n};\n\nexport const LogOutMenuItem = ({ name, setOpen, onLogout }: Props) => {\n\treturn (\n\t\t<CustomOverflowMenuItem\n\t\t\tonClick={() => {\n\t\t\t\tonLogout();\n\t\t\t\tsetOpen(false);\n\t\t\t}}\n\t\t\tdata-testid=\"user-menu-logout\"\n\t\t\tclassName=\"eps-overflow-menu__item\"\n\t\t>\n\t\t\t<span aria-hidden>\n\t\t\t\t<LogOutIcon size=\"1rem\" inline />\n\t\t\t</span>\n\t\t\t{name}\n\t\t</CustomOverflowMenuItem>\n\t);\n};\n","import \"../index.scss\";\n\nimport { UserIcon } from \"@entur/icons\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { CustomOverflowMenuItem } from \"./CustomOverflowMenuItem\";\n\ntype Props = {\n\tname: string;\n\tsetOpen: (open: boolean) => void;\n\tonNavigateToMyProfile: () => void;\n};\n\nexport const UserMenuItem = ({\n\tname,\n\tsetOpen,\n\tonNavigateToMyProfile,\n}: Props) => {\n\treturn (\n\t\t<Link to=\"/permission-admin/my-profile\" style={{ textDecoration: \"none\" }}>\n\t\t\t<CustomOverflowMenuItem\n\t\t\t\tonClick={() => {\n\t\t\t\t\tsetOpen(false);\n\t\t\t\t\tonNavigateToMyProfile();\n\t\t\t\t}}\n\t\t\t\tclassName=\"eps-overflow-menu__item\"\n\t\t\t>\n\t\t\t\t<span aria-hidden>\n\t\t\t\t\t<UserIcon size=\"1rem\" inline />\n\t\t\t\t</span>\n\t\t\t\t{name}\n\t\t\t</CustomOverflowMenuItem>\n\t\t</Link>\n\t);\n};\n","import { ChannelsIcon } from \"@entur/icons\";\nimport React from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { CustomOverflowMenuItem } from \"./CustomOverflowMenuItem\";\n\nexport const VersionMenuItem: React.FC<{\n\ttitle: string;\n\tsetOpen: (isOpen: boolean) => void;\n}> = ({ title, setOpen }) => {\n\tconst navigate = useNavigate(); // Hide useNavigate from standalone micro-frontends because it is not under RouterProvider\n\treturn (\n\t\t<CustomOverflowMenuItem\n\t\t\tonClick={() => {\n\t\t\t\tnavigate(\"/app-version\");\n\t\t\t\tsetOpen(false);\n\t\t\t}}\n\t\t\tclassName=\"eps-overflow-menu__item\"\n\t\t>\n\t\t\t<span aria-hidden>\n\t\t\t\t<ChannelsIcon className=\"eps-version-icon\" size=\"1rem\" inline />\n\t\t\t</span>\n\t\t\t{title}\n\t\t</CustomOverflowMenuItem>\n\t);\n};\n","/** biome-ignore-all lint/correctness/useUniqueElementIds: Ignore unique id for now */\nimport \"./index.scss\";\n\nimport cx from \"classnames\";\nimport React, { type FC, useState } from \"react\";\n\nimport type { Environment } from \"../environment\";\nimport { CookieSettingsMenuItem } from \"./components/CookieSettingsMenuItem\";\nimport { CustomOverflowMenu } from \"./components/CustomOverflowMenu\";\nimport { LanguageSwitchMenuItem } from \"./components/LanguageSwitchMenuItem\";\nimport { LogOutMenuItem } from \"./components/LogOutMenuItem\";\nimport { UserMenuItem } from \"./components/UserMenuItem\";\nimport { VersionMenuItem } from \"./components/VersionMenuItem\";\n\ninterface UserMenuProps {\n\tuserName: string;\n\tmessages: {\n\t\tlogout: string;\n\t\tswitchLanguage: string;\n\t\tappVersion?: string;\n\t\tmyProfile?: string;\n\t\tcookieSettings?: string;\n\t};\n\tonLogout: () => void;\n\tonLanguageChange: (language: string) => void;\n\tlanguage: string;\n\tclassName?: string;\n\tenvironment?: Environment;\n\tshowVersionItem?: boolean;\n\tshowMyProfileItem?: boolean;\n\tshowCookieSettingsItem?: boolean;\n\tonNavigateToMyProfile: () => void;\n\tonCookieSettingsOpen?: () => void;\n}\n\nexport const UserMenu: FC<UserMenuProps> = ({\n\tclassName,\n\tmessages,\n\tonLogout,\n\tonLanguageChange,\n\tuserName,\n\tlanguage,\n\tenvironment,\n\tshowVersionItem,\n\tshowMyProfileItem,\n\tshowCookieSettingsItem,\n\tonNavigateToMyProfile,\n\tonCookieSettingsOpen = () => {},\n}) => {\n\tconst triggerClassList = cx([\"eps-user-menu__trigger-button\", className]);\n\tconst [open, setOpen] = useState(false);\n\n\treturn (\n\t\t<div id=\"eps-user-menu\">\n\t\t\t<CustomOverflowMenu\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={setOpen}\n\t\t\t\tclassName={triggerClassList}\n\t\t\t\tuserName={userName}\n\t\t\t\tenvironment={environment}\n\t\t\t>\n\t\t\t\t<div id=\"eps-overflow-menu\">\n\t\t\t\t\t<LanguageSwitchMenuItem\n\t\t\t\t\t\tname={messages.switchLanguage}\n\t\t\t\t\t\tlanguage={language}\n\t\t\t\t\t\tonLanguageChange={onLanguageChange}\n\t\t\t\t\t\tsetOpen={setOpen}\n\t\t\t\t\t/>\n\t\t\t\t\t{showVersionItem && messages.appVersion && (\n\t\t\t\t\t\t<VersionMenuItem title={messages.appVersion} setOpen={setOpen} />\n\t\t\t\t\t)}\n\t\t\t\t\t{showMyProfileItem && messages.myProfile && (\n\t\t\t\t\t\t<UserMenuItem\n\t\t\t\t\t\t\tname={messages.myProfile}\n\t\t\t\t\t\t\tsetOpen={setOpen}\n\t\t\t\t\t\t\tonNavigateToMyProfile={onNavigateToMyProfile}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{showCookieSettingsItem && messages.cookieSettings && (\n\t\t\t\t\t\t<CookieSettingsMenuItem\n\t\t\t\t\t\t\tname={messages.cookieSettings}\n\t\t\t\t\t\t\tsetOpen={setOpen}\n\t\t\t\t\t\t\tonCookieSettingsOpen={onCookieSettingsOpen}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t<LogOutMenuItem\n\t\t\t\t\t\tname={messages.logout}\n\t\t\t\t\t\tsetOpen={setOpen}\n\t\t\t\t\t\tonLogout={onLogout}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</CustomOverflowMenu>\n\t\t</div>\n\t);\n};\n","/*global EventListener WindowEventHandlers*/\nimport { useEffect, useRef } from \"react\";\n\ntype TypedEventListener<T extends Event> = (evt: T) => void;\n\nexport function useEventListener<T extends Event = Event>(\n\teventName: string,\n\thandler: TypedEventListener<T>,\n\telement: WindowEventHandlers = window,\n) {\n\tconst savedHandler = useRef<TypedEventListener<T>>();\n\n\tuseEffect(() => {\n\t\tsavedHandler.current = handler;\n\t}, [handler]);\n\n\tuseEffect(() => {\n\t\tconst isSupported = element?.addEventListener;\n\t\tif (!isSupported) return;\n\n\t\tconst eventListener = ((event: T): void =>\n\t\t\tsavedHandler.current?.(event)) as EventListener;\n\n\t\telement.addEventListener(eventName, eventListener);\n\n\t\treturn () => {\n\t\t\telement.removeEventListener(eventName, eventListener);\n\t\t};\n\t}, [eventName, element]);\n}\n","import {\n\tNavigateFunction,\n\tNavigateOptions,\n\tTo,\n\tuseNavigate,\n\tuseSearchParams,\n} from \"react-router-dom\";\nimport { useProject } from \"./ProjectProvider\";\n\n/**\n * A custom hook that wraps the useNavigate hook from react-router-dom for MicroFrontend State\n *\n * @param to can be a string path, a To object, or a number (delta)\n * @param options contains options for modifying the navigation\n * @returns a function that navigates to the specified path with organisationId in the search params\n */\nexport function useNavigateParams(): NavigateFunction {\n\tconst { projectName, defaultProjectId } = useProject();\n\tconst navigate = useNavigate();\n\tconst [searchParams] = useSearchParams();\n\tconst projectValue = searchParams.get(projectName);\n\n\tconst navigateParam: NavigateFunction = (\n\t\tto: To | number,\n\t\toptions: NavigateOptions = {},\n\t) => {\n\t\tif (projectValue == null) {\n\t\t\tsearchParams.set(projectName, defaultProjectId);\n\t\t}\n\t\tif (typeof to === \"number\") {\n\t\t\tnavigate(`${to}?${searchParams.toString()}`, options);\n\t\t} else {\n\t\t\tnavigate(`${to}?${searchParams.toString()}`, options);\n\t\t}\n\t};\n\n\treturn navigateParam;\n}\n"],"names":["ActionBarLeft","_ref","children","React","className","ActionBarRight","_ref2","ActionBar","_ref3","createElement","Fragment","FormatDateTime","date","locale","_ref$as","as","Component","hideTime","rest","_objectWithoutPropertiesLoose","_excluded","_extends","localeDate","localeDateTime","responsiveProp","prefix","prop","Array","isArray","classes","push","Box","contrast","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","padding","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","margin","display","justifyContent","alignItems","maxWidth","width","background","color","flexDirection","flexWrap","resolvedPaddingTop","resolvedPaddingBottom","resolvedPaddingLeft","resolvedPaddingRight","resolvedMarginTop","resolvedMarginBottom","resolvedMarginLeft","resolvedMarginRight","apply","classList","cx","Stack","space","stackItems","Children","toArray","length","map","child","index","key","AuditInfo","items","classNames","label","value","toString","isDate","isDateString","ProjectContext","createContext","undefined","useProject","context","useContext","Error","defaultProjectId","projectName","ProjectProvider","Provider","Breadcrumbs","prependBreadcrumbItem","pathname","onBreadcrumbLookup","_useProject","_useSearchParams","useSearchParams","searchParams","projectValue","get","paths","splitUrlPath","breadcrumbs","path","title","filter","breadcrumbElements","i","isLast","BreadcrumbItem","set","Link","to","BreadcrumbNavigation","concat","ConfirmModal","_ref$isOpen","isOpen","message","_ref$size","size","buttons","onConfirm","messages","onClose","onDismiss","childrenToRender","handleDismiss","Modal","open","isString","Paragraph","ButtonGroup","SecondaryButton","onClick","cancel","PrimaryButton","confirm","Content","classnames","Environment","environmentColors","_environmentColors","Local","Development","Staging","getColorForEnvironment","environment","humanReadableEnvironment","_humanReadableEnviron","Production","getHumanReadableEnvironment","EnturPartnerLogoSvg","_ref$accentColor","accentColor","height","viewBox","fill","fillRule","d","EnturPartnerLogo","_ref2$as","altText","newAppVersionErrorMessage","ErrorBoundary","_Component","props","_this","call","state","error","_inheritsLoose","getDerivedStateFromError","_proto","prototype","componentDidCatch","errorInfo","_this$props$handleErr","_this$props","handleError","render","_this2","_this$props2","fallback","isFunction","retry","setState","name","RefreshBannerInfo","LANGUAGE_STORAGE_KEY","language","localStorage","getItem","isNorwegian","BannerAlertBox","variant","window","location","reload","ExpandableMultiLanguageInput","InputComponent","inputComponent","languages","values","onChange","feedback","handleOnChange","changes","ExpandablePanel","defaultOpen","contentStyle","langKey","required","e","target","featureFlag","flag","_window$localStorage","_window$localStorage2","import","useFeatureToggle","FeatureToggle","feature","FormatCurrencyAmount","amount","parsedAmount","Number","formattedAmount","Intl","NumberFormat","maximumFractionDigits","minimumFractionDigits","format","LanguageSelect","options","SegmentedControl","assertIsDefined","selectedValue","option","SegmentedChoice","A","RouterLink","LinkButton","Menu","MultiLanguageInput","alertLabel","alertLevel","_ref$defaultLanguage","defaultLanguage","_ref$label","_ref$onBlur","onBlur","_useState","useState","setLanguage","currentValue","handleOnBlur","persist","currentTarget","setTimeout","contains","document","activeElement","handleLanguageChange","Object","assign","tabIndex","lang","OrganisationDropDown","organisations","handleChange","selectedOrganisationId","selectedOrganisation","setSelectedOrganisation","useEffect","find","org","organisationId","SearchableDropdown","sort","a","b","tradingName","localeCompare","organisation","selectedItem","clearable","Pager","collectionSize","pageSize","onPageChange","currentPage","pageCount","Math","ceil","Pagination","page","useDocumentTitle","suffix","PageTitle","_ref2$appTitle","appTitle","pageTitles","_ref4","reverse","join","PermissionCheck","_ref$fallback","permissions","_ref$oneOf","oneOf","_ref$all","all","allIsAllowed","hasAllPermissions","oneOfIsAllowed","hasOneOfPermissions","allowed","RouteLeavingGuard","shouldBlockNavigation","useInRouterContext","blocker","useBlocker","currentLocation","nextLocation","reset","proceed","StatusLabel","_ref$active","active","aggressiveInactive","showBullet","center","bulletClassNames","aggressive","statusLabelClassNames","Text","component","fontSize","lineHeight","fontWeight","Unbutton","Button","CustomOverflowMenuItem","role","CookieSettingsMenuItem","setOpen","onCookieSettingsOpen","CookieIcon","inline","useOutsideClick","ref","buttonRef","handler","listener","event","elementContainsEventTarget","current","addEventListener","removeEventListener","element","composed","composedPath","CustomOverflowMenu","userName","onOpenChange","overflowItemsClasses","overflowContentRef","useRef","overflowMenuTriggerRef","UserIcon","Heading6","style","DownArrowIcon","LanguageSwitchMenuItem","onLanguageChange","useB47LanguageKey","norwegianLanguageKey","englishLanguageKey","NorwayIcon","UKIcon","LogOutMenuItem","onLogout","LogOutIcon","UserMenuItem","onNavigateToMyProfile","textDecoration","VersionMenuItem","navigate","useNavigate","ChannelsIcon","UserMenu","showVersionItem","showMyProfileItem","showCookieSettingsItem","_ref$onCookieSettings","triggerClassList","id","switchLanguage","appVersion","myProfile","cookieSettings","logout","useEventListener","eventName","savedHandler","_element","isSupported","eventListener","useNavigateParams","navigateParam"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),n=require("@entur-partner/util"),t=require("classnames"),a=require("@entur/menu"),r=require("react-router-dom"),o=require("@entur/button"),i=require("@entur/modal"),l=require("@entur/typography"),s=require("@entur/alert"),c=require("@entur/expand"),u=require("@entur/form"),m=require("@entur/dropdown"),p=require("@entur/icons");function d(){return d=Object.assign?Object.assign.bind():function(e){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var a in t)({}).hasOwnProperty.call(t,a)&&(e[a]=t[a])}return e},d.apply(null,arguments)}function v(e,n){if(null==e)return{};var t={};for(var a in e)if({}.hasOwnProperty.call(e,a)){if(-1!==n.indexOf(a))continue;t[a]=e[a]}return t}function g(e,n){return g=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,n){return e.__proto__=n,e},g(e,n)}var f=["date","locale","as","hideTime"],h=function(t){var a=t.date,r=t.locale,o=t.as,i=void 0===o?"main":o,l=t.hideTime,s=v(t,f);return e.createElement(i,d({},s),l?n.localeDate(a,r):n.localeDateTime(a,r))},E=["as","children","contrast","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","padding","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","margin","display","justifyContent","alignItems","maxWidth","width","background","color","flexDirection","flexWrap","className"];function N(e,n){if(Array.isArray(n)){var t=[];return n[0]&&t.push(e+n[0]),n[1]&&t.push(""+e+n[1]+"-lg"),n[2]&&t.push(""+e+n[2]+"-xl"),t}return[e+n]}var x,b,C,y=function(n){var a=n.as,r=void 0===a?"div":a,o=n.children,i=n.contrast,l=n.paddingTop,s=n.paddingRight,c=n.paddingBottom,u=n.paddingLeft,m=n.paddingX,p=n.paddingY,g=n.padding,f=n.marginTop,h=n.marginRight,x=n.marginBottom,b=n.marginLeft,C=n.marginX,y=n.marginY,P=n.margin,w=n.display,L=n.justifyContent,k=n.alignItems,_=n.maxWidth,I=n.width,O=n.background,B=n.color,S=n.flexDirection,z=n.flexWrap,F=n.className,j=v(n,E),D=[],M=l||p||g,T=c||p||g,V=u||m||g,A=s||m||g,q=f||y||P,R=x||y||P,H=b||C||P,U=h||C||P;i&&D.push("eds-contrast"),M&&D.push.apply(D,N("eps-pt-",M)),T&&D.push.apply(D,N("eps-pb-",T)),V&&D.push.apply(D,N("eps-pl-",V)),A&&D.push.apply(D,N("eps-pr-",A)),q&&D.push.apply(D,N("eps-mt-",q)),R&&D.push.apply(D,N("eps-mb-",R)),H&&D.push.apply(D,N("eps-ml-",H)),U&&D.push.apply(D,N("eps-mr-",U)),w&&D.push.apply(D,N("eps-",w)),L&&D.push.apply(D,N("eps-justify-",L)),k&&D.push.apply(D,N("eps-items-",k)),_&&D.push.apply(D,N("eps-max-w-",_)),I&&D.push.apply(D,N("eps-w-",I)),B&&D.push("eps-color-"+B),O&&D.push("eps-bg-"+O),S&&D.push.apply(D,N("eps-flex-",S)),z&&D.push.apply(D,N("eps-flex-wrap-",z));var W=t(D,F);return e.createElement(r,d({className:W},j),o)},P=function(n){var t=n.space,a=n.className,r=e.Children.toArray(n.children);return r.length<=1?e.createElement(e.Fragment,null,r):e.createElement("div",{className:a},r.map(function(n,a){return a===r.length-1?e.createElement("div",{key:a},n):e.createElement(y,{paddingBottom:t,key:a},n)}))},w=["items","locale","className"],L=e.createContext(void 0),k=function(){var n=e.useContext(L);if(!n)throw new Error("Must be used within a ProjectProvider");return{defaultProjectId:n.defaultProjectId,projectName:n.projectName}},_=["isOpen","children","message","size","buttons","onConfirm","messages","onClose","onDismiss"],I=function(t){var a=t.isOpen,r=void 0!==a&&a,s=t.children,c=t.message,u=t.size,m=void 0===u?"medium":u,p=t.buttons,g=t.onConfirm,f=t.messages,h=t.onClose,E=t.onDismiss,N=v(t,_),x=s||c,b=h||E;return e.createElement(i.Modal,d({size:m,open:r,onDismiss:b},N),n.isString(x)?e.createElement(l.Paragraph,null,x):e.createElement(y,{paddingBottom:"medium"},x),e.createElement(o.ButtonGroup,null,g?e.createElement(e.Fragment,null,e.createElement(o.SecondaryButton,{onClick:b,"data-testid":"cancel-modal-button"},f.cancel),e.createElement(o.PrimaryButton,{onClick:g,"data-testid":"confirm-modal-button"},f.confirm)):p))};exports.Environment=void 0,(C=exports.Environment||(exports.Environment={})).Local="local",C.Development="dev",C.Staging="staging",C.Production="prod";var O=((x={})[exports.Environment.Local]="#B482FB",x[exports.Environment.Development]="#5AC39A",x[exports.Environment.Staging]="#FFCA28",x),B=function(e){return O[e]},S=((b={})[exports.Environment.Local]="Local",b[exports.Environment.Development]="Dev",b[exports.Environment.Staging]="Staging",b[exports.Environment.Production]="Prod",b),z=function(e){return S[e]},F=["title","accentColor"],j=function(n){var t=n.title,a=n.accentColor,r=void 0===a?"#FF5959":a,o=v(n,F);return e.createElement("svg",d({width:257,height:37,viewBox:"0 0 257 37"},o),e.createElement("title",null,t),e.createElement("g",{fill:"none",fillRule:"evenodd"},e.createElement("path",{fill:"#FFF",d:"M0 .231V25.72h18.745v-4.318H4.869v-6.163h12.31v-4.318H4.87V4.55h13.876V.231z"}),e.createElement("path",{fill:r,d:"M0 36.408h45.253v-4.32H0z"}),e.createElement("path",{fill:"#FFF",d:"M40.384.231v15.425L23.656.231h-.521V25.72h4.869V10.573L44.732 25.72h.521V.23zM69.25 15.238h-7.267v21.17h-4.87v-21.17H49.81V10.92h19.44zM83.863 36.86c-1.646 0-3.142-.255-4.486-.765-1.345-.51-2.493-1.23-3.443-2.159-.95-.928-1.687-2.054-2.208-3.378-.522-1.323-.783-2.797-.783-4.422V10.92h4.869v15.216c0 1.277.209 2.333.626 3.169.417.836.933 1.497 1.548 1.985a5.346 5.346 0 001.982 1.01c.707.186 1.339.278 1.895.278.557 0 1.188-.092 1.896-.279a5.35 5.35 0 001.982-1.01c.614-.487 1.13-1.148 1.548-1.984.417-.836.625-1.892.625-3.169V10.92h4.87v15.216c0 1.625-.256 3.1-.766 4.422-.51 1.324-1.24 2.45-2.19 3.378-.952.929-2.1 1.648-3.444 2.159-1.344.51-2.851.766-4.52.766M104.21 24.047h5.546c1.016 0 1.854-.127 2.513-.383.658-.255 1.179-.592 1.56-1.01.381-.418.641-.888.78-1.41.138-.522.208-1.05.208-1.584 0-.627-.099-1.207-.295-1.741a3.718 3.718 0 00-.901-1.393c-.405-.394-.924-.708-1.56-.94-.636-.232-1.404-.348-2.305-.348h-5.546v8.81zm0 4.248v8.113h-4.87V10.92h11.567c1.3 0 2.49.215 3.57.644 1.08.43 2.004 1.033 2.77 1.81a8.287 8.287 0 011.794 2.787c.43 1.079.645 2.257.645 3.534 0 .952-.128 1.874-.383 2.768-.256.894-.61 1.7-1.063 2.42a7.32 7.32 0 01-1.672 1.863 5.929 5.929 0 01-2.178 1.096l6.339 8.566h-5.808l-5.893-8.113h-4.818z"}),e.createElement("g",{fill:r},e.createElement("path",{d:"M141.051 23.448h5.628c4.185 0 5.989-1.984 5.989-4.942 0-2.742-1.515-4.618-5.989-4.618h-5.628v9.56zm0 3.067v9.776h-3.571V10.75h9.632c6.674 0 9.127 3.211 9.127 7.54 0 4.979-3.102 8.226-9.2 8.226h-5.988zM169.695 28.715c-1.371-.288-2.958-.505-4.401-.505-2.85 0-4.041 1.263-4.041 3.139s1.407 2.706 3.463 2.706c2.49 0 4.979-1.443 4.979-4.221v-1.119zm-4.293-2.958c1.551 0 3.174.253 4.293.469v-.83c0-2.525-1.154-3.896-4.33-3.896-2.164 0-3.824.866-4.942 2.092l-2.02-2.272c1.732-1.66 3.644-2.598 7.07-2.598 5.052 0 7.469 1.876 7.469 7.215v10.354h-3.211V34.02h-.108c-1.082 1.767-3.211 2.705-5.592 2.705-3.32 0-6.241-1.66-6.241-5.303 0-3.103 1.912-5.664 7.612-5.664zM178.965 19.191h3.211v2.886h.108c.938-1.984 2.922-3.355 5.231-3.355.47 0 .938.036 1.335.144l-.144 3.14a6.77 6.77 0 00-1.552-.181c-3.246 0-4.798 2.633-4.798 5.483v8.983h-3.39v-17.1zM199.961 36.291h-1.912c-4.004 0-5.988-.938-5.988-5.772v-8.55h-2.778V19.19h2.778v-4.654h3.355v4.654h4.473v2.778h-4.473v7.973c0 3.427 1.587 3.535 3.319 3.535h1.226v2.814zM219.767 36.291h-3.391V26.84c0-2.778-1.083-5.375-4.257-5.375-3.14 0-5.268 2.597-5.268 6.169v8.658h-3.391v-17.1h3.32v2.814h.143c.794-1.623 3.067-3.283 5.99-3.283 4.941 0 6.854 3.644 6.854 8.081v9.488zM227.847 26.262h10.57c0-2.597-2.272-4.726-5.087-4.726-2.922 0-5.014 1.948-5.483 4.726zm-.036 2.453c.397 3.355 2.633 5.195 5.844 5.195 2.778 0 4.618-1.623 5.484-2.67l2.164 1.804c-1.37 1.913-4.365 3.716-8.045 3.716-4.942 0-8.73-3.535-8.73-8.55 0-5.195 3.752-9.488 8.983-9.488 5.303 0 8.009 4.365 8.009 8.19 0 .649-.036 1.226-.072 1.803H227.81zM246.245 19.191h3.21v2.886h.109c.938-1.984 2.922-3.355 5.231-3.355.469 0 .938.036 1.335.144l-.145 3.14a6.77 6.77 0 00-1.551-.181c-3.247 0-4.798 2.633-4.798 5.483v8.983h-3.391v-17.1z"}))))},D=function(t){function a(e){var n;return(n=t.call(this,e)||this).state={error:null},n}var r,o;o=t,(r=a).prototype=Object.create(o.prototype),r.prototype.constructor=r,g(r,o),a.getDerivedStateFromError=function(e){return{error:e}};var i=a.prototype;return i.componentDidCatch=function(e,n){var t,a;null==(t=(a=this.props).handleError)||t.call(a,e,n)},i.render=function(){var t=this,a=this.state.error,r=this.props,o=r.fallback,i=r.children;return a?n.isFunction(o)?o({retry:function(){return t.setState({error:null})},error:a}):"NotFoundError"===a.name&&"Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node."===a.message?e.createElement(T,null):o:i},a}(e.Component),M="EP::locale";function T(){var n=localStorage.getItem(M),t="nb"===n||"nb-NO"===n;return e.createElement(y,{maxWidth:"large"},e.createElement(s.BannerAlertBox,{variant:"info",title:t?"En ny versjon av nettsiden er tilgjengelig.":"A new version of the website is available."},e.createElement(y,{paddingBottom:"medium"},e.createElement(l.Paragraph,{margin:"none"},t?"Vennligst oppdater.":"Please refresh.")),e.createElement(o.PrimaryButton,{onClick:function(){return window.location.reload()}},t?"Oppdater":"Refresh")))}var V=["title","inputComponent","languages","values","onChange","name","variant","feedback"];function A(e){var n,t;return"true"===(void 0)["VITE_APP_"+e]||"true"===(null==(n=window.localStorage)?void 0:n.getItem(e))||"true"===(null==(t=window.localStorage)?void 0:t.getItem("VITE_APP_"+e))}function q(e){return A(e)}var R=["amount","as"],H=["language","options","className","onChange"],U=function(a){var r=a.language,o=a.options,i=a.className,l=a.onChange,s=v(a,H),c=t("eps-language-select",i);return e.createElement("div",d({},s,{className:c}),e.createElement(u.SegmentedControl,{onChange:function(e){n.assertIsDefined(e),l(e)},selectedValue:r},o.map(function(n){return e.createElement(u.SegmentedChoice,{key:n.value,value:n.value},n.label,n.required&&e.createElement("span",{className:"asterisk-margin"},"*"))})))},W=["children","className"],G=["className","inputComponent","alertLabel","alertLevel","name","languages","values","onChange","defaultLanguage","label","onBlur"],Y=["label","organisations","onChange","selectedOrganisationId"],X=function(n){var t=n.title,a=n.suffix;e.useEffect(function(){document.title=a?""+t+a:t},[t,a])},K=["children","shouldBlockNavigation"],J=["as","children","fontSize","color","lineHeight","fontWeight","className"],Q=["children","className"],Z=function(n){return e.createElement("button",d({className:t(n.className,"eps-overflow-menu__item"),role:"menuitem"},n))},$=function(n){var t=n.name,a=n.setOpen,r=n.onCookieSettingsOpen;return e.createElement(Z,{onClick:function(){r(),a(!1)},className:"eps-overflow-menu__item"},e.createElement("span",{"aria-hidden":!0},e.createElement(p.CookieIcon,{size:"1rem",inline:!0})),t)};function ee(e,n){return!(!e||!(e.contains(n.target)||n.composed&&n.composedPath&&n.composedPath().find(function(n){return n!==window&&e.contains(n)})))}var ne=["className","children","userName","open","onOpenChange","environment"],te=function(n){var a,r,i,s=n.className,c=n.children,u=n.userName,m=n.open,g=n.onOpenChange,f=n.environment,h=v(n,ne),E=t("eps-overflow-menu__group",{"eps-overflow-menu__group--open":m}),N=e.useRef(null),x=e.useRef(null);return e.useEffect(function(){var e=function(e){ee(a.current,e)||ee(r.current,e)||i()};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),function(){document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e)}},[a=N,r=x,i=function(){return g(!1)}]),e.createElement("div",null,e.createElement(o.SecondaryButton,d({className:t("eps-overflow-menu__button",s),onClick:function(){return g(!m)},"aria-haspopup":!0,"aria-expanded":m,ref:x},h),e.createElement("div",{className:"eps-overflow-menu__button-contents"},e.createElement("span",{className:"eds-overflow-menu__user-icon"},e.createElement(p.UserIcon,{inline:!0})),e.createElement(l.Heading6,{margin:"none",as:"span"},u,void 0!==f&&f!==exports.Environment.Production&&e.createElement("span",{style:{color:B(f)}}," ","(",z(f),")")),e.createElement("span",{className:"eps-arrow-icon"},e.createElement(p.DownArrowIcon,{inline:!0})))),m&&e.createElement("div",{className:E,role:"menu",ref:N},c))},ae=function(n){var t=n.language,a=n.onLanguageChange,r=n.setOpen,o=n.name,i=q("USE_BCP-47_LANGUAGE_KEY"),l=i?"nb-NO":"nb",s=i?"en-GB":"en";return e.createElement(e.Fragment,null,t===s?e.createElement(Z,{onClick:function(){a(l),r(!1)},className:"eps-overflow-menu__item"},e.createElement("span",{"aria-hidden":!0,className:"eps-overflow-menu__icon-margin"},e.createElement(p.NorwayIcon,{size:"1rem",inline:!0})),o):e.createElement(Z,{onClick:function(){a(s),r(!1)},className:"eps-overflow-menu__item"},e.createElement("span",{"aria-hidden":!0,className:"eps-overflow-menu__icon-margin"},e.createElement(p.UKIcon,{size:"1rem",inline:!0})),o))},re=function(n){var t=n.name,a=n.setOpen,r=n.onLogout;return e.createElement(Z,{onClick:function(){r(),a(!1)},"data-testid":"user-menu-logout",className:"eps-overflow-menu__item"},e.createElement("span",{"aria-hidden":!0},e.createElement(p.LogOutIcon,{size:"1rem",inline:!0})),t)},oe=function(n){var t=n.name,a=n.setOpen,o=n.onNavigateToMyProfile;return e.createElement(r.Link,{to:"/permission-admin/my-profile",style:{textDecoration:"none"}},e.createElement(Z,{onClick:function(){a(!1),o()},className:"eps-overflow-menu__item"},e.createElement("span",{"aria-hidden":!0},e.createElement(p.UserIcon,{size:"1rem",inline:!0})),t))},ie=function(n){var t=n.title,a=n.setOpen,o=r.useNavigate();return e.createElement(Z,{onClick:function(){o("/app-version"),a(!1)},className:"eps-overflow-menu__item"},e.createElement("span",{"aria-hidden":!0},e.createElement(p.ChannelsIcon,{className:"eps-version-icon",size:"1rem",inline:!0})),t)};exports.ActionBar=function(n){var t=n.children;return e.createElement(e.Fragment,null,e.createElement("div",{className:"eps-action-bar-padding"}),e.createElement("div",{className:"eps-action-bar"},t))},exports.ActionBarLeft=function(n){return e.createElement("div",{className:"eps-action-bar-left"},n.children)},exports.ActionBarRight=function(n){return e.createElement("div",{className:"eps-action-bar-right"},n.children)},exports.AuditInfo=function(a){var r=a.items,o=a.locale,i=a.className,l=v(a,w),s=t("ep-audit-info",i);return e.createElement("div",d({className:s},l),r.map(function(t){var a=t.label,r=t.value;return e.createElement(P,{space:"small",key:r.toString()},e.createElement("div",{className:"ep-audit-info-label"},a),e.createElement("div",null,n.isDate(r)||n.isDateString(r)?e.createElement(h,{date:r,locale:o}):e.createElement("span",null,r)))}))},exports.Box=y,exports.Breadcrumbs=function(t){var o=t.prependBreadcrumbItem,i=t.pathname,l=t.onBreadcrumbLookup,s=k(),c=s.projectName,u=s.defaultProjectId,m=r.useSearchParams()[0],p=m.get(c),d=n.splitUrlPath(i).map(function(e){return{title:l(e),path:e}}).filter(function(e){return void 0!==e.title}),v=d.map(function(n,t){var o=n.title,i=n.path;return t===d.length-1?e.createElement(a.BreadcrumbItem,{key:i,as:"span"},o):(p||m.set(c,u),e.createElement(a.BreadcrumbItem,{key:i,as:r.Link,to:i+"?"+m.toString()},o))});return e.createElement(a.BreadcrumbNavigation,null,o?[o].concat(v):v)},exports.ConfirmModal=I,exports.Content=function(n){var a=n.as,r=void 0===a?"main":a,o=n.children,i=t(["eps-content",n.className]);return e.createElement(r,{className:i},o)},exports.EnturPartnerLogo=function(n){var a=n.as,r=void 0===a?"nav":a,o=n.altText,i=n.environment,l=t(["eps-logo-wrapper",n.className]);return e.createElement(r,{className:l},e.createElement(j,{title:o,className:"logo",accentColor:void 0!==i&&i!==exports.Environment.Production?B(i):void 0}))},exports.EnturPartnerLogoSvg=j,exports.ErrorBoundary=D,exports.ExpandableMultiLanguageInput=function(n){var t=n.title,a=n.inputComponent,r=n.languages,o=n.values,i=n.onChange,l=n.name,s=n.variant,u=n.feedback,m=v(n,V);return e.createElement(c.ExpandablePanel,{title:t,defaultOpen:!0,contentStyle:{padding:"4px 4px 4px 4px",marginTop:"16px",marginBottom:"16px"}},e.createElement(P,{space:"medium"},r.map(function(n){var r=n.value,c=n.label;return e.createElement(a,d({"data-testid":"multi-lang-input-"+l+"-"+r,key:t+r,label:n.required?c+"*":c,variant:null==s?void 0:s(r),feedback:null==u?void 0:u(r),name:l,onChange:function(e){var n,t,a;n=r,t=e.target.value,a=d({},o),""!==t&&t?a[n]=t:delete a[n],i(a)},value:o[r]||""},m))})))},exports.FeatureToggle=function(n){var t=n.children;return q(n.flag)?e.createElement(e.Fragment,null,t):null},exports.FormatCurrencyAmount=function(n){var t=n.amount,a=n.as,r=void 0===a?"span":a,o=v(n,R),i=Number(t)||0,l=new Intl.NumberFormat("nb-NO",{maximumFractionDigits:2,minimumFractionDigits:2}).format(i);return e.createElement(r,d({},o),l)},exports.FormatDateTime=h,exports.LanguageSelect=U,exports.Link=function(n){return e.createElement(l.Link,d({},n,{as:r.Link}),n.children)},exports.LinkButton=function(n){var a=n.children,r=n.className,o=v(n,W);return e.createElement(l.Link,d({},o,{as:"button",className:t("eps-link-button",r)}),a)},exports.Menu=function(n){var a=n.as,r=void 0===a?"nav":a,o=n.children,i=t(["eds-contrast","eps-menu",n.className]);return e.createElement(r,{className:i},o)},exports.MultiLanguageInput=function(n){var a=n.className,r=n.inputComponent,o=n.alertLabel,i=n.alertLevel,l=n.name,s=n.languages,c=n.values,u=n.onChange,m=n.defaultLanguage,p=void 0===m?"nob":m,g=n.label,f=void 0===g?"":g,h=n.onBlur,E=void 0===h?function(){}:h,N=v(n,G),x=e.useState(p),b=x[0],C=x[1],y=t("multi-language-input",a),w=c[b];return e.createElement("div",{className:y,tabIndex:0,onBlur:function(e){e.persist();var n=e.currentTarget;setTimeout(function(){n&&!n.contains(document.activeElement)&&E(e)},0)},"data-testid":"multi-lang-input-"+l},e.createElement(P,{space:"extraSmall"},e.createElement(U,{language:b,options:s,onChange:function(e){return function(e){C(e)}(e)}}),e.createElement(r,d({label:f,variant:i,feedback:o,name:l,className:"language-item",onChange:function(e){return n=e.target.value,t=Object.assign({},c),""!==n&&n?t[b]=n:delete t[b],void u(t);var n,t},value:w||""},N))))},exports.OrganisationDropDown=function(n){var t=n.label,a=n.organisations,r=n.onChange,o=n.selectedOrganisationId,i=v(n,Y),l=e.useState(),s=l[0],c=l[1];return e.useEffect(function(){c(a.find(function(e){return e.organisationId===o}))},[o,a]),e.createElement(m.SearchableDropdown,d({label:t,items:[].concat(a.sort(function(e,n){return e.tradingName.localeCompare(n.tradingName,"nb")}).map(function(e){return{value:e.organisationId,label:e.tradingName}})),selectedItem:s?{value:s.organisationId,label:s.tradingName}:null,onChange:function(e){e&&r(e.value)},clearable:!1},i))},exports.PageTitle=function(e){var t=e.onBreadcrumbLookup,a=e.appTitle,r=void 0===a?"Entur Partner":a,o=n.splitUrlPath(e.pathname).map(function(e){return{title:t(e),path:e}}).filter(function(e){return void 0!==e.title}).map(function(e){return e.title}).reverse().join(" | ");return X({title:o?o+" | "+r:r}),null},exports.Pager=function(n){var t=n.onPageChange,r=n.currentPage,o=Math.ceil(n.collectionSize/n.pageSize);return e.createElement(a.Pagination,{pageCount:o,currentPage:r,onPageChange:function(e){t(e)}})},exports.PermissionCheck=function(t){var a=t.children,r=t.fallback,o=void 0===r?null:r,i=t.permissions,l=t.oneOf,s=void 0===l?[]:l,c=t.all,u=n.hasAllPermissions(void 0===c?[]:c,i),m=n.hasOneOfPermissions(s,i);return e.createElement(e.Fragment,null,u&&m?a:o)},exports.ProjectProvider=function(n){return e.createElement(L.Provider,{value:{defaultProjectId:n.defaultProjectId,projectName:n.projectName}},n.children)},exports.RouteLeavingGuard=function(t){var a=t.children,o=t.shouldBlockNavigation,i=v(t,K);n.assertIsDefined(!!r.useInRouterContext()||void 0,"RouteLeavingGuard must be used within a data router.");var l=r.useBlocker(function(e){var n=e.nextLocation;return e.currentLocation.pathname!==n.pathname&&o(n)});return e.createElement(I,d({onDismiss:function(){"blocked"===l.state&&l.reset()},open:"blocked"===l.state,onConfirm:function(){"blocked"===l.state&&l.proceed()}},i),a)},exports.Stack=P,exports.StatusLabel=function(n){var a=n.active,r=n.label,o=void 0===r?"":r,i=n.showBullet,l=n.center,s=t("eps-status-label__bullet",{active:void 0!==a&&a,aggressive:n.aggressiveInactive}),c=t("eps-status-label",{center:l});return e.createElement("div",{className:c},i&&e.createElement("div",{className:s}),e.createElement("div",null,o))},exports.Text=function(n){var a=n.as,r=void 0===a?"span":a,o=n.children,i=n.fontSize,l=n.color,s=n.lineHeight,c=n.fontWeight,u=n.className,m=v(n,J),p=[];i&&p.push.apply(p,N("eps-font-size-",i)),s&&p.push.apply(p,N("eps-line-height-",s)),c&&p.push("eps-font-weight-"+c);var g=t(p,u);return e.createElement(y,d({as:r,color:l,className:g},m),o)},exports.Unbutton=function(n){var a=n.children,r=n.className,i=v(n,Q);return e.createElement(o.Button,d({variant:"primary"},i,{className:t("eps-unbutton",r)}),a)},exports.UserMenu=function(n){var a=n.messages,r=n.onLogout,o=n.onLanguageChange,i=n.userName,l=n.language,s=n.environment,c=n.showVersionItem,u=n.showMyProfileItem,m=n.showCookieSettingsItem,p=n.onNavigateToMyProfile,d=n.onCookieSettingsOpen,v=void 0===d?function(){}:d,g=t(["eps-user-menu__trigger-button",n.className]),f=e.useState(!1),h=f[1];return e.createElement("div",{id:"eps-user-menu"},e.createElement(te,{open:f[0],onOpenChange:h,className:g,userName:i,environment:s},e.createElement("div",{id:"eps-overflow-menu"},e.createElement(ae,{name:a.switchLanguage,language:l,onLanguageChange:o,setOpen:h}),c&&a.appVersion&&e.createElement(ie,{title:a.appVersion,setOpen:h}),u&&a.myProfile&&e.createElement(oe,{name:a.myProfile,setOpen:h,onNavigateToMyProfile:p}),m&&a.cookieSettings&&e.createElement($,{name:a.cookieSettings,setOpen:h,onCookieSettingsOpen:v}),e.createElement(re,{name:a.logout,setOpen:h,onLogout:r}))))},exports.featureFlag=A,exports.getColorForEnvironment=B,exports.getHumanReadableEnvironment=z,exports.responsiveProp=N,exports.useDocumentTitle=X,exports.useEventListener=function(n,t,a){void 0===a&&(a=window);var r=e.useRef();e.useEffect(function(){r.current=t},[t]),e.useEffect(function(){var e;if(null==(e=a)?void 0:e.addEventListener){var t=function(e){return null==r.current?void 0:r.current(e)};return a.addEventListener(n,t),function(){a.removeEventListener(n,t)}}},[n,a])},exports.useFeatureToggle=q,exports.useNavigateParams=function(){var e=k(),n=e.projectName,t=e.defaultProjectId,a=r.useNavigate(),o=r.useSearchParams()[0],i=o.get(n);return function(e,r){void 0===r&&(r={}),null==i&&o.set(n,t),a(e+"?"+o.toString(),r)}},exports.useProject=k;
|
|
2
|
+
//# sourceMappingURL=common.cjs.production.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.cjs.production.min.js","sources":["../src/FormatDateTime.tsx","../src/Box.tsx","../src/environment.ts","../src/Stack.tsx","../src/ProjectProvider.tsx","../src/ConfirmModal.tsx","../src/EnturPartnerLogo.tsx","../src/ErrorBoundary.tsx","../src/FeatureToggle.tsx","../src/LanguageSelect.tsx","../src/PageTitle.tsx","../src/UserMenu/components/CustomOverflowMenuItem.tsx","../src/UserMenu/components/CookieSettingsMenuItem.tsx","../src/UserMenu/useOutsideClick.ts","../src/UserMenu/components/CustomOverflowMenu.tsx","../src/UserMenu/components/LanguageSwitchMenuItem.tsx","../src/UserMenu/components/LogOutMenuItem.tsx","../src/UserMenu/components/UserMenuItem.tsx","../src/UserMenu/components/VersionMenuItem.tsx","../src/ActionBar.tsx","../src/AuditInfo.tsx","../src/Breadcrumbs.tsx","../src/Content.tsx","../src/ExpandableMultiLanguageInput.tsx","../src/FormatCurrencyAmount.tsx","../src/Link.tsx","../src/LinkButton.tsx","../src/Menu.tsx","../src/MultiLanguageInput.tsx","../src/OrganisationDropdown.tsx","../src/Pager.tsx","../src/PermissionCheck.tsx","../src/RouteLeavingGuard.tsx","../src/StatusLabel.tsx","../src/Text.tsx","../src/Unbutton.tsx","../src/UserMenu/index.tsx","../src/useEventListener.ts","../src/useNavigateParams.ts"],"sourcesContent":["import { localeDate, localeDateTime } from \"@entur-partner/util\";\nimport React, { type FC } from \"react\";\n\nexport interface FormatDateTimeProps {\n\tdate: string | Date;\n\tlocale: string;\n\t// biome-ignore lint/suspicious/noExplicitAny: Ignore for now.\n\t[key: string]: any;\n}\n\nexport const FormatDateTime: FC<FormatDateTimeProps> = ({\n\tdate,\n\tlocale,\n\tas: Component = \"main\",\n\thideTime,\n\t...rest\n}) => {\n\treturn (\n\t\t<Component {...rest}>\n\t\t\t{hideTime ? localeDate(date, locale) : localeDateTime(date, locale)}\n\t\t</Component>\n\t);\n};\n","import \"./Box.scss\";\n\nimport cx from \"classnames\";\nimport type { ReactNode } from \"react\";\nimport React from \"react\";\n\ntype StyleSpacing =\n\t| \"none\"\n\t| \"extraSmall2\"\n\t| \"extraSmall\"\n\t| \"small\"\n\t| \"medium\"\n\t| \"large\"\n\t| \"extraLarge\"\n\t| \"extraLarge2\"\n\t| \"extraLarge3\"\n\t| \"extraLarge4\"\n\t| \"extraLarge5\"\n\t| \"extraLarge6\"\n\t| \"extraLarge7\"\n\t| \"extraLarge8\"\n\t| \"extraLarge9\";\n\ntype StyleMargin = StyleSpacing | \"auto\";\n\ntype StyleDisplay = \"block\" | \"flex\" | \"inline\" | \"inline-block\";\ntype StyleJustifyContent = \"center\" | \"space-between\" | \"start\" | \"end\";\ntype StyleAlignItems = \"center\" | \"start\" | \"end\" | \"stretch\" | \"baseline\";\n\ntype StyleMaxWidth =\n\t| \"none\"\n\t| \"extraSmall\"\n\t| \"small\"\n\t| \"medium\"\n\t| \"large\"\n\t| \"extraLarge\"\n\t| \"extraLarge2\"\n\t| \"extraLarge3\"\n\t| \"extraLarge4\"\n\t| \"extraLarge5\"\n\t| \"extraLarge6\"\n\t| \"full\";\ntype StyleWidth = \"auto\" | \"full\";\n\nexport type StyleBackground = \"blue\" | \"lavender\" | \"white\" | \"blue70\";\nexport type StyleColor = \"blue\" | \"lavender\" | \"white\" | \"black\";\n\ntype StyleFlexDirection = \"row\" | \"column\" | \"row-reverse\" | \"column-reverse\";\ntype StyleFlexWrap = \"wrap\" | \"nowrap\" | \"wrap-reverse\";\n\nexport type ResponsiveStyleSpacing =\n\t| StyleSpacing\n\t| [StyleSpacing?, StyleSpacing?, StyleSpacing?];\nexport type ResponsiveStyleMargin =\n\t| StyleMargin\n\t| [StyleMargin?, StyleMargin?, StyleMargin?];\n\nexport type ResponsiveStyleDisplay =\n\t| StyleDisplay\n\t| [StyleDisplay?, StyleDisplay?, StyleDisplay?];\nexport type ResponsiveStyleJustifyContent =\n\t| StyleJustifyContent\n\t| [StyleJustifyContent?, StyleJustifyContent?, StyleJustifyContent?];\nexport type ResponsiveStyleAlignItems =\n\t| StyleAlignItems\n\t| [StyleAlignItems?, StyleAlignItems?, StyleAlignItems?];\n\nexport type ResponsiveStyleMaxWidth =\n\t| StyleMaxWidth\n\t| [StyleMaxWidth?, StyleMaxWidth?, StyleMaxWidth?];\nexport type ResponsiveStyleWidth =\n\t| StyleWidth\n\t| [StyleWidth?, StyleWidth?, StyleWidth?];\n\nexport type ResponsiveStyleFlexDirection =\n\t| StyleFlexDirection\n\t| [StyleFlexDirection?, StyleFlexDirection?, StyleFlexDirection?];\nexport type ResponsiveStyleFlexWrap =\n\t| StyleFlexWrap\n\t| [StyleFlexWrap?, StyleFlexWrap?, StyleFlexWrap?];\n\nexport interface BoxProps {\n\tclassName?: string;\n\tas?: React.ElementType;\n\t[key: string]: object | string | number | boolean | undefined | ReactNode;\n\tchildren: ReactNode;\n\n\tcontrast?: boolean;\n\n\tpaddingTop?: ResponsiveStyleSpacing;\n\tpaddingRight?: ResponsiveStyleSpacing;\n\tpaddingBottom?: ResponsiveStyleSpacing;\n\tpaddingLeft?: ResponsiveStyleSpacing;\n\tpaddingX?: ResponsiveStyleSpacing;\n\tpaddingY?: ResponsiveStyleSpacing;\n\tpadding?: ResponsiveStyleSpacing;\n\n\tmarginTop?: ResponsiveStyleMargin;\n\tmarginRight?: ResponsiveStyleMargin;\n\tmarginBottom?: ResponsiveStyleMargin;\n\tmarginLeft?: ResponsiveStyleMargin;\n\tmarginX?: ResponsiveStyleMargin;\n\tmarginY?: ResponsiveStyleMargin;\n\tmargin?: ResponsiveStyleMargin;\n\n\tdisplay?: ResponsiveStyleDisplay;\n\tjustifyContent?: ResponsiveStyleJustifyContent;\n\talignItems?: ResponsiveStyleAlignItems;\n\n\tmaxWidth?: ResponsiveStyleMaxWidth;\n\twidth?: ResponsiveStyleWidth;\n\tbackground?: StyleBackground;\n\tcolor?: StyleColor;\n\n\tflexDirection?: ResponsiveStyleFlexDirection;\n\tflexWrap?: ResponsiveStyleFlexWrap;\n}\n\ntype ResponsiveProp = string | [string?, string?, string?];\n\nexport function responsiveProp(prefix: string, prop: ResponsiveProp): string[] {\n\tif (Array.isArray(prop)) {\n\t\tconst classes = [];\n\t\tprop[0] && classes.push(prefix + prop[0]);\n\t\tprop[1] && classes.push(`${prefix}${prop[1]}-lg`);\n\t\tprop[2] && classes.push(`${prefix}${prop[2]}-xl`);\n\t\treturn classes;\n\t}\n\treturn [prefix + prop];\n}\n\nexport const Box = ({\n\tas: Component = \"div\",\n\tchildren,\n\tcontrast,\n\tpaddingTop,\n\tpaddingRight,\n\tpaddingBottom,\n\tpaddingLeft,\n\tpaddingX,\n\tpaddingY,\n\tpadding,\n\tmarginTop,\n\tmarginRight,\n\tmarginBottom,\n\tmarginLeft,\n\tmarginX,\n\tmarginY,\n\tmargin,\n\tdisplay,\n\tjustifyContent,\n\talignItems,\n\tmaxWidth,\n\twidth,\n\tbackground,\n\tcolor,\n\tflexDirection,\n\tflexWrap,\n\tclassName,\n\t...rest\n}: BoxProps) => {\n\tconst classes = [];\n\tconst resolvedPaddingTop = paddingTop || paddingY || padding;\n\tconst resolvedPaddingBottom = paddingBottom || paddingY || padding;\n\tconst resolvedPaddingLeft = paddingLeft || paddingX || padding;\n\tconst resolvedPaddingRight = paddingRight || paddingX || padding;\n\n\tconst resolvedMarginTop = marginTop || marginY || margin;\n\tconst resolvedMarginBottom = marginBottom || marginY || margin;\n\tconst resolvedMarginLeft = marginLeft || marginX || margin;\n\tconst resolvedMarginRight = marginRight || marginX || margin;\n\n\tcontrast && classes.push(\"eds-contrast\");\n\tresolvedPaddingTop &&\n\t\tclasses.push(...responsiveProp(\"eps-pt-\", resolvedPaddingTop));\n\tresolvedPaddingBottom &&\n\t\tclasses.push(...responsiveProp(\"eps-pb-\", resolvedPaddingBottom));\n\tresolvedPaddingLeft &&\n\t\tclasses.push(...responsiveProp(\"eps-pl-\", resolvedPaddingLeft));\n\tresolvedPaddingRight &&\n\t\tclasses.push(...responsiveProp(\"eps-pr-\", resolvedPaddingRight));\n\tresolvedMarginTop &&\n\t\tclasses.push(...responsiveProp(\"eps-mt-\", resolvedMarginTop));\n\tresolvedMarginBottom &&\n\t\tclasses.push(...responsiveProp(\"eps-mb-\", resolvedMarginBottom));\n\tresolvedMarginLeft &&\n\t\tclasses.push(...responsiveProp(\"eps-ml-\", resolvedMarginLeft));\n\tresolvedMarginRight &&\n\t\tclasses.push(...responsiveProp(\"eps-mr-\", resolvedMarginRight));\n\n\tdisplay && classes.push(...responsiveProp(\"eps-\", display));\n\tjustifyContent &&\n\t\tclasses.push(...responsiveProp(\"eps-justify-\", justifyContent));\n\tif (alignItems) {\n\t\tclasses.push(...responsiveProp(\"eps-items-\", alignItems));\n\t}\n\n\tmaxWidth && classes.push(...responsiveProp(\"eps-max-w-\", maxWidth));\n\twidth && classes.push(...responsiveProp(\"eps-w-\", width));\n\n\tcolor && classes.push(`eps-color-${color}`);\n\tbackground && classes.push(`eps-bg-${background}`);\n\n\tflexDirection && classes.push(...responsiveProp(\"eps-flex-\", flexDirection));\n\tflexWrap && classes.push(...responsiveProp(\"eps-flex-wrap-\", flexWrap));\n\n\tconst classList = cx(classes, className);\n\n\treturn (\n\t\t<Component className={classList} {...rest}>\n\t\t\t{children}\n\t\t</Component>\n\t);\n};\n","export enum Environment {\n\tLocal = \"local\",\n\tDevelopment = \"dev\",\n\tStaging = \"staging\",\n\tProduction = \"prod\",\n}\n\nconst environmentColors: Record<\n\tExclude<Environment, Environment.Production>,\n\tstring\n> = {\n\t[Environment.Local]: \"#B482FB\",\n\t[Environment.Development]: \"#5AC39A\",\n\t[Environment.Staging]: \"#FFCA28\",\n};\n\n/**\n * Gets the color for the given environment. This is the color used for the environment\n * indicator. There is no color for production as it should not have any special environment\n * indication.\n */\nexport const getColorForEnvironment = (\n\tenvironment: Exclude<Environment, Environment.Production>,\n) => environmentColors[environment];\n\nconst humanReadableEnvironment: Record<Environment, string> = {\n\t[Environment.Local]: \"Local\",\n\t[Environment.Development]: \"Dev\",\n\t[Environment.Staging]: \"Staging\",\n\t[Environment.Production]: \"Prod\",\n};\n\nexport const getHumanReadableEnvironment = (environment: Environment) =>\n\thumanReadableEnvironment[environment];\n","/** biome-ignore-all lint/suspicious/noArrayIndexKey: Ignore for now. Should be tested properly before doing changes */\nimport React, { Children, type ReactNode } from \"react\";\n\nimport { Box, type ResponsiveStyleSpacing } from \"./Box\";\n\nexport interface StackProps {\n\tclassName?: string;\n\tchildren: ReactNode;\n\tspace: ResponsiveStyleSpacing;\n}\n\nexport const Stack = ({ children, space, className }: StackProps) => {\n\tconst stackItems = Children.toArray(children);\n\tif (stackItems.length <= 1) {\n\t\treturn <>{stackItems}</>;\n\t}\n\n\treturn (\n\t\t<div className={className}>\n\t\t\t{stackItems.map((child, index) =>\n\t\t\t\tindex === stackItems.length - 1 ? (\n\t\t\t\t\t<div key={index}>{child}</div>\n\t\t\t\t) : (\n\t\t\t\t\t<Box paddingBottom={space} key={index}>\n\t\t\t\t\t\t{child}\n\t\t\t\t\t</Box>\n\t\t\t\t),\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import React from \"react\";\n\ntype ProjectContextType = {\n\tdefaultProjectId: string;\n\tprojectName: string;\n};\n\nconst ProjectContext = React.createContext<ProjectContextType | undefined>(\n\tundefined,\n);\n\nexport const useProject = () => {\n\tconst context = React.useContext(ProjectContext);\n\tif (!context) {\n\t\tthrow new Error(\"Must be used within a ProjectProvider\");\n\t}\n\treturn {\n\t\tdefaultProjectId: context.defaultProjectId,\n\t\tprojectName: context.projectName,\n\t};\n};\n\ntype ProjectProviderProps = {\n\tdefaultProjectId: string;\n\tprojectName: string;\n\tchildren: React.ReactNode;\n};\n/**\n * A Provider to sync project id across micro-frontends. Used by useNavigateParams to ensure project id is always present in the url.\n */\nexport const ProjectProvider = ({\n\tdefaultProjectId,\n\tprojectName,\n\tchildren,\n}: ProjectProviderProps) => {\n\treturn (\n\t\t<ProjectContext.Provider value={{ defaultProjectId, projectName }}>\n\t\t\t{children}\n\t\t</ProjectContext.Provider>\n\t);\n};\n","import \"./ConfirmModal.scss\";\n\nimport { ButtonGroup, PrimaryButton, SecondaryButton } from \"@entur/button\";\nimport { Modal, type ModalProps } from \"@entur/modal\";\nimport { Paragraph } from \"@entur/typography\";\nimport { isString } from \"@entur-partner/util\";\nimport type { FC, ReactNode } from \"react\";\nimport React from \"react\";\n\nimport { Box } from \"./Box\";\n\nexport interface BaseConfirmModalProps extends Partial<ModalProps> {\n\ttitle: string;\n\tchildren: React.ReactNode;\n\tcloseLabel: string;\n\n\t/** Deprecated use children prop */\n\tmessage?: ReactNode;\n\t/** Deprecated use open prop */\n\tisOpen?: boolean;\n\t/** Deprecated use onDismiss prop */\n\tonClose?: () => void;\n}\n\ninterface CustomConfirmModalButtons extends BaseConfirmModalProps {\n\tbuttons: ReactNode[];\n}\n\ninterface DefaultConfirmModalHandler extends BaseConfirmModalProps {\n\tonConfirm: () => void;\n\tmessages: {\n\t\tconfirm: string;\n\t\tcancel: string;\n\t};\n}\n\nexport type ConfirmModalProps =\n\t| CustomConfirmModalButtons\n\t| DefaultConfirmModalHandler;\n\nexport const ConfirmModal: FC<ConfirmModalProps> = ({\n\tisOpen = false,\n\tchildren,\n\tmessage,\n\tsize = \"medium\",\n\tbuttons,\n\tonConfirm,\n\tmessages,\n\tonClose,\n\tonDismiss,\n\t...rest\n}) => {\n\tconst childrenToRender = children ? children : message;\n\tconst handleDismiss = onClose ? onClose : onDismiss;\n\treturn (\n\t\t<Modal size={size} open={isOpen} onDismiss={handleDismiss} {...rest}>\n\t\t\t{isString(childrenToRender) ? (\n\t\t\t\t<Paragraph>{childrenToRender}</Paragraph>\n\t\t\t) : (\n\t\t\t\t<Box paddingBottom=\"medium\">{childrenToRender}</Box>\n\t\t\t)}\n\n\t\t\t<ButtonGroup>\n\t\t\t\t{onConfirm ? (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<SecondaryButton\n\t\t\t\t\t\t\tonClick={handleDismiss}\n\t\t\t\t\t\t\tdata-testid=\"cancel-modal-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{messages.cancel}\n\t\t\t\t\t\t</SecondaryButton>\n\t\t\t\t\t\t<PrimaryButton\n\t\t\t\t\t\t\tonClick={onConfirm}\n\t\t\t\t\t\t\tdata-testid=\"confirm-modal-button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{messages.confirm}\n\t\t\t\t\t\t</PrimaryButton>\n\t\t\t\t\t</>\n\t\t\t\t) : (\n\t\t\t\t\tbuttons\n\t\t\t\t)}\n\t\t\t</ButtonGroup>\n\t\t</Modal>\n\t);\n};\n","import \"./EnturPartnerLogo.scss\";\n\nimport classnames from \"classnames\";\nimport type { FC } from \"react\";\nimport React from \"react\";\n\nimport { Environment, getColorForEnvironment } from \"./environment\";\n\ninterface LogoProps {\n\ttitle: string;\n\tclassName?: string;\n\taccentColor?: string;\n\t[key: string]: object | string | number | boolean | undefined;\n}\n\nexport const EnturPartnerLogoSvg: FC<LogoProps> = ({\n\ttitle,\n\taccentColor = \"#FF5959\",\n\t...rest\n}) => {\n\treturn (\n\t\t<svg width={257} height={37} viewBox=\"0 0 257 37\" {...rest}>\n\t\t\t<title>{title}</title>\n\t\t\t<g fill=\"none\" fillRule=\"evenodd\">\n\t\t\t\t<path\n\t\t\t\t\tfill=\"#FFF\"\n\t\t\t\t\td=\"M0 .231V25.72h18.745v-4.318H4.869v-6.163h12.31v-4.318H4.87V4.55h13.876V.231z\"\n\t\t\t\t/>\n\t\t\t\t<path fill={accentColor} d=\"M0 36.408h45.253v-4.32H0z\" />\n\t\t\t\t<path\n\t\t\t\t\tfill=\"#FFF\"\n\t\t\t\t\td=\"M40.384.231v15.425L23.656.231h-.521V25.72h4.869V10.573L44.732 25.72h.521V.23zM69.25 15.238h-7.267v21.17h-4.87v-21.17H49.81V10.92h19.44zM83.863 36.86c-1.646 0-3.142-.255-4.486-.765-1.345-.51-2.493-1.23-3.443-2.159-.95-.928-1.687-2.054-2.208-3.378-.522-1.323-.783-2.797-.783-4.422V10.92h4.869v15.216c0 1.277.209 2.333.626 3.169.417.836.933 1.497 1.548 1.985a5.346 5.346 0 001.982 1.01c.707.186 1.339.278 1.895.278.557 0 1.188-.092 1.896-.279a5.35 5.35 0 001.982-1.01c.614-.487 1.13-1.148 1.548-1.984.417-.836.625-1.892.625-3.169V10.92h4.87v15.216c0 1.625-.256 3.1-.766 4.422-.51 1.324-1.24 2.45-2.19 3.378-.952.929-2.1 1.648-3.444 2.159-1.344.51-2.851.766-4.52.766M104.21 24.047h5.546c1.016 0 1.854-.127 2.513-.383.658-.255 1.179-.592 1.56-1.01.381-.418.641-.888.78-1.41.138-.522.208-1.05.208-1.584 0-.627-.099-1.207-.295-1.741a3.718 3.718 0 00-.901-1.393c-.405-.394-.924-.708-1.56-.94-.636-.232-1.404-.348-2.305-.348h-5.546v8.81zm0 4.248v8.113h-4.87V10.92h11.567c1.3 0 2.49.215 3.57.644 1.08.43 2.004 1.033 2.77 1.81a8.287 8.287 0 011.794 2.787c.43 1.079.645 2.257.645 3.534 0 .952-.128 1.874-.383 2.768-.256.894-.61 1.7-1.063 2.42a7.32 7.32 0 01-1.672 1.863 5.929 5.929 0 01-2.178 1.096l6.339 8.566h-5.808l-5.893-8.113h-4.818z\"\n\t\t\t\t/>\n\t\t\t\t<g fill={accentColor}>\n\t\t\t\t\t<path d=\"M141.051 23.448h5.628c4.185 0 5.989-1.984 5.989-4.942 0-2.742-1.515-4.618-5.989-4.618h-5.628v9.56zm0 3.067v9.776h-3.571V10.75h9.632c6.674 0 9.127 3.211 9.127 7.54 0 4.979-3.102 8.226-9.2 8.226h-5.988zM169.695 28.715c-1.371-.288-2.958-.505-4.401-.505-2.85 0-4.041 1.263-4.041 3.139s1.407 2.706 3.463 2.706c2.49 0 4.979-1.443 4.979-4.221v-1.119zm-4.293-2.958c1.551 0 3.174.253 4.293.469v-.83c0-2.525-1.154-3.896-4.33-3.896-2.164 0-3.824.866-4.942 2.092l-2.02-2.272c1.732-1.66 3.644-2.598 7.07-2.598 5.052 0 7.469 1.876 7.469 7.215v10.354h-3.211V34.02h-.108c-1.082 1.767-3.211 2.705-5.592 2.705-3.32 0-6.241-1.66-6.241-5.303 0-3.103 1.912-5.664 7.612-5.664zM178.965 19.191h3.211v2.886h.108c.938-1.984 2.922-3.355 5.231-3.355.47 0 .938.036 1.335.144l-.144 3.14a6.77 6.77 0 00-1.552-.181c-3.246 0-4.798 2.633-4.798 5.483v8.983h-3.39v-17.1zM199.961 36.291h-1.912c-4.004 0-5.988-.938-5.988-5.772v-8.55h-2.778V19.19h2.778v-4.654h3.355v4.654h4.473v2.778h-4.473v7.973c0 3.427 1.587 3.535 3.319 3.535h1.226v2.814zM219.767 36.291h-3.391V26.84c0-2.778-1.083-5.375-4.257-5.375-3.14 0-5.268 2.597-5.268 6.169v8.658h-3.391v-17.1h3.32v2.814h.143c.794-1.623 3.067-3.283 5.99-3.283 4.941 0 6.854 3.644 6.854 8.081v9.488zM227.847 26.262h10.57c0-2.597-2.272-4.726-5.087-4.726-2.922 0-5.014 1.948-5.483 4.726zm-.036 2.453c.397 3.355 2.633 5.195 5.844 5.195 2.778 0 4.618-1.623 5.484-2.67l2.164 1.804c-1.37 1.913-4.365 3.716-8.045 3.716-4.942 0-8.73-3.535-8.73-8.55 0-5.195 3.752-9.488 8.983-9.488 5.303 0 8.009 4.365 8.009 8.19 0 .649-.036 1.226-.072 1.803H227.81zM246.245 19.191h3.21v2.886h.109c.938-1.984 2.922-3.355 5.231-3.355.469 0 .938.036 1.335.144l-.145 3.14a6.77 6.77 0 00-1.551-.181c-3.247 0-4.798 2.633-4.798 5.483v8.983h-3.391v-17.1z\" />\n\t\t\t\t</g>\n\t\t\t</g>\n\t\t</svg>\n\t);\n};\n\ninterface EnturPartnerLogoProps {\n\taltText: string;\n\tas?: \"div\" | React.ElementType;\n\tclassName?: string;\n\tenvironment?: Environment;\n}\n\nexport const EnturPartnerLogo: FC<EnturPartnerLogoProps> = ({\n\tas: Component = \"nav\",\n\tclassName,\n\taltText,\n\tenvironment,\n}) => {\n\tconst classList = classnames([\"eps-logo-wrapper\", className]);\n\n\treturn (\n\t\t<Component className={classList}>\n\t\t\t<EnturPartnerLogoSvg\n\t\t\t\ttitle={altText}\n\t\t\t\tclassName=\"logo\"\n\t\t\t\taccentColor={\n\t\t\t\t\tenvironment !== undefined && environment !== Environment.Production\n\t\t\t\t\t\t? getColorForEnvironment(environment)\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t/>\n\t\t</Component>\n\t);\n};\n","import { BannerAlertBox } from \"@entur/alert\";\nimport { PrimaryButton } from \"@entur/button\";\nimport { Paragraph } from \"@entur/typography\";\nimport { isFunction } from \"@entur-partner/util\";\nimport React, { Component, type ErrorInfo, type ReactNode } from \"react\";\nimport { Box } from \"./Box\";\n\ntype FallbackOptions = {\n\tretry: () => void;\n\terror: Error;\n};\n\ntype RenderProp = (options: FallbackOptions) => ReactNode;\n\ntype Props = {\n\thandleError?: (error: Error, errorInfo: ErrorInfo) => void;\n\tfallback: ReactNode | RenderProp;\n\tchildren: ReactNode;\n};\n\ntype State = {\n\terror: null | Error;\n};\n\nconst newAppVersionErrorMessage =\n\t\"Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.\";\n\nexport class ErrorBoundary extends Component<Props, State> {\n\tconstructor(props: Props) {\n\t\tsuper(props);\n\t\tthis.state = { error: null };\n\t}\n\n\tstatic getDerivedStateFromError(error: Error): State {\n\t\treturn {\n\t\t\terror,\n\t\t};\n\t}\n\n\tcomponentDidCatch(error: Error, errorInfo: ErrorInfo) {\n\t\t// React always logs in development\n\t\tthis.props.handleError?.(error, errorInfo);\n\t}\n\n\trender() {\n\t\tconst { error } = this.state;\n\t\tconst { fallback, children } = this.props;\n\n\t\tif (error) {\n\t\t\tif (isFunction<RenderProp>(fallback)) {\n\t\t\t\treturn fallback({ retry: () => this.setState({ error: null }), error });\n\t\t\t} else if (\n\t\t\t\terror.name === \"NotFoundError\" &&\n\t\t\t\terror.message === newAppVersionErrorMessage\n\t\t\t) {\n\t\t\t\treturn <RefreshBannerInfo />;\n\t\t\t}\n\n\t\t\treturn fallback;\n\t\t}\n\n\t\treturn children;\n\t}\n}\n\nexport const LANGUAGE_STORAGE_KEY = \"EP::locale\";\n\nfunction RefreshBannerInfo() {\n\t// Taken from ./app-shell/src/storage.ts\n\tconst language = localStorage.getItem(LANGUAGE_STORAGE_KEY);\n\tconst isNorwegian = language === \"nb\" || language === \"nb-NO\";\n\treturn (\n\t\t<Box maxWidth=\"large\">\n\t\t\t<BannerAlertBox\n\t\t\t\tvariant=\"info\"\n\t\t\t\ttitle={\n\t\t\t\t\tisNorwegian\n\t\t\t\t\t\t? \"En ny versjon av nettsiden er tilgjengelig.\"\n\t\t\t\t\t\t: \"A new version of the website is available.\"\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t<Box paddingBottom=\"medium\">\n\t\t\t\t\t<Paragraph margin=\"none\">\n\t\t\t\t\t\t{isNorwegian ? \"Vennligst oppdater.\" : \"Please refresh.\"}\n\t\t\t\t\t</Paragraph>\n\t\t\t\t</Box>\n\t\t\t\t<PrimaryButton onClick={() => window.location.reload()}>\n\t\t\t\t\t{isNorwegian ? \"Oppdater\" : \"Refresh\"}\n\t\t\t\t</PrimaryButton>\n\t\t\t</BannerAlertBox>\n\t\t</Box>\n\t);\n}\n","/// <reference types=\"vite/client\" />\nimport React, { type ReactNode } from \"react\";\n\n/**\n * Returns true if the provided flag exist in localStorage\n * or is set as an environment variable.\n *\n * @param flag case sensitive flag. If it is an environment variable\n * you can drop the VITE_APP_ prefix.\n */\nexport function featureFlag(flag: string): boolean {\n\treturn (\n\t\timport.meta.env[`VITE_APP_${flag}`] === \"true\" ||\n\t\twindow.localStorage?.getItem(flag) === \"true\" ||\n\t\twindow.localStorage?.getItem(`VITE_APP_${flag}`) === \"true\"\n\t);\n}\n\n/**\n * Returns true if the provided flag exist in localStorage\n * or is set as an environment variable.\n *\n * @param flag case sensitive flag. If it is an environment variable\n * you can drop the VITE_APP_ prefix.\n */\nexport function useFeatureToggle(flag: string): boolean {\n\treturn featureFlag(flag);\n}\n\nexport interface FeatureToggleProps {\n\t/** Visible if flag exist, hidden if not.*/\n\tchildren: ReactNode;\n\t/** Case sensitive flag. If it is an environment variable\n\t * you can drop the VITE_APP_ prefix. */\n\tflag: string;\n}\n\nexport const FeatureToggle = ({ children, flag }: FeatureToggleProps) => {\n\tconst feature = useFeatureToggle(flag);\n\tif (feature) {\n\t\treturn <>{children}</>;\n\t}\n\treturn null;\n};\n","import \"./LanguageSelect.scss\";\n\nimport { SegmentedChoice, SegmentedControl } from \"@entur/form\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport cx from \"classnames\";\nimport React, { type FC } from \"react\";\n\nexport type LanguageKey = \"nob\" | \"nno\" | \"eng\";\n\nexport interface LanguageOption {\n\tvalue: LanguageKey;\n\tlabel: string;\n\trequired: boolean;\n}\n\nexport interface LanguageSelectProps {\n\tlanguage: string;\n\toptions: LanguageOption[];\n\tclassName?: string;\n\tonChange: (language: string) => void;\n\t[key: string]: object | string | number | boolean | undefined;\n}\n\nexport const LanguageSelect: FC<LanguageSelectProps> = ({\n\tlanguage,\n\toptions,\n\tclassName,\n\tonChange,\n\t...rest\n}) => {\n\tconst classNames = cx(\"eps-language-select\", className);\n\treturn (\n\t\t<div {...rest} className={classNames}>\n\t\t\t<SegmentedControl\n\t\t\t\tonChange={(language) => {\n\t\t\t\t\tassertIsDefined(language);\n\t\t\t\t\tonChange(language);\n\t\t\t\t}}\n\t\t\t\tselectedValue={language}\n\t\t\t>\n\t\t\t\t{options.map((option) => (\n\t\t\t\t\t<SegmentedChoice key={option.value} value={option.value}>\n\t\t\t\t\t\t{option.label}\n\t\t\t\t\t\t{option.required && <span className=\"asterisk-margin\">{\"*\"}</span>}\n\t\t\t\t\t</SegmentedChoice>\n\t\t\t\t))}\n\t\t\t</SegmentedControl>\n\t\t</div>\n\t);\n};\n","import { splitUrlPath } from \"@entur-partner/util\";\nimport { useEffect } from \"react\";\n\ntype DocumentTitleProps = {\n\ttitle: string;\n\tsuffix?: string;\n};\n\nexport const useDocumentTitle = ({ title, suffix }: DocumentTitleProps) => {\n\tuseEffect(() => {\n\t\tif (suffix) {\n\t\t\tdocument.title = `${title}${suffix}`;\n\t\t} else {\n\t\t\tdocument.title = title;\n\t\t}\n\t}, [title, suffix]);\n};\n\ntype Props = {\n\treadonly pathname: string;\n\treadonly onBreadcrumbLookup: (path: string) => string | undefined;\n\treadonly appTitle?: string;\n};\n\nexport const PageTitle = ({\n\tpathname,\n\tonBreadcrumbLookup,\n\tappTitle = \"Entur Partner\",\n}: Props) => {\n\tconst paths: string[] = splitUrlPath(pathname);\n\n\tconst pageTitles = paths\n\t\t.map((path) => ({ title: onBreadcrumbLookup(path), path }))\n\t\t.filter(({ title }) => title !== undefined)\n\t\t.map(({ title }) => title)\n\t\t.reverse()\n\t\t.join(\" | \");\n\n\tconst title = pageTitles ? `${pageTitles} | ${appTitle}` : appTitle;\n\n\tuseDocumentTitle({ title });\n\n\treturn null;\n};\n","import \"../index.scss\";\n\nimport cx from \"classnames\";\nimport React from \"react\";\n\nexport const CustomOverflowMenuItem: React.FC<\n\tReact.DetailedHTMLProps<\n\t\tReact.ButtonHTMLAttributes<HTMLButtonElement>,\n\t\tHTMLButtonElement\n\t>\n> = (props) => {\n\treturn (\n\t\t<button\n\t\t\tclassName={cx(props.className, \"eps-overflow-menu__item\")}\n\t\t\trole=\"menuitem\"\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n","import \"../index.scss\";\n\nimport { CookieIcon } from \"@entur/icons\";\nimport React from \"react\";\n\nimport { CustomOverflowMenuItem } from \"./CustomOverflowMenuItem\";\n\ntype Props = {\n\tname: string;\n\tsetOpen: (open: boolean) => void;\n\tonCookieSettingsOpen: () => void;\n};\n\nexport const CookieSettingsMenuItem = ({\n\tname,\n\tsetOpen,\n\tonCookieSettingsOpen,\n}: Props) => {\n\treturn (\n\t\t<CustomOverflowMenuItem\n\t\t\tonClick={() => {\n\t\t\t\tonCookieSettingsOpen();\n\t\t\t\tsetOpen(false);\n\t\t\t}}\n\t\t\tclassName=\"eps-overflow-menu__item\"\n\t\t>\n\t\t\t<span aria-hidden={true}>\n\t\t\t\t<CookieIcon size=\"1rem\" inline />\n\t\t\t</span>\n\t\t\t{name}\n\t\t</CustomOverflowMenuItem>\n\t);\n};\n","import React from \"react\";\n\nexport function useOutsideClick(\n\tref: React.RefObject<HTMLDivElement>,\n\tbuttonRef: React.RefObject<HTMLButtonElement>,\n\thandler: () => void,\n) {\n\tReact.useEffect(() => {\n\t\tconst listener = (event: Event) => {\n\t\t\tif (\n\t\t\t\telementContainsEventTarget(ref.current, event) ||\n\t\t\t\telementContainsEventTarget(buttonRef.current, event)\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\thandler();\n\t\t};\n\n\t\tdocument.addEventListener(\"mousedown\", listener);\n\t\tdocument.addEventListener(\"touchstart\", listener);\n\n\t\treturn () => {\n\t\t\tdocument.removeEventListener(\"mousedown\", listener);\n\t\t\tdocument.removeEventListener(\"touchstart\", listener);\n\t\t};\n\t}, [ref, buttonRef, handler]);\n}\n\nfunction elementContainsEventTarget(element: HTMLElement | null, event: Event) {\n\tif (!element) {\n\t\treturn false;\n\t}\n\n\tif (element.contains(event.target as Node)) {\n\t\treturn true;\n\t}\n\n\t// For elements inside a Shadow DOM we need to check the composedPath\n\tif (event.composed && event.composedPath) {\n\t\tconst contains = event.composedPath().find((target) => {\n\t\t\tif (target === window) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn element.contains(target as Node);\n\t\t});\n\t\treturn !!contains;\n\t}\n\n\treturn false;\n}\n","import \"../index.scss\";\n\nimport { SecondaryButton } from \"@entur/button\";\nimport { DownArrowIcon, UserIcon } from \"@entur/icons\";\nimport { Heading6 } from \"@entur/typography\";\nimport cx from \"classnames\";\nimport React from \"react\";\n\nimport {\n\tEnvironment,\n\tgetColorForEnvironment,\n\tgetHumanReadableEnvironment,\n} from \"../../environment\";\nimport { useOutsideClick } from \"../useOutsideClick\";\n\nexport const CustomOverflowMenu: React.FC<{\n\tclassName?: string;\n\tchildren: React.ReactNode;\n\tuserName: string;\n\topen: boolean;\n\tonOpenChange: (open: boolean) => void;\n\tenvironment?: Environment;\n}> = ({\n\tclassName,\n\tchildren,\n\tuserName,\n\topen,\n\tonOpenChange,\n\tenvironment,\n\t...rest\n}) => {\n\tconst overflowItemsClasses = cx(\"eps-overflow-menu__group\", {\n\t\t\"eps-overflow-menu__group--open\": open,\n\t});\n\tconst overflowContentRef = React.useRef<HTMLDivElement>(null);\n\tconst overflowMenuTriggerRef = React.useRef<HTMLButtonElement>(null);\n\tuseOutsideClick(overflowContentRef, overflowMenuTriggerRef, () =>\n\t\tonOpenChange(false),\n\t);\n\treturn (\n\t\t<div>\n\t\t\t<SecondaryButton\n\t\t\t\tclassName={cx(\"eps-overflow-menu__button\", className)}\n\t\t\t\tonClick={() => onOpenChange(!open)}\n\t\t\t\taria-haspopup={true}\n\t\t\t\taria-expanded={open}\n\t\t\t\tref={overflowMenuTriggerRef}\n\t\t\t\t{...rest}\n\t\t\t>\n\t\t\t\t<div className=\"eps-overflow-menu__button-contents\">\n\t\t\t\t\t<span className=\"eds-overflow-menu__user-icon\">\n\t\t\t\t\t\t<UserIcon inline />\n\t\t\t\t\t</span>\n\t\t\t\t\t<Heading6 margin=\"none\" as=\"span\">\n\t\t\t\t\t\t{userName}\n\t\t\t\t\t\t{environment !== undefined &&\n\t\t\t\t\t\t\tenvironment !== Environment.Production && (\n\t\t\t\t\t\t\t\t<span style={{ color: getColorForEnvironment(environment) }}>\n\t\t\t\t\t\t\t\t\t{\" \"}\n\t\t\t\t\t\t\t\t\t({getHumanReadableEnvironment(environment)})\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t</Heading6>\n\t\t\t\t\t<span className=\"eps-arrow-icon\">\n\t\t\t\t\t\t<DownArrowIcon inline />\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t</SecondaryButton>\n\t\t\t{open && (\n\t\t\t\t<div\n\t\t\t\t\tclassName={overflowItemsClasses}\n\t\t\t\t\trole=\"menu\"\n\t\t\t\t\tref={overflowContentRef}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</div>\n\t);\n};\n","import \"../index.scss\";\n\nimport { NorwayIcon, UKIcon } from \"@entur/icons\";\nimport React from \"react\";\n\nimport { useFeatureToggle } from \"../../FeatureToggle\";\nimport { CustomOverflowMenuItem } from \"./CustomOverflowMenuItem\";\n\ntype Props = {\n\tlanguage: string;\n\tonLanguageChange: (language: string) => void;\n\tsetOpen: (open: boolean) => void;\n\tname: string;\n};\n\nexport const LanguageSwitchMenuItem = ({\n\tlanguage,\n\tonLanguageChange,\n\tsetOpen,\n\tname,\n}: Props) => {\n\tconst useB47LanguageKey = useFeatureToggle(\"USE_BCP-47_LANGUAGE_KEY\");\n\tconst norwegianLanguageKey = useB47LanguageKey ? \"nb-NO\" : \"nb\";\n\tconst englishLanguageKey = useB47LanguageKey ? \"en-GB\" : \"en\";\n\n\treturn (\n\t\t<>\n\t\t\t{language === englishLanguageKey ? (\n\t\t\t\t<CustomOverflowMenuItem\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tonLanguageChange(norwegianLanguageKey);\n\t\t\t\t\t\tsetOpen(false);\n\t\t\t\t\t}}\n\t\t\t\t\tclassName=\"eps-overflow-menu__item\"\n\t\t\t\t>\n\t\t\t\t\t<span aria-hidden className=\"eps-overflow-menu__icon-margin\">\n\t\t\t\t\t\t<NorwayIcon size=\"1rem\" inline />\n\t\t\t\t\t</span>\n\t\t\t\t\t{name}\n\t\t\t\t</CustomOverflowMenuItem>\n\t\t\t) : (\n\t\t\t\t<CustomOverflowMenuItem\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tonLanguageChange(englishLanguageKey);\n\t\t\t\t\t\tsetOpen(false);\n\t\t\t\t\t}}\n\t\t\t\t\tclassName=\"eps-overflow-menu__item\"\n\t\t\t\t>\n\t\t\t\t\t<span aria-hidden className=\"eps-overflow-menu__icon-margin\">\n\t\t\t\t\t\t<UKIcon size=\"1rem\" inline />\n\t\t\t\t\t</span>\n\t\t\t\t\t{name}\n\t\t\t\t</CustomOverflowMenuItem>\n\t\t\t)}\n\t\t</>\n\t);\n};\n","import \"../index.scss\";\n\nimport { LogOutIcon } from \"@entur/icons\";\nimport React from \"react\";\n\nimport { CustomOverflowMenuItem } from \"./CustomOverflowMenuItem\";\n\ntype Props = {\n\tname: string;\n\tsetOpen: (open: boolean) => void;\n\tonLogout: () => void;\n};\n\nexport const LogOutMenuItem = ({ name, setOpen, onLogout }: Props) => {\n\treturn (\n\t\t<CustomOverflowMenuItem\n\t\t\tonClick={() => {\n\t\t\t\tonLogout();\n\t\t\t\tsetOpen(false);\n\t\t\t}}\n\t\t\tdata-testid=\"user-menu-logout\"\n\t\t\tclassName=\"eps-overflow-menu__item\"\n\t\t>\n\t\t\t<span aria-hidden>\n\t\t\t\t<LogOutIcon size=\"1rem\" inline />\n\t\t\t</span>\n\t\t\t{name}\n\t\t</CustomOverflowMenuItem>\n\t);\n};\n","import \"../index.scss\";\n\nimport { UserIcon } from \"@entur/icons\";\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\n\nimport { CustomOverflowMenuItem } from \"./CustomOverflowMenuItem\";\n\ntype Props = {\n\tname: string;\n\tsetOpen: (open: boolean) => void;\n\tonNavigateToMyProfile: () => void;\n};\n\nexport const UserMenuItem = ({\n\tname,\n\tsetOpen,\n\tonNavigateToMyProfile,\n}: Props) => {\n\treturn (\n\t\t<Link to=\"/permission-admin/my-profile\" style={{ textDecoration: \"none\" }}>\n\t\t\t<CustomOverflowMenuItem\n\t\t\t\tonClick={() => {\n\t\t\t\t\tsetOpen(false);\n\t\t\t\t\tonNavigateToMyProfile();\n\t\t\t\t}}\n\t\t\t\tclassName=\"eps-overflow-menu__item\"\n\t\t\t>\n\t\t\t\t<span aria-hidden>\n\t\t\t\t\t<UserIcon size=\"1rem\" inline />\n\t\t\t\t</span>\n\t\t\t\t{name}\n\t\t\t</CustomOverflowMenuItem>\n\t\t</Link>\n\t);\n};\n","import { ChannelsIcon } from \"@entur/icons\";\nimport React from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nimport { CustomOverflowMenuItem } from \"./CustomOverflowMenuItem\";\n\nexport const VersionMenuItem: React.FC<{\n\ttitle: string;\n\tsetOpen: (isOpen: boolean) => void;\n}> = ({ title, setOpen }) => {\n\tconst navigate = useNavigate(); // Hide useNavigate from standalone micro-frontends because it is not under RouterProvider\n\treturn (\n\t\t<CustomOverflowMenuItem\n\t\t\tonClick={() => {\n\t\t\t\tnavigate(\"/app-version\");\n\t\t\t\tsetOpen(false);\n\t\t\t}}\n\t\t\tclassName=\"eps-overflow-menu__item\"\n\t\t>\n\t\t\t<span aria-hidden>\n\t\t\t\t<ChannelsIcon className=\"eps-version-icon\" size=\"1rem\" inline />\n\t\t\t</span>\n\t\t\t{title}\n\t\t</CustomOverflowMenuItem>\n\t);\n};\n","import \"./ActionBar.scss\";\nimport React, { type ReactNode } from \"react\";\n\nexport interface ActionBarProps {\n\tchildren: ReactNode;\n}\n\nconst ActionBarLeft = ({ children }: ActionBarProps) => {\n\treturn <div className=\"eps-action-bar-left\">{children}</div>;\n};\n\nconst ActionBarRight = ({ children }: ActionBarProps) => {\n\treturn <div className=\"eps-action-bar-right\">{children}</div>;\n};\n\nconst ActionBar = ({ children }: ActionBarProps) => {\n\treturn (\n\t\t<>\n\t\t\t<div className=\"eps-action-bar-padding\" />\n\t\t\t<div className=\"eps-action-bar\">{children}</div>\n\t\t</>\n\t);\n};\n\nexport { ActionBar, ActionBarLeft, ActionBarRight };\n","import \"./AuditInfo.scss\";\n\nimport { isDate, isDateString } from \"@entur-partner/util\";\nimport cx from \"classnames\";\nimport React, { type FC } from \"react\";\n\nimport { FormatDateTime } from \"./FormatDateTime\";\nimport { Stack } from \"./Stack\";\n\ninterface Item {\n\tlabel: string;\n\tvalue: Date | string;\n}\n\nexport interface AuditInfoProps {\n\titems: Item[];\n\tlocale: string;\n\tclassName?: string;\n\t[key: string]: object | string | number | boolean | undefined;\n}\n\nexport const AuditInfo: FC<AuditInfoProps> = ({\n\titems,\n\tlocale,\n\tclassName,\n\t...rest\n}) => {\n\tconst classNames = cx(\"ep-audit-info\", className);\n\treturn (\n\t\t<div className={classNames} {...rest}>\n\t\t\t{items.map(({ label, value }) => (\n\t\t\t\t<Stack space=\"small\" key={value.toString()}>\n\t\t\t\t\t<div className=\"ep-audit-info-label\">{label}</div>\n\t\t\t\t\t<div>\n\t\t\t\t\t\t{isDate(value) || isDateString(value) ? (\n\t\t\t\t\t\t\t<FormatDateTime date={value} locale={locale} />\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<span>{value}</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</div>\n\t\t\t\t</Stack>\n\t\t\t))}\n\t\t</div>\n\t);\n};\n","import \"./Breadcrumbs.scss\";\nimport { BreadcrumbItem, BreadcrumbNavigation } from \"@entur/menu\";\nimport { splitUrlPath } from \"@entur-partner/util\";\nimport React, { type FC, type ReactElement } from \"react\";\nimport { Link, useSearchParams } from \"react-router-dom\";\nimport { useProject } from \"./ProjectProvider\";\n\nexport interface BreadcrumbsProps {\n\tpathname: string;\n\tonBreadcrumbLookup: (path: string) => string | undefined;\n\tprependBreadcrumbItem?: ReactElement;\n}\n\nexport const Breadcrumbs: FC<BreadcrumbsProps> = ({\n\tprependBreadcrumbItem,\n\tpathname,\n\tonBreadcrumbLookup,\n}) => {\n\tconst { projectName, defaultProjectId } = useProject();\n\tconst [searchParams] = useSearchParams();\n\tconst projectValue = searchParams.get(projectName);\n\tconst paths: string[] = splitUrlPath(pathname);\n\n\tconst breadcrumbs = paths\n\t\t.map((path) => ({ title: onBreadcrumbLookup(path), path }))\n\t\t.filter(({ title }) => title !== undefined);\n\n\tconst breadcrumbElements = breadcrumbs.map(({ title, path }, i) => {\n\t\tconst isLast = i === breadcrumbs.length - 1;\n\t\tif (isLast) {\n\t\t\treturn (\n\t\t\t\t<BreadcrumbItem key={path} as={\"span\"}>\n\t\t\t\t\t{title}\n\t\t\t\t</BreadcrumbItem>\n\t\t\t);\n\t\t}\n\t\tif (!projectValue) {\n\t\t\tsearchParams.set(projectName, defaultProjectId);\n\t\t}\n\t\treturn (\n\t\t\t<BreadcrumbItem\n\t\t\t\tkey={path}\n\t\t\t\tas={Link}\n\t\t\t\tto={`${path}?${searchParams.toString()}`}\n\t\t\t>\n\t\t\t\t{title}\n\t\t\t</BreadcrumbItem>\n\t\t);\n\t});\n\n\tif (prependBreadcrumbItem) {\n\t\treturn (\n\t\t\t<BreadcrumbNavigation>\n\t\t\t\t{[prependBreadcrumbItem, ...breadcrumbElements]}\n\t\t\t</BreadcrumbNavigation>\n\t\t);\n\t}\n\n\treturn <BreadcrumbNavigation>{breadcrumbElements}</BreadcrumbNavigation>;\n};\n","import \"./Content.scss\";\n\nimport classnames from \"classnames\";\nimport type { FC, ReactNode } from \"react\";\nimport React from \"react\";\n\ninterface ContentProps {\n\tchildren: ReactNode;\n\tas?: \"main\" | React.ElementType;\n\tclassName?: string;\n}\nexport const Content: FC<ContentProps> = ({\n\tas: Component = \"main\",\n\tclassName,\n\tchildren,\n}) => {\n\tconst classList = classnames([\"eps-content\", className]);\n\n\treturn <Component className={classList}>{children}</Component>;\n};\n","import { ExpandablePanel } from \"@entur/expand\";\nimport type { VariantType } from \"@entur/form\";\nimport type { ChangeEvent } from \"react\";\nimport React from \"react\";\n\nimport type { LanguageKey, LanguageOption } from \"./LanguageSelect\";\nimport { Stack } from \"./Stack\";\n\nexport type MultiLanguageValues = Record<LanguageKey, string>;\n\ntype ExpandableMultiLanguageInputProps = {\n\ttitle: string;\n\tinputComponent: React.ElementType;\n\tlanguages: LanguageOption[];\n\tvalues: MultiLanguageValues;\n\tonChange: (values: MultiLanguageValues) => void;\n\tname: string;\n\tvariant?: (lang: LanguageKey) => VariantType;\n\tfeedback?: (lang: LanguageKey) => string;\n\t[key: string]: object | string | number | boolean | undefined;\n};\n\nexport const ExpandableMultiLanguageInput = ({\n\ttitle,\n\tinputComponent: InputComponent,\n\tlanguages,\n\tvalues,\n\tonChange,\n\tname,\n\tvariant,\n\tfeedback,\n\t...rest\n}: ExpandableMultiLanguageInputProps) => {\n\tconst handleOnChange = (language: LanguageKey, value?: string) => {\n\t\tconst changes = { ...values };\n\t\tif (value === \"\" || !value) {\n\t\t\tdelete changes[language];\n\t\t} else {\n\t\t\tchanges[language] = value;\n\t\t}\n\t\tonChange(changes);\n\t};\n\n\treturn (\n\t\t<ExpandablePanel\n\t\t\ttitle={title}\n\t\t\tdefaultOpen\n\t\t\tcontentStyle={{\n\t\t\t\tpadding: \"4px 4px 4px 4px\",\n\t\t\t\tmarginTop: \"16px\",\n\t\t\t\tmarginBottom: \"16px\",\n\t\t\t}}\n\t\t>\n\t\t\t<Stack space=\"medium\">\n\t\t\t\t{languages.map(({ value: langKey, label, required }) => (\n\t\t\t\t\t<InputComponent\n\t\t\t\t\t\tdata-testid={`multi-lang-input-${name}-${langKey}`}\n\t\t\t\t\t\tkey={title + langKey}\n\t\t\t\t\t\tlabel={required ? `${label}*` : label}\n\t\t\t\t\t\tvariant={variant?.(langKey)}\n\t\t\t\t\t\tfeedback={feedback?.(langKey)}\n\t\t\t\t\t\tname={name}\n\t\t\t\t\t\tonChange={(e: ChangeEvent<HTMLInputElement>) => {\n\t\t\t\t\t\t\thandleOnChange(langKey, e.target.value);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tvalue={values[langKey] || \"\"}\n\t\t\t\t\t\t{...rest}\n\t\t\t\t\t/>\n\t\t\t\t))}\n\t\t\t</Stack>\n\t\t</ExpandablePanel>\n\t);\n};\n","import type { FC } from \"react\";\nimport React from \"react\";\n\nexport interface FormatCurrencyAmountProps {\n\tamount: number | string;\n\tas?: \"span\" | React.ElementType;\n\t[key: string]: object | string | number | boolean | undefined;\n}\n\nexport const FormatCurrencyAmount: FC<FormatCurrencyAmountProps> = ({\n\tamount,\n\tas: Component = \"span\",\n\t...rest\n}) => {\n\tconst parsedAmount = Number(amount) || 0;\n\n\tconst formattedAmount = new Intl.NumberFormat(\"nb-NO\", {\n\t\tmaximumFractionDigits: 2,\n\t\tminimumFractionDigits: 2,\n\t}).format(parsedAmount);\n\n\treturn <Component {...rest}>{formattedAmount}</Component>;\n};\n","import { Link as A } from \"@entur/typography\";\nimport React, { type FC } from \"react\";\nimport { type LinkProps, Link as RouterLink } from \"react-router-dom\";\n\ninterface Props extends LinkProps {}\n\nexport const Link: FC<Props> = (props) => {\n\treturn (\n\t\t<A {...props} as={RouterLink}>\n\t\t\t{props.children}\n\t\t</A>\n\t);\n};\n","import \"./LinkButton.scss\";\n\nimport { Link } from \"@entur/typography\";\nimport cx from \"classnames\";\nimport React, { type ReactNode } from \"react\";\n\nexport interface LinkButtonProps {\n\tchildren: ReactNode;\n\tclassName?: string;\n\t[key: string]: object | string | number | boolean | undefined | ReactNode;\n}\n\nexport const LinkButton = ({\n\tchildren,\n\tclassName,\n\t...rest\n}: LinkButtonProps) => (\n\t<Link {...rest} as=\"button\" className={cx(\"eps-link-button\", className)}>\n\t\t{children}\n\t</Link>\n);\n","import \"./Menu.scss\";\n\nimport classnames from \"classnames\";\nimport type { FC, ReactNode } from \"react\";\nimport React from \"react\";\n\ninterface MenuProps {\n\tchildren: ReactNode;\n\tas?: \"div\" | React.ElementType;\n\tclassName?: string;\n}\nexport const Menu: FC<MenuProps> = ({\n\tas: Component = \"nav\",\n\tclassName,\n\tchildren,\n}) => {\n\tconst classList = classnames([\"eds-contrast\", \"eps-menu\", className]);\n\n\treturn <Component className={classList}>{children}</Component>;\n};\n","import \"./MultiLanguageInput.scss\";\n\nimport type { VariantType } from \"@entur/form\";\nimport cx from \"classnames\";\nimport React, {\n\ttype ChangeEvent,\n\ttype FC,\n\ttype FocusEvent,\n\tuseState,\n} from \"react\";\nimport { type LanguageOption, LanguageSelect } from \"./LanguageSelect\";\nimport { Stack } from \"./Stack\";\n\ntype Values = { [key: string]: string };\n\nexport interface MultiLanguageInputProps {\n\tclassName?: string;\n\tonBlur?: (e: FocusEvent<HTMLDivElement>) => void;\n\tinputComponent: React.ElementType;\n\tvalues: { [key: string]: string };\n\tlanguages: LanguageOption[];\n\tonChange: (values: Values) => void;\n\tname: string;\n\talertLevel?: VariantType;\n\talertLabel?: string;\n\tlabel?: string;\n\tdefaultLanguage?: string;\n\t[key: string]: object | string | number | boolean | undefined;\n}\n/**\n * @deprecated use ExpandableMultiLanguageInput\n */\nexport const MultiLanguageInput: FC<MultiLanguageInputProps> = ({\n\tclassName,\n\tinputComponent: InputComponent,\n\talertLabel,\n\talertLevel,\n\tname,\n\tlanguages,\n\tvalues,\n\tonChange,\n\tdefaultLanguage = \"nob\",\n\tlabel = \"\",\n\tonBlur = () => {},\n\t...rest\n}) => {\n\tconst [language, setLanguage] = useState(defaultLanguage);\n\tconst classNames = cx(\"multi-language-input\", className);\n\tconst currentValue = values[language];\n\n\tconst handleOnBlur = (e: FocusEvent<HTMLDivElement>) => {\n\t\te.persist();\n\t\tconst currentTarget = e.currentTarget;\n\t\tsetTimeout(() => {\n\t\t\tif (currentTarget && !currentTarget.contains(document.activeElement)) {\n\t\t\t\tonBlur(e);\n\t\t\t}\n\t\t}, 0);\n\t};\n\n\tconst handleLanguageChange = (language: string) => {\n\t\tsetLanguage(language);\n\t};\n\n\tconst handleOnChange = (value?: string) => {\n\t\tconst changes = Object.assign({}, values);\n\t\tif (value === \"\" || !value) {\n\t\t\tdelete changes[language];\n\t\t} else {\n\t\t\tchanges[language] = value;\n\t\t}\n\t\tonChange(changes);\n\t};\n\n\treturn (\n\t\t// biome-ignore lint/a11y/noStaticElementInteractions: Legacy component\n\t\t<div\n\t\t\tclassName={classNames}\n\t\t\t// biome-ignore lint/a11y/noNoninteractiveTabindex: Legacy component\n\t\t\ttabIndex={0}\n\t\t\tonBlur={handleOnBlur}\n\t\t\tdata-testid={`multi-lang-input-${name}`}\n\t\t>\n\t\t\t<Stack space=\"extraSmall\">\n\t\t\t\t<LanguageSelect\n\t\t\t\t\tlanguage={language}\n\t\t\t\t\toptions={languages}\n\t\t\t\t\tonChange={(lang) => handleLanguageChange(lang)}\n\t\t\t\t/>\n\t\t\t\t<InputComponent\n\t\t\t\t\tlabel={label}\n\t\t\t\t\tvariant={alertLevel}\n\t\t\t\t\tfeedback={alertLabel}\n\t\t\t\t\tname={name}\n\t\t\t\t\tclassName=\"language-item\"\n\t\t\t\t\tonChange={(e: ChangeEvent<HTMLInputElement>) =>\n\t\t\t\t\t\thandleOnChange(e.target.value)\n\t\t\t\t\t}\n\t\t\t\t\tvalue={currentValue || \"\"}\n\t\t\t\t\t{...rest}\n\t\t\t\t/>\n\t\t\t</Stack>\n\t\t</div>\n\t);\n};\n","import { SearchableDropdown } from \"@entur/dropdown\";\nimport React, { type FC, useEffect, useState } from \"react\";\n\ninterface OrganisationV3 {\n\torganisationId: number;\n\ttradingName: string;\n}\n\ninterface OrganisationDropDownProps {\n\tlabel: string;\n\tonChange: (organisationId: number) => void;\n\torganisations: OrganisationV3[];\n\tselectedOrganisationId?: number;\n\t[key: string]: object | string | number | boolean | undefined;\n}\n\nexport const OrganisationDropDown: FC<OrganisationDropDownProps> = ({\n\tlabel,\n\torganisations,\n\tonChange: handleChange,\n\tselectedOrganisationId,\n\t...rest\n}) => {\n\tconst [selectedOrganisation, setSelectedOrganisation] =\n\t\tuseState<OrganisationV3>();\n\n\tuseEffect(() => {\n\t\tsetSelectedOrganisation(\n\t\t\torganisations.find(\n\t\t\t\t(org) => org.organisationId === selectedOrganisationId,\n\t\t\t),\n\t\t);\n\t}, [selectedOrganisationId, organisations]);\n\n\treturn (\n\t\t<SearchableDropdown\n\t\t\tlabel={label}\n\t\t\titems={[\n\t\t\t\t...organisations\n\t\t\t\t\t.sort((a, b) => a.tradingName.localeCompare(b.tradingName, \"nb\"))\n\t\t\t\t\t.map((organisation) => {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tvalue: organisation.organisationId,\n\t\t\t\t\t\t\tlabel: organisation.tradingName,\n\t\t\t\t\t\t};\n\t\t\t\t\t}),\n\t\t\t]}\n\t\t\tselectedItem={\n\t\t\t\tselectedOrganisation\n\t\t\t\t\t? {\n\t\t\t\t\t\t\tvalue: selectedOrganisation.organisationId,\n\t\t\t\t\t\t\tlabel: selectedOrganisation.tradingName,\n\t\t\t\t\t\t}\n\t\t\t\t\t: null\n\t\t\t}\n\t\t\tonChange={(selectedValue) => {\n\t\t\t\tif (selectedValue) {\n\t\t\t\t\thandleChange(selectedValue.value);\n\t\t\t\t}\n\t\t\t}}\n\t\t\tclearable={false}\n\t\t\t{...rest}\n\t\t/>\n\t);\n};\n","import { Pagination } from \"@entur/menu\";\nimport React, { type FC } from \"react\";\n\nexport interface PagerProps {\n\tcurrentPage: number;\n\tcollectionSize: number;\n\tpageSize: number;\n\tonPageChange: (page: number) => void;\n}\n\nexport const Pager: FC<PagerProps> = ({\n\tcollectionSize,\n\tpageSize,\n\tonPageChange,\n\tcurrentPage,\n}) => {\n\tconst pageCount = Math.ceil(collectionSize / pageSize);\n\treturn (\n\t\t<Pagination\n\t\t\tpageCount={pageCount}\n\t\t\tcurrentPage={currentPage}\n\t\t\tonPageChange={(page) => {\n\t\t\t\tonPageChange(page);\n\t\t\t}}\n\t\t/>\n\t);\n};\n","import type { BusinessCapability } from \"@entur-partner/permission-client-node\";\nimport { hasAllPermissions, hasOneOfPermissions } from \"@entur-partner/util\";\nimport React, { type FC, type ReactNode } from \"react\";\n\n/**\n * Note: We use BusinessCapability here, not because we only want to check\n * BusinessCapabilities but because it represents a minimal subset of what we\n * need to check.\n */\nexport interface PermissionCheckProps {\n\tchildren: ReactNode;\n\t/** User permissions to check */\n\tpermissions: BusinessCapability[];\n\t/** Check that at least one of the permissions is present */\n\toneOf?: BusinessCapability[];\n\t/** Check that all of the permissions is present */\n\tall?: BusinessCapability[] | BusinessCapability;\n\t/** Rendered if check fails. Defaults to null */\n\tfallback?: ReactNode;\n}\n\n/**\n * Note: This component uses BusinessCapability, not because we only want to\n * check BusinessCapabilities but because it represents a minimal subset of\n * what we need to check.\n */\nexport const PermissionCheck: FC<PermissionCheckProps> = ({\n\tchildren,\n\tfallback = null,\n\tpermissions,\n\toneOf = [],\n\tall = [],\n}) => {\n\tconst allIsAllowed = hasAllPermissions(all, permissions);\n\n\tconst oneOfIsAllowed = hasOneOfPermissions(oneOf, permissions);\n\n\tconst allowed = allIsAllowed && oneOfIsAllowed;\n\treturn <>{allowed ? children : fallback}</>;\n};\n","import type { ModalProps } from \"@entur/modal\";\nimport { assertIsDefined } from \"@entur-partner/util\";\nimport type { Location } from \"history\";\nimport React, { type FC, type ReactNode } from \"react\";\nimport { useBlocker, useInRouterContext } from \"react-router-dom\";\n\nimport { ConfirmModal } from \"./ConfirmModal\";\n\nexport interface RouteLeavingGuardProps extends Partial<ModalProps> {\n\ttitle: string;\n\tcloseLabel: string;\n\tmessages: {\n\t\tcancel: string;\n\t\tconfirm: string;\n\t};\n\tchildren: ReactNode;\n\tshouldBlockNavigation: (location: Location) => boolean;\n}\n\nexport const RouteLeavingGuard: FC<RouteLeavingGuardProps> = ({\n\tchildren,\n\tshouldBlockNavigation,\n\t...rest\n}) => {\n\tassertIsDefined(\n\t\tuseInRouterContext() ? true : undefined,\n\t\t`RouteLeavingGuard must be used within a data router.`,\n\t);\n\n\tconst blocker = useBlocker(\n\t\t({ currentLocation, nextLocation }) =>\n\t\t\tcurrentLocation.pathname !== nextLocation.pathname &&\n\t\t\tshouldBlockNavigation(nextLocation),\n\t);\n\n\treturn (\n\t\t<ConfirmModal\n\t\t\tonDismiss={() => {\n\t\t\t\tif (blocker.state === \"blocked\") {\n\t\t\t\t\tblocker.reset();\n\t\t\t\t}\n\t\t\t}}\n\t\t\topen={blocker.state === \"blocked\"}\n\t\t\tonConfirm={() => {\n\t\t\t\tif (blocker.state === \"blocked\") {\n\t\t\t\t\tblocker.proceed();\n\t\t\t\t}\n\t\t\t}}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{children}\n\t\t</ConfirmModal>\n\t);\n};\n","import \"./StatusLabel.scss\";\n\nimport cx from \"classnames\";\nimport React, { type FC } from \"react\";\n\ninterface StatusLabelProps {\n\tlabel: string;\n\tactive: boolean;\n\taggressiveInactive?: boolean;\n\tshowBullet?: boolean;\n\tcenter?: boolean;\n}\nexport const StatusLabel: FC<StatusLabelProps> = ({\n\tactive = false,\n\tlabel = \"\",\n\taggressiveInactive,\n\tshowBullet,\n\tcenter,\n}) => {\n\tconst bulletClassNames = cx(\"eps-status-label__bullet\", {\n\t\tactive,\n\t\taggressive: aggressiveInactive,\n\t});\n\tconst statusLabelClassNames = cx(\"eps-status-label\", {\n\t\tcenter,\n\t});\n\treturn (\n\t\t<div className={statusLabelClassNames}>\n\t\t\t{showBullet && <div className={bulletClassNames} />}\n\t\t\t<div>{label}</div>\n\t\t</div>\n\t);\n};\n","import \"./Text.scss\";\n\nimport cx from \"classnames\";\nimport type { ReactNode } from \"react\";\nimport React from \"react\";\n\nimport { Box, responsiveProp, type StyleColor } from \"./Box\";\n\ntype StyleFontSize =\n\t| \"extraSmall\"\n\t| \"small\"\n\t| \"medium\"\n\t| \"large\"\n\t| \"extraLarge\"\n\t| \"extraLarge2\"\n\t| \"extraLarge3\"\n\t| \"extraLarge4\";\n\ntype StyleFontWeight = \"body\" | \"heading\";\n\ntype StyleLineHeight =\n\t| \"extraSmall\"\n\t| \"small\"\n\t| \"medium\"\n\t| \"large\"\n\t| \"extraLarge\"\n\t| \"extraLarge2\"\n\t| \"extraLarge3\"\n\t| \"extraLarge4\"\n\t| \"extraLarge5\"\n\t| \"extraLarge6\"\n\t| \"extraLarge7\";\n\nexport type ResponsiveStyleFontSize =\n\t| StyleFontSize\n\t| [StyleFontSize?, StyleFontSize?, StyleFontSize?];\n\nexport type ResponsiveStyleLineHeight =\n\t| StyleLineHeight\n\t| [StyleLineHeight?, StyleLineHeight?, StyleLineHeight?];\n\nexport interface TextProps {\n\tclassName?: string;\n\tas?: React.ElementType;\n\tchildren: ReactNode;\n\tfontSize?: ResponsiveStyleFontSize;\n\tlineHeight?: ResponsiveStyleLineHeight;\n\tcolor?: StyleColor;\n\tfontWeight?: StyleFontWeight;\n\t// biome-ignore lint/suspicious/noExplicitAny: Ignore for now.\n\t[key: string]: any;\n}\n\nexport const Text = ({\n\tas: component = \"span\",\n\tchildren,\n\tfontSize,\n\tcolor,\n\tlineHeight,\n\tfontWeight,\n\tclassName,\n\t...rest\n}: TextProps) => {\n\tconst classes = [];\n\n\tfontSize && classes.push(...responsiveProp(\"eps-font-size-\", fontSize));\n\tlineHeight && classes.push(...responsiveProp(\"eps-line-height-\", lineHeight));\n\tfontWeight && classes.push(`eps-font-weight-${fontWeight}`);\n\n\tconst classList = cx(classes, className);\n\n\treturn (\n\t\t<Box as={component} color={color} className={classList} {...rest}>\n\t\t\t{children}\n\t\t</Box>\n\t);\n};\n","import \"./Unbutton.scss\";\n\nimport { Button, type ButtonProps } from \"@entur/button\";\nimport cx from \"classnames\";\nimport React, { type FC } from \"react\";\n\ninterface UnbuttonProps extends Omit<ButtonProps<typeof Button>, \"variant\"> {}\n\nexport const Unbutton: FC<UnbuttonProps> = ({\n\tchildren,\n\tclassName,\n\t...rest\n}) => (\n\t<Button variant=\"primary\" {...rest} className={cx(\"eps-unbutton\", className)}>\n\t\t{children}\n\t</Button>\n);\n","/** biome-ignore-all lint/correctness/useUniqueElementIds: Ignore unique id for now */\nimport \"./index.scss\";\n\nimport cx from \"classnames\";\nimport React, { type FC, useState } from \"react\";\n\nimport type { Environment } from \"../environment\";\nimport { CookieSettingsMenuItem } from \"./components/CookieSettingsMenuItem\";\nimport { CustomOverflowMenu } from \"./components/CustomOverflowMenu\";\nimport { LanguageSwitchMenuItem } from \"./components/LanguageSwitchMenuItem\";\nimport { LogOutMenuItem } from \"./components/LogOutMenuItem\";\nimport { UserMenuItem } from \"./components/UserMenuItem\";\nimport { VersionMenuItem } from \"./components/VersionMenuItem\";\n\ninterface UserMenuProps {\n\tuserName: string;\n\tmessages: {\n\t\tlogout: string;\n\t\tswitchLanguage: string;\n\t\tappVersion?: string;\n\t\tmyProfile?: string;\n\t\tcookieSettings?: string;\n\t};\n\tonLogout: () => void;\n\tonLanguageChange: (language: string) => void;\n\tlanguage: string;\n\tclassName?: string;\n\tenvironment?: Environment;\n\tshowVersionItem?: boolean;\n\tshowMyProfileItem?: boolean;\n\tshowCookieSettingsItem?: boolean;\n\tonNavigateToMyProfile: () => void;\n\tonCookieSettingsOpen?: () => void;\n}\n\nexport const UserMenu: FC<UserMenuProps> = ({\n\tclassName,\n\tmessages,\n\tonLogout,\n\tonLanguageChange,\n\tuserName,\n\tlanguage,\n\tenvironment,\n\tshowVersionItem,\n\tshowMyProfileItem,\n\tshowCookieSettingsItem,\n\tonNavigateToMyProfile,\n\tonCookieSettingsOpen = () => {},\n}) => {\n\tconst triggerClassList = cx([\"eps-user-menu__trigger-button\", className]);\n\tconst [open, setOpen] = useState(false);\n\n\treturn (\n\t\t<div id=\"eps-user-menu\">\n\t\t\t<CustomOverflowMenu\n\t\t\t\topen={open}\n\t\t\t\tonOpenChange={setOpen}\n\t\t\t\tclassName={triggerClassList}\n\t\t\t\tuserName={userName}\n\t\t\t\tenvironment={environment}\n\t\t\t>\n\t\t\t\t<div id=\"eps-overflow-menu\">\n\t\t\t\t\t<LanguageSwitchMenuItem\n\t\t\t\t\t\tname={messages.switchLanguage}\n\t\t\t\t\t\tlanguage={language}\n\t\t\t\t\t\tonLanguageChange={onLanguageChange}\n\t\t\t\t\t\tsetOpen={setOpen}\n\t\t\t\t\t/>\n\t\t\t\t\t{showVersionItem && messages.appVersion && (\n\t\t\t\t\t\t<VersionMenuItem title={messages.appVersion} setOpen={setOpen} />\n\t\t\t\t\t)}\n\t\t\t\t\t{showMyProfileItem && messages.myProfile && (\n\t\t\t\t\t\t<UserMenuItem\n\t\t\t\t\t\t\tname={messages.myProfile}\n\t\t\t\t\t\t\tsetOpen={setOpen}\n\t\t\t\t\t\t\tonNavigateToMyProfile={onNavigateToMyProfile}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t{showCookieSettingsItem && messages.cookieSettings && (\n\t\t\t\t\t\t<CookieSettingsMenuItem\n\t\t\t\t\t\t\tname={messages.cookieSettings}\n\t\t\t\t\t\t\tsetOpen={setOpen}\n\t\t\t\t\t\t\tonCookieSettingsOpen={onCookieSettingsOpen}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t\t<LogOutMenuItem\n\t\t\t\t\t\tname={messages.logout}\n\t\t\t\t\t\tsetOpen={setOpen}\n\t\t\t\t\t\tonLogout={onLogout}\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</CustomOverflowMenu>\n\t\t</div>\n\t);\n};\n","/*global EventListener WindowEventHandlers*/\nimport { useEffect, useRef } from \"react\";\n\ntype TypedEventListener<T extends Event> = (evt: T) => void;\n\nexport function useEventListener<T extends Event = Event>(\n\teventName: string,\n\thandler: TypedEventListener<T>,\n\telement: WindowEventHandlers = window,\n) {\n\tconst savedHandler = useRef<TypedEventListener<T>>();\n\n\tuseEffect(() => {\n\t\tsavedHandler.current = handler;\n\t}, [handler]);\n\n\tuseEffect(() => {\n\t\tconst isSupported = element?.addEventListener;\n\t\tif (!isSupported) return;\n\n\t\tconst eventListener = ((event: T): void =>\n\t\t\tsavedHandler.current?.(event)) as EventListener;\n\n\t\telement.addEventListener(eventName, eventListener);\n\n\t\treturn () => {\n\t\t\telement.removeEventListener(eventName, eventListener);\n\t\t};\n\t}, [eventName, element]);\n}\n","import {\n\tNavigateFunction,\n\tNavigateOptions,\n\tTo,\n\tuseNavigate,\n\tuseSearchParams,\n} from \"react-router-dom\";\nimport { useProject } from \"./ProjectProvider\";\n\n/**\n * A custom hook that wraps the useNavigate hook from react-router-dom for MicroFrontend State\n *\n * @param to can be a string path, a To object, or a number (delta)\n * @param options contains options for modifying the navigation\n * @returns a function that navigates to the specified path with organisationId in the search params\n */\nexport function useNavigateParams(): NavigateFunction {\n\tconst { projectName, defaultProjectId } = useProject();\n\tconst navigate = useNavigate();\n\tconst [searchParams] = useSearchParams();\n\tconst projectValue = searchParams.get(projectName);\n\n\tconst navigateParam: NavigateFunction = (\n\t\tto: To | number,\n\t\toptions: NavigateOptions = {},\n\t) => {\n\t\tif (projectValue == null) {\n\t\t\tsearchParams.set(projectName, defaultProjectId);\n\t\t}\n\t\tif (typeof to === \"number\") {\n\t\t\tnavigate(`${to}?${searchParams.toString()}`, options);\n\t\t} else {\n\t\t\tnavigate(`${to}?${searchParams.toString()}`, options);\n\t\t}\n\t};\n\n\treturn navigateParam;\n}\n"],"names":["FormatDateTime","_ref","date","locale","_ref$as","as","Component","hideTime","rest","_objectWithoutPropertiesLoose","_excluded","React","createElement","_extends","localeDate","localeDateTime","responsiveProp","prefix","prop","Array","isArray","classes","push","Environment","Box","children","contrast","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","padding","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","margin","display","justifyContent","alignItems","maxWidth","width","background","color","flexDirection","flexWrap","className","resolvedPaddingTop","resolvedPaddingBottom","resolvedPaddingLeft","resolvedPaddingRight","resolvedMarginTop","resolvedMarginBottom","resolvedMarginLeft","resolvedMarginRight","apply","classList","cx","Stack","space","stackItems","Children","toArray","length","Fragment","map","child","index","key","ProjectContext","createContext","undefined","useProject","context","useContext","Error","defaultProjectId","projectName","ConfirmModal","_ref$isOpen","isOpen","message","_ref$size","size","buttons","onConfirm","messages","onClose","onDismiss","childrenToRender","handleDismiss","Modal","open","isString","Paragraph","ButtonGroup","SecondaryButton","onClick","cancel","PrimaryButton","confirm","environmentColors","_environmentColors","Local","Development","Staging","getColorForEnvironment","environment","humanReadableEnvironment","_humanReadableEnviron","Production","getHumanReadableEnvironment","EnturPartnerLogoSvg","title","_ref$accentColor","accentColor","height","viewBox","fill","fillRule","d","ErrorBoundary","_Component","props","_this","call","this","state","error","getDerivedStateFromError","_proto","prototype","componentDidCatch","errorInfo","_this$props$handleErr","_this$props","handleError","render","_this2","_this$props2","fallback","isFunction","retry","setState","name","RefreshBannerInfo","LANGUAGE_STORAGE_KEY","language","localStorage","getItem","isNorwegian","BannerAlertBox","variant","window","location","reload","featureFlag","flag","_window$localStorage","_window$localStorage2","import","useFeatureToggle","LanguageSelect","options","onChange","classNames","SegmentedControl","assertIsDefined","selectedValue","option","SegmentedChoice","value","label","required","useDocumentTitle","suffix","useEffect","document","CustomOverflowMenuItem","role","CookieSettingsMenuItem","setOpen","onCookieSettingsOpen","CookieIcon","inline","elementContainsEventTarget","element","event","contains","target","composed","composedPath","find","CustomOverflowMenu","ref","buttonRef","handler","userName","onOpenChange","overflowItemsClasses","overflowContentRef","useRef","overflowMenuTriggerRef","listener","current","addEventListener","removeEventListener","UserIcon","Heading6","style","DownArrowIcon","LanguageSwitchMenuItem","onLanguageChange","useB47LanguageKey","norwegianLanguageKey","englishLanguageKey","NorwayIcon","UKIcon","LogOutMenuItem","onLogout","LogOutIcon","UserMenuItem","onNavigateToMyProfile","Link","to","textDecoration","VersionMenuItem","navigate","useNavigate","ChannelsIcon","_ref3","_ref2","items","toString","isDate","isDateString","prependBreadcrumbItem","pathname","onBreadcrumbLookup","_useProject","searchParams","useSearchParams","projectValue","get","breadcrumbs","splitUrlPath","path","filter","breadcrumbElements","i","BreadcrumbItem","set","BreadcrumbNavigation","concat","classnames","_ref2$as","altText","InputComponent","inputComponent","languages","values","feedback","ExpandablePanel","defaultOpen","contentStyle","langKey","e","changes","amount","parsedAmount","Number","formattedAmount","Intl","NumberFormat","maximumFractionDigits","minimumFractionDigits","format","A","RouterLink","alertLabel","alertLevel","_ref$defaultLanguage","defaultLanguage","_ref$label","_ref$onBlur","onBlur","_useState","useState","setLanguage","currentValue","tabIndex","persist","currentTarget","setTimeout","activeElement","lang","handleLanguageChange","Object","assign","organisations","handleChange","selectedOrganisationId","selectedOrganisation","setSelectedOrganisation","org","organisationId","SearchableDropdown","sort","a","b","tradingName","localeCompare","organisation","selectedItem","clearable","_ref2$appTitle","appTitle","pageTitles","_ref4","reverse","join","onPageChange","currentPage","pageCount","Math","ceil","collectionSize","pageSize","Pagination","page","_ref$fallback","permissions","_ref$oneOf","oneOf","_ref$all","all","allIsAllowed","hasAllPermissions","oneOfIsAllowed","hasOneOfPermissions","Provider","shouldBlockNavigation","useInRouterContext","blocker","useBlocker","nextLocation","currentLocation","reset","proceed","_ref$active","active","showBullet","center","bulletClassNames","aggressive","aggressiveInactive","statusLabelClassNames","component","fontSize","lineHeight","fontWeight","Button","showVersionItem","showMyProfileItem","showCookieSettingsItem","_ref$onCookieSettings","triggerClassList","id","switchLanguage","appVersion","myProfile","cookieSettings","logout","eventName","savedHandler","_element","eventListener"],"mappings":"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"}
|