@activecollab/components 2.0.163 → 2.0.164
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/Input/InputUrl.js +48 -11
- package/dist/cjs/components/Input/InputUrl.js.map +1 -1
- package/dist/cjs/components/Input/Styles.js.map +1 -1
- package/dist/esm/components/Input/InputUrl.d.ts +1 -0
- package/dist/esm/components/Input/InputUrl.d.ts.map +1 -1
- package/dist/esm/components/Input/InputUrl.js +46 -11
- package/dist/esm/components/Input/InputUrl.js.map +1 -1
- package/dist/esm/components/Input/Styles.d.ts +1 -1
- package/dist/esm/components/Input/Styles.d.ts.map +1 -1
- package/dist/esm/components/Input/Styles.js.map +1 -1
- package/dist/index.js +47 -11
- package/dist/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/package.json +1 -1
|
@@ -7,8 +7,9 @@ exports.InputUrl = void 0;
|
|
|
7
7
|
var _react = _interopRequireWildcard(require("react"));
|
|
8
8
|
var _Input = require("./Input");
|
|
9
9
|
var _InputSelect = require("./InputSelect");
|
|
10
|
+
var _Styles = require("./Styles");
|
|
10
11
|
var _utils = require("../../utils");
|
|
11
|
-
var _excluded = ["size", "disabled", "value", "onChange"];
|
|
12
|
+
var _excluded = ["size", "disabled", "value", "onChange", "scheme"];
|
|
12
13
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
|
|
13
14
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
15
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
@@ -20,7 +21,7 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
|
|
|
20
21
|
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
21
22
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
22
23
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
23
|
-
var
|
|
24
|
+
var defaultOptions = [{
|
|
24
25
|
id: "https://",
|
|
25
26
|
name: "https://"
|
|
26
27
|
}, {
|
|
@@ -34,9 +35,28 @@ var InputUrl = exports.InputUrl = /*#__PURE__*/(0, _react.forwardRef)(function (
|
|
|
34
35
|
_ref$value = _ref.value,
|
|
35
36
|
defaultValue = _ref$value === void 0 ? "" : _ref$value,
|
|
36
37
|
onChange = _ref.onChange,
|
|
38
|
+
scheme = _ref.scheme,
|
|
37
39
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
38
40
|
var inputRef = (0, _react.useRef)(null);
|
|
39
41
|
var handleRef = (0, _utils.useForkRef)(ref, inputRef);
|
|
42
|
+
var options = (0, _react.useMemo)(function () {
|
|
43
|
+
if (scheme && scheme.length > 0) {
|
|
44
|
+
if (Array.isArray(scheme)) {
|
|
45
|
+
return scheme.map(function (i) {
|
|
46
|
+
return {
|
|
47
|
+
id: i,
|
|
48
|
+
name: i
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
} else {
|
|
52
|
+
return [{
|
|
53
|
+
id: scheme,
|
|
54
|
+
name: scheme
|
|
55
|
+
}];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return defaultOptions;
|
|
59
|
+
}, [scheme]);
|
|
40
60
|
var _useState = (0, _react.useState)(options[0].id),
|
|
41
61
|
_useState2 = _slicedToArray(_useState, 2),
|
|
42
62
|
prefix = _useState2[0],
|
|
@@ -85,14 +105,14 @@ var InputUrl = exports.InputUrl = /*#__PURE__*/(0, _react.forwardRef)(function (
|
|
|
85
105
|
},
|
|
86
106
|
// eslint-disable-next-line
|
|
87
107
|
[onChange, prefix]);
|
|
88
|
-
var handleSelectChange = function
|
|
108
|
+
var handleSelectChange = (0, _react.useCallback)(function (val) {
|
|
89
109
|
setPrefix(val);
|
|
90
110
|
setTimeout(function () {
|
|
91
111
|
var _inputRef$current;
|
|
92
112
|
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
|
|
93
113
|
}, 200);
|
|
94
114
|
typeof onChange === "function" && onChange(val + value);
|
|
95
|
-
};
|
|
115
|
+
}, [onChange, value]);
|
|
96
116
|
var handlePaste = function handlePaste(e) {
|
|
97
117
|
e.preventDefault();
|
|
98
118
|
var paste = e.clipboardData.getData("text");
|
|
@@ -107,6 +127,29 @@ var InputUrl = exports.InputUrl = /*#__PURE__*/(0, _react.forwardRef)(function (
|
|
|
107
127
|
onChange(newPrefix + newValue);
|
|
108
128
|
}
|
|
109
129
|
};
|
|
130
|
+
var startAdornmentComponent = (0, _react.useMemo)(function () {
|
|
131
|
+
if (options.length > 1) {
|
|
132
|
+
return /*#__PURE__*/_react.default.createElement(_InputSelect.InputSelect, {
|
|
133
|
+
key: prefix,
|
|
134
|
+
size: size,
|
|
135
|
+
onChange: handleSelectChange,
|
|
136
|
+
options: options,
|
|
137
|
+
selected: prefix,
|
|
138
|
+
disabled: disabled
|
|
139
|
+
});
|
|
140
|
+
} else {
|
|
141
|
+
return /*#__PURE__*/_react.default.createElement(_Styles.StyledInputSelectTrigger, {
|
|
142
|
+
key: prefix,
|
|
143
|
+
$disabled: disabled,
|
|
144
|
+
$size: size
|
|
145
|
+
}, prefix);
|
|
146
|
+
}
|
|
147
|
+
}, [disabled, handleSelectChange, options, prefix, size]);
|
|
148
|
+
(0, _react.useEffect)(function () {
|
|
149
|
+
if (options.length > 0) {
|
|
150
|
+
setPrefix(options[0].id);
|
|
151
|
+
}
|
|
152
|
+
}, [options]);
|
|
110
153
|
return /*#__PURE__*/_react.default.createElement(_Input.Input, _extends({}, rest, {
|
|
111
154
|
ref: handleRef,
|
|
112
155
|
size: size,
|
|
@@ -116,13 +159,7 @@ var InputUrl = exports.InputUrl = /*#__PURE__*/(0, _react.forwardRef)(function (
|
|
|
116
159
|
onPaste: handlePaste,
|
|
117
160
|
onChange: handleChange,
|
|
118
161
|
"data-testid": "InputUrl",
|
|
119
|
-
startAdornment:
|
|
120
|
-
size: size,
|
|
121
|
-
onChange: handleSelectChange,
|
|
122
|
-
options: options,
|
|
123
|
-
selected: prefix,
|
|
124
|
-
disabled: disabled
|
|
125
|
-
})
|
|
162
|
+
startAdornment: startAdornmentComponent
|
|
126
163
|
}));
|
|
127
164
|
});
|
|
128
165
|
InputUrl.displayName = "InputUrl";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputUrl.js","names":["_react","_interopRequireWildcard","require","_Input","_InputSelect","_utils","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","len","arr2","l","Symbol","iterator","f","next","done","push","value","return","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","options","id","InputUrl","exports","forwardRef","_ref","ref","_ref$size","size","disabled","_ref$value","defaultValue","onChange","rest","inputRef","useRef","handleRef","useForkRef","_useState","useState","_useState2","prefix","setPrefix","_useState3","_useState4","setValue","separatePrefixFromValue","fullValue","newPrefix","newValue","forEach","option","startsWith","replace","useEffect","_separatePrefixFromVa","handleChange","useCallback","inputValue","_separatePrefixFromVa2","handleSelectChange","val","setTimeout","_inputRef$current","current","focus","handlePaste","preventDefault","paste","clipboardData","getData","_separatePrefixFromVa3","createElement","Input","type","onPaste","startAdornment","InputSelect","selected","displayName"],"sources":["../../../../src/components/Input/InputUrl.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport { Input, InputProps } from \"./Input\";\nimport { InputSelect } from \"./InputSelect\";\nimport { useForkRef } from \"../../utils\";\n\nexport interface InputUrlProps\n extends Omit<\n InputProps,\n \"type\" | \"startAdornment\" | \"onChange\" | \"value\" | \"size\"\n > {\n /** Input value */\n value?: string;\n /** onChange function */\n onChange?: (val: string) => void;\n /** Input size */\n size?: \"regular\" | \"big\" | \"biggest\";\n}\n\nconst options = [\n { id: \"https://\", name: \"https://\" },\n { id: \"http://\", name: \"http://\" },\n];\n\nexport const InputUrl = forwardRef<HTMLInputElement, InputUrlProps>(\n (\n { size = \"regular\", disabled, value: defaultValue = \"\", onChange, ...rest },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n const [prefix, setPrefix] = useState(options[0].id);\n\n const [value, setValue] = useState(\"\");\n\n const separatePrefixFromValue = (\n fullValue: string\n ): { newPrefix: string; newValue: string } => {\n let newPrefix = prefix;\n let newValue = fullValue;\n\n options.forEach((option) => {\n if (fullValue.startsWith(option.id)) {\n newPrefix = option.id;\n newValue = fullValue.replace(option.id, \"\");\n }\n });\n\n setValue(newValue);\n return { newPrefix, newValue };\n };\n\n useEffect(() => {\n const { newPrefix, newValue } = separatePrefixFromValue(defaultValue);\n setPrefix(newPrefix);\n setValue(newValue);\n // eslint-disable-next-line\n }, [defaultValue]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n if (!inputValue.startsWith(prefix)) {\n const { newPrefix, newValue } = separatePrefixFromValue(inputValue);\n setPrefix(newPrefix);\n setValue(newValue);\n typeof onChange === \"function\" && onChange(newPrefix + newValue);\n } else {\n const newValue = inputValue.replace(prefix, \"\");\n setValue(newValue);\n typeof onChange === \"function\" && onChange(prefix + newValue);\n }\n },\n // eslint-disable-next-line\n [onChange, prefix]\n );\n\n const handleSelectChange = (val: string | number | (string | number)[]) => {\n setPrefix(val as string);\n setTimeout(() => {\n inputRef.current?.focus();\n }, 200);\n typeof onChange === \"function\" && onChange((val as string) + value);\n };\n\n const handlePaste = (e: React.ClipboardEvent) => {\n e.preventDefault();\n const paste = e.clipboardData.getData(\"text\");\n const { newPrefix, newValue } = separatePrefixFromValue(paste);\n if (newPrefix !== prefix) {\n setPrefix(newPrefix);\n }\n setValue(newValue);\n\n if (typeof onChange === \"function\") {\n onChange(newPrefix + newValue);\n }\n };\n\n return (\n <Input\n {...rest}\n ref={handleRef}\n size={size}\n value={value}\n disabled={disabled}\n type=\"text\"\n onPaste={handlePaste}\n onChange={handleChange}\n data-testid=\"InputUrl\"\n startAdornment={\n <InputSelect\n size={size}\n onChange={handleSelectChange}\n options={options}\n selected={prefix}\n disabled={disabled}\n />\n }\n />\n );\n }\n);\n\nInputUrl.displayName = \"InputUrl\";\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"InputUrl.js","names":["_react","_interopRequireWildcard","require","_Input","_InputSelect","_Styles","_utils","_excluded","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","_slicedToArray","arr","_arrayWithHoles","_iterableToArrayLimit","_unsupportedIterableToArray","_nonIterableRest","TypeError","o","minLen","_arrayLikeToArray","toString","slice","constructor","name","Array","from","test","len","arr2","l","Symbol","iterator","f","next","done","push","value","return","isArray","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","sourceKeys","keys","defaultOptions","id","InputUrl","exports","forwardRef","_ref","ref","_ref$size","size","disabled","_ref$value","defaultValue","onChange","scheme","rest","inputRef","useRef","handleRef","useForkRef","options","useMemo","map","_useState","useState","_useState2","prefix","setPrefix","_useState3","_useState4","setValue","separatePrefixFromValue","fullValue","newPrefix","newValue","forEach","option","startsWith","replace","useEffect","_separatePrefixFromVa","handleChange","useCallback","inputValue","_separatePrefixFromVa2","handleSelectChange","val","setTimeout","_inputRef$current","current","focus","handlePaste","preventDefault","paste","clipboardData","getData","_separatePrefixFromVa3","startAdornmentComponent","createElement","InputSelect","selected","StyledInputSelectTrigger","$disabled","$size","Input","type","onPaste","startAdornment","displayName"],"sources":["../../../../src/components/Input/InputUrl.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { Input, InputProps } from \"./Input\";\nimport { InputSelect } from \"./InputSelect\";\nimport { StyledInputSelectTrigger } from \"./Styles\";\nimport { useForkRef } from \"../../utils\";\n\nexport interface InputUrlProps\n extends Omit<\n InputProps,\n \"type\" | \"startAdornment\" | \"onChange\" | \"value\" | \"size\"\n > {\n /** Input value */\n value?: string;\n /** onChange function */\n onChange?: (val: string) => void;\n /** Input size */\n size?: \"regular\" | \"big\" | \"biggest\";\n scheme?: string[] | string;\n}\n\nconst defaultOptions = [\n { id: \"https://\", name: \"https://\" },\n { id: \"http://\", name: \"http://\" },\n];\n\nexport const InputUrl = forwardRef<HTMLInputElement, InputUrlProps>(\n (\n {\n size = \"regular\",\n disabled,\n value: defaultValue = \"\",\n onChange,\n scheme,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const options = useMemo(() => {\n if (scheme && scheme.length > 0) {\n if (Array.isArray(scheme)) {\n return scheme.map((i) => ({ id: i, name: i }));\n } else {\n return [{ id: scheme, name: scheme }];\n }\n }\n return defaultOptions;\n }, [scheme]);\n\n const [prefix, setPrefix] = useState(options[0].id);\n\n const [value, setValue] = useState(\"\");\n\n const separatePrefixFromValue = (\n fullValue: string\n ): { newPrefix: string; newValue: string } => {\n let newPrefix = prefix;\n let newValue = fullValue;\n\n options.forEach((option) => {\n if (fullValue.startsWith(option.id)) {\n newPrefix = option.id;\n newValue = fullValue.replace(option.id, \"\");\n }\n });\n\n setValue(newValue);\n return { newPrefix, newValue };\n };\n\n useEffect(() => {\n const { newPrefix, newValue } = separatePrefixFromValue(defaultValue);\n setPrefix(newPrefix);\n setValue(newValue);\n // eslint-disable-next-line\n }, [defaultValue]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n if (!inputValue.startsWith(prefix)) {\n const { newPrefix, newValue } = separatePrefixFromValue(inputValue);\n setPrefix(newPrefix);\n setValue(newValue);\n typeof onChange === \"function\" && onChange(newPrefix + newValue);\n } else {\n const newValue = inputValue.replace(prefix, \"\");\n setValue(newValue);\n typeof onChange === \"function\" && onChange(prefix + newValue);\n }\n },\n // eslint-disable-next-line\n [onChange, prefix]\n );\n\n const handleSelectChange = useCallback(\n (val: string | number | (string | number)[]) => {\n setPrefix(val as string);\n setTimeout(() => {\n inputRef.current?.focus();\n }, 200);\n typeof onChange === \"function\" && onChange((val as string) + value);\n },\n [onChange, value]\n );\n\n const handlePaste = (e: React.ClipboardEvent) => {\n e.preventDefault();\n const paste = e.clipboardData.getData(\"text\");\n const { newPrefix, newValue } = separatePrefixFromValue(paste);\n if (newPrefix !== prefix) {\n setPrefix(newPrefix);\n }\n setValue(newValue);\n\n if (typeof onChange === \"function\") {\n onChange(newPrefix + newValue);\n }\n };\n\n const startAdornmentComponent = useMemo(() => {\n if (options.length > 1) {\n return (\n <InputSelect\n key={prefix}\n size={size}\n onChange={handleSelectChange}\n options={options}\n selected={prefix}\n disabled={disabled}\n />\n );\n } else {\n return (\n <StyledInputSelectTrigger\n key={prefix}\n $disabled={disabled}\n $size={size}\n >\n {prefix}\n </StyledInputSelectTrigger>\n );\n }\n }, [disabled, handleSelectChange, options, prefix, size]);\n\n useEffect(() => {\n if (options.length > 0) {\n setPrefix(options[0].id);\n }\n }, [options]);\n\n return (\n <Input\n {...rest}\n ref={handleRef}\n size={size}\n value={value}\n disabled={disabled}\n type=\"text\"\n onPaste={handlePaste}\n onChange={handleChange}\n data-testid=\"InputUrl\"\n startAdornment={startAdornmentComponent}\n />\n );\n }\n);\n\nInputUrl.displayName = \"InputUrl\";\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.js","names":["_styledComponents","_interopRequireWildcard","require","_BoxSizingStyle","_FontStyle","_InputResetStyle","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","StyledInputWrapper","exports","styled","div","withConfig","displayName","componentId","FontStyle","BoxSizingStyle","props","$mode","css","$size","$disabled","$invalid","StyledInput","input","InputResetStyle","disabled","$loading","align","StyledPasswordIndicatorWrapper","StyledPasswordIndicator","$strength","$index","StyledInputSelectTrigger","StyledFlagTriggerLabel","span","_ref","StyledOptionFlag","StyledOptionName","StyledOptionWrapper"],"sources":["../../../../src/components/Input/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\n\nimport { InputProps } from \"./Input\";\nimport { InputMode, InputSize } from \"./types\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\nimport { InputResetStyle } from \"../InputResetStyle\";\n\ninterface StyledInputWrapperProps {\n $size?: InputSize;\n $invalid?: boolean;\n $disabled?: boolean;\n $mode?: InputMode;\n}\n\nexport const StyledInputWrapper = styled.div<StyledInputWrapperProps>`\n align-items: center;\n background-color: var(--input-background-color);\n border-color: var(--color-theme-500);\n border-radius: 8px;\n border-style: solid;\n border-width: 1px;\n cursor: text;\n display: flex;\n height: 32px;\n padding-block: 4px;\n padding-inline: 4px;\n transition: all 0.3s ease;\n width: 360px;\n\n ${FontStyle}\n ${BoxSizingStyle}\n\n\n ${(props) =>\n props.$mode === \"flat\" &&\n css`\n background-color: transparent;\n border: none;\n border-radius: none;\n `}\n\n\n ${(props) =>\n props.$size === \"small\" &&\n css`\n border-radius: 6px;\n height: 24px;\n `}\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n height: 40px;\n `}\n\n ${(props) =>\n props.$size === \"biggest\" &&\n css`\n height: 48px;\n `}\n\n ${(props) =>\n props.$disabled &&\n css`\n cursor: default;\n opacity: 50%;\n `}\n\n ${(props) =>\n !props.$disabled &&\n !props.$invalid &&\n css`\n &:focus-within,\n &:hover {\n border-color: var(--color-primary);\n }\n `}\n\n ${(props) =>\n !props.$disabled &&\n props.$invalid &&\n props.$mode === \"outlined\" &&\n css`\n border-color: var(--red-alert);\n `}\n`;\n\nStyledInputWrapper.displayName = \"StyledInputWrapper\";\n\ninterface StyledInputProps extends Pick<InputProps, \"align\"> {\n $size?: InputSize;\n $loading?: boolean;\n $mode?: InputMode;\n $invalid?: boolean;\n}\n\nexport const StyledInput = styled.input<StyledInputProps>`\n ${BoxSizingStyle}\n ${InputResetStyle}\n background-color: var(--input-background-color);\n border: none;\n color: var(--color-theme-900);\n /* @TODO: Prebaciti velicine fontova, weight, razmake, itd... u naše varijable. */\n font-size: 0.875rem;\n font-weight: 400;\n letter-spacing: 0.02em;\n margin-block: 0;\n margin-inline: 4px;\n outline: none;\n padding: 0;\n width: 100%;\n\n ${(props) =>\n props.$mode === \"flat\" &&\n css`\n background-color: transparent;\n `}\n\n &::placeholder {\n color: var(--color-theme-transparent-500);\n }\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n font-size: 1rem;\n `}\n\n ${(props) =>\n props.$size === \"biggest\" &&\n css`\n font-size: 1.25rem;\n font-weight: 700;\n `}\n\n ${(props) =>\n props.disabled &&\n css`\n cursor: default;\n `}\n\n ${(props) =>\n props.$loading &&\n css`\n cursor: progress;\n `}\n\n ${(props) =>\n props.align &&\n css`\n text-align: ${props.align};\n `}\n\n ${(props) =>\n props.$mode === \"flat\" &&\n props.$invalid &&\n css`\n color: var(--red-alert);\n `}\n`;\n\nStyledInput.displayName = \"StyledInput\";\n\nexport const StyledPasswordIndicatorWrapper = styled.div`\n display: flex;\n gap: 2px;\n margin-top: 6px;\n margin-bottom: 4px;\n`;\n\nStyledPasswordIndicatorWrapper.displayName = \"StyledPasswordIndicatorWrapper\";\n\nexport const StyledPasswordIndicator = styled.div<{\n $strength: number;\n $index: number;\n}>`\n width: 100%;\n height: 4px;\n border-radius: 6px;\n background-color: ${(props) => {\n const { $strength, $index } = props;\n\n if ($strength === 0) {\n return \"var(--color-theme-300)\";\n } else if ($strength === 1) {\n return $index === 0 ? \"var(--red-alert)\" : \"var(--color-theme-300)\";\n } else if ($strength === 2) {\n return $index < 2 ? \"var(--color-orange)\" : \"var(--color-theme-300)\";\n } else if ($strength === 3) {\n return $index < 3 ? \"var(--color-blue-sky)\" : \"var(--color-theme-300)\";\n } else {\n return \"var(--color-sucess-green)\";\n }\n }};\n`;\n\nStyledPasswordIndicator.displayName = \"StyledPasswordIndicator\";\n\nexport const StyledInputSelectTrigger = styled.div<{\n $size: string;\n $disabled: boolean;\n}>`\n display: flex;\n gap: 6px;\n align-items: center;\n margin-right: 2px;\n margin-left: 8px;\n color: var(--color-theme-700);\n font-weight: 400;\n letter-spacing: 0.02em;\n font-size: 0.875rem;\n flex-shrink: 0;\n cursor: ${(props) => {\n if (props.$disabled) {\n return \"unset\";\n }\n return \"pointer\";\n }};\n\n pointer-events: ${(props) => {\n if (props.$disabled) {\n return \"none\";\n }\n return \"unset\";\n }};\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n font-size: 1rem;\n `}\n`;\n\nStyledInputSelectTrigger.displayName = \"StyledInputSelectTrigger\";\n\nexport const StyledFlagTriggerLabel = styled.span<{\n $size: \"small\" | \"regular\" | \"big\";\n}>`\n font-size: ${({ $size }) => ($size === \"small\" ? \"20px\" : \"24px\")};\n`;\n\nStyledFlagTriggerLabel.displayName = \"StyledFlagTriggerLabel\";\n\nexport const StyledOptionFlag = styled.span`\n font-size: 24px;\n margin-right: 4px;\n`;\n\nStyledFlagTriggerLabel.displayName = \"StyledOptionFlag\";\n\nexport const StyledOptionName = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nStyledOptionName.displayName = \"StyledOptionName\";\n\nexport const StyledOptionWrapper = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-right: 8px;\n display: flex;\n justify-items: center;\n align-items: center;\n`;\n\nStyledOptionWrapper.displayName = \"StyledOptionWrapper\";\n"],"mappings":";;;;;;AAAA,IAAAA,iBAAA,GAAAC,uBAAA,CAAAC,OAAA;AAIA,IAAAC,eAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,gBAAA,GAAAH,OAAA;AAAqD,SAAAI,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAjB,CAAA,EAAAc,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAgB,GAAA,CAAAnB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAS9C,IAAMY,kBAAkB,GAAAC,OAAA,CAAAD,kBAAA,GAAGE,yBAAM,CAACC,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gUAexCC,oBAAS,EACTC,8BAAc,EAGd,UAACC,KAAK;EAAA,OACNA,KAAK,CAACC,KAAK,KAAK,MAAM,QACtBC,qBAAG,mEAIF;AAAA,GAGD,UAACF,KAAK;EAAA,OACNA,KAAK,CAACG,KAAK,KAAK,OAAO,QACvBD,qBAAG,qCAGF;AAAA,GAED,UAACF,KAAK;EAAA,OACNA,KAAK,CAACG,KAAK,KAAK,KAAK,QACrBD,qBAAG,mBAEF;AAAA,GAEC,UAACF,KAAK;EAAA,OACRA,KAAK,CAACG,KAAK,KAAK,SAAS,QACzBD,qBAAG,mBAEF;AAAA,GAED,UAACF,KAAK;EAAA,OACNA,KAAK,CAACI,SAAS,QACfF,qBAAG,kCAGF;AAAA,GAED,UAACF,KAAK;EAAA,OACN,CAACA,KAAK,CAACI,SAAS,IAChB,CAACJ,KAAK,CAACK,QAAQ,QACfH,qBAAG,iEAKF;AAAA,GAED,UAACF,KAAK;EAAA,OACN,CAACA,KAAK,CAACI,SAAS,IAChBJ,KAAK,CAACK,QAAQ,IACdL,KAAK,CAACC,KAAK,KAAK,UAAU,QAC1BC,qBAAG,qCAEF;AAAA,EACJ;AAEDX,kBAAkB,CAACK,WAAW,GAAG,oBAAoB;AAS9C,IAAMU,WAAW,GAAAd,OAAA,CAAAc,WAAA,GAAGb,yBAAM,CAACc,KAAK,CAAAZ,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kUACnCE,8BAAc,EACdS,gCAAe,EAcf,UAACR,KAAK;EAAA,OACNA,KAAK,CAACC,KAAK,KAAK,MAAM,QACtBC,qBAAG,oCAEF;AAAA,GAMD,UAACF,KAAK;EAAA,OACNA,KAAK,CAACG,KAAK,KAAK,KAAK,QACrBD,qBAAG,sBAEF;AAAA,GAED,UAACF,KAAK;EAAA,OACNA,KAAK,CAACG,KAAK,KAAK,SAAS,QACzBD,qBAAG,yCAGF;AAAA,GAED,UAACF,KAAK;EAAA,OACNA,KAAK,CAACS,QAAQ,QACdP,qBAAG,sBAEF;AAAA,GAED,UAACF,KAAK;EAAA,OACNA,KAAK,CAACU,QAAQ,QACdR,qBAAG,uBAEF;AAAA,GAED,UAACF,KAAK;EAAA,OACNA,KAAK,CAACW,KAAK,QACXT,qBAAG,wBACaF,KAAK,CAACW,KAAK,CAC1B;AAAA,GAEC,UAACX,KAAK;EAAA,OACRA,KAAK,CAACC,KAAK,KAAK,MAAM,IACtBD,KAAK,CAACK,QAAQ,QACdH,qBAAG,8BAEF;AAAA,EACJ;AAEDI,WAAW,CAACV,WAAW,GAAG,aAAa;AAEhC,IAAMgB,8BAA8B,GAAApB,OAAA,CAAAoB,8BAAA,GAAGnB,yBAAM,CAACC,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8DAKvD;AAEDe,8BAA8B,CAAChB,WAAW,GAAG,gCAAgC;AAEtE,IAAMiB,uBAAuB,GAAArB,OAAA,CAAAqB,uBAAA,GAAGpB,yBAAM,CAACC,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uEAO3B,UAACG,KAAK,EAAK;EAC7B,IAAQc,SAAS,GAAad,KAAK,CAA3Bc,SAAS;IAAEC,MAAM,GAAKf,KAAK,CAAhBe,MAAM;EAEzB,IAAID,SAAS,KAAK,CAAC,EAAE;IACnB,OAAO,wBAAwB;EACjC,CAAC,MAAM,IAAIA,SAAS,KAAK,CAAC,EAAE;IAC1B,OAAOC,MAAM,KAAK,CAAC,GAAG,kBAAkB,GAAG,wBAAwB;EACrE,CAAC,MAAM,IAAID,SAAS,KAAK,CAAC,EAAE;IAC1B,OAAOC,MAAM,GAAG,CAAC,GAAG,qBAAqB,GAAG,wBAAwB;EACtE,CAAC,MAAM,IAAID,SAAS,KAAK,CAAC,EAAE;IAC1B,OAAOC,MAAM,GAAG,CAAC,GAAG,uBAAuB,GAAG,wBAAwB;EACxE,CAAC,MAAM;IACL,OAAO,2BAA2B;EACpC;AACF,CAAC,CACF;AAEDF,uBAAuB,CAACjB,WAAW,GAAG,yBAAyB;AAExD,IAAMoB,wBAAwB,GAAAxB,OAAA,CAAAwB,wBAAA,GAAGvB,yBAAM,CAACC,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0NActC,UAACG,KAAK,EAAK;EACnB,IAAIA,KAAK,CAACI,SAAS,EAAE;IACnB,OAAO,OAAO;EAChB;EACA,OAAO,SAAS;AAClB,CAAC,EAEiB,UAACJ,KAAK,EAAK;EAC3B,IAAIA,KAAK,CAACI,SAAS,EAAE;IACnB,OAAO,MAAM;EACf;EACA,OAAO,OAAO;AAChB,CAAC,EAEC,UAACJ,KAAK;EAAA,OACNA,KAAK,CAACG,KAAK,KAAK,KAAK,QACrBD,qBAAG,sBAEF;AAAA,EACJ;AAEDc,wBAAwB,CAACpB,WAAW,GAAG,0BAA0B;AAE1D,IAAMqB,sBAAsB,GAAAzB,OAAA,CAAAyB,sBAAA,GAAGxB,yBAAM,CAACyB,IAAI,CAAAvB,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wBAGlC,UAAAsB,IAAA;EAAA,IAAGhB,KAAK,GAAAgB,IAAA,CAALhB,KAAK;EAAA,OAAQA,KAAK,KAAK,OAAO,GAAG,MAAM,GAAG,MAAM;AAAA,CAAC,CAClE;AAEDc,sBAAsB,CAACrB,WAAW,GAAG,wBAAwB;AAEtD,IAAMwB,gBAAgB,GAAA5B,OAAA,CAAA4B,gBAAA,GAAG3B,yBAAM,CAACyB,IAAI,CAAAvB,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wCAG1C;AAEDoB,sBAAsB,CAACrB,WAAW,GAAG,kBAAkB;AAEhD,IAAMyB,gBAAgB,GAAA7B,OAAA,CAAA6B,gBAAA,GAAG5B,yBAAM,CAACyB,IAAI,CAAAvB,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kEAI1C;AAEDwB,gBAAgB,CAACzB,WAAW,GAAG,kBAAkB;AAE1C,IAAM0B,mBAAmB,GAAA9B,OAAA,CAAA8B,mBAAA,GAAG7B,yBAAM,CAACyB,IAAI,CAAAvB,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wIAQ7C;AAEDyB,mBAAmB,CAAC1B,WAAW,GAAG,qBAAqB"}
|
|
1
|
+
{"version":3,"file":"Styles.js","names":["_styledComponents","_interopRequireWildcard","require","_BoxSizingStyle","_FontStyle","_InputResetStyle","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","StyledInputWrapper","exports","styled","div","withConfig","displayName","componentId","FontStyle","BoxSizingStyle","props","$mode","css","$size","$disabled","$invalid","StyledInput","input","InputResetStyle","disabled","$loading","align","StyledPasswordIndicatorWrapper","StyledPasswordIndicator","$strength","$index","StyledInputSelectTrigger","StyledFlagTriggerLabel","span","_ref","StyledOptionFlag","StyledOptionName","StyledOptionWrapper"],"sources":["../../../../src/components/Input/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\n\nimport { InputProps } from \"./Input\";\nimport { InputMode, InputSize } from \"./types\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\nimport { InputResetStyle } from \"../InputResetStyle\";\n\ninterface StyledInputWrapperProps {\n $size?: InputSize;\n $invalid?: boolean;\n $disabled?: boolean;\n $mode?: InputMode;\n}\n\nexport const StyledInputWrapper = styled.div<StyledInputWrapperProps>`\n align-items: center;\n background-color: var(--input-background-color);\n border-color: var(--color-theme-500);\n border-radius: 8px;\n border-style: solid;\n border-width: 1px;\n cursor: text;\n display: flex;\n height: 32px;\n padding-block: 4px;\n padding-inline: 4px;\n transition: all 0.3s ease;\n width: 360px;\n\n ${FontStyle}\n ${BoxSizingStyle}\n\n\n ${(props) =>\n props.$mode === \"flat\" &&\n css`\n background-color: transparent;\n border: none;\n border-radius: none;\n `}\n\n\n ${(props) =>\n props.$size === \"small\" &&\n css`\n border-radius: 6px;\n height: 24px;\n `}\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n height: 40px;\n `}\n\n ${(props) =>\n props.$size === \"biggest\" &&\n css`\n height: 48px;\n `}\n\n ${(props) =>\n props.$disabled &&\n css`\n cursor: default;\n opacity: 50%;\n `}\n\n ${(props) =>\n !props.$disabled &&\n !props.$invalid &&\n css`\n &:focus-within,\n &:hover {\n border-color: var(--color-primary);\n }\n `}\n\n ${(props) =>\n !props.$disabled &&\n props.$invalid &&\n props.$mode === \"outlined\" &&\n css`\n border-color: var(--red-alert);\n `}\n`;\n\nStyledInputWrapper.displayName = \"StyledInputWrapper\";\n\ninterface StyledInputProps extends Pick<InputProps, \"align\"> {\n $size?: InputSize;\n $loading?: boolean;\n $mode?: InputMode;\n $invalid?: boolean;\n}\n\nexport const StyledInput = styled.input<StyledInputProps>`\n ${BoxSizingStyle}\n ${InputResetStyle}\n background-color: var(--input-background-color);\n border: none;\n color: var(--color-theme-900);\n /* @TODO: Prebaciti velicine fontova, weight, razmake, itd... u naše varijable. */\n font-size: 0.875rem;\n font-weight: 400;\n letter-spacing: 0.02em;\n margin-block: 0;\n margin-inline: 4px;\n outline: none;\n padding: 0;\n width: 100%;\n\n ${(props) =>\n props.$mode === \"flat\" &&\n css`\n background-color: transparent;\n `}\n\n &::placeholder {\n color: var(--color-theme-transparent-500);\n }\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n font-size: 1rem;\n `}\n\n ${(props) =>\n props.$size === \"biggest\" &&\n css`\n font-size: 1.25rem;\n font-weight: 700;\n `}\n\n ${(props) =>\n props.disabled &&\n css`\n cursor: default;\n `}\n\n ${(props) =>\n props.$loading &&\n css`\n cursor: progress;\n `}\n\n ${(props) =>\n props.align &&\n css`\n text-align: ${props.align};\n `}\n\n ${(props) =>\n props.$mode === \"flat\" &&\n props.$invalid &&\n css`\n color: var(--red-alert);\n `}\n`;\n\nStyledInput.displayName = \"StyledInput\";\n\nexport const StyledPasswordIndicatorWrapper = styled.div`\n display: flex;\n gap: 2px;\n margin-top: 6px;\n margin-bottom: 4px;\n`;\n\nStyledPasswordIndicatorWrapper.displayName = \"StyledPasswordIndicatorWrapper\";\n\nexport const StyledPasswordIndicator = styled.div<{\n $strength: number;\n $index: number;\n}>`\n width: 100%;\n height: 4px;\n border-radius: 6px;\n background-color: ${(props) => {\n const { $strength, $index } = props;\n\n if ($strength === 0) {\n return \"var(--color-theme-300)\";\n } else if ($strength === 1) {\n return $index === 0 ? \"var(--red-alert)\" : \"var(--color-theme-300)\";\n } else if ($strength === 2) {\n return $index < 2 ? \"var(--color-orange)\" : \"var(--color-theme-300)\";\n } else if ($strength === 3) {\n return $index < 3 ? \"var(--color-blue-sky)\" : \"var(--color-theme-300)\";\n } else {\n return \"var(--color-sucess-green)\";\n }\n }};\n`;\n\nStyledPasswordIndicator.displayName = \"StyledPasswordIndicator\";\n\nexport const StyledInputSelectTrigger = styled.div<{\n $size: string;\n $disabled?: boolean;\n}>`\n display: flex;\n gap: 6px;\n align-items: center;\n margin-right: 2px;\n margin-left: 8px;\n color: var(--color-theme-700);\n font-weight: 400;\n letter-spacing: 0.02em;\n font-size: 0.875rem;\n flex-shrink: 0;\n cursor: ${(props) => {\n if (props.$disabled) {\n return \"unset\";\n }\n return \"pointer\";\n }};\n\n pointer-events: ${(props) => {\n if (props.$disabled) {\n return \"none\";\n }\n return \"unset\";\n }};\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n font-size: 1rem;\n `}\n`;\n\nStyledInputSelectTrigger.displayName = \"StyledInputSelectTrigger\";\n\nexport const StyledFlagTriggerLabel = styled.span<{\n $size: \"small\" | \"regular\" | \"big\";\n}>`\n font-size: ${({ $size }) => ($size === \"small\" ? \"20px\" : \"24px\")};\n`;\n\nStyledFlagTriggerLabel.displayName = \"StyledFlagTriggerLabel\";\n\nexport const StyledOptionFlag = styled.span`\n font-size: 24px;\n margin-right: 4px;\n`;\n\nStyledFlagTriggerLabel.displayName = \"StyledOptionFlag\";\n\nexport const StyledOptionName = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nStyledOptionName.displayName = \"StyledOptionName\";\n\nexport const StyledOptionWrapper = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-right: 8px;\n display: flex;\n justify-items: center;\n align-items: center;\n`;\n\nStyledOptionWrapper.displayName = \"StyledOptionWrapper\";\n"],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export interface InputUrlProps extends Omit<InputProps, "type" | "startAdornment
|
|
|
7
7
|
onChange?: (val: string) => void;
|
|
8
8
|
/** Input size */
|
|
9
9
|
size?: "regular" | "big" | "biggest";
|
|
10
|
+
scheme?: string[] | string;
|
|
10
11
|
}
|
|
11
12
|
export declare const InputUrl: React.ForwardRefExoticComponent<InputUrlProps & React.RefAttributes<HTMLInputElement>>;
|
|
12
13
|
//# sourceMappingURL=InputUrl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputUrl.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/InputUrl.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"InputUrl.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/InputUrl.tsx"],"names":[],"mappings":"AAAA,OAAO,KAON,MAAM,OAAO,CAAC;AAEf,OAAO,EAAS,UAAU,EAAE,MAAM,SAAS,CAAC;AAK5C,MAAM,WAAW,aACf,SAAQ,IAAI,CACV,UAAU,EACV,MAAM,GAAG,gBAAgB,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,CAC1D;IACD,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,iBAAiB;IACjB,IAAI,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,SAAS,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;CAC5B;AAOD,eAAO,MAAM,QAAQ,wFA+IpB,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
-
import React, { forwardRef, useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
+
import React, { forwardRef, useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
3
|
import { Input } from "./Input";
|
|
4
4
|
import { InputSelect } from "./InputSelect";
|
|
5
|
+
import { StyledInputSelectTrigger } from "./Styles";
|
|
5
6
|
import { useForkRef } from "../../utils";
|
|
6
|
-
const
|
|
7
|
+
const defaultOptions = [{
|
|
7
8
|
id: "https://",
|
|
8
9
|
name: "https://"
|
|
9
10
|
}, {
|
|
@@ -16,10 +17,27 @@ export const InputUrl = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
16
17
|
disabled,
|
|
17
18
|
value: defaultValue = "",
|
|
18
19
|
onChange,
|
|
20
|
+
scheme,
|
|
19
21
|
...rest
|
|
20
22
|
} = _ref;
|
|
21
23
|
const inputRef = useRef(null);
|
|
22
24
|
const handleRef = useForkRef(ref, inputRef);
|
|
25
|
+
const options = useMemo(() => {
|
|
26
|
+
if (scheme && scheme.length > 0) {
|
|
27
|
+
if (Array.isArray(scheme)) {
|
|
28
|
+
return scheme.map(i => ({
|
|
29
|
+
id: i,
|
|
30
|
+
name: i
|
|
31
|
+
}));
|
|
32
|
+
} else {
|
|
33
|
+
return [{
|
|
34
|
+
id: scheme,
|
|
35
|
+
name: scheme
|
|
36
|
+
}];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return defaultOptions;
|
|
40
|
+
}, [scheme]);
|
|
23
41
|
const [prefix, setPrefix] = useState(options[0].id);
|
|
24
42
|
const [value, setValue] = useState("");
|
|
25
43
|
const separatePrefixFromValue = fullValue => {
|
|
@@ -64,14 +82,14 @@ export const InputUrl = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
64
82
|
},
|
|
65
83
|
// eslint-disable-next-line
|
|
66
84
|
[onChange, prefix]);
|
|
67
|
-
const handleSelectChange = val => {
|
|
85
|
+
const handleSelectChange = useCallback(val => {
|
|
68
86
|
setPrefix(val);
|
|
69
87
|
setTimeout(() => {
|
|
70
88
|
var _inputRef$current;
|
|
71
89
|
(_inputRef$current = inputRef.current) == null || _inputRef$current.focus();
|
|
72
90
|
}, 200);
|
|
73
91
|
typeof onChange === "function" && onChange(val + value);
|
|
74
|
-
};
|
|
92
|
+
}, [onChange, value]);
|
|
75
93
|
const handlePaste = e => {
|
|
76
94
|
e.preventDefault();
|
|
77
95
|
const paste = e.clipboardData.getData("text");
|
|
@@ -87,6 +105,29 @@ export const InputUrl = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
87
105
|
onChange(newPrefix + newValue);
|
|
88
106
|
}
|
|
89
107
|
};
|
|
108
|
+
const startAdornmentComponent = useMemo(() => {
|
|
109
|
+
if (options.length > 1) {
|
|
110
|
+
return /*#__PURE__*/React.createElement(InputSelect, {
|
|
111
|
+
key: prefix,
|
|
112
|
+
size: size,
|
|
113
|
+
onChange: handleSelectChange,
|
|
114
|
+
options: options,
|
|
115
|
+
selected: prefix,
|
|
116
|
+
disabled: disabled
|
|
117
|
+
});
|
|
118
|
+
} else {
|
|
119
|
+
return /*#__PURE__*/React.createElement(StyledInputSelectTrigger, {
|
|
120
|
+
key: prefix,
|
|
121
|
+
$disabled: disabled,
|
|
122
|
+
$size: size
|
|
123
|
+
}, prefix);
|
|
124
|
+
}
|
|
125
|
+
}, [disabled, handleSelectChange, options, prefix, size]);
|
|
126
|
+
useEffect(() => {
|
|
127
|
+
if (options.length > 0) {
|
|
128
|
+
setPrefix(options[0].id);
|
|
129
|
+
}
|
|
130
|
+
}, [options]);
|
|
90
131
|
return /*#__PURE__*/React.createElement(Input, _extends({}, rest, {
|
|
91
132
|
ref: handleRef,
|
|
92
133
|
size: size,
|
|
@@ -96,13 +137,7 @@ export const InputUrl = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
96
137
|
onPaste: handlePaste,
|
|
97
138
|
onChange: handleChange,
|
|
98
139
|
"data-testid": "InputUrl",
|
|
99
|
-
startAdornment:
|
|
100
|
-
size: size,
|
|
101
|
-
onChange: handleSelectChange,
|
|
102
|
-
options: options,
|
|
103
|
-
selected: prefix,
|
|
104
|
-
disabled: disabled
|
|
105
|
-
})
|
|
140
|
+
startAdornment: startAdornmentComponent
|
|
106
141
|
}));
|
|
107
142
|
});
|
|
108
143
|
InputUrl.displayName = "InputUrl";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputUrl.js","names":["React","forwardRef","useCallback","useEffect","useRef","useState","Input","InputSelect","useForkRef","
|
|
1
|
+
{"version":3,"file":"InputUrl.js","names":["React","forwardRef","useCallback","useEffect","useMemo","useRef","useState","Input","InputSelect","StyledInputSelectTrigger","useForkRef","defaultOptions","id","name","InputUrl","_ref","ref","size","disabled","value","defaultValue","onChange","scheme","rest","inputRef","handleRef","options","length","Array","isArray","map","i","prefix","setPrefix","setValue","separatePrefixFromValue","fullValue","newPrefix","newValue","forEach","option","startsWith","replace","handleChange","e","inputValue","target","handleSelectChange","val","setTimeout","_inputRef$current","current","focus","handlePaste","preventDefault","paste","clipboardData","getData","startAdornmentComponent","createElement","key","selected","$disabled","$size","_extends","type","onPaste","startAdornment","displayName"],"sources":["../../../../src/components/Input/InputUrl.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { Input, InputProps } from \"./Input\";\nimport { InputSelect } from \"./InputSelect\";\nimport { StyledInputSelectTrigger } from \"./Styles\";\nimport { useForkRef } from \"../../utils\";\n\nexport interface InputUrlProps\n extends Omit<\n InputProps,\n \"type\" | \"startAdornment\" | \"onChange\" | \"value\" | \"size\"\n > {\n /** Input value */\n value?: string;\n /** onChange function */\n onChange?: (val: string) => void;\n /** Input size */\n size?: \"regular\" | \"big\" | \"biggest\";\n scheme?: string[] | string;\n}\n\nconst defaultOptions = [\n { id: \"https://\", name: \"https://\" },\n { id: \"http://\", name: \"http://\" },\n];\n\nexport const InputUrl = forwardRef<HTMLInputElement, InputUrlProps>(\n (\n {\n size = \"regular\",\n disabled,\n value: defaultValue = \"\",\n onChange,\n scheme,\n ...rest\n },\n ref\n ) => {\n const inputRef = useRef<HTMLInputElement | null>(null);\n const handleRef = useForkRef(ref, inputRef);\n\n const options = useMemo(() => {\n if (scheme && scheme.length > 0) {\n if (Array.isArray(scheme)) {\n return scheme.map((i) => ({ id: i, name: i }));\n } else {\n return [{ id: scheme, name: scheme }];\n }\n }\n return defaultOptions;\n }, [scheme]);\n\n const [prefix, setPrefix] = useState(options[0].id);\n\n const [value, setValue] = useState(\"\");\n\n const separatePrefixFromValue = (\n fullValue: string\n ): { newPrefix: string; newValue: string } => {\n let newPrefix = prefix;\n let newValue = fullValue;\n\n options.forEach((option) => {\n if (fullValue.startsWith(option.id)) {\n newPrefix = option.id;\n newValue = fullValue.replace(option.id, \"\");\n }\n });\n\n setValue(newValue);\n return { newPrefix, newValue };\n };\n\n useEffect(() => {\n const { newPrefix, newValue } = separatePrefixFromValue(defaultValue);\n setPrefix(newPrefix);\n setValue(newValue);\n // eslint-disable-next-line\n }, [defaultValue]);\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n if (!inputValue.startsWith(prefix)) {\n const { newPrefix, newValue } = separatePrefixFromValue(inputValue);\n setPrefix(newPrefix);\n setValue(newValue);\n typeof onChange === \"function\" && onChange(newPrefix + newValue);\n } else {\n const newValue = inputValue.replace(prefix, \"\");\n setValue(newValue);\n typeof onChange === \"function\" && onChange(prefix + newValue);\n }\n },\n // eslint-disable-next-line\n [onChange, prefix]\n );\n\n const handleSelectChange = useCallback(\n (val: string | number | (string | number)[]) => {\n setPrefix(val as string);\n setTimeout(() => {\n inputRef.current?.focus();\n }, 200);\n typeof onChange === \"function\" && onChange((val as string) + value);\n },\n [onChange, value]\n );\n\n const handlePaste = (e: React.ClipboardEvent) => {\n e.preventDefault();\n const paste = e.clipboardData.getData(\"text\");\n const { newPrefix, newValue } = separatePrefixFromValue(paste);\n if (newPrefix !== prefix) {\n setPrefix(newPrefix);\n }\n setValue(newValue);\n\n if (typeof onChange === \"function\") {\n onChange(newPrefix + newValue);\n }\n };\n\n const startAdornmentComponent = useMemo(() => {\n if (options.length > 1) {\n return (\n <InputSelect\n key={prefix}\n size={size}\n onChange={handleSelectChange}\n options={options}\n selected={prefix}\n disabled={disabled}\n />\n );\n } else {\n return (\n <StyledInputSelectTrigger\n key={prefix}\n $disabled={disabled}\n $size={size}\n >\n {prefix}\n </StyledInputSelectTrigger>\n );\n }\n }, [disabled, handleSelectChange, options, prefix, size]);\n\n useEffect(() => {\n if (options.length > 0) {\n setPrefix(options[0].id);\n }\n }, [options]);\n\n return (\n <Input\n {...rest}\n ref={handleRef}\n size={size}\n value={value}\n disabled={disabled}\n type=\"text\"\n onPaste={handlePaste}\n onChange={handleChange}\n data-testid=\"InputUrl\"\n startAdornment={startAdornmentComponent}\n />\n );\n }\n);\n\nInputUrl.displayName = \"InputUrl\";\n"],"mappings":";AAAA,OAAOA,KAAK,IACVC,UAAU,EACVC,WAAW,EACXC,SAAS,EACTC,OAAO,EACPC,MAAM,EACNC,QAAQ,QACH,OAAO;AAEd,SAASC,KAAK,QAAoB,SAAS;AAC3C,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,wBAAwB,QAAQ,UAAU;AACnD,SAASC,UAAU,QAAQ,aAAa;AAgBxC,MAAMC,cAAc,GAAG,CACrB;EAAEC,EAAE,EAAE,UAAU;EAAEC,IAAI,EAAE;AAAW,CAAC,EACpC;EAAED,EAAE,EAAE,SAAS;EAAEC,IAAI,EAAE;AAAU,CAAC,CACnC;AAED,OAAO,MAAMC,QAAQ,gBAAGb,UAAU,CAChC,CAAAc,IAAA,EASEC,GAAG,KACA;EAAA,IATH;IACEC,IAAI,GAAG,SAAS;IAChBC,QAAQ;IACRC,KAAK,EAAEC,YAAY,GAAG,EAAE;IACxBC,QAAQ;IACRC,MAAM;IACN,GAAGC;EACL,CAAC,GAAAR,IAAA;EAGD,MAAMS,QAAQ,GAAGnB,MAAM,CAA0B,IAAI,CAAC;EACtD,MAAMoB,SAAS,GAAGf,UAAU,CAACM,GAAG,EAAEQ,QAAQ,CAAC;EAE3C,MAAME,OAAO,GAAGtB,OAAO,CAAC,MAAM;IAC5B,IAAIkB,MAAM,IAAIA,MAAM,CAACK,MAAM,GAAG,CAAC,EAAE;MAC/B,IAAIC,KAAK,CAACC,OAAO,CAACP,MAAM,CAAC,EAAE;QACzB,OAAOA,MAAM,CAACQ,GAAG,CAAEC,CAAC,KAAM;UAAEnB,EAAE,EAAEmB,CAAC;UAAElB,IAAI,EAAEkB;QAAE,CAAC,CAAC,CAAC;MAChD,CAAC,MAAM;QACL,OAAO,CAAC;UAAEnB,EAAE,EAAEU,MAAM;UAAET,IAAI,EAAES;QAAO,CAAC,CAAC;MACvC;IACF;IACA,OAAOX,cAAc;EACvB,CAAC,EAAE,CAACW,MAAM,CAAC,CAAC;EAEZ,MAAM,CAACU,MAAM,EAAEC,SAAS,CAAC,GAAG3B,QAAQ,CAACoB,OAAO,CAAC,CAAC,CAAC,CAACd,EAAE,CAAC;EAEnD,MAAM,CAACO,KAAK,EAAEe,QAAQ,CAAC,GAAG5B,QAAQ,CAAC,EAAE,CAAC;EAEtC,MAAM6B,uBAAuB,GAC3BC,SAAiB,IAC2B;IAC5C,IAAIC,SAAS,GAAGL,MAAM;IACtB,IAAIM,QAAQ,GAAGF,SAAS;IAExBV,OAAO,CAACa,OAAO,CAAEC,MAAM,IAAK;MAC1B,IAAIJ,SAAS,CAACK,UAAU,CAACD,MAAM,CAAC5B,EAAE,CAAC,EAAE;QACnCyB,SAAS,GAAGG,MAAM,CAAC5B,EAAE;QACrB0B,QAAQ,GAAGF,SAAS,CAACM,OAAO,CAACF,MAAM,CAAC5B,EAAE,EAAE,EAAE,CAAC;MAC7C;IACF,CAAC,CAAC;IAEFsB,QAAQ,CAACI,QAAQ,CAAC;IAClB,OAAO;MAAED,SAAS;MAAEC;IAAS,CAAC;EAChC,CAAC;EAEDnC,SAAS,CAAC,MAAM;IACd,MAAM;MAAEkC,SAAS;MAAEC;IAAS,CAAC,GAAGH,uBAAuB,CAACf,YAAY,CAAC;IACrEa,SAAS,CAACI,SAAS,CAAC;IACpBH,QAAQ,CAACI,QAAQ,CAAC;IAClB;EACF,CAAC,EAAE,CAAClB,YAAY,CAAC,CAAC;EAElB,MAAMuB,YAAY,GAAGzC,WAAW,CAC7B0C,CAAsC,IAAK;IAC1C,MAAMC,UAAU,GAAGD,CAAC,CAACE,MAAM,CAAC3B,KAAK;IACjC,IAAI,CAAC0B,UAAU,CAACJ,UAAU,CAACT,MAAM,CAAC,EAAE;MAClC,MAAM;QAAEK,SAAS;QAAEC;MAAS,CAAC,GAAGH,uBAAuB,CAACU,UAAU,CAAC;MACnEZ,SAAS,CAACI,SAAS,CAAC;MACpBH,QAAQ,CAACI,QAAQ,CAAC;MAClB,OAAOjB,QAAQ,KAAK,UAAU,IAAIA,QAAQ,CAACgB,SAAS,GAAGC,QAAQ,CAAC;IAClE,CAAC,MAAM;MACL,MAAMA,QAAQ,GAAGO,UAAU,CAACH,OAAO,CAACV,MAAM,EAAE,EAAE,CAAC;MAC/CE,QAAQ,CAACI,QAAQ,CAAC;MAClB,OAAOjB,QAAQ,KAAK,UAAU,IAAIA,QAAQ,CAACW,MAAM,GAAGM,QAAQ,CAAC;IAC/D;EACF,CAAC;EACD;EACA,CAACjB,QAAQ,EAAEW,MAAM,CACnB,CAAC;EAED,MAAMe,kBAAkB,GAAG7C,WAAW,CACnC8C,GAA0C,IAAK;IAC9Cf,SAAS,CAACe,GAAa,CAAC;IACxBC,UAAU,CAAC,MAAM;MAAA,IAAAC,iBAAA;MACf,CAAAA,iBAAA,GAAA1B,QAAQ,CAAC2B,OAAO,aAAhBD,iBAAA,CAAkBE,KAAK,CAAC,CAAC;IAC3B,CAAC,EAAE,GAAG,CAAC;IACP,OAAO/B,QAAQ,KAAK,UAAU,IAAIA,QAAQ,CAAE2B,GAAG,GAAc7B,KAAK,CAAC;EACrE,CAAC,EACD,CAACE,QAAQ,EAAEF,KAAK,CAClB,CAAC;EAED,MAAMkC,WAAW,GAAIT,CAAuB,IAAK;IAC/CA,CAAC,CAACU,cAAc,CAAC,CAAC;IAClB,MAAMC,KAAK,GAAGX,CAAC,CAACY,aAAa,CAACC,OAAO,CAAC,MAAM,CAAC;IAC7C,MAAM;MAAEpB,SAAS;MAAEC;IAAS,CAAC,GAAGH,uBAAuB,CAACoB,KAAK,CAAC;IAC9D,IAAIlB,SAAS,KAAKL,MAAM,EAAE;MACxBC,SAAS,CAACI,SAAS,CAAC;IACtB;IACAH,QAAQ,CAACI,QAAQ,CAAC;IAElB,IAAI,OAAOjB,QAAQ,KAAK,UAAU,EAAE;MAClCA,QAAQ,CAACgB,SAAS,GAAGC,QAAQ,CAAC;IAChC;EACF,CAAC;EAED,MAAMoB,uBAAuB,GAAGtD,OAAO,CAAC,MAAM;IAC5C,IAAIsB,OAAO,CAACC,MAAM,GAAG,CAAC,EAAE;MACtB,oBACE3B,KAAA,CAAA2D,aAAA,CAACnD,WAAW;QACVoD,GAAG,EAAE5B,MAAO;QACZf,IAAI,EAAEA,IAAK;QACXI,QAAQ,EAAE0B,kBAAmB;QAC7BrB,OAAO,EAAEA,OAAQ;QACjBmC,QAAQ,EAAE7B,MAAO;QACjBd,QAAQ,EAAEA;MAAS,CACpB,CAAC;IAEN,CAAC,MAAM;MACL,oBACElB,KAAA,CAAA2D,aAAA,CAAClD,wBAAwB;QACvBmD,GAAG,EAAE5B,MAAO;QACZ8B,SAAS,EAAE5C,QAAS;QACpB6C,KAAK,EAAE9C;MAAK,GAEXe,MACuB,CAAC;IAE/B;EACF,CAAC,EAAE,CAACd,QAAQ,EAAE6B,kBAAkB,EAAErB,OAAO,EAAEM,MAAM,EAAEf,IAAI,CAAC,CAAC;EAEzDd,SAAS,CAAC,MAAM;IACd,IAAIuB,OAAO,CAACC,MAAM,GAAG,CAAC,EAAE;MACtBM,SAAS,CAACP,OAAO,CAAC,CAAC,CAAC,CAACd,EAAE,CAAC;IAC1B;EACF,CAAC,EAAE,CAACc,OAAO,CAAC,CAAC;EAEb,oBACE1B,KAAA,CAAA2D,aAAA,CAACpD,KAAK,EAAAyD,QAAA,KACAzC,IAAI;IACRP,GAAG,EAAES,SAAU;IACfR,IAAI,EAAEA,IAAK;IACXE,KAAK,EAAEA,KAAM;IACbD,QAAQ,EAAEA,QAAS;IACnB+C,IAAI,EAAC,MAAM;IACXC,OAAO,EAAEb,WAAY;IACrBhC,QAAQ,EAAEsB,YAAa;IACvB,eAAY,UAAU;IACtBwB,cAAc,EAAET;EAAwB,EACzC,CAAC;AAEN,CACF,CAAC;AAED5C,QAAQ,CAACsD,WAAW,GAAG,UAAU"}
|
|
@@ -21,7 +21,7 @@ export declare const StyledPasswordIndicator: import("styled-components").Styled
|
|
|
21
21
|
}, never>;
|
|
22
22
|
export declare const StyledInputSelectTrigger: import("styled-components").StyledComponent<"div", any, {
|
|
23
23
|
$size: string;
|
|
24
|
-
$disabled
|
|
24
|
+
$disabled?: boolean | undefined;
|
|
25
25
|
}, never>;
|
|
26
26
|
export declare const StyledFlagTriggerLabel: import("styled-components").StyledComponent<"span", any, {
|
|
27
27
|
$size: "small" | "regular" | "big";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/Styles.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAK/C,UAAU,uBAAuB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB,yFAuE9B,CAAC;AAIF,UAAU,gBAAiB,SAAQ,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;IAC1D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,oFA+DvB,CAAC;AAIF,eAAO,MAAM,8BAA8B,oEAK1C,CAAC;AAIF,eAAO,MAAM,uBAAuB;eACvB,MAAM;YACT,MAAM;SAoBf,CAAC;AAIF,eAAO,MAAM,wBAAwB;WAC5B,MAAM
|
|
1
|
+
{"version":3,"file":"Styles.d.ts","sourceRoot":"","sources":["../../../../src/components/Input/Styles.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAK/C,UAAU,uBAAuB;IAC/B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB;AAED,eAAO,MAAM,kBAAkB,yFAuE9B,CAAC;AAIF,UAAU,gBAAiB,SAAQ,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;IAC1D,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,oFA+DvB,CAAC;AAIF,eAAO,MAAM,8BAA8B,oEAK1C,CAAC;AAIF,eAAO,MAAM,uBAAuB;eACvB,MAAM;YACT,MAAM;SAoBf,CAAC;AAIF,eAAO,MAAM,wBAAwB;WAC5B,MAAM;;SAgCd,CAAC;AAIF,eAAO,MAAM,sBAAsB;WAC1B,OAAO,GAAG,SAAS,GAAG,KAAK;SAGnC,CAAC;AAIF,eAAO,MAAM,gBAAgB,qEAG5B,CAAC;AAIF,eAAO,MAAM,gBAAgB,qEAI5B,CAAC;AAIF,eAAO,MAAM,mBAAmB,qEAQ/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","FontStyle","InputResetStyle","StyledInputWrapper","div","withConfig","displayName","componentId","props","$mode","$size","$disabled","$invalid","StyledInput","input","disabled","$loading","align","StyledPasswordIndicatorWrapper","StyledPasswordIndicator","$strength","$index","StyledInputSelectTrigger","StyledFlagTriggerLabel","span","_ref","StyledOptionFlag","StyledOptionName","StyledOptionWrapper"],"sources":["../../../../src/components/Input/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\n\nimport { InputProps } from \"./Input\";\nimport { InputMode, InputSize } from \"./types\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\nimport { InputResetStyle } from \"../InputResetStyle\";\n\ninterface StyledInputWrapperProps {\n $size?: InputSize;\n $invalid?: boolean;\n $disabled?: boolean;\n $mode?: InputMode;\n}\n\nexport const StyledInputWrapper = styled.div<StyledInputWrapperProps>`\n align-items: center;\n background-color: var(--input-background-color);\n border-color: var(--color-theme-500);\n border-radius: 8px;\n border-style: solid;\n border-width: 1px;\n cursor: text;\n display: flex;\n height: 32px;\n padding-block: 4px;\n padding-inline: 4px;\n transition: all 0.3s ease;\n width: 360px;\n\n ${FontStyle}\n ${BoxSizingStyle}\n\n\n ${(props) =>\n props.$mode === \"flat\" &&\n css`\n background-color: transparent;\n border: none;\n border-radius: none;\n `}\n\n\n ${(props) =>\n props.$size === \"small\" &&\n css`\n border-radius: 6px;\n height: 24px;\n `}\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n height: 40px;\n `}\n\n ${(props) =>\n props.$size === \"biggest\" &&\n css`\n height: 48px;\n `}\n\n ${(props) =>\n props.$disabled &&\n css`\n cursor: default;\n opacity: 50%;\n `}\n\n ${(props) =>\n !props.$disabled &&\n !props.$invalid &&\n css`\n &:focus-within,\n &:hover {\n border-color: var(--color-primary);\n }\n `}\n\n ${(props) =>\n !props.$disabled &&\n props.$invalid &&\n props.$mode === \"outlined\" &&\n css`\n border-color: var(--red-alert);\n `}\n`;\n\nStyledInputWrapper.displayName = \"StyledInputWrapper\";\n\ninterface StyledInputProps extends Pick<InputProps, \"align\"> {\n $size?: InputSize;\n $loading?: boolean;\n $mode?: InputMode;\n $invalid?: boolean;\n}\n\nexport const StyledInput = styled.input<StyledInputProps>`\n ${BoxSizingStyle}\n ${InputResetStyle}\n background-color: var(--input-background-color);\n border: none;\n color: var(--color-theme-900);\n /* @TODO: Prebaciti velicine fontova, weight, razmake, itd... u naše varijable. */\n font-size: 0.875rem;\n font-weight: 400;\n letter-spacing: 0.02em;\n margin-block: 0;\n margin-inline: 4px;\n outline: none;\n padding: 0;\n width: 100%;\n\n ${(props) =>\n props.$mode === \"flat\" &&\n css`\n background-color: transparent;\n `}\n\n &::placeholder {\n color: var(--color-theme-transparent-500);\n }\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n font-size: 1rem;\n `}\n\n ${(props) =>\n props.$size === \"biggest\" &&\n css`\n font-size: 1.25rem;\n font-weight: 700;\n `}\n\n ${(props) =>\n props.disabled &&\n css`\n cursor: default;\n `}\n\n ${(props) =>\n props.$loading &&\n css`\n cursor: progress;\n `}\n\n ${(props) =>\n props.align &&\n css`\n text-align: ${props.align};\n `}\n\n ${(props) =>\n props.$mode === \"flat\" &&\n props.$invalid &&\n css`\n color: var(--red-alert);\n `}\n`;\n\nStyledInput.displayName = \"StyledInput\";\n\nexport const StyledPasswordIndicatorWrapper = styled.div`\n display: flex;\n gap: 2px;\n margin-top: 6px;\n margin-bottom: 4px;\n`;\n\nStyledPasswordIndicatorWrapper.displayName = \"StyledPasswordIndicatorWrapper\";\n\nexport const StyledPasswordIndicator = styled.div<{\n $strength: number;\n $index: number;\n}>`\n width: 100%;\n height: 4px;\n border-radius: 6px;\n background-color: ${(props) => {\n const { $strength, $index } = props;\n\n if ($strength === 0) {\n return \"var(--color-theme-300)\";\n } else if ($strength === 1) {\n return $index === 0 ? \"var(--red-alert)\" : \"var(--color-theme-300)\";\n } else if ($strength === 2) {\n return $index < 2 ? \"var(--color-orange)\" : \"var(--color-theme-300)\";\n } else if ($strength === 3) {\n return $index < 3 ? \"var(--color-blue-sky)\" : \"var(--color-theme-300)\";\n } else {\n return \"var(--color-sucess-green)\";\n }\n }};\n`;\n\nStyledPasswordIndicator.displayName = \"StyledPasswordIndicator\";\n\nexport const StyledInputSelectTrigger = styled.div<{\n $size: string;\n $disabled
|
|
1
|
+
{"version":3,"file":"Styles.js","names":["styled","css","BoxSizingStyle","FontStyle","InputResetStyle","StyledInputWrapper","div","withConfig","displayName","componentId","props","$mode","$size","$disabled","$invalid","StyledInput","input","disabled","$loading","align","StyledPasswordIndicatorWrapper","StyledPasswordIndicator","$strength","$index","StyledInputSelectTrigger","StyledFlagTriggerLabel","span","_ref","StyledOptionFlag","StyledOptionName","StyledOptionWrapper"],"sources":["../../../../src/components/Input/Styles.ts"],"sourcesContent":["import styled, { css } from \"styled-components\";\n\nimport { InputProps } from \"./Input\";\nimport { InputMode, InputSize } from \"./types\";\nimport { BoxSizingStyle } from \"../BoxSizingStyle\";\nimport { FontStyle } from \"../FontStyle\";\nimport { InputResetStyle } from \"../InputResetStyle\";\n\ninterface StyledInputWrapperProps {\n $size?: InputSize;\n $invalid?: boolean;\n $disabled?: boolean;\n $mode?: InputMode;\n}\n\nexport const StyledInputWrapper = styled.div<StyledInputWrapperProps>`\n align-items: center;\n background-color: var(--input-background-color);\n border-color: var(--color-theme-500);\n border-radius: 8px;\n border-style: solid;\n border-width: 1px;\n cursor: text;\n display: flex;\n height: 32px;\n padding-block: 4px;\n padding-inline: 4px;\n transition: all 0.3s ease;\n width: 360px;\n\n ${FontStyle}\n ${BoxSizingStyle}\n\n\n ${(props) =>\n props.$mode === \"flat\" &&\n css`\n background-color: transparent;\n border: none;\n border-radius: none;\n `}\n\n\n ${(props) =>\n props.$size === \"small\" &&\n css`\n border-radius: 6px;\n height: 24px;\n `}\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n height: 40px;\n `}\n\n ${(props) =>\n props.$size === \"biggest\" &&\n css`\n height: 48px;\n `}\n\n ${(props) =>\n props.$disabled &&\n css`\n cursor: default;\n opacity: 50%;\n `}\n\n ${(props) =>\n !props.$disabled &&\n !props.$invalid &&\n css`\n &:focus-within,\n &:hover {\n border-color: var(--color-primary);\n }\n `}\n\n ${(props) =>\n !props.$disabled &&\n props.$invalid &&\n props.$mode === \"outlined\" &&\n css`\n border-color: var(--red-alert);\n `}\n`;\n\nStyledInputWrapper.displayName = \"StyledInputWrapper\";\n\ninterface StyledInputProps extends Pick<InputProps, \"align\"> {\n $size?: InputSize;\n $loading?: boolean;\n $mode?: InputMode;\n $invalid?: boolean;\n}\n\nexport const StyledInput = styled.input<StyledInputProps>`\n ${BoxSizingStyle}\n ${InputResetStyle}\n background-color: var(--input-background-color);\n border: none;\n color: var(--color-theme-900);\n /* @TODO: Prebaciti velicine fontova, weight, razmake, itd... u naše varijable. */\n font-size: 0.875rem;\n font-weight: 400;\n letter-spacing: 0.02em;\n margin-block: 0;\n margin-inline: 4px;\n outline: none;\n padding: 0;\n width: 100%;\n\n ${(props) =>\n props.$mode === \"flat\" &&\n css`\n background-color: transparent;\n `}\n\n &::placeholder {\n color: var(--color-theme-transparent-500);\n }\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n font-size: 1rem;\n `}\n\n ${(props) =>\n props.$size === \"biggest\" &&\n css`\n font-size: 1.25rem;\n font-weight: 700;\n `}\n\n ${(props) =>\n props.disabled &&\n css`\n cursor: default;\n `}\n\n ${(props) =>\n props.$loading &&\n css`\n cursor: progress;\n `}\n\n ${(props) =>\n props.align &&\n css`\n text-align: ${props.align};\n `}\n\n ${(props) =>\n props.$mode === \"flat\" &&\n props.$invalid &&\n css`\n color: var(--red-alert);\n `}\n`;\n\nStyledInput.displayName = \"StyledInput\";\n\nexport const StyledPasswordIndicatorWrapper = styled.div`\n display: flex;\n gap: 2px;\n margin-top: 6px;\n margin-bottom: 4px;\n`;\n\nStyledPasswordIndicatorWrapper.displayName = \"StyledPasswordIndicatorWrapper\";\n\nexport const StyledPasswordIndicator = styled.div<{\n $strength: number;\n $index: number;\n}>`\n width: 100%;\n height: 4px;\n border-radius: 6px;\n background-color: ${(props) => {\n const { $strength, $index } = props;\n\n if ($strength === 0) {\n return \"var(--color-theme-300)\";\n } else if ($strength === 1) {\n return $index === 0 ? \"var(--red-alert)\" : \"var(--color-theme-300)\";\n } else if ($strength === 2) {\n return $index < 2 ? \"var(--color-orange)\" : \"var(--color-theme-300)\";\n } else if ($strength === 3) {\n return $index < 3 ? \"var(--color-blue-sky)\" : \"var(--color-theme-300)\";\n } else {\n return \"var(--color-sucess-green)\";\n }\n }};\n`;\n\nStyledPasswordIndicator.displayName = \"StyledPasswordIndicator\";\n\nexport const StyledInputSelectTrigger = styled.div<{\n $size: string;\n $disabled?: boolean;\n}>`\n display: flex;\n gap: 6px;\n align-items: center;\n margin-right: 2px;\n margin-left: 8px;\n color: var(--color-theme-700);\n font-weight: 400;\n letter-spacing: 0.02em;\n font-size: 0.875rem;\n flex-shrink: 0;\n cursor: ${(props) => {\n if (props.$disabled) {\n return \"unset\";\n }\n return \"pointer\";\n }};\n\n pointer-events: ${(props) => {\n if (props.$disabled) {\n return \"none\";\n }\n return \"unset\";\n }};\n\n ${(props) =>\n props.$size === \"big\" &&\n css`\n font-size: 1rem;\n `}\n`;\n\nStyledInputSelectTrigger.displayName = \"StyledInputSelectTrigger\";\n\nexport const StyledFlagTriggerLabel = styled.span<{\n $size: \"small\" | \"regular\" | \"big\";\n}>`\n font-size: ${({ $size }) => ($size === \"small\" ? \"20px\" : \"24px\")};\n`;\n\nStyledFlagTriggerLabel.displayName = \"StyledFlagTriggerLabel\";\n\nexport const StyledOptionFlag = styled.span`\n font-size: 24px;\n margin-right: 4px;\n`;\n\nStyledFlagTriggerLabel.displayName = \"StyledOptionFlag\";\n\nexport const StyledOptionName = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nStyledOptionName.displayName = \"StyledOptionName\";\n\nexport const StyledOptionWrapper = styled.span`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-right: 8px;\n display: flex;\n justify-items: center;\n align-items: center;\n`;\n\nStyledOptionWrapper.displayName = \"StyledOptionWrapper\";\n"],"mappings":"AAAA,OAAOA,MAAM,IAAIC,GAAG,QAAQ,mBAAmB;AAI/C,SAASC,cAAc,QAAQ,mBAAmB;AAClD,SAASC,SAAS,QAAQ,cAAc;AACxC,SAASC,eAAe,QAAQ,oBAAoB;AASpD,OAAO,MAAMC,kBAAkB,GAAGL,MAAM,CAACM,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,gUAexCN,SAAS,EACTD,cAAc,EAGbQ,KAAK,IACNA,KAAK,CAACC,KAAK,KAAK,MAAM,IACtBV,GAAG,kEAIF,EAGAS,KAAK,IACNA,KAAK,CAACE,KAAK,KAAK,OAAO,IACvBX,GAAG,oCAGF,EAEAS,KAAK,IACNA,KAAK,CAACE,KAAK,KAAK,KAAK,IACrBX,GAAG,kBAEF,EAEES,KAAK,IACRA,KAAK,CAACE,KAAK,KAAK,SAAS,IACzBX,GAAG,kBAEF,EAEAS,KAAK,IACNA,KAAK,CAACG,SAAS,IACfZ,GAAG,iCAGF,EAEAS,KAAK,IACN,CAACA,KAAK,CAACG,SAAS,IAChB,CAACH,KAAK,CAACI,QAAQ,IACfb,GAAG,gEAKF,EAEAS,KAAK,IACN,CAACA,KAAK,CAACG,SAAS,IAChBH,KAAK,CAACI,QAAQ,IACdJ,KAAK,CAACC,KAAK,KAAK,UAAU,IAC1BV,GAAG,oCAEF,CACJ;AAEDI,kBAAkB,CAACG,WAAW,GAAG,oBAAoB;AASrD,OAAO,MAAMO,WAAW,GAAGf,MAAM,CAACgB,KAAK,CAAAT,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kUACnCP,cAAc,EACdE,eAAe,EAcdM,KAAK,IACNA,KAAK,CAACC,KAAK,KAAK,MAAM,IACtBV,GAAG,mCAEF,EAMAS,KAAK,IACNA,KAAK,CAACE,KAAK,KAAK,KAAK,IACrBX,GAAG,qBAEF,EAEAS,KAAK,IACNA,KAAK,CAACE,KAAK,KAAK,SAAS,IACzBX,GAAG,wCAGF,EAEAS,KAAK,IACNA,KAAK,CAACO,QAAQ,IACdhB,GAAG,qBAEF,EAEAS,KAAK,IACNA,KAAK,CAACQ,QAAQ,IACdjB,GAAG,sBAEF,EAEAS,KAAK,IACNA,KAAK,CAACS,KAAK,IACXlB,GAAG,uBACaS,KAAK,CAACS,KAAK,CAC1B,EAEET,KAAK,IACRA,KAAK,CAACC,KAAK,KAAK,MAAM,IACtBD,KAAK,CAACI,QAAQ,IACdb,GAAG,6BAEF,CACJ;AAEDc,WAAW,CAACP,WAAW,GAAG,aAAa;AAEvC,OAAO,MAAMY,8BAA8B,GAAGpB,MAAM,CAACM,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,8DAKvD;AAEDW,8BAA8B,CAACZ,WAAW,GAAG,gCAAgC;AAE7E,OAAO,MAAMa,uBAAuB,GAAGrB,MAAM,CAACM,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,uEAO1BC,KAAK,IAAK;EAC7B,MAAM;IAAEY,SAAS;IAAEC;EAAO,CAAC,GAAGb,KAAK;EAEnC,IAAIY,SAAS,KAAK,CAAC,EAAE;IACnB,OAAO,wBAAwB;EACjC,CAAC,MAAM,IAAIA,SAAS,KAAK,CAAC,EAAE;IAC1B,OAAOC,MAAM,KAAK,CAAC,GAAG,kBAAkB,GAAG,wBAAwB;EACrE,CAAC,MAAM,IAAID,SAAS,KAAK,CAAC,EAAE;IAC1B,OAAOC,MAAM,GAAG,CAAC,GAAG,qBAAqB,GAAG,wBAAwB;EACtE,CAAC,MAAM,IAAID,SAAS,KAAK,CAAC,EAAE;IAC1B,OAAOC,MAAM,GAAG,CAAC,GAAG,uBAAuB,GAAG,wBAAwB;EACxE,CAAC,MAAM;IACL,OAAO,2BAA2B;EACpC;AACF,CAAC,CACF;AAEDF,uBAAuB,CAACb,WAAW,GAAG,yBAAyB;AAE/D,OAAO,MAAMgB,wBAAwB,GAAGxB,MAAM,CAACM,GAAG,CAAAC,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,0NAcrCC,KAAK,IAAK;EACnB,IAAIA,KAAK,CAACG,SAAS,EAAE;IACnB,OAAO,OAAO;EAChB;EACA,OAAO,SAAS;AAClB,CAAC,EAEkBH,KAAK,IAAK;EAC3B,IAAIA,KAAK,CAACG,SAAS,EAAE;IACnB,OAAO,MAAM;EACf;EACA,OAAO,OAAO;AAChB,CAAC,EAEEH,KAAK,IACNA,KAAK,CAACE,KAAK,KAAK,KAAK,IACrBX,GAAG,qBAEF,CACJ;AAEDuB,wBAAwB,CAAChB,WAAW,GAAG,0BAA0B;AAEjE,OAAO,MAAMiB,sBAAsB,GAAGzB,MAAM,CAAC0B,IAAI,CAAAnB,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wBAGlCkB,IAAA;EAAA,IAAC;IAAEf;EAAM,CAAC,GAAAe,IAAA;EAAA,OAAMf,KAAK,KAAK,OAAO,GAAG,MAAM,GAAG,MAAM;AAAA,CAAC,CAClE;AAEDa,sBAAsB,CAACjB,WAAW,GAAG,wBAAwB;AAE7D,OAAO,MAAMoB,gBAAgB,GAAG5B,MAAM,CAAC0B,IAAI,CAAAnB,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wCAG1C;AAEDgB,sBAAsB,CAACjB,WAAW,GAAG,kBAAkB;AAEvD,OAAO,MAAMqB,gBAAgB,GAAG7B,MAAM,CAAC0B,IAAI,CAAAnB,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,kEAI1C;AAEDoB,gBAAgB,CAACrB,WAAW,GAAG,kBAAkB;AAEjD,OAAO,MAAMsB,mBAAmB,GAAG9B,MAAM,CAAC0B,IAAI,CAAAnB,UAAA;EAAAC,WAAA;EAAAC,WAAA;AAAA,wIAQ7C;AAEDqB,mBAAmB,CAACtB,WAAW,GAAG,qBAAqB"}
|
package/dist/index.js
CHANGED
|
@@ -16477,8 +16477,8 @@
|
|
|
16477
16477
|
componentId: "sc-1lmb5y-0"
|
|
16478
16478
|
})(["flex-shrink:0"]);
|
|
16479
16479
|
|
|
16480
|
-
var _excluded$B = ["size", "disabled", "value", "onChange"];
|
|
16481
|
-
var
|
|
16480
|
+
var _excluded$B = ["size", "disabled", "value", "onChange", "scheme"];
|
|
16481
|
+
var defaultOptions = [{
|
|
16482
16482
|
id: "https://",
|
|
16483
16483
|
name: "https://"
|
|
16484
16484
|
}, {
|
|
@@ -16492,9 +16492,28 @@
|
|
|
16492
16492
|
_ref$value = _ref.value,
|
|
16493
16493
|
defaultValue = _ref$value === void 0 ? "" : _ref$value,
|
|
16494
16494
|
onChange = _ref.onChange,
|
|
16495
|
+
scheme = _ref.scheme,
|
|
16495
16496
|
rest = _objectWithoutProperties(_ref, _excluded$B);
|
|
16496
16497
|
var inputRef = React.useRef(null);
|
|
16497
16498
|
var handleRef = useForkRef(ref, inputRef);
|
|
16499
|
+
var options = React.useMemo(function () {
|
|
16500
|
+
if (scheme && scheme.length > 0) {
|
|
16501
|
+
if (Array.isArray(scheme)) {
|
|
16502
|
+
return scheme.map(function (i) {
|
|
16503
|
+
return {
|
|
16504
|
+
id: i,
|
|
16505
|
+
name: i
|
|
16506
|
+
};
|
|
16507
|
+
});
|
|
16508
|
+
} else {
|
|
16509
|
+
return [{
|
|
16510
|
+
id: scheme,
|
|
16511
|
+
name: scheme
|
|
16512
|
+
}];
|
|
16513
|
+
}
|
|
16514
|
+
}
|
|
16515
|
+
return defaultOptions;
|
|
16516
|
+
}, [scheme]);
|
|
16498
16517
|
var _useState = React.useState(options[0].id),
|
|
16499
16518
|
_useState2 = _slicedToArray(_useState, 2),
|
|
16500
16519
|
prefix = _useState2[0],
|
|
@@ -16543,14 +16562,14 @@
|
|
|
16543
16562
|
},
|
|
16544
16563
|
// eslint-disable-next-line
|
|
16545
16564
|
[onChange, prefix]);
|
|
16546
|
-
var handleSelectChange = function
|
|
16565
|
+
var handleSelectChange = React.useCallback(function (val) {
|
|
16547
16566
|
setPrefix(val);
|
|
16548
16567
|
setTimeout(function () {
|
|
16549
16568
|
var _inputRef$current;
|
|
16550
16569
|
(_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || _inputRef$current.focus();
|
|
16551
16570
|
}, 200);
|
|
16552
16571
|
typeof onChange === "function" && onChange(val + value);
|
|
16553
|
-
};
|
|
16572
|
+
}, [onChange, value]);
|
|
16554
16573
|
var handlePaste = function handlePaste(e) {
|
|
16555
16574
|
e.preventDefault();
|
|
16556
16575
|
var paste = e.clipboardData.getData("text");
|
|
@@ -16565,6 +16584,29 @@
|
|
|
16565
16584
|
onChange(newPrefix + newValue);
|
|
16566
16585
|
}
|
|
16567
16586
|
};
|
|
16587
|
+
var startAdornmentComponent = React.useMemo(function () {
|
|
16588
|
+
if (options.length > 1) {
|
|
16589
|
+
return /*#__PURE__*/React__default["default"].createElement(InputSelect, {
|
|
16590
|
+
key: prefix,
|
|
16591
|
+
size: size,
|
|
16592
|
+
onChange: handleSelectChange,
|
|
16593
|
+
options: options,
|
|
16594
|
+
selected: prefix,
|
|
16595
|
+
disabled: disabled
|
|
16596
|
+
});
|
|
16597
|
+
} else {
|
|
16598
|
+
return /*#__PURE__*/React__default["default"].createElement(StyledInputSelectTrigger, {
|
|
16599
|
+
key: prefix,
|
|
16600
|
+
$disabled: disabled,
|
|
16601
|
+
$size: size
|
|
16602
|
+
}, prefix);
|
|
16603
|
+
}
|
|
16604
|
+
}, [disabled, handleSelectChange, options, prefix, size]);
|
|
16605
|
+
React.useEffect(function () {
|
|
16606
|
+
if (options.length > 0) {
|
|
16607
|
+
setPrefix(options[0].id);
|
|
16608
|
+
}
|
|
16609
|
+
}, [options]);
|
|
16568
16610
|
return /*#__PURE__*/React__default["default"].createElement(Input, _extends({}, rest, {
|
|
16569
16611
|
ref: handleRef,
|
|
16570
16612
|
size: size,
|
|
@@ -16574,13 +16616,7 @@
|
|
|
16574
16616
|
onPaste: handlePaste,
|
|
16575
16617
|
onChange: handleChange,
|
|
16576
16618
|
"data-testid": "InputUrl",
|
|
16577
|
-
startAdornment:
|
|
16578
|
-
size: size,
|
|
16579
|
-
onChange: handleSelectChange,
|
|
16580
|
-
options: options,
|
|
16581
|
-
selected: prefix,
|
|
16582
|
-
disabled: disabled
|
|
16583
|
-
})
|
|
16619
|
+
startAdornment: startAdornmentComponent
|
|
16584
16620
|
}));
|
|
16585
16621
|
});
|
|
16586
16622
|
InputUrl.displayName = "InputUrl";
|