@deviceinsight/ng-ui-basic-components 3.13.0-SNAPSHOT
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/LICENSE +1 -0
- package/README.md +102 -0
- package/lib/cjs/__mocks__/react-i18next.d.ts +2 -0
- package/lib/cjs/__mocks__/react-i18next.d.ts.map +1 -0
- package/lib/cjs/__mocks__/react-i18next.js +18 -0
- package/lib/cjs/assets/img/icon-arrow-back.png +0 -0
- package/lib/cjs/assets/img/icon_folder_closed.png +0 -0
- package/lib/cjs/assets/img/icon_folder_closed_light.png +0 -0
- package/lib/cjs/assets/img/icon_folder_open.png +0 -0
- package/lib/cjs/assets/img/icon_folder_open_light.png +0 -0
- package/lib/cjs/assets/img/icon_help_light_24.png +0 -0
- package/lib/cjs/assets/img/icon_variablenode.png +0 -0
- package/lib/cjs/assets/img/icon_variablenode_light.png +0 -0
- package/lib/cjs/assets/img/toastify_msg_error_24.png +0 -0
- package/lib/cjs/assets/img/toastify_msg_success_24.png +0 -0
- package/lib/cjs/assets/search-box.css +29 -0
- package/lib/cjs/assets/style.css +219 -0
- package/lib/cjs/assets/svg/icon_add.svg +3 -0
- package/lib/cjs/assets/svg/icon_calendar.svg +50 -0
- package/lib/cjs/assets/svg/icon_chevron_left.svg +6 -0
- package/lib/cjs/assets/svg/icon_chevron_right.svg +6 -0
- package/lib/cjs/assets/svg/icon_cross.svg +3 -0
- package/lib/cjs/assets/svg/icon_download.svg +5 -0
- package/lib/cjs/assets/svg/icon_duplicate.svg +10 -0
- package/lib/cjs/assets/svg/icon_edit.svg +6 -0
- package/lib/cjs/assets/svg/icon_folder_loading.svg +21 -0
- package/lib/cjs/assets/svg/icon_fullscreen.svg +6 -0
- package/lib/cjs/assets/svg/icon_gear.svg +5 -0
- package/lib/cjs/assets/svg/icon_help_light.svg +3 -0
- package/lib/cjs/assets/svg/icon_key.svg +3 -0
- package/lib/cjs/assets/svg/icon_lupe.svg +14 -0
- package/lib/cjs/assets/svg/icon_menu_horizontal.svg +5 -0
- package/lib/cjs/assets/svg/icon_menu_vertical.svg +5 -0
- package/lib/cjs/assets/svg/icon_reload.svg +6 -0
- package/lib/cjs/assets/svg/icon_star.svg +4 -0
- package/lib/cjs/assets/svg/icon_upload.svg +7 -0
- package/lib/cjs/assets/svg/icon_warning_triangle.svg +12 -0
- package/lib/cjs/assets/svg/triangle_down.svg +3 -0
- package/lib/cjs/assets/svg/triangle_left.svg +3 -0
- package/lib/cjs/assets/svg/triangle_right.svg +3 -0
- package/lib/cjs/assets/svg/triangle_up.svg +3 -0
- package/lib/cjs/assets/svg/triangle_up_and_down.svg +4 -0
- package/lib/cjs/components/accordion/Accordion.d.ts +25 -0
- package/lib/cjs/components/accordion/Accordion.d.ts.map +1 -0
- package/lib/cjs/components/accordion/Accordion.js +60 -0
- package/lib/cjs/components/accordionComponents/AccordionItem.d.ts +32 -0
- package/lib/cjs/components/accordionComponents/AccordionItem.d.ts.map +1 -0
- package/lib/cjs/components/accordionComponents/AccordionItem.js +50 -0
- package/lib/cjs/components/bubble/Bubble.d.ts +35 -0
- package/lib/cjs/components/bubble/Bubble.d.ts.map +1 -0
- package/lib/cjs/components/bubble/Bubble.js +42 -0
- package/lib/cjs/components/button/Button.d.ts +33 -0
- package/lib/cjs/components/button/Button.d.ts.map +1 -0
- package/lib/cjs/components/button/Button.js +22 -0
- package/lib/cjs/components/button/ButtonRow.d.ts +23 -0
- package/lib/cjs/components/button/ButtonRow.d.ts.map +1 -0
- package/lib/cjs/components/button/ButtonRow.js +35 -0
- package/lib/cjs/components/confirm/Confirm.d.ts +19 -0
- package/lib/cjs/components/confirm/Confirm.d.ts.map +1 -0
- package/lib/cjs/components/confirm/Confirm.js +49 -0
- package/lib/cjs/components/confirm/ConfirmProvider.d.ts +14 -0
- package/lib/cjs/components/confirm/ConfirmProvider.d.ts.map +1 -0
- package/lib/cjs/components/confirm/ConfirmProvider.js +63 -0
- package/lib/cjs/components/confirm/useConfirm.d.ts +9 -0
- package/lib/cjs/components/confirm/useConfirm.d.ts.map +1 -0
- package/lib/cjs/components/confirm/useConfirm.js +13 -0
- package/lib/cjs/components/confirm/utils.d.ts +4 -0
- package/lib/cjs/components/confirm/utils.d.ts.map +1 -0
- package/lib/cjs/components/confirm/utils.js +11 -0
- package/lib/cjs/components/confirm/withConfirm.d.ts +7 -0
- package/lib/cjs/components/confirm/withConfirm.d.ts.map +1 -0
- package/lib/cjs/components/confirm/withConfirm.js +43 -0
- package/lib/cjs/components/icon/Icon.d.ts +24 -0
- package/lib/cjs/components/icon/Icon.d.ts.map +1 -0
- package/lib/cjs/components/icon/Icon.js +116 -0
- package/lib/cjs/components/input/Checkbox.d.ts +29 -0
- package/lib/cjs/components/input/Checkbox.d.ts.map +1 -0
- package/lib/cjs/components/input/Checkbox.js +75 -0
- package/lib/cjs/components/input/SearchBox.d.ts +21 -0
- package/lib/cjs/components/input/SearchBox.d.ts.map +1 -0
- package/lib/cjs/components/input/SearchBox.js +90 -0
- package/lib/cjs/components/label/Label.d.ts +23 -0
- package/lib/cjs/components/label/Label.d.ts.map +1 -0
- package/lib/cjs/components/label/Label.js +24 -0
- package/lib/cjs/components/modal/Modal.d.ts +29 -0
- package/lib/cjs/components/modal/Modal.d.ts.map +1 -0
- package/lib/cjs/components/modal/Modal.js +65 -0
- package/lib/cjs/components/modalComponents/ModalContainer.d.ts +6 -0
- package/lib/cjs/components/modalComponents/ModalContainer.d.ts.map +1 -0
- package/lib/cjs/components/modalComponents/ModalContainer.js +12 -0
- package/lib/cjs/components/modalComponents/ModalWindow.d.ts +4 -0
- package/lib/cjs/components/modalComponents/ModalWindow.d.ts.map +1 -0
- package/lib/cjs/components/modalComponents/ModalWindow.js +50 -0
- package/lib/cjs/components/popup/Popup.d.ts +38 -0
- package/lib/cjs/components/popup/Popup.d.ts.map +1 -0
- package/lib/cjs/components/popup/Popup.js +78 -0
- package/lib/cjs/components/popupComponents/PopupArea.d.ts +18 -0
- package/lib/cjs/components/popupComponents/PopupArea.d.ts.map +1 -0
- package/lib/cjs/components/popupComponents/PopupArea.js +46 -0
- package/lib/cjs/components/spinner/Spinner.d.ts +20 -0
- package/lib/cjs/components/spinner/Spinner.d.ts.map +1 -0
- package/lib/cjs/components/spinner/Spinner.js +34 -0
- package/lib/cjs/components/spinner/SpinnerContainer.d.ts +23 -0
- package/lib/cjs/components/spinner/SpinnerContainer.d.ts.map +1 -0
- package/lib/cjs/components/spinner/SpinnerContainer.js +24 -0
- package/lib/cjs/components/tabs/Tabs.d.ts +34 -0
- package/lib/cjs/components/tabs/Tabs.d.ts.map +1 -0
- package/lib/cjs/components/tabs/Tabs.js +75 -0
- package/lib/cjs/components/tooltip/Tooltip.d.ts +28 -0
- package/lib/cjs/components/tooltip/Tooltip.d.ts.map +1 -0
- package/lib/cjs/components/tooltip/Tooltip.js +39 -0
- package/lib/cjs/hooks/useOutsideClick.d.ts +3 -0
- package/lib/cjs/hooks/useOutsideClick.d.ts.map +1 -0
- package/lib/cjs/hooks/useOutsideClick.js +42 -0
- package/lib/cjs/index.d.ts +22 -0
- package/lib/cjs/index.d.ts.map +1 -0
- package/lib/cjs/index.js +46 -0
- package/lib/cjs/types/i18n.d.ts +5 -0
- package/lib/cjs/types/i18n.d.ts.map +1 -0
- package/lib/cjs/types/i18n.js +2 -0
- package/lib/esm/__mocks__/react-i18next.d.ts +2 -0
- package/lib/esm/__mocks__/react-i18next.d.ts.map +1 -0
- package/lib/esm/__mocks__/react-i18next.js +17 -0
- package/lib/esm/assets/img/icon-arrow-back.png +0 -0
- package/lib/esm/assets/img/icon_folder_closed.png +0 -0
- package/lib/esm/assets/img/icon_folder_closed_light.png +0 -0
- package/lib/esm/assets/img/icon_folder_open.png +0 -0
- package/lib/esm/assets/img/icon_folder_open_light.png +0 -0
- package/lib/esm/assets/img/icon_help_light_24.png +0 -0
- package/lib/esm/assets/img/icon_variablenode.png +0 -0
- package/lib/esm/assets/img/icon_variablenode_light.png +0 -0
- package/lib/esm/assets/img/toastify_msg_error_24.png +0 -0
- package/lib/esm/assets/img/toastify_msg_success_24.png +0 -0
- package/lib/esm/assets/search-box.css +29 -0
- package/lib/esm/assets/style.css +219 -0
- package/lib/esm/assets/svg/icon_add.svg +3 -0
- package/lib/esm/assets/svg/icon_calendar.svg +50 -0
- package/lib/esm/assets/svg/icon_chevron_left.svg +6 -0
- package/lib/esm/assets/svg/icon_chevron_right.svg +6 -0
- package/lib/esm/assets/svg/icon_cross.svg +3 -0
- package/lib/esm/assets/svg/icon_download.svg +5 -0
- package/lib/esm/assets/svg/icon_duplicate.svg +10 -0
- package/lib/esm/assets/svg/icon_edit.svg +6 -0
- package/lib/esm/assets/svg/icon_folder_loading.svg +21 -0
- package/lib/esm/assets/svg/icon_fullscreen.svg +6 -0
- package/lib/esm/assets/svg/icon_gear.svg +5 -0
- package/lib/esm/assets/svg/icon_help_light.svg +3 -0
- package/lib/esm/assets/svg/icon_key.svg +3 -0
- package/lib/esm/assets/svg/icon_lupe.svg +14 -0
- package/lib/esm/assets/svg/icon_menu_horizontal.svg +5 -0
- package/lib/esm/assets/svg/icon_menu_vertical.svg +5 -0
- package/lib/esm/assets/svg/icon_reload.svg +6 -0
- package/lib/esm/assets/svg/icon_star.svg +4 -0
- package/lib/esm/assets/svg/icon_upload.svg +7 -0
- package/lib/esm/assets/svg/icon_warning_triangle.svg +12 -0
- package/lib/esm/assets/svg/triangle_down.svg +3 -0
- package/lib/esm/assets/svg/triangle_left.svg +3 -0
- package/lib/esm/assets/svg/triangle_right.svg +3 -0
- package/lib/esm/assets/svg/triangle_up.svg +3 -0
- package/lib/esm/assets/svg/triangle_up_and_down.svg +4 -0
- package/lib/esm/components/accordion/Accordion.d.ts +25 -0
- package/lib/esm/components/accordion/Accordion.d.ts.map +1 -0
- package/lib/esm/components/accordion/Accordion.js +34 -0
- package/lib/esm/components/accordionComponents/AccordionItem.d.ts +32 -0
- package/lib/esm/components/accordionComponents/AccordionItem.d.ts.map +1 -0
- package/lib/esm/components/accordionComponents/AccordionItem.js +24 -0
- package/lib/esm/components/bubble/Bubble.d.ts +35 -0
- package/lib/esm/components/bubble/Bubble.d.ts.map +1 -0
- package/lib/esm/components/bubble/Bubble.js +36 -0
- package/lib/esm/components/button/Button.d.ts +33 -0
- package/lib/esm/components/button/Button.d.ts.map +1 -0
- package/lib/esm/components/button/Button.js +17 -0
- package/lib/esm/components/button/ButtonRow.d.ts +23 -0
- package/lib/esm/components/button/ButtonRow.d.ts.map +1 -0
- package/lib/esm/components/button/ButtonRow.js +10 -0
- package/lib/esm/components/confirm/Confirm.d.ts +19 -0
- package/lib/esm/components/confirm/Confirm.d.ts.map +1 -0
- package/lib/esm/components/confirm/Confirm.js +20 -0
- package/lib/esm/components/confirm/ConfirmProvider.d.ts +14 -0
- package/lib/esm/components/confirm/ConfirmProvider.d.ts.map +1 -0
- package/lib/esm/components/confirm/ConfirmProvider.js +34 -0
- package/lib/esm/components/confirm/useConfirm.d.ts +9 -0
- package/lib/esm/components/confirm/useConfirm.d.ts.map +1 -0
- package/lib/esm/components/confirm/useConfirm.js +10 -0
- package/lib/esm/components/confirm/utils.d.ts +4 -0
- package/lib/esm/components/confirm/utils.d.ts.map +1 -0
- package/lib/esm/components/confirm/utils.js +7 -0
- package/lib/esm/components/confirm/withConfirm.d.ts +7 -0
- package/lib/esm/components/confirm/withConfirm.d.ts.map +1 -0
- package/lib/esm/components/confirm/withConfirm.js +37 -0
- package/lib/esm/components/icon/Icon.d.ts +24 -0
- package/lib/esm/components/icon/Icon.d.ts.map +1 -0
- package/lib/esm/components/icon/Icon.js +110 -0
- package/lib/esm/components/input/Checkbox.d.ts +29 -0
- package/lib/esm/components/input/Checkbox.d.ts.map +1 -0
- package/lib/esm/components/input/Checkbox.js +50 -0
- package/lib/esm/components/input/SearchBox.d.ts +21 -0
- package/lib/esm/components/input/SearchBox.d.ts.map +1 -0
- package/lib/esm/components/input/SearchBox.js +62 -0
- package/lib/esm/components/label/Label.d.ts +23 -0
- package/lib/esm/components/label/Label.d.ts.map +1 -0
- package/lib/esm/components/label/Label.js +18 -0
- package/lib/esm/components/modal/Modal.d.ts +29 -0
- package/lib/esm/components/modal/Modal.d.ts.map +1 -0
- package/lib/esm/components/modal/Modal.js +59 -0
- package/lib/esm/components/modalComponents/ModalContainer.d.ts +6 -0
- package/lib/esm/components/modalComponents/ModalContainer.d.ts.map +1 -0
- package/lib/esm/components/modalComponents/ModalContainer.js +6 -0
- package/lib/esm/components/modalComponents/ModalWindow.d.ts +4 -0
- package/lib/esm/components/modalComponents/ModalWindow.d.ts.map +1 -0
- package/lib/esm/components/modalComponents/ModalWindow.js +21 -0
- package/lib/esm/components/popup/Popup.d.ts +38 -0
- package/lib/esm/components/popup/Popup.d.ts.map +1 -0
- package/lib/esm/components/popup/Popup.js +49 -0
- package/lib/esm/components/popupComponents/PopupArea.d.ts +18 -0
- package/lib/esm/components/popupComponents/PopupArea.d.ts.map +1 -0
- package/lib/esm/components/popupComponents/PopupArea.js +17 -0
- package/lib/esm/components/spinner/Spinner.d.ts +20 -0
- package/lib/esm/components/spinner/Spinner.d.ts.map +1 -0
- package/lib/esm/components/spinner/Spinner.js +28 -0
- package/lib/esm/components/spinner/SpinnerContainer.d.ts +23 -0
- package/lib/esm/components/spinner/SpinnerContainer.d.ts.map +1 -0
- package/lib/esm/components/spinner/SpinnerContainer.js +18 -0
- package/lib/esm/components/tabs/Tabs.d.ts +34 -0
- package/lib/esm/components/tabs/Tabs.d.ts.map +1 -0
- package/lib/esm/components/tabs/Tabs.js +46 -0
- package/lib/esm/components/tooltip/Tooltip.d.ts +28 -0
- package/lib/esm/components/tooltip/Tooltip.d.ts.map +1 -0
- package/lib/esm/components/tooltip/Tooltip.js +33 -0
- package/lib/esm/hooks/useOutsideClick.d.ts +3 -0
- package/lib/esm/hooks/useOutsideClick.d.ts.map +1 -0
- package/lib/esm/hooks/useOutsideClick.js +40 -0
- package/lib/esm/index.d.ts +22 -0
- package/lib/esm/index.d.ts.map +1 -0
- package/lib/esm/index.js +21 -0
- package/lib/esm/types/i18n.d.ts +5 -0
- package/lib/esm/types/i18n.d.ts.map +1 -0
- package/lib/esm/types/i18n.js +1 -0
- package/package.json +80 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { withTranslation } from 'react-i18next';
|
|
3
|
+
const getWrapperClassName = (type, small) => {
|
|
4
|
+
switch (type) {
|
|
5
|
+
case 'checkbox':
|
|
6
|
+
case 'radio':
|
|
7
|
+
return 'di checkbox';
|
|
8
|
+
case 'toggle':
|
|
9
|
+
return small ? 'di toggle toggle-small' : 'di toggle';
|
|
10
|
+
default:
|
|
11
|
+
throw Error(`type not support: ${type}`);
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
const getCheckboxClassName = (type, small) => {
|
|
15
|
+
switch (type) {
|
|
16
|
+
case 'checkbox':
|
|
17
|
+
return 'box';
|
|
18
|
+
case 'radio':
|
|
19
|
+
return 'radio';
|
|
20
|
+
case 'toggle':
|
|
21
|
+
return small ? 'switch switch-small' : 'switch';
|
|
22
|
+
default:
|
|
23
|
+
throw Error(`type not support: ${type}`);
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* Checkbox for enabling user interaction can have one of multiple types which are defined via the `type` prop.
|
|
28
|
+
*/
|
|
29
|
+
const Checkbox = ({ type = 'checkbox', value, onChange, title, label, disabled = false, toggleSmall = false, toggleColor = '#259b23', t, ...other }) => {
|
|
30
|
+
const style = type === 'toggle'
|
|
31
|
+
? {
|
|
32
|
+
backgroundColor: value ? toggleColor : 'gray'
|
|
33
|
+
}
|
|
34
|
+
: {};
|
|
35
|
+
const tooltip = title
|
|
36
|
+
? t(title.id, {
|
|
37
|
+
defaultValue: title.defaultValue
|
|
38
|
+
})
|
|
39
|
+
: undefined;
|
|
40
|
+
const labelText = label
|
|
41
|
+
? t(label.id, {
|
|
42
|
+
defaultValue: label.defaultValue
|
|
43
|
+
})
|
|
44
|
+
: null;
|
|
45
|
+
return (React.createElement("label", { title: tooltip, className: getWrapperClassName(type, toggleSmall), "data-testid": other['wrapper-data-testid'] },
|
|
46
|
+
React.createElement("input", { type: "checkbox", checked: value, disabled: disabled, onChange: () => onChange(!value), "data-testid": other['data-testid'] }),
|
|
47
|
+
React.createElement("div", { className: getCheckboxClassName(type, toggleSmall), style: style, "data-testid": other['innerdiv-data-testid'] }),
|
|
48
|
+
label && React.createElement("span", { className: "textlabel" }, labelText)));
|
|
49
|
+
};
|
|
50
|
+
export default withTranslation()(Checkbox);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import '../../assets/search-box.css';
|
|
3
|
+
import { CSSProperties } from 'react';
|
|
4
|
+
import { TranslationDescriptor } from '../../types/i18n';
|
|
5
|
+
export declare type Props = {
|
|
6
|
+
/** Placeholder text for input field `(string | TranslationDescriptor)` */
|
|
7
|
+
placeholder: string | TranslationDescriptor;
|
|
8
|
+
/** Function to call if the input changes */
|
|
9
|
+
onChange: (value: string) => void;
|
|
10
|
+
/** Function to call if the search is triggered (button press or return in search field) */
|
|
11
|
+
onSubmit?: (value: string) => void;
|
|
12
|
+
/** if true, a button is shown that clears the input */
|
|
13
|
+
clearable?: boolean;
|
|
14
|
+
/** Value that should initially be displayed in the text box */
|
|
15
|
+
initialValue: string | null | undefined;
|
|
16
|
+
/** Wrapper styles */
|
|
17
|
+
style: CSSProperties | undefined;
|
|
18
|
+
};
|
|
19
|
+
declare const _default: React.ComponentType<Props>;
|
|
20
|
+
export default _default;
|
|
21
|
+
//# sourceMappingURL=SearchBox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchBox.d.ts","sourceRoot":"","sources":["../../../../src/components/input/SearchBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,6BAA6B,CAAC;AACrC,OAAO,EAAgB,aAAa,EAAC,MAAM,OAAO,CAAC;AAInD,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAEvD,oBAAY,KAAK,GAAG;IACnB,0EAA0E;IAC1E,WAAW,EAAE,MAAM,GAAG,qBAAqB,CAAC;IAE5C,4CAA4C;IAC5C,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAElC,2FAA2F;IAC3F,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEnC,uDAAuD;IACvD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,+DAA+D;IAC/D,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAExC,qBAAqB;IACrB,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;CACjC,CAAC;;AA2GF,wBAAoE"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { withTranslation } from 'react-i18next';
|
|
3
|
+
import '../../assets/search-box.css';
|
|
4
|
+
import Icon from '../icon/Icon';
|
|
5
|
+
import Button from '../button/Button';
|
|
6
|
+
const ClearButton = ({ onChange, inputElement, style }) => (React.createElement(Button, { naked: true, onClick: () => {
|
|
7
|
+
onChange('');
|
|
8
|
+
if (inputElement) {
|
|
9
|
+
inputElement.focus();
|
|
10
|
+
}
|
|
11
|
+
}, style: style },
|
|
12
|
+
React.createElement(Icon, { del: true })));
|
|
13
|
+
/**
|
|
14
|
+
* SearchBox is used for searching content and provides a set of `props` for different user experiences
|
|
15
|
+
*/
|
|
16
|
+
class SearchBox extends React.Component {
|
|
17
|
+
constructor() {
|
|
18
|
+
super(...arguments);
|
|
19
|
+
this.state = {
|
|
20
|
+
query: this.props.initialValue || ''
|
|
21
|
+
};
|
|
22
|
+
this.handleChange = (value) => {
|
|
23
|
+
const { onChange } = this.props;
|
|
24
|
+
this.setState({
|
|
25
|
+
query: value
|
|
26
|
+
});
|
|
27
|
+
onChange(value);
|
|
28
|
+
};
|
|
29
|
+
this.handleKeyUp = ({ key }) => {
|
|
30
|
+
const { onSubmit } = this.props;
|
|
31
|
+
const { query } = this.state;
|
|
32
|
+
if (key === 'Enter' && typeof onSubmit === 'function') {
|
|
33
|
+
onSubmit(query);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
printPlaceholder() {
|
|
38
|
+
const { t, placeholder } = this.props;
|
|
39
|
+
if (typeof placeholder === 'object') {
|
|
40
|
+
return t(placeholder.id, {
|
|
41
|
+
defaultValue: placeholder.defaultValue
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return placeholder;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
render() {
|
|
49
|
+
const { onSubmit, style, clearable } = this.props;
|
|
50
|
+
const { query } = this.state;
|
|
51
|
+
return (React.createElement("div", { className: "search-box", style: style },
|
|
52
|
+
React.createElement("input", { ref: (input) => (this.input = input), type: "text", value: query, placeholder: this.printPlaceholder(), onKeyUp: this.handleKeyUp, onChange: ({ target: { value } }) => this.handleChange(value) }),
|
|
53
|
+
typeof onSubmit === 'function' ? (React.createElement(React.Fragment, null,
|
|
54
|
+
query && clearable && (React.createElement(ClearButton, { onChange: this.handleChange, inputElement: this.input, style: {
|
|
55
|
+
right: 30
|
|
56
|
+
} })),
|
|
57
|
+
React.createElement(Button, { naked: true, onClick: () => onSubmit(query) },
|
|
58
|
+
React.createElement(Icon, { search: true })))) : query && clearable ? (React.createElement(ClearButton, { onChange: this.handleChange, inputElement: this.input })) : (React.createElement(Button, { naked: true, disabled: true },
|
|
59
|
+
React.createElement(Icon, { search: true })))));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export default withTranslation()(SearchBox);
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React, { MouseEventHandler, PropsWithChildren } from 'react';
|
|
2
|
+
import { TranslationDescriptor } from '../../types/i18n';
|
|
3
|
+
export interface Props extends React.HTMLAttributes<HTMLSpanElement> {
|
|
4
|
+
/** the label text, either a string or TranslationDescriptor */
|
|
5
|
+
text?: string | TranslationDescriptor;
|
|
6
|
+
/** a smaller label */
|
|
7
|
+
small?: boolean;
|
|
8
|
+
/** a larger label */
|
|
9
|
+
large?: boolean;
|
|
10
|
+
onClick?: MouseEventHandler<HTMLSpanElement>;
|
|
11
|
+
/** adds a delete button that triggers this callback function */
|
|
12
|
+
onDelete?: (...args: Array<any>) => any;
|
|
13
|
+
className?: string;
|
|
14
|
+
/** @ignore */
|
|
15
|
+
'data-testid'?: string;
|
|
16
|
+
/** @ignore */
|
|
17
|
+
'delete-button-data-testid'?: string;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Label enables an easy way for marking or tagging elements.
|
|
21
|
+
*/
|
|
22
|
+
export default function Label({ text, small, large, onDelete, className, onClick, children, ...dataTestIds }: PropsWithChildren<Props>): JSX.Element;
|
|
23
|
+
//# sourceMappingURL=Label.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Label.d.ts","sourceRoot":"","sources":["../../../../src/components/label/Label.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,iBAAiB,EAAE,iBAAiB,EAAa,MAAM,OAAO,CAAC;AAK9E,OAAO,EAAC,qBAAqB,EAAC,MAAM,kBAAkB,CAAC;AAEvD,MAAM,WAAW,KAAM,SAAQ,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC;IACnE,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,GAAG,qBAAqB,CAAC;IAEtC,sBAAsB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,qBAAqB;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB,OAAO,CAAC,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC;IAE7C,gEAAgE;IAChE,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC;IAExC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,cAAc;IACd,2BAA2B,CAAC,EAAE,MAAM,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAC7B,IAAI,EACJ,KAAa,EACb,KAAa,EACb,QAAQ,EACR,SAAS,EACT,OAAO,EACP,QAAQ,EACR,GAAG,WAAW,EACd,EAAE,iBAAiB,CAAC,KAAK,CAAC,eAoB1B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Trans } from 'react-i18next';
|
|
3
|
+
import cx from 'classnames';
|
|
4
|
+
import Icon from '../icon/Icon';
|
|
5
|
+
/**
|
|
6
|
+
* Label enables an easy way for marking or tagging elements.
|
|
7
|
+
*/
|
|
8
|
+
export default function Label({ text, small = false, large = false, onDelete, className, onClick, children, ...dataTestIds }) {
|
|
9
|
+
function handleDelete(event) {
|
|
10
|
+
event.stopPropagation();
|
|
11
|
+
onDelete && onDelete();
|
|
12
|
+
}
|
|
13
|
+
return (React.createElement("span", { onClick: onClick, className: cx('di label', className, { large, small, removable: onDelete, clickable: !!onClick }), "data-testid": dataTestIds['data-testid'] },
|
|
14
|
+
typeof text === 'string' ? text : text && React.createElement(Trans, { i18nKey: text.id }, text.defaultValue),
|
|
15
|
+
React.createElement(React.Fragment, null, children),
|
|
16
|
+
onDelete && (React.createElement("span", { "data-testid": dataTestIds['delete-button-data-testid'], className: "remove", onClick: handleDelete },
|
|
17
|
+
React.createElement(Icon, { del: true, inverted: true })))));
|
|
18
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import React from 'react';
|
|
3
|
+
export declare type Props = {
|
|
4
|
+
header?: React.ReactNode;
|
|
5
|
+
content?: React.ReactNode;
|
|
6
|
+
footer?: React.ReactNode;
|
|
7
|
+
/** the CSS width setting, either a number or string */
|
|
8
|
+
width?: string | number;
|
|
9
|
+
className?: string;
|
|
10
|
+
/** callback function that is executed when the users click outside the modal */
|
|
11
|
+
onOutsideClick?: (event?: Event) => void;
|
|
12
|
+
onMouseDown?: (event: React.SyntheticEvent<HTMLElement>) => void;
|
|
13
|
+
};
|
|
14
|
+
export default class Modal extends React.Component<Props, {
|
|
15
|
+
className: string;
|
|
16
|
+
}> {
|
|
17
|
+
static defaultProps: {
|
|
18
|
+
width: string;
|
|
19
|
+
};
|
|
20
|
+
container: HTMLDivElement | undefined;
|
|
21
|
+
modalRoot: HTMLElement | null | undefined;
|
|
22
|
+
timeoutId: NodeJS.Timeout | undefined;
|
|
23
|
+
constructor(props: Props);
|
|
24
|
+
componentDidMount(): void;
|
|
25
|
+
componentWillUnmount(): void;
|
|
26
|
+
keyEventHandler: (event: KeyboardEvent) => void;
|
|
27
|
+
render(): React.ReactPortal | null;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=Modal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../../src/components/modal/Modal.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,oBAAY,KAAK,GAAG;IACnB,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,gFAAgF;IAChF,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACzC,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CACjE,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,KAAK,CAAC,SAAS,CACjD,KAAK,EACL;IACC,SAAS,EAAE,MAAM,CAAC;CAClB,CACD;IACA,MAAM,CAAC,YAAY,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC;KACd,CAEC;IACF,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,SAAS,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,SAAS,EAAE,MAAM,CAAC,OAAO,GAAG,SAAS,CAAC;gBAE1B,KAAK,EAAE,KAAK;IAOxB,iBAAiB;IAwBjB,oBAAoB;IAkBpB,eAAe,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAI7C;IAEF,MAAM;CAYN"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import ReactDOM from 'react-dom';
|
|
3
|
+
import ModalWindow from '../modalComponents/ModalWindow';
|
|
4
|
+
export default class Modal extends React.Component {
|
|
5
|
+
constructor(props) {
|
|
6
|
+
super(props);
|
|
7
|
+
this.keyEventHandler = (event) => {
|
|
8
|
+
if (event.key === 'Escape' && this.props.onOutsideClick) {
|
|
9
|
+
this.props.onOutsideClick(event);
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
this.state = {
|
|
13
|
+
className: 'di modal'
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
componentDidMount() {
|
|
17
|
+
this.container = document.createElement('div');
|
|
18
|
+
this.modalRoot = document.getElementById('modal-root');
|
|
19
|
+
if (this.modalRoot) {
|
|
20
|
+
this.modalRoot.appendChild(this.container);
|
|
21
|
+
}
|
|
22
|
+
else if (document.body) {
|
|
23
|
+
document.body.appendChild(this.container);
|
|
24
|
+
}
|
|
25
|
+
if (this.props.onOutsideClick) {
|
|
26
|
+
window.addEventListener('keydown', this.keyEventHandler);
|
|
27
|
+
}
|
|
28
|
+
// set the show class after 10ms for animation
|
|
29
|
+
this.timeoutId = setTimeout(() => this.setState({
|
|
30
|
+
className: `di modal show ${this.props.className || ''}`
|
|
31
|
+
}), 10);
|
|
32
|
+
}
|
|
33
|
+
componentWillUnmount() {
|
|
34
|
+
if (this.container) {
|
|
35
|
+
if (this.modalRoot) {
|
|
36
|
+
this.modalRoot.removeChild(this.container);
|
|
37
|
+
}
|
|
38
|
+
else if (document.body) {
|
|
39
|
+
document.body.removeChild(this.container);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (this.props.onOutsideClick) {
|
|
43
|
+
window.removeEventListener('keydown', this.keyEventHandler);
|
|
44
|
+
}
|
|
45
|
+
if (this.timeoutId) {
|
|
46
|
+
clearTimeout(this.timeoutId);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
render() {
|
|
50
|
+
if (!this.container) {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
return ReactDOM.createPortal(React.createElement("div", { className: this.state.className, onMouseDown: this.props.onMouseDown },
|
|
54
|
+
React.createElement(ModalWindow, { ...this.props })), this.container);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
Modal.defaultProps = {
|
|
58
|
+
width: '60%'
|
|
59
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModalContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/modalComponents/ModalContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,oBAAY,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAE1C,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC;IACrE,MAAM;CAGN"}
|
|
@@ -0,0 +1 @@
|
|
|
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,eA0BrG"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useState } from 'react';
|
|
2
|
+
import Draggable from 'react-draggable';
|
|
3
|
+
import useOutsideClick from '../../hooks/useOutsideClick';
|
|
4
|
+
export default function ModalWindow({ className, width, header, content, footer, onOutsideClick }) {
|
|
5
|
+
const ref = useRef(null);
|
|
6
|
+
const [rootElement, setRootElement] = useState(null);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
setRootElement(ref.current);
|
|
9
|
+
}, []);
|
|
10
|
+
useOutsideClick([rootElement], () => {
|
|
11
|
+
if (onOutsideClick)
|
|
12
|
+
onOutsideClick();
|
|
13
|
+
});
|
|
14
|
+
return (React.createElement(Draggable, { handle: ".modal-header", nodeRef: ref },
|
|
15
|
+
React.createElement("div", { ref: ref, className: `modal-window ${className || ''}`, style: {
|
|
16
|
+
maxWidth: width
|
|
17
|
+
} },
|
|
18
|
+
header && React.createElement("div", { className: "modal-header" }, header),
|
|
19
|
+
content && React.createElement("div", { className: "modal-content" }, content),
|
|
20
|
+
footer && React.createElement("div", { className: "modal-footer" }, footer))));
|
|
21
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Modifier } from 'react-popper';
|
|
3
|
+
export declare type PopupDirection = 'auto-start' | 'auto' | 'auto-end' | 'top-start' | 'top' | 'top-end' | 'right-start' | 'right' | 'right-end' | 'bottom-end' | 'bottom' | 'bottom-start' | 'left-end' | 'left' | 'left-start';
|
|
4
|
+
export declare type Props = {
|
|
5
|
+
/** Element to toggle the Popup */
|
|
6
|
+
handler: React.ReactNode;
|
|
7
|
+
/** Content to be displayed */
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
/** If true, displays the Popup's content */
|
|
10
|
+
active: boolean;
|
|
11
|
+
/** Function, executed when the Popup gets closed */
|
|
12
|
+
onHide: (event: MouseEvent) => void;
|
|
13
|
+
ignoredElements?: HTMLElement[];
|
|
14
|
+
/** (Optional) if set, sets the direction in which the content should be displayed */
|
|
15
|
+
direction?: PopupDirection;
|
|
16
|
+
/** (Optional) function, executed if the handler gets clicked */
|
|
17
|
+
onHandlerClick?: (event: React.SyntheticEvent<HTMLSpanElement>) => any;
|
|
18
|
+
/** @ignore */
|
|
19
|
+
className?: string;
|
|
20
|
+
/** (Optional) https://popper.js.org/popper-documentation.html#modifiers..preventOverflow */
|
|
21
|
+
modifiers?: Modifier<any>[];
|
|
22
|
+
/** (Optional) If set to true, the content is hidden via styles, but still exists in the DOM tree */
|
|
23
|
+
preventDestroyContentOnHide?: boolean;
|
|
24
|
+
/** (Optional) Class name of the handler wrapping element */
|
|
25
|
+
handlerWrapperClassName?: string;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Popup displays content within a small modal.
|
|
29
|
+
* Its usage is highly flexible and used in several other components.
|
|
30
|
+
*/
|
|
31
|
+
export default class Popup extends React.Component<Props> {
|
|
32
|
+
container: HTMLDivElement | undefined;
|
|
33
|
+
referenceHandler: React.RefObject<HTMLSpanElement>;
|
|
34
|
+
componentDidMount(): void;
|
|
35
|
+
componentWillUnmount(): void;
|
|
36
|
+
render(): JSX.Element;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=Popup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popup.d.ts","sourceRoot":"","sources":["../../../../src/components/popup/Popup.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAU,QAAQ,EAAoB,MAAM,cAAc,CAAC;AAGlE,oBAAY,cAAc,GACvB,YAAY,GACZ,MAAM,GACN,UAAU,GACV,WAAW,GACX,KAAK,GACL,SAAS,GACT,aAAa,GACb,OAAO,GACP,WAAW,GACX,YAAY,GACZ,QAAQ,GACR,cAAc,GACd,UAAU,GACV,MAAM,GACN,YAAY,CAAC;AAEhB,oBAAY,KAAK,GAAG;IACnB,kCAAkC;IAClC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB,8BAA8B;IAC9B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAE1B,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;IAEhB,oDAAoD;IACpD,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IAEpC,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;IAEhC,qFAAqF;IACrF,SAAS,CAAC,EAAE,cAAc,CAAC;IAE3B,gEAAgE;IAChE,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,cAAc,CAAC,eAAe,CAAC,KAAK,GAAG,CAAC;IAEvE,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4FAA4F;IAC5F,SAAS,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;IAE5B,oGAAoG;IACpG,2BAA2B,CAAC,EAAE,OAAO,CAAC;IAEtC,4DAA4D;IAC5D,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACjC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;IACxD,SAAS,EAAE,cAAc,GAAG,SAAS,CAAC;IACtC,gBAAgB,mCAAsC;IAEtD,iBAAiB;IASjB,oBAAoB;IAMpB,MAAM;CAwEN"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import ReactDOM from 'react-dom';
|
|
3
|
+
import classNames from 'classnames';
|
|
4
|
+
import { Manager, Popper, Reference } from 'react-popper';
|
|
5
|
+
import PopupArea from '../popupComponents/PopupArea';
|
|
6
|
+
/**
|
|
7
|
+
* Popup displays content within a small modal.
|
|
8
|
+
* Its usage is highly flexible and used in several other components.
|
|
9
|
+
*/
|
|
10
|
+
export default class Popup extends React.Component {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.referenceHandler = React.createRef();
|
|
14
|
+
}
|
|
15
|
+
componentDidMount() {
|
|
16
|
+
const container = document.createElement('div');
|
|
17
|
+
if (document.body) {
|
|
18
|
+
document.body.appendChild(container);
|
|
19
|
+
this.container = container;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
componentWillUnmount() {
|
|
23
|
+
if (document.body && this.container) {
|
|
24
|
+
document.body.removeChild(this.container);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
render() {
|
|
28
|
+
const { handler, children, active, onHide, direction, className, onHandlerClick, modifiers, preventDestroyContentOnHide, handlerWrapperClassName, ...otherProps } = this.props;
|
|
29
|
+
const placement = direction ? direction : 'bottom';
|
|
30
|
+
return (React.createElement(Manager, null,
|
|
31
|
+
React.createElement(Reference, null, ({ ref }) => (React.createElement("span", { ref: ref, style: {
|
|
32
|
+
display: 'inline-block'
|
|
33
|
+
}, className: handlerWrapperClassName },
|
|
34
|
+
React.createElement("span", { ref: this.referenceHandler, style: {
|
|
35
|
+
display: 'inline-block',
|
|
36
|
+
verticalAlign: 'bottom'
|
|
37
|
+
}, onClick: onHandlerClick, className: handlerWrapperClassName }, handler)))),
|
|
38
|
+
(active || preventDestroyContentOnHide) &&
|
|
39
|
+
this.container &&
|
|
40
|
+
ReactDOM.createPortal(React.createElement(Popper, { ...otherProps, placement: placement, modifiers: modifiers }, ({ ref, style, placement, arrowProps }) => {
|
|
41
|
+
return (React.createElement("span", { className: classNames('di popup-wrapper', {
|
|
42
|
+
hidden: preventDestroyContentOnHide && !active
|
|
43
|
+
}) },
|
|
44
|
+
React.createElement(PopupArea, { ...(this.props.ignoredElements
|
|
45
|
+
? { ignoredElements: this.props.ignoredElements }
|
|
46
|
+
: {}), referenceHandler: this.referenceHandler.current, popupAreaHandler: ref, placement: placement, style: style, onHide: onHide, visible: active, arrowProps: arrowProps, className: className }, children)));
|
|
47
|
+
}), this.container)));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { PropsWithChildren, ReactNode, Ref } from 'react';
|
|
2
|
+
import { PopperArrowProps } from 'react-popper';
|
|
3
|
+
import { PopupDirection } from '../popup/Popup';
|
|
4
|
+
declare type Props = {
|
|
5
|
+
referenceHandler: HTMLElement | null;
|
|
6
|
+
popupAreaHandler: Ref<any>;
|
|
7
|
+
ignoredElements?: HTMLElement[];
|
|
8
|
+
style: Record<string, any>;
|
|
9
|
+
children: ReactNode;
|
|
10
|
+
placement: PopupDirection;
|
|
11
|
+
onHide: (event: MouseEvent) => void;
|
|
12
|
+
visible: boolean;
|
|
13
|
+
arrowProps: PopperArrowProps;
|
|
14
|
+
className?: string;
|
|
15
|
+
};
|
|
16
|
+
export default function PopupArea({ popupAreaHandler, ignoredElements, style, placement, className, arrowProps, children, visible, onHide }: PropsWithChildren<Props>): JSX.Element;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=PopupArea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PopupArea.d.ts","sourceRoot":"","sources":["../../../../src/components/popupComponents/PopupArea.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAC,iBAAiB,EAAE,SAAS,EAAE,GAAG,EAAW,MAAM,OAAO,CAAC;AACzE,OAAO,EAAC,gBAAgB,EAAC,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAC,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAG9C,aAAK,KAAK,GAAG;IACZ,gBAAgB,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;IAC3B,eAAe,CAAC,EAAE,WAAW,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,EAAE,cAAc,CAAC;IAC1B,MAAM,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EACjC,gBAAgB,EAChB,eAAoB,EACpB,KAAK,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,QAAQ,EACR,OAAO,EACP,MAAM,EACN,EAAE,iBAAiB,CAAC,KAAK,CAAC,eAqB1B"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import useOutsideClick from '../../hooks/useOutsideClick';
|
|
3
|
+
export default function PopupArea({ popupAreaHandler, ignoredElements = [], style, placement, className, arrowProps, children, visible, onHide }) {
|
|
4
|
+
const [rootElement, setRootElement] = useState(null);
|
|
5
|
+
useOutsideClick([rootElement, ...ignoredElements], (event) => {
|
|
6
|
+
if (visible) {
|
|
7
|
+
onHide(event);
|
|
8
|
+
}
|
|
9
|
+
});
|
|
10
|
+
return (React.createElement("div", { ref: (div) => {
|
|
11
|
+
setRootElement(div);
|
|
12
|
+
if (typeof popupAreaHandler === 'function')
|
|
13
|
+
popupAreaHandler(div);
|
|
14
|
+
}, style: style, className: `di popup ${placement} ${className ? className : ''}` },
|
|
15
|
+
React.createElement("div", { className: `popup-arrow ${placement}`, ref: arrowProps.ref, style: arrowProps.style }),
|
|
16
|
+
React.createElement("div", { className: "popup-content" }, children)));
|
|
17
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type Props = {
|
|
3
|
+
/** the size of the Spinner in px */
|
|
4
|
+
size?: number;
|
|
5
|
+
/** @ignore */
|
|
6
|
+
center?: boolean;
|
|
7
|
+
/** @ignore */
|
|
8
|
+
'data-testid'?: string;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Spinners usually show a loading indication.
|
|
12
|
+
*/
|
|
13
|
+
export default class Spinner extends React.Component<Props> {
|
|
14
|
+
static defaultProps: {
|
|
15
|
+
size: number;
|
|
16
|
+
center: boolean;
|
|
17
|
+
};
|
|
18
|
+
render(): JSX.Element;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=Spinner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../../../../src/components/spinner/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,oBAAY,KAAK,GAAG;IACnB,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,cAAc;IACd,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;IAC1D,MAAM,CAAC,YAAY;;;MAGjB;IAEF,MAAM;CAoBN"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Spinners usually show a loading indication.
|
|
4
|
+
*/
|
|
5
|
+
export default class Spinner extends React.Component {
|
|
6
|
+
render() {
|
|
7
|
+
const { size = 56, center, ...dataAttrs } = this.props;
|
|
8
|
+
let style = {
|
|
9
|
+
width: size,
|
|
10
|
+
height: size
|
|
11
|
+
};
|
|
12
|
+
if (center) {
|
|
13
|
+
style = {
|
|
14
|
+
...style,
|
|
15
|
+
position: 'absolute',
|
|
16
|
+
top: '50%',
|
|
17
|
+
left: '50%',
|
|
18
|
+
marginTop: -size / 2,
|
|
19
|
+
marginLeft: -size / 2
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
return React.createElement("div", { className: "di spinner", style: style, ...dataAttrs });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
Spinner.defaultProps = {
|
|
26
|
+
size: 56,
|
|
27
|
+
center: false
|
|
28
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export declare type Props = {
|
|
3
|
+
/** controls the display of the Spinner */
|
|
4
|
+
show: boolean;
|
|
5
|
+
/** the size of the Spinner in px */
|
|
6
|
+
size?: number;
|
|
7
|
+
/** content to be rendered once the loading is done */
|
|
8
|
+
children?: React.ReactNode;
|
|
9
|
+
/** @ignore */
|
|
10
|
+
className?: string;
|
|
11
|
+
/** @ignore */
|
|
12
|
+
'data-testid'?: string;
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* SpinnerContainer wraps the entire content and displays a loading indicator until the loading is done.
|
|
16
|
+
*/
|
|
17
|
+
export default class SpinnerContainer extends React.Component<Props> {
|
|
18
|
+
static defaultProps: {
|
|
19
|
+
size: number;
|
|
20
|
+
};
|
|
21
|
+
render(): JSX.Element;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=SpinnerContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpinnerContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/spinner/SpinnerContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,oBAAY,KAAK,GAAG;IACnB,0CAA0C;IAC1C,IAAI,EAAE,OAAO,CAAC;IAEd,oCAAoC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,sDAAsD;IACtD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE3B,cAAc;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,cAAc;IACd,aAAa,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC;IACnE,MAAM,CAAC,YAAY,EAAE;QACpB,IAAI,EAAE,MAAM,CAAC;KACb,CAEC;IAEF,MAAM;CAcN"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Spinner from './Spinner';
|
|
3
|
+
/**
|
|
4
|
+
* SpinnerContainer wraps the entire content and displays a loading indicator until the loading is done.
|
|
5
|
+
*/
|
|
6
|
+
export default class SpinnerContainer extends React.Component {
|
|
7
|
+
render() {
|
|
8
|
+
const { show, size, children, className } = this.props;
|
|
9
|
+
const classNames = `di spinner-wrapper ${className ? className : ''}`;
|
|
10
|
+
return (React.createElement("div", { className: classNames },
|
|
11
|
+
React.createElement("div", { className: `di spinner-container ${show ? 'visible' : ''}`, "data-testid": this.props['data-testid'] },
|
|
12
|
+
React.createElement(Spinner, { size: size, center: true })),
|
|
13
|
+
children));
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
SpinnerContainer.defaultProps = {
|
|
17
|
+
size: 56
|
|
18
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
declare type Page = {
|
|
3
|
+
name: string;
|
|
4
|
+
renderHeading: () => React.ReactNode;
|
|
5
|
+
renderBody?: () => React.ReactNode;
|
|
6
|
+
tabDescription?: string;
|
|
7
|
+
};
|
|
8
|
+
declare type State = {
|
|
9
|
+
currentTab: string | null | undefined;
|
|
10
|
+
};
|
|
11
|
+
export declare type Props = {
|
|
12
|
+
/** Array of pages to be displayed */
|
|
13
|
+
pages: Array<Page>;
|
|
14
|
+
/** (Optional) if set, disables tab */
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
/** (Optional) function, executed if tabs change */
|
|
17
|
+
onChange?: (tab: string) => void;
|
|
18
|
+
/** (Optional) sets the current tab */
|
|
19
|
+
currentTab?: string | null | undefined;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Tabs add the possibility to unite several homogeneous pages into one.
|
|
23
|
+
* Unlike RouteTabs, Tabs cannot be accessed directly via the browser's history
|
|
24
|
+
*/
|
|
25
|
+
export default class Tabs extends React.Component<Props, State> {
|
|
26
|
+
state: State;
|
|
27
|
+
handleClick: (tab: string) => void;
|
|
28
|
+
currentTabPage: () => Page | null | undefined;
|
|
29
|
+
isCurrentTab: (tab: string) => boolean;
|
|
30
|
+
renderBody: () => React.ReactNode;
|
|
31
|
+
render(): JSX.Element;
|
|
32
|
+
}
|
|
33
|
+
export {};
|
|
34
|
+
//# sourceMappingURL=Tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../../../src/components/tabs/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,aAAK,IAAI,GAAG;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACrC,UAAU,CAAC,EAAE,MAAM,KAAK,CAAC,SAAS,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,aAAK,KAAK,GAAG;IACZ,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACtC,CAAC;AAEF,oBAAY,KAAK,GAAG;IACnB,qCAAqC;IACrC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;IAEnB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjC,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,KAAK,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC;IAC9D,KAAK,EAAE,KAAK,CAEV;IAEF,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAQhC;IAEF,cAAc,EAAE,MAAM,IAAI,GAAG,IAAI,GAAG,SAAS,CAG3C;IAEF,YAAY,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAGpC;IAEF,UAAU,wBAQR;IAEF,MAAM;CAkCN"}
|