@lowentry/mui 1.4.4 → 2.0.1
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/LICENSE +23 -0
- package/dist/index.d.ts +129 -0
- package/dist/index.js +720 -0
- package/dist/index.js.map +1 -0
- package/package.json +82 -73
- package/Avatar/index.js +0 -44
- package/Avatar/index.js.map +0 -1
- package/DatePicker/index.js +0 -166
- package/DatePicker/index.js.map +0 -1
- package/Dialog/index.js +0 -45
- package/Dialog/index.js.map +0 -1
- package/InitiallyInvisible/index.js +0 -40
- package/InitiallyInvisible/index.js.map +0 -1
- package/LeMuiUtils-c46ed1cc.js +0 -34
- package/LeMuiUtils-c46ed1cc.js.map +0 -1
- package/LoadingSpinner/index.js +0 -10
- package/LoadingSpinner/index.js.map +0 -1
- package/LoadingSpinner-4ccdb773.js +0 -67
- package/LoadingSpinner-4ccdb773.js.map +0 -1
- package/LoadingSpinnerWidget/index.js +0 -10
- package/LoadingSpinnerWidget/index.js.map +0 -1
- package/MenuButton/index.js +0 -63
- package/MenuButton/index.js.map +0 -1
- package/MuiRoot/index.js +0 -30
- package/MuiRoot/index.js.map +0 -1
- package/NumericTextField/index.js +0 -108
- package/NumericTextField/index.js.map +0 -1
- package/RemovableNumericTextField/index.js +0 -48
- package/RemovableNumericTextField/index.js.map +0 -1
- package/RemovableTextField/index.js +0 -54
- package/RemovableTextField/index.js.map +0 -1
- package/Submittable/index.js +0 -33
- package/Submittable/index.js.map +0 -1
- package/TextField/index.js +0 -33
- package/TextField/index.js.map +0 -1
- package/api-extractor.json +0 -43
- package/index.js +0 -38
- package/index.js.map +0 -1
- package/src/LeMuiUtils.js +0 -52
- package/src/components/Avatar.jsx +0 -28
- package/src/components/DatePicker.jsx +0 -120
- package/src/components/DatePicker.less +0 -32
- package/src/components/Dialog.jsx +0 -35
- package/src/components/Dialog.less +0 -7
- package/src/components/InitiallyInvisible.jsx +0 -20
- package/src/components/LoadingSpinner/LoadingSpinner.jsx +0 -51
- package/src/components/LoadingSpinner/LoadingSpinner.less +0 -9
- package/src/components/LoadingSpinner.jsx +0 -1
- package/src/components/LoadingSpinnerWidget.jsx +0 -1
- package/src/components/MenuButton.jsx +0 -54
- package/src/components/MuiRoot.jsx +0 -23
- package/src/components/MuiRoot.less +0 -21
- package/src/components/NumericTextField.jsx +0 -115
- package/src/components/RemovableNumericTextField.jsx +0 -41
- package/src/components/RemovableTextField.jsx +0 -48
- package/src/components/Submittable.jsx +0 -41
- package/src/components/TextField.jsx +0 -30
- package/src/components/TextField.less +0 -4
- package/src/index.js +0 -13
- package/style-inject.es-1f59c1d0.js +0 -29
- package/style-inject.es-1f59c1d0.js.map +0 -1
- package/tsconfig.d.ts +0 -1
- package/tsconfig.json +0 -39
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/LeMuiUtils.ts","../src/components/Avatar.tsx","../src/components/DatePicker.tsx","../src/components/Dialog.tsx","../src/components/InitiallyInvisible.tsx","../src/components/LoadingSpinner/LoadingSpinner.tsx","../src/components/MenuButton.tsx","../src/components/MuiRoot.tsx","../src/components/NumericTextField.tsx","../src/components/TextField.tsx","../src/components/RemovableNumericTextField.tsx","../src/components/RemovableTextField.tsx","../src/components/Submittable.tsx"],"sourcesContent":["import * as React from 'react';\nimport {LeUtils, STRING, INT_LAX} from '@lowentry/utils';\n\nconst HIDDEN_CHAR = '\\u200B';\n\nexport const LeMuiUtils = {\n\tonSelectEnsureMinimumOffset: (charactersCount: number): ((event: React.SyntheticEvent<HTMLInputElement | HTMLTextAreaElement>) => void) => \n\t{\n\t\tconst count = Math.max(0, INT_LAX(charactersCount));\n\t\tif (count <= 0) \n\t\t{\n\t\t\treturn (): void => \n\t\t\t{};\n\t\t}\n\n\t\treturn (event: React.SyntheticEvent<HTMLInputElement | HTMLTextAreaElement>): void => \n\t\t{\n\t\t\t// Type guard: verify target is HTMLInputElement or HTMLTextAreaElement\n\t\t\tconst target = event.target;\n\t\t\tif (target && (target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement) && 'selectionEnd' in target && 'selectionStart' in target && 'setSelectionRange' in target) \n\t\t\t{\n\t\t\t\tconst selectionEnd = target.selectionEnd ?? 0;\n\t\t\t\tconst selectionStart = target.selectionStart ?? 0;\n\t\t\t\t\n\t\t\t\tif (selectionEnd < count) \n\t\t\t\t{\n\t\t\t\t\ttarget.setSelectionRange(count, count);\n\t\t\t\t}\n\t\t\t\telse if (selectionStart < count) \n\t\t\t\t{\n\t\t\t\t\ttarget.setSelectionRange(count, selectionEnd);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t},\n\n\tprependHiddenChar: (string: string): string => \n\t{\n\t\tconst str = STRING(string);\n\t\tif (str.startsWith(HIDDEN_CHAR)) \n\t\t{\n\t\t\treturn str;\n\t\t}\n\t\treturn HIDDEN_CHAR + str;\n\t},\n\n\tpurgePrependedHiddenChar: (string: string): string => \n\t{\n\t\tconst str = STRING(string);\n\t\treturn LeUtils.trimStart(str, ['\\u200B', ' ', '\\t', '\\r', '\\n']);\n\t},\n};\n\nexport default LeMuiUtils;\n","import React from 'react';\nimport {memo, useRetryingImageUrl, useCallback} from '@lowentry/react-redux';\nimport MuiAvatar, {AvatarProps as MuiAvatarProps} from '@mui/material/Avatar';\n\nexport interface AvatarRetryOptions {\n\tretries?: number;\n\tdelay?: number | ((retries: number) => number);\n\tqueryParam?: string;\n}\n\nexport interface AvatarSlotProps {\n\timg?: React.ImgHTMLAttributes<HTMLImageElement> & {\n\t\tonError?: (event: React.SyntheticEvent<HTMLImageElement>) => void;\n\t};\n\t[key: string]: unknown;\n}\n\nexport interface AvatarProps extends Omit<MuiAvatarProps, 'src' | 'slotProps'> {\n\tsrc?: string;\n\tretryOptions?: AvatarRetryOptions;\n\tslotProps?: AvatarSlotProps;\n}\n\nexport const Avatar = memo(({src, slotProps, retryOptions, children, ...props}: AvatarProps) => \n{\n\tconst [imgSrc, onImgError] = useRetryingImageUrl(src ?? '', retryOptions ?? {});\n\n\tconst onError = useCallback(\n\t\t(event: React.SyntheticEvent<HTMLImageElement>) => \n\t\t{\n\t\t\tonImgError();\n\n\t\t\tif (slotProps?.img?.onError) \n\t\t\t{\n\t\t\t\tslotProps.img.onError(event);\n\t\t\t}\n\t\t},\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t[onImgError, slotProps?.img?.onError],\n\t);\n\n\treturn (\n\t\t<MuiAvatar\n\t\t\tsrc={imgSrc}\n\t\t\tslotProps={{\n\t\t\t\t...(slotProps ?? {}),\n\t\t\t\timg: {\n\t\t\t\t\treferrerPolicy: 'no-referrer',\n\t\t\t\t\t...(slotProps?.img ?? {}),\n\t\t\t\t\tonError: onError,\n\t\t\t\t},\n\t\t\t}}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</MuiAvatar>\n\t);\n});\n\nexport default Avatar;\n","import React from 'react';\nimport {memo, useMemo, useCallback, useHistoryState} from '@lowentry/react-redux';\nimport {IS_ARRAY, STRING} from '@lowentry/utils';\nimport Dayjs from 'dayjs';\nimport Button from '@mui/material/Button';\nimport Stack from '@mui/material/Stack';\nimport TextField from '@mui/material/TextField';\nimport {DatePicker as MuiDatePicker} from '@mui/x-date-pickers/DatePicker';\nimport ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew';\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\nimport './DatePicker.less';\n\ninterface DatePickerTextFieldProps {\n\tdateFormat: string;\n\tvalue?: Dayjs.Dayjs | Date | string | number | null;\n\tclassName: string;\n\townerState?: {\n\t\topen?: boolean;\n\t};\n\tInputProps?: {\n\t\tendAdornment?: React.ReactNode;\n\t\t[key: string]: unknown;\n\t};\n\t[key: string]: unknown;\n}\n\n// Type guard for React elements\nconst isReactElement = (val: unknown): val is React.ReactElement => \n{\n\treturn React.isValidElement(val);\n};\n\nconst DatePickerTextField = memo(({dateFormat, value, className, ownerState, ...props}: DatePickerTextFieldProps) => \n{\n\tconst onClick = useMemo(() => \n\t{\n\t\tif (ownerState?.open) \n\t\t{\n\t\t\treturn undefined;\n\t\t}\n\t\t\n\t\tconst inputProps = props.InputProps;\n\t\tif (!inputProps?.endAdornment) \n\t\t{\n\t\t\treturn null;\n\t\t}\n\t\tconst endAdornment = inputProps.endAdornment;\n\t\tif (!isReactElement(endAdornment)) \n\t\t{\n\t\t\treturn null;\n\t\t}\n\t\t\n\t\tlet propsLoop: unknown = endAdornment.props;\n\t\twhile (propsLoop && typeof propsLoop === 'object') \n\t\t{\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Dynamic props traversal\n\t\t\tconst recordLoop = propsLoop as Record<string, unknown>;\n\t\t\tif ('onClick' in recordLoop && typeof recordLoop.onClick === 'function') \n\t\t\t{\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Dynamic event handler extraction\n\t\t\t\treturn recordLoop.onClick as React.MouseEventHandler<HTMLButtonElement>;\n\t\t\t}\n\t\t\tif ('children' in recordLoop && recordLoop.children) \n\t\t\t{\n\t\t\t\tpropsLoop = recordLoop.children;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif (IS_ARRAY(propsLoop)) \n\t\t\t{\n\t\t\t\tlet continueLoop = false;\n\t\t\t\tfor (const propsLoopItem of propsLoop) \n\t\t\t\t{\n\t\t\t\t\tif (isReactElement(propsLoopItem)) \n\t\t\t\t\t{\n\t\t\t\t\t\tconst itemProps = propsLoopItem.props;\n\t\t\t\t\t\tif (itemProps && typeof itemProps === 'object') \n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tpropsLoop = itemProps;\n\t\t\t\t\t\t\tcontinueLoop = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (continueLoop) \n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (isReactElement(propsLoop)) \n\t\t\t{\n\t\t\t\tconst nextProps = propsLoop.props;\n\t\t\t\tif (nextProps && typeof nextProps === 'object') \n\t\t\t\t{\n\t\t\t\t\tpropsLoop = nextProps;\n\t\t\t\t}\n\t\t\t\telse \n\t\t\t\t{\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse \n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}, [ownerState, props.InputProps]);\n\n\tconst onSelect = useCallback((event: React.SyntheticEvent<HTMLElement>) => \n\t{\n\t\tconst target = event.target;\n\t\tif (target && target instanceof HTMLInputElement) \n\t\t{\n\t\t\ttarget.selectionStart = target.selectionEnd;\n\t\t}\n\t\tevent.preventDefault();\n\t}, []);\n\n\tconst inputProps = props.InputProps ?? {};\n\t\n\tconst formattedValue = useMemo(() => \n\t{\n\t\tif (value === null || value === undefined) \n\t\t{\n\t\t\treturn '';\n\t\t}\n\t\treturn Dayjs(value).format(STRING(dateFormat));\n\t}, [value, dateFormat]);\n\n\treturn (\n\t\t<Button variant=\"outlined\" onClick={onClick ?? undefined}>\n\t\t\t<TextField\n\t\t\t\t{...props}\n\t\t\t\tclassName={'lowentry-mui--date-picker--textfield ' + (STRING(className) ?? '')}\n\t\t\t\tvariant=\"outlined\"\n\t\t\t\tvalue={formattedValue}\n\t\t\t\t// MUI's TextField InputProps has complex typing, use type assertion for compatibility\n\t\t\t\t \n\t\t\t\tInputProps={{\n\t\t\t\t\t...inputProps,\n\t\t\t\t\treadOnly: true,\n\t\t\t\t\tendAdornment: null,\n\t\t\t\t\tonSelect: onSelect,\n\t\t\t\t\tonSelectCapture: onSelect,\n\t\t\t\t\tonMouseDown: onSelect,\n\t\t\t\t\tonTouchStart: onSelect,\n\t\t\t\t\tonTouchMove: onSelect,\n\t\t\t\t} as Record<string, unknown>}\n\t\t\t/>\n\t\t</Button>\n\t);\n});\n\nexport interface DatePickerProps {\n\tvalue?: Dayjs.Dayjs | Date | string | null;\n\tdateFormat?: string;\n\tonChange?: (value: Dayjs.Dayjs | null) => void;\n\tclassName?: string;\n\tchildren?: React.ReactNode;\n\t[key: string]: unknown;\n}\n\nexport const DatePicker = memo(({value, dateFormat, onChange, className, children, ...props}: DatePickerProps) => \n{\n\tconst textFieldProps = useMemo(() => \n\t{\n\t\tif (!dateFormat) \n\t\t{\n\t\t\treturn {dateFormat: 'ddd, D MMM YYYY'};\n\t\t}\n\t\treturn {dateFormat};\n\t}, [dateFormat]);\n\n\tconst [datepickerOpen, openDatepicker, closeDatepicker] = useHistoryState(false);\n\n\tconst onChanged = useCallback(\n\t\t(value: Dayjs.Dayjs | null) => \n\t\t{\n\t\t\tif (onChange) \n\t\t\t{\n\t\t\t\tonChange(value);\n\t\t\t}\n\t\t},\n\t\t[onChange],\n\t);\n\n\treturn (\n\t\t<Stack\n\t\t\tclassName={'lowentry-mui--date-picker ' + (className ?? '')}\n\t\t\tdirection=\"row\"\n\t\t\tjustifyContent=\"space-between\"\n\t\t\tspacing={1}\n\t\t\t{...props}\n\t\t>\n\t\t\t<Button\n\t\t\t\tclassName=\"lowentry-mui--date-picker--arrow-button\"\n\t\t\t\tvariant=\"text\"\n\t\t\t\tcolor=\"primary\"\n\t\t\t\tonClick={() => onChanged(Dayjs(value).subtract(1, 'day'))}\n\t\t\t>\n\t\t\t\t<ArrowBackIosNewIcon />\n\t\t\t</Button>\n\t\t\t<MuiDatePicker\n\t\t\t\topen={datepickerOpen}\n\t\t\t\tonOpen={openDatepicker}\n\t\t\t\tonClose={closeDatepicker}\n\t\t\t\tshowDaysOutsideCurrentMonth={true}\n\t\t\t\tviews={['day']}\n\t\t\t\tformat=\"YYYY-MM-DD\"\n\t\t\t\tenableAccessibleFieldDOMStructure={false}\n\t\t\t\tlabel=\"\"\n\t\t\t\tvalue={value ? Dayjs(value) : null}\n\t\t\t\tonChange={onChanged}\n\t\t\t\tslots={{\n\t\t\t\t\t \n\t\t\t\t\ttextField: DatePickerTextField as React.ElementType,\n\t\t\t\t\ttoolbar: () => null,\n\t\t\t\t}}\n\t\t\t\t// MUI's DatePicker slotProps has complex internal typing that doesn't recognize custom component props\n\t\t\t\t// We use type assertions here to pass our custom dateFormat prop through MUI's type system\n\t\t\t\tslotProps={{\n\t\t\t\t\ttextField: {\n\t\t\t\t\t\tdateFormat: textFieldProps.dateFormat,\n\t\t\t\t\t\t \n\t\t\t\t\t} as Record<string, unknown>,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<Button\n\t\t\t\tclassName=\"lowentry-mui--date-picker--arrow-button\"\n\t\t\t\tvariant=\"text\"\n\t\t\t\tcolor=\"primary\"\n\t\t\t\tonClick={() => onChanged(Dayjs(value).add(1, 'day'))}\n\t\t\t>\n\t\t\t\t<ArrowForwardIosIcon />\n\t\t\t</Button>\n\t\t\t{children}\n\t\t</Stack>\n\t);\n});\n\nexport default DatePicker;\n","import React from 'react';\nimport {memo, useMemo, useCallback} from '@lowentry/react-redux';\nimport {LeUtils, STRING} from '@lowentry/utils';\nimport MuiDialog, {DialogProps as MuiDialogProps} from '@mui/material/Dialog';\nimport './Dialog.less';\n\nexport interface DialogProps extends Omit<MuiDialogProps, 'onClose'> {\n\tonClose?: (event: React.SyntheticEvent, reason: string) => void;\n\tchildren?: React.ReactNode;\n\t// eslint-disable-next-line @typescript-eslint/naming-convention\n\t'aria-label'?: string;\n}\n\nexport const Dialog = memo(({onClose, children, 'aria-label': ariaLabel, open, ...props}: DialogProps) => \n{\n\tconst ariaLabelId = useMemo(() => 'lowentrymui_dialog_arialabel_' + LeUtils.uniqueId(), []);\n\n\tconst onClosed = useCallback(\n\t\t(event: React.SyntheticEvent, reason: string) => \n\t\t{\n\t\t\tif (!STRING(reason).toLowerCase().includes('escape')) \n\t\t\t{\n\t\t\t\t// prevent closing when clicking on the backdrop, only allow escape-key closing\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (onClose) \n\t\t\t{\n\t\t\t\tonClose(event, reason);\n\t\t\t}\n\t\t},\n\t\t[onClose],\n\t);\n\n\treturn (\n\t\t<MuiDialog className=\"lowentry-mui--dialog\" onClose={onClosed} aria-labelledby={ariaLabelId} open={open ?? false} {...props}>\n\t\t\t<span className=\"lowentry-mui--dialog--arialabel\" id={ariaLabelId} style={{display: 'none'}}>\n\t\t\t\t{ariaLabel ?? ''}\n\t\t\t</span>\n\t\t\t{children}\n\t\t</MuiDialog>\n\t);\n});\n\nexport default Dialog;\n","import React from 'react';\nimport {memo, useState, useEffect} from '@lowentry/react-redux';\nimport {LeUtils, INT_LAX} from '@lowentry/utils';\n\nexport interface InitiallyInvisibleProps extends React.HTMLAttributes<HTMLDivElement> {\n\tframes?: number;\n\ttransition?: string;\n\topacityKey?: unknown;\n}\n\nexport const InitiallyInvisible = memo(\n\t({frames, transition, style, children, opacityKey, ...other}: InitiallyInvisibleProps) => \n\t{\n\t\tconst [opacity, setOpacity] = useState(0);\n\n\t\tuseEffect(() => \n\t\t{\n\t\t\tsetOpacity(0);\n\t\t\treturn LeUtils.setAnimationFrameTimeout(() => setOpacity(1), Math.max(opacityKey ? 2 : 0, INT_LAX(frames))).remove;\n\t\t}, [opacityKey, frames]);\n\n\t\treturn (\n\t\t\t<div\n\t\t\t\tstyle={{\n\t\t\t\t\twidth: '100%',\n\t\t\t\t\theight: '100%',\n\t\t\t\t\topacity,\n\t\t\t\t\ttransition: opacity > 0 && transition ? 'opacity ' + transition : 'none',\n\t\t\t\t\t...(style ?? {}),\n\t\t\t\t}}\n\t\t\t\t{...other}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t},\n);\n\nexport default InitiallyInvisible;\n","import {memo, useEffect, trigger, useTriggerable} from '@lowentry/react-redux';\nimport Backdrop, {BackdropProps} from '@mui/material/Backdrop';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport {Theme} from '@mui/material/styles';\nimport './LoadingSpinner.less';\n\nconst loadingSpinnerCount: Record<string, number> = {};\n\nconst LoadingSpinnerGrab = ({type }: {type: string}): void => \n{\n\tloadingSpinnerCount[type] = (loadingSpinnerCount[type] || 0) + 1;\n\tif (loadingSpinnerCount[type] === 1) \n\t{\n\t\ttrigger('lowentry-mui--loading-spinner--' + type, {});\n\t}\n};\n\nconst LoadingSpinnerRelease = ({type }: {type: string}): void => \n{\n\tloadingSpinnerCount[type] = (loadingSpinnerCount[type] || 1) - 1;\n\tif (loadingSpinnerCount[type] === 0) \n\t{\n\t\ttrigger('lowentry-mui--loading-spinner--' + type, {});\n\t}\n};\n\nexport const LoadingSpinner = memo(({type }: {type: string}) => \n{\n\tuseEffect(() => \n\t{\n\t\tLoadingSpinnerGrab({type});\n\t\treturn (): void => LoadingSpinnerRelease({type});\n\t}, [type]);\n\n\treturn null;\n});\n\nexport interface LoadingSpinnerWidgetProps extends Omit<BackdropProps, 'open'> {\n\ttype: string;\n}\n\nexport const LoadingSpinnerWidget = memo(({type, className, sx, children, ...props}: LoadingSpinnerWidgetProps) => \n{\n\tuseTriggerable('lowentry-mui--loading-spinner--' + type);\n\n\treturn (\n\t\t<Backdrop\n\t\t\tclassName={'lowentry-mui--loading-spinner lowentry-mui--loading-spinner--' + type + ' ' + (className ?? '')}\n\t\t\tsx={{zIndex: (theme: Theme) => theme.zIndex.drawer + 1, ...(sx ?? {})}}\n\t\t\topen={(loadingSpinnerCount[type] || 0) > 0}\n\t\t\t{...props}\n\t\t>\n\t\t\t<CircularProgress color=\"inherit\" size=\"min(120px,30vw)\" />\n\t\t\t{children}\n\t\t</Backdrop>\n\t);\n});\n","import React, {cloneElement} from 'react';\nimport {memo, useRef, useState, useCallback, mergeRefs} from '@lowentry/react-redux';\nimport {LeUtils, ARRAY} from '@lowentry/utils';\nimport Button, {ButtonProps} from '@mui/material/Button';\nimport Menu from '@mui/material/Menu';\n\nexport interface MenuButtonProps extends Omit<ButtonProps, 'onClick'> {\n\ticon?: React.ReactNode;\n\tonClick?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n\tonClose?: (event: React.MouseEvent) => void;\n\tchildren?: React.ReactNode;\n\tref?: React.Ref<HTMLButtonElement>;\n}\n\nexport const MenuButton = memo(({icon, className, ref, onClick, onClose, children, ...props}: MenuButtonProps) => \n{\n\tconst buttonRef = useRef<HTMLButtonElement | null>(null);\n\tconst [open, setOpen] = useState(false);\n\n\tconst onClicked = useCallback(\n\t\t(event: React.MouseEvent<HTMLButtonElement>) => \n\t\t{\n\t\t\tsetOpen(true);\n\n\t\t\tif (onClick) \n\t\t\t{\n\t\t\t\tonClick(event);\n\t\t\t}\n\t\t},\n\t\t[onClick],\n\t);\n\n\tconst onClosed = useCallback(\n\t\t(event: React.MouseEvent) => \n\t\t{\n\t\t\tsetOpen(false);\n\n\t\t\tif (onClose) \n\t\t\t{\n\t\t\t\tonClose(event);\n\t\t\t}\n\t\t},\n\t\t[onClose],\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t<Button\n\t\t\t\tref={mergeRefs(buttonRef, ref ?? null)}\n\t\t\t\tclassName={'lowentry-mui--menu-button ' + (className ?? '')}\n\t\t\t\tvariant=\"text\"\n\t\t\t\tcolor=\"primary\"\n\t\t\t\tonClick={onClicked}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{icon}\n\t\t\t</Button>\n\t\t\t{/* eslint-disable-next-line react-hooks/refs */}\n\t\t\t<Menu anchorEl={buttonRef.current} open={open} onClose={onClosed}>\n\t\t\t\t{\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Dynamic children mapping\n\t\t\t\t\tLeUtils.mapToArray(ARRAY(children), (child: unknown, index: unknown): React.ReactElement | null =>\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!child || !React.isValidElement(child)) \n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst indexNum = typeof index === 'number' ? index : 0;\n\t\t\t\t\t\t// Type guard: check if child.props has onClick and disabled\n\t\t\t\t\t\tconst isRecordLike = (value: unknown): value is Record<string, unknown> => \n\t\t\t\t\t\t\ttypeof value === 'object' && value !== null;\n\t\t\t\t\t\tconst childProps = isRecordLike(child.props) ? child.props : {};\n\t\t\t\t\t\tconst hasOnClick = 'onClick' in childProps && typeof childProps.onClick === 'function';\n\t\t\t\t\t\tconst hasDisabled = 'disabled' in childProps && typeof childProps.disabled === 'boolean';\n\n\t\t\t\t\t\t// Construct new props with type guards\n\t\t\t\t\t\tconst newProps = {\n\t\t\t\t\t\t\t...childProps,\n\t\t\t\t\t\t\tkey: indexNum,\n\t\t\t\t\t\t\tonClick: (): void => \n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tsetOpen(false);\n\t\t\t\t\t\t\t\tif (hasOnClick && typeof childProps.onClick === 'function') \n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Dynamic click handler extraction\n\t\t\t\t\t\t\t\t\tconst clickHandler = childProps.onClick as () => void;\n\t\t\t\t\t\t\t\t\tclickHandler();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tdisabled: hasDisabled ? !!childProps.disabled : !hasOnClick,\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t// React.cloneElement requires exact prop type matching which is difficult with dynamic props\n\t\t\t\t\t\t// We use a type assertion here as the type guards above ensure runtime safety\n\t\t\t\t\t\t \n\t\t\t\t\t\treturn cloneElement(child, newProps as Partial<unknown>);\n\t\t\t\t\t}) as React.ReactElement[]}\n\t\t\t</Menu>\n\t\t</>\n\t);\n});\n\nexport default MenuButton;\n","import React from 'react';\nimport {memo} from '@lowentry/react-redux';\nimport CssBaseline from '@mui/material/CssBaseline';\nimport {ThemeProvider, Theme} from '@mui/material/styles';\nimport {LocalizationProvider} from '@mui/x-date-pickers/LocalizationProvider';\nimport {AdapterDayjs} from '@mui/x-date-pickers/AdapterDayjs';\nimport './MuiRoot.less';\n\nexport interface MuiRootProps {\n\ttheme: Theme;\n\tclassName?: string;\n\tchildren?: React.ReactNode;\n\t[key: string]: unknown;\n}\n\nexport const MuiRoot = memo(({theme, className, children, ...props}: MuiRootProps) => \n{\n\treturn (\n\t\t<>\n\t\t\t<CssBaseline />\n\t\t\t<ThemeProvider theme={theme}>\n\t\t\t\t<LocalizationProvider dateAdapter={AdapterDayjs}>\n\t\t\t\t\t<div className={'lowentry-mui--mui-root ' + (className ?? '')} {...props}>\n\t\t\t\t\t\t{children}\n\t\t\t\t\t</div>\n\t\t\t\t</LocalizationProvider>\n\t\t\t</ThemeProvider>\n\t\t</>\n\t);\n});\n\nexport default MuiRoot;\n","import React from 'react';\nimport {memo, useCallback, useState, useEffect} from '@lowentry/react-redux';\nimport {FLOAT_LAX, INT_LAX_ANY, STRING} from '@lowentry/utils';\nimport {LeMuiUtils} from '../LeMuiUtils';\nimport TextField, {TextFieldProps} from './TextField';\n\nconst getProcessedValue = (\n\tvalue: unknown,\n\tdecimals: number,\n\tallowZero: boolean,\n\tallowNegative: boolean,\n): {text: string; val: number} => \n{\n\tlet text = LeMuiUtils.purgePrependedHiddenChar(STRING(value));\n\tlet val = 0;\n\n\tconst negative = text.includes('-');\n\n\ttext = text.replace(',', '.').replace(/[^0-9.]/g, '');\n\tif (text !== '') \n\t{\n\t\tlet stringVal = Math.abs(FLOAT_LAX(text)).toFixed(decimals + 1); // prevents rounding (by adding an extra digit and then cutting it off)\n\t\tstringVal = stringVal.substring(0, stringVal.length - 1);\n\n\t\tconst textDotCount = text.split('.').length - 1;\n\t\tif (textDotCount <= 0 || decimals <= 0) \n\t\t{\n\t\t\ttext = stringVal.split('.')[0];\n\t\t}\n\t\telse if (textDotCount === 1 && text.endsWith('.')) \n\t\t{\n\t\t\ttext = stringVal.split('.')[0] + '.';\n\t\t}\n\t\telse \n\t\t{\n\t\t\ttext = stringVal.substring(0, stringVal.length - Math.max(0, decimals - text.split('.')[1].length));\n\t\t}\n\n\t\tif (!allowZero && text === '0') \n\t\t{\n\t\t\ttext = '';\n\t\t}\n\t}\n\n\tif (allowNegative && negative) \n\t{\n\t\ttext = '-' + text;\n\t}\n\n\tval = FLOAT_LAX(text);\n\tif (val !== 0) \n\t{\n\t\tif (decimals > 0) \n\t\t{\n\t\t\tval = Math.round(val * Math.pow(10, decimals)) / Math.pow(10, decimals);\n\t\t}\n\t\telse \n\t\t{\n\t\t\tval = Math.round(val);\n\t\t}\n\t}\n\n\treturn {text, val};\n};\n\nexport interface NumericChangeEvent extends React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement> {\n\ttarget: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>['target'] & {\n\t\tvalue: number | null;\n\t\tvalueText: string;\n\t\tvalueRaw: string;\n\t};\n}\n\nexport interface NumericTextFieldProps extends Omit<TextFieldProps, 'onChange' | 'value'> {\n\tdecimals?: number;\n\tallowZero?: boolean;\n\tallowNegative?: boolean;\n\tvalue?: unknown;\n\tonChange?: (event: NumericChangeEvent) => void;\n\tonRenderValue?: (value: string) => string;\n}\n\nexport const NumericTextField = memo(\n\t({\n\t\tdecimals: decimalsProp,\n\t\tallowZero: allowZeroProp,\n\t\tallowNegative: allowNegativeProp,\n\t\tvalue,\n\t\tonChange,\n\t\tonRenderValue,\n\t\tclassName,\n\t\tinputProps,\n\t\tchildren,\n\t\t...props\n\t}: NumericTextFieldProps) => \n\t{\n\t\tconst allowZero = !!allowZeroProp;\n\t\tconst allowNegative = !!allowNegativeProp;\n\t\tconst decimals = INT_LAX_ANY(decimalsProp, 0);\n\n\t\tconst getVisualValue = useCallback(\n\t\t\t(val: unknown) => \n\t\t\t{\n\t\t\t\treturn getProcessedValue(val, decimals, allowZero, allowNegative).text;\n\t\t\t},\n\t\t\t[decimals, allowZero, allowNegative],\n\t\t);\n\n\t\tconst [visualValue, setVisualValue] = useState(getVisualValue(value));\n\n\t\tuseEffect(() => \n\t\t{\n\t\t\tconst newVisualValue = getVisualValue(value);\n\t\t\tif (FLOAT_LAX(visualValue) !== FLOAT_LAX(newVisualValue)) \n\t\t\t{\n\t\t\t\tsetVisualValue(newVisualValue);\n\t\t\t}\n\t\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\t}, [value, getVisualValue]);\n\n\t\tconst onChanged = useCallback(\n\t\t\t(event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => \n\t\t\t{\n\t\t\t\tconst originalTargetValue = event.target.value;\n\t\t\t\tconst {text, val} = getProcessedValue(originalTargetValue, decimals, allowZero, allowNegative);\n\n\t\t\t\tsetVisualValue(text);\n\n\t\t\t\tif (onChange) \n\t\t\t\t{\n\t\t\t\t\t// Create a new event with augmented target properties\n\t\t\t\t\t// We use a plain object to avoid jsdom prototype setter issues\n\t\t\t\t\tconst newTarget = {\n\t\t\t\t\t\t...event.target,\n\t\t\t\t\t\tvalue: val,\n\t\t\t\t\t\tvalueText: text,\n\t\t\t\t\t\tvalueRaw: originalTargetValue,\n\t\t\t\t\t};\n\t\t\t\t\tconst newEvent: NumericChangeEvent = {\n\t\t\t\t\t\t...event,\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-unsafe-type-assertion -- Custom event target augmentation\n\t\t\t\t\t\ttarget: newTarget as NumericChangeEvent['target'],\n\t\t\t\t\t};\n\t\t\t\t\tonChange(newEvent);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[onChange, decimals, allowZero, allowNegative],\n\t\t);\n\n\t\treturn (\n\t\t\t<TextField\n\t\t\t\tclassName={'lowentry-mui--numeric-textfield ' + (className ?? '')}\n\t\t\t\ttype=\"text\"\n\t\t\t\tinputProps={{inputMode: 'decimal', ...(inputProps ?? {})}}\n\t\t\t\tvalue={onRenderValue ? onRenderValue(visualValue) : visualValue}\n\t\t\t\tonChange={onChanged}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</TextField>\n\t\t);\n\t},\n);\n\nexport default NumericTextField;\n","import React from 'react';\nimport {memo, useCallback} from '@lowentry/react-redux';\nimport MuiTextField, {TextFieldProps as MuiTextFieldProps} from '@mui/material/TextField';\nimport './TextField.less';\n\nexport type TextFieldProps = MuiTextFieldProps & {\n\tonClick?: (event: React.MouseEvent) => void;\n};\n\nexport const TextField = memo(({className, onClick, children, ...props}: TextFieldProps) =>\n{\n\tconst onClicked = useCallback(\n\t\t(event: React.MouseEvent) =>\n\t\t{\n\t\t\ttry\n\t\t\t{\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\t// ignore\n\t\t\t}\n\n\t\t\tif (onClick)\n\t\t\t{\n\t\t\t\tonClick(event);\n\t\t\t}\n\t\t},\n\t\t[onClick],\n\t);\n\n\treturn (\n\t\t<MuiTextField\n\t\t\tclassName={'lowentry-mui--textfield ' + (className ?? '')}\n\t\t\tautoComplete=\"off\"\n\t\t\tonClick={onClicked}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t</MuiTextField>\n\t);\n});\n\nexport default TextField;\n","import React from 'react';\nimport {memo, useCallback} from '@lowentry/react-redux';\nimport {LeMuiUtils} from '../LeMuiUtils';\nimport NumericTextField, {NumericTextFieldProps, NumericChangeEvent} from './NumericTextField';\n\nexport interface RemovableNumericTextFieldProps extends Omit<NumericTextFieldProps, 'onSelect'> {\n\tonRemove?: (event: NumericChangeEvent) => void;\n\tonSelect?: (event: React.SyntheticEvent<HTMLInputElement | HTMLTextAreaElement>) => void;\n}\n\nexport const RemovableNumericTextField = memo(\n\t({onRemove, onChange, onSelect, className, children, ...props}: RemovableNumericTextFieldProps) => \n\t{\n\t\tconst onChanged = useCallback(\n\t\t\t(event: NumericChangeEvent) => \n\t\t\t{\n\t\t\t\tif (event.target.valueRaw === '') \n\t\t\t\t{\n\t\t\t\t\tif (onRemove) \n\t\t\t\t\t{\n\t\t\t\t\t\tonRemove(event);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (onChange) \n\t\t\t\t{\n\t\t\t\t\tonChange(event);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[onRemove, onChange],\n\t\t);\n\n\t\tconst onSelected = useCallback(\n\t\t\t(event: React.SyntheticEvent<HTMLInputElement | HTMLTextAreaElement>) => \n\t\t\t{\n\t\t\t\tLeMuiUtils.onSelectEnsureMinimumOffset(1)(event);\n\t\t\t\tif (onSelect) \n\t\t\t\t{\n\t\t\t\t\tonSelect(event);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[onSelect],\n\t\t);\n\n\t\t// Type-safe wrapper: MUI TextField expects ReactEventHandler<HTMLDivElement>\n\t\t// but we handle HTMLInputElement | HTMLTextAreaElement events\n\t\tconst onSelectedWrapper = useCallback(\n\t\t\t(event: React.SyntheticEvent<HTMLDivElement>) => \n\t\t\t{\n\t\t\t\t// Type guard: check if event target is an input or textarea\n\t\t\t\tconst target = event.target;\n\t\t\t\tif (target && (target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement)) \n\t\t\t\t{\n\t\t\t\t\t// Create a compatible event object\n\t\t\t\t\t// We need to bridge HTMLDivElement event from TextField to HTMLInputElement | HTMLTextAreaElement event expected by onSelected\n\t\t\t\t\t// Use Function.prototype.call to invoke onSelected with correct context, bypassing type checking\n\t\t\t\t\t// This is necessary because React event types are invariant and we can't easily convert between them\n\t\t\t\t\tFunction.prototype.call.call(onSelected, undefined, {\n\t\t\t\t\t\t...event,\n\t\t\t\t\t\ttarget: target,\n\t\t\t\t\t\tcurrentTarget: target,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\t[onSelected],\n\t\t);\n\n\t\treturn (\n\t\t\t<NumericTextField\n\t\t\t\tclassName={\n\t\t\t\t\t'lowentry-mui--removable-textfield lowentry-mui--removable-numeric-textfield ' + (className ?? '')\n\t\t\t\t}\n\t\t\t\tonRenderValue={LeMuiUtils.prependHiddenChar}\n\t\t\t\tonChange={onChanged}\n\t\t\t\tonSelect={onSelectedWrapper}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</NumericTextField>\n\t\t);\n\t},\n);\n\nexport default RemovableNumericTextField;\n","import React from 'react';\nimport {memo, useCallback} from '@lowentry/react-redux';\nimport {LeMuiUtils} from '../LeMuiUtils';\nimport TextField, {TextFieldProps} from './TextField';\n\nexport interface RemovableTextFieldProps extends Omit<TextFieldProps, 'onChange' | 'onSelect'> {\n\tonRemove?: (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;\n\tonChange?: (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void;\n\tonSelect?: (event: React.SyntheticEvent<HTMLInputElement | HTMLTextAreaElement>) => void;\n}\n\nexport const RemovableTextField = memo(\n\t({className, value, onRemove, onChange, onSelect, children, ...props}: RemovableTextFieldProps) => \n\t{\n\t\tconst onChanged = useCallback(\n\t\t\t(event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => \n\t\t\t{\n\t\t\t\tif (event.target.value === '') \n\t\t\t\t{\n\t\t\t\t\tif (onRemove) \n\t\t\t\t\t{\n\t\t\t\t\t\tonRemove(event);\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (onChange) \n\t\t\t\t{\n\t\t\t\t\tconst newEvent = {\n\t\t\t\t\t\t...event,\n\t\t\t\t\t\ttarget: {\n\t\t\t\t\t\t\t...event.target,\n\t\t\t\t\t\t\tvalue: LeMuiUtils.purgePrependedHiddenChar(event.target.value),\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t\tonChange(newEvent);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[onRemove, onChange],\n\t\t);\n\n\t\tconst onSelected = useCallback(\n\t\t\t(event: React.SyntheticEvent<HTMLInputElement | HTMLTextAreaElement>) => \n\t\t\t{\n\t\t\t\tLeMuiUtils.onSelectEnsureMinimumOffset(1)(event);\n\t\t\t\tif (onSelect) \n\t\t\t\t{\n\t\t\t\t\tonSelect(event);\n\t\t\t\t}\n\t\t\t},\n\t\t\t[onSelect],\n\t\t);\n\n\t\t// Type-safe wrapper: MUI TextField expects ReactEventHandler<HTMLDivElement>\n\t\t// but we handle HTMLInputElement | HTMLTextAreaElement events\n\t\tconst onSelectedWrapper = useCallback(\n\t\t\t(event: React.SyntheticEvent<HTMLDivElement>) => \n\t\t\t{\n\t\t\t\t// Type guard: check if event target is an input or textarea\n\t\t\t\tconst target = event.target;\n\t\t\t\tif (target && (target instanceof HTMLInputElement || target instanceof HTMLTextAreaElement)) \n\t\t\t\t{\n\t\t\t\t\t// Create a compatible event object by constructing a new event with correct types\n\t\t\t\t\t// We need to create a new event object because TextField provides HTMLDivElement events\n\t\t\t\t\t// but onSelected expects HTMLInputElement | HTMLTextAreaElement events\n\t\t\t\t\t// Use a wrapper function that satisfies the type requirements\n\t\t\t\t\t// Create a compatible event object\n\t\t\t\t\t// We need to bridge HTMLDivElement event from TextField to HTMLInputElement | HTMLTextAreaElement event expected by onSelected\n\t\t\t\t\t// Use Function.prototype.call to invoke onSelected with correct context, bypassing type checking\n\t\t\t\t\t// This is necessary because React event types are invariant and we can't easily convert between them\n\t\t\t\t\tFunction.prototype.call.call(onSelected, undefined, {\n\t\t\t\t\t\t...event,\n\t\t\t\t\t\ttarget: target,\n\t\t\t\t\t\tcurrentTarget: target,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\t[onSelected],\n\t\t);\n\n\t\treturn (\n\t\t\t<TextField\n\t\t\t\tclassName={'lowentry-mui--removable-textfield ' + (className ?? '')}\n\t\t\t\tvalue={LeMuiUtils.prependHiddenChar(String(value ?? ''))}\n\t\t\t\tonChange={onChanged}\n\t\t\t\tonSelect={onSelectedWrapper}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</TextField>\n\t\t);\n\t},\n);\n\nexport default RemovableTextField;\n","import React from 'react';\nimport {memo, useCallback} from '@lowentry/react-redux';\nimport Stack, {StackProps} from '@mui/material/Stack';\n\nexport interface SubmittableProps extends StackProps\n{\n\tonSubmit?: (event: React.FormEvent) => void;\n\tdisabled?: boolean | (() => boolean);\n\tsx?: React.CSSProperties;\n\tchildren?: React.ReactNode;\n}\n\nexport const Submittable = memo(({onSubmit, disabled, sx, children, ...props}: SubmittableProps) =>\n{\n\tconst handleSubmit = useCallback(\n\t\t(event: React.FormEvent) =>\n\t\t{\n\t\t\ttry\n\t\t\t{\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t\tcatch\n\t\t\t{\n\t\t\t\t// ignore\n\t\t\t}\n\n\t\t\tif (disabled)\n\t\t\t{\n\t\t\t\tif (!(typeof disabled === 'function') || disabled())\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (onSubmit)\n\t\t\t{\n\t\t\t\tonSubmit(event);\n\t\t\t}\n\t\t},\n\t\t[onSubmit, disabled],\n\t);\n\n\treturn (\n\t\t<form style={sx} onSubmit={handleSubmit}>\n\t\t\t<Stack {...props}>{children}</Stack>\n\t\t</form>\n\t);\n});\n\nexport default Submittable;\n"],"mappings":"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","names":["memo","useCallback","STRING","jsx","memo","inputProps","useCallback","STRING","value","memo","useMemo","useCallback","LeUtils","STRING","jsx","jsxs","memo","useMemo","LeUtils","useCallback","STRING","memo","LeUtils","INT_LAX","jsx","memo","useEffect","jsx","jsxs","memo","useEffect","React","memo","useState","useCallback","LeUtils","Button","jsx","jsxs","memo","Fragment","jsx","jsxs","memo","memo","useCallback","useState","useEffect","STRING","memo","useCallback","jsx","TextField","memo","useCallback","jsx","STRING","memo","useCallback","useState","useEffect","memo","useCallback","jsx","memo","useCallback","memo","useCallback","jsx","memo","useCallback","memo","useCallback","Stack","jsx"]}
|
package/package.json
CHANGED
|
@@ -1,75 +1,84 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
2
|
+
"name": "@lowentry/mui",
|
|
3
|
+
"version": "2.0.1",
|
|
4
|
+
"description": "Provides utilities for Material UI.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"author": "Low Entry",
|
|
7
|
+
"license": "MIT",
|
|
8
|
+
"homepage": "https://github.com/LowEntry/lowentry-js-mui",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "git+https://github.com/LowEntry/lowentry-js-mui.git"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/LowEntry/lowentry-js-mui/issues"
|
|
15
|
+
},
|
|
16
|
+
"keywords": [
|
|
17
|
+
"materialui",
|
|
18
|
+
"mui",
|
|
19
|
+
"plugin",
|
|
20
|
+
"utility",
|
|
21
|
+
"utilities"
|
|
22
|
+
],
|
|
23
|
+
"main": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"exports": {
|
|
26
|
+
".": {
|
|
27
|
+
"import": "./dist/index.js",
|
|
28
|
+
"types": "./dist/index.d.ts"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"files": [
|
|
32
|
+
"dist"
|
|
33
|
+
],
|
|
34
|
+
"scripts": {
|
|
35
|
+
"build": "tsup",
|
|
36
|
+
"lint": "eslint .",
|
|
37
|
+
"format": "eslint . --fix",
|
|
38
|
+
"test": "npm run type-check && npm run lint && vitest run",
|
|
39
|
+
"type-check": "tsc --noEmit",
|
|
40
|
+
"test:watch": "vitest",
|
|
41
|
+
"test:coverage": "vitest run --coverage",
|
|
42
|
+
"clean": "rm -rf dist coverage",
|
|
43
|
+
"prepublishOnly": "npm run clean && npm test && npm run build"
|
|
44
|
+
},
|
|
45
|
+
"dependencies": {
|
|
46
|
+
"@lowentry/react-redux": "^2.0.1",
|
|
47
|
+
"@lowentry/utils": "^2.0.8",
|
|
48
|
+
"dayjs": "^1.11.19"
|
|
49
|
+
},
|
|
50
|
+
"peerDependencies": {
|
|
51
|
+
"@emotion/react": "^11.0.0",
|
|
52
|
+
"@emotion/styled": "^11.0.0",
|
|
53
|
+
"@mui/icons-material": "^5.0.0 || ^6.0.0 || ^7.0.0",
|
|
54
|
+
"@mui/material": "^5.0.0 || ^6.0.0 || ^7.0.0",
|
|
55
|
+
"@mui/x-date-pickers": "^6.0.0 || ^7.0.0 || ^8.0.0",
|
|
56
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
57
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"@emotion/react": "^11.14.0",
|
|
61
|
+
"@emotion/styled": "^11.14.1",
|
|
62
|
+
"@mui/icons-material": "^7.3.7",
|
|
63
|
+
"@mui/material": "^7.3.7",
|
|
64
|
+
"@mui/x-date-pickers": "^8.26.0",
|
|
65
|
+
"@stylistic/eslint-plugin": "^5.7.1",
|
|
66
|
+
"@testing-library/dom": "^10.4.1",
|
|
67
|
+
"@testing-library/jest-dom": "^6.9.1",
|
|
68
|
+
"@testing-library/react": "^16.3.2",
|
|
69
|
+
"@types/react": "^19.2.9",
|
|
70
|
+
"@types/react-dom": "^19.2.3",
|
|
71
|
+
"eslint": "^9.39.2",
|
|
72
|
+
"eslint-plugin-jsonc": "^2.21.0",
|
|
73
|
+
"eslint-plugin-react-hooks": "^7.0.1",
|
|
74
|
+
"jsdom": "^27.4.0",
|
|
75
|
+
"jsonc-eslint-parser": "^2.4.2",
|
|
76
|
+
"less": "^4.5.1",
|
|
77
|
+
"react": "^19.2.3",
|
|
78
|
+
"react-dom": "^19.2.3",
|
|
79
|
+
"tsup": "^8.5.1",
|
|
80
|
+
"typescript": "^5.9.3",
|
|
81
|
+
"typescript-eslint": "^8.53.1",
|
|
82
|
+
"vitest": "^4.0.18"
|
|
83
|
+
}
|
|
75
84
|
}
|
package/Avatar/index.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import _extends from '@babel/runtime/helpers/extends';
|
|
2
|
-
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
3
|
-
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
4
|
-
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
5
|
-
import React from 'react';
|
|
6
|
-
import { LeRed } from '@lowentry/react-redux';
|
|
7
|
-
import MuiAvatar from '@mui/material/Avatar';
|
|
8
|
-
|
|
9
|
-
var _excluded = ["src", "slotProps", "retryOptions", "children"];
|
|
10
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
11
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
12
|
-
var Avatar = LeRed.memo(function (_ref) {
|
|
13
|
-
var _slotProps$img3, _slotProps$img4;
|
|
14
|
-
var src = _ref.src,
|
|
15
|
-
slotProps = _ref.slotProps,
|
|
16
|
-
retryOptions = _ref.retryOptions,
|
|
17
|
-
children = _ref.children,
|
|
18
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
|
19
|
-
var _LeRed$useRetryingIma = LeRed.useRetryingImageUrl(src, retryOptions),
|
|
20
|
-
_LeRed$useRetryingIma2 = _slicedToArray(_LeRed$useRetryingIma, 2),
|
|
21
|
-
imgSrc = _LeRed$useRetryingIma2[0],
|
|
22
|
-
onImgError = _LeRed$useRetryingIma2[1];
|
|
23
|
-
var onError = LeRed.useCallback(function () {
|
|
24
|
-
var _slotProps$img;
|
|
25
|
-
onImgError.apply(void 0, arguments);
|
|
26
|
-
if (slotProps !== null && slotProps !== void 0 && (_slotProps$img = slotProps.img) !== null && _slotProps$img !== void 0 && _slotProps$img.onError) {
|
|
27
|
-
var _slotProps$img2;
|
|
28
|
-
(_slotProps$img2 = slotProps.img).onError.apply(_slotProps$img2, arguments);
|
|
29
|
-
}
|
|
30
|
-
}, [onImgError, slotProps === null || slotProps === void 0 || (_slotProps$img3 = slotProps.img) === null || _slotProps$img3 === void 0 ? void 0 : _slotProps$img3.onError]);
|
|
31
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MuiAvatar, _extends({
|
|
32
|
-
src: imgSrc,
|
|
33
|
-
slotProps: _objectSpread(_objectSpread({}, slotProps !== null && slotProps !== void 0 ? slotProps : {}), {}, {
|
|
34
|
-
img: _objectSpread(_objectSpread({
|
|
35
|
-
referrerPolicy: 'no-referrer'
|
|
36
|
-
}, (_slotProps$img4 = slotProps === null || slotProps === void 0 ? void 0 : slotProps.img) !== null && _slotProps$img4 !== void 0 ? _slotProps$img4 : {}), {}, {
|
|
37
|
-
onError: onError
|
|
38
|
-
})
|
|
39
|
-
})
|
|
40
|
-
}, props), children));
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
export { Avatar as default };
|
|
44
|
-
//# sourceMappingURL=index.js.map
|
package/Avatar/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/Avatar.jsx"],"sourcesContent":["import React from 'react';\nimport {LeRed} from '@lowentry/react-redux';\nimport MuiAvatar from '@mui/material/Avatar';\n\n\nconst Avatar = LeRed.memo(({src, slotProps, retryOptions, children, ...props}) =>\n{\n\tconst [imgSrc, onImgError] = LeRed.useRetryingImageUrl(src, retryOptions);\n\t\n\t\n\tconst onError = LeRed.useCallback((...args) =>\n\t{\n\t\tonImgError(...args);\n\t\t\n\t\tif(slotProps?.img?.onError)\n\t\t{\n\t\t\tslotProps.img.onError(...args);\n\t\t}\n\t}, [onImgError, slotProps?.img?.onError]);\n\t\n\t\n\treturn (<>\n\t\t<MuiAvatar src={imgSrc} slotProps={{...(slotProps ?? {}), img:{referrerPolicy:'no-referrer', ...(slotProps?.img ?? {}), onError:onError}}} {...props}>\n\t\t\t{children}\n\t\t</MuiAvatar>\n\t</>);\n});\nexport default Avatar;\n"],"names":["Avatar","LeRed","memo","_ref","_slotProps$img3","_slotProps$img4","src","slotProps","retryOptions","children","props","_objectWithoutProperties","_excluded","_LeRed$useRetryingIma","useRetryingImageUrl","_LeRed$useRetryingIma2","_slicedToArray","imgSrc","onImgError","onError","useCallback","_slotProps$img","apply","arguments","img","_slotProps$img2","React","createElement","Fragment","MuiAvatar","_extends","_objectSpread","referrerPolicy"],"mappings":";;;;;;;;;;;AAKMA,IAAAA,MAAM,GAAGC,KAAK,CAACC,IAAI,CAAC,UAAAC,IAAA,EAC1B;EAAA,IAAAC,eAAA,EAAAC,eAAA,CAAA;AAAA,EAAA,IAD4BC,GAAG,GAAAH,IAAA,CAAHG,GAAG;IAAEC,SAAS,GAAAJ,IAAA,CAATI,SAAS;IAAEC,YAAY,GAAAL,IAAA,CAAZK,YAAY;IAAEC,QAAQ,GAAAN,IAAA,CAARM,QAAQ;AAAKC,IAAAA,KAAK,GAAAC,wBAAA,CAAAR,IAAA,EAAAS,SAAA,CAAA,CAAA;EAE3E,IAAAC,qBAAA,GAA6BZ,KAAK,CAACa,mBAAmB,CAACR,GAAG,EAAEE,YAAY,CAAC;IAAAO,sBAAA,GAAAC,cAAA,CAAAH,qBAAA,EAAA,CAAA,CAAA;AAAlEI,IAAAA,MAAM,GAAAF,sBAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,UAAU,GAAAH,sBAAA,CAAA,CAAA,CAAA,CAAA;AAGzB,EAAA,IAAMI,OAAO,GAAGlB,KAAK,CAACmB,WAAW,CAAC,YAClC;AAAA,IAAA,IAAAC,cAAA,CAAA;AACCH,IAAAA,UAAU,CAAAI,KAAA,CAAAC,KAAAA,CAAAA,EAAAA,SAAQ,CAAC,CAAA;AAEnB,IAAA,IAAGhB,SAAS,KAAA,IAAA,IAATA,SAAS,KAAA,KAAA,CAAA,IAAA,CAAAc,cAAA,GAATd,SAAS,CAAEiB,GAAG,cAAAH,cAAA,KAAA,KAAA,CAAA,IAAdA,cAAA,CAAgBF,OAAO,EAC1B;AAAA,MAAA,IAAAM,eAAA,CAAA;AACC,MAAA,CAAAA,eAAA,GAAAlB,SAAS,CAACiB,GAAG,EAACL,OAAO,CAAAG,KAAA,CAAAG,eAAA,EAAAF,SAAQ,CAAC,CAAA;AAC/B,KAAA;GACA,EAAE,CAACL,UAAU,EAAEX,SAAS,KAATA,IAAAA,IAAAA,SAAS,gBAAAH,eAAA,GAATG,SAAS,CAAEiB,GAAG,cAAApB,eAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAdA,eAAA,CAAgBe,OAAO,CAAC,CAAC,CAAA;AAGzC,EAAA,oBAAQO,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EACPF,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAACE,SAAS,EAAAC,QAAA,CAAA;AAACxB,IAAAA,GAAG,EAAEW,MAAO;AAACV,IAAAA,SAAS,EAAAwB,aAAA,CAAAA,aAAA,CAAOxB,EAAAA,EAAAA,SAAS,KAATA,IAAAA,IAAAA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,SAAS,GAAI,EAAE,CAAA,EAAA,EAAA,EAAA;MAAGiB,GAAG,EAAAO,aAAA,CAAAA,aAAA,CAAA;AAAEC,QAAAA,cAAc,EAAC,aAAA;AAAa,OAAA,EAAA,CAAA3B,eAAA,GAAME,SAAS,KAAA,IAAA,IAATA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,SAAS,CAAEiB,GAAG,cAAAnB,eAAA,KAAA,KAAA,CAAA,GAAAA,eAAA,GAAI,EAAE,CAAA,EAAA,EAAA,EAAA;AAAGc,QAAAA,OAAO,EAACA,OAAAA;AAAO,OAAA,CAAA;AAAC,KAAA,CAAA;AAAE,GAAA,EAAKT,KAAK,CAAA,EAClJD,QACS,CACV,CAAC,CAAA;AACJ,CAAC;;;;"}
|
package/DatePicker/index.js
DELETED
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
2
|
-
import _extends from '@babel/runtime/helpers/extends';
|
|
3
|
-
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
4
|
-
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
5
|
-
import React from 'react';
|
|
6
|
-
import { LeRed } from '@lowentry/react-redux';
|
|
7
|
-
import { IS_ARRAY } from '@lowentry/utils';
|
|
8
|
-
import Dayjs from 'dayjs';
|
|
9
|
-
import Button from '@mui/material/Button';
|
|
10
|
-
import Stack from '@mui/material/Stack';
|
|
11
|
-
import TextField from '@mui/material/TextField';
|
|
12
|
-
import { DatePicker as DatePicker$1 } from '@mui/x-date-pickers/DatePicker';
|
|
13
|
-
import ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew';
|
|
14
|
-
import ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';
|
|
15
|
-
import { s as styleInject } from '../style-inject.es-1f59c1d0.js';
|
|
16
|
-
|
|
17
|
-
var css_248z = ".lowentry-mui--date-picker{padding:.5rem}.lowentry-mui--date-picker .lowentry-mui--date-picker--arrow-button{min-width:0;padding:6px 12px}.lowentry-mui--date-picker .lowentry-mui--date-picker--textfield{cursor:pointer!important;max-width:150px}.lowentry-mui--date-picker .lowentry-mui--date-picker--textfield .MuiInputBase-input{padding:10px 0;text-align:center}.lowentry-mui--date-picker .lowentry-mui--date-picker--textfield .MuiOutlinedInput-notchedOutline{border:0!important}.lowentry-mui--date-picker .lowentry-mui--date-picker--textfield *{cursor:pointer!important}";
|
|
18
|
-
styleInject(css_248z);
|
|
19
|
-
|
|
20
|
-
var _excluded = ["dateFormat", "value", "className", "children"],
|
|
21
|
-
_excluded2 = ["value", "dateFormat", "onChange", "className", "children"];
|
|
22
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
-
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
25
|
-
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
26
|
-
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
27
|
-
var DatePickerTextField = LeRed.memo(function (_ref) {
|
|
28
|
-
var _props$ownerState2, _props$InputProps2, _props$InputProps3;
|
|
29
|
-
var dateFormat = _ref.dateFormat,
|
|
30
|
-
value = _ref.value,
|
|
31
|
-
className = _ref.className,
|
|
32
|
-
children = _ref.children,
|
|
33
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
|
34
|
-
var onClick = LeRed.useMemo(function () {
|
|
35
|
-
var _props$ownerState, _props$InputProps;
|
|
36
|
-
if (props !== null && props !== void 0 && (_props$ownerState = props.ownerState) !== null && _props$ownerState !== void 0 && _props$ownerState.open) {
|
|
37
|
-
return null;
|
|
38
|
-
}
|
|
39
|
-
var propsLoop = props === null || props === void 0 || (_props$InputProps = props.InputProps) === null || _props$InputProps === void 0 || (_props$InputProps = _props$InputProps.endAdornment) === null || _props$InputProps === void 0 ? void 0 : _props$InputProps.props;
|
|
40
|
-
while (propsLoop) {
|
|
41
|
-
var _propsLoop, _propsLoop2;
|
|
42
|
-
if (propsLoop.onClick) {
|
|
43
|
-
return propsLoop.onClick;
|
|
44
|
-
}
|
|
45
|
-
if ((_propsLoop = propsLoop) !== null && _propsLoop !== void 0 && _propsLoop.children) {
|
|
46
|
-
propsLoop = propsLoop.children;
|
|
47
|
-
continue;
|
|
48
|
-
}
|
|
49
|
-
if (IS_ARRAY(propsLoop)) {
|
|
50
|
-
var continueLoop = false;
|
|
51
|
-
var _iterator = _createForOfIteratorHelper(propsLoop),
|
|
52
|
-
_step;
|
|
53
|
-
try {
|
|
54
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
55
|
-
var propsLoopItem = _step.value;
|
|
56
|
-
if (propsLoopItem !== null && propsLoopItem !== void 0 && propsLoopItem.props) {
|
|
57
|
-
propsLoop = propsLoopItem.props;
|
|
58
|
-
continueLoop = true;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
} catch (err) {
|
|
62
|
-
_iterator.e(err);
|
|
63
|
-
} finally {
|
|
64
|
-
_iterator.f();
|
|
65
|
-
}
|
|
66
|
-
if (continueLoop) {
|
|
67
|
-
continue;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
propsLoop = (_propsLoop2 = propsLoop) === null || _propsLoop2 === void 0 ? void 0 : _propsLoop2.props;
|
|
71
|
-
}
|
|
72
|
-
return null;
|
|
73
|
-
}, [props === null || props === void 0 || (_props$ownerState2 = props.ownerState) === null || _props$ownerState2 === void 0 ? void 0 : _props$ownerState2.open, props === null || props === void 0 || (_props$InputProps2 = props.InputProps) === null || _props$InputProps2 === void 0 || (_props$InputProps2 = _props$InputProps2.endAdornment) === null || _props$InputProps2 === void 0 ? void 0 : _props$InputProps2.props]);
|
|
74
|
-
var onSelect = LeRed.useCallback(function (event) {
|
|
75
|
-
event.target.selectionStart = event.target.selectionEnd;
|
|
76
|
-
event.preventDefault();
|
|
77
|
-
}, []);
|
|
78
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Button, {
|
|
79
|
-
variant: "outlined",
|
|
80
|
-
onClick: onClick
|
|
81
|
-
}, /*#__PURE__*/React.createElement(TextField, _extends({}, props, {
|
|
82
|
-
className: 'lowentry-mui--date-picker--textfield ' + (className !== null && className !== void 0 ? className : ''),
|
|
83
|
-
variant: "outlined",
|
|
84
|
-
value: Dayjs(value).format(dateFormat),
|
|
85
|
-
InputProps: _objectSpread(_objectSpread({}, (_props$InputProps3 = props.InputProps) !== null && _props$InputProps3 !== void 0 ? _props$InputProps3 : {}), {}, {
|
|
86
|
-
readOnly: true,
|
|
87
|
-
endAdornment: null,
|
|
88
|
-
onSelect: onSelect,
|
|
89
|
-
onSelectCapture: onSelect,
|
|
90
|
-
onMouseDown: onSelect,
|
|
91
|
-
onTouchStart: onSelect,
|
|
92
|
-
onTouchMove: onSelect
|
|
93
|
-
})
|
|
94
|
-
}), children)));
|
|
95
|
-
});
|
|
96
|
-
var DatePicker = LeRed.memo(function (_ref2) {
|
|
97
|
-
var value = _ref2.value,
|
|
98
|
-
dateFormat = _ref2.dateFormat,
|
|
99
|
-
onChange = _ref2.onChange,
|
|
100
|
-
className = _ref2.className;
|
|
101
|
-
_ref2.children;
|
|
102
|
-
var props = _objectWithoutProperties(_ref2, _excluded2);
|
|
103
|
-
/** @type {*} */
|
|
104
|
-
var textFieldProps = LeRed.useMemo(function () {
|
|
105
|
-
if (!dateFormat) {
|
|
106
|
-
return {
|
|
107
|
-
dateFormat: 'ddd, D MMM YYYY'
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
return {
|
|
111
|
-
dateFormat: dateFormat
|
|
112
|
-
};
|
|
113
|
-
}, [dateFormat]);
|
|
114
|
-
var _LeRed$useHistoryStat = LeRed.useHistoryState(false),
|
|
115
|
-
_LeRed$useHistoryStat2 = _slicedToArray(_LeRed$useHistoryStat, 3),
|
|
116
|
-
datepickerOpen = _LeRed$useHistoryStat2[0],
|
|
117
|
-
openDatepicker = _LeRed$useHistoryStat2[1],
|
|
118
|
-
closeDatepicker = _LeRed$useHistoryStat2[2];
|
|
119
|
-
var onChanged = LeRed.useCallback(function () {
|
|
120
|
-
if (onChange) {
|
|
121
|
-
onChange.apply(void 0, arguments);
|
|
122
|
-
}
|
|
123
|
-
}, [onChange]);
|
|
124
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Stack, _extends({
|
|
125
|
-
className: 'lowentry-mui--date-picker ' + (className !== null && className !== void 0 ? className : ''),
|
|
126
|
-
direction: "row",
|
|
127
|
-
justifyContent: "space-between",
|
|
128
|
-
spacing: 1
|
|
129
|
-
}, props), /*#__PURE__*/React.createElement(Button, {
|
|
130
|
-
className: "lowentry-mui--date-picker--arrow-button",
|
|
131
|
-
variant: "text",
|
|
132
|
-
color: "primary",
|
|
133
|
-
onClick: function onClick() {
|
|
134
|
-
return onChanged(Dayjs(value).subtract(1, 'day'));
|
|
135
|
-
}
|
|
136
|
-
}, /*#__PURE__*/React.createElement(ArrowBackIosNewIcon, null)), /*#__PURE__*/React.createElement(DatePicker$1, {
|
|
137
|
-
open: datepickerOpen,
|
|
138
|
-
onOpen: openDatepicker,
|
|
139
|
-
onClose: closeDatepicker,
|
|
140
|
-
showDaysOutsideCurrentMonth: true,
|
|
141
|
-
views: ['day'],
|
|
142
|
-
format: "YYYY-MM-DD",
|
|
143
|
-
label: "",
|
|
144
|
-
value: value,
|
|
145
|
-
onChange: onChanged,
|
|
146
|
-
slots: {
|
|
147
|
-
textField: DatePickerTextField,
|
|
148
|
-
toolbar: function toolbar(props) {
|
|
149
|
-
return null;
|
|
150
|
-
}
|
|
151
|
-
},
|
|
152
|
-
slotProps: {
|
|
153
|
-
textField: textFieldProps
|
|
154
|
-
}
|
|
155
|
-
}), /*#__PURE__*/React.createElement(Button, {
|
|
156
|
-
className: "lowentry-mui--date-picker--arrow-button",
|
|
157
|
-
variant: "text",
|
|
158
|
-
color: "primary",
|
|
159
|
-
onClick: function onClick() {
|
|
160
|
-
return onChanged(Dayjs(value).add(1, 'day'));
|
|
161
|
-
}
|
|
162
|
-
}, /*#__PURE__*/React.createElement(ArrowForwardIosIcon, null))));
|
|
163
|
-
});
|
|
164
|
-
|
|
165
|
-
export { DatePicker as default };
|
|
166
|
-
//# sourceMappingURL=index.js.map
|
package/DatePicker/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/DatePicker.jsx"],"sourcesContent":["import React from 'react';\nimport {LeRed} from '@lowentry/react-redux';\nimport {IS_ARRAY} from '@lowentry/utils';\nimport Dayjs from 'dayjs';\nimport Button from '@mui/material/Button';\nimport Stack from '@mui/material/Stack';\nimport TextField from '@mui/material/TextField';\nimport {DatePicker as MuiDatePicker} from '@mui/x-date-pickers/DatePicker';\nimport ArrowBackIosNewIcon from '@mui/icons-material/ArrowBackIosNew';\nimport ArrowForwardIosIcon from '@mui/icons-material/ArrowForwardIos';\nimport './DatePicker.less';\n\n\nconst DatePickerTextField = LeRed.memo(({dateFormat, value, className, children, ...props}) =>\n{\n\tconst onClick = LeRed.useMemo(() =>\n\t{\n\t\tif(props?.ownerState?.open)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\t\tlet propsLoop = props?.InputProps?.endAdornment?.props;\n\t\twhile(propsLoop)\n\t\t{\n\t\t\tif(propsLoop.onClick)\n\t\t\t{\n\t\t\t\treturn propsLoop.onClick;\n\t\t\t}\n\t\t\tif(propsLoop?.children)\n\t\t\t{\n\t\t\t\tpropsLoop = propsLoop.children;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif(IS_ARRAY(propsLoop))\n\t\t\t{\n\t\t\t\tlet continueLoop = false;\n\t\t\t\tfor(const propsLoopItem of propsLoop)\n\t\t\t\t{\n\t\t\t\t\tif(propsLoopItem?.props)\n\t\t\t\t\t{\n\t\t\t\t\t\tpropsLoop = propsLoopItem.props;\n\t\t\t\t\t\tcontinueLoop = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(continueLoop)\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\tpropsLoop = propsLoop?.props;\n\t\t}\n\t\treturn null;\n\t}, [props?.ownerState?.open, props?.InputProps?.endAdornment?.props]);\n\t\n\t\n\tconst onSelect = LeRed.useCallback((event) =>\n\t{\n\t\tevent.target.selectionStart = event.target.selectionEnd;\n\t\tevent.preventDefault();\n\t}, []);\n\t\n\t\n\treturn (<>\n\t\t<Button variant=\"outlined\" onClick={onClick}>\n\t\t\t<TextField {...props} className={'lowentry-mui--date-picker--textfield ' + (className ?? '')} variant=\"outlined\" value={Dayjs(value).format(dateFormat)} InputProps={{...(props.InputProps ?? {}), readOnly:true, endAdornment:null, onSelect:onSelect, onSelectCapture:onSelect, onMouseDown:onSelect, onTouchStart:onSelect, onTouchMove:onSelect}}>{children}</TextField>\n\t\t</Button>\n\t</>);\n});\n\n\nconst DatePicker = LeRed.memo(({value, dateFormat, onChange, className, children, ...props}) =>\n{\n\t/** @type {*} */\n\tconst textFieldProps = LeRed.useMemo(() =>\n\t{\n\t\tif(!dateFormat)\n\t\t{\n\t\t\treturn {dateFormat:'ddd, D MMM YYYY'};\n\t\t}\n\t\treturn {dateFormat};\n\t}, [dateFormat]);\n\t\n\tconst [datepickerOpen, openDatepicker, closeDatepicker] = LeRed.useHistoryState(false);\n\t\n\t\n\tconst onChanged = LeRed.useCallback((...args) =>\n\t{\n\t\tif(onChange)\n\t\t{\n\t\t\tonChange(...args);\n\t\t}\n\t}, [onChange]);\n\t\n\t\n\treturn (<>\n\t\t<Stack className={'lowentry-mui--date-picker ' + (className ?? '')} direction=\"row\" justifyContent=\"space-between\" spacing={1} {...props}>\n\t\t\t<Button className=\"lowentry-mui--date-picker--arrow-button\" variant=\"text\" color=\"primary\" onClick={() => onChanged(Dayjs(value).subtract(1, 'day'))}><ArrowBackIosNewIcon/></Button>\n\t\t\t<MuiDatePicker\n\t\t\t\topen={datepickerOpen}\n\t\t\t\tonOpen={openDatepicker}\n\t\t\t\tonClose={closeDatepicker}\n\t\t\t\tshowDaysOutsideCurrentMonth={true}\n\t\t\t\tviews={['day']}\n\t\t\t\tformat=\"YYYY-MM-DD\"\n\t\t\t\tlabel=\"\"\n\t\t\t\tvalue={value}\n\t\t\t\tonChange={onChanged}\n\t\t\t\tslots={{\n\t\t\t\t\ttextField:DatePickerTextField,\n\t\t\t\t\ttoolbar: (props) => null,\n\t\t\t\t}}\n\t\t\t\tslotProps={{\n\t\t\t\t\ttextField:textFieldProps,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<Button className=\"lowentry-mui--date-picker--arrow-button\" variant=\"text\" color=\"primary\" onClick={() => onChanged(Dayjs(value).add(1, 'day'))}><ArrowForwardIosIcon/></Button>\n\t\t</Stack>\n\t</>);\n});\nexport default DatePicker;\n"],"names":["DatePickerTextField","LeRed","memo","_ref","_props$ownerState2","_props$InputProps2","_props$InputProps3","dateFormat","value","className","children","props","_objectWithoutProperties","_excluded","onClick","useMemo","_props$ownerState","_props$InputProps","ownerState","open","propsLoop","InputProps","endAdornment","_propsLoop","_propsLoop2","IS_ARRAY","continueLoop","_iterator","_createForOfIteratorHelper","_step","s","n","done","propsLoopItem","err","e","f","onSelect","useCallback","event","target","selectionStart","selectionEnd","preventDefault","React","createElement","Fragment","Button","variant","TextField","_extends","Dayjs","format","_objectSpread","readOnly","onSelectCapture","onMouseDown","onTouchStart","onTouchMove","DatePicker","_ref2","onChange","_excluded2","textFieldProps","_LeRed$useHistoryStat","useHistoryState","_LeRed$useHistoryStat2","_slicedToArray","datepickerOpen","openDatepicker","closeDatepicker","onChanged","apply","arguments","Stack","direction","justifyContent","spacing","color","subtract","ArrowBackIosNewIcon","MuiDatePicker","onOpen","onClose","showDaysOutsideCurrentMonth","views","label","slots","textField","toolbar","slotProps","add","ArrowForwardIosIcon"],"mappings":"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"}
|
package/Dialog/index.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import _extends from '@babel/runtime/helpers/extends';
|
|
2
|
-
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
import { LeRed } from '@lowentry/react-redux';
|
|
5
|
-
import { LeUtils, STRING } from '@lowentry/utils';
|
|
6
|
-
import MuiDialog from '@mui/material/Dialog';
|
|
7
|
-
import { s as styleInject } from '../style-inject.es-1f59c1d0.js';
|
|
8
|
-
|
|
9
|
-
var css_248z = ".lowentry-mui--dialog .lowentry-mui--dialog--arialabel{display:none!important}";
|
|
10
|
-
styleInject(css_248z);
|
|
11
|
-
|
|
12
|
-
var _excluded = ["onClose", "children", "aria-label"];
|
|
13
|
-
var Dialog = LeRed.memo(function (_ref) {
|
|
14
|
-
var onClose = _ref.onClose,
|
|
15
|
-
children = _ref.children,
|
|
16
|
-
ariaLabel = _ref['aria-label'],
|
|
17
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
|
18
|
-
var ariaLabelId = LeRed.useMemo(function () {
|
|
19
|
-
return 'lowentrymui_dialog_arialabel_' + LeUtils.uniqueId();
|
|
20
|
-
}, []);
|
|
21
|
-
var onClosed = LeRed.useCallback(function (event, reason) {
|
|
22
|
-
if (!STRING(reason).toLowerCase().includes('escape')) {
|
|
23
|
-
// prevent closing when clicking on the backdrop, only allow escape-key closing
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
if (onClose) {
|
|
27
|
-
onClose(event, reason);
|
|
28
|
-
}
|
|
29
|
-
}, [onClose]);
|
|
30
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MuiDialog, _extends({
|
|
31
|
-
className: "lowentry-mui--dialog",
|
|
32
|
-
onClose: onClosed,
|
|
33
|
-
"aria-labelledby": ariaLabelId,
|
|
34
|
-
open: false
|
|
35
|
-
}, props), /*#__PURE__*/React.createElement("span", {
|
|
36
|
-
className: "lowentry-mui--dialog--arialabel",
|
|
37
|
-
id: ariaLabelId,
|
|
38
|
-
style: {
|
|
39
|
-
display: 'none'
|
|
40
|
-
}
|
|
41
|
-
}, ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : ''), children));
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
export { Dialog as default };
|
|
45
|
-
//# sourceMappingURL=index.js.map
|
package/Dialog/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/Dialog.jsx"],"sourcesContent":["import React from 'react';\nimport {LeRed} from '@lowentry/react-redux';\nimport {LeUtils, STRING} from '@lowentry/utils';\nimport MuiDialog from '@mui/material/Dialog';\nimport './Dialog.less';\n\n\nconst Dialog = LeRed.memo(({onClose, children, 'aria-label':ariaLabel, ...props}) =>\n{\n\tconst ariaLabelId = LeRed.useMemo(() => 'lowentrymui_dialog_arialabel_' + LeUtils.uniqueId(), []);\n\t\n\t\n\tconst onClosed = LeRed.useCallback((event, reason) =>\n\t{\n\t\tif(!STRING(reason).toLowerCase().includes('escape'))\n\t\t{\n\t\t\t// prevent closing when clicking on the backdrop, only allow escape-key closing\n\t\t\treturn;\n\t\t}\n\t\t\n\t\tif(onClose)\n\t\t{\n\t\t\tonClose(event, reason);\n\t\t}\n\t}, [onClose]);\n\t\n\t\n\treturn (<>\n\t\t<MuiDialog className=\"lowentry-mui--dialog\" onClose={onClosed} aria-labelledby={ariaLabelId} open={false} {...props}>\n\t\t\t<span className=\"lowentry-mui--dialog--arialabel\" id={ariaLabelId} style={{display:'none'}}>{ariaLabel ?? ''}</span>\n\t\t\t{children}\n\t\t</MuiDialog>\n\t</>);\n});\nexport default Dialog;\n"],"names":["Dialog","LeRed","memo","_ref","onClose","children","ariaLabel","props","_objectWithoutProperties","_excluded","ariaLabelId","useMemo","LeUtils","uniqueId","onClosed","useCallback","event","reason","STRING","toLowerCase","includes","React","createElement","Fragment","MuiDialog","_extends","className","open","id","style","display"],"mappings":";;;;;;;;;;;;AAOMA,IAAAA,MAAM,GAAGC,KAAK,CAACC,IAAI,CAAC,UAAAC,IAAA,EAC1B;AAAA,EAAA,IAD4BC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IAAEC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IAAeC,SAAS,GAAAH,IAAA,CAAtB,YAAY,CAAA;AAAeI,IAAAA,KAAK,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA,CAAA,CAAA;AAE9E,EAAA,IAAMC,WAAW,GAAGT,KAAK,CAACU,OAAO,CAAC,YAAA;AAAA,IAAA,OAAM,+BAA+B,GAAGC,OAAO,CAACC,QAAQ,EAAE,CAAA;AAAA,GAAA,EAAE,EAAE,CAAC,CAAA;EAGjG,IAAMC,QAAQ,GAAGb,KAAK,CAACc,WAAW,CAAC,UAACC,KAAK,EAAEC,MAAM,EACjD;AACC,IAAA,IAAG,CAACC,MAAM,CAACD,MAAM,CAAC,CAACE,WAAW,EAAE,CAACC,QAAQ,CAAC,QAAQ,CAAC,EACnD;AACC;AACA,MAAA,OAAA;AACD,KAAA;AAEA,IAAA,IAAGhB,OAAO,EACV;AACCA,MAAAA,OAAO,CAACY,KAAK,EAAEC,MAAM,CAAC,CAAA;AACvB,KAAA;AACD,GAAC,EAAE,CAACb,OAAO,CAAC,CAAC,CAAA;AAGb,EAAA,oBAAQiB,KAAA,CAAAC,aAAA,CAAAD,KAAA,CAAAE,QAAA,EACPF,IAAAA,eAAAA,KAAA,CAAAC,aAAA,CAACE,SAAS,EAAAC,QAAA,CAAA;AAACC,IAAAA,SAAS,EAAC,sBAAsB;AAACtB,IAAAA,OAAO,EAAEU,QAAS;AAAC,IAAA,iBAAA,EAAiBJ,WAAY;AAACiB,IAAAA,IAAI,EAAE,KAAA;AAAM,GAAA,EAAKpB,KAAK,CAAA,eAClHc,KAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMI,IAAAA,SAAS,EAAC,iCAAiC;AAACE,IAAAA,EAAE,EAAElB,WAAY;AAACmB,IAAAA,KAAK,EAAE;AAACC,MAAAA,OAAO,EAAC,MAAA;AAAM,KAAA;GAAIxB,EAAAA,SAAS,KAATA,IAAAA,IAAAA,SAAS,KAATA,KAAAA,CAAAA,GAAAA,SAAS,GAAI,EAAS,CAAC,EACnHD,QACS,CACV,CAAC,CAAA;AACJ,CAAC;;;;"}
|