@deviceinsight/ng-ui-basic-components 7.19.0 → 7.21.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,22 +1,95 @@
1
1
  # General
2
2
 
3
- This project contains basic components and custom projects.
3
+ This project contains the basic React components shared by
4
+ [NG-UI](https://gitlab.device-insight.com/ng-ui/ng-ui) and custom projects.
5
+ It is published as `@deviceinsight/ng-ui-basic-components` and is also consumed by
6
+ `@deviceinsight/ng-ui-components`.
7
+
8
+ The package is ESM-first (`dist/index.js`) with a CommonJS build (`dist/index.cjs`)
9
+ and type declarations (`dist/types/index.d.ts`). The bundled stylesheet is exported
10
+ separately and has to be imported by the consuming project:
11
+
12
+ ```ts
13
+ import '@deviceinsight/ng-ui-basic-components/style.css';
14
+ ```
15
+
16
+ `react`, `react-dom`, `i18next` and `react-i18next` are peer dependencies and have to
17
+ be provided by the consuming project.
18
+
19
+ ## Contents
20
+
21
+ `src/index.ts` is the public API. It currently exports:
22
+
23
+ - **Components** — `Accordion`, `AccordionItem`, `Bubble`, `Button`, `ButtonRow`,
24
+ `Checkbox`, `Icon`, `Label`, `Modal`, `ModalContainer`, `Popup`, `SearchBox`,
25
+ `Spinner`, `SpinnerContainer`, `Tabs`, `Tooltip`
26
+ - **Confirm helpers** — `ConfirmProvider`, `withConfirm`, `useConfirm`
27
+ - **Types** — `ConfirmProps`, `Placement`
28
+
29
+ `src/hooks` holds shared hooks (currently `useOutsideClick`), `src/assets` the
30
+ stylesheet and static assets, `src/types` the shared type definitions.
31
+
32
+ # Development
33
+
34
+ Node is pinned via `.nvmrc` (see also the `engines` field in `package.json`).
35
+
36
+ ```shell
37
+ npm install
38
+ npm run storybook # dev server on http://localhost:6006
39
+ ```
40
+
41
+ Available scripts:
42
+
43
+ | Script | Description |
44
+ | ------------------------- | ---------------------------------------------------------------------------- |
45
+ | `npm run build:library` | Cleans `dist`, bundles with Vite and emits types via `tsconfig.types.json` |
46
+ | `npm run watch` | Builds once, then rebuilds and runs `yalc push` on every successful compile |
47
+ | `npm run clean` | Removes `dist` |
48
+ | `npm run storybook` | Starts Storybook on port 6006 |
49
+ | `npm run build-storybook` | Builds the static Storybook |
50
+ | `npm run typecheck` | `tsc --noEmit` |
51
+ | `npm run lint` | Lints with oxlint and checks formatting with Prettier |
52
+ | `npm run prettier` | Formats sources, `package.json` and the Storybook config |
53
+ | `npm run scan` | Vulnerability scan via `audit-ci` using `scan-config.json5` |
54
+
55
+ There are no unit tests in this project; components are exercised via Storybook
56
+ stories (`*.stories.tsx`).
57
+
58
+ Commits are checked by a husky `pre-commit` hook that runs `lint-staged`
59
+ (prettier on the staged files).
60
+
61
+ `CHANGELOG.md` is maintained per version. Renovate dependency updates append their
62
+ entry automatically via the `postUpgradeTasks` hook in `renovate.json`, which calls
63
+ `./update-changelog.sh <depName> <currentVersion> <newVersion>`.
4
64
 
5
65
  # Linking for local development
6
66
 
7
- We recommend using `yalc` tool for linking `ng-ui-basic-components`. It's because `yalc` generates exactly the same package as
67
+ We recommend using the `yalc` tool for linking `@deviceinsight/ng-ui-basic-components`. It's because `yalc` generates exactly the same package as
8
68
  it would be published to the npm registry, especially it removes files that should be ignored and their existence cause
9
- problems when we use `yarn link`.
69
+ problems when we use `npm link`.
10
70
 
11
71
  Here's how to do the linking:
12
72
 
13
73
  ```shell
14
- yarn link-local
74
+ npm run build:library
75
+ npx yalc publish
15
76
 
16
77
  # in the project where you want to link this library to:
17
- yalc link "@deviceinsight/ng-ui-basic-components"
78
+ npx yalc link "@deviceinsight/ng-ui-basic-components"
18
79
  ```
19
80
 
81
+ Use `npm run watch` to keep pushing changes to the linked consumers while developing.
82
+
83
+ # CI
84
+
85
+ `.gitlab-ci.yml` installs the dependencies and then runs `scan`, `lint` and
86
+ `typecheck` on every branch except `main`. The `publish` job runs for `develop` and
87
+ for tags: `-SNAPSHOT` versions are published to the internal Nexus registry under the
88
+ `next` tag, releases go to the public npm registry. A release older than the currently
89
+ published `latest` is published under a `hotfix-<major>.<minor>` tag so that `latest`
90
+ is not moved backwards. `publish_alpha` is a manual job that publishes an alpha
91
+ prerelease of the `VERSION` variable to the internal registry under `next`.
92
+
20
93
  # Releasing the library using git flow
21
94
 
22
95
  ## Prerequisites
@@ -28,32 +101,35 @@ The git flow tools need to be installed. This depends on your operating system.
28
101
  They can be also installed from the git repo: https://github.com/petervanderdoes/gitflow-avh
29
102
 
30
103
  After git flow is installed, the repo needs to be initialized. Run `git flow init` and answer every
31
- question with the default (press Enter/Return).
104
+ question with the default (press Enter/Return). The script verifies that the branches
105
+ are named `main` and `develop`.
32
106
 
33
107
  ## Building a release
34
108
 
35
109
  To build a release of this library, execute `./release.sh`, which consists of the following steps:
36
110
 
37
- ### Before the release: Check for vulnerabilities and run the tests
111
+ ### Before the release: Check for vulnerabilities
38
112
 
39
113
  Vulnerabilities can occur at any time.
40
114
  To be sure, the pipeline for the branches and the tags created
41
- in the release process will not fail, it is wise to run the checks locally before building the
42
- release.
43
- To do this, run:
115
+ in the release process will not fail, the script runs the checks locally before building the
116
+ release:
44
117
 
45
118
  ```
46
119
  npm install
47
120
  npm run scan
48
- npm run test
49
121
  ```
50
122
 
123
+ If `package-lock.json` changed during the install, the script commits it.
124
+
51
125
  ### Building the release
52
126
 
53
127
  1. Switch to develop branch and make sure both main and develop are current:
54
128
 
55
129
  `git checkout develop && git pull && git fetch origin main:main`
56
130
 
131
+ The script also aborts if the workarea is dirty or if `develop` has unpushed commits.
132
+
57
133
  2. Get the upcoming release from `package.json` and start the release:
58
134
 
59
135
  `git flow release start $RELEASE_VERSION`, e.g. `git flow release start 1.2.0`.
@@ -89,7 +165,7 @@ so that the version is e.g. `1.2.0-SNAPSHOT`.
89
165
 
90
166
  5.2. Run `npm install`.
91
167
 
92
- 5.2. Commit `package.json` and `package-lock.json`. Commit message should be `Starting $NEW_SNAPSHOT_VERSION`, e.g. `Starting 1.2.0`.
168
+ 5.3. Commit `package.json` and `package-lock.json`. Commit message should be `Starting $NEW_SNAPSHOT_VERSION`, e.g. `Starting 1.2.0`.
93
169
 
94
170
  6. Push the branches and the tag:
95
171
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../src/components/accordion/Accordion.tsx","../src/components/accordionComponents/AccordionItem.tsx","../src/components/button/Button.tsx","../src/components/button/ButtonRow.tsx","../src/hooks/useOutsideClick.ts","../src/components/modalComponents/ModalWindow.tsx","../src/components/modal/Modal.tsx","../src/components/modalComponents/ModalContainer.tsx","../src/components/spinner/Spinner.tsx","../src/components/spinner/SpinnerContainer.tsx","../src/components/input/Checkbox.tsx","../src/components/confirm/utils.ts","../src/components/confirm/Confirm.tsx","../src/components/confirm/ConfirmProvider.tsx","../src/components/confirm/useConfirm.ts","../src/components/confirm/withConfirm.tsx","../src/assets/svg/icon_add.svg","../src/assets/svg/icon_cross.svg","../src/assets/svg/icon_edit.svg","../src/assets/svg/icon_gear.svg","../src/assets/svg/icon_duplicate.svg","../src/assets/svg/icon_download.svg","../src/assets/svg/icon_lupe.svg","../src/assets/svg/icon_key.svg","../src/assets/svg/icon_reload.svg","../src/assets/svg/icon_fullscreen.svg","../src/assets/svg/icon_help_light.svg","../src/assets/svg/icon_star.svg","../src/components/icon/Icon.tsx","../src/components/label/Label.tsx","../src/components/popup/Popup.tsx","../src/components/bubble/Bubble.tsx","../src/components/tooltip/Tooltip.tsx","../src/components/tabs/Tabs.tsx","../src/components/input/SearchBox.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport type Props = {\n\t/** Should contain Array of &lt;AccordionItems/&gt; elements */\n\tchildren?: Array<React.ReactNode>;\n\n\t/** (Optional) sets additional class for styling purposes */\n\taccordionClass?: string;\n\n\t/** Function to be called if active &lt;AccordionItems/&gt; gets changed */\n\tonPageChange?: (newPageNumber: number) => any;\n\n\t/** (Optional) Index of the &lt;AccordionItem/&gt; which should be opened on initial render cycle */\n\tdefaultOpenPageIndex?: number;\n};\n\ntype State = {\n\tcurrentPageIndex: number;\n};\n\n/**\n * Accordions are best used to display homogenous information, e.g. multiple configurations which would take up a lot of space otherwise.\n */\nexport default class Accordion extends React.Component<Props, State> {\n\tstate: State = {\n\t\tcurrentPageIndex: -1\n\t};\n\n\tcomponentDidMount() {\n\t\tconst {defaultOpenPageIndex} = this.props;\n\n\t\tif (defaultOpenPageIndex !== null && defaultOpenPageIndex !== undefined) {\n\t\t\tthis.handleAccordionToggle(defaultOpenPageIndex);\n\t\t}\n\t}\n\n\thandleAccordionToggle: (index: number) => void = (index: number) => {\n\t\tconst {onPageChange} = this.props;\n\t\tconst newPageIndex = this.state.currentPageIndex !== index ? index : -1;\n\t\tthis.setState({\n\t\t\tcurrentPageIndex: newPageIndex\n\t\t});\n\n\t\tif (onPageChange) {\n\t\t\tonPageChange(newPageIndex);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {children, accordionClass} = this.props;\n\t\tconst {currentPageIndex} = this.state;\n\t\treturn (\n\t\t\t<div className={accordionClass ? `di accordion ${accordionClass}` : 'di accordion'}>\n\t\t\t\t{children &&\n\t\t\t\t\tchildren.map((child: any, index) =>\n\t\t\t\t\t\tchild ? (\n\t\t\t\t\t\t\t<child.type\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t\tisOpen={currentPageIndex === index}\n\t\t\t\t\t\t\t\ttoggle={() => this.handleAccordionToggle(index)}\n\t\t\t\t\t\t\t\t{...child.props}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null\n\t\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\n\ntype Info = {\n\ttext: string;\n\tcssStyle: Record<string, any>;\n};\n\nexport type Props = {\n\t/** (Optional) Displays either numeric- or text-based badge in front of the &lt;AccordionItems/&gt; */\n\tbadge?: (number | string | React.ReactNode) | null | undefined;\n\n\t/** @ignore */\n\tchildren?: React.ReactNode;\n\n\t/** (Optional) Displays additional information, which is visible in \"closed\" state */\n\tinfo1?: Info;\n\n\t/** If true, expands &lt;AccordionItems/&gt; */\n\tisOpen?: boolean;\n\n\t/** (Optional) Sets additional classes for styling purposes */\n\titemClasses?: string;\n\n\t/** Title of &lt;AccordionItems/&gt; */\n\ttitle: string | React.ReactNode;\n\n\t/** (Optional) Tooltip of &lt;AccordionItems/&gt; */\n\ttitleTooltip?: string;\n\n\t/** Function which is called to open/close &lt;AccordionItems/&gt; */\n\ttoggle?: () => void;\n\n\t/** (Optional) Enables additional handler, e.g., for editing or deleting &lt;AccordionItems/&gt; */\n\ttools?: Array<React.ReactNode>;\n\n\t/** @ignore */\n\t'data-testid'?: string | undefined;\n};\n\nexport default class AccordionItem extends React.PureComponent<Props> {\n\trender() {\n\t\tconst {badge, children, isOpen, info1, itemClasses, title, titleTooltip, toggle, tools, ...rest} = this.props;\n\t\tconst accordionItemClasses = ['item'];\n\n\t\tif (itemClasses) accordionItemClasses.push(itemClasses);\n\t\tif (isOpen) accordionItemClasses.push('open');\n\n\t\treturn (\n\t\t\t<div className={accordionItemClasses.join(' ')}>\n\t\t\t\t<div className=\"head\">\n\t\t\t\t\t<span className=\"title\" onClick={toggle} data-testid={rest['data-testid']}>\n\t\t\t\t\t\t<h1 title={titleTooltip}>{title}</h1>\n\t\t\t\t\t\t{badge && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"di label\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tmargin: '0 0 0 10px',\n\t\t\t\t\t\t\t\t\tbackgroundColor: '#ddd',\n\t\t\t\t\t\t\t\t\tborderColor: 'transparent'\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{badge}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{info1 && <span style={info1.cssStyle}>{info1.text}</span>}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"tools\">\n\t\t\t\t\t\t{tools &&\n\t\t\t\t\t\t\ttools.map((toolComponent, index) => (\n\t\t\t\t\t\t\t\t<span key={index} className=\"tool\">\n\t\t\t\t\t\t\t\t\t{toolComponent}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"cont\">{children}</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import React, {ComponentType} from 'react';\nimport cx from 'classnames';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** primary style, mutually exclusive with _danger_ and _naked_ */\n\tprimary?: boolean;\n\n\t/** danger style, mutually exclusive with _primary_ and _naked_ */\n\tdanger?: boolean;\n\n\t/** render the button without border and background color, mutually exclusive with _primary_ and _danger_ */\n\tnaked?: boolean;\n\n\t/** a title tooltip */\n\ttitle?: (TranslationDescriptor | null | undefined) | string;\n\n\t/** button | submit | reset */\n\ttype?: 'button' | 'submit' | 'reset';\n\n\t/** a click handler */\n\tonClick?: (...args: Array<any>) => any;\n\n\t/** a smaller button */\n\tsmall?: boolean;\n\n\t/** disable the button */\n\tdisabled?: boolean;\n\n\t/** @ignore */\n\tchildren?: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\ttabIndex?: number;\n};\n\n/**\n * Buttons are used to inform the user about a potential user interaction, which then on interaction causes an action.\n * To create a standardized look and feel, different props can be passed to the Button.\n */\nfunction Button({\n\tchildren,\n\ttitle,\n\ttype,\n\tdisabled,\n\tonClick,\n\tstyle,\n\ttabIndex,\n\tt,\n\tprimary,\n\tdanger,\n\tnaked,\n\tclassName,\n\tsmall,\n\t...rest\n}: Props & WithTranslation) {\n\tlet btnTitle = title;\n\n\tif (title && typeof title !== 'string') {\n\t\tbtnTitle = t(title.id, {\n\t\t\tdefaultValue: title.defaultValue\n\t\t});\n\t}\n\n\treturn (\n\t\t<button\n\t\t\tdata-testid={rest['data-testid']}\n\t\t\ttype={type || 'button'}\n\t\t\tclassName={cx('di button', className, {small, primary, danger, link: naked})}\n\t\t\ttitle={typeof btnTitle === 'string' ? btnTitle : undefined}\n\t\t\tdisabled={disabled}\n\t\t\tonClick={onClick}\n\t\t\tstyle={style}\n\t\t\ttabIndex={tabIndex}\n\t\t>\n\t\t\t{children}\n\t\t</button>\n\t);\n}\n\nexport default withTranslation()(Button) as ComponentType<Props>;\n","import * as React from 'react';\n\nexport type Props = {\n\t/** should contain &lt;Button /&gt; elements */\n\tchildren: React.ReactNode;\n\n\t/** show a horizontal row above the buttons */\n\tdividing?: boolean;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n};\n\n/**\n * ButtonRows align Buttons nicely for all relevant and/or related user actions such as saving or canceling changes.\n * To separate the ButtonRow from the content, the extra property `dividing` can be used.\n */\nconst ButtonRow = ({children, dividing, className, style}: Props) => (\n\t<div style={style} className={`di button-row ${dividing ? 'dividing' : ''} ${className || ''}`}>\n\t\t{children}\n\t</div>\n);\n\nButtonRow.defaultProps = {\n\tdividing: false\n};\n\nexport default ButtonRow;\n","import {useEffect, useRef} from 'react';\n\nconst isTouchEvent = (event: Event): event is TouchEvent => {\n\treturn !!(event as any).touches;\n};\n\nconst isInsideBoundingRect = (element: HTMLElement, event: MouseEvent | TouchEvent) => {\n\tconst rect = element.getBoundingClientRect();\n\n\tlet x, y;\n\tif (isTouchEvent(event)) {\n\t\tx = event.touches[0].pageX;\n\t\ty = event.touches[0].pageY;\n\t} else {\n\t\tx = event.pageX;\n\t\ty = event.pageY;\n\t}\n\n\treturn rect.left <= x && rect.right >= x && rect.top <= y && rect.bottom >= y;\n};\n\nconst useOutsideClick = (\n\telements: Array<HTMLElement | null>,\n\tcallback: (evt: MouseEvent | TouchEvent | undefined) => void\n) => {\n\tconst callbackRef = useRef(callback);\n\n\tuseEffect(() => {\n\t\tcallbackRef.current = callback;\n\t}, [callback]);\n\n\tuseEffect(() => {\n\t\tconst listener = (event: MouseEvent | TouchEvent) => {\n\t\t\tconst elementsNonNull = elements.filter((element) => element != null) as HTMLElement[];\n\t\t\tif (\n\t\t\t\telementsNonNull.every(\n\t\t\t\t\t(element) =>\n\t\t\t\t\t\telement !== event.target &&\n\t\t\t\t\t\t!element.contains(event.target as any) &&\n\t\t\t\t\t\t!isInsideBoundingRect(element, event)\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcallbackRef.current(event);\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener('mousedown', listener, true);\n\t\tdocument.addEventListener('touchstart', listener, true);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousedown', listener, true);\n\t\t\tdocument.removeEventListener('touchstart', listener, true);\n\t\t};\n\t}, [elements]);\n};\n\nexport default useOutsideClick;\n","import {useEffect, useRef, useState} from 'react';\nimport Draggable from 'react-draggable';\n\nimport {Props} from '../modal/Modal';\nimport useOutsideClick from '../../hooks/useOutsideClick';\n\nexport default function ModalWindow({className, width, header, content, footer, onOutsideClick}: Props) {\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst [rootElement, setRootElement] = useState<HTMLElement | null>(null);\n\n\tuseEffect(() => {\n\t\tsetRootElement(ref.current);\n\t}, []);\n\n\tuseOutsideClick([rootElement], () => {\n\t\tif (onOutsideClick) onOutsideClick();\n\t});\n\n\treturn (\n\t\t<Draggable handle=\".modal-header\" nodeRef={ref}>\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={`modal-window ${className || ''}`}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxWidth: width\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{header && <div className=\"modal-header\">{header}</div>}\n\t\t\t\t{content && <div className=\"modal-content\">{content}</div>}\n\t\t\t\t{footer && <div className=\"modal-footer\">{footer}</div>}\n\t\t\t</div>\n\t\t</Draggable>\n\t);\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport ModalWindow from '../modalComponents/ModalWindow';\n\nexport type Props = {\n\theader?: React.ReactNode;\n\tcontent?: React.ReactNode;\n\tfooter?: React.ReactNode;\n\n\t/** the CSS width setting, either a number or string */\n\twidth?: string | number;\n\tclassName?: string;\n\n\t/** callback function that is executed when the users click outside the modal */\n\tonOutsideClick?: (event?: Event) => void;\n\tonMouseDown?: (event: React.SyntheticEvent<HTMLElement>) => void;\n};\n\nexport default class Modal extends React.Component<\n\tProps,\n\t{\n\t\tclassName: string;\n\t}\n> {\n\tstatic defaultProps: {\n\t\twidth: string;\n\t} = {\n\t\twidth: '60%'\n\t};\n\tcontainer: HTMLDivElement | undefined;\n\tmodalRoot: HTMLElement | null | undefined;\n\ttimeoutId: NodeJS.Timeout | undefined;\n\n\tconstructor(props: Props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tclassName: 'di modal'\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.container = document.createElement('div');\n\t\tthis.modalRoot = document.getElementById('modal-root');\n\n\t\tif (this.modalRoot) {\n\t\t\tthis.modalRoot.appendChild(this.container);\n\t\t} else if (document.body) {\n\t\t\tdocument.body.appendChild(this.container);\n\t\t}\n\n\t\tif (this.props.onOutsideClick) {\n\t\t\twindow.addEventListener('keydown', this.keyEventHandler);\n\t\t}\n\n\t\t// set the show class after 10ms for animation\n\t\tthis.timeoutId = setTimeout(\n\t\t\t() =>\n\t\t\t\tthis.setState({\n\t\t\t\t\tclassName: `di modal show ${this.props.className || ''}`\n\t\t\t\t}),\n\t\t\t10\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (this.container) {\n\t\t\tif (this.modalRoot) {\n\t\t\t\tthis.modalRoot.removeChild(this.container);\n\t\t\t} else if (document.body) {\n\t\t\t\tdocument.body.removeChild(this.container);\n\t\t\t}\n\t\t}\n\n\t\tif (this.props.onOutsideClick) {\n\t\t\twindow.removeEventListener('keydown', this.keyEventHandler);\n\t\t}\n\n\t\tif (this.timeoutId) {\n\t\t\tclearTimeout(this.timeoutId);\n\t\t}\n\t}\n\n\tkeyEventHandler: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n\t\tif (event.key === 'Escape' && this.props.onOutsideClick) {\n\t\t\tthis.props.onOutsideClick(event);\n\t\t}\n\t};\n\n\trender() {\n\t\tif (!this.container) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn ReactDOM.createPortal(\n\t\t\t<div className={this.state.className} onMouseDown={this.props.onMouseDown}>\n\t\t\t\t<ModalWindow {...this.props} />\n\t\t\t</div>,\n\t\t\tthis.container\n\t\t);\n\t}\n}\n","import React from 'react';\n\nexport type Props = Record<string, never>;\n\nexport default class ModalContainer extends React.PureComponent<Props> {\n\trender() {\n\t\treturn <div id=\"modal-root\" />;\n\t}\n}\n","import React from 'react';\n\nexport type Props = {\n\t/** the size of the Spinner in px */\n\tsize?: number;\n\n\t/** @ignore */\n\tcenter?: boolean;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\n/**\n * Spinners usually show a loading indication.\n */\nexport default class Spinner extends React.Component<Props> {\n\tstatic defaultProps = {\n\t\tsize: 56,\n\t\tcenter: false\n\t};\n\n\trender() {\n\t\tconst {size = 56, center, ...dataAttrs} = this.props;\n\t\tlet style: React.CSSProperties = {\n\t\t\twidth: size,\n\t\t\theight: size\n\t\t};\n\n\t\tif (center) {\n\t\t\tstyle = {\n\t\t\t\t...style,\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttop: '50%',\n\t\t\t\tleft: '50%',\n\t\t\t\tmarginTop: -size / 2,\n\t\t\t\tmarginLeft: -size / 2\n\t\t\t};\n\t\t}\n\n\t\treturn <div className=\"di spinner\" style={style} {...dataAttrs} />;\n\t}\n}\n","import React from 'react';\n\nimport Spinner from './Spinner';\n\nexport type Props = {\n\t/** controls the display of the Spinner */\n\tshow: boolean;\n\n\t/** the size of the Spinner in px */\n\tsize?: number;\n\n\t/** content to be rendered once the loading is done */\n\tchildren?: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\n/**\n * SpinnerContainer wraps the entire content and displays a loading indicator until the loading is done.\n */\nexport default class SpinnerContainer extends React.Component<Props> {\n\tstatic defaultProps: {\n\t\tsize: number;\n\t} = {\n\t\tsize: 56\n\t};\n\n\trender() {\n\t\tconst {show, size, children, className} = this.props;\n\t\tconst classNames = `di spinner-wrapper ${className ? className : ''}`;\n\t\treturn (\n\t\t\t<div className={classNames}>\n\t\t\t\t<div\n\t\t\t\t\tclassName={`di spinner-container ${show ? 'visible' : ''}`}\n\t\t\t\t\tdata-testid={this.props['data-testid']}\n\t\t\t\t>\n\t\t\t\t\t<Spinner size={size} center />\n\t\t\t\t</div>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** input type selector */\n\ttype?: 'checkbox' | 'radio' | 'toggle';\n\n\t/** Flag to preselect the status of the checkbox */\n\tvalue: boolean;\n\n\t/** Function, executed when toggling the checkbox */\n\tonChange: (nextStatus: boolean) => void;\n\n\t/** Optional input element tooltip */\n\ttitle?: TranslationDescriptor;\n\n\t/** Optional label for checkbox and radio button*/\n\tlabel?: TranslationDescriptor;\n\n\t/** visually indicate that the checkbox is disabled and disable onChange handler */\n\tdisabled?: boolean;\n\n\t/** Optional flag for toggle type: Render a small Toggle */\n\ttoggleSmall?: boolean;\n\n\t/** Optional flag for toggle type: Sets the slider color when the Toggle is truthy */\n\ttoggleColor?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\t'wrapper-data-testid'?: string;\n\n\t/** @ignore */\n\t'innerdiv-data-testid'?: string;\n};\n\nconst getWrapperClassName = (type: string, small: boolean) => {\n\tswitch (type) {\n\t\tcase 'checkbox':\n\t\tcase 'radio':\n\t\t\treturn 'di checkbox';\n\n\t\tcase 'toggle':\n\t\t\treturn small ? 'di toggle toggle-small' : 'di toggle';\n\n\t\tdefault:\n\t\t\tthrow Error(`type not support: ${type}`);\n\t}\n};\n\nconst getCheckboxClassName = (type: string, small: boolean) => {\n\tswitch (type) {\n\t\tcase 'checkbox':\n\t\t\treturn 'box';\n\n\t\tcase 'radio':\n\t\t\treturn 'radio';\n\n\t\tcase 'toggle':\n\t\t\treturn small ? 'switch switch-small' : 'switch';\n\n\t\tdefault:\n\t\t\tthrow Error(`type not support: ${type}`);\n\t}\n};\n\n/**\n * Checkbox for enabling user interaction can have one of multiple types which are defined via the `type` prop.\n */\nconst Checkbox = ({\n\ttype = 'checkbox',\n\tvalue,\n\tonChange,\n\ttitle,\n\tlabel,\n\tdisabled = false,\n\ttoggleSmall = false,\n\ttoggleColor = '#259b23',\n\tt,\n\t...other\n}: Props & WithTranslation) => {\n\tconst style =\n\t\ttype === 'toggle'\n\t\t\t? {\n\t\t\t\t\tbackgroundColor: value ? toggleColor : 'gray'\n\t\t\t\t}\n\t\t\t: {};\n\tconst tooltip = title\n\t\t? t(title.id, {\n\t\t\t\tdefaultValue: title.defaultValue\n\t\t\t})\n\t\t: undefined;\n\tconst labelText = label\n\t\t? t(label.id, {\n\t\t\t\tdefaultValue: label.defaultValue\n\t\t\t})\n\t\t: null;\n\treturn (\n\t\t<label\n\t\t\ttitle={tooltip}\n\t\t\tclassName={getWrapperClassName(type, toggleSmall)}\n\t\t\tdata-testid={other['wrapper-data-testid']}\n\t\t>\n\t\t\t<input\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={value}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonChange={() => onChange(!value)}\n\t\t\t\tdata-testid={other['data-testid']}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tclassName={getCheckboxClassName(type, toggleSmall)}\n\t\t\t\tstyle={style}\n\t\t\t\tdata-testid={other['innerdiv-data-testid']}\n\t\t\t/>\n\t\t\t{label && <span className=\"textlabel\">{labelText}</span>}\n\t\t</label>\n\t);\n};\n\nexport default withTranslation()(Checkbox) as React.ComponentType<Props>;\n","import * as React from 'react';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport function isTranslationDescriptor(\n\targ: TranslationDescriptor | string | React.ReactElement\n): arg is TranslationDescriptor {\n\tconst result =\n\t\ttypeof arg === 'object' && typeof (arg as any).id === 'string' && typeof (arg as any).defaultValue === 'string';\n\n\tif (result) {\n\t\tconsole.warn(\n\t\t\t'Please use strings instead of TranslationDescriptors to initialize the Confirm modal, because TranslationDescriptors are deprecated'\n\t\t);\n\t}\n\n\treturn result;\n}\n","import * as React from 'react';\nimport {Trans} from 'react-i18next';\n\nimport Modal from '../modal/Modal';\nimport Button from '../button/Button';\nimport {TranslationDescriptor} from '../../types/i18n';\nimport {isTranslationDescriptor} from './utils';\n\nexport type Props = {\n\ttitle: string | TranslationDescriptor;\n\tmessage: string | React.ReactElement | TranslationDescriptor;\n\n\t/** @ignore */\n\tonAccept: (...args: Array<any>) => any;\n\n\t/** @ignore */\n\tonDecline: (...args: Array<any>) => any;\n\tacceptButtonLabel?: string | TranslationDescriptor;\n\tdeclineButtonLabel?: string | TranslationDescriptor;\n\tacceptButtonStyle?: 'primary' | 'danger';\n};\n\nfunction transformTextToElement(\n\tmessage: TranslationDescriptor | string | React.ReactElement\n): React.ReactElement | string {\n\tif (isTranslationDescriptor(message)) {\n\t\treturn <Trans i18nKey={message.id}>{message.defaultValue}</Trans>;\n\t}\n\treturn message;\n}\n\n/**\n * Confirm enables the possibility to open up a dialog within a modal, requiring additional user actions.\n * This component should not be used directly, instead use `@withConfirm` to inject a promise based confirm method\n */\nexport default function Confirm({\n\ttitle,\n\tmessage,\n\tonAccept,\n\tonDecline,\n\tacceptButtonLabel,\n\tdeclineButtonLabel,\n\tacceptButtonStyle = 'primary'\n}: Props) {\n\treturn (\n\t\t<Modal\n\t\t\theader={transformTextToElement(title)}\n\t\t\tcontent={transformTextToElement(message)}\n\t\t\tfooter={\n\t\t\t\t<div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tprimary={acceptButtonStyle === 'primary'}\n\t\t\t\t\t\tdanger={acceptButtonStyle === 'danger'}\n\t\t\t\t\t\tonClick={onAccept}\n\t\t\t\t\t>\n\t\t\t\t\t\t{acceptButtonLabel ? (\n\t\t\t\t\t\t\ttransformTextToElement(acceptButtonLabel)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Trans i18nKey=\"form.accept\">Accept</Trans>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button onClick={onDecline}>\n\t\t\t\t\t\t{declineButtonLabel ? (\n\t\t\t\t\t\t\ttransformTextToElement(declineButtonLabel)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Trans i18nKey=\"form.decline\">Decline</Trans>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\twidth={500}\n\t\t/>\n\t);\n}\n","import React, {createContext, useState} from 'react';\n\nimport Confirm, {Props as ConfirmProps} from './Confirm';\n\ntype ConfirmOptions = {\n\ttitle: string;\n\tmessage: string | React.ReactElement;\n\tacceptButtonLabel?: string;\n\tdeclineButtonLabel?: string;\n\tacceptButtonStyle?: 'primary' | 'danger';\n};\n\nexport const ConfirmContext = createContext<{\n\tconfirm: (options: ConfirmOptions) => Promise<boolean>;\n}>({\n\tconfirm: () => Promise.reject(new Error('ConfirmProvider is missing!'))\n});\n\nfunction ConfirmProvider({children}: React.PropsWithChildren<Record<string, unknown>>) {\n\tconst [visible, setVisible] = useState<boolean>(false);\n\tconst [confirmProps, setConfirmProps] = useState<ConfirmProps>({\n\t\ttitle: '',\n\t\tmessage: '',\n\t\tonAccept: () => {},\n\t\tonDecline: () => {}\n\t});\n\n\tasync function confirm(options: ConfirmOptions) {\n\t\treturn new Promise<boolean>((resolve) => {\n\t\t\tsetVisible(true);\n\t\t\tsetConfirmProps({\n\t\t\t\t...options,\n\t\t\t\tonAccept: () => {\n\t\t\t\t\tsetVisible(false);\n\t\t\t\t\tresolve(true);\n\t\t\t\t},\n\t\t\t\tonDecline: () => {\n\t\t\t\t\tsetVisible(false);\n\t\t\t\t\tresolve(false);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\treturn (\n\t\t<ConfirmContext.Provider value={{confirm}}>\n\t\t\t{children}\n\t\t\t{visible && <Confirm {...confirmProps} />}\n\t\t</ConfirmContext.Provider>\n\t);\n}\n\nexport default ConfirmProvider;\n","import {useContext} from 'react';\n\nimport {ConfirmContext} from './ConfirmProvider';\n\nexport default function useConfirm() {\n\tconst context = useContext(ConfirmContext);\n\tif (!context) {\n\t\tthrow new Error('ConfirmProvider is missing');\n\t}\n\tconst {confirm} = context;\n\treturn confirm;\n}\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\nimport useConfirm from './useConfirm';\nimport ConfirmProvider from './ConfirmProvider';\nimport {isTranslationDescriptor} from './utils';\n\nexport type ConfirmProps = {\n\tconfirm: (\n\t\ttitle: string | TranslationDescriptor,\n\t\tmessage: string | TranslationDescriptor | React.ReactElement,\n\t\tacceptButtonLabel?: string | TranslationDescriptor,\n\t\tdeclineButtonLabel?: string | TranslationDescriptor,\n\t\tresolveWithConfirmation?: boolean,\n\t\tacceptButtonStyle?: 'primary' | 'danger'\n\t) => Promise<void | boolean>;\n};\n\nexport default function withConfirm<P extends object>(WrappedComponent: React.ComponentType<P & ConfirmProps>) {\n\tfunction WithConfirm(props: P) {\n\t\tconst confirm = useConfirm();\n\t\tconst {t} = useTranslation();\n\n\t\tfunction trans(arg: TranslationDescriptor | string) {\n\t\t\tif (isTranslationDescriptor(arg)) {\n\t\t\t\treturn t(arg.id, {defaultValue: arg.defaultValue});\n\t\t\t}\n\t\t\treturn arg;\n\t\t}\n\n\t\tasync function deprecatedConfirm(\n\t\t\ttitle: string | TranslationDescriptor,\n\t\t\tmessage: string | TranslationDescriptor | React.ReactElement,\n\t\t\tacceptButtonLabel?: string | TranslationDescriptor,\n\t\t\tdeclineButtonLabel?: string | TranslationDescriptor,\n\t\t\tresolveWithConfirmation?: boolean,\n\t\t\tacceptButtonStyle?: 'primary' | 'danger'\n\t\t): Promise<boolean | void> {\n\t\t\tconst accepted = await confirm({\n\t\t\t\ttitle: trans(title),\n\t\t\t\tmessage: isTranslationDescriptor(message) ? trans(message) : message,\n\t\t\t\tacceptButtonLabel: acceptButtonLabel ? trans(acceptButtonLabel) : undefined,\n\t\t\t\tdeclineButtonLabel: declineButtonLabel ? trans(declineButtonLabel) : undefined,\n\t\t\t\tacceptButtonStyle\n\t\t\t});\n\n\t\t\tif (resolveWithConfirmation) {\n\t\t\t\treturn accepted;\n\t\t\t} else if (!accepted) {\n\t\t\t\treturn new Promise(() => {});\n\t\t\t}\n\t\t}\n\n\t\treturn <WrappedComponent {...props} confirm={deprecatedConfirm} />;\n\t}\n\n\treturn function WithConfirmWrapper(props: P) {\n\t\treturn (\n\t\t\t<ConfirmProvider>\n\t\t\t\t<WithConfirm {...props} />\n\t\t\t</ConfirmProvider>\n\t\t);\n\t};\n}\n","export default \"data:image/svg+xml,%3csvg%20id='icon-add_24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpolygon%20id='plus'%20points='20%2010%2014%2010%2014%204%2010%204%2010%2010%204%2010%204%2014%2010%2014%2010%2020%2014%2020%2014%2014%2020%2014%2020%2010'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-cross_24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpolygon%20id='icon-cross_24'%20points='20%206.28%2017.87%204%2012%209.78%206.13%204%204%206.28%209.78%2011.97%204%2017.66%206.13%2019.93%2012%2014.15%2017.87%2019.93%2020%2017.66%2014.22%2011.97%2020%206.28'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-edit-24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='stift'%3e%3cpath%20d='M7.35,12.65a.5.5,0,0,0,0,.7l3.3,3.3a.5.5,0,0,0,.7,0l8.3-8.3A1.4,1.4,0,0,0,20,7.5v-1a1.4,1.4,0,0,0-.35-.85l-1.3-1.3A1.4,1.4,0,0,0,17.5,4h-1a1.4,1.4,0,0,0-.85.35Z'/%3e%3c/g%3e%3cpath%20d='M5.9,14.49c.06-.27.26-.33.45-.14l3.3,3.3c.19.19.13.39-.14.45l-4,.8a.3.3,0,0,1-.39-.39Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-gear-24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='icon-gear-24_sga-2'%20data-name='icon-gear-24_sga'%3e%3cpath%20d='M22.82,14.06A1.25,1.25,0,0,0,24,13,7.66,7.66,0,0,0,24,12,7.66,7.66,0,0,0,24,11a1.25,1.25,0,0,0-1.13-1l-1.09,0A1.49,1.49,0,0,1,20.44,9c-.15-.47-.44-2-.07-2.37l.74-.81a1.16,1.16,0,0,0,0-1.5L19.7,2.87a1.16,1.16,0,0,0-1.5,0l-.81.74a1.5,1.5,0,0,1-1.54.27c-.44-.23-1.72-1.08-1.74-1.63l0-1.09A1.25,1.25,0,0,0,13,.05a7.66,7.66,0,0,0-1,0,7.66,7.66,0,0,0-1,.05,1.25,1.25,0,0,0-1,1.13l0,1.09A1.52,1.52,0,0,1,9,3.56c-.47.15-2,.44-2.37.07L5.8,2.89a1.16,1.16,0,0,0-1.5,0L2.86,4.3a1.18,1.18,0,0,0,0,1.5l.74.81A1.5,1.5,0,0,1,3.9,8.15c-.23.44-1.08,1.72-1.63,1.74l-1.09,0A1.25,1.25,0,0,0,.05,11a7.66,7.66,0,0,0,0,1,7.66,7.66,0,0,0,.05,1,1.25,1.25,0,0,0,1.13,1l1.09,0A1.47,1.47,0,0,1,3.55,15c.16.48.45,2,.08,2.37l-.74.81a1.16,1.16,0,0,0,0,1.5L4.3,21.13a1.16,1.16,0,0,0,1.5,0l.81-.74a1.5,1.5,0,0,1,1.54-.27c.44.23,1.72,1.08,1.75,1.63l0,1.09A1.25,1.25,0,0,0,11,24,7.66,7.66,0,0,0,12,24,7.66,7.66,0,0,0,13,24a1.25,1.25,0,0,0,1-1.13l0-1.09A1.49,1.49,0,0,1,15,20.44c.47-.15,2-.44,2.37-.07l.81.74a1.16,1.16,0,0,0,1.5,0l1.43-1.43a1.16,1.16,0,0,0,0-1.5l-.74-.81a1.5,1.5,0,0,1-.27-1.54c.23-.44,1.08-1.72,1.63-1.74ZM12,15.5A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%3e%3cpath%20d='M22.1,4.91a3,3,0,0,0-3-3H6.44a2.4,2.4,0,0,1,1.34-.4h12.6A2.12,2.12,0,0,1,22.5,3.62V17.26a1.42,1.42,0,0,1-.4,1Z'/%3e%3cpath%20d='M20.38,1H7.78A3,3,0,0,0,5.26,2.4H19.09A2.51,2.51,0,0,1,21.6,4.91V19.12A1.94,1.94,0,0,0,23,17.26V3.62A2.62,2.62,0,0,0,20.38,1Z'/%3e%3c/g%3e%3cg%3e%3cpath%20d='M4,21.5A1.5,1.5,0,0,1,2.5,20V5.8A1.5,1.5,0,0,1,4,4.3H18.2a1.5,1.5,0,0,1,1.5,1.5V20a1.5,1.5,0,0,1-1.5,1.5ZM9.5,18a.5.5,0,0,0,.5.5h2a.5.5,0,0,0,.5-.5V14.5H16a.5.5,0,0,0,.5-.5V12a.5.5,0,0,0-.5-.5H12.5V8a.5.5,0,0,0-.5-.5H10a.5.5,0,0,0-.5.5v3.5H6a.5.5,0,0,0-.5.5v2a.5.5,0,0,0,.5.5H9.5Z'/%3e%3cpath%20d='M18.2,4.8a1,1,0,0,1,1,1V20a1,1,0,0,1-1,1H4a1,1,0,0,1-1-1V5.8a1,1,0,0,1,1-1H18.2M9,11H6a1,1,0,0,0-1,1v2a1,1,0,0,0,1,1H9v3a1,1,0,0,0,1,1h2a1,1,0,0,0,1-1V15h3a1,1,0,0,0,1-1V12a1,1,0,0,0-1-1H13V8a1,1,0,0,0-1-1H10A1,1,0,0,0,9,8v3m9.2-7.2H4a2,2,0,0,0-2,2V20a2,2,0,0,0,2,2H18.2a2,2,0,0,0,2-2V5.8a2,2,0,0,0-2-2ZM6,14V12h4V8h2v4h4v2H12v4H10V14Z'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3cpolygon%20points='7.92%2012%202.84%207%2013%207%207.92%2012'/%3e%3crect%20x='5'%20y='2'%20width='6'%20height='5'/%3e%3crect%20x='2'%20y='14'%20width='12'%20height='1'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3cdefs%3e%3cstyle%3e%20.cls-1%20{%20fill:%20%23fff;%20}%20%3c/style%3e%3c/defs%3e%3cg%3e%3ccircle%20class='cls-1'%20cx='5.5'%20cy='5.5'%20r='4.5'/%3e%3cpath%20d='M5.5,2A3.5,3.5,0,1,1,2,5.5,3.5,3.5,0,0,1,5.5,2m0-1A4.5,4.5,0,1,0,10,5.5,4.49,4.49,0,0,0,5.5,1Z'/%3e%3c/g%3e%3crect%20x='6.79'%20y='10.04'%20width='7.74'%20height='2.16'%20transform='translate(10.98%20-4.28)%20rotate(45)'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20data-name='icon_key'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2027.02%2027'%3e%3cpath%20d='M35.07,16.5a8.52,8.52,0,0,0-7.69,12L17.2,38.8a2.46,2.46,0,0,0,0,3.46,2.41,2.41,0,0,0,3.42,0l1.69-1.7,2.91,2.94L31,37.63l-2.92-3,2.44-2.46a8.31,8.31,0,0,0,4.51,1.33,8.53,8.53,0,0,0,0-17Zm0,3.91A4.62,4.62,0,1,1,30.5,25,4.6,4.6,0,0,1,35.07,20.41Z'%20transform='translate(-16.49%20-16.5)'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='Pfeilende'%3e%3cpath%20d='M24,10H15l9-8.93Z'/%3e%3c/g%3e%3cpath%20d='M18.45,18.78A9.33,9.33,0,0,1,2.62,14.86,9.8,9.8,0,0,1,8.89,2.69,9.42,9.42,0,0,1,20.72,9.14H23A11.72,11.72,0,0,0,11.68,0,11.74,11.74,0,0,0,.34,9.14,12,12,0,0,0,8.89,23.65a11.43,11.43,0,0,0,11.16-3.31Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20data-name='icon_fullscreen_sga'%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%3e%3cpolygon%20id='ecke'%20points='2%2014%202%2010%200%2010%200%2016%206%2016%206%2014%202%2014'/%3e%3cpolygon%20id='ecke-2'%20data-name='ecke'%20points='2%202%206%202%206%200%200%200%200%206%202%206%202%202'/%3e%3cpolygon%20id='ecke-3'%20data-name='ecke'%20points='14%2014%2010%2014%2010%2016%2016%2016%2016%2010%2014%2010%2014%2014'/%3e%3cpolygon%20id='ecke-4'%20data-name='ecke'%20points='10%200%2010%202%2014%202%2014%206%2016%206%2016%200%2010%200'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Icon_help'%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%3e%3cpath%20id='icon_help-2'%20data-name='icon_help'%20d='M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm1,16H11V15h2Zm1.7-6.26a4.85,4.85,0,0,1-.49.81l-1,1.37a1.36,1.36,0,0,0-.18.34,1,1,0,0,0-.07.38L13,14H11l.1-.49a2,2,0,0,1,.13-.77,3.18,3.18,0,0,1,.4-.69l1-1.33a3.21,3.21,0,0,0,.29-.46,1.19,1.19,0,0,0,.11-.47,1.17,1.17,0,0,0-.3-.82,1.07,1.07,0,0,0-.83-.33A1,1,0,0,0,11.1,9a1.25,1.25,0,0,0-.28.83H9a2.94,2.94,0,0,1,.23-1.17,2.45,2.45,0,0,1,.63-.88,2.9,2.9,0,0,1,.93-.55A3.13,3.13,0,0,1,11.94,7a3.31,3.31,0,0,1,1.13.19,2.82,2.82,0,0,1,.94.54,2.62,2.62,0,0,1,.65.88A3,3,0,0,1,14.9,9.8,2.16,2.16,0,0,1,14.7,10.74Z'%20style='opacity:%200.2'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='icon_star_16'%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%3e%3cpath%20id='star'%20d='M8,0l2.45,4.97,5.55,.76-4.04,3.83,.99,5.44-4.94-2.61-4.94,2.61,.99-5.44L0,5.73l5.55-.76L8,0Z'/%3e%3c/svg%3e\"","import iconAdd from '../../assets/svg/icon_add.svg';\nimport iconDel from '../../assets/svg/icon_cross.svg';\nimport iconEdit from '../../assets/svg/icon_edit.svg';\nimport iconConfig from '../../assets/svg/icon_gear.svg';\nimport iconDuplicate from '../../assets/svg/icon_duplicate.svg';\nimport iconDownload from '../../assets/svg/icon_download.svg';\nimport iconSearch from '../../assets/svg/icon_lupe.svg';\nimport iconIconKey from '../../assets/svg/icon_key.svg';\nimport iconSync from '../../assets/svg/icon_reload.svg';\nimport iconFullscreen from '../../assets/svg/icon_fullscreen.svg';\nimport iconDocumentation from '../../assets/svg/icon_help_light.svg';\nimport iconStar from '../../assets/svg/icon_star.svg';\n\nexport type Props = {\n\tadd?: boolean;\n\tdel?: boolean;\n\tedit?: boolean;\n\tconfig?: boolean;\n\tduplicate?: boolean;\n\tsearch?: boolean;\n\tdownload?: boolean;\n\tsync?: boolean;\n\tfullscreen?: boolean;\n\tstar?: boolean;\n\n\t/** key is reserved in React */\n\ticonKey?: boolean;\n\tdocumentation?: boolean;\n\n\t/** renders a larger version of the icon (24x24) */\n\tlarge?: boolean;\n\n\t/** inverts the colors of the icon for display on dark background */\n\tinverted?: boolean;\n\n\t/** @ignore */\n\tclassName?: string;\n};\n\nfunction getSrc(props: Props) {\n\tconst {add, del, edit, config, duplicate, search, download, sync, fullscreen, iconKey, documentation, star} = props;\n\n\tif (add) {\n\t\treturn iconAdd;\n\t} else if (del) {\n\t\treturn iconDel;\n\t} else if (edit) {\n\t\treturn iconEdit;\n\t} else if (config) {\n\t\treturn iconConfig;\n\t} else if (duplicate) {\n\t\treturn iconDuplicate;\n\t} else if (search) {\n\t\treturn iconSearch;\n\t} else if (download) {\n\t\treturn iconDownload;\n\t} else if (sync) {\n\t\treturn iconSync;\n\t} else if (fullscreen) {\n\t\treturn iconFullscreen;\n\t} else if (iconKey) {\n\t\treturn iconIconKey;\n\t} else if (documentation) {\n\t\treturn iconDocumentation;\n\t} else if (star) {\n\t\treturn iconStar;\n\t} else {\n\t\tthrow Error('getSrc: no icon type specified');\n\t}\n}\n\nfunction getAlt(props: Props) {\n\tconst {add, del, edit, config, duplicate, search, download, sync, fullscreen, iconKey, documentation, star} = props;\n\n\tif (add) {\n\t\treturn 'icon add';\n\t} else if (del) {\n\t\treturn 'icon delete';\n\t} else if (edit) {\n\t\treturn 'icon edit';\n\t} else if (config) {\n\t\treturn 'icon config';\n\t} else if (duplicate) {\n\t\treturn 'icon duplicate';\n\t} else if (search) {\n\t\treturn 'icon search';\n\t} else if (download) {\n\t\treturn 'icon download';\n\t} else if (sync) {\n\t\treturn 'icon sync';\n\t} else if (fullscreen) {\n\t\treturn 'icon fullscreen';\n\t} else if (iconKey) {\n\t\treturn 'icon iconKey';\n\t} else if (documentation) {\n\t\treturn 'icon documentation';\n\t} else if (star) {\n\t\treturn 'icon star';\n\t} else {\n\t\tthrow Error('getAlt: no icon type specified');\n\t}\n}\n\nexport default function Icon(props: Props) {\n\tlet style;\n\tif (props.large) {\n\t\tstyle = {width: 24, height: 24};\n\t} else {\n\t\tstyle = {width: 16, height: 16};\n\t}\n\tif (props.inverted) {\n\t\tstyle = {...style, filter: 'invert(1)'};\n\t}\n\n\treturn <img src={getSrc(props)} className={`di icon ${props.className || ''}`} alt={getAlt(props)} style={style} />;\n}\n","import React, {MouseEventHandler, PropsWithChildren, MouseEvent} from 'react';\nimport {Trans} from 'react-i18next';\nimport cx from 'classnames';\n\nimport Icon from '../icon/Icon';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport interface Props extends React.HTMLAttributes<HTMLSpanElement> {\n\t/** the label text, either a string or TranslationDescriptor */\n\ttext?: string | TranslationDescriptor;\n\n\t/** a smaller label */\n\tsmall?: boolean;\n\n\t/** a larger label */\n\tlarge?: boolean;\n\n\tonClick?: MouseEventHandler<HTMLSpanElement>;\n\n\t/** adds a delete button that triggers this callback function */\n\tonDelete?: (...args: Array<any>) => any;\n\n\tclassName?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\t'delete-button-data-testid'?: string;\n}\n\n/**\n * Label enables an easy way for marking or tagging elements.\n */\nexport default function Label({\n\ttext,\n\tsmall = false,\n\tlarge = false,\n\tonDelete,\n\tclassName,\n\tonClick,\n\tchildren,\n\t...dataTestIds\n}: PropsWithChildren<Props>) {\n\tfunction handleDelete(event: MouseEvent<HTMLSpanElement>) {\n\t\tevent.stopPropagation();\n\t\tif (onDelete) {\n\t\t\tonDelete();\n\t\t}\n\t}\n\n\treturn (\n\t\t<span\n\t\t\tonClick={onClick}\n\t\t\tclassName={cx('di label', className, {large, small, removable: onDelete, clickable: !!onClick})}\n\t\t\tdata-testid={dataTestIds['data-testid']}\n\t\t>\n\t\t\t{typeof text === 'string' ? text : text && <Trans i18nKey={text.id}>{text.defaultValue}</Trans>}\n\t\t\t<>{children}</>\n\t\t\t{onDelete && (\n\t\t\t\t<span data-testid={dataTestIds['delete-button-data-testid']} className=\"remove\" onClick={handleDelete}>\n\t\t\t\t\t<Icon del inverted />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</span>\n\t);\n}\n","import {\n\tarrow,\n\tautoUpdate,\n\tflip,\n\tFloatingPortal,\n\toffset,\n\tsafePolygon,\n\tshift,\n\tsize,\n\tuseClick,\n\tuseDismiss,\n\tuseFloating,\n\tuseFocus,\n\tuseHover,\n\tuseInteractions\n} from '@floating-ui/react';\nimport cx from 'classnames';\nimport React, {useEffect, useRef} from 'react';\n\nexport type Placement =\n\t| 'top'\n\t| 'bottom'\n\t| 'left'\n\t| 'right'\n\t| 'top-start'\n\t| 'top-end'\n\t| 'bottom-start'\n\t| 'bottom-end'\n\t| 'right-start'\n\t| 'right-end'\n\t| 'left-start'\n\t| 'left-end';\n\nexport type Props = {\n\t/** Element to toggle the Popup */\n\thandler: React.ReactNode;\n\n\t/** Content to be displayed */\n\tchildren: React.ReactNode;\n\n\t/** If true, displays the Popup's content */\n\topen: boolean;\n\n\t/** Function, executed when the Popup gets closed */\n\tonOpenChange: (open: boolean) => void;\n\n\t/** (Optional) if set, sets the direction in which the content should be displayed */\n\tplacement?: Placement;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** (Optional) If set to true, the content is hidden via styles, but still exists in the DOM tree */\n\tpreventDestroyContentOnHide?: boolean;\n\n\t/** (Optional) Class name of the handler wrapping element */\n\thandlerWrapperClassName?: string;\n\n\t/** (Optional) Interaction mode to open the popup */\n\tmode?: Array<'click' | 'hover' | 'focus'>;\n\n\t/** (Optional) Disables the Popup */\n\tdisabled?: boolean;\n};\n\n// Margin from the edge of the viewport\nconst MARGIN = 16;\n\n/**\n * Popup displays content within a small modal.\n * Its usage is highly flexible and used in several other components.\n */\nexport default function Popup({\n\tplacement = 'bottom',\n\tmode = ['click'],\n\tdisabled,\n\thandler,\n\thandlerWrapperClassName,\n\tpreventDestroyContentOnHide,\n\topen,\n\tonOpenChange,\n\tclassName,\n\tchildren\n}: Props) {\n\tconst arrowRef = useRef<HTMLDivElement>(null);\n\n\tconst {\n\t\telements,\n\t\tupdate,\n\t\trefs,\n\t\tfloatingStyles,\n\t\tcontext,\n\t\tmiddlewareData,\n\t\tplacement: computedPlacement\n\t} = useFloating({\n\t\tplacement,\n\t\topen,\n\t\tonOpenChange,\n\t\twhileElementsMounted: !preventDestroyContentOnHide ? autoUpdate : undefined,\n\t\tmiddleware: [\n\t\t\toffset({\n\t\t\t\tmainAxis: 12\n\t\t\t}),\n\t\t\tflip({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true\n\t\t\t}),\n\t\t\tshift({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true\n\t\t\t}),\n\t\t\tsize({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true,\n\t\t\t\tapply({availableHeight, availableWidth, elements}) {\n\t\t\t\t\tconst width = `${Math.max(0, availableWidth - MARGIN)}px`;\n\t\t\t\t\tconst height = `${Math.max(0, availableHeight - MARGIN)}px`;\n\t\t\t\t\telements.floating.style.maxWidth = width;\n\t\t\t\t\telements.floating.style.maxHeight = height;\n\t\t\t\t}\n\t\t\t}),\n\t\t\tarrow({\n\t\t\t\telement: arrowRef\n\t\t\t})\n\t\t]\n\t});\n\n\tuseEffect(() => {\n\t\tif (preventDestroyContentOnHide && open && elements.reference && elements.floating) {\n\t\t\tconst cleanup = autoUpdate(elements.reference, elements.floating, update);\n\t\t\treturn cleanup;\n\t\t}\n\t}, [elements.floating, elements.reference, open, update, preventDestroyContentOnHide]);\n\n\tconst click = useClick(context, {\n\t\tenabled: !disabled && mode.includes('click'),\n\t\tkeyboardHandlers: false, // Prevent space key from being blocked in input fields (floating-ui issue #1812)\n\t});\n\tconst hover = useHover(context, {\n\t\tenabled: !disabled && mode.includes('hover'),\n\t\thandleClose: safePolygon()\n\t});\n\tconst focus = useFocus(context, {enabled: !disabled && mode.includes('focus')});\n\tconst dismiss = useDismiss(context);\n\tconst {getReferenceProps, getFloatingProps} = useInteractions([click, hover, focus, dismiss]);\n\n\treturn (\n\t\t<>\n\t\t\t<span\n\t\t\t\tstyle={{display: 'inline-block'}}\n\t\t\t\tclassName={cx('popup-handler-wrapper', handlerWrapperClassName)}\n\t\t\t\tref={refs.setReference}\n\t\t\t\t{...getReferenceProps()}\n\t\t\t>\n\t\t\t\t{handler}\n\t\t\t</span>\n\t\t\t{(open || preventDestroyContentOnHide) && (\n\t\t\t\t<FloatingPortal>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cx('di popup-wrapper', {hidden: preventDestroyContentOnHide && !open})}\n\t\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\t\tstyle={{...floatingStyles, zIndex: 100000}}\n\t\t\t\t\t\t{...getFloatingProps()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className={cx('di popup', computedPlacement, className)}>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={cx('popup-arrow', computedPlacement)}\n\t\t\t\t\t\t\t\tref={arrowRef}\n\t\t\t\t\t\t\t\tstyle={{left: middlewareData.arrow?.x, top: middlewareData.arrow?.y}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<div className=\"popup-content\">{children}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</FloatingPortal>\n\t\t\t)}\n\t\t</>\n\t);\n}\n","import React, {useState} from 'react';\n\nimport Popup, {Placement} from '../popup/Popup';\n\nexport type Props = {\n\t/** the Bubble content */\n\tcontent: React.ReactNode;\n\n\t/** inverts the colors */\n\tinverted?: boolean;\n\n\t/** @ignore */\n\tchildren: React.ReactNode;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** hides the bubble */\n\tdisabled?: boolean;\n\n\t/** changed the direction */\n\tdirection?: Placement;\n};\n\n/**\n * Bubbles are best used to provide some additional information like short instructions or help texts, which are then going to be displayed on Mouse-Over.\n */\nexport default function Bubble({content, inverted, children, disabled, style, direction, className}: Props) {\n\tconst [open, setOpen] = useState(false);\n\treturn (\n\t\t<Popup\n\t\t\topen={open}\n\t\t\tonOpenChange={setOpen}\n\t\t\thandler={children}\n\t\t\tdisabled={disabled}\n\t\t\tmode={['hover']}\n\t\t\tplacement={direction ? direction : 'top'}\n\t\t\tclassName={`bubble ${inverted ? 'inverted' : ''} ${className ? className : ''}`}\n\t\t>\n\t\t\t<span className={`bubble-content`} style={style}>\n\t\t\t\t{content}\n\t\t\t</span>\n\t\t</Popup>\n\t);\n}\n","import React, {useState} from 'react';\n\nimport Popup, {Placement} from '../popup/Popup';\n\nexport type Props = {\n\t/** Content of the Tooltip */\n\tcontent: React.ReactNode;\n\n\t/** Enabler of the Tooltip */\n\tchildren: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** (Optional) if set, disables the &lt;Tooltip/&gt; from opening */\n\tdisabled?: boolean;\n\n\t/** (Optional) if set, opens &lt;Tooltip/&gt; in given direction, defaults to 'right' */\n\tdirection?: Placement;\n};\n\n/**\n * Tooltip is best used to display some short additional information or description\n */\nexport default function Tooltip({content, children, className, direction, disabled}: Props) {\n\tconst [open, setOpen] = useState(false);\n\n\treturn (\n\t\t<Popup\n\t\t\topen={open}\n\t\t\tdisabled={disabled}\n\t\t\tmode={['hover']}\n\t\t\tonOpenChange={setOpen}\n\t\t\thandler={children}\n\t\t\tplacement={direction ? direction : 'right'}\n\t\t\tclassName={`tooltip inverted ${className ? className : ''}`}\n\t\t>\n\t\t\t<span className=\"tooltip-content\">{content}</span>\n\t\t</Popup>\n\t);\n}\n","import * as React from 'react';\n\nimport Bubble from '../bubble/Bubble';\n\ntype Page = {\n\tname: string;\n\trenderHeading: () => React.ReactNode;\n\trenderBody?: () => React.ReactNode;\n\ttabDescription?: string;\n};\n\ntype State = {\n\tcurrentTab: string | null | undefined;\n};\n\nexport type Props = {\n\t/** Array of pages to be displayed */\n\tpages: Array<Page>;\n\n\t/** (Optional) if set, disables tab */\n\tdisabled?: boolean;\n\n\t/** (Optional) function, executed if tabs change */\n\tonChange?: (tab: string) => void;\n\n\t/** (Optional) sets the current tab */\n\tcurrentTab?: string | null | undefined;\n};\n\n/**\n * Tabs add the possibility to unite several homogeneous pages into one.\n * Unlike RouteTabs, Tabs cannot be accessed directly via the browser's history\n */\nexport default class Tabs extends React.Component<Props, State> {\n\tstate: State = {\n\t\tcurrentTab: this.props.pages.length ? this.props.pages[0].name : null\n\t};\n\n\thandleClick: (tab: string) => void = (tab: string) => {\n\t\tif (this.props.onChange) {\n\t\t\tthis.props.onChange(tab);\n\t\t} else if (typeof this.props.currentTab === 'undefined') {\n\t\t\tthis.setState({\n\t\t\t\tcurrentTab: tab\n\t\t\t});\n\t\t}\n\t};\n\n\tcurrentTabPage: () => Page | null | undefined = (): Page | null | undefined => {\n\t\tconst currentTab = typeof this.props.currentTab === 'string' ? this.props.currentTab : this.state.currentTab;\n\t\treturn this.props.pages.find(({name}) => currentTab === name);\n\t};\n\n\tisCurrentTab: (tab: string) => boolean = (tab: string) => {\n\t\tconst currentTab = typeof this.props.currentTab === 'string' ? this.props.currentTab : this.state.currentTab;\n\t\treturn currentTab === tab;\n\t};\n\n\trenderBody = () => {\n\t\tconst page = this.currentTabPage();\n\n\t\tif (page && typeof page.renderBody === 'function') {\n\t\t\treturn page.renderBody();\n\t\t}\n\n\t\treturn null;\n\t};\n\n\trender() {\n\t\tconst {pages, disabled} = this.props;\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t<div className=\"di tabs\">\n\t\t\t\t\t{pages.map(({name, renderHeading, tabDescription}) =>\n\t\t\t\t\t\ttabDescription ? (\n\t\t\t\t\t\t\t<Bubble inverted key={name} content={tabDescription} className=\"bubble-tab-description\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''} ${\n\t\t\t\t\t\t\t\t\t\tthis.isCurrentTab(name) ? 'active' : ''\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tonClick={() => !disabled && this.handleClick(name)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderHeading()}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</Bubble>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\t\t\t\t\tkey={name}\n\t\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''} ${\n\t\t\t\t\t\t\t\t\tthis.isCurrentTab(name) ? 'active' : ''\n\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\tonClick={() => !disabled && this.handleClick(name)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderHeading()}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{this.renderBody()}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport '../../assets/search-box.css';\nimport {ComponentType, CSSProperties} from 'react';\n\nimport Icon from '../icon/Icon';\nimport Button from '../button/Button';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** Placeholder text for input field `(string | TranslationDescriptor)` */\n\tplaceholder: string | TranslationDescriptor;\n\n\t/** Function to call if the input changes */\n\tonChange: (value: string) => void;\n\n\t/** Function to call if the search is triggered (button press or return in search field) */\n\tonSubmit?: (value: string) => void;\n\n\t/** if true, a button is shown that clears the input */\n\tclearable?: boolean;\n\n\t/** Value that should initially be displayed in the text box */\n\tinitialValue: string | null | undefined;\n\n\t/** Wrapper styles */\n\tstyle: CSSProperties | undefined;\n};\n\ntype State = {\n\tquery: string;\n};\n\nconst ClearButton = ({\n\tonChange,\n\tinputElement,\n\tstyle\n}: {\n\tonChange: (value: string) => void;\n\tinputElement: HTMLElement | null | undefined;\n\tstyle?: React.CSSProperties;\n}) => (\n\t<Button\n\t\tnaked\n\t\tonClick={() => {\n\t\t\tonChange('');\n\n\t\t\tif (inputElement) {\n\t\t\t\tinputElement.focus();\n\t\t\t}\n\t\t}}\n\t\tstyle={style}\n\t>\n\t\t<Icon del />\n\t</Button>\n);\n\n/**\n * SearchBox is used for searching content and provides a set of `props` for different user experiences\n */\nclass SearchBox extends React.Component<Props & WithTranslation, State> {\n\tstate: State = {\n\t\tquery: this.props.initialValue || ''\n\t};\n\tinput: HTMLInputElement | null | undefined;\n\n\tprintPlaceholder(): string {\n\t\tconst {t, placeholder} = this.props;\n\n\t\tif (typeof placeholder === 'object') {\n\t\t\treturn t(placeholder.id, {\n\t\t\t\tdefaultValue: placeholder.defaultValue\n\t\t\t});\n\t\t} else {\n\t\t\treturn placeholder;\n\t\t}\n\t}\n\n\thandleChange: (value: string) => void = (value: string) => {\n\t\tconst {onChange} = this.props;\n\t\tthis.setState({\n\t\t\tquery: value\n\t\t});\n\t\tonChange(value);\n\t};\n\n\thandleKeyUp: (arg0: any) => void = ({key}) => {\n\t\tconst {onSubmit} = this.props;\n\t\tconst {query} = this.state;\n\n\t\tif (key === 'Enter' && typeof onSubmit === 'function') {\n\t\t\tonSubmit(query);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {onSubmit, style, clearable} = this.props;\n\t\tconst {query} = this.state;\n\t\treturn (\n\t\t\t<div className=\"search-box\" style={style}>\n\t\t\t\t<input\n\t\t\t\t\tref={(input) => {\n\t\t\t\t\t\tthis.input = input;\n\t\t\t\t\t}}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={query}\n\t\t\t\t\tplaceholder={this.printPlaceholder()}\n\t\t\t\t\tonKeyUp={this.handleKeyUp}\n\t\t\t\t\tonChange={({target: {value}}) => this.handleChange(value)}\n\t\t\t\t/>\n\t\t\t\t{typeof onSubmit === 'function' ? (\n\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t{query && clearable && (\n\t\t\t\t\t\t\t<ClearButton\n\t\t\t\t\t\t\t\tonChange={this.handleChange}\n\t\t\t\t\t\t\t\tinputElement={this.input}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tright: 30\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Button naked onClick={() => onSubmit(query)}>\n\t\t\t\t\t\t\t<Icon search />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t) : query && clearable ? (\n\t\t\t\t\t<ClearButton onChange={this.handleChange} inputElement={this.input} />\n\t\t\t\t) : (\n\t\t\t\t\t<Button naked disabled>\n\t\t\t\t\t\t<Icon search />\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default withTranslation()(SearchBox) as ComponentType<Props>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../src/components/accordion/Accordion.tsx","../src/components/accordionComponents/AccordionItem.tsx","../src/components/button/Button.tsx","../src/components/button/ButtonRow.tsx","../src/hooks/useOutsideClick.ts","../src/components/modalComponents/ModalWindow.tsx","../src/components/modal/Modal.tsx","../src/components/modalComponents/ModalContainer.tsx","../src/components/spinner/Spinner.tsx","../src/components/spinner/SpinnerContainer.tsx","../src/components/input/Checkbox.tsx","../src/components/confirm/utils.ts","../src/components/confirm/Confirm.tsx","../src/components/confirm/ConfirmProvider.tsx","../src/components/confirm/useConfirm.ts","../src/components/confirm/withConfirm.tsx","../src/assets/svg/icon_add.svg","../src/assets/svg/icon_cross.svg","../src/assets/svg/icon_edit.svg","../src/assets/svg/icon_gear.svg","../src/assets/svg/icon_duplicate.svg","../src/assets/svg/icon_download.svg","../src/assets/svg/icon_lupe.svg","../src/assets/svg/icon_key.svg","../src/assets/svg/icon_reload.svg","../src/assets/svg/icon_fullscreen.svg","../src/assets/svg/icon_help_light.svg","../src/assets/svg/icon_star.svg","../src/components/icon/Icon.tsx","../src/components/label/Label.tsx","../src/components/popup/Popup.tsx","../src/components/bubble/Bubble.tsx","../src/components/tooltip/Tooltip.tsx","../src/components/tabs/Tabs.tsx","../src/components/input/SearchBox.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport type Props = {\n\t/** Should contain Array of &lt;AccordionItems/&gt; elements */\n\tchildren?: Array<React.ReactNode>;\n\n\t/** (Optional) sets additional class for styling purposes */\n\taccordionClass?: string;\n\n\t/** Function to be called if active &lt;AccordionItems/&gt; gets changed */\n\tonPageChange?: (newPageNumber: number) => any;\n\n\t/** (Optional) Index of the &lt;AccordionItem/&gt; which should be opened on initial render cycle */\n\tdefaultOpenPageIndex?: number;\n};\n\ntype State = {\n\tcurrentPageIndex: number;\n};\n\n/**\n * Accordions are best used to display homogenous information, e.g. multiple configurations which would take up a lot of space otherwise.\n */\nexport default class Accordion extends React.Component<Props, State> {\n\tstate: State = {\n\t\tcurrentPageIndex: -1\n\t};\n\n\tcomponentDidMount() {\n\t\tconst {defaultOpenPageIndex} = this.props;\n\n\t\tif (defaultOpenPageIndex !== null && defaultOpenPageIndex !== undefined) {\n\t\t\tthis.handleAccordionToggle(defaultOpenPageIndex);\n\t\t}\n\t}\n\n\thandleAccordionToggle: (index: number) => void = (index: number) => {\n\t\tconst {onPageChange} = this.props;\n\t\tconst newPageIndex = this.state.currentPageIndex !== index ? index : -1;\n\t\tthis.setState({\n\t\t\tcurrentPageIndex: newPageIndex\n\t\t});\n\n\t\tif (onPageChange) {\n\t\t\tonPageChange(newPageIndex);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {children, accordionClass} = this.props;\n\t\tconst {currentPageIndex} = this.state;\n\t\treturn (\n\t\t\t<div className={accordionClass ? `di accordion ${accordionClass}` : 'di accordion'}>\n\t\t\t\t{children &&\n\t\t\t\t\tchildren.map((child: any, index) =>\n\t\t\t\t\t\tchild ? (\n\t\t\t\t\t\t\t<child.type\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t\tisOpen={currentPageIndex === index}\n\t\t\t\t\t\t\t\ttoggle={() => this.handleAccordionToggle(index)}\n\t\t\t\t\t\t\t\t{...child.props}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null\n\t\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\n\ntype Info = {\n\ttext: string;\n\tcssStyle: Record<string, any>;\n};\n\nexport type Props = {\n\t/** (Optional) Displays either numeric- or text-based badge in front of the &lt;AccordionItems/&gt; */\n\tbadge?: (number | string | React.ReactNode) | null | undefined;\n\n\t/** @ignore */\n\tchildren?: React.ReactNode;\n\n\t/** (Optional) Displays additional information, which is visible in \"closed\" state */\n\tinfo1?: Info;\n\n\t/** If true, expands &lt;AccordionItems/&gt; */\n\tisOpen?: boolean;\n\n\t/** (Optional) Sets additional classes for styling purposes */\n\titemClasses?: string;\n\n\t/** Title of &lt;AccordionItems/&gt; */\n\ttitle: string | React.ReactNode;\n\n\t/** (Optional) Tooltip of &lt;AccordionItems/&gt; */\n\ttitleTooltip?: string;\n\n\t/** Function which is called to open/close &lt;AccordionItems/&gt; */\n\ttoggle?: () => void;\n\n\t/** (Optional) Enables additional handler, e.g., for editing or deleting &lt;AccordionItems/&gt; */\n\ttools?: Array<React.ReactNode>;\n\n\t/** @ignore */\n\t'data-testid'?: string | undefined;\n};\n\nexport default class AccordionItem extends React.PureComponent<Props> {\n\trender() {\n\t\tconst {badge, children, isOpen, info1, itemClasses, title, titleTooltip, toggle, tools, ...rest} = this.props;\n\t\tconst accordionItemClasses = ['item'];\n\n\t\tif (itemClasses) accordionItemClasses.push(itemClasses);\n\t\tif (isOpen) accordionItemClasses.push('open');\n\n\t\treturn (\n\t\t\t<div className={accordionItemClasses.join(' ')}>\n\t\t\t\t<div className=\"head\">\n\t\t\t\t\t<span className=\"title\" onClick={toggle} data-testid={rest['data-testid']}>\n\t\t\t\t\t\t<h1 title={titleTooltip}>{title}</h1>\n\t\t\t\t\t\t{badge && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"di label\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tmargin: '0 0 0 10px',\n\t\t\t\t\t\t\t\t\tbackgroundColor: '#ddd',\n\t\t\t\t\t\t\t\t\tborderColor: 'transparent'\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{badge}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{info1 && <span style={info1.cssStyle}>{info1.text}</span>}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"tools\">\n\t\t\t\t\t\t{tools &&\n\t\t\t\t\t\t\ttools.map((toolComponent, index) => (\n\t\t\t\t\t\t\t\t<span key={index} className=\"tool\">\n\t\t\t\t\t\t\t\t\t{toolComponent}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"cont\">{children}</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import React, {ComponentType} from 'react';\nimport cx from 'classnames';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** primary style, mutually exclusive with _danger_ and _naked_ */\n\tprimary?: boolean;\n\n\t/** danger style, mutually exclusive with _primary_ and _naked_ */\n\tdanger?: boolean;\n\n\t/** render the button without border and background color, mutually exclusive with _primary_ and _danger_ */\n\tnaked?: boolean;\n\n\t/** a title tooltip */\n\ttitle?: (TranslationDescriptor | null | undefined) | string;\n\n\t/** button | submit | reset */\n\ttype?: 'button' | 'submit' | 'reset';\n\n\t/** a click handler */\n\tonClick?: (...args: Array<any>) => any;\n\n\t/** a smaller button */\n\tsmall?: boolean;\n\n\t/** disable the button */\n\tdisabled?: boolean;\n\n\t/** @ignore */\n\tchildren?: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\ttabIndex?: number;\n};\n\n/**\n * Buttons are used to inform the user about a potential user interaction, which then on interaction causes an action.\n * To create a standardized look and feel, different props can be passed to the Button.\n */\nfunction Button({\n\tchildren,\n\ttitle,\n\ttype,\n\tdisabled,\n\tonClick,\n\tstyle,\n\ttabIndex,\n\tt,\n\tprimary,\n\tdanger,\n\tnaked,\n\tclassName,\n\tsmall,\n\t...rest\n}: Props & WithTranslation) {\n\tlet btnTitle = title;\n\n\tif (title && typeof title !== 'string') {\n\t\tbtnTitle = t(title.id, {\n\t\t\tdefaultValue: title.defaultValue\n\t\t});\n\t}\n\n\treturn (\n\t\t<button\n\t\t\tdata-testid={rest['data-testid']}\n\t\t\ttype={type || 'button'}\n\t\t\tclassName={cx('di button', className, {small, primary, danger, link: naked})}\n\t\t\ttitle={typeof btnTitle === 'string' ? btnTitle : undefined}\n\t\t\tdisabled={disabled}\n\t\t\tonClick={onClick}\n\t\t\tstyle={style}\n\t\t\ttabIndex={tabIndex}\n\t\t>\n\t\t\t{children}\n\t\t</button>\n\t);\n}\n\nexport default withTranslation()(Button) as ComponentType<Props>;\n","import * as React from 'react';\n\nexport type Props = {\n\t/** should contain &lt;Button /&gt; elements */\n\tchildren: React.ReactNode;\n\n\t/** show a horizontal row above the buttons */\n\tdividing?: boolean;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n};\n\n/**\n * ButtonRows align Buttons nicely for all relevant and/or related user actions such as saving or canceling changes.\n * To separate the ButtonRow from the content, the extra property `dividing` can be used.\n */\nconst ButtonRow = ({children, dividing, className, style}: Props) => (\n\t<div style={style} className={`di button-row ${dividing ? 'dividing' : ''} ${className || ''}`}>\n\t\t{children}\n\t</div>\n);\n\nButtonRow.defaultProps = {\n\tdividing: false\n};\n\nexport default ButtonRow;\n","import {useEffect, useRef} from 'react';\n\nconst isTouchEvent = (event: Event): event is TouchEvent => {\n\treturn !!(event as any).touches;\n};\n\nconst isInsideBoundingRect = (element: HTMLElement, event: MouseEvent | TouchEvent) => {\n\tconst rect = element.getBoundingClientRect();\n\n\tlet x, y;\n\tif (isTouchEvent(event)) {\n\t\tx = event.touches[0].pageX;\n\t\ty = event.touches[0].pageY;\n\t} else {\n\t\tx = event.pageX;\n\t\ty = event.pageY;\n\t}\n\n\treturn rect.left <= x && rect.right >= x && rect.top <= y && rect.bottom >= y;\n};\n\nconst useOutsideClick = (\n\telements: Array<HTMLElement | null>,\n\tcallback: (evt: MouseEvent | TouchEvent | undefined) => void\n) => {\n\tconst callbackRef = useRef(callback);\n\n\tuseEffect(() => {\n\t\tcallbackRef.current = callback;\n\t}, [callback]);\n\n\tuseEffect(() => {\n\t\tconst listener = (event: MouseEvent | TouchEvent) => {\n\t\t\tconst elementsNonNull = elements.filter((element) => element != null) as HTMLElement[];\n\t\t\tif (\n\t\t\t\telementsNonNull.every(\n\t\t\t\t\t(element) =>\n\t\t\t\t\t\telement !== event.target &&\n\t\t\t\t\t\t!element.contains(event.target as any) &&\n\t\t\t\t\t\t!isInsideBoundingRect(element, event)\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcallbackRef.current(event);\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener('mousedown', listener, true);\n\t\tdocument.addEventListener('touchstart', listener, true);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousedown', listener, true);\n\t\t\tdocument.removeEventListener('touchstart', listener, true);\n\t\t};\n\t}, [elements]);\n};\n\nexport default useOutsideClick;\n","import {useEffect, useRef, useState} from 'react';\nimport Draggable from 'react-draggable';\n\nimport {Props} from '../modal/Modal';\nimport useOutsideClick from '../../hooks/useOutsideClick';\n\nexport default function ModalWindow({className, width, header, content, footer, onOutsideClick}: Props) {\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst [rootElement, setRootElement] = useState<HTMLElement | null>(null);\n\n\tuseEffect(() => {\n\t\tsetRootElement(ref.current);\n\t}, []);\n\n\tuseOutsideClick([rootElement], () => {\n\t\tif (onOutsideClick) onOutsideClick();\n\t});\n\n\treturn (\n\t\t<Draggable handle=\".modal-header\" nodeRef={ref}>\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={`modal-window ${className || ''}`}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxWidth: width\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{header && <div className=\"modal-header\">{header}</div>}\n\t\t\t\t{content && <div className=\"modal-content\">{content}</div>}\n\t\t\t\t{footer && <div className=\"modal-footer\">{footer}</div>}\n\t\t\t</div>\n\t\t</Draggable>\n\t);\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport ModalWindow from '../modalComponents/ModalWindow';\n\nexport type Props = {\n\theader?: React.ReactNode;\n\tcontent?: React.ReactNode;\n\tfooter?: React.ReactNode;\n\n\t/** the CSS width setting, either a number or string */\n\twidth?: string | number;\n\tclassName?: string;\n\n\t/** callback function that is executed when the users click outside the modal */\n\tonOutsideClick?: (event?: Event) => void;\n\tonMouseDown?: (event: React.SyntheticEvent<HTMLElement>) => void;\n};\n\nexport default class Modal extends React.Component<\n\tProps,\n\t{\n\t\tclassName: string;\n\t}\n> {\n\tstatic defaultProps: {\n\t\twidth: string;\n\t} = {\n\t\twidth: '60%'\n\t};\n\tcontainer: HTMLDivElement | undefined;\n\tmodalRoot: HTMLElement | null | undefined;\n\ttimeoutId: ReturnType<typeof setTimeout> | undefined;\n\n\tconstructor(props: Props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tclassName: 'di modal'\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.container = document.createElement('div');\n\t\tthis.modalRoot = document.getElementById('modal-root');\n\n\t\tif (this.modalRoot) {\n\t\t\tthis.modalRoot.appendChild(this.container);\n\t\t} else if (document.body) {\n\t\t\tdocument.body.appendChild(this.container);\n\t\t}\n\n\t\tif (this.props.onOutsideClick) {\n\t\t\twindow.addEventListener('keydown', this.keyEventHandler);\n\t\t}\n\n\t\t// set the show class after 10ms for animation\n\t\tthis.timeoutId = setTimeout(\n\t\t\t() =>\n\t\t\t\t// eslint-disable-next-line react/no-did-mount-set-state -- deferred via setTimeout, not a synchronous mount update\n\t\t\t\tthis.setState({\n\t\t\t\t\tclassName: `di modal show ${this.props.className || ''}`\n\t\t\t\t}),\n\t\t\t10\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (this.container) {\n\t\t\tif (this.modalRoot) {\n\t\t\t\tthis.modalRoot.removeChild(this.container);\n\t\t\t} else if (document.body) {\n\t\t\t\tdocument.body.removeChild(this.container);\n\t\t\t}\n\t\t}\n\n\t\tif (this.props.onOutsideClick) {\n\t\t\twindow.removeEventListener('keydown', this.keyEventHandler);\n\t\t}\n\n\t\tif (this.timeoutId) {\n\t\t\tclearTimeout(this.timeoutId);\n\t\t}\n\t}\n\n\tkeyEventHandler: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n\t\tif (event.key === 'Escape' && this.props.onOutsideClick) {\n\t\t\tthis.props.onOutsideClick(event);\n\t\t}\n\t};\n\n\trender() {\n\t\tif (!this.container) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn ReactDOM.createPortal(\n\t\t\t<div className={this.state.className} onMouseDown={this.props.onMouseDown}>\n\t\t\t\t<ModalWindow {...this.props} />\n\t\t\t</div>,\n\t\t\tthis.container\n\t\t);\n\t}\n}\n","import React from 'react';\n\nexport type Props = Record<string, never>;\n\nexport default class ModalContainer extends React.PureComponent<Props> {\n\trender() {\n\t\treturn <div id=\"modal-root\" />;\n\t}\n}\n","import React from 'react';\n\nexport type Props = {\n\t/** the size of the Spinner in px */\n\tsize?: number;\n\n\t/** @ignore */\n\tcenter?: boolean;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\n/**\n * Spinners usually show a loading indication.\n */\nexport default class Spinner extends React.Component<Props> {\n\tstatic defaultProps = {\n\t\tsize: 56,\n\t\tcenter: false\n\t};\n\n\trender() {\n\t\tconst {size = 56, center, ...dataAttrs} = this.props;\n\t\tlet style: React.CSSProperties = {\n\t\t\twidth: size,\n\t\t\theight: size\n\t\t};\n\n\t\tif (center) {\n\t\t\tstyle = {\n\t\t\t\t...style,\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttop: '50%',\n\t\t\t\tleft: '50%',\n\t\t\t\tmarginTop: -size / 2,\n\t\t\t\tmarginLeft: -size / 2\n\t\t\t};\n\t\t}\n\n\t\treturn <div className=\"di spinner\" style={style} {...dataAttrs} />;\n\t}\n}\n","import React from 'react';\n\nimport Spinner from './Spinner';\n\nexport type Props = {\n\t/** controls the display of the Spinner */\n\tshow: boolean;\n\n\t/** the size of the Spinner in px */\n\tsize?: number;\n\n\t/** content to be rendered once the loading is done */\n\tchildren?: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\n/**\n * SpinnerContainer wraps the entire content and displays a loading indicator until the loading is done.\n */\nexport default class SpinnerContainer extends React.Component<Props> {\n\tstatic defaultProps: {\n\t\tsize: number;\n\t} = {\n\t\tsize: 56\n\t};\n\n\trender() {\n\t\tconst {show, size, children, className} = this.props;\n\t\tconst classNames = `di spinner-wrapper ${className ? className : ''}`;\n\t\treturn (\n\t\t\t<div className={classNames}>\n\t\t\t\t<div\n\t\t\t\t\tclassName={`di spinner-container ${show ? 'visible' : ''}`}\n\t\t\t\t\tdata-testid={this.props['data-testid']}\n\t\t\t\t>\n\t\t\t\t\t<Spinner size={size} center />\n\t\t\t\t</div>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** input type selector */\n\ttype?: 'checkbox' | 'radio' | 'toggle';\n\n\t/** Flag to preselect the status of the checkbox */\n\tvalue: boolean;\n\n\t/** Function, executed when toggling the checkbox */\n\tonChange: (nextStatus: boolean) => void;\n\n\t/** Optional input element tooltip */\n\ttitle?: TranslationDescriptor;\n\n\t/** Optional label for checkbox and radio button*/\n\tlabel?: TranslationDescriptor;\n\n\t/** visually indicate that the checkbox is disabled and disable onChange handler */\n\tdisabled?: boolean;\n\n\t/** Optional flag for toggle type: Render a small Toggle */\n\ttoggleSmall?: boolean;\n\n\t/** Optional flag for toggle type: Sets the slider color when the Toggle is truthy */\n\ttoggleColor?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\t'wrapper-data-testid'?: string;\n\n\t/** @ignore */\n\t'innerdiv-data-testid'?: string;\n};\n\nconst getWrapperClassName = (type: string, small: boolean) => {\n\tswitch (type) {\n\t\tcase 'checkbox':\n\t\tcase 'radio':\n\t\t\treturn 'di checkbox';\n\n\t\tcase 'toggle':\n\t\t\treturn small ? 'di toggle toggle-small' : 'di toggle';\n\n\t\tdefault:\n\t\t\tthrow Error(`type not support: ${type}`);\n\t}\n};\n\nconst getCheckboxClassName = (type: string, small: boolean) => {\n\tswitch (type) {\n\t\tcase 'checkbox':\n\t\t\treturn 'box';\n\n\t\tcase 'radio':\n\t\t\treturn 'radio';\n\n\t\tcase 'toggle':\n\t\t\treturn small ? 'switch switch-small' : 'switch';\n\n\t\tdefault:\n\t\t\tthrow Error(`type not support: ${type}`);\n\t}\n};\n\n/**\n * Checkbox for enabling user interaction can have one of multiple types which are defined via the `type` prop.\n */\nconst Checkbox = ({\n\ttype = 'checkbox',\n\tvalue,\n\tonChange,\n\ttitle,\n\tlabel,\n\tdisabled = false,\n\ttoggleSmall = false,\n\ttoggleColor = '#259b23',\n\tt,\n\t...other\n}: Props & WithTranslation) => {\n\tconst style =\n\t\ttype === 'toggle'\n\t\t\t? {\n\t\t\t\t\tbackgroundColor: value ? toggleColor : 'gray'\n\t\t\t\t}\n\t\t\t: {};\n\tconst tooltip = title\n\t\t? t(title.id, {\n\t\t\t\tdefaultValue: title.defaultValue\n\t\t\t})\n\t\t: undefined;\n\tconst labelText = label\n\t\t? t(label.id, {\n\t\t\t\tdefaultValue: label.defaultValue\n\t\t\t})\n\t\t: null;\n\treturn (\n\t\t<label\n\t\t\ttitle={tooltip}\n\t\t\tclassName={getWrapperClassName(type, toggleSmall)}\n\t\t\tdata-testid={other['wrapper-data-testid']}\n\t\t>\n\t\t\t<input\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={value}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonChange={() => onChange(!value)}\n\t\t\t\tdata-testid={other['data-testid']}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tclassName={getCheckboxClassName(type, toggleSmall)}\n\t\t\t\tstyle={style}\n\t\t\t\tdata-testid={other['innerdiv-data-testid']}\n\t\t\t/>\n\t\t\t{label && <span className=\"textlabel\">{labelText}</span>}\n\t\t</label>\n\t);\n};\n\nexport default withTranslation()(Checkbox) as React.ComponentType<Props>;\n","import * as React from 'react';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport function isTranslationDescriptor(\n\targ: TranslationDescriptor | string | React.ReactElement\n): arg is TranslationDescriptor {\n\tconst result =\n\t\ttypeof arg === 'object' && typeof (arg as any).id === 'string' && typeof (arg as any).defaultValue === 'string';\n\n\tif (result) {\n\t\tconsole.warn(\n\t\t\t'Please use strings instead of TranslationDescriptors to initialize the Confirm modal, because TranslationDescriptors are deprecated'\n\t\t);\n\t}\n\n\treturn result;\n}\n","import * as React from 'react';\nimport {Trans} from 'react-i18next';\n\nimport Modal from '../modal/Modal';\nimport Button from '../button/Button';\nimport {TranslationDescriptor} from '../../types/i18n';\nimport {isTranslationDescriptor} from './utils';\n\nexport type Props = {\n\ttitle: string | TranslationDescriptor;\n\tmessage: string | React.ReactElement | TranslationDescriptor;\n\n\t/** @ignore */\n\tonAccept: (...args: Array<any>) => any;\n\n\t/** @ignore */\n\tonDecline: (...args: Array<any>) => any;\n\tacceptButtonLabel?: string | TranslationDescriptor;\n\tdeclineButtonLabel?: string | TranslationDescriptor;\n\tacceptButtonStyle?: 'primary' | 'danger';\n};\n\nfunction transformTextToElement(\n\tmessage: TranslationDescriptor | string | React.ReactElement\n): React.ReactElement | string {\n\tif (isTranslationDescriptor(message)) {\n\t\treturn <Trans i18nKey={message.id}>{message.defaultValue}</Trans>;\n\t}\n\treturn message;\n}\n\n/**\n * Confirm enables the possibility to open up a dialog within a modal, requiring additional user actions.\n * This component should not be used directly, instead use `@withConfirm` to inject a promise based confirm method\n */\nexport default function Confirm({\n\ttitle,\n\tmessage,\n\tonAccept,\n\tonDecline,\n\tacceptButtonLabel,\n\tdeclineButtonLabel,\n\tacceptButtonStyle = 'primary'\n}: Props) {\n\treturn (\n\t\t<Modal\n\t\t\theader={transformTextToElement(title)}\n\t\t\tcontent={transformTextToElement(message)}\n\t\t\tfooter={\n\t\t\t\t<div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tprimary={acceptButtonStyle === 'primary'}\n\t\t\t\t\t\tdanger={acceptButtonStyle === 'danger'}\n\t\t\t\t\t\tonClick={onAccept}\n\t\t\t\t\t>\n\t\t\t\t\t\t{acceptButtonLabel ? (\n\t\t\t\t\t\t\ttransformTextToElement(acceptButtonLabel)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Trans i18nKey=\"form.accept\">Accept</Trans>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button onClick={onDecline}>\n\t\t\t\t\t\t{declineButtonLabel ? (\n\t\t\t\t\t\t\ttransformTextToElement(declineButtonLabel)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Trans i18nKey=\"form.decline\">Decline</Trans>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\twidth={500}\n\t\t/>\n\t);\n}\n","import React, {createContext, useState} from 'react';\n\nimport Confirm, {Props as ConfirmProps} from './Confirm';\n\ntype ConfirmOptions = {\n\ttitle: string;\n\tmessage: string | React.ReactElement;\n\tacceptButtonLabel?: string;\n\tdeclineButtonLabel?: string;\n\tacceptButtonStyle?: 'primary' | 'danger';\n};\n\nexport const ConfirmContext = createContext<{\n\tconfirm: (options: ConfirmOptions) => Promise<boolean>;\n}>({\n\tconfirm: () => Promise.reject(new Error('ConfirmProvider is missing!'))\n});\n\nfunction ConfirmProvider({children}: React.PropsWithChildren<Record<string, unknown>>) {\n\tconst [visible, setVisible] = useState<boolean>(false);\n\tconst [confirmProps, setConfirmProps] = useState<ConfirmProps>({\n\t\ttitle: '',\n\t\tmessage: '',\n\t\tonAccept: () => {},\n\t\tonDecline: () => {}\n\t});\n\n\tasync function confirm(options: ConfirmOptions) {\n\t\treturn new Promise<boolean>((resolve) => {\n\t\t\tsetVisible(true);\n\t\t\tsetConfirmProps({\n\t\t\t\t...options,\n\t\t\t\tonAccept: () => {\n\t\t\t\t\tsetVisible(false);\n\t\t\t\t\tresolve(true);\n\t\t\t\t},\n\t\t\t\tonDecline: () => {\n\t\t\t\t\tsetVisible(false);\n\t\t\t\t\tresolve(false);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\treturn (\n\t\t<ConfirmContext.Provider value={{confirm}}>\n\t\t\t{children}\n\t\t\t{visible && <Confirm {...confirmProps} />}\n\t\t</ConfirmContext.Provider>\n\t);\n}\n\nexport default ConfirmProvider;\n","import {useContext} from 'react';\n\nimport {ConfirmContext} from './ConfirmProvider';\n\nexport default function useConfirm() {\n\tconst context = useContext(ConfirmContext);\n\tif (!context) {\n\t\tthrow new Error('ConfirmProvider is missing');\n\t}\n\tconst {confirm} = context;\n\treturn confirm;\n}\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\nimport useConfirm from './useConfirm';\nimport ConfirmProvider from './ConfirmProvider';\nimport {isTranslationDescriptor} from './utils';\n\nexport type ConfirmProps = {\n\tconfirm: (\n\t\ttitle: string | TranslationDescriptor,\n\t\tmessage: string | TranslationDescriptor | React.ReactElement,\n\t\tacceptButtonLabel?: string | TranslationDescriptor,\n\t\tdeclineButtonLabel?: string | TranslationDescriptor,\n\t\tresolveWithConfirmation?: boolean,\n\t\tacceptButtonStyle?: 'primary' | 'danger'\n\t) => Promise<void | boolean>;\n};\n\nexport default function withConfirm<P extends object>(WrappedComponent: React.ComponentType<P & ConfirmProps>) {\n\tfunction WithConfirm(props: P) {\n\t\tconst confirm = useConfirm();\n\t\tconst {t} = useTranslation();\n\n\t\tfunction trans(arg: TranslationDescriptor | string) {\n\t\t\tif (isTranslationDescriptor(arg)) {\n\t\t\t\treturn t(arg.id, {defaultValue: arg.defaultValue});\n\t\t\t}\n\t\t\treturn arg;\n\t\t}\n\n\t\tasync function deprecatedConfirm(\n\t\t\ttitle: string | TranslationDescriptor,\n\t\t\tmessage: string | TranslationDescriptor | React.ReactElement,\n\t\t\tacceptButtonLabel?: string | TranslationDescriptor,\n\t\t\tdeclineButtonLabel?: string | TranslationDescriptor,\n\t\t\tresolveWithConfirmation?: boolean,\n\t\t\tacceptButtonStyle?: 'primary' | 'danger'\n\t\t): Promise<boolean | void> {\n\t\t\tconst accepted = await confirm({\n\t\t\t\ttitle: trans(title),\n\t\t\t\tmessage: isTranslationDescriptor(message) ? trans(message) : message,\n\t\t\t\tacceptButtonLabel: acceptButtonLabel ? trans(acceptButtonLabel) : undefined,\n\t\t\t\tdeclineButtonLabel: declineButtonLabel ? trans(declineButtonLabel) : undefined,\n\t\t\t\tacceptButtonStyle\n\t\t\t});\n\n\t\t\tif (resolveWithConfirmation) {\n\t\t\t\treturn accepted;\n\t\t\t} else if (!accepted) {\n\t\t\t\treturn new Promise(() => {});\n\t\t\t}\n\t\t}\n\n\t\treturn <WrappedComponent {...props} confirm={deprecatedConfirm} />;\n\t}\n\n\treturn function WithConfirmWrapper(props: P) {\n\t\treturn (\n\t\t\t<ConfirmProvider>\n\t\t\t\t<WithConfirm {...props} />\n\t\t\t</ConfirmProvider>\n\t\t);\n\t};\n}\n","export default \"data:image/svg+xml,%3csvg%20id='icon-add_24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpolygon%20id='plus'%20points='20%2010%2014%2010%2014%204%2010%204%2010%2010%204%2010%204%2014%2010%2014%2010%2020%2014%2020%2014%2014%2020%2014%2020%2010'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-cross_24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpolygon%20id='icon-cross_24'%20points='20%206.28%2017.87%204%2012%209.78%206.13%204%204%206.28%209.78%2011.97%204%2017.66%206.13%2019.93%2012%2014.15%2017.87%2019.93%2020%2017.66%2014.22%2011.97%2020%206.28'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-edit-24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='stift'%3e%3cpath%20d='M7.35,12.65a.5.5,0,0,0,0,.7l3.3,3.3a.5.5,0,0,0,.7,0l8.3-8.3A1.4,1.4,0,0,0,20,7.5v-1a1.4,1.4,0,0,0-.35-.85l-1.3-1.3A1.4,1.4,0,0,0,17.5,4h-1a1.4,1.4,0,0,0-.85.35Z'/%3e%3c/g%3e%3cpath%20d='M5.9,14.49c.06-.27.26-.33.45-.14l3.3,3.3c.19.19.13.39-.14.45l-4,.8a.3.3,0,0,1-.39-.39Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-gear-24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='icon-gear-24_sga-2'%20data-name='icon-gear-24_sga'%3e%3cpath%20d='M22.82,14.06A1.25,1.25,0,0,0,24,13,7.66,7.66,0,0,0,24,12,7.66,7.66,0,0,0,24,11a1.25,1.25,0,0,0-1.13-1l-1.09,0A1.49,1.49,0,0,1,20.44,9c-.15-.47-.44-2-.07-2.37l.74-.81a1.16,1.16,0,0,0,0-1.5L19.7,2.87a1.16,1.16,0,0,0-1.5,0l-.81.74a1.5,1.5,0,0,1-1.54.27c-.44-.23-1.72-1.08-1.74-1.63l0-1.09A1.25,1.25,0,0,0,13,.05a7.66,7.66,0,0,0-1,0,7.66,7.66,0,0,0-1,.05,1.25,1.25,0,0,0-1,1.13l0,1.09A1.52,1.52,0,0,1,9,3.56c-.47.15-2,.44-2.37.07L5.8,2.89a1.16,1.16,0,0,0-1.5,0L2.86,4.3a1.18,1.18,0,0,0,0,1.5l.74.81A1.5,1.5,0,0,1,3.9,8.15c-.23.44-1.08,1.72-1.63,1.74l-1.09,0A1.25,1.25,0,0,0,.05,11a7.66,7.66,0,0,0,0,1,7.66,7.66,0,0,0,.05,1,1.25,1.25,0,0,0,1.13,1l1.09,0A1.47,1.47,0,0,1,3.55,15c.16.48.45,2,.08,2.37l-.74.81a1.16,1.16,0,0,0,0,1.5L4.3,21.13a1.16,1.16,0,0,0,1.5,0l.81-.74a1.5,1.5,0,0,1,1.54-.27c.44.23,1.72,1.08,1.75,1.63l0,1.09A1.25,1.25,0,0,0,11,24,7.66,7.66,0,0,0,12,24,7.66,7.66,0,0,0,13,24a1.25,1.25,0,0,0,1-1.13l0-1.09A1.49,1.49,0,0,1,15,20.44c.47-.15,2-.44,2.37-.07l.81.74a1.16,1.16,0,0,0,1.5,0l1.43-1.43a1.16,1.16,0,0,0,0-1.5l-.74-.81a1.5,1.5,0,0,1-.27-1.54c.23-.44,1.08-1.72,1.63-1.74ZM12,15.5A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%3e%3cpath%20d='M22.1,4.91a3,3,0,0,0-3-3H6.44a2.4,2.4,0,0,1,1.34-.4h12.6A2.12,2.12,0,0,1,22.5,3.62V17.26a1.42,1.42,0,0,1-.4,1Z'/%3e%3cpath%20d='M20.38,1H7.78A3,3,0,0,0,5.26,2.4H19.09A2.51,2.51,0,0,1,21.6,4.91V19.12A1.94,1.94,0,0,0,23,17.26V3.62A2.62,2.62,0,0,0,20.38,1Z'/%3e%3c/g%3e%3cg%3e%3cpath%20d='M4,21.5A1.5,1.5,0,0,1,2.5,20V5.8A1.5,1.5,0,0,1,4,4.3H18.2a1.5,1.5,0,0,1,1.5,1.5V20a1.5,1.5,0,0,1-1.5,1.5ZM9.5,18a.5.5,0,0,0,.5.5h2a.5.5,0,0,0,.5-.5V14.5H16a.5.5,0,0,0,.5-.5V12a.5.5,0,0,0-.5-.5H12.5V8a.5.5,0,0,0-.5-.5H10a.5.5,0,0,0-.5.5v3.5H6a.5.5,0,0,0-.5.5v2a.5.5,0,0,0,.5.5H9.5Z'/%3e%3cpath%20d='M18.2,4.8a1,1,0,0,1,1,1V20a1,1,0,0,1-1,1H4a1,1,0,0,1-1-1V5.8a1,1,0,0,1,1-1H18.2M9,11H6a1,1,0,0,0-1,1v2a1,1,0,0,0,1,1H9v3a1,1,0,0,0,1,1h2a1,1,0,0,0,1-1V15h3a1,1,0,0,0,1-1V12a1,1,0,0,0-1-1H13V8a1,1,0,0,0-1-1H10A1,1,0,0,0,9,8v3m9.2-7.2H4a2,2,0,0,0-2,2V20a2,2,0,0,0,2,2H18.2a2,2,0,0,0,2-2V5.8a2,2,0,0,0-2-2ZM6,14V12h4V8h2v4h4v2H12v4H10V14Z'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3cpolygon%20points='7.92%2012%202.84%207%2013%207%207.92%2012'/%3e%3crect%20x='5'%20y='2'%20width='6'%20height='5'/%3e%3crect%20x='2'%20y='14'%20width='12'%20height='1'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3cdefs%3e%3cstyle%3e%20.cls-1%20{%20fill:%20%23fff;%20}%20%3c/style%3e%3c/defs%3e%3cg%3e%3ccircle%20class='cls-1'%20cx='5.5'%20cy='5.5'%20r='4.5'/%3e%3cpath%20d='M5.5,2A3.5,3.5,0,1,1,2,5.5,3.5,3.5,0,0,1,5.5,2m0-1A4.5,4.5,0,1,0,10,5.5,4.49,4.49,0,0,0,5.5,1Z'/%3e%3c/g%3e%3crect%20x='6.79'%20y='10.04'%20width='7.74'%20height='2.16'%20transform='translate(10.98%20-4.28)%20rotate(45)'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20data-name='icon_key'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2027.02%2027'%3e%3cpath%20d='M35.07,16.5a8.52,8.52,0,0,0-7.69,12L17.2,38.8a2.46,2.46,0,0,0,0,3.46,2.41,2.41,0,0,0,3.42,0l1.69-1.7,2.91,2.94L31,37.63l-2.92-3,2.44-2.46a8.31,8.31,0,0,0,4.51,1.33,8.53,8.53,0,0,0,0-17Zm0,3.91A4.62,4.62,0,1,1,30.5,25,4.6,4.6,0,0,1,35.07,20.41Z'%20transform='translate(-16.49%20-16.5)'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='Pfeilende'%3e%3cpath%20d='M24,10H15l9-8.93Z'/%3e%3c/g%3e%3cpath%20d='M18.45,18.78A9.33,9.33,0,0,1,2.62,14.86,9.8,9.8,0,0,1,8.89,2.69,9.42,9.42,0,0,1,20.72,9.14H23A11.72,11.72,0,0,0,11.68,0,11.74,11.74,0,0,0,.34,9.14,12,12,0,0,0,8.89,23.65a11.43,11.43,0,0,0,11.16-3.31Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20data-name='icon_fullscreen_sga'%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%3e%3cpolygon%20id='ecke'%20points='2%2014%202%2010%200%2010%200%2016%206%2016%206%2014%202%2014'/%3e%3cpolygon%20id='ecke-2'%20data-name='ecke'%20points='2%202%206%202%206%200%200%200%200%206%202%206%202%202'/%3e%3cpolygon%20id='ecke-3'%20data-name='ecke'%20points='14%2014%2010%2014%2010%2016%2016%2016%2016%2010%2014%2010%2014%2014'/%3e%3cpolygon%20id='ecke-4'%20data-name='ecke'%20points='10%200%2010%202%2014%202%2014%206%2016%206%2016%200%2010%200'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Icon_help'%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%3e%3cpath%20id='icon_help-2'%20data-name='icon_help'%20d='M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm1,16H11V15h2Zm1.7-6.26a4.85,4.85,0,0,1-.49.81l-1,1.37a1.36,1.36,0,0,0-.18.34,1,1,0,0,0-.07.38L13,14H11l.1-.49a2,2,0,0,1,.13-.77,3.18,3.18,0,0,1,.4-.69l1-1.33a3.21,3.21,0,0,0,.29-.46,1.19,1.19,0,0,0,.11-.47,1.17,1.17,0,0,0-.3-.82,1.07,1.07,0,0,0-.83-.33A1,1,0,0,0,11.1,9a1.25,1.25,0,0,0-.28.83H9a2.94,2.94,0,0,1,.23-1.17,2.45,2.45,0,0,1,.63-.88,2.9,2.9,0,0,1,.93-.55A3.13,3.13,0,0,1,11.94,7a3.31,3.31,0,0,1,1.13.19,2.82,2.82,0,0,1,.94.54,2.62,2.62,0,0,1,.65.88A3,3,0,0,1,14.9,9.8,2.16,2.16,0,0,1,14.7,10.74Z'%20style='opacity:%200.2'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='icon_star_16'%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%3e%3cpath%20id='star'%20d='M8,0l2.45,4.97,5.55,.76-4.04,3.83,.99,5.44-4.94-2.61-4.94,2.61,.99-5.44L0,5.73l5.55-.76L8,0Z'/%3e%3c/svg%3e\"","import iconAdd from '../../assets/svg/icon_add.svg';\nimport iconDel from '../../assets/svg/icon_cross.svg';\nimport iconEdit from '../../assets/svg/icon_edit.svg';\nimport iconConfig from '../../assets/svg/icon_gear.svg';\nimport iconDuplicate from '../../assets/svg/icon_duplicate.svg';\nimport iconDownload from '../../assets/svg/icon_download.svg';\nimport iconSearch from '../../assets/svg/icon_lupe.svg';\nimport iconIconKey from '../../assets/svg/icon_key.svg';\nimport iconSync from '../../assets/svg/icon_reload.svg';\nimport iconFullscreen from '../../assets/svg/icon_fullscreen.svg';\nimport iconDocumentation from '../../assets/svg/icon_help_light.svg';\nimport iconStar from '../../assets/svg/icon_star.svg';\n\nexport type Props = {\n\tadd?: boolean;\n\tdel?: boolean;\n\tedit?: boolean;\n\tconfig?: boolean;\n\tduplicate?: boolean;\n\tsearch?: boolean;\n\tdownload?: boolean;\n\tsync?: boolean;\n\tfullscreen?: boolean;\n\tstar?: boolean;\n\n\t/** key is reserved in React */\n\ticonKey?: boolean;\n\tdocumentation?: boolean;\n\n\t/** renders a larger version of the icon (24x24) */\n\tlarge?: boolean;\n\n\t/** inverts the colors of the icon for display on dark background */\n\tinverted?: boolean;\n\n\t/** @ignore */\n\tclassName?: string;\n};\n\nfunction getSrc(props: Props) {\n\tconst {add, del, edit, config, duplicate, search, download, sync, fullscreen, iconKey, documentation, star} = props;\n\n\tif (add) {\n\t\treturn iconAdd;\n\t} else if (del) {\n\t\treturn iconDel;\n\t} else if (edit) {\n\t\treturn iconEdit;\n\t} else if (config) {\n\t\treturn iconConfig;\n\t} else if (duplicate) {\n\t\treturn iconDuplicate;\n\t} else if (search) {\n\t\treturn iconSearch;\n\t} else if (download) {\n\t\treturn iconDownload;\n\t} else if (sync) {\n\t\treturn iconSync;\n\t} else if (fullscreen) {\n\t\treturn iconFullscreen;\n\t} else if (iconKey) {\n\t\treturn iconIconKey;\n\t} else if (documentation) {\n\t\treturn iconDocumentation;\n\t} else if (star) {\n\t\treturn iconStar;\n\t} else {\n\t\tthrow Error('getSrc: no icon type specified');\n\t}\n}\n\nfunction getAlt(props: Props) {\n\tconst {add, del, edit, config, duplicate, search, download, sync, fullscreen, iconKey, documentation, star} = props;\n\n\tif (add) {\n\t\treturn 'icon add';\n\t} else if (del) {\n\t\treturn 'icon delete';\n\t} else if (edit) {\n\t\treturn 'icon edit';\n\t} else if (config) {\n\t\treturn 'icon config';\n\t} else if (duplicate) {\n\t\treturn 'icon duplicate';\n\t} else if (search) {\n\t\treturn 'icon search';\n\t} else if (download) {\n\t\treturn 'icon download';\n\t} else if (sync) {\n\t\treturn 'icon sync';\n\t} else if (fullscreen) {\n\t\treturn 'icon fullscreen';\n\t} else if (iconKey) {\n\t\treturn 'icon iconKey';\n\t} else if (documentation) {\n\t\treturn 'icon documentation';\n\t} else if (star) {\n\t\treturn 'icon star';\n\t} else {\n\t\tthrow Error('getAlt: no icon type specified');\n\t}\n}\n\nexport default function Icon(props: Props) {\n\tlet style;\n\tif (props.large) {\n\t\tstyle = {width: 24, height: 24};\n\t} else {\n\t\tstyle = {width: 16, height: 16};\n\t}\n\tif (props.inverted) {\n\t\tstyle = {...style, filter: 'invert(1)'};\n\t}\n\n\treturn <img src={getSrc(props)} className={`di icon ${props.className || ''}`} alt={getAlt(props)} style={style} />;\n}\n","import React, {MouseEventHandler, PropsWithChildren, MouseEvent} from 'react';\nimport {Trans} from 'react-i18next';\nimport cx from 'classnames';\n\nimport Icon from '../icon/Icon';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport interface Props extends React.HTMLAttributes<HTMLSpanElement> {\n\t/** the label text, either a string or TranslationDescriptor */\n\ttext?: string | TranslationDescriptor;\n\n\t/** a smaller label */\n\tsmall?: boolean;\n\n\t/** a larger label */\n\tlarge?: boolean;\n\n\tonClick?: MouseEventHandler<HTMLSpanElement>;\n\n\t/** adds a delete button that triggers this callback function */\n\tonDelete?: (...args: Array<any>) => any;\n\n\tclassName?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\t'delete-button-data-testid'?: string;\n}\n\n/**\n * Label enables an easy way for marking or tagging elements.\n */\nexport default function Label({\n\ttext,\n\tsmall = false,\n\tlarge = false,\n\tonDelete,\n\tclassName,\n\tonClick,\n\tchildren,\n\t...dataTestIds\n}: PropsWithChildren<Props>) {\n\tfunction handleDelete(event: MouseEvent<HTMLSpanElement>) {\n\t\tevent.stopPropagation();\n\t\tif (onDelete) {\n\t\t\tonDelete();\n\t\t}\n\t}\n\n\treturn (\n\t\t<span\n\t\t\tonClick={onClick}\n\t\t\tclassName={cx('di label', className, {large, small, removable: onDelete, clickable: !!onClick})}\n\t\t\tdata-testid={dataTestIds['data-testid']}\n\t\t>\n\t\t\t{typeof text === 'string' ? text : text && <Trans i18nKey={text.id}>{text.defaultValue}</Trans>}\n\t\t\t<>{children}</>\n\t\t\t{onDelete && (\n\t\t\t\t<span data-testid={dataTestIds['delete-button-data-testid']} className=\"remove\" onClick={handleDelete}>\n\t\t\t\t\t<Icon del inverted />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</span>\n\t);\n}\n","import {\n\tarrow,\n\tautoUpdate,\n\tflip,\n\tFloatingPortal,\n\toffset,\n\tsafePolygon,\n\tshift,\n\tsize,\n\tuseClick,\n\tuseDismiss,\n\tuseFloating,\n\tuseFocus,\n\tuseHover,\n\tuseInteractions\n} from '@floating-ui/react';\nimport cx from 'classnames';\nimport React, {useEffect, useRef} from 'react';\n\nexport type Placement =\n\t| 'top'\n\t| 'bottom'\n\t| 'left'\n\t| 'right'\n\t| 'top-start'\n\t| 'top-end'\n\t| 'bottom-start'\n\t| 'bottom-end'\n\t| 'right-start'\n\t| 'right-end'\n\t| 'left-start'\n\t| 'left-end';\n\nexport type Props = {\n\t/** Element to toggle the Popup */\n\thandler: React.ReactNode;\n\n\t/** Content to be displayed */\n\tchildren: React.ReactNode;\n\n\t/** If true, displays the Popup's content */\n\topen: boolean;\n\n\t/** Function, executed when the Popup gets closed */\n\tonOpenChange: (open: boolean) => void;\n\n\t/** (Optional) if set, sets the direction in which the content should be displayed */\n\tplacement?: Placement;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** (Optional) If set to true, the content is hidden via styles, but still exists in the DOM tree */\n\tpreventDestroyContentOnHide?: boolean;\n\n\t/** (Optional) Class name of the handler wrapping element */\n\thandlerWrapperClassName?: string;\n\n\t/** (Optional) Interaction mode to open the popup */\n\tmode?: Array<'click' | 'hover' | 'focus'>;\n\n\t/** (Optional) Disables the Popup */\n\tdisabled?: boolean;\n};\n\n// Margin from the edge of the viewport\nconst MARGIN = 16;\n\n/**\n * Popup displays content within a small modal.\n * Its usage is highly flexible and used in several other components.\n */\nexport default function Popup({\n\tplacement = 'bottom',\n\tmode = ['click'],\n\tdisabled,\n\thandler,\n\thandlerWrapperClassName,\n\tpreventDestroyContentOnHide,\n\topen,\n\tonOpenChange,\n\tclassName,\n\tchildren\n}: Props) {\n\tconst arrowRef = useRef<HTMLDivElement>(null);\n\n\tconst {\n\t\telements,\n\t\tupdate,\n\t\trefs,\n\t\tfloatingStyles,\n\t\tcontext,\n\t\tmiddlewareData,\n\t\tplacement: computedPlacement\n\t} = useFloating({\n\t\tplacement,\n\t\topen,\n\t\tonOpenChange,\n\t\twhileElementsMounted: !preventDestroyContentOnHide ? autoUpdate : undefined,\n\t\tmiddleware: [\n\t\t\toffset({\n\t\t\t\tmainAxis: 12\n\t\t\t}),\n\t\t\tflip({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true\n\t\t\t}),\n\t\t\tshift({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true\n\t\t\t}),\n\t\t\tsize({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true,\n\t\t\t\tapply({availableHeight, availableWidth, elements}) {\n\t\t\t\t\tconst width = `${Math.max(0, availableWidth - MARGIN)}px`;\n\t\t\t\t\tconst height = `${Math.max(0, availableHeight - MARGIN)}px`;\n\t\t\t\t\telements.floating.style.maxWidth = width;\n\t\t\t\t\telements.floating.style.maxHeight = height;\n\t\t\t\t}\n\t\t\t}),\n\t\t\tarrow({\n\t\t\t\telement: arrowRef\n\t\t\t})\n\t\t]\n\t});\n\n\tuseEffect(() => {\n\t\tif (preventDestroyContentOnHide && open && elements.reference && elements.floating) {\n\t\t\tconst cleanup = autoUpdate(elements.reference, elements.floating, update);\n\t\t\treturn cleanup;\n\t\t}\n\t}, [elements.floating, elements.reference, open, update, preventDestroyContentOnHide]);\n\n\tconst click = useClick(context, {\n\t\tenabled: !disabled && mode.includes('click'),\n\t\tkeyboardHandlers: false // Prevent space key from being blocked in input fields (floating-ui issue #1812)\n\t});\n\tconst hover = useHover(context, {\n\t\tenabled: !disabled && mode.includes('hover'),\n\t\thandleClose: safePolygon()\n\t});\n\tconst focus = useFocus(context, {enabled: !disabled && mode.includes('focus')});\n\tconst dismiss = useDismiss(context);\n\tconst {getReferenceProps, getFloatingProps} = useInteractions([click, hover, focus, dismiss]);\n\n\treturn (\n\t\t<>\n\t\t\t<span\n\t\t\t\tstyle={{display: 'inline-block'}}\n\t\t\t\tclassName={cx('popup-handler-wrapper', handlerWrapperClassName)}\n\t\t\t\tref={refs.setReference}\n\t\t\t\t{...getReferenceProps()}\n\t\t\t>\n\t\t\t\t{handler}\n\t\t\t</span>\n\t\t\t{(open || preventDestroyContentOnHide) && (\n\t\t\t\t<FloatingPortal>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cx('di popup-wrapper', {hidden: preventDestroyContentOnHide && !open})}\n\t\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\t\tstyle={{...floatingStyles, zIndex: 100000}}\n\t\t\t\t\t\t{...getFloatingProps()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className={cx('di popup', computedPlacement, className)}>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={cx('popup-arrow', computedPlacement)}\n\t\t\t\t\t\t\t\tref={arrowRef}\n\t\t\t\t\t\t\t\tstyle={{left: middlewareData.arrow?.x, top: middlewareData.arrow?.y}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<div className=\"popup-content\">{children}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</FloatingPortal>\n\t\t\t)}\n\t\t</>\n\t);\n}\n","import React, {useState} from 'react';\n\nimport Popup, {Placement} from '../popup/Popup';\n\nexport type Props = {\n\t/** the Bubble content */\n\tcontent: React.ReactNode;\n\n\t/** inverts the colors */\n\tinverted?: boolean;\n\n\t/** @ignore */\n\tchildren: React.ReactNode;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** hides the bubble */\n\tdisabled?: boolean;\n\n\t/** changed the direction */\n\tdirection?: Placement;\n};\n\n/**\n * Bubbles are best used to provide some additional information like short instructions or help texts, which are then going to be displayed on Mouse-Over.\n */\nexport default function Bubble({content, inverted, children, disabled, style, direction, className}: Props) {\n\tconst [open, setOpen] = useState(false);\n\treturn (\n\t\t<Popup\n\t\t\topen={open}\n\t\t\tonOpenChange={setOpen}\n\t\t\thandler={children}\n\t\t\tdisabled={disabled}\n\t\t\tmode={['hover']}\n\t\t\tplacement={direction ? direction : 'top'}\n\t\t\tclassName={`bubble ${inverted ? 'inverted' : ''} ${className ? className : ''}`}\n\t\t>\n\t\t\t<span className={`bubble-content`} style={style}>\n\t\t\t\t{content}\n\t\t\t</span>\n\t\t</Popup>\n\t);\n}\n","import React, {useState} from 'react';\n\nimport Popup, {Placement} from '../popup/Popup';\n\nexport type Props = {\n\t/** Content of the Tooltip */\n\tcontent: React.ReactNode;\n\n\t/** Enabler of the Tooltip */\n\tchildren: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** (Optional) if set, disables the &lt;Tooltip/&gt; from opening */\n\tdisabled?: boolean;\n\n\t/** (Optional) if set, opens &lt;Tooltip/&gt; in given direction, defaults to 'right' */\n\tdirection?: Placement;\n};\n\n/**\n * Tooltip is best used to display some short additional information or description\n */\nexport default function Tooltip({content, children, className, direction, disabled}: Props) {\n\tconst [open, setOpen] = useState(false);\n\n\treturn (\n\t\t<Popup\n\t\t\topen={open}\n\t\t\tdisabled={disabled}\n\t\t\tmode={['hover']}\n\t\t\tonOpenChange={setOpen}\n\t\t\thandler={children}\n\t\t\tplacement={direction ? direction : 'right'}\n\t\t\tclassName={`tooltip inverted ${className ? className : ''}`}\n\t\t>\n\t\t\t<span className=\"tooltip-content\">{content}</span>\n\t\t</Popup>\n\t);\n}\n","import * as React from 'react';\n\nimport Bubble from '../bubble/Bubble';\n\ntype Page = {\n\tname: string;\n\trenderHeading: () => React.ReactNode;\n\trenderBody?: () => React.ReactNode;\n\ttabDescription?: string;\n};\n\ntype State = {\n\tcurrentTab: string | null | undefined;\n};\n\nexport type Props = {\n\t/** Array of pages to be displayed */\n\tpages: Array<Page>;\n\n\t/** (Optional) if set, disables tab */\n\tdisabled?: boolean;\n\n\t/** (Optional) function, executed if tabs change */\n\tonChange?: (tab: string) => void;\n\n\t/** (Optional) sets the current tab */\n\tcurrentTab?: string | null | undefined;\n};\n\n/**\n * Tabs add the possibility to unite several homogeneous pages into one.\n * Unlike RouteTabs, Tabs cannot be accessed directly via the browser's history\n */\nexport default class Tabs extends React.Component<Props, State> {\n\tstate: State = {\n\t\tcurrentTab: this.props.pages.length ? this.props.pages[0].name : null\n\t};\n\n\thandleClick: (tab: string) => void = (tab: string) => {\n\t\tif (this.props.onChange) {\n\t\t\tthis.props.onChange(tab);\n\t\t} else if (typeof this.props.currentTab === 'undefined') {\n\t\t\tthis.setState({\n\t\t\t\tcurrentTab: tab\n\t\t\t});\n\t\t}\n\t};\n\n\tcurrentTabPage: () => Page | null | undefined = (): Page | null | undefined => {\n\t\tconst currentTab = typeof this.props.currentTab === 'string' ? this.props.currentTab : this.state.currentTab;\n\t\treturn this.props.pages.find(({name}) => currentTab === name);\n\t};\n\n\tisCurrentTab: (tab: string) => boolean = (tab: string) => {\n\t\tconst currentTab = typeof this.props.currentTab === 'string' ? this.props.currentTab : this.state.currentTab;\n\t\treturn currentTab === tab;\n\t};\n\n\trenderBody = () => {\n\t\tconst page = this.currentTabPage();\n\n\t\tif (page && typeof page.renderBody === 'function') {\n\t\t\treturn page.renderBody();\n\t\t}\n\n\t\treturn null;\n\t};\n\n\trender() {\n\t\tconst {pages, disabled} = this.props;\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t<div className=\"di tabs\">\n\t\t\t\t\t{pages.map(({name, renderHeading, tabDescription}) =>\n\t\t\t\t\t\ttabDescription ? (\n\t\t\t\t\t\t\t<Bubble inverted key={name} content={tabDescription} className=\"bubble-tab-description\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''} ${\n\t\t\t\t\t\t\t\t\t\tthis.isCurrentTab(name) ? 'active' : ''\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tonClick={() => !disabled && this.handleClick(name)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderHeading()}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</Bubble>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\t\t\t\t\tkey={name}\n\t\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''} ${\n\t\t\t\t\t\t\t\t\tthis.isCurrentTab(name) ? 'active' : ''\n\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\tonClick={() => !disabled && this.handleClick(name)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderHeading()}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{this.renderBody()}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport '../../assets/search-box.css';\nimport {ComponentType, CSSProperties} from 'react';\n\nimport Icon from '../icon/Icon';\nimport Button from '../button/Button';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** Placeholder text for input field `(string | TranslationDescriptor)` */\n\tplaceholder: string | TranslationDescriptor;\n\n\t/** Function to call if the input changes */\n\tonChange: (value: string) => void;\n\n\t/** Function to call if the search is triggered (button press or return in search field) */\n\tonSubmit?: (value: string) => void;\n\n\t/** if true, a button is shown that clears the input */\n\tclearable?: boolean;\n\n\t/** Value that should initially be displayed in the text box */\n\tinitialValue: string | null | undefined;\n\n\t/** Wrapper styles */\n\tstyle: CSSProperties | undefined;\n};\n\ntype State = {\n\tquery: string;\n};\n\nconst ClearButton = ({\n\tonChange,\n\tinputElement,\n\tstyle\n}: {\n\tonChange: (value: string) => void;\n\tinputElement: HTMLElement | null | undefined;\n\tstyle?: React.CSSProperties;\n}) => (\n\t<Button\n\t\tnaked\n\t\tonClick={() => {\n\t\t\tonChange('');\n\n\t\t\tif (inputElement) {\n\t\t\t\tinputElement.focus();\n\t\t\t}\n\t\t}}\n\t\tstyle={style}\n\t>\n\t\t<Icon del />\n\t</Button>\n);\n\n/**\n * SearchBox is used for searching content and provides a set of `props` for different user experiences\n */\nclass SearchBox extends React.Component<Props & WithTranslation, State> {\n\tstate: State = {\n\t\tquery: this.props.initialValue || ''\n\t};\n\tinput: HTMLInputElement | null | undefined;\n\n\tprintPlaceholder(): string {\n\t\tconst {t, placeholder} = this.props;\n\n\t\tif (typeof placeholder === 'object') {\n\t\t\treturn t(placeholder.id, {\n\t\t\t\tdefaultValue: placeholder.defaultValue\n\t\t\t});\n\t\t} else {\n\t\t\treturn placeholder;\n\t\t}\n\t}\n\n\thandleChange: (value: string) => void = (value: string) => {\n\t\tconst {onChange} = this.props;\n\t\tthis.setState({\n\t\t\tquery: value\n\t\t});\n\t\tonChange(value);\n\t};\n\n\thandleKeyUp: (arg0: any) => void = ({key}) => {\n\t\tconst {onSubmit} = this.props;\n\t\tconst {query} = this.state;\n\n\t\tif (key === 'Enter' && typeof onSubmit === 'function') {\n\t\t\tonSubmit(query);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {onSubmit, style, clearable} = this.props;\n\t\tconst {query} = this.state;\n\t\treturn (\n\t\t\t<div className=\"search-box\" style={style}>\n\t\t\t\t<input\n\t\t\t\t\tref={(input) => {\n\t\t\t\t\t\tthis.input = input;\n\t\t\t\t\t}}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={query}\n\t\t\t\t\tplaceholder={this.printPlaceholder()}\n\t\t\t\t\tonKeyUp={this.handleKeyUp}\n\t\t\t\t\tonChange={({target: {value}}) => this.handleChange(value)}\n\t\t\t\t/>\n\t\t\t\t{typeof onSubmit === 'function' ? (\n\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t{query && clearable && (\n\t\t\t\t\t\t\t<ClearButton\n\t\t\t\t\t\t\t\tonChange={this.handleChange}\n\t\t\t\t\t\t\t\tinputElement={this.input}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tright: 30\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Button naked onClick={() => onSubmit(query)}>\n\t\t\t\t\t\t\t<Icon search />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t) : query && clearable ? (\n\t\t\t\t\t<ClearButton onChange={this.handleChange} inputElement={this.input} />\n\t\t\t\t) : (\n\t\t\t\t\t<Button naked disabled>\n\t\t\t\t\t\t<Icon search />\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default withTranslation()(SearchBox) as ComponentType<Props>;\n"],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../src/components/accordion/Accordion.tsx","../src/components/accordionComponents/AccordionItem.tsx","../src/components/button/Button.tsx","../src/components/button/ButtonRow.tsx","../src/hooks/useOutsideClick.ts","../src/components/modalComponents/ModalWindow.tsx","../src/components/modal/Modal.tsx","../src/components/modalComponents/ModalContainer.tsx","../src/components/spinner/Spinner.tsx","../src/components/spinner/SpinnerContainer.tsx","../src/components/input/Checkbox.tsx","../src/components/confirm/utils.ts","../src/components/confirm/Confirm.tsx","../src/components/confirm/ConfirmProvider.tsx","../src/components/confirm/useConfirm.ts","../src/components/confirm/withConfirm.tsx","../src/assets/svg/icon_add.svg","../src/assets/svg/icon_cross.svg","../src/assets/svg/icon_edit.svg","../src/assets/svg/icon_gear.svg","../src/assets/svg/icon_duplicate.svg","../src/assets/svg/icon_download.svg","../src/assets/svg/icon_lupe.svg","../src/assets/svg/icon_key.svg","../src/assets/svg/icon_reload.svg","../src/assets/svg/icon_fullscreen.svg","../src/assets/svg/icon_help_light.svg","../src/assets/svg/icon_star.svg","../src/components/icon/Icon.tsx","../src/components/label/Label.tsx","../src/components/popup/Popup.tsx","../src/components/bubble/Bubble.tsx","../src/components/tooltip/Tooltip.tsx","../src/components/tabs/Tabs.tsx","../src/components/input/SearchBox.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport type Props = {\n\t/** Should contain Array of &lt;AccordionItems/&gt; elements */\n\tchildren?: Array<React.ReactNode>;\n\n\t/** (Optional) sets additional class for styling purposes */\n\taccordionClass?: string;\n\n\t/** Function to be called if active &lt;AccordionItems/&gt; gets changed */\n\tonPageChange?: (newPageNumber: number) => any;\n\n\t/** (Optional) Index of the &lt;AccordionItem/&gt; which should be opened on initial render cycle */\n\tdefaultOpenPageIndex?: number;\n};\n\ntype State = {\n\tcurrentPageIndex: number;\n};\n\n/**\n * Accordions are best used to display homogenous information, e.g. multiple configurations which would take up a lot of space otherwise.\n */\nexport default class Accordion extends React.Component<Props, State> {\n\tstate: State = {\n\t\tcurrentPageIndex: -1\n\t};\n\n\tcomponentDidMount() {\n\t\tconst {defaultOpenPageIndex} = this.props;\n\n\t\tif (defaultOpenPageIndex !== null && defaultOpenPageIndex !== undefined) {\n\t\t\tthis.handleAccordionToggle(defaultOpenPageIndex);\n\t\t}\n\t}\n\n\thandleAccordionToggle: (index: number) => void = (index: number) => {\n\t\tconst {onPageChange} = this.props;\n\t\tconst newPageIndex = this.state.currentPageIndex !== index ? index : -1;\n\t\tthis.setState({\n\t\t\tcurrentPageIndex: newPageIndex\n\t\t});\n\n\t\tif (onPageChange) {\n\t\t\tonPageChange(newPageIndex);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {children, accordionClass} = this.props;\n\t\tconst {currentPageIndex} = this.state;\n\t\treturn (\n\t\t\t<div className={accordionClass ? `di accordion ${accordionClass}` : 'di accordion'}>\n\t\t\t\t{children &&\n\t\t\t\t\tchildren.map((child: any, index) =>\n\t\t\t\t\t\tchild ? (\n\t\t\t\t\t\t\t<child.type\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t\tisOpen={currentPageIndex === index}\n\t\t\t\t\t\t\t\ttoggle={() => this.handleAccordionToggle(index)}\n\t\t\t\t\t\t\t\t{...child.props}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null\n\t\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\n\ntype Info = {\n\ttext: string;\n\tcssStyle: Record<string, any>;\n};\n\nexport type Props = {\n\t/** (Optional) Displays either numeric- or text-based badge in front of the &lt;AccordionItems/&gt; */\n\tbadge?: (number | string | React.ReactNode) | null | undefined;\n\n\t/** @ignore */\n\tchildren?: React.ReactNode;\n\n\t/** (Optional) Displays additional information, which is visible in \"closed\" state */\n\tinfo1?: Info;\n\n\t/** If true, expands &lt;AccordionItems/&gt; */\n\tisOpen?: boolean;\n\n\t/** (Optional) Sets additional classes for styling purposes */\n\titemClasses?: string;\n\n\t/** Title of &lt;AccordionItems/&gt; */\n\ttitle: string | React.ReactNode;\n\n\t/** (Optional) Tooltip of &lt;AccordionItems/&gt; */\n\ttitleTooltip?: string;\n\n\t/** Function which is called to open/close &lt;AccordionItems/&gt; */\n\ttoggle?: () => void;\n\n\t/** (Optional) Enables additional handler, e.g., for editing or deleting &lt;AccordionItems/&gt; */\n\ttools?: Array<React.ReactNode>;\n\n\t/** @ignore */\n\t'data-testid'?: string | undefined;\n};\n\nexport default class AccordionItem extends React.PureComponent<Props> {\n\trender() {\n\t\tconst {badge, children, isOpen, info1, itemClasses, title, titleTooltip, toggle, tools, ...rest} = this.props;\n\t\tconst accordionItemClasses = ['item'];\n\n\t\tif (itemClasses) accordionItemClasses.push(itemClasses);\n\t\tif (isOpen) accordionItemClasses.push('open');\n\n\t\treturn (\n\t\t\t<div className={accordionItemClasses.join(' ')}>\n\t\t\t\t<div className=\"head\">\n\t\t\t\t\t<span className=\"title\" onClick={toggle} data-testid={rest['data-testid']}>\n\t\t\t\t\t\t<h1 title={titleTooltip}>{title}</h1>\n\t\t\t\t\t\t{badge && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"di label\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tmargin: '0 0 0 10px',\n\t\t\t\t\t\t\t\t\tbackgroundColor: '#ddd',\n\t\t\t\t\t\t\t\t\tborderColor: 'transparent'\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{badge}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{info1 && <span style={info1.cssStyle}>{info1.text}</span>}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"tools\">\n\t\t\t\t\t\t{tools &&\n\t\t\t\t\t\t\ttools.map((toolComponent, index) => (\n\t\t\t\t\t\t\t\t<span key={index} className=\"tool\">\n\t\t\t\t\t\t\t\t\t{toolComponent}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"cont\">{children}</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import React, {ComponentType} from 'react';\nimport cx from 'classnames';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** primary style, mutually exclusive with _danger_ and _naked_ */\n\tprimary?: boolean;\n\n\t/** danger style, mutually exclusive with _primary_ and _naked_ */\n\tdanger?: boolean;\n\n\t/** render the button without border and background color, mutually exclusive with _primary_ and _danger_ */\n\tnaked?: boolean;\n\n\t/** a title tooltip */\n\ttitle?: (TranslationDescriptor | null | undefined) | string;\n\n\t/** button | submit | reset */\n\ttype?: 'button' | 'submit' | 'reset';\n\n\t/** a click handler */\n\tonClick?: (...args: Array<any>) => any;\n\n\t/** a smaller button */\n\tsmall?: boolean;\n\n\t/** disable the button */\n\tdisabled?: boolean;\n\n\t/** @ignore */\n\tchildren?: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\ttabIndex?: number;\n};\n\n/**\n * Buttons are used to inform the user about a potential user interaction, which then on interaction causes an action.\n * To create a standardized look and feel, different props can be passed to the Button.\n */\nfunction Button({\n\tchildren,\n\ttitle,\n\ttype,\n\tdisabled,\n\tonClick,\n\tstyle,\n\ttabIndex,\n\tt,\n\tprimary,\n\tdanger,\n\tnaked,\n\tclassName,\n\tsmall,\n\t...rest\n}: Props & WithTranslation) {\n\tlet btnTitle = title;\n\n\tif (title && typeof title !== 'string') {\n\t\tbtnTitle = t(title.id, {\n\t\t\tdefaultValue: title.defaultValue\n\t\t});\n\t}\n\n\treturn (\n\t\t<button\n\t\t\tdata-testid={rest['data-testid']}\n\t\t\ttype={type || 'button'}\n\t\t\tclassName={cx('di button', className, {small, primary, danger, link: naked})}\n\t\t\ttitle={typeof btnTitle === 'string' ? btnTitle : undefined}\n\t\t\tdisabled={disabled}\n\t\t\tonClick={onClick}\n\t\t\tstyle={style}\n\t\t\ttabIndex={tabIndex}\n\t\t>\n\t\t\t{children}\n\t\t</button>\n\t);\n}\n\nexport default withTranslation()(Button) as ComponentType<Props>;\n","import * as React from 'react';\n\nexport type Props = {\n\t/** should contain &lt;Button /&gt; elements */\n\tchildren: React.ReactNode;\n\n\t/** show a horizontal row above the buttons */\n\tdividing?: boolean;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n};\n\n/**\n * ButtonRows align Buttons nicely for all relevant and/or related user actions such as saving or canceling changes.\n * To separate the ButtonRow from the content, the extra property `dividing` can be used.\n */\nconst ButtonRow = ({children, dividing, className, style}: Props) => (\n\t<div style={style} className={`di button-row ${dividing ? 'dividing' : ''} ${className || ''}`}>\n\t\t{children}\n\t</div>\n);\n\nButtonRow.defaultProps = {\n\tdividing: false\n};\n\nexport default ButtonRow;\n","import {useEffect, useRef} from 'react';\n\nconst isTouchEvent = (event: Event): event is TouchEvent => {\n\treturn !!(event as any).touches;\n};\n\nconst isInsideBoundingRect = (element: HTMLElement, event: MouseEvent | TouchEvent) => {\n\tconst rect = element.getBoundingClientRect();\n\n\tlet x, y;\n\tif (isTouchEvent(event)) {\n\t\tx = event.touches[0].pageX;\n\t\ty = event.touches[0].pageY;\n\t} else {\n\t\tx = event.pageX;\n\t\ty = event.pageY;\n\t}\n\n\treturn rect.left <= x && rect.right >= x && rect.top <= y && rect.bottom >= y;\n};\n\nconst useOutsideClick = (\n\telements: Array<HTMLElement | null>,\n\tcallback: (evt: MouseEvent | TouchEvent | undefined) => void\n) => {\n\tconst callbackRef = useRef(callback);\n\n\tuseEffect(() => {\n\t\tcallbackRef.current = callback;\n\t}, [callback]);\n\n\tuseEffect(() => {\n\t\tconst listener = (event: MouseEvent | TouchEvent) => {\n\t\t\tconst elementsNonNull = elements.filter((element) => element != null) as HTMLElement[];\n\t\t\tif (\n\t\t\t\telementsNonNull.every(\n\t\t\t\t\t(element) =>\n\t\t\t\t\t\telement !== event.target &&\n\t\t\t\t\t\t!element.contains(event.target as any) &&\n\t\t\t\t\t\t!isInsideBoundingRect(element, event)\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcallbackRef.current(event);\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener('mousedown', listener, true);\n\t\tdocument.addEventListener('touchstart', listener, true);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousedown', listener, true);\n\t\t\tdocument.removeEventListener('touchstart', listener, true);\n\t\t};\n\t}, [elements]);\n};\n\nexport default useOutsideClick;\n","import {useEffect, useRef, useState} from 'react';\nimport Draggable from 'react-draggable';\n\nimport {Props} from '../modal/Modal';\nimport useOutsideClick from '../../hooks/useOutsideClick';\n\nexport default function ModalWindow({className, width, header, content, footer, onOutsideClick}: Props) {\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst [rootElement, setRootElement] = useState<HTMLElement | null>(null);\n\n\tuseEffect(() => {\n\t\tsetRootElement(ref.current);\n\t}, []);\n\n\tuseOutsideClick([rootElement], () => {\n\t\tif (onOutsideClick) onOutsideClick();\n\t});\n\n\treturn (\n\t\t<Draggable handle=\".modal-header\" nodeRef={ref}>\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={`modal-window ${className || ''}`}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxWidth: width\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{header && <div className=\"modal-header\">{header}</div>}\n\t\t\t\t{content && <div className=\"modal-content\">{content}</div>}\n\t\t\t\t{footer && <div className=\"modal-footer\">{footer}</div>}\n\t\t\t</div>\n\t\t</Draggable>\n\t);\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport ModalWindow from '../modalComponents/ModalWindow';\n\nexport type Props = {\n\theader?: React.ReactNode;\n\tcontent?: React.ReactNode;\n\tfooter?: React.ReactNode;\n\n\t/** the CSS width setting, either a number or string */\n\twidth?: string | number;\n\tclassName?: string;\n\n\t/** callback function that is executed when the users click outside the modal */\n\tonOutsideClick?: (event?: Event) => void;\n\tonMouseDown?: (event: React.SyntheticEvent<HTMLElement>) => void;\n};\n\nexport default class Modal extends React.Component<\n\tProps,\n\t{\n\t\tclassName: string;\n\t}\n> {\n\tstatic defaultProps: {\n\t\twidth: string;\n\t} = {\n\t\twidth: '60%'\n\t};\n\tcontainer: HTMLDivElement | undefined;\n\tmodalRoot: HTMLElement | null | undefined;\n\ttimeoutId: NodeJS.Timeout | undefined;\n\n\tconstructor(props: Props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tclassName: 'di modal'\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.container = document.createElement('div');\n\t\tthis.modalRoot = document.getElementById('modal-root');\n\n\t\tif (this.modalRoot) {\n\t\t\tthis.modalRoot.appendChild(this.container);\n\t\t} else if (document.body) {\n\t\t\tdocument.body.appendChild(this.container);\n\t\t}\n\n\t\tif (this.props.onOutsideClick) {\n\t\t\twindow.addEventListener('keydown', this.keyEventHandler);\n\t\t}\n\n\t\t// set the show class after 10ms for animation\n\t\tthis.timeoutId = setTimeout(\n\t\t\t() =>\n\t\t\t\tthis.setState({\n\t\t\t\t\tclassName: `di modal show ${this.props.className || ''}`\n\t\t\t\t}),\n\t\t\t10\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (this.container) {\n\t\t\tif (this.modalRoot) {\n\t\t\t\tthis.modalRoot.removeChild(this.container);\n\t\t\t} else if (document.body) {\n\t\t\t\tdocument.body.removeChild(this.container);\n\t\t\t}\n\t\t}\n\n\t\tif (this.props.onOutsideClick) {\n\t\t\twindow.removeEventListener('keydown', this.keyEventHandler);\n\t\t}\n\n\t\tif (this.timeoutId) {\n\t\t\tclearTimeout(this.timeoutId);\n\t\t}\n\t}\n\n\tkeyEventHandler: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n\t\tif (event.key === 'Escape' && this.props.onOutsideClick) {\n\t\t\tthis.props.onOutsideClick(event);\n\t\t}\n\t};\n\n\trender() {\n\t\tif (!this.container) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn ReactDOM.createPortal(\n\t\t\t<div className={this.state.className} onMouseDown={this.props.onMouseDown}>\n\t\t\t\t<ModalWindow {...this.props} />\n\t\t\t</div>,\n\t\t\tthis.container\n\t\t);\n\t}\n}\n","import React from 'react';\n\nexport type Props = Record<string, never>;\n\nexport default class ModalContainer extends React.PureComponent<Props> {\n\trender() {\n\t\treturn <div id=\"modal-root\" />;\n\t}\n}\n","import React from 'react';\n\nexport type Props = {\n\t/** the size of the Spinner in px */\n\tsize?: number;\n\n\t/** @ignore */\n\tcenter?: boolean;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\n/**\n * Spinners usually show a loading indication.\n */\nexport default class Spinner extends React.Component<Props> {\n\tstatic defaultProps = {\n\t\tsize: 56,\n\t\tcenter: false\n\t};\n\n\trender() {\n\t\tconst {size = 56, center, ...dataAttrs} = this.props;\n\t\tlet style: React.CSSProperties = {\n\t\t\twidth: size,\n\t\t\theight: size\n\t\t};\n\n\t\tif (center) {\n\t\t\tstyle = {\n\t\t\t\t...style,\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttop: '50%',\n\t\t\t\tleft: '50%',\n\t\t\t\tmarginTop: -size / 2,\n\t\t\t\tmarginLeft: -size / 2\n\t\t\t};\n\t\t}\n\n\t\treturn <div className=\"di spinner\" style={style} {...dataAttrs} />;\n\t}\n}\n","import React from 'react';\n\nimport Spinner from './Spinner';\n\nexport type Props = {\n\t/** controls the display of the Spinner */\n\tshow: boolean;\n\n\t/** the size of the Spinner in px */\n\tsize?: number;\n\n\t/** content to be rendered once the loading is done */\n\tchildren?: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\n/**\n * SpinnerContainer wraps the entire content and displays a loading indicator until the loading is done.\n */\nexport default class SpinnerContainer extends React.Component<Props> {\n\tstatic defaultProps: {\n\t\tsize: number;\n\t} = {\n\t\tsize: 56\n\t};\n\n\trender() {\n\t\tconst {show, size, children, className} = this.props;\n\t\tconst classNames = `di spinner-wrapper ${className ? className : ''}`;\n\t\treturn (\n\t\t\t<div className={classNames}>\n\t\t\t\t<div\n\t\t\t\t\tclassName={`di spinner-container ${show ? 'visible' : ''}`}\n\t\t\t\t\tdata-testid={this.props['data-testid']}\n\t\t\t\t>\n\t\t\t\t\t<Spinner size={size} center />\n\t\t\t\t</div>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** input type selector */\n\ttype?: 'checkbox' | 'radio' | 'toggle';\n\n\t/** Flag to preselect the status of the checkbox */\n\tvalue: boolean;\n\n\t/** Function, executed when toggling the checkbox */\n\tonChange: (nextStatus: boolean) => void;\n\n\t/** Optional input element tooltip */\n\ttitle?: TranslationDescriptor;\n\n\t/** Optional label for checkbox and radio button*/\n\tlabel?: TranslationDescriptor;\n\n\t/** visually indicate that the checkbox is disabled and disable onChange handler */\n\tdisabled?: boolean;\n\n\t/** Optional flag for toggle type: Render a small Toggle */\n\ttoggleSmall?: boolean;\n\n\t/** Optional flag for toggle type: Sets the slider color when the Toggle is truthy */\n\ttoggleColor?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\t'wrapper-data-testid'?: string;\n\n\t/** @ignore */\n\t'innerdiv-data-testid'?: string;\n};\n\nconst getWrapperClassName = (type: string, small: boolean) => {\n\tswitch (type) {\n\t\tcase 'checkbox':\n\t\tcase 'radio':\n\t\t\treturn 'di checkbox';\n\n\t\tcase 'toggle':\n\t\t\treturn small ? 'di toggle toggle-small' : 'di toggle';\n\n\t\tdefault:\n\t\t\tthrow Error(`type not support: ${type}`);\n\t}\n};\n\nconst getCheckboxClassName = (type: string, small: boolean) => {\n\tswitch (type) {\n\t\tcase 'checkbox':\n\t\t\treturn 'box';\n\n\t\tcase 'radio':\n\t\t\treturn 'radio';\n\n\t\tcase 'toggle':\n\t\t\treturn small ? 'switch switch-small' : 'switch';\n\n\t\tdefault:\n\t\t\tthrow Error(`type not support: ${type}`);\n\t}\n};\n\n/**\n * Checkbox for enabling user interaction can have one of multiple types which are defined via the `type` prop.\n */\nconst Checkbox = ({\n\ttype = 'checkbox',\n\tvalue,\n\tonChange,\n\ttitle,\n\tlabel,\n\tdisabled = false,\n\ttoggleSmall = false,\n\ttoggleColor = '#259b23',\n\tt,\n\t...other\n}: Props & WithTranslation) => {\n\tconst style =\n\t\ttype === 'toggle'\n\t\t\t? {\n\t\t\t\t\tbackgroundColor: value ? toggleColor : 'gray'\n\t\t\t\t}\n\t\t\t: {};\n\tconst tooltip = title\n\t\t? t(title.id, {\n\t\t\t\tdefaultValue: title.defaultValue\n\t\t\t})\n\t\t: undefined;\n\tconst labelText = label\n\t\t? t(label.id, {\n\t\t\t\tdefaultValue: label.defaultValue\n\t\t\t})\n\t\t: null;\n\treturn (\n\t\t<label\n\t\t\ttitle={tooltip}\n\t\t\tclassName={getWrapperClassName(type, toggleSmall)}\n\t\t\tdata-testid={other['wrapper-data-testid']}\n\t\t>\n\t\t\t<input\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={value}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonChange={() => onChange(!value)}\n\t\t\t\tdata-testid={other['data-testid']}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tclassName={getCheckboxClassName(type, toggleSmall)}\n\t\t\t\tstyle={style}\n\t\t\t\tdata-testid={other['innerdiv-data-testid']}\n\t\t\t/>\n\t\t\t{label && <span className=\"textlabel\">{labelText}</span>}\n\t\t</label>\n\t);\n};\n\nexport default withTranslation()(Checkbox) as React.ComponentType<Props>;\n","import * as React from 'react';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport function isTranslationDescriptor(\n\targ: TranslationDescriptor | string | React.ReactElement\n): arg is TranslationDescriptor {\n\tconst result =\n\t\ttypeof arg === 'object' && typeof (arg as any).id === 'string' && typeof (arg as any).defaultValue === 'string';\n\n\tif (result) {\n\t\tconsole.warn(\n\t\t\t'Please use strings instead of TranslationDescriptors to initialize the Confirm modal, because TranslationDescriptors are deprecated'\n\t\t);\n\t}\n\n\treturn result;\n}\n","import * as React from 'react';\nimport {Trans} from 'react-i18next';\n\nimport Modal from '../modal/Modal';\nimport Button from '../button/Button';\nimport {TranslationDescriptor} from '../../types/i18n';\nimport {isTranslationDescriptor} from './utils';\n\nexport type Props = {\n\ttitle: string | TranslationDescriptor;\n\tmessage: string | React.ReactElement | TranslationDescriptor;\n\n\t/** @ignore */\n\tonAccept: (...args: Array<any>) => any;\n\n\t/** @ignore */\n\tonDecline: (...args: Array<any>) => any;\n\tacceptButtonLabel?: string | TranslationDescriptor;\n\tdeclineButtonLabel?: string | TranslationDescriptor;\n\tacceptButtonStyle?: 'primary' | 'danger';\n};\n\nfunction transformTextToElement(\n\tmessage: TranslationDescriptor | string | React.ReactElement\n): React.ReactElement | string {\n\tif (isTranslationDescriptor(message)) {\n\t\treturn <Trans i18nKey={message.id}>{message.defaultValue}</Trans>;\n\t}\n\treturn message;\n}\n\n/**\n * Confirm enables the possibility to open up a dialog within a modal, requiring additional user actions.\n * This component should not be used directly, instead use `@withConfirm` to inject a promise based confirm method\n */\nexport default function Confirm({\n\ttitle,\n\tmessage,\n\tonAccept,\n\tonDecline,\n\tacceptButtonLabel,\n\tdeclineButtonLabel,\n\tacceptButtonStyle = 'primary'\n}: Props) {\n\treturn (\n\t\t<Modal\n\t\t\theader={transformTextToElement(title)}\n\t\t\tcontent={transformTextToElement(message)}\n\t\t\tfooter={\n\t\t\t\t<div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tprimary={acceptButtonStyle === 'primary'}\n\t\t\t\t\t\tdanger={acceptButtonStyle === 'danger'}\n\t\t\t\t\t\tonClick={onAccept}\n\t\t\t\t\t>\n\t\t\t\t\t\t{acceptButtonLabel ? (\n\t\t\t\t\t\t\ttransformTextToElement(acceptButtonLabel)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Trans i18nKey=\"form.accept\">Accept</Trans>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button onClick={onDecline}>\n\t\t\t\t\t\t{declineButtonLabel ? (\n\t\t\t\t\t\t\ttransformTextToElement(declineButtonLabel)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Trans i18nKey=\"form.decline\">Decline</Trans>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\twidth={500}\n\t\t/>\n\t);\n}\n","import React, {createContext, useState} from 'react';\n\nimport Confirm, {Props as ConfirmProps} from './Confirm';\n\ntype ConfirmOptions = {\n\ttitle: string;\n\tmessage: string | React.ReactElement;\n\tacceptButtonLabel?: string;\n\tdeclineButtonLabel?: string;\n\tacceptButtonStyle?: 'primary' | 'danger';\n};\n\nexport const ConfirmContext = createContext<{\n\tconfirm: (options: ConfirmOptions) => Promise<boolean>;\n}>({\n\tconfirm: () => Promise.reject(new Error('ConfirmProvider is missing!'))\n});\n\nfunction ConfirmProvider({children}: React.PropsWithChildren<Record<string, unknown>>) {\n\tconst [visible, setVisible] = useState<boolean>(false);\n\tconst [confirmProps, setConfirmProps] = useState<ConfirmProps>({\n\t\ttitle: '',\n\t\tmessage: '',\n\t\tonAccept: () => {},\n\t\tonDecline: () => {}\n\t});\n\n\tasync function confirm(options: ConfirmOptions) {\n\t\treturn new Promise<boolean>((resolve) => {\n\t\t\tsetVisible(true);\n\t\t\tsetConfirmProps({\n\t\t\t\t...options,\n\t\t\t\tonAccept: () => {\n\t\t\t\t\tsetVisible(false);\n\t\t\t\t\tresolve(true);\n\t\t\t\t},\n\t\t\t\tonDecline: () => {\n\t\t\t\t\tsetVisible(false);\n\t\t\t\t\tresolve(false);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\treturn (\n\t\t<ConfirmContext.Provider value={{confirm}}>\n\t\t\t{children}\n\t\t\t{visible && <Confirm {...confirmProps} />}\n\t\t</ConfirmContext.Provider>\n\t);\n}\n\nexport default ConfirmProvider;\n","import {useContext} from 'react';\n\nimport {ConfirmContext} from './ConfirmProvider';\n\nexport default function useConfirm() {\n\tconst context = useContext(ConfirmContext);\n\tif (!context) {\n\t\tthrow new Error('ConfirmProvider is missing');\n\t}\n\tconst {confirm} = context;\n\treturn confirm;\n}\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\nimport useConfirm from './useConfirm';\nimport ConfirmProvider from './ConfirmProvider';\nimport {isTranslationDescriptor} from './utils';\n\nexport type ConfirmProps = {\n\tconfirm: (\n\t\ttitle: string | TranslationDescriptor,\n\t\tmessage: string | TranslationDescriptor | React.ReactElement,\n\t\tacceptButtonLabel?: string | TranslationDescriptor,\n\t\tdeclineButtonLabel?: string | TranslationDescriptor,\n\t\tresolveWithConfirmation?: boolean,\n\t\tacceptButtonStyle?: 'primary' | 'danger'\n\t) => Promise<void | boolean>;\n};\n\nexport default function withConfirm<P extends object>(WrappedComponent: React.ComponentType<P & ConfirmProps>) {\n\tfunction WithConfirm(props: P) {\n\t\tconst confirm = useConfirm();\n\t\tconst {t} = useTranslation();\n\n\t\tfunction trans(arg: TranslationDescriptor | string) {\n\t\t\tif (isTranslationDescriptor(arg)) {\n\t\t\t\treturn t(arg.id, {defaultValue: arg.defaultValue});\n\t\t\t}\n\t\t\treturn arg;\n\t\t}\n\n\t\tasync function deprecatedConfirm(\n\t\t\ttitle: string | TranslationDescriptor,\n\t\t\tmessage: string | TranslationDescriptor | React.ReactElement,\n\t\t\tacceptButtonLabel?: string | TranslationDescriptor,\n\t\t\tdeclineButtonLabel?: string | TranslationDescriptor,\n\t\t\tresolveWithConfirmation?: boolean,\n\t\t\tacceptButtonStyle?: 'primary' | 'danger'\n\t\t): Promise<boolean | void> {\n\t\t\tconst accepted = await confirm({\n\t\t\t\ttitle: trans(title),\n\t\t\t\tmessage: isTranslationDescriptor(message) ? trans(message) : message,\n\t\t\t\tacceptButtonLabel: acceptButtonLabel ? trans(acceptButtonLabel) : undefined,\n\t\t\t\tdeclineButtonLabel: declineButtonLabel ? trans(declineButtonLabel) : undefined,\n\t\t\t\tacceptButtonStyle\n\t\t\t});\n\n\t\t\tif (resolveWithConfirmation) {\n\t\t\t\treturn accepted;\n\t\t\t} else if (!accepted) {\n\t\t\t\treturn new Promise(() => {});\n\t\t\t}\n\t\t}\n\n\t\treturn <WrappedComponent {...props} confirm={deprecatedConfirm} />;\n\t}\n\n\treturn function WithConfirmWrapper(props: P) {\n\t\treturn (\n\t\t\t<ConfirmProvider>\n\t\t\t\t<WithConfirm {...props} />\n\t\t\t</ConfirmProvider>\n\t\t);\n\t};\n}\n","export default \"data:image/svg+xml,%3csvg%20id='icon-add_24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpolygon%20id='plus'%20points='20%2010%2014%2010%2014%204%2010%204%2010%2010%204%2010%204%2014%2010%2014%2010%2020%2014%2020%2014%2014%2020%2014%2020%2010'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-cross_24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpolygon%20id='icon-cross_24'%20points='20%206.28%2017.87%204%2012%209.78%206.13%204%204%206.28%209.78%2011.97%204%2017.66%206.13%2019.93%2012%2014.15%2017.87%2019.93%2020%2017.66%2014.22%2011.97%2020%206.28'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-edit-24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='stift'%3e%3cpath%20d='M7.35,12.65a.5.5,0,0,0,0,.7l3.3,3.3a.5.5,0,0,0,.7,0l8.3-8.3A1.4,1.4,0,0,0,20,7.5v-1a1.4,1.4,0,0,0-.35-.85l-1.3-1.3A1.4,1.4,0,0,0,17.5,4h-1a1.4,1.4,0,0,0-.85.35Z'/%3e%3c/g%3e%3cpath%20d='M5.9,14.49c.06-.27.26-.33.45-.14l3.3,3.3c.19.19.13.39-.14.45l-4,.8a.3.3,0,0,1-.39-.39Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-gear-24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='icon-gear-24_sga-2'%20data-name='icon-gear-24_sga'%3e%3cpath%20d='M22.82,14.06A1.25,1.25,0,0,0,24,13,7.66,7.66,0,0,0,24,12,7.66,7.66,0,0,0,24,11a1.25,1.25,0,0,0-1.13-1l-1.09,0A1.49,1.49,0,0,1,20.44,9c-.15-.47-.44-2-.07-2.37l.74-.81a1.16,1.16,0,0,0,0-1.5L19.7,2.87a1.16,1.16,0,0,0-1.5,0l-.81.74a1.5,1.5,0,0,1-1.54.27c-.44-.23-1.72-1.08-1.74-1.63l0-1.09A1.25,1.25,0,0,0,13,.05a7.66,7.66,0,0,0-1,0,7.66,7.66,0,0,0-1,.05,1.25,1.25,0,0,0-1,1.13l0,1.09A1.52,1.52,0,0,1,9,3.56c-.47.15-2,.44-2.37.07L5.8,2.89a1.16,1.16,0,0,0-1.5,0L2.86,4.3a1.18,1.18,0,0,0,0,1.5l.74.81A1.5,1.5,0,0,1,3.9,8.15c-.23.44-1.08,1.72-1.63,1.74l-1.09,0A1.25,1.25,0,0,0,.05,11a7.66,7.66,0,0,0,0,1,7.66,7.66,0,0,0,.05,1,1.25,1.25,0,0,0,1.13,1l1.09,0A1.47,1.47,0,0,1,3.55,15c.16.48.45,2,.08,2.37l-.74.81a1.16,1.16,0,0,0,0,1.5L4.3,21.13a1.16,1.16,0,0,0,1.5,0l.81-.74a1.5,1.5,0,0,1,1.54-.27c.44.23,1.72,1.08,1.75,1.63l0,1.09A1.25,1.25,0,0,0,11,24,7.66,7.66,0,0,0,12,24,7.66,7.66,0,0,0,13,24a1.25,1.25,0,0,0,1-1.13l0-1.09A1.49,1.49,0,0,1,15,20.44c.47-.15,2-.44,2.37-.07l.81.74a1.16,1.16,0,0,0,1.5,0l1.43-1.43a1.16,1.16,0,0,0,0-1.5l-.74-.81a1.5,1.5,0,0,1-.27-1.54c.23-.44,1.08-1.72,1.63-1.74ZM12,15.5A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%3e%3cpath%20d='M22.1,4.91a3,3,0,0,0-3-3H6.44a2.4,2.4,0,0,1,1.34-.4h12.6A2.12,2.12,0,0,1,22.5,3.62V17.26a1.42,1.42,0,0,1-.4,1Z'/%3e%3cpath%20d='M20.38,1H7.78A3,3,0,0,0,5.26,2.4H19.09A2.51,2.51,0,0,1,21.6,4.91V19.12A1.94,1.94,0,0,0,23,17.26V3.62A2.62,2.62,0,0,0,20.38,1Z'/%3e%3c/g%3e%3cg%3e%3cpath%20d='M4,21.5A1.5,1.5,0,0,1,2.5,20V5.8A1.5,1.5,0,0,1,4,4.3H18.2a1.5,1.5,0,0,1,1.5,1.5V20a1.5,1.5,0,0,1-1.5,1.5ZM9.5,18a.5.5,0,0,0,.5.5h2a.5.5,0,0,0,.5-.5V14.5H16a.5.5,0,0,0,.5-.5V12a.5.5,0,0,0-.5-.5H12.5V8a.5.5,0,0,0-.5-.5H10a.5.5,0,0,0-.5.5v3.5H6a.5.5,0,0,0-.5.5v2a.5.5,0,0,0,.5.5H9.5Z'/%3e%3cpath%20d='M18.2,4.8a1,1,0,0,1,1,1V20a1,1,0,0,1-1,1H4a1,1,0,0,1-1-1V5.8a1,1,0,0,1,1-1H18.2M9,11H6a1,1,0,0,0-1,1v2a1,1,0,0,0,1,1H9v3a1,1,0,0,0,1,1h2a1,1,0,0,0,1-1V15h3a1,1,0,0,0,1-1V12a1,1,0,0,0-1-1H13V8a1,1,0,0,0-1-1H10A1,1,0,0,0,9,8v3m9.2-7.2H4a2,2,0,0,0-2,2V20a2,2,0,0,0,2,2H18.2a2,2,0,0,0,2-2V5.8a2,2,0,0,0-2-2ZM6,14V12h4V8h2v4h4v2H12v4H10V14Z'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3cpolygon%20points='7.92%2012%202.84%207%2013%207%207.92%2012'/%3e%3crect%20x='5'%20y='2'%20width='6'%20height='5'/%3e%3crect%20x='2'%20y='14'%20width='12'%20height='1'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3cdefs%3e%3cstyle%3e%20.cls-1%20{%20fill:%20%23fff;%20}%20%3c/style%3e%3c/defs%3e%3cg%3e%3ccircle%20class='cls-1'%20cx='5.5'%20cy='5.5'%20r='4.5'/%3e%3cpath%20d='M5.5,2A3.5,3.5,0,1,1,2,5.5,3.5,3.5,0,0,1,5.5,2m0-1A4.5,4.5,0,1,0,10,5.5,4.49,4.49,0,0,0,5.5,1Z'/%3e%3c/g%3e%3crect%20x='6.79'%20y='10.04'%20width='7.74'%20height='2.16'%20transform='translate(10.98%20-4.28)%20rotate(45)'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20data-name='icon_key'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2027.02%2027'%3e%3cpath%20d='M35.07,16.5a8.52,8.52,0,0,0-7.69,12L17.2,38.8a2.46,2.46,0,0,0,0,3.46,2.41,2.41,0,0,0,3.42,0l1.69-1.7,2.91,2.94L31,37.63l-2.92-3,2.44-2.46a8.31,8.31,0,0,0,4.51,1.33,8.53,8.53,0,0,0,0-17Zm0,3.91A4.62,4.62,0,1,1,30.5,25,4.6,4.6,0,0,1,35.07,20.41Z'%20transform='translate(-16.49%20-16.5)'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='Pfeilende'%3e%3cpath%20d='M24,10H15l9-8.93Z'/%3e%3c/g%3e%3cpath%20d='M18.45,18.78A9.33,9.33,0,0,1,2.62,14.86,9.8,9.8,0,0,1,8.89,2.69,9.42,9.42,0,0,1,20.72,9.14H23A11.72,11.72,0,0,0,11.68,0,11.74,11.74,0,0,0,.34,9.14,12,12,0,0,0,8.89,23.65a11.43,11.43,0,0,0,11.16-3.31Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20data-name='icon_fullscreen_sga'%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%3e%3cpolygon%20id='ecke'%20points='2%2014%202%2010%200%2010%200%2016%206%2016%206%2014%202%2014'/%3e%3cpolygon%20id='ecke-2'%20data-name='ecke'%20points='2%202%206%202%206%200%200%200%200%206%202%206%202%202'/%3e%3cpolygon%20id='ecke-3'%20data-name='ecke'%20points='14%2014%2010%2014%2010%2016%2016%2016%2016%2010%2014%2010%2014%2014'/%3e%3cpolygon%20id='ecke-4'%20data-name='ecke'%20points='10%200%2010%202%2014%202%2014%206%2016%206%2016%200%2010%200'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Icon_help'%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%3e%3cpath%20id='icon_help-2'%20data-name='icon_help'%20d='M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm1,16H11V15h2Zm1.7-6.26a4.85,4.85,0,0,1-.49.81l-1,1.37a1.36,1.36,0,0,0-.18.34,1,1,0,0,0-.07.38L13,14H11l.1-.49a2,2,0,0,1,.13-.77,3.18,3.18,0,0,1,.4-.69l1-1.33a3.21,3.21,0,0,0,.29-.46,1.19,1.19,0,0,0,.11-.47,1.17,1.17,0,0,0-.3-.82,1.07,1.07,0,0,0-.83-.33A1,1,0,0,0,11.1,9a1.25,1.25,0,0,0-.28.83H9a2.94,2.94,0,0,1,.23-1.17,2.45,2.45,0,0,1,.63-.88,2.9,2.9,0,0,1,.93-.55A3.13,3.13,0,0,1,11.94,7a3.31,3.31,0,0,1,1.13.19,2.82,2.82,0,0,1,.94.54,2.62,2.62,0,0,1,.65.88A3,3,0,0,1,14.9,9.8,2.16,2.16,0,0,1,14.7,10.74Z'%20style='opacity:%200.2'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='icon_star_16'%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%3e%3cpath%20id='star'%20d='M8,0l2.45,4.97,5.55,.76-4.04,3.83,.99,5.44-4.94-2.61-4.94,2.61,.99-5.44L0,5.73l5.55-.76L8,0Z'/%3e%3c/svg%3e\"","import iconAdd from '../../assets/svg/icon_add.svg';\nimport iconDel from '../../assets/svg/icon_cross.svg';\nimport iconEdit from '../../assets/svg/icon_edit.svg';\nimport iconConfig from '../../assets/svg/icon_gear.svg';\nimport iconDuplicate from '../../assets/svg/icon_duplicate.svg';\nimport iconDownload from '../../assets/svg/icon_download.svg';\nimport iconSearch from '../../assets/svg/icon_lupe.svg';\nimport iconIconKey from '../../assets/svg/icon_key.svg';\nimport iconSync from '../../assets/svg/icon_reload.svg';\nimport iconFullscreen from '../../assets/svg/icon_fullscreen.svg';\nimport iconDocumentation from '../../assets/svg/icon_help_light.svg';\nimport iconStar from '../../assets/svg/icon_star.svg';\n\nexport type Props = {\n\tadd?: boolean;\n\tdel?: boolean;\n\tedit?: boolean;\n\tconfig?: boolean;\n\tduplicate?: boolean;\n\tsearch?: boolean;\n\tdownload?: boolean;\n\tsync?: boolean;\n\tfullscreen?: boolean;\n\tstar?: boolean;\n\n\t/** key is reserved in React */\n\ticonKey?: boolean;\n\tdocumentation?: boolean;\n\n\t/** renders a larger version of the icon (24x24) */\n\tlarge?: boolean;\n\n\t/** inverts the colors of the icon for display on dark background */\n\tinverted?: boolean;\n\n\t/** @ignore */\n\tclassName?: string;\n};\n\nfunction getSrc(props: Props) {\n\tconst {add, del, edit, config, duplicate, search, download, sync, fullscreen, iconKey, documentation, star} = props;\n\n\tif (add) {\n\t\treturn iconAdd;\n\t} else if (del) {\n\t\treturn iconDel;\n\t} else if (edit) {\n\t\treturn iconEdit;\n\t} else if (config) {\n\t\treturn iconConfig;\n\t} else if (duplicate) {\n\t\treturn iconDuplicate;\n\t} else if (search) {\n\t\treturn iconSearch;\n\t} else if (download) {\n\t\treturn iconDownload;\n\t} else if (sync) {\n\t\treturn iconSync;\n\t} else if (fullscreen) {\n\t\treturn iconFullscreen;\n\t} else if (iconKey) {\n\t\treturn iconIconKey;\n\t} else if (documentation) {\n\t\treturn iconDocumentation;\n\t} else if (star) {\n\t\treturn iconStar;\n\t} else {\n\t\tthrow Error('getSrc: no icon type specified');\n\t}\n}\n\nfunction getAlt(props: Props) {\n\tconst {add, del, edit, config, duplicate, search, download, sync, fullscreen, iconKey, documentation, star} = props;\n\n\tif (add) {\n\t\treturn 'icon add';\n\t} else if (del) {\n\t\treturn 'icon delete';\n\t} else if (edit) {\n\t\treturn 'icon edit';\n\t} else if (config) {\n\t\treturn 'icon config';\n\t} else if (duplicate) {\n\t\treturn 'icon duplicate';\n\t} else if (search) {\n\t\treturn 'icon search';\n\t} else if (download) {\n\t\treturn 'icon download';\n\t} else if (sync) {\n\t\treturn 'icon sync';\n\t} else if (fullscreen) {\n\t\treturn 'icon fullscreen';\n\t} else if (iconKey) {\n\t\treturn 'icon iconKey';\n\t} else if (documentation) {\n\t\treturn 'icon documentation';\n\t} else if (star) {\n\t\treturn 'icon star';\n\t} else {\n\t\tthrow Error('getAlt: no icon type specified');\n\t}\n}\n\nexport default function Icon(props: Props) {\n\tlet style;\n\tif (props.large) {\n\t\tstyle = {width: 24, height: 24};\n\t} else {\n\t\tstyle = {width: 16, height: 16};\n\t}\n\tif (props.inverted) {\n\t\tstyle = {...style, filter: 'invert(1)'};\n\t}\n\n\treturn <img src={getSrc(props)} className={`di icon ${props.className || ''}`} alt={getAlt(props)} style={style} />;\n}\n","import React, {MouseEventHandler, PropsWithChildren, MouseEvent} from 'react';\nimport {Trans} from 'react-i18next';\nimport cx from 'classnames';\n\nimport Icon from '../icon/Icon';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport interface Props extends React.HTMLAttributes<HTMLSpanElement> {\n\t/** the label text, either a string or TranslationDescriptor */\n\ttext?: string | TranslationDescriptor;\n\n\t/** a smaller label */\n\tsmall?: boolean;\n\n\t/** a larger label */\n\tlarge?: boolean;\n\n\tonClick?: MouseEventHandler<HTMLSpanElement>;\n\n\t/** adds a delete button that triggers this callback function */\n\tonDelete?: (...args: Array<any>) => any;\n\n\tclassName?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\t'delete-button-data-testid'?: string;\n}\n\n/**\n * Label enables an easy way for marking or tagging elements.\n */\nexport default function Label({\n\ttext,\n\tsmall = false,\n\tlarge = false,\n\tonDelete,\n\tclassName,\n\tonClick,\n\tchildren,\n\t...dataTestIds\n}: PropsWithChildren<Props>) {\n\tfunction handleDelete(event: MouseEvent<HTMLSpanElement>) {\n\t\tevent.stopPropagation();\n\t\tif (onDelete) {\n\t\t\tonDelete();\n\t\t}\n\t}\n\n\treturn (\n\t\t<span\n\t\t\tonClick={onClick}\n\t\t\tclassName={cx('di label', className, {large, small, removable: onDelete, clickable: !!onClick})}\n\t\t\tdata-testid={dataTestIds['data-testid']}\n\t\t>\n\t\t\t{typeof text === 'string' ? text : text && <Trans i18nKey={text.id}>{text.defaultValue}</Trans>}\n\t\t\t<>{children}</>\n\t\t\t{onDelete && (\n\t\t\t\t<span data-testid={dataTestIds['delete-button-data-testid']} className=\"remove\" onClick={handleDelete}>\n\t\t\t\t\t<Icon del inverted />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</span>\n\t);\n}\n","import {\n\tarrow,\n\tautoUpdate,\n\tflip,\n\tFloatingPortal,\n\toffset,\n\tsafePolygon,\n\tshift,\n\tsize,\n\tuseClick,\n\tuseDismiss,\n\tuseFloating,\n\tuseFocus,\n\tuseHover,\n\tuseInteractions\n} from '@floating-ui/react';\nimport cx from 'classnames';\nimport React, {useEffect, useRef} from 'react';\n\nexport type Placement =\n\t| 'top'\n\t| 'bottom'\n\t| 'left'\n\t| 'right'\n\t| 'top-start'\n\t| 'top-end'\n\t| 'bottom-start'\n\t| 'bottom-end'\n\t| 'right-start'\n\t| 'right-end'\n\t| 'left-start'\n\t| 'left-end';\n\nexport type Props = {\n\t/** Element to toggle the Popup */\n\thandler: React.ReactNode;\n\n\t/** Content to be displayed */\n\tchildren: React.ReactNode;\n\n\t/** If true, displays the Popup's content */\n\topen: boolean;\n\n\t/** Function, executed when the Popup gets closed */\n\tonOpenChange: (open: boolean) => void;\n\n\t/** (Optional) if set, sets the direction in which the content should be displayed */\n\tplacement?: Placement;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** (Optional) If set to true, the content is hidden via styles, but still exists in the DOM tree */\n\tpreventDestroyContentOnHide?: boolean;\n\n\t/** (Optional) Class name of the handler wrapping element */\n\thandlerWrapperClassName?: string;\n\n\t/** (Optional) Interaction mode to open the popup */\n\tmode?: Array<'click' | 'hover' | 'focus'>;\n\n\t/** (Optional) Disables the Popup */\n\tdisabled?: boolean;\n};\n\n// Margin from the edge of the viewport\nconst MARGIN = 16;\n\n/**\n * Popup displays content within a small modal.\n * Its usage is highly flexible and used in several other components.\n */\nexport default function Popup({\n\tplacement = 'bottom',\n\tmode = ['click'],\n\tdisabled,\n\thandler,\n\thandlerWrapperClassName,\n\tpreventDestroyContentOnHide,\n\topen,\n\tonOpenChange,\n\tclassName,\n\tchildren\n}: Props) {\n\tconst arrowRef = useRef<HTMLDivElement>(null);\n\n\tconst {\n\t\telements,\n\t\tupdate,\n\t\trefs,\n\t\tfloatingStyles,\n\t\tcontext,\n\t\tmiddlewareData,\n\t\tplacement: computedPlacement\n\t} = useFloating({\n\t\tplacement,\n\t\topen,\n\t\tonOpenChange,\n\t\twhileElementsMounted: !preventDestroyContentOnHide ? autoUpdate : undefined,\n\t\tmiddleware: [\n\t\t\toffset({\n\t\t\t\tmainAxis: 12\n\t\t\t}),\n\t\t\tflip({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true\n\t\t\t}),\n\t\t\tshift({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true\n\t\t\t}),\n\t\t\tsize({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true,\n\t\t\t\tapply({availableHeight, availableWidth, elements}) {\n\t\t\t\t\tconst width = `${Math.max(0, availableWidth - MARGIN)}px`;\n\t\t\t\t\tconst height = `${Math.max(0, availableHeight - MARGIN)}px`;\n\t\t\t\t\telements.floating.style.maxWidth = width;\n\t\t\t\t\telements.floating.style.maxHeight = height;\n\t\t\t\t}\n\t\t\t}),\n\t\t\tarrow({\n\t\t\t\telement: arrowRef\n\t\t\t})\n\t\t]\n\t});\n\n\tuseEffect(() => {\n\t\tif (preventDestroyContentOnHide && open && elements.reference && elements.floating) {\n\t\t\tconst cleanup = autoUpdate(elements.reference, elements.floating, update);\n\t\t\treturn cleanup;\n\t\t}\n\t}, [elements.floating, elements.reference, open, update, preventDestroyContentOnHide]);\n\n\tconst click = useClick(context, {\n\t\tenabled: !disabled && mode.includes('click'),\n\t\tkeyboardHandlers: false, // Prevent space key from being blocked in input fields (floating-ui issue #1812)\n\t});\n\tconst hover = useHover(context, {\n\t\tenabled: !disabled && mode.includes('hover'),\n\t\thandleClose: safePolygon()\n\t});\n\tconst focus = useFocus(context, {enabled: !disabled && mode.includes('focus')});\n\tconst dismiss = useDismiss(context);\n\tconst {getReferenceProps, getFloatingProps} = useInteractions([click, hover, focus, dismiss]);\n\n\treturn (\n\t\t<>\n\t\t\t<span\n\t\t\t\tstyle={{display: 'inline-block'}}\n\t\t\t\tclassName={cx('popup-handler-wrapper', handlerWrapperClassName)}\n\t\t\t\tref={refs.setReference}\n\t\t\t\t{...getReferenceProps()}\n\t\t\t>\n\t\t\t\t{handler}\n\t\t\t</span>\n\t\t\t{(open || preventDestroyContentOnHide) && (\n\t\t\t\t<FloatingPortal>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cx('di popup-wrapper', {hidden: preventDestroyContentOnHide && !open})}\n\t\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\t\tstyle={{...floatingStyles, zIndex: 100000}}\n\t\t\t\t\t\t{...getFloatingProps()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className={cx('di popup', computedPlacement, className)}>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={cx('popup-arrow', computedPlacement)}\n\t\t\t\t\t\t\t\tref={arrowRef}\n\t\t\t\t\t\t\t\tstyle={{left: middlewareData.arrow?.x, top: middlewareData.arrow?.y}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<div className=\"popup-content\">{children}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</FloatingPortal>\n\t\t\t)}\n\t\t</>\n\t);\n}\n","import React, {useState} from 'react';\n\nimport Popup, {Placement} from '../popup/Popup';\n\nexport type Props = {\n\t/** the Bubble content */\n\tcontent: React.ReactNode;\n\n\t/** inverts the colors */\n\tinverted?: boolean;\n\n\t/** @ignore */\n\tchildren: React.ReactNode;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** hides the bubble */\n\tdisabled?: boolean;\n\n\t/** changed the direction */\n\tdirection?: Placement;\n};\n\n/**\n * Bubbles are best used to provide some additional information like short instructions or help texts, which are then going to be displayed on Mouse-Over.\n */\nexport default function Bubble({content, inverted, children, disabled, style, direction, className}: Props) {\n\tconst [open, setOpen] = useState(false);\n\treturn (\n\t\t<Popup\n\t\t\topen={open}\n\t\t\tonOpenChange={setOpen}\n\t\t\thandler={children}\n\t\t\tdisabled={disabled}\n\t\t\tmode={['hover']}\n\t\t\tplacement={direction ? direction : 'top'}\n\t\t\tclassName={`bubble ${inverted ? 'inverted' : ''} ${className ? className : ''}`}\n\t\t>\n\t\t\t<span className={`bubble-content`} style={style}>\n\t\t\t\t{content}\n\t\t\t</span>\n\t\t</Popup>\n\t);\n}\n","import React, {useState} from 'react';\n\nimport Popup, {Placement} from '../popup/Popup';\n\nexport type Props = {\n\t/** Content of the Tooltip */\n\tcontent: React.ReactNode;\n\n\t/** Enabler of the Tooltip */\n\tchildren: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** (Optional) if set, disables the &lt;Tooltip/&gt; from opening */\n\tdisabled?: boolean;\n\n\t/** (Optional) if set, opens &lt;Tooltip/&gt; in given direction, defaults to 'right' */\n\tdirection?: Placement;\n};\n\n/**\n * Tooltip is best used to display some short additional information or description\n */\nexport default function Tooltip({content, children, className, direction, disabled}: Props) {\n\tconst [open, setOpen] = useState(false);\n\n\treturn (\n\t\t<Popup\n\t\t\topen={open}\n\t\t\tdisabled={disabled}\n\t\t\tmode={['hover']}\n\t\t\tonOpenChange={setOpen}\n\t\t\thandler={children}\n\t\t\tplacement={direction ? direction : 'right'}\n\t\t\tclassName={`tooltip inverted ${className ? className : ''}`}\n\t\t>\n\t\t\t<span className=\"tooltip-content\">{content}</span>\n\t\t</Popup>\n\t);\n}\n","import * as React from 'react';\n\nimport Bubble from '../bubble/Bubble';\n\ntype Page = {\n\tname: string;\n\trenderHeading: () => React.ReactNode;\n\trenderBody?: () => React.ReactNode;\n\ttabDescription?: string;\n};\n\ntype State = {\n\tcurrentTab: string | null | undefined;\n};\n\nexport type Props = {\n\t/** Array of pages to be displayed */\n\tpages: Array<Page>;\n\n\t/** (Optional) if set, disables tab */\n\tdisabled?: boolean;\n\n\t/** (Optional) function, executed if tabs change */\n\tonChange?: (tab: string) => void;\n\n\t/** (Optional) sets the current tab */\n\tcurrentTab?: string | null | undefined;\n};\n\n/**\n * Tabs add the possibility to unite several homogeneous pages into one.\n * Unlike RouteTabs, Tabs cannot be accessed directly via the browser's history\n */\nexport default class Tabs extends React.Component<Props, State> {\n\tstate: State = {\n\t\tcurrentTab: this.props.pages.length ? this.props.pages[0].name : null\n\t};\n\n\thandleClick: (tab: string) => void = (tab: string) => {\n\t\tif (this.props.onChange) {\n\t\t\tthis.props.onChange(tab);\n\t\t} else if (typeof this.props.currentTab === 'undefined') {\n\t\t\tthis.setState({\n\t\t\t\tcurrentTab: tab\n\t\t\t});\n\t\t}\n\t};\n\n\tcurrentTabPage: () => Page | null | undefined = (): Page | null | undefined => {\n\t\tconst currentTab = typeof this.props.currentTab === 'string' ? this.props.currentTab : this.state.currentTab;\n\t\treturn this.props.pages.find(({name}) => currentTab === name);\n\t};\n\n\tisCurrentTab: (tab: string) => boolean = (tab: string) => {\n\t\tconst currentTab = typeof this.props.currentTab === 'string' ? this.props.currentTab : this.state.currentTab;\n\t\treturn currentTab === tab;\n\t};\n\n\trenderBody = () => {\n\t\tconst page = this.currentTabPage();\n\n\t\tif (page && typeof page.renderBody === 'function') {\n\t\t\treturn page.renderBody();\n\t\t}\n\n\t\treturn null;\n\t};\n\n\trender() {\n\t\tconst {pages, disabled} = this.props;\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t<div className=\"di tabs\">\n\t\t\t\t\t{pages.map(({name, renderHeading, tabDescription}) =>\n\t\t\t\t\t\ttabDescription ? (\n\t\t\t\t\t\t\t<Bubble inverted key={name} content={tabDescription} className=\"bubble-tab-description\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''} ${\n\t\t\t\t\t\t\t\t\t\tthis.isCurrentTab(name) ? 'active' : ''\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tonClick={() => !disabled && this.handleClick(name)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderHeading()}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</Bubble>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\t\t\t\t\tkey={name}\n\t\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''} ${\n\t\t\t\t\t\t\t\t\tthis.isCurrentTab(name) ? 'active' : ''\n\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\tonClick={() => !disabled && this.handleClick(name)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderHeading()}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{this.renderBody()}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport '../../assets/search-box.css';\nimport {ComponentType, CSSProperties} from 'react';\n\nimport Icon from '../icon/Icon';\nimport Button from '../button/Button';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** Placeholder text for input field `(string | TranslationDescriptor)` */\n\tplaceholder: string | TranslationDescriptor;\n\n\t/** Function to call if the input changes */\n\tonChange: (value: string) => void;\n\n\t/** Function to call if the search is triggered (button press or return in search field) */\n\tonSubmit?: (value: string) => void;\n\n\t/** if true, a button is shown that clears the input */\n\tclearable?: boolean;\n\n\t/** Value that should initially be displayed in the text box */\n\tinitialValue: string | null | undefined;\n\n\t/** Wrapper styles */\n\tstyle: CSSProperties | undefined;\n};\n\ntype State = {\n\tquery: string;\n};\n\nconst ClearButton = ({\n\tonChange,\n\tinputElement,\n\tstyle\n}: {\n\tonChange: (value: string) => void;\n\tinputElement: HTMLElement | null | undefined;\n\tstyle?: React.CSSProperties;\n}) => (\n\t<Button\n\t\tnaked\n\t\tonClick={() => {\n\t\t\tonChange('');\n\n\t\t\tif (inputElement) {\n\t\t\t\tinputElement.focus();\n\t\t\t}\n\t\t}}\n\t\tstyle={style}\n\t>\n\t\t<Icon del />\n\t</Button>\n);\n\n/**\n * SearchBox is used for searching content and provides a set of `props` for different user experiences\n */\nclass SearchBox extends React.Component<Props & WithTranslation, State> {\n\tstate: State = {\n\t\tquery: this.props.initialValue || ''\n\t};\n\tinput: HTMLInputElement | null | undefined;\n\n\tprintPlaceholder(): string {\n\t\tconst {t, placeholder} = this.props;\n\n\t\tif (typeof placeholder === 'object') {\n\t\t\treturn t(placeholder.id, {\n\t\t\t\tdefaultValue: placeholder.defaultValue\n\t\t\t});\n\t\t} else {\n\t\t\treturn placeholder;\n\t\t}\n\t}\n\n\thandleChange: (value: string) => void = (value: string) => {\n\t\tconst {onChange} = this.props;\n\t\tthis.setState({\n\t\t\tquery: value\n\t\t});\n\t\tonChange(value);\n\t};\n\n\thandleKeyUp: (arg0: any) => void = ({key}) => {\n\t\tconst {onSubmit} = this.props;\n\t\tconst {query} = this.state;\n\n\t\tif (key === 'Enter' && typeof onSubmit === 'function') {\n\t\t\tonSubmit(query);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {onSubmit, style, clearable} = this.props;\n\t\tconst {query} = this.state;\n\t\treturn (\n\t\t\t<div className=\"search-box\" style={style}>\n\t\t\t\t<input\n\t\t\t\t\tref={(input) => {\n\t\t\t\t\t\tthis.input = input;\n\t\t\t\t\t}}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={query}\n\t\t\t\t\tplaceholder={this.printPlaceholder()}\n\t\t\t\t\tonKeyUp={this.handleKeyUp}\n\t\t\t\t\tonChange={({target: {value}}) => this.handleChange(value)}\n\t\t\t\t/>\n\t\t\t\t{typeof onSubmit === 'function' ? (\n\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t{query && clearable && (\n\t\t\t\t\t\t\t<ClearButton\n\t\t\t\t\t\t\t\tonChange={this.handleChange}\n\t\t\t\t\t\t\t\tinputElement={this.input}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tright: 30\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Button naked onClick={() => onSubmit(query)}>\n\t\t\t\t\t\t\t<Icon search />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t) : query && clearable ? (\n\t\t\t\t\t<ClearButton onChange={this.handleChange} inputElement={this.input} />\n\t\t\t\t) : (\n\t\t\t\t\t<Button naked disabled>\n\t\t\t\t\t\t<Icon search />\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default withTranslation()(SearchBox) as ComponentType<Props>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/components/accordion/Accordion.tsx","../src/components/accordionComponents/AccordionItem.tsx","../src/components/button/Button.tsx","../src/components/button/ButtonRow.tsx","../src/hooks/useOutsideClick.ts","../src/components/modalComponents/ModalWindow.tsx","../src/components/modal/Modal.tsx","../src/components/modalComponents/ModalContainer.tsx","../src/components/spinner/Spinner.tsx","../src/components/spinner/SpinnerContainer.tsx","../src/components/input/Checkbox.tsx","../src/components/confirm/utils.ts","../src/components/confirm/Confirm.tsx","../src/components/confirm/ConfirmProvider.tsx","../src/components/confirm/useConfirm.ts","../src/components/confirm/withConfirm.tsx","../src/assets/svg/icon_add.svg","../src/assets/svg/icon_cross.svg","../src/assets/svg/icon_edit.svg","../src/assets/svg/icon_gear.svg","../src/assets/svg/icon_duplicate.svg","../src/assets/svg/icon_download.svg","../src/assets/svg/icon_lupe.svg","../src/assets/svg/icon_key.svg","../src/assets/svg/icon_reload.svg","../src/assets/svg/icon_fullscreen.svg","../src/assets/svg/icon_help_light.svg","../src/assets/svg/icon_star.svg","../src/components/icon/Icon.tsx","../src/components/label/Label.tsx","../src/components/popup/Popup.tsx","../src/components/bubble/Bubble.tsx","../src/components/tooltip/Tooltip.tsx","../src/components/tabs/Tabs.tsx","../src/components/input/SearchBox.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport type Props = {\n\t/** Should contain Array of &lt;AccordionItems/&gt; elements */\n\tchildren?: Array<React.ReactNode>;\n\n\t/** (Optional) sets additional class for styling purposes */\n\taccordionClass?: string;\n\n\t/** Function to be called if active &lt;AccordionItems/&gt; gets changed */\n\tonPageChange?: (newPageNumber: number) => any;\n\n\t/** (Optional) Index of the &lt;AccordionItem/&gt; which should be opened on initial render cycle */\n\tdefaultOpenPageIndex?: number;\n};\n\ntype State = {\n\tcurrentPageIndex: number;\n};\n\n/**\n * Accordions are best used to display homogenous information, e.g. multiple configurations which would take up a lot of space otherwise.\n */\nexport default class Accordion extends React.Component<Props, State> {\n\tstate: State = {\n\t\tcurrentPageIndex: -1\n\t};\n\n\tcomponentDidMount() {\n\t\tconst {defaultOpenPageIndex} = this.props;\n\n\t\tif (defaultOpenPageIndex !== null && defaultOpenPageIndex !== undefined) {\n\t\t\tthis.handleAccordionToggle(defaultOpenPageIndex);\n\t\t}\n\t}\n\n\thandleAccordionToggle: (index: number) => void = (index: number) => {\n\t\tconst {onPageChange} = this.props;\n\t\tconst newPageIndex = this.state.currentPageIndex !== index ? index : -1;\n\t\tthis.setState({\n\t\t\tcurrentPageIndex: newPageIndex\n\t\t});\n\n\t\tif (onPageChange) {\n\t\t\tonPageChange(newPageIndex);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {children, accordionClass} = this.props;\n\t\tconst {currentPageIndex} = this.state;\n\t\treturn (\n\t\t\t<div className={accordionClass ? `di accordion ${accordionClass}` : 'di accordion'}>\n\t\t\t\t{children &&\n\t\t\t\t\tchildren.map((child: any, index) =>\n\t\t\t\t\t\tchild ? (\n\t\t\t\t\t\t\t<child.type\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t\tisOpen={currentPageIndex === index}\n\t\t\t\t\t\t\t\ttoggle={() => this.handleAccordionToggle(index)}\n\t\t\t\t\t\t\t\t{...child.props}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null\n\t\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\n\ntype Info = {\n\ttext: string;\n\tcssStyle: Record<string, any>;\n};\n\nexport type Props = {\n\t/** (Optional) Displays either numeric- or text-based badge in front of the &lt;AccordionItems/&gt; */\n\tbadge?: (number | string | React.ReactNode) | null | undefined;\n\n\t/** @ignore */\n\tchildren?: React.ReactNode;\n\n\t/** (Optional) Displays additional information, which is visible in \"closed\" state */\n\tinfo1?: Info;\n\n\t/** If true, expands &lt;AccordionItems/&gt; */\n\tisOpen?: boolean;\n\n\t/** (Optional) Sets additional classes for styling purposes */\n\titemClasses?: string;\n\n\t/** Title of &lt;AccordionItems/&gt; */\n\ttitle: string | React.ReactNode;\n\n\t/** (Optional) Tooltip of &lt;AccordionItems/&gt; */\n\ttitleTooltip?: string;\n\n\t/** Function which is called to open/close &lt;AccordionItems/&gt; */\n\ttoggle?: () => void;\n\n\t/** (Optional) Enables additional handler, e.g., for editing or deleting &lt;AccordionItems/&gt; */\n\ttools?: Array<React.ReactNode>;\n\n\t/** @ignore */\n\t'data-testid'?: string | undefined;\n};\n\nexport default class AccordionItem extends React.PureComponent<Props> {\n\trender() {\n\t\tconst {badge, children, isOpen, info1, itemClasses, title, titleTooltip, toggle, tools, ...rest} = this.props;\n\t\tconst accordionItemClasses = ['item'];\n\n\t\tif (itemClasses) accordionItemClasses.push(itemClasses);\n\t\tif (isOpen) accordionItemClasses.push('open');\n\n\t\treturn (\n\t\t\t<div className={accordionItemClasses.join(' ')}>\n\t\t\t\t<div className=\"head\">\n\t\t\t\t\t<span className=\"title\" onClick={toggle} data-testid={rest['data-testid']}>\n\t\t\t\t\t\t<h1 title={titleTooltip}>{title}</h1>\n\t\t\t\t\t\t{badge && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"di label\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tmargin: '0 0 0 10px',\n\t\t\t\t\t\t\t\t\tbackgroundColor: '#ddd',\n\t\t\t\t\t\t\t\t\tborderColor: 'transparent'\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{badge}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{info1 && <span style={info1.cssStyle}>{info1.text}</span>}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"tools\">\n\t\t\t\t\t\t{tools &&\n\t\t\t\t\t\t\ttools.map((toolComponent, index) => (\n\t\t\t\t\t\t\t\t<span key={index} className=\"tool\">\n\t\t\t\t\t\t\t\t\t{toolComponent}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"cont\">{children}</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import React, {ComponentType} from 'react';\nimport cx from 'classnames';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** primary style, mutually exclusive with _danger_ and _naked_ */\n\tprimary?: boolean;\n\n\t/** danger style, mutually exclusive with _primary_ and _naked_ */\n\tdanger?: boolean;\n\n\t/** render the button without border and background color, mutually exclusive with _primary_ and _danger_ */\n\tnaked?: boolean;\n\n\t/** a title tooltip */\n\ttitle?: (TranslationDescriptor | null | undefined) | string;\n\n\t/** button | submit | reset */\n\ttype?: 'button' | 'submit' | 'reset';\n\n\t/** a click handler */\n\tonClick?: (...args: Array<any>) => any;\n\n\t/** a smaller button */\n\tsmall?: boolean;\n\n\t/** disable the button */\n\tdisabled?: boolean;\n\n\t/** @ignore */\n\tchildren?: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\ttabIndex?: number;\n};\n\n/**\n * Buttons are used to inform the user about a potential user interaction, which then on interaction causes an action.\n * To create a standardized look and feel, different props can be passed to the Button.\n */\nfunction Button({\n\tchildren,\n\ttitle,\n\ttype,\n\tdisabled,\n\tonClick,\n\tstyle,\n\ttabIndex,\n\tt,\n\tprimary,\n\tdanger,\n\tnaked,\n\tclassName,\n\tsmall,\n\t...rest\n}: Props & WithTranslation) {\n\tlet btnTitle = title;\n\n\tif (title && typeof title !== 'string') {\n\t\tbtnTitle = t(title.id, {\n\t\t\tdefaultValue: title.defaultValue\n\t\t});\n\t}\n\n\treturn (\n\t\t<button\n\t\t\tdata-testid={rest['data-testid']}\n\t\t\ttype={type || 'button'}\n\t\t\tclassName={cx('di button', className, {small, primary, danger, link: naked})}\n\t\t\ttitle={typeof btnTitle === 'string' ? btnTitle : undefined}\n\t\t\tdisabled={disabled}\n\t\t\tonClick={onClick}\n\t\t\tstyle={style}\n\t\t\ttabIndex={tabIndex}\n\t\t>\n\t\t\t{children}\n\t\t</button>\n\t);\n}\n\nexport default withTranslation()(Button) as ComponentType<Props>;\n","import * as React from 'react';\n\nexport type Props = {\n\t/** should contain &lt;Button /&gt; elements */\n\tchildren: React.ReactNode;\n\n\t/** show a horizontal row above the buttons */\n\tdividing?: boolean;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n};\n\n/**\n * ButtonRows align Buttons nicely for all relevant and/or related user actions such as saving or canceling changes.\n * To separate the ButtonRow from the content, the extra property `dividing` can be used.\n */\nconst ButtonRow = ({children, dividing, className, style}: Props) => (\n\t<div style={style} className={`di button-row ${dividing ? 'dividing' : ''} ${className || ''}`}>\n\t\t{children}\n\t</div>\n);\n\nButtonRow.defaultProps = {\n\tdividing: false\n};\n\nexport default ButtonRow;\n","import {useEffect, useRef} from 'react';\n\nconst isTouchEvent = (event: Event): event is TouchEvent => {\n\treturn !!(event as any).touches;\n};\n\nconst isInsideBoundingRect = (element: HTMLElement, event: MouseEvent | TouchEvent) => {\n\tconst rect = element.getBoundingClientRect();\n\n\tlet x, y;\n\tif (isTouchEvent(event)) {\n\t\tx = event.touches[0].pageX;\n\t\ty = event.touches[0].pageY;\n\t} else {\n\t\tx = event.pageX;\n\t\ty = event.pageY;\n\t}\n\n\treturn rect.left <= x && rect.right >= x && rect.top <= y && rect.bottom >= y;\n};\n\nconst useOutsideClick = (\n\telements: Array<HTMLElement | null>,\n\tcallback: (evt: MouseEvent | TouchEvent | undefined) => void\n) => {\n\tconst callbackRef = useRef(callback);\n\n\tuseEffect(() => {\n\t\tcallbackRef.current = callback;\n\t}, [callback]);\n\n\tuseEffect(() => {\n\t\tconst listener = (event: MouseEvent | TouchEvent) => {\n\t\t\tconst elementsNonNull = elements.filter((element) => element != null) as HTMLElement[];\n\t\t\tif (\n\t\t\t\telementsNonNull.every(\n\t\t\t\t\t(element) =>\n\t\t\t\t\t\telement !== event.target &&\n\t\t\t\t\t\t!element.contains(event.target as any) &&\n\t\t\t\t\t\t!isInsideBoundingRect(element, event)\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcallbackRef.current(event);\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener('mousedown', listener, true);\n\t\tdocument.addEventListener('touchstart', listener, true);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousedown', listener, true);\n\t\t\tdocument.removeEventListener('touchstart', listener, true);\n\t\t};\n\t}, [elements]);\n};\n\nexport default useOutsideClick;\n","import {useEffect, useRef, useState} from 'react';\nimport Draggable from 'react-draggable';\n\nimport {Props} from '../modal/Modal';\nimport useOutsideClick from '../../hooks/useOutsideClick';\n\nexport default function ModalWindow({className, width, header, content, footer, onOutsideClick}: Props) {\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst [rootElement, setRootElement] = useState<HTMLElement | null>(null);\n\n\tuseEffect(() => {\n\t\tsetRootElement(ref.current);\n\t}, []);\n\n\tuseOutsideClick([rootElement], () => {\n\t\tif (onOutsideClick) onOutsideClick();\n\t});\n\n\treturn (\n\t\t<Draggable handle=\".modal-header\" nodeRef={ref}>\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={`modal-window ${className || ''}`}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxWidth: width\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{header && <div className=\"modal-header\">{header}</div>}\n\t\t\t\t{content && <div className=\"modal-content\">{content}</div>}\n\t\t\t\t{footer && <div className=\"modal-footer\">{footer}</div>}\n\t\t\t</div>\n\t\t</Draggable>\n\t);\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport ModalWindow from '../modalComponents/ModalWindow';\n\nexport type Props = {\n\theader?: React.ReactNode;\n\tcontent?: React.ReactNode;\n\tfooter?: React.ReactNode;\n\n\t/** the CSS width setting, either a number or string */\n\twidth?: string | number;\n\tclassName?: string;\n\n\t/** callback function that is executed when the users click outside the modal */\n\tonOutsideClick?: (event?: Event) => void;\n\tonMouseDown?: (event: React.SyntheticEvent<HTMLElement>) => void;\n};\n\nexport default class Modal extends React.Component<\n\tProps,\n\t{\n\t\tclassName: string;\n\t}\n> {\n\tstatic defaultProps: {\n\t\twidth: string;\n\t} = {\n\t\twidth: '60%'\n\t};\n\tcontainer: HTMLDivElement | undefined;\n\tmodalRoot: HTMLElement | null | undefined;\n\ttimeoutId: ReturnType<typeof setTimeout> | undefined;\n\n\tconstructor(props: Props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tclassName: 'di modal'\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.container = document.createElement('div');\n\t\tthis.modalRoot = document.getElementById('modal-root');\n\n\t\tif (this.modalRoot) {\n\t\t\tthis.modalRoot.appendChild(this.container);\n\t\t} else if (document.body) {\n\t\t\tdocument.body.appendChild(this.container);\n\t\t}\n\n\t\tif (this.props.onOutsideClick) {\n\t\t\twindow.addEventListener('keydown', this.keyEventHandler);\n\t\t}\n\n\t\t// set the show class after 10ms for animation\n\t\tthis.timeoutId = setTimeout(\n\t\t\t() =>\n\t\t\t\t// eslint-disable-next-line react/no-did-mount-set-state -- deferred via setTimeout, not a synchronous mount update\n\t\t\t\tthis.setState({\n\t\t\t\t\tclassName: `di modal show ${this.props.className || ''}`\n\t\t\t\t}),\n\t\t\t10\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (this.container) {\n\t\t\tif (this.modalRoot) {\n\t\t\t\tthis.modalRoot.removeChild(this.container);\n\t\t\t} else if (document.body) {\n\t\t\t\tdocument.body.removeChild(this.container);\n\t\t\t}\n\t\t}\n\n\t\tif (this.props.onOutsideClick) {\n\t\t\twindow.removeEventListener('keydown', this.keyEventHandler);\n\t\t}\n\n\t\tif (this.timeoutId) {\n\t\t\tclearTimeout(this.timeoutId);\n\t\t}\n\t}\n\n\tkeyEventHandler: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n\t\tif (event.key === 'Escape' && this.props.onOutsideClick) {\n\t\t\tthis.props.onOutsideClick(event);\n\t\t}\n\t};\n\n\trender() {\n\t\tif (!this.container) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn ReactDOM.createPortal(\n\t\t\t<div className={this.state.className} onMouseDown={this.props.onMouseDown}>\n\t\t\t\t<ModalWindow {...this.props} />\n\t\t\t</div>,\n\t\t\tthis.container\n\t\t);\n\t}\n}\n","import React from 'react';\n\nexport type Props = Record<string, never>;\n\nexport default class ModalContainer extends React.PureComponent<Props> {\n\trender() {\n\t\treturn <div id=\"modal-root\" />;\n\t}\n}\n","import React from 'react';\n\nexport type Props = {\n\t/** the size of the Spinner in px */\n\tsize?: number;\n\n\t/** @ignore */\n\tcenter?: boolean;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\n/**\n * Spinners usually show a loading indication.\n */\nexport default class Spinner extends React.Component<Props> {\n\tstatic defaultProps = {\n\t\tsize: 56,\n\t\tcenter: false\n\t};\n\n\trender() {\n\t\tconst {size = 56, center, ...dataAttrs} = this.props;\n\t\tlet style: React.CSSProperties = {\n\t\t\twidth: size,\n\t\t\theight: size\n\t\t};\n\n\t\tif (center) {\n\t\t\tstyle = {\n\t\t\t\t...style,\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttop: '50%',\n\t\t\t\tleft: '50%',\n\t\t\t\tmarginTop: -size / 2,\n\t\t\t\tmarginLeft: -size / 2\n\t\t\t};\n\t\t}\n\n\t\treturn <div className=\"di spinner\" style={style} {...dataAttrs} />;\n\t}\n}\n","import React from 'react';\n\nimport Spinner from './Spinner';\n\nexport type Props = {\n\t/** controls the display of the Spinner */\n\tshow: boolean;\n\n\t/** the size of the Spinner in px */\n\tsize?: number;\n\n\t/** content to be rendered once the loading is done */\n\tchildren?: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\n/**\n * SpinnerContainer wraps the entire content and displays a loading indicator until the loading is done.\n */\nexport default class SpinnerContainer extends React.Component<Props> {\n\tstatic defaultProps: {\n\t\tsize: number;\n\t} = {\n\t\tsize: 56\n\t};\n\n\trender() {\n\t\tconst {show, size, children, className} = this.props;\n\t\tconst classNames = `di spinner-wrapper ${className ? className : ''}`;\n\t\treturn (\n\t\t\t<div className={classNames}>\n\t\t\t\t<div\n\t\t\t\t\tclassName={`di spinner-container ${show ? 'visible' : ''}`}\n\t\t\t\t\tdata-testid={this.props['data-testid']}\n\t\t\t\t>\n\t\t\t\t\t<Spinner size={size} center />\n\t\t\t\t</div>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** input type selector */\n\ttype?: 'checkbox' | 'radio' | 'toggle';\n\n\t/** Flag to preselect the status of the checkbox */\n\tvalue: boolean;\n\n\t/** Function, executed when toggling the checkbox */\n\tonChange: (nextStatus: boolean) => void;\n\n\t/** Optional input element tooltip */\n\ttitle?: TranslationDescriptor;\n\n\t/** Optional label for checkbox and radio button*/\n\tlabel?: TranslationDescriptor;\n\n\t/** visually indicate that the checkbox is disabled and disable onChange handler */\n\tdisabled?: boolean;\n\n\t/** Optional flag for toggle type: Render a small Toggle */\n\ttoggleSmall?: boolean;\n\n\t/** Optional flag for toggle type: Sets the slider color when the Toggle is truthy */\n\ttoggleColor?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\t'wrapper-data-testid'?: string;\n\n\t/** @ignore */\n\t'innerdiv-data-testid'?: string;\n};\n\nconst getWrapperClassName = (type: string, small: boolean) => {\n\tswitch (type) {\n\t\tcase 'checkbox':\n\t\tcase 'radio':\n\t\t\treturn 'di checkbox';\n\n\t\tcase 'toggle':\n\t\t\treturn small ? 'di toggle toggle-small' : 'di toggle';\n\n\t\tdefault:\n\t\t\tthrow Error(`type not support: ${type}`);\n\t}\n};\n\nconst getCheckboxClassName = (type: string, small: boolean) => {\n\tswitch (type) {\n\t\tcase 'checkbox':\n\t\t\treturn 'box';\n\n\t\tcase 'radio':\n\t\t\treturn 'radio';\n\n\t\tcase 'toggle':\n\t\t\treturn small ? 'switch switch-small' : 'switch';\n\n\t\tdefault:\n\t\t\tthrow Error(`type not support: ${type}`);\n\t}\n};\n\n/**\n * Checkbox for enabling user interaction can have one of multiple types which are defined via the `type` prop.\n */\nconst Checkbox = ({\n\ttype = 'checkbox',\n\tvalue,\n\tonChange,\n\ttitle,\n\tlabel,\n\tdisabled = false,\n\ttoggleSmall = false,\n\ttoggleColor = '#259b23',\n\tt,\n\t...other\n}: Props & WithTranslation) => {\n\tconst style =\n\t\ttype === 'toggle'\n\t\t\t? {\n\t\t\t\t\tbackgroundColor: value ? toggleColor : 'gray'\n\t\t\t\t}\n\t\t\t: {};\n\tconst tooltip = title\n\t\t? t(title.id, {\n\t\t\t\tdefaultValue: title.defaultValue\n\t\t\t})\n\t\t: undefined;\n\tconst labelText = label\n\t\t? t(label.id, {\n\t\t\t\tdefaultValue: label.defaultValue\n\t\t\t})\n\t\t: null;\n\treturn (\n\t\t<label\n\t\t\ttitle={tooltip}\n\t\t\tclassName={getWrapperClassName(type, toggleSmall)}\n\t\t\tdata-testid={other['wrapper-data-testid']}\n\t\t>\n\t\t\t<input\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={value}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonChange={() => onChange(!value)}\n\t\t\t\tdata-testid={other['data-testid']}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tclassName={getCheckboxClassName(type, toggleSmall)}\n\t\t\t\tstyle={style}\n\t\t\t\tdata-testid={other['innerdiv-data-testid']}\n\t\t\t/>\n\t\t\t{label && <span className=\"textlabel\">{labelText}</span>}\n\t\t</label>\n\t);\n};\n\nexport default withTranslation()(Checkbox) as React.ComponentType<Props>;\n","import * as React from 'react';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport function isTranslationDescriptor(\n\targ: TranslationDescriptor | string | React.ReactElement\n): arg is TranslationDescriptor {\n\tconst result =\n\t\ttypeof arg === 'object' && typeof (arg as any).id === 'string' && typeof (arg as any).defaultValue === 'string';\n\n\tif (result) {\n\t\tconsole.warn(\n\t\t\t'Please use strings instead of TranslationDescriptors to initialize the Confirm modal, because TranslationDescriptors are deprecated'\n\t\t);\n\t}\n\n\treturn result;\n}\n","import * as React from 'react';\nimport {Trans} from 'react-i18next';\n\nimport Modal from '../modal/Modal';\nimport Button from '../button/Button';\nimport {TranslationDescriptor} from '../../types/i18n';\nimport {isTranslationDescriptor} from './utils';\n\nexport type Props = {\n\ttitle: string | TranslationDescriptor;\n\tmessage: string | React.ReactElement | TranslationDescriptor;\n\n\t/** @ignore */\n\tonAccept: (...args: Array<any>) => any;\n\n\t/** @ignore */\n\tonDecline: (...args: Array<any>) => any;\n\tacceptButtonLabel?: string | TranslationDescriptor;\n\tdeclineButtonLabel?: string | TranslationDescriptor;\n\tacceptButtonStyle?: 'primary' | 'danger';\n};\n\nfunction transformTextToElement(\n\tmessage: TranslationDescriptor | string | React.ReactElement\n): React.ReactElement | string {\n\tif (isTranslationDescriptor(message)) {\n\t\treturn <Trans i18nKey={message.id}>{message.defaultValue}</Trans>;\n\t}\n\treturn message;\n}\n\n/**\n * Confirm enables the possibility to open up a dialog within a modal, requiring additional user actions.\n * This component should not be used directly, instead use `@withConfirm` to inject a promise based confirm method\n */\nexport default function Confirm({\n\ttitle,\n\tmessage,\n\tonAccept,\n\tonDecline,\n\tacceptButtonLabel,\n\tdeclineButtonLabel,\n\tacceptButtonStyle = 'primary'\n}: Props) {\n\treturn (\n\t\t<Modal\n\t\t\theader={transformTextToElement(title)}\n\t\t\tcontent={transformTextToElement(message)}\n\t\t\tfooter={\n\t\t\t\t<div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tprimary={acceptButtonStyle === 'primary'}\n\t\t\t\t\t\tdanger={acceptButtonStyle === 'danger'}\n\t\t\t\t\t\tonClick={onAccept}\n\t\t\t\t\t>\n\t\t\t\t\t\t{acceptButtonLabel ? (\n\t\t\t\t\t\t\ttransformTextToElement(acceptButtonLabel)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Trans i18nKey=\"form.accept\">Accept</Trans>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button onClick={onDecline}>\n\t\t\t\t\t\t{declineButtonLabel ? (\n\t\t\t\t\t\t\ttransformTextToElement(declineButtonLabel)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Trans i18nKey=\"form.decline\">Decline</Trans>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\twidth={500}\n\t\t/>\n\t);\n}\n","import React, {createContext, useState} from 'react';\n\nimport Confirm, {Props as ConfirmProps} from './Confirm';\n\ntype ConfirmOptions = {\n\ttitle: string;\n\tmessage: string | React.ReactElement;\n\tacceptButtonLabel?: string;\n\tdeclineButtonLabel?: string;\n\tacceptButtonStyle?: 'primary' | 'danger';\n};\n\nexport const ConfirmContext = createContext<{\n\tconfirm: (options: ConfirmOptions) => Promise<boolean>;\n}>({\n\tconfirm: () => Promise.reject(new Error('ConfirmProvider is missing!'))\n});\n\nfunction ConfirmProvider({children}: React.PropsWithChildren<Record<string, unknown>>) {\n\tconst [visible, setVisible] = useState<boolean>(false);\n\tconst [confirmProps, setConfirmProps] = useState<ConfirmProps>({\n\t\ttitle: '',\n\t\tmessage: '',\n\t\tonAccept: () => {},\n\t\tonDecline: () => {}\n\t});\n\n\tasync function confirm(options: ConfirmOptions) {\n\t\treturn new Promise<boolean>((resolve) => {\n\t\t\tsetVisible(true);\n\t\t\tsetConfirmProps({\n\t\t\t\t...options,\n\t\t\t\tonAccept: () => {\n\t\t\t\t\tsetVisible(false);\n\t\t\t\t\tresolve(true);\n\t\t\t\t},\n\t\t\t\tonDecline: () => {\n\t\t\t\t\tsetVisible(false);\n\t\t\t\t\tresolve(false);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\treturn (\n\t\t<ConfirmContext.Provider value={{confirm}}>\n\t\t\t{children}\n\t\t\t{visible && <Confirm {...confirmProps} />}\n\t\t</ConfirmContext.Provider>\n\t);\n}\n\nexport default ConfirmProvider;\n","import {useContext} from 'react';\n\nimport {ConfirmContext} from './ConfirmProvider';\n\nexport default function useConfirm() {\n\tconst context = useContext(ConfirmContext);\n\tif (!context) {\n\t\tthrow new Error('ConfirmProvider is missing');\n\t}\n\tconst {confirm} = context;\n\treturn confirm;\n}\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\nimport useConfirm from './useConfirm';\nimport ConfirmProvider from './ConfirmProvider';\nimport {isTranslationDescriptor} from './utils';\n\nexport type ConfirmProps = {\n\tconfirm: (\n\t\ttitle: string | TranslationDescriptor,\n\t\tmessage: string | TranslationDescriptor | React.ReactElement,\n\t\tacceptButtonLabel?: string | TranslationDescriptor,\n\t\tdeclineButtonLabel?: string | TranslationDescriptor,\n\t\tresolveWithConfirmation?: boolean,\n\t\tacceptButtonStyle?: 'primary' | 'danger'\n\t) => Promise<void | boolean>;\n};\n\nexport default function withConfirm<P extends object>(WrappedComponent: React.ComponentType<P & ConfirmProps>) {\n\tfunction WithConfirm(props: P) {\n\t\tconst confirm = useConfirm();\n\t\tconst {t} = useTranslation();\n\n\t\tfunction trans(arg: TranslationDescriptor | string) {\n\t\t\tif (isTranslationDescriptor(arg)) {\n\t\t\t\treturn t(arg.id, {defaultValue: arg.defaultValue});\n\t\t\t}\n\t\t\treturn arg;\n\t\t}\n\n\t\tasync function deprecatedConfirm(\n\t\t\ttitle: string | TranslationDescriptor,\n\t\t\tmessage: string | TranslationDescriptor | React.ReactElement,\n\t\t\tacceptButtonLabel?: string | TranslationDescriptor,\n\t\t\tdeclineButtonLabel?: string | TranslationDescriptor,\n\t\t\tresolveWithConfirmation?: boolean,\n\t\t\tacceptButtonStyle?: 'primary' | 'danger'\n\t\t): Promise<boolean | void> {\n\t\t\tconst accepted = await confirm({\n\t\t\t\ttitle: trans(title),\n\t\t\t\tmessage: isTranslationDescriptor(message) ? trans(message) : message,\n\t\t\t\tacceptButtonLabel: acceptButtonLabel ? trans(acceptButtonLabel) : undefined,\n\t\t\t\tdeclineButtonLabel: declineButtonLabel ? trans(declineButtonLabel) : undefined,\n\t\t\t\tacceptButtonStyle\n\t\t\t});\n\n\t\t\tif (resolveWithConfirmation) {\n\t\t\t\treturn accepted;\n\t\t\t} else if (!accepted) {\n\t\t\t\treturn new Promise(() => {});\n\t\t\t}\n\t\t}\n\n\t\treturn <WrappedComponent {...props} confirm={deprecatedConfirm} />;\n\t}\n\n\treturn function WithConfirmWrapper(props: P) {\n\t\treturn (\n\t\t\t<ConfirmProvider>\n\t\t\t\t<WithConfirm {...props} />\n\t\t\t</ConfirmProvider>\n\t\t);\n\t};\n}\n","export default \"data:image/svg+xml,%3csvg%20id='icon-add_24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpolygon%20id='plus'%20points='20%2010%2014%2010%2014%204%2010%204%2010%2010%204%2010%204%2014%2010%2014%2010%2020%2014%2020%2014%2014%2020%2014%2020%2010'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-cross_24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpolygon%20id='icon-cross_24'%20points='20%206.28%2017.87%204%2012%209.78%206.13%204%204%206.28%209.78%2011.97%204%2017.66%206.13%2019.93%2012%2014.15%2017.87%2019.93%2020%2017.66%2014.22%2011.97%2020%206.28'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-edit-24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='stift'%3e%3cpath%20d='M7.35,12.65a.5.5,0,0,0,0,.7l3.3,3.3a.5.5,0,0,0,.7,0l8.3-8.3A1.4,1.4,0,0,0,20,7.5v-1a1.4,1.4,0,0,0-.35-.85l-1.3-1.3A1.4,1.4,0,0,0,17.5,4h-1a1.4,1.4,0,0,0-.85.35Z'/%3e%3c/g%3e%3cpath%20d='M5.9,14.49c.06-.27.26-.33.45-.14l3.3,3.3c.19.19.13.39-.14.45l-4,.8a.3.3,0,0,1-.39-.39Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-gear-24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='icon-gear-24_sga-2'%20data-name='icon-gear-24_sga'%3e%3cpath%20d='M22.82,14.06A1.25,1.25,0,0,0,24,13,7.66,7.66,0,0,0,24,12,7.66,7.66,0,0,0,24,11a1.25,1.25,0,0,0-1.13-1l-1.09,0A1.49,1.49,0,0,1,20.44,9c-.15-.47-.44-2-.07-2.37l.74-.81a1.16,1.16,0,0,0,0-1.5L19.7,2.87a1.16,1.16,0,0,0-1.5,0l-.81.74a1.5,1.5,0,0,1-1.54.27c-.44-.23-1.72-1.08-1.74-1.63l0-1.09A1.25,1.25,0,0,0,13,.05a7.66,7.66,0,0,0-1,0,7.66,7.66,0,0,0-1,.05,1.25,1.25,0,0,0-1,1.13l0,1.09A1.52,1.52,0,0,1,9,3.56c-.47.15-2,.44-2.37.07L5.8,2.89a1.16,1.16,0,0,0-1.5,0L2.86,4.3a1.18,1.18,0,0,0,0,1.5l.74.81A1.5,1.5,0,0,1,3.9,8.15c-.23.44-1.08,1.72-1.63,1.74l-1.09,0A1.25,1.25,0,0,0,.05,11a7.66,7.66,0,0,0,0,1,7.66,7.66,0,0,0,.05,1,1.25,1.25,0,0,0,1.13,1l1.09,0A1.47,1.47,0,0,1,3.55,15c.16.48.45,2,.08,2.37l-.74.81a1.16,1.16,0,0,0,0,1.5L4.3,21.13a1.16,1.16,0,0,0,1.5,0l.81-.74a1.5,1.5,0,0,1,1.54-.27c.44.23,1.72,1.08,1.75,1.63l0,1.09A1.25,1.25,0,0,0,11,24,7.66,7.66,0,0,0,12,24,7.66,7.66,0,0,0,13,24a1.25,1.25,0,0,0,1-1.13l0-1.09A1.49,1.49,0,0,1,15,20.44c.47-.15,2-.44,2.37-.07l.81.74a1.16,1.16,0,0,0,1.5,0l1.43-1.43a1.16,1.16,0,0,0,0-1.5l-.74-.81a1.5,1.5,0,0,1-.27-1.54c.23-.44,1.08-1.72,1.63-1.74ZM12,15.5A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%3e%3cpath%20d='M22.1,4.91a3,3,0,0,0-3-3H6.44a2.4,2.4,0,0,1,1.34-.4h12.6A2.12,2.12,0,0,1,22.5,3.62V17.26a1.42,1.42,0,0,1-.4,1Z'/%3e%3cpath%20d='M20.38,1H7.78A3,3,0,0,0,5.26,2.4H19.09A2.51,2.51,0,0,1,21.6,4.91V19.12A1.94,1.94,0,0,0,23,17.26V3.62A2.62,2.62,0,0,0,20.38,1Z'/%3e%3c/g%3e%3cg%3e%3cpath%20d='M4,21.5A1.5,1.5,0,0,1,2.5,20V5.8A1.5,1.5,0,0,1,4,4.3H18.2a1.5,1.5,0,0,1,1.5,1.5V20a1.5,1.5,0,0,1-1.5,1.5ZM9.5,18a.5.5,0,0,0,.5.5h2a.5.5,0,0,0,.5-.5V14.5H16a.5.5,0,0,0,.5-.5V12a.5.5,0,0,0-.5-.5H12.5V8a.5.5,0,0,0-.5-.5H10a.5.5,0,0,0-.5.5v3.5H6a.5.5,0,0,0-.5.5v2a.5.5,0,0,0,.5.5H9.5Z'/%3e%3cpath%20d='M18.2,4.8a1,1,0,0,1,1,1V20a1,1,0,0,1-1,1H4a1,1,0,0,1-1-1V5.8a1,1,0,0,1,1-1H18.2M9,11H6a1,1,0,0,0-1,1v2a1,1,0,0,0,1,1H9v3a1,1,0,0,0,1,1h2a1,1,0,0,0,1-1V15h3a1,1,0,0,0,1-1V12a1,1,0,0,0-1-1H13V8a1,1,0,0,0-1-1H10A1,1,0,0,0,9,8v3m9.2-7.2H4a2,2,0,0,0-2,2V20a2,2,0,0,0,2,2H18.2a2,2,0,0,0,2-2V5.8a2,2,0,0,0-2-2ZM6,14V12h4V8h2v4h4v2H12v4H10V14Z'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3cpolygon%20points='7.92%2012%202.84%207%2013%207%207.92%2012'/%3e%3crect%20x='5'%20y='2'%20width='6'%20height='5'/%3e%3crect%20x='2'%20y='14'%20width='12'%20height='1'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3cdefs%3e%3cstyle%3e%20.cls-1%20{%20fill:%20%23fff;%20}%20%3c/style%3e%3c/defs%3e%3cg%3e%3ccircle%20class='cls-1'%20cx='5.5'%20cy='5.5'%20r='4.5'/%3e%3cpath%20d='M5.5,2A3.5,3.5,0,1,1,2,5.5,3.5,3.5,0,0,1,5.5,2m0-1A4.5,4.5,0,1,0,10,5.5,4.49,4.49,0,0,0,5.5,1Z'/%3e%3c/g%3e%3crect%20x='6.79'%20y='10.04'%20width='7.74'%20height='2.16'%20transform='translate(10.98%20-4.28)%20rotate(45)'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20data-name='icon_key'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2027.02%2027'%3e%3cpath%20d='M35.07,16.5a8.52,8.52,0,0,0-7.69,12L17.2,38.8a2.46,2.46,0,0,0,0,3.46,2.41,2.41,0,0,0,3.42,0l1.69-1.7,2.91,2.94L31,37.63l-2.92-3,2.44-2.46a8.31,8.31,0,0,0,4.51,1.33,8.53,8.53,0,0,0,0-17Zm0,3.91A4.62,4.62,0,1,1,30.5,25,4.6,4.6,0,0,1,35.07,20.41Z'%20transform='translate(-16.49%20-16.5)'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='Pfeilende'%3e%3cpath%20d='M24,10H15l9-8.93Z'/%3e%3c/g%3e%3cpath%20d='M18.45,18.78A9.33,9.33,0,0,1,2.62,14.86,9.8,9.8,0,0,1,8.89,2.69,9.42,9.42,0,0,1,20.72,9.14H23A11.72,11.72,0,0,0,11.68,0,11.74,11.74,0,0,0,.34,9.14,12,12,0,0,0,8.89,23.65a11.43,11.43,0,0,0,11.16-3.31Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20data-name='icon_fullscreen_sga'%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%3e%3cpolygon%20id='ecke'%20points='2%2014%202%2010%200%2010%200%2016%206%2016%206%2014%202%2014'/%3e%3cpolygon%20id='ecke-2'%20data-name='ecke'%20points='2%202%206%202%206%200%200%200%200%206%202%206%202%202'/%3e%3cpolygon%20id='ecke-3'%20data-name='ecke'%20points='14%2014%2010%2014%2010%2016%2016%2016%2016%2010%2014%2010%2014%2014'/%3e%3cpolygon%20id='ecke-4'%20data-name='ecke'%20points='10%200%2010%202%2014%202%2014%206%2016%206%2016%200%2010%200'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Icon_help'%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%3e%3cpath%20id='icon_help-2'%20data-name='icon_help'%20d='M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm1,16H11V15h2Zm1.7-6.26a4.85,4.85,0,0,1-.49.81l-1,1.37a1.36,1.36,0,0,0-.18.34,1,1,0,0,0-.07.38L13,14H11l.1-.49a2,2,0,0,1,.13-.77,3.18,3.18,0,0,1,.4-.69l1-1.33a3.21,3.21,0,0,0,.29-.46,1.19,1.19,0,0,0,.11-.47,1.17,1.17,0,0,0-.3-.82,1.07,1.07,0,0,0-.83-.33A1,1,0,0,0,11.1,9a1.25,1.25,0,0,0-.28.83H9a2.94,2.94,0,0,1,.23-1.17,2.45,2.45,0,0,1,.63-.88,2.9,2.9,0,0,1,.93-.55A3.13,3.13,0,0,1,11.94,7a3.31,3.31,0,0,1,1.13.19,2.82,2.82,0,0,1,.94.54,2.62,2.62,0,0,1,.65.88A3,3,0,0,1,14.9,9.8,2.16,2.16,0,0,1,14.7,10.74Z'%20style='opacity:%200.2'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='icon_star_16'%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%3e%3cpath%20id='star'%20d='M8,0l2.45,4.97,5.55,.76-4.04,3.83,.99,5.44-4.94-2.61-4.94,2.61,.99-5.44L0,5.73l5.55-.76L8,0Z'/%3e%3c/svg%3e\"","import iconAdd from '../../assets/svg/icon_add.svg';\nimport iconDel from '../../assets/svg/icon_cross.svg';\nimport iconEdit from '../../assets/svg/icon_edit.svg';\nimport iconConfig from '../../assets/svg/icon_gear.svg';\nimport iconDuplicate from '../../assets/svg/icon_duplicate.svg';\nimport iconDownload from '../../assets/svg/icon_download.svg';\nimport iconSearch from '../../assets/svg/icon_lupe.svg';\nimport iconIconKey from '../../assets/svg/icon_key.svg';\nimport iconSync from '../../assets/svg/icon_reload.svg';\nimport iconFullscreen from '../../assets/svg/icon_fullscreen.svg';\nimport iconDocumentation from '../../assets/svg/icon_help_light.svg';\nimport iconStar from '../../assets/svg/icon_star.svg';\n\nexport type Props = {\n\tadd?: boolean;\n\tdel?: boolean;\n\tedit?: boolean;\n\tconfig?: boolean;\n\tduplicate?: boolean;\n\tsearch?: boolean;\n\tdownload?: boolean;\n\tsync?: boolean;\n\tfullscreen?: boolean;\n\tstar?: boolean;\n\n\t/** key is reserved in React */\n\ticonKey?: boolean;\n\tdocumentation?: boolean;\n\n\t/** renders a larger version of the icon (24x24) */\n\tlarge?: boolean;\n\n\t/** inverts the colors of the icon for display on dark background */\n\tinverted?: boolean;\n\n\t/** @ignore */\n\tclassName?: string;\n};\n\nfunction getSrc(props: Props) {\n\tconst {add, del, edit, config, duplicate, search, download, sync, fullscreen, iconKey, documentation, star} = props;\n\n\tif (add) {\n\t\treturn iconAdd;\n\t} else if (del) {\n\t\treturn iconDel;\n\t} else if (edit) {\n\t\treturn iconEdit;\n\t} else if (config) {\n\t\treturn iconConfig;\n\t} else if (duplicate) {\n\t\treturn iconDuplicate;\n\t} else if (search) {\n\t\treturn iconSearch;\n\t} else if (download) {\n\t\treturn iconDownload;\n\t} else if (sync) {\n\t\treturn iconSync;\n\t} else if (fullscreen) {\n\t\treturn iconFullscreen;\n\t} else if (iconKey) {\n\t\treturn iconIconKey;\n\t} else if (documentation) {\n\t\treturn iconDocumentation;\n\t} else if (star) {\n\t\treturn iconStar;\n\t} else {\n\t\tthrow Error('getSrc: no icon type specified');\n\t}\n}\n\nfunction getAlt(props: Props) {\n\tconst {add, del, edit, config, duplicate, search, download, sync, fullscreen, iconKey, documentation, star} = props;\n\n\tif (add) {\n\t\treturn 'icon add';\n\t} else if (del) {\n\t\treturn 'icon delete';\n\t} else if (edit) {\n\t\treturn 'icon edit';\n\t} else if (config) {\n\t\treturn 'icon config';\n\t} else if (duplicate) {\n\t\treturn 'icon duplicate';\n\t} else if (search) {\n\t\treturn 'icon search';\n\t} else if (download) {\n\t\treturn 'icon download';\n\t} else if (sync) {\n\t\treturn 'icon sync';\n\t} else if (fullscreen) {\n\t\treturn 'icon fullscreen';\n\t} else if (iconKey) {\n\t\treturn 'icon iconKey';\n\t} else if (documentation) {\n\t\treturn 'icon documentation';\n\t} else if (star) {\n\t\treturn 'icon star';\n\t} else {\n\t\tthrow Error('getAlt: no icon type specified');\n\t}\n}\n\nexport default function Icon(props: Props) {\n\tlet style;\n\tif (props.large) {\n\t\tstyle = {width: 24, height: 24};\n\t} else {\n\t\tstyle = {width: 16, height: 16};\n\t}\n\tif (props.inverted) {\n\t\tstyle = {...style, filter: 'invert(1)'};\n\t}\n\n\treturn <img src={getSrc(props)} className={`di icon ${props.className || ''}`} alt={getAlt(props)} style={style} />;\n}\n","import React, {MouseEventHandler, PropsWithChildren, MouseEvent} from 'react';\nimport {Trans} from 'react-i18next';\nimport cx from 'classnames';\n\nimport Icon from '../icon/Icon';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport interface Props extends React.HTMLAttributes<HTMLSpanElement> {\n\t/** the label text, either a string or TranslationDescriptor */\n\ttext?: string | TranslationDescriptor;\n\n\t/** a smaller label */\n\tsmall?: boolean;\n\n\t/** a larger label */\n\tlarge?: boolean;\n\n\tonClick?: MouseEventHandler<HTMLSpanElement>;\n\n\t/** adds a delete button that triggers this callback function */\n\tonDelete?: (...args: Array<any>) => any;\n\n\tclassName?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\t'delete-button-data-testid'?: string;\n}\n\n/**\n * Label enables an easy way for marking or tagging elements.\n */\nexport default function Label({\n\ttext,\n\tsmall = false,\n\tlarge = false,\n\tonDelete,\n\tclassName,\n\tonClick,\n\tchildren,\n\t...dataTestIds\n}: PropsWithChildren<Props>) {\n\tfunction handleDelete(event: MouseEvent<HTMLSpanElement>) {\n\t\tevent.stopPropagation();\n\t\tif (onDelete) {\n\t\t\tonDelete();\n\t\t}\n\t}\n\n\treturn (\n\t\t<span\n\t\t\tonClick={onClick}\n\t\t\tclassName={cx('di label', className, {large, small, removable: onDelete, clickable: !!onClick})}\n\t\t\tdata-testid={dataTestIds['data-testid']}\n\t\t>\n\t\t\t{typeof text === 'string' ? text : text && <Trans i18nKey={text.id}>{text.defaultValue}</Trans>}\n\t\t\t<>{children}</>\n\t\t\t{onDelete && (\n\t\t\t\t<span data-testid={dataTestIds['delete-button-data-testid']} className=\"remove\" onClick={handleDelete}>\n\t\t\t\t\t<Icon del inverted />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</span>\n\t);\n}\n","import {\n\tarrow,\n\tautoUpdate,\n\tflip,\n\tFloatingPortal,\n\toffset,\n\tsafePolygon,\n\tshift,\n\tsize,\n\tuseClick,\n\tuseDismiss,\n\tuseFloating,\n\tuseFocus,\n\tuseHover,\n\tuseInteractions\n} from '@floating-ui/react';\nimport cx from 'classnames';\nimport React, {useEffect, useRef} from 'react';\n\nexport type Placement =\n\t| 'top'\n\t| 'bottom'\n\t| 'left'\n\t| 'right'\n\t| 'top-start'\n\t| 'top-end'\n\t| 'bottom-start'\n\t| 'bottom-end'\n\t| 'right-start'\n\t| 'right-end'\n\t| 'left-start'\n\t| 'left-end';\n\nexport type Props = {\n\t/** Element to toggle the Popup */\n\thandler: React.ReactNode;\n\n\t/** Content to be displayed */\n\tchildren: React.ReactNode;\n\n\t/** If true, displays the Popup's content */\n\topen: boolean;\n\n\t/** Function, executed when the Popup gets closed */\n\tonOpenChange: (open: boolean) => void;\n\n\t/** (Optional) if set, sets the direction in which the content should be displayed */\n\tplacement?: Placement;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** (Optional) If set to true, the content is hidden via styles, but still exists in the DOM tree */\n\tpreventDestroyContentOnHide?: boolean;\n\n\t/** (Optional) Class name of the handler wrapping element */\n\thandlerWrapperClassName?: string;\n\n\t/** (Optional) Interaction mode to open the popup */\n\tmode?: Array<'click' | 'hover' | 'focus'>;\n\n\t/** (Optional) Disables the Popup */\n\tdisabled?: boolean;\n};\n\n// Margin from the edge of the viewport\nconst MARGIN = 16;\n\n/**\n * Popup displays content within a small modal.\n * Its usage is highly flexible and used in several other components.\n */\nexport default function Popup({\n\tplacement = 'bottom',\n\tmode = ['click'],\n\tdisabled,\n\thandler,\n\thandlerWrapperClassName,\n\tpreventDestroyContentOnHide,\n\topen,\n\tonOpenChange,\n\tclassName,\n\tchildren\n}: Props) {\n\tconst arrowRef = useRef<HTMLDivElement>(null);\n\n\tconst {\n\t\telements,\n\t\tupdate,\n\t\trefs,\n\t\tfloatingStyles,\n\t\tcontext,\n\t\tmiddlewareData,\n\t\tplacement: computedPlacement\n\t} = useFloating({\n\t\tplacement,\n\t\topen,\n\t\tonOpenChange,\n\t\twhileElementsMounted: !preventDestroyContentOnHide ? autoUpdate : undefined,\n\t\tmiddleware: [\n\t\t\toffset({\n\t\t\t\tmainAxis: 12\n\t\t\t}),\n\t\t\tflip({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true\n\t\t\t}),\n\t\t\tshift({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true\n\t\t\t}),\n\t\t\tsize({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true,\n\t\t\t\tapply({availableHeight, availableWidth, elements}) {\n\t\t\t\t\tconst width = `${Math.max(0, availableWidth - MARGIN)}px`;\n\t\t\t\t\tconst height = `${Math.max(0, availableHeight - MARGIN)}px`;\n\t\t\t\t\telements.floating.style.maxWidth = width;\n\t\t\t\t\telements.floating.style.maxHeight = height;\n\t\t\t\t}\n\t\t\t}),\n\t\t\tarrow({\n\t\t\t\telement: arrowRef\n\t\t\t})\n\t\t]\n\t});\n\n\tuseEffect(() => {\n\t\tif (preventDestroyContentOnHide && open && elements.reference && elements.floating) {\n\t\t\tconst cleanup = autoUpdate(elements.reference, elements.floating, update);\n\t\t\treturn cleanup;\n\t\t}\n\t}, [elements.floating, elements.reference, open, update, preventDestroyContentOnHide]);\n\n\tconst click = useClick(context, {\n\t\tenabled: !disabled && mode.includes('click'),\n\t\tkeyboardHandlers: false // Prevent space key from being blocked in input fields (floating-ui issue #1812)\n\t});\n\tconst hover = useHover(context, {\n\t\tenabled: !disabled && mode.includes('hover'),\n\t\thandleClose: safePolygon()\n\t});\n\tconst focus = useFocus(context, {enabled: !disabled && mode.includes('focus')});\n\tconst dismiss = useDismiss(context);\n\tconst {getReferenceProps, getFloatingProps} = useInteractions([click, hover, focus, dismiss]);\n\n\treturn (\n\t\t<>\n\t\t\t<span\n\t\t\t\tstyle={{display: 'inline-block'}}\n\t\t\t\tclassName={cx('popup-handler-wrapper', handlerWrapperClassName)}\n\t\t\t\tref={refs.setReference}\n\t\t\t\t{...getReferenceProps()}\n\t\t\t>\n\t\t\t\t{handler}\n\t\t\t</span>\n\t\t\t{(open || preventDestroyContentOnHide) && (\n\t\t\t\t<FloatingPortal>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cx('di popup-wrapper', {hidden: preventDestroyContentOnHide && !open})}\n\t\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\t\tstyle={{...floatingStyles, zIndex: 100000}}\n\t\t\t\t\t\t{...getFloatingProps()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className={cx('di popup', computedPlacement, className)}>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={cx('popup-arrow', computedPlacement)}\n\t\t\t\t\t\t\t\tref={arrowRef}\n\t\t\t\t\t\t\t\tstyle={{left: middlewareData.arrow?.x, top: middlewareData.arrow?.y}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<div className=\"popup-content\">{children}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</FloatingPortal>\n\t\t\t)}\n\t\t</>\n\t);\n}\n","import React, {useState} from 'react';\n\nimport Popup, {Placement} from '../popup/Popup';\n\nexport type Props = {\n\t/** the Bubble content */\n\tcontent: React.ReactNode;\n\n\t/** inverts the colors */\n\tinverted?: boolean;\n\n\t/** @ignore */\n\tchildren: React.ReactNode;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** hides the bubble */\n\tdisabled?: boolean;\n\n\t/** changed the direction */\n\tdirection?: Placement;\n};\n\n/**\n * Bubbles are best used to provide some additional information like short instructions or help texts, which are then going to be displayed on Mouse-Over.\n */\nexport default function Bubble({content, inverted, children, disabled, style, direction, className}: Props) {\n\tconst [open, setOpen] = useState(false);\n\treturn (\n\t\t<Popup\n\t\t\topen={open}\n\t\t\tonOpenChange={setOpen}\n\t\t\thandler={children}\n\t\t\tdisabled={disabled}\n\t\t\tmode={['hover']}\n\t\t\tplacement={direction ? direction : 'top'}\n\t\t\tclassName={`bubble ${inverted ? 'inverted' : ''} ${className ? className : ''}`}\n\t\t>\n\t\t\t<span className={`bubble-content`} style={style}>\n\t\t\t\t{content}\n\t\t\t</span>\n\t\t</Popup>\n\t);\n}\n","import React, {useState} from 'react';\n\nimport Popup, {Placement} from '../popup/Popup';\n\nexport type Props = {\n\t/** Content of the Tooltip */\n\tcontent: React.ReactNode;\n\n\t/** Enabler of the Tooltip */\n\tchildren: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** (Optional) if set, disables the &lt;Tooltip/&gt; from opening */\n\tdisabled?: boolean;\n\n\t/** (Optional) if set, opens &lt;Tooltip/&gt; in given direction, defaults to 'right' */\n\tdirection?: Placement;\n};\n\n/**\n * Tooltip is best used to display some short additional information or description\n */\nexport default function Tooltip({content, children, className, direction, disabled}: Props) {\n\tconst [open, setOpen] = useState(false);\n\n\treturn (\n\t\t<Popup\n\t\t\topen={open}\n\t\t\tdisabled={disabled}\n\t\t\tmode={['hover']}\n\t\t\tonOpenChange={setOpen}\n\t\t\thandler={children}\n\t\t\tplacement={direction ? direction : 'right'}\n\t\t\tclassName={`tooltip inverted ${className ? className : ''}`}\n\t\t>\n\t\t\t<span className=\"tooltip-content\">{content}</span>\n\t\t</Popup>\n\t);\n}\n","import * as React from 'react';\n\nimport Bubble from '../bubble/Bubble';\n\ntype Page = {\n\tname: string;\n\trenderHeading: () => React.ReactNode;\n\trenderBody?: () => React.ReactNode;\n\ttabDescription?: string;\n};\n\ntype State = {\n\tcurrentTab: string | null | undefined;\n};\n\nexport type Props = {\n\t/** Array of pages to be displayed */\n\tpages: Array<Page>;\n\n\t/** (Optional) if set, disables tab */\n\tdisabled?: boolean;\n\n\t/** (Optional) function, executed if tabs change */\n\tonChange?: (tab: string) => void;\n\n\t/** (Optional) sets the current tab */\n\tcurrentTab?: string | null | undefined;\n};\n\n/**\n * Tabs add the possibility to unite several homogeneous pages into one.\n * Unlike RouteTabs, Tabs cannot be accessed directly via the browser's history\n */\nexport default class Tabs extends React.Component<Props, State> {\n\tstate: State = {\n\t\tcurrentTab: this.props.pages.length ? this.props.pages[0].name : null\n\t};\n\n\thandleClick: (tab: string) => void = (tab: string) => {\n\t\tif (this.props.onChange) {\n\t\t\tthis.props.onChange(tab);\n\t\t} else if (typeof this.props.currentTab === 'undefined') {\n\t\t\tthis.setState({\n\t\t\t\tcurrentTab: tab\n\t\t\t});\n\t\t}\n\t};\n\n\tcurrentTabPage: () => Page | null | undefined = (): Page | null | undefined => {\n\t\tconst currentTab = typeof this.props.currentTab === 'string' ? this.props.currentTab : this.state.currentTab;\n\t\treturn this.props.pages.find(({name}) => currentTab === name);\n\t};\n\n\tisCurrentTab: (tab: string) => boolean = (tab: string) => {\n\t\tconst currentTab = typeof this.props.currentTab === 'string' ? this.props.currentTab : this.state.currentTab;\n\t\treturn currentTab === tab;\n\t};\n\n\trenderBody = () => {\n\t\tconst page = this.currentTabPage();\n\n\t\tif (page && typeof page.renderBody === 'function') {\n\t\t\treturn page.renderBody();\n\t\t}\n\n\t\treturn null;\n\t};\n\n\trender() {\n\t\tconst {pages, disabled} = this.props;\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t<div className=\"di tabs\">\n\t\t\t\t\t{pages.map(({name, renderHeading, tabDescription}) =>\n\t\t\t\t\t\ttabDescription ? (\n\t\t\t\t\t\t\t<Bubble inverted key={name} content={tabDescription} className=\"bubble-tab-description\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''} ${\n\t\t\t\t\t\t\t\t\t\tthis.isCurrentTab(name) ? 'active' : ''\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tonClick={() => !disabled && this.handleClick(name)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderHeading()}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</Bubble>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\t\t\t\t\tkey={name}\n\t\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''} ${\n\t\t\t\t\t\t\t\t\tthis.isCurrentTab(name) ? 'active' : ''\n\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\tonClick={() => !disabled && this.handleClick(name)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderHeading()}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{this.renderBody()}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport '../../assets/search-box.css';\nimport {ComponentType, CSSProperties} from 'react';\n\nimport Icon from '../icon/Icon';\nimport Button from '../button/Button';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** Placeholder text for input field `(string | TranslationDescriptor)` */\n\tplaceholder: string | TranslationDescriptor;\n\n\t/** Function to call if the input changes */\n\tonChange: (value: string) => void;\n\n\t/** Function to call if the search is triggered (button press or return in search field) */\n\tonSubmit?: (value: string) => void;\n\n\t/** if true, a button is shown that clears the input */\n\tclearable?: boolean;\n\n\t/** Value that should initially be displayed in the text box */\n\tinitialValue: string | null | undefined;\n\n\t/** Wrapper styles */\n\tstyle: CSSProperties | undefined;\n};\n\ntype State = {\n\tquery: string;\n};\n\nconst ClearButton = ({\n\tonChange,\n\tinputElement,\n\tstyle\n}: {\n\tonChange: (value: string) => void;\n\tinputElement: HTMLElement | null | undefined;\n\tstyle?: React.CSSProperties;\n}) => (\n\t<Button\n\t\tnaked\n\t\tonClick={() => {\n\t\t\tonChange('');\n\n\t\t\tif (inputElement) {\n\t\t\t\tinputElement.focus();\n\t\t\t}\n\t\t}}\n\t\tstyle={style}\n\t>\n\t\t<Icon del />\n\t</Button>\n);\n\n/**\n * SearchBox is used for searching content and provides a set of `props` for different user experiences\n */\nclass SearchBox extends React.Component<Props & WithTranslation, State> {\n\tstate: State = {\n\t\tquery: this.props.initialValue || ''\n\t};\n\tinput: HTMLInputElement | null | undefined;\n\n\tprintPlaceholder(): string {\n\t\tconst {t, placeholder} = this.props;\n\n\t\tif (typeof placeholder === 'object') {\n\t\t\treturn t(placeholder.id, {\n\t\t\t\tdefaultValue: placeholder.defaultValue\n\t\t\t});\n\t\t} else {\n\t\t\treturn placeholder;\n\t\t}\n\t}\n\n\thandleChange: (value: string) => void = (value: string) => {\n\t\tconst {onChange} = this.props;\n\t\tthis.setState({\n\t\t\tquery: value\n\t\t});\n\t\tonChange(value);\n\t};\n\n\thandleKeyUp: (arg0: any) => void = ({key}) => {\n\t\tconst {onSubmit} = this.props;\n\t\tconst {query} = this.state;\n\n\t\tif (key === 'Enter' && typeof onSubmit === 'function') {\n\t\t\tonSubmit(query);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {onSubmit, style, clearable} = this.props;\n\t\tconst {query} = this.state;\n\t\treturn (\n\t\t\t<div className=\"search-box\" style={style}>\n\t\t\t\t<input\n\t\t\t\t\tref={(input) => {\n\t\t\t\t\t\tthis.input = input;\n\t\t\t\t\t}}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={query}\n\t\t\t\t\tplaceholder={this.printPlaceholder()}\n\t\t\t\t\tonKeyUp={this.handleKeyUp}\n\t\t\t\t\tonChange={({target: {value}}) => this.handleChange(value)}\n\t\t\t\t/>\n\t\t\t\t{typeof onSubmit === 'function' ? (\n\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t{query && clearable && (\n\t\t\t\t\t\t\t<ClearButton\n\t\t\t\t\t\t\t\tonChange={this.handleChange}\n\t\t\t\t\t\t\t\tinputElement={this.input}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tright: 30\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Button naked onClick={() => onSubmit(query)}>\n\t\t\t\t\t\t\t<Icon search />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t) : query && clearable ? (\n\t\t\t\t\t<ClearButton onChange={this.handleChange} inputElement={this.input} />\n\t\t\t\t) : (\n\t\t\t\t\t<Button naked disabled>\n\t\t\t\t\t\t<Icon search />\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default withTranslation()(SearchBox) as ComponentType<Props>;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../src/components/accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,KAAK,GAAG;IACnB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAElC,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,GAAG,CAAC;IAE9C,oGAAoG;IACpG,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,KAAK,KAAK,GAAG;IACZ,gBAAgB,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACnE,KAAK,EAAE,KAAK,CAEV;IAEF,iBAAiB;IAQjB,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAU5C;IAEF,MAAM;CAoBN"}
1
+ {"version":3,"file":"Accordion.d.ts","sourceRoot":"","sources":["../../../../src/components/accordion/Accordion.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,KAAK,GAAG;IACnB,+DAA+D;IAC/D,QAAQ,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAElC,4DAA4D;IAC5D,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,GAAG,CAAC;IAE9C,oGAAoG;IACpG,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,KAAK,KAAK,GAAG;IACZ,gBAAgB,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IACnE,KAAK,EAAE,KAAK,CAEV;IAEF,iBAAiB,SAMhB;IAED,qBAAqB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAU5C;IAEF,MAAM,sBAmBL;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"AccordionItem.d.ts","sourceRoot":"","sources":["../../../../src/components/accordionComponents/AccordionItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,IAAI,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IACnB,sGAAsG;IACtG,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAE/D,cAAc;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,qFAAqF;IACrF,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uCAAuC;IACvC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAEhC,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB,mGAAmG;IACnG,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE/B,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;IACpE,MAAM;CAuCN"}
1
+ {"version":3,"file":"AccordionItem.d.ts","sourceRoot":"","sources":["../../../../src/components/accordionComponents/AccordionItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,KAAK,IAAI,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IACnB,sGAAsG;IACtG,KAAK,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;IAE/D,cAAc;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,qFAAqF;IACrF,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,+CAA+C;IAC/C,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,8DAA8D;IAC9D,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,uCAAuC;IACvC,KAAK,EAAE,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC;IAEhC,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB,mGAAmG;IACnG,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAE/B,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;IACpE,MAAM,sBAsCL;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAI3C,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,KAAK,GAAG;IACnB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,4GAA4G;IAC5G,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,sBAAsB;IACtB,KAAK,CAAC,EAAE,CAAC,qBAAqB,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;IAE5D,8BAA8B;IAC9B,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAErC,sBAAsB;IACtB,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAEvC,uBAAuB;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,cAAc;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAE5B,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;wBA8C0C,aAAa,CAAC,KAAK,CAAC;AAAhE,wBAAiE"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/components/button/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAI3C,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,KAAK,GAAG;IACnB,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,kEAAkE;IAClE,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,4GAA4G;IAC5G,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,sBAAsB;IACtB,KAAK,CAAC,EAAE,CAAC,qBAAqB,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,MAAM,CAAC;IAE5D,8BAA8B;IAC9B,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IAErC,sBAAsB;IACtB,OAAO,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAEvC,uBAAuB;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,cAAc;IACd,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAE5B,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,cAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;wBA8C0C,aAAa,CAAC,KAAK,CAAC"}
@@ -9,15 +9,11 @@ export type Props = {
9
9
  /** @ignore */
10
10
  style?: React.CSSProperties;
11
11
  };
12
- /**
13
- * ButtonRows align Buttons nicely for all relevant and/or related user actions such as saving or canceling changes.
14
- * To separate the ButtonRow from the content, the extra property `dividing` can be used.
15
- */
16
- declare const ButtonRow: {
17
- ({ children, dividing, className, style }: Props): React.JSX.Element;
18
- defaultProps: {
12
+ declare function ButtonRow({ children, dividing, className, style }: Props): React.JSX.Element;
13
+ declare namespace ButtonRow {
14
+ var defaultProps: {
19
15
  dividing: boolean;
20
16
  };
21
- };
17
+ }
22
18
  export default ButtonRow;
23
19
  //# sourceMappingURL=ButtonRow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonRow.d.ts","sourceRoot":"","sources":["../../../../src/components/button/ButtonRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,KAAK,GAAG;IACnB,+CAA+C;IAC/C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC5B,CAAC;AAEF;;;GAGG;AACH,QAAA,MAAM,SAAS;+CAA4C,KAAK;;;;CAI/D,CAAC;AAMF,eAAe,SAAS,CAAC"}
1
+ {"version":3,"file":"ButtonRow.d.ts","sourceRoot":"","sources":["../../../../src/components/button/ButtonRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,KAAK,GAAG;IACnB,+CAA+C;IAC/C,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc;IACd,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC5B,CAAC;2BAMiB,EAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAC,EAAE,KAAK;;;;;;eAUjD,SAAS"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConfirmProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/confirm/ConfirmProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAIrD,KAAK,cAAc,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,cAAc;aACjB,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC;EAGrD,CAAC;AAEH,iBAAS,eAAe,CAAC,EAAC,QAAQ,EAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,qBAgCpF;AAED,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ConfirmProvider.d.ts","sourceRoot":"","sources":["../../../../src/components/confirm/ConfirmProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgC,MAAM,OAAO,CAAC;AAIrD,KAAK,cAAc,GAAG;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,YAAY,CAAC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;CACzC,CAAC;AAEF,eAAO,MAAM,cAAc;aACjB,CAAC,OAAO,EAAE,cAAc,KAAK,OAAO,CAAC,OAAO,CAAC;EAGrD,CAAC;AAEH,iBAAS,eAAe,CAAC,EAAC,QAAQ,EAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,qBAgCpF;eAEc,eAAe"}
@@ -3,6 +3,6 @@ export default function useConfirm(): (options: {
3
3
  message: string | React.ReactElement;
4
4
  acceptButtonLabel?: string;
5
5
  declineButtonLabel?: string;
6
- acceptButtonStyle?: "primary" | "danger";
6
+ acceptButtonStyle?: 'primary' | 'danger';
7
7
  }) => Promise<boolean>;
8
8
  //# sourceMappingURL=useConfirm.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"withConfirm.d.ts","sourceRoot":"","sources":["../../../../src/components/confirm/withConfirm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAKvD,MAAM,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,CACR,KAAK,EAAE,MAAM,GAAG,qBAAqB,EACrC,OAAO,EAAE,MAAM,GAAG,qBAAqB,GAAG,KAAK,CAAC,YAAY,EAC5D,iBAAiB,CAAC,EAAE,MAAM,GAAG,qBAAqB,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAAG,qBAAqB,EACnD,uBAAuB,CAAC,EAAE,OAAO,EACjC,iBAAiB,CAAC,EAAE,SAAS,GAAG,QAAQ,KACpC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,YAAY,CAAC,IAsCzE,OAAO,CAAC,uBAO3C"}
1
+ {"version":3,"file":"withConfirm.d.ts","sourceRoot":"","sources":["../../../../src/components/confirm/withConfirm.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAKvD,MAAM,MAAM,YAAY,GAAG;IAC1B,OAAO,EAAE,CACR,KAAK,EAAE,MAAM,GAAG,qBAAqB,EACrC,OAAO,EAAE,MAAM,GAAG,qBAAqB,GAAG,KAAK,CAAC,YAAY,EAC5D,iBAAiB,CAAC,EAAE,MAAM,GAAG,qBAAqB,EAClD,kBAAkB,CAAC,EAAE,MAAM,GAAG,qBAAqB,EACnD,uBAAuB,CAAC,EAAE,OAAO,EACjC,iBAAiB,CAAC,EAAE,SAAS,GAAG,QAAQ,KACpC,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;CAC7B,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,YAAY,CAAC,WAsClE,CAAC,uBAO3C"}
@@ -1 +1 @@
1
- {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/input/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,KAAK,GAAG;IACnB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAEvC,mDAAmD;IACnD,KAAK,EAAE,OAAO,CAAC;IAEf,oDAAoD;IACpD,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAExC,qCAAqC;IACrC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAE9B,kDAAkD;IAClD,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAE9B,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,cAAc;IACd,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,cAAc;IACd,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;wBAsF4C,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;AAAxE,wBAAyE"}
1
+ {"version":3,"file":"Checkbox.d.ts","sourceRoot":"","sources":["../../../../src/components/input/Checkbox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,KAAK,GAAG;IACnB,0BAA0B;IAC1B,IAAI,CAAC,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;IAEvC,mDAAmD;IACnD,KAAK,EAAE,OAAO,CAAC;IAEf,oDAAoD;IACpD,QAAQ,EAAE,CAAC,UAAU,EAAE,OAAO,KAAK,IAAI,CAAC;IAExC,qCAAqC;IACrC,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAE9B,kDAAkD;IAClD,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAE9B,mFAAmF;IACnF,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,qFAAqF;IACrF,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,cAAc;IACd,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAE/B,cAAc;IACd,sBAAsB,CAAC,EAAE,MAAM,CAAC;CAChC,CAAC;wBAsF4C,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"SearchBox.d.ts","sourceRoot":"","sources":["../../../../src/components/input/SearchBox.tsx"],"names":[],"mappings":"AAGA,OAAO,6BAA6B,CAAC;AACrC,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,OAAO,CAAC;AAInD,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,KAAK,GAAG;IACnB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,GAAG,qBAAqB,CAAC;IAE5C,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAExC,qBAAqB;IACrB,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;CACjC,CAAC;wBA8G6C,aAAa,CAAC,KAAK,CAAC;AAAnE,wBAAoE"}
1
+ {"version":3,"file":"SearchBox.d.ts","sourceRoot":"","sources":["../../../../src/components/input/SearchBox.tsx"],"names":[],"mappings":"AAGA,OAAO,6BAA6B,CAAC;AACrC,OAAO,EAAC,aAAa,EAAE,aAAa,EAAC,MAAM,OAAO,CAAC;AAInD,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,KAAK,GAAG;IACnB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,GAAG,qBAAqB,CAAC;IAE5C,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAExC,qBAAqB;IACrB,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;CACjC,CAAC;wBA8G6C,aAAa,CAAC,KAAK,CAAC"}
@@ -18,7 +18,7 @@ export default class Modal extends React.Component<Props, {
18
18
  };
19
19
  container: HTMLDivElement | undefined;
20
20
  modalRoot: HTMLElement | null | undefined;
21
- timeoutId: NodeJS.Timeout | undefined;
21
+ timeoutId: ReturnType<typeof setTimeout> | undefined;
22
22
  constructor(props: Props);
23
23
  componentDidMount(): void;
24
24
  componentWillUnmount(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,MAAM,KAAK,GAAG;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gFAAgF;IAChF,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACjE,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,KAAK,CAAC,SAAS,CACjD,KAAK,EACL;IACC,SAAS,EAAE,MAAM,CAAC;CAClB,CACD;IACA,MAAM,CAAC,YAAY,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;KACd,CAEC;IACF,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;gBAE1B,KAAK,EAAE,KAAK;IAOxB,iBAAiB;IAwBjB,oBAAoB;IAkBpB,eAAe,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAI7C;IAEF,MAAM;CAYN"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,MAAM,KAAK,GAAG;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gFAAgF;IAChF,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACjE,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,KAAK,CAAC,SAAS,CACjD,KAAK,EACL;IACC,SAAS,EAAE,MAAM,CAAC;CAClB,CACD;IACA,MAAM,CAAC,YAAY,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;KACd,CAEC;IACF,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,SAAS,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS,CAAC;IAErD,YAAY,KAAK,EAAE,KAAK,EAKvB;IAED,iBAAiB,SAuBhB;IAED,oBAAoB,SAgBnB;IAED,eAAe,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAI7C;IAEF,MAAM,6BAWL;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"ModalContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/modalComponents/ModalContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;IACrE,MAAM;CAGN"}
1
+ {"version":3,"file":"ModalContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/modalComponents/ModalContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;IACrE,MAAM,sBAEL;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../../src/components/spinner/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,KAAK,GAAG;IACnB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,cAAc;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1D,MAAM,CAAC,YAAY;;;MAGjB;IAEF,MAAM;CAoBN"}
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../../src/components/spinner/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,MAAM,KAAK,GAAG;IACnB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,cAAc;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1D,MAAM,CAAC,YAAY;QAClB,IAAI;QACJ,MAAM;MACL;IAEF,MAAM,sBAmBL;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"SpinnerContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/spinner/SpinnerContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,KAAK,GAAG;IACnB,0CAA0C;IAC1C,IAAI,EAAE,OAAO,CAAC;IAEd,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,sDAAsD;IACtD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;IACnE,MAAM,CAAC,YAAY,EAAE;QACpB,IAAI,EAAE,MAAM,CAAC;KACb,CAEC;IAEF,MAAM;CAeN"}
1
+ {"version":3,"file":"SpinnerContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/spinner/SpinnerContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,KAAK,GAAG;IACnB,0CAA0C;IAC1C,IAAI,EAAE,OAAO,CAAC;IAEd,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,sDAAsD;IACtD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;IACnE,MAAM,CAAC,YAAY,EAAE;QACpB,IAAI,EAAE,MAAM,CAAC;KACb,CAEC;IAEF,MAAM,sBAcL;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,IAAI,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,KAAK,GAAG;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IACnB,qCAAqC;IACrC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAEnB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAC9D,KAAK,EAAE,KAAK,CAEV;IAEF,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAQhC;IAEF,cAAc,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,SAAS,CAG3C;IAEF,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAGpC;IAEF,UAAU,wBAQR;IAEF,MAAM;CAoCN"}
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,KAAK,IAAI,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,KAAK,KAAK,GAAG;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IACnB,qCAAqC;IACrC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAEnB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAC9D,KAAK,EAAE,KAAK,CAEV;IAEF,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAQhC;IAEF,cAAc,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,SAAS,CAG3C;IAEF,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAGpC;IAEF,UAAU,wBAQR;IAEF,MAAM,sBAmCL;CACD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useOutsideClick.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOutsideClick.ts"],"names":[],"mappings":"AAqBA,QAAA,MAAM,eAAe,GACpB,UAAU,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,EACnC,UAAU,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,KAAK,IAAI,SA6B5D,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"useOutsideClick.d.ts","sourceRoot":"","sources":["../../../src/hooks/useOutsideClick.ts"],"names":[],"mappings":"AAqBA,QAAA,MAAM,eAAe,aACV,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,YACzB,CAAC,GAAG,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,KAAK,IAAI,SA6B5D,CAAC;eAEa,eAAe"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deviceinsight/ng-ui-basic-components",
3
- "version": "7.19.0",
3
+ "version": "7.21.0",
4
4
  "private": false,
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {
@@ -22,12 +22,14 @@
22
22
  },
23
23
  "./style.css": "./dist/style.css"
24
24
  },
25
- "files": ["dist"],
25
+ "files": [
26
+ "dist"
27
+ ],
26
28
  "scripts": {
27
29
  "scan": "npx --registry=https://registry.npmjs.org audit-ci@latest --low true --skip-dev --config scan-config.json5",
28
30
  "clean": "rimraf dist",
29
31
  "build:library": "npm run clean && vite build && tsc -p tsconfig.types.json",
30
- "eslint": "eslint \"**/*.{ts,tsx}\"",
32
+ "lint": "oxlint && prettier --check \"{src/**/*.ts,src/**/*.tsx,package.json,.storybook/**/*.ts,.storybook/**/*.tsx}\"",
31
33
  "prettier": "prettier --write \"{src/**/*.ts,src/**/*.tsx,package.json,.storybook/**/*.ts,.storybook/**/*.tsx}\"",
32
34
  "watch": "npm run build:library; tsc-watch --onSuccess \"yalc push\"",
33
35
  "prepare": "husky",
@@ -49,32 +51,29 @@
49
51
  "react-i18next": "^17.0.11"
50
52
  },
51
53
  "devDependencies": {
52
- "@eslint/js": "10.0.1",
53
- "@storybook/react-vite": "10.5.10",
54
- "@types/node": "24.13.3",
54
+ "@storybook/react-vite": "10.6.0",
55
+ "@types/node": "24.13.5",
55
56
  "@types/react": "19.2.18",
56
- "@types/react-dom": "19.2.5",
57
- "@typescript-eslint/eslint-plugin": "8.68.0",
58
- "@typescript-eslint/parser": "8.68.0",
57
+ "@types/react-dom": "19.2.7",
59
58
  "@vitejs/plugin-react": "6.1.1",
60
- "eslint": "10.9.1",
61
- "eslint-plugin-react-hooks": "7.1.1",
62
- "eslint-plugin-storybook": "10.5.10",
63
59
  "husky": "9.1.7",
64
60
  "i18next": "26.3.6",
65
- "lint-staged": "17.3.0",
66
- "prettier": "3.9.6",
61
+ "lint-staged": "17.5.1",
62
+ "oxlint": "1.83.0",
63
+ "prettier": "3.9.7",
67
64
  "prop-types": "15.8.1",
68
65
  "react": "19.2.8",
69
66
  "react-dom": "19.2.8",
70
67
  "react-i18next": "17.0.11",
71
68
  "rimraf": "6.1.3",
72
- "storybook": "10.5.10",
73
- "typescript": "5.9.3",
74
- "vite": "8.2.2"
69
+ "storybook": "10.6.0",
70
+ "typescript": "7.0.2",
71
+ "vite": "8.3.0"
75
72
  },
76
73
  "lint-staged": {
77
- "src/**/*.{ts,tsx},package.json,.storybook/**/.{ts,tsx}": ["prettier --write"]
74
+ "src/**/*.{ts,tsx},package.json,.storybook/**/.{ts,tsx}": [
75
+ "prettier --write"
76
+ ]
78
77
  },
79
78
  "engines": {
80
79
  "node": "^24.18.0"