no-frills-ui 0.0.14-alpha.7 → 0.0.14-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -3
- package/dist/index.js +926 -795
- package/dist/index.js.map +1 -1
- package/lib-esm/components/Accordion/Accordion.d.ts +9 -13
- package/lib-esm/components/Accordion/Accordion.js +4 -10
- package/lib-esm/components/Accordion/Accordion.js.map +1 -0
- package/lib-esm/components/Accordion/AccordionStep.d.ts +22 -22
- package/lib-esm/components/Accordion/AccordionStep.js +41 -35
- package/lib-esm/components/Accordion/AccordionStep.js.map +1 -0
- package/lib-esm/components/Badge/Badge.d.ts +13 -16
- package/lib-esm/components/Badge/Badge.js +12 -21
- package/lib-esm/components/Badge/Badge.js.map +1 -0
- package/lib-esm/components/Button/ActionButton.d.ts +9 -5
- package/lib-esm/components/Button/ActionButton.js +20 -4
- package/lib-esm/components/Button/ActionButton.js.map +1 -0
- package/lib-esm/components/Button/Button.d.ts +9 -5
- package/lib-esm/components/Button/Button.js +19 -6
- package/lib-esm/components/Button/Button.js.map +1 -0
- package/lib-esm/components/Button/IconButton.d.ts +9 -5
- package/lib-esm/components/Button/IconButton.js +20 -4
- package/lib-esm/components/Button/IconButton.js.map +1 -0
- package/lib-esm/components/Button/LinkButton.d.ts +9 -5
- package/lib-esm/components/Button/LinkButton.js +20 -4
- package/lib-esm/components/Button/LinkButton.js.map +1 -0
- package/lib-esm/components/Button/RaisedButton.d.ts +9 -5
- package/lib-esm/components/Button/RaisedButton.js +20 -4
- package/lib-esm/components/Button/RaisedButton.js.map +1 -0
- package/lib-esm/components/Card/Card.d.ts +4 -6
- package/lib-esm/components/Card/Card.js +18 -4
- package/lib-esm/components/Card/Card.js.map +1 -0
- package/lib-esm/components/Chip/Chip.d.ts +2 -2
- package/lib-esm/components/Chip/Chip.js +17 -10
- package/lib-esm/components/Chip/Chip.js.map +1 -0
- package/lib-esm/components/ChipInput/ChipInput.d.ts +28 -39
- package/lib-esm/components/ChipInput/ChipInput.js +39 -39
- package/lib-esm/components/ChipInput/ChipInput.js.map +1 -0
- package/lib-esm/components/Dialog/AlertDialog.d.ts +11 -12
- package/lib-esm/components/Dialog/AlertDialog.js +5 -11
- package/lib-esm/components/Dialog/AlertDialog.js.map +1 -0
- package/lib-esm/components/Dialog/ConfirmDialog.d.ts +13 -14
- package/lib-esm/components/Dialog/ConfirmDialog.js +5 -12
- package/lib-esm/components/Dialog/ConfirmDialog.js.map +1 -0
- package/lib-esm/components/Dialog/Dialog.d.ts +8 -14
- package/lib-esm/components/Dialog/Dialog.js +13 -10
- package/lib-esm/components/Dialog/Dialog.js.map +1 -0
- package/lib-esm/components/Dialog/PromptDialog.d.ts +18 -19
- package/lib-esm/components/Dialog/PromptDialog.js +14 -21
- package/lib-esm/components/Dialog/PromptDialog.js.map +1 -0
- package/lib-esm/components/DragAndDrop/DragAndDrop.d.ts +37 -59
- package/lib-esm/components/DragAndDrop/DragAndDrop.js +26 -28
- package/lib-esm/components/DragAndDrop/DragAndDrop.js.map +1 -0
- package/lib-esm/components/DragAndDrop/DragItem.d.ts +2 -2
- package/lib-esm/components/DragAndDrop/DragItem.js +43 -40
- package/lib-esm/components/DragAndDrop/DragItem.js.map +1 -0
- package/lib-esm/components/DragAndDrop/types.d.ts +3 -3
- package/lib-esm/components/DragAndDrop/types.js +1 -0
- package/lib-esm/components/DragAndDrop/types.js.map +1 -0
- package/lib-esm/components/Drawer/Drawer.d.ts +24 -31
- package/lib-esm/components/Drawer/Drawer.js +50 -45
- package/lib-esm/components/Drawer/Drawer.js.map +1 -0
- package/lib-esm/components/Groups/Group.d.ts +6 -8
- package/lib-esm/components/Groups/Group.js +15 -12
- package/lib-esm/components/Groups/Group.js.map +1 -0
- package/lib-esm/components/Groups/GroupLabel.js +2 -1
- package/lib-esm/components/Groups/GroupLabel.js.map +1 -0
- package/lib-esm/components/Input/Checkbox.d.ts +12 -15
- package/lib-esm/components/Input/Checkbox.js +34 -29
- package/lib-esm/components/Input/Checkbox.js.map +1 -0
- package/lib-esm/components/Input/Dropdown.d.ts +8 -18
- package/lib-esm/components/Input/Dropdown.js +44 -18
- package/lib-esm/components/Input/Dropdown.js.map +1 -0
- package/lib-esm/components/Input/Input.d.ts +8 -3
- package/lib-esm/components/Input/Input.js +24 -22
- package/lib-esm/components/Input/Input.js.map +1 -0
- package/lib-esm/components/Input/Radio.d.ts +4 -8
- package/lib-esm/components/Input/Radio.js +20 -16
- package/lib-esm/components/Input/Radio.js.map +1 -0
- package/lib-esm/components/Input/RadioButton.d.ts +4 -8
- package/lib-esm/components/Input/RadioButton.js +19 -15
- package/lib-esm/components/Input/RadioButton.js.map +1 -0
- package/lib-esm/components/Input/Select.d.ts +6 -13
- package/lib-esm/components/Input/Select.js +26 -22
- package/lib-esm/components/Input/Select.js.map +1 -0
- package/lib-esm/components/Input/TextArea.d.ts +6 -13
- package/lib-esm/components/Input/TextArea.js +33 -27
- package/lib-esm/components/Input/TextArea.js.map +1 -0
- package/lib-esm/components/Input/Toggle.d.ts +4 -9
- package/lib-esm/components/Input/Toggle.js +15 -12
- package/lib-esm/components/Input/Toggle.js.map +1 -0
- package/lib-esm/components/Menu/Menu.d.ts +4 -14
- package/lib-esm/components/Menu/Menu.js +26 -17
- package/lib-esm/components/Menu/Menu.js.map +1 -0
- package/lib-esm/components/Menu/MenuContext.d.ts +4 -4
- package/lib-esm/components/Menu/MenuContext.js +2 -0
- package/lib-esm/components/Menu/MenuContext.js.map +1 -0
- package/lib-esm/components/Menu/MenuItem.d.ts +10 -4
- package/lib-esm/components/Menu/MenuItem.js +21 -6
- package/lib-esm/components/Menu/MenuItem.js.map +1 -0
- package/lib-esm/components/Modal/Modal.d.ts +17 -23
- package/lib-esm/components/Modal/Modal.js +38 -34
- package/lib-esm/components/Modal/Modal.js.map +1 -0
- package/lib-esm/components/Notification/Notification.d.ts +39 -34
- package/lib-esm/components/Notification/Notification.js +17 -39
- package/lib-esm/components/Notification/Notification.js.map +1 -0
- package/lib-esm/components/Notification/NotificationManager.d.ts +4 -4
- package/lib-esm/components/Notification/NotificationManager.js +19 -14
- package/lib-esm/components/Notification/NotificationManager.js.map +1 -0
- package/lib-esm/components/Notification/index.d.ts +1 -0
- package/lib-esm/components/Notification/style.d.ts +2 -3
- package/lib-esm/components/Notification/style.js +21 -20
- package/lib-esm/components/Notification/style.js.map +1 -0
- package/lib-esm/components/Notification/types.js +1 -0
- package/lib-esm/components/Notification/types.js.map +1 -0
- package/lib-esm/components/Popover/Popover.d.ts +21 -20
- package/lib-esm/components/Popover/Popover.js +44 -45
- package/lib-esm/components/Popover/Popover.js.map +1 -0
- package/lib-esm/components/Spinner/Spinner.d.ts +14 -15
- package/lib-esm/components/Spinner/Spinner.js +14 -14
- package/lib-esm/components/Spinner/Spinner.js.map +1 -0
- package/lib-esm/components/Stepper/Step.d.ts +15 -12
- package/lib-esm/components/Stepper/Step.js +12 -9
- package/lib-esm/components/Stepper/Step.js.map +1 -0
- package/lib-esm/components/Stepper/Stepper.d.ts +11 -17
- package/lib-esm/components/Stepper/Stepper.js +30 -27
- package/lib-esm/components/Stepper/Stepper.js.map +1 -0
- package/lib-esm/components/Tabs/Tab.d.ts +10 -16
- package/lib-esm/components/Tabs/Tab.js +1 -8
- package/lib-esm/components/Tabs/Tab.js.map +1 -0
- package/lib-esm/components/Tabs/Tabs.d.ts +11 -22
- package/lib-esm/components/Tabs/Tabs.js +43 -34
- package/lib-esm/components/Tabs/Tabs.js.map +1 -0
- package/lib-esm/components/Toast/Toast.d.ts +7 -7
- package/lib-esm/components/Toast/Toast.js +17 -15
- package/lib-esm/components/Toast/Toast.js.map +1 -0
- package/lib-esm/components/Toast/ToastStory.d.ts +21 -24
- package/lib-esm/components/Tooltip/Tooltip.d.ts +11 -14
- package/lib-esm/components/Tooltip/Tooltip.js +14 -23
- package/lib-esm/components/Tooltip/Tooltip.js.map +1 -0
- package/lib-esm/icons/CheckCircle.js +3 -2
- package/lib-esm/icons/CheckCircle.js.map +1 -0
- package/lib-esm/icons/Close.js +1 -0
- package/lib-esm/icons/Close.js.map +1 -0
- package/lib-esm/icons/DragIndicator.js +1 -0
- package/lib-esm/icons/DragIndicator.js.map +1 -0
- package/lib-esm/icons/ErrorOutline.js +3 -2
- package/lib-esm/icons/ErrorOutline.js.map +1 -0
- package/lib-esm/icons/ExpandMore.js +1 -0
- package/lib-esm/icons/ExpandMore.js.map +1 -0
- package/lib-esm/icons/FiberManualRecord.js +1 -0
- package/lib-esm/icons/FiberManualRecord.js.map +1 -0
- package/lib-esm/icons/Info.js +3 -2
- package/lib-esm/icons/Info.js.map +1 -0
- package/lib-esm/icons/ReportProblem.js +3 -2
- package/lib-esm/icons/ReportProblem.js.map +1 -0
- package/lib-esm/index.js +43 -0
- package/lib-esm/index.js.map +1 -0
- package/lib-esm/shared/LayerManager.d.ts +5 -4
- package/lib-esm/shared/LayerManager.js +125 -112
- package/lib-esm/shared/LayerManager.js.map +1 -0
- package/lib-esm/shared/constants.js +1 -0
- package/lib-esm/shared/constants.js.map +1 -0
- package/lib-esm/shared/styles.js +9 -8
- package/lib-esm/shared/styles.js.map +1 -0
- package/package.json +66 -31
- package/lib-esm/components/index.js +0 -42
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { jsxs, jsx } from '@emotion/react/jsx-runtime';
|
|
2
2
|
import React, { useState, useRef, useId, useCallback, useEffect } from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
3
|
import styled from '@emotion/styled';
|
|
5
4
|
import Card from '../Card/Card.js';
|
|
6
5
|
|
|
@@ -11,7 +10,7 @@ var POPOVER_POSITION = /*#__PURE__*/ function(POPOVER_POSITION) {
|
|
|
11
10
|
POPOVER_POSITION["BOTTOM_RIGHT"] = "BOTTOM_RIGHT";
|
|
12
11
|
return POPOVER_POSITION;
|
|
13
12
|
}({});
|
|
14
|
-
const positionMap = {
|
|
13
|
+
const positionMap$2 = {
|
|
15
14
|
["TOP_LEFT"]: `
|
|
16
15
|
bottom: calc(100% - 10px);
|
|
17
16
|
left: 0;
|
|
@@ -30,25 +29,30 @@ const positionMap = {
|
|
|
30
29
|
`
|
|
31
30
|
};
|
|
32
31
|
const PopoverDiv = /*#__PURE__*/ styled("div", {
|
|
33
|
-
target: "
|
|
32
|
+
target: "ejcb1ps0",
|
|
34
33
|
label: "PopoverDiv"
|
|
35
|
-
})("position:relative;display:inline-flex;", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9Qb3BvdmVyL1BvcG92ZXIudHN4Iiwic291cmNlcyI6WyIvaG9tZS9ydW5uZXIvd29yay9uby1mcmlsbHMtdWkvbm8tZnJpbGxzLXVpL3NyYy9jb21wb25lbnRzL1BvcG92ZXIvUG9wb3Zlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IENhcmQgfSBmcm9tICcuLi9DYXJkJztcblxuZXhwb3J0IGVudW0gUE9QT1ZFUl9QT1NJVElPTiB7XG4gICAgVE9QX0xFRlQgPSAnVE9QX0xFRlQnLFxuICAgIFRPUF9SSUdIVCA9ICdUT1BfUklHSFQnLFxuICAgIEJPVFRPTV9MRUZUID0gJ0JPVFRPTV9MRUZUJyxcbiAgICBCT1RUT01fUklHSFQgPSAnQk9UVE9NX1JJR0hUJyxcbn1cblxuaW50ZXJmYWNlIHRyYW5zbGF0ZSB7XG4gICAgeDogbnVtYmVyO1xuICAgIHk6IG51bWJlcjtcbn1cblxuY29uc3QgcG9zaXRpb25NYXAgPSB7XG4gICAgW1BPUE9WRVJfUE9TSVRJT04uVE9QX0xFRlRdOiBgXG4gICAgICAgIGJvdHRvbTogY2FsYygxMDAlIC0gMTBweCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgYCxcbiAgICBbUE9QT1ZFUl9QT1NJVElPTi5UT1BfUklHSFRdOiBgXG4gICAgICAgIGJvdHRvbTogY2FsYygxMDAlIC0gMTBweCk7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIGAsXG4gICAgW1BPUE9WRVJfUE9TSVRJT04uQk9UVE9NX1JJR0hUXTogYFxuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDEwcHgpO1xuICAgICAgICByaWdodDogMDtcbiAgICBgLFxuICAgIFtQT1BPVkVSX1BPU0lUSU9OLkJPVFRPTV9MRUZUXTogYFxuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDEwcHgpO1xuICAgICAgICBsZWZ0OiAwO1xuICAgIGAsXG59O1xuXG5jb25zdCBQb3BvdmVyRGl2ID0gc3R5bGVkLmRpdmBcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5gO1xuXG5jb25zdCBQb3BwZXIgPSBzdHlsZWQoQ2FyZCk8eyBwb3NpdGlvbjogUE9QT1ZFUl9QT1NJVElPTjsgdHJhbnNsYXRlWDogbnVtYmVyOyB0cmFuc2xhdGVZOiBudW1iZXIgfT5gXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYW5pbWF0aW9uOiBlbnRlciAwLjNzIGxpbmVhcjtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkeyhwcm9wcykgPT4gcHJvcHMudHJhbnNsYXRlWH1weCwgJHsocHJvcHMpID0+IHByb3BzLnRyYW5zbGF0ZVl9cHgpO1xuICAgICR7KHByb3BzKSA9PiBwb3NpdGlvbk1hcFtwcm9wcy5wb3NpdGlvbl19XG5cbiAgICAmLmNsb3Npbmcge1xuICAgICAgICAvKiBtYXgtaGVpZ2h0OiAwcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47ICovXG4gICAgICAgIGFuaW1hdGlvbjogZXhpdCAwLjNzIGxpbmVhcjtcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGVudGVyIHtcbiAgICAgICAgZnJvbSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAwcHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgICB0byB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBleGl0IHtcbiAgICAgICAgdG8ge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMHB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICAgICAgZnJvbSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG4gICAgfVxuYDtcblxuY29uc3QgS0VZX0NPREVTID0ge1xuICAgIEVTQzogMjcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQb3BvdmVyKFxuICAgIHByb3BzOiBSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjxQcm9wVHlwZXMuSW5mZXJQcm9wczx0eXBlb2YgUG9wb3Zlci5wcm9wVHlwZXM+Pixcbikge1xuICAgIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKHByb3BzLm9wZW4pO1xuICAgIGNvbnN0IFtjbG9zaW5nLCBzZXRDbG9zaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdHJhbnNsYXRlLCBzZXRUcmFuc2xhdGVdID0gdXNlU3RhdGU8dHJhbnNsYXRlPih7IHg6IDAsIHk6IDAgfSk7XG4gICAgY29uc3QgcG9wcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgY2xvc2VUaW1lb3V0UmVmID0gdXNlUmVmPE5vZGVKUy5UaW1lb3V0IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgZm9jdXNUaW1lb3V0UmVmID0gdXNlUmVmPE5vZGVKUy5UaW1lb3V0IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgcG9wcGVySWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IHVzZUlkKCk7XG5cbiAgICBjb25zdCBjbG9zZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgLy8gQ2xlYXIgYW55IGV4aXN0aW5nIHRpbWVvdXRzIGZpcnN0XG4gICAgICAgIGlmIChjbG9zZVRpbWVvdXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGNsb3NlVGltZW91dFJlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9jdXNUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChmb2N1c1RpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRDbG9zaW5nKHRydWUpO1xuICAgICAgICBjbG9zZVRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgICAgICAgICBzZXRUcmFuc2xhdGUoeyB4OiAwLCB5OiAwIH0pO1xuXG4gICAgICAgICAgICBpZiAocHJvcHMub25DbG9zZSkge1xuICAgICAgICAgICAgICAgIHByb3BzLm9uQ2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldENsb3NpbmcoZmFsc2UpO1xuXG4gICAgICAgICAgICAvLyBSZXN0b3JlIGZvY3VzIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQgYWZ0ZXIgYW5pbWF0aW9uIGNvbXBsZXRlc1xuICAgICAgICAgICAgZm9jdXNUaW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIGRvY3VtZW50LmJvZHkuY29udGFpbnModHJpZ2dlclJlZi5jdXJyZW50KSkge1xuICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9jdXNUaW1lb3V0UmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgfSwgNTApO1xuICAgICAgICAgICAgY2xvc2VUaW1lb3V0UmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB9LCAyODApO1xuICAgIH0sIFtwcm9wc10pO1xuXG4gICAgY29uc3Qga2V5dXBFdmVudEhhbmRsZXIgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChwcm9wcy5jbG9zZU9uRXNjICYmIGUua2V5Q29kZSA9PT0gS0VZX0NPREVTLkVTQykge1xuICAgICAgICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtjbG9zZSwgcHJvcHMuY2xvc2VPbkVzY10sXG4gICAgKTtcblxuICAgIGNvbnN0IGNsaWNrT3V0c2lkZUhhbmRsZXIgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChjb250YWluZXJSZWYuY3VycmVudCAmJiAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZS50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbY2xvc2VdLFxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBHZXQgY2FsbGVkIG9uIHBvcG92ZXIgbW91bnQuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBrZXl1cEV2ZW50SGFuZGxlcik7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywga2V5dXBFdmVudEhhbmRsZXIpO1xuICAgICAgICB9O1xuICAgIH0sIFtrZXl1cEV2ZW50SGFuZGxlcl0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLm9wZW4pIHtcbiAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAvLyBVc2UgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHRvIGFkZCBsaXN0ZW5lciBhZnRlciBjdXJyZW50IGV2ZW50IGxvb3BcbiAgICAgICAgICAgIGNvbnN0IHJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsaWNrT3V0c2lkZUhhbmRsZXIpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xpY2tPdXRzaWRlSGFuZGxlcik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLm9wZW4sIG9wZW4sIGNsaWNrT3V0c2lkZUhhbmRsZXIsIGNsb3NlXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgY29uc3QgeyB0b3AsIGxlZnQsIHJpZ2h0IH0gPSBwb3BwZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHBvcHBlclJlZi5jdXJyZW50LnNjcm9sbEhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbiA9IHsgeDogMCwgeTogMCB9O1xuXG4gICAgICAgICAgICBpZiAocHJvcHMucG9zaXRpb24gPT09IFBPUE9WRVJfUE9TSVRJT04uQk9UVE9NX0xFRlQpIHtcbiAgICAgICAgICAgICAgICAvLyBvdmVyZmxvdyBjYW4gaGFwcGVuIGF0IGJvdHRvbSBhbmQgcmlnaHRcbiAgICAgICAgICAgICAgICBpZiAodmlld3BvcnRIZWlnaHQgLSB0b3AgLSBoZWlnaHQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uLnkgPSAtMSAqIChNYXRoLmFicyh2aWV3cG9ydEhlaWdodCAtIHRvcCAtIGhlaWdodCkgKyA1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHZpZXdwb3J0V2lkdGggLSByaWdodCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb24ueCA9IC0xICogKE1hdGguYWJzKHZpZXdwb3J0V2lkdGggLSByaWdodCkgKyA1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BzLnBvc2l0aW9uID09IFBPUE9WRVJfUE9TSVRJT04uQk9UVE9NX1JJR0hUKSB7XG4gICAgICAgICAgICAgICAgLy8gb3ZlcmZsb3cgY2FuIGhhcHBlbiBhdCBib3R0b20gYW5kIGxlZnRcbiAgICAgICAgICAgICAgICBpZiAodmlld3BvcnRIZWlnaHQgLSB0b3AgLSBoZWlnaHQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uLnkgPSAtMSAqIChNYXRoLmFicyh2aWV3cG9ydEhlaWdodCAtIHRvcCAtIGhlaWdodCkgKyA1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGxlZnQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uLnggPSBNYXRoLmFicyhsZWZ0KSArIDU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5wb3NpdGlvbiA9PT0gUE9QT1ZFUl9QT1NJVElPTi5UT1BfTEVGVCkge1xuICAgICAgICAgICAgICAgIC8vIG92ZXJmbG93IGNhbiBoYXBwZW4gYXQgdG9wIGFuZCByaWdodFxuICAgICAgICAgICAgICAgIGlmICh0b3AgLSBoZWlnaHQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uLnkgPSBNYXRoLmFicyh0b3AgLSBoZWlnaHQpICsgNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHZpZXdwb3J0V2lkdGggLSByaWdodCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb24ueCA9IC0xICogKE1hdGguYWJzKHZpZXdwb3J0V2lkdGggLSByaWdodCkgKyA1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIG92ZXJmbG93IGNhbiBoYXBwZW4gYXQgdG9wIGFuZCBsZWZ0XG4gICAgICAgICAgICAgICAgaWYgKHRvcCAtIGhlaWdodCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb24ueSA9IE1hdGguYWJzKHRvcCAtIGhlaWdodCkgKyA1O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobGVmdCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb24ueCA9IE1hdGguYWJzKGxlZnQpICsgNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBOb3RlIGl0IGNhbiBzdGlsbCBvdmVyZmxvdywgYnV0IGluIHRoYXQgY2FzZSBmaXR0aW5nIHBvcHBlciBpbnNpZGUgdGhlXG4gICAgICAgICAgICAvLyB3aW5kb3cgaXMgbm90IHBvc3NpYmxlLlxuICAgICAgICAgICAgc2V0VHJhbnNsYXRlKHRyYW5zbGF0aW9uKTtcbiAgICAgICAgICAgIHBvcHBlclJlZi5jdXJyZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9LCBbb3BlbiwgcHJvcHMucG9zaXRpb25dKTtcblxuICAgIC8qKlxuICAgICAqIENsZWFudXAgdGltZW91dHMgb24gdW5tb3VudFxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2xvc2VUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoY2xvc2VUaW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZvY3VzVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGZvY3VzVGltZW91dFJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8UG9wb3ZlckRpdiByZWY9e2NvbnRhaW5lclJlZn0+XG4gICAgICAgICAgICB7UmVhY3QuY3JlYXRlRWxlbWVudChwcm9wcy5lbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgcmVmOiB0cmlnZ2VyUmVmLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgJ2FyaWEtZXhwYW5kZWQnOiBvcGVuLFxuICAgICAgICAgICAgICAgICdhcmlhLWhhc3BvcHVwJzogJ2RpYWxvZycsXG4gICAgICAgICAgICAgICAgJ2FyaWEtY29udHJvbHMnOiBwb3BwZXJJZCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAge29wZW4gJiYgKFxuICAgICAgICAgICAgICAgIDxQb3BwZXJcbiAgICAgICAgICAgICAgICAgICAgZWxldmF0ZWRcbiAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e3RyaWdnZXJJZH1cbiAgICAgICAgICAgICAgICAgICAgaWQ9e3BvcHBlcklkfVxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj17cHJvcHMucG9zaXRpb259XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVg9e3RyYW5zbGF0ZS54fVxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVZPXt0cmFuc2xhdGUueX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbG9zaW5nICYmICdjbG9zaW5nJ31cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtwb3BwZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5uYXRpdmVFdmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICA8L1BvcHBlcj5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvUG9wb3ZlckRpdj5cbiAgICApO1xufVxuXG5Qb3BvdmVyLnByb3BUeXBlcyA9IHtcbiAgICAvKiogT3BlbnMgdGhlIHBvcG92ZXIgKi9cbiAgICBvcGVuOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIC8qKiBBbmNob3IgZWxlbWVudCBmb3IgdGhlIHBvcG92ZXIgKi9cbiAgICBlbGVtZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICAvKiogUG9zaXRpb24gb2YgdGhlIHBvcG92ZXIgYXJvdW5kIGFuY2hvciBlbGVtZW50ICovXG4gICAgcG9zaXRpb246IFByb3BUeXBlcy5vbmVPZihbXG4gICAgICAgIFBPUE9WRVJfUE9TSVRJT04uVE9QX0xFRlQsXG4gICAgICAgIFBPUE9WRVJfUE9TSVRJT04uVE9QX1JJR0hULFxuICAgICAgICBQT1BPVkVSX1BPU0lUSU9OLkJPVFRPTV9MRUZULFxuICAgICAgICBQT1BPVkVSX1BPU0lUSU9OLkJPVFRPTV9SSUdIVCxcbiAgICBdKSxcbiAgICAvKiogSWYgdGhlIHBvcG92ZXIgc2hvdWxkIGNsb3NlIG9uIGBlc2NgIGtleSBwcmVzcyAqL1xuICAgIGNsb3NlT25Fc2M6IFByb3BUeXBlcy5ib29sLFxuICAgIC8qKiBQb3BvdmVyIGNsb3NlIGNhbGxiYWNrICovXG4gICAgb25DbG9zZTogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5Qb3BvdmVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBjbG9zZU9uRXNjOiB0cnVlLFxuICAgIHBvc2l0aW9uOiBQT1BPVkVSX1BPU0lUSU9OLkJPVFRPTV9MRUZULFxufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQ21CIn0= */");
|
|
34
|
+
})("position:relative;display:inline-flex;");
|
|
36
35
|
const Popper = /*#__PURE__*/ styled(Card, {
|
|
37
|
-
target: "
|
|
36
|
+
target: "ejcb1ps1",
|
|
38
37
|
label: "Popper"
|
|
39
|
-
})("position:absolute;width:100%;min-width:200px;overflow:auto;animation:enter 0.3s linear;border-radius:3px;z-index:1;transform:translate(", (props)=>props.translateX, "px,", (props)=>props.translateY, "px);", (props)=>positionMap[props.position], " &.closing{animation:exit 0.3s linear;}@keyframes enter{from{max-height:0px;opacity:1;overflow:hidden;}to{max-height:300px;opacity:1;overflow:hidden;}}@keyframes exit{to{max-height:0px;opacity:1;overflow:hidden;}from{max-height:300px;opacity:1;overflow:hidden;}}", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9Qb3BvdmVyL1BvcG92ZXIudHN4Iiwic291cmNlcyI6WyIvaG9tZS9ydW5uZXIvd29yay9uby1mcmlsbHMtdWkvbm8tZnJpbGxzLXVpL3NyYy9jb21wb25lbnRzL1BvcG92ZXIvUG9wb3Zlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZUlkLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnQGVtb3Rpb24vc3R5bGVkJztcbmltcG9ydCB7IENhcmQgfSBmcm9tICcuLi9DYXJkJztcblxuZXhwb3J0IGVudW0gUE9QT1ZFUl9QT1NJVElPTiB7XG4gICAgVE9QX0xFRlQgPSAnVE9QX0xFRlQnLFxuICAgIFRPUF9SSUdIVCA9ICdUT1BfUklHSFQnLFxuICAgIEJPVFRPTV9MRUZUID0gJ0JPVFRPTV9MRUZUJyxcbiAgICBCT1RUT01fUklHSFQgPSAnQk9UVE9NX1JJR0hUJyxcbn1cblxuaW50ZXJmYWNlIHRyYW5zbGF0ZSB7XG4gICAgeDogbnVtYmVyO1xuICAgIHk6IG51bWJlcjtcbn1cblxuY29uc3QgcG9zaXRpb25NYXAgPSB7XG4gICAgW1BPUE9WRVJfUE9TSVRJT04uVE9QX0xFRlRdOiBgXG4gICAgICAgIGJvdHRvbTogY2FsYygxMDAlIC0gMTBweCk7XG4gICAgICAgIGxlZnQ6IDA7XG4gICAgYCxcbiAgICBbUE9QT1ZFUl9QT1NJVElPTi5UT1BfUklHSFRdOiBgXG4gICAgICAgIGJvdHRvbTogY2FsYygxMDAlIC0gMTBweCk7XG4gICAgICAgIHJpZ2h0OiAwO1xuICAgIGAsXG4gICAgW1BPUE9WRVJfUE9TSVRJT04uQk9UVE9NX1JJR0hUXTogYFxuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDEwcHgpO1xuICAgICAgICByaWdodDogMDtcbiAgICBgLFxuICAgIFtQT1BPVkVSX1BPU0lUSU9OLkJPVFRPTV9MRUZUXTogYFxuICAgICAgICB0b3A6IGNhbGMoMTAwJSAtIDEwcHgpO1xuICAgICAgICBsZWZ0OiAwO1xuICAgIGAsXG59O1xuXG5jb25zdCBQb3BvdmVyRGl2ID0gc3R5bGVkLmRpdmBcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5gO1xuXG5jb25zdCBQb3BwZXIgPSBzdHlsZWQoQ2FyZCk8eyBwb3NpdGlvbjogUE9QT1ZFUl9QT1NJVElPTjsgdHJhbnNsYXRlWDogbnVtYmVyOyB0cmFuc2xhdGVZOiBudW1iZXIgfT5gXG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1pbi13aWR0aDogMjAwcHg7XG4gICAgb3ZlcmZsb3c6IGF1dG87XG4gICAgYW5pbWF0aW9uOiBlbnRlciAwLjNzIGxpbmVhcjtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgei1pbmRleDogMTtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgkeyhwcm9wcykgPT4gcHJvcHMudHJhbnNsYXRlWH1weCwgJHsocHJvcHMpID0+IHByb3BzLnRyYW5zbGF0ZVl9cHgpO1xuICAgICR7KHByb3BzKSA9PiBwb3NpdGlvbk1hcFtwcm9wcy5wb3NpdGlvbl19XG5cbiAgICAmLmNsb3Npbmcge1xuICAgICAgICAvKiBtYXgtaGVpZ2h0OiAwcHg7XG4gICAgICAgIG9wYWNpdHk6IDA7XG4gICAgICAgIG92ZXJmbG93OiBoaWRkZW47ICovXG4gICAgICAgIGFuaW1hdGlvbjogZXhpdCAwLjNzIGxpbmVhcjtcbiAgICB9XG5cbiAgICBAa2V5ZnJhbWVzIGVudGVyIHtcbiAgICAgICAgZnJvbSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAwcHg7XG4gICAgICAgICAgICBvcGFjaXR5OiAxO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgfVxuICAgICAgICB0byB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQGtleWZyYW1lcyBleGl0IHtcbiAgICAgICAgdG8ge1xuICAgICAgICAgICAgbWF4LWhlaWdodDogMHB4O1xuICAgICAgICAgICAgb3BhY2l0eTogMTtcbiAgICAgICAgICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgICAgIH1cbiAgICAgICAgZnJvbSB7XG4gICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDtcbiAgICAgICAgICAgIG9wYWNpdHk6IDE7XG4gICAgICAgICAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgICAgICB9XG4gICAgfVxuYDtcblxuY29uc3QgS0VZX0NPREVTID0ge1xuICAgIEVTQzogMjcsXG59O1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQb3BvdmVyKFxuICAgIHByb3BzOiBSZWFjdC5Qcm9wc1dpdGhDaGlsZHJlbjxQcm9wVHlwZXMuSW5mZXJQcm9wczx0eXBlb2YgUG9wb3Zlci5wcm9wVHlwZXM+Pixcbikge1xuICAgIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKHByb3BzLm9wZW4pO1xuICAgIGNvbnN0IFtjbG9zaW5nLCBzZXRDbG9zaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdHJhbnNsYXRlLCBzZXRUcmFuc2xhdGVdID0gdXNlU3RhdGU8dHJhbnNsYXRlPih7IHg6IDAsIHk6IDAgfSk7XG4gICAgY29uc3QgcG9wcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuICAgIGNvbnN0IGNvbnRhaW5lclJlZiA9IHVzZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcbiAgICBjb25zdCB0cmlnZ2VyUmVmID0gdXNlUmVmPEhUTUxFbGVtZW50IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgY2xvc2VUaW1lb3V0UmVmID0gdXNlUmVmPE5vZGVKUy5UaW1lb3V0IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgZm9jdXNUaW1lb3V0UmVmID0gdXNlUmVmPE5vZGVKUy5UaW1lb3V0IHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgcG9wcGVySWQgPSB1c2VJZCgpO1xuICAgIGNvbnN0IHRyaWdnZXJJZCA9IHVzZUlkKCk7XG5cbiAgICBjb25zdCBjbG9zZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgICAgLy8gQ2xlYXIgYW55IGV4aXN0aW5nIHRpbWVvdXRzIGZpcnN0XG4gICAgICAgIGlmIChjbG9zZVRpbWVvdXRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGNsb3NlVGltZW91dFJlZi5jdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZm9jdXNUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dChmb2N1c1RpbWVvdXRSZWYuY3VycmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICBzZXRDbG9zaW5nKHRydWUpO1xuICAgICAgICBjbG9zZVRpbWVvdXRSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7XG4gICAgICAgICAgICBzZXRUcmFuc2xhdGUoeyB4OiAwLCB5OiAwIH0pO1xuXG4gICAgICAgICAgICBpZiAocHJvcHMub25DbG9zZSkge1xuICAgICAgICAgICAgICAgIHByb3BzLm9uQ2xvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHNldENsb3NpbmcoZmFsc2UpO1xuXG4gICAgICAgICAgICAvLyBSZXN0b3JlIGZvY3VzIHRvIHRoZSB0cmlnZ2VyIGVsZW1lbnQgYWZ0ZXIgYW5pbWF0aW9uIGNvbXBsZXRlc1xuICAgICAgICAgICAgZm9jdXNUaW1lb3V0UmVmLmN1cnJlbnQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAodHJpZ2dlclJlZi5jdXJyZW50ICYmIGRvY3VtZW50LmJvZHkuY29udGFpbnModHJpZ2dlclJlZi5jdXJyZW50KSkge1xuICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9jdXNUaW1lb3V0UmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgfSwgNTApO1xuICAgICAgICAgICAgY2xvc2VUaW1lb3V0UmVmLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICB9LCAyODApO1xuICAgIH0sIFtwcm9wc10pO1xuXG4gICAgY29uc3Qga2V5dXBFdmVudEhhbmRsZXIgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKGU6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChwcm9wcy5jbG9zZU9uRXNjICYmIGUua2V5Q29kZSA9PT0gS0VZX0NPREVTLkVTQykge1xuICAgICAgICAgICAgICAgIGNsb3NlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIFtjbG9zZSwgcHJvcHMuY2xvc2VPbkVzY10sXG4gICAgKTtcblxuICAgIGNvbnN0IGNsaWNrT3V0c2lkZUhhbmRsZXIgPSB1c2VDYWxsYmFjayhcbiAgICAgICAgKGU6IE1vdXNlRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChjb250YWluZXJSZWYuY3VycmVudCAmJiAhY29udGFpbmVyUmVmLmN1cnJlbnQuY29udGFpbnMoZS50YXJnZXQgYXMgTm9kZSkpIHtcbiAgICAgICAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBbY2xvc2VdLFxuICAgICk7XG5cbiAgICAvKipcbiAgICAgKiBHZXQgY2FsbGVkIG9uIHBvcG92ZXIgbW91bnQuXG4gICAgICovXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5dXAnLCBrZXl1cEV2ZW50SGFuZGxlcik7XG5cbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2tleXVwJywga2V5dXBFdmVudEhhbmRsZXIpO1xuICAgICAgICB9O1xuICAgIH0sIFtrZXl1cEV2ZW50SGFuZGxlcl0pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLm9wZW4pIHtcbiAgICAgICAgICAgIHNldE9wZW4odHJ1ZSk7XG4gICAgICAgICAgICAvLyBVc2UgcmVxdWVzdEFuaW1hdGlvbkZyYW1lIHRvIGFkZCBsaXN0ZW5lciBhZnRlciBjdXJyZW50IGV2ZW50IGxvb3BcbiAgICAgICAgICAgIGNvbnN0IHJhZklkID0gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCgpID0+IHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIGNsaWNrT3V0c2lkZUhhbmRsZXIpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY2FuY2VsQW5pbWF0aW9uRnJhbWUocmFmSWQpO1xuICAgICAgICAgICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2xpY2tPdXRzaWRlSGFuZGxlcik7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG9wZW4pIHtcbiAgICAgICAgICAgICAgICBjbG9zZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLm9wZW4sIG9wZW4sIGNsaWNrT3V0c2lkZUhhbmRsZXIsIGNsb3NlXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAob3Blbikge1xuICAgICAgICAgICAgY29uc3QgeyB0b3AsIGxlZnQsIHJpZ2h0IH0gPSBwb3BwZXJSZWYuY3VycmVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IGhlaWdodCA9IHBvcHBlclJlZi5jdXJyZW50LnNjcm9sbEhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdwb3J0V2lkdGggPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50V2lkdGg7XG4gICAgICAgICAgICBjb25zdCB2aWV3cG9ydEhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQ7XG4gICAgICAgICAgICBjb25zdCB0cmFuc2xhdGlvbiA9IHsgeDogMCwgeTogMCB9O1xuXG4gICAgICAgICAgICBpZiAocHJvcHMucG9zaXRpb24gPT09IFBPUE9WRVJfUE9TSVRJT04uQk9UVE9NX0xFRlQpIHtcbiAgICAgICAgICAgICAgICAvLyBvdmVyZmxvdyBjYW4gaGFwcGVuIGF0IGJvdHRvbSBhbmQgcmlnaHRcbiAgICAgICAgICAgICAgICBpZiAodmlld3BvcnRIZWlnaHQgLSB0b3AgLSBoZWlnaHQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uLnkgPSAtMSAqIChNYXRoLmFicyh2aWV3cG9ydEhlaWdodCAtIHRvcCAtIGhlaWdodCkgKyA1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHZpZXdwb3J0V2lkdGggLSByaWdodCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb24ueCA9IC0xICogKE1hdGguYWJzKHZpZXdwb3J0V2lkdGggLSByaWdodCkgKyA1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHByb3BzLnBvc2l0aW9uID09IFBPUE9WRVJfUE9TSVRJT04uQk9UVE9NX1JJR0hUKSB7XG4gICAgICAgICAgICAgICAgLy8gb3ZlcmZsb3cgY2FuIGhhcHBlbiBhdCBib3R0b20gYW5kIGxlZnRcbiAgICAgICAgICAgICAgICBpZiAodmlld3BvcnRIZWlnaHQgLSB0b3AgLSBoZWlnaHQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uLnkgPSAtMSAqIChNYXRoLmFicyh2aWV3cG9ydEhlaWdodCAtIHRvcCAtIGhlaWdodCkgKyA1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGxlZnQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uLnggPSBNYXRoLmFicyhsZWZ0KSArIDU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChwcm9wcy5wb3NpdGlvbiA9PT0gUE9QT1ZFUl9QT1NJVElPTi5UT1BfTEVGVCkge1xuICAgICAgICAgICAgICAgIC8vIG92ZXJmbG93IGNhbiBoYXBwZW4gYXQgdG9wIGFuZCByaWdodFxuICAgICAgICAgICAgICAgIGlmICh0b3AgLSBoZWlnaHQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uLnkgPSBNYXRoLmFicyh0b3AgLSBoZWlnaHQpICsgNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHZpZXdwb3J0V2lkdGggLSByaWdodCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb24ueCA9IC0xICogKE1hdGguYWJzKHZpZXdwb3J0V2lkdGggLSByaWdodCkgKyA1KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIC8vIG92ZXJmbG93IGNhbiBoYXBwZW4gYXQgdG9wIGFuZCBsZWZ0XG4gICAgICAgICAgICAgICAgaWYgKHRvcCAtIGhlaWdodCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb24ueSA9IE1hdGguYWJzKHRvcCAtIGhlaWdodCkgKyA1O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAobGVmdCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb24ueCA9IE1hdGguYWJzKGxlZnQpICsgNTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBOb3RlIGl0IGNhbiBzdGlsbCBvdmVyZmxvdywgYnV0IGluIHRoYXQgY2FzZSBmaXR0aW5nIHBvcHBlciBpbnNpZGUgdGhlXG4gICAgICAgICAgICAvLyB3aW5kb3cgaXMgbm90IHBvc3NpYmxlLlxuICAgICAgICAgICAgc2V0VHJhbnNsYXRlKHRyYW5zbGF0aW9uKTtcbiAgICAgICAgICAgIHBvcHBlclJlZi5jdXJyZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9LCBbb3BlbiwgcHJvcHMucG9zaXRpb25dKTtcblxuICAgIC8qKlxuICAgICAqIENsZWFudXAgdGltZW91dHMgb24gdW5tb3VudFxuICAgICAqL1xuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoY2xvc2VUaW1lb3V0UmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQoY2xvc2VUaW1lb3V0UmVmLmN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZvY3VzVGltZW91dFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGZvY3VzVGltZW91dFJlZi5jdXJyZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8UG9wb3ZlckRpdiByZWY9e2NvbnRhaW5lclJlZn0+XG4gICAgICAgICAgICB7UmVhY3QuY3JlYXRlRWxlbWVudChwcm9wcy5lbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgcmVmOiB0cmlnZ2VyUmVmLFxuICAgICAgICAgICAgICAgIGlkOiB0cmlnZ2VySWQsXG4gICAgICAgICAgICAgICAgJ2FyaWEtZXhwYW5kZWQnOiBvcGVuLFxuICAgICAgICAgICAgICAgICdhcmlhLWhhc3BvcHVwJzogJ2RpYWxvZycsXG4gICAgICAgICAgICAgICAgJ2FyaWEtY29udHJvbHMnOiBwb3BwZXJJZCxcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAge29wZW4gJiYgKFxuICAgICAgICAgICAgICAgIDxQb3BwZXJcbiAgICAgICAgICAgICAgICAgICAgZWxldmF0ZWRcbiAgICAgICAgICAgICAgICAgICAgdGFiSW5kZXg9ezB9XG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsbGVkYnk9e3RyaWdnZXJJZH1cbiAgICAgICAgICAgICAgICAgICAgaWQ9e3BvcHBlcklkfVxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbj17cHJvcHMucG9zaXRpb259XG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0ZVg9e3RyYW5zbGF0ZS54fVxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVZPXt0cmFuc2xhdGUueX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbG9zaW5nICYmICdjbG9zaW5nJ31cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtwb3BwZXJSZWZ9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZS5uYXRpdmVFdmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtwcm9wcy5jaGlsZHJlbn1cbiAgICAgICAgICAgICAgICA8L1BvcHBlcj5cbiAgICAgICAgICAgICl9XG4gICAgICAgIDwvUG9wb3ZlckRpdj5cbiAgICApO1xufVxuXG5Qb3BvdmVyLnByb3BUeXBlcyA9IHtcbiAgICAvKiogT3BlbnMgdGhlIHBvcG92ZXIgKi9cbiAgICBvcGVuOiBQcm9wVHlwZXMuYm9vbC5pc1JlcXVpcmVkLFxuICAgIC8qKiBBbmNob3IgZWxlbWVudCBmb3IgdGhlIHBvcG92ZXIgKi9cbiAgICBlbGVtZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICAvKiogUG9zaXRpb24gb2YgdGhlIHBvcG92ZXIgYXJvdW5kIGFuY2hvciBlbGVtZW50ICovXG4gICAgcG9zaXRpb246IFByb3BUeXBlcy5vbmVPZihbXG4gICAgICAgIFBPUE9WRVJfUE9TSVRJT04uVE9QX0xFRlQsXG4gICAgICAgIFBPUE9WRVJfUE9TSVRJT04uVE9QX1JJR0hULFxuICAgICAgICBQT1BPVkVSX1BPU0lUSU9OLkJPVFRPTV9MRUZULFxuICAgICAgICBQT1BPVkVSX1BPU0lUSU9OLkJPVFRPTV9SSUdIVCxcbiAgICBdKSxcbiAgICAvKiogSWYgdGhlIHBvcG92ZXIgc2hvdWxkIGNsb3NlIG9uIGBlc2NgIGtleSBwcmVzcyAqL1xuICAgIGNsb3NlT25Fc2M6IFByb3BUeXBlcy5ib29sLFxuICAgIC8qKiBQb3BvdmVyIGNsb3NlIGNhbGxiYWNrICovXG4gICAgb25DbG9zZTogUHJvcFR5cGVzLmZ1bmMsXG59O1xuXG5Qb3BvdmVyLmRlZmF1bHRQcm9wcyA9IHtcbiAgICBjbG9zZU9uRXNjOiB0cnVlLFxuICAgIHBvc2l0aW9uOiBQT1BPVkVSX1BPU0lUSU9OLkJPVFRPTV9MRUZULFxufTtcbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUF5Q2UifQ== */");
|
|
38
|
+
})("position:absolute;width:100%;min-width:200px;overflow:auto;animation:enter 0.3s linear;border-radius:3px;z-index:1;transform:translate(", (props)=>props.translateX, "px,", (props)=>props.translateY, "px);", (props)=>positionMap$2[props.position], " &.closing{animation:exit 0.3s linear;}@keyframes enter{from{max-height:0px;opacity:1;overflow:hidden;}to{max-height:300px;opacity:1;overflow:hidden;}}@keyframes exit{to{max-height:0px;opacity:1;overflow:hidden;}from{max-height:300px;opacity:1;overflow:hidden;}}");
|
|
40
39
|
const KEY_CODES = {
|
|
41
40
|
ESC: 27
|
|
42
41
|
};
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Popover Component
|
|
44
|
+
* @param props - Component props
|
|
45
|
+
* @param ref - Ref forwarded to the underlying HTMLDivElement
|
|
46
|
+
*/ function PopoverComponent(props, ref) {
|
|
47
|
+
const { open: propsOpen, element, position = "BOTTOM_LEFT", closeOnEsc = true, onClose, children, ...rest } = props;
|
|
48
|
+
const [open, setOpen] = useState(propsOpen);
|
|
45
49
|
const [closing, setClosing] = useState(false);
|
|
46
50
|
const [translate, setTranslate] = useState({
|
|
47
51
|
x: 0,
|
|
48
52
|
y: 0
|
|
49
53
|
});
|
|
50
|
-
const popperRef = useRef();
|
|
51
|
-
const containerRef = useRef();
|
|
54
|
+
const popperRef = useRef(null);
|
|
55
|
+
const containerRef = useRef(null);
|
|
52
56
|
const triggerRef = useRef(null);
|
|
53
57
|
const closeTimeoutRef = useRef(null);
|
|
54
58
|
const focusTimeoutRef = useRef(null);
|
|
@@ -69,8 +73,8 @@ function Popover(props) {
|
|
|
69
73
|
x: 0,
|
|
70
74
|
y: 0
|
|
71
75
|
});
|
|
72
|
-
if (
|
|
73
|
-
|
|
76
|
+
if (onClose) {
|
|
77
|
+
onClose();
|
|
74
78
|
}
|
|
75
79
|
setClosing(false);
|
|
76
80
|
// Restore focus to the trigger element after animation completes
|
|
@@ -83,15 +87,15 @@ function Popover(props) {
|
|
|
83
87
|
closeTimeoutRef.current = null;
|
|
84
88
|
}, 280);
|
|
85
89
|
}, [
|
|
86
|
-
|
|
90
|
+
onClose
|
|
87
91
|
]);
|
|
88
92
|
const keyupEventHandler = useCallback((e)=>{
|
|
89
|
-
if (
|
|
93
|
+
if (closeOnEsc && e.keyCode === KEY_CODES.ESC) {
|
|
90
94
|
close();
|
|
91
95
|
}
|
|
92
96
|
}, [
|
|
93
97
|
close,
|
|
94
|
-
|
|
98
|
+
closeOnEsc
|
|
95
99
|
]);
|
|
96
100
|
const clickOutsideHandler = useCallback((e)=>{
|
|
97
101
|
if (containerRef.current && !containerRef.current.contains(e.target)) {
|
|
@@ -111,7 +115,7 @@ function Popover(props) {
|
|
|
111
115
|
keyupEventHandler
|
|
112
116
|
]);
|
|
113
117
|
useEffect(()=>{
|
|
114
|
-
if (
|
|
118
|
+
if (propsOpen) {
|
|
115
119
|
setOpen(true);
|
|
116
120
|
// Use requestAnimationFrame to add listener after current event loop
|
|
117
121
|
const rafId = requestAnimationFrame(()=>{
|
|
@@ -127,22 +131,22 @@ function Popover(props) {
|
|
|
127
131
|
}
|
|
128
132
|
}
|
|
129
133
|
}, [
|
|
130
|
-
|
|
134
|
+
propsOpen,
|
|
131
135
|
open,
|
|
132
136
|
clickOutsideHandler,
|
|
133
137
|
close
|
|
134
138
|
]);
|
|
135
139
|
useEffect(()=>{
|
|
136
140
|
if (open) {
|
|
137
|
-
const { top, left, right } = popperRef.current
|
|
138
|
-
const height = popperRef.current
|
|
141
|
+
const { top = 0, left = 0, right = 0 } = popperRef.current?.getBoundingClientRect() ?? {};
|
|
142
|
+
const height = popperRef.current?.scrollHeight ?? 0;
|
|
139
143
|
const viewportWidth = document.documentElement.clientWidth;
|
|
140
144
|
const viewportHeight = document.documentElement.clientHeight;
|
|
141
145
|
const translation = {
|
|
142
146
|
x: 0,
|
|
143
147
|
y: 0
|
|
144
148
|
};
|
|
145
|
-
if (
|
|
149
|
+
if (position === "BOTTOM_LEFT") {
|
|
146
150
|
// overflow can happen at bottom and right
|
|
147
151
|
if (viewportHeight - top - height < 0) {
|
|
148
152
|
translation.y = -1 * (Math.abs(viewportHeight - top - height) + 5);
|
|
@@ -150,7 +154,7 @@ function Popover(props) {
|
|
|
150
154
|
if (viewportWidth - right < 0) {
|
|
151
155
|
translation.x = -1 * (Math.abs(viewportWidth - right) + 5);
|
|
152
156
|
}
|
|
153
|
-
} else if (
|
|
157
|
+
} else if (position == "BOTTOM_RIGHT") {
|
|
154
158
|
// overflow can happen at bottom and left
|
|
155
159
|
if (viewportHeight - top - height < 0) {
|
|
156
160
|
translation.y = -1 * (Math.abs(viewportHeight - top - height) + 5);
|
|
@@ -158,7 +162,7 @@ function Popover(props) {
|
|
|
158
162
|
if (left < 0) {
|
|
159
163
|
translation.x = Math.abs(left) + 5;
|
|
160
164
|
}
|
|
161
|
-
} else if (
|
|
165
|
+
} else if (position === "TOP_LEFT") {
|
|
162
166
|
// overflow can happen at top and right
|
|
163
167
|
if (top - height < 0) {
|
|
164
168
|
translation.y = Math.abs(top - height) + 5;
|
|
@@ -178,11 +182,11 @@ function Popover(props) {
|
|
|
178
182
|
// Note it can still overflow, but in that case fitting popper inside the
|
|
179
183
|
// window is not possible.
|
|
180
184
|
setTranslate(translation);
|
|
181
|
-
popperRef.current
|
|
185
|
+
popperRef.current?.focus();
|
|
182
186
|
}
|
|
183
187
|
}, [
|
|
184
188
|
open,
|
|
185
|
-
|
|
189
|
+
position
|
|
186
190
|
]);
|
|
187
191
|
/**
|
|
188
192
|
* Cleanup timeouts on unmount
|
|
@@ -196,10 +200,19 @@ function Popover(props) {
|
|
|
196
200
|
}
|
|
197
201
|
};
|
|
198
202
|
}, []);
|
|
203
|
+
const forwardRef = (node)=>{
|
|
204
|
+
containerRef.current = node;
|
|
205
|
+
if (typeof ref === 'function') {
|
|
206
|
+
ref(node);
|
|
207
|
+
} else if (ref) {
|
|
208
|
+
ref.current = node;
|
|
209
|
+
}
|
|
210
|
+
};
|
|
199
211
|
return /*#__PURE__*/ jsxs(PopoverDiv, {
|
|
200
|
-
ref:
|
|
212
|
+
ref: forwardRef,
|
|
213
|
+
...rest,
|
|
201
214
|
children: [
|
|
202
|
-
/*#__PURE__*/ React.createElement(
|
|
215
|
+
/*#__PURE__*/ React.createElement(element, {
|
|
203
216
|
ref: triggerRef,
|
|
204
217
|
id: triggerId,
|
|
205
218
|
'aria-expanded': open,
|
|
@@ -212,35 +225,21 @@ function Popover(props) {
|
|
|
212
225
|
role: "dialog",
|
|
213
226
|
"aria-labelledby": triggerId,
|
|
214
227
|
id: popperId,
|
|
215
|
-
position:
|
|
228
|
+
position: position,
|
|
216
229
|
translateX: translate.x,
|
|
217
230
|
translateY: translate.y,
|
|
218
|
-
className: closing
|
|
231
|
+
className: closing ? 'closing' : '',
|
|
219
232
|
ref: popperRef,
|
|
220
233
|
onClick: (e)=>{
|
|
221
234
|
e.stopPropagation();
|
|
222
235
|
e.nativeEvent.stopImmediatePropagation();
|
|
223
236
|
},
|
|
224
|
-
children:
|
|
237
|
+
children: children
|
|
225
238
|
})
|
|
226
239
|
]
|
|
227
240
|
});
|
|
228
241
|
}
|
|
229
|
-
Popover
|
|
230
|
-
/** Opens the popover */ open: PropTypes.bool.isRequired,
|
|
231
|
-
/** Anchor element for the popover */ element: PropTypes.func,
|
|
232
|
-
/** Position of the popover around anchor element */ position: PropTypes.oneOf([
|
|
233
|
-
"TOP_LEFT",
|
|
234
|
-
"TOP_RIGHT",
|
|
235
|
-
"BOTTOM_LEFT",
|
|
236
|
-
"BOTTOM_RIGHT"
|
|
237
|
-
]),
|
|
238
|
-
/** If the popover should close on `esc` key press */ closeOnEsc: PropTypes.bool,
|
|
239
|
-
/** Popover close callback */ onClose: PropTypes.func
|
|
240
|
-
};
|
|
241
|
-
Popover.defaultProps = {
|
|
242
|
-
closeOnEsc: true,
|
|
243
|
-
position: "BOTTOM_LEFT"
|
|
244
|
-
};
|
|
242
|
+
const Popover = /*#__PURE__*/ React.forwardRef(PopoverComponent);
|
|
245
243
|
|
|
246
244
|
export { POPOVER_POSITION, Popover as default };
|
|
245
|
+
//# sourceMappingURL=Popover.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Popover.js","sources":["../../../src/components/Popover/Popover.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useId, useRef, useState } from 'react';\nimport styled from '@emotion/styled';\nimport { Card } from '../Card';\n\nexport enum POPOVER_POSITION {\n TOP_LEFT = 'TOP_LEFT',\n TOP_RIGHT = 'TOP_RIGHT',\n BOTTOM_LEFT = 'BOTTOM_LEFT',\n BOTTOM_RIGHT = 'BOTTOM_RIGHT',\n}\n\ninterface Translate {\n x: number;\n y: number;\n}\n\nconst positionMap = {\n [POPOVER_POSITION.TOP_LEFT]: `\n bottom: calc(100% - 10px);\n left: 0;\n `,\n [POPOVER_POSITION.TOP_RIGHT]: `\n bottom: calc(100% - 10px);\n right: 0;\n `,\n [POPOVER_POSITION.BOTTOM_RIGHT]: `\n top: calc(100% - 10px);\n right: 0;\n `,\n [POPOVER_POSITION.BOTTOM_LEFT]: `\n top: calc(100% - 10px);\n left: 0;\n `,\n};\n\nconst PopoverDiv = styled.div`\n position: relative;\n display: inline-flex;\n`;\n\nconst Popper = styled(Card)<{ position: POPOVER_POSITION; translateX: number; translateY: number }>`\n position: absolute;\n width: 100%;\n min-width: 200px;\n overflow: auto;\n animation: enter 0.3s linear;\n border-radius: 3px;\n z-index: 1;\n transform: translate(${(props) => props.translateX}px, ${(props) => props.translateY}px);\n ${(props) => positionMap[props.position]}\n\n &.closing {\n /* max-height: 0px;\n opacity: 0;\n overflow: hidden; */\n animation: exit 0.3s linear;\n }\n\n @keyframes enter {\n from {\n max-height: 0px;\n opacity: 1;\n overflow: hidden;\n }\n to {\n max-height: 300px;\n opacity: 1;\n overflow: hidden;\n }\n }\n\n @keyframes exit {\n to {\n max-height: 0px;\n opacity: 1;\n overflow: hidden;\n }\n from {\n max-height: 300px;\n opacity: 1;\n overflow: hidden;\n }\n }\n`;\n\nconst KEY_CODES = {\n ESC: 27,\n};\n\ntype PopoverProps = {\n /** Opens the popover */\n open: boolean;\n /** Anchor element for the popover */\n element: React.ElementType;\n /**\n * Position of the popover around anchor element\n * @default POPOVER_POSITION.BOTTOM_LEFT\n */\n position?: POPOVER_POSITION;\n /**\n * If the popover should close on `esc` key press\n * @default true\n */\n closeOnEsc?: boolean;\n /** Popover close callback */\n onClose?: () => void;\n};\n\n/**\n * Popover Component\n * @param props - Component props\n * @param ref - Ref forwarded to the underlying HTMLDivElement\n */\nfunction PopoverComponent(\n props: React.PropsWithChildren<PopoverProps>,\n ref: React.Ref<HTMLDivElement>,\n) {\n const {\n open: propsOpen,\n element,\n position = POPOVER_POSITION.BOTTOM_LEFT,\n closeOnEsc = true,\n onClose,\n children,\n ...rest\n } = props;\n\n const [open, setOpen] = useState<boolean>(propsOpen);\n const [closing, setClosing] = useState<boolean>(false);\n const [translate, setTranslate] = useState<Translate>({ x: 0, y: 0 });\n const popperRef = useRef<HTMLDivElement | null>(null);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const triggerRef = useRef<HTMLElement | null>(null);\n const closeTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const focusTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const popperId = useId();\n const triggerId = useId();\n\n const close = useCallback(() => {\n // Clear any existing timeouts first\n if (closeTimeoutRef.current) {\n clearTimeout(closeTimeoutRef.current);\n }\n if (focusTimeoutRef.current) {\n clearTimeout(focusTimeoutRef.current);\n }\n\n setClosing(true);\n closeTimeoutRef.current = setTimeout(() => {\n setOpen(false);\n setTranslate({ x: 0, y: 0 });\n\n if (onClose) {\n onClose();\n }\n setClosing(false);\n\n // Restore focus to the trigger element after animation completes\n focusTimeoutRef.current = setTimeout(() => {\n if (triggerRef.current && document.body.contains(triggerRef.current)) {\n triggerRef.current.focus();\n }\n focusTimeoutRef.current = null;\n }, 50);\n closeTimeoutRef.current = null;\n }, 280);\n }, [onClose]);\n\n const keyupEventHandler = useCallback(\n (e: KeyboardEvent) => {\n if (closeOnEsc && e.keyCode === KEY_CODES.ESC) {\n close();\n }\n },\n [close, closeOnEsc],\n );\n\n const clickOutsideHandler = useCallback(\n (e: MouseEvent) => {\n if (containerRef.current && !containerRef.current.contains(e.target as Node)) {\n close();\n }\n },\n [close],\n );\n\n /**\n * Get called on popover mount.\n */\n useEffect(() => {\n document.addEventListener('keyup', keyupEventHandler);\n\n return () => {\n document.removeEventListener('keyup', keyupEventHandler);\n };\n }, [keyupEventHandler]);\n\n useEffect(() => {\n if (propsOpen) {\n setOpen(true);\n // Use requestAnimationFrame to add listener after current event loop\n const rafId = requestAnimationFrame(() => {\n document.addEventListener('click', clickOutsideHandler);\n });\n\n return () => {\n cancelAnimationFrame(rafId);\n document.removeEventListener('click', clickOutsideHandler);\n };\n } else {\n if (open) {\n close();\n }\n }\n }, [propsOpen, open, clickOutsideHandler, close]);\n\n useEffect(() => {\n if (open) {\n const {\n top = 0,\n left = 0,\n right = 0,\n } = popperRef.current?.getBoundingClientRect() ?? {};\n const height = popperRef.current?.scrollHeight ?? 0;\n const viewportWidth = document.documentElement.clientWidth;\n const viewportHeight = document.documentElement.clientHeight;\n const translation = { x: 0, y: 0 };\n\n if (position === POPOVER_POSITION.BOTTOM_LEFT) {\n // overflow can happen at bottom and right\n if (viewportHeight - top - height < 0) {\n translation.y = -1 * (Math.abs(viewportHeight - top - height) + 5);\n }\n if (viewportWidth - right < 0) {\n translation.x = -1 * (Math.abs(viewportWidth - right) + 5);\n }\n } else if (position == POPOVER_POSITION.BOTTOM_RIGHT) {\n // overflow can happen at bottom and left\n if (viewportHeight - top - height < 0) {\n translation.y = -1 * (Math.abs(viewportHeight - top - height) + 5);\n }\n if (left < 0) {\n translation.x = Math.abs(left) + 5;\n }\n } else if (position === POPOVER_POSITION.TOP_LEFT) {\n // overflow can happen at top and right\n if (top - height < 0) {\n translation.y = Math.abs(top - height) + 5;\n }\n if (viewportWidth - right < 0) {\n translation.x = -1 * (Math.abs(viewportWidth - right) + 5);\n }\n } else {\n // overflow can happen at top and left\n if (top - height < 0) {\n translation.y = Math.abs(top - height) + 5;\n }\n if (left < 0) {\n translation.x = Math.abs(left) + 5;\n }\n }\n // Note it can still overflow, but in that case fitting popper inside the\n // window is not possible.\n setTranslate(translation);\n popperRef.current?.focus();\n }\n }, [open, position]);\n\n /**\n * Cleanup timeouts on unmount\n */\n useEffect(() => {\n return () => {\n if (closeTimeoutRef.current) {\n clearTimeout(closeTimeoutRef.current);\n }\n if (focusTimeoutRef.current) {\n clearTimeout(focusTimeoutRef.current);\n }\n };\n }, []);\n\n const forwardRef = (node: HTMLDivElement | null) => {\n containerRef.current = node;\n\n if (typeof ref === 'function') {\n ref(node);\n } else if (ref) {\n (ref as React.MutableRefObject<HTMLDivElement | null>).current = node;\n }\n };\n\n return (\n <PopoverDiv ref={forwardRef} {...rest}>\n {React.createElement(element, {\n ref: triggerRef,\n id: triggerId,\n 'aria-expanded': open,\n 'aria-haspopup': 'dialog',\n 'aria-controls': popperId,\n })}\n {open && (\n <Popper\n elevated\n tabIndex={0}\n role=\"dialog\"\n aria-labelledby={triggerId}\n id={popperId}\n position={position}\n translateX={translate.x}\n translateY={translate.y}\n className={closing ? 'closing' : ''}\n ref={popperRef}\n onClick={(e) => {\n e.stopPropagation();\n e.nativeEvent.stopImmediatePropagation();\n }}\n >\n {children}\n </Popper>\n )}\n </PopoverDiv>\n );\n}\n\nconst Popover = React.forwardRef(PopoverComponent);\nexport default Popover;\n"],"names":["POPOVER_POSITION","positionMap","PopoverDiv","styled","Popper","Card","props","translateX","translateY","position","KEY_CODES","ESC","PopoverComponent","ref","open","propsOpen","element","closeOnEsc","onClose","children","rest","setOpen","useState","closing","setClosing","translate","setTranslate","x","y","popperRef","useRef","containerRef","triggerRef","closeTimeoutRef","focusTimeoutRef","popperId","useId","triggerId","close","useCallback","current","clearTimeout","setTimeout","document","body","contains","focus","keyupEventHandler","e","keyCode","clickOutsideHandler","target","useEffect","addEventListener","removeEventListener","rafId","requestAnimationFrame","cancelAnimationFrame","top","left","right","getBoundingClientRect","height","scrollHeight","viewportWidth","documentElement","clientWidth","viewportHeight","clientHeight","translation","Math","abs","forwardRef","node","_jsxs","React","createElement","id","_jsx","elevated","tabIndex","role","aria-labelledby","className","onClick","stopPropagation","nativeEvent","stopImmediatePropagation","Popover"],"mappings":"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"}
|
|
@@ -1,16 +1,15 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
type SpinnerProp = PropTypes.InferProps<typeof Spinner.propTypes>;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
type SpinnerProp = {
|
|
3
|
+
/**
|
|
4
|
+
* Spinner's size
|
|
5
|
+
* @default 30
|
|
6
|
+
*/
|
|
7
|
+
size?: number;
|
|
8
|
+
/**
|
|
9
|
+
* Accessible label for screen readers
|
|
10
|
+
* @default 'Loading'
|
|
11
|
+
*/
|
|
12
|
+
label?: string;
|
|
13
|
+
};
|
|
14
|
+
declare const Spinner: React.ForwardRefExoticComponent<SpinnerProp & React.RefAttributes<HTMLDivElement>>;
|
|
16
15
|
export default Spinner;
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import { jsx } from '@emotion/react/jsx-runtime';
|
|
2
|
-
import
|
|
2
|
+
import React from 'react';
|
|
3
3
|
import styled from '@emotion/styled';
|
|
4
4
|
import { getThemeValue, THEME_NAME } from '../../shared/constants.js';
|
|
5
5
|
|
|
6
6
|
const SpinnerDiv = /*#__PURE__*/ styled("div", {
|
|
7
|
-
target: "
|
|
7
|
+
target: "e14pfj3w0",
|
|
8
8
|
label: "SpinnerDiv"
|
|
9
|
-
})("border:4px solid ", getThemeValue(THEME_NAME.PRIMARY), ";border-top:4px solid ", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";border-radius:50%;width:", (props)=>props.size, "px;height:", (props)=>props.size, "px;margin:0 auto;animation:spin 1s linear infinite;@keyframes spin{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}"
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
})("border:4px solid ", getThemeValue(THEME_NAME.PRIMARY), ";border-top:4px solid ", getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR), ";border-radius:50%;width:", (props)=>props.size, "px;height:", (props)=>props.size, "px;margin:0 auto;animation:spin 1s linear infinite;@keyframes spin{0%{transform:rotate(0deg);}100%{transform:rotate(360deg);}}");
|
|
10
|
+
/**
|
|
11
|
+
* Spinner Component
|
|
12
|
+
* @param props - Component props
|
|
13
|
+
* @param ref - Ref forwarded to the underlying HTMLDivElement
|
|
14
|
+
*/ function SpinnerComponent(props, ref) {
|
|
15
|
+
const { label = 'Loading', size = 30, ...rest } = props;
|
|
12
16
|
return /*#__PURE__*/ jsx(SpinnerDiv, {
|
|
13
17
|
...rest,
|
|
18
|
+
ref: ref,
|
|
19
|
+
size: size,
|
|
14
20
|
role: "status",
|
|
15
|
-
"aria-label": label,
|
|
21
|
+
"aria-label": label || undefined,
|
|
16
22
|
"aria-live": "polite",
|
|
17
23
|
"aria-busy": "true"
|
|
18
24
|
});
|
|
19
25
|
}
|
|
20
|
-
Spinner
|
|
21
|
-
/** Spinner's size */ size: PropTypes.number,
|
|
22
|
-
/** Accessible label for screen readers */ label: PropTypes.string
|
|
23
|
-
};
|
|
24
|
-
Spinner.defaultProps = {
|
|
25
|
-
size: 30,
|
|
26
|
-
label: 'Loading'
|
|
27
|
-
};
|
|
26
|
+
const Spinner = /*#__PURE__*/ React.forwardRef(SpinnerComponent);
|
|
28
27
|
|
|
29
28
|
export { Spinner as default };
|
|
29
|
+
//# sourceMappingURL=Spinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Spinner.js","sources":["../../../src/components/Spinner/Spinner.tsx"],"sourcesContent":["import React from 'react';\nimport styled from '@emotion/styled';\nimport { getThemeValue, THEME_NAME } from '../../shared/constants';\n\nconst SpinnerDiv = styled.div<SpinnerProp>`\n border: 4px solid ${getThemeValue(THEME_NAME.PRIMARY)};\n border-top: 4px solid ${getThemeValue(THEME_NAME.BORDER_LIGHT_COLOR)};\n border-radius: 50%;\n width: ${(props) => props.size}px;\n height: ${(props) => props.size}px;\n margin: 0 auto;\n animation: spin 1s linear infinite;\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n`;\n\ntype SpinnerProp = {\n /**\n * Spinner's size\n * @default 30\n */\n size?: number;\n /**\n * Accessible label for screen readers\n * @default 'Loading'\n */\n label?: string;\n};\n\n/**\n * Spinner Component\n * @param props - Component props\n * @param ref - Ref forwarded to the underlying HTMLDivElement\n */\nfunction SpinnerComponent(props: SpinnerProp, ref: React.Ref<HTMLDivElement>) {\n const { label = 'Loading', size = 30, ...rest } = props;\n return (\n <SpinnerDiv\n {...rest}\n ref={ref}\n size={size}\n role=\"status\"\n aria-label={label || undefined}\n aria-live=\"polite\"\n aria-busy=\"true\"\n />\n );\n}\n\nconst Spinner = React.forwardRef<HTMLDivElement, SpinnerProp>(SpinnerComponent);\nexport default Spinner;\n"],"names":["SpinnerDiv","styled","getThemeValue","THEME_NAME","PRIMARY","BORDER_LIGHT_COLOR","props","size","SpinnerComponent","ref","label","rest","_jsx","role","aria-label","undefined","aria-live","aria-busy","Spinner","React","forwardRef"],"mappings":";;;;;AAIA,MAAMA,UAAAA,iBAAaC,MAAAA,CAAAA,KAAAA,EAAAA;;;AACKC,CAAAA,CAAAA,CAAAA,mBAAAA,EAAAA,aAAAA,CAAcC,UAAAA,CAAWC,OAAO,CAAA,EAAA,wBAAA,EAC5BF,aAAAA,CAAcC,WAAWE,kBAAkB,CAAA,EAAA,2BAAA,EAE1D,CAACC,KAAAA,GAAUA,MAAMC,IAAI,EAAA,YAAA,EACpB,CAACD,KAAAA,GAAUA,MAAMC,IAAI,EAAA,gIAAA,CAAA;AA2BnC;;;;AAIC,IACD,SAASC,gBAAAA,CAAiBF,KAAkB,EAAEG,GAA8B,EAAA;IACxE,MAAM,EAAEC,QAAQ,SAAS,EAAEH,OAAO,EAAE,EAAE,GAAGI,IAAAA,EAAM,GAAGL,KAAAA;AAClD,IAAA,qBACIM,GAAA,CAACZ,UAAAA,EAAAA;AACI,QAAA,GAAGW,IAAI;QACRF,GAAAA,EAAKA,GAAAA;QACLF,IAAAA,EAAMA,IAAAA;QACNM,IAAAA,EAAK,QAAA;AACLC,QAAAA,YAAAA,EAAYJ,KAAAA,IAASK,SAAAA;QACrBC,WAAAA,EAAU,QAAA;QACVC,WAAAA,EAAU;;AAGtB;AAEA,MAAMC,OAAAA,iBAAUC,KAAAA,CAAMC,UAAU,CAA8BZ,gBAAAA;;;;"}
|
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
/**
|
|
2
|
+
declare const Step: React.ForwardRefExoticComponent<{
|
|
3
|
+
/**
|
|
4
|
+
* Name of the step to be displayed in the header
|
|
5
|
+
*/
|
|
4
6
|
name: string;
|
|
5
|
-
/**
|
|
7
|
+
/**
|
|
8
|
+
* Disables the step
|
|
9
|
+
* @default false
|
|
10
|
+
*/
|
|
6
11
|
disabled?: boolean;
|
|
7
|
-
/**
|
|
12
|
+
/**
|
|
13
|
+
* Marks the step as completed
|
|
14
|
+
* @default false
|
|
15
|
+
*/
|
|
8
16
|
completed?: boolean;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
var defaultProps: {
|
|
13
|
-
disabled: boolean;
|
|
14
|
-
completed: boolean;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
+
} & React.HTMLAttributes<HTMLDivElement> & {
|
|
18
|
+
children?: React.ReactNode | undefined;
|
|
19
|
+
} & React.RefAttributes<HTMLDivElement>>;
|
|
17
20
|
export default Step;
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import { jsx } from '@emotion/react/jsx-runtime';
|
|
2
|
-
import 'react';
|
|
2
|
+
import React from 'react';
|
|
3
3
|
import styled from '@emotion/styled';
|
|
4
4
|
|
|
5
5
|
const Container = /*#__PURE__*/ styled("div", {
|
|
6
|
-
target: "
|
|
6
|
+
target: "e1v23xop0",
|
|
7
7
|
label: "Container"
|
|
8
|
-
})("flex:1;display:flex;flex-direction:column;"
|
|
9
|
-
|
|
8
|
+
})("flex:1;display:flex;flex-direction:column;");
|
|
9
|
+
/**
|
|
10
|
+
* Step Component
|
|
11
|
+
* @param props - Component props
|
|
12
|
+
* @param ref - Ref forwarded to the underlying HTMLDivElement
|
|
13
|
+
*/ function StepComponent(props, ref) {
|
|
10
14
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
11
15
|
const { name, disabled, completed, ...rest } = props;
|
|
12
16
|
return /*#__PURE__*/ jsx(Container, {
|
|
13
|
-
...rest
|
|
17
|
+
...rest,
|
|
18
|
+
ref: ref
|
|
14
19
|
});
|
|
15
20
|
}
|
|
16
|
-
Step
|
|
17
|
-
disabled: false,
|
|
18
|
-
completed: false
|
|
19
|
-
};
|
|
21
|
+
const Step = /*#__PURE__*/ React.forwardRef(StepComponent);
|
|
20
22
|
|
|
21
23
|
export { Step as default };
|
|
24
|
+
//# sourceMappingURL=Step.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Step.js","sources":["../../../src/components/Stepper/Step.tsx"],"sourcesContent":["import React from 'react';\nimport styled from '@emotion/styled';\n\nconst Container = styled.div`\n flex: 1;\n display: flex;\n flex-direction: column;\n`;\n\ntype StepProps = {\n /**\n * Name of the step to be displayed in the header\n */\n name: string;\n /**\n * Disables the step\n * @default false\n */\n disabled?: boolean;\n /**\n * Marks the step as completed\n * @default false\n */\n completed?: boolean;\n} & React.HTMLAttributes<HTMLDivElement>;\n\n/**\n * Step Component\n * @param props - Component props\n * @param ref - Ref forwarded to the underlying HTMLDivElement\n */\nfunction StepComponent(props: React.PropsWithChildren<StepProps>, ref: React.Ref<HTMLDivElement>) {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { name, disabled, completed, ...rest } = props;\n return <Container {...rest} ref={ref} />;\n}\n\nconst Step = React.forwardRef(StepComponent);\nexport default Step;\n"],"names":["Container","styled","StepComponent","props","ref","name","disabled","completed","rest","_jsx","Step","React","forwardRef"],"mappings":";;;;AAGA,MAAMA,SAAAA,iBAAYC,MAAAA,CAAAA,KAAAA,EAAAA;;;;AAuBlB;;;;AAIC,IACD,SAASC,aAAAA,CAAcC,KAAyC,EAAEC,GAA8B,EAAA;;IAE5F,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,SAAS,EAAE,GAAGC,IAAAA,EAAM,GAAGL,KAAAA;AAC/C,IAAA,qBAAOM,GAAA,CAACT,SAAAA,EAAAA;AAAW,QAAA,GAAGQ,IAAI;QAAEJ,GAAAA,EAAKA;;AACrC;AAEA,MAAMM,IAAAA,iBAAOC,KAAAA,CAAMC,UAAU,CAACV,aAAAA;;;;"}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
declare const Stepper: React.ForwardRefExoticComponent<{
|
|
3
|
+
/**
|
|
4
|
+
* Index of currently active step
|
|
5
|
+
* @default 0
|
|
6
|
+
*/
|
|
7
|
+
active?: number;
|
|
8
|
+
/** Callback function for click event on a step */
|
|
5
9
|
onStepClick?: (index: number) => void;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
var propTypes: {
|
|
10
|
-
/** Index of currently active step */
|
|
11
|
-
active: PropTypes.Requireable<number>;
|
|
12
|
-
/** Callback function for click event on a step */
|
|
13
|
-
onStepClick: PropTypes.Requireable<(...args: any[]) => any>;
|
|
14
|
-
};
|
|
15
|
-
var defaultProps: {
|
|
16
|
-
active: number;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
10
|
+
} & {
|
|
11
|
+
children?: React.ReactNode | undefined;
|
|
12
|
+
} & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
19
13
|
export default Stepper;
|