@zidsa/zidmui 3.1.3 → 3.1.4

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.
@@ -14,7 +14,9 @@ const AppInputBase = ({
14
14
  endAdornmentText,
15
15
  endAdornmentTextProps,
16
16
  labelSuffix,
17
+ disableWheelNumberChange = true,
17
18
  size = "medium",
19
+ slotProps,
18
20
  ...props
19
21
  }) => {
20
22
  let labelContent = props.label;
@@ -25,19 +27,6 @@ const AppInputBase = ({
25
27
  labelSuffix
26
28
  ] });
27
29
  }
28
- const inputSlotProps = typeof props.slotProps?.input === "function" ? {} : props.slotProps?.input || {};
29
- props.slotProps = {
30
- ...props?.slotProps,
31
- input: {
32
- startAdornment: startAdornment ? /* @__PURE__ */ jsxRuntime.jsx(material.InputAdornment, { position: "start", children: startAdornment }) : startAdornmentText ? /* @__PURE__ */ jsxRuntime.jsx(appInputAdornmentText.AppInputAdornmentText, { position: "start", ...startAdornmentTextProps, children: startAdornmentText }) : void 0,
33
- endAdornment: endAdornment ? /* @__PURE__ */ jsxRuntime.jsx(material.InputAdornment, { position: "end", children: endAdornment }) : endAdornmentText ? /* @__PURE__ */ jsxRuntime.jsx(appInputAdornmentText.AppInputAdornmentText, { position: "end", ...endAdornmentTextProps, children: endAdornmentText }) : void 0,
34
- ...inputSlotProps,
35
- // FIX: autocomplete inputs gets broken
36
- // oxlint-disable-next-line @typescript-eslint/no-explicit-any
37
- ...props.InputProps
38
- },
39
- ...props?.slotProps
40
- };
41
30
  const handleChangeText = React.useCallback(
42
31
  (text) => {
43
32
  return transformText ? transformText(text) : text;
@@ -51,7 +40,38 @@ const AppInputBase = ({
51
40
  },
52
41
  [handleChangeText, props]
53
42
  );
54
- return /* @__PURE__ */ jsxRuntime.jsx(material.TextField, { size, ...props, label: labelContent, onChange, children });
43
+ const inputSlotProps = typeof slotProps?.input === "function" ? {} : slotProps?.input || {};
44
+ const handleWheel = (event) => {
45
+ if (disableWheelNumberChange && props.type === "number") {
46
+ event.currentTarget.blur();
47
+ }
48
+ };
49
+ return /* @__PURE__ */ jsxRuntime.jsx(
50
+ material.TextField,
51
+ {
52
+ size,
53
+ slotProps: {
54
+ ...slotProps,
55
+ input: {
56
+ startAdornment: startAdornment ? /* @__PURE__ */ jsxRuntime.jsx(material.InputAdornment, { position: "start", children: startAdornment }) : startAdornmentText ? /* @__PURE__ */ jsxRuntime.jsx(appInputAdornmentText.AppInputAdornmentText, { position: "start", ...startAdornmentTextProps, children: startAdornmentText }) : void 0,
57
+ endAdornment: endAdornment ? /* @__PURE__ */ jsxRuntime.jsx(material.InputAdornment, { position: "end", children: endAdornment }) : endAdornmentText ? /* @__PURE__ */ jsxRuntime.jsx(appInputAdornmentText.AppInputAdornmentText, { position: "end", ...endAdornmentTextProps, children: endAdornmentText }) : void 0,
58
+ ...inputSlotProps,
59
+ // FIX: autocomplete inputs gets broken
60
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any
61
+ ...props.InputProps
62
+ },
63
+ htmlInput: {
64
+ onWheel: handleWheel,
65
+ ...slotProps?.htmlInput
66
+ },
67
+ ...slotProps
68
+ },
69
+ ...props,
70
+ label: labelContent,
71
+ onChange,
72
+ children
73
+ }
74
+ );
55
75
  };
56
76
  exports.AppInputBase = AppInputBase;
57
77
  //# sourceMappingURL=app-input-base.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-input-base.js","sources":["../../../../src/components/app-input-base.tsx"],"sourcesContent":["import { FC, useCallback, ReactNode } from 'react';\n\nimport { InputAdornment, TextField, TextFieldProps } from '@mui/material';\n\nimport { AppInputAdornmentText, AppInputAdornmentTextProps } from './app-input-adornment-text';\n\n//\n//\n\nexport type AppInputBaseProps = Omit<TextFieldProps, 'variant'> & {\n transformText?: (text: string) => string;\n startAdornment?: React.JSX.Element;\n startAdornmentText?: React.JSX.Element | string;\n startAdornmentTextProps?: AppInputAdornmentTextProps;\n endAdornment?: React.JSX.Element;\n endAdornmentText?: React.JSX.Element | string;\n endAdornmentTextProps?: AppInputAdornmentTextProps;\n labelSuffix?: ReactNode;\n};\n\nexport const AppInputBase: FC<AppInputBaseProps> = ({\n transformText,\n children,\n startAdornment,\n startAdornmentText,\n startAdornmentTextProps,\n endAdornment,\n endAdornmentText,\n endAdornmentTextProps,\n labelSuffix,\n size = 'medium',\n ...props\n}) => {\n let labelContent = props.label;\n\n if (props.label && labelSuffix) {\n labelContent = (\n <>\n {props.label} {labelSuffix}\n </>\n );\n }\n\n const inputSlotProps =\n typeof props.slotProps?.input === 'function' ? {} : props.slotProps?.input || {};\n\n props.slotProps = {\n ...props?.slotProps,\n input: {\n startAdornment: startAdornment ? (\n <InputAdornment position=\"start\">{startAdornment}</InputAdornment>\n ) : startAdornmentText ? (\n <AppInputAdornmentText position=\"start\" {...startAdornmentTextProps}>\n {startAdornmentText}\n </AppInputAdornmentText>\n ) : undefined,\n endAdornment: endAdornment ? (\n <InputAdornment position=\"end\">{endAdornment}</InputAdornment>\n ) : endAdornmentText ? (\n <AppInputAdornmentText position=\"end\" {...endAdornmentTextProps}>\n {endAdornmentText}\n </AppInputAdornmentText>\n ) : undefined,\n ...inputSlotProps,\n\n // FIX: autocomplete inputs gets broken\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n ...(props.InputProps as any),\n },\n ...props?.slotProps,\n };\n\n const handleChangeText = useCallback(\n (text: string) => {\n return transformText ? transformText(text) : text;\n },\n [transformText],\n );\n\n const onChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n event.target.value = handleChangeText(event.target.value);\n props?.onChange?.(event);\n },\n [handleChangeText, props],\n );\n\n return (\n <TextField size={size} {...props} label={labelContent} onChange={onChange}>\n {children}\n </TextField>\n );\n};\n"],"names":["jsxs","Fragment","jsx","InputAdornment","AppInputAdornmentText","useCallback","TextField"],"mappings":";;;;;;AAoBO,MAAM,eAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,MAAM;AACJ,MAAI,eAAe,MAAM;AAEzB,MAAI,MAAM,SAAS,aAAa;AAC9B,mBACEA,2BAAAA,KAAAC,qBAAA,EACG,UAAA;AAAA,MAAA,MAAM;AAAA,MAAM;AAAA,MAAE;AAAA,IAAA,GACjB;AAAA,EAEJ;AAEA,QAAM,iBACJ,OAAO,MAAM,WAAW,UAAU,aAAa,CAAA,IAAK,MAAM,WAAW,SAAS,CAAA;AAEhF,QAAM,YAAY;AAAA,IAChB,GAAG,OAAO;AAAA,IACV,OAAO;AAAA,MACL,gBAAgB,iBACdC,2BAAAA,IAACC,SAAAA,gBAAA,EAAe,UAAS,SAAS,UAAA,gBAAe,IAC/C,qBACFD,+BAACE,sBAAAA,yBAAsB,UAAS,SAAS,GAAG,yBACzC,8BACH,IACE;AAAA,MACJ,cAAc,eACZF,2BAAAA,IAACC,SAAAA,gBAAA,EAAe,UAAS,OAAO,UAAA,cAAa,IAC3C,mBACFD,+BAACE,sBAAAA,yBAAsB,UAAS,OAAO,GAAG,uBACvC,4BACH,IACE;AAAA,MACJ,GAAG;AAAA;AAAA;AAAA,MAIH,GAAI,MAAM;AAAA,IAAA;AAAA,IAEZ,GAAG,OAAO;AAAA,EAAA;AAGZ,QAAM,mBAAmBC,MAAAA;AAAAA,IACvB,CAAC,SAAiB;AAChB,aAAO,gBAAgB,cAAc,IAAI,IAAI;AAAA,IAC/C;AAAA,IACA,CAAC,aAAa;AAAA,EAAA;AAGhB,QAAM,WAAWA,MAAAA;AAAAA,IACf,CAAC,UAA+C;AAC9C,YAAM,OAAO,QAAQ,iBAAiB,MAAM,OAAO,KAAK;AACxD,aAAO,WAAW,KAAK;AAAA,IACzB;AAAA,IACA,CAAC,kBAAkB,KAAK;AAAA,EAAA;AAG1B,SACEH,2BAAAA,IAACI,sBAAU,MAAa,GAAG,OAAO,OAAO,cAAc,UACpD,UACH;AAEJ;;"}
1
+ {"version":3,"file":"app-input-base.js","sources":["../../../../src/components/app-input-base.tsx"],"sourcesContent":["import { FC, useCallback, ReactNode } from 'react';\n\nimport { InputAdornment, TextField, TextFieldProps } from '@mui/material';\n\nimport { AppInputAdornmentText, AppInputAdornmentTextProps } from './app-input-adornment-text';\n\n//\n//\n\nexport type AppInputBaseProps = Omit<TextFieldProps, 'variant'> & {\n transformText?: (text: string) => string;\n startAdornment?: React.JSX.Element;\n startAdornmentText?: React.JSX.Element | string;\n startAdornmentTextProps?: AppInputAdornmentTextProps;\n endAdornment?: React.JSX.Element;\n endAdornmentText?: React.JSX.Element | string;\n endAdornmentTextProps?: AppInputAdornmentTextProps;\n labelSuffix?: ReactNode;\n disableWheelNumberChange?: boolean;\n};\n\nexport const AppInputBase: FC<AppInputBaseProps> = ({\n transformText,\n children,\n startAdornment,\n startAdornmentText,\n startAdornmentTextProps,\n endAdornment,\n endAdornmentText,\n endAdornmentTextProps,\n labelSuffix,\n disableWheelNumberChange = true,\n size = 'medium',\n slotProps,\n ...props\n}) => {\n let labelContent = props.label;\n\n if (props.label && labelSuffix) {\n labelContent = (\n <>\n {props.label} {labelSuffix}\n </>\n );\n }\n\n const handleChangeText = useCallback(\n (text: string) => {\n return transformText ? transformText(text) : text;\n },\n [transformText],\n );\n\n const onChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n event.target.value = handleChangeText(event.target.value);\n props?.onChange?.(event);\n },\n [handleChangeText, props],\n );\n\n const inputSlotProps = typeof slotProps?.input === 'function' ? {} : slotProps?.input || {};\n\n // Prevent scroll wheel from changing number input values\n const handleWheel = (event: React.WheelEvent<HTMLInputElement>) => {\n if (disableWheelNumberChange && props.type === 'number') {\n event.currentTarget.blur();\n }\n };\n\n return (\n <TextField\n size={size}\n slotProps={{\n ...slotProps,\n input: {\n startAdornment: startAdornment ? (\n <InputAdornment position=\"start\">{startAdornment}</InputAdornment>\n ) : startAdornmentText ? (\n <AppInputAdornmentText position=\"start\" {...startAdornmentTextProps}>\n {startAdornmentText}\n </AppInputAdornmentText>\n ) : undefined,\n endAdornment: endAdornment ? (\n <InputAdornment position=\"end\">{endAdornment}</InputAdornment>\n ) : endAdornmentText ? (\n <AppInputAdornmentText position=\"end\" {...endAdornmentTextProps}>\n {endAdornmentText}\n </AppInputAdornmentText>\n ) : undefined,\n ...inputSlotProps,\n\n // FIX: autocomplete inputs gets broken\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n ...(props.InputProps as any),\n },\n htmlInput: {\n onWheel: handleWheel,\n ...slotProps?.htmlInput,\n },\n ...slotProps,\n }}\n {...props}\n label={labelContent}\n onChange={onChange}\n >\n {children}\n </TextField>\n );\n};\n"],"names":["jsxs","Fragment","useCallback","jsx","TextField","InputAdornment","AppInputAdornmentText"],"mappings":";;;;;;AAqBO,MAAM,eAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,2BAA2B;AAAA,EAC3B,OAAO;AAAA,EACP;AAAA,EACA,GAAG;AACL,MAAM;AACJ,MAAI,eAAe,MAAM;AAEzB,MAAI,MAAM,SAAS,aAAa;AAC9B,mBACEA,2BAAAA,KAAAC,qBAAA,EACG,UAAA;AAAA,MAAA,MAAM;AAAA,MAAM;AAAA,MAAE;AAAA,IAAA,GACjB;AAAA,EAEJ;AAEA,QAAM,mBAAmBC,MAAAA;AAAAA,IACvB,CAAC,SAAiB;AAChB,aAAO,gBAAgB,cAAc,IAAI,IAAI;AAAA,IAC/C;AAAA,IACA,CAAC,aAAa;AAAA,EAAA;AAGhB,QAAM,WAAWA,MAAAA;AAAAA,IACf,CAAC,UAA+C;AAC9C,YAAM,OAAO,QAAQ,iBAAiB,MAAM,OAAO,KAAK;AACxD,aAAO,WAAW,KAAK;AAAA,IACzB;AAAA,IACA,CAAC,kBAAkB,KAAK;AAAA,EAAA;AAG1B,QAAM,iBAAiB,OAAO,WAAW,UAAU,aAAa,KAAK,WAAW,SAAS,CAAA;AAGzF,QAAM,cAAc,CAAC,UAA8C;AACjE,QAAI,4BAA4B,MAAM,SAAS,UAAU;AACvD,YAAM,cAAc,KAAA;AAAA,IACtB;AAAA,EACF;AAEA,SACEC,2BAAAA;AAAAA,IAACC,SAAAA;AAAAA,IAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT,GAAG;AAAA,QACH,OAAO;AAAA,UACL,gBAAgB,iBACdD,2BAAAA,IAACE,SAAAA,gBAAA,EAAe,UAAS,SAAS,UAAA,gBAAe,IAC/C,qBACFF,+BAACG,sBAAAA,yBAAsB,UAAS,SAAS,GAAG,yBACzC,8BACH,IACE;AAAA,UACJ,cAAc,eACZH,2BAAAA,IAACE,SAAAA,gBAAA,EAAe,UAAS,OAAO,UAAA,cAAa,IAC3C,mBACFF,+BAACG,sBAAAA,yBAAsB,UAAS,OAAO,GAAG,uBACvC,4BACH,IACE;AAAA,UACJ,GAAG;AAAA;AAAA;AAAA,UAIH,GAAI,MAAM;AAAA,QAAA;AAAA,QAEZ,WAAW;AAAA,UACT,SAAS;AAAA,UACT,GAAG,WAAW;AAAA,QAAA;AAAA,QAEhB,GAAG;AAAA,MAAA;AAAA,MAEJ,GAAG;AAAA,MACJ,OAAO;AAAA,MACP;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAGP;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsxs, Fragment, jsx } from "react/jsx-runtime";
2
2
  import { useCallback } from "react";
3
- import { InputAdornment, TextField } from "@mui/material";
3
+ import { TextField, InputAdornment } from "@mui/material";
4
4
  import { AppInputAdornmentText } from "./app-input-adornment-text.js";
5
5
  const AppInputBase = ({
6
6
  transformText,
@@ -12,7 +12,9 @@ const AppInputBase = ({
12
12
  endAdornmentText,
13
13
  endAdornmentTextProps,
14
14
  labelSuffix,
15
+ disableWheelNumberChange = true,
15
16
  size = "medium",
17
+ slotProps,
16
18
  ...props
17
19
  }) => {
18
20
  let labelContent = props.label;
@@ -23,19 +25,6 @@ const AppInputBase = ({
23
25
  labelSuffix
24
26
  ] });
25
27
  }
26
- const inputSlotProps = typeof props.slotProps?.input === "function" ? {} : props.slotProps?.input || {};
27
- props.slotProps = {
28
- ...props?.slotProps,
29
- input: {
30
- startAdornment: startAdornment ? /* @__PURE__ */ jsx(InputAdornment, { position: "start", children: startAdornment }) : startAdornmentText ? /* @__PURE__ */ jsx(AppInputAdornmentText, { position: "start", ...startAdornmentTextProps, children: startAdornmentText }) : void 0,
31
- endAdornment: endAdornment ? /* @__PURE__ */ jsx(InputAdornment, { position: "end", children: endAdornment }) : endAdornmentText ? /* @__PURE__ */ jsx(AppInputAdornmentText, { position: "end", ...endAdornmentTextProps, children: endAdornmentText }) : void 0,
32
- ...inputSlotProps,
33
- // FIX: autocomplete inputs gets broken
34
- // oxlint-disable-next-line @typescript-eslint/no-explicit-any
35
- ...props.InputProps
36
- },
37
- ...props?.slotProps
38
- };
39
28
  const handleChangeText = useCallback(
40
29
  (text) => {
41
30
  return transformText ? transformText(text) : text;
@@ -49,7 +38,38 @@ const AppInputBase = ({
49
38
  },
50
39
  [handleChangeText, props]
51
40
  );
52
- return /* @__PURE__ */ jsx(TextField, { size, ...props, label: labelContent, onChange, children });
41
+ const inputSlotProps = typeof slotProps?.input === "function" ? {} : slotProps?.input || {};
42
+ const handleWheel = (event) => {
43
+ if (disableWheelNumberChange && props.type === "number") {
44
+ event.currentTarget.blur();
45
+ }
46
+ };
47
+ return /* @__PURE__ */ jsx(
48
+ TextField,
49
+ {
50
+ size,
51
+ slotProps: {
52
+ ...slotProps,
53
+ input: {
54
+ startAdornment: startAdornment ? /* @__PURE__ */ jsx(InputAdornment, { position: "start", children: startAdornment }) : startAdornmentText ? /* @__PURE__ */ jsx(AppInputAdornmentText, { position: "start", ...startAdornmentTextProps, children: startAdornmentText }) : void 0,
55
+ endAdornment: endAdornment ? /* @__PURE__ */ jsx(InputAdornment, { position: "end", children: endAdornment }) : endAdornmentText ? /* @__PURE__ */ jsx(AppInputAdornmentText, { position: "end", ...endAdornmentTextProps, children: endAdornmentText }) : void 0,
56
+ ...inputSlotProps,
57
+ // FIX: autocomplete inputs gets broken
58
+ // oxlint-disable-next-line @typescript-eslint/no-explicit-any
59
+ ...props.InputProps
60
+ },
61
+ htmlInput: {
62
+ onWheel: handleWheel,
63
+ ...slotProps?.htmlInput
64
+ },
65
+ ...slotProps
66
+ },
67
+ ...props,
68
+ label: labelContent,
69
+ onChange,
70
+ children
71
+ }
72
+ );
53
73
  };
54
74
  export {
55
75
  AppInputBase
@@ -1 +1 @@
1
- {"version":3,"file":"app-input-base.js","sources":["../../../../src/components/app-input-base.tsx"],"sourcesContent":["import { FC, useCallback, ReactNode } from 'react';\n\nimport { InputAdornment, TextField, TextFieldProps } from '@mui/material';\n\nimport { AppInputAdornmentText, AppInputAdornmentTextProps } from './app-input-adornment-text';\n\n//\n//\n\nexport type AppInputBaseProps = Omit<TextFieldProps, 'variant'> & {\n transformText?: (text: string) => string;\n startAdornment?: React.JSX.Element;\n startAdornmentText?: React.JSX.Element | string;\n startAdornmentTextProps?: AppInputAdornmentTextProps;\n endAdornment?: React.JSX.Element;\n endAdornmentText?: React.JSX.Element | string;\n endAdornmentTextProps?: AppInputAdornmentTextProps;\n labelSuffix?: ReactNode;\n};\n\nexport const AppInputBase: FC<AppInputBaseProps> = ({\n transformText,\n children,\n startAdornment,\n startAdornmentText,\n startAdornmentTextProps,\n endAdornment,\n endAdornmentText,\n endAdornmentTextProps,\n labelSuffix,\n size = 'medium',\n ...props\n}) => {\n let labelContent = props.label;\n\n if (props.label && labelSuffix) {\n labelContent = (\n <>\n {props.label} {labelSuffix}\n </>\n );\n }\n\n const inputSlotProps =\n typeof props.slotProps?.input === 'function' ? {} : props.slotProps?.input || {};\n\n props.slotProps = {\n ...props?.slotProps,\n input: {\n startAdornment: startAdornment ? (\n <InputAdornment position=\"start\">{startAdornment}</InputAdornment>\n ) : startAdornmentText ? (\n <AppInputAdornmentText position=\"start\" {...startAdornmentTextProps}>\n {startAdornmentText}\n </AppInputAdornmentText>\n ) : undefined,\n endAdornment: endAdornment ? (\n <InputAdornment position=\"end\">{endAdornment}</InputAdornment>\n ) : endAdornmentText ? (\n <AppInputAdornmentText position=\"end\" {...endAdornmentTextProps}>\n {endAdornmentText}\n </AppInputAdornmentText>\n ) : undefined,\n ...inputSlotProps,\n\n // FIX: autocomplete inputs gets broken\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n ...(props.InputProps as any),\n },\n ...props?.slotProps,\n };\n\n const handleChangeText = useCallback(\n (text: string) => {\n return transformText ? transformText(text) : text;\n },\n [transformText],\n );\n\n const onChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n event.target.value = handleChangeText(event.target.value);\n props?.onChange?.(event);\n },\n [handleChangeText, props],\n );\n\n return (\n <TextField size={size} {...props} label={labelContent} onChange={onChange}>\n {children}\n </TextField>\n );\n};\n"],"names":[],"mappings":";;;;AAoBO,MAAM,eAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,MAAM;AACJ,MAAI,eAAe,MAAM;AAEzB,MAAI,MAAM,SAAS,aAAa;AAC9B,mBACE,qBAAA,UAAA,EACG,UAAA;AAAA,MAAA,MAAM;AAAA,MAAM;AAAA,MAAE;AAAA,IAAA,GACjB;AAAA,EAEJ;AAEA,QAAM,iBACJ,OAAO,MAAM,WAAW,UAAU,aAAa,CAAA,IAAK,MAAM,WAAW,SAAS,CAAA;AAEhF,QAAM,YAAY;AAAA,IAChB,GAAG,OAAO;AAAA,IACV,OAAO;AAAA,MACL,gBAAgB,iBACd,oBAAC,gBAAA,EAAe,UAAS,SAAS,UAAA,gBAAe,IAC/C,qBACF,oBAAC,yBAAsB,UAAS,SAAS,GAAG,yBACzC,8BACH,IACE;AAAA,MACJ,cAAc,eACZ,oBAAC,gBAAA,EAAe,UAAS,OAAO,UAAA,cAAa,IAC3C,mBACF,oBAAC,yBAAsB,UAAS,OAAO,GAAG,uBACvC,4BACH,IACE;AAAA,MACJ,GAAG;AAAA;AAAA;AAAA,MAIH,GAAI,MAAM;AAAA,IAAA;AAAA,IAEZ,GAAG,OAAO;AAAA,EAAA;AAGZ,QAAM,mBAAmB;AAAA,IACvB,CAAC,SAAiB;AAChB,aAAO,gBAAgB,cAAc,IAAI,IAAI;AAAA,IAC/C;AAAA,IACA,CAAC,aAAa;AAAA,EAAA;AAGhB,QAAM,WAAW;AAAA,IACf,CAAC,UAA+C;AAC9C,YAAM,OAAO,QAAQ,iBAAiB,MAAM,OAAO,KAAK;AACxD,aAAO,WAAW,KAAK;AAAA,IACzB;AAAA,IACA,CAAC,kBAAkB,KAAK;AAAA,EAAA;AAG1B,SACE,oBAAC,aAAU,MAAa,GAAG,OAAO,OAAO,cAAc,UACpD,UACH;AAEJ;"}
1
+ {"version":3,"file":"app-input-base.js","sources":["../../../../src/components/app-input-base.tsx"],"sourcesContent":["import { FC, useCallback, ReactNode } from 'react';\n\nimport { InputAdornment, TextField, TextFieldProps } from '@mui/material';\n\nimport { AppInputAdornmentText, AppInputAdornmentTextProps } from './app-input-adornment-text';\n\n//\n//\n\nexport type AppInputBaseProps = Omit<TextFieldProps, 'variant'> & {\n transformText?: (text: string) => string;\n startAdornment?: React.JSX.Element;\n startAdornmentText?: React.JSX.Element | string;\n startAdornmentTextProps?: AppInputAdornmentTextProps;\n endAdornment?: React.JSX.Element;\n endAdornmentText?: React.JSX.Element | string;\n endAdornmentTextProps?: AppInputAdornmentTextProps;\n labelSuffix?: ReactNode;\n disableWheelNumberChange?: boolean;\n};\n\nexport const AppInputBase: FC<AppInputBaseProps> = ({\n transformText,\n children,\n startAdornment,\n startAdornmentText,\n startAdornmentTextProps,\n endAdornment,\n endAdornmentText,\n endAdornmentTextProps,\n labelSuffix,\n disableWheelNumberChange = true,\n size = 'medium',\n slotProps,\n ...props\n}) => {\n let labelContent = props.label;\n\n if (props.label && labelSuffix) {\n labelContent = (\n <>\n {props.label} {labelSuffix}\n </>\n );\n }\n\n const handleChangeText = useCallback(\n (text: string) => {\n return transformText ? transformText(text) : text;\n },\n [transformText],\n );\n\n const onChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n event.target.value = handleChangeText(event.target.value);\n props?.onChange?.(event);\n },\n [handleChangeText, props],\n );\n\n const inputSlotProps = typeof slotProps?.input === 'function' ? {} : slotProps?.input || {};\n\n // Prevent scroll wheel from changing number input values\n const handleWheel = (event: React.WheelEvent<HTMLInputElement>) => {\n if (disableWheelNumberChange && props.type === 'number') {\n event.currentTarget.blur();\n }\n };\n\n return (\n <TextField\n size={size}\n slotProps={{\n ...slotProps,\n input: {\n startAdornment: startAdornment ? (\n <InputAdornment position=\"start\">{startAdornment}</InputAdornment>\n ) : startAdornmentText ? (\n <AppInputAdornmentText position=\"start\" {...startAdornmentTextProps}>\n {startAdornmentText}\n </AppInputAdornmentText>\n ) : undefined,\n endAdornment: endAdornment ? (\n <InputAdornment position=\"end\">{endAdornment}</InputAdornment>\n ) : endAdornmentText ? (\n <AppInputAdornmentText position=\"end\" {...endAdornmentTextProps}>\n {endAdornmentText}\n </AppInputAdornmentText>\n ) : undefined,\n ...inputSlotProps,\n\n // FIX: autocomplete inputs gets broken\n // oxlint-disable-next-line @typescript-eslint/no-explicit-any\n ...(props.InputProps as any),\n },\n htmlInput: {\n onWheel: handleWheel,\n ...slotProps?.htmlInput,\n },\n ...slotProps,\n }}\n {...props}\n label={labelContent}\n onChange={onChange}\n >\n {children}\n </TextField>\n );\n};\n"],"names":[],"mappings":";;;;AAqBO,MAAM,eAAsC,CAAC;AAAA,EAClD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,2BAA2B;AAAA,EAC3B,OAAO;AAAA,EACP;AAAA,EACA,GAAG;AACL,MAAM;AACJ,MAAI,eAAe,MAAM;AAEzB,MAAI,MAAM,SAAS,aAAa;AAC9B,mBACE,qBAAA,UAAA,EACG,UAAA;AAAA,MAAA,MAAM;AAAA,MAAM;AAAA,MAAE;AAAA,IAAA,GACjB;AAAA,EAEJ;AAEA,QAAM,mBAAmB;AAAA,IACvB,CAAC,SAAiB;AAChB,aAAO,gBAAgB,cAAc,IAAI,IAAI;AAAA,IAC/C;AAAA,IACA,CAAC,aAAa;AAAA,EAAA;AAGhB,QAAM,WAAW;AAAA,IACf,CAAC,UAA+C;AAC9C,YAAM,OAAO,QAAQ,iBAAiB,MAAM,OAAO,KAAK;AACxD,aAAO,WAAW,KAAK;AAAA,IACzB;AAAA,IACA,CAAC,kBAAkB,KAAK;AAAA,EAAA;AAG1B,QAAM,iBAAiB,OAAO,WAAW,UAAU,aAAa,KAAK,WAAW,SAAS,CAAA;AAGzF,QAAM,cAAc,CAAC,UAA8C;AACjE,QAAI,4BAA4B,MAAM,SAAS,UAAU;AACvD,YAAM,cAAc,KAAA;AAAA,IACtB;AAAA,EACF;AAEA,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT,GAAG;AAAA,QACH,OAAO;AAAA,UACL,gBAAgB,iBACd,oBAAC,gBAAA,EAAe,UAAS,SAAS,UAAA,gBAAe,IAC/C,qBACF,oBAAC,yBAAsB,UAAS,SAAS,GAAG,yBACzC,8BACH,IACE;AAAA,UACJ,cAAc,eACZ,oBAAC,gBAAA,EAAe,UAAS,OAAO,UAAA,cAAa,IAC3C,mBACF,oBAAC,yBAAsB,UAAS,OAAO,GAAG,uBACvC,4BACH,IACE;AAAA,UACJ,GAAG;AAAA;AAAA;AAAA,UAIH,GAAI,MAAM;AAAA,QAAA;AAAA,QAEZ,WAAW;AAAA,UACT,SAAS;AAAA,UACT,GAAG,WAAW;AAAA,QAAA;AAAA,QAEhB,GAAG;AAAA,MAAA;AAAA,MAEJ,GAAG;AAAA,MACJ,OAAO;AAAA,MACP;AAAA,MAEC;AAAA,IAAA;AAAA,EAAA;AAGP;"}
@@ -10,5 +10,6 @@ export type AppInputBaseProps = Omit<TextFieldProps, 'variant'> & {
10
10
  endAdornmentText?: React.JSX.Element | string;
11
11
  endAdornmentTextProps?: AppInputAdornmentTextProps;
12
12
  labelSuffix?: ReactNode;
13
+ disableWheelNumberChange?: boolean;
13
14
  };
14
15
  export declare const AppInputBase: FC<AppInputBaseProps>;