@onewelcome/react-lib-components 1.9.1 → 1.9.2
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/_BaseStyling_/BaseStyling.d.ts +1 -0
- package/dist/react-lib-components.cjs.development.js +1 -0
- package/dist/react-lib-components.cjs.development.js.map +1 -1
- package/dist/react-lib-components.cjs.production.min.js +1 -1
- package/dist/react-lib-components.cjs.production.min.js.map +1 -1
- package/dist/react-lib-components.esm.js +1 -0
- package/dist/react-lib-components.esm.js.map +1 -1
- package/package.json +5 -5
- package/src/_BaseStyling_/BaseStyling.tsx +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-lib-components.esm.js","sources":["../src/_BaseStyling_/BaseStyling.tsx","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/Button/Spinner.tsx","../src/Button/BaseButton.tsx","../src/Button/Button.tsx","../src/Icon/Icon.tsx","../src/hooks/useSpacing.ts","../src/Typography/Typography.tsx","../src/Breadcrumbs/Breadcrumbs.tsx","../src/hooks/useDebouncedCallback.tsx","../src/hooks/usePosition.ts","../src/Popover/Popover.tsx","../src/hooks/useBodyClick.ts","../src/hooks/useGetDomRoot.ts","../src/ContextMenu/ContextMenu.tsx","../src/ContextMenu/ContextMenuItem.tsx","../src/Link/Link.tsx","../src/Button/IconButton.tsx","../src/Tabs/Tab.tsx","../src/Tabs/TabButton.tsx","../src/Tabs/Tabs.tsx","../src/TextEllipsis/TextEllipsis.tsx","../src/util/helper.tsx","../src/Tiles/Tile.tsx","../src/Tiles/Tiles.tsx","../src/Tooltip/Tooltip.tsx","../src/ProgressBar/ProgressBar.tsx","../src/Skeleton/Skeleton.tsx","../src/StatusIndicator/StatusIndicator.tsx","../src/hooks/useDetermineStatusIcon.tsx","../src/Form/Input/Input.tsx","../src/Form/Select/SelectService.ts","../src/Form/Select/Select.tsx","../src/Form/Select/Option.tsx","../src/Form/Label/Label.tsx","../src/Pagination/Pagination.tsx","../src/hooks/useRepeater.ts","../src/Notifications/BaseModal/BaseModalContext.ts","../src/Notifications/BaseModal/BaseModal.tsx","../src/Notifications/Snackbar/SnackbarProvider/SnackbarStateProvider.tsx","../src/Notifications/Snackbar/useSnackbar.ts","../src/Notifications/BaseModal/BaseModalContent/BaseModalContent.tsx","../src/Notifications/BaseModal/BaseModalActions/BaseModalActions.tsx","../src/Notifications/Dialog/DialogActions/DialogActions.tsx","../src/Notifications/Dialog/DialogTitle/DialogTitle.tsx","../src/Notifications/Dialog/Dialog.tsx","../src/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.tsx","../src/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.tsx","../src/Notifications/DiscardChangesModal/DiscardChangesModal.tsx","../src/Notifications/SlideInModal/SlideInModal.tsx","../src/Notifications/Snackbar/SnackbarContainer/SnackbarContainer.tsx","../src/hooks/useAnimation.ts","../src/Notifications/Snackbar/SnackbarItem/SnackbarItem.tsx","../src/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.tsx","../src/hooks/useFormSelector.ts","../src/Form/FormHelperText/FormHelperText.tsx","../src/Form/FormSelectorWrapper/FormSelectorWrapper.tsx","../src/Form/Checkbox/Checkbox.tsx","../src/Form/Radio/Radio.tsx","../src/Form/Textarea/Textarea.tsx","../src/Form/Toggle/Toggle.tsx","../src/Form/FormControl/FormControl.tsx","../src/Form/FormGroup/FormGroup.tsx","../src/Form/Wrapper/Wrapper/Wrapper.tsx","../src/hooks/useWrapper.ts","../src/Form/Wrapper/InputWrapper/InputWrapper.tsx","../src/Form/Wrapper/SelectWrapper/SelectWrapper.tsx","../src/Form/Wrapper/TextareaWrapper/TextareaWrapper.tsx","../src/Form/Fieldset/Fieldset.tsx","../src/Form/Form.tsx","../src/Form/Wrapper/RadioWrapper/RadioWrapper.tsx","../src/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.tsx","../src/Wizard/wizardStateReducer.ts","../src/Wizard/WizardStateProvider.tsx","../src/Wizard/Wizard.tsx","../src/Wizard/WizardActions/WizardActions.tsx","../src/Wizard/BaseWizardSteps/BaseWizardSteps.tsx","../src/Wizard/WizardSteps/WizardSteps.tsx","../src/DataGrid/DataGridHeader/DataGridHeaderCell.tsx","../src/DataGrid/DataGridHeader/DataGridHeader.tsx","../src/DataGrid/DataGridActions/DataGridColumnsToggle.tsx","../src/DataGrid/DataGridActions/DataGridActions.tsx","../src/DataGrid/DataGridBody/DataGridCell.tsx","../src/DataGrid/DataGridBody/DataGridRow.tsx","../src/DataGrid/DataGridBody/DataGridBody.tsx","../src/DataGrid/DataGrid.tsx","../src/Notifications/Banner/Banner.tsx"],"sourcesContent":["/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * If you add more CSS variables, and they are a color, make sure to go into /.storybook/addon/src/components/PanelContent.tsx\n * and make sure to add it to the shouldBeColorPicker array!\n */\n\nimport React, { HTMLAttributes, ReactChild, useEffect, useRef, useState } from \"react\";\n\ninterface CSSProperties {\n colorFocus?: string;\n colorPrimary?: string;\n colorSecondary?: string;\n colorTertiary?: string;\n lightPink?: string;\n vividViolet?: string;\n colorPrimary300?: string;\n colorPrimary500?: string;\n colorPrimary600?: string;\n colorPrimary700?: string;\n colorPrimary900?: string;\n colorBlueGrey100?: string;\n colorBlueGrey200?: string;\n colorBlueGrey400?: string;\n colorBlueGrey25?: string;\n colorBlueGrey500?: string;\n colorBlueGrey700?: string;\n colorBlueGrey900?: string;\n colorGreen500?: string;\n colorLightBlue500?: string;\n colorLightBlue600?: string;\n colorOrange500?: string;\n colorRed500?: string;\n defaultLineHeight?: string;\n buttonBorderRadius?: string;\n buttonBorderWidth?: string;\n buttonFontSize?: string;\n buttonBorderStyle?: string;\n buttonFillTextColor?: string;\n buttonFillHoverBackgroundColor?: string;\n buttonOutlineHoverTextColor?: string;\n inputBorderRadius?: string;\n inputBorderWidth?: string;\n inputBorderWidthFocus?: string;\n inputBorderStyle?: string;\n inputBackgroundColor?: string;\n dragBackgroundColor?: string;\n dragBorderStyle?: string;\n modalShadowColor?: string;\n modalBackgroundColor?: string;\n modalHeaderBackgroundColor?: string;\n skeletonBackgroundColor?: string;\n skeletonAnimationColorRgb?: string;\n snackbarTextColor?: string;\n snackbarInfoBackgroundColor?: string;\n snackbarSuccessBackgroundColor?: string;\n snackbarErrorBackgroundColor?: string;\n snackbarBorderRadius?: string;\n bannerBorderRadius?: string;\n bannerBorderWidth?: string;\n dataGridRowBackgroundColor?: string;\n dataGridRowHoverBackgroundColor?: string;\n tabsBackgroundColor?: string;\n tabActiveBorderHeight?: string;\n tabActiveBorderColor?: string;\n tablistBorderWidth?: string;\n tablistBorderStyle?: string;\n tablistBorderColor?: string;\n tabTextColor?: string;\n wizardStepIndicatorFutureColor?: string;\n default?: string;\n success?: string;\n error?: string;\n info?: string;\n disabled?: string;\n greyedOut?: string;\n lightGreyBorder?: string;\n warning?: string;\n light?: string;\n grey?: string;\n fontFamily?: string;\n fontFamilyCode?: string;\n fontSize?: string;\n fontSizeH1?: string;\n fontSizeH2?: string;\n fontSizeH3?: string;\n fontSizeH4?: string;\n fontSizeSub?: string;\n fontSizeCode?: string;\n}\n\nexport interface Props extends HTMLAttributes<HTMLDivElement> {\n children?: ReactChild;\n properties?: CSSProperties;\n}\n\nexport const BaseStyling = ({ children, properties = {} }: Props) => {\n const defaultProperties: CSSProperties = {\n colorPrimary300: \"#6871BF\",\n colorPrimary500: \"#041295\",\n colorPrimary600: \"#030F77\",\n colorPrimary700: \"#020B59\",\n colorPrimary900: \"#01041E\",\n colorBlueGrey25: \"#F7F7F9\",\n colorBlueGrey100: \"#DEDEE6\",\n colorBlueGrey200: \"#BCBECE\",\n colorBlueGrey400: \"#797D9C\",\n colorBlueGrey500: \"#5D607E\",\n colorBlueGrey700: \"#383A4B\",\n colorBlueGrey900: \"#131319\",\n colorGreen500: \"#178244\",\n colorLightBlue500: \"#00BCDD\",\n colorLightBlue600: \"#0096B1\",\n colorOrange500: \"#E07900\",\n colorRed500: \"#E01E00\",\n colorFocus: \"var(--color-primary300)\",\n colorPrimary: \"var(--color-primary500)\",\n colorSecondary: \"var(--color-blue-grey700)\",\n colorTertiary: \"var(--color-light-blue600)\",\n lightPink: \"#9E006B1A\",\n vividViolet: \"#9E006B\",\n defaultLineHeight: \"1.5\",\n buttonBorderRadius: \"2px\",\n buttonBorderWidth: \"2px\",\n buttonFontSize: \"1rem\",\n buttonBorderStyle: \"solid\",\n buttonFillTextColor: \"var(--light)\",\n buttonFillHoverBackgroundColor: \"var(--light)\",\n buttonOutlineHoverTextColor: \"var(--light)\",\n inputBorderRadius: \"2px\",\n inputBorderWidth: \"1px\",\n inputBorderWidthFocus: \"2px\",\n inputBorderStyle: \"solid\",\n inputBackgroundColor: \"var(--light)\",\n dragBackgroundColor: \"#1313191A\",\n dragBorderStyle: \"dashed\",\n modalShadowColor: \"rgba(0, 0, 0, 0.16)\",\n modalBackgroundColor: \"var(--color-blue-grey25)\",\n modalHeaderBackgroundColor: \"var(--light)\",\n skeletonBackgroundColor: \"var(--disabled)\",\n skeletonAnimationColorRgb: \"255, 255, 255\",\n snackbarTextColor: \"var(--light)\",\n snackbarInfoBackgroundColor: \"var(--color-primary500)\",\n snackbarSuccessBackgroundColor: \"var(--color-green500)\",\n snackbarErrorBackgroundColor: \"var(--color-red500)\",\n snackbarBorderRadius: \"2px\",\n bannerBorderRadius: \"2px\",\n bannerBorderWidth: \"0 0 0 4px\",\n dataGridRowBackgroundColor: \"transparent\",\n dataGridRowHoverBackgroundColor: \"var(--color-blue-grey25)\",\n tabsBackgroundColor: \"var(--light)\",\n tabActiveBorderHeight: \"4px\",\n tabActiveBorderColor: \"var(--color-primary)\",\n tablistBorderWidth: \"1px\",\n tablistBorderStyle: \"solid\",\n tablistBorderColor: \"var(--color-blue-grey100)\",\n tabTextColor: \"var(--color-blue-grey900)\",\n wizardStepIndicatorFutureColor: \"var(--color-blue-grey200)\",\n default: \"var(--color-blue-grey900)\",\n success: \"var(--color-green500)\",\n error: \"var(--color-red500)\",\n info: \"var(--color-primary500)\",\n disabled: \"var(--color-blue-grey100)\",\n greyedOut: \"var(--color-blue-grey500)\",\n lightGreyBorder: \"var(--color-blue-grey100)\",\n warning: \"var(--color-orange500)\",\n light: \"#FFF\",\n grey: \"#c3c3c7\",\n fontFamily: \"Roboto, sans-serif\",\n fontFamilyCode: \"'Roboto Mono', monospace\",\n fontSize: \"1rem\",\n fontSizeH1: \"2.5rem\",\n fontSizeH2: \"1.625rem\",\n fontSizeH3: \"1.5rem\",\n fontSizeH4: \"1.25rem\",\n fontSizeSub: \".75rem\",\n fontSizeCode: \"1rem\"\n };\n\n /** We need a loading state, because otherwise you see the colors flash from the default to the possible overridden ones. */\n const [isLoading, setIsLoading] = useState(true);\n const baseStylingWrapper = useRef(null);\n\n const setCSSProperties = (CSSPropertiesObject: CSSProperties) => {\n for (const [key, value] of Object.entries(CSSPropertiesObject)) {\n const formattedPropertyName = key.replace(/([A-Z])/g, val => `-${val.toLowerCase()}`);\n (baseStylingWrapper.current! as HTMLElement).style.setProperty(\n `--${formattedPropertyName}`,\n value\n );\n }\n };\n\n useEffect(() => {\n if (Object.keys(properties).length !== 0 && baseStylingWrapper.current) {\n const mergedState = { ...defaultProperties, ...properties };\n setCSSProperties(mergedState);\n } else if (baseStylingWrapper.current) {\n setCSSProperties(defaultProperties);\n }\n setIsLoading(false);\n }, [properties, baseStylingWrapper.current]);\n\n return (\n <div className=\"basestyling-wrapper\" ref={baseStylingWrapper}>\n {!isLoading ? children : null}\n </div>\n );\n};\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\n\nexport const Spinner: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n {...props}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M24 12C24 13.8937 23.5518 15.7606 22.6921 17.4479C21.8323 19.1352 20.5855 20.5951 19.0534 21.7082C17.5214 22.8213 15.7476 23.556 13.8772 23.8523C12.0068 24.1485 10.0928 23.9979 8.2918 23.4127C6.49076 22.8275 4.85378 21.8243 3.51472 20.4853C2.17565 19.1462 1.17251 17.5092 0.587322 15.7082C0.00212849 13.9072 -0.148504 11.9932 0.14774 10.1228C0.443984 8.25238 1.17869 6.47863 2.2918 4.94658L3.91307 6.1245C2.98585 7.4007 2.37384 8.87823 2.12707 10.4363C1.8803 11.9943 2.00577 13.5887 2.49324 15.0889C2.9807 16.5892 3.81632 17.9528 4.93176 19.0682C6.0472 20.1837 7.4108 21.0193 8.91107 21.5068C10.4113 21.9942 12.0057 22.1197 13.5637 21.8729C15.1218 21.6262 16.5993 21.0141 17.8755 20.0869C19.1517 19.1597 20.1903 17.9436 20.9065 16.5381C21.6227 15.1326 21.996 13.5775 21.996 12H24Z\"\n fill=\"#5D607E\"\n />\n </svg>\n);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, Fragment } from \"react\";\nimport classes from \"./BaseButton.module.scss\";\nimport { Spinner } from \"./Spinner\";\n\nexport interface Props extends ComponentPropsWithRef<\"button\"> {\n type?: \"submit\" | \"button\" | \"reset\";\n disabled?: boolean;\n loading?: boolean;\n color?: \"primary\" | \"secondary\" | \"tertiary\" | \"default\";\n}\n\nconst BaseButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (\n { children, type = \"button\", className, loading, disabled, ...rest },\n ref\n) => {\n const validTypes = [\"submit\", \"button\", \"reset\"];\n const isDisabled = disabled || loading;\n if (!validTypes.includes(type))\n throw new Error(\n `You have entered an invalid button type. Expected 'submit', 'button' or 'reset' got ${type}`\n );\n\n return (\n <button\n {...rest}\n disabled={isDisabled}\n ref={ref}\n type={type}\n className={`${classes.button} ${loading ? classes.loading : \"\"} ${\n className ? className : \"\"\n }`}\n >\n {loading ? (\n <Fragment>\n <div className={classes[\"content-hidden\"]}>{children}</div>\n <Spinner className={classes[\"spinner\"]} />\n </Fragment>\n ) : (\n children\n )}\n </button>\n );\n};\n\nexport const BaseButton = React.forwardRef(BaseButtonComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction } from \"react\";\nimport { BaseButton, Props as BaseButtonProps } from \"./BaseButton\";\nimport classes from \"./Button.module.scss\";\n\nexport interface Props extends BaseButtonProps {\n startIcon?: React.ReactNode | false;\n endIcon?: React.ReactNode | false;\n variant?: \"text\" | \"fill\" | \"outline\";\n}\n\nconst ButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (\n {\n children,\n variant = \"fill\",\n color = \"primary\",\n startIcon = false,\n endIcon = false,\n className,\n ...rest\n },\n ref\n) => {\n const additionalClasses = [];\n\n if (startIcon || endIcon) {\n additionalClasses.push(classes[\"has-icon\"]);\n }\n\n if (startIcon) {\n additionalClasses.push(classes[\"start-icon\"]);\n }\n\n if (endIcon) {\n additionalClasses.push(classes[\"end-icon\"]);\n }\n\n if (className) {\n additionalClasses.push(className);\n }\n\n return (\n <BaseButton\n {...rest}\n ref={ref}\n className={`${classes[color]} ${classes[variant]} ${additionalClasses.join(\" \")}`}\n >\n {startIcon && <i>{startIcon}</i>}\n <span>{children}</span>\n {endIcon && <i> {endIcon}</i>}\n </BaseButton>\n );\n};\n\nexport const Button = React.forwardRef(ButtonComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport classes from \"./Icon.module.scss\";\n\nexport enum Icons {\n Bell = \"bell\",\n BellAlt = \"bell-alt\",\n Bookmark = \"bookmark\",\n BookmarkAlt = \"bookmark-alt\",\n Build = \"build\",\n Calendar = \"calendar\",\n Change = \"change\",\n Checkmark = \"checkmark\",\n CheckmarkCircle = \"checkmark-circle\",\n CheckmarkCircleAlt = \"checkmark-circle-alt\",\n CheckmarkCircleBreakout = \"checkmark-circle-breakout\",\n CheckmarkSquare = \"checkmark-square\",\n ChevronUp = \"chevron-up\",\n ChevronDown = \"chevron-down\",\n ChevronLeft = \"chevron-left\",\n ChevronRight = \"chevron-right\",\n Circle = \"circle\",\n Clock = \"clock\",\n Copy = \"copy\",\n Edit = \"edit\",\n Ellipsis = \"ellipsis\",\n EllipsisAlt = \"ellipsis-alt\",\n Equal = \"equal\",\n Error = \"error-circle\",\n Eye = \"eye\",\n Filter = \"filter\",\n FilterAlt = \"filter-alt\",\n FilterAltArrow = \"filter-alt-arrow\",\n FilterAltTimes = \"filter-alt-times\",\n Forbidden = \"forbidden\",\n Fullscreen = \"fullscreen\",\n FullscreenExit = \"fullscreen-exit\",\n Gearwheel = \"gearwheel\",\n Grid = \"grid\",\n Hamburger = \"hamburger\",\n Heart = \"heart\",\n Image = \"image\",\n InfoBell = \"info-bell\",\n InfoCircle = \"info-circle\",\n Link = \"link\",\n MinusSquare = \"minus-square\",\n NavigationFirst = \"navigation-first\",\n NavigationLast = \"navigation-last\",\n Plus = \"plus\",\n Radio = \"radio\",\n Refresh = \"refresh\",\n Search = \"search\",\n Share = \"share\",\n Square = \"square\",\n Star = \"star\",\n StarAlt = \"star-alt\",\n TableSearch = \"table-search\",\n Times = \"times\",\n TimesCircle = \"times-circle\",\n TimesCircleAlt = \"times-circle-alt\",\n TimesThin = \"times-thin\",\n Trash = \"trash\",\n TriangleDown = \"triangle-down\",\n TriangleDownCircle = \"triangle-down-circle\",\n TriangleLeft = \"triangle-left\",\n TriangleRight = \"triangle-right\",\n TriangleUp = \"triangle-up\",\n Undo = \"undo\",\n Warning = \"warning\",\n FileOutline = \"file-outline\",\n FileUpload = \"file-upload-outline\",\n FileDownload = \"file-download-outline\"\n}\n\ntype Tag = \"span\" | \"div\" | \"i\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n icon: Icons;\n color?: string;\n size?: string;\n tag?: Tag;\n}\n\nconst IconComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { icon, color, className, style, size, tag = \"span\", ...rest }: Props,\n ref\n) => {\n const Component = tag;\n\n return (\n <Component\n {...rest}\n ref={ref}\n style={{ color: color, ...style, fontSize: size }}\n data-icon\n aria-hidden=\"true\"\n className={`${classes[\"icon\"]} ${classes[\"icon-\" + icon]} ${className ? className : \"\"}`}\n />\n );\n};\n\nexport const Icon = React.forwardRef(IconComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CSSProperties } from \"react\";\n\nexport type SpacingMultiplier = 0 | 0.5 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;\ntype SpacingMultiplierStringOrNumber = `${SpacingMultiplier}` | SpacingMultiplier;\ntype MultiValueSpacingMultiplier =\n | `${SpacingMultiplier} ${SpacingMultiplier} ${SpacingMultiplier} ${SpacingMultiplier}`\n | `${SpacingMultiplier} ${SpacingMultiplier} ${SpacingMultiplier}`\n | `${SpacingMultiplier} ${SpacingMultiplier}`\n | SpacingMultiplierStringOrNumber;\n\nexport interface Spacing {\n padding?: MultiValueSpacingMultiplier;\n paddingTop?: SpacingMultiplierStringOrNumber;\n paddingBottom?: SpacingMultiplierStringOrNumber;\n paddingLeft?: SpacingMultiplierStringOrNumber;\n paddingRight?: SpacingMultiplierStringOrNumber;\n margin?: MultiValueSpacingMultiplier;\n marginTop?: SpacingMultiplierStringOrNumber;\n marginBottom?: SpacingMultiplierStringOrNumber;\n marginLeft?: SpacingMultiplierStringOrNumber;\n marginRight?: SpacingMultiplierStringOrNumber;\n}\n\nconst defaultFactor = 0.25;\nconst defaultUnit = \"rem\";\nconst spacingNumberRegex = /(\\d+\\.?\\d*)+/g;\n\nexport const useSpacing = (\n spacingProps?: Spacing,\n style?: CSSProperties\n): CSSProperties | undefined => {\n if (spacingProps) {\n return Object.entries(spacingProps).reduce<CSSProperties>((prev, [spacing, multiplier]) => {\n const matches = String(multiplier).matchAll(spacingNumberRegex);\n const cssSpacingValue = Array.from(matches)\n .map(([multiplierValue]) => `${Number(multiplierValue) * defaultFactor}${defaultUnit}`)\n .join(\" \");\n return { ...prev, [spacing]: cssSpacingValue };\n }, style ?? {});\n }\n return style;\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactNode } from \"react\";\nimport classes from \"./Typography.module.scss\";\nimport { Spacing, useSpacing } from \"../hooks/useSpacing\";\n\nexport const validVariants = [\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"body\",\n \"body-bold\",\n \"sub-text\",\n \"code\"\n] as const;\nexport type Variant = (typeof validVariants)[number];\n\ntype Tags =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"p\"\n | \"div\"\n | \"code\"\n | \"span\"\n | \"sup\"\n | \"sub\"\n | \"strong\"\n | \"em\"\n | \"small\"\n | \"mark\"\n | \"del\"\n | \"ins\"\n | \"blockquote\";\n\nexport interface Props extends ComponentPropsWithRef<any> {\n children: ReactNode;\n variant: Variant;\n tag?: Tags;\n spacing?: Spacing;\n}\n\nconst TypographyComponent: ForwardRefRenderFunction<any, Props> = (\n { children, variant, tag, style, spacing, className = \"\", ...rest }: Props,\n ref\n) => {\n if (!validVariants.includes(variant)) {\n throw new Error(\n `You entered an invalid variant. You can choose from: ${validVariants}, you entered: ${variant}`\n );\n }\n\n const styleWithSpacing = useSpacing(spacing, style);\n\n if (!tag) {\n switch (variant) {\n case \"h1\":\n case \"h2\":\n case \"h3\":\n case \"h4\":\n case \"code\":\n tag = variant;\n break;\n case \"body\":\n tag = \"p\";\n break;\n case \"body-bold\":\n tag = \"p\";\n break;\n case \"sub-text\":\n tag = \"span\";\n break;\n default:\n tag = \"div\";\n break;\n }\n }\n\n let TagName = tag;\n\n return (\n <TagName\n {...rest}\n ref={ref}\n style={styleWithSpacing}\n className={`${classes[\"typography_style_\" + variant]} ${className}`}\n >\n {children}\n </TagName>\n );\n};\n\nexport const Typography = React.forwardRef(TypographyComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithRef,\n ForwardRefRenderFunction,\n Fragment,\n ReactElement\n} from \"react\";\nimport { Icon, Icons } from \"../Icon/Icon\";\nimport { Link, Props as LinkProps } from \"../Link/Link\";\nimport { Typography } from \"../Typography/Typography\";\nimport classes from \"./Breadcrumbs.module.scss\";\n\ntype ChildrenType = ReactElement<LinkProps, typeof Link>;\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children: ChildrenType | ChildrenType[];\n ariaLabel: string;\n}\n\nconst BreadcrumbsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, ariaLabel, className = \"\", ...rest }: Props,\n ref\n) => {\n const items = React.Children.map(children, (child, index) => {\n const isLastElement = Array.isArray(children) ? index === children.length - 1 : true;\n if (isLastElement) {\n return (\n <Typography\n key={child.key}\n variant=\"body\"\n tag=\"span\"\n className={classes[\"last\"]}\n aria-current=\"page\"\n >\n {child.props.children}\n </Typography>\n );\n } else {\n return (\n <Fragment key={child.key}>\n {React.cloneElement(child)}\n <Icon icon={Icons.ChevronRight} className={classes[\"icon\"]} />\n </Fragment>\n );\n }\n });\n return (\n <nav\n {...rest}\n ref={ref}\n aria-label={ariaLabel}\n className={`${classes[\"breadcrumbs\"]} ${className}`}\n >\n {items}\n </nav>\n );\n};\n\nexport const Breadcrumbs = React.forwardRef(BreadcrumbsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\n\nexport const useDebouncedCallback = (callback: Function, delay: number, dependencies?: any[]) => {\n const timeout = React.useRef<ReturnType<typeof setTimeout>>();\n const comboDeps = dependencies ? [callback, delay, ...dependencies] : [callback, delay];\n\n return React.useCallback((...args) => {\n if (timeout.current != null) {\n clearTimeout(timeout.current);\n }\n\n timeout.current = setTimeout(() => {\n callback(...args);\n }, delay);\n }, comboDeps);\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useState } from \"react\";\nimport { useDebouncedCallback } from \"./useDebouncedCallback\";\n\nexport interface ConfigObject {\n relativeElement: RefElement;\n elementToBePositioned: RefElement;\n transformOrigin?: Placement;\n placement?: Placement;\n offset?: Offset;\n debounceAmount?: number;\n}\n\nexport type HorizontalPlacement = \"left\" | \"center\" | \"centerh\" | \"right\";\nexport type VerticalPlacement = \"top\" | \"center\" | \"centerv\" | \"bottom\";\n\ntype Axis = \"vertical\" | \"horizontal\";\ntype RefElement = React.RefObject<HTMLOrSVGElement> | undefined;\n\ninterface DomRectObject {\n top: number;\n right: number;\n bottom: number;\n left: number;\n center: number;\n centerh: number;\n centerv: number;\n width: number;\n height: number;\n x: number;\n y: number;\n}\n\nexport interface Placement {\n horizontal: HorizontalPlacement;\n vertical: VerticalPlacement;\n}\n\nexport interface Offset {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\nexport interface Position {\n top: PositionType;\n right: PositionType;\n bottom: PositionType;\n left: PositionType;\n}\n\ninterface Dimensions {\n height: number;\n width: number;\n}\n\ntype PositionType = number | \"initial\";\n\nconst defaultConfigObject: ConfigObject = {\n relativeElement: undefined,\n elementToBePositioned: undefined,\n transformOrigin: {\n horizontal: \"left\",\n vertical: \"top\"\n },\n placement: {\n horizontal: \"left\",\n vertical: \"top\"\n },\n offset: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n debounceAmount: 20\n};\n\n/* eslint-disable @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain*/\nexport const usePosition = (providedConfigObject: ConfigObject = defaultConfigObject) => {\n const configObject = { ...defaultConfigObject, ...providedConfigObject };\n\n if (configObject.transformOrigin === undefined) {\n configObject.transformOrigin = defaultConfigObject.transformOrigin;\n }\n\n if (configObject.placement === undefined) {\n configObject.placement = defaultConfigObject.placement;\n }\n\n if (configObject.offset === undefined) {\n configObject.offset = defaultConfigObject.offset;\n }\n\n const [position, setPosition] = useState<Position>({\n left: 0,\n top: 0,\n right: \"initial\",\n bottom: \"initial\"\n });\n\n const _fixPossibleViewportOverflow = (\n value: number,\n transformOrigin: Placement,\n requestedReturnValue: Axis,\n elDimensions: Dimensions\n ) => {\n let returnValue = value;\n\n if (\n (transformOrigin[requestedReturnValue] === \"left\" && returnValue < 0) ||\n (transformOrigin[requestedReturnValue] === \"top\" && returnValue < 0) ||\n (transformOrigin[requestedReturnValue] === \"center\" && returnValue < 0) ||\n (transformOrigin[requestedReturnValue] === \"bottom\" && returnValue < 0)\n ) {\n returnValue = 0;\n }\n\n if (\n (transformOrigin[requestedReturnValue] === \"left\" &&\n returnValue > window.innerWidth - elDimensions.width) ||\n (transformOrigin[requestedReturnValue] === \"center\" &&\n requestedReturnValue === \"horizontal\" &&\n returnValue > window.innerWidth - elDimensions.width)\n ) {\n returnValue = window.innerWidth - elDimensions.width;\n }\n\n if (\n (transformOrigin[requestedReturnValue] === \"top\" &&\n returnValue > window.innerHeight - elDimensions.height) ||\n (transformOrigin[requestedReturnValue] === \"center\" &&\n requestedReturnValue === \"vertical\" &&\n returnValue > window.innerHeight - elDimensions.height)\n ) {\n returnValue = window.innerHeight - elDimensions.height;\n }\n\n if (\n transformOrigin[requestedReturnValue] === \"right\" &&\n returnValue > window.innerWidth - elDimensions.width\n ) {\n returnValue = window.innerWidth - elDimensions.width;\n }\n\n if (\n transformOrigin[requestedReturnValue] === \"bottom\" &&\n returnValue > window.innerHeight - elDimensions.height\n ) {\n returnValue = window.innerHeight - elDimensions.height;\n }\n\n return returnValue;\n };\n\n const _applyOffsetToPlacementValue = (\n value: number,\n requestedReturnValue: Axis,\n transformOrigin: Placement\n ) => {\n let returnValue = value;\n if (\n (requestedReturnValue === \"horizontal\" && configObject.offset?.left !== 0) ||\n (requestedReturnValue === \"horizontal\" && configObject.offset?.right !== 0)\n ) {\n if (\n transformOrigin[requestedReturnValue] === \"left\" ||\n transformOrigin[requestedReturnValue] === \"center\"\n ) {\n returnValue += configObject.offset?.left!;\n returnValue -= configObject.offset?.right!;\n }\n\n if (transformOrigin[requestedReturnValue] === \"right\") {\n returnValue -= configObject.offset?.left!;\n returnValue += configObject.offset?.right!;\n }\n }\n\n if (\n (requestedReturnValue === \"vertical\" && configObject.offset?.top !== 0) ||\n (requestedReturnValue === \"vertical\" && configObject.offset?.bottom !== 0)\n ) {\n if (\n transformOrigin[requestedReturnValue] === \"top\" ||\n transformOrigin[requestedReturnValue] === \"center\"\n ) {\n returnValue += configObject.offset?.top!;\n returnValue -= configObject.offset?.bottom!;\n }\n\n if (transformOrigin[requestedReturnValue] === \"bottom\") {\n returnValue -= configObject.offset?.top!;\n returnValue += configObject.offset?.bottom!;\n }\n }\n\n return returnValue;\n };\n\n const _calculateInitialPlacementValue = (\n transformOrigin: Placement,\n requestedReturnValue: Axis,\n relEl: DomRectObject,\n placementOriginDefinition: HorizontalPlacement | VerticalPlacement,\n elDimensions: Dimensions\n ) => {\n let value = 0;\n\n if (\n transformOrigin[requestedReturnValue] === \"left\" ||\n transformOrigin[requestedReturnValue] === \"top\"\n ) {\n value = relEl[placementOriginDefinition];\n } else if (transformOrigin[requestedReturnValue] === \"center\") {\n value =\n relEl[placementOriginDefinition] -\n elDimensions[requestedReturnValue === \"horizontal\" ? \"width\" : \"height\"] / 2;\n } else if (\n transformOrigin[requestedReturnValue] === \"right\" ||\n transformOrigin[requestedReturnValue] === \"bottom\"\n ) {\n value =\n window[requestedReturnValue === \"horizontal\" ? \"innerWidth\" : \"innerHeight\"] -\n relEl[placementOriginDefinition];\n }\n\n return value;\n };\n\n /**\n *\n * @param requestedReturnValue whether the requested return value is for the horizontal or vertical axis\n * @returns either the horizontally centered placement definition (centerh) or the vertically centered one (centerv)\n */\n const _determineCenteredPlacementOrigin = (requestedReturnValue: Axis) => {\n if (requestedReturnValue === \"horizontal\") {\n return \"centerh\";\n } else if (requestedReturnValue === \"vertical\") {\n return \"centerv\";\n }\n throw new Error(\n `the requested return value isn't \"vertical\" or \"horizontal\" ${requestedReturnValue} was given.`\n );\n };\n\n const _calculatePlacementValue = (\n transformOrigin: Placement,\n placement: HorizontalPlacement | VerticalPlacement,\n requestedReturnValue: Axis,\n relEl: DomRectObject,\n elDimensions: Dimensions\n ): number => {\n const placementOriginDefinition =\n placement === \"center\" ? _determineCenteredPlacementOrigin(requestedReturnValue) : placement;\n\n const value = _calculateInitialPlacementValue(\n transformOrigin,\n requestedReturnValue,\n relEl,\n placementOriginDefinition,\n elDimensions\n );\n\n const valueWithOffset = _applyOffsetToPlacementValue(\n value,\n requestedReturnValue,\n transformOrigin\n );\n\n const valueCorrectionForViewportOverflow = _fixPossibleViewportOverflow(\n valueWithOffset,\n transformOrigin,\n requestedReturnValue,\n elDimensions\n );\n\n return valueCorrectionForViewportOverflow;\n };\n\n const _calculatePlacement = (relEl: DomRectObject, elDimensions: Dimensions, axis: Axis) => {\n const placementValue = _calculatePlacementValue(\n configObject.transformOrigin!,\n configObject.placement![axis]!,\n axis,\n relEl,\n elDimensions\n );\n\n let direction = \"left\";\n let oppositeDirection = \"right\";\n\n if (axis === \"horizontal\" && configObject.transformOrigin?.horizontal === \"right\") {\n direction = \"right\";\n oppositeDirection = \"left\";\n } else if (axis === \"horizontal\") {\n direction = \"left\";\n oppositeDirection = \"right\";\n }\n\n if (axis === \"vertical\" && configObject.transformOrigin?.vertical === \"bottom\") {\n direction = \"bottom\";\n oppositeDirection = \"top\";\n } else if (axis === \"vertical\") {\n direction = \"top\";\n oppositeDirection = \"bottom\";\n }\n\n setPosition(prevState => ({\n ...prevState,\n [direction]: placementValue,\n [oppositeDirection]: \"initial\"\n }));\n };\n\n const calculatePosition = useDebouncedCallback(() => {\n if (!configObject.relativeElement?.current || !configObject.elementToBePositioned?.current)\n return;\n const relativeElRect = (configObject.relativeElement!\n .current as HTMLElement)!.getBoundingClientRect();\n const elementToBePositionedDimensions: Dimensions = {\n height: (configObject.elementToBePositioned!.current as HTMLElement).offsetHeight,\n width: (configObject.elementToBePositioned!.current as HTMLElement).offsetWidth\n };\n\n /** We want to add a center (horizontal and vertical) property to the DOMRect object. Since it's a special object we can't modify so we clone it and add it. */\n const clonedRelEl = {\n top: relativeElRect.top,\n right: relativeElRect.right,\n bottom: relativeElRect.bottom,\n center: 0,\n centerv: relativeElRect.top + relativeElRect.height / 2,\n centerh: relativeElRect.left + relativeElRect.width / 2,\n left: relativeElRect.left,\n width: relativeElRect.width,\n height: relativeElRect.height,\n x: relativeElRect.x,\n y: relativeElRect.y\n };\n\n _calculatePlacement(clonedRelEl, elementToBePositionedDimensions, \"horizontal\");\n _calculatePlacement(clonedRelEl, elementToBePositionedDimensions, \"vertical\");\n }, configObject.debounceAmount || 20);\n\n return {\n top: position.top,\n bottom: position.bottom,\n left: position.left,\n right: position.right,\n calculatePosition\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ReactNode,\n RefObject,\n useEffect,\n useRef\n} from \"react\";\nimport { Offset, Placement, usePosition } from \"../hooks/usePosition\";\nimport classes from \"./Popover.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children?: ReactNode;\n show?: boolean;\n anchorEl?: RefObject<HTMLOrSVGElement>; //eslint-disable-line no-undef\n placement?: Placement;\n offset?: Offset;\n debounceAmount?: number;\n transformOrigin?: Placement;\n onAnchorOutOfView?: () => void;\n}\n\nconst PopoverComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n className,\n show,\n placement,\n offset,\n debounceAmount,\n transformOrigin,\n anchorEl,\n onAnchorOutOfView,\n ...rest\n },\n ref\n) => {\n const elToBePositioned = useRef<HTMLDivElement>(null);\n\n const { top, left, right, bottom, calculatePosition } = usePosition({\n elementToBePositioned: elToBePositioned,\n relativeElement: anchorEl,\n offset: offset,\n placement: placement,\n transformOrigin: transformOrigin,\n debounceAmount: debounceAmount || undefined\n });\n\n useEffect(() => {\n if (!show) {\n return;\n }\n\n window.addEventListener(\"resize\", calculatePosition);\n window.addEventListener(\"scroll\", calculatePosition);\n\n return () => {\n window.removeEventListener(\"resize\", calculatePosition);\n window.removeEventListener(\"scroll\", calculatePosition);\n };\n }, [show]);\n\n useEffect(() => {\n calculatePosition();\n }, [show]);\n\n useEffect(() => {\n const isAnchorOffscreen =\n show &&\n (top === 0 ||\n left === 0 ||\n right === 0 ||\n bottom === 0 ||\n window.innerHeight - (elToBePositioned.current as HTMLElement).offsetHeight === top);\n\n if (isAnchorOffscreen) {\n onAnchorOutOfView && onAnchorOutOfView();\n }\n }, [top, left, right, bottom]);\n\n return (\n <div ref={ref} {...rest}>\n <div\n ref={elToBePositioned}\n className={`${classes.popover} ${className ?? \"\"} ${show ? classes.show : \"\"}`}\n style={{ top: top, left: left, right: right, bottom: bottom }}\n >\n {children}\n </div>\n </div>\n );\n};\n\nexport const Popover = React.forwardRef(PopoverComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect } from \"react\";\n\nexport const useBodyClick = (\n checkFunction: (event: MouseEvent) => boolean,\n callbackFunction: (...args: unknown[]) => unknown,\n dependingStateVariable: React.ComponentState | React.ComponentState[]\n) => {\n function bodyClickListener(event: MouseEvent) {\n if (checkFunction(event)) {\n callbackFunction();\n }\n }\n useEffect(() => {\n window.addEventListener(\"click\", bodyClickListener);\n\n return () => {\n window.removeEventListener(\"click\", bodyClickListener);\n };\n }, [dependingStateVariable]);\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useState } from \"react\";\n\nexport const useGetDomRoot = (\n passedDomRoot: HTMLElement | undefined,\n relativeElement: React.RefObject<HTMLDivElement> | null\n) => {\n const [root, setRoot] = useState<HTMLElement>(document.body);\n\n useEffect(() => {\n if (relativeElement && relativeElement.current && !passedDomRoot) {\n const closestBaseStylingWrapper = relativeElement.current.closest(\".basestyling-wrapper\");\n\n if (closestBaseStylingWrapper) {\n setRoot(closestBaseStylingWrapper as HTMLElement);\n return;\n }\n } else if (passedDomRoot) {\n setRoot(passedDomRoot);\n return;\n }\n }, [relativeElement]);\n\n return { root };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithRef,\n createRef,\n ForwardRefRenderFunction,\n ReactElement,\n ReactNode,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { Props as ButtonProps } from \"../Button/Button\";\nimport { Props as IconButtonProps } from \"../Button/IconButton\";\nimport { Popover, Props as PopoverProps } from \"../Popover/Popover\";\nimport { Placement, Offset } from \"../hooks/usePosition\";\nimport classes from \"./ContextMenu.module.scss\";\nimport { useBodyClick } from \"../hooks/useBodyClick\";\nimport { createPortal } from \"react-dom\";\nimport { useGetDomRoot } from \"../hooks/useGetDomRoot\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n trigger: ReactElement<ButtonProps> | ReactElement<IconButtonProps>;\n decorativeElement?: ReactNode;\n children: ReactNode;\n placement?: Placement;\n transformOrigin?: Placement;\n offset?: Offset;\n debounceAmount?: number;\n id: string;\n show?: boolean;\n domRoot?: HTMLElement;\n onShow?: () => void;\n onClose?: () => void;\n popoverProps?: PopoverProps;\n}\n\nconst ContextMenuComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n trigger,\n children,\n decorativeElement,\n id,\n show = false,\n onShow,\n onClose,\n placement = { horizontal: \"right\", vertical: \"top\" },\n offset = { top: 0, bottom: 0, left: 0, right: 0 },\n transformOrigin = { horizontal: \"left\", vertical: \"top\" },\n debounceAmount,\n domRoot,\n popoverProps,\n ...rest\n }: Props,\n ref\n) => {\n const anchorEl = useRef<HTMLButtonElement>(null);\n const wrappingDivRef = (ref as RefObject<HTMLDivElement>) || createRef<HTMLDivElement>();\n const [showContextMenu, setShowContextMenu] = useState(show);\n const [hasBeenClosed, setHasBeenClosed] = useState(false);\n const [selectedContextMenuItem, setSelectedContextMenuItem] = useState(-1);\n const [focusedContextMenuItem, setFocusedContextMenuItem] = useState(-1);\n const [shouldClick, setShouldClick] =\n useState(\n false\n ); /** We need this, because whenever we use the arrow keys to select the contextmenu item, and we focus the currently selected item it fires the \"click\" listener in ContextMenuItem component. Instead, we only want this to fire if we press \"enter\" or \"spacebar\" so we set this to true whenever that is the case, and back to false when it has been executed. */\n const [childrenCount] = useState(React.Children.count(children));\n\n const { root } = useGetDomRoot(domRoot, wrappingDivRef);\n\n if (!id) {\n throw new Error(\"You need to provide an ID to the context menu\");\n }\n\n const onArrowNavigation = (event: React.KeyboardEvent) => {\n if (focusedContextMenuItem === -1 && selectedContextMenuItem !== -1) {\n setFocusedContextMenuItem(selectedContextMenuItem);\n }\n\n const codesToPrevenDefault = [\n \"ArrowDown\",\n \"ArrowUp\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Enter\",\n \"Space\",\n \"Escape\",\n \"End\",\n \"Home\"\n ];\n\n if (codesToPrevenDefault.includes(event.code)) {\n event.preventDefault();\n }\n\n switch (event.code) {\n case \"ArrowDown\":\n if (!showContextMenu) {\n setShowContextMenu(true);\n return;\n }\n setFocusedContextMenuItem(prevState => {\n return prevState + 1 > childrenCount - 1 ? 0 : prevState + 1;\n });\n return;\n case \"ArrowUp\":\n setFocusedContextMenuItem(prevState => {\n return prevState - 1 < 0 ? childrenCount - 1 : prevState - 1;\n });\n return;\n case \"Enter\":\n case \"Space\":\n if (!showContextMenu) {\n setShowContextMenu(true);\n return;\n }\n\n setShouldClick(true);\n setSelectedContextMenuItem(focusedContextMenuItem);\n setShowContextMenu(false);\n return;\n case \"Tab\":\n case \"Escape\":\n setShowContextMenu(false);\n return;\n case \"End\":\n setFocusedContextMenuItem(childrenCount - 1);\n return;\n case \"Home\":\n setFocusedContextMenuItem(0);\n return;\n }\n };\n\n useBodyClick(\n event => {\n return (\n showContextMenu &&\n anchorEl.current !== event.target &&\n anchorEl.current !== (event.target as HTMLElement).parentElement\n );\n },\n () => {\n setShowContextMenu(false);\n },\n showContextMenu\n );\n\n useEffect(() => {\n if (showContextMenu === true) {\n onShow && onShow();\n } else {\n onClose && onClose();\n !hasBeenClosed && setHasBeenClosed(true);\n setFocusedContextMenuItem(-1);\n hasBeenClosed && anchorEl.current && anchorEl.current.focus();\n }\n }, [showContextMenu]);\n\n const renderTrigger = () =>\n React.cloneElement(trigger, {\n id: id,\n \"aria-haspopup\": \"true\",\n \"aria-controls\": `${id}-menu`,\n \"aria-expanded\": showContextMenu,\n onClick: () => setShowContextMenu(!showContextMenu),\n tabIndex: 0,\n ref: anchorEl\n });\n\n const renderChildren = () =>\n React.Children.map(children, (child, index) =>\n React.cloneElement(child as ReactElement, {\n onFocusChange: (childIndex: number) => setFocusedContextMenuItem(childIndex),\n onSelectedChange: (childIndex: number) => {\n setSelectedContextMenuItem(childIndex);\n setShouldClick(false);\n },\n childIndex: index,\n hasFocus: focusedContextMenuItem === index,\n isSelected: selectedContextMenuItem === index,\n contextMenuOpened: showContextMenu,\n shouldClick: shouldClick\n })\n );\n\n const onOutOfViewHandler = useCallback(() => {\n setShowContextMenu(false);\n }, []);\n\n if (!root) {\n return null;\n }\n\n return (\n <div\n {...rest}\n ref={wrappingDivRef}\n onKeyDown={onArrowNavigation}\n className={classes[\"context-menu\"]}\n >\n {renderTrigger()}\n {createPortal(\n <Popover\n {...popoverProps}\n placement={placement}\n transformOrigin={transformOrigin}\n offset={offset}\n anchorEl={anchorEl}\n debounceAmount={debounceAmount}\n show={showContextMenu}\n onAnchorOutOfView={onOutOfViewHandler}\n >\n {decorativeElement && (\n <div className={classes[\"decorative-element\"]}>{decorativeElement}</div>\n )}\n <ul\n className={`${classes[\"menu\"]} ${decorativeElement ? classes[\"no-margin-top\"] : \"\"}`}\n id={`${id}-menu`}\n aria-describedby={id}\n role=\"menu\"\n >\n {renderChildren()}\n </ul>\n </Popover>,\n root\n )}\n </div>\n );\n};\n\nexport const ContextMenu = React.forwardRef(ContextMenuComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithRef,\n createRef,\n ForwardRefRenderFunction,\n RefObject,\n useEffect\n} from \"react\";\nimport classes from \"./ContextMenuItem.module.scss\";\n\nexport interface Props extends Omit<ComponentPropsWithRef<\"button\">, \"onClick\"> {\n children?: string;\n hasFocus?: boolean;\n isSelected?: boolean;\n childIndex?: number;\n shouldClick?: boolean;\n contextMenuOpened?: boolean;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onFocusChange?: (childIndex: number) => void;\n onSelectedChange?: (childIndex: number) => void;\n}\n\nconst ContextMenuItemComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (\n {\n children,\n onClick,\n onFocusChange,\n onSelectedChange,\n hasFocus,\n isSelected,\n childIndex,\n contextMenuOpened,\n shouldClick,\n className,\n ...rest\n }: Props,\n ref\n) => {\n let innerButtonRef = (ref as RefObject<HTMLButtonElement>) || createRef<HTMLButtonElement>();\n\n useEffect(() => {\n if (isSelected && innerButtonRef.current && shouldClick) {\n innerButtonRef.current.click();\n }\n }, [isSelected, shouldClick]);\n\n useEffect(() => {\n if (innerButtonRef.current && hasFocus && contextMenuOpened) {\n onFocusChange && childIndex && onFocusChange(childIndex);\n innerButtonRef.current.focus();\n }\n }, [hasFocus, innerButtonRef, contextMenuOpened]);\n\n return (\n <li role=\"none\" className={`${classes[\"context-menu-item\"]} ${className ?? \"\"}`}>\n <button\n role=\"menuitem\"\n {...rest}\n ref={innerButtonRef}\n data-focus={hasFocus}\n tabIndex={-1}\n onClick={event => {\n onClick && onClick(event);\n onSelectedChange && childIndex && onSelectedChange(childIndex);\n }}\n >\n {children}\n </button>\n </li>\n );\n};\n\nexport const ContextMenuItem = React.forwardRef(ContextMenuItemComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ForwardRefExoticComponent\n} from \"react\";\nimport classes from \"./Link.module.scss\";\n\nexport type AnchorType = \"external\" | \"internal\" | \"download\";\n\nexport interface Props extends ComponentPropsWithRef<\"a\"> {\n color?: \"primary\" | \"secondary\" | \"tertiary\";\n display?: \"link\" | \"button\";\n buttonVariant?: \"outline\" | \"text\" | \"fill\";\n type?: AnchorType;\n to: string;\n disabled?: boolean;\n component?: ForwardRefExoticComponent<any>;\n}\n\nconst LinkComponent: ForwardRefRenderFunction<HTMLAnchorElement, Props> = (\n {\n children,\n className,\n disabled = false,\n to,\n color = \"primary\",\n type = \"internal\",\n display = \"link\",\n buttonVariant = \"fill\",\n component,\n ...rest\n }: Props,\n ref\n) => {\n const determineTarget = () => {\n if (rest.target) {\n return rest.target;\n }\n\n if (type === \"external\") {\n return \"_blank\";\n }\n\n return \"\";\n };\n\n const classNames = [classes[color]];\n display === \"link\" && classNames.push(classes[\"link\"]);\n display === \"button\" && classNames.push(classes[\"button\"], classes[buttonVariant]);\n disabled && classNames.push(classes[\"disabled\"]);\n className && classNames.push(className);\n\n if (component) {\n return React.createElement(\n component,\n {\n ...rest,\n ref: ref,\n to: to,\n className: classNames.join(\" \"),\n \"aria-disabled\": disabled,\n style: {\n ...rest.style\n }\n },\n children\n );\n }\n\n return (\n <a\n {...rest}\n ref={ref}\n download={type === \"download\"}\n rel={type === \"external\" ? \"noopener noreferer\" : undefined}\n href={!disabled ? to : undefined}\n className={classNames.join(\" \")}\n aria-disabled={disabled}\n target={determineTarget()}\n style={{\n ...rest.style\n }}\n >\n {children}\n </a>\n );\n};\n\nexport const Link = React.forwardRef(LinkComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, Fragment } from \"react\";\nimport { BaseButton, Props as BaseButtonProps } from \"./BaseButton\";\nimport classes from \"./IconButton.module.scss\";\nimport readyclasses from \"../readyclasses.module.scss\";\n\nexport interface Props extends BaseButtonProps {\n children?: React.ReactNode;\n iconSize?: \"s\" | \"m\" | \"l\";\n variant?: \"text\" | \"fill\" | \"outline\";\n className?: string;\n title?: string;\n}\n\nexport const IconButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (\n { children, color = \"primary\", variant = \"text\", iconSize = \"m\", title, className, ...rest },\n ref\n) => {\n if (!title) {\n console.error(\"Please make sure to specify a 'title' prop to your IconButton component! \");\n }\n\n const iconButtonClasses = [\n classes[\"icon-button\"],\n classes[variant],\n classes[color],\n classes[\"button-\" + iconSize]\n ];\n\n if (className) {\n iconButtonClasses.push(className);\n }\n\n return (\n <BaseButton {...rest} ref={ref} className={iconButtonClasses.join(\" \")}>\n <Fragment>\n {children}\n <span className={readyclasses[\"sr-only\"]}>{title}</span>\n </Fragment>\n </BaseButton>\n );\n};\n\nexport const IconButton = React.forwardRef(IconButtonComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { HTMLProps } from \"react\";\nimport classes from \"./Tab.module.scss\";\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n title: string;\n children?: unknown;\n tabActive?: boolean;\n}\n\nexport const Tab = ({ children, tabActive, ...rest }: Props) => {\n return (\n <div\n {...rest}\n aria-hidden={!tabActive}\n role=\"tabpanel\"\n className={`${classes[\"tab\"]} ${tabActive ? classes[\"selected\"] : \"\"} ${\n rest.className ?? \"\"\n }`}\n >\n {children}\n </div>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n createRef,\n RefObject,\n useEffect\n} from \"react\";\nimport classes from \"./TabButton.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"button\"> {\n tabActive?: boolean;\n focused?: boolean;\n}\n\nconst TabButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (\n { children, tabActive, focused, title, ...rest }: Props,\n ref\n) => {\n let buttonRef = (ref as RefObject<HTMLButtonElement>) || createRef<HTMLButtonElement>();\n\n useEffect(() => {\n if (focused && buttonRef.current) {\n buttonRef.current.focus();\n }\n }, [buttonRef.current, focused]);\n\n return (\n <button\n {...rest}\n className={`${classes[\"tabbutton\"]} ${tabActive ? classes[\"selected\"] : \"\"} ${\n rest.className ?? \"\"\n }`}\n ref={buttonRef}\n role=\"tab\"\n type=\"button\"\n >\n <span aria-hidden=\"true\">{children}</span>\n {children}\n </button>\n );\n};\n\nexport const TabButton = React.forwardRef(TabButtonComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithRef,\n createRef,\n ForwardRefRenderFunction,\n ReactElement,\n RefObject,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { Props as TabProps } from \"./Tab\";\nimport { TabButton } from \"./TabButton\";\nimport classes from \"./Tabs.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children: React.ReactElement<TabProps> | React.ReactElement<TabProps>[];\n selected?: number;\n onTabChange?: (index: number) => void;\n}\n\nconst TabsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, selected = 0, onTabChange, ...rest }: Props,\n ref\n) => {\n const [renderedButtons, setRenderedButtons] = useState<ReactElement[]>([]);\n const [renderedTabs, setRenderedTabs] = useState<ReactElement[]>([]);\n const [activeTabIndex, setActiveTabIndex] = useState(selected);\n const [usingKeyboardNavigation, setUsingKeyboardNavigation] = useState(false);\n const [indicatorStyles, setIndicatorStyles] = useState<{\n width: number;\n left: number;\n top: number;\n }>({\n width: 0,\n left: 0,\n top: 0\n });\n const tabsRef = (ref as RefObject<HTMLDivElement>) || createRef<HTMLDivElement>();\n const indicatorRef = useRef<HTMLDivElement>(null);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n const totalAmountOfTabs = [children].flat().length;\n if (!usingKeyboardNavigation) setUsingKeyboardNavigation(true);\n if (totalAmountOfTabs === 1) return;\n\n switch (e.key) {\n case \"ArrowRight\":\n setActiveTabIndex(currentIndex => {\n return currentIndex + 1 > totalAmountOfTabs - 1 ? 0 : currentIndex + 1;\n });\n break;\n case \"ArrowLeft\":\n setActiveTabIndex(currentIndex => {\n return currentIndex - 1 < 0 ? totalAmountOfTabs - 1 : currentIndex - 1;\n });\n break;\n case \"Home\":\n setActiveTabIndex(0);\n break;\n case \"End\":\n setActiveTabIndex(totalAmountOfTabs - 1);\n break;\n default:\n return;\n }\n };\n\n const calculateIndicatorPosition = () => {\n if (tabsRef.current) {\n const selectedButton = tabsRef.current.querySelectorAll('button[role=\"tab\"]')[\n activeTabIndex\n ] as HTMLElement;\n\n setIndicatorStyles({\n left: selectedButton.offsetLeft,\n top:\n selectedButton.offsetTop +\n selectedButton.offsetHeight -\n indicatorRef.current!.offsetHeight,\n width: selectedButton.offsetWidth\n });\n }\n };\n\n useEffect(() => {\n if (tabsRef.current && renderedButtons.length) {\n calculateIndicatorPosition();\n }\n }, [tabsRef.current, activeTabIndex, renderedButtons]);\n\n useEffect(() => {\n onTabChange && onTabChange(activeTabIndex);\n }, [activeTabIndex]);\n\n useEffect(() => {\n const buttons = React.Children.map(children, (child, index) => {\n if (Object.prototype.hasOwnProperty.call(child.props, \"title\")) {\n return React.createElement(\n TabButton,\n {\n key: `${child.props.title.toLowerCase().replace(/\\s/, \"_\")}_button`,\n tabIndex: activeTabIndex === index ? 0 : -1,\n \"aria-selected\": activeTabIndex === index,\n focused: usingKeyboardNavigation && activeTabIndex === index,\n tabActive: activeTabIndex === index,\n \"aria-controls\": `tab_${index}`,\n onClick: () => setActiveTabIndex(index)\n },\n child.props.title\n );\n }\n return null;\n });\n\n setRenderedButtons(buttons);\n }, [activeTabIndex]);\n\n useEffect(() => {\n const tabs = React.Children.map(children, (child, index) => {\n if (Object.prototype.hasOwnProperty.call(child.props, \"title\")) {\n return React.cloneElement(child, {\n key: `${child.props.title.toLowerCase().replace(/\\s/, \"_\")}_tab`,\n tabIndex: activeTabIndex === index ? 0 : -1,\n tabActive: activeTabIndex === index,\n id: `tab_${index}`,\n children: child.props.children\n });\n }\n\n return null;\n });\n\n setRenderedTabs(tabs);\n }, [activeTabIndex]);\n\n return (\n <div {...rest} ref={tabsRef} className={`${classes[\"tabs\"]} ${rest.className ?? \"\"}`}>\n <div role=\"tablist\" className={classes[\"tablist\"]} onKeyDown={handleKeyDown}>\n {renderedButtons}\n <div className={classes[\"tabdivider\"]} />\n <div\n className={classes[\"indicator\"]}\n ref={indicatorRef}\n aria-hidden=\"true\"\n tabIndex={-1}\n style={{\n width: indicatorStyles.width,\n left: indicatorStyles.left,\n top: indicatorStyles.top\n }}\n />\n </div>\n <div>{renderedTabs}</div>\n </div>\n );\n};\n\nexport const Tabs = React.forwardRef(TabsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n useRef,\n MouseEventHandler,\n useState,\n ComponentPropsWithRef\n} from \"react\";\nimport { Popover } from \"../Popover/Popover\";\nimport classes from \"./TextEllipsis.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children?: string;\n popoverClassName?: string;\n}\n\nconst TextEllipsisComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, popoverClassName, className, ...rest }: Props,\n ref\n) => {\n const [showPopover, setShowPopover] = useState(false);\n const textContainer = useRef<HTMLDivElement>(null);\n\n const ellipsisVisible = () => {\n if (\n textContainer.current &&\n textContainer.current.offsetWidth < textContainer.current.scrollWidth\n ) {\n return true;\n }\n return false;\n };\n\n const onMouseEnter: MouseEventHandler<HTMLDivElement> = () => {\n ellipsisVisible() && setShowPopover(true);\n };\n\n const onMouseLeave: MouseEventHandler<HTMLDivElement> = () => {\n ellipsisVisible() && setShowPopover(false);\n };\n\n return (\n <div\n {...rest}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n className={`${classes[\"text-ellipsis\"]} ${className ?? \"\"}`}\n ref={ref || textContainer}\n >\n {children}\n <Popover\n aria-hidden={true}\n data-hidden={!showPopover}\n show={showPopover}\n role=\"tooltip\"\n anchorEl={textContainer}\n className={`${classes.popover} ${popoverClassName ?? \"\"}`}\n >\n {children}\n </Popover>\n </div>\n );\n};\n\nexport const TextEllipsis = React.forwardRef(TextEllipsisComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype KeyValuePair = { [key: string]: unknown };\n\nexport const generateID = (length = 15, stringToWeaveIn?: string) => {\n /** We will make sure to mesh the generate id and name property together to basically create a unique ID */\n let hashCharacters = [\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"0\",\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\",\n \"G\",\n \"H\",\n \"I\",\n \"J\",\n \"K\",\n \"L\",\n \"M\",\n \"N\",\n \"O\",\n \"P\",\n \"Q\",\n \"R\",\n \"S\",\n \"T\",\n \"U\",\n \"V\",\n \"W\",\n \"X\",\n \"Y\",\n \"Z\",\n \"a\",\n \"b\",\n \"c\",\n \"d\",\n \"e\",\n \"f\",\n \"g\",\n \"h\",\n \"i\",\n \"j\",\n \"k\",\n \"l\",\n \"m\",\n \"n\",\n \"o\",\n \"p\",\n \"q\",\n \"r\",\n \"s\",\n \"t\",\n \"u\",\n \"v\",\n \"w\",\n \"x\",\n \"y\",\n \"z\"\n ];\n\n let id = \"\";\n\n /** Generate an id of x characters in length */\n for (let i = 0; i < length && id.length < length; i++) {\n let stringCharacter =\n stringToWeaveIn && stringToWeaveIn[i] !== undefined && !/\\s/.test(stringToWeaveIn[i])\n ? stringToWeaveIn[i]\n : \"\";\n id = id + stringCharacter + hashCharacters[Math.floor(Math.random() * hashCharacters.length)];\n }\n\n return id.slice(0, length);\n};\n\nexport const filterProps = (props: any, regexPattern: RegExp, returnFiltered: boolean = true) => {\n if (returnFiltered) {\n return Object.keys(props).reduce((acc: KeyValuePair, key) => {\n if (regexPattern.test(key)) {\n acc[key] = props[key];\n }\n\n return acc;\n }, {});\n } else {\n return Object.entries(props)\n .filter(([key]) => !regexPattern.test(key))\n .reduce(\n (prevObj, currKeyValPair) => ({ ...prevObj, [currKeyValPair[0]]: currKeyValPair[1] }),\n {}\n );\n }\n};\n\nexport const debounce = (fn: (...args: unknown[]) => unknown, delay: number) => {\n let timeout: undefined | ReturnType<typeof setTimeout>;\n\n return function executedFunction(...args: unknown[]) {\n const later = () => {\n clearTimeout(timeout);\n fn(...args);\n };\n\n clearTimeout(timeout);\n\n timeout = setTimeout(later, delay);\n };\n};\n\nexport const throttle = (fn: (...args: unknown[]) => unknown, delay: number) => {\n let lastTime = 0;\n\n return function () {\n let now = Date.now();\n\n if (now - lastTime >= delay) {\n fn();\n lastTime = now;\n }\n };\n};\n\nexport const isEqual = (x: any, y: any): boolean => {\n const typesCoincide = x && y && typeof x === \"object\" && typeof y === \"object\";\n return typesCoincide\n ? Object.keys(x).length === Object.keys(y).length &&\n Object.keys(x).every(key => isEqual(x[key], y[key]))\n : x === y;\n};\n\nexport const areArraysDifferent = (\n arr1: Record<string, any>[],\n arr2: Record<string, any>[],\n key: string\n) => {\n if (arr1.length !== arr2.length) {\n return true;\n } else {\n const firstFilteredArray = arr1.filter(arr1Item =>\n arr2.some((arr2Item: { [x: string]: any }) => !isEqual(arr1Item[key], arr2Item[key]))\n );\n const secondFilteredArray = arr2.filter(arr2Item =>\n arr1.some((arr1Item: { [x: string]: any }) => !isEqual(arr1Item[key], arr2Item[key]))\n );\n\n return !!firstFilteredArray.length || !!secondFilteredArray.length;\n }\n};\n\nexport const getValueByPath = (obj: { [key: string]: any }, path: string): any => {\n return path.split(\".\").reduce((res, prop) => {\n return res[prop];\n }, obj);\n};\n\n/** Source: https://stackoverflow.com/a/42769683/5084110 */\nexport const remToPx = (rem: number): number => {\n return rem * parseFloat(getComputedStyle(document.documentElement).fontSize);\n};\n\nexport const isJsonString = (str: any) => {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithoutRef,\n ComponentPropsWithRef,\n ForwardRefRenderFunction,\n ReactElement,\n useState\n} from \"react\";\nimport { Icon, Icons } from \"../Icon/Icon\";\nimport classes from \"./Tile.module.scss\";\nimport readyClasses from \"../readyclasses.module.scss\";\n\nimport { Props as ContextMenuProps } from \"../ContextMenu/ContextMenu\";\nimport { generateID } from \"../util/helper\";\nimport { Props as IconButtonProps } from \"../Button/IconButton\";\n\ninterface ImageProps extends ComponentPropsWithoutRef<\"img\"> {\n src: string;\n}\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n title: string;\n imageProps?: ImageProps;\n enabled?: boolean;\n loading?: boolean;\n tileAction?: ReactElement<ContextMenuProps> | ReactElement<IconButtonProps>;\n}\n\nconst TileComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { title, imageProps, enabled, className, loading, tileAction, ...rest }: Props,\n ref\n) => {\n const [tileDescriptionID] = useState(generateID(20));\n\n if (!title) {\n throw new Error(\"Please make sure to pass a title prop to your Tile component.\");\n }\n\n const statusMessage = () => {\n if (enabled) {\n return \"Status: enabled\";\n }\n\n return \"Status: disabled\";\n };\n\n return (\n <article\n {...rest}\n tabIndex={0}\n aria-labelledby={tileDescriptionID}\n ref={ref}\n className={`${classes[\"tile\"]} ${loading ? classes[\"loading\"] : \"\"}`}\n >\n <header style={{ justifyContent: enabled === undefined ? \"flex-end\" : \"space-between\" }}>\n {enabled === true && (\n <Icon\n color=\"var(--success)\"\n icon={Icons.Checkmark}\n className={`${classes[\"icon\"]} ${className ?? \"\"}`}\n />\n )}\n {enabled === false && (\n <Icon\n color=\"var(--greyed-out)\"\n icon={Icons.Forbidden}\n className={`${classes[\"icon\"]} ${className ?? \"\"}`}\n />\n )}\n {enabled !== undefined && (\n <span id={tileDescriptionID} className={readyClasses[\"sr-only\"]}>\n {`${title}. ${statusMessage()}`}\n </span>\n )}\n {tileAction ?? null}\n </header>\n <div className={classes[\"content\"]}>\n {imageProps && imageProps.src.length > 0 && (\n <figure className={classes[\"image\"]}>{!loading && <img {...imageProps} alt=\"\" />}</figure>\n )}\n {(!imageProps || imageProps.src.length === 0) && (\n <Icon className={classes[\"placeholder\"]} icon={Icons.Image} />\n )}\n <span className={classes[\"title\"]}>{title}</span>\n </div>\n </article>\n );\n};\n\nexport const Tile = React.forwardRef(TileComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactNode } from \"react\";\nimport classes from \"./Tiles.module.scss\";\nimport { Tile } from \"./Tile\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children: ReactNode;\n loading?: boolean;\n}\n\nconst TilesComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, className, loading = false, ...rest }: Props,\n ref\n) => {\n const renderChildren = () => {\n if (loading) {\n return [\n <Tile\n key=\"placeholder1\"\n title=\"placeholder\"\n imageProps={{ src: \"placeholder\" }}\n loading={true}\n />,\n <Tile\n key=\"placeholder2\"\n title=\"placeholder\"\n imageProps={{ src: \"placeholder\" }}\n loading={true}\n />,\n <Tile\n key=\"placeholder3\"\n title=\"placeholder\"\n imageProps={{ src: \"placeholder\" }}\n loading={true}\n />\n ];\n }\n\n return children;\n };\n\n return (\n <div\n {...rest}\n ref={ref}\n className={`${classes[\"tiles\"]} ${className ?? \"\"}`}\n aria-live=\"polite\"\n aria-busy={loading}\n >\n {renderChildren()}\n </div>\n );\n};\n\nexport const Tiles = React.forwardRef(TilesComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithRef,\n createRef,\n ForwardRefRenderFunction,\n ReactElement,\n ReactNode,\n RefObject,\n useEffect,\n useLayoutEffect,\n useRef,\n useState\n} from \"react\";\nimport { Icon, Icons } from \"../Icon/Icon\";\nimport classes from \"./Tooltip.module.scss\";\nimport { generateID } from \"../util/helper\";\nimport { Offset, Placement, usePosition } from \"../hooks/usePosition\";\nimport { createPortal } from \"react-dom\";\nimport { useGetDomRoot } from \"../hooks/useGetDomRoot\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n label: string | ReactNode;\n children: string;\n placement?: Placement;\n offset?: Offset;\n transformOrigin?: Placement;\n domRoot?: HTMLElement;\n}\n\ninterface DefaultPosition {\n placement: Placement;\n offset: Offset;\n transformOrigin: Placement;\n}\n\nconst defaultPosition: DefaultPosition = {\n placement: { horizontal: \"right\", vertical: \"center\" },\n offset: { left: 16, right: 0, top: 0, bottom: 0 },\n transformOrigin: { horizontal: \"left\", vertical: \"center\" }\n};\n\nconst TooltipComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n className,\n placement = defaultPosition.placement,\n offset = defaultPosition.offset,\n transformOrigin = defaultPosition.transformOrigin,\n domRoot,\n label,\n ...rest\n }: Props,\n ref\n) => {\n const [identifier] = useState(generateID());\n const [visible, setVisible] = useState(false);\n\n const wrappingDivRef = (ref as RefObject<HTMLDivElement>) || createRef<HTMLDivElement>();\n const { root } = useGetDomRoot(domRoot, wrappingDivRef);\n\n const relativeElement = useRef<HTMLDivElement>(null);\n const elementToBePositioned = useRef<HTMLDivElement>(null);\n\n const { top, bottom, right, left, calculatePosition } = usePosition({\n relativeElement: relativeElement,\n elementToBePositioned: elementToBePositioned,\n placement: placement,\n offset: offset,\n transformOrigin: transformOrigin\n });\n\n useEffect(() => {\n if (!visible) return;\n\n function escapePressHandler(event: KeyboardEvent) {\n if (event.key === \"Escape\") {\n setVisible(false);\n }\n }\n\n document.addEventListener(\"keyup\", escapePressHandler);\n\n return () => {\n document.removeEventListener(\"keyup\", escapePressHandler);\n };\n }, [visible]);\n\n useLayoutEffect(() => {\n calculatePosition();\n }, [visible]);\n\n const renderChildren = () => {\n if (React.isValidElement(label)) {\n return React.cloneElement(label as ReactElement, {\n onFocus: () => setVisible(true),\n onBlur: () => setVisible(false),\n \"aria-describedby\": identifier,\n tabIndex: 0,\n className: classes[\"label\"]\n });\n }\n\n return (\n <span\n className={classes[\"label\"]}\n tabIndex={0}\n onFocus={() => setVisible(true)}\n onBlur={() => setVisible(false)}\n aria-describedby={identifier}\n >\n {label}\n </span>\n );\n };\n\n return (\n <div {...rest} ref={wrappingDivRef} className={`${classes.wrapper} ${className ?? \"\"}`}>\n {renderChildren()}\n <div className={`${classes[\"tooltip-wrapper\"]}`}>\n <Icon\n ref={relativeElement}\n tag=\"div\"\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n icon={Icons.InfoCircle}\n className={classes.icon}\n />\n {createPortal(\n <div\n ref={elementToBePositioned}\n style={{\n ...rest.style,\n top: top,\n left: left,\n right: right,\n bottom: bottom\n }}\n aria-hidden={!visible}\n id={identifier}\n className={`${classes.tooltip} ${visible ? classes.visible : \"\"}`}\n >\n {children}\n </div>,\n root\n )}\n </div>\n </div>\n );\n};\n\nexport const Tooltip = React.forwardRef(TooltipComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport { Typography } from \"../Typography/Typography\";\nimport classes from \"./ProgressBar.module.scss\";\n\nexport interface Props extends Omit<ComponentPropsWithRef<\"span\">, \"children\"> {\n placeholderText: string;\n completed?: number;\n}\n\nconst ProgressBarComponent: ForwardRefRenderFunction<HTMLSpanElement, Props> = (\n { placeholderText, completed, ...rest }: Props,\n ref\n) => {\n return (\n <span {...rest} ref={ref} role=\"progressbar\">\n <span className={classes[\"progress-bar\"]}>\n <span\n className={`${classes[\"bar\"]} ${\n completed ? classes[`w-${5 * Math.round(completed / 5)}`] : classes[\"loading-state\"]\n }`}\n />\n </span>\n <Typography className={classes[\"placeholder\"]} spacing={{ marginBottom: 0 }} variant=\"body\">\n {placeholderText}\n </Typography>\n </span>\n );\n};\n\nexport const ProgressBar = React.forwardRef(ProgressBarComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport classes from \"./Skeleton.module.scss\";\n\nexport interface Props extends Omit<ComponentPropsWithRef<\"div\">, \"children\"> {\n variant?: \"circular\" | \"rectangle\" | \"text\";\n height?: number | string;\n width?: number | string;\n}\n\nconst SkeletonComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { variant = \"text\", height, width, className, style, ...rest }: Props,\n ref\n) => {\n const classNames = [classes[\"skeleton\"]];\n !height && classNames.push(classes[\"no-height\"]);\n variant === \"text\" && classNames.push(classes[\"text\"]);\n variant === \"circular\" && classNames.push(classes[\"circular\"]);\n className && classNames.push(className);\n\n return (\n <span\n {...rest}\n aria-busy=\"true\"\n aria-hidden=\"true\"\n ref={ref}\n style={{ ...style, width, height }}\n className={classNames.join(\" \")}\n ></span>\n );\n};\n\nexport const Skeleton = React.forwardRef(SkeletonComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactNode } from \"react\";\nimport { Typography, Props as TypographyProps } from \"../Typography/Typography\";\nimport classes from \"./StatusIndicator.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children?: ReactNode;\n status: \"active\" | \"error\" | \"neutral\" | \"warning\";\n badgeProps?: ComponentPropsWithRef<\"div\">;\n typographyProps?: TypographyProps;\n}\n\nconst StatusIndicatorComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, status, badgeProps, typographyProps, ...rest }: Props,\n ref\n) => {\n return (\n <div {...rest} className={classes[\"status-indicator\"]} ref={ref}>\n <div\n className={`${classes[\"status-badge\"]} ${classes[status]} ${badgeProps?.className ?? \"\"}`}\n />\n <Typography {...typographyProps} spacing={{ margin: \"0\" }} variant=\"body\" tag=\"div\">\n {typographyProps?.children || children}\n </Typography>\n </div>\n );\n};\n\nexport const StatusIndicator = React.forwardRef(StatusIndicatorComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormElement } from \"../Form/form.interfaces\";\nimport React, { ReactElement, useRef } from \"react\";\nimport { Icon, Icons } from \"../Icon/Icon\";\nexport const useDetermineStatusIcon = (params: Partial<FormElement>): ReactElement | null => {\n const { error, success } = params || false;\n let icon = null;\n const errorRef = useRef(null);\n const successRef = useRef(null);\n\n if (error) {\n icon = <Icon ref={errorRef} data-icon-status=\"error\" icon={Icons.Error} />;\n } else if (success) {\n icon = (\n <Icon ref={successRef} data-icon-status=\"success\" icon={Icons.CheckmarkCircleBreakout} />\n );\n }\n\n return icon;\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n Ref,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport classes from \"./Input.module.scss\";\nimport readyclasses from \"../../readyclasses.module.scss\";\nimport { FormElement } from \"../form.interfaces\";\nimport { useDetermineStatusIcon } from \"../../hooks/useDetermineStatusIcon\";\n\nexport const dateTypes = [\"date\", \"time\", \"datetime-local\"] as const;\n\nexport type Type =\n | \"text\"\n | \"email\"\n | \"file\"\n | \"number\"\n | \"password\"\n | \"search\"\n | \"tel\"\n | \"url\"\n | \"hidden\"\n | (typeof dateTypes)[number];\n\nexport interface Props extends ComponentPropsWithRef<\"input\">, FormElement {\n wrapperProps?: ComponentPropsWithRef<\"div\">;\n labeledBy?: string;\n type: Type;\n suffix?: string;\n prefix?: string;\n}\n\nconst InputComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (\n {\n error = false,\n success = false,\n className,\n name,\n style,\n wrapperProps,\n type,\n labeledBy,\n prefix,\n suffix,\n disabled,\n onFocus,\n onBlur,\n ...rest\n }: Props,\n ref: Ref<HTMLInputElement>\n) => {\n const [focus, setFocus] = useState(false);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const suffixRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (name === undefined) {\n throw new Error(\"Please give your <Input /> component a 'name' attribute\");\n }\n }, []);\n\n const inputClassNames = [classes[\"input\"]];\n\n (dateTypes as ReadonlyArray<string>).includes(type) &&\n inputClassNames.push(classes[\"shrink-width-for-date-icon\"]);\n className && inputClassNames.push(className);\n\n const wrapperClasses = [classes[\"input-wrapper\"]];\n const outlineClasses = [classes[\"outline\"]];\n\n wrapperProps?.className && wrapperClasses.push(wrapperProps.className);\n type === \"hidden\" && wrapperClasses.push(readyclasses[\"hidden\"]);\n prefix && wrapperClasses.push(classes[\"prefix\"]);\n suffix && wrapperClasses.push(classes[\"suffix\"]);\n disabled && wrapperClasses.push(classes[\"disabled\"]) && outlineClasses.push(classes[\"disabled\"]);\n error && wrapperClasses.push(classes[\"error\"]) && outlineClasses.push(classes[\"error\"]);\n focus && wrapperClasses.push(classes[\"focus\"]) && outlineClasses.push(classes[\"focus\"]);\n success && wrapperClasses.push(classes[\"success\"]);\n\n const icon = useDetermineStatusIcon({ success, error });\n\n return (\n <div\n ref={inputWrapperRef}\n {...wrapperProps}\n style={{ ...style }}\n className={`${classes[\"input-wrapper\"]} ${wrapperClasses.join(\" \")}`}\n >\n {prefix && (\n <div data-prefix className={classes[\"prefix\"]}>\n <span>{prefix}</span>\n </div>\n )}\n <input\n {...rest}\n ref={ref}\n onFocus={event => {\n setFocus(true);\n onFocus && onFocus(event);\n }}\n onBlur={event => {\n setFocus(false);\n onBlur && onBlur(event);\n }}\n aria-labelledby={labeledBy}\n type={type}\n name={name}\n disabled={disabled}\n className={inputClassNames.join(\" \")}\n spellCheck={rest.spellCheck || false}\n />\n {icon}\n {suffix && (\n <div ref={suffixRef} data-suffix className={classes[\"suffix\"]}>\n <span>{suffix}</span>\n </div>\n )}\n <span className={outlineClasses.join(\" \")}></span>\n </div>\n );\n};\n\nexport const Input = React.forwardRef(InputComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport {\n Position,\n UseArrowNavigationParams,\n UseSelectPositionListParams\n} from \"./Select.interfaces\";\n\nexport const useArrowNavigation = ({\n expanded,\n setExpanded,\n isSearching,\n setIsSearching,\n setFocusedSelectItem,\n childrenCount,\n customSelectButtonRef,\n setShouldClick,\n searchInputRef,\n renderSearchCondition\n}: UseArrowNavigationParams) => {\n const onArrowNavigation = (event: React.KeyboardEvent) => {\n const codesToPreventDefault = [\n \"ArrowDown\",\n \"ArrowUp\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Space\",\n \"Escape\",\n \"End\",\n \"Home\"\n ];\n\n const codesToPreventDefaultWhenSearching = [\"ArrowDown\", \"ArrowUp\", \"Enter\", \"Escape\"];\n\n /** If the select is expanded, we also want to control the Tab key */\n if (expanded) {\n codesToPreventDefault.push(\"Tab\");\n }\n\n /** We will handle the way certain key strokes affect the Select, unless we're searching */\n if (codesToPreventDefault.includes(event.code) && !isSearching) {\n event.preventDefault();\n }\n\n if (isSearching && codesToPreventDefaultWhenSearching.includes(event.code)) {\n event.preventDefault();\n }\n\n if (isSearching) {\n switch (event.code) {\n case \"ArrowDown\":\n case \"Enter\":\n setIsSearching(false);\n setFocusedSelectItem(0);\n return;\n case \"ArrowUp\":\n setIsSearching(false);\n setFocusedSelectItem(childrenCount - 1);\n return;\n case \"Escape\":\n case \"Tab\":\n setIsSearching(false);\n setExpanded(false);\n customSelectButtonRef.current && customSelectButtonRef.current.focus();\n }\n } else {\n switch (event.code) {\n case \"ArrowDown\":\n if (!expanded) {\n setExpanded(true);\n return;\n }\n setFocusedSelectItem(prevState => {\n return prevState + 1 > childrenCount - 1 ? 0 : prevState + 1;\n });\n return;\n case \"ArrowUp\":\n setFocusedSelectItem(prevState => {\n return prevState - 1 < 0 ? childrenCount - 1 : prevState - 1;\n });\n return;\n case \"Space\":\n if (!expanded) {\n setExpanded(true);\n return;\n }\n\n setShouldClick(true);\n setExpanded(false);\n customSelectButtonRef.current && customSelectButtonRef.current.focus();\n return;\n case \"Tab\":\n if (childrenCount >= renderSearchCondition && expanded) {\n setIsSearching(true);\n searchInputRef.current && searchInputRef.current.focus();\n return;\n }\n setExpanded(false);\n\n return;\n case \"Escape\":\n if (expanded) {\n setExpanded(false);\n customSelectButtonRef.current && customSelectButtonRef.current.focus();\n }\n return;\n case \"End\":\n setFocusedSelectItem(childrenCount - 1);\n return;\n case \"Home\":\n setFocusedSelectItem(0);\n return;\n }\n }\n };\n\n return { onArrowNavigation };\n};\n\nexport const useSelectPositionList = ({\n expanded,\n optionListReference,\n containerReference\n}: UseSelectPositionListParams) => {\n const [optionsListMaxHeight, setOptionsListMaxHeight] = useState(\"none\");\n const [opacity, setOpacity] = useState(0); // We set opacity because other wise if we calculate the max height you see the list full height for a split second and then it shortens.\n const [listPosition, setListPosition] = useState<Partial<Position>>({});\n\n useEffect(() => {\n rePositionList();\n }, [expanded]);\n\n const rePositionList = () => {\n if (!expanded || !optionListReference.current || !containerReference.current) {\n return;\n }\n\n // Check whether there is more space above or below the select\n // Check space between the bottom of select and top of viewport\n const spaceOnTopOfSelect = containerReference.current.getBoundingClientRect().bottom;\n\n // Check space between the top of the select and bottom of viewport\n const spaceOnBottomOfSelect =\n window.innerHeight - containerReference.current.getBoundingClientRect().top;\n\n // Set position as if there's more space on the bottom\n let position: Position = { top: 0, bottom: \"initial\" };\n\n // Set the position of the select\n if (spaceOnTopOfSelect > spaceOnBottomOfSelect) {\n position = { top: \"initial\", bottom: 0 };\n }\n\n setListPosition(position);\n\n // Calculate the potential max height of the options list\n calculateOptionListMaxHeight(position);\n };\n\n const calculateOptionListMaxHeight = (position: Position) => {\n // Calculate max height if there's more space below the select\n const listHeight = optionListReference.current?.getBoundingClientRect().height;\n const transformOrigin = position.top !== \"initial\" ? \"top\" : \"bottom\";\n\n const availableSpace =\n transformOrigin === \"top\"\n ? window.innerHeight -\n containerReference.current!.getBoundingClientRect()[transformOrigin] -\n 16\n : containerReference.current!.getBoundingClientRect()[transformOrigin] - 16;\n\n if (listHeight && availableSpace < listHeight) {\n setOptionsListMaxHeight(`${availableSpace}px`);\n setOpacity(100);\n return;\n }\n\n setOptionsListMaxHeight(\"none\");\n setOpacity(100);\n };\n\n return {\n optionsListMaxHeight,\n opacity,\n setOpacity,\n listPosition,\n setListPosition\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classes from \"./Select.module.scss\";\n\nimport React, {\n ComponentPropsWithRef,\n createRef,\n ForwardRefRenderFunction,\n Fragment,\n ReactElement,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { Input, Props as InputProps } from \"../Input/Input\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { FormElement } from \"../form.interfaces\";\nimport { useBodyClick } from \"../../hooks/useBodyClick\";\nimport readyclasses from \"../../readyclasses.module.scss\";\nimport { filterProps } from \"../../util/helper\";\nimport { useArrowNavigation, useSelectPositionList } from \"./SelectService\";\nimport { useDetermineStatusIcon } from \"../../hooks/useDetermineStatusIcon\";\n\ntype PartialInputProps = Partial<InputProps>;\n\nexport interface Props extends ComponentPropsWithRef<\"select\">, FormElement {\n children: ReactElement[];\n name?: string;\n labeledBy?: string;\n describedBy?: string;\n placeholder?: string;\n searchPlaceholder?: string;\n searchInputProps?: PartialInputProps;\n selectButtonProps?: ComponentPropsWithRef<\"button\">;\n className?: string;\n value: string;\n clearLabel?: string;\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>, child?: ReactElement) => void;\n}\n\n/** Amount of items to be rendered before a search input is rendered */\nconst renderSearchCondition = 10;\n\nconst SelectComponent: ForwardRefRenderFunction<HTMLSelectElement, Props> = (\n {\n children,\n name,\n disabled = false,\n labeledBy,\n placeholder,\n describedBy,\n searchPlaceholder = \"Search item\",\n searchInputProps,\n selectButtonProps,\n className,\n error = false,\n success = false,\n value,\n clearLabel = \"Clear selection\",\n onChange,\n ...rest\n }: Props,\n ref\n) => {\n const [expanded, setExpanded] = useState(false);\n const [filter, setFilter] = useState(\"\");\n const [display, setDisplay] = useState(\"\");\n const containerReference = useRef<HTMLDivElement>(null);\n const optionListReference = useRef<HTMLDivElement>(null);\n const [isSearching, setIsSearching] = useState(false);\n const [focusedSelectItem, setFocusedSelectItem] = useState(-1);\n const [shouldClick, setShouldClick] =\n useState(\n false\n ); /** We need this, because whenever we use the arrow keys to select the select item, and we focus the currently selected item it fires the \"click\" listener in Option component. Instead, we only want this to fire if we press \"enter\" or \"spacebar\" so we set this to true whenever that is the case, and back to false when it has been executed. */\n const [childrenCount] = useState(React.Children.count(children));\n\n const nativeSelect = (ref as React.RefObject<HTMLSelectElement>) || createRef();\n const searchInputRef = useRef<HTMLInputElement>(null);\n const customSelectButtonRef = useRef<HTMLButtonElement>(null);\n const { onArrowNavigation } = useArrowNavigation({\n expanded,\n setExpanded,\n isSearching,\n setIsSearching,\n setFocusedSelectItem,\n childrenCount,\n customSelectButtonRef,\n setShouldClick,\n searchInputRef,\n renderSearchCondition\n });\n\n const { listPosition, opacity, optionsListMaxHeight, setListPosition, setOpacity } =\n useSelectPositionList({ expanded, optionListReference, containerReference });\n\n const syncDisplayValue = (val: string) => {\n React.Children.forEach(children, child => {\n if (child.props.value === val) {\n setDisplay(child.props.children);\n }\n });\n };\n\n const onOptionChangeHandler = (optionRef: React.RefObject<HTMLLIElement>) => {\n if (nativeSelect.current && optionRef.current) {\n nativeSelect.current.value = optionRef.current.getAttribute(\"data-value\")!;\n nativeSelect.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n\n setExpanded(false);\n\n customSelectButtonRef.current && customSelectButtonRef.current.focus();\n };\n\n /**\n * @description We have to modify the children (Option component) to have a additional props that allows us to keep track of which one is selected and focused at all times and if a filter is active.\n * The `children` prop can be either a single object (1 child) or an array of multiple children.\n */\n const renderOptions = () => {\n if (isSearching || filter !== \"\") {\n const filteredChildren = React.Children.toArray(children).filter(\n child =>\n (child as ReactElement).props.children.toLowerCase().match(filter.toLowerCase()) !== null\n );\n\n return _internalRenderChildren(filteredChildren as ReactElement[]);\n }\n\n return _internalRenderChildren(children);\n\n function _internalRenderChildren(internalChildren: ReactElement[]) {\n return React.Children.map(internalChildren, (child, index) => {\n return React.cloneElement(child, {\n onFocusChange: (childIndex: number) => setFocusedSelectItem(childIndex),\n onOptionSelect: (optionRef: React.RefObject<HTMLLIElement>) => {\n onOptionChangeHandler(optionRef);\n setShouldClick(false);\n },\n isSelected: child.props.value === value,\n isSearching: isSearching,\n selectOpened: expanded,\n childIndex: index,\n hasFocus: focusedSelectItem === index,\n shouldClick: shouldClick\n });\n });\n }\n };\n\n const renderSearch = () => (\n <Input\n {...searchInputProps}\n autoFocus\n ref={searchInputRef}\n onFocus={() => setIsSearching(true)}\n onBlur={() => setIsSearching(false)}\n onChange={filterResults}\n className={classes[\"select-search\"]}\n wrapperProps={{\n className: `${classes[\"select-search-wrapper\"]} ${searchInputProps?.wrapperProps?.className}`\n }}\n type=\"text\"\n name=\"search-option\"\n placeholder={searchPlaceholder}\n />\n );\n\n const filterResults = (event: React.ChangeEvent<HTMLInputElement>) => {\n setFilter(event.currentTarget.value);\n };\n\n const icon = useDetermineStatusIcon({ success, error });\n\n const nativeOnChangeHandler = (event: React.ChangeEvent<HTMLSelectElement>) => {\n onChange && onChange(event);\n };\n\n useEffect(() => {\n syncDisplayValue(value);\n }, [value]);\n\n useBodyClick(\n (event: MouseEvent) => !(event.target as Element).closest(\".custom-select\") && expanded,\n () => {\n setExpanded(false);\n setListPosition({ top: 0, bottom: \"initial\" });\n setOpacity(0);\n },\n expanded\n );\n\n const additionalClasses = [];\n expanded && additionalClasses.push(classes.expanded);\n error && additionalClasses.push(classes.error);\n disabled && additionalClasses.push(classes.disabled);\n className && additionalClasses.push(className);\n success && additionalClasses.push(classes.success);\n\n /** The native select is purely for external form libraries. We use it to emit an onChange with native select event object so they know exactly what's happening. */\n return (\n <Fragment>\n <select\n {...filterProps(rest, /^data-/, false)}\n tabIndex={-1}\n aria-hidden=\"true\"\n ref={nativeSelect}\n name={name}\n onChange={nativeOnChangeHandler}\n className={readyclasses[\"sr-only\"]}\n >\n <option value=\"\"></option>\n {React.Children.map(children, child => (\n <option value={child.props.value}></option>\n ))}\n </select>\n <div\n {...filterProps(rest, /^data-/)}\n ref={containerReference}\n onKeyDown={onArrowNavigation}\n className={`custom-select ${classes.select} ${additionalClasses.join(\" \")} ${\n className ?? \"\"\n }`}\n >\n <button\n {...selectButtonProps}\n onClick={() => {\n setExpanded(!expanded);\n }}\n ref={customSelectButtonRef}\n type=\"button\"\n name={name}\n className={`${classes[\"custom-select\"]} ${additionalClasses.join(\" \")} `}\n disabled={disabled}\n aria-disabled={disabled}\n aria-invalid={error}\n aria-expanded={expanded}\n aria-haspopup=\"listbox\"\n aria-labelledby={labeledBy}\n aria-describedby={describedBy}\n >\n <div data-display className={classes[\"selected\"]}>\n {!value && placeholder && <span className={classes[\"placeholder\"]}>{placeholder}</span>}\n {value?.length > 0 && <span data-display-inner>{display}</span>}\n </div>\n <div className={classes[\"status\"]}>\n {icon}\n <Icon className={classes[\"triangle-down\"]} icon={Icons.TriangleDown} />\n </div>\n </button>\n <div\n ref={optionListReference}\n className={`list-wrapper ${classes[\"list-wrapper\"]}`}\n style={{\n display: expanded ? \"block\" : \"none\",\n opacity: opacity,\n maxHeight: optionsListMaxHeight,\n pointerEvents: expanded ? \"auto\" : \"none\",\n ...listPosition\n }}\n >\n {Array.isArray(children) && children.length > renderSearchCondition && renderSearch()}\n <ul role=\"listbox\">{renderOptions()}</ul>\n </div>\n </div>\n </Fragment>\n );\n};\n\nexport const Select = React.forwardRef(SelectComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n createRef,\n RefObject,\n useEffect\n} from \"react\";\nimport classes from \"./Select.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"li\"> {\n children: string;\n value: string;\n disabled?: boolean;\n isSelected?: boolean;\n selectOpened?: boolean;\n hasFocus?: boolean;\n shouldClick?: boolean;\n isSearching?: boolean;\n label?: string;\n childIndex?: number;\n onOptionSelect?: (ref: React.RefObject<HTMLLIElement>) => void;\n onFocusChange?: (childIndex: number) => void;\n}\n\nconst OptionComponent: ForwardRefRenderFunction<HTMLLIElement, Props> = (\n {\n children,\n className,\n isSelected = false,\n shouldClick,\n hasFocus,\n selectOpened,\n isSearching,\n childIndex,\n onOptionSelect,\n onFocusChange,\n disabled,\n value,\n ...rest\n }: Props,\n ref\n) => {\n let innerOptionRef = (ref as RefObject<HTMLLIElement>) || createRef<HTMLLIElement>();\n\n useEffect(() => {\n if (isSelected && innerOptionRef.current && shouldClick) {\n innerOptionRef.current.click();\n }\n }, [isSelected, shouldClick]);\n\n useEffect(() => {\n if (innerOptionRef.current && hasFocus && selectOpened && !isSearching) {\n onFocusChange && childIndex && onFocusChange(childIndex);\n innerOptionRef.current.focus();\n }\n }, [hasFocus, innerOptionRef, selectOpened, isSearching]);\n\n const onSelectHandler = () => {\n if (onOptionSelect) onOptionSelect(innerOptionRef);\n };\n\n return (\n <li\n {...rest}\n ref={innerOptionRef}\n data-value={value}\n className={`${isSelected ? classes[\"selected-option\"] : \"\"} ${\n disabled ? classes.disabled : \"\"\n } ${className ?? \"\"}`}\n onClick={onSelectHandler}\n onKeyDownCapture={event => {\n if (event.code === \"Enter\") {\n event.stopPropagation();\n event.preventDefault();\n\n onSelectHandler();\n }\n }}\n aria-selected={isSelected}\n role=\"option\"\n tabIndex={disabled ? -1 : 0}\n >\n {children}\n </li>\n );\n};\n\nexport const Option = React.forwardRef(OptionComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactNode } from \"react\";\nimport classes from \"./Label.module.scss\";\nimport readyclasses from \"../../readyclasses.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"label\"> {\n children?: ReactNode;\n}\n\nconst LabelComponent: ForwardRefRenderFunction<HTMLLabelElement, Props> = (\n { children, className, hidden = false, ...rest }: Props,\n ref\n) => {\n return (\n <label\n {...rest}\n ref={ref}\n className={`${hidden ? readyclasses[\"sr-only\"] : \"\"} ${classes[\"label\"]} ${className ?? \"\"}`}\n >\n {children}\n </label>\n );\n};\n\nexport const Label = React.forwardRef(LabelComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, Fragment, useState } from \"react\";\nimport classes from \"./Pagination.module.scss\";\nimport readyclasses from \"../readyclasses.module.scss\";\nimport { IconButton } from \"../Button/IconButton\";\nimport { Icons, Icon } from \"../Icon/Icon\";\nimport { Input } from \"../Form/Input/Input\";\nimport { Select } from \"../Form/Select/Select\";\nimport { Option } from \"../Form/Select/Option\";\nimport { Label } from \"../Form/Label/Label\";\n\nexport type PaginationTranslations = {\n totalItems: string;\n itemsPerPage: string;\n itemsPerPageLabel: string;\n currentPage: string;\n currentPageLabel: string;\n};\n\nexport type PageChangeLabels = \"next\" | \"previous\" | \"first\" | \"last\";\n\nenum DefaultTranslations {\n totalItems = \"Total items\",\n itemsPerPage = \"Items per page\",\n currentPage = \"Page %1 of %2\",\n itemsPerPageLabel = \"Select how many items per page you want to see.\",\n currentPageLabel = \"What page you are currently on.\"\n}\n\nexport type PageSize = 10 | 25 | 50;\n\nexport interface Props extends Omit<ComponentPropsWithRef<\"div\">, \"translate\"> {\n currentPage?: number;\n totalElements?: number;\n pageSize?: PageSize;\n translate?: PaginationTranslations;\n onPageChange: (pageToGoTo: number) => void;\n onPageSizeChange: (pageSize: PageSize) => void;\n}\n\nconst PaginationComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n totalElements,\n pageSize = 10,\n translate = DefaultTranslations,\n currentPage,\n className,\n onPageChange,\n onPageSizeChange,\n ...rest\n }: Props,\n ref\n) => {\n /** We use an internal state variable, because we don't want to fire onCurrentPageChange whenever onChange fires on the input. Rather, only when the Enter key is pressed. */\n const [internalCurrentPage, setInternalCurrentPage] = useState(currentPage?.toString() || \"1\");\n const calculateAmountOfPages = () => {\n if (!totalElements) return 1;\n\n if (Math.ceil(totalElements / pageSize) < 1) {\n return 1;\n }\n\n return Math.ceil(totalElements / pageSize);\n };\n\n const onEnterListener = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.code === \"Enter\") {\n onPageChange(Number(internalCurrentPage));\n }\n };\n\n const renderCurrentPageTranslation = () => {\n const amountOfPages = calculateAmountOfPages();\n\n if (amountOfPages) {\n const splitCurrentPageTranslation = translate.currentPage.split(\" \");\n\n return splitCurrentPageTranslation.map(string => {\n if (string.includes(\"%1\")) {\n return (\n <Fragment key={string}>\n <Label\n id=\"current-value-input-label\"\n htmlFor=\"current-value-input\"\n className={`${readyclasses[\"sr-only\"]} ${classes[\"current-value-input-label\"]}`}\n >\n {translate.currentPageLabel}\n </Label>\n <Input\n aria-labelledby=\"current-value-input-label\"\n key=\"input\"\n id=\"current-value-input\"\n type=\"text\"\n size={currentPage?.toString().length}\n max={calculateAmountOfPages()}\n wrapperProps={{ className: classes[\"current-value-input\"] }}\n onKeyUp={onEnterListener}\n onBlur={(event: React.ChangeEvent<HTMLInputElement>) =>\n onPageChange(Number(event.target.value))\n }\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\n setInternalCurrentPage(e.target.value)\n }\n name=\"current-value-input\"\n value={internalCurrentPage}\n className={`${classes[\"form-element\"]} ${classes[\"current-page-input\"]}`}\n />\n </Fragment>\n );\n }\n\n if (string.includes(\"%2\")) {\n return (\n <div key={string}>\n <strong>{string.replace(\"%2\", amountOfPages.toString())}</strong> \n </div>\n );\n }\n\n return <div key={string}>{string} </div>;\n });\n }\n\n return null;\n };\n\n const onPageSizeChangeHandler = (event: React.ChangeEvent<HTMLSelectElement>) => {\n const pageSizeNumber = Number(event.target.value) as PageSize;\n onPageSizeChange(pageSizeNumber);\n };\n\n const onPageChangeHandler = (pageToGoTo: number) => {\n onPageChange(pageToGoTo);\n };\n\n return (\n <div\n {...rest}\n ref={ref}\n className={`${classes[\"pagination-wrapper\"]} ${className ? className : \"\"}`}\n >\n {totalElements && (\n <div className={classes[\"total\"]}>\n <span tabIndex={0}>\n {translate.totalItems}: <span>{totalElements}</span>\n </span>\n </div>\n )}\n <div className={classes[\"pagination\"]}>\n {pageSize && (\n <div className={classes[\"per-page\"]}>\n <Label id=\"page-size-select-label\">{translate.itemsPerPage}</Label>\n <Select\n labeledBy=\"page-size-select-label\"\n className={`${classes[\"form-element\"]} ${classes[\"page-size-select\"]}`}\n value={pageSize.toString()}\n onChange={onPageSizeChangeHandler}\n >\n <Option value=\"10\">10</Option>\n <Option value=\"25\">25</Option>\n <Option value=\"50\">50</Option>\n </Select>\n </div>\n )}\n <Fragment>\n {!!((currentPage && currentPage > 2) || (currentPage && currentPage > 1)) && (\n <div className={classes[\"previous\"]}>\n {currentPage > 2 && (\n <IconButton\n title=\"first\"\n onClick={() => onPageChangeHandler(0)}\n data-paginate=\"first\"\n >\n <Icon icon={Icons.NavigationFirst} />\n </IconButton>\n )}\n {currentPage > 1 && (\n <IconButton\n title=\"previous\"\n onClick={() => onPageChangeHandler(currentPage - 1)}\n data-paginate=\"previous\"\n >\n <Icon icon={Icons.ChevronLeft} />\n </IconButton>\n )}\n </div>\n )}\n {totalElements && !!calculateAmountOfPages() && (\n <div className={classes[\"page\"]}>{renderCurrentPageTranslation()}</div>\n )}\n <div className={classes[\"next\"]}>\n {!!(\n (currentPage !== undefined && currentPage < calculateAmountOfPages()!) ||\n (currentPage !== undefined && !totalElements)\n ) && (\n <IconButton\n title=\"next\"\n onClick={() => onPageChangeHandler(currentPage + 1)}\n data-paginate=\"next\"\n >\n <Icon icon={Icons.ChevronRight} />\n </IconButton>\n )}\n {!!(currentPage && totalElements && currentPage < calculateAmountOfPages()! - 1) && (\n <IconButton\n title=\"last\"\n onClick={() => onPageChangeHandler(totalElements / pageSize)}\n data-paginate=\"last\"\n >\n <Icon icon={Icons.NavigationLast} />\n </IconButton>\n )}\n </div>\n </Fragment>\n </div>\n </div>\n );\n};\n\nexport const Pagination = React.forwardRef(PaginationComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { generateID } from \"../util/helper\";\n\ninterface Arguments {\n componentToRepeat: React.ReactElement;\n}\n\nexport const useRepeater = <T>({ componentToRepeat }: Arguments) => {\n const [repeatedComponents, setRepeatedComponents] = useState<JSX.Element[]>([]);\n\n useEffect(() => {\n repeat();\n }, []);\n\n const repeat = () => {\n const clonedComponent = React.cloneElement(componentToRepeat, { key: generateID(20) });\n\n setRepeatedComponents(prevState => [...prevState, clonedComponent]);\n };\n\n const remove = (componentToRemove: React.ReactElement<T>) => {\n const newRepeatedComponents = repeatedComponents.filter(\n component => component !== componentToRemove\n );\n\n setRepeatedComponents(newRepeatedComponents);\n };\n\n return {\n repeatedComponents,\n repeat,\n remove\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const labelId = (id: string) => `${id}-label`;\nexport const descriptionId = (id: string) => `${id}-description`;\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, useEffect, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useGetDomRoot } from \"../../hooks/useGetDomRoot\";\nimport classes from \"./BaseModal.module.scss\";\nimport { labelId, descriptionId } from \"./BaseModalContext\";\n\nconst SCROLL_PROPERTY_NAME = \"overflow\";\nconst SCROLL_PROPERTY_VALUE = \"hidden\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n id: string;\n children: React.ReactNode;\n open: boolean;\n onClose?: (event?: React.MouseEvent<HTMLElement>) => unknown;\n className?: string;\n containerProps?: ComponentPropsWithRef<\"div\">;\n backdropProps?: ComponentPropsWithRef<\"div\">;\n labelledby?: string;\n describedby?: string;\n disableEscapeKeyDown?: boolean;\n disableBackdrop?: boolean;\n forceContainerOpen?: boolean;\n zIndex?: number;\n domRoot?: HTMLElement;\n}\n\nexport const useSetBodyScroll = (open: boolean) => {\n const hideBodyScroll = () => {\n document.body.style[SCROLL_PROPERTY_NAME] = SCROLL_PROPERTY_VALUE;\n };\n\n const showBodyScroll = () => {\n const allModalsClosed =\n document.querySelectorAll(\"[role=dialog][data-hidden=false]\").length === 0;\n if (allModalsClosed) {\n document.body.style.removeProperty(SCROLL_PROPERTY_NAME);\n }\n };\n\n useEffect(() => {\n if (open) {\n hideBodyScroll();\n } else {\n showBodyScroll();\n }\n }, [open]);\n};\n\nconst BaseModalComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n id,\n children,\n open,\n onClose,\n className = \"\",\n containerProps,\n backdropProps,\n labelledby,\n describedby,\n disableEscapeKeyDown = false,\n disableBackdrop = false,\n forceContainerOpen = false,\n zIndex,\n domRoot,\n ...rest\n }: Props,\n ref\n) => {\n useSetBodyScroll(open);\n const wrappingDivRef = useRef(null);\n const { root } = useGetDomRoot(domRoot, wrappingDivRef);\n\n const handleEscKeyPress = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disableEscapeKeyDown && event.key === \"Escape\") {\n event.stopPropagation();\n onClose && onClose();\n }\n };\n\n const handleBackdropClick = () => !disableBackdrop && onClose && onClose();\n\n return (\n <div ref={wrappingDivRef}>\n {createPortal(\n <div\n {...rest}\n ref={ref}\n id={id}\n className={`${classes[\"modal\"]} ${open ? classes[\"visible\"] : \"\"} ${className}`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={labelledby || labelId(id)}\n aria-describedby={describedby || descriptionId(id)}\n aria-hidden={!open}\n tabIndex={-1}\n data-hidden={!open}\n onKeyDown={handleEscKeyPress}\n style={{ zIndex }}\n >\n <div\n {...backdropProps}\n className={`${classes[\"backdrop\"]} ${backdropProps?.className ?? \"\"}`}\n onClick={handleBackdropClick}\n ></div>\n {forceContainerOpen ? (\n <div\n {...containerProps}\n aria-hidden={!open}\n hidden={!open}\n style={{ zIndex: zIndex && zIndex + 1 }}\n className={`${classes[\"container\"]} ${containerProps?.className ?? \"\"}`}\n >\n {children}\n </div>\n ) : (\n open && (\n <div\n {...containerProps}\n style={{ zIndex: zIndex && zIndex + 1 }}\n className={`${classes[\"container\"]} ${containerProps?.className ?? \"\"}`}\n >\n {children}\n </div>\n )\n )}\n </div>,\n root\n )}\n </div>\n );\n};\n\nexport const BaseModal = React.forwardRef(BaseModalComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { createContext } from \"react\";\nimport { SnackbarOptionsProps } from \"../interfaces\";\nimport { Item } from \"./SnackbarProvider\";\n\ninterface SnackbarContextProps {\n enqueueSnackbar: (title: string, content?: string, options?: SnackbarOptionsProps) => void;\n enqueueSuccessSnackbar: (title: string, content?: string, options?: SnackbarOptionsProps) => void;\n enqueueErrorSnackbar: (title: string, content?: string, options?: SnackbarOptionsProps) => void;\n setSnackbarHeight: (id: string, height: number) => void;\n snackbars: Item[];\n}\n\nconst SnackbarContext = createContext<SnackbarContextProps>({\n enqueueSnackbar: () => null,\n enqueueSuccessSnackbar: () => null,\n enqueueErrorSnackbar: () => null,\n setSnackbarHeight: () => null,\n snackbars: []\n});\n\ninterface Props {\n initialState: SnackbarContextProps;\n children?: React.ReactNode;\n}\n\nconst SnackbarContextProvider = ({ children, initialState }: Props) => {\n return <SnackbarContext.Provider value={initialState}>{children}</SnackbarContext.Provider>;\n};\n\nexport { SnackbarContextProvider, SnackbarContext, SnackbarContextProps };\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useContext } from \"react\";\nimport { SnackbarContext } from \"./SnackbarProvider/SnackbarStateProvider\";\n\nexport const useSnackbar = () => {\n const ctx = useContext(SnackbarContext);\n\n return {\n enqueueErrorSnackbar: ctx.enqueueErrorSnackbar,\n enqueueSuccessSnackbar: ctx.enqueueSuccessSnackbar,\n enqueueSnackbar: ctx.enqueueSnackbar\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n createRef,\n useEffect\n} from \"react\";\nimport classes from \"./BaseModalContent.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n id?: string;\n children: React.ReactNode;\n className?: string;\n disableAutoFocus?: boolean;\n}\n\nconst BaseModalContentComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { id, children, className = \"\", disableAutoFocus = false, ...rest }: Props,\n ref\n) => {\n const contentRef = createRef<HTMLDivElement>();\n\n useEffect(() => {\n if (!disableAutoFocus && ref) {\n (ref as React.RefObject<HTMLDivElement>).current?.focus();\n } else if (!disableAutoFocus) {\n contentRef.current?.focus();\n }\n }, []);\n\n /**tabIndex is set to be able to do focus on that element which we need for catching keyDown events */\n return (\n <div\n {...rest}\n ref={ref || contentRef}\n id={id}\n className={`${classes[\"content\"]} ${className}`}\n tabIndex={-1}\n >\n {children}\n </div>\n );\n};\n\nexport const BaseModalContent = React.forwardRef(BaseModalContentComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport classes from \"./BaseModalActions.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children?: React.ReactNode;\n}\n\nconst BaseModalActionsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, className = \"\", ...rest }: Props,\n ref\n) => {\n return (\n <div {...rest} ref={ref} className={`${classes[\"actions\"]} ${className}`}>\n {children}\n </div>\n );\n};\n\nexport const BaseModalActions = React.forwardRef(BaseModalActionsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport {\n BaseModalActions,\n Props as BaseModalActionsProps\n} from \"../../BaseModal/BaseModalActions/BaseModalActions\";\nimport classes from \"./DialogActions.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<any>, BaseModalActionsProps {\n align: \"left\" | \"right\";\n}\n\nconst DialogActionsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, align, ...rest }: Props,\n ref\n) => {\n return (\n <BaseModalActions\n {...rest}\n ref={ref}\n className={`${classes[\"actions\"]}${align === \"left\" ? \" \" + classes[\"left\"] : \"\"}`}\n >\n {children}\n </BaseModalActions>\n );\n};\n\nexport const DialogActions = React.forwardRef(DialogActionsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport { Typography } from \"../../../Typography/Typography\";\nimport classes from \"./DialogTitle.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n id: string;\n title: string;\n}\n\nconst DialogTitleComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { id, title, ...rest }: Props,\n ref\n) => {\n return (\n <div {...rest} ref={ref} className={classes[\"header\"]}>\n <Typography id={id} className={classes[\"title\"]} tag=\"h1\" variant=\"h4\">\n {title}\n </Typography>\n </div>\n );\n};\n\nexport const DialogTitle = React.forwardRef(DialogTitleComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, useState } from \"react\";\nimport { BaseModal } from \"../BaseModal/BaseModal\";\nimport { BaseModalContent } from \"../BaseModal/BaseModalContent/BaseModalContent\";\nimport { DialogActions } from \"./DialogActions/DialogActions\";\nimport classes from \"./Dialog.module.scss\";\nimport { DialogTitle } from \"./DialogTitle/DialogTitle\";\nimport { Button, Props as ButtonProps } from \"../../Button/Button\";\nimport { labelId, descriptionId } from \"../BaseModal/BaseModalContext\";\nimport { generateID } from \"../../util/helper\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n id?: string;\n open: boolean;\n children: React.ReactNode;\n alignActions: \"left\" | \"right\";\n onClose: () => void;\n title: string;\n primaryAction: Action;\n secondaryAction?: Action;\n zIndex?: number;\n disableEscapeKeyDown?: boolean;\n}\n\nexport interface Action extends Omit<ButtonProps, \"variant\" | \"ref\"> {\n label: string;\n onClick: (event?: React.MouseEvent<HTMLButtonElement>) => unknown;\n}\n\nconst DialogComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n id,\n open,\n children,\n alignActions,\n onClose,\n title,\n primaryAction,\n secondaryAction,\n zIndex,\n disableEscapeKeyDown = true,\n ...rest\n }: Props,\n ref\n) => {\n const [dialogId] = useState(id ?? generateID(20));\n const { label: primaryLabel, ...restOfPrimaryAction } = primaryAction;\n const PrimaryButton = (\n <Button key=\"primary\" {...restOfPrimaryAction}>\n {primaryLabel}\n </Button>\n );\n const TertiaryButton =\n secondaryAction &&\n (function () {\n const { label: secondaryLabel, ...restOfSecondaryAction } = secondaryAction;\n return (\n <Button key=\"tertiary\" variant=\"text\" {...restOfSecondaryAction}>\n {secondaryLabel}\n </Button>\n );\n })();\n\n const onHiddenInputKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n /** It has to be here because then we will need to check if user doesn't click tab to select action button and want to do another action then primary one? */\n if (event.key === \"Enter\") {\n primaryAction.onClick();\n }\n };\n\n return (\n <BaseModal\n {...rest}\n ref={ref}\n id={dialogId}\n className={classes[\"dialog\"]}\n containerProps={{ className: classes[\"container\"] }}\n open={open}\n disableBackdrop\n onClose={onClose}\n zIndex={zIndex}\n disableEscapeKeyDown={disableEscapeKeyDown}\n >\n <DialogTitle id={labelId(dialogId)} title={title} />\n <BaseModalContent\n id={descriptionId(dialogId)}\n className={classes[\"content\"]}\n disableAutoFocus\n >\n {children}\n </BaseModalContent>\n <DialogActions align={alignActions}>\n {alignActions === \"left\"\n ? [PrimaryButton, TertiaryButton]\n : [TertiaryButton, PrimaryButton]}\n </DialogActions>\n <input\n autoFocus\n aria-hidden={true}\n style={{\n position: \"absolute\",\n width: 0,\n height: 0,\n opacity: 0\n }}\n maxLength={0}\n tabIndex={-1}\n onKeyPress={onHiddenInputKeyPress}\n />\n </BaseModal>\n );\n};\n\nexport const Dialog = React.forwardRef(DialogComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport classes from \"./BaseModalHeader.module.scss\";\nimport { IconButton } from \"../../../Button/IconButton\";\nimport { Icon, Icons } from \"../../../Icon/Icon\";\nimport { Typography } from \"../../../Typography/Typography\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n id: string;\n title: string;\n children?: React.ReactNode;\n onClose?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nconst BaseModalHeaderComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { id, title, children, onClose, ...rest }: Props,\n ref\n) => {\n return (\n <div {...rest} ref={ref} className={classes[\"header\"]}>\n <div className={classes[\"headline\"]}>\n <Typography id={id} className={classes[\"title\"]} tag=\"h1\" variant=\"h4\">\n {title}\n </Typography>\n <IconButton onClick={onClose} className={classes[\"closeBtn\"]} title=\"close modal\">\n <Icon icon={Icons.Times} />\n </IconButton>\n </div>\n {children}\n </div>\n );\n};\n\nexport const BaseModalHeader = React.forwardRef(BaseModalHeaderComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport { Dialog } from \"../../Dialog/Dialog\";\nimport { Typography } from \"../../../Typography/Typography\";\nimport { DataAttributeKey } from \"../../../interfaces\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n open: boolean;\n discardChangesButtonLabel: string;\n keepEditingButtonLabel: string;\n contentLabel: string;\n titleLabel: string;\n [dataAttribute: DataAttributeKey]: any;\n onKeepEditing: () => void;\n onDiscardChanges: () => void;\n}\n\nconst DiscardChangesDialogComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n open,\n onKeepEditing,\n onDiscardChanges,\n discardChangesButtonLabel,\n keepEditingButtonLabel,\n contentLabel,\n titleLabel,\n ...rest\n }: Props,\n ref\n) => {\n return (\n <Dialog\n {...rest}\n ref={ref}\n open={open}\n alignActions=\"left\"\n title={titleLabel}\n onClose={onKeepEditing}\n primaryAction={{\n label: discardChangesButtonLabel,\n onClick: onDiscardChanges\n }}\n secondaryAction={{\n label: keepEditingButtonLabel,\n onClick: onKeepEditing\n }}\n disableEscapeKeyDown={false}\n >\n <Typography variant=\"body\" spacing={{ margin: 0 }}>\n {contentLabel}\n </Typography>\n </Dialog>\n );\n};\n\nexport const DiscardChangesDialog = React.forwardRef(DiscardChangesDialogComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { Fragment, useState } from \"react\";\nimport { Modal, Props as ModalProps } from \"../Modal/Modal\";\nimport { ModalHeader, Props as ModalHeaderProps } from \"../Modal/ModalHeader/ModalHeader\";\nimport {\n DiscardChangesDialog,\n Props as DiscardChangesDialogProps\n} from \"./DiscardChangesDialog/DiscardChangesDialog\";\n\nexport interface Props extends Omit<ModalProps, \"onClose\"> {\n hasUnsavedChanges: () => boolean;\n onClose: (event?: React.MouseEvent<HTMLElement>) => unknown;\n headerProps: Omit<ModalHeaderProps, \"onClose\" | \"id\">;\n discardChangedDialogProps: Omit<\n DiscardChangesDialogProps,\n \"open\" | \"onKeepEditing\" | \"onDiscardChanges\"\n >;\n modalRef?: React.RefObject<HTMLDivElement>;\n dialogRef?: React.RefObject<HTMLDivElement>;\n}\n\nexport const DiscardChangesModal = ({\n id,\n children,\n headerProps,\n discardChangedDialogProps,\n modalRef,\n dialogRef,\n onClose,\n hasUnsavedChanges,\n ...rest\n}: Props) => {\n const [openDiscardChangesDialog, setOpenDiscardChangesDialog] = useState(false);\n\n const onCloseWrapper = () =>\n hasUnsavedChanges() ? setOpenDiscardChangesDialog(true) : onClose();\n\n const onDialogKeepEditing = () => {\n setOpenDiscardChangesDialog(false);\n };\n\n const onDialogDiscardChanges = () => {\n setOpenDiscardChangesDialog(false);\n onClose();\n };\n\n return (\n <Fragment>\n <Modal id={id} ref={modalRef} onClose={onCloseWrapper} {...rest}>\n <ModalHeader {...headerProps} id={`${id}-label`} onClose={onCloseWrapper} />\n {children}\n </Modal>\n <DiscardChangesDialog\n {...discardChangedDialogProps}\n ref={dialogRef}\n open={openDiscardChangesDialog}\n onKeepEditing={onDialogKeepEditing}\n onDiscardChanges={onDialogDiscardChanges}\n />\n </Fragment>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n TransitionEventHandler,\n useState,\n useRef,\n useCallback,\n useEffect\n} from \"react\";\nimport { Props as ModalProps, Modal } from \"../Modal/Modal\";\nimport classes from \"./SlideInModal.module.scss\";\n\nconst SlideInModalComponent: ForwardRefRenderFunction<HTMLDivElement, ModalProps> = (\n { children, id, open, ...rest }: ModalProps,\n ref\n) => {\n const [classHideOnTransition, setClassHideOnTransition] = useState<string>(\"hide\");\n const [controlledOpen, setControlledOpen] = useState(false);\n const containerRef = useRef(null);\n\n const onTransitionEnd: TransitionEventHandler<HTMLDivElement> = useCallback(\n e => {\n if (e.target === containerRef.current) {\n setClassHideOnTransition(prev => (prev ? \"\" : \"hide\"));\n if (!open && controlledOpen) {\n setControlledOpen(false);\n }\n }\n },\n [open]\n );\n\n useEffect(() => {\n open && setControlledOpen(open);\n }, [open]);\n\n return (\n <Modal\n {...rest}\n id={id}\n open={controlledOpen}\n className={`${classes[\"slide-in-modal\"]} ${open ? classes[\"visible\"] : \"\"} ${\n !open ? classes[classHideOnTransition] : \"\"\n }`}\n containerProps={{ className: classes[\"container\"] }}\n backdropProps={{ id: classes[\"backdrop-slide\"] }}\n onTransitionEnd={onTransitionEnd}\n ref={ref || containerRef}\n >\n {children}\n </Modal>\n );\n};\n\nexport { Props } from \"../Modal/Modal\";\n\nexport const SlideInModal = React.forwardRef(SlideInModalComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useContext, useEffect, useState } from \"react\";\nimport classes from \"./SnackbarContainer.module.scss\";\nimport { SnackbarContext } from \"../SnackbarProvider/SnackbarStateProvider\";\n\nexport interface Placement {\n vertical: \"top\" | \"bottom\";\n horizontal: \"start\" | \"center\" | \"end\";\n}\n\nexport interface Props {\n placement: Placement;\n children?: React.ReactNode;\n zIndex?: number;\n className?: string;\n}\n\nconst useSnackbarContainerHeightAnimation = () => {\n const { snackbars } = useContext(SnackbarContext);\n const [height, setHeight] = useState(0);\n const [justifyContent, setJustifyContent] = useState<\"flex-start\" | \"flex-end\">(\"flex-start\");\n const spaceBetweenSnackbars = 8;\n const exceedsMaximumVisibleSnackbars = snackbars.length >= 3;\n\n useEffect(() => {\n const allHeights = snackbars.map(snackbar => snackbar.height);\n\n let totalHeight = allHeights.reduce((prev, curr) => prev + curr, 0);\n\n totalHeight += (Math.min(snackbars.length, 3) - 1) * spaceBetweenSnackbars;\n\n /**\n * Once we reach the maximum amount of snackbars, they will start to disappear. We have to wait with reversing the justify-content until the last snackbar\n * has completed their animationIn. This is around 500ms. Then we want to reverse it, because otherwise whenever a snackbar disappears they shift up\n * and then down again, which looks really bad.\n * */\n if (exceedsMaximumVisibleSnackbars)\n setTimeout(() => {\n setJustifyContent(\"flex-end\");\n }, 500);\n\n if (height > totalHeight && justifyContent !== \"flex-end\") {\n setJustifyContent(\"flex-end\");\n } else if (height < totalHeight && justifyContent !== \"flex-start\") {\n setJustifyContent(\"flex-start\");\n }\n\n setHeight(totalHeight);\n }, [snackbars]);\n\n return { height, justifyContent };\n};\n\nexport const SnackbarContainer = ({ placement, children, zIndex, className, ...rest }: Props) => {\n const { height, justifyContent } = useSnackbarContainerHeightAnimation();\n\n return (\n <div\n {...rest}\n style={{ zIndex, height, justifyContent }}\n className={`${classes[\"snackbars\"]} ${classes[placement.horizontal]} ${\n classes[placement.vertical]\n } ${className ?? \"\"}`}\n >\n {children}\n </div>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useRef, useState } from \"react\";\n\nexport const useAnimation = <RefElement extends HTMLElement>(callback: () => void) => {\n const animatedObjectRef = useRef<RefElement>(null);\n /** We need to store flag that says us when to call the callback */\n const [animationStarted, setAnimationStarted] = useState(false);\n\n const onAnimationEnd = () => animationStarted && callback();\n\n useEffect(() => {\n animatedObjectRef.current?.addEventListener(\"animationend\", onAnimationEnd);\n return () => animatedObjectRef.current?.removeEventListener(\"animationend\", onAnimationEnd);\n }, [animationStarted]);\n\n return {\n ref: animatedObjectRef,\n animationStarted,\n startAnimation: () => setAnimationStarted(true)\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useContext, useEffect, useRef } from \"react\";\nimport { IconButton } from \"../../../Button/IconButton\";\nimport { Icon, Icons } from \"../../../Icon/Icon\";\nimport { Variant, Actions } from \"../interfaces\";\nimport classes from \"./SnackbarItem.module.scss\";\nimport readyclasses from \"../../../readyclasses.module.scss\";\nimport { useAnimation } from \"../../../hooks/useAnimation\";\nimport { Typography } from \"../../../Typography/Typography\";\nimport { SnackbarContext } from \"../SnackbarProvider/SnackbarStateProvider\";\n\nconst textColor = \"var(--snackbar-text-color)\";\n\nexport interface Props {\n id: string;\n title: string;\n duration: number;\n variant: Variant;\n onClose: (key: string) => void;\n closeButtonTitle: string;\n content?: string;\n actions?: Actions;\n}\n\nconst useRegisterSnackbarHeight = (\n singleSnackbarRef: React.RefObject<HTMLDivElement>,\n snackbarId: string\n) => {\n const ctx = useContext(SnackbarContext);\n\n useEffect(() => {\n if (singleSnackbarRef.current) {\n ctx.setSnackbarHeight(snackbarId, singleSnackbarRef.current.getBoundingClientRect().height);\n }\n }, [singleSnackbarRef.current]);\n};\n\nexport const SnackbarItem = ({\n id,\n title,\n duration,\n variant,\n content,\n actions = [],\n onClose,\n closeButtonTitle\n}: Props) => {\n const timerHandler = useRef<ReturnType<typeof setTimeout>>();\n const onAnimationEnd = () => onClose(id);\n const { ref, animationStarted, startAnimation } = useAnimation<HTMLDivElement>(onAnimationEnd);\n\n useRegisterSnackbarHeight(ref, id);\n\n useEffect(() => {\n timerHandler.current = setTimeout(() => startAnimation(), duration);\n return () => {\n timerHandler.current && clearTimeout(timerHandler.current);\n };\n }, []);\n\n const onMouseEnter = () => {\n timerHandler.current && clearTimeout(timerHandler.current);\n };\n\n const onMouseLeave = () => {\n timerHandler.current = setTimeout(() => startAnimation(), duration);\n };\n\n const getVariantIcon = () => {\n if (variant === \"error\") {\n return Icons.Error;\n }\n return variant === \"success\" ? Icons.CheckmarkCircleBreakout : Icons.InfoCircle;\n };\n\n const actionButtons = actions.map((actionProp, index) => (\n <button\n key={index}\n {...actionProp}\n onClick={e => {\n onClose(id);\n actionProp.onClick && actionProp.onClick(e);\n }}\n className={classes[\"action-button\"]}\n >\n {actionProp.label}\n </button>\n ));\n\n return (\n <div\n ref={ref}\n aria-live=\"polite\"\n className={`${classes[\"snackbar\"]} ${classes[variant]} ${\n animationStarted ? readyclasses[\"slide-out\"] : readyclasses[\"slide-in\"]\n }`}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <Icon icon={getVariantIcon()} className={classes[\"icon\"]} />\n <div className={classes[\"container\"]}>\n <div className={classes[\"headline\"]}>\n <Typography className={classes[\"title\"]} variant=\"h4\" tag=\"span\">\n {title}\n </Typography>\n <IconButton\n id={classes[\"close-btn\"]}\n onClick={() => startAnimation()}\n title={closeButtonTitle}\n >\n <Icon icon={Icons.Times} color={textColor} />\n </IconButton>\n </div>\n {!!content && (\n <Typography className={classes[\"content\"]} variant=\"body\">\n {content}\n </Typography>\n )}\n {actionButtons.length > 0 && <div className={classes[\"actions\"]}>{actionButtons}</div>}\n </div>\n </div>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ReactNode, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { SnackbarContextProvider } from \"./SnackbarStateProvider\";\nimport { Actions, SnackbarOptionsProps, Variant } from \"../interfaces\";\nimport { Placement, SnackbarContainer } from \"../SnackbarContainer/SnackbarContainer\";\nimport { generateID } from \"../../../util/helper\";\nimport { SnackbarItem } from \"../SnackbarItem/SnackbarItem\";\nimport { useGetDomRoot } from \"../../../hooks/useGetDomRoot\";\n\n/** Short msg is when only title is provided. Long one when content or/and actions are provided (or type is error). */\ninterface Duration {\n long: number;\n short: number;\n}\n\nexport interface Props {\n closeButtonTitle: string;\n children?: ReactNode;\n placement?: Placement;\n stackSize?: number;\n domRoot?: HTMLElement;\n autoHideDuration?: Duration;\n className?: string;\n}\n\nexport interface Item {\n id: string;\n title: string;\n duration: number;\n height: number;\n variant: Variant;\n content?: string;\n actions?: Actions;\n onClose?: () => void;\n}\n\nexport const SnackbarProvider = (\n {\n closeButtonTitle,\n placement = { vertical: \"bottom\", horizontal: \"center\" },\n autoHideDuration = { long: 8000, short: 4000 },\n stackSize = 3,\n domRoot,\n children,\n className\n }: Props = { closeButtonTitle: \"\" }\n) => {\n const [snackbars, setSnackbars] = useState<Item[]>([]);\n const wrappingDivRef = useRef(null);\n const { root } = useGetDomRoot(domRoot, wrappingDivRef);\n\n const addSnackbar = (item: Item) => {\n setSnackbars(items => [...items, item]);\n };\n\n const setSnackbarHeight = (id: string, height: number) => {\n const newSnackbarsState = snackbars.map(snackbar => {\n if (snackbar.id !== id) {\n return snackbar;\n }\n\n return { ...snackbar, height };\n });\n\n setSnackbars(newSnackbarsState);\n };\n\n const getDuration = (variant: Variant, actions?: Actions, content?: string) => {\n const hasError = variant === \"error\";\n const hasContentOrActions = content || actions;\n if (hasError || hasContentOrActions) {\n return autoHideDuration.long;\n }\n return autoHideDuration.short;\n };\n\n const enqueueSnackbar = (\n title: string,\n content?: string,\n options: SnackbarOptionsProps = {}\n ): void => {\n const {\n variant = \"info\",\n actions,\n duration = getDuration(variant, actions, content),\n onClose\n } = options;\n const item: Item = {\n title,\n content,\n variant,\n actions,\n duration,\n height: 0,\n id: generateID(15, title),\n onClose\n };\n addSnackbar(item);\n };\n\n const enqueueSuccessSnackbar = (\n title: string,\n content?: string,\n options?: SnackbarOptionsProps\n ): void => {\n enqueueSnackbar(title, content, { ...options, variant: \"success\" });\n };\n\n const enqueueErrorSnackbar = (\n title: string,\n content?: string,\n options?: SnackbarOptionsProps\n ): void => {\n enqueueSnackbar(title, content, { ...options, variant: \"error\" });\n };\n\n const onItemClosed = (id: string) => {\n setSnackbars(items => [...items].filter(item => item.id !== id));\n };\n\n const snackbarList = snackbars.map((item, index) =>\n index < stackSize ? (\n <SnackbarItem\n {...item}\n key={item.id}\n onClose={() => {\n onItemClosed(item.id);\n item.onClose && item.onClose();\n }}\n closeButtonTitle={closeButtonTitle}\n />\n ) : null\n );\n\n const snackbarPortal = createPortal(\n <SnackbarContainer placement={placement} className={className}>\n {snackbarList}\n </SnackbarContainer>,\n root\n );\n\n return (\n <SnackbarContextProvider\n initialState={{\n enqueueSnackbar,\n enqueueSuccessSnackbar,\n enqueueErrorSnackbar,\n setSnackbarHeight,\n snackbars\n }}\n >\n {children}\n <div ref={wrappingDivRef}>{snackbarPortal}</div>\n </SnackbarContextProvider>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useState } from \"react\";\nimport { generateID } from \"../util/helper\";\n\nexport interface ConfigObject {\n name: string | undefined;\n errorMessage?: string;\n error?: boolean;\n parentErrorId?: string;\n helperText?: string;\n parentHelperId?: string;\n}\n\nexport const useFormSelector = (configObject: ConfigObject) => {\n const [identifier] = useState(generateID(15, configObject.name));\n const [describedBy, setDescribedBy] = useState(\"\");\n const [errorId] = useState(generateID(15, configObject.errorMessage));\n\n useEffect(() => {\n if (configObject.error && configObject.parentErrorId) {\n setDescribedBy(configObject.parentErrorId);\n }\n\n if (\n (!configObject.error && configObject.helperText) ||\n (!configObject.parentErrorId && !configObject.errorMessage && configObject.helperText)\n ) {\n setDescribedBy(`${identifier}`);\n }\n\n if (\n (!configObject.error && !configObject.helperText && configObject.parentHelperId) ||\n (!configObject.parentErrorId && !configObject.errorMessage && configObject.parentHelperId)\n ) {\n setDescribedBy(`${configObject.parentHelperId}`);\n }\n\n if (configObject.errorMessage && !configObject.parentErrorId && configObject.error) {\n setDescribedBy(errorId);\n }\n }, [identifier, configObject.error, configObject.parentErrorId]);\n\n return {\n describedBy,\n errorId,\n identifier\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactNode } from \"react\";\nimport classes from \"./FormHelperText.module.scss\";\nimport { Typography } from \"../../Typography/Typography\";\nimport { FormElement } from \"../form.interfaces\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\">, FormElement {\n children?: ReactNode;\n}\n\nconst FormHelperTextComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, error, className, ...rest }: Props,\n ref\n) => {\n return (\n <Typography\n {...rest}\n ref={ref}\n variant=\"sub-text\"\n tag=\"div\"\n className={`${classes[\"form-helper-text\"]} ${error ? classes.error : \"\"} ${className ?? \"\"}`}\n >\n {children}\n </Typography>\n );\n};\n\nexport const FormHelperText = React.forwardRef(FormHelperTextComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n createRef,\n ReactNode\n} from \"react\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { KeyValuePair } from \"../../interfaces\";\nimport { FormSelector } from \"../form.interfaces\";\nimport { FormHelperText, Props as FormHelperTextProps } from \"../FormHelperText/FormHelperText\";\nimport classes from \"./FormSelectorWrapper.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\">, FormSelector {\n children?: ReactNode;\n nestedChildren?: ReactNode;\n containerProps?: ComponentPropsWithRef<\"div\"> & KeyValuePair;\n helperProps?: FormHelperTextProps;\n disabled?: boolean;\n errorId?: string;\n identifier?: string;\n}\n\nconst FormSelectorWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n className,\n nestedChildren,\n containerProps,\n helperProps,\n error,\n disabled,\n helperText,\n errorMessage,\n parentErrorId,\n errorId,\n identifier,\n ...rest\n }: Props,\n ref\n) => {\n const helperRef = helperProps?.ref || createRef();\n\n return (\n <div\n {...rest}\n ref={ref}\n className={`${error ? classes[\"error\"] : \"\"} ${disabled ? classes[\"disabled\"] : \"\"} ${\n className ?? \"\"\n }`}\n >\n <div {...containerProps}>{children}</div>\n {(helperText || (helperProps && helperProps.children)) &&\n (!error || parentErrorId || !errorMessage) && (\n <FormHelperText\n {...helperProps}\n ref={helperRef}\n id={`${identifier}`}\n className={`${classes[\"helper-text\"]} ${helperProps?.className ?? \"\"} ${\n error ? classes[\"error\"] : \"\"\n }`}\n >\n {(helperProps && helperProps.children) || helperText}\n </FormHelperText>\n )}\n {errorMessage && !parentErrorId && error && (\n <span className={classes[\"error-message\"]}>\n <Icon className={classes[\"error-icon\"]} icon={Icons.Error} />\n <span id={errorId}>{errorMessage}</span>\n </span>\n )}\n {nestedChildren}\n </div>\n );\n};\n\nexport const FormSelectorWrapper = React.forwardRef(FormSelectorWrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ReactElement,\n ReactNode,\n useEffect\n} from \"react\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { Props as FormHelperTextProps } from \"../FormHelperText/FormHelperText\";\nimport classes from \"./Checkbox.module.scss\";\nimport { useFormSelector } from \"../../hooks/useFormSelector\";\nimport {\n FormSelectorWrapper,\n Props as FormSelectorWrapperProps\n} from \"../FormSelectorWrapper/FormSelectorWrapper\";\nimport { FormSelector } from \"../form.interfaces\";\n\nconst isToggle = (children: ReactNode) => (children as ReactElement)?.props?.[\"data-toggle\"];\n\nexport interface Props extends ComponentPropsWithRef<\"input\">, FormSelector {\n children: ReactNode;\n label?: string;\n indeterminate?: boolean;\n helperProps?: FormHelperTextProps;\n formSelectorWrapperProps?: FormSelectorWrapperProps;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst CheckboxComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (\n {\n children,\n name,\n helperText,\n helperProps,\n indeterminate,\n parentErrorId,\n errorMessage,\n disabled,\n label,\n parentHelperId,\n className,\n error,\n checked = false,\n formSelectorWrapperProps,\n onChange,\n ...rest\n }: Props,\n ref\n) => {\n const { errorId, identifier, describedBy } = useFormSelector({\n name,\n helperText,\n parentErrorId,\n errorMessage,\n error,\n parentHelperId\n });\n\n useEffect(() => {\n if (!name) {\n throw new Error(\"Please pass a 'name' prop to your <Checkbox> component.\");\n }\n\n if (typeof children === \"object\" && !isToggle(children) && indeterminate === undefined) {\n throw new Error(\n \"If you have nested checkboxes you have to manage the indeterminate state by passing a boolean to the `indeterminate` prop.\"\n );\n }\n }, []);\n\n const determineLabel = () => {\n if (label) {\n return label;\n } else if (children === undefined) {\n throw new Error(\n \"Please make sure to pass either a string or more Checkbox components as a child of your Checkbox component.\"\n );\n }\n\n if (\n typeof children === \"string\" ||\n (typeof children === \"object\" && (children as ReactElement).type === \"span\")\n ) {\n return children;\n }\n\n throw new Error(\n \"If you pass Checkboxes as a child component (to create nested checkbox tree) you need to pass a label to the parent checkbox.\"\n );\n };\n\n const renderNestedCheckboxes = () => (\n <ul className={classes[\"checkbox-list\"]}>\n {React.Children.map(children as ReactElement[], child => {\n return (\n <li>\n <Checkbox\n {...child.props}\n parentHelperId={parentHelperId}\n parentErrorId={parentErrorId}\n error={error}\n disabled={child.props.disabled ? child.props.disabled : disabled}\n >\n {child.props.children}\n </Checkbox>\n </li>\n );\n })}\n </ul>\n );\n\n const onChangeHandler = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) {\n return;\n }\n onChange && onChange(event);\n };\n\n const renderToggle = () => React.Children.toArray(children).filter(isToggle);\n\n const iconClasses = [classes[\"input\"], disabled ? classes[\"disabled\"] : \"\"];\n\n /** Default return value is the default checkbox */\n return (\n <FormSelectorWrapper\n {...formSelectorWrapperProps}\n className={`${classes[\"checkbox-wrapper\"]} ${className ? className : \"\"}`}\n containerProps={{ className: classes[\"checkbox-container\"] }}\n helperText={helperText}\n helperProps={helperProps}\n parentErrorId={parentErrorId}\n errorId={errorId}\n errorMessage={errorMessage}\n error={error}\n disabled={disabled}\n identifier={identifier}\n nestedChildren={\n typeof children === \"object\" && !isToggle(children) && renderNestedCheckboxes()\n }\n >\n <input\n {...rest}\n ref={ref}\n disabled={disabled}\n className={`${classes[\"native-input\"]} ${error ? classes[\"error\"] : \"\"}`}\n checked={checked}\n onChange={onChangeHandler}\n aria-invalid={error as boolean}\n aria-checked={indeterminate ? \"mixed\" : checked}\n aria-describedby={describedBy}\n id={`${identifier}-checkbox`}\n name={name}\n type=\"checkbox\"\n />\n {renderToggle()}\n\n {indeterminate && <Icon className={iconClasses.join(\" \")} icon={Icons.MinusSquare} />}\n {checked && !indeterminate && (\n <Icon className={iconClasses.join(\" \")} icon={Icons.CheckmarkSquare} />\n )}\n {!checked && !indeterminate && <Icon className={iconClasses.join(\" \")} icon={Icons.Square} />}\n <label htmlFor={`${identifier}-checkbox`}>{determineLabel()}</label>\n </FormSelectorWrapper>\n );\n};\n\nexport const Checkbox = React.forwardRef(CheckboxComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { Props as HelperProps } from \"../FormHelperText/FormHelperText\";\nimport classes from \"./Radio.module.scss\";\nimport { useFormSelector } from \"../../hooks/useFormSelector\";\nimport { FormSelector } from \"../form.interfaces\";\nimport {\n FormSelectorWrapper,\n Props as FormSelectorWrapperProps\n} from \"../FormSelectorWrapper/FormSelectorWrapper\";\n\nexport interface Props extends ComponentPropsWithRef<\"input\">, FormSelector {\n children: string;\n value: string;\n formSelectorWrapperProps?: FormSelectorWrapperProps;\n helperProps?: HelperProps;\n}\n\nconst RadioComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (\n {\n children,\n disabled,\n className,\n value,\n name,\n helperText,\n parentErrorId,\n parentHelperId,\n error,\n errorMessage,\n checked = false,\n formSelectorWrapperProps,\n helperProps,\n onChange,\n ...rest\n }: Props,\n ref\n) => {\n const { errorId, identifier, describedBy } = useFormSelector({\n name,\n helperText,\n parentErrorId,\n errorMessage,\n error,\n parentHelperId\n });\n\n const onChangeHandler = (event: React.ChangeEvent<HTMLInputElement> | React.MouseEvent) => {\n if (disabled) {\n return;\n }\n /** We have to clone the native event we got here and change the \"target\" property to the value. Otherwise, this regular event has \"on\" as it's event.target.value, which is useless. */\n const nativeEvent: any = event.nativeEvent || event;\n const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n\n Object.defineProperty(clonedEvent, \"target\", {\n writable: true,\n value: { value: value }\n });\n\n onChange && onChange(clonedEvent);\n };\n\n /** Default return value is the default radio */\n return (\n <FormSelectorWrapper\n {...formSelectorWrapperProps}\n className={`${classes[\"radio-wrapper\"]} ${className ?? \"\"}`}\n containerProps={{ className: classes[\"radio-container\"] }}\n helperText={helperText}\n helperProps={helperProps}\n parentErrorId={parentErrorId}\n errorId={errorId}\n errorMessage={errorMessage}\n error={error}\n disabled={disabled}\n identifier={identifier}\n >\n <input\n {...rest}\n ref={ref}\n disabled={disabled}\n tabIndex={0}\n className={`${classes[\"native-input\"]} ${error ? classes[\"error\"] : \"\"}`}\n onChange={onChangeHandler}\n checked={checked}\n aria-invalid={error ? true : false}\n aria-checked={checked}\n aria-describedby={describedBy}\n name={name}\n value={value}\n id={`${identifier}-radio`}\n type=\"radio\"\n />\n\n {checked && (\n <Icon\n className={`${classes[\"input\"]} ${disabled ? classes[\"disabled\"] : \"\"}`}\n icon={Icons.Radio}\n />\n )}\n {!checked && (\n <Icon\n className={`${classes[\"input\"]} ${disabled ? classes[\"disabled\"] : \"\"}`}\n icon={Icons.Circle}\n />\n )}\n\n <label onClick={onChangeHandler} htmlFor={`${identifier}-radio`}>\n {children}\n </label>\n </FormSelectorWrapper>\n );\n};\n\nexport const Radio = React.forwardRef(RadioComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, useState } from \"react\";\nimport classes from \"./Textarea.module.scss\";\nimport { FormElement } from \"../form.interfaces\";\nimport { useDetermineStatusIcon } from \"../../hooks/useDetermineStatusIcon\";\n\nexport interface Props extends ComponentPropsWithRef<\"textarea\">, FormElement {\n wrapperProps?: ComponentPropsWithRef<\"div\">;\n}\n\nconst TextareaComponent: ForwardRefRenderFunction<HTMLTextAreaElement, Props> = (\n {\n error = false,\n success = false,\n disabled = false,\n className,\n rows = 4,\n wrapperProps,\n onFocus,\n onBlur,\n ...rest\n }: Props,\n ref\n) => {\n const [focus, setFocus] = useState(false);\n\n const wrapperClasses = [classes[\"textarea-wrapper\"]];\n const outlineClasses = [classes[\"outline\"]];\n\n wrapperProps?.className && wrapperClasses.push(wrapperProps.className);\n disabled && wrapperClasses.push(classes[\"disabled\"]) && outlineClasses.push(classes[\"disabled\"]);\n error && wrapperClasses.push(classes[\"error\"]) && outlineClasses.push(classes[\"error\"]);\n focus && wrapperClasses.push(classes[\"focus\"]) && outlineClasses.push(classes[\"focus\"]);\n success && wrapperClasses.push(\"success\");\n\n const icon = useDetermineStatusIcon({ success, error });\n\n return (\n <div {...wrapperProps} className={wrapperClasses.join(\" \")}>\n <textarea\n {...rest}\n ref={ref}\n rows={rows}\n className={`${error ? classes[\"error\"] : \"\"} ${classes[\"textarea\"]} ${className ?? \"\"}`}\n disabled={disabled}\n onFocus={event => {\n setFocus(true);\n onFocus && onFocus(event);\n }}\n onBlur={event => {\n setFocus(false);\n onBlur && onBlur(event);\n }}\n />\n {icon}\n <span className={outlineClasses.join(\" \")}></span>\n </div>\n );\n};\n\nexport const Textarea = React.forwardRef(TextareaComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport { Checkbox, Props as CheckboxProps } from \"../Checkbox/Checkbox\";\nimport classes from \"./Toggle.module.scss\";\n\nexport interface Props\n extends ComponentPropsWithRef<\"input\">,\n Omit<CheckboxProps, \"indeterminate\" | \"errorMessage\" | \"error\" | \"children\" | \"label\"> {\n children: string;\n}\n\nconst ToggleComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (\n { children, checked, disabled, helperProps, ...rest }: Props,\n ref\n) => (\n <div className={classes[\"toggle-wrapper\"]}>\n <Checkbox\n {...rest}\n ref={ref}\n checked={checked}\n className={classes[\"checkbox\"]}\n helperProps={{ className: classes[\"toggle-helper\"], ...helperProps }}\n disabled={disabled}\n label={children}\n >\n <span\n data-toggle\n aria-hidden=\"true\"\n className={`${classes[\"toggle\"]} ${checked ? classes[\"checked\"] : \"\"} ${\n disabled ? classes[\"disabled\"] : \"\"\n } `}\n ></span>\n </Checkbox>\n </div>\n);\n\nexport const Toggle = React.forwardRef(ToggleComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactElement } from \"react\";\nimport classes from \"./FormControl.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children?: ReactElement | ReactElement[];\n grid?: 1 | 2 | 3;\n align?: \"top\" | \"start\" | \"middle\" | \"center\" | \"bottom\" | \"end\" | \"stretch\";\n error?: boolean;\n disabled?: boolean;\n}\n\nconst FormControlComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, disabled, error, className, grid, align = \"center\", ...rest }: Props,\n ref\n) => {\n const renderChildren = () =>\n React.Children.map(children, child => {\n if (!child) {\n return null;\n }\n\n const childElement = React.cloneElement(child, {\n disabled: child.props.disabled !== undefined ? child.props.disabled : disabled,\n error: child.props.error !== undefined ? child.props.error : error\n });\n\n if (grid && grid > 1) {\n return <div className={`${classes[\"col-\" + grid]} ${classes.column}`}>{childElement}</div>;\n }\n\n return childElement;\n });\n\n return (\n <div\n {...rest}\n ref={ref}\n data-formcontrol\n className={`${classes[\"form-control\"]} ${className ? className : \"\"} ${\n grid && grid > 1 ? `${classes.grid} ${classes[\"grid-\" + grid]}` : \"\"\n } ${classes[align]}`}\n >\n {renderChildren()}\n </div>\n );\n};\n\nexport const FormControl = React.forwardRef(FormControlComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** The empty className property on FormHelperText is on purpose! We want to basically \"filter\" out the className from helperProps because we're adding this to the surrounding div. This makes it so also the errormessage receives this styling. */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactChild } from \"react\";\nimport classes from \"./FormGroup.module.scss\";\nimport { FormHelperText, Props as HelperProps } from \"../FormHelperText/FormHelperText\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children: ReactChild[] | ReactChild;\n error?: boolean;\n errorMessageIcon?: Icons;\n errorMessageIconPosition?: \"before\" | \"after\";\n errorMessage?: string;\n errorId?: string;\n helperIndent?: number;\n helperText?: string;\n helperId?: string;\n helperProps?: HelperProps;\n disabled?: boolean;\n}\n\nconst FormGroupComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n className,\n error,\n errorMessage,\n errorId,\n errorMessageIcon,\n errorMessageIconPosition = \"before\",\n helperText,\n helperId,\n helperProps,\n helperIndent,\n ...rest\n }: Props,\n ref\n) => {\n return (\n <div\n {...rest}\n ref={ref}\n className={`${classes[\"form-group\"]} ${error ? classes.error : \"\"} ${className ?? \"\"}`}\n >\n {children}\n\n {(helperText || (errorMessage && error)) && (\n <div\n style={{ marginLeft: `${helperIndent}px` }}\n className={`${classes[\"default-helper\"]} ${\n helperProps?.className ? helperProps.className : \"\"\n }`}\n >\n {((helperText && !error) || (helperText && error && !errorMessage)) && (\n <FormHelperText {...helperProps} className={\"\"} id={helperId}>\n {(helperProps && helperProps.children) || helperText}\n </FormHelperText>\n )}\n {error && errorMessage && (\n <span className={classes[\"error-message\"]}>\n <span className={classes.message} id={errorId}>\n {errorMessageIcon && errorMessageIconPosition === \"before\" && (\n <Icon\n className={`${classes[\"error-icon\"]} ${classes[\"error-icon-before\"]}`}\n icon={errorMessageIcon}\n />\n )}\n {errorMessage}\n {errorMessageIcon && errorMessageIconPosition === \"after\" && (\n <Icon\n className={`${classes[\"error-icon\"]} ${classes[\"error-icon-after\"]}`}\n icon={errorMessageIcon}\n />\n )}\n </span>\n </span>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport const FormGroup = React.forwardRef(FormGroupComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactElement } from \"react\";\nimport { FormGroup, Props as FormGroupProps } from \"../../FormGroup/FormGroup\";\nimport { Label, Props as LabelProps } from \"../../Label/Label\";\nimport classes from \"./Wrapper.module.scss\";\nimport { Props as HelperProps } from \"../../FormHelperText/FormHelperText\";\nimport { FormElement } from \"../../form.interfaces\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\">, FormGroupProps {\n children: ReactElement | ReactElement[];\n floatingLabelActive?: boolean;\n floatingLabel?: boolean;\n helperIndent?: number;\n label?: string;\n labelProps?: LabelProps;\n name: string;\n /** This does NOT add validation! It simply adds an asterix on the Label! */\n required?: boolean;\n innerClassName?: string;\n}\n\n/** For components that extend this component we create an interface (InputWrapper, SelectWrapper, etc.) */\nexport interface WrapperProps extends FormElement {\n errorMessage?: string;\n helperText?: string;\n helperProps?: HelperProps;\n label?: string;\n name: string;\n required?: boolean;\n disabled?: boolean;\n}\n\nconst WrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n className,\n error,\n errorMessage,\n errorId,\n errorMessageIcon,\n errorMessageIconPosition,\n helperText,\n helperId,\n floatingLabel = true,\n floatingLabelActive,\n required,\n helperProps,\n helperIndent,\n labelProps,\n label,\n disabled,\n name,\n innerClassName,\n ...rest\n }: Props,\n ref\n) => {\n const renderChildren = () =>\n React.Children.map(children, child =>\n React.cloneElement(child, {\n disabled\n })\n );\n\n const labelClasses = [];\n\n floatingLabel && labelClasses.push(classes[\"floating-label\"]);\n floatingLabel && floatingLabelActive && labelClasses.push(classes[\"floating-label-active\"]);\n labelProps?.className && labelClasses.push(labelProps.className);\n required && labelClasses.push(classes[\"required\"]);\n error && labelClasses.push(classes[\"error\"]);\n disabled && labelClasses.push(classes[\"disabled\"]);\n\n return (\n <div {...rest} ref={ref} className={`${classes.wrapper} ${className ?? \"\"}`}>\n <FormGroup\n error={error}\n errorMessage={errorMessage}\n errorId={errorId}\n errorMessageIcon={errorMessageIcon}\n errorMessageIconPosition={errorMessageIconPosition}\n helperText={helperText}\n helperId={helperId}\n helperProps={helperProps}\n helperIndent={helperIndent}\n >\n <div\n className={`${floatingLabel ? classes[\"floating-wrapper\"] : \"\"} ${\n innerClassName ? innerClassName : \"\"\n }`}\n >\n {label && (\n <Label\n {...labelProps}\n className={`${classes.label} ${labelClasses.join(\" \")}`}\n htmlFor={name}\n >\n {label}\n </Label>\n )}\n {renderChildren()}\n </div>\n </FormGroup>\n </div>\n );\n};\n\nexport const Wrapper = React.forwardRef(WrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useState } from \"react\";\nimport { generateID } from \"../util/helper\";\nimport { Type as InputTypes } from \"../Form/Input/Input\";\n\nexport const useWrapper = (value?: string, placeholder?: string, type?: InputTypes) => {\n const [helperId] = useState(generateID(20));\n const [errorId] = useState(generateID(20));\n const [labelId] = useState(generateID(20));\n const [floatingLabelActive, setFloatingLabelActive] = useState(false);\n const [hasFocus, setHasFocus] = useState(false);\n\n useEffect(() => {\n if (\n (value?.length && value.length > 0) ||\n placeholder ||\n type === \"datetime-local\" ||\n type === \"time\" ||\n type === \"date\"\n ) {\n setFloatingLabelActive(true);\n }\n }, []);\n\n useEffect(() => {\n if ((value?.length && value.length > 0) || hasFocus) {\n setFloatingLabelActive(true);\n } else if (\n !placeholder &&\n !hasFocus &&\n type !== \"datetime-local\" &&\n type !== \"time\" &&\n type !== \"date\"\n ) {\n setFloatingLabelActive(false);\n }\n }, [value, placeholder, type, hasFocus]);\n\n return {\n helperId,\n errorId,\n labelId,\n floatingLabelActive,\n setFloatingLabelActive,\n hasFocus,\n setHasFocus\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { Input, Type, Props as InputProps } from \"../../Input/Input\";\nimport classes from \"./InputWrapper.module.scss\";\nimport { Wrapper, WrapperProps } from \"../Wrapper/Wrapper\";\nimport { useWrapper } from \"../../../hooks/useWrapper\";\nimport { remToPx } from \"../../../util/helper\";\n\ninterface PartialInputProps extends Partial<InputProps> {}\n\nexport interface Props extends ComponentPropsWithRef<\"div\">, WrapperProps {\n label: string;\n type: Type;\n name: string;\n inputProps?: PartialInputProps;\n value: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n}\n\nconst useLabelOffset = (\n input: React.RefObject<HTMLInputElement>,\n floatingLabelActive: boolean,\n prefix?: string\n) => {\n const [labelOffset, setLabelOffset] = useState({});\n\n const resetLabelOffset = () => setLabelOffset({ left: undefined });\n\n useEffect(() => {\n if (input.current && prefix) {\n if (floatingLabelActive) {\n resetLabelOffset();\n } else {\n const spacingBetweenPrefixAndInput = 4;\n const prefixDifference =\n getComputedStyle(input.current).paddingLeft + spacingBetweenPrefixAndInput;\n setLabelOffset({ left: `${prefixDifference}px` });\n }\n }\n }, [input.current, prefix, floatingLabelActive]);\n\n return { labelOffset };\n};\n\nconst InputWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n type,\n name,\n inputProps,\n helperText,\n helperProps,\n value,\n className,\n error,\n success,\n onChange,\n onBlur,\n onFocus,\n disabled,\n ...rest\n }: Props,\n ref\n) => {\n const {\n errorId,\n floatingLabelActive,\n setFloatingLabelActive,\n hasFocus,\n setHasFocus,\n helperId,\n labelId\n } = useWrapper(value, inputProps?.placeholder, type);\n const { prefix, suffix } = inputProps || {};\n const input = useRef<HTMLInputElement>(null);\n const hasValueOrActiveFloatingLabel = !!value || floatingLabelActive;\n const helperIndent = window.innerWidth >= remToPx(30) ? remToPx(1.25) : remToPx(1);\n const { labelOffset } = useLabelOffset(\n (inputProps && (inputProps.ref as React.RefObject<HTMLInputElement>)) || input,\n floatingLabelActive,\n prefix\n );\n\n const labelClasses = [classes[\"input-label\"]];\n hasFocus && labelClasses.push(classes[\"focus\"]);\n\n const inputWrapperClasses = [];\n floatingLabelActive && inputWrapperClasses.push(classes[\"floating-label-active\"]);\n inputProps?.wrapperProps?.className &&\n inputWrapperClasses.push(inputProps?.wrapperProps?.className);\n disabled && inputWrapperClasses.push(classes[\"disabled\"]);\n\n return (\n <Wrapper\n {...rest}\n ref={ref}\n name={name}\n className={`${classes[\"input-wrapper\"]} ${className ?? \"\"}`}\n labelProps={{\n id: labelId,\n className: labelClasses.join(\" \"),\n style: { ...labelOffset }\n }}\n floatingLabelActive={floatingLabelActive}\n errorId={errorId}\n error={error}\n helperId={helperId}\n helperText={helperText}\n helperProps={{\n ...helperProps,\n className: `${classes[\"input-wrapper-helper\"]} ${helperProps?.className ?? \"\"} `\n }}\n helperIndent={helperIndent}\n disabled={disabled}\n >\n <Input\n {...inputProps}\n prefix={hasValueOrActiveFloatingLabel ? prefix : \"\"}\n suffix={hasValueOrActiveFloatingLabel ? suffix : \"\"}\n wrapperProps={{\n className: inputWrapperClasses.join(\" \")\n }}\n ref={(inputProps && inputProps.ref) || input}\n aria-labelledby={labelId}\n aria-describedby={error ? errorId : helperId}\n onChange={onChange}\n onFocus={e => {\n onFocus && onFocus(e);\n setHasFocus(true);\n setFloatingLabelActive(true);\n }}\n onBlur={e => {\n onBlur && onBlur(e);\n setHasFocus(false);\n e.target.value ||\n e.target.placeholder ||\n inputProps?.placeholder?.length ||\n type === \"datetime-local\" ||\n type === \"time\" ||\n type === \"date\"\n ? setFloatingLabelActive(true)\n : setFloatingLabelActive(false);\n }}\n className={`${floatingLabelActive ? classes[\"floating-label\"] : \"\"} ${\n inputProps?.className ?? \"\"\n }`}\n name={name}\n success={success}\n error={error}\n id={name}\n value={value}\n type={type}\n />\n </Wrapper>\n );\n};\n\nexport const InputWrapper = React.forwardRef(InputWrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ReactChild,\n ReactElement\n} from \"react\";\nimport classes from \"./SelectWrapper.module.scss\";\nimport { Wrapper, WrapperProps } from \"../Wrapper/Wrapper\";\nimport { Select, Props as SelectProps } from \"../../Select/Select\";\nimport { useWrapper } from \"../../../hooks/useWrapper\";\n\ninterface PartialSelectProps extends Partial<SelectProps> {}\n\nexport interface Props\n extends Omit<ComponentPropsWithRef<\"div\">, \"onChange\">,\n Omit<WrapperProps, \"onChange\" | \"error\"> {\n children: ReactChild | ReactChild[];\n placeholder?: string;\n value: string;\n error?: boolean;\n selectProps?: PartialSelectProps;\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;\n}\n\nconst SelectWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n error,\n success,\n value,\n placeholder,\n selectProps,\n helperProps,\n onChange,\n ...rest\n }: Props,\n ref\n) => {\n const { errorId, floatingLabelActive, helperId, labelId } = useWrapper(value, placeholder);\n\n return (\n <Wrapper\n {...rest}\n ref={ref}\n floatingLabelActive={floatingLabelActive}\n errorId={errorId}\n helperId={helperId}\n labelProps={{ id: labelId, className: classes[\"select-label\"] }}\n helperProps={{\n ...helperProps,\n className: `${classes[\"select-helper-text\"]} ${helperProps?.className ?? \"\"}`\n }}\n error={error}\n >\n <Select\n {...selectProps}\n value={value}\n labeledBy={labelId}\n error={error}\n success={success}\n describedBy={error ? errorId : helperId}\n onChange={onChange}\n placeholder={placeholder}\n className={`${floatingLabelActive ? classes[\"floating-label-active\"] : \"\"} ${\n selectProps?.className ?? \"\"\n }`}\n >\n {children as ReactElement[]}\n </Select>\n </Wrapper>\n );\n};\n\nexport const SelectWrapper = React.forwardRef(SelectWrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, useState } from \"react\";\nimport classes from \"./TextareaWrapper.module.scss\";\nimport { Wrapper, WrapperProps } from \"../Wrapper/Wrapper\";\nimport { Textarea, Props as TextareaProps } from \"../../Textarea/Textarea\";\nimport { useWrapper } from \"../../../hooks/useWrapper\";\n\nexport interface Props\n extends Omit<\n ComponentPropsWithRef<\"div\">,\n \"onFocus\" | \"onChange\" | \"onBlur\" | \"onMouseEnter\" | \"onMouseLeave\"\n >,\n Omit<WrapperProps, \"onFocus\" | \"onChange\" | \"onBlur\" | \"onMouseEnter\" | \"onMouseLeave\"> {\n placeholder?: string;\n textareaProps?: TextareaProps;\n value: string;\n onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;\n onMouseEnter?: (event: React.MouseEvent<HTMLTextAreaElement>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLTextAreaElement>) => void;\n}\n\nconst TextareaWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n name,\n error,\n success,\n value,\n label,\n placeholder,\n textareaProps,\n helperProps,\n onChange,\n onFocus,\n onBlur,\n onMouseEnter,\n onMouseLeave,\n disabled,\n ...rest\n }: Props,\n ref\n) => {\n const {\n errorId,\n floatingLabelActive,\n setFloatingLabelActive,\n hasFocus,\n setHasFocus,\n helperId,\n labelId\n } = useWrapper(value, placeholder);\n const [hover, setHover] = useState(false);\n\n const wrapperClasses: string[] = [];\n\n hasFocus && wrapperClasses.push(classes[\"focus\"]);\n hover && wrapperClasses.push(classes[\"hover\"]);\n disabled && wrapperClasses.push(classes[\"disabled\"]);\n error && wrapperClasses.push(classes[\"error\"]);\n\n return (\n <Wrapper\n {...rest}\n ref={ref}\n disabled={disabled}\n labelProps={{\n id: labelId,\n className: `${classes[\"textarea-label\"]} ${wrapperClasses.join(\" \")}`\n }}\n name={name}\n label={label}\n helperId={helperId}\n helperProps={{\n ...helperProps,\n className: classes[\"textarea-helper-text\"]\n }}\n error={error}\n floatingLabelActive={floatingLabelActive}\n errorId={errorId}\n >\n <Textarea\n {...textareaProps}\n error={error}\n aria-labelledby={label && labelId}\n aria-describedby={error ? errorId : helperId}\n placeholder={placeholder}\n name={name}\n id={name}\n value={value}\n success={success}\n onChange={onChange}\n onFocus={e => {\n onFocus && onFocus(e);\n setHasFocus(true);\n setFloatingLabelActive(true);\n }}\n onBlur={e => {\n onBlur && onBlur(e);\n setHasFocus(false);\n e.target.value || e.target.placeholder || textareaProps?.placeholder?.length\n ? setFloatingLabelActive(true)\n : setFloatingLabelActive(false);\n }}\n onMouseEnter={e => {\n onMouseEnter && onMouseEnter(e);\n setHover(true);\n }}\n onMouseLeave={e => {\n onMouseLeave && onMouseLeave(e);\n setHover(false);\n }}\n className={`${classes[\"textarea\"]} ${error ? classes[\"error\"] : \"\"}`}\n wrapperProps={{\n className: `${wrapperClasses.join(\" \")} ${classes[\"textarea-wrapper\"]}`\n }}\n />\n </Wrapper>\n );\n};\n\nexport const TextareaWrapper = React.forwardRef(TextareaWrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ReactNode,\n ReactElement\n} from \"react\";\nimport readyclasses from \"../../readyclasses.module.scss\";\nimport classes from \"./Fieldset.module.scss\";\nimport { Typography, Variant } from \"../../Typography/Typography\";\nimport { Input } from \"../Input/Input\";\nimport { Select } from \"../Select/Select\";\nimport { Radio } from \"../Radio/Radio\";\nimport { Checkbox } from \"../Checkbox/Checkbox\";\nimport { Textarea } from \"../Textarea/Textarea\";\nimport { Toggle } from \"../Toggle/Toggle\";\nimport { Label } from \"../Label/Label\";\nimport { FormControl } from \"../FormControl/FormControl\";\nimport { FormSelectorWrapper } from \"../FormSelectorWrapper/FormSelectorWrapper\";\nimport { FormHelperText } from \"../FormHelperText/FormHelperText\";\nimport { InputWrapper } from \"../Wrapper/InputWrapper/InputWrapper\";\nimport { SelectWrapper } from \"../Wrapper/SelectWrapper/SelectWrapper\";\nimport { TextareaWrapper } from \"../Wrapper/TextareaWrapper/TextareaWrapper\";\n\nexport interface Props extends ComponentPropsWithRef<\"fieldset\"> {\n children?: ReactElement | ReactElement[];\n legend: string;\n legendStyle?: Variant;\n hideLegend?: boolean;\n background?: string;\n noPadding?: boolean;\n noBackground?: boolean;\n required?: boolean;\n error?: boolean;\n disablePropagation?: boolean;\n}\n\nconst FieldsetComponent: ForwardRefRenderFunction<HTMLFieldSetElement, Props> = (\n {\n children,\n className,\n legend,\n legendStyle = \"body\",\n hideLegend = false,\n noBackground,\n background = noBackground ? \"\" : \"#FFF\",\n noPadding = false,\n disabled = false,\n required = false,\n error = false,\n disablePropagation = false,\n ...rest\n }: Props,\n ref\n) => {\n const renderChildren = () => {\n if (!children) {\n return;\n }\n\n /* All right, so the issue is that whenever we try to add disabled and error to a component that doesn't accept it,\n React will throw an error. However, it might occur that we want a component inside of Fieldset because of aesthetic purposes\n (fieldset applies a sort of container with white background and if we want to display it inside of this container... then yea).\n So instead we supply an array of components that we want to add the disabled and error prop to and check if child.type equals one of these. */\n const allowedComponents: ReactNode[] = [\n Input,\n Select,\n Radio,\n Checkbox,\n Textarea,\n Toggle,\n Label,\n FormControl,\n FormSelectorWrapper,\n FormHelperText,\n InputWrapper,\n SelectWrapper,\n TextareaWrapper\n ];\n\n return React.Children.map(children, (child: ReactElement) => {\n if (allowedComponents.includes(child.type) && !disablePropagation) {\n return React.cloneElement(child, {\n disabled: child.props.disabled ?? disabled,\n error: child.props.error ?? error\n });\n }\n\n return child;\n });\n };\n\n return (\n <fieldset\n {...rest}\n ref={ref}\n disabled={disabled}\n style={{ backgroundColor: background, ...rest.style }}\n className={`${classes.fieldset} ${noPadding ? classes[\"no-padding\"] : \"\"} ${className ?? \"\"}`}\n >\n {legend && <legend className={readyclasses[\"sr-only\"]}>{legend}</legend>}\n {legend && !hideLegend && (\n <Typography\n variant={legendStyle}\n tag=\"span\"\n aria-hidden=\"true\"\n className={`${classes[\"legend\"]} ${required ? classes[\"required\"] : \"\"} ${\n error ? classes[\"error\"] : \"\"\n }`}\n >\n {legend}\n </Typography>\n )}\n {renderChildren()}\n </fieldset>\n );\n};\n\nexport const Fieldset = React.forwardRef(FieldsetComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ComponentPropsWithRef, ForwardRefRenderFunction, ReactNode } from \"react\";\nimport classes from \"./Form.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"form\"> {\n children?: ReactNode;\n}\n\nconst FormComponent: ForwardRefRenderFunction<HTMLFormElement, Props> = (\n { children, className, ...rest }: Props,\n ref\n) => {\n return (\n <form ref={ref} className={`${classes.form} ${className ?? \"\"}`} {...rest}>\n {children}\n </form>\n );\n};\n\nexport const Form = React.forwardRef(FormComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ReactElement,\n useEffect\n} from \"react\";\nimport classes from \"./RadioWrapper.module.scss\";\nimport { Wrapper, WrapperProps } from \"../Wrapper/Wrapper\";\nimport { useWrapper } from \"../../../hooks/useWrapper\";\nimport { Icons } from \"../../../Icon/Icon\";\nimport { Fieldset, Props as FieldsetProps } from \"../../../Form/Fieldset/Fieldset\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\">, WrapperProps {\n children: ReactElement | ReactElement[];\n fieldsetProps: FieldsetProps;\n value: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst RadioWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n error,\n name,\n helperText,\n helperProps,\n fieldsetProps,\n value,\n onChange,\n disabled,\n ...rest\n }: Props,\n ref\n) => {\n const { errorId, helperId } = useWrapper(value);\n\n useEffect(() => {\n if (fieldsetProps.legend === undefined) {\n console.error(\n `You should give your Fieldset component a legend prop so a legend element is rendered. This error was thrown in RadioWrapper. You can add this legend prop through the fieldsetProps prop by passing an object (fieldsetProps={{ legend: \"legend here\" }})`\n );\n }\n }, []);\n\n const renderChildren = () =>\n React.Children.map(children, child =>\n React.cloneElement(child, {\n parentErrorId: errorId,\n error: error,\n checked: child.props.value === value,\n name: name,\n parentHelperId: helperText ? helperId : false,\n onChange: onChange,\n disabled: child.props.disabled !== undefined ? child.props.disabled : disabled\n })\n );\n\n return (\n <Fieldset {...fieldsetProps} error={error} disabled={disabled}>\n <Wrapper\n {...rest}\n ref={ref}\n disabled={disabled}\n name={name}\n helperId={helperId}\n helperText={helperText}\n helperProps={{\n ...helperProps,\n className: `${classes[\"radio-wrapper-helper\"]} ${\n error ? classes[\"radio-wrapper-error\"] : \"\"\n } ${helperProps?.className ?? \"\"}`\n }}\n error={error}\n errorId={errorId}\n errorMessageIcon={Icons.Error}\n floatingLabel={false}\n >\n {renderChildren()}\n </Wrapper>\n </Fieldset>\n );\n};\n\nexport const RadioWrapper = React.forwardRef(RadioWrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ReactElement,\n useEffect\n} from \"react\";\nimport classes from \"./CheckboxWrapper.module.scss\";\nimport { useWrapper } from \"../../../hooks/useWrapper\";\nimport { Wrapper, WrapperProps } from \"../Wrapper/Wrapper\";\nimport { Icons } from \"../../../Icon/Icon\";\nimport { Fieldset, Props as FieldsetProps } from \"../../../Form/Fieldset/Fieldset\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\">, WrapperProps {\n children: ReactElement[] | ReactElement;\n fieldsetProps: FieldsetProps;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst CheckboxWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, error = false, helperText, helperProps, fieldsetProps, ...rest }: Props,\n ref\n) => {\n const { errorId, helperId } = useWrapper();\n\n useEffect(() => {\n if (fieldsetProps.legend === undefined) {\n console.error(\n `You should give your Fieldset component a legend prop so a legend element is rendered. This error was thrown in CheckboxWrapper. You can add this legend prop through the fieldsetProps prop by passing an object (fieldsetProps={{ legend: \"legend here\" }})`\n );\n }\n }, []);\n\n const renderChildren = () =>\n React.Children.map(children, child =>\n React.cloneElement(child, {\n parentErrorId: errorId,\n error: error,\n parentHelperId: helperText ? helperId : false,\n disabled: rest.disabled\n })\n );\n\n return (\n <Fieldset {...fieldsetProps} error={error} required={rest.required}>\n <Wrapper\n {...rest}\n ref={ref}\n label=\"\"\n helperId={helperId}\n helperText={helperText}\n helperProps={{\n ...helperProps,\n className: `${classes[\"checkbox-wrapper-helper\"]} ${\n error ? classes[\"checkbox-wrapper-error\"] : \"\"\n } ${helperProps?.className ?? \"\"}`\n }}\n error={error}\n errorMessageIcon={Icons.Error}\n errorId={errorId}\n >\n {renderChildren()}\n </Wrapper>\n </Fieldset>\n );\n};\n\nexport const CheckboxWrapper = React.forwardRef(CheckboxWrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Reducer } from \"react\";\nimport { Step } from \"./BaseWizardSteps/BaseWizardSteps\";\nimport { WizardMode } from \"./Wizard\";\n\ntype WizardStateType = {\n steps: Step[];\n currentStepNo: number;\n mode: WizardMode;\n};\n\ninterface SetWizardStateAction {\n type: \"SET_STATE\";\n payload: {\n steps: Step[];\n mode: WizardMode;\n };\n}\n\ninterface ChangeCurrentStepNoAction {\n type: \"CHANGE_CURRENT_STEP_NO\";\n payload: number;\n}\n\nconst setWizardState = (steps: Step[], mode: WizardMode): SetWizardStateAction => {\n return { type: \"SET_STATE\", payload: { steps, mode } };\n};\n\nconst changeCurrentStepNo = (currentStepNo: number): ChangeCurrentStepNoAction => {\n return { type: \"CHANGE_CURRENT_STEP_NO\", payload: currentStepNo };\n};\n\ntype WizardActions = SetWizardStateAction | ChangeCurrentStepNoAction;\n\nconst reducer: Reducer<WizardStateType, WizardActions> = (state, action) => {\n switch (action.type) {\n case \"SET_STATE\":\n return { ...state, ...action.payload };\n case \"CHANGE_CURRENT_STEP_NO\":\n return { ...state, currentStepNo: action.payload };\n default:\n return state;\n }\n};\n\nexport { setWizardState, changeCurrentStepNo, reducer, WizardActions, WizardStateType };\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { createContext, Dispatch, useReducer } from \"react\";\nimport { WizardActions, WizardStateType, reducer } from \"./wizardStateReducer\";\n\nconst WizardStateContext = createContext<{\n state: WizardStateType;\n dispatch: Dispatch<WizardActions>;\n}>({\n state: {} as WizardStateType,\n dispatch: () => null\n});\n\nexport interface Props {\n initialState: WizardStateType;\n children?: React.ReactNode;\n}\n\nconst WizardStateProvider = ({ children, initialState }: Props) => {\n const [state, dispatch] = useReducer(reducer, initialState);\n return (\n <WizardStateContext.Provider value={{ state, dispatch }}>\n {children}\n </WizardStateContext.Provider>\n );\n};\n\nexport { WizardStateProvider, WizardStateContext };\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { Fragment, useContext, useEffect } from \"react\";\nimport { Step } from \"./BaseWizardSteps/BaseWizardSteps\";\nimport { WizardStateContext, WizardStateProvider } from \"./WizardStateProvider\";\nimport { setWizardState } from \"./wizardStateReducer\";\n\nexport type WizardMode = \"add\" | \"edit\";\n\nexport interface Props {\n steps: Step[];\n mode: WizardMode;\n initialStepNo?: number;\n onStepChange: (stepNo: number) => void;\n children: React.ReactNode;\n}\n\nconst useSetWizardState = (steps: Step[], mode: WizardMode) => {\n const { dispatch } = useContext(WizardStateContext);\n\n useEffect(() => {\n dispatch(setWizardState(steps, mode));\n }, [steps, mode]);\n};\n\nconst useStepChanging = (onStepChange: (stepNo: number) => void) => {\n const {\n state: { currentStepNo }\n } = useContext(WizardStateContext);\n\n useEffect(() => {\n onStepChange(currentStepNo);\n }, [currentStepNo]);\n};\n\nconst WizardContent = ({ steps, mode, onStepChange, children }: Props) => {\n useSetWizardState(steps, mode);\n useStepChanging(onStepChange);\n\n return <Fragment>{children}</Fragment>;\n};\n\nexport const Wizard = (props: Props) => {\n const { steps, initialStepNo: currentStepNo = 0, mode } = props;\n return (\n <WizardStateProvider initialState={{ steps, currentStepNo, mode }}>\n <WizardContent {...props} />\n </WizardStateProvider>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { Fragment, useContext, useMemo } from \"react\";\nimport { Button } from \"../../Button/Button\";\nimport { Step } from \"../BaseWizardSteps/BaseWizardSteps\";\nimport { WizardMode } from \"../Wizard\";\nimport { WizardStateContext } from \"../WizardStateProvider\";\nimport { changeCurrentStepNo } from \"../wizardStateReducer\";\n\nexport interface Props extends React.HTMLProps<HTMLDivElement> {\n cancelButtonLabel: string;\n previousButtonLabel: string;\n nextButtonLabel: string;\n saveAndCloseButtonLabel: string;\n onCancel: () => void;\n onNext: (currentStepNo: number) => boolean;\n onPrevious?: () => void;\n onSaveAndClose: (currentStepNo: number) => void;\n}\n\nconst calculateNextStepNo = (steps: Step[], currentStepNo: number) => () =>\n steps.findIndex((step, stepNo) => stepNo > currentStepNo && !step.disabled);\n\nconst calculatePrevStepNo = (steps: Step[], currentStepNo: number) => () => {\n const reversedCurrentStepNo = steps.length - 1 - currentStepNo;\n const reversedPrevStepNo = [...steps]\n .reverse()\n .findIndex((step, stepNo) => stepNo > reversedCurrentStepNo && !step.disabled);\n if (reversedPrevStepNo > 0) {\n return steps.length - 1 - reversedPrevStepNo;\n }\n return -1;\n};\n\nconst useNextStepNo = (mode: WizardMode, currentStepNo: number, steps: Step[]) =>\n useMemo(calculateNextStepNo(steps, currentStepNo), [mode, currentStepNo, steps]);\n\nconst usePreviousStepNo = (mode: WizardMode, currentStepNo: number, steps: Step[]) =>\n useMemo(calculatePrevStepNo(steps, currentStepNo), [mode, currentStepNo, steps]);\n\nexport const WizardActions = ({\n onCancel,\n onNext,\n onPrevious,\n onSaveAndClose,\n cancelButtonLabel,\n previousButtonLabel,\n nextButtonLabel,\n saveAndCloseButtonLabel\n}: Props) => {\n const {\n state: { mode, steps, currentStepNo },\n dispatch\n } = useContext(WizardStateContext);\n const nextStepNo = useNextStepNo(mode, currentStepNo, steps);\n const hasNextStep = nextStepNo !== -1;\n const previousStepNo = usePreviousStepNo(mode, currentStepNo, steps);\n const hasPreviousStep = previousStepNo !== -1;\n const isLastStepOrEditMode = !hasNextStep || mode === \"edit\";\n\n const changeStepNo = (direction: \"forward\" | \"backward\") => {\n if (direction === \"forward\") {\n hasNextStep && dispatch(changeCurrentStepNo(nextStepNo));\n } else {\n hasPreviousStep && dispatch(changeCurrentStepNo(previousStepNo));\n }\n };\n\n const onNextWrapper = () => {\n onNext(currentStepNo) && changeStepNo(\"forward\");\n };\n\n const onPreviousWrapper = () => {\n onPrevious && onPrevious();\n changeStepNo(\"backward\");\n };\n\n const onSaveAndCloseWrapper = () => {\n onSaveAndClose(currentStepNo);\n };\n\n return (\n <Fragment>\n <Button variant=\"text\" onClick={onCancel}>\n {cancelButtonLabel}\n </Button>\n {hasPreviousStep && (\n <Button variant=\"outline\" onClick={onPreviousWrapper}>\n {previousButtonLabel}\n </Button>\n )}\n {hasNextStep && (\n <Button variant={mode === \"edit\" ? \"outline\" : \"fill\"} onClick={onNextWrapper}>\n {nextButtonLabel}\n </Button>\n )}\n {isLastStepOrEditMode && (\n <Button onClick={onSaveAndCloseWrapper}>{saveAndCloseButtonLabel}</Button>\n )}\n </Fragment>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, Fragment } from \"react\";\nimport classes from \"./BaseWizardSteps.module.scss\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\n\ntype StepState = \"finished\" | \"current\" | \"future\";\n\nexport interface Step {\n label: string;\n disabled?: boolean;\n}\n\nexport interface Props extends Omit<ComponentPropsWithRef<\"div\">, \"onClick\"> {\n steps: Step[];\n currentStepNo: number;\n onClick?: (stepNo: number) => void;\n futureStepsClickable?: boolean;\n}\n\nconst BaseWizardStepsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { steps, currentStepNo, onClick, futureStepsClickable = false, ...rest }: Props,\n ref\n) => {\n const getStepState = (stepNo: number): StepState => {\n if (currentStepNo === stepNo) {\n return \"current\";\n } else if (stepNo < currentStepNo) {\n return \"finished\";\n }\n return \"future\";\n };\n\n const getStepContent = (stepState: StepState, index: number, disabled?: boolean) => {\n const stepNumberString = String(index + 1);\n if (stepState === \"finished\") {\n return disabled ? null : <Icon className={classes[\"checkmark\"]} icon={Icons.Checkmark} />;\n } else {\n return <Fragment>{stepNumberString}</Fragment>;\n }\n };\n\n const generatedSteps = steps.map((step, index) => {\n const stepState = getStepState(index);\n const disabledStyleClassName = step.disabled ? classes[\"disabled\"] : \"\";\n const clickableClassName = futureStepsClickable ? classes[\"clickable\"] : \"\";\n\n return (\n <button\n key={step.label.toLowerCase().replace(/\\s/, \"-\")}\n disabled={\n step.disabled ||\n (stepState === \"future\" && !futureStepsClickable) ||\n stepState === \"current\"\n }\n aria-current={stepState === \"current\" ? \"step\" : undefined}\n onClick={() => onClick && onClick(index)}\n className={`${classes[\"wizard-element\"]} ${classes[stepState]} ${clickableClassName} ${disabledStyleClassName}`}\n >\n <div className={classes[\"number-wrapper\"]}>\n <span className={classes[\"number\"]}>\n {getStepContent(stepState, index, step.disabled)}\n </span>\n </div>\n <div className={classes[\"two-line-text-overflow\"]}>\n <span className={classes[\"label\"]}>{step.label}</span>\n </div>\n </button>\n );\n });\n\n return (\n <div {...rest} ref={ref} className={classes[\"wizard\"]}>\n {generatedSteps}\n </div>\n );\n};\n\nexport const BaseWizardSteps = React.forwardRef(BaseWizardStepsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, useContext } from \"react\";\nimport { WizardStateContext } from \"../WizardStateProvider\";\nimport { BaseWizardSteps } from \"../BaseWizardSteps/BaseWizardSteps\";\nimport { changeCurrentStepNo } from \"../wizardStateReducer\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n onStepClick: (currentStepNo: number, selectedStepNo: number) => boolean;\n}\n\nconst WizardStepsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { onStepClick, ...rest }: Props,\n ref\n) => {\n const {\n state: { currentStepNo, mode, steps },\n dispatch\n } = useContext(WizardStateContext);\n\n const onClick = (selectedStepNo: number) => {\n onStepClick(currentStepNo, selectedStepNo) && dispatch(changeCurrentStepNo(selectedStepNo));\n };\n\n return (\n <BaseWizardSteps\n {...rest}\n ref={ref}\n onClick={onClick}\n steps={steps}\n currentStepNo={currentStepNo}\n futureStepsClickable={mode === \"edit\"}\n />\n );\n};\n\nexport const WizardSteps = React.forwardRef(WizardStepsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, Fragment } from \"react\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { ColumnName, Direction } from \"../datagrid.interfaces\";\nimport classes from \"./DataGridHeaderCell.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"th\"> {\n headline: string;\n name: ColumnName;\n disableSorting?: boolean;\n activeSortDirection?: Direction;\n onSort?: (name: ColumnName) => void;\n}\n\nconst ariaSortMapping = {\n ASC: \"ascending\",\n DESC: \"descending\"\n} as const;\n\nconst DataGridHeaderCellComponent: ForwardRefRenderFunction<HTMLTableCellElement, Props> = (\n { headline, name, disableSorting, activeSortDirection, onSort, ...rest }: Props,\n ref\n) => {\n const onCellClick = () => {\n onSort && onSort(name);\n };\n\n const sortingIndicator = () => {\n const getSortingIndicatorClasses = (direction: Direction) => {\n const sortingIndicatorClasses = [classes[\"indicator\"]];\n activeSortDirection &&\n sortingIndicatorClasses.push(\n activeSortDirection === direction ? classes[\"active\"] : classes[\"hidden\"]\n );\n return sortingIndicatorClasses;\n };\n\n return (\n <Fragment>\n <Icon className={getSortingIndicatorClasses(\"ASC\").join(\" \")} icon={Icons.TriangleUp} />\n <Icon className={getSortingIndicatorClasses(\"DESC\").join(\" \")} icon={Icons.TriangleDown} />\n </Fragment>\n );\n };\n\n const innerContent = (\n <Fragment>\n <span className={classes[\"headline\"]}>{headline}</span>\n {!disableSorting && (\n <div className={classes[\"sorting-indicator-container\"]}>{sortingIndicator()}</div>\n )}\n </Fragment>\n );\n\n return (\n <th\n {...rest}\n ref={ref}\n className={classes[\"header-cell\"]}\n aria-sort={activeSortDirection && ariaSortMapping[activeSortDirection]}\n >\n {disableSorting ? (\n <div key={name}>{innerContent}</div>\n ) : (\n <button key={name} onClick={onCellClick}>\n {innerContent}\n </button>\n )}\n </th>\n );\n};\n\nexport const DataGridHeaderCell = React.forwardRef(DataGridHeaderCellComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, useEffect, useState } from \"react\";\nimport { ColumnName, Direction, HeaderCell, OnSortFunction, Sort } from \"../datagrid.interfaces\";\nimport { DataGridHeaderCell } from \"./DataGridHeaderCell\";\nimport classes from \"./DataGridHeader.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"thead\"> {\n headers: HeaderCell[];\n initialSort?: Sort;\n onSort?: OnSortFunction;\n disableContextMenuColumn?: boolean;\n enableMultiSorting?: boolean;\n spacing?: React.CSSProperties;\n}\n\nconst sortingStates = [undefined, \"ASC\", \"DESC\"] as (Direction | undefined)[];\n\nconst DataGridHeaderComponent: ForwardRefRenderFunction<HTMLTableSectionElement, Props> = (\n {\n initialSort,\n onSort,\n headers,\n disableContextMenuColumn,\n enableMultiSorting,\n spacing,\n ...rest\n }: Props,\n ref\n) => {\n const [sortList, setSortList] = useState(initialSort || []);\n\n useEffect(() => {\n setSortList(initialSort || []);\n }, [initialSort]);\n\n const calculateNextSortState = (direction?: Direction) => {\n const currentDirectionIdx = sortingStates.findIndex(item => item === direction);\n return sortingStates[currentDirectionIdx + (1 % sortingStates.length)];\n };\n\n /**\n * The sortList contains sorting columns objects. The order of those objects determinates priorities of sorting.\n * Last modified sorting column has the highest priority.\n */\n const updateSortList = (name: ColumnName): Sort => {\n const current = sortList.find(item => item.name === name);\n const restSortList = enableMultiSorting ? sortList.filter(item => item.name !== name) : [];\n const newSortDirection = calculateNextSortState(current?.direction);\n return newSortDirection\n ? [{ name, direction: newSortDirection }, ...restSortList]\n : restSortList;\n };\n\n const wrapOnSort = (name: ColumnName) => {\n const newSort = updateSortList(name);\n onSort && onSort(newSort);\n setSortList(newSort);\n };\n\n const headerCells = headers.map((header, index) => {\n if (header.hidden) {\n return null;\n }\n\n let headerStyle: React.CSSProperties = {\n textAlign: header.align || \"left\"\n };\n\n if (index === 0) {\n headerStyle.paddingLeft = spacing?.paddingLeft;\n }\n if (index === headers.length - 1 && disableContextMenuColumn) {\n headerStyle.paddingRight = spacing?.paddingRight;\n }\n\n const sort = sortList.find(item => item.name === header.name);\n return (\n <DataGridHeaderCell\n key={header.name}\n name={header.name}\n headline={header.headline}\n disableSorting={header.disableSorting || !onSort}\n onSort={wrapOnSort}\n activeSortDirection={sort?.direction}\n style={headerStyle}\n />\n );\n });\n\n return (\n <thead {...rest} ref={ref} className={classes[\"thead\"]}>\n <tr className={classes[\"row\"]}>\n {headerCells}\n {!disableContextMenuColumn && (\n <td\n style={{ paddingRight: spacing?.paddingRight }}\n aria-label=\"context menu\"\n className={classes[\"context-menu\"]}\n ></td>\n )}\n </tr>\n </thead>\n );\n};\n\nexport const DataGridHeader = React.forwardRef(DataGridHeaderComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, Fragment, useState } from \"react\";\nimport { IconButton } from \"../../Button/IconButton\";\nimport { Toggle } from \"../../Form/Toggle/Toggle\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { Popover, Props as PopoverProps } from \"../../Popover/Popover\";\nimport { Typography } from \"../../Typography/Typography\";\nimport { generateID } from \"../../util/helper\";\nimport { ColumnName, HeaderCell } from \"../datagrid.interfaces\";\nimport classes from \"./DataGridColumnsToggle.module.scss\";\nimport { createPortal } from \"react-dom\";\n\nexport interface Props extends PopoverProps {\n open: boolean;\n headers: HeaderCell[];\n titleLabel?: string;\n closeButtonTitle?: string;\n onClose: () => void;\n onToggleClicked: (colName: ColumnName) => void;\n domRoot?: HTMLElement;\n}\n\nconst DataGridColumnsToggleComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n open,\n headers,\n titleLabel = \"Show columns\",\n closeButtonTitle = \"Close show columns dialog\",\n onClose,\n onToggleClicked,\n className,\n domRoot = document.body,\n ...rest\n }: Props,\n ref\n) => {\n const [id] = useState(generateID());\n const labelledId = id + \"_header\";\n\n const toggles = headers.map(item => (\n <Toggle\n key={item.name}\n name={item.name}\n checked={!item.hidden}\n onChange={() => onToggleClicked(item.name)}\n >\n {item.headline}\n </Toggle>\n ));\n\n const handleBackdropClick = () => onClose();\n\n return (\n <Popover\n {...rest}\n ref={ref}\n className={`${classes[\"popover\"]} ${className}`}\n show={open}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={labelledId}\n >\n {open &&\n createPortal(\n <div className={classes[\"backdrop\"]} onClick={handleBackdropClick}></div>,\n domRoot\n )}\n {open && (\n <Fragment>\n <div className={classes[\"header\"]}>\n <Typography id={labelledId} className={classes[\"title\"]} tag=\"span\" variant=\"h4\">\n {titleLabel}\n </Typography>\n <IconButton\n onClick={onClose}\n className={`${classes[\"close-btn\"]}`}\n title={closeButtonTitle}\n >\n <Icon icon={Icons.Times} />\n </IconButton>\n </div>\n <div className={classes[\"content\"]}>{toggles}</div>\n </Fragment>\n )}\n </Popover>\n );\n};\n\nexport const DataGridColumnsToggle = React.forwardRef(DataGridColumnsToggleComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithRef,\n ForwardRefRenderFunction,\n Fragment,\n useRef,\n useState\n} from \"react\";\nimport { Button, Props as ButtonProps } from \"../../Button/Button\";\nimport { IconButton } from \"../../Button/IconButton\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { HeaderCell, ColumnName } from \"../datagrid.interfaces\";\nimport classes from \"./DataGridActions.module.scss\";\nimport { DataGridColumnsToggle } from \"./DataGridColumnsToggle\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n enableAddBtn?: boolean;\n enableColumnsBtn?: boolean;\n enableSearchBtn?: boolean;\n addBtnProps?: ButtonProps;\n columnsBtnProps?: ButtonProps;\n searchBtnProps?: ButtonProps;\n searchIconBtnProps?: ButtonProps;\n headers: HeaderCell[];\n onColumnToggled: (colName: ColumnName) => void;\n}\n\nconst DataGridActionsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n className,\n enableAddBtn,\n enableColumnsBtn,\n enableSearchBtn,\n addBtnProps = {},\n columnsBtnProps = {},\n searchBtnProps = {},\n searchIconBtnProps = {},\n headers,\n onColumnToggled,\n children,\n ...rest\n }: Props,\n ref\n) => {\n const isHidden = !(enableAddBtn || enableColumnsBtn || enableSearchBtn);\n const [showColsPopover, setShowColsPopover] = useState(false);\n const showColumnBtn = useRef<HTMLButtonElement>(null);\n const { children: addBtnChildren, ...restAddBtnProps } = addBtnProps;\n const { children: columnsBtnChildren, ...restColumnsBtnProps } = columnsBtnProps;\n const { children: searchBtnChildren, ...restSearchBtnProps } = searchBtnProps;\n\n return isHidden ? null : (\n <div {...rest} ref={ref} className={`${classes[\"actions\"]} ${className ?? \"\"}`}>\n <div className={classes[\"left-actions\"]}>\n {enableAddBtn && (\n <Button\n color=\"primary\"\n startIcon={<Icon icon={Icons.Plus} />}\n title=\"Add item\"\n type=\"button\"\n variant=\"outline\"\n {...restAddBtnProps}\n >\n {addBtnChildren ?? \"Add item\"}\n </Button>\n )}\n </div>\n <div className={classes[\"right-actions\"]}>\n {enableColumnsBtn && (\n <Fragment>\n <Button\n startIcon={<Icon icon={Icons.Change} />}\n title=\"Show/hide columns\"\n variant=\"text\"\n {...restColumnsBtnProps}\n className={`${classes[\"desktop\"]} ${columnsBtnProps?.className ?? \"\"}`}\n ref={showColumnBtn}\n onClick={() => setShowColsPopover(true)}\n >\n {columnsBtnChildren ?? \"Columns\"}\n </Button>\n <IconButton\n title=\"Show/hide columns\"\n {...columnsBtnProps}\n onClick={() => setShowColsPopover(true)}\n className={`${classes[\"mobile\"]} ${columnsBtnProps?.className ?? \"\"}`}\n >\n <Icon icon={Icons.Change} />\n </IconButton>\n <DataGridColumnsToggle\n aria-hidden={!showColsPopover}\n open={showColsPopover}\n headers={headers}\n onClose={() => setShowColsPopover(false)}\n onToggleClicked={onColumnToggled}\n anchorEl={showColumnBtn}\n />\n </Fragment>\n )}\n {enableSearchBtn && (\n <Fragment>\n <Button\n startIcon={<Icon icon={Icons.TableSearch} />}\n title=\"Search\"\n variant=\"text\"\n {...restSearchBtnProps}\n className={`${classes[\"desktop\"]} ${searchBtnProps?.className ?? \"\"}`}\n >\n {searchBtnChildren ?? \"Search\"}\n </Button>\n <IconButton\n title=\"Search\"\n {...searchIconBtnProps}\n className={`${classes[\"mobile\"]} ${columnsBtnProps?.className ?? \"\"}`}\n >\n <Icon icon={Icons.TableSearch} />\n </IconButton>\n </Fragment>\n )}\n </div>\n </div>\n );\n};\n\nexport const DataGridActions = React.forwardRef(DataGridActionsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactChild } from \"react\";\nimport { Typography } from \"../../Typography/Typography\";\nimport classes from \"./DataGridCell.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"td\"> {\n children?: ReactChild;\n isLoading?: boolean;\n spacing?: React.CSSProperties;\n cellIndex?: number;\n columnLength?: number;\n disableContextMenuColumn?: boolean;\n}\n\nconst DataGridCellComponent: ForwardRefRenderFunction<HTMLTableCellElement, Props> = (\n {\n children,\n className,\n isLoading,\n spacing,\n cellIndex,\n columnLength,\n disableContextMenuColumn,\n ...rest\n }: Props,\n ref\n) => {\n let cellStyle: React.CSSProperties = {};\n\n if (cellIndex === 0) {\n cellStyle.paddingLeft = spacing?.paddingLeft;\n }\n if (\n (cellIndex === columnLength && !disableContextMenuColumn) ||\n (columnLength && cellIndex === columnLength - 1 && disableContextMenuColumn)\n ) {\n cellStyle.paddingRight = spacing?.paddingRight;\n }\n\n return (\n <td\n {...rest}\n ref={ref}\n style={{ ...rest.style, ...cellStyle }}\n className={`${classes[\"cell\"]} ${className ?? \"\"}`}\n >\n {isLoading && <div className={classes[\"loading\"]} aria-busy=\"true\" aria-live=\"polite\"></div>}\n {!isLoading && (\n <Typography variant=\"body\" tag=\"span\">\n {children}\n </Typography>\n )}\n </td>\n );\n};\n\nexport const DataGridCell = React.forwardRef(DataGridCellComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport { HeaderCell } from \"../datagrid.interfaces\";\nimport classes from \"./DataGridRow.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"tr\"> {\n headers?: HeaderCell[];\n isLoading?: boolean;\n spacing?: React.CSSProperties;\n disableContextMenuColumn?: boolean;\n}\n\nconst DataGridRowComponent: ForwardRefRenderFunction<HTMLTableRowElement, Props> = (\n { children, className, headers, isLoading, spacing, disableContextMenuColumn, ...rest }: Props,\n ref\n) => {\n const visibleCells = React.Children.map(children as React.ReactElement[], (child, index) => {\n if (child) {\n const cellWithSpacing = React.cloneElement(child, {\n spacing: spacing,\n cellIndex: index,\n columnLength: headers?.length,\n disableContextMenuColumn\n });\n\n const visible = headers && headers.length > index ? !headers[index].hidden : true;\n return visible && cellWithSpacing;\n }\n return null;\n });\n\n const classNames = [classes[\"row\"]];\n className && classNames.push(className);\n isLoading && classNames.push(classes[\"loading\"]);\n\n return (\n <tr {...rest} ref={ref} className={classNames.join(\" \")}>\n {visibleCells}\n </tr>\n );\n};\n\nexport const DataGridRow = React.forwardRef(DataGridRowComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ComponentPropsWithRef, ReactElement, Ref } from \"react\";\nimport { HeaderCell } from \"../datagrid.interfaces\";\nimport { DataGridCell } from \"./DataGridCell\";\nimport { DataGridRow } from \"./DataGridRow\";\nimport classes from \"./DataGridBody.module.scss\";\nimport { Typography } from \"../../Typography/Typography\";\n\nexport interface Props<T> extends ComponentPropsWithRef<\"tbody\"> {\n children: ({ item, index }: { item: T; index: number }) => ReactElement;\n data?: T[];\n headers: HeaderCell[];\n isLoading?: boolean;\n disableContextMenuColumn?: boolean;\n emptyLabel?: string;\n spacing?: React.CSSProperties;\n}\n\nconst skeletonLoadingRows = 9;\n\nconst DataGridBodyInner = <T extends {}>(\n {\n children,\n data,\n headers,\n isLoading,\n disableContextMenuColumn,\n emptyLabel,\n spacing,\n ...rest\n }: Props<T>,\n ref: Ref<HTMLTableSectionElement>\n) => {\n const renderContent = () => {\n const visibleColumns = headers.filter(header => !header.hidden).length;\n if (isLoading) {\n return Array.from(Array(skeletonLoadingRows)).map((_, rowIdx) => (\n <DataGridRow key={rowIdx} isLoading>\n {Array.from(Array(visibleColumns)).map((__, colIdx) => (\n <DataGridCell key={colIdx} isLoading></DataGridCell>\n ))}\n {!disableContextMenuColumn && <DataGridCell></DataGridCell>}\n </DataGridRow>\n ));\n }\n\n const emptyData = !data || data.length === 0;\n if (emptyData) {\n return (\n <tr>\n <td\n className={classes[\"empty\"]}\n colSpan={visibleColumns + (disableContextMenuColumn ? 0 : 1)}\n >\n <Typography variant=\"body\" spacing={{ margin: 0 }}>\n {emptyLabel}\n </Typography>\n </td>\n </tr>\n );\n }\n\n return data?.map((item, index) => {\n return React.cloneElement(children({ item, index }), {\n headers,\n spacing,\n disableContextMenuColumn\n });\n });\n };\n\n return (\n <tbody {...rest} ref={ref}>\n {renderContent()}\n </tbody>\n );\n};\n\nexport const DataGridBody = React.forwardRef(DataGridBodyInner) as <T extends {}>(\n p: Props<T> & { ref?: Ref<HTMLTableSectionElement> }\n) => ReactElement;\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ComponentPropsWithRef, ReactElement, Ref, useEffect, useState } from \"react\";\nimport { Props as ButtonProps } from \"../Button/Button\";\nimport classes from \"./DataGrid.module.scss\";\nimport { DataGridHeader } from \"./DataGridHeader/DataGridHeader\";\nimport { DataGridActions } from \"./DataGridActions/DataGridActions\";\nimport { DataGridBody } from \"./DataGridBody/DataGridBody\";\nimport { ColumnName, HeaderCell, OnSortFunction, Sort } from \"./datagrid.interfaces\";\nimport { Pagination, Props as PaginationProps } from \"../Pagination/Pagination\";\nimport { Spacing, useSpacing } from \"../hooks/useSpacing\";\n\nexport interface Props<T> extends Omit<ComponentPropsWithRef<\"div\">, \"children\"> {\n children: ({ item, index }: { item: T; index: number }) => ReactElement;\n data?: T[];\n initialSort?: Sort;\n onSort?: OnSortFunction;\n headers: HeaderCell[];\n actions?: {\n enableAddBtn?: boolean;\n enableColumnsBtn?: boolean;\n enableSearchBtn?: boolean;\n addBtnProps?: ButtonProps;\n columnsBtnProps?: ButtonProps;\n searchBtnProps?: ButtonProps;\n searchIconBtnProps?: ButtonProps;\n };\n emptyLabel?: string;\n paginationProps?: PaginationProps;\n disableContextMenuColumn?: boolean;\n isLoading?: boolean;\n enableMultiSorting?: boolean;\n spacing?: Spacing;\n}\n\nconst DataGridInner = <T extends {}>(\n {\n children,\n data,\n initialSort,\n onSort,\n headers,\n actions = {},\n paginationProps,\n disableContextMenuColumn,\n isLoading,\n enableMultiSorting,\n emptyLabel,\n spacing,\n style,\n ...rest\n }: Props<T>,\n ref: Ref<HTMLDivElement>\n) => {\n if (!headers) {\n throw new Error(\"Headers definition has to be provided\");\n }\n if (!children) {\n throw new Error(\"DataGridBody should be provieded with a template how to render rows\");\n }\n\n const [internalHeaders, setInternalHeaders] = useState(headers);\n const styleWithSpacing = useSpacing(spacing, style);\n\n useEffect(() => setInternalHeaders(headers), [headers]);\n\n const onColumnToggled = (colName: ColumnName) => {\n setInternalHeaders(\n internalHeaders.map(item =>\n item.name !== colName ? item : { ...item, hidden: !item.hidden }\n )\n );\n };\n\n if (styleWithSpacing?.padding) {\n const splitPaddings = styleWithSpacing.padding.toString().split(\" \");\n\n let paddingLeftIndex: number = 0;\n\n if (splitPaddings.length >= 2) {\n paddingLeftIndex = 1;\n }\n if (splitPaddings.length === 4) {\n paddingLeftIndex = 3;\n }\n\n Object.defineProperties(styleWithSpacing, {\n paddingTop: {\n value: splitPaddings[0]\n },\n paddingRight: {\n value: splitPaddings[splitPaddings.length - 1 > 0 ? 1 : 0]\n },\n paddingBottom: {\n value: splitPaddings[splitPaddings.length / 3 >= 1 ? 2 : 0]\n },\n paddingLeft: {\n value: splitPaddings[paddingLeftIndex]\n }\n });\n }\n\n return (\n <div\n {...rest}\n className={classes[\"grid-wrapper\"]}\n ref={ref}\n style={{\n paddingTop: styleWithSpacing?.paddingTop,\n paddingBottom: styleWithSpacing?.paddingBottom\n }}\n >\n <DataGridActions\n {...actions}\n style={{\n paddingLeft: styleWithSpacing?.paddingLeft,\n paddingRight: styleWithSpacing?.paddingRight\n }}\n headers={internalHeaders}\n onColumnToggled={onColumnToggled}\n />\n <div className={classes[\"table-wrapper\"]}>\n <table className={classes[\"table\"]}>\n <DataGridHeader\n headers={internalHeaders}\n initialSort={initialSort}\n onSort={onSort}\n disableContextMenuColumn={disableContextMenuColumn}\n enableMultiSorting={enableMultiSorting}\n spacing={styleWithSpacing}\n />\n <DataGridBody\n data={data}\n headers={internalHeaders}\n isLoading={isLoading}\n disableContextMenuColumn={disableContextMenuColumn}\n emptyLabel={emptyLabel}\n spacing={styleWithSpacing}\n >\n {children}\n </DataGridBody>\n </table>\n </div>\n {paginationProps && !isLoading && (\n <Pagination\n {...paginationProps}\n style={{\n ...paginationProps.style,\n paddingLeft: styleWithSpacing?.paddingLeft,\n paddingRight: styleWithSpacing?.paddingRight\n }}\n className={`${classes[\"pagination\"]} ${paginationProps.className ?? \"\"}`}\n />\n )}\n </div>\n );\n};\n\nexport const DataGrid = React.forwardRef(DataGridInner) as <T extends {}>(\n p: Props<T> & { ref?: Ref<HTMLDivElement> }\n) => ReactElement;\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n AriaAttributes,\n AriaRole,\n ComponentPropsWithRef,\n ForwardRefRenderFunction\n} from \"react\";\nimport { Typography } from \"../../Typography/Typography\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport classes from \"./Banner.module.scss\";\n\nexport type BannerType = \"error\" | \"warning\" | \"info\";\nexport interface Props extends ComponentPropsWithRef<\"section\"> {\n children: string;\n ariaRole?: AriaRole;\n ariaLive?: AriaAttributes[\"aria-live\"];\n ariaLabel?: AriaAttributes[\"aria-label\"];\n type: BannerType;\n title: string;\n}\n\nconst BannerComponent: ForwardRefRenderFunction<HTMLElement, Props> = (\n { children, ariaLabel, ariaRole, ariaLive, type, title, ...rest }: Props,\n ref\n) => {\n const getIconVariant = (type: BannerType): Icons | null => {\n switch (type) {\n case \"info\":\n return Icons.InfoCircle;\n case \"error\":\n return Icons.Error;\n case \"warning\":\n return Icons.Warning;\n default:\n return null;\n }\n };\n\n const icon = getIconVariant(type);\n\n return (\n <section\n {...rest}\n ref={ref}\n aria-live={ariaLive}\n aria-label={ariaLabel}\n role={ariaRole}\n className={`${classes[\"banner\"]} ${classes[type]}`}\n >\n {icon && <Icon icon={icon} className={classes[\"icon\"]} />}\n <div className={classes[\"container\"]}>\n <Typography variant={\"h4\"} className={classes[\"headline\"]}>\n {title}\n </Typography>\n <Typography variant={\"body\"} className={classes[\"content\"]} tag={\"p\"}>\n {children}\n </Typography>\n </div>\n </section>\n );\n};\n\nexport const Banner = React.forwardRef(BannerComponent);\n"],"names":["BaseStyling","_ref","children","_ref$properties","properties","defaultProperties","colorPrimary300","colorPrimary500","colorPrimary600","colorPrimary700","colorPrimary900","colorBlueGrey25","colorBlueGrey100","colorBlueGrey200","colorBlueGrey400","colorBlueGrey500","colorBlueGrey700","colorBlueGrey900","colorGreen500","colorLightBlue500","colorLightBlue600","colorOrange500","colorRed500","colorFocus","colorPrimary","colorSecondary","colorTertiary","lightPink","vividViolet","defaultLineHeight","buttonBorderRadius","buttonBorderWidth","buttonFontSize","buttonBorderStyle","buttonFillTextColor","buttonFillHoverBackgroundColor","buttonOutlineHoverTextColor","inputBorderRadius","inputBorderWidth","inputBorderWidthFocus","inputBorderStyle","inputBackgroundColor","dragBackgroundColor","dragBorderStyle","modalShadowColor","modalBackgroundColor","modalHeaderBackgroundColor","skeletonBackgroundColor","skeletonAnimationColorRgb","snackbarTextColor","snackbarInfoBackgroundColor","snackbarSuccessBackgroundColor","snackbarErrorBackgroundColor","snackbarBorderRadius","bannerBorderRadius","bannerBorderWidth","dataGridRowBackgroundColor","dataGridRowHoverBackgroundColor","tabsBackgroundColor","tabActiveBorderHeight","tabActiveBorderColor","tablistBorderWidth","tablistBorderStyle","tablistBorderColor","tabTextColor","wizardStepIndicatorFutureColor","success","error","info","disabled","greyedOut","lightGreyBorder","warning","light","grey","fontFamily","fontFamilyCode","fontSize","fontSizeH1","fontSizeH2","fontSizeH3","fontSizeH4","fontSizeSub","fontSizeCode","_useState","useState","isLoading","setIsLoading","baseStylingWrapper","useRef","setCSSProperties","CSSPropertiesObject","_i","_Object$entries","Object","entries","length","_Object$entries$_i","key","value","formattedPropertyName","replace","val","toLowerCase","current","style","setProperty","useEffect","keys","mergedState","_extends","React","className","ref","Spinner","props","createElement","width","height","viewBox","fill","xmlns","d","BaseButtonComponent","_ref$type","type","loading","rest","_objectWithoutPropertiesLoose","_excluded","validTypes","isDisabled","includes","Error","classes","button","Fragment","BaseButton","forwardRef","ButtonComponent","_ref$variant","variant","_ref$color","color","_ref$startIcon","startIcon","_ref$endIcon","endIcon","additionalClasses","push","join","Button","Icons","IconComponent","icon","size","_ref$tag","tag","Component","Icon","defaultFactor","defaultUnit","spacingNumberRegex","useSpacing","spacingProps","reduce","prev","_extends2","spacing","multiplier","matches","String","matchAll","cssSpacingValue","Array","from","map","_ref2","multiplierValue","Number","validVariants","TypographyComponent","_ref$className","styleWithSpacing","TagName","Typography","BreadcrumbsComponent","ariaLabel","items","Children","child","index","isLastElement","isArray","cloneElement","ChevronRight","Breadcrumbs","useDebouncedCallback","callback","delay","dependencies","timeout","comboDeps","concat","useCallback","_len","arguments","args","_key","clearTimeout","setTimeout","apply","defaultConfigObject","relativeElement","undefined","elementToBePositioned","transformOrigin","horizontal","vertical","placement","offset","top","right","bottom","left","debounceAmount","usePosition","providedConfigObject","configObject","position","setPosition","_fixPossibleViewportOverflow","requestedReturnValue","elDimensions","returnValue","window","innerWidth","innerHeight","_applyOffsetToPlacementValue","_configObject$offset","_configObject$offset2","_configObject$offset7","_configObject$offset8","_configObject$offset3","_configObject$offset4","_configObject$offset5","_configObject$offset6","_configObject$offset9","_configObject$offset10","_configObject$offset11","_configObject$offset12","_calculateInitialPlacementValue","relEl","placementOriginDefinition","_determineCenteredPlacementOrigin","_calculatePlacementValue","valueWithOffset","valueCorrectionForViewportOverflow","_calculatePlacement","axis","_configObject$transfo","_configObject$transfo2","placementValue","direction","oppositeDirection","prevState","calculatePosition","_configObject$relativ","_configObject$element","relativeElRect","getBoundingClientRect","elementToBePositionedDimensions","offsetHeight","offsetWidth","clonedRelEl","center","centerv","centerh","x","y","PopoverComponent","show","anchorEl","onAnchorOutOfView","elToBePositioned","_usePosition","addEventListener","removeEventListener","isAnchorOffscreen","popover","Popover","useBodyClick","checkFunction","callbackFunction","dependingStateVariable","bodyClickListener","event","useGetDomRoot","passedDomRoot","document","body","root","setRoot","closestBaseStylingWrapper","closest","ContextMenuComponent","trigger","decorativeElement","id","_ref$show","onShow","onClose","_ref$placement","_ref$offset","_ref$transformOrigin","domRoot","popoverProps","wrappingDivRef","createRef","showContextMenu","setShowContextMenu","_useState2","hasBeenClosed","setHasBeenClosed","_useState3","selectedContextMenuItem","setSelectedContextMenuItem","_useState4","focusedContextMenuItem","setFocusedContextMenuItem","_useState5","shouldClick","setShouldClick","_useState6","count","childrenCount","_useGetDomRoot","onArrowNavigation","codesToPrevenDefault","code","preventDefault","target","parentElement","focus","renderTrigger","onClick","tabIndex","renderChildren","onFocusChange","childIndex","onSelectedChange","hasFocus","isSelected","contextMenuOpened","onOutOfViewHandler","onKeyDown","createPortal","role","ContextMenu","ContextMenuItemComponent","innerButtonRef","click","ContextMenuItem","LinkComponent","_ref$disabled","to","_ref$display","display","_ref$buttonVariant","buttonVariant","component","determineTarget","classNames","download","rel","href","Link","IconButtonComponent","_ref$iconSize","iconSize","title","console","iconButtonClasses","readyclasses","IconButton","Tab","_rest$className","tabActive","TabButtonComponent","focused","buttonRef","TabButton","TabsComponent","_ref$selected","selected","onTabChange","renderedButtons","setRenderedButtons","renderedTabs","setRenderedTabs","activeTabIndex","setActiveTabIndex","usingKeyboardNavigation","setUsingKeyboardNavigation","indicatorStyles","setIndicatorStyles","tabsRef","indicatorRef","handleKeyDown","e","totalAmountOfTabs","flat","currentIndex","calculateIndicatorPosition","selectedButton","querySelectorAll","offsetLeft","offsetTop","buttons","prototype","hasOwnProperty","call","tabs","Tabs","TextEllipsisComponent","popoverClassName","showPopover","setShowPopover","textContainer","ellipsisVisible","scrollWidth","onMouseEnter","onMouseLeave","TextEllipsis","generateID","stringToWeaveIn","hashCharacters","i","stringCharacter","test","Math","floor","random","slice","filterProps","regexPattern","returnFiltered","acc","filter","prevObj","currKeyValPair","debounce","fn","executedFunction","later","throttle","lastTime","now","Date","remToPx","rem","parseFloat","getComputedStyle","documentElement","TileComponent","imageProps","enabled","tileAction","tileDescriptionID","statusMessage","justifyContent","Checkmark","Forbidden","readyClasses","src","alt","Image","Tile","TilesComponent","_ref$loading","Tiles","defaultPosition","TooltipComponent","label","identifier","visible","setVisible","escapePressHandler","useLayoutEffect","isValidElement","onFocus","onBlur","wrapper","InfoCircle","tooltip","Tooltip","ProgressBarComponent","placeholderText","completed","round","marginBottom","ProgressBar","SkeletonComponent","Skeleton","StatusIndicatorComponent","_badgeProps$className","status","badgeProps","typographyProps","margin","StatusIndicator","useDetermineStatusIcon","params","errorRef","successRef","CheckmarkCircleBreakout","dateTypes","InputComponent","_ref$error","_ref$success","name","wrapperProps","labeledBy","prefix","suffix","setFocus","inputWrapperRef","suffixRef","inputClassNames","wrapperClasses","outlineClasses","spellCheck","Input","useArrowNavigation","expanded","setExpanded","isSearching","setIsSearching","setFocusedSelectItem","customSelectButtonRef","searchInputRef","renderSearchCondition","codesToPreventDefault","codesToPreventDefaultWhenSearching","useSelectPositionList","optionListReference","containerReference","optionsListMaxHeight","setOptionsListMaxHeight","opacity","setOpacity","listPosition","setListPosition","rePositionList","spaceOnTopOfSelect","spaceOnBottomOfSelect","calculateOptionListMaxHeight","_optionListReference$","listHeight","availableSpace","SelectComponent","placeholder","describedBy","_ref$searchPlaceholde","searchPlaceholder","searchInputProps","selectButtonProps","onChange","setFilter","setDisplay","focusedSelectItem","_useState7","nativeSelect","_useArrowNavigation","_useSelectPositionLis","syncDisplayValue","forEach","onOptionChangeHandler","optionRef","getAttribute","dispatchEvent","Event","bubbles","renderOptions","filteredChildren","toArray","match","_internalRenderChildren","internalChildren","onOptionSelect","selectOpened","renderSearch","_searchInputProps$wra","autoFocus","filterResults","currentTarget","nativeOnChangeHandler","select","TriangleDown","maxHeight","pointerEvents","Select","OptionComponent","_ref$isSelected","innerOptionRef","onSelectHandler","onKeyDownCapture","stopPropagation","Option","LabelComponent","_ref$hidden","hidden","Label","DefaultTranslations","PaginationComponent","totalElements","_ref$pageSize","pageSize","_ref$translate","translate","currentPage","onPageChange","onPageSizeChange","toString","internalCurrentPage","setInternalCurrentPage","calculateAmountOfPages","ceil","onEnterListener","renderCurrentPageTranslation","amountOfPages","splitCurrentPageTranslation","split","string","htmlFor","currentPageLabel","max","onKeyUp","onPageSizeChangeHandler","pageSizeNumber","onPageChangeHandler","pageToGoTo","totalItems","itemsPerPage","NavigationFirst","ChevronLeft","NavigationLast","Pagination","useRepeater","componentToRepeat","repeatedComponents","setRepeatedComponents","repeat","clonedComponent","remove","componentToRemove","newRepeatedComponents","labelId","descriptionId","SCROLL_PROPERTY_NAME","SCROLL_PROPERTY_VALUE","useSetBodyScroll","open","hideBodyScroll","showBodyScroll","allModalsClosed","removeProperty","BaseModalComponent","_backdropProps$classN","_containerProps$class","_containerProps$class2","containerProps","backdropProps","labelledby","describedby","_ref$disableEscapeKey","disableEscapeKeyDown","_ref$disableBackdrop","disableBackdrop","_ref$forceContainerOp","forceContainerOpen","zIndex","handleEscKeyPress","handleBackdropClick","BaseModal","SnackbarContext","createContext","enqueueSnackbar","enqueueSuccessSnackbar","enqueueErrorSnackbar","setSnackbarHeight","snackbars","SnackbarContextProvider","initialState","Provider","useSnackbar","ctx","useContext","BaseModalContentComponent","_ref$disableAutoFocus","disableAutoFocus","contentRef","_ref$current","_contentRef$current","BaseModalContent","BaseModalActionsComponent","BaseModalActions","DialogActionsComponent","align","DialogActions","DialogTitleComponent","DialogTitle","DialogComponent","alignActions","primaryAction","secondaryAction","dialogId","primaryLabel","restOfPrimaryAction","_excluded2","PrimaryButton","TertiaryButton","secondaryLabel","restOfSecondaryAction","_excluded3","onHiddenInputKeyPress","maxLength","onKeyPress","Dialog","BaseModalHeaderComponent","Times","BaseModalHeader","DiscardChangesDialogComponent","onKeepEditing","onDiscardChanges","discardChangesButtonLabel","keepEditingButtonLabel","contentLabel","titleLabel","DiscardChangesDialog","DiscardChangesModal","headerProps","discardChangedDialogProps","modalRef","dialogRef","hasUnsavedChanges","openDiscardChangesDialog","setOpenDiscardChangesDialog","onCloseWrapper","onDialogKeepEditing","onDialogDiscardChanges","Modal","ModalHeader","SlideInModalComponent","classHideOnTransition","setClassHideOnTransition","controlledOpen","setControlledOpen","containerRef","onTransitionEnd","SlideInModal","useSnackbarContainerHeightAnimation","_useContext","setHeight","setJustifyContent","spaceBetweenSnackbars","exceedsMaximumVisibleSnackbars","allHeights","snackbar","totalHeight","curr","min","SnackbarContainer","_useSnackbarContainer","useAnimation","animatedObjectRef","animationStarted","setAnimationStarted","onAnimationEnd","_animatedObjectRef$cu","_animatedObjectRef$cu2","startAnimation","textColor","useRegisterSnackbarHeight","singleSnackbarRef","snackbarId","SnackbarItem","duration","content","_ref$actions","actions","closeButtonTitle","timerHandler","_useAnimation","getVariantIcon","actionButtons","actionProp","SnackbarProvider","_temp","_ref$autoHideDuration","autoHideDuration","_ref$stackSize","stackSize","setSnackbars","addSnackbar","item","newSnackbarsState","getDuration","hasError","hasContentOrActions","options","_options","_options$variant","_options$duration","onItemClosed","snackbarList","snackbarPortal","useFormSelector","setDescribedBy","errorMessage","errorId","parentErrorId","helperText","parentHelperId","FormHelperTextComponent","FormHelperText","FormSelectorWrapperComponent","_helperProps$classNam","nestedChildren","helperProps","helperRef","FormSelectorWrapper","isToggle","_children$props","CheckboxComponent","indeterminate","_ref$checked","checked","formSelectorWrapperProps","_useFormSelector","determineLabel","renderNestedCheckboxes","Checkbox","onChangeHandler","renderToggle","iconClasses","MinusSquare","CheckmarkSquare","Square","RadioComponent","nativeEvent","clonedEvent","constructor","defineProperty","writable","Radio","Circle","TextareaComponent","_ref$rows","rows","Textarea","ToggleComponent","Toggle","FormControlComponent","grid","_ref$align","childElement","column","FormControl","FormGroupComponent","errorMessageIcon","_ref$errorMessageIcon","errorMessageIconPosition","helperId","helperIndent","marginLeft","message","FormGroup","WrapperComponent","_ref$floatingLabel","floatingLabel","floatingLabelActive","required","labelProps","innerClassName","labelClasses","Wrapper","useWrapper","setFloatingLabelActive","setHasFocus","useLabelOffset","input","labelOffset","setLabelOffset","resetLabelOffset","spacingBetweenPrefixAndInput","prefixDifference","paddingLeft","InputWrapperComponent","_inputProps$wrapperPr","_inputProps$wrapperPr2","_inputProps$className","inputProps","_useWrapper","hasValueOrActiveFloatingLabel","_useLabelOffset","inputWrapperClasses","_inputProps$placehold","InputWrapper","SelectWrapperComponent","_selectProps$classNam","selectProps","SelectWrapper","TextareaWrapperComponent","textareaProps","hover","setHover","_textareaProps$placeh","TextareaWrapper","FieldsetComponent","legend","_ref$legendStyle","legendStyle","_ref$hideLegend","hideLegend","noBackground","_ref$background","background","_ref$noPadding","noPadding","_ref$required","_ref$disablePropagati","disablePropagation","allowedComponents","_child$props$disabled","_child$props$error","backgroundColor","fieldset","Fieldset","FormComponent","form","Form","RadioWrapperComponent","fieldsetProps","RadioWrapper","CheckboxWrapperComponent","CheckboxWrapper","setWizardState","steps","mode","payload","changeCurrentStepNo","currentStepNo","reducer","state","action","WizardStateContext","dispatch","WizardStateProvider","_useReducer","useReducer","useSetWizardState","useStepChanging","onStepChange","_useContext2","WizardContent","Wizard","_props$initialStepNo","initialStepNo","calculateNextStepNo","findIndex","step","stepNo","calculatePrevStepNo","reversedCurrentStepNo","reversedPrevStepNo","reverse","useNextStepNo","useMemo","usePreviousStepNo","WizardActions","onCancel","onNext","onPrevious","onSaveAndClose","cancelButtonLabel","previousButtonLabel","nextButtonLabel","saveAndCloseButtonLabel","_useContext$state","nextStepNo","hasNextStep","previousStepNo","hasPreviousStep","isLastStepOrEditMode","changeStepNo","onNextWrapper","onPreviousWrapper","onSaveAndCloseWrapper","BaseWizardStepsComponent","_ref$futureStepsClick","futureStepsClickable","getStepState","getStepContent","stepState","stepNumberString","generatedSteps","disabledStyleClassName","clickableClassName","BaseWizardSteps","WizardStepsComponent","onStepClick","selectedStepNo","WizardSteps","ariaSortMapping","ASC","DESC","DataGridHeaderCellComponent","headline","disableSorting","activeSortDirection","onSort","onCellClick","sortingIndicator","getSortingIndicatorClasses","sortingIndicatorClasses","TriangleUp","innerContent","DataGridHeaderCell","sortingStates","DataGridHeaderComponent","initialSort","headers","disableContextMenuColumn","enableMultiSorting","sortList","setSortList","calculateNextSortState","currentDirectionIdx","updateSortList","find","restSortList","newSortDirection","wrapOnSort","newSort","headerCells","header","headerStyle","textAlign","paddingRight","sort","DataGridHeader","DataGridColumnsToggleComponent","_ref$titleLabel","_ref$closeButtonTitle","onToggleClicked","_ref$domRoot","labelledId","toggles","DataGridColumnsToggle","DataGridActionsComponent","_columnsBtnProps$clas","_columnsBtnProps$clas2","_searchBtnProps$class","_columnsBtnProps$clas3","enableAddBtn","enableColumnsBtn","enableSearchBtn","_ref$addBtnProps","addBtnProps","_ref$columnsBtnProps","columnsBtnProps","_ref$searchBtnProps","searchBtnProps","_ref$searchIconBtnPro","searchIconBtnProps","onColumnToggled","isHidden","showColsPopover","setShowColsPopover","showColumnBtn","addBtnChildren","restAddBtnProps","columnsBtnChildren","restColumnsBtnProps","searchBtnChildren","restSearchBtnProps","_excluded4","Plus","Change","TableSearch","DataGridActions","DataGridCellComponent","cellIndex","columnLength","cellStyle","DataGridCell","DataGridRowComponent","visibleCells","cellWithSpacing","DataGridRow","skeletonLoadingRows","DataGridBodyInner","data","emptyLabel","renderContent","visibleColumns","_","rowIdx","__","colIdx","emptyData","colSpan","DataGridBody","DataGridInner","_paginationProps$clas","paginationProps","internalHeaders","setInternalHeaders","colName","padding","splitPaddings","paddingLeftIndex","defineProperties","paddingTop","paddingBottom","DataGrid","BannerComponent","ariaRole","ariaLive","getIconVariant","Warning","Banner"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"react-lib-components.esm.js","sources":["../src/_BaseStyling_/BaseStyling.tsx","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../src/Button/Spinner.tsx","../src/Button/BaseButton.tsx","../src/Button/Button.tsx","../src/Icon/Icon.tsx","../src/hooks/useSpacing.ts","../src/Typography/Typography.tsx","../src/Breadcrumbs/Breadcrumbs.tsx","../src/hooks/useDebouncedCallback.tsx","../src/hooks/usePosition.ts","../src/Popover/Popover.tsx","../src/hooks/useBodyClick.ts","../src/hooks/useGetDomRoot.ts","../src/ContextMenu/ContextMenu.tsx","../src/ContextMenu/ContextMenuItem.tsx","../src/Link/Link.tsx","../src/Button/IconButton.tsx","../src/Tabs/Tab.tsx","../src/Tabs/TabButton.tsx","../src/Tabs/Tabs.tsx","../src/TextEllipsis/TextEllipsis.tsx","../src/util/helper.tsx","../src/Tiles/Tile.tsx","../src/Tiles/Tiles.tsx","../src/Tooltip/Tooltip.tsx","../src/ProgressBar/ProgressBar.tsx","../src/Skeleton/Skeleton.tsx","../src/StatusIndicator/StatusIndicator.tsx","../src/hooks/useDetermineStatusIcon.tsx","../src/Form/Input/Input.tsx","../src/Form/Select/SelectService.ts","../src/Form/Select/Select.tsx","../src/Form/Select/Option.tsx","../src/Form/Label/Label.tsx","../src/Pagination/Pagination.tsx","../src/hooks/useRepeater.ts","../src/Notifications/BaseModal/BaseModalContext.ts","../src/Notifications/BaseModal/BaseModal.tsx","../src/Notifications/Snackbar/SnackbarProvider/SnackbarStateProvider.tsx","../src/Notifications/Snackbar/useSnackbar.ts","../src/Notifications/BaseModal/BaseModalContent/BaseModalContent.tsx","../src/Notifications/BaseModal/BaseModalActions/BaseModalActions.tsx","../src/Notifications/Dialog/DialogActions/DialogActions.tsx","../src/Notifications/Dialog/DialogTitle/DialogTitle.tsx","../src/Notifications/Dialog/Dialog.tsx","../src/Notifications/BaseModal/BaseModalHeader/BaseModalHeader.tsx","../src/Notifications/DiscardChangesModal/DiscardChangesDialog/DiscardChangesDialog.tsx","../src/Notifications/DiscardChangesModal/DiscardChangesModal.tsx","../src/Notifications/SlideInModal/SlideInModal.tsx","../src/Notifications/Snackbar/SnackbarContainer/SnackbarContainer.tsx","../src/hooks/useAnimation.ts","../src/Notifications/Snackbar/SnackbarItem/SnackbarItem.tsx","../src/Notifications/Snackbar/SnackbarProvider/SnackbarProvider.tsx","../src/hooks/useFormSelector.ts","../src/Form/FormHelperText/FormHelperText.tsx","../src/Form/FormSelectorWrapper/FormSelectorWrapper.tsx","../src/Form/Checkbox/Checkbox.tsx","../src/Form/Radio/Radio.tsx","../src/Form/Textarea/Textarea.tsx","../src/Form/Toggle/Toggle.tsx","../src/Form/FormControl/FormControl.tsx","../src/Form/FormGroup/FormGroup.tsx","../src/Form/Wrapper/Wrapper/Wrapper.tsx","../src/hooks/useWrapper.ts","../src/Form/Wrapper/InputWrapper/InputWrapper.tsx","../src/Form/Wrapper/SelectWrapper/SelectWrapper.tsx","../src/Form/Wrapper/TextareaWrapper/TextareaWrapper.tsx","../src/Form/Fieldset/Fieldset.tsx","../src/Form/Form.tsx","../src/Form/Wrapper/RadioWrapper/RadioWrapper.tsx","../src/Form/Wrapper/CheckboxWrapper/CheckboxWrapper.tsx","../src/Wizard/wizardStateReducer.ts","../src/Wizard/WizardStateProvider.tsx","../src/Wizard/Wizard.tsx","../src/Wizard/WizardActions/WizardActions.tsx","../src/Wizard/BaseWizardSteps/BaseWizardSteps.tsx","../src/Wizard/WizardSteps/WizardSteps.tsx","../src/DataGrid/DataGridHeader/DataGridHeaderCell.tsx","../src/DataGrid/DataGridHeader/DataGridHeader.tsx","../src/DataGrid/DataGridActions/DataGridColumnsToggle.tsx","../src/DataGrid/DataGridActions/DataGridActions.tsx","../src/DataGrid/DataGridBody/DataGridCell.tsx","../src/DataGrid/DataGridBody/DataGridRow.tsx","../src/DataGrid/DataGridBody/DataGridBody.tsx","../src/DataGrid/DataGrid.tsx","../src/Notifications/Banner/Banner.tsx"],"sourcesContent":["/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/**\n * If you add more CSS variables, and they are a color, make sure to go into /.storybook/addon/src/components/PanelContent.tsx\n * and make sure to add it to the shouldBeColorPicker array!\n */\n\nimport React, { HTMLAttributes, ReactChild, useEffect, useRef, useState } from \"react\";\n\ninterface CSSProperties {\n colorFocus?: string;\n colorPrimary?: string;\n colorSecondary?: string;\n colorTertiary?: string;\n lightPink?: string;\n vividViolet?: string;\n colorPrimary300?: string;\n colorPrimary500?: string;\n colorPrimary600?: string;\n colorPrimary700?: string;\n colorPrimary900?: string;\n colorBlueGrey100?: string;\n colorBlueGrey200?: string;\n colorBlueGrey400?: string;\n colorBlueGrey25?: string;\n colorBlueGrey50?: string;\n colorBlueGrey500?: string;\n colorBlueGrey700?: string;\n colorBlueGrey900?: string;\n colorGreen500?: string;\n colorLightBlue500?: string;\n colorLightBlue600?: string;\n colorOrange500?: string;\n colorRed500?: string;\n defaultLineHeight?: string;\n buttonBorderRadius?: string;\n buttonBorderWidth?: string;\n buttonFontSize?: string;\n buttonBorderStyle?: string;\n buttonFillTextColor?: string;\n buttonFillHoverBackgroundColor?: string;\n buttonOutlineHoverTextColor?: string;\n inputBorderRadius?: string;\n inputBorderWidth?: string;\n inputBorderWidthFocus?: string;\n inputBorderStyle?: string;\n inputBackgroundColor?: string;\n dragBackgroundColor?: string;\n dragBorderStyle?: string;\n modalShadowColor?: string;\n modalBackgroundColor?: string;\n modalHeaderBackgroundColor?: string;\n skeletonBackgroundColor?: string;\n skeletonAnimationColorRgb?: string;\n snackbarTextColor?: string;\n snackbarInfoBackgroundColor?: string;\n snackbarSuccessBackgroundColor?: string;\n snackbarErrorBackgroundColor?: string;\n snackbarBorderRadius?: string;\n bannerBorderRadius?: string;\n bannerBorderWidth?: string;\n dataGridRowBackgroundColor?: string;\n dataGridRowHoverBackgroundColor?: string;\n tabsBackgroundColor?: string;\n tabActiveBorderHeight?: string;\n tabActiveBorderColor?: string;\n tablistBorderWidth?: string;\n tablistBorderStyle?: string;\n tablistBorderColor?: string;\n tabTextColor?: string;\n wizardStepIndicatorFutureColor?: string;\n default?: string;\n success?: string;\n error?: string;\n info?: string;\n disabled?: string;\n greyedOut?: string;\n lightGreyBorder?: string;\n warning?: string;\n light?: string;\n grey?: string;\n fontFamily?: string;\n fontFamilyCode?: string;\n fontSize?: string;\n fontSizeH1?: string;\n fontSizeH2?: string;\n fontSizeH3?: string;\n fontSizeH4?: string;\n fontSizeSub?: string;\n fontSizeCode?: string;\n}\n\nexport interface Props extends HTMLAttributes<HTMLDivElement> {\n children?: ReactChild;\n properties?: CSSProperties;\n}\n\nexport const BaseStyling = ({ children, properties = {} }: Props) => {\n const defaultProperties: CSSProperties = {\n colorPrimary300: \"#6871BF\",\n colorPrimary500: \"#041295\",\n colorPrimary600: \"#030F77\",\n colorPrimary700: \"#020B59\",\n colorPrimary900: \"#01041E\",\n colorBlueGrey25: \"#F7F7F9\",\n colorBlueGrey50: \"#EEEFF3\",\n colorBlueGrey100: \"#DEDEE6\",\n colorBlueGrey200: \"#BCBECE\",\n colorBlueGrey400: \"#797D9C\",\n colorBlueGrey500: \"#5D607E\",\n colorBlueGrey700: \"#383A4B\",\n colorBlueGrey900: \"#131319\",\n colorGreen500: \"#178244\",\n colorLightBlue500: \"#00BCDD\",\n colorLightBlue600: \"#0096B1\",\n colorOrange500: \"#E07900\",\n colorRed500: \"#E01E00\",\n colorFocus: \"var(--color-primary300)\",\n colorPrimary: \"var(--color-primary500)\",\n colorSecondary: \"var(--color-blue-grey700)\",\n colorTertiary: \"var(--color-light-blue600)\",\n lightPink: \"#9E006B1A\",\n vividViolet: \"#9E006B\",\n defaultLineHeight: \"1.5\",\n buttonBorderRadius: \"2px\",\n buttonBorderWidth: \"2px\",\n buttonFontSize: \"1rem\",\n buttonBorderStyle: \"solid\",\n buttonFillTextColor: \"var(--light)\",\n buttonFillHoverBackgroundColor: \"var(--light)\",\n buttonOutlineHoverTextColor: \"var(--light)\",\n inputBorderRadius: \"2px\",\n inputBorderWidth: \"1px\",\n inputBorderWidthFocus: \"2px\",\n inputBorderStyle: \"solid\",\n inputBackgroundColor: \"var(--light)\",\n dragBackgroundColor: \"#1313191A\",\n dragBorderStyle: \"dashed\",\n modalShadowColor: \"rgba(0, 0, 0, 0.16)\",\n modalBackgroundColor: \"var(--color-blue-grey25)\",\n modalHeaderBackgroundColor: \"var(--light)\",\n skeletonBackgroundColor: \"var(--disabled)\",\n skeletonAnimationColorRgb: \"255, 255, 255\",\n snackbarTextColor: \"var(--light)\",\n snackbarInfoBackgroundColor: \"var(--color-primary500)\",\n snackbarSuccessBackgroundColor: \"var(--color-green500)\",\n snackbarErrorBackgroundColor: \"var(--color-red500)\",\n snackbarBorderRadius: \"2px\",\n bannerBorderRadius: \"2px\",\n bannerBorderWidth: \"0 0 0 4px\",\n dataGridRowBackgroundColor: \"transparent\",\n dataGridRowHoverBackgroundColor: \"var(--color-blue-grey25)\",\n tabsBackgroundColor: \"var(--light)\",\n tabActiveBorderHeight: \"4px\",\n tabActiveBorderColor: \"var(--color-primary)\",\n tablistBorderWidth: \"1px\",\n tablistBorderStyle: \"solid\",\n tablistBorderColor: \"var(--color-blue-grey100)\",\n tabTextColor: \"var(--color-blue-grey900)\",\n wizardStepIndicatorFutureColor: \"var(--color-blue-grey200)\",\n default: \"var(--color-blue-grey900)\",\n success: \"var(--color-green500)\",\n error: \"var(--color-red500)\",\n info: \"var(--color-primary500)\",\n disabled: \"var(--color-blue-grey100)\",\n greyedOut: \"var(--color-blue-grey500)\",\n lightGreyBorder: \"var(--color-blue-grey100)\",\n warning: \"var(--color-orange500)\",\n light: \"#FFF\",\n grey: \"#c3c3c7\",\n fontFamily: \"Roboto, sans-serif\",\n fontFamilyCode: \"'Roboto Mono', monospace\",\n fontSize: \"1rem\",\n fontSizeH1: \"2.5rem\",\n fontSizeH2: \"1.625rem\",\n fontSizeH3: \"1.5rem\",\n fontSizeH4: \"1.25rem\",\n fontSizeSub: \".75rem\",\n fontSizeCode: \"1rem\"\n };\n\n /** We need a loading state, because otherwise you see the colors flash from the default to the possible overridden ones. */\n const [isLoading, setIsLoading] = useState(true);\n const baseStylingWrapper = useRef(null);\n\n const setCSSProperties = (CSSPropertiesObject: CSSProperties) => {\n for (const [key, value] of Object.entries(CSSPropertiesObject)) {\n const formattedPropertyName = key.replace(/([A-Z])/g, val => `-${val.toLowerCase()}`);\n (baseStylingWrapper.current! as HTMLElement).style.setProperty(\n `--${formattedPropertyName}`,\n value\n );\n }\n };\n\n useEffect(() => {\n if (Object.keys(properties).length !== 0 && baseStylingWrapper.current) {\n const mergedState = { ...defaultProperties, ...properties };\n setCSSProperties(mergedState);\n } else if (baseStylingWrapper.current) {\n setCSSProperties(defaultProperties);\n }\n setIsLoading(false);\n }, [properties, baseStylingWrapper.current]);\n\n return (\n <div className=\"basestyling-wrapper\" ref={baseStylingWrapper}>\n {!isLoading ? children : null}\n </div>\n );\n};\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\n\nexport const Spinner: React.FC<React.SVGProps<SVGSVGElement>> = props => (\n <svg\n {...props}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M24 12C24 13.8937 23.5518 15.7606 22.6921 17.4479C21.8323 19.1352 20.5855 20.5951 19.0534 21.7082C17.5214 22.8213 15.7476 23.556 13.8772 23.8523C12.0068 24.1485 10.0928 23.9979 8.2918 23.4127C6.49076 22.8275 4.85378 21.8243 3.51472 20.4853C2.17565 19.1462 1.17251 17.5092 0.587322 15.7082C0.00212849 13.9072 -0.148504 11.9932 0.14774 10.1228C0.443984 8.25238 1.17869 6.47863 2.2918 4.94658L3.91307 6.1245C2.98585 7.4007 2.37384 8.87823 2.12707 10.4363C1.8803 11.9943 2.00577 13.5887 2.49324 15.0889C2.9807 16.5892 3.81632 17.9528 4.93176 19.0682C6.0472 20.1837 7.4108 21.0193 8.91107 21.5068C10.4113 21.9942 12.0057 22.1197 13.5637 21.8729C15.1218 21.6262 16.5993 21.0141 17.8755 20.0869C19.1517 19.1597 20.1903 17.9436 20.9065 16.5381C21.6227 15.1326 21.996 13.5775 21.996 12H24Z\"\n fill=\"#5D607E\"\n />\n </svg>\n);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, Fragment } from \"react\";\nimport classes from \"./BaseButton.module.scss\";\nimport { Spinner } from \"./Spinner\";\n\nexport interface Props extends ComponentPropsWithRef<\"button\"> {\n type?: \"submit\" | \"button\" | \"reset\";\n disabled?: boolean;\n loading?: boolean;\n color?: \"primary\" | \"secondary\" | \"tertiary\" | \"default\";\n}\n\nconst BaseButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (\n { children, type = \"button\", className, loading, disabled, ...rest },\n ref\n) => {\n const validTypes = [\"submit\", \"button\", \"reset\"];\n const isDisabled = disabled || loading;\n if (!validTypes.includes(type))\n throw new Error(\n `You have entered an invalid button type. Expected 'submit', 'button' or 'reset' got ${type}`\n );\n\n return (\n <button\n {...rest}\n disabled={isDisabled}\n ref={ref}\n type={type}\n className={`${classes.button} ${loading ? classes.loading : \"\"} ${\n className ? className : \"\"\n }`}\n >\n {loading ? (\n <Fragment>\n <div className={classes[\"content-hidden\"]}>{children}</div>\n <Spinner className={classes[\"spinner\"]} />\n </Fragment>\n ) : (\n children\n )}\n </button>\n );\n};\n\nexport const BaseButton = React.forwardRef(BaseButtonComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction } from \"react\";\nimport { BaseButton, Props as BaseButtonProps } from \"./BaseButton\";\nimport classes from \"./Button.module.scss\";\n\nexport interface Props extends BaseButtonProps {\n startIcon?: React.ReactNode | false;\n endIcon?: React.ReactNode | false;\n variant?: \"text\" | \"fill\" | \"outline\";\n}\n\nconst ButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (\n {\n children,\n variant = \"fill\",\n color = \"primary\",\n startIcon = false,\n endIcon = false,\n className,\n ...rest\n },\n ref\n) => {\n const additionalClasses = [];\n\n if (startIcon || endIcon) {\n additionalClasses.push(classes[\"has-icon\"]);\n }\n\n if (startIcon) {\n additionalClasses.push(classes[\"start-icon\"]);\n }\n\n if (endIcon) {\n additionalClasses.push(classes[\"end-icon\"]);\n }\n\n if (className) {\n additionalClasses.push(className);\n }\n\n return (\n <BaseButton\n {...rest}\n ref={ref}\n className={`${classes[color]} ${classes[variant]} ${additionalClasses.join(\" \")}`}\n >\n {startIcon && <i>{startIcon}</i>}\n <span>{children}</span>\n {endIcon && <i> {endIcon}</i>}\n </BaseButton>\n );\n};\n\nexport const Button = React.forwardRef(ButtonComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport classes from \"./Icon.module.scss\";\n\nexport enum Icons {\n Bell = \"bell\",\n BellAlt = \"bell-alt\",\n Bookmark = \"bookmark\",\n BookmarkAlt = \"bookmark-alt\",\n Build = \"build\",\n Calendar = \"calendar\",\n Change = \"change\",\n Checkmark = \"checkmark\",\n CheckmarkCircle = \"checkmark-circle\",\n CheckmarkCircleAlt = \"checkmark-circle-alt\",\n CheckmarkCircleBreakout = \"checkmark-circle-breakout\",\n CheckmarkSquare = \"checkmark-square\",\n ChevronUp = \"chevron-up\",\n ChevronDown = \"chevron-down\",\n ChevronLeft = \"chevron-left\",\n ChevronRight = \"chevron-right\",\n Circle = \"circle\",\n Clock = \"clock\",\n Copy = \"copy\",\n Edit = \"edit\",\n Ellipsis = \"ellipsis\",\n EllipsisAlt = \"ellipsis-alt\",\n Equal = \"equal\",\n Error = \"error-circle\",\n Eye = \"eye\",\n Filter = \"filter\",\n FilterAlt = \"filter-alt\",\n FilterAltArrow = \"filter-alt-arrow\",\n FilterAltTimes = \"filter-alt-times\",\n Forbidden = \"forbidden\",\n Fullscreen = \"fullscreen\",\n FullscreenExit = \"fullscreen-exit\",\n Gearwheel = \"gearwheel\",\n Grid = \"grid\",\n Hamburger = \"hamburger\",\n Heart = \"heart\",\n Image = \"image\",\n InfoBell = \"info-bell\",\n InfoCircle = \"info-circle\",\n Link = \"link\",\n MinusSquare = \"minus-square\",\n NavigationFirst = \"navigation-first\",\n NavigationLast = \"navigation-last\",\n Plus = \"plus\",\n Radio = \"radio\",\n Refresh = \"refresh\",\n Search = \"search\",\n Share = \"share\",\n Square = \"square\",\n Star = \"star\",\n StarAlt = \"star-alt\",\n TableSearch = \"table-search\",\n Times = \"times\",\n TimesCircle = \"times-circle\",\n TimesCircleAlt = \"times-circle-alt\",\n TimesThin = \"times-thin\",\n Trash = \"trash\",\n TriangleDown = \"triangle-down\",\n TriangleDownCircle = \"triangle-down-circle\",\n TriangleLeft = \"triangle-left\",\n TriangleRight = \"triangle-right\",\n TriangleUp = \"triangle-up\",\n Undo = \"undo\",\n Warning = \"warning\",\n FileOutline = \"file-outline\",\n FileUpload = \"file-upload-outline\",\n FileDownload = \"file-download-outline\"\n}\n\ntype Tag = \"span\" | \"div\" | \"i\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n icon: Icons;\n color?: string;\n size?: string;\n tag?: Tag;\n}\n\nconst IconComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { icon, color, className, style, size, tag = \"span\", ...rest }: Props,\n ref\n) => {\n const Component = tag;\n\n return (\n <Component\n {...rest}\n ref={ref}\n style={{ color: color, ...style, fontSize: size }}\n data-icon\n aria-hidden=\"true\"\n className={`${classes[\"icon\"]} ${classes[\"icon-\" + icon]} ${className ? className : \"\"}`}\n />\n );\n};\n\nexport const Icon = React.forwardRef(IconComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { CSSProperties } from \"react\";\n\nexport type SpacingMultiplier = 0 | 0.5 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8;\ntype SpacingMultiplierStringOrNumber = `${SpacingMultiplier}` | SpacingMultiplier;\ntype MultiValueSpacingMultiplier =\n | `${SpacingMultiplier} ${SpacingMultiplier} ${SpacingMultiplier} ${SpacingMultiplier}`\n | `${SpacingMultiplier} ${SpacingMultiplier} ${SpacingMultiplier}`\n | `${SpacingMultiplier} ${SpacingMultiplier}`\n | SpacingMultiplierStringOrNumber;\n\nexport interface Spacing {\n padding?: MultiValueSpacingMultiplier;\n paddingTop?: SpacingMultiplierStringOrNumber;\n paddingBottom?: SpacingMultiplierStringOrNumber;\n paddingLeft?: SpacingMultiplierStringOrNumber;\n paddingRight?: SpacingMultiplierStringOrNumber;\n margin?: MultiValueSpacingMultiplier;\n marginTop?: SpacingMultiplierStringOrNumber;\n marginBottom?: SpacingMultiplierStringOrNumber;\n marginLeft?: SpacingMultiplierStringOrNumber;\n marginRight?: SpacingMultiplierStringOrNumber;\n}\n\nconst defaultFactor = 0.25;\nconst defaultUnit = \"rem\";\nconst spacingNumberRegex = /(\\d+\\.?\\d*)+/g;\n\nexport const useSpacing = (\n spacingProps?: Spacing,\n style?: CSSProperties\n): CSSProperties | undefined => {\n if (spacingProps) {\n return Object.entries(spacingProps).reduce<CSSProperties>((prev, [spacing, multiplier]) => {\n const matches = String(multiplier).matchAll(spacingNumberRegex);\n const cssSpacingValue = Array.from(matches)\n .map(([multiplierValue]) => `${Number(multiplierValue) * defaultFactor}${defaultUnit}`)\n .join(\" \");\n return { ...prev, [spacing]: cssSpacingValue };\n }, style ?? {});\n }\n return style;\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactNode } from \"react\";\nimport classes from \"./Typography.module.scss\";\nimport { Spacing, useSpacing } from \"../hooks/useSpacing\";\n\nexport const validVariants = [\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"body\",\n \"body-bold\",\n \"sub-text\",\n \"code\"\n] as const;\nexport type Variant = (typeof validVariants)[number];\n\ntype Tags =\n | \"h1\"\n | \"h2\"\n | \"h3\"\n | \"h4\"\n | \"p\"\n | \"div\"\n | \"code\"\n | \"span\"\n | \"sup\"\n | \"sub\"\n | \"strong\"\n | \"em\"\n | \"small\"\n | \"mark\"\n | \"del\"\n | \"ins\"\n | \"blockquote\";\n\nexport interface Props extends ComponentPropsWithRef<any> {\n children: ReactNode;\n variant: Variant;\n tag?: Tags;\n spacing?: Spacing;\n}\n\nconst TypographyComponent: ForwardRefRenderFunction<any, Props> = (\n { children, variant, tag, style, spacing, className = \"\", ...rest }: Props,\n ref\n) => {\n if (!validVariants.includes(variant)) {\n throw new Error(\n `You entered an invalid variant. You can choose from: ${validVariants}, you entered: ${variant}`\n );\n }\n\n const styleWithSpacing = useSpacing(spacing, style);\n\n if (!tag) {\n switch (variant) {\n case \"h1\":\n case \"h2\":\n case \"h3\":\n case \"h4\":\n case \"code\":\n tag = variant;\n break;\n case \"body\":\n tag = \"p\";\n break;\n case \"body-bold\":\n tag = \"p\";\n break;\n case \"sub-text\":\n tag = \"span\";\n break;\n default:\n tag = \"div\";\n break;\n }\n }\n\n let TagName = tag;\n\n return (\n <TagName\n {...rest}\n ref={ref}\n style={styleWithSpacing}\n className={`${classes[\"typography_style_\" + variant]} ${className}`}\n >\n {children}\n </TagName>\n );\n};\n\nexport const Typography = React.forwardRef(TypographyComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithRef,\n ForwardRefRenderFunction,\n Fragment,\n ReactElement\n} from \"react\";\nimport { Icon, Icons } from \"../Icon/Icon\";\nimport { Link, Props as LinkProps } from \"../Link/Link\";\nimport { Typography } from \"../Typography/Typography\";\nimport classes from \"./Breadcrumbs.module.scss\";\n\ntype ChildrenType = ReactElement<LinkProps, typeof Link>;\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children: ChildrenType | ChildrenType[];\n ariaLabel: string;\n}\n\nconst BreadcrumbsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, ariaLabel, className = \"\", ...rest }: Props,\n ref\n) => {\n const items = React.Children.map(children, (child, index) => {\n const isLastElement = Array.isArray(children) ? index === children.length - 1 : true;\n if (isLastElement) {\n return (\n <Typography\n key={child.key}\n variant=\"body\"\n tag=\"span\"\n className={classes[\"last\"]}\n aria-current=\"page\"\n >\n {child.props.children}\n </Typography>\n );\n } else {\n return (\n <Fragment key={child.key}>\n {React.cloneElement(child)}\n <Icon icon={Icons.ChevronRight} className={classes[\"icon\"]} />\n </Fragment>\n );\n }\n });\n return (\n <nav\n {...rest}\n ref={ref}\n aria-label={ariaLabel}\n className={`${classes[\"breadcrumbs\"]} ${className}`}\n >\n {items}\n </nav>\n );\n};\n\nexport const Breadcrumbs = React.forwardRef(BreadcrumbsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React from \"react\";\n\nexport const useDebouncedCallback = (callback: Function, delay: number, dependencies?: any[]) => {\n const timeout = React.useRef<ReturnType<typeof setTimeout>>();\n const comboDeps = dependencies ? [callback, delay, ...dependencies] : [callback, delay];\n\n return React.useCallback((...args) => {\n if (timeout.current != null) {\n clearTimeout(timeout.current);\n }\n\n timeout.current = setTimeout(() => {\n callback(...args);\n }, delay);\n }, comboDeps);\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useState } from \"react\";\nimport { useDebouncedCallback } from \"./useDebouncedCallback\";\n\nexport interface ConfigObject {\n relativeElement: RefElement;\n elementToBePositioned: RefElement;\n transformOrigin?: Placement;\n placement?: Placement;\n offset?: Offset;\n debounceAmount?: number;\n}\n\nexport type HorizontalPlacement = \"left\" | \"center\" | \"centerh\" | \"right\";\nexport type VerticalPlacement = \"top\" | \"center\" | \"centerv\" | \"bottom\";\n\ntype Axis = \"vertical\" | \"horizontal\";\ntype RefElement = React.RefObject<HTMLOrSVGElement> | undefined;\n\ninterface DomRectObject {\n top: number;\n right: number;\n bottom: number;\n left: number;\n center: number;\n centerh: number;\n centerv: number;\n width: number;\n height: number;\n x: number;\n y: number;\n}\n\nexport interface Placement {\n horizontal: HorizontalPlacement;\n vertical: VerticalPlacement;\n}\n\nexport interface Offset {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\nexport interface Position {\n top: PositionType;\n right: PositionType;\n bottom: PositionType;\n left: PositionType;\n}\n\ninterface Dimensions {\n height: number;\n width: number;\n}\n\ntype PositionType = number | \"initial\";\n\nconst defaultConfigObject: ConfigObject = {\n relativeElement: undefined,\n elementToBePositioned: undefined,\n transformOrigin: {\n horizontal: \"left\",\n vertical: \"top\"\n },\n placement: {\n horizontal: \"left\",\n vertical: \"top\"\n },\n offset: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n },\n debounceAmount: 20\n};\n\n/* eslint-disable @typescript-eslint/no-non-null-assertion, @typescript-eslint/no-non-null-asserted-optional-chain*/\nexport const usePosition = (providedConfigObject: ConfigObject = defaultConfigObject) => {\n const configObject = { ...defaultConfigObject, ...providedConfigObject };\n\n if (configObject.transformOrigin === undefined) {\n configObject.transformOrigin = defaultConfigObject.transformOrigin;\n }\n\n if (configObject.placement === undefined) {\n configObject.placement = defaultConfigObject.placement;\n }\n\n if (configObject.offset === undefined) {\n configObject.offset = defaultConfigObject.offset;\n }\n\n const [position, setPosition] = useState<Position>({\n left: 0,\n top: 0,\n right: \"initial\",\n bottom: \"initial\"\n });\n\n const _fixPossibleViewportOverflow = (\n value: number,\n transformOrigin: Placement,\n requestedReturnValue: Axis,\n elDimensions: Dimensions\n ) => {\n let returnValue = value;\n\n if (\n (transformOrigin[requestedReturnValue] === \"left\" && returnValue < 0) ||\n (transformOrigin[requestedReturnValue] === \"top\" && returnValue < 0) ||\n (transformOrigin[requestedReturnValue] === \"center\" && returnValue < 0) ||\n (transformOrigin[requestedReturnValue] === \"bottom\" && returnValue < 0)\n ) {\n returnValue = 0;\n }\n\n if (\n (transformOrigin[requestedReturnValue] === \"left\" &&\n returnValue > window.innerWidth - elDimensions.width) ||\n (transformOrigin[requestedReturnValue] === \"center\" &&\n requestedReturnValue === \"horizontal\" &&\n returnValue > window.innerWidth - elDimensions.width)\n ) {\n returnValue = window.innerWidth - elDimensions.width;\n }\n\n if (\n (transformOrigin[requestedReturnValue] === \"top\" &&\n returnValue > window.innerHeight - elDimensions.height) ||\n (transformOrigin[requestedReturnValue] === \"center\" &&\n requestedReturnValue === \"vertical\" &&\n returnValue > window.innerHeight - elDimensions.height)\n ) {\n returnValue = window.innerHeight - elDimensions.height;\n }\n\n if (\n transformOrigin[requestedReturnValue] === \"right\" &&\n returnValue > window.innerWidth - elDimensions.width\n ) {\n returnValue = window.innerWidth - elDimensions.width;\n }\n\n if (\n transformOrigin[requestedReturnValue] === \"bottom\" &&\n returnValue > window.innerHeight - elDimensions.height\n ) {\n returnValue = window.innerHeight - elDimensions.height;\n }\n\n return returnValue;\n };\n\n const _applyOffsetToPlacementValue = (\n value: number,\n requestedReturnValue: Axis,\n transformOrigin: Placement\n ) => {\n let returnValue = value;\n if (\n (requestedReturnValue === \"horizontal\" && configObject.offset?.left !== 0) ||\n (requestedReturnValue === \"horizontal\" && configObject.offset?.right !== 0)\n ) {\n if (\n transformOrigin[requestedReturnValue] === \"left\" ||\n transformOrigin[requestedReturnValue] === \"center\"\n ) {\n returnValue += configObject.offset?.left!;\n returnValue -= configObject.offset?.right!;\n }\n\n if (transformOrigin[requestedReturnValue] === \"right\") {\n returnValue -= configObject.offset?.left!;\n returnValue += configObject.offset?.right!;\n }\n }\n\n if (\n (requestedReturnValue === \"vertical\" && configObject.offset?.top !== 0) ||\n (requestedReturnValue === \"vertical\" && configObject.offset?.bottom !== 0)\n ) {\n if (\n transformOrigin[requestedReturnValue] === \"top\" ||\n transformOrigin[requestedReturnValue] === \"center\"\n ) {\n returnValue += configObject.offset?.top!;\n returnValue -= configObject.offset?.bottom!;\n }\n\n if (transformOrigin[requestedReturnValue] === \"bottom\") {\n returnValue -= configObject.offset?.top!;\n returnValue += configObject.offset?.bottom!;\n }\n }\n\n return returnValue;\n };\n\n const _calculateInitialPlacementValue = (\n transformOrigin: Placement,\n requestedReturnValue: Axis,\n relEl: DomRectObject,\n placementOriginDefinition: HorizontalPlacement | VerticalPlacement,\n elDimensions: Dimensions\n ) => {\n let value = 0;\n\n if (\n transformOrigin[requestedReturnValue] === \"left\" ||\n transformOrigin[requestedReturnValue] === \"top\"\n ) {\n value = relEl[placementOriginDefinition];\n } else if (transformOrigin[requestedReturnValue] === \"center\") {\n value =\n relEl[placementOriginDefinition] -\n elDimensions[requestedReturnValue === \"horizontal\" ? \"width\" : \"height\"] / 2;\n } else if (\n transformOrigin[requestedReturnValue] === \"right\" ||\n transformOrigin[requestedReturnValue] === \"bottom\"\n ) {\n value =\n window[requestedReturnValue === \"horizontal\" ? \"innerWidth\" : \"innerHeight\"] -\n relEl[placementOriginDefinition];\n }\n\n return value;\n };\n\n /**\n *\n * @param requestedReturnValue whether the requested return value is for the horizontal or vertical axis\n * @returns either the horizontally centered placement definition (centerh) or the vertically centered one (centerv)\n */\n const _determineCenteredPlacementOrigin = (requestedReturnValue: Axis) => {\n if (requestedReturnValue === \"horizontal\") {\n return \"centerh\";\n } else if (requestedReturnValue === \"vertical\") {\n return \"centerv\";\n }\n throw new Error(\n `the requested return value isn't \"vertical\" or \"horizontal\" ${requestedReturnValue} was given.`\n );\n };\n\n const _calculatePlacementValue = (\n transformOrigin: Placement,\n placement: HorizontalPlacement | VerticalPlacement,\n requestedReturnValue: Axis,\n relEl: DomRectObject,\n elDimensions: Dimensions\n ): number => {\n const placementOriginDefinition =\n placement === \"center\" ? _determineCenteredPlacementOrigin(requestedReturnValue) : placement;\n\n const value = _calculateInitialPlacementValue(\n transformOrigin,\n requestedReturnValue,\n relEl,\n placementOriginDefinition,\n elDimensions\n );\n\n const valueWithOffset = _applyOffsetToPlacementValue(\n value,\n requestedReturnValue,\n transformOrigin\n );\n\n const valueCorrectionForViewportOverflow = _fixPossibleViewportOverflow(\n valueWithOffset,\n transformOrigin,\n requestedReturnValue,\n elDimensions\n );\n\n return valueCorrectionForViewportOverflow;\n };\n\n const _calculatePlacement = (relEl: DomRectObject, elDimensions: Dimensions, axis: Axis) => {\n const placementValue = _calculatePlacementValue(\n configObject.transformOrigin!,\n configObject.placement![axis]!,\n axis,\n relEl,\n elDimensions\n );\n\n let direction = \"left\";\n let oppositeDirection = \"right\";\n\n if (axis === \"horizontal\" && configObject.transformOrigin?.horizontal === \"right\") {\n direction = \"right\";\n oppositeDirection = \"left\";\n } else if (axis === \"horizontal\") {\n direction = \"left\";\n oppositeDirection = \"right\";\n }\n\n if (axis === \"vertical\" && configObject.transformOrigin?.vertical === \"bottom\") {\n direction = \"bottom\";\n oppositeDirection = \"top\";\n } else if (axis === \"vertical\") {\n direction = \"top\";\n oppositeDirection = \"bottom\";\n }\n\n setPosition(prevState => ({\n ...prevState,\n [direction]: placementValue,\n [oppositeDirection]: \"initial\"\n }));\n };\n\n const calculatePosition = useDebouncedCallback(() => {\n if (!configObject.relativeElement?.current || !configObject.elementToBePositioned?.current)\n return;\n const relativeElRect = (configObject.relativeElement!\n .current as HTMLElement)!.getBoundingClientRect();\n const elementToBePositionedDimensions: Dimensions = {\n height: (configObject.elementToBePositioned!.current as HTMLElement).offsetHeight,\n width: (configObject.elementToBePositioned!.current as HTMLElement).offsetWidth\n };\n\n /** We want to add a center (horizontal and vertical) property to the DOMRect object. Since it's a special object we can't modify so we clone it and add it. */\n const clonedRelEl = {\n top: relativeElRect.top,\n right: relativeElRect.right,\n bottom: relativeElRect.bottom,\n center: 0,\n centerv: relativeElRect.top + relativeElRect.height / 2,\n centerh: relativeElRect.left + relativeElRect.width / 2,\n left: relativeElRect.left,\n width: relativeElRect.width,\n height: relativeElRect.height,\n x: relativeElRect.x,\n y: relativeElRect.y\n };\n\n _calculatePlacement(clonedRelEl, elementToBePositionedDimensions, \"horizontal\");\n _calculatePlacement(clonedRelEl, elementToBePositionedDimensions, \"vertical\");\n }, configObject.debounceAmount || 20);\n\n return {\n top: position.top,\n bottom: position.bottom,\n left: position.left,\n right: position.right,\n calculatePosition\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ReactNode,\n RefObject,\n useEffect,\n useRef\n} from \"react\";\nimport { Offset, Placement, usePosition } from \"../hooks/usePosition\";\nimport classes from \"./Popover.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children?: ReactNode;\n show?: boolean;\n anchorEl?: RefObject<HTMLOrSVGElement>; //eslint-disable-line no-undef\n placement?: Placement;\n offset?: Offset;\n debounceAmount?: number;\n transformOrigin?: Placement;\n onAnchorOutOfView?: () => void;\n}\n\nconst PopoverComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n className,\n show,\n placement,\n offset,\n debounceAmount,\n transformOrigin,\n anchorEl,\n onAnchorOutOfView,\n ...rest\n },\n ref\n) => {\n const elToBePositioned = useRef<HTMLDivElement>(null);\n\n const { top, left, right, bottom, calculatePosition } = usePosition({\n elementToBePositioned: elToBePositioned,\n relativeElement: anchorEl,\n offset: offset,\n placement: placement,\n transformOrigin: transformOrigin,\n debounceAmount: debounceAmount || undefined\n });\n\n useEffect(() => {\n if (!show) {\n return;\n }\n\n window.addEventListener(\"resize\", calculatePosition);\n window.addEventListener(\"scroll\", calculatePosition);\n\n return () => {\n window.removeEventListener(\"resize\", calculatePosition);\n window.removeEventListener(\"scroll\", calculatePosition);\n };\n }, [show]);\n\n useEffect(() => {\n calculatePosition();\n }, [show]);\n\n useEffect(() => {\n const isAnchorOffscreen =\n show &&\n (top === 0 ||\n left === 0 ||\n right === 0 ||\n bottom === 0 ||\n window.innerHeight - (elToBePositioned.current as HTMLElement).offsetHeight === top);\n\n if (isAnchorOffscreen) {\n onAnchorOutOfView && onAnchorOutOfView();\n }\n }, [top, left, right, bottom]);\n\n return (\n <div ref={ref} {...rest}>\n <div\n ref={elToBePositioned}\n className={`${classes.popover} ${className ?? \"\"} ${show ? classes.show : \"\"}`}\n style={{ top: top, left: left, right: right, bottom: bottom }}\n >\n {children}\n </div>\n </div>\n );\n};\n\nexport const Popover = React.forwardRef(PopoverComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect } from \"react\";\n\nexport const useBodyClick = (\n checkFunction: (event: MouseEvent) => boolean,\n callbackFunction: (...args: unknown[]) => unknown,\n dependingStateVariable: React.ComponentState | React.ComponentState[]\n) => {\n function bodyClickListener(event: MouseEvent) {\n if (checkFunction(event)) {\n callbackFunction();\n }\n }\n useEffect(() => {\n window.addEventListener(\"click\", bodyClickListener);\n\n return () => {\n window.removeEventListener(\"click\", bodyClickListener);\n };\n }, [dependingStateVariable]);\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useState } from \"react\";\n\nexport const useGetDomRoot = (\n passedDomRoot: HTMLElement | undefined,\n relativeElement: React.RefObject<HTMLDivElement> | null\n) => {\n const [root, setRoot] = useState<HTMLElement>(document.body);\n\n useEffect(() => {\n if (relativeElement && relativeElement.current && !passedDomRoot) {\n const closestBaseStylingWrapper = relativeElement.current.closest(\".basestyling-wrapper\");\n\n if (closestBaseStylingWrapper) {\n setRoot(closestBaseStylingWrapper as HTMLElement);\n return;\n }\n } else if (passedDomRoot) {\n setRoot(passedDomRoot);\n return;\n }\n }, [relativeElement]);\n\n return { root };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithRef,\n createRef,\n ForwardRefRenderFunction,\n ReactElement,\n ReactNode,\n RefObject,\n useCallback,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { Props as ButtonProps } from \"../Button/Button\";\nimport { Props as IconButtonProps } from \"../Button/IconButton\";\nimport { Popover, Props as PopoverProps } from \"../Popover/Popover\";\nimport { Placement, Offset } from \"../hooks/usePosition\";\nimport classes from \"./ContextMenu.module.scss\";\nimport { useBodyClick } from \"../hooks/useBodyClick\";\nimport { createPortal } from \"react-dom\";\nimport { useGetDomRoot } from \"../hooks/useGetDomRoot\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n trigger: ReactElement<ButtonProps> | ReactElement<IconButtonProps>;\n decorativeElement?: ReactNode;\n children: ReactNode;\n placement?: Placement;\n transformOrigin?: Placement;\n offset?: Offset;\n debounceAmount?: number;\n id: string;\n show?: boolean;\n domRoot?: HTMLElement;\n onShow?: () => void;\n onClose?: () => void;\n popoverProps?: PopoverProps;\n}\n\nconst ContextMenuComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n trigger,\n children,\n decorativeElement,\n id,\n show = false,\n onShow,\n onClose,\n placement = { horizontal: \"right\", vertical: \"top\" },\n offset = { top: 0, bottom: 0, left: 0, right: 0 },\n transformOrigin = { horizontal: \"left\", vertical: \"top\" },\n debounceAmount,\n domRoot,\n popoverProps,\n ...rest\n }: Props,\n ref\n) => {\n const anchorEl = useRef<HTMLButtonElement>(null);\n const wrappingDivRef = (ref as RefObject<HTMLDivElement>) || createRef<HTMLDivElement>();\n const [showContextMenu, setShowContextMenu] = useState(show);\n const [hasBeenClosed, setHasBeenClosed] = useState(false);\n const [selectedContextMenuItem, setSelectedContextMenuItem] = useState(-1);\n const [focusedContextMenuItem, setFocusedContextMenuItem] = useState(-1);\n const [shouldClick, setShouldClick] =\n useState(\n false\n ); /** We need this, because whenever we use the arrow keys to select the contextmenu item, and we focus the currently selected item it fires the \"click\" listener in ContextMenuItem component. Instead, we only want this to fire if we press \"enter\" or \"spacebar\" so we set this to true whenever that is the case, and back to false when it has been executed. */\n const [childrenCount] = useState(React.Children.count(children));\n\n const { root } = useGetDomRoot(domRoot, wrappingDivRef);\n\n if (!id) {\n throw new Error(\"You need to provide an ID to the context menu\");\n }\n\n const onArrowNavigation = (event: React.KeyboardEvent) => {\n if (focusedContextMenuItem === -1 && selectedContextMenuItem !== -1) {\n setFocusedContextMenuItem(selectedContextMenuItem);\n }\n\n const codesToPrevenDefault = [\n \"ArrowDown\",\n \"ArrowUp\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Enter\",\n \"Space\",\n \"Escape\",\n \"End\",\n \"Home\"\n ];\n\n if (codesToPrevenDefault.includes(event.code)) {\n event.preventDefault();\n }\n\n switch (event.code) {\n case \"ArrowDown\":\n if (!showContextMenu) {\n setShowContextMenu(true);\n return;\n }\n setFocusedContextMenuItem(prevState => {\n return prevState + 1 > childrenCount - 1 ? 0 : prevState + 1;\n });\n return;\n case \"ArrowUp\":\n setFocusedContextMenuItem(prevState => {\n return prevState - 1 < 0 ? childrenCount - 1 : prevState - 1;\n });\n return;\n case \"Enter\":\n case \"Space\":\n if (!showContextMenu) {\n setShowContextMenu(true);\n return;\n }\n\n setShouldClick(true);\n setSelectedContextMenuItem(focusedContextMenuItem);\n setShowContextMenu(false);\n return;\n case \"Tab\":\n case \"Escape\":\n setShowContextMenu(false);\n return;\n case \"End\":\n setFocusedContextMenuItem(childrenCount - 1);\n return;\n case \"Home\":\n setFocusedContextMenuItem(0);\n return;\n }\n };\n\n useBodyClick(\n event => {\n return (\n showContextMenu &&\n anchorEl.current !== event.target &&\n anchorEl.current !== (event.target as HTMLElement).parentElement\n );\n },\n () => {\n setShowContextMenu(false);\n },\n showContextMenu\n );\n\n useEffect(() => {\n if (showContextMenu === true) {\n onShow && onShow();\n } else {\n onClose && onClose();\n !hasBeenClosed && setHasBeenClosed(true);\n setFocusedContextMenuItem(-1);\n hasBeenClosed && anchorEl.current && anchorEl.current.focus();\n }\n }, [showContextMenu]);\n\n const renderTrigger = () =>\n React.cloneElement(trigger, {\n id: id,\n \"aria-haspopup\": \"true\",\n \"aria-controls\": `${id}-menu`,\n \"aria-expanded\": showContextMenu,\n onClick: () => setShowContextMenu(!showContextMenu),\n tabIndex: 0,\n ref: anchorEl\n });\n\n const renderChildren = () =>\n React.Children.map(children, (child, index) =>\n React.cloneElement(child as ReactElement, {\n onFocusChange: (childIndex: number) => setFocusedContextMenuItem(childIndex),\n onSelectedChange: (childIndex: number) => {\n setSelectedContextMenuItem(childIndex);\n setShouldClick(false);\n },\n childIndex: index,\n hasFocus: focusedContextMenuItem === index,\n isSelected: selectedContextMenuItem === index,\n contextMenuOpened: showContextMenu,\n shouldClick: shouldClick\n })\n );\n\n const onOutOfViewHandler = useCallback(() => {\n setShowContextMenu(false);\n }, []);\n\n if (!root) {\n return null;\n }\n\n return (\n <div\n {...rest}\n ref={wrappingDivRef}\n onKeyDown={onArrowNavigation}\n className={classes[\"context-menu\"]}\n >\n {renderTrigger()}\n {createPortal(\n <Popover\n {...popoverProps}\n placement={placement}\n transformOrigin={transformOrigin}\n offset={offset}\n anchorEl={anchorEl}\n debounceAmount={debounceAmount}\n show={showContextMenu}\n onAnchorOutOfView={onOutOfViewHandler}\n >\n {decorativeElement && (\n <div className={classes[\"decorative-element\"]}>{decorativeElement}</div>\n )}\n <ul\n className={`${classes[\"menu\"]} ${decorativeElement ? classes[\"no-margin-top\"] : \"\"}`}\n id={`${id}-menu`}\n aria-describedby={id}\n role=\"menu\"\n >\n {renderChildren()}\n </ul>\n </Popover>,\n root\n )}\n </div>\n );\n};\n\nexport const ContextMenu = React.forwardRef(ContextMenuComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithRef,\n createRef,\n ForwardRefRenderFunction,\n RefObject,\n useEffect\n} from \"react\";\nimport classes from \"./ContextMenuItem.module.scss\";\n\nexport interface Props extends Omit<ComponentPropsWithRef<\"button\">, \"onClick\"> {\n children?: string;\n hasFocus?: boolean;\n isSelected?: boolean;\n childIndex?: number;\n shouldClick?: boolean;\n contextMenuOpened?: boolean;\n onClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onFocusChange?: (childIndex: number) => void;\n onSelectedChange?: (childIndex: number) => void;\n}\n\nconst ContextMenuItemComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (\n {\n children,\n onClick,\n onFocusChange,\n onSelectedChange,\n hasFocus,\n isSelected,\n childIndex,\n contextMenuOpened,\n shouldClick,\n className,\n ...rest\n }: Props,\n ref\n) => {\n let innerButtonRef = (ref as RefObject<HTMLButtonElement>) || createRef<HTMLButtonElement>();\n\n useEffect(() => {\n if (isSelected && innerButtonRef.current && shouldClick) {\n innerButtonRef.current.click();\n }\n }, [isSelected, shouldClick]);\n\n useEffect(() => {\n if (innerButtonRef.current && hasFocus && contextMenuOpened) {\n onFocusChange && childIndex && onFocusChange(childIndex);\n innerButtonRef.current.focus();\n }\n }, [hasFocus, innerButtonRef, contextMenuOpened]);\n\n return (\n <li role=\"none\" className={`${classes[\"context-menu-item\"]} ${className ?? \"\"}`}>\n <button\n role=\"menuitem\"\n {...rest}\n ref={innerButtonRef}\n data-focus={hasFocus}\n tabIndex={-1}\n onClick={event => {\n onClick && onClick(event);\n onSelectedChange && childIndex && onSelectedChange(childIndex);\n }}\n >\n {children}\n </button>\n </li>\n );\n};\n\nexport const ContextMenuItem = React.forwardRef(ContextMenuItemComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ForwardRefExoticComponent\n} from \"react\";\nimport classes from \"./Link.module.scss\";\n\nexport type AnchorType = \"external\" | \"internal\" | \"download\";\n\nexport interface Props extends ComponentPropsWithRef<\"a\"> {\n color?: \"primary\" | \"secondary\" | \"tertiary\";\n display?: \"link\" | \"button\";\n buttonVariant?: \"outline\" | \"text\" | \"fill\";\n type?: AnchorType;\n to: string;\n disabled?: boolean;\n component?: ForwardRefExoticComponent<any>;\n}\n\nconst LinkComponent: ForwardRefRenderFunction<HTMLAnchorElement, Props> = (\n {\n children,\n className,\n disabled = false,\n to,\n color = \"primary\",\n type = \"internal\",\n display = \"link\",\n buttonVariant = \"fill\",\n component,\n ...rest\n }: Props,\n ref\n) => {\n const determineTarget = () => {\n if (rest.target) {\n return rest.target;\n }\n\n if (type === \"external\") {\n return \"_blank\";\n }\n\n return \"\";\n };\n\n const classNames = [classes[color]];\n display === \"link\" && classNames.push(classes[\"link\"]);\n display === \"button\" && classNames.push(classes[\"button\"], classes[buttonVariant]);\n disabled && classNames.push(classes[\"disabled\"]);\n className && classNames.push(className);\n\n if (component) {\n return React.createElement(\n component,\n {\n ...rest,\n ref: ref,\n to: to,\n className: classNames.join(\" \"),\n \"aria-disabled\": disabled,\n style: {\n ...rest.style\n }\n },\n children\n );\n }\n\n return (\n <a\n {...rest}\n ref={ref}\n download={type === \"download\"}\n rel={type === \"external\" ? \"noopener noreferer\" : undefined}\n href={!disabled ? to : undefined}\n className={classNames.join(\" \")}\n aria-disabled={disabled}\n target={determineTarget()}\n style={{\n ...rest.style\n }}\n >\n {children}\n </a>\n );\n};\n\nexport const Link = React.forwardRef(LinkComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, Fragment } from \"react\";\nimport { BaseButton, Props as BaseButtonProps } from \"./BaseButton\";\nimport classes from \"./IconButton.module.scss\";\nimport readyclasses from \"../readyclasses.module.scss\";\n\nexport interface Props extends BaseButtonProps {\n children?: React.ReactNode;\n iconSize?: \"s\" | \"m\" | \"l\";\n variant?: \"text\" | \"fill\" | \"outline\";\n className?: string;\n title?: string;\n}\n\nexport const IconButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (\n { children, color = \"primary\", variant = \"text\", iconSize = \"m\", title, className, ...rest },\n ref\n) => {\n if (!title) {\n console.error(\"Please make sure to specify a 'title' prop to your IconButton component! \");\n }\n\n const iconButtonClasses = [\n classes[\"icon-button\"],\n classes[variant],\n classes[color],\n classes[\"button-\" + iconSize]\n ];\n\n if (className) {\n iconButtonClasses.push(className);\n }\n\n return (\n <BaseButton {...rest} ref={ref} className={iconButtonClasses.join(\" \")}>\n <Fragment>\n {children}\n <span className={readyclasses[\"sr-only\"]}>{title}</span>\n </Fragment>\n </BaseButton>\n );\n};\n\nexport const IconButton = React.forwardRef(IconButtonComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { HTMLProps } from \"react\";\nimport classes from \"./Tab.module.scss\";\n\nexport interface Props extends HTMLProps<HTMLDivElement> {\n title: string;\n children?: unknown;\n tabActive?: boolean;\n}\n\nexport const Tab = ({ children, tabActive, ...rest }: Props) => {\n return (\n <div\n {...rest}\n aria-hidden={!tabActive}\n role=\"tabpanel\"\n className={`${classes[\"tab\"]} ${tabActive ? classes[\"selected\"] : \"\"} ${\n rest.className ?? \"\"\n }`}\n >\n {children}\n </div>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n createRef,\n RefObject,\n useEffect\n} from \"react\";\nimport classes from \"./TabButton.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"button\"> {\n tabActive?: boolean;\n focused?: boolean;\n}\n\nconst TabButtonComponent: ForwardRefRenderFunction<HTMLButtonElement, Props> = (\n { children, tabActive, focused, title, ...rest }: Props,\n ref\n) => {\n let buttonRef = (ref as RefObject<HTMLButtonElement>) || createRef<HTMLButtonElement>();\n\n useEffect(() => {\n if (focused && buttonRef.current) {\n buttonRef.current.focus();\n }\n }, [buttonRef.current, focused]);\n\n return (\n <button\n {...rest}\n className={`${classes[\"tabbutton\"]} ${tabActive ? classes[\"selected\"] : \"\"} ${\n rest.className ?? \"\"\n }`}\n ref={buttonRef}\n role=\"tab\"\n type=\"button\"\n >\n <span aria-hidden=\"true\">{children}</span>\n {children}\n </button>\n );\n};\n\nexport const TabButton = React.forwardRef(TabButtonComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithRef,\n createRef,\n ForwardRefRenderFunction,\n ReactElement,\n RefObject,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { Props as TabProps } from \"./Tab\";\nimport { TabButton } from \"./TabButton\";\nimport classes from \"./Tabs.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children: React.ReactElement<TabProps> | React.ReactElement<TabProps>[];\n selected?: number;\n onTabChange?: (index: number) => void;\n}\n\nconst TabsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, selected = 0, onTabChange, ...rest }: Props,\n ref\n) => {\n const [renderedButtons, setRenderedButtons] = useState<ReactElement[]>([]);\n const [renderedTabs, setRenderedTabs] = useState<ReactElement[]>([]);\n const [activeTabIndex, setActiveTabIndex] = useState(selected);\n const [usingKeyboardNavigation, setUsingKeyboardNavigation] = useState(false);\n const [indicatorStyles, setIndicatorStyles] = useState<{\n width: number;\n left: number;\n top: number;\n }>({\n width: 0,\n left: 0,\n top: 0\n });\n const tabsRef = (ref as RefObject<HTMLDivElement>) || createRef<HTMLDivElement>();\n const indicatorRef = useRef<HTMLDivElement>(null);\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n const totalAmountOfTabs = [children].flat().length;\n if (!usingKeyboardNavigation) setUsingKeyboardNavigation(true);\n if (totalAmountOfTabs === 1) return;\n\n switch (e.key) {\n case \"ArrowRight\":\n setActiveTabIndex(currentIndex => {\n return currentIndex + 1 > totalAmountOfTabs - 1 ? 0 : currentIndex + 1;\n });\n break;\n case \"ArrowLeft\":\n setActiveTabIndex(currentIndex => {\n return currentIndex - 1 < 0 ? totalAmountOfTabs - 1 : currentIndex - 1;\n });\n break;\n case \"Home\":\n setActiveTabIndex(0);\n break;\n case \"End\":\n setActiveTabIndex(totalAmountOfTabs - 1);\n break;\n default:\n return;\n }\n };\n\n const calculateIndicatorPosition = () => {\n if (tabsRef.current) {\n const selectedButton = tabsRef.current.querySelectorAll('button[role=\"tab\"]')[\n activeTabIndex\n ] as HTMLElement;\n\n setIndicatorStyles({\n left: selectedButton.offsetLeft,\n top:\n selectedButton.offsetTop +\n selectedButton.offsetHeight -\n indicatorRef.current!.offsetHeight,\n width: selectedButton.offsetWidth\n });\n }\n };\n\n useEffect(() => {\n if (tabsRef.current && renderedButtons.length) {\n calculateIndicatorPosition();\n }\n }, [tabsRef.current, activeTabIndex, renderedButtons]);\n\n useEffect(() => {\n onTabChange && onTabChange(activeTabIndex);\n }, [activeTabIndex]);\n\n useEffect(() => {\n const buttons = React.Children.map(children, (child, index) => {\n if (Object.prototype.hasOwnProperty.call(child.props, \"title\")) {\n return React.createElement(\n TabButton,\n {\n key: `${child.props.title.toLowerCase().replace(/\\s/, \"_\")}_button`,\n tabIndex: activeTabIndex === index ? 0 : -1,\n \"aria-selected\": activeTabIndex === index,\n focused: usingKeyboardNavigation && activeTabIndex === index,\n tabActive: activeTabIndex === index,\n \"aria-controls\": `tab_${index}`,\n onClick: () => setActiveTabIndex(index)\n },\n child.props.title\n );\n }\n return null;\n });\n\n setRenderedButtons(buttons);\n }, [activeTabIndex]);\n\n useEffect(() => {\n const tabs = React.Children.map(children, (child, index) => {\n if (Object.prototype.hasOwnProperty.call(child.props, \"title\")) {\n return React.cloneElement(child, {\n key: `${child.props.title.toLowerCase().replace(/\\s/, \"_\")}_tab`,\n tabIndex: activeTabIndex === index ? 0 : -1,\n tabActive: activeTabIndex === index,\n id: `tab_${index}`,\n children: child.props.children\n });\n }\n\n return null;\n });\n\n setRenderedTabs(tabs);\n }, [activeTabIndex]);\n\n return (\n <div {...rest} ref={tabsRef} className={`${classes[\"tabs\"]} ${rest.className ?? \"\"}`}>\n <div role=\"tablist\" className={classes[\"tablist\"]} onKeyDown={handleKeyDown}>\n {renderedButtons}\n <div className={classes[\"tabdivider\"]} />\n <div\n className={classes[\"indicator\"]}\n ref={indicatorRef}\n aria-hidden=\"true\"\n tabIndex={-1}\n style={{\n width: indicatorStyles.width,\n left: indicatorStyles.left,\n top: indicatorStyles.top\n }}\n />\n </div>\n <div>{renderedTabs}</div>\n </div>\n );\n};\n\nexport const Tabs = React.forwardRef(TabsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n useRef,\n MouseEventHandler,\n useState,\n ComponentPropsWithRef\n} from \"react\";\nimport { Popover } from \"../Popover/Popover\";\nimport classes from \"./TextEllipsis.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children?: string;\n popoverClassName?: string;\n}\n\nconst TextEllipsisComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, popoverClassName, className, ...rest }: Props,\n ref\n) => {\n const [showPopover, setShowPopover] = useState(false);\n const textContainer = useRef<HTMLDivElement>(null);\n\n const ellipsisVisible = () => {\n if (\n textContainer.current &&\n textContainer.current.offsetWidth < textContainer.current.scrollWidth\n ) {\n return true;\n }\n return false;\n };\n\n const onMouseEnter: MouseEventHandler<HTMLDivElement> = () => {\n ellipsisVisible() && setShowPopover(true);\n };\n\n const onMouseLeave: MouseEventHandler<HTMLDivElement> = () => {\n ellipsisVisible() && setShowPopover(false);\n };\n\n return (\n <div\n {...rest}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n className={`${classes[\"text-ellipsis\"]} ${className ?? \"\"}`}\n ref={ref || textContainer}\n >\n {children}\n <Popover\n aria-hidden={true}\n data-hidden={!showPopover}\n show={showPopover}\n role=\"tooltip\"\n anchorEl={textContainer}\n className={`${classes.popover} ${popoverClassName ?? \"\"}`}\n >\n {children}\n </Popover>\n </div>\n );\n};\n\nexport const TextEllipsis = React.forwardRef(TextEllipsisComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\ntype KeyValuePair = { [key: string]: unknown };\n\nexport const generateID = (length = 15, stringToWeaveIn?: string) => {\n /** We will make sure to mesh the generate id and name property together to basically create a unique ID */\n let hashCharacters = [\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\",\n \"0\",\n \"A\",\n \"B\",\n \"C\",\n \"D\",\n \"E\",\n \"F\",\n \"G\",\n \"H\",\n \"I\",\n \"J\",\n \"K\",\n \"L\",\n \"M\",\n \"N\",\n \"O\",\n \"P\",\n \"Q\",\n \"R\",\n \"S\",\n \"T\",\n \"U\",\n \"V\",\n \"W\",\n \"X\",\n \"Y\",\n \"Z\",\n \"a\",\n \"b\",\n \"c\",\n \"d\",\n \"e\",\n \"f\",\n \"g\",\n \"h\",\n \"i\",\n \"j\",\n \"k\",\n \"l\",\n \"m\",\n \"n\",\n \"o\",\n \"p\",\n \"q\",\n \"r\",\n \"s\",\n \"t\",\n \"u\",\n \"v\",\n \"w\",\n \"x\",\n \"y\",\n \"z\"\n ];\n\n let id = \"\";\n\n /** Generate an id of x characters in length */\n for (let i = 0; i < length && id.length < length; i++) {\n let stringCharacter =\n stringToWeaveIn && stringToWeaveIn[i] !== undefined && !/\\s/.test(stringToWeaveIn[i])\n ? stringToWeaveIn[i]\n : \"\";\n id = id + stringCharacter + hashCharacters[Math.floor(Math.random() * hashCharacters.length)];\n }\n\n return id.slice(0, length);\n};\n\nexport const filterProps = (props: any, regexPattern: RegExp, returnFiltered: boolean = true) => {\n if (returnFiltered) {\n return Object.keys(props).reduce((acc: KeyValuePair, key) => {\n if (regexPattern.test(key)) {\n acc[key] = props[key];\n }\n\n return acc;\n }, {});\n } else {\n return Object.entries(props)\n .filter(([key]) => !regexPattern.test(key))\n .reduce(\n (prevObj, currKeyValPair) => ({ ...prevObj, [currKeyValPair[0]]: currKeyValPair[1] }),\n {}\n );\n }\n};\n\nexport const debounce = (fn: (...args: unknown[]) => unknown, delay: number) => {\n let timeout: undefined | ReturnType<typeof setTimeout>;\n\n return function executedFunction(...args: unknown[]) {\n const later = () => {\n clearTimeout(timeout);\n fn(...args);\n };\n\n clearTimeout(timeout);\n\n timeout = setTimeout(later, delay);\n };\n};\n\nexport const throttle = (fn: (...args: unknown[]) => unknown, delay: number) => {\n let lastTime = 0;\n\n return function () {\n let now = Date.now();\n\n if (now - lastTime >= delay) {\n fn();\n lastTime = now;\n }\n };\n};\n\nexport const isEqual = (x: any, y: any): boolean => {\n const typesCoincide = x && y && typeof x === \"object\" && typeof y === \"object\";\n return typesCoincide\n ? Object.keys(x).length === Object.keys(y).length &&\n Object.keys(x).every(key => isEqual(x[key], y[key]))\n : x === y;\n};\n\nexport const areArraysDifferent = (\n arr1: Record<string, any>[],\n arr2: Record<string, any>[],\n key: string\n) => {\n if (arr1.length !== arr2.length) {\n return true;\n } else {\n const firstFilteredArray = arr1.filter(arr1Item =>\n arr2.some((arr2Item: { [x: string]: any }) => !isEqual(arr1Item[key], arr2Item[key]))\n );\n const secondFilteredArray = arr2.filter(arr2Item =>\n arr1.some((arr1Item: { [x: string]: any }) => !isEqual(arr1Item[key], arr2Item[key]))\n );\n\n return !!firstFilteredArray.length || !!secondFilteredArray.length;\n }\n};\n\nexport const getValueByPath = (obj: { [key: string]: any }, path: string): any => {\n return path.split(\".\").reduce((res, prop) => {\n return res[prop];\n }, obj);\n};\n\n/** Source: https://stackoverflow.com/a/42769683/5084110 */\nexport const remToPx = (rem: number): number => {\n return rem * parseFloat(getComputedStyle(document.documentElement).fontSize);\n};\n\nexport const isJsonString = (str: any) => {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithoutRef,\n ComponentPropsWithRef,\n ForwardRefRenderFunction,\n ReactElement,\n useState\n} from \"react\";\nimport { Icon, Icons } from \"../Icon/Icon\";\nimport classes from \"./Tile.module.scss\";\nimport readyClasses from \"../readyclasses.module.scss\";\n\nimport { Props as ContextMenuProps } from \"../ContextMenu/ContextMenu\";\nimport { generateID } from \"../util/helper\";\nimport { Props as IconButtonProps } from \"../Button/IconButton\";\n\ninterface ImageProps extends ComponentPropsWithoutRef<\"img\"> {\n src: string;\n}\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n title: string;\n imageProps?: ImageProps;\n enabled?: boolean;\n loading?: boolean;\n tileAction?: ReactElement<ContextMenuProps> | ReactElement<IconButtonProps>;\n}\n\nconst TileComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { title, imageProps, enabled, className, loading, tileAction, ...rest }: Props,\n ref\n) => {\n const [tileDescriptionID] = useState(generateID(20));\n\n if (!title) {\n throw new Error(\"Please make sure to pass a title prop to your Tile component.\");\n }\n\n const statusMessage = () => {\n if (enabled) {\n return \"Status: enabled\";\n }\n\n return \"Status: disabled\";\n };\n\n return (\n <article\n {...rest}\n tabIndex={0}\n aria-labelledby={tileDescriptionID}\n ref={ref}\n className={`${classes[\"tile\"]} ${loading ? classes[\"loading\"] : \"\"}`}\n >\n <header style={{ justifyContent: enabled === undefined ? \"flex-end\" : \"space-between\" }}>\n {enabled === true && (\n <Icon\n color=\"var(--success)\"\n icon={Icons.Checkmark}\n className={`${classes[\"icon\"]} ${className ?? \"\"}`}\n />\n )}\n {enabled === false && (\n <Icon\n color=\"var(--greyed-out)\"\n icon={Icons.Forbidden}\n className={`${classes[\"icon\"]} ${className ?? \"\"}`}\n />\n )}\n {enabled !== undefined && (\n <span id={tileDescriptionID} className={readyClasses[\"sr-only\"]}>\n {`${title}. ${statusMessage()}`}\n </span>\n )}\n {tileAction ?? null}\n </header>\n <div className={classes[\"content\"]}>\n {imageProps && imageProps.src.length > 0 && (\n <figure className={classes[\"image\"]}>{!loading && <img {...imageProps} alt=\"\" />}</figure>\n )}\n {(!imageProps || imageProps.src.length === 0) && (\n <Icon className={classes[\"placeholder\"]} icon={Icons.Image} />\n )}\n <span className={classes[\"title\"]}>{title}</span>\n </div>\n </article>\n );\n};\n\nexport const Tile = React.forwardRef(TileComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactNode } from \"react\";\nimport classes from \"./Tiles.module.scss\";\nimport { Tile } from \"./Tile\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children: ReactNode;\n loading?: boolean;\n}\n\nconst TilesComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, className, loading = false, ...rest }: Props,\n ref\n) => {\n const renderChildren = () => {\n if (loading) {\n return [\n <Tile\n key=\"placeholder1\"\n title=\"placeholder\"\n imageProps={{ src: \"placeholder\" }}\n loading={true}\n />,\n <Tile\n key=\"placeholder2\"\n title=\"placeholder\"\n imageProps={{ src: \"placeholder\" }}\n loading={true}\n />,\n <Tile\n key=\"placeholder3\"\n title=\"placeholder\"\n imageProps={{ src: \"placeholder\" }}\n loading={true}\n />\n ];\n }\n\n return children;\n };\n\n return (\n <div\n {...rest}\n ref={ref}\n className={`${classes[\"tiles\"]} ${className ?? \"\"}`}\n aria-live=\"polite\"\n aria-busy={loading}\n >\n {renderChildren()}\n </div>\n );\n};\n\nexport const Tiles = React.forwardRef(TilesComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithRef,\n createRef,\n ForwardRefRenderFunction,\n ReactElement,\n ReactNode,\n RefObject,\n useEffect,\n useLayoutEffect,\n useRef,\n useState\n} from \"react\";\nimport { Icon, Icons } from \"../Icon/Icon\";\nimport classes from \"./Tooltip.module.scss\";\nimport { generateID } from \"../util/helper\";\nimport { Offset, Placement, usePosition } from \"../hooks/usePosition\";\nimport { createPortal } from \"react-dom\";\nimport { useGetDomRoot } from \"../hooks/useGetDomRoot\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n label: string | ReactNode;\n children: string;\n placement?: Placement;\n offset?: Offset;\n transformOrigin?: Placement;\n domRoot?: HTMLElement;\n}\n\ninterface DefaultPosition {\n placement: Placement;\n offset: Offset;\n transformOrigin: Placement;\n}\n\nconst defaultPosition: DefaultPosition = {\n placement: { horizontal: \"right\", vertical: \"center\" },\n offset: { left: 16, right: 0, top: 0, bottom: 0 },\n transformOrigin: { horizontal: \"left\", vertical: \"center\" }\n};\n\nconst TooltipComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n className,\n placement = defaultPosition.placement,\n offset = defaultPosition.offset,\n transformOrigin = defaultPosition.transformOrigin,\n domRoot,\n label,\n ...rest\n }: Props,\n ref\n) => {\n const [identifier] = useState(generateID());\n const [visible, setVisible] = useState(false);\n\n const wrappingDivRef = (ref as RefObject<HTMLDivElement>) || createRef<HTMLDivElement>();\n const { root } = useGetDomRoot(domRoot, wrappingDivRef);\n\n const relativeElement = useRef<HTMLDivElement>(null);\n const elementToBePositioned = useRef<HTMLDivElement>(null);\n\n const { top, bottom, right, left, calculatePosition } = usePosition({\n relativeElement: relativeElement,\n elementToBePositioned: elementToBePositioned,\n placement: placement,\n offset: offset,\n transformOrigin: transformOrigin\n });\n\n useEffect(() => {\n if (!visible) return;\n\n function escapePressHandler(event: KeyboardEvent) {\n if (event.key === \"Escape\") {\n setVisible(false);\n }\n }\n\n document.addEventListener(\"keyup\", escapePressHandler);\n\n return () => {\n document.removeEventListener(\"keyup\", escapePressHandler);\n };\n }, [visible]);\n\n useLayoutEffect(() => {\n calculatePosition();\n }, [visible]);\n\n const renderChildren = () => {\n if (React.isValidElement(label)) {\n return React.cloneElement(label as ReactElement, {\n onFocus: () => setVisible(true),\n onBlur: () => setVisible(false),\n \"aria-describedby\": identifier,\n tabIndex: 0,\n className: classes[\"label\"]\n });\n }\n\n return (\n <span\n className={classes[\"label\"]}\n tabIndex={0}\n onFocus={() => setVisible(true)}\n onBlur={() => setVisible(false)}\n aria-describedby={identifier}\n >\n {label}\n </span>\n );\n };\n\n return (\n <div {...rest} ref={wrappingDivRef} className={`${classes.wrapper} ${className ?? \"\"}`}>\n {renderChildren()}\n <div className={`${classes[\"tooltip-wrapper\"]}`}>\n <Icon\n ref={relativeElement}\n tag=\"div\"\n onMouseEnter={() => setVisible(true)}\n onMouseLeave={() => setVisible(false)}\n icon={Icons.InfoCircle}\n className={classes.icon}\n />\n {createPortal(\n <div\n ref={elementToBePositioned}\n style={{\n ...rest.style,\n top: top,\n left: left,\n right: right,\n bottom: bottom\n }}\n aria-hidden={!visible}\n id={identifier}\n className={`${classes.tooltip} ${visible ? classes.visible : \"\"}`}\n >\n {children}\n </div>,\n root\n )}\n </div>\n </div>\n );\n};\n\nexport const Tooltip = React.forwardRef(TooltipComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport { Typography } from \"../Typography/Typography\";\nimport classes from \"./ProgressBar.module.scss\";\n\nexport interface Props extends Omit<ComponentPropsWithRef<\"span\">, \"children\"> {\n placeholderText: string;\n completed?: number;\n}\n\nconst ProgressBarComponent: ForwardRefRenderFunction<HTMLSpanElement, Props> = (\n { placeholderText, completed, ...rest }: Props,\n ref\n) => {\n return (\n <span {...rest} ref={ref} role=\"progressbar\">\n <span className={classes[\"progress-bar\"]}>\n <span\n className={`${classes[\"bar\"]} ${\n completed ? classes[`w-${5 * Math.round(completed / 5)}`] : classes[\"loading-state\"]\n }`}\n />\n </span>\n <Typography className={classes[\"placeholder\"]} spacing={{ marginBottom: 0 }} variant=\"body\">\n {placeholderText}\n </Typography>\n </span>\n );\n};\n\nexport const ProgressBar = React.forwardRef(ProgressBarComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport classes from \"./Skeleton.module.scss\";\n\nexport interface Props extends Omit<ComponentPropsWithRef<\"div\">, \"children\"> {\n variant?: \"circular\" | \"rectangle\" | \"text\";\n height?: number | string;\n width?: number | string;\n}\n\nconst SkeletonComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { variant = \"text\", height, width, className, style, ...rest }: Props,\n ref\n) => {\n const classNames = [classes[\"skeleton\"]];\n !height && classNames.push(classes[\"no-height\"]);\n variant === \"text\" && classNames.push(classes[\"text\"]);\n variant === \"circular\" && classNames.push(classes[\"circular\"]);\n className && classNames.push(className);\n\n return (\n <span\n {...rest}\n aria-busy=\"true\"\n aria-hidden=\"true\"\n ref={ref}\n style={{ ...style, width, height }}\n className={classNames.join(\" \")}\n ></span>\n );\n};\n\nexport const Skeleton = React.forwardRef(SkeletonComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactNode } from \"react\";\nimport { Typography, Props as TypographyProps } from \"../Typography/Typography\";\nimport classes from \"./StatusIndicator.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children?: ReactNode;\n status: \"active\" | \"error\" | \"neutral\" | \"warning\";\n badgeProps?: ComponentPropsWithRef<\"div\">;\n typographyProps?: TypographyProps;\n}\n\nconst StatusIndicatorComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, status, badgeProps, typographyProps, ...rest }: Props,\n ref\n) => {\n return (\n <div {...rest} className={classes[\"status-indicator\"]} ref={ref}>\n <div\n className={`${classes[\"status-badge\"]} ${classes[status]} ${badgeProps?.className ?? \"\"}`}\n />\n <Typography {...typographyProps} spacing={{ margin: \"0\" }} variant=\"body\" tag=\"div\">\n {typographyProps?.children || children}\n </Typography>\n </div>\n );\n};\n\nexport const StatusIndicator = React.forwardRef(StatusIndicatorComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FormElement } from \"../Form/form.interfaces\";\nimport React, { ReactElement, useRef } from \"react\";\nimport { Icon, Icons } from \"../Icon/Icon\";\nexport const useDetermineStatusIcon = (params: Partial<FormElement>): ReactElement | null => {\n const { error, success } = params || false;\n let icon = null;\n const errorRef = useRef(null);\n const successRef = useRef(null);\n\n if (error) {\n icon = <Icon ref={errorRef} data-icon-status=\"error\" icon={Icons.Error} />;\n } else if (success) {\n icon = (\n <Icon ref={successRef} data-icon-status=\"success\" icon={Icons.CheckmarkCircleBreakout} />\n );\n }\n\n return icon;\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n Ref,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport classes from \"./Input.module.scss\";\nimport readyclasses from \"../../readyclasses.module.scss\";\nimport { FormElement } from \"../form.interfaces\";\nimport { useDetermineStatusIcon } from \"../../hooks/useDetermineStatusIcon\";\n\nexport const dateTypes = [\"date\", \"time\", \"datetime-local\"] as const;\n\nexport type Type =\n | \"text\"\n | \"email\"\n | \"file\"\n | \"number\"\n | \"password\"\n | \"search\"\n | \"tel\"\n | \"url\"\n | \"hidden\"\n | (typeof dateTypes)[number];\n\nexport interface Props extends ComponentPropsWithRef<\"input\">, FormElement {\n wrapperProps?: ComponentPropsWithRef<\"div\">;\n labeledBy?: string;\n type: Type;\n suffix?: string;\n prefix?: string;\n}\n\nconst InputComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (\n {\n error = false,\n success = false,\n className,\n name,\n style,\n wrapperProps,\n type,\n labeledBy,\n prefix,\n suffix,\n disabled,\n onFocus,\n onBlur,\n ...rest\n }: Props,\n ref: Ref<HTMLInputElement>\n) => {\n const [focus, setFocus] = useState(false);\n const inputWrapperRef = useRef<HTMLDivElement>(null);\n const suffixRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (name === undefined) {\n throw new Error(\"Please give your <Input /> component a 'name' attribute\");\n }\n }, []);\n\n const inputClassNames = [classes[\"input\"]];\n\n (dateTypes as ReadonlyArray<string>).includes(type) &&\n inputClassNames.push(classes[\"shrink-width-for-date-icon\"]);\n className && inputClassNames.push(className);\n\n const wrapperClasses = [classes[\"input-wrapper\"]];\n const outlineClasses = [classes[\"outline\"]];\n\n wrapperProps?.className && wrapperClasses.push(wrapperProps.className);\n type === \"hidden\" && wrapperClasses.push(readyclasses[\"hidden\"]);\n prefix && wrapperClasses.push(classes[\"prefix\"]);\n suffix && wrapperClasses.push(classes[\"suffix\"]);\n disabled && wrapperClasses.push(classes[\"disabled\"]) && outlineClasses.push(classes[\"disabled\"]);\n error && wrapperClasses.push(classes[\"error\"]) && outlineClasses.push(classes[\"error\"]);\n focus && wrapperClasses.push(classes[\"focus\"]) && outlineClasses.push(classes[\"focus\"]);\n success && wrapperClasses.push(classes[\"success\"]);\n\n const icon = useDetermineStatusIcon({ success, error });\n\n return (\n <div\n ref={inputWrapperRef}\n {...wrapperProps}\n style={{ ...style }}\n className={`${classes[\"input-wrapper\"]} ${wrapperClasses.join(\" \")}`}\n >\n {prefix && (\n <div data-prefix className={classes[\"prefix\"]}>\n <span>{prefix}</span>\n </div>\n )}\n <input\n {...rest}\n ref={ref}\n onFocus={event => {\n setFocus(true);\n onFocus && onFocus(event);\n }}\n onBlur={event => {\n setFocus(false);\n onBlur && onBlur(event);\n }}\n aria-labelledby={labeledBy}\n type={type}\n name={name}\n disabled={disabled}\n className={inputClassNames.join(\" \")}\n spellCheck={rest.spellCheck || false}\n />\n {icon}\n {suffix && (\n <div ref={suffixRef} data-suffix className={classes[\"suffix\"]}>\n <span>{suffix}</span>\n </div>\n )}\n <span className={outlineClasses.join(\" \")}></span>\n </div>\n );\n};\n\nexport const Input = React.forwardRef(InputComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport {\n Position,\n UseArrowNavigationParams,\n UseSelectPositionListParams\n} from \"./Select.interfaces\";\n\nexport const useArrowNavigation = ({\n expanded,\n setExpanded,\n isSearching,\n setIsSearching,\n setFocusedSelectItem,\n childrenCount,\n customSelectButtonRef,\n setShouldClick,\n searchInputRef,\n renderSearchCondition\n}: UseArrowNavigationParams) => {\n const onArrowNavigation = (event: React.KeyboardEvent) => {\n const codesToPreventDefault = [\n \"ArrowDown\",\n \"ArrowUp\",\n \"ArrowLeft\",\n \"ArrowRight\",\n \"Space\",\n \"Escape\",\n \"End\",\n \"Home\"\n ];\n\n const codesToPreventDefaultWhenSearching = [\"ArrowDown\", \"ArrowUp\", \"Enter\", \"Escape\"];\n\n /** If the select is expanded, we also want to control the Tab key */\n if (expanded) {\n codesToPreventDefault.push(\"Tab\");\n }\n\n /** We will handle the way certain key strokes affect the Select, unless we're searching */\n if (codesToPreventDefault.includes(event.code) && !isSearching) {\n event.preventDefault();\n }\n\n if (isSearching && codesToPreventDefaultWhenSearching.includes(event.code)) {\n event.preventDefault();\n }\n\n if (isSearching) {\n switch (event.code) {\n case \"ArrowDown\":\n case \"Enter\":\n setIsSearching(false);\n setFocusedSelectItem(0);\n return;\n case \"ArrowUp\":\n setIsSearching(false);\n setFocusedSelectItem(childrenCount - 1);\n return;\n case \"Escape\":\n case \"Tab\":\n setIsSearching(false);\n setExpanded(false);\n customSelectButtonRef.current && customSelectButtonRef.current.focus();\n }\n } else {\n switch (event.code) {\n case \"ArrowDown\":\n if (!expanded) {\n setExpanded(true);\n return;\n }\n setFocusedSelectItem(prevState => {\n return prevState + 1 > childrenCount - 1 ? 0 : prevState + 1;\n });\n return;\n case \"ArrowUp\":\n setFocusedSelectItem(prevState => {\n return prevState - 1 < 0 ? childrenCount - 1 : prevState - 1;\n });\n return;\n case \"Space\":\n if (!expanded) {\n setExpanded(true);\n return;\n }\n\n setShouldClick(true);\n setExpanded(false);\n customSelectButtonRef.current && customSelectButtonRef.current.focus();\n return;\n case \"Tab\":\n if (childrenCount >= renderSearchCondition && expanded) {\n setIsSearching(true);\n searchInputRef.current && searchInputRef.current.focus();\n return;\n }\n setExpanded(false);\n\n return;\n case \"Escape\":\n if (expanded) {\n setExpanded(false);\n customSelectButtonRef.current && customSelectButtonRef.current.focus();\n }\n return;\n case \"End\":\n setFocusedSelectItem(childrenCount - 1);\n return;\n case \"Home\":\n setFocusedSelectItem(0);\n return;\n }\n }\n };\n\n return { onArrowNavigation };\n};\n\nexport const useSelectPositionList = ({\n expanded,\n optionListReference,\n containerReference\n}: UseSelectPositionListParams) => {\n const [optionsListMaxHeight, setOptionsListMaxHeight] = useState(\"none\");\n const [opacity, setOpacity] = useState(0); // We set opacity because other wise if we calculate the max height you see the list full height for a split second and then it shortens.\n const [listPosition, setListPosition] = useState<Partial<Position>>({});\n\n useEffect(() => {\n rePositionList();\n }, [expanded]);\n\n const rePositionList = () => {\n if (!expanded || !optionListReference.current || !containerReference.current) {\n return;\n }\n\n // Check whether there is more space above or below the select\n // Check space between the bottom of select and top of viewport\n const spaceOnTopOfSelect = containerReference.current.getBoundingClientRect().bottom;\n\n // Check space between the top of the select and bottom of viewport\n const spaceOnBottomOfSelect =\n window.innerHeight - containerReference.current.getBoundingClientRect().top;\n\n // Set position as if there's more space on the bottom\n let position: Position = { top: 0, bottom: \"initial\" };\n\n // Set the position of the select\n if (spaceOnTopOfSelect > spaceOnBottomOfSelect) {\n position = { top: \"initial\", bottom: 0 };\n }\n\n setListPosition(position);\n\n // Calculate the potential max height of the options list\n calculateOptionListMaxHeight(position);\n };\n\n const calculateOptionListMaxHeight = (position: Position) => {\n // Calculate max height if there's more space below the select\n const listHeight = optionListReference.current?.getBoundingClientRect().height;\n const transformOrigin = position.top !== \"initial\" ? \"top\" : \"bottom\";\n\n const availableSpace =\n transformOrigin === \"top\"\n ? window.innerHeight -\n containerReference.current!.getBoundingClientRect()[transformOrigin] -\n 16\n : containerReference.current!.getBoundingClientRect()[transformOrigin] - 16;\n\n if (listHeight && availableSpace < listHeight) {\n setOptionsListMaxHeight(`${availableSpace}px`);\n setOpacity(100);\n return;\n }\n\n setOptionsListMaxHeight(\"none\");\n setOpacity(100);\n };\n\n return {\n optionsListMaxHeight,\n opacity,\n setOpacity,\n listPosition,\n setListPosition\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport classes from \"./Select.module.scss\";\n\nimport React, {\n ComponentPropsWithRef,\n createRef,\n ForwardRefRenderFunction,\n Fragment,\n ReactElement,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { Input, Props as InputProps } from \"../Input/Input\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { FormElement } from \"../form.interfaces\";\nimport { useBodyClick } from \"../../hooks/useBodyClick\";\nimport readyclasses from \"../../readyclasses.module.scss\";\nimport { filterProps } from \"../../util/helper\";\nimport { useArrowNavigation, useSelectPositionList } from \"./SelectService\";\nimport { useDetermineStatusIcon } from \"../../hooks/useDetermineStatusIcon\";\n\ntype PartialInputProps = Partial<InputProps>;\n\nexport interface Props extends ComponentPropsWithRef<\"select\">, FormElement {\n children: ReactElement[];\n name?: string;\n labeledBy?: string;\n describedBy?: string;\n placeholder?: string;\n searchPlaceholder?: string;\n searchInputProps?: PartialInputProps;\n selectButtonProps?: ComponentPropsWithRef<\"button\">;\n className?: string;\n value: string;\n clearLabel?: string;\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>, child?: ReactElement) => void;\n}\n\n/** Amount of items to be rendered before a search input is rendered */\nconst renderSearchCondition = 10;\n\nconst SelectComponent: ForwardRefRenderFunction<HTMLSelectElement, Props> = (\n {\n children,\n name,\n disabled = false,\n labeledBy,\n placeholder,\n describedBy,\n searchPlaceholder = \"Search item\",\n searchInputProps,\n selectButtonProps,\n className,\n error = false,\n success = false,\n value,\n clearLabel = \"Clear selection\",\n onChange,\n ...rest\n }: Props,\n ref\n) => {\n const [expanded, setExpanded] = useState(false);\n const [filter, setFilter] = useState(\"\");\n const [display, setDisplay] = useState(\"\");\n const containerReference = useRef<HTMLDivElement>(null);\n const optionListReference = useRef<HTMLDivElement>(null);\n const [isSearching, setIsSearching] = useState(false);\n const [focusedSelectItem, setFocusedSelectItem] = useState(-1);\n const [shouldClick, setShouldClick] =\n useState(\n false\n ); /** We need this, because whenever we use the arrow keys to select the select item, and we focus the currently selected item it fires the \"click\" listener in Option component. Instead, we only want this to fire if we press \"enter\" or \"spacebar\" so we set this to true whenever that is the case, and back to false when it has been executed. */\n const [childrenCount] = useState(React.Children.count(children));\n\n const nativeSelect = (ref as React.RefObject<HTMLSelectElement>) || createRef();\n const searchInputRef = useRef<HTMLInputElement>(null);\n const customSelectButtonRef = useRef<HTMLButtonElement>(null);\n const { onArrowNavigation } = useArrowNavigation({\n expanded,\n setExpanded,\n isSearching,\n setIsSearching,\n setFocusedSelectItem,\n childrenCount,\n customSelectButtonRef,\n setShouldClick,\n searchInputRef,\n renderSearchCondition\n });\n\n const { listPosition, opacity, optionsListMaxHeight, setListPosition, setOpacity } =\n useSelectPositionList({ expanded, optionListReference, containerReference });\n\n const syncDisplayValue = (val: string) => {\n React.Children.forEach(children, child => {\n if (child.props.value === val) {\n setDisplay(child.props.children);\n }\n });\n };\n\n const onOptionChangeHandler = (optionRef: React.RefObject<HTMLLIElement>) => {\n if (nativeSelect.current && optionRef.current) {\n nativeSelect.current.value = optionRef.current.getAttribute(\"data-value\")!;\n nativeSelect.current.dispatchEvent(new Event(\"change\", { bubbles: true }));\n }\n\n setExpanded(false);\n\n customSelectButtonRef.current && customSelectButtonRef.current.focus();\n };\n\n /**\n * @description We have to modify the children (Option component) to have a additional props that allows us to keep track of which one is selected and focused at all times and if a filter is active.\n * The `children` prop can be either a single object (1 child) or an array of multiple children.\n */\n const renderOptions = () => {\n if (isSearching || filter !== \"\") {\n const filteredChildren = React.Children.toArray(children).filter(\n child =>\n (child as ReactElement).props.children.toLowerCase().match(filter.toLowerCase()) !== null\n );\n\n return _internalRenderChildren(filteredChildren as ReactElement[]);\n }\n\n return _internalRenderChildren(children);\n\n function _internalRenderChildren(internalChildren: ReactElement[]) {\n return React.Children.map(internalChildren, (child, index) => {\n return React.cloneElement(child, {\n onFocusChange: (childIndex: number) => setFocusedSelectItem(childIndex),\n onOptionSelect: (optionRef: React.RefObject<HTMLLIElement>) => {\n onOptionChangeHandler(optionRef);\n setShouldClick(false);\n },\n isSelected: child.props.value === value,\n isSearching: isSearching,\n selectOpened: expanded,\n childIndex: index,\n hasFocus: focusedSelectItem === index,\n shouldClick: shouldClick\n });\n });\n }\n };\n\n const renderSearch = () => (\n <Input\n {...searchInputProps}\n autoFocus\n ref={searchInputRef}\n onFocus={() => setIsSearching(true)}\n onBlur={() => setIsSearching(false)}\n onChange={filterResults}\n className={classes[\"select-search\"]}\n wrapperProps={{\n className: `${classes[\"select-search-wrapper\"]} ${searchInputProps?.wrapperProps?.className}`\n }}\n type=\"text\"\n name=\"search-option\"\n placeholder={searchPlaceholder}\n />\n );\n\n const filterResults = (event: React.ChangeEvent<HTMLInputElement>) => {\n setFilter(event.currentTarget.value);\n };\n\n const icon = useDetermineStatusIcon({ success, error });\n\n const nativeOnChangeHandler = (event: React.ChangeEvent<HTMLSelectElement>) => {\n onChange && onChange(event);\n };\n\n useEffect(() => {\n syncDisplayValue(value);\n }, [value]);\n\n useBodyClick(\n (event: MouseEvent) => !(event.target as Element).closest(\".custom-select\") && expanded,\n () => {\n setExpanded(false);\n setListPosition({ top: 0, bottom: \"initial\" });\n setOpacity(0);\n },\n expanded\n );\n\n const additionalClasses = [];\n expanded && additionalClasses.push(classes.expanded);\n error && additionalClasses.push(classes.error);\n disabled && additionalClasses.push(classes.disabled);\n className && additionalClasses.push(className);\n success && additionalClasses.push(classes.success);\n\n /** The native select is purely for external form libraries. We use it to emit an onChange with native select event object so they know exactly what's happening. */\n return (\n <Fragment>\n <select\n {...filterProps(rest, /^data-/, false)}\n tabIndex={-1}\n aria-hidden=\"true\"\n ref={nativeSelect}\n name={name}\n onChange={nativeOnChangeHandler}\n className={readyclasses[\"sr-only\"]}\n >\n <option value=\"\"></option>\n {React.Children.map(children, child => (\n <option value={child.props.value}></option>\n ))}\n </select>\n <div\n {...filterProps(rest, /^data-/)}\n ref={containerReference}\n onKeyDown={onArrowNavigation}\n className={`custom-select ${classes.select} ${additionalClasses.join(\" \")} ${\n className ?? \"\"\n }`}\n >\n <button\n {...selectButtonProps}\n onClick={() => {\n setExpanded(!expanded);\n }}\n ref={customSelectButtonRef}\n type=\"button\"\n name={name}\n className={`${classes[\"custom-select\"]} ${additionalClasses.join(\" \")} `}\n disabled={disabled}\n aria-disabled={disabled}\n aria-invalid={error}\n aria-expanded={expanded}\n aria-haspopup=\"listbox\"\n aria-labelledby={labeledBy}\n aria-describedby={describedBy}\n >\n <div data-display className={classes[\"selected\"]}>\n {!value && placeholder && <span className={classes[\"placeholder\"]}>{placeholder}</span>}\n {value?.length > 0 && <span data-display-inner>{display}</span>}\n </div>\n <div className={classes[\"status\"]}>\n {icon}\n <Icon className={classes[\"triangle-down\"]} icon={Icons.TriangleDown} />\n </div>\n </button>\n <div\n ref={optionListReference}\n className={`list-wrapper ${classes[\"list-wrapper\"]}`}\n style={{\n display: expanded ? \"block\" : \"none\",\n opacity: opacity,\n maxHeight: optionsListMaxHeight,\n pointerEvents: expanded ? \"auto\" : \"none\",\n ...listPosition\n }}\n >\n {Array.isArray(children) && children.length > renderSearchCondition && renderSearch()}\n <ul role=\"listbox\">{renderOptions()}</ul>\n </div>\n </div>\n </Fragment>\n );\n};\n\nexport const Select = React.forwardRef(SelectComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n createRef,\n RefObject,\n useEffect\n} from \"react\";\nimport classes from \"./Select.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"li\"> {\n children: string;\n value: string;\n disabled?: boolean;\n isSelected?: boolean;\n selectOpened?: boolean;\n hasFocus?: boolean;\n shouldClick?: boolean;\n isSearching?: boolean;\n label?: string;\n childIndex?: number;\n onOptionSelect?: (ref: React.RefObject<HTMLLIElement>) => void;\n onFocusChange?: (childIndex: number) => void;\n}\n\nconst OptionComponent: ForwardRefRenderFunction<HTMLLIElement, Props> = (\n {\n children,\n className,\n isSelected = false,\n shouldClick,\n hasFocus,\n selectOpened,\n isSearching,\n childIndex,\n onOptionSelect,\n onFocusChange,\n disabled,\n value,\n ...rest\n }: Props,\n ref\n) => {\n let innerOptionRef = (ref as RefObject<HTMLLIElement>) || createRef<HTMLLIElement>();\n\n useEffect(() => {\n if (isSelected && innerOptionRef.current && shouldClick) {\n innerOptionRef.current.click();\n }\n }, [isSelected, shouldClick]);\n\n useEffect(() => {\n if (innerOptionRef.current && hasFocus && selectOpened && !isSearching) {\n onFocusChange && childIndex && onFocusChange(childIndex);\n innerOptionRef.current.focus();\n }\n }, [hasFocus, innerOptionRef, selectOpened, isSearching]);\n\n const onSelectHandler = () => {\n if (onOptionSelect) onOptionSelect(innerOptionRef);\n };\n\n return (\n <li\n {...rest}\n ref={innerOptionRef}\n data-value={value}\n className={`${isSelected ? classes[\"selected-option\"] : \"\"} ${\n disabled ? classes.disabled : \"\"\n } ${className ?? \"\"}`}\n onClick={onSelectHandler}\n onKeyDownCapture={event => {\n if (event.code === \"Enter\") {\n event.stopPropagation();\n event.preventDefault();\n\n onSelectHandler();\n }\n }}\n aria-selected={isSelected}\n role=\"option\"\n tabIndex={disabled ? -1 : 0}\n >\n {children}\n </li>\n );\n};\n\nexport const Option = React.forwardRef(OptionComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactNode } from \"react\";\nimport classes from \"./Label.module.scss\";\nimport readyclasses from \"../../readyclasses.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"label\"> {\n children?: ReactNode;\n}\n\nconst LabelComponent: ForwardRefRenderFunction<HTMLLabelElement, Props> = (\n { children, className, hidden = false, ...rest }: Props,\n ref\n) => {\n return (\n <label\n {...rest}\n ref={ref}\n className={`${hidden ? readyclasses[\"sr-only\"] : \"\"} ${classes[\"label\"]} ${className ?? \"\"}`}\n >\n {children}\n </label>\n );\n};\n\nexport const Label = React.forwardRef(LabelComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, Fragment, useState } from \"react\";\nimport classes from \"./Pagination.module.scss\";\nimport readyclasses from \"../readyclasses.module.scss\";\nimport { IconButton } from \"../Button/IconButton\";\nimport { Icons, Icon } from \"../Icon/Icon\";\nimport { Input } from \"../Form/Input/Input\";\nimport { Select } from \"../Form/Select/Select\";\nimport { Option } from \"../Form/Select/Option\";\nimport { Label } from \"../Form/Label/Label\";\n\nexport type PaginationTranslations = {\n totalItems: string;\n itemsPerPage: string;\n itemsPerPageLabel: string;\n currentPage: string;\n currentPageLabel: string;\n};\n\nexport type PageChangeLabels = \"next\" | \"previous\" | \"first\" | \"last\";\n\nenum DefaultTranslations {\n totalItems = \"Total items\",\n itemsPerPage = \"Items per page\",\n currentPage = \"Page %1 of %2\",\n itemsPerPageLabel = \"Select how many items per page you want to see.\",\n currentPageLabel = \"What page you are currently on.\"\n}\n\nexport type PageSize = 10 | 25 | 50;\n\nexport interface Props extends Omit<ComponentPropsWithRef<\"div\">, \"translate\"> {\n currentPage?: number;\n totalElements?: number;\n pageSize?: PageSize;\n translate?: PaginationTranslations;\n onPageChange: (pageToGoTo: number) => void;\n onPageSizeChange: (pageSize: PageSize) => void;\n}\n\nconst PaginationComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n totalElements,\n pageSize = 10,\n translate = DefaultTranslations,\n currentPage,\n className,\n onPageChange,\n onPageSizeChange,\n ...rest\n }: Props,\n ref\n) => {\n /** We use an internal state variable, because we don't want to fire onCurrentPageChange whenever onChange fires on the input. Rather, only when the Enter key is pressed. */\n const [internalCurrentPage, setInternalCurrentPage] = useState(currentPage?.toString() || \"1\");\n const calculateAmountOfPages = () => {\n if (!totalElements) return 1;\n\n if (Math.ceil(totalElements / pageSize) < 1) {\n return 1;\n }\n\n return Math.ceil(totalElements / pageSize);\n };\n\n const onEnterListener = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.code === \"Enter\") {\n onPageChange(Number(internalCurrentPage));\n }\n };\n\n const renderCurrentPageTranslation = () => {\n const amountOfPages = calculateAmountOfPages();\n\n if (amountOfPages) {\n const splitCurrentPageTranslation = translate.currentPage.split(\" \");\n\n return splitCurrentPageTranslation.map(string => {\n if (string.includes(\"%1\")) {\n return (\n <Fragment key={string}>\n <Label\n id=\"current-value-input-label\"\n htmlFor=\"current-value-input\"\n className={`${readyclasses[\"sr-only\"]} ${classes[\"current-value-input-label\"]}`}\n >\n {translate.currentPageLabel}\n </Label>\n <Input\n aria-labelledby=\"current-value-input-label\"\n key=\"input\"\n id=\"current-value-input\"\n type=\"text\"\n size={currentPage?.toString().length}\n max={calculateAmountOfPages()}\n wrapperProps={{ className: classes[\"current-value-input\"] }}\n onKeyUp={onEnterListener}\n onBlur={(event: React.ChangeEvent<HTMLInputElement>) =>\n onPageChange(Number(event.target.value))\n }\n onChange={(e: React.ChangeEvent<HTMLInputElement>) =>\n setInternalCurrentPage(e.target.value)\n }\n name=\"current-value-input\"\n value={internalCurrentPage}\n className={`${classes[\"form-element\"]} ${classes[\"current-page-input\"]}`}\n />\n </Fragment>\n );\n }\n\n if (string.includes(\"%2\")) {\n return (\n <div key={string}>\n <strong>{string.replace(\"%2\", amountOfPages.toString())}</strong> \n </div>\n );\n }\n\n return <div key={string}>{string} </div>;\n });\n }\n\n return null;\n };\n\n const onPageSizeChangeHandler = (event: React.ChangeEvent<HTMLSelectElement>) => {\n const pageSizeNumber = Number(event.target.value) as PageSize;\n onPageSizeChange(pageSizeNumber);\n };\n\n const onPageChangeHandler = (pageToGoTo: number) => {\n onPageChange(pageToGoTo);\n };\n\n return (\n <div\n {...rest}\n ref={ref}\n className={`${classes[\"pagination-wrapper\"]} ${className ? className : \"\"}`}\n >\n {totalElements && (\n <div className={classes[\"total\"]}>\n <span tabIndex={0}>\n {translate.totalItems}: <span>{totalElements}</span>\n </span>\n </div>\n )}\n <div className={classes[\"pagination\"]}>\n {pageSize && (\n <div className={classes[\"per-page\"]}>\n <Label id=\"page-size-select-label\">{translate.itemsPerPage}</Label>\n <Select\n labeledBy=\"page-size-select-label\"\n className={`${classes[\"form-element\"]} ${classes[\"page-size-select\"]}`}\n value={pageSize.toString()}\n onChange={onPageSizeChangeHandler}\n >\n <Option value=\"10\">10</Option>\n <Option value=\"25\">25</Option>\n <Option value=\"50\">50</Option>\n </Select>\n </div>\n )}\n <Fragment>\n {!!((currentPage && currentPage > 2) || (currentPage && currentPage > 1)) && (\n <div className={classes[\"previous\"]}>\n {currentPage > 2 && (\n <IconButton\n title=\"first\"\n onClick={() => onPageChangeHandler(0)}\n data-paginate=\"first\"\n >\n <Icon icon={Icons.NavigationFirst} />\n </IconButton>\n )}\n {currentPage > 1 && (\n <IconButton\n title=\"previous\"\n onClick={() => onPageChangeHandler(currentPage - 1)}\n data-paginate=\"previous\"\n >\n <Icon icon={Icons.ChevronLeft} />\n </IconButton>\n )}\n </div>\n )}\n {totalElements && !!calculateAmountOfPages() && (\n <div className={classes[\"page\"]}>{renderCurrentPageTranslation()}</div>\n )}\n <div className={classes[\"next\"]}>\n {!!(\n (currentPage !== undefined && currentPage < calculateAmountOfPages()!) ||\n (currentPage !== undefined && !totalElements)\n ) && (\n <IconButton\n title=\"next\"\n onClick={() => onPageChangeHandler(currentPage + 1)}\n data-paginate=\"next\"\n >\n <Icon icon={Icons.ChevronRight} />\n </IconButton>\n )}\n {!!(currentPage && totalElements && currentPage < calculateAmountOfPages()! - 1) && (\n <IconButton\n title=\"last\"\n onClick={() => onPageChangeHandler(totalElements / pageSize)}\n data-paginate=\"last\"\n >\n <Icon icon={Icons.NavigationLast} />\n </IconButton>\n )}\n </div>\n </Fragment>\n </div>\n </div>\n );\n};\n\nexport const Pagination = React.forwardRef(PaginationComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useEffect, useState } from \"react\";\nimport { generateID } from \"../util/helper\";\n\ninterface Arguments {\n componentToRepeat: React.ReactElement;\n}\n\nexport const useRepeater = <T>({ componentToRepeat }: Arguments) => {\n const [repeatedComponents, setRepeatedComponents] = useState<JSX.Element[]>([]);\n\n useEffect(() => {\n repeat();\n }, []);\n\n const repeat = () => {\n const clonedComponent = React.cloneElement(componentToRepeat, { key: generateID(20) });\n\n setRepeatedComponents(prevState => [...prevState, clonedComponent]);\n };\n\n const remove = (componentToRemove: React.ReactElement<T>) => {\n const newRepeatedComponents = repeatedComponents.filter(\n component => component !== componentToRemove\n );\n\n setRepeatedComponents(newRepeatedComponents);\n };\n\n return {\n repeatedComponents,\n repeat,\n remove\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport const labelId = (id: string) => `${id}-label`;\nexport const descriptionId = (id: string) => `${id}-description`;\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, useEffect, useRef } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { useGetDomRoot } from \"../../hooks/useGetDomRoot\";\nimport classes from \"./BaseModal.module.scss\";\nimport { labelId, descriptionId } from \"./BaseModalContext\";\n\nconst SCROLL_PROPERTY_NAME = \"overflow\";\nconst SCROLL_PROPERTY_VALUE = \"hidden\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n id: string;\n children: React.ReactNode;\n open: boolean;\n onClose?: (event?: React.MouseEvent<HTMLElement>) => unknown;\n className?: string;\n containerProps?: ComponentPropsWithRef<\"div\">;\n backdropProps?: ComponentPropsWithRef<\"div\">;\n labelledby?: string;\n describedby?: string;\n disableEscapeKeyDown?: boolean;\n disableBackdrop?: boolean;\n forceContainerOpen?: boolean;\n zIndex?: number;\n domRoot?: HTMLElement;\n}\n\nexport const useSetBodyScroll = (open: boolean) => {\n const hideBodyScroll = () => {\n document.body.style[SCROLL_PROPERTY_NAME] = SCROLL_PROPERTY_VALUE;\n };\n\n const showBodyScroll = () => {\n const allModalsClosed =\n document.querySelectorAll(\"[role=dialog][data-hidden=false]\").length === 0;\n if (allModalsClosed) {\n document.body.style.removeProperty(SCROLL_PROPERTY_NAME);\n }\n };\n\n useEffect(() => {\n if (open) {\n hideBodyScroll();\n } else {\n showBodyScroll();\n }\n }, [open]);\n};\n\nconst BaseModalComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n id,\n children,\n open,\n onClose,\n className = \"\",\n containerProps,\n backdropProps,\n labelledby,\n describedby,\n disableEscapeKeyDown = false,\n disableBackdrop = false,\n forceContainerOpen = false,\n zIndex,\n domRoot,\n ...rest\n }: Props,\n ref\n) => {\n useSetBodyScroll(open);\n const wrappingDivRef = useRef(null);\n const { root } = useGetDomRoot(domRoot, wrappingDivRef);\n\n const handleEscKeyPress = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (!disableEscapeKeyDown && event.key === \"Escape\") {\n event.stopPropagation();\n onClose && onClose();\n }\n };\n\n const handleBackdropClick = () => !disableBackdrop && onClose && onClose();\n\n return (\n <div ref={wrappingDivRef}>\n {createPortal(\n <div\n {...rest}\n ref={ref}\n id={id}\n className={`${classes[\"modal\"]} ${open ? classes[\"visible\"] : \"\"} ${className}`}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={labelledby || labelId(id)}\n aria-describedby={describedby || descriptionId(id)}\n aria-hidden={!open}\n tabIndex={-1}\n data-hidden={!open}\n onKeyDown={handleEscKeyPress}\n style={{ zIndex }}\n >\n <div\n {...backdropProps}\n className={`${classes[\"backdrop\"]} ${backdropProps?.className ?? \"\"}`}\n onClick={handleBackdropClick}\n ></div>\n {forceContainerOpen ? (\n <div\n {...containerProps}\n aria-hidden={!open}\n hidden={!open}\n style={{ zIndex: zIndex && zIndex + 1 }}\n className={`${classes[\"container\"]} ${containerProps?.className ?? \"\"}`}\n >\n {children}\n </div>\n ) : (\n open && (\n <div\n {...containerProps}\n style={{ zIndex: zIndex && zIndex + 1 }}\n className={`${classes[\"container\"]} ${containerProps?.className ?? \"\"}`}\n >\n {children}\n </div>\n )\n )}\n </div>,\n root\n )}\n </div>\n );\n};\n\nexport const BaseModal = React.forwardRef(BaseModalComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { createContext } from \"react\";\nimport { SnackbarOptionsProps } from \"../interfaces\";\nimport { Item } from \"./SnackbarProvider\";\n\ninterface SnackbarContextProps {\n enqueueSnackbar: (title: string, content?: string, options?: SnackbarOptionsProps) => void;\n enqueueSuccessSnackbar: (title: string, content?: string, options?: SnackbarOptionsProps) => void;\n enqueueErrorSnackbar: (title: string, content?: string, options?: SnackbarOptionsProps) => void;\n setSnackbarHeight: (id: string, height: number) => void;\n snackbars: Item[];\n}\n\nconst SnackbarContext = createContext<SnackbarContextProps>({\n enqueueSnackbar: () => null,\n enqueueSuccessSnackbar: () => null,\n enqueueErrorSnackbar: () => null,\n setSnackbarHeight: () => null,\n snackbars: []\n});\n\ninterface Props {\n initialState: SnackbarContextProps;\n children?: React.ReactNode;\n}\n\nconst SnackbarContextProvider = ({ children, initialState }: Props) => {\n return <SnackbarContext.Provider value={initialState}>{children}</SnackbarContext.Provider>;\n};\n\nexport { SnackbarContextProvider, SnackbarContext, SnackbarContextProps };\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useContext } from \"react\";\nimport { SnackbarContext } from \"./SnackbarProvider/SnackbarStateProvider\";\n\nexport const useSnackbar = () => {\n const ctx = useContext(SnackbarContext);\n\n return {\n enqueueErrorSnackbar: ctx.enqueueErrorSnackbar,\n enqueueSuccessSnackbar: ctx.enqueueSuccessSnackbar,\n enqueueSnackbar: ctx.enqueueSnackbar\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n createRef,\n useEffect\n} from \"react\";\nimport classes from \"./BaseModalContent.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n id?: string;\n children: React.ReactNode;\n className?: string;\n disableAutoFocus?: boolean;\n}\n\nconst BaseModalContentComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { id, children, className = \"\", disableAutoFocus = false, ...rest }: Props,\n ref\n) => {\n const contentRef = createRef<HTMLDivElement>();\n\n useEffect(() => {\n if (!disableAutoFocus && ref) {\n (ref as React.RefObject<HTMLDivElement>).current?.focus();\n } else if (!disableAutoFocus) {\n contentRef.current?.focus();\n }\n }, []);\n\n /**tabIndex is set to be able to do focus on that element which we need for catching keyDown events */\n return (\n <div\n {...rest}\n ref={ref || contentRef}\n id={id}\n className={`${classes[\"content\"]} ${className}`}\n tabIndex={-1}\n >\n {children}\n </div>\n );\n};\n\nexport const BaseModalContent = React.forwardRef(BaseModalContentComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport classes from \"./BaseModalActions.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children?: React.ReactNode;\n}\n\nconst BaseModalActionsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, className = \"\", ...rest }: Props,\n ref\n) => {\n return (\n <div {...rest} ref={ref} className={`${classes[\"actions\"]} ${className}`}>\n {children}\n </div>\n );\n};\n\nexport const BaseModalActions = React.forwardRef(BaseModalActionsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport {\n BaseModalActions,\n Props as BaseModalActionsProps\n} from \"../../BaseModal/BaseModalActions/BaseModalActions\";\nimport classes from \"./DialogActions.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<any>, BaseModalActionsProps {\n align: \"left\" | \"right\";\n}\n\nconst DialogActionsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, align, ...rest }: Props,\n ref\n) => {\n return (\n <BaseModalActions\n {...rest}\n ref={ref}\n className={`${classes[\"actions\"]}${align === \"left\" ? \" \" + classes[\"left\"] : \"\"}`}\n >\n {children}\n </BaseModalActions>\n );\n};\n\nexport const DialogActions = React.forwardRef(DialogActionsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport { Typography } from \"../../../Typography/Typography\";\nimport classes from \"./DialogTitle.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n id: string;\n title: string;\n}\n\nconst DialogTitleComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { id, title, ...rest }: Props,\n ref\n) => {\n return (\n <div {...rest} ref={ref} className={classes[\"header\"]}>\n <Typography id={id} className={classes[\"title\"]} tag=\"h1\" variant=\"h4\">\n {title}\n </Typography>\n </div>\n );\n};\n\nexport const DialogTitle = React.forwardRef(DialogTitleComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, useState } from \"react\";\nimport { BaseModal } from \"../BaseModal/BaseModal\";\nimport { BaseModalContent } from \"../BaseModal/BaseModalContent/BaseModalContent\";\nimport { DialogActions } from \"./DialogActions/DialogActions\";\nimport classes from \"./Dialog.module.scss\";\nimport { DialogTitle } from \"./DialogTitle/DialogTitle\";\nimport { Button, Props as ButtonProps } from \"../../Button/Button\";\nimport { labelId, descriptionId } from \"../BaseModal/BaseModalContext\";\nimport { generateID } from \"../../util/helper\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n id?: string;\n open: boolean;\n children: React.ReactNode;\n alignActions: \"left\" | \"right\";\n onClose: () => void;\n title: string;\n primaryAction: Action;\n secondaryAction?: Action;\n zIndex?: number;\n disableEscapeKeyDown?: boolean;\n}\n\nexport interface Action extends Omit<ButtonProps, \"variant\" | \"ref\"> {\n label: string;\n onClick: (event?: React.MouseEvent<HTMLButtonElement>) => unknown;\n}\n\nconst DialogComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n id,\n open,\n children,\n alignActions,\n onClose,\n title,\n primaryAction,\n secondaryAction,\n zIndex,\n disableEscapeKeyDown = true,\n ...rest\n }: Props,\n ref\n) => {\n const [dialogId] = useState(id ?? generateID(20));\n const { label: primaryLabel, ...restOfPrimaryAction } = primaryAction;\n const PrimaryButton = (\n <Button key=\"primary\" {...restOfPrimaryAction}>\n {primaryLabel}\n </Button>\n );\n const TertiaryButton =\n secondaryAction &&\n (function () {\n const { label: secondaryLabel, ...restOfSecondaryAction } = secondaryAction;\n return (\n <Button key=\"tertiary\" variant=\"text\" {...restOfSecondaryAction}>\n {secondaryLabel}\n </Button>\n );\n })();\n\n const onHiddenInputKeyPress = (event: React.KeyboardEvent<HTMLInputElement>) => {\n /** It has to be here because then we will need to check if user doesn't click tab to select action button and want to do another action then primary one? */\n if (event.key === \"Enter\") {\n primaryAction.onClick();\n }\n };\n\n return (\n <BaseModal\n {...rest}\n ref={ref}\n id={dialogId}\n className={classes[\"dialog\"]}\n containerProps={{ className: classes[\"container\"] }}\n open={open}\n disableBackdrop\n onClose={onClose}\n zIndex={zIndex}\n disableEscapeKeyDown={disableEscapeKeyDown}\n >\n <DialogTitle id={labelId(dialogId)} title={title} />\n <BaseModalContent\n id={descriptionId(dialogId)}\n className={classes[\"content\"]}\n disableAutoFocus\n >\n {children}\n </BaseModalContent>\n <DialogActions align={alignActions}>\n {alignActions === \"left\"\n ? [PrimaryButton, TertiaryButton]\n : [TertiaryButton, PrimaryButton]}\n </DialogActions>\n <input\n autoFocus\n aria-hidden={true}\n style={{\n position: \"absolute\",\n width: 0,\n height: 0,\n opacity: 0\n }}\n maxLength={0}\n tabIndex={-1}\n onKeyPress={onHiddenInputKeyPress}\n />\n </BaseModal>\n );\n};\n\nexport const Dialog = React.forwardRef(DialogComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport classes from \"./BaseModalHeader.module.scss\";\nimport { IconButton } from \"../../../Button/IconButton\";\nimport { Icon, Icons } from \"../../../Icon/Icon\";\nimport { Typography } from \"../../../Typography/Typography\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n id: string;\n title: string;\n children?: React.ReactNode;\n onClose?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n}\n\nconst BaseModalHeaderComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { id, title, children, onClose, ...rest }: Props,\n ref\n) => {\n return (\n <div {...rest} ref={ref} className={classes[\"header\"]}>\n <div className={classes[\"headline\"]}>\n <Typography id={id} className={classes[\"title\"]} tag=\"h1\" variant=\"h4\">\n {title}\n </Typography>\n <IconButton onClick={onClose} className={classes[\"closeBtn\"]} title=\"close modal\">\n <Icon icon={Icons.Times} />\n </IconButton>\n </div>\n {children}\n </div>\n );\n};\n\nexport const BaseModalHeader = React.forwardRef(BaseModalHeaderComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport { Dialog } from \"../../Dialog/Dialog\";\nimport { Typography } from \"../../../Typography/Typography\";\nimport { DataAttributeKey } from \"../../../interfaces\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n open: boolean;\n discardChangesButtonLabel: string;\n keepEditingButtonLabel: string;\n contentLabel: string;\n titleLabel: string;\n [dataAttribute: DataAttributeKey]: any;\n onKeepEditing: () => void;\n onDiscardChanges: () => void;\n}\n\nconst DiscardChangesDialogComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n open,\n onKeepEditing,\n onDiscardChanges,\n discardChangesButtonLabel,\n keepEditingButtonLabel,\n contentLabel,\n titleLabel,\n ...rest\n }: Props,\n ref\n) => {\n return (\n <Dialog\n {...rest}\n ref={ref}\n open={open}\n alignActions=\"left\"\n title={titleLabel}\n onClose={onKeepEditing}\n primaryAction={{\n label: discardChangesButtonLabel,\n onClick: onDiscardChanges\n }}\n secondaryAction={{\n label: keepEditingButtonLabel,\n onClick: onKeepEditing\n }}\n disableEscapeKeyDown={false}\n >\n <Typography variant=\"body\" spacing={{ margin: 0 }}>\n {contentLabel}\n </Typography>\n </Dialog>\n );\n};\n\nexport const DiscardChangesDialog = React.forwardRef(DiscardChangesDialogComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { Fragment, useState } from \"react\";\nimport { Modal, Props as ModalProps } from \"../Modal/Modal\";\nimport { ModalHeader, Props as ModalHeaderProps } from \"../Modal/ModalHeader/ModalHeader\";\nimport {\n DiscardChangesDialog,\n Props as DiscardChangesDialogProps\n} from \"./DiscardChangesDialog/DiscardChangesDialog\";\n\nexport interface Props extends Omit<ModalProps, \"onClose\"> {\n hasUnsavedChanges: () => boolean;\n onClose: (event?: React.MouseEvent<HTMLElement>) => unknown;\n headerProps: Omit<ModalHeaderProps, \"onClose\" | \"id\">;\n discardChangedDialogProps: Omit<\n DiscardChangesDialogProps,\n \"open\" | \"onKeepEditing\" | \"onDiscardChanges\"\n >;\n modalRef?: React.RefObject<HTMLDivElement>;\n dialogRef?: React.RefObject<HTMLDivElement>;\n}\n\nexport const DiscardChangesModal = ({\n id,\n children,\n headerProps,\n discardChangedDialogProps,\n modalRef,\n dialogRef,\n onClose,\n hasUnsavedChanges,\n ...rest\n}: Props) => {\n const [openDiscardChangesDialog, setOpenDiscardChangesDialog] = useState(false);\n\n const onCloseWrapper = () =>\n hasUnsavedChanges() ? setOpenDiscardChangesDialog(true) : onClose();\n\n const onDialogKeepEditing = () => {\n setOpenDiscardChangesDialog(false);\n };\n\n const onDialogDiscardChanges = () => {\n setOpenDiscardChangesDialog(false);\n onClose();\n };\n\n return (\n <Fragment>\n <Modal id={id} ref={modalRef} onClose={onCloseWrapper} {...rest}>\n <ModalHeader {...headerProps} id={`${id}-label`} onClose={onCloseWrapper} />\n {children}\n </Modal>\n <DiscardChangesDialog\n {...discardChangedDialogProps}\n ref={dialogRef}\n open={openDiscardChangesDialog}\n onKeepEditing={onDialogKeepEditing}\n onDiscardChanges={onDialogDiscardChanges}\n />\n </Fragment>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n TransitionEventHandler,\n useState,\n useRef,\n useCallback,\n useEffect\n} from \"react\";\nimport { Props as ModalProps, Modal } from \"../Modal/Modal\";\nimport classes from \"./SlideInModal.module.scss\";\n\nconst SlideInModalComponent: ForwardRefRenderFunction<HTMLDivElement, ModalProps> = (\n { children, id, open, ...rest }: ModalProps,\n ref\n) => {\n const [classHideOnTransition, setClassHideOnTransition] = useState<string>(\"hide\");\n const [controlledOpen, setControlledOpen] = useState(false);\n const containerRef = useRef(null);\n\n const onTransitionEnd: TransitionEventHandler<HTMLDivElement> = useCallback(\n e => {\n if (e.target === containerRef.current) {\n setClassHideOnTransition(prev => (prev ? \"\" : \"hide\"));\n if (!open && controlledOpen) {\n setControlledOpen(false);\n }\n }\n },\n [open]\n );\n\n useEffect(() => {\n open && setControlledOpen(open);\n }, [open]);\n\n return (\n <Modal\n {...rest}\n id={id}\n open={controlledOpen}\n className={`${classes[\"slide-in-modal\"]} ${open ? classes[\"visible\"] : \"\"} ${\n !open ? classes[classHideOnTransition] : \"\"\n }`}\n containerProps={{ className: classes[\"container\"] }}\n backdropProps={{ id: classes[\"backdrop-slide\"] }}\n onTransitionEnd={onTransitionEnd}\n ref={ref || containerRef}\n >\n {children}\n </Modal>\n );\n};\n\nexport { Props } from \"../Modal/Modal\";\n\nexport const SlideInModal = React.forwardRef(SlideInModalComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useContext, useEffect, useState } from \"react\";\nimport classes from \"./SnackbarContainer.module.scss\";\nimport { SnackbarContext } from \"../SnackbarProvider/SnackbarStateProvider\";\n\nexport interface Placement {\n vertical: \"top\" | \"bottom\";\n horizontal: \"start\" | \"center\" | \"end\";\n}\n\nexport interface Props {\n placement: Placement;\n children?: React.ReactNode;\n zIndex?: number;\n className?: string;\n}\n\nconst useSnackbarContainerHeightAnimation = () => {\n const { snackbars } = useContext(SnackbarContext);\n const [height, setHeight] = useState(0);\n const [justifyContent, setJustifyContent] = useState<\"flex-start\" | \"flex-end\">(\"flex-start\");\n const spaceBetweenSnackbars = 8;\n const exceedsMaximumVisibleSnackbars = snackbars.length >= 3;\n\n useEffect(() => {\n const allHeights = snackbars.map(snackbar => snackbar.height);\n\n let totalHeight = allHeights.reduce((prev, curr) => prev + curr, 0);\n\n totalHeight += (Math.min(snackbars.length, 3) - 1) * spaceBetweenSnackbars;\n\n /**\n * Once we reach the maximum amount of snackbars, they will start to disappear. We have to wait with reversing the justify-content until the last snackbar\n * has completed their animationIn. This is around 500ms. Then we want to reverse it, because otherwise whenever a snackbar disappears they shift up\n * and then down again, which looks really bad.\n * */\n if (exceedsMaximumVisibleSnackbars)\n setTimeout(() => {\n setJustifyContent(\"flex-end\");\n }, 500);\n\n if (height > totalHeight && justifyContent !== \"flex-end\") {\n setJustifyContent(\"flex-end\");\n } else if (height < totalHeight && justifyContent !== \"flex-start\") {\n setJustifyContent(\"flex-start\");\n }\n\n setHeight(totalHeight);\n }, [snackbars]);\n\n return { height, justifyContent };\n};\n\nexport const SnackbarContainer = ({ placement, children, zIndex, className, ...rest }: Props) => {\n const { height, justifyContent } = useSnackbarContainerHeightAnimation();\n\n return (\n <div\n {...rest}\n style={{ zIndex, height, justifyContent }}\n className={`${classes[\"snackbars\"]} ${classes[placement.horizontal]} ${\n classes[placement.vertical]\n } ${className ?? \"\"}`}\n >\n {children}\n </div>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useRef, useState } from \"react\";\n\nexport const useAnimation = <RefElement extends HTMLElement>(callback: () => void) => {\n const animatedObjectRef = useRef<RefElement>(null);\n /** We need to store flag that says us when to call the callback */\n const [animationStarted, setAnimationStarted] = useState(false);\n\n const onAnimationEnd = () => animationStarted && callback();\n\n useEffect(() => {\n animatedObjectRef.current?.addEventListener(\"animationend\", onAnimationEnd);\n return () => animatedObjectRef.current?.removeEventListener(\"animationend\", onAnimationEnd);\n }, [animationStarted]);\n\n return {\n ref: animatedObjectRef,\n animationStarted,\n startAnimation: () => setAnimationStarted(true)\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { useContext, useEffect, useRef } from \"react\";\nimport { IconButton } from \"../../../Button/IconButton\";\nimport { Icon, Icons } from \"../../../Icon/Icon\";\nimport { Variant, Actions } from \"../interfaces\";\nimport classes from \"./SnackbarItem.module.scss\";\nimport readyclasses from \"../../../readyclasses.module.scss\";\nimport { useAnimation } from \"../../../hooks/useAnimation\";\nimport { Typography } from \"../../../Typography/Typography\";\nimport { SnackbarContext } from \"../SnackbarProvider/SnackbarStateProvider\";\n\nconst textColor = \"var(--snackbar-text-color)\";\n\nexport interface Props {\n id: string;\n title: string;\n duration: number;\n variant: Variant;\n onClose: (key: string) => void;\n closeButtonTitle: string;\n content?: string;\n actions?: Actions;\n}\n\nconst useRegisterSnackbarHeight = (\n singleSnackbarRef: React.RefObject<HTMLDivElement>,\n snackbarId: string\n) => {\n const ctx = useContext(SnackbarContext);\n\n useEffect(() => {\n if (singleSnackbarRef.current) {\n ctx.setSnackbarHeight(snackbarId, singleSnackbarRef.current.getBoundingClientRect().height);\n }\n }, [singleSnackbarRef.current]);\n};\n\nexport const SnackbarItem = ({\n id,\n title,\n duration,\n variant,\n content,\n actions = [],\n onClose,\n closeButtonTitle\n}: Props) => {\n const timerHandler = useRef<ReturnType<typeof setTimeout>>();\n const onAnimationEnd = () => onClose(id);\n const { ref, animationStarted, startAnimation } = useAnimation<HTMLDivElement>(onAnimationEnd);\n\n useRegisterSnackbarHeight(ref, id);\n\n useEffect(() => {\n timerHandler.current = setTimeout(() => startAnimation(), duration);\n return () => {\n timerHandler.current && clearTimeout(timerHandler.current);\n };\n }, []);\n\n const onMouseEnter = () => {\n timerHandler.current && clearTimeout(timerHandler.current);\n };\n\n const onMouseLeave = () => {\n timerHandler.current = setTimeout(() => startAnimation(), duration);\n };\n\n const getVariantIcon = () => {\n if (variant === \"error\") {\n return Icons.Error;\n }\n return variant === \"success\" ? Icons.CheckmarkCircleBreakout : Icons.InfoCircle;\n };\n\n const actionButtons = actions.map((actionProp, index) => (\n <button\n key={index}\n {...actionProp}\n onClick={e => {\n onClose(id);\n actionProp.onClick && actionProp.onClick(e);\n }}\n className={classes[\"action-button\"]}\n >\n {actionProp.label}\n </button>\n ));\n\n return (\n <div\n ref={ref}\n aria-live=\"polite\"\n className={`${classes[\"snackbar\"]} ${classes[variant]} ${\n animationStarted ? readyclasses[\"slide-out\"] : readyclasses[\"slide-in\"]\n }`}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n >\n <Icon icon={getVariantIcon()} className={classes[\"icon\"]} />\n <div className={classes[\"container\"]}>\n <div className={classes[\"headline\"]}>\n <Typography className={classes[\"title\"]} variant=\"h4\" tag=\"span\">\n {title}\n </Typography>\n <IconButton\n id={classes[\"close-btn\"]}\n onClick={() => startAnimation()}\n title={closeButtonTitle}\n >\n <Icon icon={Icons.Times} color={textColor} />\n </IconButton>\n </div>\n {!!content && (\n <Typography className={classes[\"content\"]} variant=\"body\">\n {content}\n </Typography>\n )}\n {actionButtons.length > 0 && <div className={classes[\"actions\"]}>{actionButtons}</div>}\n </div>\n </div>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ReactNode, useRef, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\nimport { SnackbarContextProvider } from \"./SnackbarStateProvider\";\nimport { Actions, SnackbarOptionsProps, Variant } from \"../interfaces\";\nimport { Placement, SnackbarContainer } from \"../SnackbarContainer/SnackbarContainer\";\nimport { generateID } from \"../../../util/helper\";\nimport { SnackbarItem } from \"../SnackbarItem/SnackbarItem\";\nimport { useGetDomRoot } from \"../../../hooks/useGetDomRoot\";\n\n/** Short msg is when only title is provided. Long one when content or/and actions are provided (or type is error). */\ninterface Duration {\n long: number;\n short: number;\n}\n\nexport interface Props {\n closeButtonTitle: string;\n children?: ReactNode;\n placement?: Placement;\n stackSize?: number;\n domRoot?: HTMLElement;\n autoHideDuration?: Duration;\n className?: string;\n}\n\nexport interface Item {\n id: string;\n title: string;\n duration: number;\n height: number;\n variant: Variant;\n content?: string;\n actions?: Actions;\n onClose?: () => void;\n}\n\nexport const SnackbarProvider = (\n {\n closeButtonTitle,\n placement = { vertical: \"bottom\", horizontal: \"center\" },\n autoHideDuration = { long: 8000, short: 4000 },\n stackSize = 3,\n domRoot,\n children,\n className\n }: Props = { closeButtonTitle: \"\" }\n) => {\n const [snackbars, setSnackbars] = useState<Item[]>([]);\n const wrappingDivRef = useRef(null);\n const { root } = useGetDomRoot(domRoot, wrappingDivRef);\n\n const addSnackbar = (item: Item) => {\n setSnackbars(items => [...items, item]);\n };\n\n const setSnackbarHeight = (id: string, height: number) => {\n const newSnackbarsState = snackbars.map(snackbar => {\n if (snackbar.id !== id) {\n return snackbar;\n }\n\n return { ...snackbar, height };\n });\n\n setSnackbars(newSnackbarsState);\n };\n\n const getDuration = (variant: Variant, actions?: Actions, content?: string) => {\n const hasError = variant === \"error\";\n const hasContentOrActions = content || actions;\n if (hasError || hasContentOrActions) {\n return autoHideDuration.long;\n }\n return autoHideDuration.short;\n };\n\n const enqueueSnackbar = (\n title: string,\n content?: string,\n options: SnackbarOptionsProps = {}\n ): void => {\n const {\n variant = \"info\",\n actions,\n duration = getDuration(variant, actions, content),\n onClose\n } = options;\n const item: Item = {\n title,\n content,\n variant,\n actions,\n duration,\n height: 0,\n id: generateID(15, title),\n onClose\n };\n addSnackbar(item);\n };\n\n const enqueueSuccessSnackbar = (\n title: string,\n content?: string,\n options?: SnackbarOptionsProps\n ): void => {\n enqueueSnackbar(title, content, { ...options, variant: \"success\" });\n };\n\n const enqueueErrorSnackbar = (\n title: string,\n content?: string,\n options?: SnackbarOptionsProps\n ): void => {\n enqueueSnackbar(title, content, { ...options, variant: \"error\" });\n };\n\n const onItemClosed = (id: string) => {\n setSnackbars(items => [...items].filter(item => item.id !== id));\n };\n\n const snackbarList = snackbars.map((item, index) =>\n index < stackSize ? (\n <SnackbarItem\n {...item}\n key={item.id}\n onClose={() => {\n onItemClosed(item.id);\n item.onClose && item.onClose();\n }}\n closeButtonTitle={closeButtonTitle}\n />\n ) : null\n );\n\n const snackbarPortal = createPortal(\n <SnackbarContainer placement={placement} className={className}>\n {snackbarList}\n </SnackbarContainer>,\n root\n );\n\n return (\n <SnackbarContextProvider\n initialState={{\n enqueueSnackbar,\n enqueueSuccessSnackbar,\n enqueueErrorSnackbar,\n setSnackbarHeight,\n snackbars\n }}\n >\n {children}\n <div ref={wrappingDivRef}>{snackbarPortal}</div>\n </SnackbarContextProvider>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useState } from \"react\";\nimport { generateID } from \"../util/helper\";\n\nexport interface ConfigObject {\n name: string | undefined;\n errorMessage?: string;\n error?: boolean;\n parentErrorId?: string;\n helperText?: string;\n parentHelperId?: string;\n}\n\nexport const useFormSelector = (configObject: ConfigObject) => {\n const [identifier] = useState(generateID(15, configObject.name));\n const [describedBy, setDescribedBy] = useState(\"\");\n const [errorId] = useState(generateID(15, configObject.errorMessage));\n\n useEffect(() => {\n if (configObject.error && configObject.parentErrorId) {\n setDescribedBy(configObject.parentErrorId);\n }\n\n if (\n (!configObject.error && configObject.helperText) ||\n (!configObject.parentErrorId && !configObject.errorMessage && configObject.helperText)\n ) {\n setDescribedBy(`${identifier}`);\n }\n\n if (\n (!configObject.error && !configObject.helperText && configObject.parentHelperId) ||\n (!configObject.parentErrorId && !configObject.errorMessage && configObject.parentHelperId)\n ) {\n setDescribedBy(`${configObject.parentHelperId}`);\n }\n\n if (configObject.errorMessage && !configObject.parentErrorId && configObject.error) {\n setDescribedBy(errorId);\n }\n }, [identifier, configObject.error, configObject.parentErrorId]);\n\n return {\n describedBy,\n errorId,\n identifier\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactNode } from \"react\";\nimport classes from \"./FormHelperText.module.scss\";\nimport { Typography } from \"../../Typography/Typography\";\nimport { FormElement } from \"../form.interfaces\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\">, FormElement {\n children?: ReactNode;\n}\n\nconst FormHelperTextComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, error, className, ...rest }: Props,\n ref\n) => {\n return (\n <Typography\n {...rest}\n ref={ref}\n variant=\"sub-text\"\n tag=\"div\"\n className={`${classes[\"form-helper-text\"]} ${error ? classes.error : \"\"} ${className ?? \"\"}`}\n >\n {children}\n </Typography>\n );\n};\n\nexport const FormHelperText = React.forwardRef(FormHelperTextComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n createRef,\n ReactNode\n} from \"react\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { KeyValuePair } from \"../../interfaces\";\nimport { FormSelector } from \"../form.interfaces\";\nimport { FormHelperText, Props as FormHelperTextProps } from \"../FormHelperText/FormHelperText\";\nimport classes from \"./FormSelectorWrapper.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\">, FormSelector {\n children?: ReactNode;\n nestedChildren?: ReactNode;\n containerProps?: ComponentPropsWithRef<\"div\"> & KeyValuePair;\n helperProps?: FormHelperTextProps;\n disabled?: boolean;\n errorId?: string;\n identifier?: string;\n}\n\nconst FormSelectorWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n className,\n nestedChildren,\n containerProps,\n helperProps,\n error,\n disabled,\n helperText,\n errorMessage,\n parentErrorId,\n errorId,\n identifier,\n ...rest\n }: Props,\n ref\n) => {\n const helperRef = helperProps?.ref || createRef();\n\n return (\n <div\n {...rest}\n ref={ref}\n className={`${error ? classes[\"error\"] : \"\"} ${disabled ? classes[\"disabled\"] : \"\"} ${\n className ?? \"\"\n }`}\n >\n <div {...containerProps}>{children}</div>\n {(helperText || (helperProps && helperProps.children)) &&\n (!error || parentErrorId || !errorMessage) && (\n <FormHelperText\n {...helperProps}\n ref={helperRef}\n id={`${identifier}`}\n className={`${classes[\"helper-text\"]} ${helperProps?.className ?? \"\"} ${\n error ? classes[\"error\"] : \"\"\n }`}\n >\n {(helperProps && helperProps.children) || helperText}\n </FormHelperText>\n )}\n {errorMessage && !parentErrorId && error && (\n <span className={classes[\"error-message\"]}>\n <Icon className={classes[\"error-icon\"]} icon={Icons.Error} />\n <span id={errorId}>{errorMessage}</span>\n </span>\n )}\n {nestedChildren}\n </div>\n );\n};\n\nexport const FormSelectorWrapper = React.forwardRef(FormSelectorWrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ReactElement,\n ReactNode,\n useEffect\n} from \"react\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { Props as FormHelperTextProps } from \"../FormHelperText/FormHelperText\";\nimport classes from \"./Checkbox.module.scss\";\nimport { useFormSelector } from \"../../hooks/useFormSelector\";\nimport {\n FormSelectorWrapper,\n Props as FormSelectorWrapperProps\n} from \"../FormSelectorWrapper/FormSelectorWrapper\";\nimport { FormSelector } from \"../form.interfaces\";\n\nconst isToggle = (children: ReactNode) => (children as ReactElement)?.props?.[\"data-toggle\"];\n\nexport interface Props extends ComponentPropsWithRef<\"input\">, FormSelector {\n children: ReactNode;\n label?: string;\n indeterminate?: boolean;\n helperProps?: FormHelperTextProps;\n formSelectorWrapperProps?: FormSelectorWrapperProps;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst CheckboxComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (\n {\n children,\n name,\n helperText,\n helperProps,\n indeterminate,\n parentErrorId,\n errorMessage,\n disabled,\n label,\n parentHelperId,\n className,\n error,\n checked = false,\n formSelectorWrapperProps,\n onChange,\n ...rest\n }: Props,\n ref\n) => {\n const { errorId, identifier, describedBy } = useFormSelector({\n name,\n helperText,\n parentErrorId,\n errorMessage,\n error,\n parentHelperId\n });\n\n useEffect(() => {\n if (!name) {\n throw new Error(\"Please pass a 'name' prop to your <Checkbox> component.\");\n }\n\n if (typeof children === \"object\" && !isToggle(children) && indeterminate === undefined) {\n throw new Error(\n \"If you have nested checkboxes you have to manage the indeterminate state by passing a boolean to the `indeterminate` prop.\"\n );\n }\n }, []);\n\n const determineLabel = () => {\n if (label) {\n return label;\n } else if (children === undefined) {\n throw new Error(\n \"Please make sure to pass either a string or more Checkbox components as a child of your Checkbox component.\"\n );\n }\n\n if (\n typeof children === \"string\" ||\n (typeof children === \"object\" && (children as ReactElement).type === \"span\")\n ) {\n return children;\n }\n\n throw new Error(\n \"If you pass Checkboxes as a child component (to create nested checkbox tree) you need to pass a label to the parent checkbox.\"\n );\n };\n\n const renderNestedCheckboxes = () => (\n <ul className={classes[\"checkbox-list\"]}>\n {React.Children.map(children as ReactElement[], child => {\n return (\n <li>\n <Checkbox\n {...child.props}\n parentHelperId={parentHelperId}\n parentErrorId={parentErrorId}\n error={error}\n disabled={child.props.disabled ? child.props.disabled : disabled}\n >\n {child.props.children}\n </Checkbox>\n </li>\n );\n })}\n </ul>\n );\n\n const onChangeHandler = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (disabled) {\n return;\n }\n onChange && onChange(event);\n };\n\n const renderToggle = () => React.Children.toArray(children).filter(isToggle);\n\n const iconClasses = [classes[\"input\"], disabled ? classes[\"disabled\"] : \"\"];\n\n /** Default return value is the default checkbox */\n return (\n <FormSelectorWrapper\n {...formSelectorWrapperProps}\n className={`${classes[\"checkbox-wrapper\"]} ${className ? className : \"\"}`}\n containerProps={{ className: classes[\"checkbox-container\"] }}\n helperText={helperText}\n helperProps={helperProps}\n parentErrorId={parentErrorId}\n errorId={errorId}\n errorMessage={errorMessage}\n error={error}\n disabled={disabled}\n identifier={identifier}\n nestedChildren={\n typeof children === \"object\" && !isToggle(children) && renderNestedCheckboxes()\n }\n >\n <input\n {...rest}\n ref={ref}\n disabled={disabled}\n className={`${classes[\"native-input\"]} ${error ? classes[\"error\"] : \"\"}`}\n checked={checked}\n onChange={onChangeHandler}\n aria-invalid={error as boolean}\n aria-checked={indeterminate ? \"mixed\" : checked}\n aria-describedby={describedBy}\n id={`${identifier}-checkbox`}\n name={name}\n type=\"checkbox\"\n />\n {renderToggle()}\n\n {indeterminate && <Icon className={iconClasses.join(\" \")} icon={Icons.MinusSquare} />}\n {checked && !indeterminate && (\n <Icon className={iconClasses.join(\" \")} icon={Icons.CheckmarkSquare} />\n )}\n {!checked && !indeterminate && <Icon className={iconClasses.join(\" \")} icon={Icons.Square} />}\n <label htmlFor={`${identifier}-checkbox`}>{determineLabel()}</label>\n </FormSelectorWrapper>\n );\n};\n\nexport const Checkbox = React.forwardRef(CheckboxComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { Props as HelperProps } from \"../FormHelperText/FormHelperText\";\nimport classes from \"./Radio.module.scss\";\nimport { useFormSelector } from \"../../hooks/useFormSelector\";\nimport { FormSelector } from \"../form.interfaces\";\nimport {\n FormSelectorWrapper,\n Props as FormSelectorWrapperProps\n} from \"../FormSelectorWrapper/FormSelectorWrapper\";\n\nexport interface Props extends ComponentPropsWithRef<\"input\">, FormSelector {\n children: string;\n value: string;\n formSelectorWrapperProps?: FormSelectorWrapperProps;\n helperProps?: HelperProps;\n}\n\nconst RadioComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (\n {\n children,\n disabled,\n className,\n value,\n name,\n helperText,\n parentErrorId,\n parentHelperId,\n error,\n errorMessage,\n checked = false,\n formSelectorWrapperProps,\n helperProps,\n onChange,\n ...rest\n }: Props,\n ref\n) => {\n const { errorId, identifier, describedBy } = useFormSelector({\n name,\n helperText,\n parentErrorId,\n errorMessage,\n error,\n parentHelperId\n });\n\n const onChangeHandler = (event: React.ChangeEvent<HTMLInputElement> | React.MouseEvent) => {\n if (disabled) {\n return;\n }\n /** We have to clone the native event we got here and change the \"target\" property to the value. Otherwise, this regular event has \"on\" as it's event.target.value, which is useless. */\n const nativeEvent: any = event.nativeEvent || event;\n const clonedEvent = new nativeEvent.constructor(nativeEvent.type, nativeEvent);\n\n Object.defineProperty(clonedEvent, \"target\", {\n writable: true,\n value: { value: value }\n });\n\n onChange && onChange(clonedEvent);\n };\n\n /** Default return value is the default radio */\n return (\n <FormSelectorWrapper\n {...formSelectorWrapperProps}\n className={`${classes[\"radio-wrapper\"]} ${className ?? \"\"}`}\n containerProps={{ className: classes[\"radio-container\"] }}\n helperText={helperText}\n helperProps={helperProps}\n parentErrorId={parentErrorId}\n errorId={errorId}\n errorMessage={errorMessage}\n error={error}\n disabled={disabled}\n identifier={identifier}\n >\n <input\n {...rest}\n ref={ref}\n disabled={disabled}\n tabIndex={0}\n className={`${classes[\"native-input\"]} ${error ? classes[\"error\"] : \"\"}`}\n onChange={onChangeHandler}\n checked={checked}\n aria-invalid={error ? true : false}\n aria-checked={checked}\n aria-describedby={describedBy}\n name={name}\n value={value}\n id={`${identifier}-radio`}\n type=\"radio\"\n />\n\n {checked && (\n <Icon\n className={`${classes[\"input\"]} ${disabled ? classes[\"disabled\"] : \"\"}`}\n icon={Icons.Radio}\n />\n )}\n {!checked && (\n <Icon\n className={`${classes[\"input\"]} ${disabled ? classes[\"disabled\"] : \"\"}`}\n icon={Icons.Circle}\n />\n )}\n\n <label onClick={onChangeHandler} htmlFor={`${identifier}-radio`}>\n {children}\n </label>\n </FormSelectorWrapper>\n );\n};\n\nexport const Radio = React.forwardRef(RadioComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, useState } from \"react\";\nimport classes from \"./Textarea.module.scss\";\nimport { FormElement } from \"../form.interfaces\";\nimport { useDetermineStatusIcon } from \"../../hooks/useDetermineStatusIcon\";\n\nexport interface Props extends ComponentPropsWithRef<\"textarea\">, FormElement {\n wrapperProps?: ComponentPropsWithRef<\"div\">;\n}\n\nconst TextareaComponent: ForwardRefRenderFunction<HTMLTextAreaElement, Props> = (\n {\n error = false,\n success = false,\n disabled = false,\n className,\n rows = 4,\n wrapperProps,\n onFocus,\n onBlur,\n ...rest\n }: Props,\n ref\n) => {\n const [focus, setFocus] = useState(false);\n\n const wrapperClasses = [classes[\"textarea-wrapper\"]];\n const outlineClasses = [classes[\"outline\"]];\n\n wrapperProps?.className && wrapperClasses.push(wrapperProps.className);\n disabled && wrapperClasses.push(classes[\"disabled\"]) && outlineClasses.push(classes[\"disabled\"]);\n error && wrapperClasses.push(classes[\"error\"]) && outlineClasses.push(classes[\"error\"]);\n focus && wrapperClasses.push(classes[\"focus\"]) && outlineClasses.push(classes[\"focus\"]);\n success && wrapperClasses.push(\"success\");\n\n const icon = useDetermineStatusIcon({ success, error });\n\n return (\n <div {...wrapperProps} className={wrapperClasses.join(\" \")}>\n <textarea\n {...rest}\n ref={ref}\n rows={rows}\n className={`${error ? classes[\"error\"] : \"\"} ${classes[\"textarea\"]} ${className ?? \"\"}`}\n disabled={disabled}\n onFocus={event => {\n setFocus(true);\n onFocus && onFocus(event);\n }}\n onBlur={event => {\n setFocus(false);\n onBlur && onBlur(event);\n }}\n />\n {icon}\n <span className={outlineClasses.join(\" \")}></span>\n </div>\n );\n};\n\nexport const Textarea = React.forwardRef(TextareaComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport { Checkbox, Props as CheckboxProps } from \"../Checkbox/Checkbox\";\nimport classes from \"./Toggle.module.scss\";\n\nexport interface Props\n extends ComponentPropsWithRef<\"input\">,\n Omit<CheckboxProps, \"indeterminate\" | \"errorMessage\" | \"error\" | \"children\" | \"label\"> {\n children: string;\n}\n\nconst ToggleComponent: ForwardRefRenderFunction<HTMLInputElement, Props> = (\n { children, checked, disabled, helperProps, ...rest }: Props,\n ref\n) => (\n <div className={classes[\"toggle-wrapper\"]}>\n <Checkbox\n {...rest}\n ref={ref}\n checked={checked}\n className={classes[\"checkbox\"]}\n helperProps={{ className: classes[\"toggle-helper\"], ...helperProps }}\n disabled={disabled}\n label={children}\n >\n <span\n data-toggle\n aria-hidden=\"true\"\n className={`${classes[\"toggle\"]} ${checked ? classes[\"checked\"] : \"\"} ${\n disabled ? classes[\"disabled\"] : \"\"\n } `}\n ></span>\n </Checkbox>\n </div>\n);\n\nexport const Toggle = React.forwardRef(ToggleComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactElement } from \"react\";\nimport classes from \"./FormControl.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children?: ReactElement | ReactElement[];\n grid?: 1 | 2 | 3;\n align?: \"top\" | \"start\" | \"middle\" | \"center\" | \"bottom\" | \"end\" | \"stretch\";\n error?: boolean;\n disabled?: boolean;\n}\n\nconst FormControlComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, disabled, error, className, grid, align = \"center\", ...rest }: Props,\n ref\n) => {\n const renderChildren = () =>\n React.Children.map(children, child => {\n if (!child) {\n return null;\n }\n\n const childElement = React.cloneElement(child, {\n disabled: child.props.disabled !== undefined ? child.props.disabled : disabled,\n error: child.props.error !== undefined ? child.props.error : error\n });\n\n if (grid && grid > 1) {\n return <div className={`${classes[\"col-\" + grid]} ${classes.column}`}>{childElement}</div>;\n }\n\n return childElement;\n });\n\n return (\n <div\n {...rest}\n ref={ref}\n data-formcontrol\n className={`${classes[\"form-control\"]} ${className ? className : \"\"} ${\n grid && grid > 1 ? `${classes.grid} ${classes[\"grid-\" + grid]}` : \"\"\n } ${classes[align]}`}\n >\n {renderChildren()}\n </div>\n );\n};\n\nexport const FormControl = React.forwardRef(FormControlComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n/** The empty className property on FormHelperText is on purpose! We want to basically \"filter\" out the className from helperProps because we're adding this to the surrounding div. This makes it so also the errormessage receives this styling. */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactChild } from \"react\";\nimport classes from \"./FormGroup.module.scss\";\nimport { FormHelperText, Props as HelperProps } from \"../FormHelperText/FormHelperText\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n children: ReactChild[] | ReactChild;\n error?: boolean;\n errorMessageIcon?: Icons;\n errorMessageIconPosition?: \"before\" | \"after\";\n errorMessage?: string;\n errorId?: string;\n helperIndent?: number;\n helperText?: string;\n helperId?: string;\n helperProps?: HelperProps;\n disabled?: boolean;\n}\n\nconst FormGroupComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n className,\n error,\n errorMessage,\n errorId,\n errorMessageIcon,\n errorMessageIconPosition = \"before\",\n helperText,\n helperId,\n helperProps,\n helperIndent,\n ...rest\n }: Props,\n ref\n) => {\n return (\n <div\n {...rest}\n ref={ref}\n className={`${classes[\"form-group\"]} ${error ? classes.error : \"\"} ${className ?? \"\"}`}\n >\n {children}\n\n {(helperText || (errorMessage && error)) && (\n <div\n style={{ marginLeft: `${helperIndent}px` }}\n className={`${classes[\"default-helper\"]} ${\n helperProps?.className ? helperProps.className : \"\"\n }`}\n >\n {((helperText && !error) || (helperText && error && !errorMessage)) && (\n <FormHelperText {...helperProps} className={\"\"} id={helperId}>\n {(helperProps && helperProps.children) || helperText}\n </FormHelperText>\n )}\n {error && errorMessage && (\n <span className={classes[\"error-message\"]}>\n <span className={classes.message} id={errorId}>\n {errorMessageIcon && errorMessageIconPosition === \"before\" && (\n <Icon\n className={`${classes[\"error-icon\"]} ${classes[\"error-icon-before\"]}`}\n icon={errorMessageIcon}\n />\n )}\n {errorMessage}\n {errorMessageIcon && errorMessageIconPosition === \"after\" && (\n <Icon\n className={`${classes[\"error-icon\"]} ${classes[\"error-icon-after\"]}`}\n icon={errorMessageIcon}\n />\n )}\n </span>\n </span>\n )}\n </div>\n )}\n </div>\n );\n};\n\nexport const FormGroup = React.forwardRef(FormGroupComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactElement } from \"react\";\nimport { FormGroup, Props as FormGroupProps } from \"../../FormGroup/FormGroup\";\nimport { Label, Props as LabelProps } from \"../../Label/Label\";\nimport classes from \"./Wrapper.module.scss\";\nimport { Props as HelperProps } from \"../../FormHelperText/FormHelperText\";\nimport { FormElement } from \"../../form.interfaces\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\">, FormGroupProps {\n children: ReactElement | ReactElement[];\n floatingLabelActive?: boolean;\n floatingLabel?: boolean;\n helperIndent?: number;\n label?: string;\n labelProps?: LabelProps;\n name: string;\n /** This does NOT add validation! It simply adds an asterix on the Label! */\n required?: boolean;\n innerClassName?: string;\n}\n\n/** For components that extend this component we create an interface (InputWrapper, SelectWrapper, etc.) */\nexport interface WrapperProps extends FormElement {\n errorMessage?: string;\n helperText?: string;\n helperProps?: HelperProps;\n label?: string;\n name: string;\n required?: boolean;\n disabled?: boolean;\n}\n\nconst WrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n className,\n error,\n errorMessage,\n errorId,\n errorMessageIcon,\n errorMessageIconPosition,\n helperText,\n helperId,\n floatingLabel = true,\n floatingLabelActive,\n required,\n helperProps,\n helperIndent,\n labelProps,\n label,\n disabled,\n name,\n innerClassName,\n ...rest\n }: Props,\n ref\n) => {\n const renderChildren = () =>\n React.Children.map(children, child =>\n React.cloneElement(child, {\n disabled\n })\n );\n\n const labelClasses = [];\n\n floatingLabel && labelClasses.push(classes[\"floating-label\"]);\n floatingLabel && floatingLabelActive && labelClasses.push(classes[\"floating-label-active\"]);\n labelProps?.className && labelClasses.push(labelProps.className);\n required && labelClasses.push(classes[\"required\"]);\n error && labelClasses.push(classes[\"error\"]);\n disabled && labelClasses.push(classes[\"disabled\"]);\n\n return (\n <div {...rest} ref={ref} className={`${classes.wrapper} ${className ?? \"\"}`}>\n <FormGroup\n error={error}\n errorMessage={errorMessage}\n errorId={errorId}\n errorMessageIcon={errorMessageIcon}\n errorMessageIconPosition={errorMessageIconPosition}\n helperText={helperText}\n helperId={helperId}\n helperProps={helperProps}\n helperIndent={helperIndent}\n >\n <div\n className={`${floatingLabel ? classes[\"floating-wrapper\"] : \"\"} ${\n innerClassName ? innerClassName : \"\"\n }`}\n >\n {label && (\n <Label\n {...labelProps}\n className={`${classes.label} ${labelClasses.join(\" \")}`}\n htmlFor={name}\n >\n {label}\n </Label>\n )}\n {renderChildren()}\n </div>\n </FormGroup>\n </div>\n );\n};\n\nexport const Wrapper = React.forwardRef(WrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useState } from \"react\";\nimport { generateID } from \"../util/helper\";\nimport { Type as InputTypes } from \"../Form/Input/Input\";\n\nexport const useWrapper = (value?: string, placeholder?: string, type?: InputTypes) => {\n const [helperId] = useState(generateID(20));\n const [errorId] = useState(generateID(20));\n const [labelId] = useState(generateID(20));\n const [floatingLabelActive, setFloatingLabelActive] = useState(false);\n const [hasFocus, setHasFocus] = useState(false);\n\n useEffect(() => {\n if (\n (value?.length && value.length > 0) ||\n placeholder ||\n type === \"datetime-local\" ||\n type === \"time\" ||\n type === \"date\"\n ) {\n setFloatingLabelActive(true);\n }\n }, []);\n\n useEffect(() => {\n if ((value?.length && value.length > 0) || hasFocus) {\n setFloatingLabelActive(true);\n } else if (\n !placeholder &&\n !hasFocus &&\n type !== \"datetime-local\" &&\n type !== \"time\" &&\n type !== \"date\"\n ) {\n setFloatingLabelActive(false);\n }\n }, [value, placeholder, type, hasFocus]);\n\n return {\n helperId,\n errorId,\n labelId,\n floatingLabelActive,\n setFloatingLabelActive,\n hasFocus,\n setHasFocus\n };\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { Input, Type, Props as InputProps } from \"../../Input/Input\";\nimport classes from \"./InputWrapper.module.scss\";\nimport { Wrapper, WrapperProps } from \"../Wrapper/Wrapper\";\nimport { useWrapper } from \"../../../hooks/useWrapper\";\nimport { remToPx } from \"../../../util/helper\";\n\ninterface PartialInputProps extends Partial<InputProps> {}\n\nexport interface Props extends ComponentPropsWithRef<\"div\">, WrapperProps {\n label: string;\n type: Type;\n name: string;\n inputProps?: PartialInputProps;\n value: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n onBlur?: (event: React.FocusEvent<HTMLInputElement>) => void;\n onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;\n}\n\nconst useLabelOffset = (\n input: React.RefObject<HTMLInputElement>,\n floatingLabelActive: boolean,\n prefix?: string\n) => {\n const [labelOffset, setLabelOffset] = useState({});\n\n const resetLabelOffset = () => setLabelOffset({ left: undefined });\n\n useEffect(() => {\n if (input.current && prefix) {\n if (floatingLabelActive) {\n resetLabelOffset();\n } else {\n const spacingBetweenPrefixAndInput = 4;\n const prefixDifference =\n getComputedStyle(input.current).paddingLeft + spacingBetweenPrefixAndInput;\n setLabelOffset({ left: `${prefixDifference}px` });\n }\n }\n }, [input.current, prefix, floatingLabelActive]);\n\n return { labelOffset };\n};\n\nconst InputWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n type,\n name,\n inputProps,\n helperText,\n helperProps,\n value,\n className,\n error,\n success,\n onChange,\n onBlur,\n onFocus,\n disabled,\n ...rest\n }: Props,\n ref\n) => {\n const {\n errorId,\n floatingLabelActive,\n setFloatingLabelActive,\n hasFocus,\n setHasFocus,\n helperId,\n labelId\n } = useWrapper(value, inputProps?.placeholder, type);\n const { prefix, suffix } = inputProps || {};\n const input = useRef<HTMLInputElement>(null);\n const hasValueOrActiveFloatingLabel = !!value || floatingLabelActive;\n const helperIndent = window.innerWidth >= remToPx(30) ? remToPx(1.25) : remToPx(1);\n const { labelOffset } = useLabelOffset(\n (inputProps && (inputProps.ref as React.RefObject<HTMLInputElement>)) || input,\n floatingLabelActive,\n prefix\n );\n\n const labelClasses = [classes[\"input-label\"]];\n hasFocus && labelClasses.push(classes[\"focus\"]);\n\n const inputWrapperClasses = [];\n floatingLabelActive && inputWrapperClasses.push(classes[\"floating-label-active\"]);\n inputProps?.wrapperProps?.className &&\n inputWrapperClasses.push(inputProps?.wrapperProps?.className);\n disabled && inputWrapperClasses.push(classes[\"disabled\"]);\n\n return (\n <Wrapper\n {...rest}\n ref={ref}\n name={name}\n className={`${classes[\"input-wrapper\"]} ${className ?? \"\"}`}\n labelProps={{\n id: labelId,\n className: labelClasses.join(\" \"),\n style: { ...labelOffset }\n }}\n floatingLabelActive={floatingLabelActive}\n errorId={errorId}\n error={error}\n helperId={helperId}\n helperText={helperText}\n helperProps={{\n ...helperProps,\n className: `${classes[\"input-wrapper-helper\"]} ${helperProps?.className ?? \"\"} `\n }}\n helperIndent={helperIndent}\n disabled={disabled}\n >\n <Input\n {...inputProps}\n prefix={hasValueOrActiveFloatingLabel ? prefix : \"\"}\n suffix={hasValueOrActiveFloatingLabel ? suffix : \"\"}\n wrapperProps={{\n className: inputWrapperClasses.join(\" \")\n }}\n ref={(inputProps && inputProps.ref) || input}\n aria-labelledby={labelId}\n aria-describedby={error ? errorId : helperId}\n onChange={onChange}\n onFocus={e => {\n onFocus && onFocus(e);\n setHasFocus(true);\n setFloatingLabelActive(true);\n }}\n onBlur={e => {\n onBlur && onBlur(e);\n setHasFocus(false);\n e.target.value ||\n e.target.placeholder ||\n inputProps?.placeholder?.length ||\n type === \"datetime-local\" ||\n type === \"time\" ||\n type === \"date\"\n ? setFloatingLabelActive(true)\n : setFloatingLabelActive(false);\n }}\n className={`${floatingLabelActive ? classes[\"floating-label\"] : \"\"} ${\n inputProps?.className ?? \"\"\n }`}\n name={name}\n success={success}\n error={error}\n id={name}\n value={value}\n type={type}\n />\n </Wrapper>\n );\n};\n\nexport const InputWrapper = React.forwardRef(InputWrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ReactChild,\n ReactElement\n} from \"react\";\nimport classes from \"./SelectWrapper.module.scss\";\nimport { Wrapper, WrapperProps } from \"../Wrapper/Wrapper\";\nimport { Select, Props as SelectProps } from \"../../Select/Select\";\nimport { useWrapper } from \"../../../hooks/useWrapper\";\n\ninterface PartialSelectProps extends Partial<SelectProps> {}\n\nexport interface Props\n extends Omit<ComponentPropsWithRef<\"div\">, \"onChange\">,\n Omit<WrapperProps, \"onChange\" | \"error\"> {\n children: ReactChild | ReactChild[];\n placeholder?: string;\n value: string;\n error?: boolean;\n selectProps?: PartialSelectProps;\n onChange?: (event: React.ChangeEvent<HTMLSelectElement>) => void;\n}\n\nconst SelectWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n error,\n success,\n value,\n placeholder,\n selectProps,\n helperProps,\n onChange,\n ...rest\n }: Props,\n ref\n) => {\n const { errorId, floatingLabelActive, helperId, labelId } = useWrapper(value, placeholder);\n\n return (\n <Wrapper\n {...rest}\n ref={ref}\n floatingLabelActive={floatingLabelActive}\n errorId={errorId}\n helperId={helperId}\n labelProps={{ id: labelId, className: classes[\"select-label\"] }}\n helperProps={{\n ...helperProps,\n className: `${classes[\"select-helper-text\"]} ${helperProps?.className ?? \"\"}`\n }}\n error={error}\n >\n <Select\n {...selectProps}\n value={value}\n labeledBy={labelId}\n error={error}\n success={success}\n describedBy={error ? errorId : helperId}\n onChange={onChange}\n placeholder={placeholder}\n className={`${floatingLabelActive ? classes[\"floating-label-active\"] : \"\"} ${\n selectProps?.className ?? \"\"\n }`}\n >\n {children as ReactElement[]}\n </Select>\n </Wrapper>\n );\n};\n\nexport const SelectWrapper = React.forwardRef(SelectWrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, useState } from \"react\";\nimport classes from \"./TextareaWrapper.module.scss\";\nimport { Wrapper, WrapperProps } from \"../Wrapper/Wrapper\";\nimport { Textarea, Props as TextareaProps } from \"../../Textarea/Textarea\";\nimport { useWrapper } from \"../../../hooks/useWrapper\";\n\nexport interface Props\n extends Omit<\n ComponentPropsWithRef<\"div\">,\n \"onFocus\" | \"onChange\" | \"onBlur\" | \"onMouseEnter\" | \"onMouseLeave\"\n >,\n Omit<WrapperProps, \"onFocus\" | \"onChange\" | \"onBlur\" | \"onMouseEnter\" | \"onMouseLeave\"> {\n placeholder?: string;\n textareaProps?: TextareaProps;\n value: string;\n onFocus?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;\n onChange?: (event: React.ChangeEvent<HTMLTextAreaElement>) => void;\n onBlur?: (event: React.FocusEvent<HTMLTextAreaElement>) => void;\n onMouseEnter?: (event: React.MouseEvent<HTMLTextAreaElement>) => void;\n onMouseLeave?: (event: React.MouseEvent<HTMLTextAreaElement>) => void;\n}\n\nconst TextareaWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n name,\n error,\n success,\n value,\n label,\n placeholder,\n textareaProps,\n helperProps,\n onChange,\n onFocus,\n onBlur,\n onMouseEnter,\n onMouseLeave,\n disabled,\n ...rest\n }: Props,\n ref\n) => {\n const {\n errorId,\n floatingLabelActive,\n setFloatingLabelActive,\n hasFocus,\n setHasFocus,\n helperId,\n labelId\n } = useWrapper(value, placeholder);\n const [hover, setHover] = useState(false);\n\n const wrapperClasses: string[] = [];\n\n hasFocus && wrapperClasses.push(classes[\"focus\"]);\n hover && wrapperClasses.push(classes[\"hover\"]);\n disabled && wrapperClasses.push(classes[\"disabled\"]);\n error && wrapperClasses.push(classes[\"error\"]);\n\n return (\n <Wrapper\n {...rest}\n ref={ref}\n disabled={disabled}\n labelProps={{\n id: labelId,\n className: `${classes[\"textarea-label\"]} ${wrapperClasses.join(\" \")}`\n }}\n name={name}\n label={label}\n helperId={helperId}\n helperProps={{\n ...helperProps,\n className: classes[\"textarea-helper-text\"]\n }}\n error={error}\n floatingLabelActive={floatingLabelActive}\n errorId={errorId}\n >\n <Textarea\n {...textareaProps}\n error={error}\n aria-labelledby={label && labelId}\n aria-describedby={error ? errorId : helperId}\n placeholder={placeholder}\n name={name}\n id={name}\n value={value}\n success={success}\n onChange={onChange}\n onFocus={e => {\n onFocus && onFocus(e);\n setHasFocus(true);\n setFloatingLabelActive(true);\n }}\n onBlur={e => {\n onBlur && onBlur(e);\n setHasFocus(false);\n e.target.value || e.target.placeholder || textareaProps?.placeholder?.length\n ? setFloatingLabelActive(true)\n : setFloatingLabelActive(false);\n }}\n onMouseEnter={e => {\n onMouseEnter && onMouseEnter(e);\n setHover(true);\n }}\n onMouseLeave={e => {\n onMouseLeave && onMouseLeave(e);\n setHover(false);\n }}\n className={`${classes[\"textarea\"]} ${error ? classes[\"error\"] : \"\"}`}\n wrapperProps={{\n className: `${wrapperClasses.join(\" \")} ${classes[\"textarea-wrapper\"]}`\n }}\n />\n </Wrapper>\n );\n};\n\nexport const TextareaWrapper = React.forwardRef(TextareaWrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ReactNode,\n ReactElement\n} from \"react\";\nimport readyclasses from \"../../readyclasses.module.scss\";\nimport classes from \"./Fieldset.module.scss\";\nimport { Typography, Variant } from \"../../Typography/Typography\";\nimport { Input } from \"../Input/Input\";\nimport { Select } from \"../Select/Select\";\nimport { Radio } from \"../Radio/Radio\";\nimport { Checkbox } from \"../Checkbox/Checkbox\";\nimport { Textarea } from \"../Textarea/Textarea\";\nimport { Toggle } from \"../Toggle/Toggle\";\nimport { Label } from \"../Label/Label\";\nimport { FormControl } from \"../FormControl/FormControl\";\nimport { FormSelectorWrapper } from \"../FormSelectorWrapper/FormSelectorWrapper\";\nimport { FormHelperText } from \"../FormHelperText/FormHelperText\";\nimport { InputWrapper } from \"../Wrapper/InputWrapper/InputWrapper\";\nimport { SelectWrapper } from \"../Wrapper/SelectWrapper/SelectWrapper\";\nimport { TextareaWrapper } from \"../Wrapper/TextareaWrapper/TextareaWrapper\";\n\nexport interface Props extends ComponentPropsWithRef<\"fieldset\"> {\n children?: ReactElement | ReactElement[];\n legend: string;\n legendStyle?: Variant;\n hideLegend?: boolean;\n background?: string;\n noPadding?: boolean;\n noBackground?: boolean;\n required?: boolean;\n error?: boolean;\n disablePropagation?: boolean;\n}\n\nconst FieldsetComponent: ForwardRefRenderFunction<HTMLFieldSetElement, Props> = (\n {\n children,\n className,\n legend,\n legendStyle = \"body\",\n hideLegend = false,\n noBackground,\n background = noBackground ? \"\" : \"#FFF\",\n noPadding = false,\n disabled = false,\n required = false,\n error = false,\n disablePropagation = false,\n ...rest\n }: Props,\n ref\n) => {\n const renderChildren = () => {\n if (!children) {\n return;\n }\n\n /* All right, so the issue is that whenever we try to add disabled and error to a component that doesn't accept it,\n React will throw an error. However, it might occur that we want a component inside of Fieldset because of aesthetic purposes\n (fieldset applies a sort of container with white background and if we want to display it inside of this container... then yea).\n So instead we supply an array of components that we want to add the disabled and error prop to and check if child.type equals one of these. */\n const allowedComponents: ReactNode[] = [\n Input,\n Select,\n Radio,\n Checkbox,\n Textarea,\n Toggle,\n Label,\n FormControl,\n FormSelectorWrapper,\n FormHelperText,\n InputWrapper,\n SelectWrapper,\n TextareaWrapper\n ];\n\n return React.Children.map(children, (child: ReactElement) => {\n if (allowedComponents.includes(child.type) && !disablePropagation) {\n return React.cloneElement(child, {\n disabled: child.props.disabled ?? disabled,\n error: child.props.error ?? error\n });\n }\n\n return child;\n });\n };\n\n return (\n <fieldset\n {...rest}\n ref={ref}\n disabled={disabled}\n style={{ backgroundColor: background, ...rest.style }}\n className={`${classes.fieldset} ${noPadding ? classes[\"no-padding\"] : \"\"} ${className ?? \"\"}`}\n >\n {legend && <legend className={readyclasses[\"sr-only\"]}>{legend}</legend>}\n {legend && !hideLegend && (\n <Typography\n variant={legendStyle}\n tag=\"span\"\n aria-hidden=\"true\"\n className={`${classes[\"legend\"]} ${required ? classes[\"required\"] : \"\"} ${\n error ? classes[\"error\"] : \"\"\n }`}\n >\n {legend}\n </Typography>\n )}\n {renderChildren()}\n </fieldset>\n );\n};\n\nexport const Fieldset = React.forwardRef(FieldsetComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ComponentPropsWithRef, ForwardRefRenderFunction, ReactNode } from \"react\";\nimport classes from \"./Form.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"form\"> {\n children?: ReactNode;\n}\n\nconst FormComponent: ForwardRefRenderFunction<HTMLFormElement, Props> = (\n { children, className, ...rest }: Props,\n ref\n) => {\n return (\n <form ref={ref} className={`${classes.form} ${className ?? \"\"}`} {...rest}>\n {children}\n </form>\n );\n};\n\nexport const Form = React.forwardRef(FormComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ReactElement,\n useEffect\n} from \"react\";\nimport classes from \"./RadioWrapper.module.scss\";\nimport { Wrapper, WrapperProps } from \"../Wrapper/Wrapper\";\nimport { useWrapper } from \"../../../hooks/useWrapper\";\nimport { Icons } from \"../../../Icon/Icon\";\nimport { Fieldset, Props as FieldsetProps } from \"../../../Form/Fieldset/Fieldset\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\">, WrapperProps {\n children: ReactElement | ReactElement[];\n fieldsetProps: FieldsetProps;\n value: string;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst RadioWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n children,\n error,\n name,\n helperText,\n helperProps,\n fieldsetProps,\n value,\n onChange,\n disabled,\n ...rest\n }: Props,\n ref\n) => {\n const { errorId, helperId } = useWrapper(value);\n\n useEffect(() => {\n if (fieldsetProps.legend === undefined) {\n console.error(\n `You should give your Fieldset component a legend prop so a legend element is rendered. This error was thrown in RadioWrapper. You can add this legend prop through the fieldsetProps prop by passing an object (fieldsetProps={{ legend: \"legend here\" }})`\n );\n }\n }, []);\n\n const renderChildren = () =>\n React.Children.map(children, child =>\n React.cloneElement(child, {\n parentErrorId: errorId,\n error: error,\n checked: child.props.value === value,\n name: name,\n parentHelperId: helperText ? helperId : false,\n onChange: onChange,\n disabled: child.props.disabled !== undefined ? child.props.disabled : disabled\n })\n );\n\n return (\n <Fieldset {...fieldsetProps} error={error} disabled={disabled}>\n <Wrapper\n {...rest}\n ref={ref}\n disabled={disabled}\n name={name}\n helperId={helperId}\n helperText={helperText}\n helperProps={{\n ...helperProps,\n className: `${classes[\"radio-wrapper-helper\"]} ${\n error ? classes[\"radio-wrapper-error\"] : \"\"\n } ${helperProps?.className ?? \"\"}`\n }}\n error={error}\n errorId={errorId}\n errorMessageIcon={Icons.Error}\n floatingLabel={false}\n >\n {renderChildren()}\n </Wrapper>\n </Fieldset>\n );\n};\n\nexport const RadioWrapper = React.forwardRef(RadioWrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ForwardRefRenderFunction,\n ComponentPropsWithRef,\n ReactElement,\n useEffect\n} from \"react\";\nimport classes from \"./CheckboxWrapper.module.scss\";\nimport { useWrapper } from \"../../../hooks/useWrapper\";\nimport { Wrapper, WrapperProps } from \"../Wrapper/Wrapper\";\nimport { Icons } from \"../../../Icon/Icon\";\nimport { Fieldset, Props as FieldsetProps } from \"../../../Form/Fieldset/Fieldset\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\">, WrapperProps {\n children: ReactElement[] | ReactElement;\n fieldsetProps: FieldsetProps;\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst CheckboxWrapperComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { children, error = false, helperText, helperProps, fieldsetProps, ...rest }: Props,\n ref\n) => {\n const { errorId, helperId } = useWrapper();\n\n useEffect(() => {\n if (fieldsetProps.legend === undefined) {\n console.error(\n `You should give your Fieldset component a legend prop so a legend element is rendered. This error was thrown in CheckboxWrapper. You can add this legend prop through the fieldsetProps prop by passing an object (fieldsetProps={{ legend: \"legend here\" }})`\n );\n }\n }, []);\n\n const renderChildren = () =>\n React.Children.map(children, child =>\n React.cloneElement(child, {\n parentErrorId: errorId,\n error: error,\n parentHelperId: helperText ? helperId : false,\n disabled: rest.disabled\n })\n );\n\n return (\n <Fieldset {...fieldsetProps} error={error} required={rest.required}>\n <Wrapper\n {...rest}\n ref={ref}\n label=\"\"\n helperId={helperId}\n helperText={helperText}\n helperProps={{\n ...helperProps,\n className: `${classes[\"checkbox-wrapper-helper\"]} ${\n error ? classes[\"checkbox-wrapper-error\"] : \"\"\n } ${helperProps?.className ?? \"\"}`\n }}\n error={error}\n errorMessageIcon={Icons.Error}\n errorId={errorId}\n >\n {renderChildren()}\n </Wrapper>\n </Fieldset>\n );\n};\n\nexport const CheckboxWrapper = React.forwardRef(CheckboxWrapperComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Reducer } from \"react\";\nimport { Step } from \"./BaseWizardSteps/BaseWizardSteps\";\nimport { WizardMode } from \"./Wizard\";\n\ntype WizardStateType = {\n steps: Step[];\n currentStepNo: number;\n mode: WizardMode;\n};\n\ninterface SetWizardStateAction {\n type: \"SET_STATE\";\n payload: {\n steps: Step[];\n mode: WizardMode;\n };\n}\n\ninterface ChangeCurrentStepNoAction {\n type: \"CHANGE_CURRENT_STEP_NO\";\n payload: number;\n}\n\nconst setWizardState = (steps: Step[], mode: WizardMode): SetWizardStateAction => {\n return { type: \"SET_STATE\", payload: { steps, mode } };\n};\n\nconst changeCurrentStepNo = (currentStepNo: number): ChangeCurrentStepNoAction => {\n return { type: \"CHANGE_CURRENT_STEP_NO\", payload: currentStepNo };\n};\n\ntype WizardActions = SetWizardStateAction | ChangeCurrentStepNoAction;\n\nconst reducer: Reducer<WizardStateType, WizardActions> = (state, action) => {\n switch (action.type) {\n case \"SET_STATE\":\n return { ...state, ...action.payload };\n case \"CHANGE_CURRENT_STEP_NO\":\n return { ...state, currentStepNo: action.payload };\n default:\n return state;\n }\n};\n\nexport { setWizardState, changeCurrentStepNo, reducer, WizardActions, WizardStateType };\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { createContext, Dispatch, useReducer } from \"react\";\nimport { WizardActions, WizardStateType, reducer } from \"./wizardStateReducer\";\n\nconst WizardStateContext = createContext<{\n state: WizardStateType;\n dispatch: Dispatch<WizardActions>;\n}>({\n state: {} as WizardStateType,\n dispatch: () => null\n});\n\nexport interface Props {\n initialState: WizardStateType;\n children?: React.ReactNode;\n}\n\nconst WizardStateProvider = ({ children, initialState }: Props) => {\n const [state, dispatch] = useReducer(reducer, initialState);\n return (\n <WizardStateContext.Provider value={{ state, dispatch }}>\n {children}\n </WizardStateContext.Provider>\n );\n};\n\nexport { WizardStateProvider, WizardStateContext };\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { Fragment, useContext, useEffect } from \"react\";\nimport { Step } from \"./BaseWizardSteps/BaseWizardSteps\";\nimport { WizardStateContext, WizardStateProvider } from \"./WizardStateProvider\";\nimport { setWizardState } from \"./wizardStateReducer\";\n\nexport type WizardMode = \"add\" | \"edit\";\n\nexport interface Props {\n steps: Step[];\n mode: WizardMode;\n initialStepNo?: number;\n onStepChange: (stepNo: number) => void;\n children: React.ReactNode;\n}\n\nconst useSetWizardState = (steps: Step[], mode: WizardMode) => {\n const { dispatch } = useContext(WizardStateContext);\n\n useEffect(() => {\n dispatch(setWizardState(steps, mode));\n }, [steps, mode]);\n};\n\nconst useStepChanging = (onStepChange: (stepNo: number) => void) => {\n const {\n state: { currentStepNo }\n } = useContext(WizardStateContext);\n\n useEffect(() => {\n onStepChange(currentStepNo);\n }, [currentStepNo]);\n};\n\nconst WizardContent = ({ steps, mode, onStepChange, children }: Props) => {\n useSetWizardState(steps, mode);\n useStepChanging(onStepChange);\n\n return <Fragment>{children}</Fragment>;\n};\n\nexport const Wizard = (props: Props) => {\n const { steps, initialStepNo: currentStepNo = 0, mode } = props;\n return (\n <WizardStateProvider initialState={{ steps, currentStepNo, mode }}>\n <WizardContent {...props} />\n </WizardStateProvider>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { Fragment, useContext, useMemo } from \"react\";\nimport { Button } from \"../../Button/Button\";\nimport { Step } from \"../BaseWizardSteps/BaseWizardSteps\";\nimport { WizardMode } from \"../Wizard\";\nimport { WizardStateContext } from \"../WizardStateProvider\";\nimport { changeCurrentStepNo } from \"../wizardStateReducer\";\n\nexport interface Props extends React.HTMLProps<HTMLDivElement> {\n cancelButtonLabel: string;\n previousButtonLabel: string;\n nextButtonLabel: string;\n saveAndCloseButtonLabel: string;\n onCancel: () => void;\n onNext: (currentStepNo: number) => boolean;\n onPrevious?: () => void;\n onSaveAndClose: (currentStepNo: number) => void;\n}\n\nconst calculateNextStepNo = (steps: Step[], currentStepNo: number) => () =>\n steps.findIndex((step, stepNo) => stepNo > currentStepNo && !step.disabled);\n\nconst calculatePrevStepNo = (steps: Step[], currentStepNo: number) => () => {\n const reversedCurrentStepNo = steps.length - 1 - currentStepNo;\n const reversedPrevStepNo = [...steps]\n .reverse()\n .findIndex((step, stepNo) => stepNo > reversedCurrentStepNo && !step.disabled);\n if (reversedPrevStepNo > 0) {\n return steps.length - 1 - reversedPrevStepNo;\n }\n return -1;\n};\n\nconst useNextStepNo = (mode: WizardMode, currentStepNo: number, steps: Step[]) =>\n useMemo(calculateNextStepNo(steps, currentStepNo), [mode, currentStepNo, steps]);\n\nconst usePreviousStepNo = (mode: WizardMode, currentStepNo: number, steps: Step[]) =>\n useMemo(calculatePrevStepNo(steps, currentStepNo), [mode, currentStepNo, steps]);\n\nexport const WizardActions = ({\n onCancel,\n onNext,\n onPrevious,\n onSaveAndClose,\n cancelButtonLabel,\n previousButtonLabel,\n nextButtonLabel,\n saveAndCloseButtonLabel\n}: Props) => {\n const {\n state: { mode, steps, currentStepNo },\n dispatch\n } = useContext(WizardStateContext);\n const nextStepNo = useNextStepNo(mode, currentStepNo, steps);\n const hasNextStep = nextStepNo !== -1;\n const previousStepNo = usePreviousStepNo(mode, currentStepNo, steps);\n const hasPreviousStep = previousStepNo !== -1;\n const isLastStepOrEditMode = !hasNextStep || mode === \"edit\";\n\n const changeStepNo = (direction: \"forward\" | \"backward\") => {\n if (direction === \"forward\") {\n hasNextStep && dispatch(changeCurrentStepNo(nextStepNo));\n } else {\n hasPreviousStep && dispatch(changeCurrentStepNo(previousStepNo));\n }\n };\n\n const onNextWrapper = () => {\n onNext(currentStepNo) && changeStepNo(\"forward\");\n };\n\n const onPreviousWrapper = () => {\n onPrevious && onPrevious();\n changeStepNo(\"backward\");\n };\n\n const onSaveAndCloseWrapper = () => {\n onSaveAndClose(currentStepNo);\n };\n\n return (\n <Fragment>\n <Button variant=\"text\" onClick={onCancel}>\n {cancelButtonLabel}\n </Button>\n {hasPreviousStep && (\n <Button variant=\"outline\" onClick={onPreviousWrapper}>\n {previousButtonLabel}\n </Button>\n )}\n {hasNextStep && (\n <Button variant={mode === \"edit\" ? \"outline\" : \"fill\"} onClick={onNextWrapper}>\n {nextButtonLabel}\n </Button>\n )}\n {isLastStepOrEditMode && (\n <Button onClick={onSaveAndCloseWrapper}>{saveAndCloseButtonLabel}</Button>\n )}\n </Fragment>\n );\n};\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, Fragment } from \"react\";\nimport classes from \"./BaseWizardSteps.module.scss\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\n\ntype StepState = \"finished\" | \"current\" | \"future\";\n\nexport interface Step {\n label: string;\n disabled?: boolean;\n}\n\nexport interface Props extends Omit<ComponentPropsWithRef<\"div\">, \"onClick\"> {\n steps: Step[];\n currentStepNo: number;\n onClick?: (stepNo: number) => void;\n futureStepsClickable?: boolean;\n}\n\nconst BaseWizardStepsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { steps, currentStepNo, onClick, futureStepsClickable = false, ...rest }: Props,\n ref\n) => {\n const getStepState = (stepNo: number): StepState => {\n if (currentStepNo === stepNo) {\n return \"current\";\n } else if (stepNo < currentStepNo) {\n return \"finished\";\n }\n return \"future\";\n };\n\n const getStepContent = (stepState: StepState, index: number, disabled?: boolean) => {\n const stepNumberString = String(index + 1);\n if (stepState === \"finished\") {\n return disabled ? null : <Icon className={classes[\"checkmark\"]} icon={Icons.Checkmark} />;\n } else {\n return <Fragment>{stepNumberString}</Fragment>;\n }\n };\n\n const generatedSteps = steps.map((step, index) => {\n const stepState = getStepState(index);\n const disabledStyleClassName = step.disabled ? classes[\"disabled\"] : \"\";\n const clickableClassName = futureStepsClickable ? classes[\"clickable\"] : \"\";\n\n return (\n <button\n key={step.label.toLowerCase().replace(/\\s/, \"-\")}\n disabled={\n step.disabled ||\n (stepState === \"future\" && !futureStepsClickable) ||\n stepState === \"current\"\n }\n aria-current={stepState === \"current\" ? \"step\" : undefined}\n onClick={() => onClick && onClick(index)}\n className={`${classes[\"wizard-element\"]} ${classes[stepState]} ${clickableClassName} ${disabledStyleClassName}`}\n >\n <div className={classes[\"number-wrapper\"]}>\n <span className={classes[\"number\"]}>\n {getStepContent(stepState, index, step.disabled)}\n </span>\n </div>\n <div className={classes[\"two-line-text-overflow\"]}>\n <span className={classes[\"label\"]}>{step.label}</span>\n </div>\n </button>\n );\n });\n\n return (\n <div {...rest} ref={ref} className={classes[\"wizard\"]}>\n {generatedSteps}\n </div>\n );\n};\n\nexport const BaseWizardSteps = React.forwardRef(BaseWizardStepsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, useContext } from \"react\";\nimport { WizardStateContext } from \"../WizardStateProvider\";\nimport { BaseWizardSteps } from \"../BaseWizardSteps/BaseWizardSteps\";\nimport { changeCurrentStepNo } from \"../wizardStateReducer\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n onStepClick: (currentStepNo: number, selectedStepNo: number) => boolean;\n}\n\nconst WizardStepsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n { onStepClick, ...rest }: Props,\n ref\n) => {\n const {\n state: { currentStepNo, mode, steps },\n dispatch\n } = useContext(WizardStateContext);\n\n const onClick = (selectedStepNo: number) => {\n onStepClick(currentStepNo, selectedStepNo) && dispatch(changeCurrentStepNo(selectedStepNo));\n };\n\n return (\n <BaseWizardSteps\n {...rest}\n ref={ref}\n onClick={onClick}\n steps={steps}\n currentStepNo={currentStepNo}\n futureStepsClickable={mode === \"edit\"}\n />\n );\n};\n\nexport const WizardSteps = React.forwardRef(WizardStepsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, Fragment } from \"react\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { ColumnName, Direction } from \"../datagrid.interfaces\";\nimport classes from \"./DataGridHeaderCell.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"th\"> {\n headline: string;\n name: ColumnName;\n disableSorting?: boolean;\n activeSortDirection?: Direction;\n onSort?: (name: ColumnName) => void;\n}\n\nconst ariaSortMapping = {\n ASC: \"ascending\",\n DESC: \"descending\"\n} as const;\n\nconst DataGridHeaderCellComponent: ForwardRefRenderFunction<HTMLTableCellElement, Props> = (\n { headline, name, disableSorting, activeSortDirection, onSort, ...rest }: Props,\n ref\n) => {\n const onCellClick = () => {\n onSort && onSort(name);\n };\n\n const sortingIndicator = () => {\n const getSortingIndicatorClasses = (direction: Direction) => {\n const sortingIndicatorClasses = [classes[\"indicator\"]];\n activeSortDirection &&\n sortingIndicatorClasses.push(\n activeSortDirection === direction ? classes[\"active\"] : classes[\"hidden\"]\n );\n return sortingIndicatorClasses;\n };\n\n return (\n <Fragment>\n <Icon className={getSortingIndicatorClasses(\"ASC\").join(\" \")} icon={Icons.TriangleUp} />\n <Icon className={getSortingIndicatorClasses(\"DESC\").join(\" \")} icon={Icons.TriangleDown} />\n </Fragment>\n );\n };\n\n const innerContent = (\n <Fragment>\n <span className={classes[\"headline\"]}>{headline}</span>\n {!disableSorting && (\n <div className={classes[\"sorting-indicator-container\"]}>{sortingIndicator()}</div>\n )}\n </Fragment>\n );\n\n return (\n <th\n {...rest}\n ref={ref}\n className={classes[\"header-cell\"]}\n aria-sort={activeSortDirection && ariaSortMapping[activeSortDirection]}\n >\n {disableSorting ? (\n <div key={name}>{innerContent}</div>\n ) : (\n <button key={name} onClick={onCellClick}>\n {innerContent}\n </button>\n )}\n </th>\n );\n};\n\nexport const DataGridHeaderCell = React.forwardRef(DataGridHeaderCellComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, useEffect, useState } from \"react\";\nimport { ColumnName, Direction, HeaderCell, OnSortFunction, Sort } from \"../datagrid.interfaces\";\nimport { DataGridHeaderCell } from \"./DataGridHeaderCell\";\nimport classes from \"./DataGridHeader.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"thead\"> {\n headers: HeaderCell[];\n initialSort?: Sort;\n onSort?: OnSortFunction;\n disableContextMenuColumn?: boolean;\n enableMultiSorting?: boolean;\n spacing?: React.CSSProperties;\n}\n\nconst sortingStates = [undefined, \"ASC\", \"DESC\"] as (Direction | undefined)[];\n\nconst DataGridHeaderComponent: ForwardRefRenderFunction<HTMLTableSectionElement, Props> = (\n {\n initialSort,\n onSort,\n headers,\n disableContextMenuColumn,\n enableMultiSorting,\n spacing,\n ...rest\n }: Props,\n ref\n) => {\n const [sortList, setSortList] = useState(initialSort || []);\n\n useEffect(() => {\n setSortList(initialSort || []);\n }, [initialSort]);\n\n const calculateNextSortState = (direction?: Direction) => {\n const currentDirectionIdx = sortingStates.findIndex(item => item === direction);\n return sortingStates[currentDirectionIdx + (1 % sortingStates.length)];\n };\n\n /**\n * The sortList contains sorting columns objects. The order of those objects determinates priorities of sorting.\n * Last modified sorting column has the highest priority.\n */\n const updateSortList = (name: ColumnName): Sort => {\n const current = sortList.find(item => item.name === name);\n const restSortList = enableMultiSorting ? sortList.filter(item => item.name !== name) : [];\n const newSortDirection = calculateNextSortState(current?.direction);\n return newSortDirection\n ? [{ name, direction: newSortDirection }, ...restSortList]\n : restSortList;\n };\n\n const wrapOnSort = (name: ColumnName) => {\n const newSort = updateSortList(name);\n onSort && onSort(newSort);\n setSortList(newSort);\n };\n\n const headerCells = headers.map((header, index) => {\n if (header.hidden) {\n return null;\n }\n\n let headerStyle: React.CSSProperties = {\n textAlign: header.align || \"left\"\n };\n\n if (index === 0) {\n headerStyle.paddingLeft = spacing?.paddingLeft;\n }\n if (index === headers.length - 1 && disableContextMenuColumn) {\n headerStyle.paddingRight = spacing?.paddingRight;\n }\n\n const sort = sortList.find(item => item.name === header.name);\n return (\n <DataGridHeaderCell\n key={header.name}\n name={header.name}\n headline={header.headline}\n disableSorting={header.disableSorting || !onSort}\n onSort={wrapOnSort}\n activeSortDirection={sort?.direction}\n style={headerStyle}\n />\n );\n });\n\n return (\n <thead {...rest} ref={ref} className={classes[\"thead\"]}>\n <tr className={classes[\"row\"]}>\n {headerCells}\n {!disableContextMenuColumn && (\n <td\n style={{ paddingRight: spacing?.paddingRight }}\n aria-label=\"context menu\"\n className={classes[\"context-menu\"]}\n ></td>\n )}\n </tr>\n </thead>\n );\n};\n\nexport const DataGridHeader = React.forwardRef(DataGridHeaderComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, Fragment, useState } from \"react\";\nimport { IconButton } from \"../../Button/IconButton\";\nimport { Toggle } from \"../../Form/Toggle/Toggle\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { Popover, Props as PopoverProps } from \"../../Popover/Popover\";\nimport { Typography } from \"../../Typography/Typography\";\nimport { generateID } from \"../../util/helper\";\nimport { ColumnName, HeaderCell } from \"../datagrid.interfaces\";\nimport classes from \"./DataGridColumnsToggle.module.scss\";\nimport { createPortal } from \"react-dom\";\n\nexport interface Props extends PopoverProps {\n open: boolean;\n headers: HeaderCell[];\n titleLabel?: string;\n closeButtonTitle?: string;\n onClose: () => void;\n onToggleClicked: (colName: ColumnName) => void;\n domRoot?: HTMLElement;\n}\n\nconst DataGridColumnsToggleComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n open,\n headers,\n titleLabel = \"Show columns\",\n closeButtonTitle = \"Close show columns dialog\",\n onClose,\n onToggleClicked,\n className,\n domRoot = document.body,\n ...rest\n }: Props,\n ref\n) => {\n const [id] = useState(generateID());\n const labelledId = id + \"_header\";\n\n const toggles = headers.map(item => (\n <Toggle\n key={item.name}\n name={item.name}\n checked={!item.hidden}\n onChange={() => onToggleClicked(item.name)}\n >\n {item.headline}\n </Toggle>\n ));\n\n const handleBackdropClick = () => onClose();\n\n return (\n <Popover\n {...rest}\n ref={ref}\n className={`${classes[\"popover\"]} ${className}`}\n show={open}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={labelledId}\n >\n {open &&\n createPortal(\n <div className={classes[\"backdrop\"]} onClick={handleBackdropClick}></div>,\n domRoot\n )}\n {open && (\n <Fragment>\n <div className={classes[\"header\"]}>\n <Typography id={labelledId} className={classes[\"title\"]} tag=\"span\" variant=\"h4\">\n {titleLabel}\n </Typography>\n <IconButton\n onClick={onClose}\n className={`${classes[\"close-btn\"]}`}\n title={closeButtonTitle}\n >\n <Icon icon={Icons.Times} />\n </IconButton>\n </div>\n <div className={classes[\"content\"]}>{toggles}</div>\n </Fragment>\n )}\n </Popover>\n );\n};\n\nexport const DataGridColumnsToggle = React.forwardRef(DataGridColumnsToggleComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n ComponentPropsWithRef,\n ForwardRefRenderFunction,\n Fragment,\n useRef,\n useState\n} from \"react\";\nimport { Button, Props as ButtonProps } from \"../../Button/Button\";\nimport { IconButton } from \"../../Button/IconButton\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport { HeaderCell, ColumnName } from \"../datagrid.interfaces\";\nimport classes from \"./DataGridActions.module.scss\";\nimport { DataGridColumnsToggle } from \"./DataGridColumnsToggle\";\n\nexport interface Props extends ComponentPropsWithRef<\"div\"> {\n enableAddBtn?: boolean;\n enableColumnsBtn?: boolean;\n enableSearchBtn?: boolean;\n addBtnProps?: ButtonProps;\n columnsBtnProps?: ButtonProps;\n searchBtnProps?: ButtonProps;\n searchIconBtnProps?: ButtonProps;\n headers: HeaderCell[];\n onColumnToggled: (colName: ColumnName) => void;\n}\n\nconst DataGridActionsComponent: ForwardRefRenderFunction<HTMLDivElement, Props> = (\n {\n className,\n enableAddBtn,\n enableColumnsBtn,\n enableSearchBtn,\n addBtnProps = {},\n columnsBtnProps = {},\n searchBtnProps = {},\n searchIconBtnProps = {},\n headers,\n onColumnToggled,\n children,\n ...rest\n }: Props,\n ref\n) => {\n const isHidden = !(enableAddBtn || enableColumnsBtn || enableSearchBtn);\n const [showColsPopover, setShowColsPopover] = useState(false);\n const showColumnBtn = useRef<HTMLButtonElement>(null);\n const { children: addBtnChildren, ...restAddBtnProps } = addBtnProps;\n const { children: columnsBtnChildren, ...restColumnsBtnProps } = columnsBtnProps;\n const { children: searchBtnChildren, ...restSearchBtnProps } = searchBtnProps;\n\n return isHidden ? null : (\n <div {...rest} ref={ref} className={`${classes[\"actions\"]} ${className ?? \"\"}`}>\n <div className={classes[\"left-actions\"]}>\n {enableAddBtn && (\n <Button\n color=\"primary\"\n startIcon={<Icon icon={Icons.Plus} />}\n title=\"Add item\"\n type=\"button\"\n variant=\"outline\"\n {...restAddBtnProps}\n >\n {addBtnChildren ?? \"Add item\"}\n </Button>\n )}\n </div>\n <div className={classes[\"right-actions\"]}>\n {enableColumnsBtn && (\n <Fragment>\n <Button\n startIcon={<Icon icon={Icons.Change} />}\n title=\"Show/hide columns\"\n variant=\"text\"\n {...restColumnsBtnProps}\n className={`${classes[\"desktop\"]} ${columnsBtnProps?.className ?? \"\"}`}\n ref={showColumnBtn}\n onClick={() => setShowColsPopover(true)}\n >\n {columnsBtnChildren ?? \"Columns\"}\n </Button>\n <IconButton\n title=\"Show/hide columns\"\n {...columnsBtnProps}\n onClick={() => setShowColsPopover(true)}\n className={`${classes[\"mobile\"]} ${columnsBtnProps?.className ?? \"\"}`}\n >\n <Icon icon={Icons.Change} />\n </IconButton>\n <DataGridColumnsToggle\n aria-hidden={!showColsPopover}\n open={showColsPopover}\n headers={headers}\n onClose={() => setShowColsPopover(false)}\n onToggleClicked={onColumnToggled}\n anchorEl={showColumnBtn}\n />\n </Fragment>\n )}\n {enableSearchBtn && (\n <Fragment>\n <Button\n startIcon={<Icon icon={Icons.TableSearch} />}\n title=\"Search\"\n variant=\"text\"\n {...restSearchBtnProps}\n className={`${classes[\"desktop\"]} ${searchBtnProps?.className ?? \"\"}`}\n >\n {searchBtnChildren ?? \"Search\"}\n </Button>\n <IconButton\n title=\"Search\"\n {...searchIconBtnProps}\n className={`${classes[\"mobile\"]} ${columnsBtnProps?.className ?? \"\"}`}\n >\n <Icon icon={Icons.TableSearch} />\n </IconButton>\n </Fragment>\n )}\n </div>\n </div>\n );\n};\n\nexport const DataGridActions = React.forwardRef(DataGridActionsComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef, ReactChild } from \"react\";\nimport { Typography } from \"../../Typography/Typography\";\nimport classes from \"./DataGridCell.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"td\"> {\n children?: ReactChild;\n isLoading?: boolean;\n spacing?: React.CSSProperties;\n cellIndex?: number;\n columnLength?: number;\n disableContextMenuColumn?: boolean;\n}\n\nconst DataGridCellComponent: ForwardRefRenderFunction<HTMLTableCellElement, Props> = (\n {\n children,\n className,\n isLoading,\n spacing,\n cellIndex,\n columnLength,\n disableContextMenuColumn,\n ...rest\n }: Props,\n ref\n) => {\n let cellStyle: React.CSSProperties = {};\n\n if (cellIndex === 0) {\n cellStyle.paddingLeft = spacing?.paddingLeft;\n }\n if (\n (cellIndex === columnLength && !disableContextMenuColumn) ||\n (columnLength && cellIndex === columnLength - 1 && disableContextMenuColumn)\n ) {\n cellStyle.paddingRight = spacing?.paddingRight;\n }\n\n return (\n <td\n {...rest}\n ref={ref}\n style={{ ...rest.style, ...cellStyle }}\n className={`${classes[\"cell\"]} ${className ?? \"\"}`}\n >\n {isLoading && <div className={classes[\"loading\"]} aria-busy=\"true\" aria-live=\"polite\"></div>}\n {!isLoading && (\n <Typography variant=\"body\" tag=\"span\">\n {children}\n </Typography>\n )}\n </td>\n );\n};\n\nexport const DataGridCell = React.forwardRef(DataGridCellComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ForwardRefRenderFunction, ComponentPropsWithRef } from \"react\";\nimport { HeaderCell } from \"../datagrid.interfaces\";\nimport classes from \"./DataGridRow.module.scss\";\n\nexport interface Props extends ComponentPropsWithRef<\"tr\"> {\n headers?: HeaderCell[];\n isLoading?: boolean;\n spacing?: React.CSSProperties;\n disableContextMenuColumn?: boolean;\n}\n\nconst DataGridRowComponent: ForwardRefRenderFunction<HTMLTableRowElement, Props> = (\n { children, className, headers, isLoading, spacing, disableContextMenuColumn, ...rest }: Props,\n ref\n) => {\n const visibleCells = React.Children.map(children as React.ReactElement[], (child, index) => {\n if (child) {\n const cellWithSpacing = React.cloneElement(child, {\n spacing: spacing,\n cellIndex: index,\n columnLength: headers?.length,\n disableContextMenuColumn\n });\n\n const visible = headers && headers.length > index ? !headers[index].hidden : true;\n return visible && cellWithSpacing;\n }\n return null;\n });\n\n const classNames = [classes[\"row\"]];\n className && classNames.push(className);\n isLoading && classNames.push(classes[\"loading\"]);\n\n return (\n <tr {...rest} ref={ref} className={classNames.join(\" \")}>\n {visibleCells}\n </tr>\n );\n};\n\nexport const DataGridRow = React.forwardRef(DataGridRowComponent);\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ComponentPropsWithRef, ReactElement, Ref } from \"react\";\nimport { HeaderCell } from \"../datagrid.interfaces\";\nimport { DataGridCell } from \"./DataGridCell\";\nimport { DataGridRow } from \"./DataGridRow\";\nimport classes from \"./DataGridBody.module.scss\";\nimport { Typography } from \"../../Typography/Typography\";\n\nexport interface Props<T> extends ComponentPropsWithRef<\"tbody\"> {\n children: ({ item, index }: { item: T; index: number }) => ReactElement;\n data?: T[];\n headers: HeaderCell[];\n isLoading?: boolean;\n disableContextMenuColumn?: boolean;\n emptyLabel?: string;\n spacing?: React.CSSProperties;\n}\n\nconst skeletonLoadingRows = 9;\n\nconst DataGridBodyInner = <T extends {}>(\n {\n children,\n data,\n headers,\n isLoading,\n disableContextMenuColumn,\n emptyLabel,\n spacing,\n ...rest\n }: Props<T>,\n ref: Ref<HTMLTableSectionElement>\n) => {\n const renderContent = () => {\n const visibleColumns = headers.filter(header => !header.hidden).length;\n if (isLoading) {\n return Array.from(Array(skeletonLoadingRows)).map((_, rowIdx) => (\n <DataGridRow key={rowIdx} isLoading>\n {Array.from(Array(visibleColumns)).map((__, colIdx) => (\n <DataGridCell key={colIdx} isLoading></DataGridCell>\n ))}\n {!disableContextMenuColumn && <DataGridCell></DataGridCell>}\n </DataGridRow>\n ));\n }\n\n const emptyData = !data || data.length === 0;\n if (emptyData) {\n return (\n <tr>\n <td\n className={classes[\"empty\"]}\n colSpan={visibleColumns + (disableContextMenuColumn ? 0 : 1)}\n >\n <Typography variant=\"body\" spacing={{ margin: 0 }}>\n {emptyLabel}\n </Typography>\n </td>\n </tr>\n );\n }\n\n return data?.map((item, index) => {\n return React.cloneElement(children({ item, index }), {\n headers,\n spacing,\n disableContextMenuColumn\n });\n });\n };\n\n return (\n <tbody {...rest} ref={ref}>\n {renderContent()}\n </tbody>\n );\n};\n\nexport const DataGridBody = React.forwardRef(DataGridBodyInner) as <T extends {}>(\n p: Props<T> & { ref?: Ref<HTMLTableSectionElement> }\n) => ReactElement;\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, { ComponentPropsWithRef, ReactElement, Ref, useEffect, useState } from \"react\";\nimport { Props as ButtonProps } from \"../Button/Button\";\nimport classes from \"./DataGrid.module.scss\";\nimport { DataGridHeader } from \"./DataGridHeader/DataGridHeader\";\nimport { DataGridActions } from \"./DataGridActions/DataGridActions\";\nimport { DataGridBody } from \"./DataGridBody/DataGridBody\";\nimport { ColumnName, HeaderCell, OnSortFunction, Sort } from \"./datagrid.interfaces\";\nimport { Pagination, Props as PaginationProps } from \"../Pagination/Pagination\";\nimport { Spacing, useSpacing } from \"../hooks/useSpacing\";\n\nexport interface Props<T> extends Omit<ComponentPropsWithRef<\"div\">, \"children\"> {\n children: ({ item, index }: { item: T; index: number }) => ReactElement;\n data?: T[];\n initialSort?: Sort;\n onSort?: OnSortFunction;\n headers: HeaderCell[];\n actions?: {\n enableAddBtn?: boolean;\n enableColumnsBtn?: boolean;\n enableSearchBtn?: boolean;\n addBtnProps?: ButtonProps;\n columnsBtnProps?: ButtonProps;\n searchBtnProps?: ButtonProps;\n searchIconBtnProps?: ButtonProps;\n };\n emptyLabel?: string;\n paginationProps?: PaginationProps;\n disableContextMenuColumn?: boolean;\n isLoading?: boolean;\n enableMultiSorting?: boolean;\n spacing?: Spacing;\n}\n\nconst DataGridInner = <T extends {}>(\n {\n children,\n data,\n initialSort,\n onSort,\n headers,\n actions = {},\n paginationProps,\n disableContextMenuColumn,\n isLoading,\n enableMultiSorting,\n emptyLabel,\n spacing,\n style,\n ...rest\n }: Props<T>,\n ref: Ref<HTMLDivElement>\n) => {\n if (!headers) {\n throw new Error(\"Headers definition has to be provided\");\n }\n if (!children) {\n throw new Error(\"DataGridBody should be provieded with a template how to render rows\");\n }\n\n const [internalHeaders, setInternalHeaders] = useState(headers);\n const styleWithSpacing = useSpacing(spacing, style);\n\n useEffect(() => setInternalHeaders(headers), [headers]);\n\n const onColumnToggled = (colName: ColumnName) => {\n setInternalHeaders(\n internalHeaders.map(item =>\n item.name !== colName ? item : { ...item, hidden: !item.hidden }\n )\n );\n };\n\n if (styleWithSpacing?.padding) {\n const splitPaddings = styleWithSpacing.padding.toString().split(\" \");\n\n let paddingLeftIndex: number = 0;\n\n if (splitPaddings.length >= 2) {\n paddingLeftIndex = 1;\n }\n if (splitPaddings.length === 4) {\n paddingLeftIndex = 3;\n }\n\n Object.defineProperties(styleWithSpacing, {\n paddingTop: {\n value: splitPaddings[0]\n },\n paddingRight: {\n value: splitPaddings[splitPaddings.length - 1 > 0 ? 1 : 0]\n },\n paddingBottom: {\n value: splitPaddings[splitPaddings.length / 3 >= 1 ? 2 : 0]\n },\n paddingLeft: {\n value: splitPaddings[paddingLeftIndex]\n }\n });\n }\n\n return (\n <div\n {...rest}\n className={classes[\"grid-wrapper\"]}\n ref={ref}\n style={{\n paddingTop: styleWithSpacing?.paddingTop,\n paddingBottom: styleWithSpacing?.paddingBottom\n }}\n >\n <DataGridActions\n {...actions}\n style={{\n paddingLeft: styleWithSpacing?.paddingLeft,\n paddingRight: styleWithSpacing?.paddingRight\n }}\n headers={internalHeaders}\n onColumnToggled={onColumnToggled}\n />\n <div className={classes[\"table-wrapper\"]}>\n <table className={classes[\"table\"]}>\n <DataGridHeader\n headers={internalHeaders}\n initialSort={initialSort}\n onSort={onSort}\n disableContextMenuColumn={disableContextMenuColumn}\n enableMultiSorting={enableMultiSorting}\n spacing={styleWithSpacing}\n />\n <DataGridBody\n data={data}\n headers={internalHeaders}\n isLoading={isLoading}\n disableContextMenuColumn={disableContextMenuColumn}\n emptyLabel={emptyLabel}\n spacing={styleWithSpacing}\n >\n {children}\n </DataGridBody>\n </table>\n </div>\n {paginationProps && !isLoading && (\n <Pagination\n {...paginationProps}\n style={{\n ...paginationProps.style,\n paddingLeft: styleWithSpacing?.paddingLeft,\n paddingRight: styleWithSpacing?.paddingRight\n }}\n className={`${classes[\"pagination\"]} ${paginationProps.className ?? \"\"}`}\n />\n )}\n </div>\n );\n};\n\nexport const DataGrid = React.forwardRef(DataGridInner) as <T extends {}>(\n p: Props<T> & { ref?: Ref<HTMLDivElement> }\n) => ReactElement;\n","/*\n * Copyright 2022 OneWelcome B.V.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport React, {\n AriaAttributes,\n AriaRole,\n ComponentPropsWithRef,\n ForwardRefRenderFunction\n} from \"react\";\nimport { Typography } from \"../../Typography/Typography\";\nimport { Icon, Icons } from \"../../Icon/Icon\";\nimport classes from \"./Banner.module.scss\";\n\nexport type BannerType = \"error\" | \"warning\" | \"info\";\nexport interface Props extends ComponentPropsWithRef<\"section\"> {\n children: string;\n ariaRole?: AriaRole;\n ariaLive?: AriaAttributes[\"aria-live\"];\n ariaLabel?: AriaAttributes[\"aria-label\"];\n type: BannerType;\n title: string;\n}\n\nconst BannerComponent: ForwardRefRenderFunction<HTMLElement, Props> = (\n { children, ariaLabel, ariaRole, ariaLive, type, title, ...rest }: Props,\n ref\n) => {\n const getIconVariant = (type: BannerType): Icons | null => {\n switch (type) {\n case \"info\":\n return Icons.InfoCircle;\n case \"error\":\n return Icons.Error;\n case \"warning\":\n return Icons.Warning;\n default:\n return null;\n }\n };\n\n const icon = getIconVariant(type);\n\n return (\n <section\n {...rest}\n ref={ref}\n aria-live={ariaLive}\n aria-label={ariaLabel}\n role={ariaRole}\n className={`${classes[\"banner\"]} ${classes[type]}`}\n >\n {icon && <Icon icon={icon} className={classes[\"icon\"]} />}\n <div className={classes[\"container\"]}>\n <Typography variant={\"h4\"} className={classes[\"headline\"]}>\n {title}\n </Typography>\n <Typography variant={\"body\"} className={classes[\"content\"]} tag={\"p\"}>\n {children}\n </Typography>\n </div>\n </section>\n );\n};\n\nexport const Banner = React.forwardRef(BannerComponent);\n"],"names":["BaseStyling","_ref","children","_ref$properties","properties","defaultProperties","colorPrimary300","colorPrimary500","colorPrimary600","colorPrimary700","colorPrimary900","colorBlueGrey25","colorBlueGrey50","colorBlueGrey100","colorBlueGrey200","colorBlueGrey400","colorBlueGrey500","colorBlueGrey700","colorBlueGrey900","colorGreen500","colorLightBlue500","colorLightBlue600","colorOrange500","colorRed500","colorFocus","colorPrimary","colorSecondary","colorTertiary","lightPink","vividViolet","defaultLineHeight","buttonBorderRadius","buttonBorderWidth","buttonFontSize","buttonBorderStyle","buttonFillTextColor","buttonFillHoverBackgroundColor","buttonOutlineHoverTextColor","inputBorderRadius","inputBorderWidth","inputBorderWidthFocus","inputBorderStyle","inputBackgroundColor","dragBackgroundColor","dragBorderStyle","modalShadowColor","modalBackgroundColor","modalHeaderBackgroundColor","skeletonBackgroundColor","skeletonAnimationColorRgb","snackbarTextColor","snackbarInfoBackgroundColor","snackbarSuccessBackgroundColor","snackbarErrorBackgroundColor","snackbarBorderRadius","bannerBorderRadius","bannerBorderWidth","dataGridRowBackgroundColor","dataGridRowHoverBackgroundColor","tabsBackgroundColor","tabActiveBorderHeight","tabActiveBorderColor","tablistBorderWidth","tablistBorderStyle","tablistBorderColor","tabTextColor","wizardStepIndicatorFutureColor","success","error","info","disabled","greyedOut","lightGreyBorder","warning","light","grey","fontFamily","fontFamilyCode","fontSize","fontSizeH1","fontSizeH2","fontSizeH3","fontSizeH4","fontSizeSub","fontSizeCode","_useState","useState","isLoading","setIsLoading","baseStylingWrapper","useRef","setCSSProperties","CSSPropertiesObject","_i","_Object$entries","Object","entries","length","_Object$entries$_i","key","value","formattedPropertyName","replace","val","toLowerCase","current","style","setProperty","useEffect","keys","mergedState","_extends","React","className","ref","Spinner","props","createElement","width","height","viewBox","fill","xmlns","d","BaseButtonComponent","_ref$type","type","loading","rest","_objectWithoutPropertiesLoose","_excluded","validTypes","isDisabled","includes","Error","classes","button","Fragment","BaseButton","forwardRef","ButtonComponent","_ref$variant","variant","_ref$color","color","_ref$startIcon","startIcon","_ref$endIcon","endIcon","additionalClasses","push","join","Button","Icons","IconComponent","icon","size","_ref$tag","tag","Component","Icon","defaultFactor","defaultUnit","spacingNumberRegex","useSpacing","spacingProps","reduce","prev","_extends2","spacing","multiplier","matches","String","matchAll","cssSpacingValue","Array","from","map","_ref2","multiplierValue","Number","validVariants","TypographyComponent","_ref$className","styleWithSpacing","TagName","Typography","BreadcrumbsComponent","ariaLabel","items","Children","child","index","isLastElement","isArray","cloneElement","ChevronRight","Breadcrumbs","useDebouncedCallback","callback","delay","dependencies","timeout","comboDeps","concat","useCallback","_len","arguments","args","_key","clearTimeout","setTimeout","apply","defaultConfigObject","relativeElement","undefined","elementToBePositioned","transformOrigin","horizontal","vertical","placement","offset","top","right","bottom","left","debounceAmount","usePosition","providedConfigObject","configObject","position","setPosition","_fixPossibleViewportOverflow","requestedReturnValue","elDimensions","returnValue","window","innerWidth","innerHeight","_applyOffsetToPlacementValue","_configObject$offset","_configObject$offset2","_configObject$offset7","_configObject$offset8","_configObject$offset3","_configObject$offset4","_configObject$offset5","_configObject$offset6","_configObject$offset9","_configObject$offset10","_configObject$offset11","_configObject$offset12","_calculateInitialPlacementValue","relEl","placementOriginDefinition","_determineCenteredPlacementOrigin","_calculatePlacementValue","valueWithOffset","valueCorrectionForViewportOverflow","_calculatePlacement","axis","_configObject$transfo","_configObject$transfo2","placementValue","direction","oppositeDirection","prevState","calculatePosition","_configObject$relativ","_configObject$element","relativeElRect","getBoundingClientRect","elementToBePositionedDimensions","offsetHeight","offsetWidth","clonedRelEl","center","centerv","centerh","x","y","PopoverComponent","show","anchorEl","onAnchorOutOfView","elToBePositioned","_usePosition","addEventListener","removeEventListener","isAnchorOffscreen","popover","Popover","useBodyClick","checkFunction","callbackFunction","dependingStateVariable","bodyClickListener","event","useGetDomRoot","passedDomRoot","document","body","root","setRoot","closestBaseStylingWrapper","closest","ContextMenuComponent","trigger","decorativeElement","id","_ref$show","onShow","onClose","_ref$placement","_ref$offset","_ref$transformOrigin","domRoot","popoverProps","wrappingDivRef","createRef","showContextMenu","setShowContextMenu","_useState2","hasBeenClosed","setHasBeenClosed","_useState3","selectedContextMenuItem","setSelectedContextMenuItem","_useState4","focusedContextMenuItem","setFocusedContextMenuItem","_useState5","shouldClick","setShouldClick","_useState6","count","childrenCount","_useGetDomRoot","onArrowNavigation","codesToPrevenDefault","code","preventDefault","target","parentElement","focus","renderTrigger","onClick","tabIndex","renderChildren","onFocusChange","childIndex","onSelectedChange","hasFocus","isSelected","contextMenuOpened","onOutOfViewHandler","onKeyDown","createPortal","role","ContextMenu","ContextMenuItemComponent","innerButtonRef","click","ContextMenuItem","LinkComponent","_ref$disabled","to","_ref$display","display","_ref$buttonVariant","buttonVariant","component","determineTarget","classNames","download","rel","href","Link","IconButtonComponent","_ref$iconSize","iconSize","title","console","iconButtonClasses","readyclasses","IconButton","Tab","_rest$className","tabActive","TabButtonComponent","focused","buttonRef","TabButton","TabsComponent","_ref$selected","selected","onTabChange","renderedButtons","setRenderedButtons","renderedTabs","setRenderedTabs","activeTabIndex","setActiveTabIndex","usingKeyboardNavigation","setUsingKeyboardNavigation","indicatorStyles","setIndicatorStyles","tabsRef","indicatorRef","handleKeyDown","e","totalAmountOfTabs","flat","currentIndex","calculateIndicatorPosition","selectedButton","querySelectorAll","offsetLeft","offsetTop","buttons","prototype","hasOwnProperty","call","tabs","Tabs","TextEllipsisComponent","popoverClassName","showPopover","setShowPopover","textContainer","ellipsisVisible","scrollWidth","onMouseEnter","onMouseLeave","TextEllipsis","generateID","stringToWeaveIn","hashCharacters","i","stringCharacter","test","Math","floor","random","slice","filterProps","regexPattern","returnFiltered","acc","filter","prevObj","currKeyValPair","debounce","fn","executedFunction","later","throttle","lastTime","now","Date","remToPx","rem","parseFloat","getComputedStyle","documentElement","TileComponent","imageProps","enabled","tileAction","tileDescriptionID","statusMessage","justifyContent","Checkmark","Forbidden","readyClasses","src","alt","Image","Tile","TilesComponent","_ref$loading","Tiles","defaultPosition","TooltipComponent","label","identifier","visible","setVisible","escapePressHandler","useLayoutEffect","isValidElement","onFocus","onBlur","wrapper","InfoCircle","tooltip","Tooltip","ProgressBarComponent","placeholderText","completed","round","marginBottom","ProgressBar","SkeletonComponent","Skeleton","StatusIndicatorComponent","_badgeProps$className","status","badgeProps","typographyProps","margin","StatusIndicator","useDetermineStatusIcon","params","errorRef","successRef","CheckmarkCircleBreakout","dateTypes","InputComponent","_ref$error","_ref$success","name","wrapperProps","labeledBy","prefix","suffix","setFocus","inputWrapperRef","suffixRef","inputClassNames","wrapperClasses","outlineClasses","spellCheck","Input","useArrowNavigation","expanded","setExpanded","isSearching","setIsSearching","setFocusedSelectItem","customSelectButtonRef","searchInputRef","renderSearchCondition","codesToPreventDefault","codesToPreventDefaultWhenSearching","useSelectPositionList","optionListReference","containerReference","optionsListMaxHeight","setOptionsListMaxHeight","opacity","setOpacity","listPosition","setListPosition","rePositionList","spaceOnTopOfSelect","spaceOnBottomOfSelect","calculateOptionListMaxHeight","_optionListReference$","listHeight","availableSpace","SelectComponent","placeholder","describedBy","_ref$searchPlaceholde","searchPlaceholder","searchInputProps","selectButtonProps","onChange","setFilter","setDisplay","focusedSelectItem","_useState7","nativeSelect","_useArrowNavigation","_useSelectPositionLis","syncDisplayValue","forEach","onOptionChangeHandler","optionRef","getAttribute","dispatchEvent","Event","bubbles","renderOptions","filteredChildren","toArray","match","_internalRenderChildren","internalChildren","onOptionSelect","selectOpened","renderSearch","_searchInputProps$wra","autoFocus","filterResults","currentTarget","nativeOnChangeHandler","select","TriangleDown","maxHeight","pointerEvents","Select","OptionComponent","_ref$isSelected","innerOptionRef","onSelectHandler","onKeyDownCapture","stopPropagation","Option","LabelComponent","_ref$hidden","hidden","Label","DefaultTranslations","PaginationComponent","totalElements","_ref$pageSize","pageSize","_ref$translate","translate","currentPage","onPageChange","onPageSizeChange","toString","internalCurrentPage","setInternalCurrentPage","calculateAmountOfPages","ceil","onEnterListener","renderCurrentPageTranslation","amountOfPages","splitCurrentPageTranslation","split","string","htmlFor","currentPageLabel","max","onKeyUp","onPageSizeChangeHandler","pageSizeNumber","onPageChangeHandler","pageToGoTo","totalItems","itemsPerPage","NavigationFirst","ChevronLeft","NavigationLast","Pagination","useRepeater","componentToRepeat","repeatedComponents","setRepeatedComponents","repeat","clonedComponent","remove","componentToRemove","newRepeatedComponents","labelId","descriptionId","SCROLL_PROPERTY_NAME","SCROLL_PROPERTY_VALUE","useSetBodyScroll","open","hideBodyScroll","showBodyScroll","allModalsClosed","removeProperty","BaseModalComponent","_backdropProps$classN","_containerProps$class","_containerProps$class2","containerProps","backdropProps","labelledby","describedby","_ref$disableEscapeKey","disableEscapeKeyDown","_ref$disableBackdrop","disableBackdrop","_ref$forceContainerOp","forceContainerOpen","zIndex","handleEscKeyPress","handleBackdropClick","BaseModal","SnackbarContext","createContext","enqueueSnackbar","enqueueSuccessSnackbar","enqueueErrorSnackbar","setSnackbarHeight","snackbars","SnackbarContextProvider","initialState","Provider","useSnackbar","ctx","useContext","BaseModalContentComponent","_ref$disableAutoFocus","disableAutoFocus","contentRef","_ref$current","_contentRef$current","BaseModalContent","BaseModalActionsComponent","BaseModalActions","DialogActionsComponent","align","DialogActions","DialogTitleComponent","DialogTitle","DialogComponent","alignActions","primaryAction","secondaryAction","dialogId","primaryLabel","restOfPrimaryAction","_excluded2","PrimaryButton","TertiaryButton","secondaryLabel","restOfSecondaryAction","_excluded3","onHiddenInputKeyPress","maxLength","onKeyPress","Dialog","BaseModalHeaderComponent","Times","BaseModalHeader","DiscardChangesDialogComponent","onKeepEditing","onDiscardChanges","discardChangesButtonLabel","keepEditingButtonLabel","contentLabel","titleLabel","DiscardChangesDialog","DiscardChangesModal","headerProps","discardChangedDialogProps","modalRef","dialogRef","hasUnsavedChanges","openDiscardChangesDialog","setOpenDiscardChangesDialog","onCloseWrapper","onDialogKeepEditing","onDialogDiscardChanges","Modal","ModalHeader","SlideInModalComponent","classHideOnTransition","setClassHideOnTransition","controlledOpen","setControlledOpen","containerRef","onTransitionEnd","SlideInModal","useSnackbarContainerHeightAnimation","_useContext","setHeight","setJustifyContent","spaceBetweenSnackbars","exceedsMaximumVisibleSnackbars","allHeights","snackbar","totalHeight","curr","min","SnackbarContainer","_useSnackbarContainer","useAnimation","animatedObjectRef","animationStarted","setAnimationStarted","onAnimationEnd","_animatedObjectRef$cu","_animatedObjectRef$cu2","startAnimation","textColor","useRegisterSnackbarHeight","singleSnackbarRef","snackbarId","SnackbarItem","duration","content","_ref$actions","actions","closeButtonTitle","timerHandler","_useAnimation","getVariantIcon","actionButtons","actionProp","SnackbarProvider","_temp","_ref$autoHideDuration","autoHideDuration","_ref$stackSize","stackSize","setSnackbars","addSnackbar","item","newSnackbarsState","getDuration","hasError","hasContentOrActions","options","_options","_options$variant","_options$duration","onItemClosed","snackbarList","snackbarPortal","useFormSelector","setDescribedBy","errorMessage","errorId","parentErrorId","helperText","parentHelperId","FormHelperTextComponent","FormHelperText","FormSelectorWrapperComponent","_helperProps$classNam","nestedChildren","helperProps","helperRef","FormSelectorWrapper","isToggle","_children$props","CheckboxComponent","indeterminate","_ref$checked","checked","formSelectorWrapperProps","_useFormSelector","determineLabel","renderNestedCheckboxes","Checkbox","onChangeHandler","renderToggle","iconClasses","MinusSquare","CheckmarkSquare","Square","RadioComponent","nativeEvent","clonedEvent","constructor","defineProperty","writable","Radio","Circle","TextareaComponent","_ref$rows","rows","Textarea","ToggleComponent","Toggle","FormControlComponent","grid","_ref$align","childElement","column","FormControl","FormGroupComponent","errorMessageIcon","_ref$errorMessageIcon","errorMessageIconPosition","helperId","helperIndent","marginLeft","message","FormGroup","WrapperComponent","_ref$floatingLabel","floatingLabel","floatingLabelActive","required","labelProps","innerClassName","labelClasses","Wrapper","useWrapper","setFloatingLabelActive","setHasFocus","useLabelOffset","input","labelOffset","setLabelOffset","resetLabelOffset","spacingBetweenPrefixAndInput","prefixDifference","paddingLeft","InputWrapperComponent","_inputProps$wrapperPr","_inputProps$wrapperPr2","_inputProps$className","inputProps","_useWrapper","hasValueOrActiveFloatingLabel","_useLabelOffset","inputWrapperClasses","_inputProps$placehold","InputWrapper","SelectWrapperComponent","_selectProps$classNam","selectProps","SelectWrapper","TextareaWrapperComponent","textareaProps","hover","setHover","_textareaProps$placeh","TextareaWrapper","FieldsetComponent","legend","_ref$legendStyle","legendStyle","_ref$hideLegend","hideLegend","noBackground","_ref$background","background","_ref$noPadding","noPadding","_ref$required","_ref$disablePropagati","disablePropagation","allowedComponents","_child$props$disabled","_child$props$error","backgroundColor","fieldset","Fieldset","FormComponent","form","Form","RadioWrapperComponent","fieldsetProps","RadioWrapper","CheckboxWrapperComponent","CheckboxWrapper","setWizardState","steps","mode","payload","changeCurrentStepNo","currentStepNo","reducer","state","action","WizardStateContext","dispatch","WizardStateProvider","_useReducer","useReducer","useSetWizardState","useStepChanging","onStepChange","_useContext2","WizardContent","Wizard","_props$initialStepNo","initialStepNo","calculateNextStepNo","findIndex","step","stepNo","calculatePrevStepNo","reversedCurrentStepNo","reversedPrevStepNo","reverse","useNextStepNo","useMemo","usePreviousStepNo","WizardActions","onCancel","onNext","onPrevious","onSaveAndClose","cancelButtonLabel","previousButtonLabel","nextButtonLabel","saveAndCloseButtonLabel","_useContext$state","nextStepNo","hasNextStep","previousStepNo","hasPreviousStep","isLastStepOrEditMode","changeStepNo","onNextWrapper","onPreviousWrapper","onSaveAndCloseWrapper","BaseWizardStepsComponent","_ref$futureStepsClick","futureStepsClickable","getStepState","getStepContent","stepState","stepNumberString","generatedSteps","disabledStyleClassName","clickableClassName","BaseWizardSteps","WizardStepsComponent","onStepClick","selectedStepNo","WizardSteps","ariaSortMapping","ASC","DESC","DataGridHeaderCellComponent","headline","disableSorting","activeSortDirection","onSort","onCellClick","sortingIndicator","getSortingIndicatorClasses","sortingIndicatorClasses","TriangleUp","innerContent","DataGridHeaderCell","sortingStates","DataGridHeaderComponent","initialSort","headers","disableContextMenuColumn","enableMultiSorting","sortList","setSortList","calculateNextSortState","currentDirectionIdx","updateSortList","find","restSortList","newSortDirection","wrapOnSort","newSort","headerCells","header","headerStyle","textAlign","paddingRight","sort","DataGridHeader","DataGridColumnsToggleComponent","_ref$titleLabel","_ref$closeButtonTitle","onToggleClicked","_ref$domRoot","labelledId","toggles","DataGridColumnsToggle","DataGridActionsComponent","_columnsBtnProps$clas","_columnsBtnProps$clas2","_searchBtnProps$class","_columnsBtnProps$clas3","enableAddBtn","enableColumnsBtn","enableSearchBtn","_ref$addBtnProps","addBtnProps","_ref$columnsBtnProps","columnsBtnProps","_ref$searchBtnProps","searchBtnProps","_ref$searchIconBtnPro","searchIconBtnProps","onColumnToggled","isHidden","showColsPopover","setShowColsPopover","showColumnBtn","addBtnChildren","restAddBtnProps","columnsBtnChildren","restColumnsBtnProps","searchBtnChildren","restSearchBtnProps","_excluded4","Plus","Change","TableSearch","DataGridActions","DataGridCellComponent","cellIndex","columnLength","cellStyle","DataGridCell","DataGridRowComponent","visibleCells","cellWithSpacing","DataGridRow","skeletonLoadingRows","DataGridBodyInner","data","emptyLabel","renderContent","visibleColumns","_","rowIdx","__","colIdx","emptyData","colSpan","DataGridBody","DataGridInner","_paginationProps$clas","paginationProps","internalHeaders","setInternalHeaders","colName","padding","splitPaddings","paddingLeftIndex","defineProperties","paddingTop","paddingBottom","DataGrid","BannerComponent","ariaRole","ariaLive","getIconVariant","Warning","Banner"],"mappings":"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"}
|