@jenesei-software/jenesei-kit-react 1.2.1 → 1.2.2
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/build-info.txt +3 -3
- package/build/{component-B1IQ5CfM.js → component-C8QrHu0C.js} +2 -2
- package/build/{component-B1IQ5CfM.js.map → component-C8QrHu0C.js.map} +1 -1
- package/build/{component-CbnBTIR5.cjs → component-FwG2ieR3.cjs} +2 -2
- package/build/{component-CbnBTIR5.cjs.map → component-FwG2ieR3.cjs.map} +1 -1
- package/build/component-date-picker.cjs.js +1 -1
- package/build/component-date-picker.es.js +1 -1
- package/build/component-input-otp.cjs.js +1 -1
- package/build/component-input-otp.es.js +1 -1
- package/build/component-input.cjs.js +1 -1
- package/build/component-input.d.ts +2 -2
- package/build/component-input.es.js +4 -4
- package/build/{component.styles-iWM1hPGZ.js → component.styles-DCDOKa6e.js} +12 -8
- package/build/component.styles-DCDOKa6e.js.map +1 -0
- package/build/{component.styles-BoBaG6sX.js → component.styles-DKG-fvog.js} +3 -3
- package/build/{component.styles-BoBaG6sX.js.map → component.styles-DKG-fvog.js.map} +1 -1
- package/build/{component.styles-CdtZm7bl.cjs → component.styles-DTC9tjQX.cjs} +13 -13
- package/build/component.styles-DTC9tjQX.cjs.map +1 -0
- package/build/{component.styles-DWoybqna.cjs → component.styles-Dm_Ov4nM.cjs} +2 -2
- package/build/{component.styles-DWoybqna.cjs.map → component.styles-Dm_Ov4nM.cjs.map} +1 -1
- package/build/{component.styles-w3iWQMCq.cjs → component.styles-DqNAGfc9.cjs} +2 -2
- package/build/{component.styles-w3iWQMCq.cjs.map → component.styles-DqNAGfc9.cjs.map} +1 -1
- package/build/{component.styles-D6KuudL3.js → component.styles-Dt_CUijB.js} +4 -4
- package/build/{component.styles-D6KuudL3.js.map → component.styles-Dt_CUijB.js.map} +1 -1
- package/build/index.cjs.js +1 -1
- package/build/index.d.ts +2 -2
- package/build/index.es.js +6 -6
- package/package.json +1 -1
- package/build/component.styles-CdtZm7bl.cjs.map +0 -1
- package/build/component.styles-iWM1hPGZ.js.map +0 -1
package/build/build-info.txt
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
version: 1.2.
|
|
2
|
-
commit:
|
|
3
|
-
date: 2025-07-
|
|
1
|
+
version: 1.2.2
|
|
2
|
+
commit: 29bc878
|
|
3
|
+
date: 2025-07-20T16:28:25Z
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
|
|
2
2
|
import { b as ErrorMessage } from "./style-DjCgiI7l.js";
|
|
3
3
|
import { useCallback } from "react";
|
|
4
|
-
import { S as StyledInputWrapper, j as InputPrefixChildren, h as StyledInputPattern, i as StyledInputNumeric, f as StyledInput, k as InputPostfixChildren } from "./component.styles-
|
|
4
|
+
import { S as StyledInputWrapper, j as InputPrefixChildren, h as StyledInputPattern, i as StyledInputNumeric, f as StyledInput, k as InputPostfixChildren } from "./component.styles-Dt_CUijB.js";
|
|
5
5
|
const Input = (props) => {
|
|
6
6
|
const handleOnChange = useCallback(
|
|
7
7
|
(input) => {
|
|
@@ -204,4 +204,4 @@ export {
|
|
|
204
204
|
Input as I,
|
|
205
205
|
formatPhoneNumber as f
|
|
206
206
|
};
|
|
207
|
-
//# sourceMappingURL=component-
|
|
207
|
+
//# sourceMappingURL=component-C8QrHu0C.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-B1IQ5CfM.js","sources":["../src/components/input/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/styles/error';\n\nimport { useCallback } from 'react';\nimport { NumberFormatValues } from 'react-number-format';\n\nimport {\n InputPostfixChildren,\n InputPrefixChildren,\n InputProps,\n StyledInput,\n StyledInputNumeric,\n StyledInputPattern,\n StyledInputWrapper,\n} from '.';\n\nexport const Input = (props: InputProps) => {\n const handleOnChange = useCallback(\n (input: string | NumberFormatValues) => {\n if (props.variety === 'standard') {\n const value = typeof input === 'string' ? input : input.value;\n const cleaned = props.isNoSpaces ? value.replace(/\\s+/g, '') : value;\n props.onChange?.(cleaned);\n }\n\n if (props.variety === 'pattern' || props.variety === 'numeric') {\n if (typeof input !== 'string') {\n props.onChange?.(input);\n }\n }\n },\n [props],\n );\n\n return (\n <>\n <StyledInputWrapper\n $isInputEffect={props.isInputEffect}\n className={props.className}\n $isDisabled={props.isDisabled}\n $sx={props.sx}\n $size={props.size}\n $isWidthAsHeight={props.isWidthAsHeight}\n >\n {props.prefixChildren && (\n <InputPrefixChildren\n $left={props.prefixChildren.left}\n $right={props.prefixChildren.right}\n $isDisabled={props.isDisabled}\n $width={props.prefixChildren.width}\n >\n {props.prefixChildren.children}\n </InputPrefixChildren>\n )}\n {props.variety === 'pattern' ? (\n <StyledInputPattern\n $isNiceNumber={props.isNiceNumber}\n $isInputEffect={props.isInputEffect}\n $error={props?.error}\n $isLoading={props.isLoading}\n $postfixChildren={props?.postfixChildren}\n $prefixChildren={props?.prefixChildren}\n $genre={props.genre}\n $size={props.size}\n $isBold={props.isBold}\n $isDisabled={props.isDisabled}\n $isCenter={props.isCenter}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n placeholder={props.placeholder}\n onValueChange={(props) => handleOnChange(props)}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onPaste={props.onPaste}\n name={props.name}\n id={props.id}\n onKeyDown={props.onKeyDown}\n inputMode={props.inputMode}\n maxLength={props.maxLength}\n minLength={props.minLength}\n tabIndex={props.tabIndex}\n {...props.propsPattern}\n />\n ) : props.variety === 'numeric' ? (\n <StyledInputNumeric\n $isNiceNumber={props.isNiceNumber}\n $isInputEffect={props.isInputEffect}\n $error={props?.error}\n $isLoading={props.isLoading}\n $postfixChildren={props?.postfixChildren}\n $prefixChildren={props?.prefixChildren}\n $genre={props.genre}\n $size={props.size}\n $isBold={props.isBold}\n $isDisabled={props.isDisabled}\n $isCenter={props.isCenter}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n placeholder={props.placeholder}\n onValueChange={(props) => handleOnChange(props)}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onPaste={props.onPaste}\n name={props.name}\n id={props.id}\n onKeyDown={props.onKeyDown}\n inputMode={props.inputMode}\n maxLength={props.maxLength}\n minLength={props.minLength}\n tabIndex={props.tabIndex}\n {...props.propsNumeric}\n />\n ) : (\n <StyledInput\n $isNiceNumber={props.isNiceNumber}\n inputMode={props.inputMode}\n maxLength={props.maxLength}\n minLength={props.minLength}\n ref={props.ref}\n $error={props.error}\n $isInputEffect={props.isInputEffect}\n $isLoading={props.isLoading}\n $postfixChildren={props?.postfixChildren}\n $prefixChildren={props?.prefixChildren}\n $genre={props.genre}\n $size={props.size}\n $isBold={props.isBold}\n $isDisabled={props.isDisabled}\n $isCenter={props.isCenter}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n placeholder={props.placeholder}\n type={props.type}\n autoComplete={props.autoComplete}\n onInput={(event) => {\n const input = event.target as HTMLInputElement;\n handleOnChange(input.value);\n }}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onPaste={props.onPaste}\n name={props.name}\n id={props.id}\n tabIndex={props.tabIndex}\n onKeyDown={props.onKeyDown}\n min={props.min}\n max={props.max}\n step={props.step}\n />\n )}\n\n {props.postfixChildren && (\n <InputPostfixChildren\n $left={props.postfixChildren.left}\n $right={props.postfixChildren.right}\n $isDisabled={props.isDisabled}\n $width={props.postfixChildren.width}\n >\n {props.postfixChildren.children}\n </InputPostfixChildren>\n )}\n </StyledInputWrapper>\n {props?.error ? <ErrorMessage {...props.error} size={props?.error.size ?? props.size} /> : null}\n </>\n );\n};\n\nexport function formatPhoneNumber(dialCode: string, international: string) {\n function isDigit(char: string): boolean {\n return /\\d/.test(char);\n }\n\n let formattedNumber = '';\n let placeholderNumber = '';\n let dialCodeIndex = 0;\n\n if (dialCode.length === 0) {\n return { format: '', placeholder: '' };\n }\n\n for (let i = 0; i < international.length; i++) {\n const char = international.charAt(i);\n\n if (char === dialCode.charAt(dialCodeIndex)) {\n formattedNumber += char;\n placeholderNumber += isDigit(char) ? '#' : char;\n dialCodeIndex++;\n } else {\n if (isDigit(char)) {\n formattedNumber += '#';\n placeholderNumber += '-';\n } else {\n formattedNumber += char;\n placeholderNumber += char;\n }\n }\n }\n\n while (dialCodeIndex < dialCode.length) {\n formattedNumber += dialCode.charAt(dialCodeIndex);\n placeholderNumber += dialCode.charAt(dialCodeIndex);\n dialCodeIndex++;\n }\n\n return {\n format: formattedNumber,\n placeholder: placeholderNumber,\n };\n}\n"],"names":["jsxs","Fragment","jsx","props"],"mappings":";;;;AAeO,MAAM,QAAQ,CAAC,UAAsB;AAC1C,QAAM,iBAAiB;AAAA,IACrB,CAAC,UAAuC;;AACtC,UAAI,MAAM,YAAY,YAAY;AAChC,cAAM,QAAQ,OAAO,UAAU,WAAW,QAAQ,MAAM;AACxD,cAAM,UAAU,MAAM,aAAa,MAAM,QAAQ,QAAQ,EAAE,IAAI;AAC/D,oBAAM,aAAN,+BAAiB;AAAA,MAAO;AAG1B,UAAI,MAAM,YAAY,aAAa,MAAM,YAAY,WAAW;AAC9D,YAAI,OAAO,UAAU,UAAU;AAC7B,sBAAM,aAAN,+BAAiB;AAAA,QAAK;AAAA,MACxB;AAAA,IACF;AAAA,IAEF,CAAC,KAAK;AAAA,EAAA;AAGR,SACEA,kCAAAA,KAAAC,4BAAA,EACE,UAAA;AAAA,IAAAD,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,gBAAgB,MAAM;AAAA,QACtB,WAAW,MAAM;AAAA,QACjB,aAAa,MAAM;AAAA,QACnB,KAAK,MAAM;AAAA,QACX,OAAO,MAAM;AAAA,QACb,kBAAkB,MAAM;AAAA,QAEvB,UAAA;AAAA,UAAA,MAAM,kBACLE,kCAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO,MAAM,eAAe;AAAA,cAC5B,QAAQ,MAAM,eAAe;AAAA,cAC7B,aAAa,MAAM;AAAA,cACnB,QAAQ,MAAM,eAAe;AAAA,cAE5B,gBAAM,eAAe;AAAA,YAAA;AAAA,UAAA;AAAA,UAGzB,MAAM,YAAY,YACjBA,kCAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,eAAe,MAAM;AAAA,cACrB,gBAAgB,MAAM;AAAA,cACtB,QAAQ,+BAAO;AAAA,cACf,YAAY,MAAM;AAAA,cAClB,kBAAkB,+BAAO;AAAA,cACzB,iBAAiB,+BAAO;AAAA,cACxB,QAAQ,MAAM;AAAA,cACd,OAAO,MAAM;AAAA,cACb,SAAS,MAAM;AAAA,cACf,aAAa,MAAM;AAAA,cACnB,WAAW,MAAM;AAAA,cACjB,UAAU,MAAM;AAAA,cAChB,UAAU,MAAM;AAAA,cAChB,UAAU,MAAM;AAAA,cAChB,cAAc,MAAM,iBAAiB,OAAO,KAAK,MAAM;AAAA,cACvD,OAAO,MAAM,UAAU,OAAO,KAAK,MAAM;AAAA,cACzC,aAAa,MAAM;AAAA,cACnB,eAAe,CAACC,WAAU,eAAeA,MAAK;AAAA,cAC9C,QAAQ,MAAM;AAAA,cACd,SAAS,MAAM;AAAA,cACf,SAAS,MAAM;AAAA,cACf,MAAM,MAAM;AAAA,cACZ,IAAI,MAAM;AAAA,cACV,WAAW,MAAM;AAAA,cACjB,WAAW,MAAM;AAAA,cACjB,WAAW,MAAM;AAAA,cACjB,WAAW,MAAM;AAAA,cACjB,UAAU,MAAM;AAAA,cACf,GAAG,MAAM;AAAA,YAAA;AAAA,UAAA,IAEV,MAAM,YAAY,YACpBD,kCAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,eAAe,MAAM;AAAA,cACrB,gBAAgB,MAAM;AAAA,cACtB,QAAQ,+BAAO;AAAA,cACf,YAAY,MAAM;AAAA,cAClB,kBAAkB,+BAAO;AAAA,cACzB,iBAAiB,+BAAO;AAAA,cACxB,QAAQ,MAAM;AAAA,cACd,OAAO,MAAM;AAAA,cACb,SAAS,MAAM;AAAA,cACf,aAAa,MAAM;AAAA,cACnB,WAAW,MAAM;AAAA,cACjB,UAAU,MAAM;AAAA,cAChB,UAAU,MAAM;AAAA,cAChB,UAAU,MAAM;AAAA,cAChB,cAAc,MAAM,iBAAiB,OAAO,KAAK,MAAM;AAAA,cACvD,OAAO,MAAM,UAAU,OAAO,KAAK,MAAM;AAAA,cACzC,aAAa,MAAM;AAAA,cACnB,eAAe,CAACC,WAAU,eAAeA,MAAK;AAAA,cAC9C,QAAQ,MAAM;AAAA,cACd,SAAS,MAAM;AAAA,cACf,SAAS,MAAM;AAAA,cACf,MAAM,MAAM;AAAA,cACZ,IAAI,MAAM;AAAA,cACV,WAAW,MAAM;AAAA,cACjB,WAAW,MAAM;AAAA,cACjB,WAAW,MAAM;AAAA,cACjB,WAAW,MAAM;AAAA,cACjB,UAAU,MAAM;AAAA,cACf,GAAG,MAAM;AAAA,YAAA;AAAA,UAAA,IAGZD,kCAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,eAAe,MAAM;AAAA,cACrB,WAAW,MAAM;AAAA,cACjB,WAAW,MAAM;AAAA,cACjB,WAAW,MAAM;AAAA,cACjB,KAAK,MAAM;AAAA,cACX,QAAQ,MAAM;AAAA,cACd,gBAAgB,MAAM;AAAA,cACtB,YAAY,MAAM;AAAA,cAClB,kBAAkB,+BAAO;AAAA,cACzB,iBAAiB,+BAAO;AAAA,cACxB,QAAQ,MAAM;AAAA,cACd,OAAO,MAAM;AAAA,cACb,SAAS,MAAM;AAAA,cACf,aAAa,MAAM;AAAA,cACnB,WAAW,MAAM;AAAA,cACjB,UAAU,MAAM;AAAA,cAChB,UAAU,MAAM;AAAA,cAChB,UAAU,MAAM;AAAA,cAChB,cAAc,MAAM,iBAAiB,OAAO,KAAK,MAAM;AAAA,cACvD,OAAO,MAAM,UAAU,OAAO,KAAK,MAAM;AAAA,cACzC,aAAa,MAAM;AAAA,cACnB,MAAM,MAAM;AAAA,cACZ,cAAc,MAAM;AAAA,cACpB,SAAS,CAAC,UAAU;AAClB,sBAAM,QAAQ,MAAM;AACpB,+BAAe,MAAM,KAAK;AAAA,cAAA;AAAA,cAE5B,QAAQ,MAAM;AAAA,cACd,SAAS,MAAM;AAAA,cACf,SAAS,MAAM;AAAA,cACf,MAAM,MAAM;AAAA,cACZ,IAAI,MAAM;AAAA,cACV,UAAU,MAAM;AAAA,cAChB,WAAW,MAAM;AAAA,cACjB,KAAK,MAAM;AAAA,cACX,KAAK,MAAM;AAAA,cACX,MAAM,MAAM;AAAA,YAAA;AAAA,UAAA;AAAA,UAIf,MAAM,mBACLA,kCAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,OAAO,MAAM,gBAAgB;AAAA,cAC7B,QAAQ,MAAM,gBAAgB;AAAA,cAC9B,aAAa,MAAM;AAAA,cACnB,QAAQ,MAAM,gBAAgB;AAAA,cAE7B,gBAAM,gBAAgB;AAAA,YAAA;AAAA,UAAA;AAAA,QACzB;AAAA,MAAA;AAAA,IAAA;AAAA,KAGH,+BAAO,SAAQA,kCAAAA,IAAC,cAAA,EAAc,GAAG,MAAM,OAAO,OAAM,+BAAO,MAAM,SAAQ,MAAM,MAAM,IAAK;AAAA,EAAA,GAC7F;AAEJ;AAEO,SAAS,kBAAkB,UAAkB,eAAuB;AACzE,WAAS,QAAQ,MAAuB;AACtC,WAAO,KAAK,KAAK,IAAI;AAAA,EAAA;AAGvB,MAAI,kBAAkB;AACtB,MAAI,oBAAoB;AACxB,MAAI,gBAAgB;AAEpB,MAAI,SAAS,WAAW,GAAG;AACzB,WAAO,EAAE,QAAQ,IAAI,aAAa,GAAA;AAAA,EAAG;AAGvC,WAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;AAC7C,UAAM,OAAO,cAAc,OAAO,CAAC;AAEnC,QAAI,SAAS,SAAS,OAAO,aAAa,GAAG;AAC3C,yBAAmB;AACnB,2BAAqB,QAAQ,IAAI,IAAI,MAAM;AAC3C;AAAA,IAAA,OACK;AACL,UAAI,QAAQ,IAAI,GAAG;AACjB,2BAAmB;AACnB,6BAAqB;AAAA,MAAA,OAChB;AACL,2BAAmB;AACnB,6BAAqB;AAAA,MAAA;AAAA,IACvB;AAAA,EACF;AAGF,SAAO,gBAAgB,SAAS,QAAQ;AACtC,uBAAmB,SAAS,OAAO,aAAa;AAChD,yBAAqB,SAAS,OAAO,aAAa;AAClD;AAAA,EAAA;AAGF,SAAO;AAAA,IACL,QAAQ;AAAA,IACR,aAAa;AAAA,EAAA;AAEjB;"}
|
|
1
|
+
{"version":3,"file":"component-C8QrHu0C.js","sources":["../src/components/input/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/styles/error';\n\nimport { useCallback } from 'react';\nimport { NumberFormatValues } from 'react-number-format';\n\nimport {\n InputPostfixChildren,\n InputPrefixChildren,\n InputProps,\n StyledInput,\n StyledInputNumeric,\n StyledInputPattern,\n StyledInputWrapper,\n} from '.';\n\nexport const Input = (props: InputProps) => {\n const handleOnChange = useCallback(\n (input: string | NumberFormatValues) => {\n if (props.variety === 'standard') {\n const value = typeof input === 'string' ? input : input.value;\n const cleaned = props.isNoSpaces ? value.replace(/\\s+/g, '') : value;\n props.onChange?.(cleaned);\n }\n\n if (props.variety === 'pattern' || props.variety === 'numeric') {\n if (typeof input !== 'string') {\n props.onChange?.(input);\n }\n }\n },\n [props],\n );\n\n return (\n <>\n <StyledInputWrapper\n $isInputEffect={props.isInputEffect}\n className={props.className}\n $isDisabled={props.isDisabled}\n $sx={props.sx}\n $size={props.size}\n $isWidthAsHeight={props.isWidthAsHeight}\n >\n {props.prefixChildren && (\n <InputPrefixChildren\n $left={props.prefixChildren.left}\n $right={props.prefixChildren.right}\n $isDisabled={props.isDisabled}\n $width={props.prefixChildren.width}\n >\n {props.prefixChildren.children}\n </InputPrefixChildren>\n )}\n {props.variety === 'pattern' ? (\n <StyledInputPattern\n $isNiceNumber={props.isNiceNumber}\n $isInputEffect={props.isInputEffect}\n $error={props?.error}\n $isLoading={props.isLoading}\n $postfixChildren={props?.postfixChildren}\n $prefixChildren={props?.prefixChildren}\n $genre={props.genre}\n $size={props.size}\n $isBold={props.isBold}\n $isDisabled={props.isDisabled}\n $isCenter={props.isCenter}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n placeholder={props.placeholder}\n onValueChange={(props) => handleOnChange(props)}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onPaste={props.onPaste}\n name={props.name}\n id={props.id}\n onKeyDown={props.onKeyDown}\n inputMode={props.inputMode}\n maxLength={props.maxLength}\n minLength={props.minLength}\n tabIndex={props.tabIndex}\n {...props.propsPattern}\n />\n ) : props.variety === 'numeric' ? (\n <StyledInputNumeric\n $isNiceNumber={props.isNiceNumber}\n $isInputEffect={props.isInputEffect}\n $error={props?.error}\n $isLoading={props.isLoading}\n $postfixChildren={props?.postfixChildren}\n $prefixChildren={props?.prefixChildren}\n $genre={props.genre}\n $size={props.size}\n $isBold={props.isBold}\n $isDisabled={props.isDisabled}\n $isCenter={props.isCenter}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n placeholder={props.placeholder}\n onValueChange={(props) => handleOnChange(props)}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onPaste={props.onPaste}\n name={props.name}\n id={props.id}\n onKeyDown={props.onKeyDown}\n inputMode={props.inputMode}\n maxLength={props.maxLength}\n minLength={props.minLength}\n tabIndex={props.tabIndex}\n {...props.propsNumeric}\n />\n ) : (\n <StyledInput\n $isNiceNumber={props.isNiceNumber}\n inputMode={props.inputMode}\n maxLength={props.maxLength}\n minLength={props.minLength}\n ref={props.ref}\n $error={props.error}\n $isInputEffect={props.isInputEffect}\n $isLoading={props.isLoading}\n $postfixChildren={props?.postfixChildren}\n $prefixChildren={props?.prefixChildren}\n $genre={props.genre}\n $size={props.size}\n $isBold={props.isBold}\n $isDisabled={props.isDisabled}\n $isCenter={props.isCenter}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n placeholder={props.placeholder}\n type={props.type}\n autoComplete={props.autoComplete}\n onInput={(event) => {\n const input = event.target as HTMLInputElement;\n handleOnChange(input.value);\n }}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onPaste={props.onPaste}\n name={props.name}\n id={props.id}\n tabIndex={props.tabIndex}\n onKeyDown={props.onKeyDown}\n min={props.min}\n max={props.max}\n step={props.step}\n />\n )}\n\n {props.postfixChildren && (\n <InputPostfixChildren\n $left={props.postfixChildren.left}\n $right={props.postfixChildren.right}\n $isDisabled={props.isDisabled}\n $width={props.postfixChildren.width}\n >\n {props.postfixChildren.children}\n </InputPostfixChildren>\n )}\n </StyledInputWrapper>\n {props?.error ? <ErrorMessage {...props.error} size={props?.error.size ?? props.size} /> : null}\n </>\n );\n};\n\nexport function formatPhoneNumber(dialCode: string, international: string) {\n function isDigit(char: string): boolean {\n return /\\d/.test(char);\n }\n\n let formattedNumber = '';\n let placeholderNumber = '';\n let dialCodeIndex = 0;\n\n if (dialCode.length === 0) {\n return { format: '', placeholder: '' };\n }\n\n for (let i = 0; i < international.length; i++) {\n const char = international.charAt(i);\n\n if (char === dialCode.charAt(dialCodeIndex)) {\n formattedNumber += char;\n placeholderNumber += isDigit(char) ? '#' : char;\n dialCodeIndex++;\n } else {\n if (isDigit(char)) {\n formattedNumber += '#';\n placeholderNumber += '-';\n } else {\n formattedNumber += char;\n placeholderNumber += char;\n }\n }\n }\n\n while (dialCodeIndex < dialCode.length) {\n formattedNumber += dialCode.charAt(dialCodeIndex);\n placeholderNumber += dialCode.charAt(dialCodeIndex);\n dialCodeIndex++;\n }\n\n return {\n format: formattedNumber,\n placeholder: placeholderNumber,\n };\n}\n"],"names":["jsxs","Fragment","jsx","props"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),i=require("./style-eIuUYu9x.cjs"),n=require("react"),r=require("./component.styles-
|
|
2
|
-
//# sourceMappingURL=component-
|
|
1
|
+
"use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),i=require("./style-eIuUYu9x.cjs"),n=require("react"),r=require("./component.styles-Dm_Ov4nM.cjs");exports.Input=t=>{const l=n.useCallback(e=>{var i,n;if("standard"===t.variety){const n="string"==typeof e?e:e.value,r=t.isNoSpaces?n.replace(/\s+/g,""):n;null==(i=t.onChange)||i.call(t,r)}"pattern"!==t.variety&&"numeric"!==t.variety||"string"!=typeof e&&(null==(n=t.onChange)||n.call(t,e))},[t]);return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsxs(r.StyledInputWrapper,{$isInputEffect:t.isInputEffect,className:t.className,$isDisabled:t.isDisabled,$sx:t.sx,$size:t.size,$isWidthAsHeight:t.isWidthAsHeight,children:[t.prefixChildren&&e.jsxRuntimeExports.jsx(r.InputPrefixChildren,{$left:t.prefixChildren.left,$right:t.prefixChildren.right,$isDisabled:t.isDisabled,$width:t.prefixChildren.width,children:t.prefixChildren.children}),"pattern"===t.variety?e.jsxRuntimeExports.jsx(r.StyledInputPattern,{$isNiceNumber:t.isNiceNumber,$isInputEffect:t.isInputEffect,$error:null==t?void 0:t.error,$isLoading:t.isLoading,$postfixChildren:null==t?void 0:t.postfixChildren,$prefixChildren:null==t?void 0:t.prefixChildren,$genre:t.genre,$size:t.size,$isBold:t.isBold,$isDisabled:t.isDisabled,$isCenter:t.isCenter,disabled:t.isDisabled,readOnly:t.isReadOnly,required:t.isRequired,defaultValue:null===t.defaultValue?"":t.defaultValue,value:null===t.value?"":t.value,placeholder:t.placeholder,onValueChange:e=>l(e),onBlur:t.onBlur,onFocus:t.onFocus,onPaste:t.onPaste,name:t.name,id:t.id,onKeyDown:t.onKeyDown,inputMode:t.inputMode,maxLength:t.maxLength,minLength:t.minLength,tabIndex:t.tabIndex,...t.propsPattern}):"numeric"===t.variety?e.jsxRuntimeExports.jsx(r.StyledInputNumeric,{$isNiceNumber:t.isNiceNumber,$isInputEffect:t.isInputEffect,$error:null==t?void 0:t.error,$isLoading:t.isLoading,$postfixChildren:null==t?void 0:t.postfixChildren,$prefixChildren:null==t?void 0:t.prefixChildren,$genre:t.genre,$size:t.size,$isBold:t.isBold,$isDisabled:t.isDisabled,$isCenter:t.isCenter,disabled:t.isDisabled,readOnly:t.isReadOnly,required:t.isRequired,defaultValue:null===t.defaultValue?"":t.defaultValue,value:null===t.value?"":t.value,placeholder:t.placeholder,onValueChange:e=>l(e),onBlur:t.onBlur,onFocus:t.onFocus,onPaste:t.onPaste,name:t.name,id:t.id,onKeyDown:t.onKeyDown,inputMode:t.inputMode,maxLength:t.maxLength,minLength:t.minLength,tabIndex:t.tabIndex,...t.propsNumeric}):e.jsxRuntimeExports.jsx(r.StyledInput,{$isNiceNumber:t.isNiceNumber,inputMode:t.inputMode,maxLength:t.maxLength,minLength:t.minLength,ref:t.ref,$error:t.error,$isInputEffect:t.isInputEffect,$isLoading:t.isLoading,$postfixChildren:null==t?void 0:t.postfixChildren,$prefixChildren:null==t?void 0:t.prefixChildren,$genre:t.genre,$size:t.size,$isBold:t.isBold,$isDisabled:t.isDisabled,$isCenter:t.isCenter,disabled:t.isDisabled,readOnly:t.isReadOnly,required:t.isRequired,defaultValue:null===t.defaultValue?"":t.defaultValue,value:null===t.value?"":t.value,placeholder:t.placeholder,type:t.type,autoComplete:t.autoComplete,onInput:e=>{const i=e.target;l(i.value)},onBlur:t.onBlur,onFocus:t.onFocus,onPaste:t.onPaste,name:t.name,id:t.id,tabIndex:t.tabIndex,onKeyDown:t.onKeyDown,min:t.min,max:t.max,step:t.step}),t.postfixChildren&&e.jsxRuntimeExports.jsx(r.InputPostfixChildren,{$left:t.postfixChildren.left,$right:t.postfixChildren.right,$isDisabled:t.isDisabled,$width:t.postfixChildren.width,children:t.postfixChildren.children})]}),(null==t?void 0:t.error)?e.jsxRuntimeExports.jsx(i.ErrorMessage,{...t.error,size:(null==t?void 0:t.error.size)??t.size}):null]})},exports.formatPhoneNumber=function(e,i){function n(e){return/\d/.test(e)}let r="",t="",l=0;if(0===e.length)return{format:"",placeholder:""};for(let s=0;s<i.length;s++){const a=i.charAt(s);a===e.charAt(l)?(r+=a,t+=n(a)?"#":a,l++):n(a)?(r+="#",t+="-"):(r+=a,t+=a)}for(;l<e.length;)r+=e.charAt(l),t+=e.charAt(l),l++;return{format:r,placeholder:t}};
|
|
2
|
+
//# sourceMappingURL=component-FwG2ieR3.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-CbnBTIR5.cjs","sources":["../src/components/input/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/styles/error';\n\nimport { useCallback } from 'react';\nimport { NumberFormatValues } from 'react-number-format';\n\nimport {\n InputPostfixChildren,\n InputPrefixChildren,\n InputProps,\n StyledInput,\n StyledInputNumeric,\n StyledInputPattern,\n StyledInputWrapper,\n} from '.';\n\nexport const Input = (props: InputProps) => {\n const handleOnChange = useCallback(\n (input: string | NumberFormatValues) => {\n if (props.variety === 'standard') {\n const value = typeof input === 'string' ? input : input.value;\n const cleaned = props.isNoSpaces ? value.replace(/\\s+/g, '') : value;\n props.onChange?.(cleaned);\n }\n\n if (props.variety === 'pattern' || props.variety === 'numeric') {\n if (typeof input !== 'string') {\n props.onChange?.(input);\n }\n }\n },\n [props],\n );\n\n return (\n <>\n <StyledInputWrapper\n $isInputEffect={props.isInputEffect}\n className={props.className}\n $isDisabled={props.isDisabled}\n $sx={props.sx}\n $size={props.size}\n $isWidthAsHeight={props.isWidthAsHeight}\n >\n {props.prefixChildren && (\n <InputPrefixChildren\n $left={props.prefixChildren.left}\n $right={props.prefixChildren.right}\n $isDisabled={props.isDisabled}\n $width={props.prefixChildren.width}\n >\n {props.prefixChildren.children}\n </InputPrefixChildren>\n )}\n {props.variety === 'pattern' ? (\n <StyledInputPattern\n $isNiceNumber={props.isNiceNumber}\n $isInputEffect={props.isInputEffect}\n $error={props?.error}\n $isLoading={props.isLoading}\n $postfixChildren={props?.postfixChildren}\n $prefixChildren={props?.prefixChildren}\n $genre={props.genre}\n $size={props.size}\n $isBold={props.isBold}\n $isDisabled={props.isDisabled}\n $isCenter={props.isCenter}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n placeholder={props.placeholder}\n onValueChange={(props) => handleOnChange(props)}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onPaste={props.onPaste}\n name={props.name}\n id={props.id}\n onKeyDown={props.onKeyDown}\n inputMode={props.inputMode}\n maxLength={props.maxLength}\n minLength={props.minLength}\n tabIndex={props.tabIndex}\n {...props.propsPattern}\n />\n ) : props.variety === 'numeric' ? (\n <StyledInputNumeric\n $isNiceNumber={props.isNiceNumber}\n $isInputEffect={props.isInputEffect}\n $error={props?.error}\n $isLoading={props.isLoading}\n $postfixChildren={props?.postfixChildren}\n $prefixChildren={props?.prefixChildren}\n $genre={props.genre}\n $size={props.size}\n $isBold={props.isBold}\n $isDisabled={props.isDisabled}\n $isCenter={props.isCenter}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n placeholder={props.placeholder}\n onValueChange={(props) => handleOnChange(props)}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onPaste={props.onPaste}\n name={props.name}\n id={props.id}\n onKeyDown={props.onKeyDown}\n inputMode={props.inputMode}\n maxLength={props.maxLength}\n minLength={props.minLength}\n tabIndex={props.tabIndex}\n {...props.propsNumeric}\n />\n ) : (\n <StyledInput\n $isNiceNumber={props.isNiceNumber}\n inputMode={props.inputMode}\n maxLength={props.maxLength}\n minLength={props.minLength}\n ref={props.ref}\n $error={props.error}\n $isInputEffect={props.isInputEffect}\n $isLoading={props.isLoading}\n $postfixChildren={props?.postfixChildren}\n $prefixChildren={props?.prefixChildren}\n $genre={props.genre}\n $size={props.size}\n $isBold={props.isBold}\n $isDisabled={props.isDisabled}\n $isCenter={props.isCenter}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n placeholder={props.placeholder}\n type={props.type}\n autoComplete={props.autoComplete}\n onInput={(event) => {\n const input = event.target as HTMLInputElement;\n handleOnChange(input.value);\n }}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onPaste={props.onPaste}\n name={props.name}\n id={props.id}\n tabIndex={props.tabIndex}\n onKeyDown={props.onKeyDown}\n min={props.min}\n max={props.max}\n step={props.step}\n />\n )}\n\n {props.postfixChildren && (\n <InputPostfixChildren\n $left={props.postfixChildren.left}\n $right={props.postfixChildren.right}\n $isDisabled={props.isDisabled}\n $width={props.postfixChildren.width}\n >\n {props.postfixChildren.children}\n </InputPostfixChildren>\n )}\n </StyledInputWrapper>\n {props?.error ? <ErrorMessage {...props.error} size={props?.error.size ?? props.size} /> : null}\n </>\n );\n};\n\nexport function formatPhoneNumber(dialCode: string, international: string) {\n function isDigit(char: string): boolean {\n return /\\d/.test(char);\n }\n\n let formattedNumber = '';\n let placeholderNumber = '';\n let dialCodeIndex = 0;\n\n if (dialCode.length === 0) {\n return { format: '', placeholder: '' };\n }\n\n for (let i = 0; i < international.length; i++) {\n const char = international.charAt(i);\n\n if (char === dialCode.charAt(dialCodeIndex)) {\n formattedNumber += char;\n placeholderNumber += isDigit(char) ? '#' : char;\n dialCodeIndex++;\n } else {\n if (isDigit(char)) {\n formattedNumber += '#';\n placeholderNumber += '-';\n } else {\n formattedNumber += char;\n placeholderNumber += char;\n }\n }\n }\n\n while (dialCodeIndex < dialCode.length) {\n formattedNumber += dialCode.charAt(dialCodeIndex);\n placeholderNumber += dialCode.charAt(dialCodeIndex);\n dialCodeIndex++;\n }\n\n return {\n format: formattedNumber,\n placeholder: placeholderNumber,\n };\n}\n"],"names":["props","handleOnChange","useCallback","input","variety","value","cleaned","isNoSpaces","replace","_a","onChange","call","_b","jsxs","Fragment","children","StyledInputWrapper","$isInputEffect","isInputEffect","className","$isDisabled","isDisabled","$sx","sx","$size","size","$isWidthAsHeight","isWidthAsHeight","prefixChildren","jsx","InputPrefixChildren","$left","left","$right","right","$width","width","StyledInputPattern","$isNiceNumber","isNiceNumber","$error","error","$isLoading","isLoading","$postfixChildren","postfixChildren","$prefixChildren","$genre","genre","$isBold","isBold","$isCenter","isCenter","disabled","readOnly","isReadOnly","required","isRequired","defaultValue","placeholder","onValueChange","onBlur","onFocus","onPaste","name","id","onKeyDown","inputMode","maxLength","minLength","tabIndex","propsPattern","StyledInputNumeric","propsNumeric","StyledInput","ref","type","autoComplete","onInput","event","target","min","max","step","InputPostfixChildren","ErrorMessage","dialCode","international","isDigit","char","test","formattedNumber","placeholderNumber","dialCodeIndex","length","format","i","charAt"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"component-FwG2ieR3.cjs","sources":["../src/components/input/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/styles/error';\n\nimport { useCallback } from 'react';\nimport { NumberFormatValues } from 'react-number-format';\n\nimport {\n InputPostfixChildren,\n InputPrefixChildren,\n InputProps,\n StyledInput,\n StyledInputNumeric,\n StyledInputPattern,\n StyledInputWrapper,\n} from '.';\n\nexport const Input = (props: InputProps) => {\n const handleOnChange = useCallback(\n (input: string | NumberFormatValues) => {\n if (props.variety === 'standard') {\n const value = typeof input === 'string' ? input : input.value;\n const cleaned = props.isNoSpaces ? value.replace(/\\s+/g, '') : value;\n props.onChange?.(cleaned);\n }\n\n if (props.variety === 'pattern' || props.variety === 'numeric') {\n if (typeof input !== 'string') {\n props.onChange?.(input);\n }\n }\n },\n [props],\n );\n\n return (\n <>\n <StyledInputWrapper\n $isInputEffect={props.isInputEffect}\n className={props.className}\n $isDisabled={props.isDisabled}\n $sx={props.sx}\n $size={props.size}\n $isWidthAsHeight={props.isWidthAsHeight}\n >\n {props.prefixChildren && (\n <InputPrefixChildren\n $left={props.prefixChildren.left}\n $right={props.prefixChildren.right}\n $isDisabled={props.isDisabled}\n $width={props.prefixChildren.width}\n >\n {props.prefixChildren.children}\n </InputPrefixChildren>\n )}\n {props.variety === 'pattern' ? (\n <StyledInputPattern\n $isNiceNumber={props.isNiceNumber}\n $isInputEffect={props.isInputEffect}\n $error={props?.error}\n $isLoading={props.isLoading}\n $postfixChildren={props?.postfixChildren}\n $prefixChildren={props?.prefixChildren}\n $genre={props.genre}\n $size={props.size}\n $isBold={props.isBold}\n $isDisabled={props.isDisabled}\n $isCenter={props.isCenter}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n placeholder={props.placeholder}\n onValueChange={(props) => handleOnChange(props)}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onPaste={props.onPaste}\n name={props.name}\n id={props.id}\n onKeyDown={props.onKeyDown}\n inputMode={props.inputMode}\n maxLength={props.maxLength}\n minLength={props.minLength}\n tabIndex={props.tabIndex}\n {...props.propsPattern}\n />\n ) : props.variety === 'numeric' ? (\n <StyledInputNumeric\n $isNiceNumber={props.isNiceNumber}\n $isInputEffect={props.isInputEffect}\n $error={props?.error}\n $isLoading={props.isLoading}\n $postfixChildren={props?.postfixChildren}\n $prefixChildren={props?.prefixChildren}\n $genre={props.genre}\n $size={props.size}\n $isBold={props.isBold}\n $isDisabled={props.isDisabled}\n $isCenter={props.isCenter}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n placeholder={props.placeholder}\n onValueChange={(props) => handleOnChange(props)}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onPaste={props.onPaste}\n name={props.name}\n id={props.id}\n onKeyDown={props.onKeyDown}\n inputMode={props.inputMode}\n maxLength={props.maxLength}\n minLength={props.minLength}\n tabIndex={props.tabIndex}\n {...props.propsNumeric}\n />\n ) : (\n <StyledInput\n $isNiceNumber={props.isNiceNumber}\n inputMode={props.inputMode}\n maxLength={props.maxLength}\n minLength={props.minLength}\n ref={props.ref}\n $error={props.error}\n $isInputEffect={props.isInputEffect}\n $isLoading={props.isLoading}\n $postfixChildren={props?.postfixChildren}\n $prefixChildren={props?.prefixChildren}\n $genre={props.genre}\n $size={props.size}\n $isBold={props.isBold}\n $isDisabled={props.isDisabled}\n $isCenter={props.isCenter}\n disabled={props.isDisabled}\n readOnly={props.isReadOnly}\n required={props.isRequired}\n defaultValue={props.defaultValue === null ? '' : props.defaultValue}\n value={props.value === null ? '' : props.value}\n placeholder={props.placeholder}\n type={props.type}\n autoComplete={props.autoComplete}\n onInput={(event) => {\n const input = event.target as HTMLInputElement;\n handleOnChange(input.value);\n }}\n onBlur={props.onBlur}\n onFocus={props.onFocus}\n onPaste={props.onPaste}\n name={props.name}\n id={props.id}\n tabIndex={props.tabIndex}\n onKeyDown={props.onKeyDown}\n min={props.min}\n max={props.max}\n step={props.step}\n />\n )}\n\n {props.postfixChildren && (\n <InputPostfixChildren\n $left={props.postfixChildren.left}\n $right={props.postfixChildren.right}\n $isDisabled={props.isDisabled}\n $width={props.postfixChildren.width}\n >\n {props.postfixChildren.children}\n </InputPostfixChildren>\n )}\n </StyledInputWrapper>\n {props?.error ? <ErrorMessage {...props.error} size={props?.error.size ?? props.size} /> : null}\n </>\n );\n};\n\nexport function formatPhoneNumber(dialCode: string, international: string) {\n function isDigit(char: string): boolean {\n return /\\d/.test(char);\n }\n\n let formattedNumber = '';\n let placeholderNumber = '';\n let dialCodeIndex = 0;\n\n if (dialCode.length === 0) {\n return { format: '', placeholder: '' };\n }\n\n for (let i = 0; i < international.length; i++) {\n const char = international.charAt(i);\n\n if (char === dialCode.charAt(dialCodeIndex)) {\n formattedNumber += char;\n placeholderNumber += isDigit(char) ? '#' : char;\n dialCodeIndex++;\n } else {\n if (isDigit(char)) {\n formattedNumber += '#';\n placeholderNumber += '-';\n } else {\n formattedNumber += char;\n placeholderNumber += char;\n }\n }\n }\n\n while (dialCodeIndex < dialCode.length) {\n formattedNumber += dialCode.charAt(dialCodeIndex);\n placeholderNumber += dialCode.charAt(dialCodeIndex);\n dialCodeIndex++;\n }\n\n return {\n format: formattedNumber,\n placeholder: placeholderNumber,\n };\n}\n"],"names":["props","handleOnChange","useCallback","input","variety","value","cleaned","isNoSpaces","replace","_a","onChange","call","_b","jsxs","Fragment","children","StyledInputWrapper","$isInputEffect","isInputEffect","className","$isDisabled","isDisabled","$sx","sx","$size","size","$isWidthAsHeight","isWidthAsHeight","prefixChildren","jsx","InputPrefixChildren","$left","left","$right","right","$width","width","StyledInputPattern","$isNiceNumber","isNiceNumber","$error","error","$isLoading","isLoading","$postfixChildren","postfixChildren","$prefixChildren","$genre","genre","$isBold","isBold","$isCenter","isCenter","disabled","readOnly","isReadOnly","required","isRequired","defaultValue","placeholder","onValueChange","onBlur","onFocus","onPaste","name","id","onKeyDown","inputMode","maxLength","minLength","tabIndex","propsPattern","StyledInputNumeric","propsNumeric","StyledInput","ref","type","autoComplete","onInput","event","target","min","max","step","InputPostfixChildren","ErrorMessage","dialCode","international","isDigit","char","test","formattedNumber","placeholderNumber","dialCodeIndex","length","format","i","charAt"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./component.styles-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./component.styles-DTC9tjQX.cjs");exports.DateDropdownDay=e.DateDropdownDay,exports.DateDropdownDayOfWeek=e.DateDropdownDayOfWeek,exports.DateDropdownDaySize=e.DateDropdownDaySize,exports.DateDropdownDaySizeConstructor=e.DateDropdownDaySizeConstructor,exports.DateDropdownDays=e.DateDropdownDays,exports.DateDropdownList=e.DateDropdownList,exports.DateDropdownListParent=e.DateDropdownListParent,exports.DateInput=e.DateInput,exports.DateInputWrapper=e.DateInputWrapper,exports.DateInputWrapperSize=e.DateInputWrapperSize,exports.DateInputWrapperSizeConstructor=e.DateInputWrapperSizeConstructor,exports.DatePicker=e.DatePicker,exports.DateWrapper=e.DateWrapper;
|
|
2
2
|
//# sourceMappingURL=component-date-picker.cjs.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./component.styles-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./component.styles-DqNAGfc9.cjs");exports.InputOTP=t.InputOTP,exports.InputOTPSize=t.InputOTPSize,exports.InputOTPSizeConstructor=t.InputOTPSizeConstructor,exports.InputOTPWrapper=t.InputOTPWrapper;
|
|
2
2
|
//# sourceMappingURL=component-input-otp.cjs.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./component-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./component-FwG2ieR3.cjs"),e=require("./component.styles-Dm_Ov4nM.cjs");exports.Input=t.Input,exports.formatPhoneNumber=t.formatPhoneNumber,exports.InputIsInputEffect=e.InputIsInputEffect,exports.InputPostfixChildren=e.InputPostfixChildren,exports.InputPrefixChildren=e.InputPrefixChildren,exports.InputSize=e.InputSize,exports.InputSizeConstructor=e.InputSizeConstructor,exports.StyledInput=e.StyledInput,exports.StyledInputCSS=e.StyledInputCSS,exports.StyledInputNumeric=e.StyledInputNumeric,exports.StyledInputPattern=e.StyledInputPattern,exports.StyledInputWrapper=e.StyledInputWrapper,exports.StyledMotionInput=e.StyledMotionInput,exports.addInputPlaceholder=e.addInputPlaceholder,exports.addInputPlaceholderNiceNumber=e.addInputPlaceholderNiceNumber;
|
|
2
2
|
//# sourceMappingURL=component-input.cjs.js.map
|
|
@@ -41,6 +41,8 @@ declare interface addErrorProps {
|
|
|
41
41
|
/****************************************** Placeholder *************************************************/
|
|
42
42
|
export declare const addInputPlaceholder: RuleSet<AddDollarSign<Pick<InputProps_2, "size" | "sx" | "isDisabled" | "error" | "genre" | "isLoading" | "isCenter" | "isNotShowHoverStyle" | "isBold" | "isInputEffect" | "postfixChildren" | "prefixChildren" | "isNiceNumber">>>;
|
|
43
43
|
|
|
44
|
+
export declare const addInputPlaceholderNiceNumber: RuleSet<AddDollarSign<Pick<InputProps_2, "size" | "sx" | "isDisabled" | "error" | "genre" | "isLoading" | "isCenter" | "isNotShowHoverStyle" | "isBold" | "isInputEffect" | "postfixChildren" | "prefixChildren" | "isNiceNumber">>>;
|
|
45
|
+
|
|
44
46
|
declare interface addSXProps {
|
|
45
47
|
sx?: SXProps;
|
|
46
48
|
}
|
|
@@ -121,8 +123,6 @@ export declare type InputPatternProps = BaseInputProps & {
|
|
|
121
123
|
propsPattern: Pick<PatternFormatProps, 'format' | 'mask' | 'allowEmptyFormatting' | 'patternChar' | 'valueIsNumericString' | 'type'>;
|
|
122
124
|
};
|
|
123
125
|
|
|
124
|
-
export declare const InputPlaceholderNiceNumber: RuleSet<AddDollarSign<Pick<InputProps_2, "size" | "sx" | "isDisabled" | "error" | "genre" | "isLoading" | "isCenter" | "isNotShowHoverStyle" | "isBold" | "isInputEffect" | "postfixChildren" | "prefixChildren" | "isNiceNumber">>>;
|
|
125
|
-
|
|
126
126
|
export declare const InputPostfixChildren: IStyledComponentBase<"web", Substitute<DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement>, AddDollarSign<Pick<InputProps_2, "isDisabled"> & Pick<InputChildrenProps_2, "left" | "right" | "width">>>> & string;
|
|
127
127
|
|
|
128
128
|
/****************************************** Children *************************************************/
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
import { I, f } from "./component-
|
|
2
|
-
import { d,
|
|
1
|
+
import { I, f } from "./component-C8QrHu0C.js";
|
|
2
|
+
import { d, k, j, I as I2, c, f as f2, e, i, h, S, g, a, b } from "./component.styles-Dt_CUijB.js";
|
|
3
3
|
export {
|
|
4
4
|
I as Input,
|
|
5
5
|
d as InputIsInputEffect,
|
|
6
|
-
I2 as InputPlaceholderNiceNumber,
|
|
7
6
|
k as InputPostfixChildren,
|
|
8
7
|
j as InputPrefixChildren,
|
|
9
|
-
|
|
8
|
+
I2 as InputSize,
|
|
10
9
|
c as InputSizeConstructor,
|
|
11
10
|
f2 as StyledInput,
|
|
12
11
|
e as StyledInputCSS,
|
|
@@ -15,6 +14,7 @@ export {
|
|
|
15
14
|
S as StyledInputWrapper,
|
|
16
15
|
g as StyledMotionInput,
|
|
17
16
|
a as addInputPlaceholder,
|
|
17
|
+
b as addInputPlaceholderNiceNumber,
|
|
18
18
|
f as formatPhoneNumber
|
|
19
19
|
};
|
|
20
20
|
//# sourceMappingURL=component-input.es.js.map
|
|
@@ -10,10 +10,10 @@ import moment from "moment";
|
|
|
10
10
|
import { useState, useRef, useMemo, useCallback, useEffect, Fragment } from "react";
|
|
11
11
|
import styled, { useTheme, css } from "styled-components";
|
|
12
12
|
import { u as usePopover, j as Typography, P as Popover, g as getFontSizeStyles } from "./component--cOriuv7.js";
|
|
13
|
-
import {
|
|
14
|
-
import { d as InputIsInputEffect, I as InputPlaceholderNiceNumber, P as PatternFormat } from "./component.styles-D6KuudL3.js";
|
|
13
|
+
import { d as InputIsInputEffect, b as addInputPlaceholderNiceNumber, P as PatternFormat } from "./component.styles-Dt_CUijB.js";
|
|
15
14
|
import { j as addNiceNumber, a as addRemoveScrollbar, b as addTransition, f as addOutline, i as addRemoveOutline } from "./style-Bvt_Melk.js";
|
|
16
15
|
import { a as addSX } from "./style-plT9Ah7t.js";
|
|
16
|
+
import { motion } from "framer-motion";
|
|
17
17
|
function countSevens(number) {
|
|
18
18
|
const divisor = 7;
|
|
19
19
|
const count = Math.floor(number / divisor);
|
|
@@ -245,7 +245,7 @@ const DatePicker = (props) => {
|
|
|
245
245
|
} else if (momentEndDate && momentCheckDate.isAfter(momentEndDate, "day")) {
|
|
246
246
|
momentNewDate = momentEndDate.startOf("day");
|
|
247
247
|
}
|
|
248
|
-
if (valueMoment
|
|
248
|
+
if (valueMoment == null ? void 0 : valueMoment.isSame(momentNewDate, "day")) return;
|
|
249
249
|
setValueMoment(momentNewDate);
|
|
250
250
|
setCurrentDay(momentNewDate.date());
|
|
251
251
|
setCurrentMonth(momentNewDate.month());
|
|
@@ -333,6 +333,11 @@ const DatePicker = (props) => {
|
|
|
333
333
|
Typography,
|
|
334
334
|
{
|
|
335
335
|
sx: { default: { size: 16, line: 1, isNoUserSelect: true } },
|
|
336
|
+
sxStandard: (theme2) => ({
|
|
337
|
+
default: {
|
|
338
|
+
color: theme2.colors.input[props.genre].color.placeholder
|
|
339
|
+
}
|
|
340
|
+
}),
|
|
336
341
|
children: props.labelPlaceholder
|
|
337
342
|
}
|
|
338
343
|
) : dataDate.map((date, index) => /* @__PURE__ */ jsxRuntimeExports.jsxs(Fragment, { children: [
|
|
@@ -373,7 +378,7 @@ const DatePicker = (props) => {
|
|
|
373
378
|
const day = inputDay ? Number(inputDay) : NaN;
|
|
374
379
|
const month = inputMonth ? Number(inputMonth) : NaN;
|
|
375
380
|
const year = value ? Number(value) : NaN;
|
|
376
|
-
if (!isNaN(day) && !isNaN(month) && !isNaN(year)) {
|
|
381
|
+
if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {
|
|
377
382
|
const m = moment.utc(`${day}.${month}.${year}`, "D.M.YYYY", true).startOf("day");
|
|
378
383
|
if (m.isValid()) {
|
|
379
384
|
onChangeDate(m.valueOf(), false, true);
|
|
@@ -404,8 +409,7 @@ const DatePicker = (props) => {
|
|
|
404
409
|
onBlur: () => {
|
|
405
410
|
var _a;
|
|
406
411
|
if (index !== dataDate.length - 1) {
|
|
407
|
-
if ((_a = date.valueInput) == null ? void 0 : _a.includes("_"))
|
|
408
|
-
date.setValueInput(fixUnderscoreToZero(date.valueInput));
|
|
412
|
+
if ((_a = date.valueInput) == null ? void 0 : _a.includes("_")) date.setValueInput(fixUnderscoreToZero(date.valueInput));
|
|
409
413
|
}
|
|
410
414
|
},
|
|
411
415
|
onKeyDown: handleKeyDown,
|
|
@@ -714,7 +718,7 @@ const DateInput = styled(PatternFormat)`
|
|
|
714
718
|
text-align: left;
|
|
715
719
|
${(props) => getFontSizeStyles(16, 400, "Roboto Mono", props.theme.font.lineHeight)};
|
|
716
720
|
${DateInputGenre};
|
|
717
|
-
${
|
|
721
|
+
${addInputPlaceholderNiceNumber};
|
|
718
722
|
${addRemoveOutline};
|
|
719
723
|
`;
|
|
720
724
|
const DateInputWrapperGenre = css`
|
|
@@ -786,4 +790,4 @@ export {
|
|
|
786
790
|
DateInputWrapperSizeConstructor as k,
|
|
787
791
|
DateInputWrapper as l
|
|
788
792
|
};
|
|
789
|
-
//# sourceMappingURL=component.styles-
|
|
793
|
+
//# sourceMappingURL=component.styles-DCDOKa6e.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.styles-DCDOKa6e.js","sources":["../src/components/date-picker/component.tsx","../src/components/date-picker/component.styles.ts"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Ripple } from '@local/components/ripple';\nimport { SelectMonth, SelectYear } from '@local/components/select';\nimport { Stack } from '@local/components/stack';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport moment, { Moment } from 'moment';\nimport { Fragment, KeyboardEvent, RefObject, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Popover, usePopover } from '../popover';\nimport { Typography } from '../typography';\nimport {\n DateDayProps,\n DateDropdownDay,\n DateDropdownDayOfWeek,\n DateDropdownDays,\n DateDropdownList,\n DateInput,\n DateInputWrapper,\n DatePickerMode,\n DatePickerProps,\n DateWrapper,\n WeekItem,\n} from '.';\n\nfunction countSevens(number: number) {\n const divisor = 7;\n const count = Math.floor(number / divisor);\n const remainder = number % divisor;\n\n return remainder > 0 ? count + 1 : count;\n}\n\nexport const DatePicker = (props: DatePickerProps) => {\n const { onChange, onBlur } = props;\n const theme = useTheme();\n\n const [valueMoment, setValueMoment] = useState<null | Moment>(null);\n\n const [currentMonth, setCurrentMonth] = useState<null | number>(null);\n const [currentYear, setCurrentYear] = useState<null | number>(null);\n const [currentDay, setCurrentDay] = useState<null | number>(null);\n\n const [inputDay, setInputDay] = useState<string | null>(null);\n const [inputMonth, setInputMonth] = useState<string | null>(null);\n const [inputYear, setInputYear] = useState<string | null>(null);\n\n const refDay = useRef<HTMLInputElement>(null);\n const refMonth = useRef<HTMLInputElement>(null);\n const refYear = useRef<HTMLInputElement>(null);\n\n const [activeSegment, setActiveSegment] = useState<'day' | 'month' | 'year' | null>(null);\n const [isError, setIsError] = useState(false);\n const dataDate = useMemo(() => {\n const mode: DatePickerMode = props.mode ?? 'DD.MM.YYYY';\n const result = {\n MM: {\n type: 'MM',\n width: '20px',\n ref: refMonth,\n value: inputMonth,\n setValue: setInputMonth,\n setActive: () => setActiveSegment('month'),\n valueInput: inputMonth,\n setValueInput: setInputMonth,\n placeholder: props.locale.inputs.month,\n },\n DD: {\n type: 'DD',\n width: '20px',\n ref: refDay,\n value: inputDay,\n setValue: setInputDay,\n setActive: () => setActiveSegment('day'),\n valueInput: inputDay,\n setValueInput: setInputDay,\n placeholder: props.locale.inputs.day,\n },\n YYYY: {\n type: 'YYYY',\n width: '40px',\n ref: refYear,\n value: inputYear,\n setValue: setInputYear,\n setActive: () => setActiveSegment('year'),\n valueInput: inputYear,\n setValueInput: setInputYear,\n placeholder: props.locale.inputs.year,\n },\n };\n const resultSort = mode\n .split('.')\n .map((e) => e.trim())\n .map((e) => {\n if (e === 'DD') return result.DD;\n if (e === 'MM') return result.MM;\n if (e === 'YYYY') return result.YYYY;\n return null;\n })\n .filter((e) => e !== null);\n return resultSort;\n }, [\n inputDay,\n inputMonth,\n inputYear,\n props.locale.inputs.day,\n props.locale.inputs.month,\n props.locale.inputs.year,\n props.mode,\n ]);\n\n const daysInWeek = useMemo(() => {\n const weekOrder: WeekItem['value'][] = ['mo', 'tu', 'we', 'th', 'fr', 'sa', 'su'];\n\n return weekOrder.map((key, index) => {\n const found = props.locale.weeks.find((w) => w.value === key);\n return {\n index,\n label: found?.localeShort ?? key.toUpperCase(),\n };\n });\n }, [props.locale.weeks]);\n\n const daysInMonth: DateDayProps[] = useMemo(() => {\n if (currentYear === null || currentMonth === null) return [];\n const today = moment.utc();\n\n const startOfMonth = moment.utc().year(currentYear).month(currentMonth).startOf('month');\n const endOfMonth = moment.utc().year(currentYear).month(currentMonth).endOf('month');\n\n const days = [];\n\n const startDate = props.startDate ? moment.utc(props.startDate) : null;\n const endDate = props.endDate ? moment.utc(props.endDate) : null;\n\n const daysToAddBefore = startOfMonth.isoWeekday() - 1;\n if (daysToAddBefore > 0) {\n for (let i = daysToAddBefore; i > 0; i--) {\n const day = startOfMonth.clone().subtract(i, 'days');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(startDate, 'day') || day.isAfter(endDate, 'day'),\n });\n }\n }\n\n const currentDate = startOfMonth.clone();\n while (currentDate <= endOfMonth) {\n days.push({\n value: currentDate.valueOf(),\n labelString: currentDate.format('dd'),\n labelNumber: currentDate.date(),\n dayOfWeek: currentDate.isoWeekday(),\n isWeekend: currentDate.isoWeekday() === 6 || currentDate.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: currentDate.isSame(today, 'day'),\n isCurrentMonth: true,\n isDisabled: currentDate.isBefore(startDate, 'day') || currentDate.isAfter(endDate, 'day'),\n });\n currentDate.add(1, 'day');\n }\n\n const daysToAddAfter = 7 - endOfMonth.isoWeekday();\n if (daysToAddAfter > 0) {\n for (let i = 1; i <= daysToAddAfter; i++) {\n const day = endOfMonth.clone().add(i, 'days').startOf('day');\n days.push({\n value: day.valueOf(),\n labelString: day.format('dd'),\n labelNumber: day.date(),\n dayOfWeek: day.isoWeekday(),\n isWeekend: day.isoWeekday() === 6 || day.isoWeekday() === 7,\n weekOfMonth: Math.ceil((days.length + 1) / 7),\n isToday: day.isSame(today, 'day'),\n isCurrentMonth: false,\n isDisabled: day.isBefore(startDate, 'day') || day.isAfter(endDate, 'day'),\n });\n }\n }\n\n days.sort((a, b) => a.value - b.value);\n return days;\n }, [currentMonth, currentYear, props.endDate, props.startDate]);\n\n const rows = useMemo(() => countSevens(daysInMonth.length) + 1, [daysInMonth]);\n const height = useMemo(\n () => 40 + rows * 28 + (rows - 1) * 6 + KEY_SIZE_DATA[props.size].padding * 2,\n [props.size, rows],\n );\n const sizeRadius = useMemo(() => KEY_SIZE_DATA[props.size].radius, [props.size]);\n\n const isHasValue = useMemo(() => {\n return props.value !== null && props.value !== undefined;\n }, [props.value]);\n\n const isBlockNextMonth = useMemo(() => {\n if (currentYear === null || currentMonth === null || currentDay === null) return true;\n const nextMonth = moment\n .utc()\n .year(currentYear)\n .month(currentMonth)\n .date(currentDay)\n .add(1, 'month')\n .startOf('month');\n\n const isBeforeEndDate = props.endDate ? nextMonth.isAfter(moment.utc(props.endDate), 'month') : false;\n return isBeforeEndDate;\n }, [currentYear, currentMonth, currentDay, props.endDate]);\n\n const isBlockPrevMonth = useMemo(() => {\n if (currentYear === null || currentMonth === null || currentDay === null) return true;\n const prevMonth = moment\n .utc()\n .year(currentYear)\n .month(currentMonth)\n .date(currentDay)\n .subtract(1, 'month')\n .startOf('month');\n\n const isAfterStartDate = props.startDate ? prevMonth.isBefore(moment.utc(props.startDate), 'month') : false;\n return isAfterStartDate;\n }, [currentYear, currentMonth, currentDay, props.startDate]);\n\n const refSelectMonth = useRef<HTMLElement>(null);\n const refSelectYear = useRef<HTMLElement>(null);\n\n const sizePadding = useMemo(() => KEY_SIZE_DATA[props.size].padding, [props.size]);\n\n const { isOpen, close, refReference, refFloating, floatingStyles, open } = usePopover({\n placement: 'bottom-start',\n offset: sizePadding,\n mode: 'independence',\n isClickOutside: true,\n refsExcludeClickOutside: [refSelectMonth, refSelectYear],\n isDisabled: props?.isDisabled,\n });\n\n const handleOnClose = useCallback(\n (isCheck?: boolean) => {\n close();\n if (isCheck)\n if (!inputDay || !inputMonth || !inputYear) {\n onChange(null);\n }\n },\n [close, inputDay, inputMonth, inputYear, onChange],\n );\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n if (\n !/^\\d$/.test(e.key) &&\n !['ArrowLeft', 'ArrowRight', 'ArrowUp', 'ArrowDown', 'Backspace', 'Delete', 'Tab'].includes(e.key) &&\n !e.ctrlKey &&\n !e.metaKey\n ) {\n e.preventDefault();\n return;\n }\n if (e.key === 'Backspace' || e.key === 'Delete') {\n if (\n (activeSegment === 'day' && (!inputDay || inputDay === '')) ||\n (activeSegment === 'month' && (!inputMonth || inputMonth === '')) ||\n (activeSegment === 'year' && (!inputYear || inputYear === ''))\n ) {\n if (activeSegment === 'day') {\n setInputDay(null);\n } else if (activeSegment === 'month') {\n setInputMonth(null);\n } else if (activeSegment === 'year') {\n setInputYear(null);\n }\n const nextSegment = activeSegment === 'day' ? 'day' : activeSegment === 'month' ? 'day' : 'month';\n setActiveSegment(nextSegment);\n e.preventDefault();\n }\n }\n if (e.key === 'ArrowLeft' || e.key === 'ArrowDown') {\n const nextSegment = activeSegment === 'day' ? 'year' : activeSegment === 'month' ? 'day' : 'month';\n setActiveSegment(nextSegment);\n e.preventDefault();\n }\n if (e.key === 'ArrowRight' || e.key === 'ArrowUp') {\n const nextSegment = activeSegment === 'day' ? 'month' : activeSegment === 'month' ? 'year' : 'day';\n setActiveSegment(nextSegment);\n e.preventDefault();\n }\n },\n [activeSegment, inputDay, inputMonth, inputYear],\n );\n\n const onChangeDate = useCallback(\n (timestamp: number, isBlur?: boolean, isChange?: boolean) => {\n const momentStartDate = props.startDate ? moment(props.startDate).utc() : null;\n const momentEndDate = props.endDate ? moment(props.endDate).utc() : null;\n const momentCheckDate = moment(timestamp).utc();\n let momentNewDate = moment(timestamp).utc();\n\n if (momentStartDate && momentCheckDate.isBefore(momentStartDate, 'day')) {\n momentNewDate = momentStartDate.startOf('day');\n } else if (momentEndDate && momentCheckDate.isAfter(momentEndDate, 'day')) {\n momentNewDate = momentEndDate.startOf('day');\n }\n if (valueMoment?.isSame(momentNewDate, 'day')) return;\n setValueMoment(momentNewDate);\n setCurrentDay(momentNewDate.date());\n setCurrentMonth(momentNewDate.month());\n setCurrentYear(momentNewDate.year());\n if (isChange) onChange(momentNewDate.valueOf());\n if (props.isOnClickClose && isBlur) {\n onBlur?.();\n handleOnClose();\n }\n },\n [props.startDate, props.endDate, props.isOnClickClose, valueMoment, onChange, onBlur, handleOnClose],\n );\n const onNextMonth = useCallback(() => {\n if (currentYear === null || currentMonth === null || currentDay === null) return;\n const newDate = moment.utc().year(currentYear).month(currentMonth).date(currentDay).add(1, 'month');\n onChangeDate(newDate.valueOf(), false, false);\n }, [currentDay, currentMonth, currentYear, onChangeDate]);\n\n const onPrevMonth = useCallback(() => {\n if (currentYear === null || currentMonth === null || currentDay === null) return;\n const newDate = moment.utc().year(currentYear).month(currentMonth).date(currentDay).subtract(1, 'month');\n onChangeDate(newDate.valueOf(), false, false);\n }, [currentDay, currentMonth, currentYear, onChangeDate]);\n\n // biome-ignore lint/correctness/useExhaustiveDependencies: <explanation>\n useEffect(() => {\n const valueMoment = props.value ? moment(props.value).utc() : moment.utc();\n if (props.value !== null && props.value !== undefined) {\n setInputDay(fixOneToZero(valueMoment.date().toString()));\n setInputMonth(fixOneToZero((valueMoment.month() + 1).toString()));\n setInputYear(valueMoment.year().toString());\n } else {\n setInputDay(null);\n setInputMonth(null);\n setInputYear(null);\n }\n onChangeDate(valueMoment.valueOf(), false, false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.value, isOpen]);\n\n useEffect(() => {\n if (activeSegment !== null) {\n setTimeout(() => {\n if (activeSegment === 'day') {\n refDay.current?.focus();\n } else if (activeSegment === 'month') {\n refMonth.current?.focus();\n } else if (activeSegment === 'year') {\n refYear.current?.focus();\n }\n }, 0);\n }\n }, [activeSegment]);\n\n useEffect(() => {\n if (isOpen) {\n setActiveSegment('day');\n } else {\n setActiveSegment(null);\n }\n }, [isOpen]);\n return (\n <>\n <DateWrapper\n $size={props.size}\n $genre={props.genre}\n $sx={props.sx}\n $isDisabled={props?.isDisabled}\n $isMinWidth={props?.isMinWidth}\n $radius={sizeRadius}\n $parentListHeight={height}\n tabIndex={-1}\n // onFocus={event => {\n // if (props?.isDisabled) return\n // if (props.onFocus) props.onFocus?.(event)\n // // handleOnOpen()\n // }}\n >\n <DateInputWrapper\n ref={refReference as RefObject<HTMLDivElement | null>}\n tabIndex={0}\n $genre={props.genre}\n $size={props.size}\n $error={isError ? { isError: true } : props.error}\n $isOpen={isOpen}\n onClick={() => {\n open();\n }}\n onFocus={() => {\n open();\n }}\n >\n {!isHasValue && props.labelPlaceholder && !isOpen ? (\n <Typography\n sx={{ default: { size: 16, line: 1, isNoUserSelect: true } }}\n sxStandard={(theme) => ({\n default: {\n color: theme.colors.input[props.genre].color.placeholder,\n },\n })}\n >\n {props.labelPlaceholder}\n </Typography>\n ) : (\n dataDate.map((date, index) => (\n <Fragment key={date.type}>\n <DateInput\n onValueChange={(values, sourceInfo) => {\n if (date.type === 'DD') {\n if (sourceInfo.source !== 'event') return;\n const value = values.formattedValue;\n setInputMonth(null);\n setInputYear(null);\n\n if (Number(value) && Number(value) > 31) {\n setInputDay('31');\n } else {\n setInputDay(value);\n }\n if (value !== '' && !value.includes('_')) {\n setActiveSegment('month');\n }\n } else if (date.type === 'MM') {\n if (sourceInfo.source !== 'event') return;\n const value = values.formattedValue;\n setInputYear(null);\n if (Number(value) > 12) {\n setInputMonth('12');\n } else {\n setInputMonth(value);\n }\n if (value !== '' && !value.includes('_')) {\n setActiveSegment('year');\n }\n } else if (date.type === 'YYYY') {\n if (sourceInfo.source !== 'event') return;\n const value = values.formattedValue;\n setInputYear(value);\n\n if (value !== '' && !value.includes('_')) {\n const day = inputDay ? Number(inputDay) : NaN;\n const month = inputMonth ? Number(inputMonth) : NaN;\n const year = value ? Number(value) : NaN;\n if (!Number.isNaN(day) && !Number.isNaN(month) && !Number.isNaN(year)) {\n const m = moment.utc(`${day}.${month}.${year}`, 'D.M.YYYY', true).startOf('day');\n if (m.isValid()) {\n onChangeDate(m.valueOf(), false, true);\n } else {\n setIsError(true);\n setTimeout(() => {\n setIsError(false);\n setInputDay(null);\n setInputMonth(null);\n setInputYear(null);\n setActiveSegment('day');\n }, 1000);\n }\n }\n }\n }\n }}\n $genre={props.genre}\n $size={props.size}\n getInputRef={(ref: HTMLInputElement | null) => {\n if (ref && !date.ref.current) {\n date.ref.current = ref;\n }\n }}\n onFocus={(e) => {\n // date.setActive();\n e.target.select();\n }}\n onBlur={() => {\n if (index !== dataDate.length - 1)\n if (date.valueInput?.includes('_')) date.setValueInput(fixUnderscoreToZero(date.valueInput));\n }}\n onKeyDown={handleKeyDown}\n value={date.valueInput ?? ''}\n placeholder={date.placeholder}\n format={'#'.repeat(date.type.length)}\n style={{ width: date.width }}\n readOnly={isError}\n type='text'\n mask='_'\n />\n {index !== dataDate.length - 1 && (\n <span style={{ width: '4px', pointerEvents: 'none', textAlign: 'center' }}>.</span>\n )}\n </Fragment>\n ))\n )}\n </DateInputWrapper>\n </DateWrapper>\n <Popover\n sx={(theme) => ({\n default: {\n background: theme.colors.input[props.genre].background.rest,\n border: `solid 1px ${theme.colors.input[props.genre].border.rest}`,\n },\n })}\n size={props.size}\n genre={props.genre}\n isOpen={isOpen}\n isShowAlwaysOutline\n floatingStyles={floatingStyles}\n ref={refFloating}\n >\n <DateDropdownList $isInputEffect={props.isInputEffect} $genre={props.genre} $size={props.size}>\n <Stack\n sx={{\n default: {\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n }}\n >\n <Button\n type='button'\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: 90,\n },\n ]}\n isWidthAsHeight\n genre={props.genre}\n size={'small'}\n onClick={() => !isBlockPrevMonth && onPrevMonth()}\n isHidden={isBlockPrevMonth}\n />\n {currentYear !== null && currentMonth !== null && currentDay !== null ? (\n <Stack sx={{ default: { gap: '8px' } }}>\n <SelectMonth\n monthsLocale={props.locale.months}\n genre={props.genre}\n size={'small'}\n value={moment\n .utc()\n .year(currentYear)\n .month(currentMonth)\n .date(currentDay)\n .startOf('month')\n .utc()\n .valueOf()}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n isShortLabel\n refFloating={refSelectMonth}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, false, true);\n }}\n startDate={props.startDate}\n endDate={props.endDate}\n sx={{ default: { width: '60px' } }}\n />\n <SelectYear\n genre={props.genre}\n size={'small'}\n refFloating={refSelectYear}\n value={moment\n .utc()\n .year(currentYear)\n .month(currentMonth)\n .date(currentDay)\n .startOf('year')\n .utc()\n .valueOf()}\n onChange={(timestamp: number | null) => {\n if (timestamp) onChangeDate(timestamp, false, true);\n }}\n isOnClickOptionClose\n isStayValueAfterSelect\n isOnlyColorInSelectListOption\n isCenter\n startDate={props.startDate}\n endDate={props.endDate}\n sx={{ default: { width: '60px' } }}\n />\n </Stack>\n ) : null}\n <Button\n type='button'\n onClick={() => !isBlockNextMonth && onNextMonth()}\n isWidthAsHeight\n isRadius\n icons={[\n {\n name: 'Arrow2',\n type: 'id',\n turn: -90,\n },\n ]}\n genre={props.genre}\n size={'small'}\n isHidden={isBlockNextMonth}\n />\n </Stack>\n <DateDropdownDays $rows={rows}>\n {daysInWeek.map((e, index) => (\n <DateDropdownDayOfWeek\n $isToday={false}\n $isWeekend={false}\n type='button'\n $genre={props.genre}\n $size={props.size}\n $row={daysInMonth[0]?.weekOfMonth - 1}\n $column={index + 1}\n key={`${e.label}-${index}`}\n >\n {e.label}\n </DateDropdownDayOfWeek>\n ))}\n {daysInMonth.map((day) =>\n !day.isDisabled ? (\n <DateDropdownDay\n type='button'\n $genre={props.genre}\n $size={props.size}\n $row={day?.weekOfMonth + 1}\n $column={day.dayOfWeek}\n key={day.value}\n onClick={() => onChangeDate(day.value, true, true)}\n $isToday={day.isToday}\n $isWeekend={day.isWeekend}\n $isChoice={day.value === valueMoment?.valueOf()}\n $isCurrentMonth={day.isCurrentMonth}\n >\n <Ripple color={theme.colors.date[props.genre].color.rest} />\n {day.labelNumber}\n </DateDropdownDay>\n ) : null,\n )}\n </DateDropdownDays>\n </DateDropdownList>\n </Popover>\n {props?.error ? <ErrorMessage {...props?.error} size={props?.error.size ?? props.size} /> : null}\n </>\n );\n};\nfunction fixUnderscoreToZero(str: string) {\n if (str.length === 2) {\n return '0' + str[0];\n }\n return str.replace(/_/g, '0');\n}\n\nfunction fixOneToZero(str: string) {\n if (str.length === 1) {\n return '0' + str[0];\n }\n return str;\n}\n","import { addInputPlaceholderNiceNumber, InputIsInputEffect } from '@local/components/input'\nimport { getFontSizeStyles } from '@local/components/typography'\nimport { addNiceNumber, addOutline, addRemoveOutline, addRemoveScrollbar, addTransition } from '@local/styles/add'\nimport { addError } from '@local/styles/error'\nimport { addSX } from '@local/styles/sx'\nimport { KEY_SIZE_DATA } from '@local/theme/theme'\nimport { IThemeSizePropertyDefault } from '@local/theme/theme.interface'\n\nimport { motion } from 'framer-motion'\nimport { PatternFormat } from 'react-number-format'\nimport styled, { css } from 'styled-components'\n\nimport { DateDropdownDayProps, DateDropdownListProps, DateInputProps, DateStyledListProps, DateWrapperProps } from '.'\n\nexport const DateWrapper = styled.div<DateWrapperProps>`\n width: 100%;\n position: relative;\n height: fit-content;\n ${props =>\n props.$isMinWidth &&\n css`\n width: min-content;\n `}\n ${addSX};\n ${addNiceNumber};\n`\n\nexport const DateDropdownListParent = styled(motion.div)<DateStyledListProps>`\n ${addRemoveScrollbar};\n`\n\nexport const DateDropdownList = styled.div<DateDropdownListProps>`\n list-style: none;\n\n position: relative;\n\n display: flex;\n flex-direction: column;\n overflow: hidden;\n width: 100%;\n padding-top: 6px;\n transform: translateZ(0);\n ${InputIsInputEffect};\n justify-content: flex-start;\n gap: 10px;\n`\n\nexport const DateDropdownDays = styled.div<{ $rows: number }>`\n display: grid;\n column-gap: normal;\n row-gap: normal;\n gap: 6px;\n grid-template-columns: repeat(7, 28px);\n grid-template-rows: repeat(${props => props.$rows}, 28px);\n justify-content: space-between;\n`\n\nexport const DateDropdownDaySize = css<DateDropdownDayProps>`\n ${props =>\n props.$size &&\n DateDropdownDaySizeConstructor({\n ...KEY_SIZE_DATA[props.$size]\n })};\n position: relative;\n overflow: hidden;\n isolation: isolate;\n user-select: none;\n background: ${props => props.theme.colors.date[props.$genre].background.rest};\n border-color: ${props => props.theme.colors.date[props.$genre].border.rest};\n color: ${props => props.theme.colors.date[props.$genre].color.rest};\n border: 1px solid transparent;\n grid-row: ${props => props.$row};\n grid-column: ${props => props.$column};\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n height: 100%;\n cursor: pointer;\n &:hover {\n ${props => css`\n background: ${props.theme.colors.date[props.$genre].background.hover};\n border-color: ${props.theme.colors.date[props.$genre].border.hover};\n color: ${props.theme.colors.date[props.$genre].color.hover};\n `}\n }\n ${addTransition};\n\n ${props =>\n props.$isWeekend &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.weekend};\n border-color: ${props.theme.colors.date[props.$genre].border.weekend};\n color: ${props.theme.colors.date[props.$genre].color.weekend};\n `}\n ${props =>\n props.$isToday &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.today};\n border-color: ${props.theme.colors.date[props.$genre].border.today};\n color: ${props.theme.colors.date[props.$genre].color.today};\n `}\n ${props =>\n props.$isChoice &&\n css`\n background: ${props.theme.colors.date[props.$genre].background.choice};\n border-color: ${props.theme.colors.date[props.$genre].border.choice};\n color: ${props.theme.colors.date[props.$genre].color.choice};\n `}\n ${props =>\n !props.$isCurrentMonth &&\n css`\n opacity: 0.5;\n `}\n ${params => getFontSizeStyles(12, 700, params.theme.font.family)};\n\n ${addOutline};\n`\nexport const DateDropdownDaySizeConstructor = (props: IThemeSizePropertyDefault) => css`\n border-radius: ${props.radius}px;\n ${params => getFontSizeStyles(12, 700, params.theme.font.family)};\n`\n\nexport const DateDropdownDay = styled.button<DateDropdownDayProps>`\n ${DateDropdownDaySize}\n`\nexport const DateDropdownDayOfWeek = styled.button<DateDropdownDayProps>`\n ${DateDropdownDaySize}\n opacity: 1;\n background-color: transparent;\n`\n\n/****************************************** Genre *************************************************/\nconst DateInputGenre = css<DateInputProps>`\n ${props => css`\n color: ${props.theme.colors.input[props.$genre].color.rest};\n &:active {\n color: ${props.theme.colors.input[props.$genre].color.rest};\n }\n &:focus-visible {\n color: ${props.theme.colors.input[props.$genre].color.rest};\n }\n `};\n`\nexport const DateInput = styled(PatternFormat)<DateInputProps>`\n resize: none;\n overflow: hidden;\n border: 0px solid;\n background: transparent;\n padding: 0px !important;\n margin: 0px !important;\n white-space: nowrap;\n text-align: left;\n ${props => getFontSizeStyles(16, 400, 'Roboto Mono', props.theme.font.lineHeight)};\n ${DateInputGenre};\n ${addInputPlaceholderNiceNumber};\n ${addRemoveOutline};\n`\n\n/****************************************** Genre *************************************************/\nconst DateInputWrapperGenre = css<DateInputProps>`\n ${props => css`\n background: ${props.theme.colors.input[props.$genre].background.rest};\n border-color: ${props.theme.colors.input[props.$genre].border.rest};\n color: ${props.theme.colors.input[props.$genre].color.rest};\n outline: 2px solid transparent;\n outline-offset: 1px;\n &:hover {\n background: ${props.theme.colors.input[props.$genre].background.hover};\n border-color: ${props.theme.colors.input[props.$genre].border.hover};\n color: ${props.theme.colors.input[props.$genre].color.hover};\n }\n &:has(:focus-visible),\n &:has(:active) {\n background: ${props.theme.colors.input[props.$genre].background.rest};\n border-color: ${props.theme.colors.input[props.$genre].border.rest};\n color: ${props.theme.colors.input[props.$genre].color.rest};\n outline: 2px solid ${props => props.theme.states.focus};\n }\n ${props.$isOpen &&\n css`\n background: ${props.theme.colors.input[props.$genre].background.rest};\n border-color: ${props.theme.colors.input[props.$genre].border.rest};\n color: ${props.theme.colors.input[props.$genre].color.rest};\n outline: 2px solid ${props => props.theme.states.focus};\n `}\n `};\n`\n\n/****************************************** Size *************************************************/\nexport const DateInputWrapperSize = css<DateInputProps>`\n ${props => DateInputWrapperSizeConstructor(KEY_SIZE_DATA[props.$size])};\n`\nexport const DateInputWrapperSizeConstructor = (props: IThemeSizePropertyDefault) => css`\n padding: 0px ${props.padding}px;\n height: ${props.height}px;\n min-height: ${props.height}px;\n max-height: ${props.height}px;\n border-radius: ${props.radius}px;\n`\n\nexport const DateInputWrapper = styled.div<DateInputProps>`\n resize: none;\n overflow: hidden;\n width: 100%;\n border: 1px solid transparent;\n\n white-space: nowrap;\n\n display: flex;\n align-items: center;\n gap: 0px;\n\n ${DateInputWrapperSize};\n ${DateInputWrapperGenre};\n ${addTransition};\n ${addError};\n`\n"],"names":["valueMoment","jsxs","Fragment","jsx","theme","props"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
|
|
2
2
|
import { b as ErrorMessage } from "./style-DjCgiI7l.js";
|
|
3
3
|
import { useState, useRef, useCallback } from "react";
|
|
4
|
-
import { I as Input } from "./component-
|
|
5
|
-
import "./component.styles-
|
|
4
|
+
import { I as Input } from "./component-C8QrHu0C.js";
|
|
5
|
+
import "./component.styles-Dt_CUijB.js";
|
|
6
6
|
import styled, { css } from "styled-components";
|
|
7
7
|
import { a as addSX } from "./style-plT9Ah7t.js";
|
|
8
8
|
import { K as KEY_SIZE_DATA } from "./theme.global-B46v_8eu.js";
|
|
@@ -175,4 +175,4 @@ export {
|
|
|
175
175
|
InputOTPSizeConstructor as b,
|
|
176
176
|
InputOTPWrapper as c
|
|
177
177
|
};
|
|
178
|
-
//# sourceMappingURL=component.styles-
|
|
178
|
+
//# sourceMappingURL=component.styles-DKG-fvog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.styles-
|
|
1
|
+
{"version":3,"file":"component.styles-DKG-fvog.js","sources":["../src/components/input-otp/component.tsx","../src/components/input-otp/component.styles.ts"],"sourcesContent":["import { ErrorMessage } from '@local/styles/error'\n\nimport { ClipboardEvent, FocusEvent, KeyboardEvent, useCallback, useRef, useState } from 'react'\n\nimport { Input } from '../input'\nimport { InputOTPProps, InputOTPWrapper } from '.'\n\nexport const InputOTP = (props: InputOTPProps) => {\n const [otp, setOtp] = useState<string[]>(new Array(props.length).fill(''))\n const inputsRef = useRef<(HTMLInputElement | null)[]>([])\n const wrapperRef = useRef<HTMLDivElement | null>(null)\n\n const handlePaste = useCallback(\n (index: number, e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault()\n\n const pasteData = e.clipboardData.getData('Text')\n const digits = pasteData.replace(/\\D/g, '').split('')\n\n if (!digits.length) return\n\n setOtp(prevOtp => {\n const newOtp = [...prevOtp]\n let currentIndex = index\n\n for (let i = 0; i < digits.length && currentIndex < newOtp.length; i++) {\n newOtp[currentIndex] = digits[i]\n currentIndex++\n }\n\n const joined = newOtp.join('')\n\n props.onChange?.(joined)\n\n if (newOtp.every(char => char !== '')) {\n props.onComplete?.(joined)\n }\n\n setTimeout(() => {\n const firstEmpty = newOtp.findIndex(char => char === '')\n if (firstEmpty !== -1) {\n inputsRef.current[firstEmpty]?.focus()\n } else if (currentIndex < newOtp.length) {\n inputsRef.current[currentIndex]?.focus()\n }\n }, 0)\n\n return newOtp\n })\n },\n [props]\n )\n\n const handleChange = useCallback(\n (index: number, value: string) => {\n if (!/^\\d*$/.test(value)) return\n\n setOtp(prevOtp => {\n const newOtp = [...prevOtp]\n newOtp[index] = value.slice(-1)\n\n if (props.onChange) {\n props.onChange(newOtp.join(''))\n }\n\n if (newOtp.every(char => char !== '')) {\n props.onComplete?.(newOtp.join(''))\n }\n\n if (value && index < prevOtp.length - 1) {\n setTimeout(() => {\n inputsRef.current[index + 1]?.focus()\n }, 0)\n }\n\n return newOtp\n })\n },\n [props]\n )\n\n const handleKeyDown = (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n const input = inputsRef.current[index]\n\n if (!input) return\n\n if (e.key === 'ArrowRight') {\n const nextIndex = index < otp.length - 1 ? index + 1 : 0\n const nextInput = inputsRef.current[nextIndex]\n\n if (nextInput) {\n nextInput.focus()\n setTimeout(() => nextInput.setSelectionRange(0, nextInput.value.length), 0)\n }\n }\n\n if (e.key === 'ArrowLeft') {\n const prevIndex = index > 0 ? index - 1 : otp.length - 1\n const prevInput = inputsRef.current[prevIndex]\n\n if (prevInput) {\n prevInput.focus()\n setTimeout(() => prevInput.setSelectionRange(0, prevInput.value.length), 0)\n }\n }\n\n if (e.key === 'Backspace') {\n if (input.value) {\n setTimeout(() => input.setSelectionRange(0, input.value.length), 0)\n } else if (index > 0) {\n setTimeout(() => {\n const prevInput = inputsRef.current[index - 1]\n if (prevInput) {\n prevInput.focus()\n prevInput.setSelectionRange(0, prevInput.value.length)\n }\n }, 0)\n }\n }\n }\n\n const handleFocusInput = useCallback((e: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => e.target.setSelectionRange(0, e.target.value.length), 0)\n }, [])\n return (\n <>\n <InputOTPWrapper\n $error={props.error}\n $size={props.size}\n id={props.id}\n ref={wrapperRef}\n onBlur={e => {\n setTimeout(() => {\n if (wrapperRef.current && !wrapperRef.current.contains(document.activeElement)) {\n props.onBlur?.(e)\n }\n }, 0)\n }}\n onFocus={e => {\n setTimeout(() => {\n if (wrapperRef.current?.contains(document.activeElement)) {\n props.onFocus?.(e)\n }\n }, 0)\n }}\n $sx={props.sx}\n >\n {otp.map((digit, index) => (\n <Input\n isWidthAsHeight\n key={index}\n tabIndex={index + 1}\n ref={el => {\n inputsRef.current[index] = el\n }}\n variety=\"standard\"\n type=\"text\"\n inputMode=\"numeric\"\n maxLength={1}\n value={digit}\n onFocus={handleFocusInput}\n onPaste={e => handlePaste(index, e)}\n onChange={value => handleChange(index, value)}\n onKeyDown={e => handleKeyDown(index, e)}\n genre={props.genre}\n size={props.size}\n />\n ))}\n </InputOTPWrapper>\n {props?.error ? <ErrorMessage {...props.error} size={props?.error.size ?? props.size} /> : null}\n </>\n )\n}\n","import styled, { css } from 'styled-components'\n\nimport { addSX } from '@local/styles/sx'\nimport { IThemeSizePropertyDefault, KEY_SIZE_DATA } from '@local/theme'\n\nimport { InputOTPWrapperProps } from '.'\n\n/****************************************** Size *************************************************/\nexport const InputOTPSize = css<InputOTPWrapperProps>`\n ${props => InputOTPSizeConstructor({ ...KEY_SIZE_DATA[props.$size], ...props })};\n`\nexport const InputOTPSizeConstructor = (props: IThemeSizePropertyDefault & InputOTPWrapperProps) => css`\n gap: ${props.padding - 2}px;\n width: 100%;\n`\n\nexport const InputOTPWrapper = styled.div<InputOTPWrapperProps>`\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n ${InputOTPSize};\n ${addSX};\n`\n"],"names":["_a","_b","jsxs","Fragment","jsx"],"mappings":"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"}
|