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, Fragment, jsx } from '@emotion/react/jsx-runtime';
|
|
2
|
-
import React, { useState, useId, useEffect } from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
2
|
+
import React, { useState, useId, useImperativeHandle, useEffect } from 'react';
|
|
4
3
|
import styled from '@emotion/styled';
|
|
5
4
|
import { getThemeValue, THEME_NAME } from '../../shared/constants.js';
|
|
6
5
|
import Chip from '../Chip/Chip.js';
|
|
@@ -8,8 +7,8 @@ import DragAndDrop from '../DragAndDrop/DragAndDrop.js';
|
|
|
8
7
|
import { ORIENTATION } from '../DragAndDrop/types.js';
|
|
9
8
|
|
|
10
9
|
// Label component for the ChipInput
|
|
11
|
-
const Label = /*#__PURE__*/ styled("label", {
|
|
12
|
-
target: "
|
|
10
|
+
const Label$6 = /*#__PURE__*/ styled("label", {
|
|
11
|
+
target: "e12jan4z0",
|
|
13
12
|
label: "Label"
|
|
14
13
|
})("display:inline-flex;flex-direction:column;flex:1;position:relative;margin:10px 5px;color:inherit;padding:0 8px;width:250px;border-radius:3px;border:1px solid ", getThemeValue(THEME_NAME.BORDER_COLOR), ";background-color:", getThemeValue(THEME_NAME.BACKGROUND), ";&:has(:focus),&:has(:active){border-color:", getThemeValue(THEME_NAME.PRIMARY), ";box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.PRIMARY_LIGHT), ";}&:has(:focus) > span,&:has(:active) > span{color:", getThemeValue(THEME_NAME.PRIMARY), ";}&:has(:disabled){border-color:", getThemeValue(THEME_NAME.DISABLED_BORDER), ";background-color:", getThemeValue(THEME_NAME.DISABLED_BACKGROUND), ";}&:has(:disabled) > span{color:", getThemeValue(THEME_NAME.DISABLED), ";}&:has(:focus:invalid){border-color:", getThemeValue(THEME_NAME.ERROR), ";box-shadow:0 0 0 4px ", getThemeValue(THEME_NAME.ERROR_LIGHT), ";}", (props)=>props.touched ? `
|
|
15
14
|
&:has(:invalid) {
|
|
@@ -25,24 +24,28 @@ const Label = /*#__PURE__*/ styled("label", {
|
|
|
25
24
|
& > span {
|
|
26
25
|
color: ${getThemeValue(THEME_NAME.ERROR)};
|
|
27
26
|
}
|
|
28
|
-
` : '', " \n
|
|
27
|
+
` : '', " \n ", (props)=>props.required ? `& > span:after {
|
|
28
|
+
content: '*';
|
|
29
|
+
margin-left: 2px;
|
|
30
|
+
color: ${getThemeValue(THEME_NAME.ERROR)};
|
|
31
|
+
}` : '', " \n\n & > input{border:none;outline:none;line-height:30px;min-height:30px;max-width:95%;}& > span{position:absolute;padding:0 5px;top:0px;left:4px;font-size:14px;line-height:32px;transition:all 300ms ease;}&:has(:focus) > span,&:has(:placeholder-shown) > span{top:-8px;background:", getThemeValue(THEME_NAME.BACKGROUND), ";font-size:12px;line-height:14px;}", (props)=>props.text !== '' ? `
|
|
29
32
|
& > span {
|
|
30
33
|
top: -8px;
|
|
31
34
|
background: ${getThemeValue(THEME_NAME.BACKGROUND)};
|
|
32
35
|
font-size: 12px;
|
|
33
36
|
line-height: 14px;
|
|
34
37
|
}
|
|
35
|
-
` : '', "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9DaGlwSW5wdXQvQ2hpcElucHV0LnRzeCIsInNvdXJjZXMiOlsiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9DaGlwSW5wdXQvQ2hpcElucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgZ2V0VGhlbWVWYWx1ZSwgVEhFTUVfTkFNRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMnO1xuaW1wb3J0IENoaXAgZnJvbSAnLi4vQ2hpcC9DaGlwJztcbmltcG9ydCB7IERyYWdBbmREcm9wLCBPUklFTlRBVElPTiB9IGZyb20gJy4uL0RyYWdBbmREcm9wJztcblxuLy8gUHJvcCB0eXBlcyBkZWZpbml0aW9uXG50eXBlIENoaXBJbnB1dFByb3BzID0gUHJvcFR5cGVzLkluZmVyUHJvcHM8dHlwZW9mIENoaXBJbnB1dC5wcm9wVHlwZXM+O1xuXG4vLyBMYWJlbCBjb21wb25lbnQgZm9yIHRoZSBDaGlwSW5wdXRcbmNvbnN0IExhYmVsID0gc3R5bGVkLmxhYmVsPHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgdG91Y2hlZD86IGJvb2xlYW47XG4gICAgZXJyb3JUZXh0Pzogc3RyaW5nO1xufT5gXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDEwcHggNXB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQk9SREVSX0NPTE9SKX07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQkFDS0dST1VORCl9O1xuXG4gICAgLyoqIEZvY3VzZWQgKi9cbiAgICAmOmhhcyg6Zm9jdXMpLFxuICAgICY6aGFzKDphY3RpdmUpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZX0xJR0hUKX07XG4gICAgfVxuXG4gICAgJjpoYXMoOmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoOmFjdGl2ZSkgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpfTtcbiAgICB9XG5cbiAgICAvKiogRGlzYWJsZWQgKi9cbiAgICAmOmhhcyg6ZGlzYWJsZWQpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5ESVNBQkxFRF9CT1JERVIpfTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRElTQUJMRURfQkFDS0dST1VORCl9O1xuICAgIH1cblxuICAgICY6aGFzKDpkaXNhYmxlZCkgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkRJU0FCTEVEKX07XG4gICAgfVxuXG4gICAgLyoqIEludmFsaWQgKi9cbiAgICAmOmhhcyg6Zm9jdXM6aW52YWxpZCkge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkVSUk9SKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUl9MSUdIVCl9O1xuICAgIH1cblxuICAgICR7KHByb3BzKSA9PlxuICAgICAgICBwcm9wcy50b3VjaGVkXG4gICAgICAgICAgICA/IGBcbiAgICAgICAgJjpoYXMoOmludmFsaWQpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRVJST1IpfTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmOmhhcyg6aW52YWxpZCkgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5cbiAgICAvKiogRXJyb3IgKi9cbiAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgcHJvcHMuZXJyb3JUZXh0XG4gICAgICAgICAgICA/IGBcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuXG4gICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5cbiAgICAvKiogUmVxdWlyZWQgKi9cbiAgICAmOmhhcyg6cmVxdWlyZWQpID4gc3BhbjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkVSUk9SKX07XG4gICAgfVxuXG4gICAgJiA+IGlucHV0IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgbWF4LXdpZHRoOiA5NSU7XG4gICAgfVxuXG4gICAgLyoqIExhYmVsIEFuaW1hdGlvbiAqL1xuICAgICYgPiBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7XG4gICAgfVxuXG4gICAgJjpoYXMoOmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoOnBsYWNlaG9sZGVyLXNob3duKSA+IHNwYW4ge1xuICAgICAgICB0b3A6IC04cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkJBQ0tHUk9VTkQpfTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICB9XG5cbiAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgcHJvcHMudGV4dCAhPT0gJydcbiAgICAgICAgICAgID8gYFxuICAgICYgPiBzcGFuIHtcbiAgICAgICAgdG9wOiAtOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5CQUNLR1JPVU5EKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgfVxuICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5gO1xuXG4vLyBFcnJvciBtZXNzYWdlIGNvbnRhaW5lclxuY29uc3QgRXJyb3JDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG5gO1xuXG4vLyBWaXN1YWxseSBoaWRkZW4gYnV0IGFjY2Vzc2libGUgdG8gc2NyZWVuIHJlYWRlcnNcbmNvbnN0IFZpc3VhbGx5SGlkZGVuID0gc3R5bGVkLnVsYFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJvcmRlci13aWR0aDogMDtcblxuICAgICYgbGkge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbmA7XG5cbi8qKlxuICogQSBjaGlwIGlucHV0IGNvbXBvbmVudCB0aGF0IGFsbG93cyB1c2VycyB0byBhZGQgYW5kIHJlbW92ZSBjaGlwcyAodGFncykgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlci5cbiAqIEBjb21wb25lbnRcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIDxDaGlwSW5wdXRcbiAqICAgdmFsdWU9e1sndGFnMScsICd0YWcyJ119XG4gKiAgIG9uQ2hhbmdlPXsobmV3VGFncykgPT4gY29uc29sZS5sb2cobmV3VGFncyl9XG4gKiAgIGxhYmVsPVwiQWRkIHRhZ3NcIlxuICogICBlcnJvclRleHQ9XCJBdCBsZWFzdCBvbmUgdGFnIGlzIHJlcXVpcmVkXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ2hpcElucHV0KFxuICAgIHByb3BzOiBDaGlwSW5wdXRQcm9wcyAmIFJlYWN0LkFsbEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+LFxuKSB7XG4gICAgY29uc3QgW3RleHQsIHNldFRleHRdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFt0b3VjaGVkLCBzZXRUb3VjaGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihwcm9wcy52YWx1ZSB8fCBbXSk7XG4gICAgY29uc3QgSW5wdXRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW2Fubm91bmNlbWVudCwgc2V0QW5ub3VuY2VtZW50XSA9IHVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBlcnJvcklkID0gdXNlSWQoKTtcblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2UgezpsYWJlbH0gcGxhY2Vob2xkZXIgaW4gdGVtcGxhdGUgc3RyaW5nXG4gICAgICovXG4gICAgY29uc3QgcmVwbGFjZVBsYWNlaG9sZGVyID0gKFxuICAgICAgICB0ZW1wbGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICBsYWJlbDogc3RyaW5nLFxuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgICAgIGlmICghdGVtcGxhdGUpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKC9cXHs6bGFiZWxcXH0vZywgbGFiZWwpO1xuICAgIH07XG5cbiAgICAvLyBTeW5jIGludGVybmFsIHZhbHVlIHdpdGggcHJvcHMudmFsdWVcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0sIFtwcm9wcy52YWx1ZV0pO1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBjaGlwIHZhbHVlcyBhbmQgbm90aWZ5IGNoYW5nZXMuXG4gICAgICogQHBhcmFtIG5ld1ZhbHVlIFRoZSBuZXcgYXJyYXkgb2YgY2hpcCB2YWx1ZXNcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVWYWx1ZSA9IChuZXdWYWx1ZTogc3RyaW5nW10pID0+IHtcbiAgICAgICAgY29uc3QgZGVkdXBlZCA9IEFycmF5LmZyb20obmV3IFNldChuZXdWYWx1ZSkpO1xuICAgICAgICBzZXRWYWx1ZShkZWR1cGVkKTtcbiAgICAgICAgcHJvcHMub25DaGFuZ2U/LihkZWR1cGVkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTWFya3MgdGhlIGlucHV0IGFzIHRvdWNoZWQgb24gZm9jdXMuXG4gICAgICogQHBhcmFtIGUgUmVhY3QgZm9jdXMgZXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChlOiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIHNldFRvdWNoZWQodHJ1ZSk7XG4gICAgICAgIGlmIChwcm9wcy5vbkZvY3VzKSB7XG4gICAgICAgICAgICBwcm9wcy5vbkZvY3VzKGUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoYW5nZSBoYW5kbGVyIGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAgICogQHBhcmFtIGUgUmVhY3QgY2hhbmdlIGV2ZW50XG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZSkgPT4ge1xuICAgICAgICBzZXRUZXh0KGUudGFyZ2V0LnZhbHVlKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIG5ldyBjaGlwIG9uIEVudGVyIGtleSBwcmVzcy5cbiAgICAgKiBAcGFyYW0gZSBSZWFjdCBrZXlib2FyZCBldmVudFxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUtleVVwOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChlKSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiB0ZXh0LnRyaW0oKSAhPT0gJycgJiYgSW5wdXRSZWYuY3VycmVudC52YWxpZGl0eS52YWxpZCkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBbLi4udmFsdWUsIHRleHQudHJpbSgpXTtcbiAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHNldFRleHQoJycpO1xuICAgICAgICAgICAgc2V0QW5ub3VuY2VtZW50KHJlcGxhY2VQbGFjZWhvbGRlcihwcm9wcy5hZGRlZEFubm91bmNlbWVudFRlbXBsYXRlLCB0ZXh0LnRyaW0oKSkhKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGEgY2hpcCBmcm9tIHRoZSBsaXN0LlxuICAgICAqIEBwYXJhbSBjaGlwVG9SZW1vdmUgVGhlIGNoaXAgdmFsdWUgdG8gcmVtb3ZlXG4gICAgICovXG4gICAgY29uc3QgcmVtb3ZlQ2hpcCA9IChjaGlwVG9SZW1vdmU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLmZpbHRlcigoY2hpcCkgPT4gY2hpcCAhPT0gY2hpcFRvUmVtb3ZlKTtcbiAgICAgICAgdXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICBzZXRBbm5vdW5jZW1lbnQocmVwbGFjZVBsYWNlaG9sZGVyKHByb3BzLnJlbW92ZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZSwgY2hpcFRvUmVtb3ZlKSEpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBNb3ZlcyBhIGNoaXAgZnJvbSBvbmUgcG9zaXRpb24gdG8gYW5vdGhlci5cbiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBpdGVtIHRvIG1vdmVcbiAgICAgKiBAcGFyYW0gZW5kIFRoZSBlbmRpbmcgaW5kZXggd2hlcmUgdGhlIGl0ZW0gc2hvdWxkIGJlIHBsYWNlZFxuICAgICAqL1xuICAgIGNvbnN0IG9uRHJvcCA9IChzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikgPT4ge1xuICAgICAgICAvLyBDbG9uZSBleGlzdGluZyBlbGVtZW50c1xuICAgICAgICBjb25zdCBuZXdJdGVtcyA9IFsuLi52YWx1ZV07XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgZWxlbWVudCB0byBiZSBtb3ZlZFxuICAgICAgICBjb25zdCBpdGVtID0gbmV3SXRlbXMuc3BsaWNlKHN0YXJ0LCAxKTtcbiAgICAgICAgLy8gQWRkIGl0IGJhY2sgYXQgdGhlIHJlcXVpcmVkIHBvc2l0aW9uXG4gICAgICAgIG5ld0l0ZW1zLnNwbGljZShlbmQsIDAsIGl0ZW1bMF0pO1xuICAgICAgICAvLyBVcGRhdGVcbiAgICAgICAgdXBkYXRlVmFsdWUobmV3SXRlbXMpO1xuICAgIH07XG5cbiAgICAvLyBSZW5kZXIgdGhlIGNvbXBvbmVudFxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8TGFiZWwgdGV4dD17dGV4dH0gdG91Y2hlZD17dG91Y2hlZH0gZXJyb3JUZXh0PXtwcm9wcy5lcnJvclRleHR9PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17SW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25LZXlVcD17aGFuZGxlS2V5VXB9XG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtwcm9wcy5yZXF1aXJlZCAmJiB2YWx1ZS5sZW5ndGggPT09IDB9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVxdWlyZWQ9e3Byb3BzLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWludmFsaWQ9eyEhcHJvcHMuZXJyb3JUZXh0fVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtwcm9wcy5lcnJvclRleHQgPyBlcnJvcklkIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAge3ZhbHVlPy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEcmFnQW5kRHJvcCBvcmllbnRhdGlvbj17T1JJRU5UQVRJT04uSE9SSVpPTlRBTH0gb25Ecm9wPXtvbkRyb3B9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZS5tYXAoKGNoaXApID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y2hpcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtjaGlwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZUNsaWNrPXsoKSA9PiByZW1vdmVDaGlwKGNoaXApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VCdXR0b25BcmlhTGFiZWw9e3JlcGxhY2VQbGFjZWhvbGRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jbG9zZUJ1dHRvbkFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJhZ0FuZERyb3A+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3Byb3BzLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB7cHJvcHMuZXJyb3JUZXh0ICYmIDxFcnJvckNvbnRhaW5lciBpZD17ZXJyb3JJZH0+e3Byb3BzLmVycm9yVGV4dH08L0Vycm9yQ29udGFpbmVyPn1cbiAgICAgICAgICAgIDwvTGFiZWw+XG4gICAgICAgICAgICA8VmlzdWFsbHlIaWRkZW4gYXJpYS1saXZlPVwicG9saXRlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge2Fubm91bmNlbWVudH1cbiAgICAgICAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDwvPlxuICAgICk7XG59XG5cbkNoaXBJbnB1dC5wcm9wVHlwZXMgPSB7XG4gICAgLyoqIExhYmVsIGZvciB0aGUgZmllbGQgKi9cbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBFcnJvciBtZXNzYWdlIGZvciB0aGUgZmllbGQgKi9cbiAgICBlcnJvclRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIFZhbHVlcyB0byBkaXNwbGF5IGFzIGNoaXBzICovXG4gICAgdmFsdWU6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICAgIC8qKiBDYWxsYmFjayB3aGVuIGNoaXBzIGNoYW5nZSAqL1xuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlIGNsb3NlIGJ1dHRvbiBvbiBjaGlwLiBEZWZhdWx0cyB0byBcIlJlbW92ZSB7bGFiZWx9XCIgKi9cbiAgICBjbG9zZUJ1dHRvbkFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKiogQW5ub3VuY2VtZW50IHRleHQgd2hlbiBhIGNoaXAgaXMgYWRkZWQuIERlZmF1bHRzIHRvIFwie2xhYmVsfSB3YXMgYWRkZWRcIiAqL1xuICAgIGFkZGVkQW5ub3VuY2VtZW50VGVtcGxhdGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIEFubm91bmNlbWVudCB0ZXh0IHdoZW4gYSBjaGlwIGlzIHJlbW92ZWQuIERlZmF1bHRzIHRvIFwie2xhYmVsfSB3YXMgcmVtb3ZlZFwiICovXG4gICAgcmVtb3ZlZEFubm91bmNlbWVudFRlbXBsYXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQ2hpcElucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgICB2YWx1ZTogW10sXG4gICAgY2xvc2VCdXR0b25BcmlhTGFiZWw6ICdSZW1vdmUgezpsYWJlbH0nLFxuICAgIGFkZGVkQW5ub3VuY2VtZW50VGVtcGxhdGU6ICd7OmxhYmVsfSB3YXMgYWRkZWQnLFxuICAgIHJlbW92ZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZTogJ3s6bGFiZWx9IHdhcyByZW1vdmVkJyxcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBV2MifQ== */");
|
|
38
|
+
` : '');
|
|
36
39
|
// Error message container
|
|
37
|
-
const ErrorContainer = /*#__PURE__*/ styled("div", {
|
|
38
|
-
target: "
|
|
40
|
+
const ErrorContainer$4 = /*#__PURE__*/ styled("div", {
|
|
41
|
+
target: "e12jan4z1",
|
|
39
42
|
label: "ErrorContainer"
|
|
40
|
-
})("color:", getThemeValue(THEME_NAME.ERROR), ";padding-top:3px;font-size:12px;line-height:14px;margin-left:3px;", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9DaGlwSW5wdXQvQ2hpcElucHV0LnRzeCIsInNvdXJjZXMiOlsiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9DaGlwSW5wdXQvQ2hpcElucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgZ2V0VGhlbWVWYWx1ZSwgVEhFTUVfTkFNRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMnO1xuaW1wb3J0IENoaXAgZnJvbSAnLi4vQ2hpcC9DaGlwJztcbmltcG9ydCB7IERyYWdBbmREcm9wLCBPUklFTlRBVElPTiB9IGZyb20gJy4uL0RyYWdBbmREcm9wJztcblxuLy8gUHJvcCB0eXBlcyBkZWZpbml0aW9uXG50eXBlIENoaXBJbnB1dFByb3BzID0gUHJvcFR5cGVzLkluZmVyUHJvcHM8dHlwZW9mIENoaXBJbnB1dC5wcm9wVHlwZXM+O1xuXG4vLyBMYWJlbCBjb21wb25lbnQgZm9yIHRoZSBDaGlwSW5wdXRcbmNvbnN0IExhYmVsID0gc3R5bGVkLmxhYmVsPHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgdG91Y2hlZD86IGJvb2xlYW47XG4gICAgZXJyb3JUZXh0Pzogc3RyaW5nO1xufT5gXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDEwcHggNXB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQk9SREVSX0NPTE9SKX07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQkFDS0dST1VORCl9O1xuXG4gICAgLyoqIEZvY3VzZWQgKi9cbiAgICAmOmhhcyg6Zm9jdXMpLFxuICAgICY6aGFzKDphY3RpdmUpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZX0xJR0hUKX07XG4gICAgfVxuXG4gICAgJjpoYXMoOmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoOmFjdGl2ZSkgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpfTtcbiAgICB9XG5cbiAgICAvKiogRGlzYWJsZWQgKi9cbiAgICAmOmhhcyg6ZGlzYWJsZWQpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5ESVNBQkxFRF9CT1JERVIpfTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRElTQUJMRURfQkFDS0dST1VORCl9O1xuICAgIH1cblxuICAgICY6aGFzKDpkaXNhYmxlZCkgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkRJU0FCTEVEKX07XG4gICAgfVxuXG4gICAgLyoqIEludmFsaWQgKi9cbiAgICAmOmhhcyg6Zm9jdXM6aW52YWxpZCkge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkVSUk9SKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUl9MSUdIVCl9O1xuICAgIH1cblxuICAgICR7KHByb3BzKSA9PlxuICAgICAgICBwcm9wcy50b3VjaGVkXG4gICAgICAgICAgICA/IGBcbiAgICAgICAgJjpoYXMoOmludmFsaWQpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRVJST1IpfTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmOmhhcyg6aW52YWxpZCkgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5cbiAgICAvKiogRXJyb3IgKi9cbiAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgcHJvcHMuZXJyb3JUZXh0XG4gICAgICAgICAgICA/IGBcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuXG4gICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5cbiAgICAvKiogUmVxdWlyZWQgKi9cbiAgICAmOmhhcyg6cmVxdWlyZWQpID4gc3BhbjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkVSUk9SKX07XG4gICAgfVxuXG4gICAgJiA+IGlucHV0IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgbWF4LXdpZHRoOiA5NSU7XG4gICAgfVxuXG4gICAgLyoqIExhYmVsIEFuaW1hdGlvbiAqL1xuICAgICYgPiBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7XG4gICAgfVxuXG4gICAgJjpoYXMoOmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoOnBsYWNlaG9sZGVyLXNob3duKSA+IHNwYW4ge1xuICAgICAgICB0b3A6IC04cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkJBQ0tHUk9VTkQpfTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICB9XG5cbiAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgcHJvcHMudGV4dCAhPT0gJydcbiAgICAgICAgICAgID8gYFxuICAgICYgPiBzcGFuIHtcbiAgICAgICAgdG9wOiAtOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5CQUNLR1JPVU5EKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgfVxuICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5gO1xuXG4vLyBFcnJvciBtZXNzYWdlIGNvbnRhaW5lclxuY29uc3QgRXJyb3JDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG5gO1xuXG4vLyBWaXN1YWxseSBoaWRkZW4gYnV0IGFjY2Vzc2libGUgdG8gc2NyZWVuIHJlYWRlcnNcbmNvbnN0IFZpc3VhbGx5SGlkZGVuID0gc3R5bGVkLnVsYFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJvcmRlci13aWR0aDogMDtcblxuICAgICYgbGkge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbmA7XG5cbi8qKlxuICogQSBjaGlwIGlucHV0IGNvbXBvbmVudCB0aGF0IGFsbG93cyB1c2VycyB0byBhZGQgYW5kIHJlbW92ZSBjaGlwcyAodGFncykgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlci5cbiAqIEBjb21wb25lbnRcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIDxDaGlwSW5wdXRcbiAqICAgdmFsdWU9e1sndGFnMScsICd0YWcyJ119XG4gKiAgIG9uQ2hhbmdlPXsobmV3VGFncykgPT4gY29uc29sZS5sb2cobmV3VGFncyl9XG4gKiAgIGxhYmVsPVwiQWRkIHRhZ3NcIlxuICogICBlcnJvclRleHQ9XCJBdCBsZWFzdCBvbmUgdGFnIGlzIHJlcXVpcmVkXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ2hpcElucHV0KFxuICAgIHByb3BzOiBDaGlwSW5wdXRQcm9wcyAmIFJlYWN0LkFsbEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+LFxuKSB7XG4gICAgY29uc3QgW3RleHQsIHNldFRleHRdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFt0b3VjaGVkLCBzZXRUb3VjaGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihwcm9wcy52YWx1ZSB8fCBbXSk7XG4gICAgY29uc3QgSW5wdXRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW2Fubm91bmNlbWVudCwgc2V0QW5ub3VuY2VtZW50XSA9IHVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBlcnJvcklkID0gdXNlSWQoKTtcblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2UgezpsYWJlbH0gcGxhY2Vob2xkZXIgaW4gdGVtcGxhdGUgc3RyaW5nXG4gICAgICovXG4gICAgY29uc3QgcmVwbGFjZVBsYWNlaG9sZGVyID0gKFxuICAgICAgICB0ZW1wbGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICBsYWJlbDogc3RyaW5nLFxuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgICAgIGlmICghdGVtcGxhdGUpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKC9cXHs6bGFiZWxcXH0vZywgbGFiZWwpO1xuICAgIH07XG5cbiAgICAvLyBTeW5jIGludGVybmFsIHZhbHVlIHdpdGggcHJvcHMudmFsdWVcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0sIFtwcm9wcy52YWx1ZV0pO1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBjaGlwIHZhbHVlcyBhbmQgbm90aWZ5IGNoYW5nZXMuXG4gICAgICogQHBhcmFtIG5ld1ZhbHVlIFRoZSBuZXcgYXJyYXkgb2YgY2hpcCB2YWx1ZXNcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVWYWx1ZSA9IChuZXdWYWx1ZTogc3RyaW5nW10pID0+IHtcbiAgICAgICAgY29uc3QgZGVkdXBlZCA9IEFycmF5LmZyb20obmV3IFNldChuZXdWYWx1ZSkpO1xuICAgICAgICBzZXRWYWx1ZShkZWR1cGVkKTtcbiAgICAgICAgcHJvcHMub25DaGFuZ2U/LihkZWR1cGVkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTWFya3MgdGhlIGlucHV0IGFzIHRvdWNoZWQgb24gZm9jdXMuXG4gICAgICogQHBhcmFtIGUgUmVhY3QgZm9jdXMgZXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChlOiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIHNldFRvdWNoZWQodHJ1ZSk7XG4gICAgICAgIGlmIChwcm9wcy5vbkZvY3VzKSB7XG4gICAgICAgICAgICBwcm9wcy5vbkZvY3VzKGUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoYW5nZSBoYW5kbGVyIGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAgICogQHBhcmFtIGUgUmVhY3QgY2hhbmdlIGV2ZW50XG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZSkgPT4ge1xuICAgICAgICBzZXRUZXh0KGUudGFyZ2V0LnZhbHVlKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIG5ldyBjaGlwIG9uIEVudGVyIGtleSBwcmVzcy5cbiAgICAgKiBAcGFyYW0gZSBSZWFjdCBrZXlib2FyZCBldmVudFxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUtleVVwOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChlKSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiB0ZXh0LnRyaW0oKSAhPT0gJycgJiYgSW5wdXRSZWYuY3VycmVudC52YWxpZGl0eS52YWxpZCkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBbLi4udmFsdWUsIHRleHQudHJpbSgpXTtcbiAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHNldFRleHQoJycpO1xuICAgICAgICAgICAgc2V0QW5ub3VuY2VtZW50KHJlcGxhY2VQbGFjZWhvbGRlcihwcm9wcy5hZGRlZEFubm91bmNlbWVudFRlbXBsYXRlLCB0ZXh0LnRyaW0oKSkhKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGEgY2hpcCBmcm9tIHRoZSBsaXN0LlxuICAgICAqIEBwYXJhbSBjaGlwVG9SZW1vdmUgVGhlIGNoaXAgdmFsdWUgdG8gcmVtb3ZlXG4gICAgICovXG4gICAgY29uc3QgcmVtb3ZlQ2hpcCA9IChjaGlwVG9SZW1vdmU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLmZpbHRlcigoY2hpcCkgPT4gY2hpcCAhPT0gY2hpcFRvUmVtb3ZlKTtcbiAgICAgICAgdXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICBzZXRBbm5vdW5jZW1lbnQocmVwbGFjZVBsYWNlaG9sZGVyKHByb3BzLnJlbW92ZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZSwgY2hpcFRvUmVtb3ZlKSEpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBNb3ZlcyBhIGNoaXAgZnJvbSBvbmUgcG9zaXRpb24gdG8gYW5vdGhlci5cbiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBpdGVtIHRvIG1vdmVcbiAgICAgKiBAcGFyYW0gZW5kIFRoZSBlbmRpbmcgaW5kZXggd2hlcmUgdGhlIGl0ZW0gc2hvdWxkIGJlIHBsYWNlZFxuICAgICAqL1xuICAgIGNvbnN0IG9uRHJvcCA9IChzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikgPT4ge1xuICAgICAgICAvLyBDbG9uZSBleGlzdGluZyBlbGVtZW50c1xuICAgICAgICBjb25zdCBuZXdJdGVtcyA9IFsuLi52YWx1ZV07XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgZWxlbWVudCB0byBiZSBtb3ZlZFxuICAgICAgICBjb25zdCBpdGVtID0gbmV3SXRlbXMuc3BsaWNlKHN0YXJ0LCAxKTtcbiAgICAgICAgLy8gQWRkIGl0IGJhY2sgYXQgdGhlIHJlcXVpcmVkIHBvc2l0aW9uXG4gICAgICAgIG5ld0l0ZW1zLnNwbGljZShlbmQsIDAsIGl0ZW1bMF0pO1xuICAgICAgICAvLyBVcGRhdGVcbiAgICAgICAgdXBkYXRlVmFsdWUobmV3SXRlbXMpO1xuICAgIH07XG5cbiAgICAvLyBSZW5kZXIgdGhlIGNvbXBvbmVudFxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8TGFiZWwgdGV4dD17dGV4dH0gdG91Y2hlZD17dG91Y2hlZH0gZXJyb3JUZXh0PXtwcm9wcy5lcnJvclRleHR9PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17SW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25LZXlVcD17aGFuZGxlS2V5VXB9XG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtwcm9wcy5yZXF1aXJlZCAmJiB2YWx1ZS5sZW5ndGggPT09IDB9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVxdWlyZWQ9e3Byb3BzLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWludmFsaWQ9eyEhcHJvcHMuZXJyb3JUZXh0fVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtwcm9wcy5lcnJvclRleHQgPyBlcnJvcklkIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAge3ZhbHVlPy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEcmFnQW5kRHJvcCBvcmllbnRhdGlvbj17T1JJRU5UQVRJT04uSE9SSVpPTlRBTH0gb25Ecm9wPXtvbkRyb3B9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZS5tYXAoKGNoaXApID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y2hpcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtjaGlwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZUNsaWNrPXsoKSA9PiByZW1vdmVDaGlwKGNoaXApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VCdXR0b25BcmlhTGFiZWw9e3JlcGxhY2VQbGFjZWhvbGRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jbG9zZUJ1dHRvbkFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJhZ0FuZERyb3A+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3Byb3BzLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB7cHJvcHMuZXJyb3JUZXh0ICYmIDxFcnJvckNvbnRhaW5lciBpZD17ZXJyb3JJZH0+e3Byb3BzLmVycm9yVGV4dH08L0Vycm9yQ29udGFpbmVyPn1cbiAgICAgICAgICAgIDwvTGFiZWw+XG4gICAgICAgICAgICA8VmlzdWFsbHlIaWRkZW4gYXJpYS1saXZlPVwicG9saXRlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge2Fubm91bmNlbWVudH1cbiAgICAgICAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDwvPlxuICAgICk7XG59XG5cbkNoaXBJbnB1dC5wcm9wVHlwZXMgPSB7XG4gICAgLyoqIExhYmVsIGZvciB0aGUgZmllbGQgKi9cbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBFcnJvciBtZXNzYWdlIGZvciB0aGUgZmllbGQgKi9cbiAgICBlcnJvclRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIFZhbHVlcyB0byBkaXNwbGF5IGFzIGNoaXBzICovXG4gICAgdmFsdWU6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICAgIC8qKiBDYWxsYmFjayB3aGVuIGNoaXBzIGNoYW5nZSAqL1xuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlIGNsb3NlIGJ1dHRvbiBvbiBjaGlwLiBEZWZhdWx0cyB0byBcIlJlbW92ZSB7bGFiZWx9XCIgKi9cbiAgICBjbG9zZUJ1dHRvbkFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKiogQW5ub3VuY2VtZW50IHRleHQgd2hlbiBhIGNoaXAgaXMgYWRkZWQuIERlZmF1bHRzIHRvIFwie2xhYmVsfSB3YXMgYWRkZWRcIiAqL1xuICAgIGFkZGVkQW5ub3VuY2VtZW50VGVtcGxhdGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIEFubm91bmNlbWVudCB0ZXh0IHdoZW4gYSBjaGlwIGlzIHJlbW92ZWQuIERlZmF1bHRzIHRvIFwie2xhYmVsfSB3YXMgcmVtb3ZlZFwiICovXG4gICAgcmVtb3ZlZEFubm91bmNlbWVudFRlbXBsYXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQ2hpcElucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgICB2YWx1ZTogW10sXG4gICAgY2xvc2VCdXR0b25BcmlhTGFiZWw6ICdSZW1vdmUgezpsYWJlbH0nLFxuICAgIGFkZGVkQW5ub3VuY2VtZW50VGVtcGxhdGU6ICd7OmxhYmVsfSB3YXMgYWRkZWQnLFxuICAgIHJlbW92ZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZTogJ3s6bGFiZWx9IHdhcyByZW1vdmVkJyxcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBaUl1QiJ9 */");
|
|
43
|
+
})("color:", getThemeValue(THEME_NAME.ERROR), ";padding-top:3px;font-size:12px;line-height:14px;margin-left:3px;");
|
|
41
44
|
// Visually hidden but accessible to screen readers
|
|
42
|
-
const VisuallyHidden = /*#__PURE__*/ styled("ul", {
|
|
43
|
-
target: "
|
|
45
|
+
const VisuallyHidden$1 = /*#__PURE__*/ styled("ul", {
|
|
46
|
+
target: "e12jan4z2",
|
|
44
47
|
label: "VisuallyHidden"
|
|
45
|
-
})("position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;& li{list-style:none;}", "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9DaGlwSW5wdXQvQ2hpcElucHV0LnRzeCIsInNvdXJjZXMiOlsiL2hvbWUvcnVubmVyL3dvcmsvbm8tZnJpbGxzLXVpL25vLWZyaWxscy11aS9zcmMvY29tcG9uZW50cy9DaGlwSW5wdXQvQ2hpcElucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHsgdXNlRWZmZWN0LCB1c2VJZCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgZ2V0VGhlbWVWYWx1ZSwgVEhFTUVfTkFNRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9jb25zdGFudHMnO1xuaW1wb3J0IENoaXAgZnJvbSAnLi4vQ2hpcC9DaGlwJztcbmltcG9ydCB7IERyYWdBbmREcm9wLCBPUklFTlRBVElPTiB9IGZyb20gJy4uL0RyYWdBbmREcm9wJztcblxuLy8gUHJvcCB0eXBlcyBkZWZpbml0aW9uXG50eXBlIENoaXBJbnB1dFByb3BzID0gUHJvcFR5cGVzLkluZmVyUHJvcHM8dHlwZW9mIENoaXBJbnB1dC5wcm9wVHlwZXM+O1xuXG4vLyBMYWJlbCBjb21wb25lbnQgZm9yIHRoZSBDaGlwSW5wdXRcbmNvbnN0IExhYmVsID0gc3R5bGVkLmxhYmVsPHtcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgdG91Y2hlZD86IGJvb2xlYW47XG4gICAgZXJyb3JUZXh0Pzogc3RyaW5nO1xufT5gXG4gICAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgICBmbGV4OiAxO1xuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgICBtYXJnaW46IDEwcHggNXB4O1xuICAgIGNvbG9yOiBpbmhlcml0O1xuICAgIHBhZGRpbmc6IDAgOHB4O1xuICAgIHdpZHRoOiAyNTBweDtcbiAgICBib3JkZXItcmFkaXVzOiAzcHg7XG4gICAgYm9yZGVyOiAxcHggc29saWQgJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQk9SREVSX0NPTE9SKX07XG4gICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuQkFDS0dST1VORCl9O1xuXG4gICAgLyoqIEZvY3VzZWQgKi9cbiAgICAmOmhhcyg6Zm9jdXMpLFxuICAgICY6aGFzKDphY3RpdmUpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5QUklNQVJZX0xJR0hUKX07XG4gICAgfVxuXG4gICAgJjpoYXMoOmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoOmFjdGl2ZSkgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLlBSSU1BUlkpfTtcbiAgICB9XG5cbiAgICAvKiogRGlzYWJsZWQgKi9cbiAgICAmOmhhcyg6ZGlzYWJsZWQpIHtcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5ESVNBQkxFRF9CT1JERVIpfTtcbiAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRElTQUJMRURfQkFDS0dST1VORCl9O1xuICAgIH1cblxuICAgICY6aGFzKDpkaXNhYmxlZCkgPiBzcGFuIHtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkRJU0FCTEVEKX07XG4gICAgfVxuXG4gICAgLyoqIEludmFsaWQgKi9cbiAgICAmOmhhcyg6Zm9jdXM6aW52YWxpZCkge1xuICAgICAgICBib3JkZXItY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkVSUk9SKX07XG4gICAgICAgIGJveC1zaGFkb3c6IDAgMCAwIDRweCAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUl9MSUdIVCl9O1xuICAgIH1cblxuICAgICR7KHByb3BzKSA9PlxuICAgICAgICBwcm9wcy50b3VjaGVkXG4gICAgICAgICAgICA/IGBcbiAgICAgICAgJjpoYXMoOmludmFsaWQpIHtcbiAgICAgICAgICAgIGJvcmRlci1jb2xvcjogJHtnZXRUaGVtZVZhbHVlKFRIRU1FX05BTUUuRVJST1IpfTtcbiAgICAgICAgfVxuICAgIFxuICAgICAgICAmOmhhcyg6aW52YWxpZCkgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5cbiAgICAvKiogRXJyb3IgKi9cbiAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgcHJvcHMuZXJyb3JUZXh0XG4gICAgICAgICAgICA/IGBcbiAgICAgICAgYm9yZGVyLWNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuXG4gICAgICAgICYgPiBzcGFuIHtcbiAgICAgICAgICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgICAgICB9XG4gICAgICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5cbiAgICAvKiogUmVxdWlyZWQgKi9cbiAgICAmOmhhcyg6cmVxdWlyZWQpID4gc3BhbjphZnRlciB7XG4gICAgICAgIGNvbnRlbnQ6ICcqJztcbiAgICAgICAgbWFyZ2luLWxlZnQ6IDJweDtcbiAgICAgICAgY29sb3I6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkVSUk9SKX07XG4gICAgfVxuXG4gICAgJiA+IGlucHV0IHtcbiAgICAgICAgYm9yZGVyOiBub25lO1xuICAgICAgICBvdXRsaW5lOiBub25lO1xuICAgICAgICBsaW5lLWhlaWdodDogMzBweDtcbiAgICAgICAgbWluLWhlaWdodDogMzBweDtcbiAgICAgICAgbWF4LXdpZHRoOiA5NSU7XG4gICAgfVxuXG4gICAgLyoqIExhYmVsIEFuaW1hdGlvbiAqL1xuICAgICYgPiBzcGFuIHtcbiAgICAgICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgICAgICBwYWRkaW5nOiAwIDVweDtcbiAgICAgICAgdG9wOiAwcHg7XG4gICAgICAgIGxlZnQ6IDRweDtcbiAgICAgICAgZm9udC1zaXplOiAxNHB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMzJweDtcbiAgICAgICAgdHJhbnNpdGlvbjogYWxsIDMwMG1zIGVhc2U7XG4gICAgfVxuXG4gICAgJjpoYXMoOmZvY3VzKSA+IHNwYW4sXG4gICAgJjpoYXMoOnBsYWNlaG9sZGVyLXNob3duKSA+IHNwYW4ge1xuICAgICAgICB0b3A6IC04cHg7XG4gICAgICAgIGJhY2tncm91bmQ6ICR7Z2V0VGhlbWVWYWx1ZShUSEVNRV9OQU1FLkJBQ0tHUk9VTkQpfTtcbiAgICAgICAgZm9udC1zaXplOiAxMnB4O1xuICAgICAgICBsaW5lLWhlaWdodDogMTRweDtcbiAgICB9XG5cbiAgICAkeyhwcm9wcykgPT5cbiAgICAgICAgcHJvcHMudGV4dCAhPT0gJydcbiAgICAgICAgICAgID8gYFxuICAgICYgPiBzcGFuIHtcbiAgICAgICAgdG9wOiAtOHB4O1xuICAgICAgICBiYWNrZ3JvdW5kOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5CQUNLR1JPVU5EKX07XG4gICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgbGluZS1oZWlnaHQ6IDE0cHg7XG4gICAgfVxuICAgIGBcbiAgICAgICAgICAgIDogJyd9XG5gO1xuXG4vLyBFcnJvciBtZXNzYWdlIGNvbnRhaW5lclxuY29uc3QgRXJyb3JDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICAgIGNvbG9yOiAke2dldFRoZW1lVmFsdWUoVEhFTUVfTkFNRS5FUlJPUil9O1xuICAgIHBhZGRpbmctdG9wOiAzcHg7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIGxpbmUtaGVpZ2h0OiAxNHB4O1xuICAgIG1hcmdpbi1sZWZ0OiAzcHg7XG5gO1xuXG4vLyBWaXN1YWxseSBoaWRkZW4gYnV0IGFjY2Vzc2libGUgdG8gc2NyZWVuIHJlYWRlcnNcbmNvbnN0IFZpc3VhbGx5SGlkZGVuID0gc3R5bGVkLnVsYFxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB3aWR0aDogMXB4O1xuICAgIGhlaWdodDogMXB4O1xuICAgIHBhZGRpbmc6IDA7XG4gICAgbWFyZ2luOiAtMXB4O1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgY2xpcDogcmVjdCgwLCAwLCAwLCAwKTtcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIGJvcmRlci13aWR0aDogMDtcblxuICAgICYgbGkge1xuICAgICAgICBsaXN0LXN0eWxlOiBub25lO1xuICAgIH1cbmA7XG5cbi8qKlxuICogQSBjaGlwIGlucHV0IGNvbXBvbmVudCB0aGF0IGFsbG93cyB1c2VycyB0byBhZGQgYW5kIHJlbW92ZSBjaGlwcyAodGFncykgYnkgdHlwaW5nIGFuZCBwcmVzc2luZyBFbnRlci5cbiAqIEBjb21wb25lbnRcbiAqIEBleGFtcGxlXG4gKiBgYGB0c3hcbiAqIDxDaGlwSW5wdXRcbiAqICAgdmFsdWU9e1sndGFnMScsICd0YWcyJ119XG4gKiAgIG9uQ2hhbmdlPXsobmV3VGFncykgPT4gY29uc29sZS5sb2cobmV3VGFncyl9XG4gKiAgIGxhYmVsPVwiQWRkIHRhZ3NcIlxuICogICBlcnJvclRleHQ9XCJBdCBsZWFzdCBvbmUgdGFnIGlzIHJlcXVpcmVkXCJcbiAqIC8+XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ2hpcElucHV0KFxuICAgIHByb3BzOiBDaGlwSW5wdXRQcm9wcyAmIFJlYWN0LkFsbEhUTUxBdHRyaWJ1dGVzPEhUTUxJbnB1dEVsZW1lbnQ+LFxuKSB7XG4gICAgY29uc3QgW3RleHQsIHNldFRleHRdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFt0b3VjaGVkLCBzZXRUb3VjaGVkXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlPHN0cmluZ1tdPihwcm9wcy52YWx1ZSB8fCBbXSk7XG4gICAgY29uc3QgSW5wdXRSZWYgPSBSZWFjdC51c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gICAgY29uc3QgW2Fubm91bmNlbWVudCwgc2V0QW5ub3VuY2VtZW50XSA9IHVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBlcnJvcklkID0gdXNlSWQoKTtcblxuICAgIC8qKlxuICAgICAqIFJlcGxhY2UgezpsYWJlbH0gcGxhY2Vob2xkZXIgaW4gdGVtcGxhdGUgc3RyaW5nXG4gICAgICovXG4gICAgY29uc3QgcmVwbGFjZVBsYWNlaG9sZGVyID0gKFxuICAgICAgICB0ZW1wbGF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgICAgICBsYWJlbDogc3RyaW5nLFxuICAgICk6IHN0cmluZyB8IHVuZGVmaW5lZCA9PiB7XG4gICAgICAgIGlmICghdGVtcGxhdGUpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKC9cXHs6bGFiZWxcXH0vZywgbGFiZWwpO1xuICAgIH07XG5cbiAgICAvLyBTeW5jIGludGVybmFsIHZhbHVlIHdpdGggcHJvcHMudmFsdWVcbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShwcm9wcy52YWx1ZSkpIHtcbiAgICAgICAgICAgIHNldFZhbHVlKHByb3BzLnZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0sIFtwcm9wcy52YWx1ZV0pO1xuXG4gICAgLyoqXG4gICAgICogVXBkYXRlIHRoZSBjaGlwIHZhbHVlcyBhbmQgbm90aWZ5IGNoYW5nZXMuXG4gICAgICogQHBhcmFtIG5ld1ZhbHVlIFRoZSBuZXcgYXJyYXkgb2YgY2hpcCB2YWx1ZXNcbiAgICAgKi9cbiAgICBjb25zdCB1cGRhdGVWYWx1ZSA9IChuZXdWYWx1ZTogc3RyaW5nW10pID0+IHtcbiAgICAgICAgY29uc3QgZGVkdXBlZCA9IEFycmF5LmZyb20obmV3IFNldChuZXdWYWx1ZSkpO1xuICAgICAgICBzZXRWYWx1ZShkZWR1cGVkKTtcbiAgICAgICAgcHJvcHMub25DaGFuZ2U/LihkZWR1cGVkKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogTWFya3MgdGhlIGlucHV0IGFzIHRvdWNoZWQgb24gZm9jdXMuXG4gICAgICogQHBhcmFtIGUgUmVhY3QgZm9jdXMgZXZlbnRcbiAgICAgKi9cbiAgICBjb25zdCBoYW5kbGVGb2N1cyA9IChlOiBSZWFjdC5Gb2N1c0V2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+KSA9PiB7XG4gICAgICAgIHNldFRvdWNoZWQodHJ1ZSk7XG4gICAgICAgIGlmIChwcm9wcy5vbkZvY3VzKSB7XG4gICAgICAgICAgICBwcm9wcy5vbkZvY3VzKGUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIENoYW5nZSBoYW5kbGVyIGZvciB0aGUgaW5wdXQgZmllbGQuXG4gICAgICogQHBhcmFtIGUgUmVhY3QgY2hhbmdlIGV2ZW50XG4gICAgICovXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlOiBSZWFjdC5DaGFuZ2VFdmVudEhhbmRsZXI8SFRNTElucHV0RWxlbWVudD4gPSAoZSkgPT4ge1xuICAgICAgICBzZXRUZXh0KGUudGFyZ2V0LnZhbHVlKTtcbiAgICB9O1xuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIG5ldyBjaGlwIG9uIEVudGVyIGtleSBwcmVzcy5cbiAgICAgKiBAcGFyYW0gZSBSZWFjdCBrZXlib2FyZCBldmVudFxuICAgICAqL1xuICAgIGNvbnN0IGhhbmRsZUtleVVwOiBSZWFjdC5LZXlib2FyZEV2ZW50SGFuZGxlcjxIVE1MSW5wdXRFbGVtZW50PiA9IChlKSA9PiB7XG4gICAgICAgIGlmIChlLmtleSA9PT0gJ0VudGVyJyAmJiB0ZXh0LnRyaW0oKSAhPT0gJycgJiYgSW5wdXRSZWYuY3VycmVudC52YWxpZGl0eS52YWxpZCkge1xuICAgICAgICAgICAgY29uc3QgbmV3VmFsdWUgPSBbLi4udmFsdWUsIHRleHQudHJpbSgpXTtcbiAgICAgICAgICAgIHVwZGF0ZVZhbHVlKG5ld1ZhbHVlKTtcbiAgICAgICAgICAgIHNldFRleHQoJycpO1xuICAgICAgICAgICAgc2V0QW5ub3VuY2VtZW50KHJlcGxhY2VQbGFjZWhvbGRlcihwcm9wcy5hZGRlZEFubm91bmNlbWVudFRlbXBsYXRlLCB0ZXh0LnRyaW0oKSkhKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIGEgY2hpcCBmcm9tIHRoZSBsaXN0LlxuICAgICAqIEBwYXJhbSBjaGlwVG9SZW1vdmUgVGhlIGNoaXAgdmFsdWUgdG8gcmVtb3ZlXG4gICAgICovXG4gICAgY29uc3QgcmVtb3ZlQ2hpcCA9IChjaGlwVG9SZW1vdmU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHZhbHVlLmZpbHRlcigoY2hpcCkgPT4gY2hpcCAhPT0gY2hpcFRvUmVtb3ZlKTtcbiAgICAgICAgdXBkYXRlVmFsdWUobmV3VmFsdWUpO1xuICAgICAgICBzZXRBbm5vdW5jZW1lbnQocmVwbGFjZVBsYWNlaG9sZGVyKHByb3BzLnJlbW92ZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZSwgY2hpcFRvUmVtb3ZlKSEpO1xuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiBNb3ZlcyBhIGNoaXAgZnJvbSBvbmUgcG9zaXRpb24gdG8gYW5vdGhlci5cbiAgICAgKiBAcGFyYW0gc3RhcnQgVGhlIHN0YXJ0aW5nIGluZGV4IG9mIHRoZSBpdGVtIHRvIG1vdmVcbiAgICAgKiBAcGFyYW0gZW5kIFRoZSBlbmRpbmcgaW5kZXggd2hlcmUgdGhlIGl0ZW0gc2hvdWxkIGJlIHBsYWNlZFxuICAgICAqL1xuICAgIGNvbnN0IG9uRHJvcCA9IChzdGFydDogbnVtYmVyLCBlbmQ6IG51bWJlcikgPT4ge1xuICAgICAgICAvLyBDbG9uZSBleGlzdGluZyBlbGVtZW50c1xuICAgICAgICBjb25zdCBuZXdJdGVtcyA9IFsuLi52YWx1ZV07XG4gICAgICAgIC8vIFJlbW92ZSB0aGUgZWxlbWVudCB0byBiZSBtb3ZlZFxuICAgICAgICBjb25zdCBpdGVtID0gbmV3SXRlbXMuc3BsaWNlKHN0YXJ0LCAxKTtcbiAgICAgICAgLy8gQWRkIGl0IGJhY2sgYXQgdGhlIHJlcXVpcmVkIHBvc2l0aW9uXG4gICAgICAgIG5ld0l0ZW1zLnNwbGljZShlbmQsIDAsIGl0ZW1bMF0pO1xuICAgICAgICAvLyBVcGRhdGVcbiAgICAgICAgdXBkYXRlVmFsdWUobmV3SXRlbXMpO1xuICAgIH07XG5cbiAgICAvLyBSZW5kZXIgdGhlIGNvbXBvbmVudFxuICAgIHJldHVybiAoXG4gICAgICAgIDw+XG4gICAgICAgICAgICA8TGFiZWwgdGV4dD17dGV4dH0gdG91Y2hlZD17dG91Y2hlZH0gZXJyb3JUZXh0PXtwcm9wcy5lcnJvclRleHR9PlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIHJlZj17SW5wdXRSZWZ9XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt0ZXh0fVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVGb2N1c31cbiAgICAgICAgICAgICAgICAgICAgb25LZXlVcD17aGFuZGxlS2V5VXB9XG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtwcm9wcy5yZXF1aXJlZCAmJiB2YWx1ZS5sZW5ndGggPT09IDB9XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtcmVxdWlyZWQ9e3Byb3BzLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWludmFsaWQ9eyEhcHJvcHMuZXJyb3JUZXh0fVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PXtwcm9wcy5lcnJvclRleHQgPyBlcnJvcklkIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAge3ZhbHVlPy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxEcmFnQW5kRHJvcCBvcmllbnRhdGlvbj17T1JJRU5UQVRJT04uSE9SSVpPTlRBTH0gb25Ecm9wPXtvbkRyb3B9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZS5tYXAoKGNoaXApID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPENoaXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y2hpcH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtjaGlwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZUNsaWNrPXsoKSA9PiByZW1vdmVDaGlwKGNoaXApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VCdXR0b25BcmlhTGFiZWw9e3JlcGxhY2VQbGFjZWhvbGRlcihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jbG9zZUJ1dHRvbkFyaWFMYWJlbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvRHJhZ0FuZERyb3A+XG4gICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3Byb3BzLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICB7cHJvcHMuZXJyb3JUZXh0ICYmIDxFcnJvckNvbnRhaW5lciBpZD17ZXJyb3JJZH0+e3Byb3BzLmVycm9yVGV4dH08L0Vycm9yQ29udGFpbmVyPn1cbiAgICAgICAgICAgIDwvTGFiZWw+XG4gICAgICAgICAgICA8VmlzdWFsbHlIaWRkZW4gYXJpYS1saXZlPVwicG9saXRlXCIgYXJpYS1hdG9taWM9XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAge2Fubm91bmNlbWVudH1cbiAgICAgICAgICAgIDwvVmlzdWFsbHlIaWRkZW4+XG4gICAgICAgIDwvPlxuICAgICk7XG59XG5cbkNoaXBJbnB1dC5wcm9wVHlwZXMgPSB7XG4gICAgLyoqIExhYmVsIGZvciB0aGUgZmllbGQgKi9cbiAgICBsYWJlbDogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICAgIC8qKiBFcnJvciBtZXNzYWdlIGZvciB0aGUgZmllbGQgKi9cbiAgICBlcnJvclRleHQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIFZhbHVlcyB0byBkaXNwbGF5IGFzIGNoaXBzICovXG4gICAgdmFsdWU6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5zdHJpbmcpLFxuICAgIC8qKiBDYWxsYmFjayB3aGVuIGNoaXBzIGNoYW5nZSAqL1xuICAgIG9uQ2hhbmdlOiBQcm9wVHlwZXMuZnVuYyxcbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlIGNsb3NlIGJ1dHRvbiBvbiBjaGlwLiBEZWZhdWx0cyB0byBcIlJlbW92ZSB7bGFiZWx9XCIgKi9cbiAgICBjbG9zZUJ1dHRvbkFyaWFMYWJlbDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICAvKiogQW5ub3VuY2VtZW50IHRleHQgd2hlbiBhIGNoaXAgaXMgYWRkZWQuIERlZmF1bHRzIHRvIFwie2xhYmVsfSB3YXMgYWRkZWRcIiAqL1xuICAgIGFkZGVkQW5ub3VuY2VtZW50VGVtcGxhdGU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgLyoqIEFubm91bmNlbWVudCB0ZXh0IHdoZW4gYSBjaGlwIGlzIHJlbW92ZWQuIERlZmF1bHRzIHRvIFwie2xhYmVsfSB3YXMgcmVtb3ZlZFwiICovXG4gICAgcmVtb3ZlZEFubm91bmNlbWVudFRlbXBsYXRlOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuQ2hpcElucHV0LmRlZmF1bHRQcm9wcyA9IHtcbiAgICB2YWx1ZTogW10sXG4gICAgY2xvc2VCdXR0b25BcmlhTGFiZWw6ICdSZW1vdmUgezpsYWJlbH0nLFxuICAgIGFkZGVkQW5ub3VuY2VtZW50VGVtcGxhdGU6ICd7OmxhYmVsfSB3YXMgYWRkZWQnLFxuICAgIHJlbW92ZWRBbm5vdW5jZW1lbnRUZW1wbGF0ZTogJ3s6bGFiZWx9IHdhcyByZW1vdmVkJyxcbn07XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBMEl1QiJ9 */");
|
|
48
|
+
})("position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0;& li{list-style:none;}");
|
|
46
49
|
/**
|
|
47
50
|
* A chip input component that allows users to add and remove chips (tags) by typing and pressing Enter.
|
|
48
51
|
* @component
|
|
@@ -55,26 +58,35 @@ const VisuallyHidden = /*#__PURE__*/ styled("ul", {
|
|
|
55
58
|
* errorText="At least one tag is required"
|
|
56
59
|
* />
|
|
57
60
|
* ```
|
|
58
|
-
*/ function
|
|
61
|
+
*/ function ChipInputComponent(props, ref) {
|
|
62
|
+
const { value: propValue = [], closeButtonAriaLabel = `Remove {:label}`, addedAnnouncementTemplate = '{:label} was added', removedAnnouncementTemplate = '{:label} was removed' } = props;
|
|
59
63
|
const [text, setText] = useState('');
|
|
60
64
|
const [touched, setTouched] = useState(false);
|
|
61
|
-
const [value, setValue] = useState(
|
|
65
|
+
const [value, setValue] = useState(propValue || []);
|
|
62
66
|
const InputRef = React.useRef(null);
|
|
63
67
|
const [announcement, setAnnouncement] = useState('');
|
|
64
68
|
const errorId = useId();
|
|
69
|
+
// Forward the underlying input element.
|
|
70
|
+
useImperativeHandle(ref, ()=>InputRef.current);
|
|
65
71
|
/**
|
|
66
72
|
* Replace {:label} placeholder in template string
|
|
67
73
|
*/ const replacePlaceholder = (template, label)=>{
|
|
68
74
|
if (!template) return undefined;
|
|
69
75
|
return template.replace(/\{:label\}/g, label);
|
|
70
76
|
};
|
|
77
|
+
const prevPropValueRef = React.useRef(undefined);
|
|
71
78
|
// Sync internal value with props.value
|
|
72
79
|
useEffect(()=>{
|
|
73
|
-
if (Array.isArray(
|
|
74
|
-
|
|
80
|
+
if (Array.isArray(propValue)) {
|
|
81
|
+
const prevValue = prevPropValueRef.current;
|
|
82
|
+
const isEqual = prevValue && propValue.length === prevValue.length && propValue.every((val, index)=>val === prevValue[index]);
|
|
83
|
+
if (!isEqual) {
|
|
84
|
+
setValue(propValue);
|
|
85
|
+
prevPropValueRef.current = propValue;
|
|
86
|
+
}
|
|
75
87
|
}
|
|
76
88
|
}, [
|
|
77
|
-
|
|
89
|
+
propValue
|
|
78
90
|
]);
|
|
79
91
|
/**
|
|
80
92
|
* Update the chip values and notify changes.
|
|
@@ -103,14 +115,14 @@ const VisuallyHidden = /*#__PURE__*/ styled("ul", {
|
|
|
103
115
|
* Adds a new chip on Enter key press.
|
|
104
116
|
* @param e React keyboard event
|
|
105
117
|
*/ const handleKeyUp = (e)=>{
|
|
106
|
-
if (e.key === 'Enter' && text.trim() !== '' && InputRef.current
|
|
118
|
+
if (e.key === 'Enter' && text.trim() !== '' && InputRef.current?.validity.valid) {
|
|
107
119
|
const newValue = [
|
|
108
120
|
...value,
|
|
109
121
|
text.trim()
|
|
110
122
|
];
|
|
111
123
|
updateValue(newValue);
|
|
112
124
|
setText('');
|
|
113
|
-
setAnnouncement(replacePlaceholder(
|
|
125
|
+
setAnnouncement(replacePlaceholder(addedAnnouncementTemplate, text.trim()));
|
|
114
126
|
}
|
|
115
127
|
};
|
|
116
128
|
/**
|
|
@@ -119,7 +131,7 @@ const VisuallyHidden = /*#__PURE__*/ styled("ul", {
|
|
|
119
131
|
*/ const removeChip = (chipToRemove)=>{
|
|
120
132
|
const newValue = value.filter((chip)=>chip !== chipToRemove);
|
|
121
133
|
updateValue(newValue);
|
|
122
|
-
setAnnouncement(replacePlaceholder(
|
|
134
|
+
setAnnouncement(replacePlaceholder(removedAnnouncementTemplate, chipToRemove));
|
|
123
135
|
};
|
|
124
136
|
/**
|
|
125
137
|
* Moves a chip from one position to another.
|
|
@@ -140,10 +152,11 @@ const VisuallyHidden = /*#__PURE__*/ styled("ul", {
|
|
|
140
152
|
// Render the component
|
|
141
153
|
return /*#__PURE__*/ jsxs(Fragment, {
|
|
142
154
|
children: [
|
|
143
|
-
/*#__PURE__*/ jsxs(Label, {
|
|
155
|
+
/*#__PURE__*/ jsxs(Label$6, {
|
|
144
156
|
text: text,
|
|
145
157
|
touched: touched,
|
|
146
158
|
errorText: props.errorText,
|
|
159
|
+
required: props.required,
|
|
147
160
|
children: [
|
|
148
161
|
/*#__PURE__*/ jsx("input", {
|
|
149
162
|
...props,
|
|
@@ -164,20 +177,20 @@ const VisuallyHidden = /*#__PURE__*/ styled("ul", {
|
|
|
164
177
|
children: value.map((chip)=>/*#__PURE__*/ jsx(Chip, {
|
|
165
178
|
label: chip,
|
|
166
179
|
onCloseClick: ()=>removeChip(chip),
|
|
167
|
-
closeButtonAriaLabel: replacePlaceholder(
|
|
180
|
+
closeButtonAriaLabel: replacePlaceholder(closeButtonAriaLabel, chip)
|
|
168
181
|
}, chip))
|
|
169
182
|
})
|
|
170
183
|
}),
|
|
171
184
|
/*#__PURE__*/ jsx("span", {
|
|
172
185
|
children: props.label
|
|
173
186
|
}),
|
|
174
|
-
props.errorText && /*#__PURE__*/ jsx(ErrorContainer, {
|
|
187
|
+
props.errorText && /*#__PURE__*/ jsx(ErrorContainer$4, {
|
|
175
188
|
id: errorId,
|
|
176
189
|
children: props.errorText
|
|
177
190
|
})
|
|
178
191
|
]
|
|
179
192
|
}),
|
|
180
|
-
/*#__PURE__*/ jsx(VisuallyHidden, {
|
|
193
|
+
/*#__PURE__*/ jsx(VisuallyHidden$1, {
|
|
181
194
|
"aria-live": "polite",
|
|
182
195
|
"aria-atomic": "true",
|
|
183
196
|
children: announcement
|
|
@@ -185,20 +198,7 @@ const VisuallyHidden = /*#__PURE__*/ styled("ul", {
|
|
|
185
198
|
]
|
|
186
199
|
});
|
|
187
200
|
}
|
|
188
|
-
ChipInput
|
|
189
|
-
/** Label for the field */ label: PropTypes.string.isRequired,
|
|
190
|
-
/** Error message for the field */ errorText: PropTypes.string,
|
|
191
|
-
/** Values to display as chips */ value: PropTypes.arrayOf(PropTypes.string),
|
|
192
|
-
/** Callback when chips change */ onChange: PropTypes.func,
|
|
193
|
-
/** Aria label for the close button on chip. Defaults to "Remove {label}" */ closeButtonAriaLabel: PropTypes.string,
|
|
194
|
-
/** Announcement text when a chip is added. Defaults to "{label} was added" */ addedAnnouncementTemplate: PropTypes.string,
|
|
195
|
-
/** Announcement text when a chip is removed. Defaults to "{label} was removed" */ removedAnnouncementTemplate: PropTypes.string
|
|
196
|
-
};
|
|
197
|
-
ChipInput.defaultProps = {
|
|
198
|
-
value: [],
|
|
199
|
-
closeButtonAriaLabel: 'Remove {:label}',
|
|
200
|
-
addedAnnouncementTemplate: '{:label} was added',
|
|
201
|
-
removedAnnouncementTemplate: '{:label} was removed'
|
|
202
|
-
};
|
|
201
|
+
const ChipInput = /*#__PURE__*/ React.forwardRef(ChipInputComponent);
|
|
203
202
|
|
|
204
203
|
export { ChipInput as default };
|
|
204
|
+
//# sourceMappingURL=ChipInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ChipInput.js","sources":["../../../src/components/ChipInput/ChipInput.tsx"],"sourcesContent":["import React, { useImperativeHandle, useEffect, useId, useState } from 'react';\nimport styled from '@emotion/styled';\nimport { getThemeValue, THEME_NAME } from '../../shared/constants';\nimport Chip from '../Chip/Chip';\nimport { DragAndDrop, ORIENTATION } from '../DragAndDrop';\n\n// Prop types definition\ninterface ChipInputProps {\n /** Label for the field */\n label: string;\n /** Error message for the field */\n errorText?: string;\n /**\n * Values to display as chips\n * @default []\n */\n value?: string[];\n /** Callback when chips change */\n onChange?: (newValue: string[]) => void;\n /**\n * Aria label for the close button on chip. Defaults to \"Remove {:label}\"\n * @default \"Remove {:label}\"\n */\n closeButtonAriaLabel?: string;\n /**\n * Announcement text when a chip is added. Defaults to \"{:label} was added\"\n * @default \"{:label} was added\"\n */\n addedAnnouncementTemplate?: string;\n /**\n * Announcement text when a chip is removed. Defaults to \"{:label} was removed\"\n * @default \"{:label} was removed\"\n */\n removedAnnouncementTemplate?: string;\n}\n\n// Label component for the ChipInput\nconst Label = styled.label<{\n text: string;\n touched?: boolean;\n errorText?: string;\n required?: boolean;\n}>`\n display: inline-flex;\n flex-direction: column;\n flex: 1;\n position: relative;\n margin: 10px 5px;\n color: inherit;\n padding: 0 8px;\n width: 250px;\n border-radius: 3px;\n border: 1px solid ${getThemeValue(THEME_NAME.BORDER_COLOR)};\n background-color: ${getThemeValue(THEME_NAME.BACKGROUND)};\n\n /** Focused */\n &:has(:focus),\n &:has(:active) {\n border-color: ${getThemeValue(THEME_NAME.PRIMARY)};\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.PRIMARY_LIGHT)};\n }\n\n &:has(:focus) > span,\n &:has(:active) > span {\n color: ${getThemeValue(THEME_NAME.PRIMARY)};\n }\n\n /** Disabled */\n &:has(:disabled) {\n border-color: ${getThemeValue(THEME_NAME.DISABLED_BORDER)};\n background-color: ${getThemeValue(THEME_NAME.DISABLED_BACKGROUND)};\n }\n\n &:has(:disabled) > span {\n color: ${getThemeValue(THEME_NAME.DISABLED)};\n }\n\n /** Invalid */\n &:has(:focus:invalid) {\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n box-shadow: 0 0 0 4px ${getThemeValue(THEME_NAME.ERROR_LIGHT)};\n }\n\n ${(props) =>\n props.touched\n ? `\n &:has(:invalid) {\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n \n &:has(:invalid) > span {\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n `\n : ''}\n\n /** Error */\n ${(props) =>\n props.errorText\n ? `\n border-color: ${getThemeValue(THEME_NAME.ERROR)};\n\n & > span {\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }\n `\n : ''}\n\n /** Required */\n ${(props) =>\n props.required\n ? `& > span:after {\n content: '*';\n margin-left: 2px;\n color: ${getThemeValue(THEME_NAME.ERROR)};\n }`\n : ''}\n \n\n & > input {\n border: none;\n outline: none;\n line-height: 30px;\n min-height: 30px;\n max-width: 95%;\n }\n\n /** Label Animation */\n & > span {\n position: absolute;\n padding: 0 5px;\n top: 0px;\n left: 4px;\n font-size: 14px;\n line-height: 32px;\n transition: all 300ms ease;\n }\n\n &:has(:focus) > span,\n &:has(:placeholder-shown) > span {\n top: -8px;\n background: ${getThemeValue(THEME_NAME.BACKGROUND)};\n font-size: 12px;\n line-height: 14px;\n }\n\n ${(props) =>\n props.text !== ''\n ? `\n & > span {\n top: -8px;\n background: ${getThemeValue(THEME_NAME.BACKGROUND)};\n font-size: 12px;\n line-height: 14px;\n }\n `\n : ''}\n`;\n\n// Error message container\nconst ErrorContainer = styled.div`\n color: ${getThemeValue(THEME_NAME.ERROR)};\n padding-top: 3px;\n font-size: 12px;\n line-height: 14px;\n margin-left: 3px;\n`;\n\n// Visually hidden but accessible to screen readers\nconst VisuallyHidden = styled.ul`\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border-width: 0;\n\n & li {\n list-style: none;\n }\n`;\n\n/**\n * A chip input component that allows users to add and remove chips (tags) by typing and pressing Enter.\n * @component\n * @example\n * ```tsx\n * <ChipInput\n * value={['tag1', 'tag2']}\n * onChange={(newTags) => console.log(newTags)}\n * label=\"Add tags\"\n * errorText=\"At least one tag is required\"\n * />\n * ```\n */\nfunction ChipInputComponent(\n props: ChipInputProps & React.AllHTMLAttributes<HTMLInputElement>,\n ref: React.Ref<HTMLInputElement | null>,\n) {\n const {\n value: propValue = [],\n closeButtonAriaLabel = `Remove {:label}`,\n addedAnnouncementTemplate = '{:label} was added',\n removedAnnouncementTemplate = '{:label} was removed',\n } = props;\n\n const [text, setText] = useState('');\n const [touched, setTouched] = useState(false);\n const [value, setValue] = useState<string[]>(propValue || []);\n const InputRef = React.useRef<HTMLInputElement>(null);\n const [announcement, setAnnouncement] = useState('');\n const errorId = useId();\n\n // Forward the underlying input element.\n useImperativeHandle(ref, () => InputRef.current as HTMLInputElement);\n\n /**\n * Replace {:label} placeholder in template string\n */\n const replacePlaceholder = (\n template: string | undefined,\n label: string,\n ): string | undefined => {\n if (!template) return undefined;\n return template.replace(/\\{:label\\}/g, label);\n };\n\n const prevPropValueRef = React.useRef<string[]>(undefined);\n\n // Sync internal value with props.value\n useEffect(() => {\n if (Array.isArray(propValue)) {\n const prevValue = prevPropValueRef.current;\n const isEqual =\n prevValue &&\n propValue.length === prevValue.length &&\n propValue.every((val, index) => val === prevValue[index]);\n if (!isEqual) {\n setValue(propValue);\n prevPropValueRef.current = propValue;\n }\n }\n }, [propValue]);\n\n /**\n * Update the chip values and notify changes.\n * @param newValue The new array of chip values\n */\n const updateValue = (newValue: string[]) => {\n const deduped = Array.from(new Set(newValue));\n setValue(deduped);\n props.onChange?.(deduped);\n };\n\n /**\n * Marks the input as touched on focus.\n * @param e React focus event\n */\n const handleFocus = (e: React.FocusEvent<HTMLInputElement>) => {\n setTouched(true);\n if (props.onFocus) {\n props.onFocus(e);\n }\n };\n\n /**\n * Change handler for the input field.\n * @param e React change event\n */\n const handleChange: React.ChangeEventHandler<HTMLInputElement> = (e) => {\n setText(e.target.value);\n };\n\n /**\n * Adds a new chip on Enter key press.\n * @param e React keyboard event\n */\n const handleKeyUp: React.KeyboardEventHandler<HTMLInputElement> = (e) => {\n if (e.key === 'Enter' && text.trim() !== '' && InputRef.current?.validity.valid) {\n const newValue = [...value, text.trim()];\n updateValue(newValue);\n setText('');\n setAnnouncement(replacePlaceholder(addedAnnouncementTemplate, text.trim())!);\n }\n };\n\n /**\n * Removes a chip from the list.\n * @param chipToRemove The chip value to remove\n */\n const removeChip = (chipToRemove: string) => {\n const newValue = value.filter((chip) => chip !== chipToRemove);\n updateValue(newValue);\n setAnnouncement(replacePlaceholder(removedAnnouncementTemplate, chipToRemove)!);\n };\n\n /**\n * Moves a chip from one position to another.\n * @param start The starting index of the item to move\n * @param end The ending index where the item should be placed\n */\n const onDrop = (start: number, end: number) => {\n // Clone existing elements\n const newItems = [...value];\n // Remove the element to be moved\n const item = newItems.splice(start, 1);\n // Add it back at the required position\n newItems.splice(end, 0, item[0]);\n // Update\n updateValue(newItems);\n };\n\n // Render the component\n return (\n <>\n <Label\n text={text}\n touched={touched}\n errorText={props.errorText}\n required={props.required}\n >\n <input\n {...props}\n ref={InputRef}\n value={text}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyUp={handleKeyUp}\n required={props.required && value.length === 0}\n aria-required={props.required}\n aria-invalid={!!props.errorText}\n aria-describedby={props.errorText ? errorId : undefined}\n />\n <div>\n {value?.length > 0 && (\n <DragAndDrop orientation={ORIENTATION.HORIZONTAL} onDrop={onDrop}>\n {value.map((chip) => (\n <Chip\n key={chip}\n label={chip}\n onCloseClick={() => removeChip(chip)}\n closeButtonAriaLabel={replacePlaceholder(\n closeButtonAriaLabel,\n chip,\n )}\n />\n ))}\n </DragAndDrop>\n )}\n </div>\n <span>{props.label}</span>\n {props.errorText && <ErrorContainer id={errorId}>{props.errorText}</ErrorContainer>}\n </Label>\n <VisuallyHidden aria-live=\"polite\" aria-atomic=\"true\">\n {announcement}\n </VisuallyHidden>\n </>\n );\n}\n\nconst ChipInput = React.forwardRef<\n HTMLInputElement,\n ChipInputProps & React.AllHTMLAttributes<HTMLInputElement>\n>(ChipInputComponent);\n\nexport default ChipInput;\n"],"names":["Label","styled","getThemeValue","THEME_NAME","BORDER_COLOR","BACKGROUND","PRIMARY","PRIMARY_LIGHT","DISABLED_BORDER","DISABLED_BACKGROUND","DISABLED","ERROR","ERROR_LIGHT","props","touched","errorText","required","text","ErrorContainer","VisuallyHidden","ChipInputComponent","ref","value","propValue","closeButtonAriaLabel","addedAnnouncementTemplate","removedAnnouncementTemplate","setText","useState","setTouched","setValue","InputRef","React","useRef","announcement","setAnnouncement","errorId","useId","useImperativeHandle","current","replacePlaceholder","template","label","undefined","replace","prevPropValueRef","useEffect","Array","isArray","prevValue","isEqual","length","every","val","index","updateValue","newValue","deduped","from","Set","onChange","handleFocus","e","onFocus","handleChange","target","handleKeyUp","key","trim","validity","valid","removeChip","chipToRemove","filter","chip","onDrop","start","end","newItems","item","splice","_jsxs","_Fragment","_jsx","input","onKeyUp","aria-required","aria-invalid","aria-describedby","div","DragAndDrop","orientation","ORIENTATION","HORIZONTAL","map","Chip","onCloseClick","span","id","aria-live","aria-atomic","ChipInput","forwardRef"],"mappings":"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"}
|
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
3
|
-
type AlertOption =
|
|
2
|
+
import Dialog from './Dialog';
|
|
3
|
+
type AlertOption = {
|
|
4
|
+
/** Shown as header of the dialog */
|
|
5
|
+
header: string;
|
|
6
|
+
/** Rendered in the body. */
|
|
7
|
+
body: React.ReactNode;
|
|
8
|
+
/** Accept button text */
|
|
9
|
+
buttonText?: string;
|
|
10
|
+
/** props for the dialog */
|
|
11
|
+
dialogProps?: React.ComponentProps<typeof Dialog>;
|
|
12
|
+
};
|
|
4
13
|
export default class AlertDialog extends React.Component<AlertOption> {
|
|
5
14
|
private dialog;
|
|
6
|
-
static propTypes: {
|
|
7
|
-
/** Shown as header of the dialog */
|
|
8
|
-
header: PropTypes.Requireable<string>;
|
|
9
|
-
/** Rendered in the body. */
|
|
10
|
-
body: PropTypes.Validator<any>;
|
|
11
|
-
/** Accept button text, default value is `OK` */
|
|
12
|
-
buttonText: PropTypes.Requireable<string>;
|
|
13
|
-
/** props for the dialog */
|
|
14
|
-
dialogProps: PropTypes.Requireable<object>;
|
|
15
|
-
};
|
|
16
15
|
static defaultProps: {
|
|
17
16
|
buttonText: string;
|
|
18
17
|
};
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { jsxs, jsx } from '@emotion/react/jsx-runtime';
|
|
2
2
|
import React, { createRef } from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
3
|
import Dialog from './Dialog.js';
|
|
5
4
|
import { Header, Body, Footer } from '../../shared/styles.js';
|
|
6
|
-
import
|
|
5
|
+
import Button from '../Button/Button.js';
|
|
7
6
|
|
|
8
7
|
let dialogCounter = 0;
|
|
9
8
|
class AlertDialog extends React.Component {
|
|
@@ -28,7 +27,7 @@ class AlertDialog extends React.Component {
|
|
|
28
27
|
children: this.props.body
|
|
29
28
|
}),
|
|
30
29
|
/*#__PURE__*/ jsx(Footer, {
|
|
31
|
-
children: /*#__PURE__*/ jsx(
|
|
30
|
+
children: /*#__PURE__*/ jsx(Button, {
|
|
32
31
|
onClick: this.close,
|
|
33
32
|
children: this.props.buttonText
|
|
34
33
|
})
|
|
@@ -40,19 +39,14 @@ class AlertDialog extends React.Component {
|
|
|
40
39
|
super(...args), this.dialog = /*#__PURE__*/ createRef(), this.show = ()=>{
|
|
41
40
|
return new Promise((resolve)=>{
|
|
42
41
|
const onClose = ()=>resolve(null);
|
|
43
|
-
this.dialog.current
|
|
42
|
+
this.dialog.current?.open(onClose);
|
|
44
43
|
});
|
|
45
|
-
}, this.close = ()=>this.dialog.current
|
|
44
|
+
}, this.close = ()=>this.dialog.current?.close();
|
|
46
45
|
}
|
|
47
46
|
}
|
|
48
|
-
AlertDialog.propTypes = {
|
|
49
|
-
/** Shown as header of the dialog */ header: PropTypes.string,
|
|
50
|
-
/** Rendered in the body. */ body: PropTypes.any.isRequired,
|
|
51
|
-
/** Accept button text, default value is `OK` */ buttonText: PropTypes.string,
|
|
52
|
-
/** props for the dialog */ dialogProps: PropTypes.object
|
|
53
|
-
};
|
|
54
47
|
AlertDialog.defaultProps = {
|
|
55
48
|
buttonText: 'OK'
|
|
56
49
|
};
|
|
57
50
|
|
|
58
51
|
export { AlertDialog as default };
|
|
52
|
+
//# sourceMappingURL=AlertDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlertDialog.js","sources":["../../../src/components/Dialog/AlertDialog.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { Button } from '../Button';\nimport Dialog, { DialogBody, DialogFooter, DialogHeader } from './Dialog';\n\ntype AlertOption = {\n /** Shown as header of the dialog */\n header: string;\n /** Rendered in the body. */\n body: React.ReactNode;\n /** Accept button text */\n buttonText?: string;\n /** props for the dialog */\n dialogProps?: React.ComponentProps<typeof Dialog>;\n};\n\nlet dialogCounter = 0;\n\nexport default class AlertDialog extends React.Component<AlertOption> {\n private dialog = createRef<Dialog>();\n\n static defaultProps = {\n buttonText: 'OK',\n };\n\n public show = () => {\n return new Promise((resolve) => {\n const onClose = () => resolve(null);\n this.dialog.current?.open(onClose);\n });\n };\n\n private close = () => this.dialog.current?.close();\n\n render() {\n const titleId = `nfui-alert-dialog-${dialogCounter++}-title`;\n const descriptionId = `nfui-alert-dialog-${dialogCounter++}-description`;\n\n return (\n <Dialog\n {...this.props.dialogProps}\n role=\"alertdialog\"\n aria-labelledby={titleId}\n aria-describedby={descriptionId}\n ref={this.dialog}\n closeOnEsc={false}\n closeOnOverlayClick={false}\n >\n {this.props.header && <DialogHeader id={titleId}>{this.props.header}</DialogHeader>}\n <DialogBody id={descriptionId}>{this.props.body}</DialogBody>\n <DialogFooter>\n <Button onClick={this.close}>{this.props.buttonText}</Button>\n </DialogFooter>\n </Dialog>\n );\n }\n}\n"],"names":["dialogCounter","AlertDialog","React","Component","render","titleId","descriptionId","_jsxs","Dialog","props","dialogProps","role","aria-labelledby","aria-describedby","ref","dialog","closeOnEsc","closeOnOverlayClick","header","_jsx","DialogHeader","id","DialogBody","body","DialogFooter","Button","onClick","close","buttonText","createRef","show","Promise","resolve","onClose","current","open","defaultProps"],"mappings":";;;;;;AAeA,IAAIA,aAAAA,GAAgB,CAAA;AAEL,MAAMC,WAAAA,SAAoBC,MAAMC,SAAS,CAAA;IAgBpDC,MAAAA,GAAS;AACL,QAAA,MAAMC,UAAU,CAAC,kBAAkB,EAAEL,aAAAA,EAAAA,CAAgB,MAAM,CAAC;AAC5D,QAAA,MAAMM,gBAAgB,CAAC,kBAAkB,EAAEN,aAAAA,EAAAA,CAAgB,YAAY,CAAC;AAExE,QAAA,qBACIO,IAAA,CAACC,MAAAA,EAAAA;AACI,YAAA,GAAG,IAAI,CAACC,KAAK,CAACC,WAAW;YAC1BC,IAAAA,EAAK,aAAA;YACLC,iBAAAA,EAAiBP,OAAAA;YACjBQ,kBAAAA,EAAkBP,aAAAA;YAClBQ,GAAAA,EAAK,IAAI,CAACC,MAAM;YAChBC,UAAAA,EAAY,KAAA;YACZC,mBAAAA,EAAqB,KAAA;;AAEpB,gBAAA,IAAI,CAACR,KAAK,CAACS,MAAM,kBAAIC,GAAA,CAACC,MAAAA,EAAAA;oBAAaC,EAAAA,EAAIhB,OAAAA;8BAAU,IAAI,CAACI,KAAK,CAACS;;8BAC7DC,GAAA,CAACG,IAAAA,EAAAA;oBAAWD,EAAAA,EAAIf,aAAAA;8BAAgB,IAAI,CAACG,KAAK,CAACc;;8BAC3CJ,GAAA,CAACK,MAAAA,EAAAA;AACG,oBAAA,QAAA,gBAAAL,GAAA,CAACM,MAAAA,EAAAA;wBAAOC,OAAAA,EAAS,IAAI,CAACC,KAAK;kCAAG,IAAI,CAAClB,KAAK,CAACmB;;;;;AAIzD,IAAA;;QArCW,KAAA,CAAA,GAAA,IAAA,CAAA,EAAA,IAAA,CACHb,MAAAA,iBAASc,kBAMVC,IAAAA,GAAO,IAAA;YACV,OAAO,IAAIC,QAAQ,CAACC,OAAAA,GAAAA;gBAChB,MAAMC,OAAAA,GAAU,IAAMD,OAAAA,CAAQ,IAAA,CAAA;AAC9B,gBAAA,IAAI,CAACjB,MAAM,CAACmB,OAAO,EAAEC,IAAAA,CAAKF,OAAAA,CAAAA;AAC9B,YAAA,CAAA,CAAA;AACJ,QAAA,CAAA,EAAA,IAAA,CAEQN,QAAQ,IAAM,IAAI,CAACZ,MAAM,CAACmB,OAAO,EAAEP,KAAAA,EAAAA;;AAwB/C;AAtCqB1B,WAAAA,CAGVmC,YAAAA,GAAe;IAClBR,UAAAA,EAAY;AAChB,CAAA;;;;"}
|
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import
|
|
3
|
-
type ConfirmOption =
|
|
2
|
+
import Dialog from './Dialog';
|
|
3
|
+
type ConfirmOption = {
|
|
4
|
+
/** Shown as header of the dialog */
|
|
5
|
+
header: string;
|
|
6
|
+
/** Rendered as body of the dialog */
|
|
7
|
+
body: string;
|
|
8
|
+
/** Accept button text */
|
|
9
|
+
yesText?: string;
|
|
10
|
+
/** Reject button text */
|
|
11
|
+
noText?: string;
|
|
12
|
+
/** Props for the dialog */
|
|
13
|
+
dialogProps?: React.ComponentProps<typeof Dialog>;
|
|
14
|
+
};
|
|
4
15
|
export default class ConfirmDialog extends React.Component<ConfirmOption> {
|
|
5
16
|
private dialog;
|
|
6
|
-
static propTypes: {
|
|
7
|
-
/** Shown as header of the dialog */
|
|
8
|
-
header: PropTypes.Requireable<string>;
|
|
9
|
-
/** Rendered as body of the dialog */
|
|
10
|
-
body: PropTypes.Validator<string>;
|
|
11
|
-
/** Accept button text */
|
|
12
|
-
yesText: PropTypes.Requireable<string>;
|
|
13
|
-
/** Reject button text */
|
|
14
|
-
noText: PropTypes.Requireable<string>;
|
|
15
|
-
/** Props for the dialog */
|
|
16
|
-
dialogProps: PropTypes.Requireable<object>;
|
|
17
|
-
};
|
|
18
17
|
static defaultProps: {
|
|
19
18
|
yesText: string;
|
|
20
19
|
noText: string;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { jsxs, jsx } from '@emotion/react/jsx-runtime';
|
|
2
2
|
import React, { createRef } from 'react';
|
|
3
|
-
import PropTypes from 'prop-types';
|
|
4
3
|
import Dialog from './Dialog.js';
|
|
5
4
|
import { Header, Body, Footer } from '../../shared/styles.js';
|
|
6
|
-
import
|
|
5
|
+
import Button from '../Button/Button.js';
|
|
7
6
|
import ActionButton from '../Button/ActionButton.js';
|
|
8
7
|
|
|
9
8
|
class ConfirmDialog extends React.Component {
|
|
@@ -23,7 +22,7 @@ class ConfirmDialog extends React.Component {
|
|
|
23
22
|
}),
|
|
24
23
|
/*#__PURE__*/ jsxs(Footer, {
|
|
25
24
|
children: [
|
|
26
|
-
/*#__PURE__*/ jsx(
|
|
25
|
+
/*#__PURE__*/ jsx(Button, {
|
|
27
26
|
onClick: this.cancel,
|
|
28
27
|
children: noText
|
|
29
28
|
}),
|
|
@@ -46,21 +45,15 @@ class ConfirmDialog extends React.Component {
|
|
|
46
45
|
reject();
|
|
47
46
|
}
|
|
48
47
|
};
|
|
49
|
-
this.dialog.current
|
|
48
|
+
this.dialog.current?.open(onClose);
|
|
50
49
|
});
|
|
51
|
-
}, this.cancel = ()=>this.dialog.current
|
|
50
|
+
}, this.cancel = ()=>this.dialog.current?.close(false), this.confirm = ()=>this.dialog.current?.close(true);
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
|
-
ConfirmDialog.propTypes = {
|
|
55
|
-
/** Shown as header of the dialog */ header: PropTypes.string,
|
|
56
|
-
/** Rendered as body of the dialog */ body: PropTypes.string.isRequired,
|
|
57
|
-
/** Accept button text */ yesText: PropTypes.string,
|
|
58
|
-
/** Reject button text */ noText: PropTypes.string,
|
|
59
|
-
/** Props for the dialog */ dialogProps: PropTypes.object
|
|
60
|
-
};
|
|
61
53
|
ConfirmDialog.defaultProps = {
|
|
62
54
|
yesText: 'Yes',
|
|
63
55
|
noText: 'No'
|
|
64
56
|
};
|
|
65
57
|
|
|
66
58
|
export { ConfirmDialog as default };
|
|
59
|
+
//# sourceMappingURL=ConfirmDialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfirmDialog.js","sources":["../../../src/components/Dialog/ConfirmDialog.tsx"],"sourcesContent":["import React, { createRef } from 'react';\nimport { Button, ActionButton } from '../Button';\nimport Dialog, { DialogBody, DialogFooter, DialogHeader } from './Dialog';\n\ntype ConfirmOption = {\n /** Shown as header of the dialog */\n header: string;\n /** Rendered as body of the dialog */\n body: string;\n /** Accept button text */\n yesText?: string;\n /** Reject button text */\n noText?: string;\n /** Props for the dialog */\n dialogProps?: React.ComponentProps<typeof Dialog>;\n};\n\nexport default class ConfirmDialog extends React.Component<ConfirmOption> {\n private dialog = createRef<Dialog>();\n\n static defaultProps = {\n yesText: 'Yes',\n noText: 'No',\n };\n\n public show = () => {\n return new Promise((resolve, reject) => {\n const onClose = (resp: unknown) => {\n if (resp) {\n resolve(null);\n } else {\n reject();\n }\n };\n this.dialog.current?.open(onClose);\n });\n };\n\n private cancel = () => this.dialog.current?.close(false);\n private confirm = () => this.dialog.current?.close(true);\n\n render() {\n const { header, body, yesText, noText, dialogProps } = this.props;\n return (\n <Dialog\n {...dialogProps}\n ref={this.dialog}\n closeOnEsc={false}\n closeOnOverlayClick={false}\n >\n {header && <DialogHeader>{header}</DialogHeader>}\n <DialogBody>{body}</DialogBody>\n <DialogFooter>\n <Button onClick={this.cancel}>{noText}</Button>\n <ActionButton onClick={this.confirm}>{yesText}</ActionButton>\n </DialogFooter>\n </Dialog>\n );\n }\n}\n"],"names":["ConfirmDialog","React","Component","render","header","body","yesText","noText","dialogProps","props","_jsxs","Dialog","ref","dialog","closeOnEsc","closeOnOverlayClick","_jsx","DialogHeader","DialogBody","DialogFooter","Button","onClick","cancel","ActionButton","confirm","createRef","show","Promise","resolve","reject","onClose","resp","current","open","close","defaultProps"],"mappings":";;;;;;;AAiBe,MAAMA,aAAAA,SAAsBC,MAAMC,SAAS,CAAA;IAwBtDC,MAAAA,GAAS;AACL,QAAA,MAAM,EAAEC,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAEC,MAAM,EAAEC,WAAW,EAAE,GAAG,IAAI,CAACC,KAAK;AACjE,QAAA,qBACIC,IAAA,CAACC,MAAAA,EAAAA;AACI,YAAA,GAAGH,WAAW;YACfI,GAAAA,EAAK,IAAI,CAACC,MAAM;YAChBC,UAAAA,EAAY,KAAA;YACZC,mBAAAA,EAAqB,KAAA;;AAEpBX,gBAAAA,MAAAA,kBAAUY,GAAA,CAACC,MAAAA,EAAAA;AAAcb,oBAAAA,QAAAA,EAAAA;;8BAC1BY,GAAA,CAACE,IAAAA,EAAAA;AAAYb,oBAAAA,QAAAA,EAAAA;;8BACbK,IAAA,CAACS,MAAAA,EAAAA;;sCACGH,GAAA,CAACI,MAAAA,EAAAA;4BAAOC,OAAAA,EAAS,IAAI,CAACC,MAAM;AAAGf,4BAAAA,QAAAA,EAAAA;;sCAC/BS,GAAA,CAACO,YAAAA,EAAAA;4BAAaF,OAAAA,EAAS,IAAI,CAACG,OAAO;AAAGlB,4BAAAA,QAAAA,EAAAA;;;;;;AAItD,IAAA;;QAzCW,KAAA,CAAA,GAAA,IAAA,CAAA,EAAA,IAAA,CACHO,MAAAA,iBAASY,kBAOVC,IAAAA,GAAO,IAAA;YACV,OAAO,IAAIC,OAAAA,CAAQ,CAACC,OAAAA,EAASC,MAAAA,GAAAA;AACzB,gBAAA,MAAMC,UAAU,CAACC,IAAAA,GAAAA;AACb,oBAAA,IAAIA,IAAAA,EAAM;wBACNH,OAAAA,CAAQ,IAAA,CAAA;oBACZ,CAAA,MAAO;AACHC,wBAAAA,MAAAA,EAAAA;AACJ,oBAAA;AACJ,gBAAA,CAAA;AACA,gBAAA,IAAI,CAAChB,MAAM,CAACmB,OAAO,EAAEC,IAAAA,CAAKH,OAAAA,CAAAA;AAC9B,YAAA,CAAA,CAAA;AACJ,QAAA,CAAA,EAAA,IAAA,CAEQR,SAAS,IAAM,IAAI,CAACT,MAAM,CAACmB,OAAO,EAAEE,KAAAA,CAAM,KAAA,CAAA,EAAA,IAAA,CAC1CV,OAAAA,GAAU,IAAM,IAAI,CAACX,MAAM,CAACmB,OAAO,EAAEE,KAAAA,CAAM,IAAA,CAAA;;AAoBvD;AA1CqBlC,aAAAA,CAGVmC,YAAAA,GAAe;IAClB7B,OAAAA,EAAS,KAAA;IACTC,MAAAA,EAAQ;AACZ,CAAA;;;;"}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import PropTypes from 'prop-types';
|
|
3
2
|
export declare const DialogContainer: import("@emotion/styled").StyledComponent<{
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
} & import("../Card/Card").CardExtraProps & React.ClassAttributes<HTMLDivElement> & React.HTMLAttributes<HTMLDivElement> & {
|
|
3
|
+
elevated?: boolean;
|
|
4
|
+
} & React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement> & {
|
|
7
5
|
theme?: import("@emotion/react").Theme;
|
|
8
6
|
}, {}, {}>;
|
|
9
7
|
export { Header as DialogHeader, Body as DialogBody, Footer as DialogFooter, } from '../../shared/styles';
|
|
@@ -12,18 +10,14 @@ interface DialogOptions {
|
|
|
12
10
|
closeOnEsc?: boolean;
|
|
13
11
|
/** Close layer overlay is clicked. Default value is true. */
|
|
14
12
|
closeOnOverlayClick?: boolean;
|
|
13
|
+
/** Ref forwarded to the underlying HTMLDivElement of the dialog container */
|
|
14
|
+
forwardRef?: React.Ref<HTMLDivElement>;
|
|
15
15
|
}
|
|
16
16
|
interface DialogState {
|
|
17
17
|
show: boolean;
|
|
18
|
-
LayerComponent?:
|
|
18
|
+
LayerComponent?: React.ComponentType | null;
|
|
19
19
|
}
|
|
20
|
-
declare class Dialog extends React.Component<React.PropsWithChildren<DialogOptions> &
|
|
21
|
-
static propTypes: {
|
|
22
|
-
/** Flag to close dialog on `esc` click. Default value is true. */
|
|
23
|
-
closeOnEsc: PropTypes.Requireable<boolean>;
|
|
24
|
-
/** Close layer overlay is clicked. Default value is true. */
|
|
25
|
-
closeOnOverlayClick: PropTypes.Requireable<boolean>;
|
|
26
|
-
};
|
|
20
|
+
declare class Dialog extends React.Component<React.PropsWithChildren<DialogOptions> & React.HTMLAttributes<HTMLDivElement>, DialogState> {
|
|
27
21
|
static defaultProps: {
|
|
28
22
|
closeOnEsc: boolean;
|
|
29
23
|
closeOnOverlayClick: boolean;
|
|
@@ -58,9 +52,9 @@ declare class Dialog extends React.Component<React.PropsWithChildren<DialogOptio
|
|
|
58
52
|
private setInitialFocus;
|
|
59
53
|
shouldComponentUpdate(nextProps: DialogOptions, nextState: DialogState): boolean;
|
|
60
54
|
componentWillUnmount(): void;
|
|
61
|
-
open: (closeCallback?: (resp
|
|
55
|
+
open: (closeCallback?: (resp?: unknown) => void) => void;
|
|
62
56
|
close: (resp?: unknown) => void;
|
|
63
57
|
private closeCallback;
|
|
64
|
-
render(): import("@emotion/react/jsx-runtime").JSX.Element;
|
|
58
|
+
render(): import("@emotion/react/jsx-runtime").JSX.Element | null;
|
|
65
59
|
}
|
|
66
60
|
export default Dialog;
|