@deviceinsight/ng-ui-basic-components 7.16.0 → 7.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/components/accordion/Accordion.tsx","../src/components/accordionComponents/AccordionItem.tsx","../src/components/button/Button.tsx","../src/components/button/ButtonRow.tsx","../src/hooks/useOutsideClick.ts","../src/components/modalComponents/ModalWindow.tsx","../src/components/modal/Modal.tsx","../src/components/modalComponents/ModalContainer.tsx","../src/components/spinner/Spinner.tsx","../src/components/spinner/SpinnerContainer.tsx","../src/components/input/Checkbox.tsx","../src/components/confirm/utils.ts","../src/components/confirm/Confirm.tsx","../src/components/confirm/ConfirmProvider.tsx","../src/components/confirm/useConfirm.ts","../src/components/confirm/withConfirm.tsx","../src/assets/svg/icon_add.svg","../src/assets/svg/icon_cross.svg","../src/assets/svg/icon_edit.svg","../src/assets/svg/icon_gear.svg","../src/assets/svg/icon_duplicate.svg","../src/assets/svg/icon_download.svg","../src/assets/svg/icon_lupe.svg","../src/assets/svg/icon_key.svg","../src/assets/svg/icon_reload.svg","../src/assets/svg/icon_fullscreen.svg","../src/assets/svg/icon_help_light.svg","../src/assets/svg/icon_star.svg","../src/components/icon/Icon.tsx","../src/components/label/Label.tsx","../src/components/popup/Popup.tsx","../src/components/bubble/Bubble.tsx","../src/components/tooltip/Tooltip.tsx","../src/components/tabs/Tabs.tsx","../src/components/input/SearchBox.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport type Props = {\n\t/** Should contain Array of &lt;AccordionItems/&gt; elements */\n\tchildren?: Array<React.ReactNode>;\n\n\t/** (Optional) sets additional class for styling purposes */\n\taccordionClass?: string;\n\n\t/** Function to be called if active &lt;AccordionItems/&gt; gets changed */\n\tonPageChange?: (newPageNumber: number) => any;\n\n\t/** (Optional) Index of the &lt;AccordionItem/&gt; which should be opened on initial render cycle */\n\tdefaultOpenPageIndex?: number;\n};\n\ntype State = {\n\tcurrentPageIndex: number;\n};\n\n/**\n * Accordions are best used to display homogenous information, e.g. multiple configurations which would take up a lot of space otherwise.\n */\nexport default class Accordion extends React.Component<Props, State> {\n\tstate: State = {\n\t\tcurrentPageIndex: -1\n\t};\n\n\tcomponentDidMount() {\n\t\tconst {defaultOpenPageIndex} = this.props;\n\n\t\tif (defaultOpenPageIndex !== null && defaultOpenPageIndex !== undefined) {\n\t\t\tthis.handleAccordionToggle(defaultOpenPageIndex);\n\t\t}\n\t}\n\n\thandleAccordionToggle: (index: number) => void = (index: number) => {\n\t\tconst {onPageChange} = this.props;\n\t\tconst newPageIndex = this.state.currentPageIndex !== index ? index : -1;\n\t\tthis.setState({\n\t\t\tcurrentPageIndex: newPageIndex\n\t\t});\n\n\t\tif (onPageChange) {\n\t\t\tonPageChange(newPageIndex);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {children, accordionClass} = this.props;\n\t\tconst {currentPageIndex} = this.state;\n\t\treturn (\n\t\t\t<div className={accordionClass ? `di accordion ${accordionClass}` : 'di accordion'}>\n\t\t\t\t{children &&\n\t\t\t\t\tchildren.map((child: any, index) =>\n\t\t\t\t\t\tchild ? (\n\t\t\t\t\t\t\t<child.type\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t\tisOpen={currentPageIndex === index}\n\t\t\t\t\t\t\t\ttoggle={() => this.handleAccordionToggle(index)}\n\t\t\t\t\t\t\t\t{...child.props}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null\n\t\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\n\ntype Info = {\n\ttext: string;\n\tcssStyle: Record<string, any>;\n};\n\nexport type Props = {\n\t/** (Optional) Displays either numeric- or text-based badge in front of the &lt;AccordionItems/&gt; */\n\tbadge?: (number | string | React.ReactNode) | null | undefined;\n\n\t/** @ignore */\n\tchildren?: React.ReactNode;\n\n\t/** (Optional) Displays additional information, which is visible in \"closed\" state */\n\tinfo1?: Info;\n\n\t/** If true, expands &lt;AccordionItems/&gt; */\n\tisOpen?: boolean;\n\n\t/** (Optional) Sets additional classes for styling purposes */\n\titemClasses?: string;\n\n\t/** Title of &lt;AccordionItems/&gt; */\n\ttitle: string | React.ReactNode;\n\n\t/** (Optional) Tooltip of &lt;AccordionItems/&gt; */\n\ttitleTooltip?: string;\n\n\t/** Function which is called to open/close &lt;AccordionItems/&gt; */\n\ttoggle?: () => void;\n\n\t/** (Optional) Enables additional handler, e.g., for editing or deleting &lt;AccordionItems/&gt; */\n\ttools?: Array<React.ReactNode>;\n\n\t/** @ignore */\n\t'data-testid'?: string | undefined;\n};\n\nexport default class AccordionItem extends React.PureComponent<Props> {\n\trender() {\n\t\tconst {badge, children, isOpen, info1, itemClasses, title, titleTooltip, toggle, tools, ...rest} = this.props;\n\t\tconst accordionItemClasses = ['item'];\n\n\t\tif (itemClasses) accordionItemClasses.push(itemClasses);\n\t\tif (isOpen) accordionItemClasses.push('open');\n\n\t\treturn (\n\t\t\t<div className={accordionItemClasses.join(' ')}>\n\t\t\t\t<div className=\"head\">\n\t\t\t\t\t<span className=\"title\" onClick={toggle} data-testid={rest['data-testid']}>\n\t\t\t\t\t\t<h1 title={titleTooltip}>{title}</h1>\n\t\t\t\t\t\t{badge && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"di label\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tmargin: '0 0 0 10px',\n\t\t\t\t\t\t\t\t\tbackgroundColor: '#ddd',\n\t\t\t\t\t\t\t\t\tborderColor: 'transparent'\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{badge}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{info1 && <span style={info1.cssStyle}>{info1.text}</span>}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"tools\">\n\t\t\t\t\t\t{tools &&\n\t\t\t\t\t\t\ttools.map((toolComponent, index) => (\n\t\t\t\t\t\t\t\t<span key={index} className=\"tool\">\n\t\t\t\t\t\t\t\t\t{toolComponent}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"cont\">{children}</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import React, {ComponentType} from 'react';\nimport cx from 'classnames';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** primary style, mutually exclusive with _danger_ and _naked_ */\n\tprimary?: boolean;\n\n\t/** danger style, mutually exclusive with _primary_ and _naked_ */\n\tdanger?: boolean;\n\n\t/** render the button without border and background color, mutually exclusive with _primary_ and _danger_ */\n\tnaked?: boolean;\n\n\t/** a title tooltip */\n\ttitle?: (TranslationDescriptor | null | undefined) | string;\n\n\t/** button | submit | reset */\n\ttype?: 'button' | 'submit' | 'reset';\n\n\t/** a click handler */\n\tonClick?: (...args: Array<any>) => any;\n\n\t/** a smaller button */\n\tsmall?: boolean;\n\n\t/** disable the button */\n\tdisabled?: boolean;\n\n\t/** @ignore */\n\tchildren?: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\ttabIndex?: number;\n};\n\n/**\n * Buttons are used to inform the user about a potential user interaction, which then on interaction causes an action.\n * To create a standardized look and feel, different props can be passed to the Button.\n */\nfunction Button({\n\tchildren,\n\ttitle,\n\ttype,\n\tdisabled,\n\tonClick,\n\tstyle,\n\ttabIndex,\n\tt,\n\tprimary,\n\tdanger,\n\tnaked,\n\tclassName,\n\tsmall,\n\t...rest\n}: Props & WithTranslation) {\n\tlet btnTitle = title;\n\n\tif (title && typeof title !== 'string') {\n\t\tbtnTitle = t(title.id, {\n\t\t\tdefaultValue: title.defaultValue\n\t\t});\n\t}\n\n\treturn (\n\t\t<button\n\t\t\tdata-testid={rest['data-testid']}\n\t\t\ttype={type || 'button'}\n\t\t\tclassName={cx('di button', className, {small, primary, danger, link: naked})}\n\t\t\ttitle={typeof btnTitle === 'string' ? btnTitle : undefined}\n\t\t\tdisabled={disabled}\n\t\t\tonClick={onClick}\n\t\t\tstyle={style}\n\t\t\ttabIndex={tabIndex}\n\t\t>\n\t\t\t{children}\n\t\t</button>\n\t);\n}\n\nexport default withTranslation()(Button) as ComponentType<Props>;\n","import * as React from 'react';\n\nexport type Props = {\n\t/** should contain &lt;Button /&gt; elements */\n\tchildren: React.ReactNode;\n\n\t/** show a horizontal row above the buttons */\n\tdividing?: boolean;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n};\n\n/**\n * ButtonRows align Buttons nicely for all relevant and/or related user actions such as saving or canceling changes.\n * To separate the ButtonRow from the content, the extra property `dividing` can be used.\n */\nconst ButtonRow = ({children, dividing, className, style}: Props) => (\n\t<div style={style} className={`di button-row ${dividing ? 'dividing' : ''} ${className || ''}`}>\n\t\t{children}\n\t</div>\n);\n\nButtonRow.defaultProps = {\n\tdividing: false\n};\n\nexport default ButtonRow;\n","import {useEffect, useRef} from 'react';\n\nconst isTouchEvent = (event: Event): event is TouchEvent => {\n\treturn !!(event as any).touches;\n};\n\nconst isInsideBoundingRect = (element: HTMLElement, event: MouseEvent | TouchEvent) => {\n\tconst rect = element.getBoundingClientRect();\n\n\tlet x, y;\n\tif (isTouchEvent(event)) {\n\t\tx = event.touches[0].pageX;\n\t\ty = event.touches[0].pageY;\n\t} else {\n\t\tx = event.pageX;\n\t\ty = event.pageY;\n\t}\n\n\treturn rect.left <= x && rect.right >= x && rect.top <= y && rect.bottom >= y;\n};\n\nconst useOutsideClick = (\n\telements: Array<HTMLElement | null>,\n\tcallback: (evt: MouseEvent | TouchEvent | undefined) => void\n) => {\n\tconst callbackRef = useRef(callback);\n\n\tuseEffect(() => {\n\t\tcallbackRef.current = callback;\n\t}, [callback]);\n\n\tuseEffect(() => {\n\t\tconst listener = (event: MouseEvent | TouchEvent) => {\n\t\t\tconst elementsNonNull = elements.filter((element) => element != null) as HTMLElement[];\n\t\t\tif (\n\t\t\t\telementsNonNull.every(\n\t\t\t\t\t(element) =>\n\t\t\t\t\t\telement !== event.target &&\n\t\t\t\t\t\t!element.contains(event.target as any) &&\n\t\t\t\t\t\t!isInsideBoundingRect(element, event)\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcallbackRef.current(event);\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener('mousedown', listener, true);\n\t\tdocument.addEventListener('touchstart', listener, true);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousedown', listener, true);\n\t\t\tdocument.removeEventListener('touchstart', listener, true);\n\t\t};\n\t}, [elements]);\n};\n\nexport default useOutsideClick;\n","import React, {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 React from 'react';\n\nimport iconAdd from '../../assets/svg/icon_add.svg';\nimport iconDel from '../../assets/svg/icon_cross.svg';\nimport iconEdit from '../../assets/svg/icon_edit.svg';\nimport iconConfig from '../../assets/svg/icon_gear.svg';\nimport iconDuplicate from '../../assets/svg/icon_duplicate.svg';\nimport iconDownload from '../../assets/svg/icon_download.svg';\nimport iconSearch from '../../assets/svg/icon_lupe.svg';\nimport iconIconKey from '../../assets/svg/icon_key.svg';\nimport iconSync from '../../assets/svg/icon_reload.svg';\nimport iconFullscreen from '../../assets/svg/icon_fullscreen.svg';\nimport iconDocumentation from '../../assets/svg/icon_help_light.svg';\nimport iconStar from '../../assets/svg/icon_star.svg';\n\nexport type Props = {\n\tadd?: boolean;\n\tdel?: boolean;\n\tedit?: boolean;\n\tconfig?: boolean;\n\tduplicate?: boolean;\n\tsearch?: boolean;\n\tdownload?: boolean;\n\tsync?: boolean;\n\tfullscreen?: boolean;\n\tstar?: boolean;\n\n\t/** key is reserved in React */\n\ticonKey?: boolean;\n\tdocumentation?: boolean;\n\n\t/** renders a larger version of the icon (24x24) */\n\tlarge?: boolean;\n\n\t/** inverts the colors of the icon for display on dark background */\n\tinverted?: boolean;\n\n\t/** @ignore */\n\tclassName?: string;\n};\n\nfunction getSrc(props: Props) {\n\tconst {add, del, edit, config, duplicate, search, download, sync, fullscreen, iconKey, documentation, star} = props;\n\n\tif (add) {\n\t\treturn iconAdd;\n\t} else if (del) {\n\t\treturn iconDel;\n\t} else if (edit) {\n\t\treturn iconEdit;\n\t} else if (config) {\n\t\treturn iconConfig;\n\t} else if (duplicate) {\n\t\treturn iconDuplicate;\n\t} else if (search) {\n\t\treturn iconSearch;\n\t} else if (download) {\n\t\treturn iconDownload;\n\t} else if (sync) {\n\t\treturn iconSync;\n\t} else if (fullscreen) {\n\t\treturn iconFullscreen;\n\t} else if (iconKey) {\n\t\treturn iconIconKey;\n\t} else if (documentation) {\n\t\treturn iconDocumentation;\n\t} else if (star) {\n\t\treturn iconStar;\n\t} else {\n\t\tthrow Error('getSrc: no icon type specified');\n\t}\n}\n\nfunction getAlt(props: Props) {\n\tconst {add, del, edit, config, duplicate, search, download, sync, fullscreen, iconKey, documentation, star} = props;\n\n\tif (add) {\n\t\treturn 'icon add';\n\t} else if (del) {\n\t\treturn 'icon delete';\n\t} else if (edit) {\n\t\treturn 'icon edit';\n\t} else if (config) {\n\t\treturn 'icon config';\n\t} else if (duplicate) {\n\t\treturn 'icon duplicate';\n\t} else if (search) {\n\t\treturn 'icon search';\n\t} else if (download) {\n\t\treturn 'icon download';\n\t} else if (sync) {\n\t\treturn 'icon sync';\n\t} else if (fullscreen) {\n\t\treturn 'icon fullscreen';\n\t} else if (iconKey) {\n\t\treturn 'icon iconKey';\n\t} else if (documentation) {\n\t\treturn 'icon documentation';\n\t} else if (star) {\n\t\treturn 'icon star';\n\t} else {\n\t\tthrow Error('getAlt: no icon type specified');\n\t}\n}\n\nexport default function Icon(props: Props) {\n\tlet style;\n\tif (props.large) {\n\t\tstyle = {width: 24, height: 24};\n\t} else {\n\t\tstyle = {width: 16, height: 16};\n\t}\n\tif (props.inverted) {\n\t\tstyle = {...style, filter: 'invert(1)'};\n\t}\n\n\treturn <img src={getSrc(props)} className={`di icon ${props.className || ''}`} alt={getAlt(props)} style={style} />;\n}\n","import React, {MouseEventHandler, PropsWithChildren, MouseEvent} from 'react';\nimport {Trans} from 'react-i18next';\nimport cx from 'classnames';\n\nimport Icon from '../icon/Icon';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport interface Props extends React.HTMLAttributes<HTMLSpanElement> {\n\t/** the label text, either a string or TranslationDescriptor */\n\ttext?: string | TranslationDescriptor;\n\n\t/** a smaller label */\n\tsmall?: boolean;\n\n\t/** a larger label */\n\tlarge?: boolean;\n\n\tonClick?: MouseEventHandler<HTMLSpanElement>;\n\n\t/** adds a delete button that triggers this callback function */\n\tonDelete?: (...args: Array<any>) => any;\n\n\tclassName?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\t'delete-button-data-testid'?: string;\n}\n\n/**\n * Label enables an easy way for marking or tagging elements.\n */\nexport default function Label({\n\ttext,\n\tsmall = false,\n\tlarge = false,\n\tonDelete,\n\tclassName,\n\tonClick,\n\tchildren,\n\t...dataTestIds\n}: PropsWithChildren<Props>) {\n\tfunction handleDelete(event: MouseEvent<HTMLSpanElement>) {\n\t\tevent.stopPropagation();\n\t\tif (onDelete) {\n\t\t\tonDelete();\n\t\t}\n\t}\n\n\treturn (\n\t\t<span\n\t\t\tonClick={onClick}\n\t\t\tclassName={cx('di label', className, {large, small, removable: onDelete, clickable: !!onClick})}\n\t\t\tdata-testid={dataTestIds['data-testid']}\n\t\t>\n\t\t\t{typeof text === 'string' ? text : text && <Trans i18nKey={text.id}>{text.defaultValue}</Trans>}\n\t\t\t<>{children}</>\n\t\t\t{onDelete && (\n\t\t\t\t<span data-testid={dataTestIds['delete-button-data-testid']} className=\"remove\" onClick={handleDelete}>\n\t\t\t\t\t<Icon del inverted />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</span>\n\t);\n}\n","import {\n\tarrow,\n\tautoUpdate,\n\tflip,\n\tFloatingPortal,\n\toffset,\n\tsafePolygon,\n\tshift,\n\tsize,\n\tuseClick,\n\tuseDismiss,\n\tuseFloating,\n\tuseFocus,\n\tuseHover,\n\tuseInteractions\n} from '@floating-ui/react';\nimport cx from 'classnames';\nimport React, {useEffect, useRef} from 'react';\n\nexport type Placement =\n\t| 'top'\n\t| 'bottom'\n\t| 'left'\n\t| 'right'\n\t| 'top-start'\n\t| 'top-end'\n\t| 'bottom-start'\n\t| 'bottom-end'\n\t| 'right-start'\n\t| 'right-end'\n\t| 'left-start'\n\t| 'left-end';\n\nexport type Props = {\n\t/** Element to toggle the Popup */\n\thandler: React.ReactNode;\n\n\t/** Content to be displayed */\n\tchildren: React.ReactNode;\n\n\t/** If true, displays the Popup's content */\n\topen: boolean;\n\n\t/** Function, executed when the Popup gets closed */\n\tonOpenChange: (open: boolean) => void;\n\n\t/** (Optional) if set, sets the direction in which the content should be displayed */\n\tplacement?: Placement;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** (Optional) If set to true, the content is hidden via styles, but still exists in the DOM tree */\n\tpreventDestroyContentOnHide?: boolean;\n\n\t/** (Optional) Class name of the handler wrapping element */\n\thandlerWrapperClassName?: string;\n\n\t/** (Optional) Interaction mode to open the popup */\n\tmode?: Array<'click' | 'hover' | 'focus'>;\n\n\t/** (Optional) Disables the Popup */\n\tdisabled?: boolean;\n};\n\n// Margin from the edge of the viewport\nconst MARGIN = 16;\n\n/**\n * Popup displays content within a small modal.\n * Its usage is highly flexible and used in several other components.\n */\nexport default function Popup({\n\tplacement = 'bottom',\n\tmode = ['click'],\n\tdisabled,\n\thandler,\n\thandlerWrapperClassName,\n\tpreventDestroyContentOnHide,\n\topen,\n\tonOpenChange,\n\tclassName,\n\tchildren\n}: Props) {\n\tconst arrowRef = useRef<HTMLDivElement>(null);\n\n\tconst {\n\t\telements,\n\t\tupdate,\n\t\trefs,\n\t\tfloatingStyles,\n\t\tcontext,\n\t\tmiddlewareData,\n\t\tplacement: computedPlacement\n\t} = useFloating({\n\t\tplacement,\n\t\topen,\n\t\tonOpenChange,\n\t\twhileElementsMounted: !preventDestroyContentOnHide ? autoUpdate : undefined,\n\t\tmiddleware: [\n\t\t\toffset({\n\t\t\t\tmainAxis: 12\n\t\t\t}),\n\t\t\tflip({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true\n\t\t\t}),\n\t\t\tshift({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true\n\t\t\t}),\n\t\t\tsize({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true,\n\t\t\t\tapply({availableHeight, availableWidth, elements}) {\n\t\t\t\t\tconst width = `${Math.max(0, availableWidth - MARGIN)}px`;\n\t\t\t\t\tconst height = `${Math.max(0, availableHeight - MARGIN)}px`;\n\t\t\t\t\telements.floating.style.maxWidth = width;\n\t\t\t\t\telements.floating.style.maxHeight = height;\n\t\t\t\t}\n\t\t\t}),\n\t\t\tarrow({\n\t\t\t\telement: arrowRef\n\t\t\t})\n\t\t]\n\t});\n\n\tuseEffect(() => {\n\t\tif (preventDestroyContentOnHide && open && elements.reference && elements.floating) {\n\t\t\tconst cleanup = autoUpdate(elements.reference, elements.floating, update);\n\t\t\treturn cleanup;\n\t\t}\n\t}, [elements.floating, elements.reference, open, update, preventDestroyContentOnHide]);\n\n\tconst click = useClick(context, {\n\t\tenabled: !disabled && mode.includes('click'),\n\t\tkeyboardHandlers: false, // Prevent space key from being blocked in input fields (floating-ui issue #1812)\n\t});\n\tconst hover = useHover(context, {\n\t\tenabled: !disabled && mode.includes('hover'),\n\t\thandleClose: safePolygon()\n\t});\n\tconst focus = useFocus(context, {enabled: !disabled && mode.includes('focus')});\n\tconst dismiss = useDismiss(context);\n\tconst {getReferenceProps, getFloatingProps} = useInteractions([click, hover, focus, dismiss]);\n\n\treturn (\n\t\t<>\n\t\t\t<span\n\t\t\t\tstyle={{display: 'inline-block'}}\n\t\t\t\tclassName={cx('popup-handler-wrapper', handlerWrapperClassName)}\n\t\t\t\tref={refs.setReference}\n\t\t\t\t{...getReferenceProps()}\n\t\t\t>\n\t\t\t\t{handler}\n\t\t\t</span>\n\t\t\t{(open || preventDestroyContentOnHide) && (\n\t\t\t\t<FloatingPortal>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cx('di popup-wrapper', {hidden: preventDestroyContentOnHide && !open})}\n\t\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\t\tstyle={{...floatingStyles, zIndex: 100000}}\n\t\t\t\t\t\t{...getFloatingProps()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className={cx('di popup', computedPlacement, className)}>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={cx('popup-arrow', computedPlacement)}\n\t\t\t\t\t\t\t\tref={arrowRef}\n\t\t\t\t\t\t\t\tstyle={{left: middlewareData.arrow?.x, top: middlewareData.arrow?.y}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<div className=\"popup-content\">{children}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</FloatingPortal>\n\t\t\t)}\n\t\t</>\n\t);\n}\n","import React, {useState} from 'react';\n\nimport Popup, {Placement} from '../popup/Popup';\n\nexport type Props = {\n\t/** the Bubble content */\n\tcontent: React.ReactNode;\n\n\t/** inverts the colors */\n\tinverted?: boolean;\n\n\t/** @ignore */\n\tchildren: React.ReactNode;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** hides the bubble */\n\tdisabled?: boolean;\n\n\t/** changed the direction */\n\tdirection?: Placement;\n};\n\n/**\n * Bubbles are best used to provide some additional information like short instructions or help texts, which are then going to be displayed on Mouse-Over.\n */\nexport default function Bubble({content, inverted, children, disabled, style, direction, className}: Props) {\n\tconst [open, setOpen] = useState(false);\n\treturn (\n\t\t<Popup\n\t\t\topen={open}\n\t\t\tonOpenChange={setOpen}\n\t\t\thandler={children}\n\t\t\tdisabled={disabled}\n\t\t\tmode={['hover']}\n\t\t\tplacement={direction ? direction : 'top'}\n\t\t\tclassName={`bubble ${inverted ? 'inverted' : ''} ${className ? className : ''}`}\n\t\t>\n\t\t\t<span className={`bubble-content`} style={style}>\n\t\t\t\t{content}\n\t\t\t</span>\n\t\t</Popup>\n\t);\n}\n","import React, {useState} from 'react';\n\nimport Popup, {Placement} from '../popup/Popup';\n\nexport type Props = {\n\t/** Content of the Tooltip */\n\tcontent: React.ReactNode;\n\n\t/** Enabler of the Tooltip */\n\tchildren: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** (Optional) if set, disables the &lt;Tooltip/&gt; from opening */\n\tdisabled?: boolean;\n\n\t/** (Optional) if set, opens &lt;Tooltip/&gt; in given direction, defaults to 'right' */\n\tdirection?: Placement;\n};\n\n/**\n * Tooltip is best used to display some short additional information or description\n */\nexport default function Tooltip({content, children, className, direction, disabled}: Props) {\n\tconst [open, setOpen] = useState(false);\n\n\treturn (\n\t\t<Popup\n\t\t\topen={open}\n\t\t\tdisabled={disabled}\n\t\t\tmode={['hover']}\n\t\t\tonOpenChange={setOpen}\n\t\t\thandler={children}\n\t\t\tplacement={direction ? direction : 'right'}\n\t\t\tclassName={`tooltip inverted ${className ? className : ''}`}\n\t\t>\n\t\t\t<span className=\"tooltip-content\">{content}</span>\n\t\t</Popup>\n\t);\n}\n","import * as React from 'react';\n\nimport Bubble from '../bubble/Bubble';\n\ntype Page = {\n\tname: string;\n\trenderHeading: () => React.ReactNode;\n\trenderBody?: () => React.ReactNode;\n\ttabDescription?: string;\n};\n\ntype State = {\n\tcurrentTab: string | null | undefined;\n};\n\nexport type Props = {\n\t/** Array of pages to be displayed */\n\tpages: Array<Page>;\n\n\t/** (Optional) if set, disables tab */\n\tdisabled?: boolean;\n\n\t/** (Optional) function, executed if tabs change */\n\tonChange?: (tab: string) => void;\n\n\t/** (Optional) sets the current tab */\n\tcurrentTab?: string | null | undefined;\n};\n\n/**\n * Tabs add the possibility to unite several homogeneous pages into one.\n * Unlike RouteTabs, Tabs cannot be accessed directly via the browser's history\n */\nexport default class Tabs extends React.Component<Props, State> {\n\tstate: State = {\n\t\tcurrentTab: this.props.pages.length ? this.props.pages[0].name : null\n\t};\n\n\thandleClick: (tab: string) => void = (tab: string) => {\n\t\tif (this.props.onChange) {\n\t\t\tthis.props.onChange(tab);\n\t\t} else if (typeof this.props.currentTab === 'undefined') {\n\t\t\tthis.setState({\n\t\t\t\tcurrentTab: tab\n\t\t\t});\n\t\t}\n\t};\n\n\tcurrentTabPage: () => Page | null | undefined = (): Page | null | undefined => {\n\t\tconst currentTab = typeof this.props.currentTab === 'string' ? this.props.currentTab : this.state.currentTab;\n\t\treturn this.props.pages.find(({name}) => currentTab === name);\n\t};\n\n\tisCurrentTab: (tab: string) => boolean = (tab: string) => {\n\t\tconst currentTab = typeof this.props.currentTab === 'string' ? this.props.currentTab : this.state.currentTab;\n\t\treturn currentTab === tab;\n\t};\n\n\trenderBody = () => {\n\t\tconst page = this.currentTabPage();\n\n\t\tif (page && typeof page.renderBody === 'function') {\n\t\t\treturn page.renderBody();\n\t\t}\n\n\t\treturn null;\n\t};\n\n\trender() {\n\t\tconst {pages, disabled} = this.props;\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t<div className=\"di tabs\">\n\t\t\t\t\t{pages.map(({name, renderHeading, tabDescription}) =>\n\t\t\t\t\t\ttabDescription ? (\n\t\t\t\t\t\t\t<Bubble inverted key={name} content={tabDescription} className=\"bubble-tab-description\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''} ${\n\t\t\t\t\t\t\t\t\t\tthis.isCurrentTab(name) ? 'active' : ''\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tonClick={() => !disabled && this.handleClick(name)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderHeading()}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</Bubble>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\t\t\t\t\tkey={name}\n\t\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''} ${\n\t\t\t\t\t\t\t\t\tthis.isCurrentTab(name) ? 'active' : ''\n\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\tonClick={() => !disabled && this.handleClick(name)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderHeading()}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{this.renderBody()}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport '../../assets/search-box.css';\nimport {ComponentType, CSSProperties} from 'react';\n\nimport Icon from '../icon/Icon';\nimport Button from '../button/Button';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** Placeholder text for input field `(string | TranslationDescriptor)` */\n\tplaceholder: string | TranslationDescriptor;\n\n\t/** Function to call if the input changes */\n\tonChange: (value: string) => void;\n\n\t/** Function to call if the search is triggered (button press or return in search field) */\n\tonSubmit?: (value: string) => void;\n\n\t/** if true, a button is shown that clears the input */\n\tclearable?: boolean;\n\n\t/** Value that should initially be displayed in the text box */\n\tinitialValue: string | null | undefined;\n\n\t/** Wrapper styles */\n\tstyle: CSSProperties | undefined;\n};\n\ntype State = {\n\tquery: string;\n};\n\nconst ClearButton = ({\n\tonChange,\n\tinputElement,\n\tstyle\n}: {\n\tonChange: (value: string) => void;\n\tinputElement: HTMLElement | null | undefined;\n\tstyle?: React.CSSProperties;\n}) => (\n\t<Button\n\t\tnaked\n\t\tonClick={() => {\n\t\t\tonChange('');\n\n\t\t\tif (inputElement) {\n\t\t\t\tinputElement.focus();\n\t\t\t}\n\t\t}}\n\t\tstyle={style}\n\t>\n\t\t<Icon del />\n\t</Button>\n);\n\n/**\n * SearchBox is used for searching content and provides a set of `props` for different user experiences\n */\nclass SearchBox extends React.Component<Props & WithTranslation, State> {\n\tstate: State = {\n\t\tquery: this.props.initialValue || ''\n\t};\n\tinput: HTMLInputElement | null | undefined;\n\n\tprintPlaceholder(): string {\n\t\tconst {t, placeholder} = this.props;\n\n\t\tif (typeof placeholder === 'object') {\n\t\t\treturn t(placeholder.id, {\n\t\t\t\tdefaultValue: placeholder.defaultValue\n\t\t\t});\n\t\t} else {\n\t\t\treturn placeholder;\n\t\t}\n\t}\n\n\thandleChange: (value: string) => void = (value: string) => {\n\t\tconst {onChange} = this.props;\n\t\tthis.setState({\n\t\t\tquery: value\n\t\t});\n\t\tonChange(value);\n\t};\n\n\thandleKeyUp: (arg0: any) => void = ({key}) => {\n\t\tconst {onSubmit} = this.props;\n\t\tconst {query} = this.state;\n\n\t\tif (key === 'Enter' && typeof onSubmit === 'function') {\n\t\t\tonSubmit(query);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {onSubmit, style, clearable} = this.props;\n\t\tconst {query} = this.state;\n\t\treturn (\n\t\t\t<div className=\"search-box\" style={style}>\n\t\t\t\t<input\n\t\t\t\t\tref={(input) => {\n\t\t\t\t\t\tthis.input = input;\n\t\t\t\t\t}}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={query}\n\t\t\t\t\tplaceholder={this.printPlaceholder()}\n\t\t\t\t\tonKeyUp={this.handleKeyUp}\n\t\t\t\t\tonChange={({target: {value}}) => this.handleChange(value)}\n\t\t\t\t/>\n\t\t\t\t{typeof onSubmit === 'function' ? (\n\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t{query && clearable && (\n\t\t\t\t\t\t\t<ClearButton\n\t\t\t\t\t\t\t\tonChange={this.handleChange}\n\t\t\t\t\t\t\t\tinputElement={this.input}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tright: 30\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Button naked onClick={() => onSubmit(query)}>\n\t\t\t\t\t\t\t<Icon search />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t) : query && clearable ? (\n\t\t\t\t\t<ClearButton onChange={this.handleChange} inputElement={this.input} />\n\t\t\t\t) : (\n\t\t\t\t\t<Button naked disabled>\n\t\t\t\t\t\t<Icon search />\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default withTranslation()(SearchBox) as ComponentType<Props>;\n"],"names":["React","size","Button","elements"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../src/components/accordion/Accordion.tsx","../src/components/accordionComponents/AccordionItem.tsx","../src/components/button/Button.tsx","../src/components/button/ButtonRow.tsx","../src/hooks/useOutsideClick.ts","../src/components/modalComponents/ModalWindow.tsx","../src/components/modal/Modal.tsx","../src/components/modalComponents/ModalContainer.tsx","../src/components/spinner/Spinner.tsx","../src/components/spinner/SpinnerContainer.tsx","../src/components/input/Checkbox.tsx","../src/components/confirm/utils.ts","../src/components/confirm/Confirm.tsx","../src/components/confirm/ConfirmProvider.tsx","../src/components/confirm/useConfirm.ts","../src/components/confirm/withConfirm.tsx","../src/assets/svg/icon_add.svg","../src/assets/svg/icon_cross.svg","../src/assets/svg/icon_edit.svg","../src/assets/svg/icon_gear.svg","../src/assets/svg/icon_duplicate.svg","../src/assets/svg/icon_download.svg","../src/assets/svg/icon_lupe.svg","../src/assets/svg/icon_key.svg","../src/assets/svg/icon_reload.svg","../src/assets/svg/icon_fullscreen.svg","../src/assets/svg/icon_help_light.svg","../src/assets/svg/icon_star.svg","../src/components/icon/Icon.tsx","../src/components/label/Label.tsx","../src/components/popup/Popup.tsx","../src/components/bubble/Bubble.tsx","../src/components/tooltip/Tooltip.tsx","../src/components/tabs/Tabs.tsx","../src/components/input/SearchBox.tsx"],"sourcesContent":["import * as React from 'react';\n\nexport type Props = {\n\t/** Should contain Array of &lt;AccordionItems/&gt; elements */\n\tchildren?: Array<React.ReactNode>;\n\n\t/** (Optional) sets additional class for styling purposes */\n\taccordionClass?: string;\n\n\t/** Function to be called if active &lt;AccordionItems/&gt; gets changed */\n\tonPageChange?: (newPageNumber: number) => any;\n\n\t/** (Optional) Index of the &lt;AccordionItem/&gt; which should be opened on initial render cycle */\n\tdefaultOpenPageIndex?: number;\n};\n\ntype State = {\n\tcurrentPageIndex: number;\n};\n\n/**\n * Accordions are best used to display homogenous information, e.g. multiple configurations which would take up a lot of space otherwise.\n */\nexport default class Accordion extends React.Component<Props, State> {\n\tstate: State = {\n\t\tcurrentPageIndex: -1\n\t};\n\n\tcomponentDidMount() {\n\t\tconst {defaultOpenPageIndex} = this.props;\n\n\t\tif (defaultOpenPageIndex !== null && defaultOpenPageIndex !== undefined) {\n\t\t\tthis.handleAccordionToggle(defaultOpenPageIndex);\n\t\t}\n\t}\n\n\thandleAccordionToggle: (index: number) => void = (index: number) => {\n\t\tconst {onPageChange} = this.props;\n\t\tconst newPageIndex = this.state.currentPageIndex !== index ? index : -1;\n\t\tthis.setState({\n\t\t\tcurrentPageIndex: newPageIndex\n\t\t});\n\n\t\tif (onPageChange) {\n\t\t\tonPageChange(newPageIndex);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {children, accordionClass} = this.props;\n\t\tconst {currentPageIndex} = this.state;\n\t\treturn (\n\t\t\t<div className={accordionClass ? `di accordion ${accordionClass}` : 'di accordion'}>\n\t\t\t\t{children &&\n\t\t\t\t\tchildren.map((child: any, index) =>\n\t\t\t\t\t\tchild ? (\n\t\t\t\t\t\t\t<child.type\n\t\t\t\t\t\t\t\tkey={index}\n\t\t\t\t\t\t\t\tindex={index}\n\t\t\t\t\t\t\t\tisOpen={currentPageIndex === index}\n\t\t\t\t\t\t\t\ttoggle={() => this.handleAccordionToggle(index)}\n\t\t\t\t\t\t\t\t{...child.props}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : null\n\t\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\n\ntype Info = {\n\ttext: string;\n\tcssStyle: Record<string, any>;\n};\n\nexport type Props = {\n\t/** (Optional) Displays either numeric- or text-based badge in front of the &lt;AccordionItems/&gt; */\n\tbadge?: (number | string | React.ReactNode) | null | undefined;\n\n\t/** @ignore */\n\tchildren?: React.ReactNode;\n\n\t/** (Optional) Displays additional information, which is visible in \"closed\" state */\n\tinfo1?: Info;\n\n\t/** If true, expands &lt;AccordionItems/&gt; */\n\tisOpen?: boolean;\n\n\t/** (Optional) Sets additional classes for styling purposes */\n\titemClasses?: string;\n\n\t/** Title of &lt;AccordionItems/&gt; */\n\ttitle: string | React.ReactNode;\n\n\t/** (Optional) Tooltip of &lt;AccordionItems/&gt; */\n\ttitleTooltip?: string;\n\n\t/** Function which is called to open/close &lt;AccordionItems/&gt; */\n\ttoggle?: () => void;\n\n\t/** (Optional) Enables additional handler, e.g., for editing or deleting &lt;AccordionItems/&gt; */\n\ttools?: Array<React.ReactNode>;\n\n\t/** @ignore */\n\t'data-testid'?: string | undefined;\n};\n\nexport default class AccordionItem extends React.PureComponent<Props> {\n\trender() {\n\t\tconst {badge, children, isOpen, info1, itemClasses, title, titleTooltip, toggle, tools, ...rest} = this.props;\n\t\tconst accordionItemClasses = ['item'];\n\n\t\tif (itemClasses) accordionItemClasses.push(itemClasses);\n\t\tif (isOpen) accordionItemClasses.push('open');\n\n\t\treturn (\n\t\t\t<div className={accordionItemClasses.join(' ')}>\n\t\t\t\t<div className=\"head\">\n\t\t\t\t\t<span className=\"title\" onClick={toggle} data-testid={rest['data-testid']}>\n\t\t\t\t\t\t<h1 title={titleTooltip}>{title}</h1>\n\t\t\t\t\t\t{badge && (\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclassName=\"di label\"\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tmargin: '0 0 0 10px',\n\t\t\t\t\t\t\t\t\tbackgroundColor: '#ddd',\n\t\t\t\t\t\t\t\t\tborderColor: 'transparent'\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{badge}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{info1 && <span style={info1.cssStyle}>{info1.text}</span>}\n\t\t\t\t\t</span>\n\t\t\t\t\t<span className=\"tools\">\n\t\t\t\t\t\t{tools &&\n\t\t\t\t\t\t\ttools.map((toolComponent, index) => (\n\t\t\t\t\t\t\t\t<span key={index} className=\"tool\">\n\t\t\t\t\t\t\t\t\t{toolComponent}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</span>\n\t\t\t\t</div>\n\t\t\t\t<div className=\"cont\">{children}</div>\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import React, {ComponentType} from 'react';\nimport cx from 'classnames';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** primary style, mutually exclusive with _danger_ and _naked_ */\n\tprimary?: boolean;\n\n\t/** danger style, mutually exclusive with _primary_ and _naked_ */\n\tdanger?: boolean;\n\n\t/** render the button without border and background color, mutually exclusive with _primary_ and _danger_ */\n\tnaked?: boolean;\n\n\t/** a title tooltip */\n\ttitle?: (TranslationDescriptor | null | undefined) | string;\n\n\t/** button | submit | reset */\n\ttype?: 'button' | 'submit' | 'reset';\n\n\t/** a click handler */\n\tonClick?: (...args: Array<any>) => any;\n\n\t/** a smaller button */\n\tsmall?: boolean;\n\n\t/** disable the button */\n\tdisabled?: boolean;\n\n\t/** @ignore */\n\tchildren?: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\ttabIndex?: number;\n};\n\n/**\n * Buttons are used to inform the user about a potential user interaction, which then on interaction causes an action.\n * To create a standardized look and feel, different props can be passed to the Button.\n */\nfunction Button({\n\tchildren,\n\ttitle,\n\ttype,\n\tdisabled,\n\tonClick,\n\tstyle,\n\ttabIndex,\n\tt,\n\tprimary,\n\tdanger,\n\tnaked,\n\tclassName,\n\tsmall,\n\t...rest\n}: Props & WithTranslation) {\n\tlet btnTitle = title;\n\n\tif (title && typeof title !== 'string') {\n\t\tbtnTitle = t(title.id, {\n\t\t\tdefaultValue: title.defaultValue\n\t\t});\n\t}\n\n\treturn (\n\t\t<button\n\t\t\tdata-testid={rest['data-testid']}\n\t\t\ttype={type || 'button'}\n\t\t\tclassName={cx('di button', className, {small, primary, danger, link: naked})}\n\t\t\ttitle={typeof btnTitle === 'string' ? btnTitle : undefined}\n\t\t\tdisabled={disabled}\n\t\t\tonClick={onClick}\n\t\t\tstyle={style}\n\t\t\ttabIndex={tabIndex}\n\t\t>\n\t\t\t{children}\n\t\t</button>\n\t);\n}\n\nexport default withTranslation()(Button) as ComponentType<Props>;\n","import * as React from 'react';\n\nexport type Props = {\n\t/** should contain &lt;Button /&gt; elements */\n\tchildren: React.ReactNode;\n\n\t/** show a horizontal row above the buttons */\n\tdividing?: boolean;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n};\n\n/**\n * ButtonRows align Buttons nicely for all relevant and/or related user actions such as saving or canceling changes.\n * To separate the ButtonRow from the content, the extra property `dividing` can be used.\n */\nconst ButtonRow = ({children, dividing, className, style}: Props) => (\n\t<div style={style} className={`di button-row ${dividing ? 'dividing' : ''} ${className || ''}`}>\n\t\t{children}\n\t</div>\n);\n\nButtonRow.defaultProps = {\n\tdividing: false\n};\n\nexport default ButtonRow;\n","import {useEffect, useRef} from 'react';\n\nconst isTouchEvent = (event: Event): event is TouchEvent => {\n\treturn !!(event as any).touches;\n};\n\nconst isInsideBoundingRect = (element: HTMLElement, event: MouseEvent | TouchEvent) => {\n\tconst rect = element.getBoundingClientRect();\n\n\tlet x, y;\n\tif (isTouchEvent(event)) {\n\t\tx = event.touches[0].pageX;\n\t\ty = event.touches[0].pageY;\n\t} else {\n\t\tx = event.pageX;\n\t\ty = event.pageY;\n\t}\n\n\treturn rect.left <= x && rect.right >= x && rect.top <= y && rect.bottom >= y;\n};\n\nconst useOutsideClick = (\n\telements: Array<HTMLElement | null>,\n\tcallback: (evt: MouseEvent | TouchEvent | undefined) => void\n) => {\n\tconst callbackRef = useRef(callback);\n\n\tuseEffect(() => {\n\t\tcallbackRef.current = callback;\n\t}, [callback]);\n\n\tuseEffect(() => {\n\t\tconst listener = (event: MouseEvent | TouchEvent) => {\n\t\t\tconst elementsNonNull = elements.filter((element) => element != null) as HTMLElement[];\n\t\t\tif (\n\t\t\t\telementsNonNull.every(\n\t\t\t\t\t(element) =>\n\t\t\t\t\t\telement !== event.target &&\n\t\t\t\t\t\t!element.contains(event.target as any) &&\n\t\t\t\t\t\t!isInsideBoundingRect(element, event)\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tcallbackRef.current(event);\n\t\t\t}\n\t\t};\n\t\tdocument.addEventListener('mousedown', listener, true);\n\t\tdocument.addEventListener('touchstart', listener, true);\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('mousedown', listener, true);\n\t\t\tdocument.removeEventListener('touchstart', listener, true);\n\t\t};\n\t}, [elements]);\n};\n\nexport default useOutsideClick;\n","import {useEffect, useRef, useState} from 'react';\nimport Draggable from 'react-draggable';\n\nimport {Props} from '../modal/Modal';\nimport useOutsideClick from '../../hooks/useOutsideClick';\n\nexport default function ModalWindow({className, width, header, content, footer, onOutsideClick}: Props) {\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst [rootElement, setRootElement] = useState<HTMLElement | null>(null);\n\n\tuseEffect(() => {\n\t\tsetRootElement(ref.current);\n\t}, []);\n\n\tuseOutsideClick([rootElement], () => {\n\t\tif (onOutsideClick) onOutsideClick();\n\t});\n\n\treturn (\n\t\t<Draggable handle=\".modal-header\" nodeRef={ref}>\n\t\t\t<div\n\t\t\t\tref={ref}\n\t\t\t\tclassName={`modal-window ${className || ''}`}\n\t\t\t\tstyle={{\n\t\t\t\t\tmaxWidth: width\n\t\t\t\t}}\n\t\t\t>\n\t\t\t\t{header && <div className=\"modal-header\">{header}</div>}\n\t\t\t\t{content && <div className=\"modal-content\">{content}</div>}\n\t\t\t\t{footer && <div className=\"modal-footer\">{footer}</div>}\n\t\t\t</div>\n\t\t</Draggable>\n\t);\n}\n","import React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport ModalWindow from '../modalComponents/ModalWindow';\n\nexport type Props = {\n\theader?: React.ReactNode;\n\tcontent?: React.ReactNode;\n\tfooter?: React.ReactNode;\n\n\t/** the CSS width setting, either a number or string */\n\twidth?: string | number;\n\tclassName?: string;\n\n\t/** callback function that is executed when the users click outside the modal */\n\tonOutsideClick?: (event?: Event) => void;\n\tonMouseDown?: (event: React.SyntheticEvent<HTMLElement>) => void;\n};\n\nexport default class Modal extends React.Component<\n\tProps,\n\t{\n\t\tclassName: string;\n\t}\n> {\n\tstatic defaultProps: {\n\t\twidth: string;\n\t} = {\n\t\twidth: '60%'\n\t};\n\tcontainer: HTMLDivElement | undefined;\n\tmodalRoot: HTMLElement | null | undefined;\n\ttimeoutId: NodeJS.Timeout | undefined;\n\n\tconstructor(props: Props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tclassName: 'di modal'\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.container = document.createElement('div');\n\t\tthis.modalRoot = document.getElementById('modal-root');\n\n\t\tif (this.modalRoot) {\n\t\t\tthis.modalRoot.appendChild(this.container);\n\t\t} else if (document.body) {\n\t\t\tdocument.body.appendChild(this.container);\n\t\t}\n\n\t\tif (this.props.onOutsideClick) {\n\t\t\twindow.addEventListener('keydown', this.keyEventHandler);\n\t\t}\n\n\t\t// set the show class after 10ms for animation\n\t\tthis.timeoutId = setTimeout(\n\t\t\t() =>\n\t\t\t\tthis.setState({\n\t\t\t\t\tclassName: `di modal show ${this.props.className || ''}`\n\t\t\t\t}),\n\t\t\t10\n\t\t);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif (this.container) {\n\t\t\tif (this.modalRoot) {\n\t\t\t\tthis.modalRoot.removeChild(this.container);\n\t\t\t} else if (document.body) {\n\t\t\t\tdocument.body.removeChild(this.container);\n\t\t\t}\n\t\t}\n\n\t\tif (this.props.onOutsideClick) {\n\t\t\twindow.removeEventListener('keydown', this.keyEventHandler);\n\t\t}\n\n\t\tif (this.timeoutId) {\n\t\t\tclearTimeout(this.timeoutId);\n\t\t}\n\t}\n\n\tkeyEventHandler: (event: KeyboardEvent) => void = (event: KeyboardEvent) => {\n\t\tif (event.key === 'Escape' && this.props.onOutsideClick) {\n\t\t\tthis.props.onOutsideClick(event);\n\t\t}\n\t};\n\n\trender() {\n\t\tif (!this.container) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn ReactDOM.createPortal(\n\t\t\t<div className={this.state.className} onMouseDown={this.props.onMouseDown}>\n\t\t\t\t<ModalWindow {...this.props} />\n\t\t\t</div>,\n\t\t\tthis.container\n\t\t);\n\t}\n}\n","import React from 'react';\n\nexport type Props = Record<string, never>;\n\nexport default class ModalContainer extends React.PureComponent<Props> {\n\trender() {\n\t\treturn <div id=\"modal-root\" />;\n\t}\n}\n","import React from 'react';\n\nexport type Props = {\n\t/** the size of the Spinner in px */\n\tsize?: number;\n\n\t/** @ignore */\n\tcenter?: boolean;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\n/**\n * Spinners usually show a loading indication.\n */\nexport default class Spinner extends React.Component<Props> {\n\tstatic defaultProps = {\n\t\tsize: 56,\n\t\tcenter: false\n\t};\n\n\trender() {\n\t\tconst {size = 56, center, ...dataAttrs} = this.props;\n\t\tlet style: React.CSSProperties = {\n\t\t\twidth: size,\n\t\t\theight: size\n\t\t};\n\n\t\tif (center) {\n\t\t\tstyle = {\n\t\t\t\t...style,\n\t\t\t\tposition: 'absolute',\n\t\t\t\ttop: '50%',\n\t\t\t\tleft: '50%',\n\t\t\t\tmarginTop: -size / 2,\n\t\t\t\tmarginLeft: -size / 2\n\t\t\t};\n\t\t}\n\n\t\treturn <div className=\"di spinner\" style={style} {...dataAttrs} />;\n\t}\n}\n","import React from 'react';\n\nimport Spinner from './Spinner';\n\nexport type Props = {\n\t/** controls the display of the Spinner */\n\tshow: boolean;\n\n\t/** the size of the Spinner in px */\n\tsize?: number;\n\n\t/** content to be rendered once the loading is done */\n\tchildren?: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n};\n\n/**\n * SpinnerContainer wraps the entire content and displays a loading indicator until the loading is done.\n */\nexport default class SpinnerContainer extends React.Component<Props> {\n\tstatic defaultProps: {\n\t\tsize: number;\n\t} = {\n\t\tsize: 56\n\t};\n\n\trender() {\n\t\tconst {show, size, children, className} = this.props;\n\t\tconst classNames = `di spinner-wrapper ${className ? className : ''}`;\n\t\treturn (\n\t\t\t<div className={classNames}>\n\t\t\t\t<div\n\t\t\t\t\tclassName={`di spinner-container ${show ? 'visible' : ''}`}\n\t\t\t\t\tdata-testid={this.props['data-testid']}\n\t\t\t\t>\n\t\t\t\t\t<Spinner size={size} center />\n\t\t\t\t</div>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** input type selector */\n\ttype?: 'checkbox' | 'radio' | 'toggle';\n\n\t/** Flag to preselect the status of the checkbox */\n\tvalue: boolean;\n\n\t/** Function, executed when toggling the checkbox */\n\tonChange: (nextStatus: boolean) => void;\n\n\t/** Optional input element tooltip */\n\ttitle?: TranslationDescriptor;\n\n\t/** Optional label for checkbox and radio button*/\n\tlabel?: TranslationDescriptor;\n\n\t/** visually indicate that the checkbox is disabled and disable onChange handler */\n\tdisabled?: boolean;\n\n\t/** Optional flag for toggle type: Render a small Toggle */\n\ttoggleSmall?: boolean;\n\n\t/** Optional flag for toggle type: Sets the slider color when the Toggle is truthy */\n\ttoggleColor?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\t'wrapper-data-testid'?: string;\n\n\t/** @ignore */\n\t'innerdiv-data-testid'?: string;\n};\n\nconst getWrapperClassName = (type: string, small: boolean) => {\n\tswitch (type) {\n\t\tcase 'checkbox':\n\t\tcase 'radio':\n\t\t\treturn 'di checkbox';\n\n\t\tcase 'toggle':\n\t\t\treturn small ? 'di toggle toggle-small' : 'di toggle';\n\n\t\tdefault:\n\t\t\tthrow Error(`type not support: ${type}`);\n\t}\n};\n\nconst getCheckboxClassName = (type: string, small: boolean) => {\n\tswitch (type) {\n\t\tcase 'checkbox':\n\t\t\treturn 'box';\n\n\t\tcase 'radio':\n\t\t\treturn 'radio';\n\n\t\tcase 'toggle':\n\t\t\treturn small ? 'switch switch-small' : 'switch';\n\n\t\tdefault:\n\t\t\tthrow Error(`type not support: ${type}`);\n\t}\n};\n\n/**\n * Checkbox for enabling user interaction can have one of multiple types which are defined via the `type` prop.\n */\nconst Checkbox = ({\n\ttype = 'checkbox',\n\tvalue,\n\tonChange,\n\ttitle,\n\tlabel,\n\tdisabled = false,\n\ttoggleSmall = false,\n\ttoggleColor = '#259b23',\n\tt,\n\t...other\n}: Props & WithTranslation) => {\n\tconst style =\n\t\ttype === 'toggle'\n\t\t\t? {\n\t\t\t\t\tbackgroundColor: value ? toggleColor : 'gray'\n\t\t\t\t}\n\t\t\t: {};\n\tconst tooltip = title\n\t\t? t(title.id, {\n\t\t\t\tdefaultValue: title.defaultValue\n\t\t\t})\n\t\t: undefined;\n\tconst labelText = label\n\t\t? t(label.id, {\n\t\t\t\tdefaultValue: label.defaultValue\n\t\t\t})\n\t\t: null;\n\treturn (\n\t\t<label\n\t\t\ttitle={tooltip}\n\t\t\tclassName={getWrapperClassName(type, toggleSmall)}\n\t\t\tdata-testid={other['wrapper-data-testid']}\n\t\t>\n\t\t\t<input\n\t\t\t\ttype=\"checkbox\"\n\t\t\t\tchecked={value}\n\t\t\t\tdisabled={disabled}\n\t\t\t\tonChange={() => onChange(!value)}\n\t\t\t\tdata-testid={other['data-testid']}\n\t\t\t/>\n\t\t\t<div\n\t\t\t\tclassName={getCheckboxClassName(type, toggleSmall)}\n\t\t\t\tstyle={style}\n\t\t\t\tdata-testid={other['innerdiv-data-testid']}\n\t\t\t/>\n\t\t\t{label && <span className=\"textlabel\">{labelText}</span>}\n\t\t</label>\n\t);\n};\n\nexport default withTranslation()(Checkbox) as React.ComponentType<Props>;\n","import * as React from 'react';\n\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport function isTranslationDescriptor(\n\targ: TranslationDescriptor | string | React.ReactElement\n): arg is TranslationDescriptor {\n\tconst result =\n\t\ttypeof arg === 'object' && typeof (arg as any).id === 'string' && typeof (arg as any).defaultValue === 'string';\n\n\tif (result) {\n\t\tconsole.warn(\n\t\t\t'Please use strings instead of TranslationDescriptors to initialize the Confirm modal, because TranslationDescriptors are deprecated'\n\t\t);\n\t}\n\n\treturn result;\n}\n","import * as React from 'react';\nimport {Trans} from 'react-i18next';\n\nimport Modal from '../modal/Modal';\nimport Button from '../button/Button';\nimport {TranslationDescriptor} from '../../types/i18n';\nimport {isTranslationDescriptor} from './utils';\n\nexport type Props = {\n\ttitle: string | TranslationDescriptor;\n\tmessage: string | React.ReactElement | TranslationDescriptor;\n\n\t/** @ignore */\n\tonAccept: (...args: Array<any>) => any;\n\n\t/** @ignore */\n\tonDecline: (...args: Array<any>) => any;\n\tacceptButtonLabel?: string | TranslationDescriptor;\n\tdeclineButtonLabel?: string | TranslationDescriptor;\n\tacceptButtonStyle?: 'primary' | 'danger';\n};\n\nfunction transformTextToElement(\n\tmessage: TranslationDescriptor | string | React.ReactElement\n): React.ReactElement | string {\n\tif (isTranslationDescriptor(message)) {\n\t\treturn <Trans i18nKey={message.id}>{message.defaultValue}</Trans>;\n\t}\n\treturn message;\n}\n\n/**\n * Confirm enables the possibility to open up a dialog within a modal, requiring additional user actions.\n * This component should not be used directly, instead use `@withConfirm` to inject a promise based confirm method\n */\nexport default function Confirm({\n\ttitle,\n\tmessage,\n\tonAccept,\n\tonDecline,\n\tacceptButtonLabel,\n\tdeclineButtonLabel,\n\tacceptButtonStyle = 'primary'\n}: Props) {\n\treturn (\n\t\t<Modal\n\t\t\theader={transformTextToElement(title)}\n\t\t\tcontent={transformTextToElement(message)}\n\t\t\tfooter={\n\t\t\t\t<div>\n\t\t\t\t\t<Button\n\t\t\t\t\t\tprimary={acceptButtonStyle === 'primary'}\n\t\t\t\t\t\tdanger={acceptButtonStyle === 'danger'}\n\t\t\t\t\t\tonClick={onAccept}\n\t\t\t\t\t>\n\t\t\t\t\t\t{acceptButtonLabel ? (\n\t\t\t\t\t\t\ttransformTextToElement(acceptButtonLabel)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Trans i18nKey=\"form.accept\">Accept</Trans>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button onClick={onDecline}>\n\t\t\t\t\t\t{declineButtonLabel ? (\n\t\t\t\t\t\t\ttransformTextToElement(declineButtonLabel)\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Trans i18nKey=\"form.decline\">Decline</Trans>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</Button>\n\t\t\t\t</div>\n\t\t\t}\n\t\t\twidth={500}\n\t\t/>\n\t);\n}\n","import React, {createContext, useState} from 'react';\n\nimport Confirm, {Props as ConfirmProps} from './Confirm';\n\ntype ConfirmOptions = {\n\ttitle: string;\n\tmessage: string | React.ReactElement;\n\tacceptButtonLabel?: string;\n\tdeclineButtonLabel?: string;\n\tacceptButtonStyle?: 'primary' | 'danger';\n};\n\nexport const ConfirmContext = createContext<{\n\tconfirm: (options: ConfirmOptions) => Promise<boolean>;\n}>({\n\tconfirm: () => Promise.reject(new Error('ConfirmProvider is missing!'))\n});\n\nfunction ConfirmProvider({children}: React.PropsWithChildren<Record<string, unknown>>) {\n\tconst [visible, setVisible] = useState<boolean>(false);\n\tconst [confirmProps, setConfirmProps] = useState<ConfirmProps>({\n\t\ttitle: '',\n\t\tmessage: '',\n\t\tonAccept: () => {},\n\t\tonDecline: () => {}\n\t});\n\n\tasync function confirm(options: ConfirmOptions) {\n\t\treturn new Promise<boolean>((resolve) => {\n\t\t\tsetVisible(true);\n\t\t\tsetConfirmProps({\n\t\t\t\t...options,\n\t\t\t\tonAccept: () => {\n\t\t\t\t\tsetVisible(false);\n\t\t\t\t\tresolve(true);\n\t\t\t\t},\n\t\t\t\tonDecline: () => {\n\t\t\t\t\tsetVisible(false);\n\t\t\t\t\tresolve(false);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\treturn (\n\t\t<ConfirmContext.Provider value={{confirm}}>\n\t\t\t{children}\n\t\t\t{visible && <Confirm {...confirmProps} />}\n\t\t</ConfirmContext.Provider>\n\t);\n}\n\nexport default ConfirmProvider;\n","import {useContext} from 'react';\n\nimport {ConfirmContext} from './ConfirmProvider';\n\nexport default function useConfirm() {\n\tconst context = useContext(ConfirmContext);\n\tif (!context) {\n\t\tthrow new Error('ConfirmProvider is missing');\n\t}\n\tconst {confirm} = context;\n\treturn confirm;\n}\n","import React from 'react';\nimport {useTranslation} from 'react-i18next';\n\nimport {TranslationDescriptor} from '../../types/i18n';\nimport useConfirm from './useConfirm';\nimport ConfirmProvider from './ConfirmProvider';\nimport {isTranslationDescriptor} from './utils';\n\nexport type ConfirmProps = {\n\tconfirm: (\n\t\ttitle: string | TranslationDescriptor,\n\t\tmessage: string | TranslationDescriptor | React.ReactElement,\n\t\tacceptButtonLabel?: string | TranslationDescriptor,\n\t\tdeclineButtonLabel?: string | TranslationDescriptor,\n\t\tresolveWithConfirmation?: boolean,\n\t\tacceptButtonStyle?: 'primary' | 'danger'\n\t) => Promise<void | boolean>;\n};\n\nexport default function withConfirm<P extends object>(WrappedComponent: React.ComponentType<P & ConfirmProps>) {\n\tfunction WithConfirm(props: P) {\n\t\tconst confirm = useConfirm();\n\t\tconst {t} = useTranslation();\n\n\t\tfunction trans(arg: TranslationDescriptor | string) {\n\t\t\tif (isTranslationDescriptor(arg)) {\n\t\t\t\treturn t(arg.id, {defaultValue: arg.defaultValue});\n\t\t\t}\n\t\t\treturn arg;\n\t\t}\n\n\t\tasync function deprecatedConfirm(\n\t\t\ttitle: string | TranslationDescriptor,\n\t\t\tmessage: string | TranslationDescriptor | React.ReactElement,\n\t\t\tacceptButtonLabel?: string | TranslationDescriptor,\n\t\t\tdeclineButtonLabel?: string | TranslationDescriptor,\n\t\t\tresolveWithConfirmation?: boolean,\n\t\t\tacceptButtonStyle?: 'primary' | 'danger'\n\t\t): Promise<boolean | void> {\n\t\t\tconst accepted = await confirm({\n\t\t\t\ttitle: trans(title),\n\t\t\t\tmessage: isTranslationDescriptor(message) ? trans(message) : message,\n\t\t\t\tacceptButtonLabel: acceptButtonLabel ? trans(acceptButtonLabel) : undefined,\n\t\t\t\tdeclineButtonLabel: declineButtonLabel ? trans(declineButtonLabel) : undefined,\n\t\t\t\tacceptButtonStyle\n\t\t\t});\n\n\t\t\tif (resolveWithConfirmation) {\n\t\t\t\treturn accepted;\n\t\t\t} else if (!accepted) {\n\t\t\t\treturn new Promise(() => {});\n\t\t\t}\n\t\t}\n\n\t\treturn <WrappedComponent {...props} confirm={deprecatedConfirm} />;\n\t}\n\n\treturn function WithConfirmWrapper(props: P) {\n\t\treturn (\n\t\t\t<ConfirmProvider>\n\t\t\t\t<WithConfirm {...props} />\n\t\t\t</ConfirmProvider>\n\t\t);\n\t};\n}\n","export default \"data:image/svg+xml,%3csvg%20id='icon-add_24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpolygon%20id='plus'%20points='20%2010%2014%2010%2014%204%2010%204%2010%2010%204%2010%204%2014%2010%2014%2010%2020%2014%2020%2014%2014%2020%2014%2020%2010'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-cross_24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cpolygon%20id='icon-cross_24'%20points='20%206.28%2017.87%204%2012%209.78%206.13%204%204%206.28%209.78%2011.97%204%2017.66%206.13%2019.93%2012%2014.15%2017.87%2019.93%2020%2017.66%2014.22%2011.97%2020%206.28'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-edit-24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='stift'%3e%3cpath%20d='M7.35,12.65a.5.5,0,0,0,0,.7l3.3,3.3a.5.5,0,0,0,.7,0l8.3-8.3A1.4,1.4,0,0,0,20,7.5v-1a1.4,1.4,0,0,0-.35-.85l-1.3-1.3A1.4,1.4,0,0,0,17.5,4h-1a1.4,1.4,0,0,0-.85.35Z'/%3e%3c/g%3e%3cpath%20d='M5.9,14.49c.06-.27.26-.33.45-.14l3.3,3.3c.19.19.13.39-.14.45l-4,.8a.3.3,0,0,1-.39-.39Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='icon-gear-24_sga'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='icon-gear-24_sga-2'%20data-name='icon-gear-24_sga'%3e%3cpath%20d='M22.82,14.06A1.25,1.25,0,0,0,24,13,7.66,7.66,0,0,0,24,12,7.66,7.66,0,0,0,24,11a1.25,1.25,0,0,0-1.13-1l-1.09,0A1.49,1.49,0,0,1,20.44,9c-.15-.47-.44-2-.07-2.37l.74-.81a1.16,1.16,0,0,0,0-1.5L19.7,2.87a1.16,1.16,0,0,0-1.5,0l-.81.74a1.5,1.5,0,0,1-1.54.27c-.44-.23-1.72-1.08-1.74-1.63l0-1.09A1.25,1.25,0,0,0,13,.05a7.66,7.66,0,0,0-1,0,7.66,7.66,0,0,0-1,.05,1.25,1.25,0,0,0-1,1.13l0,1.09A1.52,1.52,0,0,1,9,3.56c-.47.15-2,.44-2.37.07L5.8,2.89a1.16,1.16,0,0,0-1.5,0L2.86,4.3a1.18,1.18,0,0,0,0,1.5l.74.81A1.5,1.5,0,0,1,3.9,8.15c-.23.44-1.08,1.72-1.63,1.74l-1.09,0A1.25,1.25,0,0,0,.05,11a7.66,7.66,0,0,0,0,1,7.66,7.66,0,0,0,.05,1,1.25,1.25,0,0,0,1.13,1l1.09,0A1.47,1.47,0,0,1,3.55,15c.16.48.45,2,.08,2.37l-.74.81a1.16,1.16,0,0,0,0,1.5L4.3,21.13a1.16,1.16,0,0,0,1.5,0l.81-.74a1.5,1.5,0,0,1,1.54-.27c.44.23,1.72,1.08,1.75,1.63l0,1.09A1.25,1.25,0,0,0,11,24,7.66,7.66,0,0,0,12,24,7.66,7.66,0,0,0,13,24a1.25,1.25,0,0,0,1-1.13l0-1.09A1.49,1.49,0,0,1,15,20.44c.47-.15,2-.44,2.37-.07l.81.74a1.16,1.16,0,0,0,1.5,0l1.43-1.43a1.16,1.16,0,0,0,0-1.5l-.74-.81a1.5,1.5,0,0,1-.27-1.54c.23-.44,1.08-1.72,1.63-1.74ZM12,15.5A3.5,3.5,0,1,1,15.5,12,3.5,3.5,0,0,1,12,15.5Z'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%3e%3cpath%20d='M22.1,4.91a3,3,0,0,0-3-3H6.44a2.4,2.4,0,0,1,1.34-.4h12.6A2.12,2.12,0,0,1,22.5,3.62V17.26a1.42,1.42,0,0,1-.4,1Z'/%3e%3cpath%20d='M20.38,1H7.78A3,3,0,0,0,5.26,2.4H19.09A2.51,2.51,0,0,1,21.6,4.91V19.12A1.94,1.94,0,0,0,23,17.26V3.62A2.62,2.62,0,0,0,20.38,1Z'/%3e%3c/g%3e%3cg%3e%3cpath%20d='M4,21.5A1.5,1.5,0,0,1,2.5,20V5.8A1.5,1.5,0,0,1,4,4.3H18.2a1.5,1.5,0,0,1,1.5,1.5V20a1.5,1.5,0,0,1-1.5,1.5ZM9.5,18a.5.5,0,0,0,.5.5h2a.5.5,0,0,0,.5-.5V14.5H16a.5.5,0,0,0,.5-.5V12a.5.5,0,0,0-.5-.5H12.5V8a.5.5,0,0,0-.5-.5H10a.5.5,0,0,0-.5.5v3.5H6a.5.5,0,0,0-.5.5v2a.5.5,0,0,0,.5.5H9.5Z'/%3e%3cpath%20d='M18.2,4.8a1,1,0,0,1,1,1V20a1,1,0,0,1-1,1H4a1,1,0,0,1-1-1V5.8a1,1,0,0,1,1-1H18.2M9,11H6a1,1,0,0,0-1,1v2a1,1,0,0,0,1,1H9v3a1,1,0,0,0,1,1h2a1,1,0,0,0,1-1V15h3a1,1,0,0,0,1-1V12a1,1,0,0,0-1-1H13V8a1,1,0,0,0-1-1H10A1,1,0,0,0,9,8v3m9.2-7.2H4a2,2,0,0,0-2,2V20a2,2,0,0,0,2,2H18.2a2,2,0,0,0,2-2V5.8a2,2,0,0,0-2-2ZM6,14V12h4V8h2v4h4v2H12v4H10V14Z'/%3e%3c/g%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3cpolygon%20points='7.92%2012%202.84%207%2013%207%207.92%2012'/%3e%3crect%20x='5'%20y='2'%20width='6'%20height='5'/%3e%3crect%20x='2'%20y='14'%20width='12'%20height='1'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2016%2016'%3e%3cdefs%3e%3cstyle%3e%20.cls-1%20{%20fill:%20%23fff;%20}%20%3c/style%3e%3c/defs%3e%3cg%3e%3ccircle%20class='cls-1'%20cx='5.5'%20cy='5.5'%20r='4.5'/%3e%3cpath%20d='M5.5,2A3.5,3.5,0,1,1,2,5.5,3.5,3.5,0,0,1,5.5,2m0-1A4.5,4.5,0,1,0,10,5.5,4.49,4.49,0,0,0,5.5,1Z'/%3e%3c/g%3e%3crect%20x='6.79'%20y='10.04'%20width='7.74'%20height='2.16'%20transform='translate(10.98%20-4.28)%20rotate(45)'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20data-name='icon_key'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2027.02%2027'%3e%3cpath%20d='M35.07,16.5a8.52,8.52,0,0,0-7.69,12L17.2,38.8a2.46,2.46,0,0,0,0,3.46,2.41,2.41,0,0,0,3.42,0l1.69-1.7,2.91,2.94L31,37.63l-2.92-3,2.44-2.46a8.31,8.31,0,0,0,4.51,1.33,8.53,8.53,0,0,0,0-17Zm0,3.91A4.62,4.62,0,1,1,30.5,25,4.6,4.6,0,0,1,35.07,20.41Z'%20transform='translate(-16.49%20-16.5)'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Layer_1'%20data-name='Layer%201'%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%2024%2024'%3e%3cg%20id='Pfeilende'%3e%3cpath%20d='M24,10H15l9-8.93Z'/%3e%3c/g%3e%3cpath%20d='M18.45,18.78A9.33,9.33,0,0,1,2.62,14.86,9.8,9.8,0,0,1,8.89,2.69,9.42,9.42,0,0,1,20.72,9.14H23A11.72,11.72,0,0,0,11.68,0,11.74,11.74,0,0,0,.34,9.14,12,12,0,0,0,8.89,23.65a11.43,11.43,0,0,0,11.16-3.31Z'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20data-name='icon_fullscreen_sga'%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%3e%3cpolygon%20id='ecke'%20points='2%2014%202%2010%200%2010%200%2016%206%2016%206%2014%202%2014'/%3e%3cpolygon%20id='ecke-2'%20data-name='ecke'%20points='2%202%206%202%206%200%200%200%200%206%202%206%202%202'/%3e%3cpolygon%20id='ecke-3'%20data-name='ecke'%20points='14%2014%2010%2014%2010%2016%2016%2016%2016%2010%2014%2010%2014%2014'/%3e%3cpolygon%20id='ecke-4'%20data-name='ecke'%20points='10%200%2010%202%2014%202%2014%206%2016%206%2016%200%2010%200'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3csvg%20id='Icon_help'%20xmlns='http://www.w3.org/2000/svg'%20width='24'%20height='24'%20viewBox='0%200%2024%2024'%3e%3cpath%20id='icon_help-2'%20data-name='icon_help'%20d='M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm1,16H11V15h2Zm1.7-6.26a4.85,4.85,0,0,1-.49.81l-1,1.37a1.36,1.36,0,0,0-.18.34,1,1,0,0,0-.07.38L13,14H11l.1-.49a2,2,0,0,1,.13-.77,3.18,3.18,0,0,1,.4-.69l1-1.33a3.21,3.21,0,0,0,.29-.46,1.19,1.19,0,0,0,.11-.47,1.17,1.17,0,0,0-.3-.82,1.07,1.07,0,0,0-.83-.33A1,1,0,0,0,11.1,9a1.25,1.25,0,0,0-.28.83H9a2.94,2.94,0,0,1,.23-1.17,2.45,2.45,0,0,1,.63-.88,2.9,2.9,0,0,1,.93-.55A3.13,3.13,0,0,1,11.94,7a3.31,3.31,0,0,1,1.13.19,2.82,2.82,0,0,1,.94.54,2.62,2.62,0,0,1,.65.88A3,3,0,0,1,14.9,9.8,2.16,2.16,0,0,1,14.7,10.74Z'%20style='opacity:%200.2'/%3e%3c/svg%3e\"","export default \"data:image/svg+xml,%3c?xml%20version='1.0'%20encoding='UTF-8'?%3e%3csvg%20id='icon_star_16'%20xmlns='http://www.w3.org/2000/svg'%20width='16'%20height='16'%20viewBox='0%200%2016%2016'%3e%3cpath%20id='star'%20d='M8,0l2.45,4.97,5.55,.76-4.04,3.83,.99,5.44-4.94-2.61-4.94,2.61,.99-5.44L0,5.73l5.55-.76L8,0Z'/%3e%3c/svg%3e\"","import iconAdd from '../../assets/svg/icon_add.svg';\nimport iconDel from '../../assets/svg/icon_cross.svg';\nimport iconEdit from '../../assets/svg/icon_edit.svg';\nimport iconConfig from '../../assets/svg/icon_gear.svg';\nimport iconDuplicate from '../../assets/svg/icon_duplicate.svg';\nimport iconDownload from '../../assets/svg/icon_download.svg';\nimport iconSearch from '../../assets/svg/icon_lupe.svg';\nimport iconIconKey from '../../assets/svg/icon_key.svg';\nimport iconSync from '../../assets/svg/icon_reload.svg';\nimport iconFullscreen from '../../assets/svg/icon_fullscreen.svg';\nimport iconDocumentation from '../../assets/svg/icon_help_light.svg';\nimport iconStar from '../../assets/svg/icon_star.svg';\n\nexport type Props = {\n\tadd?: boolean;\n\tdel?: boolean;\n\tedit?: boolean;\n\tconfig?: boolean;\n\tduplicate?: boolean;\n\tsearch?: boolean;\n\tdownload?: boolean;\n\tsync?: boolean;\n\tfullscreen?: boolean;\n\tstar?: boolean;\n\n\t/** key is reserved in React */\n\ticonKey?: boolean;\n\tdocumentation?: boolean;\n\n\t/** renders a larger version of the icon (24x24) */\n\tlarge?: boolean;\n\n\t/** inverts the colors of the icon for display on dark background */\n\tinverted?: boolean;\n\n\t/** @ignore */\n\tclassName?: string;\n};\n\nfunction getSrc(props: Props) {\n\tconst {add, del, edit, config, duplicate, search, download, sync, fullscreen, iconKey, documentation, star} = props;\n\n\tif (add) {\n\t\treturn iconAdd;\n\t} else if (del) {\n\t\treturn iconDel;\n\t} else if (edit) {\n\t\treturn iconEdit;\n\t} else if (config) {\n\t\treturn iconConfig;\n\t} else if (duplicate) {\n\t\treturn iconDuplicate;\n\t} else if (search) {\n\t\treturn iconSearch;\n\t} else if (download) {\n\t\treturn iconDownload;\n\t} else if (sync) {\n\t\treturn iconSync;\n\t} else if (fullscreen) {\n\t\treturn iconFullscreen;\n\t} else if (iconKey) {\n\t\treturn iconIconKey;\n\t} else if (documentation) {\n\t\treturn iconDocumentation;\n\t} else if (star) {\n\t\treturn iconStar;\n\t} else {\n\t\tthrow Error('getSrc: no icon type specified');\n\t}\n}\n\nfunction getAlt(props: Props) {\n\tconst {add, del, edit, config, duplicate, search, download, sync, fullscreen, iconKey, documentation, star} = props;\n\n\tif (add) {\n\t\treturn 'icon add';\n\t} else if (del) {\n\t\treturn 'icon delete';\n\t} else if (edit) {\n\t\treturn 'icon edit';\n\t} else if (config) {\n\t\treturn 'icon config';\n\t} else if (duplicate) {\n\t\treturn 'icon duplicate';\n\t} else if (search) {\n\t\treturn 'icon search';\n\t} else if (download) {\n\t\treturn 'icon download';\n\t} else if (sync) {\n\t\treturn 'icon sync';\n\t} else if (fullscreen) {\n\t\treturn 'icon fullscreen';\n\t} else if (iconKey) {\n\t\treturn 'icon iconKey';\n\t} else if (documentation) {\n\t\treturn 'icon documentation';\n\t} else if (star) {\n\t\treturn 'icon star';\n\t} else {\n\t\tthrow Error('getAlt: no icon type specified');\n\t}\n}\n\nexport default function Icon(props: Props) {\n\tlet style;\n\tif (props.large) {\n\t\tstyle = {width: 24, height: 24};\n\t} else {\n\t\tstyle = {width: 16, height: 16};\n\t}\n\tif (props.inverted) {\n\t\tstyle = {...style, filter: 'invert(1)'};\n\t}\n\n\treturn <img src={getSrc(props)} className={`di icon ${props.className || ''}`} alt={getAlt(props)} style={style} />;\n}\n","import React, {MouseEventHandler, PropsWithChildren, MouseEvent} from 'react';\nimport {Trans} from 'react-i18next';\nimport cx from 'classnames';\n\nimport Icon from '../icon/Icon';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport interface Props extends React.HTMLAttributes<HTMLSpanElement> {\n\t/** the label text, either a string or TranslationDescriptor */\n\ttext?: string | TranslationDescriptor;\n\n\t/** a smaller label */\n\tsmall?: boolean;\n\n\t/** a larger label */\n\tlarge?: boolean;\n\n\tonClick?: MouseEventHandler<HTMLSpanElement>;\n\n\t/** adds a delete button that triggers this callback function */\n\tonDelete?: (...args: Array<any>) => any;\n\n\tclassName?: string;\n\n\t/** @ignore */\n\t'data-testid'?: string;\n\n\t/** @ignore */\n\t'delete-button-data-testid'?: string;\n}\n\n/**\n * Label enables an easy way for marking or tagging elements.\n */\nexport default function Label({\n\ttext,\n\tsmall = false,\n\tlarge = false,\n\tonDelete,\n\tclassName,\n\tonClick,\n\tchildren,\n\t...dataTestIds\n}: PropsWithChildren<Props>) {\n\tfunction handleDelete(event: MouseEvent<HTMLSpanElement>) {\n\t\tevent.stopPropagation();\n\t\tif (onDelete) {\n\t\t\tonDelete();\n\t\t}\n\t}\n\n\treturn (\n\t\t<span\n\t\t\tonClick={onClick}\n\t\t\tclassName={cx('di label', className, {large, small, removable: onDelete, clickable: !!onClick})}\n\t\t\tdata-testid={dataTestIds['data-testid']}\n\t\t>\n\t\t\t{typeof text === 'string' ? text : text && <Trans i18nKey={text.id}>{text.defaultValue}</Trans>}\n\t\t\t<>{children}</>\n\t\t\t{onDelete && (\n\t\t\t\t<span data-testid={dataTestIds['delete-button-data-testid']} className=\"remove\" onClick={handleDelete}>\n\t\t\t\t\t<Icon del inverted />\n\t\t\t\t</span>\n\t\t\t)}\n\t\t</span>\n\t);\n}\n","import {\n\tarrow,\n\tautoUpdate,\n\tflip,\n\tFloatingPortal,\n\toffset,\n\tsafePolygon,\n\tshift,\n\tsize,\n\tuseClick,\n\tuseDismiss,\n\tuseFloating,\n\tuseFocus,\n\tuseHover,\n\tuseInteractions\n} from '@floating-ui/react';\nimport cx from 'classnames';\nimport React, {useEffect, useRef} from 'react';\n\nexport type Placement =\n\t| 'top'\n\t| 'bottom'\n\t| 'left'\n\t| 'right'\n\t| 'top-start'\n\t| 'top-end'\n\t| 'bottom-start'\n\t| 'bottom-end'\n\t| 'right-start'\n\t| 'right-end'\n\t| 'left-start'\n\t| 'left-end';\n\nexport type Props = {\n\t/** Element to toggle the Popup */\n\thandler: React.ReactNode;\n\n\t/** Content to be displayed */\n\tchildren: React.ReactNode;\n\n\t/** If true, displays the Popup's content */\n\topen: boolean;\n\n\t/** Function, executed when the Popup gets closed */\n\tonOpenChange: (open: boolean) => void;\n\n\t/** (Optional) if set, sets the direction in which the content should be displayed */\n\tplacement?: Placement;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** (Optional) If set to true, the content is hidden via styles, but still exists in the DOM tree */\n\tpreventDestroyContentOnHide?: boolean;\n\n\t/** (Optional) Class name of the handler wrapping element */\n\thandlerWrapperClassName?: string;\n\n\t/** (Optional) Interaction mode to open the popup */\n\tmode?: Array<'click' | 'hover' | 'focus'>;\n\n\t/** (Optional) Disables the Popup */\n\tdisabled?: boolean;\n};\n\n// Margin from the edge of the viewport\nconst MARGIN = 16;\n\n/**\n * Popup displays content within a small modal.\n * Its usage is highly flexible and used in several other components.\n */\nexport default function Popup({\n\tplacement = 'bottom',\n\tmode = ['click'],\n\tdisabled,\n\thandler,\n\thandlerWrapperClassName,\n\tpreventDestroyContentOnHide,\n\topen,\n\tonOpenChange,\n\tclassName,\n\tchildren\n}: Props) {\n\tconst arrowRef = useRef<HTMLDivElement>(null);\n\n\tconst {\n\t\telements,\n\t\tupdate,\n\t\trefs,\n\t\tfloatingStyles,\n\t\tcontext,\n\t\tmiddlewareData,\n\t\tplacement: computedPlacement\n\t} = useFloating({\n\t\tplacement,\n\t\topen,\n\t\tonOpenChange,\n\t\twhileElementsMounted: !preventDestroyContentOnHide ? autoUpdate : undefined,\n\t\tmiddleware: [\n\t\t\toffset({\n\t\t\t\tmainAxis: 12\n\t\t\t}),\n\t\t\tflip({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true\n\t\t\t}),\n\t\t\tshift({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true\n\t\t\t}),\n\t\t\tsize({\n\t\t\t\tpadding: MARGIN,\n\t\t\t\tboundary: 'clippingAncestors',\n\t\t\t\taltBoundary: true,\n\t\t\t\tapply({availableHeight, availableWidth, elements}) {\n\t\t\t\t\tconst width = `${Math.max(0, availableWidth - MARGIN)}px`;\n\t\t\t\t\tconst height = `${Math.max(0, availableHeight - MARGIN)}px`;\n\t\t\t\t\telements.floating.style.maxWidth = width;\n\t\t\t\t\telements.floating.style.maxHeight = height;\n\t\t\t\t}\n\t\t\t}),\n\t\t\tarrow({\n\t\t\t\telement: arrowRef\n\t\t\t})\n\t\t]\n\t});\n\n\tuseEffect(() => {\n\t\tif (preventDestroyContentOnHide && open && elements.reference && elements.floating) {\n\t\t\tconst cleanup = autoUpdate(elements.reference, elements.floating, update);\n\t\t\treturn cleanup;\n\t\t}\n\t}, [elements.floating, elements.reference, open, update, preventDestroyContentOnHide]);\n\n\tconst click = useClick(context, {\n\t\tenabled: !disabled && mode.includes('click'),\n\t\tkeyboardHandlers: false, // Prevent space key from being blocked in input fields (floating-ui issue #1812)\n\t});\n\tconst hover = useHover(context, {\n\t\tenabled: !disabled && mode.includes('hover'),\n\t\thandleClose: safePolygon()\n\t});\n\tconst focus = useFocus(context, {enabled: !disabled && mode.includes('focus')});\n\tconst dismiss = useDismiss(context);\n\tconst {getReferenceProps, getFloatingProps} = useInteractions([click, hover, focus, dismiss]);\n\n\treturn (\n\t\t<>\n\t\t\t<span\n\t\t\t\tstyle={{display: 'inline-block'}}\n\t\t\t\tclassName={cx('popup-handler-wrapper', handlerWrapperClassName)}\n\t\t\t\tref={refs.setReference}\n\t\t\t\t{...getReferenceProps()}\n\t\t\t>\n\t\t\t\t{handler}\n\t\t\t</span>\n\t\t\t{(open || preventDestroyContentOnHide) && (\n\t\t\t\t<FloatingPortal>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cx('di popup-wrapper', {hidden: preventDestroyContentOnHide && !open})}\n\t\t\t\t\t\tref={refs.setFloating}\n\t\t\t\t\t\tstyle={{...floatingStyles, zIndex: 100000}}\n\t\t\t\t\t\t{...getFloatingProps()}\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className={cx('di popup', computedPlacement, className)}>\n\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\tclassName={cx('popup-arrow', computedPlacement)}\n\t\t\t\t\t\t\t\tref={arrowRef}\n\t\t\t\t\t\t\t\tstyle={{left: middlewareData.arrow?.x, top: middlewareData.arrow?.y}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<div className=\"popup-content\">{children}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</FloatingPortal>\n\t\t\t)}\n\t\t</>\n\t);\n}\n","import React, {useState} from 'react';\n\nimport Popup, {Placement} from '../popup/Popup';\n\nexport type Props = {\n\t/** the Bubble content */\n\tcontent: React.ReactNode;\n\n\t/** inverts the colors */\n\tinverted?: boolean;\n\n\t/** @ignore */\n\tchildren: React.ReactNode;\n\n\t/** @ignore */\n\tstyle?: React.CSSProperties;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** hides the bubble */\n\tdisabled?: boolean;\n\n\t/** changed the direction */\n\tdirection?: Placement;\n};\n\n/**\n * Bubbles are best used to provide some additional information like short instructions or help texts, which are then going to be displayed on Mouse-Over.\n */\nexport default function Bubble({content, inverted, children, disabled, style, direction, className}: Props) {\n\tconst [open, setOpen] = useState(false);\n\treturn (\n\t\t<Popup\n\t\t\topen={open}\n\t\t\tonOpenChange={setOpen}\n\t\t\thandler={children}\n\t\t\tdisabled={disabled}\n\t\t\tmode={['hover']}\n\t\t\tplacement={direction ? direction : 'top'}\n\t\t\tclassName={`bubble ${inverted ? 'inverted' : ''} ${className ? className : ''}`}\n\t\t>\n\t\t\t<span className={`bubble-content`} style={style}>\n\t\t\t\t{content}\n\t\t\t</span>\n\t\t</Popup>\n\t);\n}\n","import React, {useState} from 'react';\n\nimport Popup, {Placement} from '../popup/Popup';\n\nexport type Props = {\n\t/** Content of the Tooltip */\n\tcontent: React.ReactNode;\n\n\t/** Enabler of the Tooltip */\n\tchildren: React.ReactNode;\n\n\t/** @ignore */\n\tclassName?: string;\n\n\t/** (Optional) if set, disables the &lt;Tooltip/&gt; from opening */\n\tdisabled?: boolean;\n\n\t/** (Optional) if set, opens &lt;Tooltip/&gt; in given direction, defaults to 'right' */\n\tdirection?: Placement;\n};\n\n/**\n * Tooltip is best used to display some short additional information or description\n */\nexport default function Tooltip({content, children, className, direction, disabled}: Props) {\n\tconst [open, setOpen] = useState(false);\n\n\treturn (\n\t\t<Popup\n\t\t\topen={open}\n\t\t\tdisabled={disabled}\n\t\t\tmode={['hover']}\n\t\t\tonOpenChange={setOpen}\n\t\t\thandler={children}\n\t\t\tplacement={direction ? direction : 'right'}\n\t\t\tclassName={`tooltip inverted ${className ? className : ''}`}\n\t\t>\n\t\t\t<span className=\"tooltip-content\">{content}</span>\n\t\t</Popup>\n\t);\n}\n","import * as React from 'react';\n\nimport Bubble from '../bubble/Bubble';\n\ntype Page = {\n\tname: string;\n\trenderHeading: () => React.ReactNode;\n\trenderBody?: () => React.ReactNode;\n\ttabDescription?: string;\n};\n\ntype State = {\n\tcurrentTab: string | null | undefined;\n};\n\nexport type Props = {\n\t/** Array of pages to be displayed */\n\tpages: Array<Page>;\n\n\t/** (Optional) if set, disables tab */\n\tdisabled?: boolean;\n\n\t/** (Optional) function, executed if tabs change */\n\tonChange?: (tab: string) => void;\n\n\t/** (Optional) sets the current tab */\n\tcurrentTab?: string | null | undefined;\n};\n\n/**\n * Tabs add the possibility to unite several homogeneous pages into one.\n * Unlike RouteTabs, Tabs cannot be accessed directly via the browser's history\n */\nexport default class Tabs extends React.Component<Props, State> {\n\tstate: State = {\n\t\tcurrentTab: this.props.pages.length ? this.props.pages[0].name : null\n\t};\n\n\thandleClick: (tab: string) => void = (tab: string) => {\n\t\tif (this.props.onChange) {\n\t\t\tthis.props.onChange(tab);\n\t\t} else if (typeof this.props.currentTab === 'undefined') {\n\t\t\tthis.setState({\n\t\t\t\tcurrentTab: tab\n\t\t\t});\n\t\t}\n\t};\n\n\tcurrentTabPage: () => Page | null | undefined = (): Page | null | undefined => {\n\t\tconst currentTab = typeof this.props.currentTab === 'string' ? this.props.currentTab : this.state.currentTab;\n\t\treturn this.props.pages.find(({name}) => currentTab === name);\n\t};\n\n\tisCurrentTab: (tab: string) => boolean = (tab: string) => {\n\t\tconst currentTab = typeof this.props.currentTab === 'string' ? this.props.currentTab : this.state.currentTab;\n\t\treturn currentTab === tab;\n\t};\n\n\trenderBody = () => {\n\t\tconst page = this.currentTabPage();\n\n\t\tif (page && typeof page.renderBody === 'function') {\n\t\t\treturn page.renderBody();\n\t\t}\n\n\t\treturn null;\n\t};\n\n\trender() {\n\t\tconst {pages, disabled} = this.props;\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t<div className=\"di tabs\">\n\t\t\t\t\t{pages.map(({name, renderHeading, tabDescription}) =>\n\t\t\t\t\t\ttabDescription ? (\n\t\t\t\t\t\t\t<Bubble inverted key={name} content={tabDescription} className=\"bubble-tab-description\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''} ${\n\t\t\t\t\t\t\t\t\t\tthis.isCurrentTab(name) ? 'active' : ''\n\t\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\t\tonClick={() => !disabled && this.handleClick(name)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{renderHeading()}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</Bubble>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\tdata-testid=\"tab-button\"\n\t\t\t\t\t\t\t\tkey={name}\n\t\t\t\t\t\t\t\tclassName={`item ${disabled ? 'disabled' : ''} ${\n\t\t\t\t\t\t\t\t\tthis.isCurrentTab(name) ? 'active' : ''\n\t\t\t\t\t\t\t\t}`}\n\t\t\t\t\t\t\t\tonClick={() => !disabled && this.handleClick(name)}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{renderHeading()}\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t)\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t\t{this.renderBody()}\n\t\t\t</div>\n\t\t);\n\t}\n}\n","import * as React from 'react';\nimport {withTranslation, WithTranslation} from 'react-i18next';\n\nimport '../../assets/search-box.css';\nimport {ComponentType, CSSProperties} from 'react';\n\nimport Icon from '../icon/Icon';\nimport Button from '../button/Button';\nimport {TranslationDescriptor} from '../../types/i18n';\n\nexport type Props = {\n\t/** Placeholder text for input field `(string | TranslationDescriptor)` */\n\tplaceholder: string | TranslationDescriptor;\n\n\t/** Function to call if the input changes */\n\tonChange: (value: string) => void;\n\n\t/** Function to call if the search is triggered (button press or return in search field) */\n\tonSubmit?: (value: string) => void;\n\n\t/** if true, a button is shown that clears the input */\n\tclearable?: boolean;\n\n\t/** Value that should initially be displayed in the text box */\n\tinitialValue: string | null | undefined;\n\n\t/** Wrapper styles */\n\tstyle: CSSProperties | undefined;\n};\n\ntype State = {\n\tquery: string;\n};\n\nconst ClearButton = ({\n\tonChange,\n\tinputElement,\n\tstyle\n}: {\n\tonChange: (value: string) => void;\n\tinputElement: HTMLElement | null | undefined;\n\tstyle?: React.CSSProperties;\n}) => (\n\t<Button\n\t\tnaked\n\t\tonClick={() => {\n\t\t\tonChange('');\n\n\t\t\tif (inputElement) {\n\t\t\t\tinputElement.focus();\n\t\t\t}\n\t\t}}\n\t\tstyle={style}\n\t>\n\t\t<Icon del />\n\t</Button>\n);\n\n/**\n * SearchBox is used for searching content and provides a set of `props` for different user experiences\n */\nclass SearchBox extends React.Component<Props & WithTranslation, State> {\n\tstate: State = {\n\t\tquery: this.props.initialValue || ''\n\t};\n\tinput: HTMLInputElement | null | undefined;\n\n\tprintPlaceholder(): string {\n\t\tconst {t, placeholder} = this.props;\n\n\t\tif (typeof placeholder === 'object') {\n\t\t\treturn t(placeholder.id, {\n\t\t\t\tdefaultValue: placeholder.defaultValue\n\t\t\t});\n\t\t} else {\n\t\t\treturn placeholder;\n\t\t}\n\t}\n\n\thandleChange: (value: string) => void = (value: string) => {\n\t\tconst {onChange} = this.props;\n\t\tthis.setState({\n\t\t\tquery: value\n\t\t});\n\t\tonChange(value);\n\t};\n\n\thandleKeyUp: (arg0: any) => void = ({key}) => {\n\t\tconst {onSubmit} = this.props;\n\t\tconst {query} = this.state;\n\n\t\tif (key === 'Enter' && typeof onSubmit === 'function') {\n\t\t\tonSubmit(query);\n\t\t}\n\t};\n\n\trender() {\n\t\tconst {onSubmit, style, clearable} = this.props;\n\t\tconst {query} = this.state;\n\t\treturn (\n\t\t\t<div className=\"search-box\" style={style}>\n\t\t\t\t<input\n\t\t\t\t\tref={(input) => {\n\t\t\t\t\t\tthis.input = input;\n\t\t\t\t\t}}\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue={query}\n\t\t\t\t\tplaceholder={this.printPlaceholder()}\n\t\t\t\t\tonKeyUp={this.handleKeyUp}\n\t\t\t\t\tonChange={({target: {value}}) => this.handleChange(value)}\n\t\t\t\t/>\n\t\t\t\t{typeof onSubmit === 'function' ? (\n\t\t\t\t\t<React.Fragment>\n\t\t\t\t\t\t{query && clearable && (\n\t\t\t\t\t\t\t<ClearButton\n\t\t\t\t\t\t\t\tonChange={this.handleChange}\n\t\t\t\t\t\t\t\tinputElement={this.input}\n\t\t\t\t\t\t\t\tstyle={{\n\t\t\t\t\t\t\t\t\tright: 30\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t<Button naked onClick={() => onSubmit(query)}>\n\t\t\t\t\t\t\t<Icon search />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t) : query && clearable ? (\n\t\t\t\t\t<ClearButton onChange={this.handleChange} inputElement={this.input} />\n\t\t\t\t) : (\n\t\t\t\t\t<Button naked disabled>\n\t\t\t\t\t\t<Icon search />\n\t\t\t\t\t</Button>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default withTranslation()(SearchBox) as ComponentType<Props>;\n"],"mappings":"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"}
package/dist/style.css CHANGED
@@ -242,3 +242,4 @@ a .di.label:active {background-color:rgba(0,0,0,.1);}
242
242
  margin-right: 0;
243
243
  padding: 7px 10px;
244
244
  }
245
+ /*$vite$:1*/
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  export type Props = {
3
2
  add?: boolean;
4
3
  del?: boolean;
@@ -20,5 +19,5 @@ export type Props = {
20
19
  /** @ignore */
21
20
  className?: string;
22
21
  };
23
- export default function Icon(props: Props): React.JSX.Element;
22
+ export default function Icon(props: Props): import("react").JSX.Element;
24
23
  //# sourceMappingURL=Icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../src/components/icon/Icon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAe1B,MAAM,MAAM,KAAK,GAAG;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAkEF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,KAAK,qBAYxC"}
1
+ {"version":3,"file":"Icon.d.ts","sourceRoot":"","sources":["../../../../src/components/icon/Icon.tsx"],"names":[],"mappings":"AAaA,MAAM,MAAM,KAAK,GAAG;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf,+BAA+B;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,mDAAmD;IACnD,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAkEF,MAAM,CAAC,OAAO,UAAU,IAAI,CAAC,KAAK,EAAE,KAAK,+BAYxC"}
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  import { Props } from '../modal/Modal';
3
- export default function ModalWindow({ className, width, header, content, footer, onOutsideClick }: Props): React.JSX.Element;
2
+ export default function ModalWindow({ className, width, header, content, footer, onOutsideClick }: Props): import("react").JSX.Element;
4
3
  //# sourceMappingURL=ModalWindow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ModalWindow.d.ts","sourceRoot":"","sources":["../../../../src/components/modalComponents/ModalWindow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAGzD,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAGrC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAC,EAAE,KAAK,qBA2BrG"}
1
+ {"version":3,"file":"ModalWindow.d.ts","sourceRoot":"","sources":["../../../../src/components/modalComponents/ModalWindow.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAC,KAAK,EAAC,MAAM,gBAAgB,CAAC;AAGrC,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAAC,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAC,EAAE,KAAK,+BA2BrG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deviceinsight/ng-ui-basic-components",
3
- "version": "7.16.0",
3
+ "version": "7.18.0",
4
4
  "private": false,
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "repository": {
@@ -39,8 +39,8 @@
39
39
  "dependencies": {
40
40
  "@floating-ui/react": "^0.27.20",
41
41
  "classnames": "^2.5.1",
42
- "dayjs": "^1.11.21",
43
- "react-draggable": "^4.7.0"
42
+ "dayjs": "^1.11.23",
43
+ "react-draggable": "^4.7.1"
44
44
  },
45
45
  "peerDependencies": {
46
46
  "i18next": "^25.10.10",
@@ -50,28 +50,28 @@
50
50
  },
51
51
  "devDependencies": {
52
52
  "@eslint/js": "10.0.1",
53
- "@storybook/react-vite": "10.5.0",
53
+ "@storybook/react-vite": "10.5.10",
54
54
  "@types/node": "24.13.3",
55
- "@types/react": "19.2.17",
56
- "@types/react-dom": "19.2.3",
57
- "@typescript-eslint/eslint-plugin": "8.64.0",
58
- "@typescript-eslint/parser": "8.64.0",
59
- "@vitejs/plugin-react": "5.2.0",
60
- "eslint": "10.7.0",
55
+ "@types/react": "19.2.18",
56
+ "@types/react-dom": "19.2.4",
57
+ "@typescript-eslint/eslint-plugin": "8.67.0",
58
+ "@typescript-eslint/parser": "8.67.0",
59
+ "@vitejs/plugin-react": "6.1.1",
60
+ "eslint": "10.9.0",
61
61
  "eslint-plugin-react-hooks": "7.1.1",
62
- "eslint-plugin-storybook": "10.5.0",
62
+ "eslint-plugin-storybook": "10.5.10",
63
63
  "husky": "9.1.7",
64
64
  "i18next": "25.10.10",
65
- "lint-staged": "17.0.8",
66
- "prettier": "3.9.5",
65
+ "lint-staged": "17.3.0",
66
+ "prettier": "3.9.6",
67
67
  "prop-types": "15.8.1",
68
68
  "react": "19.2.8",
69
69
  "react-dom": "19.2.8",
70
70
  "react-i18next": "16.6.6",
71
71
  "rimraf": "6.1.3",
72
- "storybook": "10.5.0",
72
+ "storybook": "10.5.10",
73
73
  "typescript": "5.9.3",
74
- "vite": "7.3.6"
74
+ "vite": "8.1.5"
75
75
  },
76
76
  "lint-staged": {
77
77
  "src/**/*.{ts,tsx},package.json,.storybook/**/.{ts,tsx}": ["prettier --write"]
@@ -1,17 +0,0 @@
1
- import { StoryObj } from '@storybook/react';
2
- import Bubble from './Bubble';
3
- declare const meta: {
4
- title: string;
5
- parameters: {
6
- layout: string;
7
- };
8
- component: typeof Bubble;
9
- args: {};
10
- };
11
- type Story = StoryObj<typeof meta>;
12
- export declare const Default: Story;
13
- export declare const WithMoreContent: Story;
14
- export declare const Inverted: Story;
15
- export declare const Disabled: Story;
16
- export default meta;
17
- //# sourceMappingURL=Bubble.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Bubble.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/bubble/Bubble.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,MAAM,MAAM,UAAU,CAAC;AAG9B,QAAA,MAAM,IAAI;;;;;;;CAOqB,CAAC;AAEhC,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAU7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,18 +0,0 @@
1
- import { StoryObj } from '@storybook/react';
2
- import Modal from './Modal';
3
- import React from 'react';
4
- declare const meta: {
5
- title: string;
6
- parameters: {
7
- layout: string;
8
- };
9
- component: typeof Modal;
10
- args: {};
11
- render: (args: import("./Modal").Props) => React.JSX.Element;
12
- };
13
- type Story = StoryObj<typeof meta>;
14
- export declare const Default: Story;
15
- export declare const CustomWidth: Story;
16
- export declare const WithOutsideClickEnabled: Story;
17
- export default meta;
18
- //# sourceMappingURL=Modal.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Modal.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/modal/Modal.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAiB,MAAM,OAAO,CAAC;AAEtC,QAAA,MAAM,IAAI;;;;;;;;CA4BoB,CAAC;AAE/B,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAMzB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,KA2BrC,CAAC;AAEF,eAAe,IAAI,CAAC"}
@@ -1,29 +0,0 @@
1
- import { StoryObj } from '@storybook/react';
2
- import Popup from './Popup';
3
- import React from 'react';
4
- declare const meta: {
5
- title: string;
6
- parameters: {
7
- layout: string;
8
- };
9
- component: typeof Popup;
10
- args: {
11
- open: false;
12
- onOpenChange: () => void;
13
- handler: null;
14
- children: React.JSX.Element;
15
- };
16
- render: (args: import("./Popup").Props) => React.JSX.Element;
17
- };
18
- type Story = StoryObj<typeof meta>;
19
- export declare const Default: Story;
20
- export declare const DifferentDirection: Story;
21
- export declare const PreventDestroyContentOnHide: Story;
22
- export declare const OverflowingPrevent: Story;
23
- export declare const ClickAndFocusMode: Story;
24
- export declare const HoverMode: Story;
25
- export declare const PreventExtendingBeyondViewport: Story;
26
- export declare const AutoFlipAtViewportEdge: Story;
27
- export declare const PopupInsideModal: Story;
28
- export default meta;
29
- //# sourceMappingURL=Popup.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Popup.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/popup/Popup.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAiB,MAAM,OAAO,CAAC;AAItC,QAAA,MAAM,IAAI;;;;;;;;;;;;;CAmBoB,CAAC;AAE/B,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC;AAEjC,eAAO,MAAM,kBAAkB,EAAE,KAIhC,CAAC;AAEF,eAAO,MAAM,2BAA2B,EAAE,KAKzC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,KAIhC,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAI/B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,KAIvB,CAAC;AAEF,eAAO,MAAM,8BAA8B,EAAE,KAK5C,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,KAmCpC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,KA+G9B,CAAC;AAeF,eAAe,IAAI,CAAC"}
@@ -1,16 +0,0 @@
1
- import { StoryObj } from '@storybook/react';
2
- import Tooltip from './Tooltip';
3
- declare const meta: {
4
- title: string;
5
- parameters: {
6
- layout: string;
7
- };
8
- component: typeof Tooltip;
9
- args: {};
10
- };
11
- type Story = StoryObj<typeof meta>;
12
- export declare const Default: Story;
13
- export declare const WithMoreContent: Story;
14
- export declare const Disabled: Story;
15
- export default meta;
16
- //# sourceMappingURL=Tooltip.stories.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Tooltip.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/tooltip/Tooltip.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,QAAQ,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,OAAO,MAAM,WAAW,CAAC;AAGhC,QAAA,MAAM,IAAI;;;;;;;CAOsB,CAAC;AAEjC,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,IAAI,CAAC,CAAC;AAEnC,eAAO,MAAM,OAAO,EAAE,KAKrB,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,KAU7B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAe,IAAI,CAAC"}