@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 +88 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/types/components/accordion/Accordion.d.ts.map +1 -1
- package/dist/types/components/accordionComponents/AccordionItem.d.ts.map +1 -1
- package/dist/types/components/button/Button.d.ts.map +1 -1
- package/dist/types/components/button/ButtonRow.d.ts +4 -8
- package/dist/types/components/button/ButtonRow.d.ts.map +1 -1
- package/dist/types/components/confirm/ConfirmProvider.d.ts.map +1 -1
- package/dist/types/components/confirm/useConfirm.d.ts +1 -1
- package/dist/types/components/confirm/withConfirm.d.ts.map +1 -1
- package/dist/types/components/input/Checkbox.d.ts.map +1 -1
- package/dist/types/components/input/SearchBox.d.ts.map +1 -1
- package/dist/types/components/modal/Modal.d.ts +1 -1
- package/dist/types/components/modal/Modal.d.ts.map +1 -1
- package/dist/types/components/modalComponents/ModalContainer.d.ts.map +1 -1
- package/dist/types/components/spinner/Spinner.d.ts.map +1 -1
- package/dist/types/components/spinner/SpinnerContainer.d.ts.map +1 -1
- package/dist/types/components/tabs/Tabs.d.ts.map +1 -1
- package/dist/types/hooks/useOutsideClick.d.ts.map +1 -1
- package/package.json +17 -18
package/README.md
CHANGED
|
@@ -1,22 +1,95 @@
|
|
|
1
1
|
# General
|
|
2
2
|
|
|
3
|
-
This project contains basic components
|
|
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
|
|
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 `
|
|
69
|
+
problems when we use `npm link`.
|
|
10
70
|
|
|
11
71
|
Here's how to do the linking:
|
|
12
72
|
|
|
13
73
|
```shell
|
|
14
|
-
|
|
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
|
|
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,
|
|
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.
|
|
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
|
|
package/dist/index.cjs.map
CHANGED
|
@@ -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 <AccordionItems/> 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 <AccordionItems/> gets changed */\n\tonPageChange?: (newPageNumber: number) => any;\n\n\t/** (Optional) Index of the <AccordionItem/> 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 <AccordionItems/> */\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 <AccordionItems/> */\n\tisOpen?: boolean;\n\n\t/** (Optional) Sets additional classes for styling purposes */\n\titemClasses?: string;\n\n\t/** Title of <AccordionItems/> */\n\ttitle: string | React.ReactNode;\n\n\t/** (Optional) Tooltip of <AccordionItems/> */\n\ttitleTooltip?: string;\n\n\t/** Function which is called to open/close <AccordionItems/> */\n\ttoggle?: () => void;\n\n\t/** (Optional) Enables additional handler, e.g., for editing or deleting <AccordionItems/> */\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 <Button /> 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 <Tooltip/> from opening */\n\tdisabled?: boolean;\n\n\t/** (Optional) if set, opens <Tooltip/> 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 <AccordionItems/> 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 <AccordionItems/> gets changed */\n\tonPageChange?: (newPageNumber: number) => any;\n\n\t/** (Optional) Index of the <AccordionItem/> 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 <AccordionItems/> */\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 <AccordionItems/> */\n\tisOpen?: boolean;\n\n\t/** (Optional) Sets additional classes for styling purposes */\n\titemClasses?: string;\n\n\t/** Title of <AccordionItems/> */\n\ttitle: string | React.ReactNode;\n\n\t/** (Optional) Tooltip of <AccordionItems/> */\n\ttitleTooltip?: string;\n\n\t/** Function which is called to open/close <AccordionItems/> */\n\ttoggle?: () => void;\n\n\t/** (Optional) Enables additional handler, e.g., for editing or deleting <AccordionItems/> */\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 <Button /> 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 <Tooltip/> from opening */\n\tdisabled?: boolean;\n\n\t/** (Optional) if set, opens <Tooltip/> 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 <AccordionItems/> 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 <AccordionItems/> gets changed */\n\tonPageChange?: (newPageNumber: number) => any;\n\n\t/** (Optional) Index of the <AccordionItem/> 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 <AccordionItems/> */\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 <AccordionItems/> */\n\tisOpen?: boolean;\n\n\t/** (Optional) Sets additional classes for styling purposes */\n\titemClasses?: string;\n\n\t/** Title of <AccordionItems/> */\n\ttitle: string | React.ReactNode;\n\n\t/** (Optional) Tooltip of <AccordionItems/> */\n\ttitleTooltip?: string;\n\n\t/** Function which is called to open/close <AccordionItems/> */\n\ttoggle?: () => void;\n\n\t/** (Optional) Enables additional handler, e.g., for editing or deleting <AccordionItems/> */\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 <Button /> 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 <Tooltip/> from opening */\n\tdisabled?: boolean;\n\n\t/** (Optional) if set, opens <Tooltip/> 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 <AccordionItems/> 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 <AccordionItems/> gets changed */\n\tonPageChange?: (newPageNumber: number) => any;\n\n\t/** (Optional) Index of the <AccordionItem/> 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 <AccordionItems/> */\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 <AccordionItems/> */\n\tisOpen?: boolean;\n\n\t/** (Optional) Sets additional classes for styling purposes */\n\titemClasses?: string;\n\n\t/** Title of <AccordionItems/> */\n\ttitle: string | React.ReactNode;\n\n\t/** (Optional) Tooltip of <AccordionItems/> */\n\ttitleTooltip?: string;\n\n\t/** Function which is called to open/close <AccordionItems/> */\n\ttoggle?: () => void;\n\n\t/** (Optional) Enables additional handler, e.g., for editing or deleting <AccordionItems/> */\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 <Button /> 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 <Tooltip/> from opening */\n\tdisabled?: boolean;\n\n\t/** (Optional) if set, opens <Tooltip/> 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;
|
|
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;
|
|
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
|
|
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
|
-
|
|
14
|
-
|
|
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;
|
|
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;
|
|
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?:
|
|
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,
|
|
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
|
|
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
|
|
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:
|
|
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,
|
|
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;
|
|
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
|
|
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;
|
|
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;
|
|
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,
|
|
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.
|
|
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": [
|
|
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
|
-
"
|
|
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
|
-
"@
|
|
53
|
-
"@
|
|
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.
|
|
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.
|
|
66
|
-
"
|
|
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.
|
|
73
|
-
"typescript": "
|
|
74
|
-
"vite": "8.
|
|
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}": [
|
|
74
|
+
"src/**/*.{ts,tsx},package.json,.storybook/**/.{ts,tsx}": [
|
|
75
|
+
"prettier --write"
|
|
76
|
+
]
|
|
78
77
|
},
|
|
79
78
|
"engines": {
|
|
80
79
|
"node": "^24.18.0"
|