@ntbjs/react-components 2.0.2-rc.3 → 2.0.2-rc.5
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/build/inputs/ActionButton/ActionButton.js +5 -9
- package/build/inputs/ActionButton/ActionButton.js.map +1 -1
- package/build/inputs/ActionButton/ActionButton.styled.js +13 -16
- package/build/inputs/ActionButton/ActionButton.styled.js.map +1 -1
- package/build/inputs/CompactTextInput/CompactTextInput.js +71 -58
- package/build/inputs/CompactTextInput/CompactTextInput.js.map +1 -1
- package/build/inputs/CompactTextInput/CompactTextInput.styled.js +208 -133
- package/build/inputs/CompactTextInput/CompactTextInput.styled.js.map +1 -1
- package/build/inputs/MultiSelect/MultiSelect.js +94 -202
- package/build/inputs/MultiSelect/MultiSelect.js.map +1 -1
- package/build/inputs/MultiSelect/MultiSelect.styled.js +162 -68
- package/build/inputs/MultiSelect/MultiSelect.styled.js.map +1 -1
- package/build/inputs/TextArea/TextArea.js +77 -67
- package/build/inputs/TextArea/TextArea.js.map +1 -1
- package/build/inputs/TextArea/TextArea.styled.js +204 -171
- package/build/inputs/TextArea/TextArea.styled.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js +26 -20
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js +15 -19
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryCompactCard/AssetGalleryCompactCard.styled.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js +16 -18
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.js.map +1 -1
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js +34 -75
- package/build/widgets/AssetGallery/AssetGalleryBase/AssetGalleryGridCard/AssetGalleryGridCard.styled.js.map +1 -1
- package/build/widgets/Instructions/Instructions.js +9 -0
- package/build/widgets/Instructions/Instructions.js.map +1 -1
- package/package.json +3 -3
|
@@ -10,17 +10,15 @@ const ActionButton = React__default.forwardRef(function ActionButton({
|
|
|
10
10
|
onClick,
|
|
11
11
|
actionWidthHeight,
|
|
12
12
|
backgroundColors,
|
|
13
|
-
useShadow,
|
|
14
13
|
...props
|
|
15
14
|
}, forwardedRef) {
|
|
16
15
|
return React__default.createElement(ActionButton$1, _extends({
|
|
17
16
|
ref: forwardedRef,
|
|
18
17
|
disabled: disabled,
|
|
19
|
-
|
|
18
|
+
active: active,
|
|
20
19
|
onClick: onClick,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
$useShadow: useShadow
|
|
20
|
+
actionWidthHeight: actionWidthHeight,
|
|
21
|
+
backgroundColors: backgroundColors
|
|
24
22
|
}, props), icon);
|
|
25
23
|
});
|
|
26
24
|
ActionButton.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
@@ -29,13 +27,11 @@ ActionButton.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
|
29
27
|
active: PropTypes.bool,
|
|
30
28
|
onClick: PropTypes.func,
|
|
31
29
|
backgroundColors: PropTypes.arrayOf(PropTypes.string),
|
|
32
|
-
actionWidthHeight: PropTypes.array
|
|
33
|
-
useShadow: PropTypes.bool
|
|
30
|
+
actionWidthHeight: PropTypes.array
|
|
34
31
|
} : {};
|
|
35
32
|
ActionButton.defaultProps = {
|
|
36
33
|
onClick: () => {},
|
|
37
|
-
actionWidthHeight: [40, 40]
|
|
38
|
-
useShadow: false
|
|
34
|
+
actionWidthHeight: [40, 40]
|
|
39
35
|
};
|
|
40
36
|
|
|
41
37
|
export { ActionButton as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionButton.js","sources":["../../../src/components/inputs/ActionButton/ActionButton.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as S from './ActionButton.styled';\n\n/**\n * An action button.\n *\n * ### Import\n *\n * ``` js\n * import { ActionButton } from '@ntbjs/react-components/inputs'\n * // or\n * import ActionButton from '@ntbjs/react-components/inputs/ActionButton'\n * ```\n *\n * ### Props\n * ```\n * Pass `icon={<svg></svg>}` to display an icon.\n * Pass `disabled={true}` to disable the button.\n * Pass `active={true}` to lock the hover state of the button.\n * Pass `onClick={() => {}}` to add an on-click effect.\n * Pass `backgroundColors={[#ffffff, #000000]}` to set the background color of the button\n * ```\n */\nconst ActionButton = React.forwardRef(function ActionButton(\n { icon, disabled, active, onClick, actionWidthHeight, backgroundColors,
|
|
1
|
+
{"version":3,"file":"ActionButton.js","sources":["../../../src/components/inputs/ActionButton/ActionButton.js"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport * as S from './ActionButton.styled';\n\n/**\n * An action button.\n *\n * ### Import\n *\n * ``` js\n * import { ActionButton } from '@ntbjs/react-components/inputs'\n * // or\n * import ActionButton from '@ntbjs/react-components/inputs/ActionButton'\n * ```\n *\n * ### Props\n * ```\n * Pass `icon={<svg></svg>}` to display an icon.\n * Pass `disabled={true}` to disable the button.\n * Pass `active={true}` to lock the hover state of the button.\n * Pass `onClick={() => {}}` to add an on-click effect.\n * Pass `backgroundColors={[#ffffff, #000000]}` to set the background color of the button\n * ```\n */\nconst ActionButton = React.forwardRef(function ActionButton(\n { icon, disabled, active, onClick, actionWidthHeight, backgroundColors, ...props },\n forwardedRef\n) {\n return (\n <S.ActionButton\n ref={forwardedRef}\n disabled={disabled}\n active={active}\n onClick={onClick}\n actionWidthHeight={actionWidthHeight}\n backgroundColors={backgroundColors}\n {...props}\n >\n {icon}\n </S.ActionButton>\n );\n});\n\nActionButton.propTypes = {\n /**\n * Icon element – e.g: `icon={<SvgAddCircle />}`\n */\n icon: PropTypes.element.isRequired,\n /**\n * Disable the action button\n */\n disabled: PropTypes.bool,\n /**\n * Locks the hover state of the `ActionButton` – this prop only affects the visual appearance of the\n * `ActionButton`\n */\n active: PropTypes.bool,\n /**\n * On-click effect for the action button\n */\n onClick: PropTypes.func,\n /**\n * Color of the button background as an array of [darkThemeColor, lightThemeColor]\n */\n backgroundColors: PropTypes.arrayOf(PropTypes.string),\n /**\n * Width and Height of the Action Button [50, 50]\n */\n actionWidthHeight: PropTypes.array\n};\n\nActionButton.defaultProps = {\n onClick: () => {},\n actionWidthHeight: [40, 40]\n};\n\nexport default ActionButton;\n"],"names":["ActionButton","React","forwardRef","icon","disabled","active","onClick","actionWidthHeight","backgroundColors","props","forwardedRef","createElement","S","_extends","ref","propTypes","process","env","NODE_ENV","PropTypes","element","isRequired","bool","func","arrayOf","string","array","defaultProps"],"mappings":";;;;;AAwBMA,MAAAA,YAAY,GAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,YAAYA,CACzD;EAAEG,IAAI;EAAEC,QAAQ;EAAEC,MAAM;EAAEC,OAAO;EAAEC,iBAAiB;EAAEC,gBAAgB;EAAE,GAAGC,KAAAA;AAAM,CAAC,EAClFC,YAAY,EACZ;EACA,OACET,cAAA,CAAAU,aAAA,CAACC,cAAc,EAAAC,QAAA,CAAA;AACbC,IAAAA,GAAG,EAAEJ,YAAa;AAClBN,IAAAA,QAAQ,EAAEA,QAAS;AACnBC,IAAAA,MAAM,EAAEA,MAAO;AACfC,IAAAA,OAAO,EAAEA,OAAQ;AACjBC,IAAAA,iBAAiB,EAAEA,iBAAkB;AACrCC,IAAAA,gBAAgB,EAAEA,gBAAAA;GACdC,EAAAA,KAAK,CAERN,EAAAA,IACa,CAAC,CAAA;AAErB,CAAC,EAAC;AAEFH,YAAY,CAACe,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAG,YAAA,GAAA;AAIvBf,EAAAA,IAAI,EAAEgB,SAAS,CAACC,OAAO,CAACC,UAAU;EAIlCjB,QAAQ,EAAEe,SAAS,CAACG,IAAI;EAKxBjB,MAAM,EAAEc,SAAS,CAACG,IAAI;EAItBhB,OAAO,EAAEa,SAAS,CAACI,IAAI;EAIvBf,gBAAgB,EAAEW,SAAS,CAACK,OAAO,CAACL,SAAS,CAACM,MAAM,CAAC;EAIrDlB,iBAAiB,EAAEY,SAAS,CAACO,KAAAA;AAC/B,CAAC,GAAA,EAAA,CAAA;AAED1B,YAAY,CAAC2B,YAAY,GAAG;AAC1BrB,EAAAA,OAAO,EAAEA,MAAM,EAAE;AACjBC,EAAAA,iBAAiB,EAAE,CAAC,EAAE,EAAE,EAAE,CAAA;AAC5B,CAAC;;;;"}
|
|
@@ -2,16 +2,13 @@ import styled, { css } from 'styled-components';
|
|
|
2
2
|
import { rgba } from 'polished';
|
|
3
3
|
import { applyDefaultTheme } from '../../utils/defaultTheme.js';
|
|
4
4
|
|
|
5
|
-
const
|
|
6
|
-
const ActionButton = styled.button.withConfig({
|
|
7
|
-
shouldForwardProp
|
|
8
|
-
}).attrs(applyDefaultTheme)`
|
|
5
|
+
const ActionButton = styled.button.attrs(applyDefaultTheme)`
|
|
9
6
|
display: inline-flex;
|
|
10
7
|
justify-content: center;
|
|
11
8
|
align-items: center;
|
|
12
9
|
border-radius: 50%;
|
|
13
|
-
width: ${props => `${props
|
|
14
|
-
height: ${props => `${props
|
|
10
|
+
width: ${props => `${props.actionWidthHeight[0]}px`};
|
|
11
|
+
height: ${props => `${props.actionWidthHeight[1]}px`};
|
|
15
12
|
border: 0;
|
|
16
13
|
color: inherit;
|
|
17
14
|
background-color: transparent;
|
|
@@ -23,30 +20,30 @@ const ActionButton = styled.button.withConfig({
|
|
|
23
20
|
cursor: pointer;
|
|
24
21
|
|
|
25
22
|
${props => {
|
|
26
|
-
const darkThemeBgColor = props
|
|
27
|
-
const lightThemeBgColor = props
|
|
23
|
+
const darkThemeBgColor = props?.backgroundColors?.[0] ?? props.theme.getColor('gray-600');
|
|
24
|
+
const lightThemeBgColor = props?.backgroundColors?.[1] ?? props.theme.getColor('gray-200');
|
|
28
25
|
return props.theme.themeProp('background-image', `radial-gradient(circle at center, ${darkThemeBgColor} 50%, transparent 51%)`, `radial-gradient(circle at center, ${lightThemeBgColor} 50%, transparent 51%)`);
|
|
29
26
|
}}
|
|
30
27
|
|
|
31
28
|
&:hover:not(:disabled) {
|
|
32
|
-
background-size: ${props => Math.max(props
|
|
33
|
-
${props => Math.max(props
|
|
29
|
+
background-size: ${props => Math.max(props.actionWidthHeight[0], props.actionWidthHeight[1]) * 2}px
|
|
30
|
+
${props => Math.max(props.actionWidthHeight[0], props.actionWidthHeight[1]) * 2}px;
|
|
34
31
|
|
|
35
32
|
svg {
|
|
36
33
|
${props => props.theme.themeProp('color', props.theme.getColor('gray-100'), props.theme.getColor('gray-700'))};
|
|
37
34
|
}
|
|
38
35
|
}
|
|
39
36
|
|
|
40
|
-
${props => props
|
|
41
|
-
background-size: ${Math.max(props
|
|
42
|
-
${Math.max(props
|
|
37
|
+
${props => props.active && css`
|
|
38
|
+
background-size: ${Math.max(props.actionWidthHeight[0], props.actionWidthHeight[1]) * 2}px
|
|
39
|
+
${Math.max(props.actionWidthHeight[0], props.actionWidthHeight[1]) * 2}px;
|
|
43
40
|
|
|
44
41
|
svg {
|
|
45
42
|
${props.theme.themeProp('color', props.theme.getColor('gray-100'), props.theme.getColor('gray-700'))};
|
|
46
43
|
}
|
|
47
44
|
`}
|
|
48
45
|
|
|
49
|
-
${props => props
|
|
46
|
+
${props => props.useShadow ? props.theme.themeProp('box-shadow', `0px 3px 6px ${rgba(props.theme.getColor('black'), 0.7)}`, `0px 3px 6px ${props.theme.getColor('black')}`) : null}
|
|
50
47
|
|
|
51
48
|
&:disabled {
|
|
52
49
|
opacity: 0.5;
|
|
@@ -56,8 +53,8 @@ const ActionButton = styled.button.withConfig({
|
|
|
56
53
|
|
|
57
54
|
svg {
|
|
58
55
|
width: 100%;
|
|
59
|
-
max-width: ${props => `${props
|
|
60
|
-
max-height: ${props => `${props
|
|
56
|
+
max-width: ${props => `${props.actionWidthHeight[0] - 15}px`};
|
|
57
|
+
max-height: ${props => `${props.actionWidthHeight[1] - 15}px`};
|
|
61
58
|
pointer-events: none;
|
|
62
59
|
transition: color 250ms;
|
|
63
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionButton.styled.js","sources":["../../../src/components/inputs/ActionButton/ActionButton.styled.js"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { rgba } from 'polished';\nimport { applyDefaultTheme } from '../../../utils/defaultTheme';\n\
|
|
1
|
+
{"version":3,"file":"ActionButton.styled.js","sources":["../../../src/components/inputs/ActionButton/ActionButton.styled.js"],"sourcesContent":["import styled, { css } from 'styled-components';\nimport { rgba } from 'polished';\nimport { applyDefaultTheme } from '../../../utils/defaultTheme';\n\nexport const ActionButton = styled.button.attrs(applyDefaultTheme)`\n display: inline-flex;\n justify-content: center;\n align-items: center;\n border-radius: 50%;\n width: ${props => `${props.actionWidthHeight[0]}px`};\n height: ${props => `${props.actionWidthHeight[1]}px`};\n border: 0;\n color: inherit;\n background-color: transparent;\n\n background-position: center;\n background-repeat: no-repeat;\n background-size: 0 0;\n transition: background-size 250ms ease;\n cursor: pointer;\n\n ${props => {\n const darkThemeBgColor = props?.backgroundColors?.[0] ?? props.theme.getColor('gray-600');\n const lightThemeBgColor = props?.backgroundColors?.[1] ?? props.theme.getColor('gray-200');\n return props.theme.themeProp(\n 'background-image',\n `radial-gradient(circle at center, ${darkThemeBgColor} 50%, transparent 51%)`,\n `radial-gradient(circle at center, ${lightThemeBgColor} 50%, transparent 51%)`\n );\n }}\n\n &:hover:not(:disabled) {\n background-size: ${props =>\n Math.max(props.actionWidthHeight[0], props.actionWidthHeight[1]) * 2}px\n ${props => Math.max(props.actionWidthHeight[0], props.actionWidthHeight[1]) * 2}px;\n\n svg {\n ${props =>\n props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-100'),\n props.theme.getColor('gray-700')\n )};\n }\n }\n\n ${props =>\n props.active &&\n css`\n background-size: ${Math.max(props.actionWidthHeight[0], props.actionWidthHeight[1]) * 2}px\n ${Math.max(props.actionWidthHeight[0], props.actionWidthHeight[1]) * 2}px;\n\n svg {\n ${props.theme.themeProp(\n 'color',\n props.theme.getColor('gray-100'),\n props.theme.getColor('gray-700')\n )};\n }\n `}\n\n ${props =>\n props.useShadow\n ? props.theme.themeProp(\n 'box-shadow',\n `0px 3px 6px ${rgba(props.theme.getColor('black'), 0.7)}`,\n `0px 3px 6px ${props.theme.getColor('black')}`\n )\n : null}\n\n &:disabled {\n opacity: 0.5;\n color: inherit;\n cursor: not-allowed;\n }\n\n svg {\n width: 100%;\n max-width: ${props => `${props.actionWidthHeight[0] - 15}px`};\n max-height: ${props => `${props.actionWidthHeight[1] - 15}px`};\n pointer-events: none;\n transition: color 250ms;\n }\n`;\n"],"names":["ActionButton","styled","button","attrs","applyDefaultTheme","props","actionWidthHeight","darkThemeBgColor","backgroundColors","theme","getColor","lightThemeBgColor","themeProp","Math","max","active","css","useShadow","rgba"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isFunction, isEmpty } from 'lodash';
|
|
2
2
|
import { nanoid } from 'nanoid';
|
|
3
3
|
import PropTypes from 'prop-types';
|
|
4
|
-
import React__default, { useState, useEffect, useCallback
|
|
4
|
+
import React__default, { useState, useMemo, useEffect, useCallback } from 'react';
|
|
5
5
|
import { ReactComponent as SvgEditNote } from '../../icons/edit-note.svg.js';
|
|
6
6
|
import { ReactComponent as SvgLink } from '../../icons/link.svg.js';
|
|
7
7
|
import '../../data/Alert/Alert.js';
|
|
@@ -11,7 +11,7 @@ import '../../data/Tab/Tab.js';
|
|
|
11
11
|
import '../../data/Tabs/Tabs.js';
|
|
12
12
|
import Tooltip from '../../data/Tooltip/Tooltip.js';
|
|
13
13
|
import '../../data/VerificationStatusIcon/VerificationStatusIcon.js';
|
|
14
|
-
import {
|
|
14
|
+
import { CompactTextInput as CompactTextInput$1, Label, SuccessContainer, InputContainer, LinkPopoverContainer, StyledLink, ReadOnlyLinkContainer, InputIconContainer, InputSuccessContainer, Input } from './CompactTextInput.styled.js';
|
|
15
15
|
|
|
16
16
|
const CompactTextInput = React__default.forwardRef(function CompactTextInput({
|
|
17
17
|
label,
|
|
@@ -39,13 +39,21 @@ const CompactTextInput = React__default.forwardRef(function CompactTextInput({
|
|
|
39
39
|
successIcon,
|
|
40
40
|
...props
|
|
41
41
|
}, forwardedRef) {
|
|
42
|
-
const [uniqueId] = useState(
|
|
43
|
-
const [currentValue, setCurrentValue] = useState(
|
|
42
|
+
const [uniqueId] = useState(nanoid());
|
|
43
|
+
const [currentValue, setCurrentValue] = useState();
|
|
44
|
+
const [autoFocus, setAutoFocus] = useState(false);
|
|
45
|
+
const memoizedDescriptionToolTip = useMemo(() => {
|
|
46
|
+
return descriptionToolTip;
|
|
47
|
+
}, [descriptionToolTip]);
|
|
44
48
|
useEffect(() => {
|
|
45
49
|
setCurrentValue(value || defaultValue);
|
|
50
|
+
setAutoFocus(false);
|
|
46
51
|
}, [value, defaultValue]);
|
|
47
52
|
const onChange = useCallback(event => {
|
|
48
53
|
setCurrentValue(event.target.value);
|
|
54
|
+
if (!autoFocus) {
|
|
55
|
+
setAutoFocus(true);
|
|
56
|
+
}
|
|
49
57
|
if (isFunction(onChangeProp)) {
|
|
50
58
|
onChangeProp(event);
|
|
51
59
|
}
|
|
@@ -57,72 +65,78 @@ const CompactTextInput = React__default.forwardRef(function CompactTextInput({
|
|
|
57
65
|
if (isFunction(onFocusProp)) {
|
|
58
66
|
onFocusProp(event);
|
|
59
67
|
}
|
|
60
|
-
}, [autoSelect, onFocusProp]);
|
|
68
|
+
}, [autoSelect, readOnly, onFocusProp]);
|
|
61
69
|
const onBlur = useCallback(event => {
|
|
62
70
|
if (isFunction(onBlurProp)) {
|
|
63
71
|
onBlurProp(event);
|
|
64
72
|
}
|
|
65
73
|
}, [onBlurProp]);
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
$haslink: !isEmpty(link),
|
|
89
|
-
$edit: edit,
|
|
90
|
-
$type: type,
|
|
91
|
-
onFocus: onFocus,
|
|
92
|
-
onChange: onChange,
|
|
93
|
-
onBlur: onBlur
|
|
94
|
-
});
|
|
74
|
+
const input = () => {
|
|
75
|
+
return React__default.createElement(Input, {
|
|
76
|
+
ref: forwardedRef,
|
|
77
|
+
id: uniqueId,
|
|
78
|
+
key: uniqueId,
|
|
79
|
+
autoFocus: autoFocus,
|
|
80
|
+
inputtype: inputType,
|
|
81
|
+
name: name,
|
|
82
|
+
readOnly: readOnly,
|
|
83
|
+
disabled: disabled,
|
|
84
|
+
$edit: edit,
|
|
85
|
+
placeholder: placeholder,
|
|
86
|
+
defaultValue: defaultValue,
|
|
87
|
+
value: value,
|
|
88
|
+
$type: type,
|
|
89
|
+
$bold: bold,
|
|
90
|
+
$haslink: !isEmpty(link),
|
|
91
|
+
onFocus: onFocus,
|
|
92
|
+
onChange: onChange,
|
|
93
|
+
onBlur: onBlur
|
|
94
|
+
});
|
|
95
|
+
};
|
|
95
96
|
if (hidden) return null;
|
|
96
|
-
|
|
97
|
-
return React__default.createElement(CompactTextInput$2, props, label && React__default.createElement(Label, {
|
|
97
|
+
return React__default.createElement(CompactTextInput$1, props, label && React__default.createElement(Label, {
|
|
98
98
|
htmlFor: uniqueId,
|
|
99
|
-
|
|
100
|
-
}, label, React__default.createElement(SuccessContainer, {
|
|
101
|
-
$type: type
|
|
102
|
-
}, type === 'loading' && loadingIcon, type === 'success' && successIcon)), React__default.createElement(InputContainer, {
|
|
99
|
+
disabled: disabled
|
|
100
|
+
}, label, React__default.createElement(SuccessContainer, null, type === 'loading' && loadingIcon, type === 'success' && successIcon)), React__default.createElement(InputContainer, {
|
|
103
101
|
$hasLabel: !isEmpty(label)
|
|
104
|
-
}, link &&
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
}, !memoizedDescriptionToolTip && !link && React__default.createElement("div", null, input()), memoizedDescriptionToolTip && !link && React__default.createElement("div", null, React__default.createElement(Tooltip, {
|
|
103
|
+
content: memoizedDescriptionToolTip,
|
|
104
|
+
key: "tooltip1",
|
|
105
|
+
placement: "bottom-end",
|
|
106
|
+
trigger: 'mouseenter',
|
|
107
|
+
zIndex: 999999
|
|
108
|
+
}, input())), link && !readOnly && React__default.createElement("div", null, React__default.createElement(Popover, {
|
|
109
109
|
arrow: false,
|
|
110
|
-
content:
|
|
110
|
+
content: React__default.createElement(LinkPopoverContainer, null, activeLinkHandler ? React__default.createElement(StyledLink, {
|
|
111
|
+
href: link,
|
|
112
|
+
target: linkTarget,
|
|
113
|
+
onClick: e => {
|
|
114
|
+
if (activeLinkHandler) {
|
|
115
|
+
e.preventDefault();
|
|
116
|
+
linkHandler();
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
rel: "noreferrer"
|
|
120
|
+
}, React__default.createElement(SvgLink, null), currentValue) : React__default.createElement(StyledLink, {
|
|
121
|
+
href: link,
|
|
122
|
+
target: linkTarget,
|
|
123
|
+
rel: "noreferrer"
|
|
124
|
+
}, React__default.createElement(SvgLink, null), currentValue)),
|
|
125
|
+
key: "tooltip2",
|
|
111
126
|
placement: "bottom-start",
|
|
112
127
|
trigger: "focusin",
|
|
113
128
|
zIndex: 999999,
|
|
114
129
|
interactive: true
|
|
115
|
-
},
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}, React__default.createElement(SvgEditNote, null)), isEmpty(label) && React__default.createElement(InputSuccessContainer, {
|
|
130
|
+
}, input())), link && readOnly && React__default.createElement(ReadOnlyLinkContainer, null, React__default.createElement(StyledLink, {
|
|
131
|
+
href: link,
|
|
132
|
+
rel: "noreferrer",
|
|
133
|
+
style: {
|
|
134
|
+
display: 'inline-block'
|
|
135
|
+
},
|
|
136
|
+
target: linkTarget
|
|
137
|
+
}, currentValue)), !readOnly && !disabled && React__default.createElement(React__default.Fragment, null, React__default.createElement(InputIconContainer, {
|
|
124
138
|
$type: type
|
|
125
|
-
}, type === 'loading' && loadingIcon, type === 'success' && successIcon))));
|
|
139
|
+
}, React__default.createElement(SvgEditNote, null)), isEmpty(label) && React__default.createElement(InputSuccessContainer, null, type === 'loading' && loadingIcon, type === 'success' && successIcon))));
|
|
126
140
|
});
|
|
127
141
|
CompactTextInput.propTypes = process.env.NODE_ENV !== "production" ? {
|
|
128
142
|
label: PropTypes.string,
|
|
@@ -165,7 +179,6 @@ CompactTextInput.defaultProps = {
|
|
|
165
179
|
activeLinkHandler: false,
|
|
166
180
|
onChange: () => {}
|
|
167
181
|
};
|
|
168
|
-
var CompactTextInput$1 = memo(CompactTextInput);
|
|
169
182
|
|
|
170
|
-
export { CompactTextInput
|
|
183
|
+
export { CompactTextInput as default };
|
|
171
184
|
//# sourceMappingURL=CompactTextInput.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CompactTextInput.js","sources":["../../../src/components/inputs/CompactTextInput/CompactTextInput.js"],"sourcesContent":["import { isEmpty, isFunction } from 'lodash';\nimport { nanoid } from 'nanoid';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useState, useEffect, useMemo, memo } from 'react';\nimport { ReactComponent as EditNoteIcon } from '../../../icons/edit-note.svg';\nimport { ReactComponent as LinkIcon } from '../../../icons/link.svg';\nimport { Tooltip, Popover } from '../../data';\nimport * as S from './CompactTextInput.styled';\n\nconst CompactTextInput = React.forwardRef(function CompactTextInput(\n {\n label,\n inputType,\n name,\n defaultValue,\n value,\n placeholder,\n link,\n linkTarget,\n linkHandler,\n activeLinkHandler,\n autoSelect,\n readOnly,\n disabled,\n edit,\n type,\n descriptionToolTip,\n bold,\n hidden,\n onChange: onChangeProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n loadingIcon,\n successIcon,\n ...props\n },\n forwardedRef\n) {\n const [uniqueId] = useState(() => nanoid());\n const [currentValue, setCurrentValue] = useState(value || defaultValue);\n\n // Update currentValue when value or defaultValue changes\n useEffect(() => {\n setCurrentValue(value || defaultValue);\n }, [value, defaultValue]);\n\n const onChange = useCallback(\n event => {\n setCurrentValue(event.target.value);\n if (isFunction(onChangeProp)) {\n onChangeProp(event);\n }\n },\n [onChangeProp]\n );\n\n const onFocus = useCallback(\n event => {\n if (autoSelect) {\n event.target.select();\n }\n if (isFunction(onFocusProp)) {\n onFocusProp(event);\n }\n },\n [autoSelect, onFocusProp]\n );\n\n const onBlur = useCallback(\n event => {\n if (isFunction(onBlurProp)) {\n onBlurProp(event);\n }\n },\n [onBlurProp]\n );\n\n // Memoize link popover content\n const linkPopoverContent = useMemo(\n () => (\n <S.LinkPopoverContainer>\n <S.StyledLink\n href={link}\n target={linkTarget}\n onClick={e => {\n if (activeLinkHandler) {\n e.preventDefault();\n linkHandler();\n }\n }}\n rel=\"noreferrer\"\n >\n <LinkIcon />\n {currentValue}\n </S.StyledLink>\n </S.LinkPopoverContainer>\n ),\n [link, linkTarget, activeLinkHandler, linkHandler, currentValue]\n );\n\n // Render the input - same structure every time\n const inputElement = (\n <S.Input\n ref={forwardedRef}\n id={uniqueId}\n type={inputType}\n name={name}\n readOnly={readOnly}\n disabled={disabled}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={value}\n $bold={bold}\n $haslink={!isEmpty(link)}\n $edit={edit}\n $type={type}\n onFocus={onFocus}\n onChange={onChange}\n onBlur={onBlur}\n />\n );\n\n if (hidden) return null;\n\n // Determine current state\n const hasLink = link && !readOnly;\n\n return (\n <S.CompactTextInput {...props}>\n {label && (\n <S.Label htmlFor={uniqueId} $disabled={disabled}>\n {label}\n <S.SuccessContainer $type={type}>\n {type === 'loading' && loadingIcon}\n {type === 'success' && successIcon}\n </S.SuccessContainer>\n </S.Label>\n )}\n <S.InputContainer $hasLabel={!isEmpty(label)}>\n {link && readOnly ? (\n <S.ReadOnlyLinkContainer>\n <S.StyledLink href={link} rel=\"noreferrer\" target={linkTarget}>\n {currentValue}\n </S.StyledLink>\n </S.ReadOnlyLinkContainer>\n ) : (\n <div>\n {hasLink ? (\n <Popover\n arrow={false}\n content={linkPopoverContent}\n placement=\"bottom-start\"\n trigger=\"focusin\"\n zIndex={999999}\n interactive={true}\n >\n {inputElement}\n </Popover>\n ) : (\n <Tooltip\n content={descriptionToolTip || ''}\n placement=\"bottom-end\"\n trigger=\"mouseenter\"\n zIndex={999999}\n disabled={!descriptionToolTip}\n >\n {inputElement}\n </Tooltip>\n )}\n </div>\n )}\n\n {!readOnly && !disabled && (\n <>\n <S.InputIconContainer $type={type}>\n <EditNoteIcon />\n </S.InputIconContainer>\n {isEmpty(label) && (\n <S.InputSuccessContainer $type={type}>\n {type === 'loading' && loadingIcon}\n {type === 'success' && successIcon}\n </S.InputSuccessContainer>\n )}\n </>\n )}\n </S.InputContainer>\n </S.CompactTextInput>\n );\n});\n\nCompactTextInput.propTypes = {\n /**\n * The label of the input field - leave `undefined` to hide the label\n */\n label: PropTypes.string,\n /**\n * Displays a light green background to show that an action was successful.\n */\n success: PropTypes.bool,\n /**\n * The input type - eg. `text`, `number`\n */\n inputType: PropTypes.string,\n /**\n * The input name\n */\n name: PropTypes.string,\n /**\n * The default value of the input - creates an uncontrolled input\n */\n defaultValue: PropTypes.string,\n /**\n * The value of the input - creates a controlled input\n */\n value: PropTypes.string,\n /**\n * The placeholder of the input\n */\n placeholder: PropTypes.string,\n /**\n * A URL associated with the input value. Creates a clickable link that accepts full or relative URL\n */\n link: PropTypes.string,\n /**\n * The target for the link. Only applies when the field is in read-only mode\n */\n linkTarget: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n /**\n * Whether the link has a onClick event.\n */\n linkHandler: PropTypes.func,\n /**\n * Whether the handler should preceed the link behavior.\n */\n activeLinkHandler: PropTypes.bool,\n /**\n * Whether to auto select the entire value when the input is focused, does also work when the field is in read-only mode\n */\n autoSelect: PropTypes.bool,\n /**\n * Whether the value is read only\n */\n readOnly: PropTypes.bool,\n /**\n * Whether the value is disabled\n */\n disabled: PropTypes.bool,\n /**\n * Displays a grey background to show that value is editable\n */\n edit: PropTypes.bool,\n /**\n * There is an error present - 'error be prioritized over warnings if both are set to 'true'.\n */\n // error: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n /**\n * There is a warning present.\n */\n warning: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n /**\n * Whether to bold the input content - Slightly increases the font size and font weight of the input value\n */\n bold: PropTypes.bool,\n /**\n * Whether the component is hidden or visible.\n */\n hidden: PropTypes.bool,\n /**\n * Callback for `onChange`\n */\n onChange: PropTypes.func,\n /**\n * Callback for `onFocus`\n */\n onFocus: PropTypes.func,\n /**\n * Callback for `onBlur`\n */\n onBlur: PropTypes.func,\n /**\n * Define the type based on error, warning, loading and success.\n */\n type: PropTypes.oneOf(['', 'error', 'warning', 'loading', 'success']),\n /**\n * Description ToolTip text.\n */\n descriptionToolTip: PropTypes.string,\n /**\n * Icon element E.g: `icon={<Spinner />}`\n */\n loadingIcon: PropTypes.element,\n /**\n * Icon element E.g: `icon={<Check />}`\n */\n successIcon: PropTypes.element\n};\n\nCompactTextInput.defaultProps = {\n inputType: 'text',\n autoSelect: true,\n linkTarget: '_self',\n bold: false,\n readOnly: false,\n descriptionToolTip: '',\n edit: false,\n hidden: false,\n type: '',\n linkHandler: () => {},\n activeLinkHandler: false,\n onChange: () => {}\n};\n\nexport default memo(CompactTextInput);\n"],"names":["CompactTextInput","React","forwardRef","label","inputType","name","defaultValue","value","placeholder","link","linkTarget","linkHandler","activeLinkHandler","autoSelect","readOnly","disabled","edit","type","descriptionToolTip","bold","hidden","onChange","onChangeProp","onFocus","onFocusProp","onBlur","onBlurProp","loadingIcon","successIcon","props","forwardedRef","uniqueId","useState","nanoid","currentValue","setCurrentValue","useEffect","useCallback","event","target","isFunction","select","linkPopoverContent","useMemo","createElement","S","href","onClick","e","preventDefault","rel","LinkIcon","inputElement","ref","id","$bold","$haslink","isEmpty","$edit","$type","hasLink","htmlFor","$disabled","$hasLabel","Popover","arrow","content","placement","trigger","zIndex","interactive","Tooltip","Fragment","EditNoteIcon","propTypes","process","env","NODE_ENV","PropTypes","string","success","bool","oneOf","func","warning","oneOfType","element","defaultProps","memo"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CompactTextInput.js","sources":["../../../src/components/inputs/CompactTextInput/CompactTextInput.js"],"sourcesContent":["import { isEmpty, isFunction } from 'lodash';\nimport { nanoid } from 'nanoid';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useState, useEffect, useMemo } from 'react';\nimport { ReactComponent as EditNoteIcon } from '../../../icons/edit-note.svg';\nimport { ReactComponent as LinkIcon } from '../../../icons/link.svg';\nimport { Tooltip, Popover } from '../../data';\nimport * as S from './CompactTextInput.styled';\n\n// const ConditionalWrapper = ({ condition, wrapper, children }) =>\n// condition ? wrapper(children) : children;\n\n/**\n * Compact text inputs let users enter and edit text in the UI in a compact way. They typically appear in forms or displays of metadata.\n *\n * ### Import\n *\n * ``` js\n * import { CompactTextInput } from '@ntbjs/react-components/inputs'\n * // or\n * import CompactTextInput from '@ntbjs/react-components/inputs/CompactTextInput'\n * ```\n */\nconst CompactTextInput = React.forwardRef(function CompactTextInput(\n {\n label,\n inputType,\n name,\n defaultValue,\n value,\n placeholder,\n link,\n linkTarget,\n linkHandler,\n activeLinkHandler,\n autoSelect,\n readOnly,\n disabled,\n edit,\n type,\n descriptionToolTip,\n bold,\n hidden,\n onChange: onChangeProp,\n onFocus: onFocusProp,\n onBlur: onBlurProp,\n loadingIcon,\n successIcon,\n ...props\n },\n forwardedRef\n) {\n const [uniqueId] = useState(nanoid());\n const [currentValue, setCurrentValue] = useState();\n const [autoFocus, setAutoFocus] = useState(false);\n\n const memoizedDescriptionToolTip = useMemo(() => {\n return descriptionToolTip;\n }, [descriptionToolTip]);\n\n useEffect(() => {\n setCurrentValue(value || defaultValue);\n setAutoFocus(false);\n }, [value, defaultValue]);\n\n const onChange = useCallback(\n event => {\n setCurrentValue(event.target.value);\n\n if (!autoFocus) {\n setAutoFocus(true);\n }\n if (isFunction(onChangeProp)) {\n onChangeProp(event);\n }\n },\n [onChangeProp]\n );\n\n const onFocus = useCallback(\n event => {\n if (autoSelect) {\n event.target.select();\n }\n\n if (isFunction(onFocusProp)) {\n onFocusProp(event);\n }\n },\n [autoSelect, readOnly, onFocusProp]\n );\n\n const onBlur = useCallback(\n event => {\n if (isFunction(onBlurProp)) {\n onBlurProp(event);\n }\n },\n [onBlurProp]\n );\n\n const input = () => {\n return (\n <S.Input\n ref={forwardedRef}\n id={uniqueId}\n key={uniqueId}\n autoFocus={autoFocus}\n inputtype={inputType}\n name={name}\n readOnly={readOnly}\n disabled={disabled}\n $edit={edit}\n placeholder={placeholder}\n defaultValue={defaultValue}\n value={value}\n $type={type}\n $bold={bold}\n $haslink={!isEmpty(link)}\n onFocus={onFocus}\n onChange={onChange}\n onBlur={onBlur}\n />\n );\n };\n\n if (hidden) return null;\n\n return (\n <S.CompactTextInput {...props}>\n {label && (\n <S.Label htmlFor={uniqueId} disabled={disabled}>\n {label}\n <S.SuccessContainer>\n {type === 'loading' && loadingIcon}\n {type === 'success' && successIcon}\n </S.SuccessContainer>\n </S.Label>\n )}\n <S.InputContainer $hasLabel={!isEmpty(label)}>\n {!memoizedDescriptionToolTip && !link && <div>{input()}</div>}\n {memoizedDescriptionToolTip && !link && (\n <div>\n <Tooltip\n content={memoizedDescriptionToolTip}\n key=\"tooltip1\"\n placement=\"bottom-end\"\n trigger={'mouseenter'}\n zIndex={999999}\n >\n {input()}\n </Tooltip>\n </div>\n )}\n {link && !readOnly && (\n <div>\n <Popover\n arrow={false}\n content={\n <S.LinkPopoverContainer>\n {activeLinkHandler ? (\n <S.StyledLink\n href={link}\n target={linkTarget}\n onClick={e => {\n if (activeLinkHandler) {\n e.preventDefault();\n linkHandler();\n } else null;\n }}\n rel=\"noreferrer\"\n >\n <LinkIcon />\n {currentValue}\n </S.StyledLink>\n ) : (\n <S.StyledLink href={link} target={linkTarget} rel=\"noreferrer\">\n <LinkIcon />\n {currentValue}\n </S.StyledLink>\n )}\n </S.LinkPopoverContainer>\n }\n key=\"tooltip2\"\n placement=\"bottom-start\"\n trigger=\"focusin\"\n zIndex={999999}\n interactive={true}\n >\n {input()}\n </Popover>\n </div>\n )}\n {link && readOnly && (\n <S.ReadOnlyLinkContainer>\n <S.StyledLink\n href={link}\n rel=\"noreferrer\"\n style={{ display: 'inline-block' }}\n target={linkTarget}\n >\n {currentValue}\n </S.StyledLink>\n </S.ReadOnlyLinkContainer>\n )}\n {!readOnly && !disabled && (\n <>\n <S.InputIconContainer $type={type}>\n <EditNoteIcon />\n </S.InputIconContainer>\n {isEmpty(label) && (\n <S.InputSuccessContainer>\n {type === 'loading' && loadingIcon}\n {type === 'success' && successIcon}\n </S.InputSuccessContainer>\n )}\n </>\n )}\n </S.InputContainer>\n </S.CompactTextInput>\n );\n});\n\nCompactTextInput.propTypes = {\n /**\n * The label of the input field - leave `undefined` to hide the label\n */\n label: PropTypes.string,\n /**\n * Displays a light green background to show that an action was successful.\n */\n success: PropTypes.bool,\n /**\n * The input type - eg. `text`, `number`\n */\n inputType: PropTypes.string,\n /**\n * The input name\n */\n name: PropTypes.string,\n /**\n * The default value of the input - creates an uncontrolled input\n */\n defaultValue: PropTypes.string,\n /**\n * The value of the input - creates a controlled input\n */\n value: PropTypes.string,\n /**\n * The placeholder of the input\n */\n placeholder: PropTypes.string,\n /**\n * A URL associated with the input value. Creates a clickable link that accepts full or relative URL\n */\n link: PropTypes.string,\n /**\n * The target for the link. Only applies when the field is in read-only mode\n */\n linkTarget: PropTypes.oneOf(['_self', '_blank', '_parent', '_top']),\n /**\n * Whether the link has a onClick event.\n */\n linkHandler: PropTypes.func,\n /**\n * Whether the handler should preceed the link behavior.\n */\n activeLinkHandler: PropTypes.bool,\n /**\n * Whether to auto select the entire value when the input is focused – does also work when the field is in read-only mode\n */\n autoSelect: PropTypes.bool,\n /**\n * Whether the value is read only\n */\n readOnly: PropTypes.bool,\n /**\n * Whether the value is disabled\n */\n disabled: PropTypes.bool,\n /**\n * Displays a grey background to show that value is editable\n */\n edit: PropTypes.bool,\n /**\n * There is an error present - 'error be prioritized over warnings if both are set to 'true'.\n */\n // error: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n /**\n * There is a warning present.\n */\n warning: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n /**\n * Whether to bold the input content - Slightly increases the font size and font weight of the input value\n */\n bold: PropTypes.bool,\n /**\n * Whether the component is hidden or visible.\n */\n hidden: PropTypes.bool,\n /**\n * Callback for `onChange`\n */\n onChange: PropTypes.func,\n /**\n * Callback for `onFocus`\n */\n onFocus: PropTypes.func,\n /**\n * Callback for `onBlur`\n */\n onBlur: PropTypes.func,\n /**\n * Define the type based on error, warning, loading and success.\n */\n type: PropTypes.oneOf(['', 'error', 'warning', 'loading', 'success']),\n /**\n * Description ToolTip text.\n */\n descriptionToolTip: PropTypes.string,\n /**\n * Icon element – E.g: `icon={<Spinner />}`\n */\n loadingIcon: PropTypes.element,\n /**\n * Icon element – E.g: `icon={<Check />}`\n */\n successIcon: PropTypes.element\n};\n\nCompactTextInput.defaultProps = {\n inputType: 'text',\n autoSelect: true,\n linkTarget: '_self',\n bold: false,\n readOnly: false,\n descriptionToolTip: '',\n edit: false,\n hidden: false,\n type: '',\n linkHandler: () => {},\n activeLinkHandler: false,\n onChange: () => {}\n};\n\nexport default CompactTextInput;\n"],"names":["CompactTextInput","React","forwardRef","label","inputType","name","defaultValue","value","placeholder","link","linkTarget","linkHandler","activeLinkHandler","autoSelect","readOnly","disabled","edit","type","descriptionToolTip","bold","hidden","onChange","onChangeProp","onFocus","onFocusProp","onBlur","onBlurProp","loadingIcon","successIcon","props","forwardedRef","uniqueId","useState","nanoid","currentValue","setCurrentValue","autoFocus","setAutoFocus","memoizedDescriptionToolTip","useMemo","useEffect","useCallback","event","target","isFunction","select","input","createElement","S","ref","id","key","inputtype","$edit","$type","$bold","$haslink","isEmpty","htmlFor","$hasLabel","Tooltip","content","placement","trigger","zIndex","Popover","arrow","href","onClick","e","preventDefault","rel","LinkIcon","interactive","style","display","Fragment","EditNoteIcon","propTypes","process","env","NODE_ENV","PropTypes","string","success","bool","oneOf","func","warning","oneOfType","element","defaultProps"],"mappings":";;;;;;;;;;;;;;;AAuBMA,MAAAA,gBAAgB,GAAGC,cAAK,CAACC,UAAU,CAAC,SAASF,gBAAgBA,CACjE;EACEG,KAAK;EACLC,SAAS;EACTC,IAAI;EACJC,YAAY;EACZC,KAAK;EACLC,WAAW;EACXC,IAAI;EACJC,UAAU;EACVC,WAAW;EACXC,iBAAiB;EACjBC,UAAU;EACVC,QAAQ;EACRC,QAAQ;EACRC,IAAI;EACJC,IAAI;EACJC,kBAAkB;EAClBC,IAAI;EACJC,MAAM;AACNC,EAAAA,QAAQ,EAAEC,YAAY;AACtBC,EAAAA,OAAO,EAAEC,WAAW;AACpBC,EAAAA,MAAM,EAAEC,UAAU;EAClBC,WAAW;EACXC,WAAW;EACX,GAAGC,KAAAA;AACL,CAAC,EACDC,YAAY,EACZ;EACA,MAAM,CAACC,QAAQ,CAAC,GAAGC,QAAQ,CAACC,MAAM,EAAE,CAAC,CAAA;EACrC,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGH,QAAQ,EAAE,CAAA;EAClD,MAAM,CAACI,SAAS,EAAEC,YAAY,CAAC,GAAGL,QAAQ,CAAC,KAAK,CAAC,CAAA;AAEjD,EAAA,MAAMM,0BAA0B,GAAGC,OAAO,CAAC,MAAM;AAC/C,IAAA,OAAOrB,kBAAkB,CAAA;AAC3B,GAAC,EAAE,CAACA,kBAAkB,CAAC,CAAC,CAAA;AAExBsB,EAAAA,SAAS,CAAC,MAAM;AACdL,IAAAA,eAAe,CAAC5B,KAAK,IAAID,YAAY,CAAC,CAAA;IACtC+B,YAAY,CAAC,KAAK,CAAC,CAAA;AACrB,GAAC,EAAE,CAAC9B,KAAK,EAAED,YAAY,CAAC,CAAC,CAAA;AAEzB,EAAA,MAAMe,QAAQ,GAAGoB,WAAW,CAC1BC,KAAK,IAAI;AACPP,IAAAA,eAAe,CAACO,KAAK,CAACC,MAAM,CAACpC,KAAK,CAAC,CAAA;IAEnC,IAAI,CAAC6B,SAAS,EAAE;MACdC,YAAY,CAAC,IAAI,CAAC,CAAA;AACpB,KAAA;AACA,IAAA,IAAIO,UAAU,CAACtB,YAAY,CAAC,EAAE;MAC5BA,YAAY,CAACoB,KAAK,CAAC,CAAA;AACrB,KAAA;AACF,GAAC,EACD,CAACpB,YAAY,CACf,CAAC,CAAA;AAED,EAAA,MAAMC,OAAO,GAAGkB,WAAW,CACzBC,KAAK,IAAI;AACP,IAAA,IAAI7B,UAAU,EAAE;AACd6B,MAAAA,KAAK,CAACC,MAAM,CAACE,MAAM,EAAE,CAAA;AACvB,KAAA;AAEA,IAAA,IAAID,UAAU,CAACpB,WAAW,CAAC,EAAE;MAC3BA,WAAW,CAACkB,KAAK,CAAC,CAAA;AACpB,KAAA;GACD,EACD,CAAC7B,UAAU,EAAEC,QAAQ,EAAEU,WAAW,CACpC,CAAC,CAAA;AAED,EAAA,MAAMC,MAAM,GAAGgB,WAAW,CACxBC,KAAK,IAAI;AACP,IAAA,IAAIE,UAAU,CAAClB,UAAU,CAAC,EAAE;MAC1BA,UAAU,CAACgB,KAAK,CAAC,CAAA;AACnB,KAAA;AACF,GAAC,EACD,CAAChB,UAAU,CACb,CAAC,CAAA;EAED,MAAMoB,KAAK,GAAGA,MAAM;AAClB,IAAA,OACE7C,cAAA,CAAA8C,aAAA,CAACC,KAAO,EAAA;AACNC,MAAAA,GAAG,EAAEnB,YAAa;AAClBoB,MAAAA,EAAE,EAAEnB,QAAS;AACboB,MAAAA,GAAG,EAAEpB,QAAS;AACdK,MAAAA,SAAS,EAAEA,SAAU;AACrBgB,MAAAA,SAAS,EAAEhD,SAAU;AACrBC,MAAAA,IAAI,EAAEA,IAAK;AACXS,MAAAA,QAAQ,EAAEA,QAAS;AACnBC,MAAAA,QAAQ,EAAEA,QAAS;AACnBsC,MAAAA,KAAK,EAAErC,IAAK;AACZR,MAAAA,WAAW,EAAEA,WAAY;AACzBF,MAAAA,YAAY,EAAEA,YAAa;AAC3BC,MAAAA,KAAK,EAAEA,KAAM;AACb+C,MAAAA,KAAK,EAAErC,IAAK;AACZsC,MAAAA,KAAK,EAAEpC,IAAK;AACZqC,MAAAA,QAAQ,EAAE,CAACC,OAAO,CAAChD,IAAI,CAAE;AACzBc,MAAAA,OAAO,EAAEA,OAAQ;AACjBF,MAAAA,QAAQ,EAAEA,QAAS;AACnBI,MAAAA,MAAM,EAAEA,MAAAA;AAAO,KAChB,CAAC,CAAA;GAEL,CAAA;EAED,IAAIL,MAAM,EAAE,OAAO,IAAI,CAAA;AAEvB,EAAA,OACEnB,cAAA,CAAA8C,aAAA,CAACC,kBAAkB,EAAKnB,KAAK,EAC1B1B,KAAK,IACJF,cAAA,CAAA8C,aAAA,CAACC,KAAO,EAAA;AAACU,IAAAA,OAAO,EAAE3B,QAAS;AAAChB,IAAAA,QAAQ,EAAEA,QAAAA;AAAS,GAAA,EAC5CZ,KAAK,EACNF,cAAA,CAAA8C,aAAA,CAACC,gBAAkB,EAAA,IAAA,EAChB/B,IAAI,KAAK,SAAS,IAAIU,WAAW,EACjCV,IAAI,KAAK,SAAS,IAAIW,WACL,CACb,CACV,EACD3B,cAAA,CAAA8C,aAAA,CAACC,cAAgB,EAAA;AAACW,IAAAA,SAAS,EAAE,CAACF,OAAO,CAACtD,KAAK,CAAA;AAAE,GAAA,EAC1C,CAACmC,0BAA0B,IAAI,CAAC7B,IAAI,IAAIR,cAAA,CAAA8C,aAAA,CAAA,KAAA,EAAA,IAAA,EAAMD,KAAK,EAAQ,CAAC,EAC5DR,0BAA0B,IAAI,CAAC7B,IAAI,IAClCR,cAAA,CAAA8C,aAAA,CAAA,KAAA,EAAA,IAAA,EACE9C,cAAA,CAAA8C,aAAA,CAACa,OAAO,EAAA;AACNC,IAAAA,OAAO,EAAEvB,0BAA2B;AACpCa,IAAAA,GAAG,EAAC,UAAU;AACdW,IAAAA,SAAS,EAAC,YAAY;AACtBC,IAAAA,OAAO,EAAE,YAAa;AACtBC,IAAAA,MAAM,EAAE,MAAA;AAAO,GAAA,EAEdlB,KAAK,EACC,CACN,CACN,EACArC,IAAI,IAAI,CAACK,QAAQ,IAChBb,cAAA,CAAA8C,aAAA,CAAA,KAAA,EAAA,IAAA,EACE9C,cAAA,CAAA8C,aAAA,CAACkB,OAAO,EAAA;AACNC,IAAAA,KAAK,EAAE,KAAM;AACbL,IAAAA,OAAO,EACL5D,cAAA,CAAA8C,aAAA,CAACC,oBAAsB,EACpBpC,IAAAA,EAAAA,iBAAiB,GAChBX,cAAA,CAAA8C,aAAA,CAACC,UAAY,EAAA;AACXmB,MAAAA,IAAI,EAAE1D,IAAK;AACXkC,MAAAA,MAAM,EAAEjC,UAAW;MACnB0D,OAAO,EAAEC,CAAC,IAAI;AACZ,QAAA,IAAIzD,iBAAiB,EAAE;UACrByD,CAAC,CAACC,cAAc,EAAE,CAAA;AAClB3D,UAAAA,WAAW,EAAE,CAAA;AACf,SAAW;OACX;AACF4D,MAAAA,GAAG,EAAC,YAAA;AAAY,KAAA,EAEhBtE,cAAA,CAAA8C,aAAA,CAACyB,OAAQ,MAAE,CAAC,EACXtC,YACW,CAAC,GAEfjC,cAAA,CAAA8C,aAAA,CAACC,UAAY,EAAA;AAACmB,MAAAA,IAAI,EAAE1D,IAAK;AAACkC,MAAAA,MAAM,EAAEjC,UAAW;AAAC6D,MAAAA,GAAG,EAAC,YAAA;KAChDtE,EAAAA,cAAA,CAAA8C,aAAA,CAACyB,OAAQ,MAAE,CAAC,EACXtC,YACW,CAEM,CACzB;AACDiB,IAAAA,GAAG,EAAC,UAAU;AACdW,IAAAA,SAAS,EAAC,cAAc;AACxBC,IAAAA,OAAO,EAAC,SAAS;AACjBC,IAAAA,MAAM,EAAE,MAAO;AACfS,IAAAA,WAAW,EAAE,IAAA;GAEZ3B,EAAAA,KAAK,EACC,CACN,CACN,EACArC,IAAI,IAAIK,QAAQ,IACfb,cAAA,CAAA8C,aAAA,CAACC,qBAAuB,EACtB/C,IAAAA,EAAAA,cAAA,CAAA8C,aAAA,CAACC,UAAY,EAAA;AACXmB,IAAAA,IAAI,EAAE1D,IAAK;AACX8D,IAAAA,GAAG,EAAC,YAAY;AAChBG,IAAAA,KAAK,EAAE;AAAEC,MAAAA,OAAO,EAAE,cAAA;KAAiB;AACnChC,IAAAA,MAAM,EAAEjC,UAAAA;GAEPwB,EAAAA,YACW,CACS,CAC1B,EACA,CAACpB,QAAQ,IAAI,CAACC,QAAQ,IACrBd,cAAA,CAAA8C,aAAA,CAAA9C,cAAA,CAAA2E,QAAA,EACE3E,IAAAA,EAAAA,cAAA,CAAA8C,aAAA,CAACC,kBAAoB,EAAA;AAACM,IAAAA,KAAK,EAAErC,IAAAA;AAAK,GAAA,EAChChB,cAAA,CAAA8C,aAAA,CAAC8B,WAAY,MAAE,CACK,CAAC,EACtBpB,OAAO,CAACtD,KAAK,CAAC,IACbF,cAAA,CAAA8C,aAAA,CAACC,qBAAuB,EACrB/B,IAAAA,EAAAA,IAAI,KAAK,SAAS,IAAIU,WAAW,EACjCV,IAAI,KAAK,SAAS,IAAIW,WACA,CAE3B,CAEY,CACA,CAAC,CAAA;AAEzB,CAAC,EAAC;AAEF5B,gBAAgB,CAAC8E,SAAS,GAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA,KAAG,YAAA,GAAA;EAI3B9E,KAAK,EAAE+E,SAAS,CAACC,MAAM;EAIvBC,OAAO,EAAEF,SAAS,CAACG,IAAI;EAIvBjF,SAAS,EAAE8E,SAAS,CAACC,MAAM;EAI3B9E,IAAI,EAAE6E,SAAS,CAACC,MAAM;EAItB7E,YAAY,EAAE4E,SAAS,CAACC,MAAM;EAI9B5E,KAAK,EAAE2E,SAAS,CAACC,MAAM;EAIvB3E,WAAW,EAAE0E,SAAS,CAACC,MAAM;EAI7B1E,IAAI,EAAEyE,SAAS,CAACC,MAAM;AAItBzE,EAAAA,UAAU,EAAEwE,SAAS,CAACI,KAAK,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;EAInE3E,WAAW,EAAEuE,SAAS,CAACK,IAAI;EAI3B3E,iBAAiB,EAAEsE,SAAS,CAACG,IAAI;EAIjCxE,UAAU,EAAEqE,SAAS,CAACG,IAAI;EAI1BvE,QAAQ,EAAEoE,SAAS,CAACG,IAAI;EAIxBtE,QAAQ,EAAEmE,SAAS,CAACG,IAAI;EAIxBrE,IAAI,EAAEkE,SAAS,CAACG,IAAI;AAQpBG,EAAAA,OAAO,EAAEN,SAAS,CAACO,SAAS,CAAC,CAACP,SAAS,CAACG,IAAI,EAAEH,SAAS,CAACC,MAAM,CAAC,CAAC;EAIhEhE,IAAI,EAAE+D,SAAS,CAACG,IAAI;EAIpBjE,MAAM,EAAE8D,SAAS,CAACG,IAAI;EAItBhE,QAAQ,EAAE6D,SAAS,CAACK,IAAI;EAIxBhE,OAAO,EAAE2D,SAAS,CAACK,IAAI;EAIvB9D,MAAM,EAAEyD,SAAS,CAACK,IAAI;AAItBtE,EAAAA,IAAI,EAAEiE,SAAS,CAACI,KAAK,CAAC,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;EAIrEpE,kBAAkB,EAAEgE,SAAS,CAACC,MAAM;EAIpCxD,WAAW,EAAEuD,SAAS,CAACQ,OAAO;EAI9B9D,WAAW,EAAEsD,SAAS,CAACQ,OAAAA;AACzB,CAAC,GAAA,EAAA,CAAA;AAED1F,gBAAgB,CAAC2F,YAAY,GAAG;AAC9BvF,EAAAA,SAAS,EAAE,MAAM;AACjBS,EAAAA,UAAU,EAAE,IAAI;AAChBH,EAAAA,UAAU,EAAE,OAAO;AACnBS,EAAAA,IAAI,EAAE,KAAK;AACXL,EAAAA,QAAQ,EAAE,KAAK;AACfI,EAAAA,kBAAkB,EAAE,EAAE;AACtBF,EAAAA,IAAI,EAAE,KAAK;AACXI,EAAAA,MAAM,EAAE,KAAK;AACbH,EAAAA,IAAI,EAAE,EAAE;AACRN,EAAAA,WAAW,EAAEA,MAAM,EAAE;AACrBC,EAAAA,iBAAiB,EAAE,KAAK;EACxBS,QAAQ,EAAEA,MAAM,EAAC;AACnB,CAAC;;;;"}
|